micro-ROS honeymoon with Arduino goes on!

Our romance with Arduino is not over, rather the opposite! In fact, during its first weeks of life, our micro-ROS/micro_ros_arduino repo has already witnessed quite a few changes, bug fixes and improvements!

Among them, we have refactored the transports for the OpenCR 1.0, and implemented an automated system for generating standalone micro-ROS libraries with a docker, that can be easily built as explained here. This allows users to re-compile programs with their preferred configuration (e.g., by changing colcon.meta files to adapt the parameters to their needs) and/or add custom packages. As a cherry on the top, it serves the purpose of automatizing the repo update on a daily basis.

And that’s not all!

We are proud to share that, apart from our (hard! :innocent: ) work, the development of micro-ROS is each day more spreaded on the shoulders of the ROS 2 community, and we receive more and more contributions from our users. The most recent has been the port to the Arduino Due and Arduino Zero carried out by @lukicdarkoo.
The port to the latter (featuring a flash memory of 256 KB and a modest SRAM of 32 KB) is a good example of the flexibility of our platform and to get a taste of how memory consumption can be significantly reduced by opportunely configuring the middleware library via the rmw. In this case, the size of the memory pools dedicated to hosting the ROS 2 entities have been tuned to fit the resource availability of the platform, with 1 node, 2 publishers, 1 subscription, no services, 1 client, and 1 slot for the RMW history, so as to obtain an impressively low footprint.

Thanks to this port, we are already at release v0.0.4 of the Arduino repo! Moreover, hopefully we’ll be soon seeing micro-ROS on the Arduino Portenta too!

9 Likes