No one at OSRF has had time lately to work on embedded platforms recently, but we are still really interested in them.
I’m not 100% certain what OS primitives mbed-OS gives you, but you might consider trying to get one of the DDS/RTPS implementations to compile for it, though it might not meet your needs. The other option would be to try and write the RTPS protocol yourself, potentially borrowing code from @codebot’s FreeRTPS project as needed:
The RTPS wire format is described in the “DDSI-RTPS” document:
Once you have an RTPS (or DDS) implementation going, you need to use it to implement the “rmw” (ROS Middleware Interface), see:
- Interface declaration (headers): rmw/rmw/include/rmw/rmw.h at master · ros2/rmw · GitHub
- FastRTPS implementation: GitHub - ros2/rmw_fastrtps: Implementation of the ROS Middleware (rmw) Interface using eProsima's Fast RTPS.
After that you just need to be able to compile the rcl and then optionally the rclcpp libraries on top. There has been some discussions lately with how to build these parts of the stack into static libraries, which I imagine you’d need to do:
And finally, we’re using C++14 now, so if that’s something you cannot handle with the mbed-os then, you might want to chime in here: