Options
All
  • Public
  • Public/Protected
  • All
Menu

@wayneparrott/rplidar-driver

rplidar-driver

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

    • 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.

  • 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.

screenshot

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.

Generated using TypeDoc