docker-ros-ml-images provides multi-arch machine learning-enabled ROS Docker images.
Important
This repository is open-sourced and maintained by the Institute for Automotive Engineering (ika) at RWTH Aachen University.
DevOps, Containerization and Orchestration of Software-Defined Vehicles are some of many research topics within our Vehicle Intelligence & Automated Driving domain.
If you would like to learn more about how we can support your advanced driver assistance and automated driving efforts, feel free to reach out to us!
📧 opensource@ika.rwth-aachen.de
We recommend to use docker-ros-ml-images in combination with our other tools for Docker and ROS.
- docker-ros automatically builds minimal container images of ROS applications
- docker-run is a CLI tool for simplified interaction with Docker images
ros2
| ros2-cuda
| ros2-tensorrt
| ros2-triton
| ros2-torch
| ros2-tf
| ros2-ml
ros
| ros-cuda
| ros-tensorrt
| ros-triton
| ros-torch
| ros-tf
| ros-ml
docker run --rm rwthika/ros2-ml:humble \
python -c 'import os; import tensorflow as tf; import torch; e="ROS_DISTRO"; print(f"Hello from ROS {os.environ[e]}, PyTorch {torch.__version__}, and TensorFlow {tf.__version__}!")'
With docker-ros-ml-images, we provide a variety of lightweight multi-arch machine learning-enabled ROS Docker images. Starting with plain ROS images, we offer successively larger ROS base images that also come with NVIDIA CUDA, NVIDIA TensorRT, NVIDIA Triton Client, PyTorch and/or TensorFlow installations. Combining the components listed in the table below, we have built more than 100 multi-arch images and make them publicly available on DockerHub. In addition to the provided images, we also publish the generic Dockerfile used to flexibly build images combining the different components.
Component | Variations |
---|---|
ROS Distribution | noetic, humble, iron, jazzy, rolling |
ROS Components | core, base, desktop-full |
ML Framework | NVIDIA CUDA, NVIDIA TensorRT, NVIDIA Triton Client, PyTorch, TensorFlow |
Architecture | amd64, arm64 |
Note
All images are targeted at NVIDIA GPUs and therefore base off of official NVIDIA base images. The arm64 images, in particular, target NVIDIA Jetson SoCs and are based off of NVIDIA L4T base images. Ubuntu 22 images are provided with JetPack 6, Ubuntu 20 images with JetPack 5.
Note
Since robotic applications are often implemented in C++ instead of Python for performance reasons, previous releases of our images also shipped with the C++ APIs of PyTorch and TensorFlow. Installing the C++ libraries often involves cumbersome building from source, so we have decided to drop PyTorch/TensorFlow C++ support for more frequent releases. You may still find those images with ML C++ support under the 23.08 release.
Containers of the provided images start with root
user by default. If the two environment variables DOCKER_UID
and DOCKER_GID
are passed, a new user with the corresponding UID/GID is created on the fly. Most importantly, this features allows to mount and edit files of the host user in the container without having to deal with permission issues.
docker run --rm -it -e DOCKER_UID=$(id -u) -e DOCKER_GID=$(id -g) -e DOCKER_USER=$(id -un) rwthika/ros2:latest
The password of the custom user is set to its username (dockeruser:dockeruser
by default).
rwthika/ros2
(ROS 2)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core
amd64
arm6422.04.5 3.10.12 humble ros-core 3.22.1 - - - - - - humble
,humble-ros-base
amd64
arm6422.04.5 3.10.12 humble ros-base 3.22.1 - - - - - - humble-desktop-full
amd64
arm6422.04.5 3.10.12 humble desktop-full 3.22.1 - - - - - - iron-ros-core
amd64
arm6422.04.5 3.10.12 iron ros-core 3.22.1 - - - - - - iron
,iron-ros-base
amd64
arm6422.04.5 3.10.12 iron ros-base 3.22.1 - - - - - - iron-desktop-full
amd64
arm6422.04.5 3.10.12 iron desktop-full 3.22.1 - - - - - - jazzy-ros-core
amd64
arm6424.04.1 3.12.3 jazzy ros-core 3.28.3 - - - - - - latest
,jazzy
,jazzy-ros-base
amd64
arm6424.04.1 3.12.3 jazzy ros-base 3.28.3 - - - - - - jazzy-desktop-full
amd64
arm6424.04.1 3.12.3 jazzy desktop-full 3.28.3 - - - - - - rolling-ros-core
amd64
arm6424.04.1 3.12.3 rolling ros-core 3.28.3 - - - - - - rolling
,rolling-ros-base
amd64
arm6424.04.1 3.12.3 rolling ros-base 3.28.3 - - - - - - rolling-desktop-full
amd64
arm6424.04.1 3.12.3 rolling desktop-full 3.28.3 - - - - - -
rwthika/ros2-cuda
(ROS 2, NVIDIA CUDA)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core
amd64
arm6422.04.3 3.10.12 humble ros-core 3.22.1 12.2.140 - - - - - humble
,humble-ros-base
amd64
arm6422.04.3 3.10.12 humble ros-base 3.22.1 12.2.140 - - - - - humble-desktop-full
amd64
arm6422.04.3 3.10.12 humble desktop-full 3.22.1 12.2.140 - - - - - iron-ros-core
amd64
arm6422.04.3 3.10.12 iron ros-core 3.22.1 12.2.140 - - - - - iron
,iron-ros-base
amd64
arm6422.04.3 3.10.12 iron ros-base 3.22.1 12.2.140 - - - - - iron-desktop-full
amd64
arm6422.04.3 3.10.12 iron desktop-full 3.22.1 12.2.140 - - - - - jazzy-ros-core
amd64 24.04 3.12.3 jazzy ros-core 3.28.3 12.6.37 - - - - - latest
,jazzy
,jazzy-ros-base
amd64 24.04 3.12.3 jazzy ros-base 3.28.3 12.6.37 - - - - - jazzy-desktop-full
amd64
arm6424.04
22.04.33.12.3
3.10.12jazzy desktop-full
built from src3.28.3
3.22.112.6.37
12.2.140- - - - - rolling-ros-core
amd64 24.04 3.12.3 rolling ros-core 3.28.3 12.6.37 - - - - - rolling
,rolling-ros-base
amd64 24.04 3.12.3 rolling ros-base 3.28.3 12.6.37 - - - - - rolling-desktop-full
amd64 24.04 3.12.3 rolling desktop-full 3.28.3 12.6.37 - - - - -
rwthika/ros2-tensorrt
(ROS 2, NVIDIA CUDA, NVIDIA TensorRT)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core
amd64
arm6422.04.3 3.10.12 humble ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - - humble
,humble-ros-base
amd64
arm6422.04.3 3.10.12 humble ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - - humble-desktop-full
amd64
arm6422.04.3 3.10.12 humble desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - - iron-ros-core
amd64
arm6422.04.3 3.10.12 iron ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - - iron
,iron-ros-base
amd64
arm6422.04.3 3.10.12 iron ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - - iron-desktop-full
amd64
arm6422.04.3 3.10.12 iron desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - - jazzy-desktop-full
amd64
arm6422.04.3 3.10.12 jazzy built from src 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - -
rwthika/ros2-triton
(ROS 2, NVIDIA CUDA, NVIDIA Triton Client)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core-triton2.48.0
amd64
arm6422.04.3 3.10.12 humble ros-core 3.22.1 12.2.140 - - 2.48.0 - - humble
,humble-ros-base-triton2.48.0
amd64
arm6422.04.3 3.10.12 humble ros-base 3.22.1 12.2.140 - - 2.48.0 - - humble-desktop-full-triton2.48.0
amd64
arm6422.04.3 3.10.12 humble desktop-full 3.22.1 12.2.140 - - 2.48.0 - - iron-ros-core-triton2.48.0
amd64
arm6422.04.3 3.10.12 iron ros-core 3.22.1 12.2.140 - - 2.48.0 - - iron
,iron-ros-base-triton2.48.0
amd64
arm6422.04.3 3.10.12 iron ros-base 3.22.1 12.2.140 - - 2.48.0 - - iron-desktop-full-triton2.48.0
amd64
arm6422.04.3 3.10.12 iron desktop-full 3.22.1 12.2.140 - - 2.48.0 - - jazzy-ros-core-triton2.48.0
amd64 24.04 3.12.3 jazzy ros-core 3.28.3 12.6.37 - - 2.48.0 - - latest
,jazzy
,jazzy-ros-base-triton2.48.0
amd64 24.04 3.12.3 jazzy ros-base 3.28.3 12.6.37 - - 2.48.0 - - jazzy-desktop-full-triton2.48.0
amd64
arm6424.04
22.04.33.12.3
3.10.12jazzy desktop-full
built from src3.28.3
3.22.112.6.37
12.2.140- - 2.48.0 - - rolling-ros-core-triton2.48.0
amd64 24.04 3.12.3 rolling ros-core 3.28.3 12.6.37 - - 2.48.0 - - rolling
,rolling-ros-base-triton2.48.0
amd64 24.04 3.12.3 rolling ros-base 3.28.3 12.6.37 - - 2.48.0 - - rolling-desktop-full-triton2.48.0
amd64 24.04 3.12.3 rolling desktop-full 3.28.3 12.6.37 - - 2.48.0 - -
rwthika/ros2-torch
(ROS 2, NVIDIA CUDA, NVIDIA TensorRT, PyTorch)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core-torch2.3.0
amd64
arm6422.04.3 3.10.12 humble ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 - humble
,humble-ros-base-torch2.3.0
amd64
arm6422.04.3 3.10.12 humble ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 - humble-desktop-full-torch2.3.0
amd64
arm6422.04.3 3.10.12 humble desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 - iron-ros-core-torch2.3.0
amd64
arm6422.04.3 3.10.12 iron ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 - iron
,iron-ros-base-torch2.3.0
amd64
arm6422.04.3 3.10.12 iron ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 - iron-desktop-full-torch2.3.0
amd64
arm6422.04.3 3.10.12 iron desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 - jazzy-desktop-full-torch2.3.0
amd64
arm6422.04.3 3.10.12 jazzy built from src 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 -
rwthika/ros2-tf
(ROS 2, NVIDIA CUDA, NVIDIA TensorRT, TensorFlow)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core-tf2.16.1
amd64
arm6422.04.3 3.10.12 humble ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1 humble
,humble-ros-base-tf2.16.1
amd64
arm6422.04.3 3.10.12 humble ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1 humble-desktop-full-tf2.16.1
amd64
arm6422.04.3 3.10.12 humble desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1 iron-ros-core-tf2.16.1
amd64
arm6422.04.3 3.10.12 iron ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1 iron
,iron-ros-base-tf2.16.1
amd64
arm6422.04.3 3.10.12 iron ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1 iron-desktop-full-tf2.16.1
amd64
arm6422.04.3 3.10.12 iron desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1 jazzy-desktop-full-tf2.16.1
amd64
arm6422.04.3 3.10.12 jazzy built from src 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- - 2.16.1
rwthika/ros2-ml
(ROS 2, NVIDIA CUDA, NVIDIA TensorRT, PyTorch, TensorFlow)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow humble-ros-core-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 humble ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1 humble
,humble-ros-base-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 humble ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1 humble-desktop-full-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 humble desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1 iron-ros-core-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 iron ros-core 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1 iron
,iron-ros-base-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 iron ros-base 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1 iron-desktop-full-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 iron desktop-full 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1 jazzy-desktop-full-tf2.16.1-torch2.3.0
amd64
arm6422.04.3 3.10.12 jazzy built from src 3.24.0
3.22.112.2.128
12.2.1408.9.5.27
8.9.4.258.6.1.6
8.6.2.3- 2.3.0 2.16.1
rwthika/ros
(ROS)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core
amd64
arm6420.04.6 3.8.10 noetic ros-core 3.16.3 - - - - - - latest
,noetic
,noetic-ros-base
amd64
arm6420.04.6 3.8.10 noetic ros-base 3.16.3 - - - - - - noetic-desktop-full
amd64
arm6420.04.6 3.8.10 noetic desktop-full 3.16.3 - - - - - -
rwthika/ros-cuda
(ROS, NVIDIA CUDA)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core
amd64
arm6420.04.6 3.8.10 noetic ros-core 3.16.3 11.4.148
11.4.298- - - - - latest
,noetic
,noetic-ros-base
amd64
arm6420.04.6 3.8.10 noetic ros-base 3.16.3 11.4.148
11.4.298- - - - - noetic-desktop-full
amd64
arm6420.04.6 3.8.10 noetic desktop-full 3.16.3 11.4.148
11.4.298- - - - -
rwthika/ros-tensorrt
(ROS, NVIDIA CUDA, NVIDIA TensorRT)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-core 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- - - latest
,noetic
,noetic-ros-base
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-base 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- - - noetic-desktop-full
amd64
arm6420.04.2
20.04.63.8.10 noetic desktop-full 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- - -
rwthika/ros-triton
(ROS, NVIDIA CUDA, NVIDIA Triton Client)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core-triton2.48.0
amd64
arm6420.04.6 3.8.10 noetic ros-core 3.16.3 11.4.148
11.4.298- - 2.48.0 - - latest
,noetic
,noetic-ros-base-triton2.48.0
amd64
arm6420.04.6 3.8.10 noetic ros-base 3.16.3 11.4.148
11.4.298- - 2.48.0 - - noetic-desktop-full-triton2.48.0
amd64
arm6420.04.6 3.8.10 noetic desktop-full 3.16.3 11.4.148
11.4.298- - 2.48.0 - -
rwthika/ros-torch
(ROS, NVIDIA CUDA, NVIDIA TensorRT, PyTorch)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core-torch2.1.0
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-core 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- 2.1.0 - latest
,noetic
,noetic-ros-base-torch2.1.0
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-base 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- 2.1.0 - noetic-desktop-full-torch2.1.0
amd64
arm6420.04.2
20.04.63.8.10 noetic desktop-full 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- 2.1.0 -
rwthika/ros-tf
(ROS, NVIDIA CUDA, NVIDIA TensorRT, TensorFlow)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core-tf2.12.0
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-core 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- - 2.12.0 latest
,noetic
,noetic-ros-base-tf2.12.0
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-base 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- - 2.12.0 noetic-desktop-full-tf2.12.0
amd64
arm6420.04.2
20.04.63.8.10 noetic desktop-full 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- - 2.12.0
rwthika/ros-ml
(ROS, NVIDIA CUDA, NVIDIA TensorRT, PyTorch, TensorFlow)
Click to expand
Tag Arch Ubuntu Python ROS ROS Package CMake CUDA cuDNN TensorRT Triton PyTorch TensorFlow noetic-ros-core-tf2.12.0-torch2.1.0
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-core 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- 2.1.0 2.12.0 latest
,noetic
,noetic-ros-base-tf2.12.0-torch2.1.0
amd64
arm6420.04.2
20.04.63.8.10 noetic ros-base 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- 2.1.0 2.12.0 noetic-desktop-full-tf2.12.0-torch2.1.0
amd64
arm6420.04.2
20.04.63.8.10 noetic desktop-full 3.14.4
3.16.311.4.108
11.4.2988.2.2.26
8.6.0.1668.0.1
8.5.2- 2.1.0 2.12.0
docker buildx build \
--pull \
--platform $PLATFORM \
--build-arg BASE_IMAGE_TYPE=$BASE_IMAGE_TYPE \
--build-arg UBUNTU_VERSION=$UBUNTU_VERSION \
--build-arg ROS_VERSION=$ROS_VERSION \
--build-arg ROS_DISTRO=$ROS_DISTRO \
--build-arg ROS_PACKAGE=$ROS_PACKAGE \
--build-arg ROS_BUILD_FROM_SRC=$ROS_BUILD_FROM_SRC \
--build-arg TORCH_VERSION=$TORCH_VERSION \
--build-arg TF_VERSION=$TF_VERSION \
--build-arg TRITON_VERSION=$TRITON_VERSION \
--tag $IMAGE .