What exactly happenned after deploying in RoboMaker



I follow the develop guide of RoboMaker and I have done Deploy Robot Application https://docs.aws.amazon.com/robomaker/latest/dg/gs-deploy.html. I install greengrass in my rasberry pi3 and my RoboMaker Dashboard shows Succeed on the status of deployments. I can't tell what really happened after deployment.

I am new to greengrass and IoT core. Here are my question:

  1. Do RoboMaker deploy a ros system (hello-world-robot.armhf.tar.gz) through greengrass after deployment?

  2. Is there a ros node (hello_world_robot) runing inside greengrass after deployment?

Thank you so much for any explanation or suggestion.

asked 5 years ago209 views
3 Answers

Hi there,

When you deploy to your physical robot using AWS RoboMaker the following things happen:

  1. Greengrass executes an AWS RoboMaker lambda function on the device to install and start the new robot application.
  2. The lambda function downloads and uncompresses the robot application bundle from S3.
  3. 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.

answered 5 years ago
profile picture
reviewed a month ago

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:

  1. Even my local device don't have ROS, the deployment still show succeed. Is the logic correctly?

  2. Also, Greengrass runs very quietly, is there any log I can check about the deploy detail?

  3. How could l kill the ROS master that is started by Greengrass?
    I could use rosnode kill to stop other nodes (like /rotate), but my system re-spawns new ROS master after I use rosnode kill or kill pid.

Thank you so much for your help!

Best regards,

answered 5 years ago

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.


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,


answered 5 years ago
profile picture
reviewed a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions