zerodds-spatial-ros2
Semantic conversions between SpatialDDS types
and generated ROS 2 common-interface types from ros_msgs.idl.
This crate itself is a type/conversion layer, not an RMW implementation or a
running bridge; rmw-zerodds-shim's opt-in
ros2.spatial_bridge (C2(6)) is the consumer that runs it as a bridge.
The conversion module covers poses, transforms, geographic poses, 3D detections and IMU samples. The naming module provides ROS-compatible DDS topic and type names.
Conversions are not lossless: for example, PoseStamped has no destination
for SpatialDDS pose covariance, and several identifiers/metadata fields have
no ROS counterpart. Each conversion's field-fidelity contract is documented
in convert.rs; reverse conversion defaults fields absent from ROS.
Both message families are generated by this tree's build-time code generation.
See the build script and tests. Successful conversion
tests alone do not establish live communication with a native ROS 2 node —
rmw-zerodds-shim's tests/spatial_bridge_e2e.rs demonstrates the bridge
in-process (a SpatialDDS writer through the bridge to a plain DCPS reader of
the ROS type, and back); a real ros2 topic echo against a native ROS 2 node
is a separate, manual measurement (commands in that crate's README).