Volver a proyectos
olivaw-lidar
Driver en Rust puro para escáneres RPLIDAR de SLAMTEC
OLolivaw-lidar
Un driver para los escáneres láser RPLIDAR de SLAMTEC escrito enteramente en Rust. El objetivo principal es el RPLIDAR C1, con la estructura necesaria para extenderse a las series A y S.
let mut lidar = Lidar::open("/dev/cu.usbserial-XXXX")?; // /dev/ttyUSB0 en Linux
println!("{:?}", lidar.info()?);
lidar.start_scan()?;
for scan in lidar.scans() {
println!("{} puntos", scan?.len());
}
Por qué Rust puro
- Se compila de forma cruzada sin fricción a
aarch64-unknown-linux-gnu(Raspberry Pi) yaarch64-apple-darwin, sin configuración extra y sin toolchain de C++. - No hay
unsafeen ninguna parte: el crate declaraunsafe_code = "forbid". - El núcleo de parseo del protocolo es compatible con
no_std. Al desactivar la featurestdpor defecto obtienes solo los parsers, lo bastante pequeños para un ESP32.
La decisión estructural
El parseo del protocolo está estrictamente separado de la E/S. Es la decisión más importante del crate: los parsers son funciones puras sobre bytes, lo que los hace verificables sin hardware, reutilizables en un microcontrolador y portables a cualquier transporte. La mitad del puerto serial es una capa delgada sobre ellos.