RobotBox is a community for robot builders to show off their projects. Add yours today.
The Open Lidar Project - Hack the Neato XV-11 Lidar for a $800 Bounty!
We have a winner! Hash79 is the first to demonstrate live data coming from the lidar unit. Good work folks!
[Update: RobotNV on the Trossen Robotics forums, is offering to chip in another $100 in cash!]
[Update 2: I just got an email from Matt Trossen, the CEO of Trossen Robotics. He's offering up another $100 gift-certificate to the bounty! Thanks Matt!]
[Update 3: Got an email from RobotShop, offering to refund the cost of the robot, if you buy it from them! That raises the bounty to $800!]
[Update 4: RobotDynamics, CEO, Fred Nikgohar has put up $200 to the first person that uses the sensor for SLAM between two points on a map. ]
[Update 5: SparkFun has made some good progress on the hack. Details here. Looks like it's 115.2 kbaud serial data at 3.3v logic]
Unless you've been living under a rock, you'll know about Adafruit's $2000 bounty for hacking the Microsoft Kinect. It's been a huge success, with someone getting useful data from it very quickly. A community has grown up around the project and I'm excited about what we'll see coming from it.
So, I sat there thinking, "hmmm, what a great idea! I wonder what else we can find to hack?" Then it struck me. Many folks have been drooling over the lidar that's included in the Neato Robotics XV-11 floor vacuuming robot. In fact, Neato claimed that the sensor itself could be made for about $30. Now, currently you have to buy the whole robot ($399), but that's still a great deal for a 360 degree scanning lidar with 1 degree accuracy and 10 Hz refresh rate. While it's not quite as cool as the Kinect, it has the potential to be very useful for smaller and lighter robots that aren't equipped with the processing power to utilize the RGB and depth data from the Kinect.
Ok, so here's the deal
$401 (thanks RobotNV and Matt Trossen!) is up for grabs, plus $399 to refund the cost of the robot (if you get it from RobotShop) to the first person that show the lidar from the Neato Robotics XV-11 floor vacuuming robot outputting useful data to a computer and leaves a comment here. The project has to be documented and the data has to be 360 degrees of distance readings. All source code and documentation must be released under an open source license. We'd love to see serial data being plotted showing a 360 plot of distance around the sensor.
Anyone can give this a shot. The bounty will be paid in cash (via PayPal), or via gift certificate if there's no way to get cash to you. Upload your code and documentation to an online repository like Github.
More information
Someone has uploaded a copy of the conference paper describing the Neato sensor. Looks like a standard serial interface.
Here's some early information on the sensor from Hizook.
RobotShop has a teardown of the robot with detailed pictures, along with a disassembly video.
SparkFun has a nice teardown with some tasty info on the sensor! It's using 115,200 baud serial with 3.3v logic symbols. Reading the data with a terminal program shows when the device is spinning and spits out data - probably distance info of some sort.
Here's RoboDynamics blog post about their SLAM prize.
Lots of good information on the XV-11's Lidar unit at Xevel's Github page and Hash79's blog.
If you have any questions/comments leave them in the comments below. I think this'll be fun. Hopefully we can pick up some more prize sponsors in the process (thanks already to Trossen Robotics, RobotNV, and RobotShop).
- gallamine's blog
- Login or register to post comments
Recent comments
- Electronics has gone from
26 weeks 6 days ago - Hi,
Nice design, very
27 weeks 2 days ago - That's a difficult
28 weeks 2 days ago - I like your ideas of robot
28 weeks 3 days ago - That's pretty much how
28 weeks 3 days ago - Personally I feel a word's
28 weeks 3 days ago - I used very very small pager
29 weeks 5 days ago - I used very very small pager
29 weeks 5 days ago - This was one of the very few
30 weeks 4 days ago - Another great nano! Saw this
30 weeks 4 days ago
Recent blog posts
- Karosserie Zahlen definieren, die richtigen Kleider für Sie
- Bionic Parts And Assembly Lines
- Volle Verpackung Ihrer Kleider machen die erstaunliche Erscheinung
- A New Frontier
- Robot Vacuum Cleaners
- Crazy About Lego?
- NXT 2.0 Mindstorms Is The Best Robot for Beginner - Must Have!
- Joining Robot Clubs
- US-020 ultrasonic sensor distance measuring module
- A few explanation about the Arduino


Comments
Hi, I´m looking at this
Hi, I´m looking at this thread 1.5 years late.
I see that you people are talking about $ 1100 as the cheapest LIDARs in the market. Could you tell me please which is its brand in order to ask them for a quotation ? I don´t know the options in this market and I need to purchase some cheap LIDARs for a simpler application than the usuals.
Thanks,
Andres
From this what I have read
From this what I have read about LIDAR it seems that it could detect micro particles and aerosols movement in the surrounding air. I was interested in possibility of a low cost scanner (laser-radar) which could detect vertical move of the air in surrounding area of diameter about 0-2 miles? Is it possible to make a device like that? How much it could cost?
Update: the contest winner
Update: the contest winner finally cracked apart the XV-11. Now we know what image sensor is used. We can build our own!
http://random-workshop.blogspot.com/2011/09/neato-xv-11-lidar-disassembled.html
Neato Patent Application on
Hey guys. I located three patent applications by Neato. Tons of info and drawings. Good flow diagrams etc.
Just a note, I've now wrapped
Just a note, I've now wrapped the hacking work that the community has created into an ROS driver:
http://www.ros.org/news/2010/12/neato-xv-11-driver-for-ros-albany-ros-pk...
-Mike Ferguson
:)
:)
What is meant by this video?
What is meant by this video? there is no audio or explanation of what is going on? what is the device being used (besides the lidar unit on top)? Is the device autonomous or controlled by wires / the remote control ? could someone be nice enough to explain how they took the lidar unit and used it to map the path ? Thanks
Would xevel be nice enough to
Would xevel be nice enough to explain a bit about what he is doing in this video post?
Hi is anyone willing to sell
Hi is anyone willing to sell their lidar unit once they are done with it ?
Xevel, one would like to know how you attached the unit to your movable platform (and what movable platform is it?)
Please email me directly at my user name above (arthuroforange ) that has an account at gmail. Thanks
Great work Xevel! Go ahead
Great work Xevel! Go ahead and post on the RoboDynamics blog post about the SLAM prize. As far as I know, nobody has claimed it yet. You might wan to add some narration to the video to explain what's going on.
Please check out my blog post
Please check out my blog post detailing a data dump and my findings from my XV-11. My next step will be to program a microcontroller to manage the PWM control so the unit can operate stand-alone outside the XV-11. I believe my post satisifies the requirements of this challenge however.
http://random-workshop.blogspot.com/2010/11/useable-data-from-xv-11-lida...
-Hash
(No subject)
Awesome work hash79! Decoding
Awesome work hash79! Decoding the new protocol is pretty impressive. Where did you end up buying your robot from?
I wish I had bought it from
I wish I had bought it from the Robotshop!! I got it from amazon because I wanted it shipped next day air and it was over $100 for shipping from Robotshop since I am in California. I wasn't sure I would be the first one with a robot either since Sparkfun had a head start on me so I didn't want to potentially lose $500 bucks instead of $400! :)
It has been a blast working with a lot of smart guys thoughout the middle of the night the last few days, I can't wait to pull the LIDAR unit from my XV-11 and run more tests!
-Hash
does this mean the bounty has
does this mean the bounty has been won?
Gravis, Not necessarily.
Gravis,
Not necessarily. Hash79 seems to have made the most progress so far. I need to talk to RobotNV and Matt Trossen to see if we think there's enough progress to declare a winner.
Hopefully they are available,
Hopefully they are available, we're dying to know... Especially ME!! :)
-Hash
I have different dump data
I have different dump data then yours :( ... looks like yours are Big Inidian mine is little Indian ..
Have fun everyone ..
I posted a raw dump on my
I posted a raw dump on my blog, I formatted the data in my previous post by reversing byte pairs so it would be easily readable. My data comes through little endian as well which you can see by viewing the raw dump with a hex editor.
-Hash
if anyone like to use Matlab
if anyone like to use Matlab to read/display XV-11 binary data, I have a simple code can share
Have fun
The source code & some binary
The source code & some binary dump are here
Neato is cleaning the room lidar plot.
Happy hacking everyone....
Hi, I got some (small) part
Hi,
I got some (small) part of it working, namely a potential solution for interpreting the distance data. I posted it on Trossen Robotics.
I'm pretty sure this is not enough to grab the bounty, but this can be of help to other people to go further.
Good luck everyone!
This is the closest I can get
This is the closest I can get from a "live" demo. The software only reads input from the COM port. At the other end of the com port, an arduino fakes being a lidar and sends data recorded by sparkfun (NoShield session).
Details
Looks like there has been a
Looks like there has been a little problem on the forum, so I uploaded the code here : https://github.com/Xevel/NXV11
This is excellent stuff. You
This is excellent stuff. You are on the right track. This looks very much like the real time debug output that we saw when the XV-11 engineers spoke at the Homebrew Robotics club. I noticed that this video is stable, but the video on youtube seems to be directionally unstable -- I'm guessing that one of those numbers that comes back is a camera position or sync or something that needs to be interpreted to stabilized the scans, because of course a DC motor is going to have speed variation.
The debug output we saw has very good resoltuion -- people moving around, small obstacles, etc, were clearly visible. It was also rock solid with respect to rotational skew. Yours is close.
I have to say this is grand fun watching the protocol being unearthed. The XV-11 guys are precluded from telling us anything but sometimes they look like they are about to burst an aorta holding it in :) Please put my friends out of their misery quickly :)
Which youtube video are you
Which youtube video are you refering to ?
Um...this
Um...this one?
http://www.youtube.com/watch?v=SJc-rI97jGc&feature=player_embedded
For some reason, I was thinking that was your video... I chased a link from somewhere to find it, and can't remember from where now. It looks like that was posted by someone else, so clearly a PEBKAC on my part.
Anyway... starting at about scan 80 or so you can see it has trouble with stable orientation, assuming the scanner is sitting still. Maybe he is moving the scanner around.
-dave
Aw, I did not know this one.
Aw, I did not know this one. This looks very nice, chenglung ! I guess if I used more than a second of the recording, I would get to the same result... I will try that.
I'm pretty sure they moved the robot while doing the capture, yet it does not rule out the possiblity of having an info about the rotation speed, someone showed a pretty conclusive graph in favor of this hypothesis on the Trossen Robotics thread (that is being restored as I speek ^^).
Xevel, That looks pretty
Xevel,
That looks pretty sweet! Can anyone with an actual XV-11 verify this as working?
I'm waiting on mine to show
I'm waiting on mine to show up...it took UPS an entire day just to pick it up from Robotshop. This is killing me, I want to hack it! hahaha. Unless someone else beats me to it you can expect something in the next couple days.
You can make a super cheap
You can make a super cheap ranger using (one or two) laser pointer(s) and a CCD camera. If the laser projects parallell to the camera - by measuring the pixels between th laser dot and the center of the image. The number of pixels is related to the ireciprocal of the range to target.
I am using OpenCV to analyse the image.
Would love to play with that
Would love to play with that concept.
The tricky part is getting an imaging sensor to run at 3600fps (or even 1800fps) -- 5-10hz rotation, 360 degrees per rotation without costing a fortune.
Only thing I can figure is they are using some kind of kilopixel linescan imager. Anyone with an XV-11 care to divulge or speculate as to the imager they're using?
Bot-thoughts: Here is some
Bot-thoughts:
Here is some information out of the IEEE 2008 paper that lays out the NEATO design, "...The relative weight of fs is determined by the image sensor, so we first decide on it. The image sensor should have a short exposure time to improve ambient light rejection (Section II.E), and a large number of pixels for resolution of x. We chose a global-shutter CMOS sensor with 752 pixels of resolution and a minimum shutter time of 35μs. Each pixel is 6μm, and we expect to be able to resolve the laser dot to within 0.1 pixel or better." The paper lays out the math and the major variables.
The original sensor selected was by "Photonics in Motion". Unfortunately they were purchased and I can't find the same time of sensor at the purchaser's site.
The paper makes the math, thus making flexibile software a possibility, and the paper shows the CMOS sensor with Global Shutter exists in 2008. Reading the paper is exciting. Lidar is available in several different configurations at costs far lower that a $400 vacuum. If people at at this group and others can crack two issues, finding a sensor and actually getting them delivered, and finding useable slip rings then 360/10 hz lidar is achieveable.
As a potential hint- I
As a potential hint- I recently took apart an old Sony 8 video camera and the autofocus system looked pretty much exactly like the photos of the Neato Lidar. A IR source of some kind, focused with some lenses and a receiver also focused with some lenses, and as the camera's focus ring was turned the angle of the IR transmitter was changed in accordance to it's triangulation to the subject the camera was pointed on. So perhaps the system is much simpler then people think.
Don't know if that helps. But thought i would mention it.
I posted this on the Sparkfun
I posted this on the Sparkfun forum, but I thought I'd duplicate it here.
Hmm. So we have a single laser module and a single "camera". I'll assume its a standard CMOS sensor, probably QIF format, maybe VGA. How would I do it? Use a IR laser and remove the IR filter on the camera. Now, the trick? Set the laser optics to have a fairly high beam divergence. The higher the divergence, the more accurate the distance measurement, but the less the maximum measurable. On the camera side, you would want the optics to set the field of view very narrow. Align the laser and the camera so they are on the same axis.
Now, to measure distance, you simply calculate how much of the frame is taken up by the laser dot. In it's simplest, pick an RGB value that has a high enough intensity that it represents the very bright laser dot. Anything above that is Vmax and anything below is 0. Average all the pixels across the frame and you will get a 0<=V<=Vmax. V=0 is an error condition. For V>0 the relative distance is V/Vmax. The optics on the camera and laser would set the maximum distance represented by V/Vmax=1.
I don't have access to one of the devices, but looking at the parts in it, that's the first thing that came to mind. If you have a bit more processing power, you could account for the elongation of the laser spot when the angle of incidence was not 90 degrees. Likewise, you could look for a "circle-ish" spot in the center of the frame and adjust your intensity trigger point to account for different surface types and the drop in intensity as the beam diameter increases.
I will be curious to hear the eventual solution.
SecretSquirrel: If you are
SecretSquirrel:
If you are referring to how the NEATO does its "magic" as far as LIDAR, read this paper:
Robotics and Automation, 2008. ICRA 2008. IEEE International Conference on
Issue Date: 19-23 May 2008
On page(s): 3002 - 3008
Location: Pasadena, CA
ISSN: 1050-4729
Print ISBN: 978-1-4244-1646-2
INSPEC Accession Number: 10014692
Digital Object Identifier: 10.1109/ROBOT.2008.4543666
Date of Current Version: 13 June 2008
It lays out the internals, the math, and how it was done. I am trying to get a source for the sensor. The sensor sited was a 752x16 Linear CMOS that had global shutter and could be read quickly. It was selected for this because it was inexpensive in 2008 and fast enough to gather 4000 datapoints/second.
Check out the Neato XV-11
Check out the Neato XV-11 Dissassembly guide.
Carlos, Thanks for the link.
Carlos,
Thanks for the link. I actually already have it listed in the blog post.
Thanks Wayne, Here's a link
Thanks Wayne,
Here's a link to the video of Neato Presentation you just mentioned:
http://cmusv.na6.acrobat.com/p69585299/
Several members of the
Several members of the HomeBrew Robotics Club (HBRC) in Silicon Valley work for Neato Robotics. One of our members (Nathan) was the principle developer of the sensor. At the Neato presentation at HBRC this past September, he assured us that the sensor is easily hackable. While he can not officially help on this project, posts to the HBRC mailing list will probably result in useful help.
Wayne, that's good news. Do
Wayne, that's good news. Do you have contact info for Nathan or the HBRC mailing list? I can add it to my post.
Mailing
Mailing list:
http://groups.google.com/group/hbrobotics
HBRC home page:
http://hbrobotics.org/
Somebody with good hack-fu for serial protocols should be able to crack this in short order -- or so hints and body language lead me to believe.
-dave
Salsaman, Good question.
Salsaman,
Good question. "lidar" is actually an acronym that stands for "light detection and ranging", so any method for doing that will fall under the term. Usually, though, it's applied to phase detection or time of flight (TOF) analysis. The trianglation methods traditionally haven't fallen into this category - mostly because they haven't been all that great. Neato has done a good job making a workable system for a low price.
So, yes. It is lidar.
But... is it LIDAR? I
But... is it LIDAR? I thought LIDAR meant time-of-flight analysis, as opposed to triangulation.. But I could be wrong.
Either ToF or Triangulation
Either ToF or Triangulation are LIDAR. The concept is to shoot a specific beam of light from a laser (though technically you don't have use a laser, you could use something like a pinhole focused LED, but the range would be very short) then use the return from that specific beam to generate the results. Time of Flight is most commonly used until now because high speed CMOS sensors were not available in the 1990s. However precise clocks and a sensor that could tell it got hit fast enough was. After a bit, instead of using a clock you could actually read the charge level of the recharging laser pulse capacitor at the time the sensor said it was hit and give a distance reading since moving electrons and light aren't too far off in speed.
BUT now CMOS sensor of sufficient speed and with global shutter make triangulation possible. (Global shutter is a way to "gate" the picture by recording all pixels simultaneously. No having to read in the lines to get the results that could be changing as you read.) Triangulation is less sensitive to beam scatter than ToF, and triangulation can actually be more accurate for sub-mm measurement.
Okay, the simple answer, triangulation is a recognized medthod for LIght Detection And Ranging.
According
According to http://en.wikipedia.org/wiki/LIDAR:
LIDAR (Light Detection And Ranging) is an optical remote sensing technology that measures properties of scattered light to find range and/or other information of a distant target. The prevalent method to determine distance to an object or surface is to use laser pulses. Like the similar radar technology, which uses radio waves, the range to an object is determined by measuring the time delay between transmission of a pulse and detection of the reflected signal.
time-of-flight is a _prevalent_ way of measuring ranges. In practice though, the cheapest LiDAR on the market is currently about $1,100.
The whole Neato vacuum is $400.
Kinect is great, but it's a completely different type of sensor and it does have several limitations. Neato sensor and Kinect are ideal for their own set of applications.