LIDAR (Light Detection and Ranging)

 

An optical remote sensing system which can measure the distance of a target by illuminating it with light. LIDAR technology is being used in Robotics for the perception of the environment as well as object classification. The ability of LIDAR technology to provide 2D elevation maps of the terrain, high precision distance to the ground, and approach velocity can enable safe landing of robotic and manned vehicles with a high degree of precision.

LIDAR consists of a transmitter which illuminates a target with a laser beam, and a receiver capable of detecting the component of light which is essentially coaxial with the transmitted beam. Receiver sensors calculate a distance, based on the time needed for the light to reach the target and return. A mechanical mechanism with a mirror sweeps the light beam to cover the required scene in a plane or even in three dimensions, using a rotating nodding mirror.

One way to measure the time of flight for the light beam is to use a pulsed laser and then measure the elapsed time directly. Electronics capable of resolving picoseconds are required in such devices and they are therefore very expensive. Another method is to measure the phase shift of the reflected light.

 

Working:

Collimated infrared laser is used to the phase-shift measurement. For surfaces, having a roughness greater than the wavelength of the incident light, diffuse reflection will occur. The component of the infrared light will return almost parallel to the transmitted beam for objects.

The sensor measures the phase shift between the transmitted and reflected signals. The picture shows how this technique can be used to measure distance. The wavelength of the modulating signal obeys the equation:

c = f ∙ τ

Where c is the speed of light and f the modulating frequency and τ the known modulating wavelength.

The total distance D’ covered by the emitted light is:

D’ = B + 2A = B + (θ * τ) / 2π

Where A is the measured distance. B is the distance from the phase measurement unit. The required distance D, between the beam splitter and the target, is therefore given by

D = τ * θ / 4π

Where θ is the electronically measured phase difference between the transmitted and reflected light beams.

It can be shown that the range is inversely proportional to the square of the received signal amplitude, directly affecting the sensor’s accuracy.

As a part of my final year project i need the 2D map of surrounding for my autonomous vehicle, so i choose LiDAR because it is so fast and accurate. Unlike sonars that bounce ultrasonic waves, the ‘cone’ of sensing is very narrow.

VL6180x or Vl53l0x is an optical sensor from STMicroelectronics .VL53L0x is much more precise and doesn’t have linearity problems or ‘double imaging’ where you can’t tell if an object is very far or very close.

This time of flight sensor is actually used in our mobile phone to adjust the focus of the camera

 

Arduino Interfacing:

Install Adafruit library

code:

 

#include <Wire.h>

#include “Adafruit_VL6180X.h”

#include <Servo.h>

Adafruit_VL6180X vl = Adafruit_VL6180X();

Servo myservo;

float pos = 0;

const float Pi = 3.14159;

void setup() {

  myservo.attach(9);

 Serial.begin(115200);

 while (!Serial) {

   delay(1);

 }

if (! vl.begin()) {  

   while (1);

 }

}

void loop() {

 for (pos = 0; pos <= 180; pos += .5) { 

    myservo.write(pos);

    uint8_t range = vl.readRange();

    Serial.println(String(range)+”p”+String(pos*Pi/180)+”p”+String(pos));

    delay(10);

 }

 /*for (pos = 180; pos >= 0; pos -= .5) {

   myservo.write(pos);     

   uint8_t range = vl.readRange();

  {          

  Serial.println(String(range)+”p”+String(pos*Pi/180)+”p”+String(pos));

  delay(10);

}

 }*/

 myservo.write(0);

 delay(2000);

}

Processing code (refer other radar project if u need good radar interface) change the Arduino port number (eg “COM 3”) before running.

import processing.serial.*;

Serial myPort;

String val;

int range,i=0;float pos;

void setup(){

 size(550,500);

 

  String portName = “COMx”;//x=your arduino port number

  myPort = new Serial(this, portName, 115200);

  background(255);

}

void draw(){

 if ( myPort.available() > 0) {

  val = myPort.readStringUntil(‘\n’);  

  if(val!=null)

  {    String[] nums=split(val,”p”);//splitting the recevied data searated by ‘p’

          if(nums.length==3)

     {

     range=int(nums[0]); //string to integer conversion

     pos=float(nums[1]);

     i=int(nums[2]);

    if(i==180){

  background(255);

     }

      }

  }

}

translate(25,-50);

line(250,500,250-2*(range*cos(pos)),500-2*(range*sin(pos)));

}

 

Application:

 

Autonomous vehicles: 

If you’ve seen a self-driving car before, you’ve probably seen a LiDAR sensor. LiDAR works as an eye of the autonomous vehicle. Imagine if your eyes allowed you to see in all directions all the time. Imagine if, instead of guessing, you could always know the precise distance of objects in relation to you.

LiDAR enables a self-driving car to view the surroundings with special powers.

Agriculture:  

LiDAR can be used to create 3D elevation map of a particular land.  This can be converted to create slope and sunlight exposure area map.

This information can be used to identify the areas which require more water or fertilizer and help the farmers to save on their cost of labor, time and money.

River Survey: 

Water penetrating green light of the LiDAR can be used to see things underwater and helps create a 3D model of the terrain. Underwater information of a river can help understand the depth, width, and flow of the water. It helps in monitoring the floodplains.

Modelling Pollution:

LiDAR wavelength is shorter. It operates in ultraviolet, visible region or near infrared. This helps to image the matter which is of the same size or larger than the wavelength. So LiDAR can detect pollutant particles of carbon dioxide, Sulphur dioxide, and methane. This information helps researchers to create pollutant density map of the area which can be used for better planning of the city.

Archeology and Building Construction 

LiDAR plays an important role for the archeologist to understand the surface. LiDAR can detect micro-topography that is hidden by vegetation which helps archeologist to understand the surface.

Ground-based LiDAR technology can be used to capture the structure of the building. This digital information can be used for 3D mapping on the ground which can be used to create models of the structure.  It is very useful for maintaining a record of the structure.

 

Reference:

https://oceanservice.noaa.gov/facts/lidar.html

https://learn.trossenrobotics.com/projects/154-lidar-light-getting-started-guide.html

https://create.arduino.cc/projecthub/Abhinav_Abhi/arduino-lidar-917404

https://www.geospatialworld.net/blogs/top-5-uses-lidar-2/