ROS in a box

Ed Fullman
The Age of Autonomy
2 min readApr 23, 2020

This story is about creating a ROS (Robot Operating System) environment in a Docker container to be exact. This endeavor started out as a quick proof-of-concept to use TensorFlow, Gazebo and MoveIt to create various simulations of robots in ROS and be able share the results with others.

In order to achieve my goals, I needed to build an environment to install all this software. As of this writing my MacBook wasn’t going to be a big help since most of the software doesn’t run on MacOs. I didn’t want to risk damaging my development system, so after a little research, I started to focus on building a ROS containers with all the goodies.

In order to get a working sandbox, I needed:

  • The latest Ubuntu with a full desktop
  • VNC/No-VNC with XFCE Window Manager
  • ROS Latest Full-Desktop
  • The ROS tutorials Cmake, ROS-built-tools, Catkin, etc.
  • RQT and RVIZ
  • Robot Generic Libraries
  • 2D/3D simulators and perception
  • Python 3 64-bit
  • ROS Gazebo Latest — Robot Model Development and Simulation
  • ROS MoveIt Latest — Robot Motion Planning and Simulation
  • TensorFlow GPU
  • Additionally I wanted the container for development, so I was going to need to bind an external local volume on my MacOs to the Docker so my development work wasn’t lost.

If you have ever tried this before, it is certainly doable, but you are not going to find a single installation recipe for the latest version of these products. Also ROS by itself can take a while to install, assuming it doesn’t fail. Then each library (Gazebo, MoveIt, etc.) has special goodies which also create an opportunity for problems. Unless you are doing this kind of work everyday, it can be a relatively demoralizing undertaking.

Additionally, the ROS, Gazebo, and MoveIt projects are under constant and active development. As a result, keeping the installation up-to-date in a local environment would be difficult. My goal was to build something that could be shared, and a local install recipe wasn’t going to give me that.

Docker to Rescue

Docker became the obvious solution to the challenges of building an easy to use and portable sandbox. The result has been pushed to DockerHub here. You can be up and running in under 10 minutes. I’ve created a full Github Wiki here with installation instructions as well as tutorials that help you to use some of the ROS tutorials with the Docker container. Have fun!

--

--

Ed Fullman
The Age of Autonomy

Developing cool products with cool people I care about.