arjav1528 opened a new issue, #18508:
URL: https://github.com/apache/nuttx/issues/18508

   ### Description
   
   Hey everyone,
   I'm planning to work on this project: **Micro-ROS integration on NuttX**. 
Micro-ROS brings ROS 2 to microcontrollers — it uses a lightweight DDS-XRCE 
client on the MCU that talks to an Agent on the host, bridging into the full 
ROS 2 network. It was originally developed on NuttX by Bosch and EU partners, 
and NuttX is still officially supported by the micro-ROS project. But after 
FreeRTOS and Zephyr support was added, the NuttX side stopped getting love and 
fell behind.
   
   The existing `micro_ros_nuttx_app` repo says it was last tested on NuttX 
10.3. The library build files (`micro_ros_lib/Makefile`, `colcon.meta`, 
`toolchain.cmake.in`) are still being maintained — updated as recently as Apr 
2025 for rolling fixes and bumped to Kilted in mid-2025. But the actual NuttX 
integration glue — the top-level `Makefile` and `Make.defs`, and the entire 
`example_app/` (Kconfig, Make.defs, microros_main.c) — hasn't been touched 
since Aug 2021 (~4.5 years). There's no CMakeLists.txt for NuttX's CMake build 
system. The tutorial still references NuttX 10.0.0 docs, and even the CI only 
builds against NuttX 10.3 (not current NuttX master).
   
   There are also two open issues worth noting: one is an unresolved 
`arm_hardfault` crash from 2021, and another is Roberto Bucher's work getting 
it running on Nucleo-144 with UDP where he hit a `DIR` type redefinition bug.
   
   ### What I'm thinking:
   
   1. Try building the existing repo against current NuttX master, document 
every breakage
   2. Fix the build system — update the stale Make files, Kconfig, 
toolchain.cmake; add CMakeLists.txt for NuttX CMake
   3. Test and fix the serial (TERMIOS) and UDP transports on current NuttX
   4. Investigate and address those two open issues (hardfault, DIR 
redefinition)
   5. Add defconfigs for more boards — ESP32, RP2040, not just STM32
   6. Update the example app, add a couple new ones (pub/sub, service)
   7. Update the documentation for current NuttX
   
   ### Rough timeline:
   
   - **Weeks 1–2**: Environment setup, baseline build attempt, study 
Zephyr/FreeRTOS ports as reference
   - **Weeks 3–5**: Fix build system (Make + CMake), get first clean build on 
STM32
   - **Weeks 6–7**: Transport validation, resolve known issues
   - **Weeks 8–9**: Multi-board support (ESP32, RP2040)
   - **Weeks 10–11**: Example applications
   - **Weeks 12–14**: Documentation, CI improvements, upstream PRs
   
   ### Resources:
   1. [micro_ros_nuttx_app](https://github.com/micro-ROS/micro_ros_nuttx_app)
   2. [Micro-ROS website](https://micro.ros.org)
   3. [Micro-ROS NuttX 
tutorial](https://micro.ros.org/docs/tutorials/core/first_application_rtos/nuttx/)
   4. [DDS-XRCE spec](https://www.omg.org/spec/DDS-XRCE/1.0/About-DDS-XRCE)
   
   ### Verification
   
   - [x] I have verified before submitting the report.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to