[RoboMaker] Where to get ROBOMAKER_ROBOT_APP_IP and ROBOMAKER_SIM_APP_IP when running a simulation job with images

0

I'm following the tutorial in https://docs.aws.amazon.com/robomaker/latest/dg/run-hello-world-ros.html and have successfully build the images, pushed to ECR and created simulation job with them.

However when running the simulation job, both instances needs to be told where their respective IP are beforehand, which it's usually available after the simulation job is running.

So is it possible to know which IP the instances is getting assigned before the instances are up and running?

已提问 2 年前328 查看次数
1 回答
0

Hello @AWS-User-0325661

We recently published a new blog article that describes in depth the process to create and run ROS docker containers in AWS RoboMaker. Hopefully this can be a helpful resource!

Once a VPC is configured, the IP of the underlying simulation job should be available when using Type: General (your container image) via the environment variables ROBOMAKER_SIM_APP_IP and ROBOMAKER_ROBOT_APP_IP.

In the blog, we include a sample JSON file with parameters for create-simulation-job. Here, we set the following environment variables.

"ROS_IP": "ROBOMAKER_SIM_APP_IP",
"ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
"GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345"

In ROS1, this will enable you to connect the Robot and Simulation Application containers together, on a shared ROS core.

If it is an external process requiring the IP address, you could use AWS Step Functions to launch the simulation jobs (either individually, or in a batch) - then run DescribeSimulationJob API call (through a Lambda function using boto3 as an example) to get the list of IPs for a given job in the networkInterface attribute.

AWS
jer
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则