终止支持通知:2025 年 9 月 10 日, AWS
将停止对的支持。 AWS RoboMaker2025 年 9 月 10 日之后,您将无法再访问 AWS RoboMaker 控制台或 AWS RoboMaker 资源。有关过渡 AWS Batch 到以帮助运行容器化仿真的更多信息,请访问此博客文章。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在模拟中使用导出的世界
Simulation WorldForge 可用于创建与 AWSRoboMaker 配合使用的世界。创建世界后,必须将其导出以用于模拟。您也可以上传世界以在模拟中使用。
导出世界提供了使用以下内容的机会:
-
与默认 SDF 物理
学不同的物理特性 -
专用照明
-
自定义模型
以下各部分提供有关在模拟中使用生成的世界的相关信息。
重要
要详细了解 AWS RoboMaker 如何收费,请参阅 AWS RoboMaker 定价
使用导出的世界作为数据来源
使用 Simulation WorldForge,您可以将生成的世界导出到您自己的环境中使用。将您选择导出的世界复制到 Amazon S3 存储桶中的单个 .zip 文件。本节通过说明如何调整启动文件然后通过 AWS Management Console 或使用命令行界面创建模拟作业介绍如何在模拟作业中使用 Amazon S3 存储桶中的导出世界。
在使用 AWS Management Console 或 AWS CLI 添加数据来源之前,必须先更新模拟应用程序的启动文件。
要更新您的模拟启动文件,请执行以下操作:
-
运行以下启动命令:
<launch> <!-- Always set GUI to false for AWS RoboMaker Simulation Use gui:=true on roslaunch command-line to run with gzclient. --> <arg name="gui" default="false"/> <include file="$(find aws_robomaker_worldforge_worlds)/launch/launch_world.launch"> <arg name="gui" value="$(arg gui)"/> </include> <!-- Your other launch commands go here. --> </launch>
您可以在
(0, 0, 0)
处生成您的机器人。Simulation WorldForge 生成的世界在(0, 0, 0)
处一定会有一个 1 米长的清晰圆柱体。 -
重建您的映像并照常推送。有关更多信息,请参阅使用映像开发 AWS RoboMaker 应用程序。
要添加数据来源,请执行以下操作:
请按照以下选项卡之一中的步骤进行操作:
在 ROS 和 Gazebo 中使用导出的世界
如上一节所述,Simulation WorldForge 将您选择的世界导出到一个 .zip 文件中。.zip 文件包含使用 ROS 和 Gazebo 修改和可视化世界所需的所有资产。它包括以下重要文件夹:
-
根文件夹
workspace_src
是 ROS 工作空间。它包含共享模型、世界数据和其他世界信息。它与 ROS 1 和 ROS 2 兼容。 -
共享模型已复制到
workspace_src/src/aws_robomaker_worldforge_shared_models/models
。例如,如果在多个世界中使用同一把椅子,则将其放置在共享模型文件夹中。 -
世界数据已复制到
workspace_src/src/aws_robomaker_worldforge_worlds/worlds/
。
要更新您的模拟启动文件,请执行以下操作:
-
按照 创建一个世界导出作业 中的步骤导出世界。
-
Unzip
将世界变成 ROS 工作空间。cd MyApplication/simulation_ws unzip MyExportedWorld.zip
-
构建世界。
rosdep install --from-paths src --ignore-src -r -y$ colcon build
-
启动世界。
source install/setup.sh roslaunch aws_robomaker_worldforge_worlds launch_world.launch gui:=true
要在模拟作业中构建和启动世界,请执行以下操作:
-
按照 创建一个世界导出作业 中的步骤导出世界。
-
使用 DataSource 将导出的世界导入到工作空间源包目录
/home/simulation_ws/src/aws_exported_world
-
修改模拟应用程序的
LaunchConfig
。"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", "GAZEBO_MODEL_PATH":"@GAZEBO_MODEL_PATH:/home/simulation_ws/src/aws_exported_world/aws_robomaker_worldforge_pkgs/aws_robomaker_worldforge_shared_models/models" }, "streamUI": true, "command": [ "/bin/bash", "-c", "cd /home/simulation_ws && colcon build && source install/setup.sh && roslaunch hello_world_simulation worldforge_world.launch" ] },
使用带有自定义物理、灯光和模型的导出世界
如果您的模拟场景需要自定义,则可以导出和修改世界。例如,您可以应用自定义物理、不同的照明效果、添加自定义模型或进行其他修改。
导出世界后,您需要修改 .world
文件以包含导出的世界模型。.world
文件使用 SDF。有关 SDF 的更多信息,请参阅 SDFormat
要修改 .world
文件以包含导出的世界模型,请执行以下操作:
-
按照 创建一个世界导出作业 中的步骤导出世界。
-
将以下代码添加到您的
.world
文件:确保世界名称与导出的模型名称相匹配。<sdf version="1.6"> <world name="generation_82856b0yq33y_world_16"> <model name="WorldForge World"> <include> <uri>model://generation_82856b0yq33y_world_16</uri> </include> </model> <!-- Your other <world> elements go here --> </world> </sdf>
-
确认您的启动文件包含修改后的
.world
文件。使用更新的启动文件启动模拟。