Skip to main content

Crate zerodds_spatial_ros2

Crate zerodds_spatial_ros2 

Source
Expand description

SpatialDDS <-> ROS 2 semantic mapping for ZeroDDS.

Crate zerodds-spatial-ros2. Safety classification: STANDARD.

This is the ROS 2 carrier for the SpatialDDS profile: it converts the SpatialDDS types to and from the ROS 2 common-interfaces messages so a ZeroDDS node and a native ROS 2 node share a world model over standard ROS topics. The other SpatialDDS carriers (MQTT / WebSocket / MCAP) need no profile code because they are type-agnostic; ROS 2 is the one that needs a semantic map, because ROS and SpatialDDS name and shape the same concepts differently (geometry_msgs/sensor_msgs/vision_msgs/tf2_msgs/ geographic_msgs).

Both sides are ZeroDDS-generated: the ROS 2 message types come from the vendored [idl/ros_msgs.idl] run through ZeroDDS’ own IDL->Rust codegen (the same pipeline that generates the SpatialDDS types), so a converted value carries the ROS 2 XCDR wire layout directly.

§Mappings (convert)

SpatialDDSROS 2
spatial::core::FramedPosegeometry_msgs/PoseStamped
spatial::core::FrameTransformgeometry_msgs/TransformStamped, tf2_msgs/TFMessage
spatial::core::GeoPosegeographic_msgs/GeoPoseStamped
spatial::semantics::Detection3Dvision_msgs/Detection3D
spatial::semantics::Detection3DSetvision_msgs/Detection3DArray
spatial::vio::ImuSamplesensor_msgs/Imu

Each conversion is bidirectional (*_to_ros / *_from_ros), with From impls for the SpatialDDS->ROS direction. Field-fidelity notes (what each map drops) are on convert.

§Naming (naming)

naming::RosMessage gives the rmw-compatible DDS topic (rt/…) and type name (pkg::msg::dds_::Type_) so a converted value publishes on the topic a native ROS 2 subscriber is listening on.

Modules§

builtin_interfaces
The IDL module builtin_interfaces.
convert
Semantic conversions between the SpatialDDS profile types and the ROS 2 common-interfaces messages.
geographic_msgs
The IDL module geographic_msgs.
geometry_msgs
The IDL module geometry_msgs.
naming
rmw-compatible DDS topic + type naming for the mapped ROS 2 messages.
sensor_msgs
The IDL module sensor_msgs.
std_msgs
The IDL module std_msgs.
tf2_msgs
The IDL module tf2_msgs.
vision_msgs
The IDL module vision_msgs.