Author: Tobit Flatscher (2021 - 2023)
This guide discusses best practices for robotics development with the Robot Operating System (ROS/ROS 2) and Docker/Docker-Compose. 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.
This guide is structured in four chapters:
- Motivation: Tries to give you good reasonds for why you should use Docker as a company or research institution.
- Introduction to Docker and Docker-Compose: Introduces fundamental concepts of container-based development.
- Set-up with Visual Studio Code: Walks you through the set-up of containers with Visual Studio Code.
- Graphic user interfaces and Docker: Discusses the challenges of using Docker with graphic user interfaces and presents workarounds.
- ROS and Docker: Discusses best-practices of Docker and ROS/ROS 2.
- Working with hardware: Discusses best-practices when working with hardware.
- Templates: Provides templates for ROS and ROS 2 that you can build your own workspace off.
It is further extended by an external guide on Docker for real-time applications with PREEMPT_RT
that can be found here as well as several examples for giving software running inside a container access to hardware.
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-ros.git