Build and Bundle Applications - AWS RoboMaker

Build and Bundle Applications

Once you have a working simulation in a development environment, you can bundle it, upload to Amazon S3, and create a RoboMaker simulation job to run it. There are a couple of build tools that developers use with ROS. The one that is most commonly used with AWS RoboMaker is called colcon. It automates the building and bundling of ROS and ROS2 applications. It should be a drop-in replacement for catkin_make. Colcon bundle will generate an easy-to-deploy .tar file.

Install Colcon

To use colcon, install colcon-ros-bundle and Python 3.5 or above.The following commands will installcolcon, python3 andcolcon-bundle:

apt-get update apt-get install python3-pip python3-apt pip3 install -U setuptools pip3 install -U colcon-common-extensions colcon-ros-bundle

*Note: When using the “sudo apt update” command, if you receive a GPG error follow these instructions Troubleshooting Development Environments.

If you have already installed colcon, the following command will install bundling support:

pip3 install -U colcon-ros-bundle

Build and Bundle

After colcon is installed, use the following commands to build and then bundle your robotics application and simulation application:

cd your-robotic-application-workspace colcon build colcon bundle cd your-simulation-application-workspace colcon build colcon bundle

You can test your application prior to bundling and uploading with the following:

source install/setup.bash roslaunch package_name launch_file

The colcon build and bundle commands produces the artifacts robot_ws/bundle/output.tar and simulation_ws/bundle/output.tar respectively. You must upload these to an S3 bucket. Then you can use these files to do the following tasks:

  

Note

Before running a simulation job in AWS RoboMaker simulation, check the GUI argument in the launch file. The launch file starts the Gazebo server, and setting gui:=true will also launch the Gazebo client that is used for viewing the simulation on the Ubuntu desktop. However, when running an AWS RoboMaker simulation job, the Gazebo server and client are started separately and you should ensure that your launch files do not set the gui argument to true. You can start and configure the Gazebo client in the AWS RoboMaker simulation service using the simulation tool configuration.