UnitCompose CI demos / lidar-slam

LiDAR SLAM

Slamwich over a deterministic 480-frame figure-eight episode with odometry drift, a verified loop closure, and evaluation reference.

commit 93d38190866a | rustc 1.89.0 (29483883e 2025-08-04) | generated 2026-08-20 08:11:11 UTC

Latest result

synchronized LiDAR frame -> stateful planar SLAM -> bounded trajectory, map, and error snapshot

frames=480 updates=454 keyframes=127 loops=4 accepted=384 dropped=888 translation_error=0.0014 rotation_error=0.0009 scan_capacity=384 map_capacity=2048

Module structure and measured execution

Prepared topology

flowchart TD
  unit_7363616e5f70726570617265["scan_prepare<br/>Unit<br/>lidar.scan_prepare/v1"]:::unit
  unit_736c616d["slam<br/>Unit<br/>lidar.slamwich/v1"]:::unit
  unit_736e617073686f74["snapshot<br/>Unit<br/>lidar.snapshot/v1"]:::unit
  resource_6c696461725f6672616d65[/"lidar_frame<br/>Module input<br/>lidar.SynchronizedFrame/v1"/]:::moduleInput
  resource_6c696461725f6672616d65 -->|frame| unit_7363616e5f70726570617265
  resource_6c696461725f6672616d65 -->|frame| unit_736e617073686f74
  resource_70726570617265645f6672616d65(["prepared_frame<br/>Resource<br/>lidar.PreparedFrame/v1"]):::resource
  unit_7363616e5f70726570617265 -->|prepared| resource_70726570617265645f6672616d65
  resource_70726570617265645f6672616d65 -->|prepared| unit_736c616d
  resource_736c616d5f6f62736572766174696f6e(["slam_observation<br/>Resource<br/>lidar.SlamObservation/v1"]):::resource
  unit_736c616d -->|observation| resource_736c616d5f6f62736572766174696f6e
  resource_736c616d5f6f62736572766174696f6e -->|observation| unit_736e617073686f74
  resource_736c616d5f736e617073686f74{{"slam_snapshot<br/>Module output<br/>lidar.SlamSnapshot/v1"}}:::moduleOutput
  unit_736e617073686f74 -->|snapshot| resource_736c616d5f736e617073686f74
  classDef unit fill:#eef2ff,stroke:#4338ca,stroke-width:1px
  classDef resource fill:#f8fafc,stroke:#64748b,stroke-width:1px
  classDef moduleInput fill:#ecfdf5,stroke:#047857,stroke-width:2px
  classDef moduleOutput fill:#fff7ed,stroke:#c2410c,stroke-width:3px
  classDef moduleInputOutput fill:#fefce8,stroke:#a16207,stroke-width:3px

Completed-run timing

flowchart TD
  unit_7363616e5f70726570617265["scan_prepare<br/>Unit<br/>lidar.scan_prepare/v1<br/>avg 70.5 us / p99 99.0 us / n=480"]:::unit
  unit_736c616d["slam<br/>Unit<br/>lidar.slamwich/v1<br/>avg 421.335 ms / p99 1822.032 ms / n=480"]:::unit
  unit_736e617073686f74["snapshot<br/>Unit<br/>lidar.snapshot/v1<br/>avg 31.2 us / p99 51.0 us / n=480"]:::unit
  resource_6c696461725f6672616d65[/"lidar_frame<br/>Module input<br/>lidar.SynchronizedFrame/v1"/]:::moduleInput
  resource_6c696461725f6672616d65 -->|frame| unit_7363616e5f70726570617265
  resource_6c696461725f6672616d65 -->|frame| unit_736e617073686f74
  resource_70726570617265645f6672616d65(["prepared_frame<br/>Resource<br/>lidar.PreparedFrame/v1"]):::resource
  unit_7363616e5f70726570617265 -->|prepared| resource_70726570617265645f6672616d65
  resource_70726570617265645f6672616d65 -->|prepared| unit_736c616d
  resource_736c616d5f6f62736572766174696f6e(["slam_observation<br/>Resource<br/>lidar.SlamObservation/v1"]):::resource
  unit_736c616d -->|observation| resource_736c616d5f6f62736572766174696f6e
  resource_736c616d5f6f62736572766174696f6e -->|observation| unit_736e617073686f74
  resource_736c616d5f736e617073686f74{{"slam_snapshot<br/>Module output<br/>lidar.SlamSnapshot/v1"}}:::moduleOutput
  unit_736e617073686f74 -->|snapshot| resource_736c616d5f736e617073686f74
  classDef unit fill:#eef2ff,stroke:#4338ca,stroke-width:1px
  classDef resource fill:#f8fafc,stroke:#64748b,stroke-width:1px
  classDef moduleInput fill:#ecfdf5,stroke:#047857,stroke-width:2px
  classDef moduleOutput fill:#fff7ed,stroke:#c2410c,stroke-width:3px
  classDef moduleInputOutput fill:#fefce8,stroke:#a16207,stroke-width:3px

Interactive recording

The fixed Rerun 0.24.1 blueprint shows domain outputs, quality metrics, and Unit timings from this CI run.

This downloaded report cannot serve the recording to the Web Viewer. Use the download link above and open the file with Rerun 0.24.1.