SLAM for Dummies

A project log for 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.

Jason WoodJason Wood 01/30/2015 at 20:404 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,


ccorrea wrote 08/02/2016 at 21:29 point

well, congrats!!  Are you still planning to upload the files?

  Are you sure? yes | no

Jason Wood wrote 02/09/2015 at 20:26 point

I will be adding the windows C# code as well. I've gotten side tracked on the build of the chassis that will hull all of this around. I'm going to post on this progress later today.

  Are you sure? yes | no

frik wrote 02/09/2015 at 20:22 point

Do you mind publishing your C# Windows code to github as well? (the application seen in your videos) It would be a good starting point for early experimentations.

  Are you sure? yes | no

eric Lu wrote 05/13/2015 at 03:26 point

Looking forward the C# code.

  Are you sure? yes | no