This demonstrates the structure of a ROS project that works with RoboMaker by creating a robot spinning in an empty world.
RoboMaker sample applications include third-party software licensed under open-source licenses and is provided for demonstration purposes only. Incorporation or use of RoboMaker sample applications in connection with your production workloads or a commercial products or devices may affect your legal rights or obligations under the applicable open-source licenses. Source code information can be found here.
The following will be installed:
- Colcon - Used for building and bundling the application.
- vcstool - Used to pull in sample app dependencies that are only available from source, not from apt or pip.
- rosdep - rosdep is a command-line tool for installing system dependencies of ROS packages.
- ROS Melodic - Other versions may work, however they have not been tested. ROS installation will be skipped if a ROS distro is already installed.
source scripts/setup.sh
- Robot Application
cd robot_ws
colcon build
- Simulation Application
cd simulation_ws
colcon build
The TURTLEBOT3_MODEL
environment variable is optional when running both robot and simulation application. Default value is waffle_pi
. Valid values are burger
, waffle
, and waffle_pi
. Set it by
export TURTLEBOT3_MODEL=<robot-model>
Launch the application with the following commands:
-
Running Robot Application on a Robot
source robot_ws/install/local_setup.sh roslaunch hello_world_robot deploy_rotate.launch
-
Running Robot Application in a Simulation
source robot_ws/install/local_setup.sh roslaunch hello_world_robot rotate.launch
-
Running Simulation Application
source simulation_ws/install/local_setup.sh roslaunch hello_world_simulation empty_world.launch
Note that when running robot applications on a robot, use_sim_time
should be set to false
(which is the default value in deploy_rotate.launch.py
). When running robot applications along with simulation applications, use_sim_time
should be set to true
for both applications (which is the default value in both rotate.launch.py
and empty_word.launch.py
).
When running simulation applications, run command with gui:=true
to run gazebo client for visualization
After exporting a world from WorldForge, we can unzip the content and move under simulation_ws package:
unzip exported_world.zip
mv aws_robomaker_worldforge_pkgs simulation_ws/src/
Build it again
cd simulation_ws
colcon build
Launch the application with the following commands:
source simulation_ws/install/local_setup.sh
roslaunch hello_world_simulation worldforge_world.launch
By default, WorldForge packages will load the exported world. To override, specify the environment variable WORLD_ID
.
# use worldId found in "src/aws_robomaker_worldforge_worlds/worlds"
# e.g, generation_05wq8sybdcn2_world_1
export WORLD_ID=<worldId>
You first need to install colcon-ros-bundle. Python 3.5 or above is required.
pip3 install -U setuptools
pip3 install colcon-ros-bundle
After colcon-ros-bundle is installed you need to build your robot or simulation, then you can bundle with:
# Bundling Robot Application
cd robot_ws
source install/local_setup.sh
colcon bundle
# Bundling Simulation Application
cd simulation_ws
source install/local_setup.sh
colcon bundle
This produces the artifacts robot_ws/bundle/output.tar
and simulation_ws/bundle/output.tar
respectively.
You'll need to upload these to an s3 bucket, then you can use these files to
create a robot application,
create a simulation application,
and create a simulation job in RoboMaker.
/rotate
/clock
/cmd_vel
MIT-0 - See LICENSE for further information
Create issues and pull requests against this Repository on Github