From fb3f76ca9c4e66d2bca0c06483fdfc764a122234 Mon Sep 17 00:00:00 2001 From: acuadros95 Date: Tue, 6 Jun 2023 09:47:51 +0000 Subject: [PATCH 1/2] Iron release Signed-off-by: acuadros95 --- .github/workflows/generate_agent_docker.yml | 8 +++--- .github/workflows/generate_base_docker.yml | 8 +++--- .github/workflows/generate_libgen_docker.yml | 8 +++--- Demo-Kobuki-Firmware/Dockerfile | 13 --------- Demo-Kobuki/Dockerfile | 24 ---------------- Demo-Kobuki/demo_kobuki_entrypoint.sh | 3 -- README.md | 29 +++++--------------- base/Dockerfile | 2 +- micro-ROS-Agent/Dockerfile | 4 +-- micro-ROS-Olimex-NuttX/Dockerfile | 18 ------------ micro-ROS-demos/Dockerfile | 2 +- micro-ROS-static-library-builder/Dockerfile | 2 +- 12 files changed, 24 insertions(+), 97 deletions(-) delete mode 100644 Demo-Kobuki-Firmware/Dockerfile delete mode 100644 Demo-Kobuki/Dockerfile delete mode 100755 Demo-Kobuki/demo_kobuki_entrypoint.sh delete mode 100644 micro-ROS-Olimex-NuttX/Dockerfile diff --git a/.github/workflows/generate_agent_docker.yml b/.github/workflows/generate_agent_docker.yml index b4df2ec..da265a8 100644 --- a/.github/workflows/generate_agent_docker.yml +++ b/.github/workflows/generate_agent_docker.yml @@ -13,10 +13,10 @@ 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 steps: diff --git a/.github/workflows/generate_base_docker.yml b/.github/workflows/generate_base_docker.yml index c03e8e7..e9d364e 100644 --- a/.github/workflows/generate_base_docker.yml +++ b/.github/workflows/generate_base_docker.yml @@ -13,10 +13,10 @@ 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 steps: diff --git a/.github/workflows/generate_libgen_docker.yml b/.github/workflows/generate_libgen_docker.yml index 82dff58..5b536c8 100644 --- a/.github/workflows/generate_libgen_docker.yml +++ b/.github/workflows/generate_libgen_docker.yml @@ -13,10 +13,10 @@ 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 steps: diff --git a/Demo-Kobuki-Firmware/Dockerfile b/Demo-Kobuki-Firmware/Dockerfile deleted file mode 100644 index 273615d..0000000 --- a/Demo-Kobuki-Firmware/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM microros/base:foxy - -WORKDIR /uros_ws - -RUN apt-get update - -RUN . ./install/setup.sh && \ - ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407 -RUN . ./install/setup.sh && \ - ros2 run micro_ros_setup configure_firmware.sh drive_base - -RUN . ./install/setup.sh && \ - ros2 run micro_ros_setup build_firmware.sh \ No newline at end of file diff --git a/Demo-Kobuki/Dockerfile b/Demo-Kobuki/Dockerfile deleted file mode 100644 index e01db41..0000000 --- a/Demo-Kobuki/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM microros/micro-ros-agent:foxy - -WORKDIR /uros_ws - -RUN apt-get update - -RUN git clone --depth 1 https://github.com/micro-ROS/micro-ROS_kobuki_demo \ - src/micro-ROS_kobuki_demo -RUN git clone --depth 1 https://github.com/micro-ROS/drive_base \ - src/drive_base - -# install deps -- but skip agent, it's already in here -RUN rosdep install -y --from-paths src -i src --skip-keys micro_ros_agent - -RUN . ./install/setup.sh && \ - colcon build --symlink-install --packages-select drive_base_msgs \ - base_info_handler \ - micro-ros_kobuki_demo_remote \ - micro-ros_kobuki_demo_robot-description && \ - rm -rf build log - - # setup entrypoint -COPY ./demo_kobuki_entrypoint.sh / -ENTRYPOINT ["/bin/sh", "/demo_kobuki_entrypoint.sh"] diff --git a/Demo-Kobuki/demo_kobuki_entrypoint.sh b/Demo-Kobuki/demo_kobuki_entrypoint.sh deleted file mode 100755 index f7c7c90..0000000 --- a/Demo-Kobuki/demo_kobuki_entrypoint.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/bash -source "/uros_ws/install/setup.sh" -exec ros2 launch micro-ros_kobuki_demo_remote remote_without_control.launch.py "$@" diff --git a/README.md b/README.md index f02f009..b6bbe8e 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ 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). @@ -11,11 +11,10 @@ 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) @@ -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. @@ -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. @@ -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. @@ -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: diff --git a/base/Dockerfile b/base/Dockerfile index 6493a7a..90ab8a3 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,4 +1,4 @@ -FROM ros:rolling +FROM ros:iron WORKDIR /uros_ws diff --git a/micro-ROS-Agent/Dockerfile b/micro-ROS-Agent/Dockerfile index 50a8dc6..c5ccd41 100644 --- a/micro-ROS-Agent/Dockerfile +++ b/micro-ROS-Agent/Dockerfile @@ -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 \ @@ -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 diff --git a/micro-ROS-Olimex-NuttX/Dockerfile b/micro-ROS-Olimex-NuttX/Dockerfile deleted file mode 100644 index 62aca4a..0000000 --- a/micro-ROS-Olimex-NuttX/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM microros/firmware:rolling - -WORKDIR /uros_ws - -RUN apt install -y gperf openocd automake - -RUN git clone https://bitbucket.org/nuttx/tools.git ~/tools -RUN (cd ~/tools/kconfig-frontends && \ - ./configure --enable-mconf --disable-nconf --disable-gconf --disable-qconf && \ - LD_RUN_PATH=/usr/local/lib && make && make install && ldconfig) - -RUN cd firmware/NuttX && \ - tools/configure.sh configs/olimex-stm32-e407/uros && \ - cd ../.. - -RUN find ./firmware/mcu_ws/ -name rmw_microxrcedds.config -exec sed -i "s/CONFIG_MICRO_XRCEDDS_TRANSPORT=udp/CONFIG_MICRO_XRCEDDS_TRANSPORT=serial/g" {} \; - -RUN . ./install/local_setup.sh && ./install/micro_ros_setup/lib/micro_ros_setup/build_firmware.sh diff --git a/micro-ROS-demos/Dockerfile b/micro-ROS-demos/Dockerfile index 4a09cec..ad2bc48 100644 --- a/micro-ROS-demos/Dockerfile +++ b/micro-ROS-demos/Dockerfile @@ -1,4 +1,4 @@ -FROM microros/base:rolling +FROM microros/base:iron WORKDIR /uros_ws diff --git a/micro-ROS-static-library-builder/Dockerfile b/micro-ROS-static-library-builder/Dockerfile index 69a1c5a..ab28eab 100755 --- a/micro-ROS-static-library-builder/Dockerfile +++ b/micro-ROS-static-library-builder/Dockerfile @@ -1,4 +1,4 @@ -FROM ros:rolling +FROM ros:iron RUN mkdir -p uros_ws WORKDIR uros_ws From 86f25bafd749f44d2963965329f741fc3d21becd Mon Sep 17 00:00:00 2001 From: acuadros95 Date: Tue, 6 Jun 2023 09:49:49 +0000 Subject: [PATCH 2/2] Update CI and docker branches Signed-off-by: acuadros95 --- .github/workflows/generate_agent_docker.yml | 2 +- .github/workflows/generate_base_docker.yml | 2 +- .github/workflows/generate_libgen_docker.yml | 2 +- base/Dockerfile | 2 +- micro-ROS-static-library-builder/Dockerfile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/generate_agent_docker.yml b/.github/workflows/generate_agent_docker.yml index da265a8..4b68751 100644 --- a/.github/workflows/generate_agent_docker.yml +++ b/.github/workflows/generate_agent_docker.yml @@ -18,7 +18,7 @@ jobs: - ros_distribution: iron branch: iron - ros_distribution: rolling - branch: main + branch: rolling steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/generate_base_docker.yml b/.github/workflows/generate_base_docker.yml index e9d364e..a1a9909 100644 --- a/.github/workflows/generate_base_docker.yml +++ b/.github/workflows/generate_base_docker.yml @@ -18,7 +18,7 @@ jobs: - ros_distribution: iron branch: iron - ros_distribution: rolling - branch: main + branch: rolling steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/generate_libgen_docker.yml b/.github/workflows/generate_libgen_docker.yml index 5b536c8..bc71da5 100644 --- a/.github/workflows/generate_libgen_docker.yml +++ b/.github/workflows/generate_libgen_docker.yml @@ -18,7 +18,7 @@ jobs: - ros_distribution: iron branch: iron - ros_distribution: rolling - branch: main + branch: rolling steps: - uses: actions/checkout@v3 with: diff --git a/base/Dockerfile b/base/Dockerfile index 90ab8a3..b9aba05 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -2,7 +2,7 @@ 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 \ diff --git a/micro-ROS-static-library-builder/Dockerfile b/micro-ROS-static-library-builder/Dockerfile index ab28eab..b01dec6 100755 --- a/micro-ROS-static-library-builder/Dockerfile +++ b/micro-ROS-static-library-builder/Dockerfile @@ -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 \