ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Rust support for embedded devices

@gbiggs
Hi, we have developed the rclc-library (GitHub - ros2/rclc: ROS Client Library for the C language.) for micro-ROS, which puts ROS 2 on micro-controllers (https://micro.ros.org/). Looking at ros2_rust/rclrs/src/node at master · ros2-rust/ros2_rust · GitHub, Rust supports currently only subscribers and publishers using rcl. We have developed a C-API in the rclc-library, which comes with full ROS 2 feature support (subscribers, publisher, services, guard_conditions, executor, parameters, actions etc. ) that can be used for Linux or on embedded devices, as it is fully based on rcl.

Would you be interested in using rclc as Rust interface to ROS 2? The benefit for Rust developers: they could program in Rust with all ROS 2 features, such as services, parameters, actions and the executor comes with static memory allocation. There is no dynamic memory allocation at run-time. This C-API can be used for Linux-supported processors as well as on embedded devices. The benefit for embedded-devices, you could program in Rust on the micro-controllers using micro-ROS stack.

The last Rust Working Group was in April 2021(Rust working group meeting - 2021/04/28). Therefore I created this post. Where would be the best way to ask this question to Rust - ROS2 enthusiasts?

1 Like

@gbiggs

Not sure why this is addressed to @gbiggs, but I’m the author of rclrs :slight_smile:

Would you be interested in using rclc as Rust interface to ROS 2?

That’d be an interesting approach, but the reason we created the rmw/rcl/client_libraries layers in ROS2 is so that client libraries would have the freedom to choose whatever threading and memory models feel more natural to languages. For example, with Rust we can control the life cycle of objects to ensure there aren’t memory issues.

Thank you for your comment. gbiggs posted the last rust working group meeting. Therefore I addressed him directly.

Let’s continue the discussion in this thread: Release: rust ROS2 library r2r