From d677a885cadb2e07ad054f59c0348170254d435d Mon Sep 17 00:00:00 2001 From: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> Date: Tue, 24 May 2022 09:22:03 +0200 Subject: [PATCH 01/38] Humble release (#513) * Add renesas dummy meta (#516) Signed-off-by: Pablo Garrido * Upgrade to Humble * Update packages Signed-off-by: Pablo Garrido * CI with ROS2 build step * Add ros distro to rosdep * Remove line * Fix CI workflow * Test * Test CI env variable * Fix typo * Update CI * Fix nightly * Fix * Add missing galactic tests * Fix * Test zephyr error on foxy * Add zephyr fix Co-authored-by: Pablo Garrido --- .github/workflows/ci.yml | 62 +-- .github/workflows/nightly.yml | 391 +++++++++++++++++- README.md | 3 +- config/agent_uros_packages.repos | 8 +- .../generic/client_uros_packages.repos | 25 +- config/client_uros_packages.repos | 22 +- config/freertos/crazyflie21/board.repos | 2 +- config/freertos/esp32/board.repos | 2 +- config/freertos/nucleo_f446re/board.repos | 2 +- config/freertos/nucleo_f446ze/board.repos | 2 +- config/freertos/nucleo_f746zg/board.repos | 2 +- config/freertos/nucleo_f767zi/board.repos | 2 +- config/freertos/olimex-stm32-e407/board.repos | 4 +- .../host/generic/client_host_packages.repos | 24 +- config/mbed/generic/board.repos | 2 +- config/raspbian/generic/create.sh | 2 +- config/renesas_ra/ra6m5/board.repos | 2 +- config/zephyr/generic/board.repos | 2 +- config/zephyr/generic/create.sh | 2 +- 19 files changed, 467 insertions(+), 94 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a1f457a..3915f478 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,28 +6,37 @@ on: - 'README.md' branches: - '**' +env: + ROS_DISTRO: humble jobs: micro_ros_build: runs-on: ubuntu-latest - container: ros:rolling - + container: + image: ubuntu:jammy + strategy: + fail-fast: false steps: - uses: actions/checkout@v2 with: path: src/micro_ros_setup + - uses: ros-tooling/setup-ros@0.3.2 + with: + use-ros2-testing: true + required-ros-distributions: ${{ env.ROS_DISTRO }} + - name: Dependencies run: | apt update apt install -y python3-colcon-metadata python3-pip - rosdep update --os=ubuntu:jammy --rosdistro $ROS_DISTRO - rosdep install --os=ubuntu:jammy -y --from-paths src --ignore-src -y + rosdep update --rosdistro ${{ env.ROS_DISTRO }} + rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y - name: Build run: | - . /opt/ros/$ROS_DISTRO/setup.sh + . /opt/ros/${{ env.ROS_DISTRO }}/setup.sh colcon build - name: Install micro-ROS build system @@ -41,7 +50,10 @@ jobs: micro_ros_agent: runs-on: ubuntu-latest - container: ros:rolling + container: + image: ubuntu:jammy + strategy: + fail-fast: false needs: micro_ros_build steps: @@ -49,13 +61,18 @@ jobs: with: path: src/micro_ros_setup + - uses: ros-tooling/setup-ros@0.3.2 + with: + use-ros2-testing: true + required-ros-distributions: ${{ env.ROS_DISTRO }} + - name: dependencies run: | apt update apt install -y python3-colcon-metadata python3-pip - apt install -y ros-${ROS_DISTRO}-rmw-fastrtps-cpp - rosdep update --os=ubuntu:jammy --rosdistro $ROS_DISTRO - rosdep install --os=ubuntu:jammy -y --from-paths src --ignore-src -y + apt install -y ros-${{ env.ROS_DISTRO }}-rmw-fastrtps-cpp + rosdep update --rosdistro ${{ env.ROS_DISTRO }} + rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y - uses: actions/download-artifact@v1 with: @@ -68,7 +85,7 @@ jobs: - name: build run: | - . /opt/ros/$ROS_DISTRO/setup.sh + . /opt/ros/${{ env.ROS_DISTRO }}/setup.sh . install/local_setup.sh ros2 run micro_ros_setup create_agent_ws.sh ros2 run micro_ros_setup build_agent.sh @@ -79,9 +96,9 @@ jobs: micro_ros_client: runs-on: ubuntu-latest - container: ros:rolling needs: micro_ros_build - + container: + image: ubuntu:jammy strategy: fail-fast: false matrix: @@ -184,28 +201,25 @@ jobs: - rtos: mbed platform: disco_l475vg_iot01a binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' + steps: - uses: actions/checkout@v2 with: path: src/micro_ros_setup + - uses: ros-tooling/setup-ros@0.3.2 + with: + use-ros2-testing: true + required-ros-distributions: ${{ env.ROS_DISTRO }} + - name: Dependencies run: | apt update apt upgrade -y - # Install last version of CMake - apt install -y apt-transport-https ca-certificates gnupg software-properties-common wget - if [ $(lsb_release -sr) = "22.04" ]; then - echo "Using Ubuntu mainline CMake" - else - echo "Adding Kitware CMake repo to install CMake" - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' - fi apt-get update apt install -y python3-colcon-metadata python3-pip cmake - rosdep update --os=ubuntu:jammy --rosdistro $ROS_DISTRO - rosdep install --os=ubuntu:jammy -y --from-paths src --ignore-src -y + rosdep update --rosdistro ${{ env.ROS_DISTRO }} + rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y - uses: actions/download-artifact@v1 with: @@ -218,7 +232,7 @@ jobs: - name: Configure and build micro-ROS run: | - . /opt/ros/$ROS_DISTRO/setup.sh + . /opt/ros/${{ env.ROS_DISTRO }}/setup.sh . install/local_setup.sh ros2 run micro_ros_setup create_firmware_ws.sh ${{ matrix.rtos }} ${{ matrix.platform }} ros2 run micro_ros_setup configure_firmware.sh ${{ matrix.configuration }} ${{ matrix.transport_arguments }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 942ec641..0872788e 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -18,11 +18,18 @@ jobs: include: - distro: foxy branch: foxy + image: ubuntu:20.04 - distro: rolling branch: main + image: ubuntu:jammy - distro: galactic branch: galactic - container: ros:${{ matrix.distro }} + image: ubuntu:20.04 + - distro: humble + branch: humble + image: ubuntu:jammy + container: + image: ${{ matrix.image }} steps: - uses: actions/checkout@v2 @@ -30,16 +37,21 @@ jobs: path: src/micro_ros_setup ref: ${{ matrix.branch }} + - uses: ros-tooling/setup-ros@0.3.2 + with: + use-ros2-testing: true + required-ros-distributions: ${{ matrix.distro }} + - name: Dependencies run: | apt update apt install -y python3-colcon-metadata python3-pip - rosdep update --os=ubuntu:jammy --rosdistro $ROS_DISTRO - rosdep install --os=ubuntu:jammy -y --from-paths src --ignore-src -y + rosdep update --rosdistro ${{ matrix.distro }} + rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y - name: Build run: | - . /opt/ros/$ROS_DISTRO/setup.sh + . /opt/ros/${{ matrix.distro }}/setup.sh colcon build - name: Install micro-ROS build system @@ -53,7 +65,6 @@ jobs: micro_ros_client: runs-on: ubuntu-latest - container: ros:${{ matrix.distro }} needs: micro_ros_build strategy: @@ -62,6 +73,7 @@ jobs: include: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: host platform: null configuration: null @@ -70,6 +82,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: generate_lib platform: null configuration: null @@ -79,6 +92,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: crazyflie21 configuration: crazyflie_position_publisher @@ -87,6 +101,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: olimex-stm32-e407 configuration: int32_publisher @@ -95,6 +110,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: nucleo_f446re configuration: int32_publisher @@ -103,6 +119,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: nucleo_f446ze configuration: int32_publisher @@ -111,6 +128,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: nucleo_f746zg configuration: int32_publisher @@ -119,6 +137,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: nucleo_f767zi configuration: int32_publisher @@ -127,6 +146,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: freertos platform: esp32 configuration: int32_publisher @@ -135,6 +155,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: zephyr platform: olimex-stm32-e407 configuration: int32_publisher @@ -143,6 +164,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: zephyr platform: discovery_l475_iot1 configuration: int32_publisher @@ -151,6 +173,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: zephyr platform: nucleo_h743zi configuration: int32_publisher @@ -159,6 +182,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: zephyr platform: nucleo_f746zg configuration: int32_publisher @@ -167,6 +191,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: zephyr platform: host configuration: ping_pong @@ -175,6 +200,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: nuttx platform: olimex-stm32-e407 configuration: drive_base @@ -183,6 +209,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: raspbian platform: buster_v7 configuration: agent_lite @@ -190,6 +217,7 @@ jobs: - distro: foxy branch: foxy + image: ubuntu:20.04 rtos: raspbian platform: buster_v7 configuration: weather_publisher @@ -197,6 +225,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: host platform: null configuration: null @@ -205,6 +234,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: generate_lib platform: null configuration: null @@ -214,6 +244,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: crazyflie21 configuration: crazyflie_position_publisher @@ -222,6 +253,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: olimex-stm32-e407 configuration: int32_publisher @@ -230,6 +262,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: nucleo_f446re configuration: int32_publisher @@ -238,6 +271,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: nucleo_f446ze configuration: int32_publisher @@ -246,6 +280,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: nucleo_f746zg configuration: int32_publisher @@ -254,6 +289,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: nucleo_f767zi configuration: int32_publisher @@ -262,6 +298,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: freertos platform: esp32 configuration: int32_publisher @@ -270,6 +307,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: zephyr platform: olimex-stm32-e407 configuration: int32_publisher @@ -278,6 +316,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: zephyr platform: discovery_l475_iot1 configuration: int32_publisher @@ -286,6 +325,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: zephyr platform: nucleo_h743zi configuration: int32_publisher @@ -294,6 +334,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: zephyr platform: nucleo_f746zg configuration: int32_publisher @@ -302,6 +343,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: zephyr platform: host configuration: ping_pong @@ -310,6 +352,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: raspbian platform: buster_v7 configuration: agent_lite @@ -317,6 +360,7 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy rtos: raspbian platform: buster_v7 configuration: weather_publisher @@ -324,15 +368,323 @@ jobs: - distro: rolling branch: main + image: ubuntu:jammy + rtos: mbed + platform: disco_l475vg_iot01a + binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: host + platform: null + configuration: null + transport_arguments: null + binary: 'install/micro_ros_demos_rclc/lib/micro_ros_demos_rclc/int32_publisher/int32_publisher' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: generate_lib + platform: null + configuration: null + transport_arguments: null + build_arguments: $(pwd)/src/micro_ros_setup/config/generate_lib/generic/demo_toolchain.cmake + binary: 'firmware/build/libmicroros.a' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: crazyflie21 + configuration: crazyflie_position_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_crazyflie21_extensions/cf2.bin' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: olimex-stm32-e407 + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: nucleo_f446re + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f446re_extensions/build/micro-ROS.elf' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: nucleo_f446ze + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f446ze_extensions/build/micro-ROS.elf' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: nucleo_f746zg + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f746zg_extensions/build/micro-ROS.elf' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: nucleo_f767zi + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f767zi_extensions/build/micro-ROS.elf' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: freertos + platform: esp32 + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_esp32_extensions/build/int32_publisher.elf' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: zephyr + platform: olimex-stm32-e407 + configuration: int32_publisher + transport_arguments: -t serial-usb + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: zephyr + platform: discovery_l475_iot1 + configuration: int32_publisher + transport_arguments: -t serial-usb + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: zephyr + platform: nucleo_h743zi + configuration: int32_publisher + transport_arguments: -t serial -d 3 + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: zephyr + platform: nucleo_f746zg + configuration: int32_publisher + transport_arguments: -t serial -d 3 + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: zephyr + platform: host + configuration: ping_pong + transport_arguments: -t udp -i 192.168.1.1 -p 8080 + binary: 'firmware/build/zephyr/zephyr.exe' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: raspbian + platform: buster_v7 + configuration: agent_lite + binary: 'firmware/bin/micro_ros_agent_lite' + + - distro: humble + branch: humble + image: ubuntu:jammy + rtos: raspbian + platform: buster_v7 + configuration: weather_publisher + binary: 'firmware/bin/weather_publisher' + + - distro: humble + branch: humble + image: ubuntu:jammy rtos: mbed platform: disco_l475vg_iot01a binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: host + platform: null + configuration: null + transport_arguments: null + binary: 'install/micro_ros_demos_rclc/lib/micro_ros_demos_rclc/int32_publisher/int32_publisher' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: generate_lib + platform: null + configuration: null + transport_arguments: null + build_arguments: $(pwd)/src/micro_ros_setup/config/generate_lib/generic/demo_toolchain.cmake + binary: 'firmware/build/libmicroros.a' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: crazyflie21 + configuration: crazyflie_position_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_crazyflie21_extensions/cf2.bin' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: olimex-stm32-e407 + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: nucleo_f446re + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f446re_extensions/build/micro-ROS.elf' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: nucleo_f446ze + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f446ze_extensions/build/micro-ROS.elf' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: nucleo_f746zg + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f746zg_extensions/build/micro-ROS.elf' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: nucleo_f767zi + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_nucleo_f767zi_extensions/build/micro-ROS.elf' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: freertos + platform: esp32 + configuration: int32_publisher + transport_arguments: -t serial -d 1 + binary: 'firmware/freertos_apps/microros_esp32_extensions/build/int32_publisher.elf' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: zephyr + platform: olimex-stm32-e407 + configuration: int32_publisher + transport_arguments: -t serial-usb + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: zephyr + platform: discovery_l475_iot1 + configuration: int32_publisher + transport_arguments: -t serial-usb + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: zephyr + platform: nucleo_h743zi + configuration: int32_publisher + transport_arguments: -t serial -d 3 + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: zephyr + platform: nucleo_f746zg + configuration: int32_publisher + transport_arguments: -t serial -d 3 + binary: 'firmware/build/zephyr/zephyr.bin' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: zephyr + platform: host + configuration: ping_pong + transport_arguments: -t udp -i 192.168.1.1 -p 8080 + binary: 'firmware/build/zephyr/zephyr.exe' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: raspbian + platform: buster_v7 + configuration: agent_lite + binary: 'firmware/bin/micro_ros_agent_lite' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: raspbian + platform: buster_v7 + configuration: weather_publisher + binary: 'firmware/bin/weather_publisher' + + - distro: galactic + branch: galactic + image: ubuntu:20.04 + rtos: mbed + platform: disco_l475vg_iot01a + binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' + container: + image: ${{ matrix.image }} steps: - uses: actions/checkout@v2 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} + - uses: ros-tooling/setup-ros@0.3.2 + with: + use-ros2-testing: true + required-ros-distributions: ${{ matrix.distro }} + - name: Dependencies run: | apt update @@ -348,8 +700,8 @@ jobs: fi apt-get update apt install -y python3-colcon-metadata python3-pip cmake - rosdep update --os=ubuntu:jammy --rosdistro $ROS_DISTRO - rosdep install --os=ubuntu:jammy -y --from-paths src --ignore-src -y + rosdep update --rosdistro ${{ matrix.distro }} + rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y - uses: actions/download-artifact@v1 with: @@ -362,7 +714,7 @@ jobs: - name: Configure and build micro-ROS run: | - . /opt/ros/$ROS_DISTRO/setup.sh + . /opt/ros/${{ matrix.distro }}/setup.sh . install/local_setup.sh ros2 run micro_ros_setup create_firmware_ws.sh ${{ matrix.rtos }} ${{ matrix.platform }} ros2 run micro_ros_setup configure_firmware.sh ${{ matrix.configuration }} ${{ matrix.transport_arguments }} @@ -380,13 +732,19 @@ jobs: include: - distro: foxy branch: foxy + image: ubuntu:20.04 - distro: rolling branch: main + image: ubuntu:jammy - distro: galactic branch: galactic - + image: ubuntu:20.04 + - distro: humble + branch: humble + image: ubuntu:jammy + container: + image: ${{ matrix.image }} needs: micro_ros_build - container: ros:${{ matrix.distro }} steps: - uses: actions/checkout@v2 @@ -394,13 +752,18 @@ jobs: path: src/micro_ros_setup ref: ${{ matrix.branch }} + - uses: ros-tooling/setup-ros@0.3.2 + with: + use-ros2-testing: true + required-ros-distributions: ${{ matrix.distro }} + - name: dependencies run: | apt update apt install -y python3-colcon-metadata python3-pip - apt install -y ros-${ROS_DISTRO}-rmw-fastrtps-cpp - rosdep update --os=ubuntu:jammy --rosdistro $ROS_DISTRO - rosdep install --os=ubuntu:jammy -y --from-paths src --ignore-src -y + rosdep update --rosdistro ${{ matrix.distro }} + rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y + apt install -y ros-${{ matrix.distro }}-rmw-fastrtps-cpp - uses: actions/download-artifact@v1 with: @@ -413,7 +776,7 @@ jobs: - name: build run: | - . /opt/ros/$ROS_DISTRO/setup.sh + . /opt/ros/${{ matrix.distro }}/setup.sh . install/local_setup.sh ros2 run micro_ros_setup create_agent_ws.sh ros2 run micro_ros_setup build_agent.sh diff --git a/README.md b/README.md index 1ef3f9aa..5bb4736e 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ This package targets the **ROS 2** installation. ROS 2 supported distributions a | Dashing | EOL | `dashing` | | Foxy | Supported | `foxy` | | Galactic | Supported | `galactic` | +| Humble | Supported | `humble` | | Rolling | Supported | `main` | Some other prerequisites needed for building a firmware using this package are: @@ -104,7 +105,7 @@ source /opt/ros/$ROS_DISTRO/setup.bash mkdir uros_ws && cd uros_ws -git clone -b main https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup +git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup rosdep update && rosdep install --from-paths src --ignore-src -y diff --git a/config/agent_uros_packages.repos b/config/agent_uros_packages.repos index 97752f27..99c0cb80 100644 --- a/config/agent_uros_packages.repos +++ b/config/agent_uros_packages.repos @@ -2,12 +2,8 @@ repositories: uros/micro_ros_msgs: type: git url: https://github.com/micro-ROS/micro_ros_msgs.git - version: main + version: humble uros/micro-ROS-Agent: type: git url: https://github.com/micro-ROS/micro-ROS-Agent.git - version: main - uros/drive_base: - type: git - url: https://github.com/micro-ROS/drive_base.git - version: master + version: humble \ No newline at end of file diff --git a/config/android/generic/client_uros_packages.repos b/config/android/generic/client_uros_packages.repos index 2be1f888..c4e3bbf2 100644 --- a/config/android/generic/client_uros_packages.repos +++ b/config/android/generic/client_uros_packages.repos @@ -2,51 +2,50 @@ repositories: eProsima/Micro-CDR: type: git url: https://github.com/eProsima/Micro-CDR.git - version: foxy + version: ros2 eProsima/Micro-XRCE-DDS-Client: type: git url: https://github.com/eProsima/Micro-XRCE-DDS-Client.git - version: foxy + version: ros2 # MicroROS uros/rcl: type: git url: https://github.com/micro-ROS/rcl - version: galactic + version: humble uros/rclc: type: git url: https://github.com/ros2/rclc - version: galactic + version: humble uros/micro_ros_utilities: type: git url: https://github.com/micro-ROS/micro_ros_utilities - version: main - version: galactic + version: humble uros/rcutils: type: git url: https://github.com/micro-ROS/rcutils - version: galactic + version: humble uros/micro_ros_msgs: type: git url: https://github.com/micro-ROS/micro_ros_msgs.git - version: galactic + version: humble uros/rmw_microxrcedds: type: git url: https://github.com/micro-ROS/rmw-microxrcedds.git - version: galactic + version: humble uros/rosidl_typesupport: type: git url: https://github.com/micro-ROS/rosidl_typesupport.git - version: galactic + version: humble uros/rosidl_typesupport_microxrcedds: type: git url: https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git - version: galactic + version: humble uros/tracetools: type: git url: https://gitlab.com/micro-ROS/ros_tracing/ros2_tracing.git/ - version: galactic + version: humble uros/micro-ROS-demos: type: git url: https://github.com/micro-ROS/micro-ROS-demos.git - version: galactic + version: humble diff --git a/config/client_uros_packages.repos b/config/client_uros_packages.repos index e745d465..7f696a72 100644 --- a/config/client_uros_packages.repos +++ b/config/client_uros_packages.repos @@ -2,46 +2,46 @@ repositories: eProsima/Micro-CDR: type: git url: https://github.com/eProsima/Micro-CDR.git - version: foxy + version: ros2 eProsima/Micro-XRCE-DDS-Client: type: git url: https://github.com/eProsima/Micro-XRCE-DDS-Client.git - version: foxy + version: ros2 # MicroROS uros/rcl: type: git url: https://github.com/micro-ROS/rcl - version: master + version: humble uros/rclc: type: git url: https://github.com/ros2/rclc - version: master + version: humble uros/micro_ros_utilities: type: git url: https://github.com/micro-ROS/micro_ros_utilities - version: main + version: humble uros/rcutils: type: git url: https://github.com/micro-ROS/rcutils - version: master + version: humble uros/micro_ros_msgs: type: git url: https://github.com/micro-ROS/micro_ros_msgs.git - version: main + version: humble uros/rmw_microxrcedds: type: git url: https://github.com/micro-ROS/rmw-microxrcedds.git - version: main + version: humble uros/rosidl_typesupport: type: git url: https://github.com/micro-ROS/rosidl_typesupport.git - version: master + version: humble uros/rosidl_typesupport_microxrcedds: type: git url: https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git - version: main + version: humble uros/tracetools: type: git url: https://gitlab.com/micro-ROS/ros_tracing/ros2_tracing.git/ - version: master + version: humble diff --git a/config/freertos/crazyflie21/board.repos b/config/freertos/crazyflie21/board.repos index 508756d9..d35d8eb7 100644 --- a/config/freertos/crazyflie21/board.repos +++ b/config/freertos/crazyflie21/board.repos @@ -7,5 +7,5 @@ repositories: freertos_apps: type: git url: https://github.com/micro-ROS/freertos_apps - version: main + version: humble diff --git a/config/freertos/esp32/board.repos b/config/freertos/esp32/board.repos index e66890cf..edfe6847 100644 --- a/config/freertos/esp32/board.repos +++ b/config/freertos/esp32/board.repos @@ -2,7 +2,7 @@ repositories: freertos_apps: type: git url: https://github.com/micro-ROS/freertos_apps - version: main + version: humble diff --git a/config/freertos/nucleo_f446re/board.repos b/config/freertos/nucleo_f446re/board.repos index 4557031e..3a8de066 100644 --- a/config/freertos/nucleo_f446re/board.repos +++ b/config/freertos/nucleo_f446re/board.repos @@ -2,4 +2,4 @@ repositories: freertos_apps: type: git url: https://github.com/micro-ros/freertos_apps - version: main + version: humble diff --git a/config/freertos/nucleo_f446ze/board.repos b/config/freertos/nucleo_f446ze/board.repos index 4557031e..3a8de066 100644 --- a/config/freertos/nucleo_f446ze/board.repos +++ b/config/freertos/nucleo_f446ze/board.repos @@ -2,4 +2,4 @@ repositories: freertos_apps: type: git url: https://github.com/micro-ros/freertos_apps - version: main + version: humble diff --git a/config/freertos/nucleo_f746zg/board.repos b/config/freertos/nucleo_f746zg/board.repos index 4557031e..3a8de066 100644 --- a/config/freertos/nucleo_f746zg/board.repos +++ b/config/freertos/nucleo_f746zg/board.repos @@ -2,4 +2,4 @@ repositories: freertos_apps: type: git url: https://github.com/micro-ros/freertos_apps - version: main + version: humble diff --git a/config/freertos/nucleo_f767zi/board.repos b/config/freertos/nucleo_f767zi/board.repos index 4557031e..3a8de066 100644 --- a/config/freertos/nucleo_f767zi/board.repos +++ b/config/freertos/nucleo_f767zi/board.repos @@ -2,4 +2,4 @@ repositories: freertos_apps: type: git url: https://github.com/micro-ros/freertos_apps - version: main + version: humble diff --git a/config/freertos/olimex-stm32-e407/board.repos b/config/freertos/olimex-stm32-e407/board.repos index e66890cf..24ad5097 100644 --- a/config/freertos/olimex-stm32-e407/board.repos +++ b/config/freertos/olimex-stm32-e407/board.repos @@ -1,8 +1,8 @@ repositories: freertos_apps: type: git - url: https://github.com/micro-ROS/freertos_apps - version: main + url: https://github.com/micro-ros/freertos_apps + version: humble diff --git a/config/host/generic/client_host_packages.repos b/config/host/generic/client_host_packages.repos index 6a513446..1ebdc314 100644 --- a/config/host/generic/client_host_packages.repos +++ b/config/host/generic/client_host_packages.repos @@ -2,57 +2,57 @@ repositories: eProsima/Micro-CDR: type: git url: https://github.com/eProsima/Micro-CDR.git - version: foxy + version: ros2 eProsima/Micro-XRCE-DDS-Client: type: git url: https://github.com/eProsima/Micro-XRCE-DDS-Client.git - version: foxy + version: ros2 # MicroROS uros/rclc: type: git url: https://github.com/ros2/rclc.git - version: master + version: humble uros/micro_ros_msgs: type: git url: https://github.com/micro-ROS/micro_ros_msgs.git - version: main + version: humble uros/rmw_microxrcedds: type: git url: https://github.com/micro-ROS/rmw-microxrcedds.git - version: main + version: humble uros/rosidl_typesupport_microxrcedds: type: git url: https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git - version: main + version: humble uros/micro-ROS-demos: type: git url: https://github.com/micro-ROS/micro-ROS-demos.git - version: main + version: humble uros/micro_ros_utilities: type: git url: https://github.com/micro-ROS/micro_ros_utilities - version: main + version: humble # Required messages packages ros2/common_interfaces: type: git url: https://github.com/ros2/common_interfaces - version: foxy + version: humble ros2/example_interfaces: type: git url: https://github.com/ros2/example_interfaces - version: foxy + version: humble ros2/rcl_interfaces: type: git url: https://github.com/ros2/rcl_interfaces - version: foxy + version: humble ros2/unique_identifier_msgs: type: git url: https://github.com/ros2/unique_identifier_msgs - version: foxy + version: humble diff --git a/config/mbed/generic/board.repos b/config/mbed/generic/board.repos index dc8427fd..ff900f99 100644 --- a/config/mbed/generic/board.repos +++ b/config/mbed/generic/board.repos @@ -2,4 +2,4 @@ repositories: micro_ros_mbed: type: git url: https://github.com/micro-ROS/micro_ros_mbed - version: main + version: humble diff --git a/config/raspbian/generic/create.sh b/config/raspbian/generic/create.sh index 27fff17f..f5af2a5a 100755 --- a/config/raspbian/generic/create.sh +++ b/config/raspbian/generic/create.sh @@ -18,5 +18,5 @@ pushd $FW_TARGETDIR/$DEV_WS_DIR >/dev/null popd >/dev/null pushd $FW_TARGETDIR >/dev/null - git clone -b main https://github.com/micro-ROS/raspbian_apps.git + git clone -b humble https://github.com/micro-ROS/raspbian_apps.git popd >/dev/null \ No newline at end of file diff --git a/config/renesas_ra/ra6m5/board.repos b/config/renesas_ra/ra6m5/board.repos index ce3653b9..868670ff 100644 --- a/config/renesas_ra/ra6m5/board.repos +++ b/config/renesas_ra/ra6m5/board.repos @@ -2,4 +2,4 @@ repositories: micro_ros_renesas_demos: type: git url: https://github.com/micro-ROS/micro_ros_renesas_demos - version: main + version: humble diff --git a/config/zephyr/generic/board.repos b/config/zephyr/generic/board.repos index 2f2ba35d..8f83bf70 100644 --- a/config/zephyr/generic/board.repos +++ b/config/zephyr/generic/board.repos @@ -2,4 +2,4 @@ repositories: zephyr_apps: type: git url: https://github.com/micro-ROS/zephyr_apps - version: main + version: humble diff --git a/config/zephyr/generic/create.sh b/config/zephyr/generic/create.sh index aa613243..e781a6c4 100755 --- a/config/zephyr/generic/create.sh +++ b/config/zephyr/generic/create.sh @@ -28,7 +28,7 @@ pushd $FW_TARGETDIR >/dev/null west update popd >/dev/null - pip3 install -r zephyrproject/zephyr/scripts/requirements.txt + pip3 install -r zephyrproject/zephyr/scripts/requirements.txt --ignore-installed if [ "$PLATFORM" = "host" ]; then if [ "$ARCH" = "aarch64" ]; then From cecc59859d4209796e059ac54bf0898ddc1e521a Mon Sep 17 00:00:00 2001 From: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> Date: Tue, 24 May 2022 12:25:07 +0200 Subject: [PATCH 02/38] Revert ROS2 test sources (#524) --- .github/workflows/ci.yml | 6 +++--- .github/workflows/nightly.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3915f478..0de952dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: - uses: ros-tooling/setup-ros@0.3.2 with: - use-ros2-testing: true + use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} - name: Dependencies @@ -63,7 +63,7 @@ jobs: - uses: ros-tooling/setup-ros@0.3.2 with: - use-ros2-testing: true + use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} - name: dependencies @@ -209,7 +209,7 @@ jobs: - uses: ros-tooling/setup-ros@0.3.2 with: - use-ros2-testing: true + use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} - name: Dependencies diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0872788e..aa4780cb 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -39,7 +39,7 @@ jobs: - uses: ros-tooling/setup-ros@0.3.2 with: - use-ros2-testing: true + use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} - name: Dependencies @@ -682,7 +682,7 @@ jobs: - uses: ros-tooling/setup-ros@0.3.2 with: - use-ros2-testing: true + use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} - name: Dependencies @@ -754,7 +754,7 @@ jobs: - uses: ros-tooling/setup-ros@0.3.2 with: - use-ros2-testing: true + use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} - name: dependencies From b662e7ae7fa86b56bf272001a9cd08989a5c13c3 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Wed, 25 May 2022 09:04:00 +0200 Subject: [PATCH 03/38] Update changelog --- CHANGELOG.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f0d11dff..8cac1e40 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,22 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- +* Revert ROS2 test sources (`#524 `_) +* Humble release (`#513 `_) +* Add renesas dummy meta (`#516 `_) +* Fix readme rosdep (`#506 `_) +* Update Readme Rolling (`#492 `_) +* Modified zephyr create.sh to pull correct toolchain based on arch (`#499 `_) (`#500 `_) +* Remove Python 3.9 (`#496 `_) +* Fix CMake install in jammy (`#493 `_) +* Typo +* Fix CI upgrade ROS docker (backport `#489 `_) (`#490 `_) +* Fix Agent and host Rolling CI (`#486 `_) +* Enable rolling agent (`#479 `_) +* Contributors: Antonio Cuadros, Pablo Garrido, mergify[bot] + 3.0.0 (2022-03-28) ------------------ * Initial release \ No newline at end of file From 1a3e68d7b5f9aa061686093c45cc169f996e9be6 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Wed, 25 May 2022 09:04:10 +0200 Subject: [PATCH 04/38] 3.1.0 --- CHANGELOG.rst | 4 ++-- package.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8cac1e40..990bf7eb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +3.1.0 (2022-05-25) +------------------ * Revert ROS2 test sources (`#524 `_) * Humble release (`#513 `_) * Add renesas dummy meta (`#516 `_) diff --git a/package.xml b/package.xml index cb54caf8..6aaa0a5b 100644 --- a/package.xml +++ b/package.xml @@ -2,7 +2,7 @@ micro_ros_setup - 3.0.0 + 3.1.0 Tools for setting up micro-ROS workspaces Ingo Lütkebohle Apache-2.0 From 515e2b0c26ef86a09784ad79caea72417d8b65e3 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Thu, 23 Jun 2022 09:10:35 +0200 Subject: [PATCH 05/38] Fix CI host (#535) Signed-off-by: Pablo Garrido --- config/host/generic/create.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/host/generic/create.sh b/config/host/generic/create.sh index 430d9996..ab52b547 100755 --- a/config/host/generic/create.sh +++ b/config/host/generic/create.sh @@ -6,7 +6,7 @@ ros2 run micro_ros_setup create_ws.sh src $PREFIX/config/$RTOS/client_ros2_packa # add appropriate colcon.meta cp $PREFIX/config/$RTOS/$PLATFORM/client-host-colcon.meta src/colcon.meta -rosdep install --os=ubuntu:jammy -y --from-paths src -i src --skip-keys="$SKIP" -r +rosdep install -y --from-paths src -i src --skip-keys="$SKIP" -r touch src/uros/rclc/rclc_examples/COLCON_IGNORE touch src/uros/rclc/rclc_lifecycle/COLCON_IGNORE \ No newline at end of file From a8b0fcc5b72fb91ea914e19ef1499b297df0f136 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Thu, 14 Jul 2022 14:11:27 +0200 Subject: [PATCH 06/38] Add component command (#540) * Add component command Signed-off-by: Pablo Garrido * Apply suggestions from code review Co-authored-by: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> * Fix Signed-off-by: Pablo Garrido Co-authored-by: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> --- CMakeLists.txt | 7 +-- README.md | 7 +++ scripts/component | 109 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 3 deletions(-) create mode 100755 scripts/component diff --git a/CMakeLists.txt b/CMakeLists.txt index 031e2e83..fa2997a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,9 +39,9 @@ install( ) install( - PROGRAMS - scripts/create_ws.sh - scripts/create_agent_ws.sh + PROGRAMS + scripts/create_ws.sh + scripts/create_agent_ws.sh scripts/create_firmware_ws.sh scripts/configure_firmware.sh scripts/flash_firmware.sh @@ -49,5 +49,6 @@ install( scripts/build_agent.sh scripts/yaml_filter.py scripts/clean_env.sh + scripts/component DESTINATION lib/${PROJECT_NAME} ) diff --git a/README.md b/README.md index 5bb4736e..22342f43 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,13 @@ This package provides tools and utils to crosscompile micro-ROS with just the co ## Standalone build system tools +`micro_ros_setup` provides access to standalone build system tools using the `component` command. +After [building this package](#building) just run: + +```bash +ros2 run micro_ros_setup component --help +``` + micro-ROS standalone module for specific platforms are: - a standalone **[micro-ROS component for Renesas e2 studio and RA6M5](https://github.com/micro-ROS/micro_ros_renesas2estudio_component)**: this package enables the integration of micro-ROS in Renesas e2 studio and RA6M5 MCU family. diff --git a/scripts/component b/scripts/component new file mode 100755 index 00000000..ced3b0c9 --- /dev/null +++ b/scripts/component @@ -0,0 +1,109 @@ +#! /usr/bin/env python3 + +import sys +from textwrap import wrap +import os + +MAX_CHARACTERS = 80 + +COMPONENTS = [ + { + "name": "renesas_e2_studio", + "description": "micro-ROS component for Renesas e2 studio and RA6M5: this package enables the integration of micro-ROS in Renesas e2 studio for RA6M5 and RA6T2 MCUs.", + "url" : "https://github.com/micro-ROS/micro_ros_renesas2estudio_component" + }, + { + "name": "esp_idf", + "description": "micro-ROS component for ESP-IDF: this package enables the integration of micro-ROS in any Espressif ESP32 IDF project.", + "url" : "https://github.com/micro-ROS/micro_ros_espidf_component" + }, + { + "name": "zephyr_rtos", + "description": "micro-ROS module for Zephyr RTOS: this package enables the integration of micro-ROS in any Zephyr RTOS workspace.", + "url" : "https://github.com/micro-ROS/micro_ros_zephyr_module" + }, + { + "name": "mbed_rtos", + "description": "micro-ROS module for Mbed RTOS: this package enables the integration of micro-ROS in any Mbed RTOS workspace.", + "url" : "https://github.com/micro-ROS/micro_ros_mbed" + }, + { + "name": "nuttx_rtos", + "description": "micro-ROS module for NuttX RTOS: this package enables the integration of micro-ROS in any NuttX RTOS workspace.", + "url" : "https://github.com/micro-ROS/micro_ros_nuttx_app" + }, + { + "name": "azure_rtos", + "description": "micro-ROS module for Microsoft Azure RTOS: this package enables the integration of micro-ROS in a Microsoft Azure RTOS workspace.", + "url" : "https://github.com/micro-ROS/micro_ros_azure_rtos_app" + }, + { + "name": "tiva_c_series", + "description": "micro-ROS app for TI Tiva™ C Series: this package enables the integration of micro-ROS in Texas Instruments Tiva™ C Series.", + "url" : "https://github.com/micro-ROS/micro_ros_tivac_launchpad_app" + }, + { + "name": "stm32cube", + "description": "micro-ROS utils for STM32CubeMX and STM32CubeIDE: this package enables the integration of micro-ROS in STM32CubeMX and STM32CubeIDE.", + "url" : "https://github.com/micro-ROS/micro_ros_stm32cubemx_utils" + }, + { + "name": "platformio", + "description": "micro-ROS module for PlatformIO: this package enables the integration of micro-ROS in PlatformIO.", + "url" : "https://github.com/micro-ROS/micro_ros_platformio" + }, + { + "name": "arduino", + "description": "Arduino IDE & CLI libraries for micro-ROS: this package enables the integration of micro-ROS in the Arduino IDE for some hardware platforms.", + "url" : "https://github.com/micro-ROS/micro_ros_arduino" + }, + { + "name": "raspberry_pi_pico", + "description": "Raspberry Pi Pico SDK libraries for micro-ROS: this package enables the integration of micro-ROS in the Raspberry Pi Pico SDK.", + "url" : "https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk" + } +] + +def print_help(extended = False): + if extended: + print("Usage: ros2 run micro_ros_setup component ") + print("") + for component in COMPONENTS: + description = "\n\t".join(wrap(component["description"], MAX_CHARACTERS)) + print("[{}] \n\t{}\n".format(component["name"], description)) + else: + print("Usage: ros2 run micro_ros_setup component ") + print("Available components: {}".format(", ".join([c["name"] for c in COMPONENTS]))) + +# No arguments +if len(sys.argv) < 2: + print_help() + sys.exit(0) + +# User asks for help +if "-h" in sys.argv or "--help" in sys.argv: + print_help(True) + sys.exit(0) + +# Component select +component_name = sys.argv[1] +if component_name in [x["name"] for x in COMPONENTS]: + component = [x for x in COMPONENTS if x["name"] == component_name][0] + repo_folder_name = os.getcwd() + "/" + component["url"].split("/")[-1] + + print("Using micro-ROS {} component".format(component_name)) + print("\t{}".format("\n\t".join(wrap(component["description"], MAX_CHARACTERS)))) + print("") + + if os.path.exists(repo_folder_name): + print("Folder {} already exists!".format(repo_folder_name)) + else: + print("Cloning repository...") + os.system("git clone {} > /dev/null 2>&1".format(component["url"])) + print("{} repository cloned at {}".format(component_name, repo_folder_name)) + print("") + + print("FOR USAGE INSTRUCTIONS VISIT: {}".format(component["url"] + "#readme")) +else: + print("Unknown component: {}".format(component_name)) + print_help(True) From e42b438136c3ff3e5bebbfaf459c17658fd7d1ff Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Thu, 14 Jul 2022 14:14:12 +0200 Subject: [PATCH 07/38] Add changelog Signed-off-by: Pablo Garrido --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 990bf7eb..cff5af71 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- +* Add component command (`#540 `_) +* Fix CI host (`#535 `_) + 3.1.0 (2022-05-25) ------------------ * Revert ROS2 test sources (`#524 `_) From 7e07042c256cc34a4e972f6e36f1724fc7a5c38d Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Thu, 14 Jul 2022 14:14:27 +0200 Subject: [PATCH 08/38] 3.1.1 --- CHANGELOG.rst | 4 ++-- package.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index cff5af71..424c6b17 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +3.1.1 (2022-07-14) +------------------ * Add component command (`#540 `_) * Fix CI host (`#535 `_) diff --git a/package.xml b/package.xml index 6aaa0a5b..7c0cbcc1 100644 --- a/package.xml +++ b/package.xml @@ -2,7 +2,7 @@ micro_ros_setup - 3.1.0 + 3.1.1 Tools for setting up micro-ROS workspaces Ingo Lütkebohle Apache-2.0 From a73f84707874b5a57852cab802d8d032610c3cbd Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 5 Aug 2022 11:30:56 +0200 Subject: [PATCH 09/38] Fix Nightly CMake (#555) Signed-off-by: Pablo Garrido --- .github/workflows/nightly.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index aa4780cb..835eed55 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -690,14 +690,6 @@ jobs: apt update apt upgrade -y # Install last version of CMake - apt install -y apt-transport-https ca-certificates gnupg software-properties-common wget - if [ $(lsb_release -sr) = "22.04" ]; then - echo "Using Ubuntu mainline CMake" - else - echo "Adding Kitware CMake repo to install CMake" - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' - fi apt-get update apt install -y python3-colcon-metadata python3-pip cmake rosdep update --rosdistro ${{ matrix.distro }} From 2547c17cde0811a4cfde5a98e3ec735fc61e6aac Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 10:50:14 +0200 Subject: [PATCH 10/38] Remove unnessary check (#553) (#565) Signed-off-by: Kevin Goez Signed-off-by: Kevin Goez (cherry picked from commit b81290a6d7936e23ea4b5ac89aa7b3427ae848ed) Co-authored-by: k7g03z <88199521+k7g03z@users.noreply.github.com> --- scripts/build_firmware.sh | 3 ++- scripts/configure_firmware.sh | 8 ++++---- scripts/create_firmware_ws.sh | 2 +- scripts/flash_firmware.sh | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/scripts/build_firmware.sh b/scripts/build_firmware.sh index a570b232..96a2c865 100755 --- a/scripts/build_firmware.sh +++ b/scripts/build_firmware.sh @@ -69,7 +69,8 @@ fi # Building specific firmware folder echo "Building firmware for $RTOS platform $PLATFORM" -if [ $PLATFORM != "generic" ] && [ -d "$PREFIX/config/$RTOS/generic" ]; then +# Use the generic platform if directory found +if [ -d "$PREFIX/config/$RTOS/generic" ]; then . $PREFIX/config/$RTOS/generic/build.sh else . $PREFIX/config/$RTOS/$PLATFORM/build.sh diff --git a/scripts/configure_firmware.sh b/scripts/configure_firmware.sh index dca58e16..467710ea 100755 --- a/scripts/configure_firmware.sh +++ b/scripts/configure_firmware.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /bin/bash set -e set -o nounset @@ -17,7 +17,7 @@ else fi # Check if configure script exists -if [ $PLATFORM != "generic" ] && [ -d "$PREFIX/config/$RTOS/generic" ]; then +if [ -d "$PREFIX/config/$RTOS/generic" ]; then if [ ! -f $PREFIX/config/$RTOS/generic/configure.sh ]; then echo "No configuration step needed for generic platform $PLATFORM" exit 0 @@ -32,7 +32,7 @@ fi # Parsing micro-ROS arguments if [ $# -lt 1 ]; then echo "micro-ROS application name must be provided: ros2 run micro_ros_setup configure_firmware.sh [app name] [options]" - # Check if RTOS has app listing funcions and source in case + # Check if RTOS has app listing funcions and source in case if [ -f $PREFIX/config/$RTOS/list_apps.sh ]; then . $PREFIX/config/$RTOS/list_apps.sh print_available_apps @@ -80,7 +80,7 @@ while [[ $# -gt 0 ]]; do done # Configure specific firmware folder if needed -if [ $PLATFORM != "generic" ] && [ -d "$PREFIX/config/$RTOS/generic" ]; then +if [ -d "$PREFIX/config/$RTOS/generic" ]; then echo "Configuring firmware for $RTOS platform $PLATFORM" exec $PREFIX/config/$RTOS/generic/configure.sh $@ else diff --git a/scripts/create_firmware_ws.sh b/scripts/create_firmware_ws.sh index 6a8659a8..4ec28bf9 100755 --- a/scripts/create_firmware_ws.sh +++ b/scripts/create_firmware_ws.sh @@ -76,7 +76,7 @@ fi SKIP="microxrcedds_agent microxrcedds_client microcdr rosidl_typesupport_connext_cpp rosidl_typesupport_connext_c rosidl_typesupport_opensplice_cpp rosidl_typesupport_opensplice_c rmw_opensplice_cpp ros-${ROS_DISTRO}-cyclonedds ros-${ROS_DISTRO}-rti-connext-dds-cmake-module ros-${ROS_DISTRO}-rmw-connextdds-common ros-${ROS_DISTRO}-rmw-connextdds ros-${ROS_DISTRO}-rmw-cyclonedds-cpp google_benchmark_vendor performance_test_fixture ros-${ROS_DISTRO}-mimick-vendor rmw_cyclonedds_cpp rmw_connext_cpp rti-connext-dds-5.3.1 rmw_connextdds $EXTERNAL_SKIP" # Check generic build -if [ $PLATFORM != "generic" ] && [ -d "$PREFIX/config/$RTOS/generic" ]; then +if [ -d "$PREFIX/config/$RTOS/generic" ]; then TARGET_FOLDER=generic else TARGET_FOLDER=$PLATFORM diff --git a/scripts/flash_firmware.sh b/scripts/flash_firmware.sh index 23b080f2..15192dbd 100755 --- a/scripts/flash_firmware.sh +++ b/scripts/flash_firmware.sh @@ -17,7 +17,7 @@ else fi # Flash specific firmware folder if needed -if [ $PLATFORM != "generic" ] && [ -d "$PREFIX/config/$RTOS/generic" ]; then +if [ -d "$PREFIX/config/$RTOS/generic" ]; then if [ -f $PREFIX/config/$RTOS/generic/flash.sh ]; then echo "Flashing firmware for $RTOS platform $PLATFORM" . $PREFIX/config/$RTOS/generic/flash.sh From 0cc0ad627d9a75135fd6095fa176b1ffa64fec93 Mon Sep 17 00:00:00 2001 From: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> Date: Wed, 17 Aug 2022 12:01:51 +0200 Subject: [PATCH 11/38] Fix mbed cmake version on CI (#569) * Upgrade cmake version for mbed Signed-off-by: acuadros95 * Remove CI steps for testing Signed-off-by: acuadros95 * Fix confitional Signed-off-by: acuadros95 * Fix conditional Signed-off-by: acuadros95 * Fix typo Signed-off-by: acuadros95 * Restore nightly CI Signed-off-by: acuadros95 Signed-off-by: acuadros95 --- .github/workflows/nightly.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 835eed55..98957a16 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -690,6 +690,14 @@ jobs: apt update apt upgrade -y # Install last version of CMake + if [ ${{ matrix.rtos }} = "mbed" ] && [ $(lsb_release -sr) = "20.04" ]; then + echo "Adding Kitware CMake repo to install latest CMake" + apt install -y apt-transport-https ca-certificates gnupg software-properties-common wget + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null + apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' + else + echo "Using Ubuntu mainline CMake" + fi apt-get update apt install -y python3-colcon-metadata python3-pip cmake rosdep update --rosdistro ${{ matrix.distro }} From 67a7cdb5fdea4bf09e396680ebf2b6d72397746e Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Wed, 24 Aug 2022 09:47:03 +0200 Subject: [PATCH 12/38] Fix humble repos (#572) * Fix humble repos Signed-off-by: Pablo Garrido * Update Signed-off-by: Pablo Garrido Signed-off-by: Pablo Garrido --- config/raspbian/generic/configure.sh | 2 +- scripts/create_ws.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/raspbian/generic/configure.sh b/config/raspbian/generic/configure.sh index 0823da40..a8d73c8a 100755 --- a/config/raspbian/generic/configure.sh +++ b/config/raspbian/generic/configure.sh @@ -3,7 +3,7 @@ pushd $FW_TARGETDIR >/dev/null rm -rf mcu_ws/* cp raspbian_apps/toolchain.cmake mcu_ws/ - curl -s https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos |\ + curl -s https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos |\ ros2 run micro_ros_setup yaml_filter.py raspbian_apps/$CONFIG_NAME/ros2_repos.filter > ros2.repos vcs import --input ros2.repos mcu_ws/ && rm ros2.repos diff --git a/scripts/create_ws.sh b/scripts/create_ws.sh index 0485ccbf..769e5a9d 100755 --- a/scripts/create_ws.sh +++ b/scripts/create_ws.sh @@ -40,7 +40,7 @@ then fi # ROS_DISTRO SPECIFIC -curl -s https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos |\ +curl -s https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos |\ ros2 run micro_ros_setup yaml_filter.py ${PACKAGES} > ros2.repos vcs import --input ros2.repos --skip-existing vcs import --input $REPOS --skip-existing From 5248ea5986f49cdb13bbfbfe7ae89265ba5bbefd Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Wed, 28 Sep 2022 15:42:03 +0200 Subject: [PATCH 13/38] Changelog --- CHANGELOG.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 424c6b17..dc68e192 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,13 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- +* Fix humble repos (`#572 `_) +* Fix mbed cmake version on CI (`#569 `_) +* Remove unnessary check (`#553 `_) (`#565 `_) +* Fix Nightly CMake (`#555 `_) + 3.1.1 (2022-07-14) ------------------ * Add component command (`#540 `_) From cdd082b8152a8931ddab5adee33da036ce158fd1 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Wed, 28 Sep 2022 15:42:13 +0200 Subject: [PATCH 14/38] 3.1.2 --- CHANGELOG.rst | 4 ++-- package.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index dc68e192..5a8f6e5f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +3.1.2 (2022-09-28) +------------------ * Fix humble repos (`#572 `_) * Fix mbed cmake version on CI (`#569 `_) * Remove unnessary check (`#553 `_) (`#565 `_) diff --git a/package.xml b/package.xml index 7c0cbcc1..9439ce5c 100644 --- a/package.xml +++ b/package.xml @@ -2,7 +2,7 @@ micro_ros_setup - 3.1.1 + 3.1.2 Tools for setting up micro-ROS workspaces Ingo Lütkebohle Apache-2.0 From 8b75c381914e41bb59b29f4bf628e52636e10b5f Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Tue, 10 Jan 2023 09:09:37 +0100 Subject: [PATCH 15/38] Add RT-Thread to Readme (#604) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22342f43..777cf0f2 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ micro-ROS standalone module for specific platforms are: - a standalone **[micro-ROS module for Mbed RTOS](https://github.com/micro-ROS/micro_ros_mbed)**: this package enables the integration of micro-ROS in any Mbed RTOS workspace. - a standalone **[micro-ROS module for NuttX RTOS](https://github.com/micro-ROS/micro_ros_nuttx_app)**: this package enables the integration of micro-ROS in any NuttX RTOS workspace. - a standalone **[micro-ROS module for Microsoft Azure RTOS](https://github.com/micro-ROS/micro_ros_azure_rtos_app)**: this package enables the integration of micro-ROS in a Microsoft Azure RTOS workspace. +- a standalone **[micro-ROS module for RT-Thread RTOS](https://github.com/micro-ROS/micro_ros_rtthread_component)**: this package enables the integration of micro-ROS in a RT-Thread workspace. - a standalone **[micro-ROS app for TI Tiva™ C Series](https://github.com/micro-ROS/micro_ros_tivac_launchpad_app)**: this package enables the integration of micro-ROS in a exas Instruments Tiva™ C Series. - a set of **[micro-ROS utils for STM32CubeMX and STM32CubeIDE](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils)**: this package enables the integration of micro-ROS in STM32CubeMX and STM32CubeIDE. - a library builder for **[PlatformIO](https://github.com/micro-ROS/micro_ros_platformio)**: this package enables the integration of micro-ROS in PlatformIO. From 2519e2e015457707e78b6f7b0e05ab7005a7f001 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Mon, 13 Feb 2023 09:35:49 +0100 Subject: [PATCH 16/38] Add reference to micro-ROS book chapter. --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 777cf0f2..53ee5cfb 100644 --- a/README.md +++ b/README.md @@ -245,3 +245,25 @@ see the file [3rd-party-licenses.txt](3rd-party-licenses.txt). There are no known limitations. If you find issues, [please report them](https://github.com/micro-ROS/micro_ros_setup/issues). + +# Papers + +If you want to cite micro-ROS, please cite the following book chapter ([PDF available at Springer Link](https://doi.org/10.1007/978-3-031-09062-2_2)): + +Kaiwalya Belsare, Antonio Cuadros Rodriguez, Pablo Garrido Sánchez, Juanjo Hierro, Tomasz Kołcon, Ralph Lange, Ingo Lütkebohle, Alexandre Malki, Jaime Martin Losa, Francisco Melendez, Maria Merlan Rodriguez, Arne Nordmann, Jan Staschulat, and Julian von Mendel: Micro-ROS. In: _Anis Koubaa (ed.) Robot Operating System (ROS): The Complete Reference (Volume 7),_ Springer, pp. 3–55, 2023. (Online since 2 February 2023.) + +```bibtex +@INBOOK{Belsare_et_al_2023_Micro-ROS, + author = {Kaiwalya Belsare and Antonio Cuadros Rodriguez and Pablo Garrido S\'{a}nchez and Juanjo Hierro + and Tomasz Ko\l{}con and Ralph Lange and Ingo L\"{u}tkebohle and Alexandre Malki + and Jaime Martin Losa and Francisco Melendez and Maria Merlan Rodriguez and Arne Nordmann + and Jan Staschulat and and Julian von Mendel}, + title = {Micro-ROS}, + editor = {Anis Koubaa}, + booktitle = {Robot Operating System (ROS): The Complete Reference (Volume 7)}, + year = {2023}, + publisher = {Springer}, + pages = {3--55}, + doi = {10.1007/978-3-031-09062-2_2} +} +``` From 1b6e296dbac1888ff0a717b3f1a891dcc638d5e5 Mon Sep 17 00:00:00 2001 From: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> Date: Mon, 3 Apr 2023 14:15:39 +0200 Subject: [PATCH 17/38] Remove galactic from CI (#624) Signed-off-by: acuadros95 --- .github/workflows/nightly.yml | 155 ---------------------------------- README.md | 5 +- 2 files changed, 3 insertions(+), 157 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 98957a16..d67a691f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -22,9 +22,6 @@ jobs: - distro: rolling branch: main image: ubuntu:jammy - - distro: galactic - branch: galactic - image: ubuntu:20.04 - distro: humble branch: humble image: ubuntu:jammy @@ -523,155 +520,6 @@ jobs: platform: disco_l475vg_iot01a binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: host - platform: null - configuration: null - transport_arguments: null - binary: 'install/micro_ros_demos_rclc/lib/micro_ros_demos_rclc/int32_publisher/int32_publisher' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: generate_lib - platform: null - configuration: null - transport_arguments: null - build_arguments: $(pwd)/src/micro_ros_setup/config/generate_lib/generic/demo_toolchain.cmake - binary: 'firmware/build/libmicroros.a' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: crazyflie21 - configuration: crazyflie_position_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_crazyflie21_extensions/cf2.bin' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f446re - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446re_extensions/build/micro-ROS.elf' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f446ze - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446ze_extensions/build/micro-ROS.elf' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f746zg_extensions/build/micro-ROS.elf' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f767zi - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f767zi_extensions/build/micro-ROS.elf' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: freertos - platform: esp32 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_esp32_extensions/build/int32_publisher.elf' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: zephyr - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: zephyr - platform: discovery_l475_iot1 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: zephyr - platform: nucleo_h743zi - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: zephyr - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: zephyr - platform: host - configuration: ping_pong - transport_arguments: -t udp -i 192.168.1.1 -p 8080 - binary: 'firmware/build/zephyr/zephyr.exe' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: raspbian - platform: buster_v7 - configuration: agent_lite - binary: 'firmware/bin/micro_ros_agent_lite' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: raspbian - platform: buster_v7 - configuration: weather_publisher - binary: 'firmware/bin/weather_publisher' - - - distro: galactic - branch: galactic - image: ubuntu:20.04 - rtos: mbed - platform: disco_l475vg_iot01a - binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' container: image: ${{ matrix.image }} steps: @@ -736,9 +584,6 @@ jobs: - distro: rolling branch: main image: ubuntu:jammy - - distro: galactic - branch: galactic - image: ubuntu:20.04 - distro: humble branch: humble image: ubuntu:jammy diff --git a/README.md b/README.md index 53ee5cfb..c83410f2 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ This ROS 2 package is the entry point for building micro-ROS apps for different - [Purpose of the Project](#purpose-of-the-project) - [License](#license) - [Known Issues / Limitations](#known-issues--limitations) +- [Papers](#papers) # Supported platforms @@ -85,8 +86,8 @@ This package targets the **ROS 2** installation. ROS 2 supported distributions a | Crystal | EOL | `crystal` | | Dashing | EOL | `dashing` | | Foxy | Supported | `foxy` | -| Galactic | Supported | `galactic` | -| Humble | Supported | `humble` | +| Galactic | EOL | `galactic` | +| Humble | Supported | `humble` | | Rolling | Supported | `main` | Some other prerequisites needed for building a firmware using this package are: From 629b3ef10a4991bf4f824dae436fc57d35be7aa3 Mon Sep 17 00:00:00 2001 From: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> Date: Mon, 8 May 2023 08:50:44 +0200 Subject: [PATCH 18/38] Fix nigthly build (#634) * Update ros tooling Signed-off-by: acuadros95 * Update ros-tooling Signed-off-by: acuadros95 * Ignore rosidl_cli on zephyr Signed-off-by: acuadros95 * Remove sphinx workarround Signed-off-by: acuadros95 * Upgrade sphinx Signed-off-by: acuadros95 --------- Signed-off-by: acuadros95 --- .github/workflows/ci.yml | 6 +++--- .github/workflows/nightly.yml | 2 +- config/zephyr/generic/create.sh | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0de952dc..fdf2a9b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: with: path: src/micro_ros_setup - - uses: ros-tooling/setup-ros@0.3.2 + - uses: ros-tooling/setup-ros@0.6.1 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -61,7 +61,7 @@ jobs: with: path: src/micro_ros_setup - - uses: ros-tooling/setup-ros@0.3.2 + - uses: ros-tooling/setup-ros@0.6.1 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -207,7 +207,7 @@ jobs: with: path: src/micro_ros_setup - - uses: ros-tooling/setup-ros@0.3.2 + - uses: ros-tooling/setup-ros@0.6.1 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d67a691f..90d707f7 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -34,7 +34,7 @@ jobs: path: src/micro_ros_setup ref: ${{ matrix.branch }} - - uses: ros-tooling/setup-ros@0.3.2 + - uses: ros-tooling/setup-ros@0.6.1 with: use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} diff --git a/config/zephyr/generic/create.sh b/config/zephyr/generic/create.sh index e781a6c4..13fa6ee7 100755 --- a/config/zephyr/generic/create.sh +++ b/config/zephyr/generic/create.sh @@ -66,7 +66,7 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE - # Workaround. Remove when https://github.com/sphinx-doc/sphinx/issues/10291 and https://github.com/micro-ROS/micro_ros_zephyr_module/runs/5714546662?check_suite_focus=true - pip3 install --upgrade Sphinx + # Upgrade sphinx + pip install --force-reinstall Sphinx==4.2.0 popd >/dev/null From 76de41bcadca907e69c2cfca78372b191ea3b92a Mon Sep 17 00:00:00 2001 From: DaniGarciaLopez Date: Mon, 8 May 2023 14:49:29 +0200 Subject: [PATCH 19/38] Support Segger J-Link to flash Olimex E407 (#635) --- config/freertos/olimex-stm32-e407/flash.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/freertos/olimex-stm32-e407/flash.sh b/config/freertos/olimex-stm32-e407/flash.sh index f9e18e12..fabbe051 100755 --- a/config/freertos/olimex-stm32-e407/flash.sh +++ b/config/freertos/olimex-stm32-e407/flash.sh @@ -15,6 +15,8 @@ pushd $OLIMEX_EXTENSIONS_DIR > /dev/null PROGRAMMER=interface/stlink-v2-1.cfg elif lsusb -d 0483:3748; then PROGRAMMER=interface/stlink-v2.cfg + elif lsusb -d 1366:0101 || lsusb -d 1366:0105; then + PROGRAMMER=interface/jlink.cfg else echo "Error. Unsuported OpenOCD USB programmer" exit 1 @@ -27,3 +29,4 @@ pushd $OLIMEX_EXTENSIONS_DIR > /dev/null popd > /dev/null + From b3bd111f0bb49033aa7d3edf5ea78a13feda4962 Mon Sep 17 00:00:00 2001 From: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com> Date: Mon, 8 May 2023 15:51:56 +0200 Subject: [PATCH 20/38] Update ros-tooling CI version (#637) * Update ros-tooling CI version Signed-off-by: acuadros95 * Update checkout action Signed-off-by: acuadros95 --------- Signed-off-by: acuadros95 --- .github/workflows/nightly.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 90d707f7..3778c3e5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -29,7 +29,7 @@ jobs: image: ${{ matrix.image }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3.5.2 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} @@ -523,12 +523,12 @@ jobs: container: image: ${{ matrix.image }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3.5.2 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} - - uses: ros-tooling/setup-ros@0.3.2 + - uses: ros-tooling/setup-ros@0.6.1 with: use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} @@ -592,12 +592,12 @@ jobs: needs: micro_ros_build steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3.5.2 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} - - uses: ros-tooling/setup-ros@0.3.2 + - uses: ros-tooling/setup-ros@0.6.1 with: use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} From 19a519101d0b7e0cecae601811355578b12b81f8 Mon Sep 17 00:00:00 2001 From: acuadros95 Date: Mon, 12 Jun 2023 09:00:59 +0200 Subject: [PATCH 21/38] Changelog Signed-off-by: acuadros95 --- CHANGELOG.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5a8f6e5f..a7e05402 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,15 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- +* Update ros-tooling CI version (`#637 `_) +* Support Segger J-Link to flash Olimex E407 (`#635 `_) +* Fix nigthly build (`#634 `_) +* Remove galactic from CI (`#624 `_) +* Add reference to micro-ROS book chapter. +* Add RT-Thread to Readme (`#604 `_) + 3.1.2 (2022-09-28) ------------------ * Fix humble repos (`#572 `_) From 58dc7f84851c8c274b253db9779899eb551b1458 Mon Sep 17 00:00:00 2001 From: acuadros95 Date: Mon, 12 Jun 2023 09:01:05 +0200 Subject: [PATCH 22/38] 3.1.3 --- CHANGELOG.rst | 4 ++-- package.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a7e05402..add91f3b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package micro_ros_setup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +3.1.3 (2023-06-12) +------------------ * Update ros-tooling CI version (`#637 `_) * Support Segger J-Link to flash Olimex E407 (`#635 `_) * Fix nigthly build (`#634 `_) diff --git a/package.xml b/package.xml index 9439ce5c..7f0deeb5 100644 --- a/package.xml +++ b/package.xml @@ -2,7 +2,7 @@ micro_ros_setup - 3.1.2 + 3.1.3 Tools for setting up micro-ROS workspaces Ingo Lütkebohle Apache-2.0 From 7c93d68e118705d3484df30099f00ca039c9d534 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 10:37:09 +0100 Subject: [PATCH 23/38] Fix empy dep (backport #678) (#679) * Fix empy dep (#678) * Fix empy dep * Fix * Install colcon * Fix (cherry picked from commit fa7c6127c1eb600febd1be9c977c22e73d3bb8bd) # Conflicts: # .github/workflows/ci.yml # .github/workflows/nightly.yml * Fix --------- Co-authored-by: Pablo Garrido --- .github/workflows/ci.yml | 15 +++++++++------ .github/workflows/nightly.yml | 15 +++++++++------ config/freertos/esp32/create.sh | 2 +- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fdf2a9b3..62cc3a0f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: with: path: src/micro_ros_setup - - uses: ros-tooling/setup-ros@0.6.1 + - uses: ros-tooling/setup-ros@0.7.0 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -30,7 +30,8 @@ jobs: - name: Dependencies run: | apt update - apt install -y python3-colcon-metadata python3-pip + apt install -y python3-pip + pip3 install colcon-common-extensions rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y @@ -61,7 +62,7 @@ jobs: with: path: src/micro_ros_setup - - uses: ros-tooling/setup-ros@0.6.1 + - uses: ros-tooling/setup-ros@0.7.0 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -69,7 +70,8 @@ jobs: - name: dependencies run: | apt update - apt install -y python3-colcon-metadata python3-pip + apt install -y python3-pip + pip3 install colcon-common-extensions apt install -y ros-${{ env.ROS_DISTRO }}-rmw-fastrtps-cpp rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y @@ -207,7 +209,7 @@ jobs: with: path: src/micro_ros_setup - - uses: ros-tooling/setup-ros@0.6.1 + - uses: ros-tooling/setup-ros@0.7.0 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -217,7 +219,8 @@ jobs: apt update apt upgrade -y apt-get update - apt install -y python3-colcon-metadata python3-pip cmake + apt install -y python3-pip + pip3 install colcon-common-extensions cmake rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 3778c3e5..eade92af 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -34,7 +34,7 @@ jobs: path: src/micro_ros_setup ref: ${{ matrix.branch }} - - uses: ros-tooling/setup-ros@0.6.1 + - uses: ros-tooling/setup-ros@0.7.0 with: use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} @@ -42,7 +42,8 @@ jobs: - name: Dependencies run: | apt update - apt install -y python3-colcon-metadata python3-pip + apt install -y python3-pip + pip3 install colcon-common-extensions rosdep update --rosdistro ${{ matrix.distro }} rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y @@ -528,7 +529,7 @@ jobs: path: src/micro_ros_setup ref: ${{ matrix.branch }} - - uses: ros-tooling/setup-ros@0.6.1 + - uses: ros-tooling/setup-ros@0.7.0 with: use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} @@ -547,7 +548,8 @@ jobs: echo "Using Ubuntu mainline CMake" fi apt-get update - apt install -y python3-colcon-metadata python3-pip cmake + apt install -y python3-pip cmake + pip3 install colcon-common-extensions cmake rosdep update --rosdistro ${{ matrix.distro }} rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y @@ -597,7 +599,7 @@ jobs: path: src/micro_ros_setup ref: ${{ matrix.branch }} - - uses: ros-tooling/setup-ros@0.6.1 + - uses: ros-tooling/setup-ros@0.7.0 with: use-ros2-testing: false required-ros-distributions: ${{ matrix.distro }} @@ -605,7 +607,8 @@ jobs: - name: dependencies run: | apt update - apt install -y python3-colcon-metadata python3-pip + apt install -y python3-pip + pip3 install colcon-common-extensions rosdep update --rosdistro ${{ matrix.distro }} rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y apt install -y ros-${{ matrix.distro }}-rmw-fastrtps-cpp diff --git a/config/freertos/esp32/create.sh b/config/freertos/esp32/create.sh index 47610713..a2e11e45 100755 --- a/config/freertos/esp32/create.sh +++ b/config/freertos/esp32/create.sh @@ -26,7 +26,7 @@ pushd $FW_TARGETDIR >/dev/null . $IDF_PATH/export.sh - pip3 install catkin_pkg lark-parser empy + pip3 install catkin_pkg lark-parser colcon-common-extensions popd >/dev/null From 41edef6cb54f6a6802324fe1f4685126c4fe988c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 10:16:36 +0100 Subject: [PATCH 24/38] Fix rolling (backport #687) (#689) * Fix rolling (#687) * Fix rolling Revert "Fix rolling" This reverts commit c8089311ee5b65a1bcd668af4d1ead09e76341e3. Remove ament lint common Remove ament_lint_auto Remove ament_cmake Update Checkout add test Fix package Fix Remove osrf_testing_tools_cpp Update ubuntu Add test_interface_files Revert "Update ubuntu" This reverts commit 3c4939a2f965ee80d75864cbe464498e66a773df. Revert "Add test_interface_files" This reverts commit 75f9e2141745183a02f4034eeba4c85d01fec451. * Update repos * Add test_interface_files (cherry picked from commit 944843d5aa146465bf29c3b25c7ca108b417907c) # Conflicts: # .github/workflows/ci.yml # .github/workflows/nightly.yml # config/host/generic/client_host_packages.repos # scripts/create_ws.sh * Revert "Fix rolling (#687)" This reverts commit da2646ef9756d14d16189b4eeb7b645126430ab5. * FIx --------- Co-authored-by: Pablo Garrido --- .github/workflows/ci.yml | 6 +++--- .github/workflows/nightly.yml | 6 +++--- package.xml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62cc3a0f..63c493f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: path: src/micro_ros_setup @@ -58,7 +58,7 @@ jobs: needs: micro_ros_build steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: path: src/micro_ros_setup @@ -205,7 +205,7 @@ jobs: binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: path: src/micro_ros_setup diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index eade92af..c34b8a09 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -29,7 +29,7 @@ jobs: image: ${{ matrix.image }} steps: - - uses: actions/checkout@v3.5.2 + - uses: actions/checkout@v4 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} @@ -524,7 +524,7 @@ jobs: container: image: ${{ matrix.image }} steps: - - uses: actions/checkout@v3.5.2 + - uses: actions/checkout@v4 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} @@ -594,7 +594,7 @@ jobs: needs: micro_ros_build steps: - - uses: actions/checkout@v3.5.2 + - uses: actions/checkout@v4 with: path: src/micro_ros_setup ref: ${{ matrix.branch }} diff --git a/package.xml b/package.xml index 7f0deeb5..b00a29be 100644 --- a/package.xml +++ b/package.xml @@ -4,7 +4,7 @@ micro_ros_setup 3.1.3 Tools for setting up micro-ROS workspaces - Ingo Lütkebohle + Pablo Garrido Apache-2.0 ament_cmake From 0b38b8660e1a6da827fa237a43c8a498c6f777d3 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Mon, 3 Jun 2024 08:00:53 +0200 Subject: [PATCH 25/38] Allow CI workflow call --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63c493f1..6817d9c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,8 @@ on: - 'README.md' branches: - '**' + workflow_call: + env: ROS_DISTRO: humble From 2acf78692fc273cc262f212daace47d3faf84d8f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 09:32:20 +0200 Subject: [PATCH 26/38] Rework CI (backport #696) (#698) * Rework CI (#696) (cherry picked from commit 3379e736d15ba37be0b8fb82f2ad96a80cf1dd15) # Conflicts: # .github/workflows/nightly.yml * Fix rebase --------- Co-authored-by: Pablo Garrido --- .github/workflows/ci.yml | 12 +- .github/workflows/nightly.yml | 627 +--------------------------------- .github/workflows/pr.yml | 15 + 3 files changed, 34 insertions(+), 620 deletions(-) create mode 100644 .github/workflows/pr.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6817d9c9..8c7f46d5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,11 @@ name: CI on: - pull_request: - paths-ignore: - - 'README.md' - branches: - - '**' workflow_call: + inputs: + ci_target_ref: + required: true + type: string env: ROS_DISTRO: humble @@ -23,6 +22,7 @@ jobs: - uses: actions/checkout@v4 with: path: src/micro_ros_setup + ref: ${{ inputs.ci_target_ref }} - uses: ros-tooling/setup-ros@0.7.0 with: @@ -63,6 +63,7 @@ jobs: - uses: actions/checkout@v4 with: path: src/micro_ros_setup + ref: ${{ inputs.ci_target_ref }} - uses: ros-tooling/setup-ros@0.7.0 with: @@ -210,6 +211,7 @@ jobs: - uses: actions/checkout@v4 with: path: src/micro_ros_setup + ref: ${{ inputs.ci_target_ref }} - uses: ros-tooling/setup-ros@0.7.0 with: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c34b8a09..48e5766f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -10,625 +10,22 @@ on: jobs: - micro_ros_build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - distro: foxy - branch: foxy - image: ubuntu:20.04 - - distro: rolling - branch: main - image: ubuntu:jammy - - distro: humble - branch: humble - image: ubuntu:jammy - container: - image: ${{ matrix.image }} - - steps: - - uses: actions/checkout@v4 + Jazzy: + uses: micro-ROS/micro_ros_setup/.github/workflows/ci.yml@jazzy with: - path: src/micro_ros_setup - ref: ${{ matrix.branch }} + ci_target_ref: 'jazzy' - - uses: ros-tooling/setup-ros@0.7.0 + Rolling: + uses: micro-ROS/micro_ros_setup/.github/workflows/ci.yml@rolling with: - use-ros2-testing: false - required-ros-distributions: ${{ matrix.distro }} - - - name: Dependencies - run: | - apt update - apt install -y python3-pip - pip3 install colcon-common-extensions - rosdep update --rosdistro ${{ matrix.distro }} - rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y - - - name: Build - run: | - . /opt/ros/${{ matrix.distro }}/setup.sh - colcon build + ci_target_ref: 'rolling' - - name: Install micro-ROS build system - run: | - (test -f install/micro_ros_setup/lib/micro_ros_setup/build_firmware.sh) && true || false - - - uses: actions/upload-artifact@v1 + Humble: + uses: micro-ROS/micro_ros_setup/.github/workflows/ci.yml@humble with: - name: micro_ros_build_${{ matrix.branch }} - path: install - - micro_ros_client: - runs-on: ubuntu-latest - needs: micro_ros_build - - strategy: - fail-fast: false - matrix: - include: - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: host - platform: null - configuration: null - transport_arguments: null - binary: 'install/micro_ros_demos_rclc/lib/micro_ros_demos_rclc/int32_publisher/int32_publisher' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: generate_lib - platform: null - configuration: null - transport_arguments: null - build_arguments: $(pwd)/src/micro_ros_setup/config/generate_lib/generic/demo_toolchain.cmake - binary: 'firmware/build/libmicroros.a' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: crazyflie21 - configuration: crazyflie_position_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_crazyflie21_extensions/cf2.bin' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f446re - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446re_extensions/build/micro-ROS.elf' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f446ze - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446ze_extensions/build/micro-ROS.elf' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f746zg_extensions/build/micro-ROS.elf' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: nucleo_f767zi - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f767zi_extensions/build/micro-ROS.elf' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: freertos - platform: esp32 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_esp32_extensions/build/int32_publisher.elf' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: zephyr - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: zephyr - platform: discovery_l475_iot1 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: zephyr - platform: nucleo_h743zi - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: zephyr - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: zephyr - platform: host - configuration: ping_pong - transport_arguments: -t udp -i 192.168.1.1 -p 8080 - binary: 'firmware/build/zephyr/zephyr.exe' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: nuttx - platform: olimex-stm32-e407 - configuration: drive_base - transport_arguments: - binary: 'firmware/NuttX/nuttx.bin' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: raspbian - platform: buster_v7 - configuration: agent_lite - binary: 'firmware/bin/micro_ros_agent_lite' - - - distro: foxy - branch: foxy - image: ubuntu:20.04 - rtos: raspbian - platform: buster_v7 - configuration: weather_publisher - binary: 'firmware/bin/weather_publisher' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: host - platform: null - configuration: null - transport_arguments: null - binary: 'install/micro_ros_demos_rclc/lib/micro_ros_demos_rclc/int32_publisher/int32_publisher' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: generate_lib - platform: null - configuration: null - transport_arguments: null - build_arguments: $(pwd)/src/micro_ros_setup/config/generate_lib/generic/demo_toolchain.cmake - binary: 'firmware/build/libmicroros.a' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: crazyflie21 - configuration: crazyflie_position_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_crazyflie21_extensions/cf2.bin' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f446re - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446re_extensions/build/micro-ROS.elf' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f446ze - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446ze_extensions/build/micro-ROS.elf' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f746zg_extensions/build/micro-ROS.elf' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f767zi - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f767zi_extensions/build/micro-ROS.elf' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: freertos - platform: esp32 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_esp32_extensions/build/int32_publisher.elf' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: zephyr - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: zephyr - platform: discovery_l475_iot1 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: zephyr - platform: nucleo_h743zi - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: zephyr - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: zephyr - platform: host - configuration: ping_pong - transport_arguments: -t udp -i 192.168.1.1 -p 8080 - binary: 'firmware/build/zephyr/zephyr.exe' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: raspbian - platform: buster_v7 - configuration: agent_lite - binary: 'firmware/bin/micro_ros_agent_lite' - - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: raspbian - platform: buster_v7 - configuration: weather_publisher - binary: 'firmware/bin/weather_publisher' + ci_target_ref: 'humble' - - distro: rolling - branch: main - image: ubuntu:jammy - rtos: mbed - platform: disco_l475vg_iot01a - binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: host - platform: null - configuration: null - transport_arguments: null - binary: 'install/micro_ros_demos_rclc/lib/micro_ros_demos_rclc/int32_publisher/int32_publisher' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: generate_lib - platform: null - configuration: null - transport_arguments: null - build_arguments: $(pwd)/src/micro_ros_setup/config/generate_lib/generic/demo_toolchain.cmake - binary: 'firmware/build/libmicroros.a' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: crazyflie21 - configuration: crazyflie_position_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_crazyflie21_extensions/cf2.bin' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f446re - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446re_extensions/build/micro-ROS.elf' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f446ze - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f446ze_extensions/build/micro-ROS.elf' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f746zg_extensions/build/micro-ROS.elf' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: nucleo_f767zi - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_nucleo_f767zi_extensions/build/micro-ROS.elf' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: freertos - platform: esp32 - configuration: int32_publisher - transport_arguments: -t serial -d 1 - binary: 'firmware/freertos_apps/microros_esp32_extensions/build/int32_publisher.elf' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: zephyr - platform: olimex-stm32-e407 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: zephyr - platform: discovery_l475_iot1 - configuration: int32_publisher - transport_arguments: -t serial-usb - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: zephyr - platform: nucleo_h743zi - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: zephyr - platform: nucleo_f746zg - configuration: int32_publisher - transport_arguments: -t serial -d 3 - binary: 'firmware/build/zephyr/zephyr.bin' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: zephyr - platform: host - configuration: ping_pong - transport_arguments: -t udp -i 192.168.1.1 -p 8080 - binary: 'firmware/build/zephyr/zephyr.exe' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: raspbian - platform: buster_v7 - configuration: agent_lite - binary: 'firmware/bin/micro_ros_agent_lite' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: raspbian - platform: buster_v7 - configuration: weather_publisher - binary: 'firmware/bin/weather_publisher' - - - distro: humble - branch: humble - image: ubuntu:jammy - rtos: mbed - platform: disco_l475vg_iot01a - binary: 'firmware/micro_ros_mbed/cmake_build/DISCO_L475VG_IOT01A/develop/GCC_ARM/micro_ros_mbed.bin' - - container: - image: ${{ matrix.image }} - steps: - - uses: actions/checkout@v4 + Iron: + uses: micro-ROS/micro_ros_setup/.github/workflows/ci.yml@iron with: - path: src/micro_ros_setup - ref: ${{ matrix.branch }} - - - uses: ros-tooling/setup-ros@0.7.0 - with: - use-ros2-testing: false - required-ros-distributions: ${{ matrix.distro }} - - - name: Dependencies - run: | - apt update - apt upgrade -y - # Install last version of CMake - if [ ${{ matrix.rtos }} = "mbed" ] && [ $(lsb_release -sr) = "20.04" ]; then - echo "Adding Kitware CMake repo to install latest CMake" - apt install -y apt-transport-https ca-certificates gnupg software-properties-common wget - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' - else - echo "Using Ubuntu mainline CMake" - fi - apt-get update - apt install -y python3-pip cmake - pip3 install colcon-common-extensions cmake - rosdep update --rosdistro ${{ matrix.distro }} - rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y - - - uses: actions/download-artifact@v1 - with: - name: micro_ros_build_${{ matrix.branch }} - path: install - - # Workaround https://github.com/actions/upload-artifact/issues/38 - - run: | - chmod +x -R install - - - name: Configure and build micro-ROS - run: | - . /opt/ros/${{ matrix.distro }}/setup.sh - . install/local_setup.sh - ros2 run micro_ros_setup create_firmware_ws.sh ${{ matrix.rtos }} ${{ matrix.platform }} - ros2 run micro_ros_setup configure_firmware.sh ${{ matrix.configuration }} ${{ matrix.transport_arguments }} - ros2 run micro_ros_setup build_firmware.sh ${{ matrix.build_arguments }} - - - name: Check binaries - run: | - (test -f ${{ matrix.binary }}) && true || false - - micro_ros_agent: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - distro: foxy - branch: foxy - image: ubuntu:20.04 - - distro: rolling - branch: main - image: ubuntu:jammy - - distro: humble - branch: humble - image: ubuntu:jammy - container: - image: ${{ matrix.image }} - needs: micro_ros_build - - steps: - - uses: actions/checkout@v4 - with: - path: src/micro_ros_setup - ref: ${{ matrix.branch }} - - - uses: ros-tooling/setup-ros@0.7.0 - with: - use-ros2-testing: false - required-ros-distributions: ${{ matrix.distro }} - - - name: dependencies - run: | - apt update - apt install -y python3-pip - pip3 install colcon-common-extensions - rosdep update --rosdistro ${{ matrix.distro }} - rosdep install --rosdistro ${{ matrix.distro }} -y --from-paths src --ignore-src -y - apt install -y ros-${{ matrix.distro }}-rmw-fastrtps-cpp - - - uses: actions/download-artifact@v1 - with: - name: micro_ros_build_${{ matrix.branch }} - path: install - - # Workaround https://github.com/actions/upload-artifact/issues/38 - - run: | - chmod +x -R install - - - name: build - run: | - . /opt/ros/${{ matrix.distro }}/setup.sh - . install/local_setup.sh - ros2 run micro_ros_setup create_agent_ws.sh - ros2 run micro_ros_setup build_agent.sh - - - name: installation - run: | - (test -f install/micro_ros_agent/lib/micro_ros_agent/micro_ros_agent) && true || false + ci_target_ref: 'iron' diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 00000000..6f7e5ed6 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,15 @@ +name: Pull Request CI + +on: + pull_request: + paths-ignore: + - 'README.md' + branches: + - '**' + +jobs: + + CI: + uses: ./.github/workflows/ci.yml + with: + ci_target_ref: ${{ github.event.pull_request.head.ref }} From fb214f17e606b838d92b42da9833eced5603a3a6 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Mon, 3 Jun 2024 09:50:19 +0200 Subject: [PATCH 27/38] Fix artifacts --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c7f46d5..b6c6d88b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: - uses: actions/upload-artifact@v1 with: - name: micro_ros_build + name: micro_ros_build_${{ inputs.ci_target_ref }} path: install micro_ros_agent: @@ -81,7 +81,7 @@ jobs: - uses: actions/download-artifact@v1 with: - name: micro_ros_build + name: micro_ros_build_${{ inputs.ci_target_ref }} path: install # Workaround https://github.com/actions/upload-artifact/issues/38 @@ -230,7 +230,7 @@ jobs: - uses: actions/download-artifact@v1 with: - name: micro_ros_build + name: micro_ros_build_${{ inputs.ci_target_ref }} path: install # Workaround https://github.com/actions/upload-artifact/issues/38 From eeb270bc1009e4d73f18ee090fef1868f4d0401d Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Thu, 12 Sep 2024 12:12:44 +0200 Subject: [PATCH 28/38] Fix Nightly (#719) (#725) * Bump actions/download-artifact from 1 to 4.1.7 in /.github/workflows Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 1 to 4.1.7. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v1...v4.1.7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Bump upload_artifact Signed-off-by: Pablo Garrido --------- Signed-off-by: dependabot[bot] Signed-off-by: Pablo Garrido Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit 32b25e573c624164d7f9f84e12f726d65568f90d) --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6c6d88b..c79cc3db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: run: | (test -f install/micro_ros_setup/lib/micro_ros_setup/build_firmware.sh) && true || false - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v4.4.0 with: name: micro_ros_build_${{ inputs.ci_target_ref }} path: install @@ -79,7 +79,7 @@ jobs: rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y - - uses: actions/download-artifact@v1 + - uses: actions/download-artifact@v4.1.7 with: name: micro_ros_build_${{ inputs.ci_target_ref }} path: install @@ -228,7 +228,7 @@ jobs: rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y - - uses: actions/download-artifact@v1 + - uses: actions/download-artifact@v4.1.7 with: name: micro_ros_build_${{ inputs.ci_target_ref }} path: install From c2e19e7a13c8e0429939c96cb406ddd3565ca7ad Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 27 Sep 2024 10:11:47 +0200 Subject: [PATCH 29/38] Fix iron (#734) (#737) (cherry picked from commit 6c040e3df920f600d3fd8de38179bdbafee53158) --- config/freertos/esp32/create.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/freertos/esp32/create.sh b/config/freertos/esp32/create.sh index a2e11e45..dff641da 100755 --- a/config/freertos/esp32/create.sh +++ b/config/freertos/esp32/create.sh @@ -26,7 +26,7 @@ pushd $FW_TARGETDIR >/dev/null . $IDF_PATH/export.sh - pip3 install catkin_pkg lark-parser colcon-common-extensions + pip3 install catkin_pkg lark-parser empy==3.3.4 colcon-common-extensions popd >/dev/null From 96ab3c183553becba0cc423e57f123e68da13db4 Mon Sep 17 00:00:00 2001 From: Jakob Friedl <64070660+Geibinger@users.noreply.github.com> Date: Wed, 16 Oct 2024 08:35:06 +0200 Subject: [PATCH 30/38] Sphinx dependency conflict fix (#740) Signed-off-by: Geibinger --- NOTICE | 2 ++ config/zephyr/generic/create.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NOTICE b/NOTICE index 17a152ed..47ce6bdc 100644 --- a/NOTICE +++ b/NOTICE @@ -25,6 +25,8 @@ eProsima Jose Antonio Moral Pablo Garrido +Jakob Friedl + Robert Bosch GmbH Ingo Lütkebohle Ralph Lange diff --git a/config/zephyr/generic/create.sh b/config/zephyr/generic/create.sh index 13fa6ee7..5b470031 100755 --- a/config/zephyr/generic/create.sh +++ b/config/zephyr/generic/create.sh @@ -67,6 +67,6 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE # Upgrade sphinx - pip install --force-reinstall Sphinx==4.2.0 + pip install --force-reinstall docutils==0.16 Sphinx==4.2.0 popd >/dev/null From 096ded099b8b11680991fac804af3e808b606d7d Mon Sep 17 00:00:00 2001 From: Meet Gandhi Date: Mon, 9 Dec 2024 12:21:43 +0530 Subject: [PATCH 31/38] Remove non-header files from include folder (#716) The `include` directory previously contained all files copied over, but only `*.h` and `*.hpp` files are required. This commit removes all files that do not have a `.h` or `.hpp` extension, as well as any empty directories that may result from this cleanup. Signed-off-by: Meet Gandhi Co-authored-by: Meet Gandhi --- config/generate_lib/generic/build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/generate_lib/generic/build.sh b/config/generate_lib/generic/build.sh index 7db6e00c..9619536e 100755 --- a/config/generate_lib/generic/build.sh +++ b/config/generate_lib/generic/build.sh @@ -48,6 +48,8 @@ pushd $FW_TARGETDIR/mcu_ws >/dev/null done ; \ ar rc libmicroros.a $(ls *.o *.obj 2> /dev/null); mkdir -p $BUILD_DIR; cp libmicroros.a $BUILD_DIR; ranlib $BUILD_DIR/libmicroros.a; \ cp -R $FW_TARGETDIR/mcu_ws/install/include $BUILD_DIR/; \ + rm $(find $BUILD_DIR/include -type f -not -name "*.h" -not -name "*.hpp") \ + rm -rf $(find $BUILD_DIR/include -type d -empty) \ cd ..; rm -rf libmicroros; popd >/dev/null From 91a554fd62c329955b5b96c60ca112ceb7c2581f Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Mon, 9 Dec 2024 09:46:31 +0100 Subject: [PATCH 32/38] Fix CI (#755) * Fix CI Signed-off-by: Pablo Garrido * Fix naming * Ensure naming * New line fix --------- Signed-off-by: Pablo Garrido --- .github/workflows/ci.yml | 27 ++++++++++++++++++++++++--- config/generate_lib/generic/build.sh | 6 +++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c79cc3db..68a54f60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,9 +46,16 @@ jobs: run: | (test -f install/micro_ros_setup/lib/micro_ros_setup/build_firmware.sh) && true || false + - name: Sanitize Artifact Name + id: sanitize-name + run: | + sanitized_name=$(echo "${{ inputs.ci_target_ref }}" | sed 's/[\/:*?"<>|\\]/_/g') + echo "sanitized_name=$sanitized_name" >> $GITHUB_ENV + echo "::set-output name=sanitized_name::$sanitized_name" + - uses: actions/upload-artifact@v4.4.0 with: - name: micro_ros_build_${{ inputs.ci_target_ref }} + name: micro_ros_build_${{ steps.sanitize-name.outputs.sanitized_name }} path: install micro_ros_agent: @@ -79,9 +86,16 @@ jobs: rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y + - name: Sanitize Artifact Name + id: sanitize-name + run: | + sanitized_name=$(echo "${{ inputs.ci_target_ref }}" | sed 's/[\/:*?"<>|\\]/_/g') + echo "sanitized_name=$sanitized_name" >> $GITHUB_ENV + echo "::set-output name=sanitized_name::$sanitized_name" + - uses: actions/download-artifact@v4.1.7 with: - name: micro_ros_build_${{ inputs.ci_target_ref }} + name: micro_ros_build_${{ steps.sanitize-name.outputs.sanitized_name }} path: install # Workaround https://github.com/actions/upload-artifact/issues/38 @@ -228,9 +242,16 @@ jobs: rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y + - name: Sanitize Artifact Name + id: sanitize-name + run: | + sanitized_name=$(echo "${{ inputs.ci_target_ref }}" | sed 's/[\/:*?"<>|\\]/_/g') + echo "sanitized_name=$sanitized_name" >> $GITHUB_ENV + echo "::set-output name=sanitized_name::$sanitized_name" + - uses: actions/download-artifact@v4.1.7 with: - name: micro_ros_build_${{ inputs.ci_target_ref }} + name: micro_ros_build_${{ steps.sanitize-name.outputs.sanitized_name }} path: install # Workaround https://github.com/actions/upload-artifact/issues/38 diff --git a/config/generate_lib/generic/build.sh b/config/generate_lib/generic/build.sh index 9619536e..891676b6 100755 --- a/config/generate_lib/generic/build.sh +++ b/config/generate_lib/generic/build.sh @@ -22,7 +22,7 @@ BUILD_DIR=$FW_TARGETDIR/build pushd $FW_TARGETDIR/mcu_ws >/dev/null rm -rf build install log - + colcon build \ --merge-install \ --packages-ignore-regex=.*_cpp \ @@ -48,8 +48,8 @@ pushd $FW_TARGETDIR/mcu_ws >/dev/null done ; \ ar rc libmicroros.a $(ls *.o *.obj 2> /dev/null); mkdir -p $BUILD_DIR; cp libmicroros.a $BUILD_DIR; ranlib $BUILD_DIR/libmicroros.a; \ cp -R $FW_TARGETDIR/mcu_ws/install/include $BUILD_DIR/; \ - rm $(find $BUILD_DIR/include -type f -not -name "*.h" -not -name "*.hpp") \ - rm -rf $(find $BUILD_DIR/include -type d -empty) \ + rm $(find $BUILD_DIR/include -type f -not -name "*.h" -not -name "*.hpp"); \ + rm -rf $(find $BUILD_DIR/include -type d -empty); \ cd ..; rm -rf libmicroros; popd >/dev/null From 27194ae353b99d3de10bdbbb89662cccf8867ddc Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Tue, 11 Mar 2025 07:43:02 +0100 Subject: [PATCH 33/38] Remove Iron from nightly --- .github/workflows/nightly.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 48e5766f..96683779 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -24,8 +24,3 @@ jobs: uses: micro-ROS/micro_ros_setup/.github/workflows/ci.yml@humble with: ci_target_ref: 'humble' - - Iron: - uses: micro-ROS/micro_ros_setup/.github/workflows/ci.yml@iron - with: - ci_target_ref: 'iron' From b851ded83b2abfefe0cf19f1ed2de33ebe973485 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3n=20Casas?= Date: Thu, 3 Apr 2025 10:43:00 +0200 Subject: [PATCH 34/38] Fix Humble CI (#773) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change CMake installation source in Humble CI from pip to apt. Signed-off-by: Antón Casas --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68a54f60..f3a5be16 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -237,8 +237,8 @@ jobs: apt update apt upgrade -y apt-get update - apt install -y python3-pip - pip3 install colcon-common-extensions cmake + apt install -y python3-pip cmake + pip3 install colcon-common-extensions rosdep update --rosdistro ${{ env.ROS_DISTRO }} rosdep install --rosdistro ${{ env.ROS_DISTRO }} -y --from-paths src --ignore-src -y From e0a17650e3c5a029a1227d91e9befdd69cad95b5 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 11:14:26 +0200 Subject: [PATCH 35/38] Bump setup-ros (backport #777) (#779) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump setup-ros (#777) Signed-off-by: Antón Casas (cherry picked from commit 262aa56ef7773be9d6c4fc9d084cdcafb2b721ad) # Conflicts: # .github/workflows/ci.yml * Merge conflicts Signed-off-by: Antón Casas --------- Signed-off-by: Antón Casas Co-authored-by: Antón Casas --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3a5be16..f36d07e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: path: src/micro_ros_setup ref: ${{ inputs.ci_target_ref }} - - uses: ros-tooling/setup-ros@0.7.0 + - uses: ros-tooling/setup-ros@0.7.13 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -72,7 +72,7 @@ jobs: path: src/micro_ros_setup ref: ${{ inputs.ci_target_ref }} - - uses: ros-tooling/setup-ros@0.7.0 + - uses: ros-tooling/setup-ros@0.7.13 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} @@ -227,7 +227,7 @@ jobs: path: src/micro_ros_setup ref: ${{ inputs.ci_target_ref }} - - uses: ros-tooling/setup-ros@0.7.0 + - uses: ros-tooling/setup-ros@0.7.13 with: use-ros2-testing: false required-ros-distributions: ${{ env.ROS_DISTRO }} From 5abfdaa59b0f18dc152b47b564d8e27012b05ac8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 12:32:24 +0200 Subject: [PATCH 36/38] Update maintainers (#785) (#787) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @EugenioCollado @Carlosespicur (cherry picked from commit 0358231ad14abd6f1c805e914d79ab9fcab79e73) Co-authored-by: Antón Casas --- package.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.xml b/package.xml index b00a29be..48a1d01b 100644 --- a/package.xml +++ b/package.xml @@ -4,7 +4,8 @@ micro_ros_setup 3.1.3 Tools for setting up micro-ROS workspaces - Pablo Garrido + Eugenio Collado + Carlos Espinoza Apache-2.0 ament_cmake From 22cf5e0068cbd2dd28559cc640da614aa5358b6f Mon Sep 17 00:00:00 2001 From: DedSecer Date: Tue, 30 Sep 2025 16:23:14 +0800 Subject: [PATCH 37/38] fix include path (#781) * fix include path * Trigger CI Signed-off-by: Carlosespicur --------- Signed-off-by: Carlosespicur Co-authored-by: Carlosespicur --- scripts/build_firmware.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/build_firmware.sh b/scripts/build_firmware.sh index 96a2c865..00295688 100755 --- a/scripts/build_firmware.sh +++ b/scripts/build_firmware.sh @@ -76,3 +76,14 @@ else . $PREFIX/config/$RTOS/$PLATFORM/build.sh fi +######## Fix include paths ######## +cd $FW_TARGETDIR/mcu_ws +INCLUDE_ROS2_PACKAGES=$(colcon list | awk '{print $1}' | awk -v d=" " '{s=(NR==1?s:s d)$0}END{print s}') + +for var in ${INCLUDE_ROS2_PACKAGES}; do + if [ -d "$FW_TARGETDIR/build/include/${var}/${var}" ]; then + rsync -r $FW_TARGETDIR/build/include/${var}/${var}/* $FW_TARGETDIR/build/include/${var} + rm -rf $FW_TARGETDIR/build/include/${var}/${var} + fi +done + From f8697a3262b0c42caf29052de1adff1561412827 Mon Sep 17 00:00:00 2001 From: EugenioCollado <121509066+EugenioCollado@users.noreply.github.com> Date: Tue, 9 Dec 2025 09:01:55 +0100 Subject: [PATCH 38/38] Remove rsync & execute only in non-host scenario (#799) Signed-off-by: Eugenio Collado --- scripts/build_firmware.sh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/scripts/build_firmware.sh b/scripts/build_firmware.sh index 00295688..e82cc0fe 100755 --- a/scripts/build_firmware.sh +++ b/scripts/build_firmware.sh @@ -77,13 +77,16 @@ else fi ######## Fix include paths ######## -cd $FW_TARGETDIR/mcu_ws -INCLUDE_ROS2_PACKAGES=$(colcon list | awk '{print $1}' | awk -v d=" " '{s=(NR==1?s:s d)$0}END{print s}') +if [ "$RTOS" != "host" ]; then + cd "$FW_TARGETDIR/mcu_ws" + INCLUDE_ROS2_PACKAGES=$(colcon list | awk '{print $1}' | awk -v d=" " '{s=(NR==1?s:s d)$0}END{print s}') -for var in ${INCLUDE_ROS2_PACKAGES}; do - if [ -d "$FW_TARGETDIR/build/include/${var}/${var}" ]; then - rsync -r $FW_TARGETDIR/build/include/${var}/${var}/* $FW_TARGETDIR/build/include/${var} - rm -rf $FW_TARGETDIR/build/include/${var}/${var} - fi -done + for var in ${INCLUDE_ROS2_PACKAGES}; do + if [ -d "$FW_TARGETDIR/build/include/${var}/${var}" ]; then + mkdir -p "$FW_TARGETDIR/build/include/${var}" + cp -a "$FW_TARGETDIR/build/include/${var}/${var}/". "$FW_TARGETDIR/build/include/${var}/" + rm -rf "$FW_TARGETDIR/build/include/${var}/${var}" + fi + done +fi