Robomaker - IoT reserved topics?

0

Hi,

Are there any reserved topics being sent over greengrass IoT by a robomaker deployment job that can be accessed while a deployment is occuring?

  • Austin
asked 4 years ago208 views
1 Answer
0

Hi Austin,

AWS RoboMaker Fleet Management uses AWS Greengrass to deploy and launch ROS applications. When you create a new robot, it will ask you to install the AWS GreenGrass Core Software (for more information: https://docs.aws.amazon.com/greengrass/latest/developerguide/module2.html). When the Greengrass software is running and a RoboMaker deployment job is invoked, a local lambda function will pull down the robot application bundle defined in the RoboMaker Robot Application. The status updates of the deployment job are displayed in the RoboMaker console, or can be retrieved programmatically through the DescribeDeploymentJob API call https://docs.aws.amazon.com/cli/latest/reference/robomaker/describe-deployment-job.html.

There are no additional IoT topics reserved in this process, other than those reserved through Greengrass. For more information about reserved topics in Greengrass and AWS IoT, check out our documentation here: https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html

However, there are some environment variables which are reserved for RoboMaker. For example, you can use ROS_ROOT to define a local installation of ROS to use instead of the bundle. For troubleshooting deployments, here are some common pitfalls: https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting-deployments.html. To look at the environment variables included with the AWS Lambda function deployed on your behalf, you can open the Greengrass console, select the Lambda function (it should be postpended with DO_NOT_DELETE, as you can probably conclude - do not delete or save any changes here!!) and press edit. In here, you will find a list of environment variables used with the Lambda function.

If you are looking to determine the status of a deployment job on a given robot, you could use the DescribeRobot API call https://docs.aws.amazon.com/cli/latest/reference/robomaker/describe-robot.html. This will return the following robot states: Available, Registered, PendingNewDeployment, Deploying, Failed, InSync, and NoResponse.

AWS Step Functions is a great tool to manage more complex deployment workflows in conjunction with AWS RoboMaker. With AWS Step Functions, you could define a loop with a wait condition that checks on the status of all deployments (and run the above describe API calls). On the event of a failure, you could then define a custom AWS Lambda function to process the failure.

Happy building!

AWS
jer
answered 4 years 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