Robot Containers
This repository contains Dockerfiles for building containers for various robots.
It also includes a python script run.py that wraps the docker command to enable:
- building, starting and entering the container in one step
- graphical applications
- nvidia GPU passthrough
- realtime scheduling
- host networking
- full external device access (USB, cameras, etc.)
Finally, it includes roboco, a script for generating a new project from the included Dockerfiles.
Table of Contents
Requirements
Docker
-
Tested with Docker 20.10.23.
-
Install on Ubuntu using
sudo apt install docker.io(other installation methods may not play well with the nvidia-docker2 runtime.) -
Follow "Manage Docker as a non-root user" at https://docs.docker.com/engine/install/linux-postinstall/
nvidia-docker2 (for GPU support, optional)
- Install nvidia-docker2 by following https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit
VSCode - Dev Containers Extension (Optional)
- Tested with v0.292.0 of Dev Containers extension https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
Installation
Using pip
pip install roboco
Using git
git clone https://github.com/monashrobotics/robot_containers.git
cd robot_containers
pip install .
Usage
Adding a container to your project
roboco init
Follow the prompts to select the robot type and additional features.
Once completed, there will be two new files in your current directory: Dockerfile and run.py.
Running the container
Build the image and run the container using:
./run.py
Customising the container
The Dockerfile can be edited to add additional dependencies or change the base image.
When you make changes to the Dockerfile, you will need to rebuild the image using:
./run.py build
Then remove the old container and start a new one:
./run.py rm
./run.py
Available Dockerfile Templates
Dockerfile templates are available for the following robot / ROS / Ubuntu combinations.
| Robot / ROS Distro (Ubuntu OS) | ROS 1 Noetic (20.04) | ROS 2 Foxy (20.04) | ROS 2 Humble (22.04) |
|---|---|---|---|
| ABB YuMi | WIP | ❌ | ❌ |
| Baxter | WIP | ❌ | ❌ |
| Fetch | WIP | ❌ | ❌ |
| Jackal | WIP | WIP | WIP |
| Panda | WIP | ❌ | ❌ |
| Ridgeback | WIP | ❌ | ❌ |
| UR5 | ✅ | ❌ | WIP |
Generic ROS 1 and ROS 2 Dockerfile templates for the following distributions are also available:
-
ROS 1 Kinetic (16.04)
-
ROS 1 Melodic (18.04)
-
ROS 1 Noetic (20.04)
-
ROS 2 Foxy (20.04)
-
ROS 2 Galactic (20.04)
-
ROS 2 Humble (22.04)
Hardware Drivers
Snippets are available for these hardware drivers and ROS distro combinations:
| Driver / ROS Distro (Ubuntu OS) | ROS 1 Noetic (20.04) | ROS 2 Foxy (20.04) | ROS 2 Humble (22.04) |
|---|---|---|---|
| RealSense Camera | WIP | WIP | WIP |
| Velodyne LiDAR | WIP | WIP | WIP |
| Robotiq 2F-85 Gripper | WIP | ❌ | ❌ |
| Robotiq FT-300 Force-Torque Sensor | WIP | ❌ | ❌ |
Software Snippets
Snippets are available for the following software packages:
| Software | ROS 1 Noetic (20.04) | ROS 2 Foxy (20.04) | ROS 2 Humble (22.04) |
|---|---|---|---|
| pytorch | WIP | WIP | WIP |
Contributing
If there's a robot, or hardware driver that you'd like to see supported, please open an issue or pull request. See CONTRIBUTING.md
Troubleshooting
Metadata
Release files for roboco 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| roboco-0.0.4.tar.gz | 46.1 kB | Without provenance | Details for roboco-0.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| roboco-0.0.4-py3-none-any.whl | Python 3 | none | any | Details for roboco-0.0.4-py3-none-any.whl |
Total release size: 69.2 kB
Release files / roboco-0.0.4.tar.gz
| Download URL | roboco-0.0.4.tar.gz |
|---|---|
| Size | 46.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c33fc958f7b04908b73417ab4eb68aa0718a7f5360cb141ff7c41d8c91f18d65
|
|
BLAKE2b-256 checksum How to use checksums |
9ea8bca4c0cf78fc5404ce3bda658a9dd3200dde6097e6835f327cf9ee955e2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.24.1
|
Release files / roboco-0.0.4-py3-none-any.whl
| Download URL | roboco-0.0.4-py3-none-any.whl |
|---|---|
| Size | 23.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e7fca253a3f9d81a9f282650dc123100a7e0c450541250b95562794f0b3fcda4
|
|
BLAKE2b-256 checksum How to use checksums |
8390704a75e1379a68bf33042c5118bbc6e748dab696258365214f0f10fe633e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.24.1
|
Security for roboco 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.