Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/generate_agent_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
fail-fast: false
matrix:
include:
- ros_distribution: foxy
branch: foxy
- ros_distribution: galactic
branch: galactic
- ros_distribution: humble
branch: humble
- ros_distribution: iron
branch: iron
- ros_distribution: rolling
branch: main
branch: rolling
steps:
- uses: actions/checkout@v3
with:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/generate_base_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
fail-fast: false
matrix:
include:
- ros_distribution: foxy
branch: foxy
- ros_distribution: galactic
branch: galactic
- ros_distribution: humble
branch: humble
- ros_distribution: iron
branch: iron
- ros_distribution: rolling
branch: main
branch: rolling
steps:
- uses: actions/checkout@v3
with:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/generate_libgen_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
fail-fast: false
matrix:
include:
- ros_distribution: foxy
branch: foxy
- ros_distribution: galactic
branch: galactic
- ros_distribution: humble
branch: humble
- ros_distribution: iron
branch: iron
- ros_distribution: rolling
branch: main
branch: rolling
steps:
- uses: actions/checkout@v3
with:
Expand Down
13 changes: 0 additions & 13 deletions Demo-Kobuki-Firmware/Dockerfile

This file was deleted.

24 changes: 0 additions & 24 deletions Demo-Kobuki/Dockerfile

This file was deleted.

3 changes: 0 additions & 3 deletions Demo-Kobuki/demo_kobuki_entrypoint.sh

This file was deleted.

