This repository provides Docker images designed to simplify ROS 2 and ROS 1 development. These images come pre-configured with the necessary ROS packages and tools, allowing you to get started with your robotics projects quickly and efficiently.
The following Docker images are available:
humble: Based onubuntu:jammy, this image includes ROS 2 Humble Hawksbill packages and a non-root user for enhanced security.humble-garden: Extends thehumbleimage and includes Gazebo Garden, a powerful 3D robotics simulator.humble-fortress: Extends thehumbleimage and includes Gazebo Fortress, which is the LTS and default sim forhumble.humble-harmonic: Extends thehumbleimage and includes Gazebo Harmonic, which works better withhumblerelated deps. Hence this is Recommended.iron: Based onubuntu:jammy, this image includes ROS 2 Iron Irwini packages and a non-root user.iron-garden: Extends theironimage and includes Gazebo Garden.noetic: Based onubuntu:focal, this image includes ROS Noetic Ninjemys packages and a non-root user.
Important Note: The iron and iron-garden images are currently under development and have not been heavily tested. They may be unstable or contain significant bugs.
To download a pre-built image from GitHub Container Registry (ghcr.io), use the following command:
docker pull ghcr.io/soham2560/<image_name>:latestReplace <image_name> with the desired image name (e.g., humble, humble-garden, iron, iron-garden). For example:
docker pull ghcr.io/soham2560/humble-garden:latestIf you prefer to build the image locally from the Dockerfile, clone this repository and navigate to the root directory. Then, use the following command:
docker build -t ghcr.io/soham2560/<image_name> -f <image_name>/Dockerfile <image_name>Again, replace <image_name> with the appropriate image name. For example, to build the humble-garden image:
docker build -t ghcr.io/soham2560/humble-garden -f humble-garden/Dockerfile humble-gardenExplanation of the docker build command:
docker build: The command to build a Docker image.-t ghcr.io/soham2560/<image_name>: Tags the image with the specified name and registry path.-f <image_name>/Dockerfile: Specifies the path to the Dockerfile to use for building the image.<image_name>: The build context, which is the directory containing the Dockerfile and any other files needed for the build.
If you have made changes to the Dockerfile and want to contribute by pushing the updated image to the registry, use the following command:
docker push ghcr.io/soham2560/<image_name>:latestNote: You need to be authenticated with ghcr.io and have the appropriate permissions to push images to the soham2560 repository.
The following repositories demonstrate how to use these Docker images in real-world ROS 2 projects with Dev Containers. Each repository includes a .devcontainer folder for easy setup.
-
LiDAR_Camera_Calibration: Demonstrates LiDAR-Camera calibration in ROS 2 using the
humbleimage within a Dev Container. -
6DOF_ObjectFollowing: Implements a 6-DOF object following system using ROS 2 and the
humble-gardenimage within a Dev Container. -
ros2_tutorial_repo: A basic ROS 2 tutorial repository demonstrating fundamental concepts, configured with the
humbleimage within a Dev Container. -
Husky Mobile robot: Basic ROS Noetic packages for running the Husky mobile robot on AMD64/x86 device.
-
P3DX Mobile robot: Basic ROS Noetic packages for running the P3DX mobile robot on AMD64/x86 device.
Contributions to this project are welcome! If you have improvements or suggestions, please submit a pull request.
This work is inspired by the work of rahulkatiyar19955. Check out his profile for more interesting and cool robotics projects.
Please consider giving appropriate credit when using these images in your work.