LidarDriver yields point-cloud frames from a spinning,
solid-state, or single-line ranging device.
The interface
Writing the agent half in Rust? The trait equivalent is
ados_sdk::drivers::LidarDriver (re-exported from the drivers
module of the ados-sdk crate). It carries the same six methods
(discover, open, close, capabilities, frame_iterator,
set_param) over an async-trait, with LidarCandidate,
LidarCapabilities, LidarFrame, and LidarPoint as the matching
types. LidarFrame holds timestamp_ns, sequence, a points
vector, and free-form metadata. Set runtime: rust in the
manifest and the host treats the driver the same way it treats the
Python one.Capabilities
Frames
EachLidarFrame carries a list of LidarPoint in the sensor body
frame: +x forward, +y left, +z up. Coordinates are metres.
Manifest permissions
Single-line vs spinning
The agent does not distinguish single-beam rangefinders from full 3D LiDARs at the driver layer. A 1D rangefinder ships frames withpoints_per_frame=1. The host’s avoidance and SLAM consumers
already handle the degenerate case.
See also
- Driver layer for the contract.
- Hardware testing for replay patterns when no LiDAR is on the bench.