@wayneparrott/rplidar-driver
v0.8.4
Published
Typescript driver for controlling RPLidar A1-A3 and S1 devices
Downloads
9
Maintainers
Readme
rplidar-driver
A TypeScript (javascript) RPLidar device driver for controlling Slamtec A1 - A3 lidar devices from Node.
Implements the following device api:
- startMotor()
- stopMotor()
- reset()
- getHealth()
- getInfo()
- getRPM()
- getSampleRates()
- getScanModes()
- startScan()
- stopScan()
See API docs.
RPLidar devices support 2 scan modes: Standard and Express. This driver uses the Standard scanning mode. Support for Express scan mode is planned.
Supports 3 scan data delivery modes: realtime scan data delivery, batch 360 degree scan data delivery and single 360 degree batch scan data delivery
Tested on MacOS Mojave and Catalina and Linux Ubuntu 18.04.1 with RPLidar 1AM8 device and cu.SLAB_USBtoUART driver. Windows 10 testing planned.
Device user guides and protocol documentation can be found here.
Prerequisites
Node >= 10.0.0
USBtoUART Driver - download and install for your OS
Installation
npm install @wayneparrott/rplidar-driver
Usage
import { RPLidarDriver, ScanSample} from 'rplidar-driver';
async function run_demo() {
const lidar = new RPLidarDriver();
await lidar.init();
console.log('health: ', await lidar.getHealth());
console.log('info: ', await lidar.getInfo());
lidar.on('scan', (scanSample: ScanSample[]) => console.log(scanSample));
lidar.startScan();
console.log('started scanning');
}
run_demo();
Thanks
All credit to Andrew Koroluk the author of the rplidar npm module. rplidar-driver began as a fork of node-rplidar with the goal to reimplement it's functionality in TypeScript module. Initially I was not able to run rplidar on a RPLidar 1AM8 device without errors. That led to some early mods. Then I began removing dependencies, introducing types, additional api, etc. But still much of the code and examples are basically Andrew's original work with minor tweaks to work with rplidar-driver. Thanks Andrew for showing me the way!
Built in TypeScript using the CodeMix plugin for Eclipse.