Expand description
SpatialDDS 1.6 profile for ZeroDDS.
Crate zerodds-spatial-dds. Safety classification: STANDARD.
The SpatialDDS types are generated at build time, not hand-written.
The input is the vendored idl/spatial_core.idl, derived from
OpenArCloud SpatialDDS 1.6,
with modules combined and identifier corrections recorded in its header.
It is not verbatim upstream IDL: renamed members affect Complete
TypeObjects and can affect name-derived mutable member IDs. Compatibility
with an unmodified upstream-generated peer must not be assumed from the
profile name alone.
The build script generates inherent encode/decode methods using
zerodds-wire. It selects little-endian XCDR2 framing per aggregate’s
extensibility annotation: plain for final, delimited for appendable and
parameter-list for mutable. This is local type and codec generation, not
an independent cross-vendor interoperability certification.
Modules carried:
spatial::common—FrameRef,MetaKV,AssetRef,TileKey, theVec3/Mat*/QuaternionXYZW/BBox2Daliases,CovarianceType/CoordConvention.spatial::core—PoseSE3,Aabb3,FramedPose,GeoPose,FrameTransform, theCovMatrixunion;builtin::Time.spatial::disco— spatial discovery:Announce,Capabilities,CoverageElement,TopicMeta,ServiceKind,Transform,Depart.spatial::anchors— geo-anchored registries (the federated shared-world-model core):AnchorEntry,AnchorSet,AnchorDelta.spatial::sensing::common— the sensing base (StreamMeta/FrameHeader/ROI/ Codec/ROIRequest/ROIReply/…).spatial::sensing::vision— vision (CamIntrinsics/Keypoint2D/Track2D/ VisionDetections).spatial::sensing::lidar— LiDAR (LidarMeta/LidarFrame/LidarDetectionSet).spatial::sensing::rad— radar (RadSensorMeta/RadDetectionSet/RadTensorFrame).spatial::semantics— 2-D/3-D detections (Detection2D(Set)/Detection3D(Set)).spatial::slam_frontend— SLAM front-end (Feature2D/KeyframeFeatures/MatchSet/Landmark/Tracklet).spatial::vio— visual-inertial odometry (ImuInfo/ImuSample/SensorFusionSample/FusedState).spatial::argeo— geo-referenced pose graph (NodeGeo).
§Carriers
This crate supplies a type layer, not a running transport. Its generated
inherent codecs do not establish automatic integration with every bridge
or recorder. Those paths need their own adapter and end-to-end evidence.
Semantic conversion between selected ROS 2 messages and SpatialDDS types
is provided by the separate zerodds-spatial-ros2 crate.
Modules§
Functions§
- topic
- Builds a multi-operator SpatialDDS topic name:
sdds/<operator>/<kind>. SpatialDDS namespaces topics per operator so federated fleets share a world model without colliding;operatoris the operator/tenant id,kindthe SpatialDDS message kind (e.g."GeoPose","FramedPose").