View Full Version : Neato Lidar Problem

08-23-2011, 06:19 PM
I started this thread to get away from the Neato + ROS thread. Here is the data.
From Previous threads
Ringo Said
"What range are you getting from the lidar? I'm only getting 1.5 meters then it drops off of rviz. Even a white cardboard box. It is the old fw, does that matter? "

Hash79 Said
"I get 5 meters which is the limit set in the neato ROS driver... Which driver are you using? "

Ringo Said
"I'm using the ros xv-11 driver for the lidar, not the whole neato "

Fergs said
"That's an entirely different driver, and I believe several people have said it is quite buggy. "

Ringo Said
"I just tried it with the Python program that xevel wrote to display the data and it goes away in that as well. I got out a tape measure and at about 1 meter it goes away, It is rock solid before that. I must have some bad hardware or something. I'm running it at 3.3V, I wonder if I should try bumping up the voltage a bit. It seems like I remember someone saying that some early units used 5V. I checked the connector on the robot though and it was putting out 3.3V.

Anybody have any ideas? Any idea if there is a way to ask neato a question like this or would they not care since the robot is taken apart?"

Ringo Said
"I tried contacting Neato, here is the replay I got.
"Unfortunately, no one is our department can assist you with your inquiry. We are not trained in the subject matter you’ve presented."
Guess it might be time to buy another one :-( "

Xevel Said
"That's unfortunate http://forums.trossenrobotics.com/images/smilies/robot/16x16_robot-sad.gif
Before doing that, would you mind sending me a dump of what the lidar says when you move the box this way, just so I could have a look please? "

Hash79 said
"Do you still have the rest of your neato vacuum? Have you thought about plugging the LIDAR back into the main PCB and running the neato firmware update? Perhaps new firmware on your LIDAR may help... Doesn't sound like it could hurt at this point!"

Ringo said
"I'll capture the data tonight and post it.
I still have the rest of the vac, I need to see if I can put it back together enough to update the firmware. I wonder if that updates the Lidar firmware at the same time? It would sure be nice if it did, just so everybody could be at t the same level."

Ringo Said
"here is a file I captured in putty, is this what you need? I move the box out to about 2 meters then bring it back"

xevel said
"Well, try with this script instead please : lds_dumper_2.1.zip (http://forums.trossenrobotics.com/attachment.php?attachmentid=3412&d=1314141021)
Edit it to set the right serial port, run it (it will log every incoming character from the serial port) and when you kill it, it should write a file dump_2.1.txt.

Also, we should maybe move this troubleshooting issue to an other thread since it seem to have nothing to do with ROS. "


08-25-2011, 02:34 PM
I can see what you're talking about :/
For those who want to have a look for themselves, uncompress these two files and run the python script: 3419
The green circles are every 50cm and the line indicates "forward".

The error when the samples are out of range in your data is 0x35, but unfortunately we did not reverse-engineer this stuff (I had a strategy and the code needed to to it, but the motivation seem to have been lost around New Year's Eve... :/).
My guess is that its simple an "Out of range" error and that the problem lies either in a mecanical problem (misalignment ?) or in a calibration error. I might be completely wrong on this, yet when getting closer to the max distance (around 1.2m), the sample begin to have a lot of noise, just like at long distances (around 5m) on a normal unit.

Here are 3 pictures of the box getting closer (the samples on the left, getting toward fro the center) : the precision is aweful around 1m, and gets better around 50cm.

Have you played with the calibration commands of the LDS? or maybe opened it completely?

(also, for consistancy, maybe you should edit your message to add quotes of the messages we already exchanged on the matter)

08-25-2011, 07:18 PM
I put the robot back together and updated the firmware. I'll test it and see if that makes a difference. If it does not I'll try the calibration stuff.
Can you point me to the Python script that displays the data for the new FW?

08-25-2011, 08:36 PM
I found the python script. Using it the data still vanishes at 1 meter, even with the firmware update.
I thought I would try the calibrate stuff, I thought I saw there was a command for that, but when I do help I get
Help Strlen = 2002
Help - Without any argument, this prints a list of all possible cmds.
With a command name, it prints the help for that particular command
Clean - Starts a cleaning by simulating press of start button.
DiagTest - Executes different test modes. Once set, press Start button to engage. (Test modes are mutually exclusive.)
GetAccel - Get the Accelerometer readings.
GetAnalogSensors - Get the A2D readings for the analog sensors.
GetButtons - Get the state of the UI Buttons.
GetCalInfo - Prints out the cal info from the System Control Block.
GetCharger - Get the diagnostic data for the charging system.
GetDigitalSensors - Get the state of the digital sensors.
GetErr - Get Error Message.
GetLDSScan - Get scan packet from LDS.
GetLifeStatLog - Get All Life Stat Logs.
GetMotors - Get the diagnostic data for the motors.
GetSchedule - Get the Cleaning Schedule. (24 hour clock format)
GetSysLog - Get System Log data.
GetTime - Get Current Scheduler Time.
GetVersion - Get the version information for the system software and hardware.
GetWarranty - Get the warranty validation codes.
PlaySound - Play the specified sound in the robot.
RestoreDefaults - Restore user settings to default.
SetDistanceCal - Set distance sensor calibration values for min and max distances.
SetFuelGauge - Set Fuel Gauge Level.
SetMotor - Sets the specified motor to run in a direction at a requested speed. (TestMode Only)
SetTime - Sets the current day, hour, and minute for the scheduler clock.
SetLED - Sets the specified LED to on,off,blink, or dim. (TestMode Only)
SetLCD - Sets the LCD to the specified display. (TestMode Only)
SetLDSRotation - Sets LDS rotation on or off. Can only be run in TestMode.
SetSchedule - Modify Cleaning Schedule.
SetSystemMode - Set the operation mode of the robot. (TestMode Only)
SetWallFollower - Enables/Disables wall follower
TestMode - Sets TestMode on or off. Some commands can only be run in TestMode.
Upload - Uploads new program to the robot.

Nothing about calibrate. Am I missing it somewhere?

08-25-2011, 08:53 PM
I found the thread that mentions calibration and I guess I need to be talking to the LIDAR, not the Neato. So I hooked up to it but I can't figure out how to talk to it. I see it says press esc 3 times to halt, but I'm pressing esc like crazy and nothing is happening. Is there something special I need to do to get it into a mode so that I can talk to it without it constantly spitting out data?

08-25-2011, 09:07 PM
OK got it, just pull power to the motor.
So now I can communicate with the Lidar, but dont know how to use the calibrate command. Just using calibrate fails, and help calibrate doesnt work either. Here is what I have tried.
Help...press ESC 3 times to abort...
Calibrate b16 b8 SunBlind loop2AA loop155
Spin Fake DotX DotI Text Hash79 Timing Foto RPS Pac
#Help Calibrate
Need help?
#Help Calibrate b16
Need help?
Calibrate...press ESC 3 times to abort...FAILED
Piccolo Laser Distance Scanner
Copyright (c) 2009-2010 Neato Robotics, Inc.
All Rights Reserved
Loader V2.1.11383
CPU F2802x/cd00
Serial AAA30710AA-0000549
LastCal [2008031847]
Runtime V2.6.14138

Any thoughts?

08-26-2011, 03:30 AM
Maybe we could compare the results of all GetCal commands, even though I don't know what A, B,C, LPT, etc mean.
Plus there is a little difference between firmwares:

I got, by running each GetCal command:

A 0005396950
B 0000009973
C 0000000000
LPT 0000028000
LFL 0000000210
LFT 0000000219
LFH 0000000228
IMX 0000000000
IB 0000000000
LPI 0000000256
LCH 0000000434
LPD 0000000000

Some ideas:
LFL / LFT / LFH: Laser F... Low / Typical / High ? F for Focus ?
LPT: Laser Pulse Time ?
LPI: Laser Pulse Intensity ?

Could you post your results please?
Also, coud you have a look at the lense of the LDS, see if it's clean ? (you need to open the top cover only to access it).

08-26-2011, 10:33 AM
Will Do tonight.

08-26-2011, 07:22 PM
Numbers are all in the ball park at least.

Ringo's GetCal __________Xevel's GetCal
A 0005347615 __________A 0005396950
B 0000007566 __________B 0000009973
C 0000000000 __________C 0000000000
LPT 0000028000 __________LPT 0000028000
LFL 0000000264 __________LFL 0000000210
LFT 0000000276 __________LFT 0000000219
LFH 0000000288 __________LFH 0000000228
IMX 0000000000 __________IMX 0000000000
IB 0000000000 __________ IB 0000000000
LPI 0000000256 __________LPI 0000000256
LCH 0000000434 __________LCH 0000000434
LPD 0000000000 __________LPD 0000000000
NRX 0000000000

I took the cover off, I don't see anything obviously wrong. the lens looks clean to me. I wonder if the laser is not strong enough or something like that?

08-26-2011, 11:11 PM
What voltage do you power the LDS with again?
What is written on the silkscreen of the pcb ?

I'm running out of strange ideas of what could be happening...

Maybe as an experiment, try with my calibration values, using SetCal. Start with A B C, test, reset ABC, change another set of values, test, reset, etc... It might not help at all yet it could give an idea...

08-27-2011, 11:39 AM
I power it with 3.3V. There is nothing written on the PCB that I see. I attached a pic of the PCB near the connector. But when I turn on the neato and measure pins 1 and 4 I get 3.3V
I change all the Calibration stuff to match yours and it did not seem to make a difference.


08-27-2011, 12:06 PM
Sorry, I was thinking of the pcb inside the LDS, when you opened it. But your test gives the same information.

I don't have much idea left to help you... :/
Dust in the laser ? focus problem (but unless you threw the LDS forcefully on the ground, how could it have changed from the mechanically adjusted factory setting?)? ... possession by a demon?

08-27-2011, 12:22 PM
I wonder if the laser could be failing? I dont guess anybody would know the part number of the laser itself?

08-31-2011, 09:27 AM
I think I broke it for sure now. I was trying to get the laser out to see if maybe it had a part number on it, I took 1 screw too many out and the lens fell out of the sensor. I have been trying to get it back in focus but so far my max range is a few inches.
On another note, one of the leaf guys found this.
t (http://www.neatorobotics.com/programmers-manual)hat explains the commands.

08-31-2011, 09:56 AM
Well, that's a shame...
On the other hand, now you have no reason to think twice before getting a new one :/

Very interesting webpage on the Neato website :)

09-15-2011, 07:41 AM
I have the same problem than your first problem. My Lidar only see up to 1.5-2meters. But, sadly, I know why. My LDS fall on the ground... So I think the laser is not aligned... :/

The Lidar still works but at the beginning, the range was 5meters too.

09-21-2011, 09:25 AM
I got a new Neato. Upgraded the firmware and took out the laser. THis one has a much better range. Not sure if it is 5 meters but the walls are about 8-10 feet from my desk and it sees them well. The weird thing about this is that it seems to be off balance. If I pick it up it wants to wobble in my hand. The old one did not do that. Anybody else have that happen?
I think I'm gonna pop the lid on this one and take some close ups of where the lens is mounted and see if it will help me adjust my old one.


09-21-2011, 11:20 AM
Hey Ringo,

In my LDS unit, the wobble seemed to be due to a small brass weight inside the rotating head. I removed it and it's noticiably better, but still not perfect. I never got what could have been the original reason for this part, yet I'm sure they had one ^^

09-21-2011, 12:09 PM
Hey Ringo,

In my LDS unit, the wobble seemed to be due to a small brass weight inside the rotating head. I removed it and it's noticiably better, but still not perfect. I never got what could have been the original reason for this part, yet I'm sure they had one ^^

I removed the weight in mine a long time ago too. My guess was additional weight perhaps to smooth out the drive motor PWM. I have had no issues with it removed, even with the XV-11 fully assembled and operated as a vacuum.