micro-ROS/micro_ros_setup

Support macros for building micro-ROS-based firmware.

What it solves

It simplifies the process of building and deploying micro-ROS applications on various embedded platforms and microcontrollers. It acts as an entry point for developers—especially those new to microcontrollers—to cross-compile micro-ROS firmware using standard ROS 2 tools without needing to manually configure complex platform-specific build systems.

How it works

The package provides a structured four-step workflow to get micro-ROS running on hardware:

  1. Creating: create_firmware_ws.sh sets up a firmware folder with the necessary code for a specific RTOS (e.g., FreeRTOS, Zephyr) and platform.
  2. Configuring: configure_firmware.sh allows users to set transport methods (UDP, Serial, etc.) 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 microcontroller.

Additionally, it can be used to build the micro-ROS-Agent, which is required for the microcontroller to communicate with the rest of the ROS 2 network.

Who it’s for

  • ROS 2 developers who want to integrate micro-ROS into embedded systems.
  • Developers new to microcontrollers who need a streamlined way to cross-compile firmware.
  • Engineers working with RTOS-based platforms like FreeRTOS or Zephyr.

Highlights

  • Broad Platform Support: Supports a wide range of hardware including ST Nucleo boards, ESP32, Crazyflie 2.1, and Android.
  • RTOS Integration: Works with FreeRTOS and Zephyr, and provides links to standalone modules for others like Mbed, NuttX, and Azure RTOS.
  • Flexible Transport: Supports various communication methods including UART, USB, WiFi UDP, and custom radio links.
  • Agent Setup: Includes tools to create and build the micro-ROS-Agent directly.

Related

  • Project
  • Project
  • Project
  • Project
  • Project