Skip to content

Latest commit

 

History

History
100 lines (77 loc) · 3.75 KB

README.md

File metadata and controls

100 lines (77 loc) · 3.75 KB

LDS/LiDAR Library for Arduino

Laser distance scan sensor (LDS/LIDAR) Arduino wrapper/controller for kaia.ai home robot software platform. Please read this blog post for more details.

This library supports:

  • YDLIDAR X4, X3, X3-PRO, X2/X2L models
  • SLAMTEC RPLIDAR A1
  • Neato XV11/Botvac
  • Xiaomi Roborock Mi 1st gen LDS02RR
  • 3drobotix Delta-2A, Delta-2B, Delta-2G, Delta-2A 115000 baud
  • LDROBOT LD14P

Other models are in the works.

LDS_collection_labeled_v2

Video: Neato XV11 runs on Arduino, ROS2

Neato XV11 laser distance scan sensor runs on Arduino, ROS2

Video: Xiaomi Mi 1st gen LDS02RR runs on Arduino, ROS2

LDS02RR laser distance scan sensor runs on Arduino, ROS2

Video: SLAMTEC RPLIDAR A1 runs on Arduino, ROS2

RPLIDAR A1 laser distance scan sensor runs on Arduino, ROS2

Video: YDLIDAR X3 PRO runs on Arduino, ROS2

YDLIDAR X3 PRO laser distance scan sensor runs on Arduino, ROS2

Video: LDROBOT LD14P runs on Arduino, ROS2

LDROBOT LD14P LiDAR connected to Arduino, ROS2

Connecting to Arduino

Please follow this tutorial to connect LDROBOT LD14P to Arduino ESP32.

Adapter Boards

Some LiDAR/LDS models do not have built-in motor control and therefore require an additional board to operate:

Performance Notes

  • currently Delta-2A, -2B, -2G exhibit mysterioius fixed pattern noise
    • I'm sure it can be fixed, but so far I haven't heard back from 3irobotix support.

Release notes

v0.5.3 - in debug

  • added Delta-2A 230400 baud
  • added Delta-2B

v0.5.3

  • Camsense X1

v0.5.2

  • added LDROBOT LD14P

v0.5.1

  • bugfix lds_all_models.h include file

v0.5.0

  • added Delta-2A, Delta-2G

v0.4.0

  • added Neato XV11
  • added RPLIDAR A1
  • added YDLIDAR X3, X3 PRO
  • report scan RPM for all sensor models

v0.3.1

  • added YDLIDAR X2/X2L
  • measure RPM for YDLIDAR X4, YDLIDAR X2/X2L

v0.3.0

  • virtual class methods
  • ESP32 crash workaround by moving init code from constructor out to init()

v0.2.0

  • example bugfix
  • renamed classes

v0.1.0

  • initial release

TODO

  • add Xiaomi Roborock LDS01RR
  • add LDROBOT LD20
  • add Hitachi-LG HLS-LFCD2
  • add Dreame TBD
  • reduce raw data volume
    • omit measurement quality since it usually does not get used