Neato Lidar module - functional? data format?
billy from United States  [10 posts]
1 year
I am attempting to use the Neato lidar module.
I do not have the GetSurreal controller but I ported the GetSurreal code into my own ARM M3 project. When I connected to RoboRealm the Neato Lidar module worked partially for brief period. The radial map showed intermittent data. I attempted to increase the number of samples used for smoothing and when i got to 10 it quit working, then the PC crashed (Win 8.1). After reboot the module is completely non-functional. I know the data is getting to Robo Realm because I can open the serial module and and verify data is coming.

The serial module will put up a message if the serial port is being used by a different thread/program, but the Neato module will not, so it's not clear to me that the module is even attempting to get data.

Two questions for you:
1 - How to verify the module is attempting to access the port that is in the COMPORT box and what to do if it is not? I have already re-installed the SW but no improvement.
2 - Can you provide a sample of the data stream the module is setup to parse? The intermittent radial map that was working at first may have been intermittent due to an extra space (or some other formatting) that my code is transmitting that is giving roborealm issues. Or maybe I'm including more data than Roborealm is looking for. I cut data to every other data point and blocked errors, but still nothing.
Steven Gentner from United States  [1370 posts] 1 year

I'm not sure why above 10 would be an issue. We verified that 10 is not significant in any way based on the size of the data (360 points). Did you ever get a crash report after this happened when you restarted RR? If so, can you allow the app to forward those to us? I don't recollect seeing any that had to do with this particular module.

1. We added a fail to connect warning in the latest version to avoid the confusion. Note, it will only do this once per port to avoid getting too many warning messages (annoying!).

2. The data format is

0: 0xFA
1: 0xA0 to 0xF9 (4 byte block index 0-89)
2: 0x00, 0x00 (short int, speed, ignored)
4: v1, v2, v3, v4
8: v1, v2, v3, v4
20: 0x00, 0x00 (short int, CRC, ignored)

for each block (v1 to v4)

distance = v1|(v2<<8)
quality = v3 | (v4<<8)

(remember this is Intel endian).

The block index is degree / 4.

Total packet size is 22 bytes.


billy from United States  [10 posts] 1 year
Thanks Steve,
I've got the module running now. With the proper serial format the module isn't crashing. So that one's on me.

One note: The lidar scans CCW but the Roborealm module assumes CW, so the map comes out with left to right showing as right to left. At least on my machine that's how it works out. Using the same lidar with a ROS XV_11_laser_driver node the image is correct so I don't think there is anything unique about the lidar.
Steven Gentner from United States  [260 posts] 1 year

Thanks for letting us know. Yea, the lidar image creation is used in other modules with other lidar systems (robopeak) so its most likely the reason why things are flipped. We've attempted to flip that back the right way around for the Neato module in the latest version if you'd like that fixed.


This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index