micro-ROS/micro_ros_setup

Support macros for building micro-ROS-based firmware.

What it solves

It provides a streamlined entry point for developers to build micro-ROS applications on various embedded platforms and microcontrollers. It simplifies the process of cross-compiling micro-ROS, which typically requires complex toolchains, by allowing developers to use common ROS 2 tools to create, configure, build, and flash firmware.

How it works

The package uses a four-step workflow to manage firmware deployment:

  1. Creating: create_firmware_ws.sh sets up a workspace with the necessary code and dependencies for a specific RTOS (e.g., FreeRTOS, Zephyr) and platform (e.g., ESP32, STM32).
  2. Configuring: configure_firmware.sh allows users to set transport methods (UDP, Serial) and agent connection details (IP, port).
  3. Building: build_firmware.sh compiles the firmware into a platform-specific binary.
  4. Flashing: flash_firmware.sh uploads the binary to the target hardware.

Additionally, it can be used to build the micro-ROS-Agent, which acts as the bridge between the micro-ROS clients on embedded devices and the rest of the ROS 2 network.

Who it’s for

It is primarily designed for ROS 2 developers who are new to microcontrollers and embedded systems, as well as those looking for a quick way to integrate micro-ROS into their robotics projects across different RTOS and hardware platforms.

Highlights

  • Broad Platform Support: Supports a wide range of platforms including ESP32, STM32 Nucleo boards, Crazyflie 2.1, and Android.
  • RTOS Integration: Compatible with FreeRTOS and Zephyr RTOS.
  • Agent Setup: Includes built-in tools to create and build the micro-ROS-Agent.
  • Extensible: New platform and RTOS combinations can be added via simple configuration scripts.

Related

  • Project
  • Project
  • Project
  • Project
  • Project