End of support notice: On September 10, 2025, AWS
will discontinue support for AWS RoboMaker. After September 10, 2025, you will
no longer be able to access the AWS RoboMaker console or AWS RoboMaker resources.
For more information on transitioning to AWS Batch to help run containerized
simulations, visit this blog
post
Using exported worlds in simulation
Simulation WorldForge can be used to create worlds for use with AWS RoboMaker. Once worlds have been created, they must be exported to use in simulations. You may also upload worlds to use in your simulation.
Exporting worlds offers the opportunity to use:
-
Physics that are different from the default SDF physics
-
Specialized lighting
-
Custom models
This following sections provide more information about using generated worlds in your simulation.
Important
To learn more about how you are charged for AWS RoboMaker, see AWS RoboMaker pricing
Sections
Using an exported world as a data source
With Simulation WorldForge, you can export worlds you can use in your ROS environment. The world you choose to export is copied to a single .zip file in an Amazon S3 bucket. This section describes how to use an exported world in an Amazon S3 bucket in a simulation job by giving instructions on how to adjust the launch file, then creating a simulation job either through the AWS Management Console or using the command line interface.
You must first update your simulation application launch file before using the AWS Management Console or AWS CLI to add a data source.
To update your simulation launch file:
-
Run the following launch commands:
<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>
You can spawn your robot at
(0, 0, 0)
. The worlds Simulation WorldForge generates are guaranteed to have a 1 meter cylinder clear at(0, 0, 0)
. -
Rebuild your image and push as normal. For more information, see Using images to develop AWS RoboMaker applications.
To add a data source
Follow the steps under one of the following tabs:
Using an exported world in ROS and Gazebo
As stated in the previous section, Simulation WorldForge exports your chosen world to a single .zip file. The .zip file includes all of the assets needed to modify and visualize the worlds using ROS and Gazebo. It includes the following important folders:
-
The root folder,
workspace_src
, is the ROS workspace. It contains shared models, world data, and other information for the worlds. It is compatible with ROS 1 and ROS 2. -
Shared models is copied to
workspace_src/src/aws_robomaker_worldforge_shared_models/models
. For example, if the same chair is used in more than one world, it is placed in the shared model folder. -
World data is copied to
workspace_src/src/aws_robomaker_worldforge_worlds/worlds/
.
To update your simulation launch file:
-
Follow the procedure in Creating a world export job to export a world.
-
Unzip
the world into an ROS workspace.cd MyApplication/simulation_ws unzip MyExportedWorld.zip
-
Build the world.
rosdep install --from-paths src --ignore-src -r -y$ colcon build
-
Launch the world.
source install/setup.sh roslaunch aws_robomaker_worldforge_worlds launch_world.launch gui:=true
To build and launch the world in a simulation job:
-
Follow the procedure in Creating a world export job to export a world.
-
Import the exported world into the workspace source package directory
/home/simulation_ws/src/aws_exported_world
using dataSource -
Modify the
LaunchConfig
of simulation application."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" ] },
Using an exported world with custom physics, lights, and models
If your simulation scenario requires customization, you can export and modify the world. For example, you can apply custom physics, different lighting effects, add custom models, or make other modifications.
After the world is exported, you need to modify the .world
file to
include the exported world model. The .world
file uses SDF. For more
information about SDF, see SDFormat
To modify your .world
file to include the exported world
model:
-
Follow the procedure in Creating a world export job to export a world.
-
Copy the following code to your
.world
file. Make sure the world name matches the exported model name.<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>
-
Verify that your launch file includes the modified
.world
file. Use the updated launch file to launch your simulation.