Name | roboco JSON |
Version |
0.0.4
JSON |
| download |
home_page | None |
Summary | A tool to generate Dockerfiles for use in robotics, as well as a script to build and enter these containers, with support for graphical applications, GPU passthrough, realtime scheduling, host networking and full device access. |
upload_time | 2023-05-30 02:54:14 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | None |
keywords |
containers
robotics
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Robot Containers
This repository contains Dockerfiles for building containers for [various robots](#available-containers).
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.
[![CI - Test](https://github.com/monashrobotics/robot_containers/actions/workflows/ci.yml/badge.svg)](https://github.com/monashrobotics/robot_containers/actions/workflows/ci.yml)
[![CI - Docker Images](https://github.com/monashrobotics/robot_containers/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/monashrobotics/robot_containers/actions/workflows/docker-publish.yml)
[![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://github.com/charliermarsh/ruff)
[![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/)
[![image](https://img.shields.io/pypi/v/roboco.svg)](https://pypi.python.org/pypi/roboco)
[![image](https://img.shields.io/pypi/pyversions/roboco.svg)](https://pypi.python.org/pypi/roboco)
## Table of Contents
* [Requirements](#requirements)
* [Installation](#installation)
* [Usage](#usage)
* [Adding a container to your project](#adding-a-container-to-your-project)
* [Running the container](#running-the-container)
* [Customising the container](#customising-the-container)
* [Available Dockerfile Templates](#available-dockerfile-templates)
* [Hardware Drivers](#hardware-drivers)
* [Software Snippets](#software-snippets)
* [Contributing](#contributing)
* [Troubleshooting](#troubleshooting)
## 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](CONTRIBUTING.md)
## Troubleshooting
See [docs/troubleshooting.md](docs/troubleshooting.md)
Raw data
{
"_id": null,
"home_page": null,
"name": "roboco",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "containers,robotics",
"author": null,
"author_email": "Owen Brooks <owen.h.brooks@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/9e/a8/bca4c0cf78fc5404ce3bda658a9dd3200dde6097e6835f327cf9ee955e2c/roboco-0.0.4.tar.gz",
"platform": null,
"description": "\n# Robot Containers\nThis repository contains Dockerfiles for building containers for [various robots](#available-containers).\nIt also includes a python script `run.py` that wraps the `docker` command to enable:\n\n- building, starting and entering the container in one step\n- graphical applications\n- nvidia GPU passthrough\n- realtime scheduling\n- host networking\n- full external device access (USB, cameras, etc.)\n\nFinally, it includes `roboco`, a script for generating a new project from the included Dockerfiles.\n\n[![CI - Test](https://github.com/monashrobotics/robot_containers/actions/workflows/ci.yml/badge.svg)](https://github.com/monashrobotics/robot_containers/actions/workflows/ci.yml)\n[![CI - Docker Images](https://github.com/monashrobotics/robot_containers/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/monashrobotics/robot_containers/actions/workflows/docker-publish.yml)\n[![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://github.com/charliermarsh/ruff) \n[![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) \n[![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/)\n[![image](https://img.shields.io/pypi/v/roboco.svg)](https://pypi.python.org/pypi/roboco)\n[![image](https://img.shields.io/pypi/pyversions/roboco.svg)](https://pypi.python.org/pypi/roboco)\n\n## Table of Contents\n\n * [Requirements](#requirements)\n * [Installation](#installation)\n * [Usage](#usage)\n * [Adding a container to your project](#adding-a-container-to-your-project)\n * [Running the container](#running-the-container)\n * [Customising the container](#customising-the-container)\n* [Available Dockerfile Templates](#available-dockerfile-templates)\n * [Hardware Drivers](#hardware-drivers)\n * [Software Snippets](#software-snippets)\n* [Contributing](#contributing)\n* [Troubleshooting](#troubleshooting)\n\n## Requirements\n\n### Docker\n- Tested with Docker 20.10.23. \n\n- Install on Ubuntu using `sudo apt install docker.io` (other installation methods may not play well with the nvidia-docker2 runtime.)\n\n- Follow \"Manage Docker as a non-root user\" at https://docs.docker.com/engine/install/linux-postinstall/\n\n### nvidia-docker2 (for GPU support, optional)\n- Install nvidia-docker2 by following https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit\n\n### VSCode - Dev Containers Extension (Optional)\n- Tested with v0.292.0 of Dev Containers extension https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers\n\n## Installation\n\n### Using pip\n```\npip install roboco\n```\n\n### Using git\n```\ngit clone https://github.com/monashrobotics/robot_containers.git\ncd robot_containers\npip install .\n```\n\n## Usage\n### Adding a container to your project\n```\nroboco init\n```\n\nFollow the prompts to select the robot type and additional features.\n\nOnce completed, there will be two new files in your current directory: `Dockerfile` and `run.py`.\n\n### Running the container\n\nBuild the image and run the container using:\n```\n./run.py\n```\n\n### Customising the container\n\nThe `Dockerfile` can be edited to add additional dependencies or change the base image.\n\nWhen you make changes to the `Dockerfile`, you will need to rebuild the image using:\n```\n./run.py build\n```\nThen remove the old container and start a new one:\n```\n./run.py rm\n./run.py\n```\n\n## Available Dockerfile Templates\n\nDockerfile templates are available for the following robot / ROS / Ubuntu combinations.\n\n| Robot / ROS Distro (Ubuntu OS) | ROS 1 Noetic (20.04) | ROS 2 Foxy (20.04) | ROS 2 Humble (22.04)\n| --- | :---: | :---: | :---: |\n| ABB YuMi | WIP | \u274c | \u274c |\n| Baxter | WIP | \u274c | \u274c |\n| Fetch | WIP | \u274c | \u274c |\n| Jackal | WIP | WIP | WIP |\n| Panda | WIP | \u274c | \u274c |\n| Ridgeback | WIP | \u274c | \u274c |\n| UR5 | \u2705 | \u274c | WIP |\n\nGeneric ROS 1 and ROS 2 Dockerfile templates for the following distributions are also available:\n\n- ROS 1 Kinetic (16.04)\n- ROS 1 Melodic (18.04)\n- ROS 1 Noetic (20.04)\n\n- ROS 2 Foxy (20.04)\n- ROS 2 Galactic (20.04)\n- ROS 2 Humble (22.04)\n\n### Hardware Drivers\n\nSnippets are available for these hardware drivers and ROS distro combinations:\n\n| Driver / ROS Distro (Ubuntu OS) | ROS 1 Noetic (20.04) | ROS 2 Foxy (20.04) | ROS 2 Humble (22.04)\n| --- | :---: | :---: | :---: |\n| RealSense Camera | WIP | WIP | WIP |\n| Velodyne LiDAR | WIP | WIP | WIP |\n| Robotiq 2F-85 Gripper | WIP | \u274c | \u274c |\n| Robotiq FT-300 Force-Torque Sensor | WIP | \u274c | \u274c |\n\n### Software Snippets\n\nSnippets are available for the following software packages:\n\n| Software | ROS 1 Noetic (20.04) | ROS 2 Foxy (20.04) | ROS 2 Humble (22.04)\n| --- | :---: | :---: | :---: |\n| pytorch | WIP | WIP | WIP |\n\n## Contributing\nIf there's a robot, or hardware driver that you'd like to see supported, please open an issue or pull request.\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Troubleshooting\nSee [docs/troubleshooting.md](docs/troubleshooting.md)",
"bugtrack_url": null,
"license": null,
"summary": "A tool to generate Dockerfiles for use in robotics, as well as a script to build and enter these containers, with support for graphical applications, GPU passthrough, realtime scheduling, host networking and full device access.",
"version": "0.0.4",
"project_urls": {
"Documentation": "https://github.com/monashrobotics/robot_containers#readme",
"Issues": "https://github.com/monashrobotics/robot_containers/issues",
"Source": "https://github.com/monashrobotics/robot_containers"
},
"split_keywords": [
"containers",
"robotics"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8390704a75e1379a68bf33042c5118bbc6e748dab696258365214f0f10fe633e",
"md5": "312d6e2fe6255b8a8ee9ac926f00faeb",
"sha256": "e7fca253a3f9d81a9f282650dc123100a7e0c450541250b95562794f0b3fcda4"
},
"downloads": -1,
"filename": "roboco-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "312d6e2fe6255b8a8ee9ac926f00faeb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 23170,
"upload_time": "2023-05-30T02:54:16",
"upload_time_iso_8601": "2023-05-30T02:54:16.801385Z",
"url": "https://files.pythonhosted.org/packages/83/90/704a75e1379a68bf33042c5118bbc6e748dab696258365214f0f10fe633e/roboco-0.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9ea8bca4c0cf78fc5404ce3bda658a9dd3200dde6097e6835f327cf9ee955e2c",
"md5": "9173df6a1dd3b62a0ec0a68e45fbb649",
"sha256": "c33fc958f7b04908b73417ab4eb68aa0718a7f5360cb141ff7c41d8c91f18d65"
},
"downloads": -1,
"filename": "roboco-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "9173df6a1dd3b62a0ec0a68e45fbb649",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 46054,
"upload_time": "2023-05-30T02:54:14",
"upload_time_iso_8601": "2023-05-30T02:54:14.636622Z",
"url": "https://files.pythonhosted.org/packages/9e/a8/bca4c0cf78fc5404ce3bda658a9dd3200dde6097e6835f327cf9ee955e2c/roboco-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-30 02:54:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "monashrobotics",
"github_project": "robot_containers#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "roboco"
}