Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status

Slamtec RPLIDAR Public SDK for Rust


Slamtec RPLIDAR( series is a set of high-performance and low-cost LIDAR( sensors, which is the perfect sensor of 2D SLAM, 3D reconstruction, multi-touch, and safety applications.

This is the public SDK of RPLIDAR products in Rust, and open-sourced under GPLv3 license.

If you are using ROS (Robot Operating System), please use our open-source ROS node directly: .

If you are just evaluating RPLIDAR, you can use Slamtec RoboStudio( (currently only support Windows) to do the evaulation.

Development Roadmap

Please see Roadmap for details.

Release Notes

Supported Platforms

RPLIDAR SDK supports Windows, macOS and Linux by using Visual Studio 2010 projects and Makefile.

LIDAR Model \ Platform Windows macOS Linux
A1 Yes Yes Yes
A2 Yes Yes Yes
A3 Yes No Yes

Quick Start

This crate works with Cargo and is on Add it to your Cargo.toml like so:

rplidar_drv = "0.5.0"

To use RPLIDAR Rust SDK is quite simple:

extern crate rplidar_drv;
extern crate serialport;

use rplidar_drv::RplidarDevice;

let mut serial_port = serialport::open("COM3").unwrap();
let mut rplidar = RplidarDevice::with_stream(serial_port);

let device_info = rplidar.get_device_info().unwrap();

while true {
    let scan_point = rplidar.grab_scan_point().unwrap();

    // use the scan point data