[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 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南