Neato XV-11: Difference between revisions

Line 371: Line 371:
<br />
<br />


== LIDAR Sensor ==
==LIDAR Sensor==




Line 378: Line 378:
The angle of the data is not aligned with the natural axis of the device. It seems that the first sample of the first packet is in fact looking at a -10° angle, not 0°. Needs confirmation.
The angle of the data is not aligned with the natural axis of the device. It seems that the first sample of the first packet is in fact looking at a -10° angle, not 0°. Needs confirmation.


==== Data Format ====
===Data format for firmware V2.4 ===
(recent production units)


===== Data format for firmware V2.4 (recent production units) =====
A full revolution will yield 90 packets, containing 4 consecutive readings each.
A full revolution will yield 90 packets, containing 4 consecutive readings each.


Line 395: Line 395:
*speed is a two-byte information, little-endian. It represents the speed, in 64th of RPM (aka value in RPM represented in fixed point, with 6 bits used for the decimal part).
*speed is a two-byte information, little-endian. It represents the speed, in 64th of RPM (aka value in RPM represented in fixed point, with 6 bits used for the decimal part).
*Data 0 to Data 3 are the 4 readings. Each one is 4 bytes long, and organized as follows :
*Data 0 to Data 3 are the 4 readings. Each one is 4 bytes long, and organized as follows :
<br />
<br />
  byte 0 : Distance 7:0
  byte 0 : Distance 7:0
Line 413: Line 414:
Byte 2 and 3 are the LSB and MSB of the strength indication. This value can get very high when facing a retroreflector.
Byte 2 and 3 are the LSB and MSB of the strength indication. This value can get very high when facing a retroreflector.


* checksum is a two-byte checksum of the packet.
*checksum is a two-byte checksum of the packet.


The algorithm is as follows, provided that `data` is the list of the 20 first bytes, in the same order they arrived in.
The algorithm is as follows, provided that `data` is the list of the 20 first bytes, in the same order they arrived in.
Line 434: Line 435:
   return int( checksum )
   return int( checksum )


==== Data format for firmware 2.1 (Sparkfun scans, pre-production units) ====
===Data format for firmware 2.1 ===
(Sparkfun scans, pre-production units)
 
The periodicity of the data is 1446 bytes.
The periodicity of the data is 1446 bytes.