Welcome to RobotBox!

RobotBox is a community for robot builders to show off their projects. Add yours today.

Features of RobotBox

  • Showcase projects
  • Make new friends
  • Rate other's robots

Note: Facebook Connect temporarily disabled. Go here to login without it.

The Open Lidar Project - Hack the Neato XV-11 Lidar for a $800 Bounty!

gallamine's picture

11 The Open Lidar Project

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.

12 The inside of a XV-11 Lidar

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).

Comments

AndresH's picture

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

jpiterow's picture

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?

bot-thoughts's picture

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

IPdrone's picture

Neato Patent Application on

20 Neato Patent Application on Slam and XV-11

Hey guys.  I located three patent applications by Neato.  Tons of info and drawings.  Good flow diagrams etc.

 

lnxfergy's picture

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

Xevel's picture

:)

:)

arthuroforange's picture

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

arthuroforange's picture

Would xevel be nice enough to

Would xevel be nice enough to explain a bit about what he is doing in this video post?

arthuroforange's picture

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

gallamine's picture

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.

hash79's picture

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

hash79's picture

(No subject)

gallamine's picture

Awesome work hash79! Decoding

Awesome work hash79! Decoding the new protocol is pretty impressive. Where did you end up buying your robot from?

hash79's picture

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

Gravis's picture

does this mean the bounty has

does this mean the bounty has been won?

gallamine's picture

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.

hash79's picture

Hopefully they are available,

Hopefully they are available, we're dying to know...  Especially ME!!  :)

-Hash

chenglung's picture

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 ..

hash79's picture

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

chenglung's picture

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

chenglung's picture

The source code & some binary

The source code & some binary dump are here

Neato is cleaning the room lidar plot.

Happy hacking everyone....

 

Xevel's picture

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!

Xevel's picture

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

Xevel's picture

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

DaveC's picture

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 :)

Xevel's picture

Which youtube video are you

Which youtube video are you refering to ?

DaveC's picture

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

Xevel's picture

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 ^^).

gallamine's picture

Xevel, That looks pretty

Xevel,

That looks pretty sweet! Can anyone with an actual XV-11 verify this as working?

SoulsShadow's picture

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.

Dr.Bot's picture

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.

bot-thoughts's picture

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?

chrlsrchrdsn's picture

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.

dennisonb's picture

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.

SecretSquirrel's picture

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.

chrlsrchrdsn's picture

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.

Carlos.A's picture

Check out the Neato XV-11

gallamine's picture

Carlos, Thanks for the link.

Carlos,

Thanks for the link. I actually already have it listed in the blog post.

RobotNV's picture

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/


 

waynegramlich's picture

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.

gallamine's picture

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.

DaveC's picture

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

gallamine's picture

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.

salsaman's picture

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.

chrlsrchrdsn's picture

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.

RobotNV's picture

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.