Posted by Chris Anderson on December 21, 2009 at 12:30pm
Cool news for those interested in SLAM (Simultaneous Localization and Mapping) for indoors robotics. From Hizook:
"A commercially-available ultra low-cost laser rangefinder is finally set to hit department store shelves in February! I'm speaking of the laser rangefinder presented at ICRA 2008 that costs $30 to build that sits atop the recently announced Neato Robotics XV-11 vacuum cleaner. Others have thoroughly discussed the XV-11's competitiveness with iRobot products, the possible patent infringement of iRobots square-front design, and its ability to perform SLAM. But everyone has glossed over the coolest part: Forget the $400 robot, $60 batteries, $30 wheels (etc.) available for pre-order on Neato's website... if made available, sub-$100 laser rangefinders would revolutionize hobby robotics! Read on for a description of this compelling (future?) component.
Neato sponsored an ICRA 2008 research paper entitled, "A Low-Cost Laser Distance Sensor," that detailed the design of laser rangefinder that costs only $30 to build. Called the "Revo LDS", it is pictured above. Diagram of operation below:
Unlike the more expensive (many thousands of dollars) laser rangefinders that use time of flight measurements, such as those discussed here and here, the Revo LDS triangulates the distance to an object using a fixed-angle laser pointer and a CMOS imager, with a known baseline between the two. To quote:
`A compact, rigid point-beam triangulation module incorporating laser, imager, and electronics. With a low-cost CMOS imager and a DSP for subpixel interpolation, we get good range resolution out to 6 m with a 5 cm baseline, at a 4 KHz rate. The key insight to the Revo is that high precision is possible with a small baseline, because of the digital image sensor.`
A motor spins the unit at 10Hz to give a full 360-degree field of view. An optical encoder gives 1-degree angular accuracy. Not exactly Earth-shattering, but simple and low-cost. An enclosed, robust USB version of this sensor would have broad appeal, and open up the world of hobby robotics to a sensor that is ubiquitous on research robots. Oh, and I suppose the XV-11 isn't half-bad either:
I seriously hope that Neato makes the laser rangefinder component available separately, but it is currently not listed on their website for purchase. At the moment, I am a bit worried about the possibility of litigation due to similarities between the XV-11 and an iRobot patent (see below). Hopefully they see the light and avoid destructive lawsuits."
Read the whole thing here.
I worked on a laser distace finder using triangulation a few years back, but I did not get too far with it...
I made a development board, I used a PIC32 microcontroller, a 1024 CCD Array, an Analog to Digital converter, and a 5 mW green laser (because green lasers are much brighter than the cheaper red ones)
I had several problems to overcome... first was interference... if you take the position (on the CCD array) of the brightest pixel, then it might not be your laser! since you do it indoors, you can have other lights in the room.... outside during the day is even worse! so the solution to that is to execute 2 readings.... first reading the laser is Off, and another reading with the laser ON... store data into arrays, and then substract the "ON" with the "Off", and you find the pixel position of the difference. The trick with this is to do the ON/OFF readings very quick, because any change in light between the readings will distort the reading, and again it might not "see" the laser.
I only got precision of about 3 meters, after that the signal was too weak... I tried to figure out how to amplify the signal from the CCD, but I could not figure out how to do it because I am not that good at electronics (especially with analog stuff), but I am very good at programming :)
I only got about 10Hz because of the double reading for laser ON/Off, and also because I could not figure out how to amplify the signal. In order to get a good reading I had to let the light accumulate into the CCD; every pixel is like a capacitor that is charging the more light gets into it... so the longer exposure to light, the greater the value of the reading, and since I had nothing to amplify the reading, I had to set the exposure for a few milliseconds, so it slowed everything down...
Other problem I had, was to find good optics to put on the CCD array, in the end I dismatled a working web-cam, and took the optics from there, but it was not a perfect fit, and the image/reading was a little blured, and it did not cover the entire 1024 pixels of the array, I ended up having only about 700 usable pixels.
If I had good optics, a good way to amplify the signal, I am sure I could make it over 50Hz... but I gave up on the project because I had no one to help me :(
I later found a much better way to do a laser distance finder, see this:
I guess you still need to design a rotating turret for the finished assembly but all the pieces seem to be in place and it requires assembly and tuning.
This kind of laser ranging has been documented, even using a scanning laser for 2D readings out of a single image. Appropriate for vacuums, the challenge would be to demonstrate real range out of doors, specifically finding the signal in the increasing background noise.
It looks like it would make a compact LIDAR system. This module combined with a pan-tilt head would make a nice addition to any UAV. No word on cost yet, hopefully I get a chance to talk to them at SPIE in January.
I've seen this in action and it's fantastic. I watched that robot do a circle around a soccer ball with a centemeter to spare and it never touched the ball. That photo looks like an early prototype. It's much more sophistacated now.
This is very similar to the optical triangulation used by the Sharp IR ranging modules. The sharp modules don't have as much range, but are inexpensive and can be spun up to about 10Hz as well. At ERAU, we use them for lateral and vertical ranging on the monocopter. The biggest limitation of the Sharp modules is that the analog output is unprocessed, so it's highly nonlinear.
Comments
While not $30, the new TeraRanger Towers have been getting a bunch of press. The spatial resolution isn't great, but you get 270Hz sample rate!
http://easierrobotics.com/products/teraranger-tower-8
I worked on a laser distace finder using triangulation a few years back, but I did not get too far with it...
I made a development board, I used a PIC32 microcontroller, a 1024 CCD Array, an Analog to Digital converter, and a 5 mW green laser (because green lasers are much brighter than the cheaper red ones)
I had several problems to overcome... first was interference... if you take the position (on the CCD array) of the brightest pixel, then it might not be your laser! since you do it indoors, you can have other lights in the room.... outside during the day is even worse! so the solution to that is to execute 2 readings.... first reading the laser is Off, and another reading with the laser ON... store data into arrays, and then substract the "ON" with the "Off", and you find the pixel position of the difference. The trick with this is to do the ON/OFF readings very quick, because any change in light between the readings will distort the reading, and again it might not "see" the laser.
I only got precision of about 3 meters, after that the signal was too weak... I tried to figure out how to amplify the signal from the CCD, but I could not figure out how to do it because I am not that good at electronics (especially with analog stuff), but I am very good at programming :)
I only got about 10Hz because of the double reading for laser ON/Off, and also because I could not figure out how to amplify the signal. In order to get a good reading I had to let the light accumulate into the CCD; every pixel is like a capacitor that is charging the more light gets into it... so the longer exposure to light, the greater the value of the reading, and since I had nothing to amplify the reading, I had to set the exposure for a few milliseconds, so it slowed everything down...
Other problem I had, was to find good optics to put on the CCD array, in the end I dismatled a working web-cam, and took the optics from there, but it was not a perfect fit, and the image/reading was a little blured, and it did not cover the entire 1024 pixels of the array, I ended up having only about 700 usable pixels.
If I had good optics, a good way to amplify the signal, I am sure I could make it over 50Hz... but I gave up on the project because I had no one to help me :(
I later found a much better way to do a laser distance finder, see this:
https://www.youtube.com/watch?v=yjsqrlKow44
Randy,
Can you give more details?
Did you follow the directions or did you have to make any modifications?
Did the performance conform to advertised specifications?
Were you able to get a 2D point cloud with a rotating mechanism?
Do you think performance could be improved by using a better laser or receptor?
Have you thought of creating a 3D point cloud?
Nagita, I've used the PulsedLight one. It seems ok, longer range than a sonar.
Has anyone built a LIDAR yet?
There is a $15 kit from Lightware Optoelectronics (http://www.lightware.co.za/shop/en/lrf-components/26-oslrf-01-kit.html)
And this one from PulsedLight (https://store.3drobotics.com/products/lidar-lite/)
I guess you still need to design a rotating turret for the finished assembly but all the pieces seem to be in place and it requires assembly and tuning.
http://www.vescentphotonics.com/SEEOR_Product.html
It looks like it would make a compact LIDAR system. This module combined with a pan-tilt head would make a nice addition to any UAV. No word on cost yet, hopefully I get a chance to talk to them at SPIE in January.
Example ..
http://sites.google.com/site/todddanko/home/webcam_laser_ranger