Getting Started with LiDAR

Amnah Ebrahim
5 min readFeb 4, 2023

--

As an engineer, I’ve always been interested in autonomous vehicles, airborne or terrestial, the idea of putting meaning behind sensor data such as LiDAR always peaked my interest. However, getting started with LiDAR might seem like a mystified journey. In this article, I’d like to walk you through the basics and some references that may be useful to anyone who’s interested, so let’s get started.

Also if you are interested, please check out my YouTube Playlist on Open3D for Point Cloud Data!

What’s LiDAR?

Light Detection and Ranging (LiDAR) is an active remote sensing system.

Let’s break it down further:

  • Active meaning that the system itself generates energy — in this case, light — to measure things on the ground.
  • Remote Sensing meaning the continuous data and information gatherin of an object or phenomenon without actually making any physical contact with that object.

In a LiDAR system, light is rapidly emitted travelling to the ground and bounces off of objects like buildings and tree branches for example. The reflected light then returns to the LiDAR sensor where it is recorded. It’s important to note that there might be multiple reflections per light emitted from the LiDAR sensor as it depends on the object the light reflects from, we’ll elaborate more later about how we can use LiDAR data to accurately map and sense the environment.

If you remember anything from middle school physics, you’ll remember that velocity has a direct relationship with distance, and an inverse relationship with time. Therefore, through the measured time, the LiDAR system calculates the distance traveled, which is then converted to elevation.

LiDAR sensors usually are made up of key components such as:

  • Inertial Measurement Unit (IMU) that measures the orientation of a UAV for instance in the sky
  • GPS that identifies the X,Y,Z coordinates of the vehicle.

Where is LiDAR used?

LiDAR technology has been around for more than 60 years, and the first LiDAR prototype was built by Hughes Aircraft Company in 1961.

Today, LiDAR is becoming more popular in computer vision task in autonomous vehicles, and is being recognised as a powerful tool that provides key information to many applications:

  1. Autonomous Vehicles and Robotics
  2. Aerial Inspection
  3. Forestry and Land Management
  4. Survey and Mapping

For more information, you can read this article: https://blog.cloudfactory.com/interesting-lidar-applications

Discrete and Full Waveform LiDAR:

LiDAR recieves a waveform or distribution of light energy, and LiDAR sensor handles it in two different ways:

  • Discrete Return LiDAR System
  • Full Waveform LiDAR System

A discrete system records 1–4 (and sometimes even more) returns from each laser pulse emitted from the sensor, whereas the full waveform LiDAR System records a distribution of returned light energy. This makes full waveform LiDAR data complex to process as they can often capture more information compared to discrete return LiDAR systems.

However, whether it is collected as discrete points or full waveform, LiDAR data are commonly collected as discrete points known as a LiDAR point cloud. The file format that stores this point cloud is called “.las”. A compressed version of this file is called “.laz” which is just the compressed version of the “.las”. Sometimes, LiDAR point cloud data can be found as GeoTIFF (.tif) formats.

Okay… but what is LiDAR data exactly?

The data attributes of LiDAR varies upon how the data was collected and processed. However, through looking at the medtadata, you can understand what attributes makes up a data point

Usually all lidar data points will have a correlated X,Y Z values that correspond to the location (x, y) and the elevation(z). Also a common attribute is the intensity value, which represents the amount of light energy returned to the sensor after being emitted.

As part of the processing procedure, an additional step may be classifying the lidar data point clouds to different types of object the laser is bounced off of, for example “ground”, “building”, and “vegetation”. You’ll then use the points classified as “ground” to generate a Digital Elevation Model (DEM), which represents the ground surface elevation as a continuous raster. Next, you’ll use the points classified as “buildings” to extract the 2D building footprints. Finally, you’ll take these elements together to generate 3D building features.

General Workflow of building maps from LiDAR data:

Below is a general workflow for map generation using LiDAR data for a terestrial use cases such as autonomous cleaning robots, or home-appliance based robots.

Like every data related project, the first step is to properly preprocess the data. When creating a map using LiDAR data, preprocessing can look like downsampling, removing noise to accurately and cleanly look at data. The next step is to remove features that may be irrelevant to the task you’re performing. In this case, out task is to generate map of a room for instance, ground data is irrelevant to us at the moment, therefore we can remove it.

Another popular processing step is segmentation. Segmentation here refers to spatially grouping points with similar properties into homogenous regions.

The next step is to register two point clouds, to figure out the relative motion between them. There are many approaches to this problem, such as:

  • Iterative Closest Point (ICP):

Iterative Closest Point algorithm keeps one point cloud, which is the reference, fixed, while transforming (usually a combination of translation and rotation) the other, the source, to best match the reference.

  • NDT
  • Phase Correlation
  • Feature-based

After completing the registration phase, pose estimates are being generated providing us with a pose composed of translation and rotation estimates of each pose. These pose estimates are added to the pose graph iteratively, and then through aligning point clouds build a map.

However, drift from the accurate location may occur, therefore, “loop closure”is performed and is added to estimate the pose graph for a more cleaner map. Loop closure takes into consideration all previously visited location when estimating the pose graph. IMU and GPS data is also used to properly estimate the poses used to create the pose graph.

Open-source tools and datasets to get started:

  1. Plas.io

If you’d like to at first glance experience dealing with LiDAR head over to this tutorial to learn how to quickly view and explore lidar data point clouds in plas.io online point cloud viewer:

2. laspy: Python library for lidar LAS/LAZ IO.

If you’re familiar with python and would like to explore lidar data using python, you can use laspy library to explore sensor data.

laspy: Python library for lidar LAS/LAZ IO. — laspy 2.3.0 documentation

3. Open-source datasets of LiDAR data:

The following link contains a list of free data sources for you to get your hands dirty and explore LiDAR data.

--

--

Amnah Ebrahim

Electronics engineer passionate about electronics, machine learning, autonomous robotics, and natural language processing!