/docker-for-robotics

Collection of best practices when working with Docker/Docker-Compose and the Robot Operating System (ROS/ROS 2) in simulation as well as with real-hardware with real-time requirements

Primary LanguageDockerfileMIT LicenseMIT

Docker for Robotics with the Robot Operating System (ROS/ROS 2)

Author: Tobit Flatscher (2021 - 2024)

ROS Docker ROS 2 Docker License: MIT

Overview

This guide discusses best practices for robotics development with the Robot Operating System (ROS/ROS 2) and Docker/Docker-Compose on Linux as well as Windows operating systems. This includes displaying graphic user interfaces, working with hardware, real-time capable code and the network set-up for multiple machines. Additionally it walks you through the set-up with Visual Studio Code.

This repository used to be part of another guide I have written on Docker and real-time applications. As the general Docker and ROS part has now become quite lengthy, I have decided to extract it and create a repository of its own for it.

Docker on Ubuntu Docker on Windows
ROS Indigo running from a Docker container on Ubuntu 22.04 ROS Indigo running from a Docker container on Windows 10 with WSL2

Structure of this guide

This guide is structured in the following chapters:

The folder examples/ contains different ROS and ROS 2 examples (in simulation as well as with hardware access) while the folder templates/ provides templates for ROS and ROS 2 that you can build your own workspace off. This guide is further extended by an external guide on Docker for real-time applications with PREEMPT_RT that can be found here.

Get a copy

This workspace contains several other repositories as submodules. Therefore please clone it with the following command:

$ git clone --recurse-submodules https://github.com/2b-t/docker-for-robotics.git