LOAM-Livox Makes Easier Lidar by Shortening the Algorithm Development Cycle
2020/06/08 The demonstration of actual effect of Livox Horizon proves the feasibility of applying its non-repetitive scanning of point cloud data to existing high-performance algorithms. The cost reduction far surpasses the inevitable cost of algorithm swapping.
At the beginning of this year, Livox launched the top-notched product Horizon, a lidar which is applicable to autonomous driving. Priced at $1499, Livox Horizon makes high-performance lidars more affordable. Since its launch, customers from all industries have tried and purchased the product. Livox Horizon is different from mechanical lidars and requires adjustments for use. This document introduces some open-source algorithms and use cases of Livox Horizon.
Horizon loam_livox algorithm demo
Traditional mechanical lidars implement a repetitive scanning pattern across laser beams. As a result, point clouds are highly repeatable between adjacent frames. Therefore, ICP, NDT, and other common algorithms can be used to map point clouds, obtain laser odometry information, and then complete motion estimation and 3D mapping.
For lidars using non-repetitive scanning patterns, the scanning locations of laser beams are constantly changing, causing significant variations in the point cloud form that is collected in each data frame. Therefore, point clouds cannot be accurately mapped in point-to-point (P2P) mode. Rather, the point clouds can be directly mapped in Scan to Map mode. For example, LOAM-Livox obtains the position and orientation of each frame of point cloud in the world coordinate system to estimate the position and orientation of the lidar.
Livox Horizon can output about 24,000 points in 0.1 seconds, which are enough to obtain abundant 3D information in a field of view (FOV) range of 81.7° × 25.1°. It can map point clouds between frames to estimate the position and orientation, allowing a series of functions such as laser odometry, ego-motion, and 3D mapping. The open-source algorithm Livox-Horizon-LOAM is used as an example to explain how a single Livox Horizon lidar and the LOAM [1] algorithm work together to implement laser SLAM.
Hardware configuration: Mobile platform × 1 and Horizon lidar × 1
Software environment::Ubuntu 16.04, ROS Kinetic, PCL 1.7, Ceres 1.13.0, Eigen 3.3.7, or OpenCV 3.3.1
Algorithm introduction:
01 Extraction of point cloud features
This algorithm extracts edge feature points and flat feature points from Livox Horizon's single-frame point clouds, which correspond to point cloud data in a period of 0.1 seconds. Then, the algorithm registers point clouds in point-to-line and point-to-plane modes to reduce the volume of single-frame cloud point data generated by Livox Horizon. This helps accelerate the arithmetic speed, mitigate the adverse impact on point cloud mapping due to the non-repetitive scanning pattern, and improve the accuracy and stability of mapping.
Livox Horizon is a type of six-beam lidar that outputs point clouds based on fixed line numbers in chronological order, as shown in video 1. This scanning method facilitates the ease of extracting point cloud features.
Schematic drawing of point cloud scanning by Livox Horizon in 0.1 seconds(10HZ)
Livox Horizon allows you to easily acquire information about each point cloud data item, such as its line number and timestamp. Figure 1 shows the custom message data format for the Livox ROS driver.
Image 2 Curvature calculation
Figure 3 illustrates the point cloud features extracted by Livox Horizon. Generic points are in white, edge points in red, and flat points in green.
Figure 3 Point cloud features extracted by Livox Horizon
02 Point cloud mapping, and position and orientation correction
After Livox Horizon corrects the mapping error between two frames of point clouds, it registers cloud points to obtain the estimated radar motion status. After correcting each point cloud frame's position and orientation in the global map coordinate system, Livox Horizon outputs the laser odometry information in real time and builds a high-quality 3D point cloud map for the scene. The implementation method is the same as that of LOAM[1]. Video 2 shows the final effect.
Deeper Study
The demonstration of actual effect of Livox Horizon proves the feasibility of applying its non-repetitive scanning of point cloud data to existing high-performance algorithms. The cost reduction far surpasses the inevitable cost of algorithm swapping. From this demonstration as well as successful stories of clients of Livox, it is easy to conclude that algorithm swapping from a mechanical rotary lidar to Livox Horizon is not complex at all.
Technically speaking, the point cloud neighborhood information used by traditional algorithms is also applicable to Livox Horizon's point clouds, which can be adapted to existing algorithms simply by tuning the parameters of specific algorithms. The deep learning algorithms used by traditional radars are also applicable to Livox Horizon after the processes of data collection, annotation, and training are completed.
The example in video 3 shows how to locate and map IMU data in Livox Horizon. This improves Livox Horizon's locating accuracy and enhances its capability of applying point clouds to complex scenes, such as urban roads, overpasses, and tunnels. After being integrated with deep learning, Livox Horizon can detect and monitor vehicles that appear in each frame of point cloud, improving situational awareness of the lidar. With the improved awareness, Livox Horizon is the ideal product for applications in autonomous driving and related fields.
Ref.
[1] loam_livox: https://github.com/hku-mars/loam_livox
[2] livox_horizon_loam: https://github.com/Livox-SDK/livox_horizon_loam
[3] LOAM: https://ri.cmu.edu/pub_files/2014/7/Ji_LidarMapping_RSS2014_v8.pdf |