A node.js TypeScript device driver for controlling Slamtec RPLidar A1 - A3 devices.
Implements most of the device api; express scan mode is not supported yet
See API docs.
RPLidar devices support 2 scan modes: Standard and Express. This driver uses the Standard scanning mode.
Supports 3 scan data delivery modes: continuous scan data delivery, buffered 360 degree scan data delivery and one-time 360 degree scan data delivery
Tested on MacOS Mojave 10.14.6 with RPLidar 1AM8 device and cu.SLAB_USBtoUART driver.
Device user guides and protocol documentation can be found here.
Node >= 10.0.0
USBtoUART Driver - download and install for your OS
npm install @wayneparrott/rplidar-driver
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();
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.
Generated using TypeDoc