- Newest
- Most votes
- Most comments
Hi there,
When you deploy to your physical robot using AWS RoboMaker the following things happen:
- Greengrass executes an AWS RoboMaker lambda function on the device to install and start the new robot application.
- The lambda function downloads and uncompresses the robot application bundle from S3.
- The lambda function starts ros using the launch file and package specified by the AWS RoboMaker robot application resource.
The robot application is now running on your device. If you can ssh into your device you can use the ros command line tools to inspect the topics, messages, and services which are running.
Please let us know if you have any additional questions.
Hi Andrew,
Thank you so much for your answer. Turn out, I also need to install ROS into my local device.
I thought Greengrass will deploy an isolated ROS into my local device.
After installing ROS, I can find the robot application (by rosnode, rostopic).
Here are other questions I have:
-
Even my local device don't have ROS, the deployment still show succeed. Is the logic correctly?
-
Also, Greengrass runs very quietly, is there any log I can check about the deploy detail?
-
How could l kill the ROS master that is started by Greengrass?
I could userosnode kill
to stop other nodes (like /rotate), but my system re-spawns new ROS master after I userosnode kill
orkill pid
.
Thank you so much for your help!
Best regards,
Robin
Hi Robin,
We bundle ROS with your robot application and start it on the robot as part of the Greegrass deployment. When you SSH into the robot you’ll need to source the ROS install location in order to use the CLI tools.
You can set up your environment to mirror how we run the bundle by sourcing each overlay. If you look in the ‘overlays.json’ file of your bundle you’ll see the overlays in the order they should be sourced. The deployment agent downloads the overlays and puts them into directories matching their sha256. You will have to figure out the order in which you should source the overlays. Once you’ve done that you can execute the following, for each overlay, in order:
BUNDLE_CURRENT_PREFIX=<path to overlay directory> source <path to overlay directory>/setup.sh
The overlay folders should be under: /tmp/roboMakerDeploymentPackage/
Once you’ve done that your environment matches the environment under which we run the bundle, so you can execute roslaunch, rosrun, or other ROS tools.
More info about overlays: https://github.com/colcon/colcon-bundle/blob/master/BUNDLE_FORMAT.md#overlay-archives
We are adding documentation and tooling to make this setup easier.
The Greengrass logs are available in CloudWatch. You can also configure file system logging and the log files will be stored under greengrass-root/ggc/var/log on the core device.
https://docs.aws.amazon.com/greengrass/latest/developerguide/greengrass-logs-overview.html
We don’t expect the ROS master to re-spawn after being killed. Can you elaborate more on the steps you are taking to kill it?
Thank you,
Andrew
Relevant content
- asked 4 years ago
- asked 4 years ago
- asked 2 years ago
- asked 4 years ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 10 months ago