-
Notifications
You must be signed in to change notification settings - Fork 32
Home
Welcome to the NXV11 wiki!
Here are some stuff about the lidar on the Neato Robotics XV-11 vacuum cleaner.
The data on this page and in the provided code are not based on official information, so take everything with a grain of salt...
See https://sites.google.com/site/chenglung/home/xv-11-open-lidar-project-matlab-script too for a matlab version with it's own improvements !
The periodicity of the data is 1446 bytes.
It is organized as follow :
5A A5 00 C0 XX D1
where XX is a varying number, often around 0x91 and it may represent an information about the current rotation speed of the module. A guy I don't remember the pseudo posted interesting data about this, but all the posts on the Trossen Robotics forum disappeared before I could have more than a quick look... More on this later.
is composed of 360 group of 4 bytes, organized like this :
byte 0 : <distance 7:0> byte 1 : <"invalid data" flag> <distance 13:8> byte 2 : <some value 7:0> byte 3 : <some value 11:8>
As chenglung points out, the distance information is very probably in mm, and coded on 14 bits. This would put the tests made by Sparkfun in a room of around 3.3m x 3.9m (11ft x 13 ft ?), which seems reasonable to me.
The bit 7 of byte 1 seems to indicate that data could not be read. It's interesting to see that when this bit is set, the data block is XX 80 00 00 , where I found XX being 02, 03, 21, 25, 35 or 50... maybe it's a code to say what type of error ? (35 is preponderant, 21 seems to be when the beam is interrupted by the supports of the cover)
The bit 6 of byte 1 is sometimes set.... yet I still can't make sense of what it could indicate, as it can be set on some samples of a suite of valid data...
Bits 5 and 4 are always 0 on the data I looked at...
Byte 2 and 3 look like the LSB and MSB of a value, in which only the 10 first bits seems to be used... Or, maybe byte 2 is an other data and byte 3 is a bunch of flags...
Currently, my guess is that byte 2 is an indication of quality data (maybe on 7 bits), and byte 3 has some flags telling something about what aspect of this data is to be trusted...