-
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...
The periodicity of the data is 1446 bytes.
It is organized as follow :
5A A5 00 CC 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> <2 bits of unknown data> <distance 12:0> byte 2 : <some value 7:0> byte 3 : <some value 11:8>
The distance information is coded on at least 12 bits, but it could be 13 or 14 bits long, I don't know. The bits 4 and 5 of the second byte are always 0 in the data I tested...
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...