-
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 <data>
where XX
is a varying number, often around 0x9E and it could 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.
<data>
is composed of 360 group of 4 bytes, organized like this :
byte 0 : <distance 7:0>
byte 1 : <"invalid data" flag> <some other 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 13 or 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. 13 bits should be enough if the sensor is destined to work up to 6m. This needs some tests...
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 second byte is always 80
, and the values of the first byte seem to be only 02
, 03
, 21
, 25
, 35
or 50
...
When it's 21
, then the whole block is 21 80 XX XX
, but for all the other values it's the data block is YY 80 00 00
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...