29 changes: 7 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,18 @@
This repository contains Docker-related material aimed at setting up, configuring and developing a [micro-ROS](https://microros.github.io/)-based application.

This set of Dockerfiles provides ready-to-use environments to easily execute micro-ROS examples in your host machine, as well as to use the standalone [micro-ROS build system](https://github.com/micro-ROS/micro_ros_setup).
In addition, two images are provided that allow using micro-ROS as an external library, both in [ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component/tree/main/docker).
In addition, two images are provided that allow using micro-ROS as an external library, both in [ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component/tree/iron/docker).

The Docker images can be found at [dockerhub](https://hub.docker.com/u/microros).

The available images are listed below:

| Image | Description | Status |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| base | Base image with a ROS 2 Rolling installation + micro-ROS specific build system tools. Used as base of any other micro-ROS image | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/base.svg?logo=docker)](https://hub.docker.com/r/microros/base/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/base.svg?logo=docker)](https://hub.docker.com/r/microros/base/)[![Compare Images](https://images.microbadger.com/badges/image/microros/base.svg)](https://microbadger.com/images/microros/base) |
| base | Base image with a ROS 2 Iron installation + micro-ROS specific build system tools. Used as base of any other micro-ROS image | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/base.svg?logo=docker)](https://hub.docker.com/r/microros/base/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/base.svg?logo=docker)](https://hub.docker.com/r/microros/base/)[![Compare Images](https://images.microbadger.com/badges/image/microros/base.svg)](https://microbadger.com/images/microros/base) |
| micro-ros-agent | Image containing a pre-compiled micro-ROS-Agent, ready to use as a standalone application | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro-ros-agent.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-agent/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro-ros-agent.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-agent/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro-ros-agent.svg)](https://microbadger.com/images/microros/micro-ros-agent) |
| micro-ros-demos | Contains pre-compiled micro-ROS demo applications, ready to use to get a taste of micro-ROS capabilities | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro-ros-demos.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-demos/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro-ros-demos.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-demos/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro-ros-demos.svg)](https://microbadger.com/images/microros/micro-ros-demos) |
| micro_ros_static_library_builder | Allows to use a pre-compiled micro-ROS library to develop applications in external environments | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro_ros_static_library_builder.svg?logo=docker)](https://hub.docker.com/r/microros/micro_ros_static_library_builder/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro_ros_static_library_builder.svg?logo=docker)](https://hub.docker.com/r/microros/micro_ros_static_library_builder/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro_ros_static_library_builder.svg)](https://microbadger.com/images/microros/micro_ros_static_library_builder) |
| micro-ros-olimex-nuttx | Contains a ready to flash example for Olimex STM32 E407 | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro-ros-olimex-nuttx.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro-ros-olimex-nuttx.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro-ros-olimex-nuttx.svg)](https://microbadger.com/images/microros/micro-ros-olimex-nuttx) |
| esp-idf-microros | Allows to use micro-ROS as a component of the ESP-IDF build system | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/esp-idf-microros.svg?logo=docker)](https://hub.docker.com/r/microros/esp-idf-microros/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/esp-idf-microros.svg?logo=docker)](https://hub.docker.com/r/microros/esp-idf-microros/)[![Compare Images](https://images.microbadger.com/badges/image/microros/esp-idf-microros.svg)](https://microbadger.com/images/microros/esp-idf-microros) |

![](http://www.plantuml.com/plantuml/svg/VP71JiCm38RlUGfhzsXtn65lW0GFC6M9kreqpMHdWaeyF6v26b3HRlRt_wxzDoV9ZlCzJiQC510yiP-mrXXlUO68yO8incJA4q8apyc-lhn1IFuT6IYwAmgCXEpOZuinVd8YS42vCOhGSAGm7C09RAHPECdJa3wNece3JIXR51mlJh1RrcvdgHTfPVMGENTtQH_O0yRV-qlxl_sirTbnkDES-i0Fs8reJAkHRGDzGYaOemYUlsn87xCjaHfXkexPRjzTfMwiQVwoUlBsMxjG5vrm3klJVWC0)
Expand All @@ -33,11 +32,11 @@ To get an image, use the `docker pull` command:

You can select the preferred tag by appending `:tag` to the image name

* e.g. `docker pull microros/base:rolling`
* e.g. `docker pull microros/base:iron`

Once you have the image locally, type `docker run` to start it. It is not mandatory, although usually useful, to launch your containers using the `--rm` and `--net=host` flags:

* e.g. `docker run -it --rm --net=host microros/micro-ros-agent:rolling`
* e.g. `docker run -it --rm --net=host microros/micro-ros-agent:iron`

`--rm` makes sure that the docker image will be removed after exiting.
`--net=host` provides the container with the same network access as the host.
Expand All @@ -58,7 +57,7 @@ This image is meant to be used as a stand-alone application.
It includes the installation of the ROS 2 version selected by the tag selected, together with a micro-ROS Agent.
The entry point of this image is directly the micro-ROS Agent, so upon execution of `docker run` you will be facing the micro-ROS Agent command line input. Running:

* e.g. `docker run -it --net=host microros/micro-ros-agent:rolling udp4 -p 9999`
* e.g. `docker run -it --net=host microros/micro-ros-agent:iron udp4 -p 9999`

will start a micro-ROS Agent listening to UDP messages on port 9999.

Expand All @@ -72,26 +71,12 @@ You can run regular ROS 2 tools to launch the examples.
* eg: `docker run -it --net=host microros/micro-ros-demos bash`

The currently available examples are listed [here](https://github.com/micro-ROS/micro-ROS-demos/rclc).

#### micro-ros-olimex-nuttx (unmaintained)

This image provides you with a ready-to-flash firmware for Olimex-STM32-E407 boards with demos included.
To be able to flash, you need to map your devices to the Docker container as follows:

* e.g. `docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb microros/micro-ros-olimex-nuttx:rolling`

Once inside the container, you can flash the board by running `scripts/flash.sh` from the `firmware/NuttX` directory.

There you can find a publisher and a subscriber examples.
Both examples use serial transport to communicate with a micro-ROS Agent, so you should start an Agent with the same transport (You can use the `micro-ros-agent` image to do so).
Once a Client-Agent communication is established you can use ROS 2 tools to view the publications from the Olimex or to publish messages to it.

#### micro_ros_static_library_builder

The `micro_ros_static_library_builder` docker image provides you with a set of include files and pre-compiled micro-ROS libraries to develop your micro-ROS application within the Arduino IDE environment.
To be able to use it, use the following command to instantiate a container of this image:

* e.g. `docker run -it -v $(pwd):/arduino_project --net=host microros/micro_ros_static_library_builder:rolling`.
* e.g. `docker run -it -v $(pwd):/arduino_project --net=host microros/micro_ros_static_library_builder:iron`.

Note that folders added to `extras/library_generation/extra_packages` and entries added to `extras/library_generation/extra_packages/extra_packages.repos` will be taken into account by this build system.

Expand All @@ -108,7 +93,7 @@ Then, you can navigate to your example aplications and build it using the ESP ID
## Automated builds

These Dockerfiles are used for automatically creating images on Docker Hub.
These builds are tagged with the ROS 2 version they will be compatible with: e.g. foxy, rolling...
These builds are tagged with the ROS 2 version they will be compatible with: e.g. humble, iron, rolling...
The latest tag will always correspond to the latest release of ROS 2.

These automatic builds have a direct relationship with the content of the micro-ROS repositories:
Expand Down
4 changes: 2 additions & 2 deletions base/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM ros:rolling
FROM ros:iron

WORKDIR /uros_ws

RUN git clone --depth 1 -b main https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup \
RUN git clone --depth 1 -b iron https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup \
&& . /opt/ros/$ROS_DISTRO/setup.sh \
&& apt update \
&& apt install -y ed python3-pip \
Expand Down
4 changes: 2 additions & 2 deletions micro-ROS-Agent/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM microros/base:rolling AS micro-ros-agent-builder
FROM microros/base:iron AS micro-ros-agent-builder

WORKDIR /uros_ws
RUN . /opt/ros/$ROS_DISTRO/setup.sh \
Expand All @@ -8,7 +8,7 @@ RUN . /opt/ros/$ROS_DISTRO/setup.sh \
&& ros2 run micro_ros_setup build_agent.sh \
&& rm -rf log/ build/ src/

FROM ros:rolling-ros-core
FROM ros:iron-ros-core

COPY --from=micro-ros-agent-builder /uros_ws /uros_ws

Expand Down
18 changes: 0 additions & 18 deletions micro-ROS-Olimex-NuttX/Dockerfile

This file was deleted.

2 changes: 1 addition & 1 deletion micro-ROS-demos/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM microros/base:rolling
FROM microros/base:iron

WORKDIR /uros_ws

Expand Down
4 changes: 2 additions & 2 deletions micro-ROS-static-library-builder/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ros:rolling
FROM ros:iron

RUN mkdir -p uros_ws
WORKDIR uros_ws
Expand Down Expand Up @@ -26,7 +26,7 @@ RUN apt update \
&& rm -rf xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz

# Install micro-ROS
RUN git clone -b main https://github.com/micro-ROS/micro-ros-build.git src/micro-ros-build \
RUN git clone -b iron https://github.com/micro-ROS/micro-ros-build.git src/micro-ros-build \
&& . /opt/ros/$ROS_DISTRO/setup.sh \
&& apt update \
&& apt install -y rsync python3-pip python3-nose clang-format pyflakes3 python3-mypy python3-pytest-mock gperf ros-$ROS_DISTRO-osrf-testing-tools-cpp python3-lttng ros-$ROS_DISTRO-mimick-vendor python3-babeltrace \
Expand Down