Close
0%
0%

360 Degree LIDAR-Lite Scanner

I took two LIDAR-Lite laser range finders and mounted them atop a 3D printed, 360 degree continuously rotating frame, to scan any area.

Similar projects worth following

Here be details.

So, i've always wanted to build an autonomous roving platform with lasers and SLAM. It has always been either too cost prohibitive or too difficult to build. Now that Pulsed Light3D has a cheap laser range finder and I have a 3D printer, I can finally see this idea come to light.

All my 3D models are designed using inventor and printed on a Makerbot 5th Gen. I'll post all the STL's here shortly ... just getting this setup.

You can watch a working unit here: https://www.youtube.com/watch?v=nIvOWfxFefc

  • 2 × LIDAR-Lite LIDAR laser range finder form Pulsed Light3D
  • 2 × Netduino 2 Plus
  • 2 × nRF24L01 Wireless Transceiver
  • 1 × Stepper ROB-09238 : Stepper from Spark Fun
  • 1 × EasyDriver - Stepper Motor Driver ROB-13226 : stepper controller from Spark Fun

View all 9 components

  • Github netduino code

    Jason Wood02/02/2015 at 00:11 0 comments

    Github with Netduino code to read the MODE PWM pin's measurements.

    https://github.com/WoodRobotics/LIDAR_Lite_PWM_Fix

  • Thingiverse project

    Jason Wood02/01/2015 at 23:31 0 comments

    I've created a project in thingiverse.

    http://www.thingiverse.com/thing:662646

  • SLAM for Dummies

    Jason Wood01/30/2015 at 20:40 4 comments

    SLAM isn't a simple plug 'n play type of algorithm. Least squares alone takes some good knowledge of math and trig. But, I have managed to extract landmarks out of my scans using least squares and ransac. I've been using SLAM for Dummies written by a few MIT students. This code was written in C# but leaves much to desire. My scans come in wirelessly as two doubles: Angle and Distance. It is first converted to X,Y coordinates and data bound to a WPF object for display. This MIT document doesn't do this. Instead, it using a sweep of distance measurements and assumes the angle. This assumption is based on their LIDAR returning X degrees a second. This caused me a good deal of confusion when I first dug into the code. It turns out, simply reading their explanation of SLAM is way more forthcoming.

    I am able to manually pick any data point along the 360 degree scan and find a matching landmark using Least Squares and ransac. This was a great step forward as it taught me what Least Squares truly does. I was also able to use some built in WPF trig functionality to determine how many scanned points lie inside a rectangle built from the Least Squares. This is how I know if the scan points are a long straight line/wall that can be easily used in the Extended Kalman Filter. (mind you, all of this work is harder when using two different scanners pulling points 180 degrees from one another)

    I'll put some C# code here this weekend to better explain all of this.

    I also still owe you all example C# code for reading the LIDAR-Lite's. It will be branched off LIDAR-Lite's github this weekend also.

    Until then,

  • Added Wireless and a case. Ver: 0.2

    Jason Wood01/27/2015 at 16:06 1 comment

    3D printed a full case to hold all the hardware required to run the scanner. It is now using a nRF24L01 to wirelessly transmit its data to a base station. The base station is simply a Netduino 2 with a second nRF24L01 transceiver and a serial to USB connection.

    Here is a scan of the IT area at my office using this setup. I have it perched rather high in the room so I can get just the bounding area.



  • Ver: 0.1 - Printed Mount and Tests scans

    Jason Wood01/26/2015 at 16:44 0 comments

    Place holder ... brb.

View all 5 project logs

  • 1
    Step 1

    Print print print ... all day long. Print print print while I sing this song.

View all instructions

Enjoy this project?

Share

Discussions

EngineerAllen wrote 02/05/2017 at 17:52 point

how much power does it use

  Are you sure? yes | no

Paul wrote 05/21/2015 at 14:09 point

Fantastic work man. How do you get the readings on to your computer?

  Are you sure? yes | no

buecher wrote 02/28/2015 at 04:19 point

Hi, I'm new to all of this.  But I've just put together a Lidar Lite mounted on two steppers that allow for 360 degree scanning both horizontally and vertically.  This lets me scan a complete sphere.  My problem is that the scanning is too slow.  Using PWM I can only get 24 points per second, so it takes 8.5 minutes to do a complete scan.  I'm looking for ways to speed up the data rate.

  Are you sure? yes | no

Jason Wood wrote 01/31/2015 at 17:45 point

sorry frik ... My phone sucks for writing comments. I also down voted your comment because my phone sucks ... I didnt mean to

  Are you sure? yes | no

Jason Wood wrote 01/31/2015 at 17:44 point

yes i can. Im getting about 30 points per second per device right now ... But i think i can almost double that. Im changing the gear ratios to 4 to 1 to give better speed control. I also plan on rotating the units in two axis to get a full 3d scan. But that wont happen for a little while. I want to get this setup working at its max first. Ive thought about mirrors but it seems like i would need more accurate hardware than i can 3D print. So, for the time being, I'm going to rotate the units and not mirrors. Ive also ran this at 1 second per revolution with not problems. Other than lowering points per revolution

  Are you sure? yes | no

frik wrote 01/31/2015 at 20:35 point

Thanks for the info, sounds great. Maybe increasing the rep rate as will help too:

https://groups.google.com/forum/#!topic/pulsedlight3d/rcdTQvOLUXw

I though about building a two axis lidar like yours, but pointing a single lidar upwards. I plan to place mirror (attached to a servo) above the lidar in ~45° (angle adjustable by the servo) to get a 3D scan like this:

http://s7.postimg.org/iiefl9qyz/draft.png

  Are you sure? yes | no

Adam Fabio wrote 01/28/2015 at 06:45 point

Awesome! Glad to see someone working on this with SLAM in mind. If you want to do a spherical scan, you can add "nodding" motion to one or both of the sensors. This is the same way some older RADAR systems would determine altitude to a target.

  Are you sure? yes | no

Jason Wood wrote 01/28/2015 at 16:39 point

That is what I was thinking. Though, I'm going to work in the 2D scan's first. I'm somewhat new to SLAM (other than the theory) and I don't want to add extra complications to start. I'm successfully getting the Least Squares Estimates to find line landmarks. And now I'm trying to get the Extended Kalman Filter to keep track of these landmarks. Progress ... Onward.

  Are you sure? yes | no

Kaspar wrote 01/27/2015 at 17:34 point

This is really cool. First thing I thought was flip it 90 degrees or maybe 45 and put it on a turntable itself. That way you could get some kind of 3d point cloud instead of just a 2d map. Make it light enough to put on a drone, I will throw money at you.

  Are you sure? yes | no

Jason Wood wrote 01/27/2015 at 17:55 point

I've already started working on a full 360 sphere design. I want to put the LIDARs on gears that a small servo could control. The entire things spins 360 and the lidars rotate 180 in the opposite direction. I can also greatly speed sweeping scan but at a loss of some fidelity.

  Are you sure? yes | no

frik wrote 01/31/2015 at 17:27 point

How many RPM/RPS are possible/acceptable with some loss of fidelity? (LIDAR-lite datasheet mentions acquisition time <0.02 sec and 10-100Hz rep rate).

For comparision the Velodyne 64E lidar ( can spin between 300 and 900 PPM (5-15 RPS) with at least 521 points per revolution per laser (<0.69° angular resolution).

http://www.velodynelidar.com/lidar/products/manual/HDL-64E%20Manual.pdf

Do you plan to adjust the two lidars at different angles? Would a mirror help in the construction?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates