Want to integrate the micro-ros client and micro-ros agent builds into a single host build invocation
I want to build some micro-ros enabled firmware against multiple boards (esp32, teensy, and potentially others), and multiple platforms (freertos and arduino). I will also have a package of custom messages to be shared across the micro-ros agent, the microros-clients and other ROS2 nodes. Here are the list of packages I will have:
- client_esp32_arduino_microros
- client_teensy_arduino_microros
- client_esp32_freertos_microros
- client_teensy_freertos_microros
- my_custom_messages
According to the Micro-ROS instructions, all the micro-ROS builds run across 3 a separate workspaces (microros_ws, firmware_ws and mcu_ws), with:
- One set of ros2 run scripts for creating creating, configuring, building and flashing the firmware, and
- Another set for creating and building the micro-ros agent itself.
Compared and contrasted to the simple process that PlatformIO offers for tying together different boards/frameworks/platforms, using micro-ros has been quite a steep hill to climb. Specifically, the seemingly out-of-band steps for building micro-ros firmware seem very intricate.
Some questions:
- Is there an existing colcon target, and set of best practices, that I could use to integrate all those steps under one host workspace (
colcon_ws
), via a single invocation ofcolcon build
? - Ditto regarding the need for explicitly cloning/copying the 'my_custom_messages' package under both the colcon_ws and the mcu_ws.
- Are there examples of self-contained micro-ros firmware packages? The example firmware is all clumped together under a complex hierarchy of folders under the micro-ros-setup package, and doesn't show how to create each of them as independent ROS2 packages.