Skip to content

OpenArCloud/SpatialDDS-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpatialDDS Demo

Reference demos for the SpatialDDS 1.6 draft spec (https://spatialdds.org), running on CycloneDDS. The repo bundles the upstream IDL under idl/v1.6, mirrors the manifest examples in manifests/v1.6, and ships four runnable demos that build on top of a shared spatialdds/envelope/v1 transport.

Multi-operator fusion canvas dashboard

Cesium web demo

Demos in this repo

Demo Path What it shows
Multi-operator fusion (flagship) multi_operator_fusion/ Three AV fleet operators + one 6G base station share Detection3D observations. A platform fuser does NN-gated track fusion and publishes unified FusedTracks. Rerun renders per-operator split-screen + fused view.
nuScenes → SpatialDDS → Rerun nuscenes/ Publishes nuScenes v1.0-mini AV data (ego pose, 6 cameras, LiDAR, 5 radars, 3D annotations) over DDS envelopes; visualizes in Rerun.
DeepSense 6G → SpatialDDS → Rerun deepsense/ Publishes DeepSense 6G Scenario 9 V2I data (60 GHz phased-array beam, FMCW radar, camera, GPS, 2D lidar) over DDS envelopes.
AR demo ar_demo/ Bootstrap → discovery → coverage query → localization → catalog → anchor flow for AR clients. Includes a Cesium web UI backed by an HTTP-to-DDS bridge (bridges/web_bridge/).
Benchmarks benchmarks/ Latency, discovery, multi-operator, and coverage-query benchmark scripts + plotting.

If you're new here, start with multi-operator fusion — it exercises the full envelope transport with real datasets.

Bridges

Protocol bridges live under bridges/ and work with every demo above without per-demo wiring:

Bridge Path What it does
Web (HTTP/WebSocket) bridges/web_bridge/ FastAPI server with two surfaces: legacy REST endpoints (/v1/localize, /v1/catalog/query, /v1/stream) for the Cesium demo, plus a generic subscribe-based protocol (/ws, /api/topics, /api/stats) so any browser app can listen to or publish envelopes by topic pattern with optional rate limits. Ships a 2D top-down canvas dashboard at / and a topic-list debug page at /debug.
MCAP record / replay bridges/mcap_bridge/ Records spatialdds/envelope/v1 traffic to an MCAP file and replays it back onto a CycloneDDS domain. Lossless (RELIABLE+KEEP_ALL), Foxglove-compatible, no per-demo wiring.
ROS 2 bridges/ros2_bridge/ Bidirectional bridge between SpatialDDS topics and ROS 2 topics. v0 covers PoseStamped, NavSatFix, Imu, CompressedImage, Detection3DArray, plus FusedTrackSet reverse. Conversion layer is duck-typed so 80% is testable without ROS 2 installed.
MQTT bridges/mqtt_bridge/ Bidirectional bridge between SpatialDDS and MQTT (local Mosquitto or AWS IoT Core). MQTT topic = SpatialDDS logical_topic, payload = same JSON. QoS/retain inferred from topic suffix (meta = retained, frames = best-effort, decisions = at-least-once). Loop prevention via _bridge_id + non-overlapping inbound/outbound filters.

Two HTTP servers — which one do I want?

ar_demo/http_binding.py bridges/web_bridge/server.py
Purpose Spec-compliance REST wrapper that mirrors the discovery payload shapes HTTP-to-DDS bridge that the Cesium / canvas dashboard talks to
Port (default) 8080 8088
Used by ar_demo/run_all_tests.sh, the AR demo README run_bridge_server_docker.sh, web/, bridges/web_bridge/static/
Run with DDS? No (in-process registration) Yes (publishes/subscribes envelopes)

They are not interchangeable. Use the bridge for the web/canvas demos; use the HTTP binding when you just want to exercise the registration/search payload shapes.

Browser UIs

Each demo brings its own browser visualisation — both served by the web bridge:

  • AR demo → 3D Cesium-Ion view of VPS coverage + catalog + localisation + anchor publication. Run via ar_demo/README.md.
  • Multi-operator fusion → 2D top-down canvas at http://localhost:8088/ (debug topic-list at /debug) — operator egos + trails, detection wireframes, planned trajectories, fused tracks, conflict markers, live metrics. Run via multi_operator_fusion/README.md.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors