Skip to main content
Cerulion ships ROS2-compatible message types in the native_ros2_messages crate, generated from ROS2 Jazzy .msg files at build time. There are 20 packages. Import a type from its package:

Packages and representative types

The following table lists the packages with representative types from each. Type names are the PascalCase form of the source .msg file.

ROS2-to-Rust type mapping

schema info displays Rust types using this mapping:

Fixed vs variable fields

Fixed-size primitive fields are written directly — the write goes straight to shared memory, for example self.image.height = 480. Variable-length fields (string, T[]) must be listed in the #[output(...)] attribute; once listed, plain assignment works for them too. See the Node macro reference for the #[output(...)] keys.
In your node struct, a message type is used by name as a port field — for example image: Image — and read or written through plain field access inside tick().