运行模拟 - AWS RoboMaker

终止支持通知:2025 年 9 月 10 日, AWS 将停止对的支持。 AWS RoboMaker2025 年 9 月 10 日之后,您将无法再访问 AWS RoboMaker 控制台或 AWS RoboMaker 资源。有关过渡 AWS Batch 到以帮助运行容器化仿真的更多信息,请访问此博客文章。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

运行模拟

要开始运行模拟,请使用以下 AWS CLI 命令来描述您的应用程序。这些命令提供的输出可供您检查以确认已准备好继续创建模拟作业。

以下命令检索与您的机器人应用程序相关的数据。

aws robomaker describe-robot-application --application YOUR-ROBOT-APP-ARN

describe-robot-application 的输出包含以下数据。

{ "arn": "YOUR-ROBOT-APP-ARN", "name": "YOUR-ROBOT-APP-NAME", ... # Removed extra data for clarity "robotSoftwareSuite": { "name": "General" }, ... # Removed extra data for clarity "environment": { "uri": "YOUR-ROBOT-APP-ECR-URI" } }

下一个命令检索与您的模拟应用程序相关的数据。

aws robomaker describe-simulation-application --application YOUR-SIM-APP-ARN

describe-simulation-application 的输出包含以下数据。

{ "arn": "YOUR-SIM-APP-ARN", "name": "YOUR-SIM-APP-NAME", ... # Removed extra data for clarity "simulationSoftwareSuite": { "name": "SimulationRuntime" }, "robotSoftwareSuite": { "name": "General" }, ... # Removed extra data for clarity "environment": { "uri": "YOUR-SIM-APP-ECR-URI" } }

保存 YOUR-ROBOT-APP-ARNYOUR-SIM-APP-ARN 的返回值。您需要他们两者才能提交您的模拟作业。如果您需要将 WorldForge 资源导入模拟作业,请使用 DataSource API。这允许您从世界导出作业的 Amazon S3 输出目录中将世界资产导入到模拟作业容器中您选择的目的地。有关更多信息,请参阅在模拟中使用导出的世界

要提交模拟作业,请在名为 create_simulation_job.json 的工作目录中创建一个 JSON 文件。复制、粘贴和编辑由红色斜体文本标识的字符串以包含YOUR-IAM-ROLE-ARNYOUR-ROBOT-APP-ARNYOUR-SIM-APP-ARN。以下 roslaunch 命令、TurtleBot 环境变量和工具设置特定于 hello world 示例应用程序。您必须根据模拟作业的需要将这些设置更新为自己的自定义值。有关更多信息,请参阅 CreateSimulationJob API。

{ "maxJobDurationInSeconds": 3600, "iamRole": "IAM-ROLE-ARN", "robotApplications": [ { "application": "YOUR-ROBOT-APP-ARN", "applicationVersion": "$LATEST", "launchConfig": { "environmentVariables": { "ROS_IP": "ROBOMAKER_ROBOT_APP_IP", "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311", "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345" }, "streamUI": false, "command": [ "/bin/bash", "-c", "roslaunch hello_world_robot rotate.launch" ] }, "tools": [ { "streamUI": true, "name": "robot-terminal", "command": "/entrypoint.sh && xfce4-terminal", "streamOutputToCloudWatch": true, "exitBehavior": "RESTART" } ] } ], "simulationApplications": [ { "application": "YOUR-SIM-APP-ARN", "launchConfig": { "environmentVariables": { "ROS_IP": "ROBOMAKER_SIM_APP_IP", "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311", "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345", "TURTLEBOT3_MODEL":"waffle_pi" }, "streamUI": true, "command": [ "/bin/bash", "-c", "roslaunch hello_world_simulation empty_world.launch --wait" ] }, "tools": [ { "streamUI": true, "name": "gzclient", "command": "/entrypoint.sh && gzclient", "streamOutputToCloudWatch": true, "exitBehavior": "RESTART" } ] } ] }
注意

特别注意机器人和模拟应用程序中 launchConfig 对象的 ROS_GAZEBO_ 特定环境变量设置。为了使您的机器人应用程序容器能够与您的模拟应用程序容器进行通信,需要 ROBOMAKER_* 字符串值和端口号。

确认作业设置后,您可以使用以下命令提交作业。

aws robomaker create-simulation-job --cli-input-json file://create_simulation_job.json

要确认您的模拟正在运行 AWS RoboMaker,请访问AWS RoboMaker控制台中的模拟作业页面。查找您的运行任务并选择它以查看详细信息并启动任何相关工具。恭喜,您的模拟作业正在 AWS RoboMaker 中运行!