Difference between revisions of "Lidar"

From Elcano Project Wiki
Jump to navigation Jump to search
m (JosephBreithaupt moved page ScanseSweep to Lidar: this is our lidar page discussing hardware and software)
Line 1: Line 1:
 +
= Hardware =
 +
 +
Scanse Sweep is a portable, rotating, horizontal-plane lidar unit. It has a maximum specified range of 40 meters and works best at ranges greater than 0.5 meter. '''Range data''' precision is 1 centimeter and range values are in centimeters. Angular resolution is user-configurable by adjusting sample rate and motor rotation frequency. Surface variables like reflectivity and environmental variables like strong illumination by sunlight limit measurement signal quality. Not every reading is good quality, leaving blind spots in the scan. '''Angle data''' precision is 0.0625 degrees and angle values are in degrees, expressed as a 16-bit fixed-point number with twelve integer bits and four fractional bits.
 +
 +
{| class="wikitable"
 +
|-
 +
! Angle bits
 +
! Angle decimal
 +
|-
 +
| ...0000'''0001'''
 +
| 0.0625
 +
|-
 +
| ...0001'''0000'''
 +
| 1.0
 +
|-
 +
| ...0001'''0001'''
 +
| 1.0625
 +
|}
 +
 +
The Scanse Sweep lidar unit is connected to an Arduino Micro to capture and process range, angle, and signal quality data during a scan.
 +
 +
 +
 +
  
  

Revision as of 19:57, 6 June 2019

Hardware

Scanse Sweep is a portable, rotating, horizontal-plane lidar unit. It has a maximum specified range of 40 meters and works best at ranges greater than 0.5 meter. Range data precision is 1 centimeter and range values are in centimeters. Angular resolution is user-configurable by adjusting sample rate and motor rotation frequency. Surface variables like reflectivity and environmental variables like strong illumination by sunlight limit measurement signal quality. Not every reading is good quality, leaving blind spots in the scan. Angle data precision is 0.0625 degrees and angle values are in degrees, expressed as a 16-bit fixed-point number with twelve integer bits and four fractional bits.

Angle bits Angle decimal
...00000001 0.0625
...00010000 1.0
...00010001 1.0625

The Scanse Sweep lidar unit is connected to an Arduino Micro to capture and process range, angle, and signal quality data during a scan.




Scanse Sweep

The Scanse Sweep is a lidar sensor. Its head spins around multiple times per second, and collects information about its lateral surroundings. The spin speed and sampling rate can be changed.

It sends readings over a serial connection, each of which includes the angle, distance, signal strength, and other information.

Blasé Johnson worked on the sweep in the summer of 2017. The following is from his 6/22/17 report.

Basic Sweep Obstacle Detection Algorithm

Goal

To use the readings from the sweep to determine if there is an obstacle present within a given distance in front of the trike, and to stop the trike if this is so. Sweep Operation Rotation and Speed The Sweep rotates counterclockwise. Its rotational speed can be set to any integral value between 0 Hz and 10 Hz (number of full rotations per second).

Sampling Rate

The sweep obtains readings according to a given sample rate. Three distinct sample rates can be used for the Sweep: 500 – 600 Hz 750 – 800 Hz 1000 – 1075 Hz\

Sample Data

Each reading from the Sweep contains these data:

  • A byte with sync/error bits, where the sync bit indicates whether the current reading is the first reading since the sensor last made a full rotation, one of the error bits indicates a communication error with the Lidar module, and the rest of the bits are reserved for future uses.
  • The azimuth (degree of angle with starting position), transmitted as a 16-bit fixed point number, where the 12 MSBs are the integral part and the 4 LSBs are the fractional part.
  • The distance from the nearest obstacle in centimeters, transmitted as a 16-bit integer.
  • A value representing the signal strength, transmitted as an unsigned 8-bit integer, where 0 is the lowest strength, and 255 is the highest strength.
  • A checksum, which is the remainder of the sum of the six previous bytes divided by 255.

Math

The trike will be expected to stop if an obstacle is detected within a certain distance from the front side of the vehicle, within the horizontal span of the trike. These distances are illustrated in Figure 1 as DISTANCE and WIDTH, respectively.  The grey lines in Figure 1 show the distances that will be measured by the Sweep if it detects an obstacle at the line. The formula for this distance is DISTANCE/cos(AZIMUTH) . The range of azimuths for the front side of the trike can be computed from the formula sarcsin(WIDTH/(2*DISTANCE)) and 360-arcsin(WIDTH/(2*DISTANCE)) for the right and left corners, respectively.

Process

Once the Sweep begins taking measurements, check the measurements whose azimuths lie within the boundaries of the front side of the trike. For each measurement within this range, determine if the distance from an obstacle in centimeters is equal to or less than DISTANCE/cos(AZIMUTH) . If so, stop the vehicle until a search of the measurements within the front boundary comes back negative, and a certain amount of time has passed since the last obstacle was detected.W


External Links

Scanse

-- Main.JohnsonB - 2017-11-07

  • Figure 1: Distance from trike to detect obstacle & trike width:

<img src="%PUBURLPATH%/%WEB%/%TOPIC%/ScanseTrike.png" alt="ScanseTrike.png" width="397" height="463" />