当前位置:网站首页>A detailed explanation of the laser slam framework logo-loam
A detailed explanation of the laser slam framework logo-loam
2022-06-24 02:06:00 【3D vision workshop】
The authors introduce :Zach, Mobile robot practitioners , Love the mobile robot industry , Aspire to science and technology to help a better life .
LOAM The problem is
LeGO-LOAM Its full name is :Lightweight and Groud-Optimized Lidar Odometry and Mapping on Variable Terrain, It can be seen from the title that LeGO-LOAM Coping with Variable ground Ground optimization has been carried out , At the same time, it ensures lightweight .
LeGO-LOAM It is specially designed for ground vehicles SLAM Algorithm , It is required to install Lidar It can be installed horizontally on the vehicle ; If the installation is inclined , It is also necessary to convert the position and posture to the vehicle . and LOAM Yes Lidar There is no requirement for the installation method of , It doesn't matter if you hold it .
The author's experimental platform is a mobile car (UGA), There's a Velodyne VLP-16 Line lidar , It is also equipped with a low precision IMU; The selected hardware platform is Nvidia Jetson TX2(ARM Cortex-A57 CPU); The overall load is 20Kg; Moving speed is :2.0m/s; The test scenario is : The ground is uneven ( It's bumpy ) Grass of .
chart 1 Hardware platform
LOAM The framework will have some problems in such hardware environments and usage scenarios :
- Because it is equipped with an embedded system , Computing power will be limited ,LOAM The computational needs of will be difficult to meet , As a result, real-time ;
- If you use LOAM frame , The system calculates the processing frequency of the curvature of each point ( Large amount of data ,VLP-16 One line is 1800 A little bit ) It will be difficult to keep up with the update frequency of the sensor ;
- UGA The road surface is non smooth and continuous ( Sports are bumpy ), The collected data will be distorted ( Motion distortion , The uniform motion model cannot be applied to the bumpy scene ), Use LOAM It is difficult to find a reliable feature correspondence between two frames .
- Operate in a noisy environment UGV I will LOAM Bring some challenges , for example : The point cloud of floating grass and swinging leaves will be wrongly extracted as corner points or face points , These characteristics are not reliable , It is difficult to obtain accurate matching between successive frames , This will cause large drift .
LeGO-LOAM Design idea
The registration of ground point cloud mainly uses the features of surface points ; In the segmented point cloud registration, the edge points and face points are mainly used . It can be seen that the number of edge points is much smaller than that of plane points , This is also the main reason for the acceleration .
LeGO_LOAM Software system input for 3D Lidar Point cloud of , Output 6 DOF Pose estimation . The whole software system is divided into 5 Parts of :
- The first part :Segmentation: The main operation of this part is to separate the ground point cloud ; At the same time, cluster the remaining point clouds , Filter out a small number of point cloud clusters .
- The second part :Feature Extraction: For the segmented point cloud ( Ground point clouds have been separated ) Feature extraction of edge points and face points , This step and LOAM The operation inside is the same .
- The third part :Lidar Odometer : Between successive frames ( Edge points and face points ) Feature matching finds the pose transformation matrix between successive frames .
- The fourth part :Lidar Mapping: Yes feature Further treatment , And then in the global point cloud map Registration in .
- The fifth part :Transform Integration: Transform Integration Integrated from Lidar Odometry and Lidar Mapping Of pose estimation Output the final pose estimate.
LeGO-LOAM Algorithm details
chart 3 In a noisy environment scan Feature extraction process of
A. Segmentation
After extracting ground points , And the rest of it Distance image Clustering ( Clustering ), The number of filtered point clouds is less than 30 Point cloud cluster of , Assign different labels to the retained point cloud clusters . Ground point cloud belongs to a special kind of point cloud cluster ( We extracted it from the beginning ). Cluster and reprocess the point cloud , It can improve the running efficiency and extract more stable features . for example , The car runs in a noisy environment , Leaves will produce unreliable features , The same leaf is unlikely to be seen in two consecutive frame scans . chart 3(a) Is the original point cloud , Contains many vegetation point clouds ; After processing, it becomes a graph 3(b), Only the big object point cloud is left , for example : trunk . The ground point cloud will be retained for further processing . here , Each retained point will have three properties :(1) Label of point cloud ;(2) stay Distance image Number of rows and columns in ;(3) Distance value .
B. Feature Extraction
This step is mainly to extract features from the ground point cloud and the segmented point cloud , And LOAM Same operation in . It is mainly necessary to understand the concept of several feature point sets .
In order to extract features uniformly from all directions , We will Distance image Divide horizontally into several equal sub images , take 360° Divide evenly 6 Equal division , The precision of each bisection is 300 \times 16( because VLP-16 Line Lidar, One scan yes 1800 A little bit ).
Calculate the curvature value of each line of points in the subgraph , Sort the curvature values ,> Cth, It is divided into edge point features ;< Cth It is divided into facial features . Set up the following sets ( The sentences in this part of the paper are similar , Here is my personal understanding , May not be accurate ):
C. Lidar Odometry
1)Label Matching:LeGO-LOAM Cluster the point cloud , Different point cloud clusters have different Label.Label Information can be used as a constraint condition for two frame matching , Only the same label point cloud cluster can be registered between two consecutive frames . This method can improve the accuracy and efficiency of registration .
D. Lidar Mapping
LeGO-LOAM Performance of
The author is testing LeGO-LOAM Performance of , A series of experiments were designed to compare LeGO-LOAM and LOAM Performance .
The author is in small and large outdoor scenes , Respectively for LeGO-LOAM and LOAM The test platform performs intense and gentle control , To see the mapping effect and efficiency of both .
During the intense movement of the small scene :LOAM Will pull the grass 、 Leaves are extracted as edge points ( Grass and leaves are the main sources of instability ); and LeGOU-LOAM Will filter out these unstable features , Only in the trunk , ground , Extracting stable features from steps, etc . As shown in the figure below ( Green is the edge point , Pink is pastry ):
stay LOAM In the frame , Violent movement is easy to cause the divergence of point cloud map , As shown in the figure below (a)LOAM, There are three tree trunks .
The author is in the urban environment of the big scene ( It's a school , The altitude error of different locations is 19m within ) A variety of tests are also carried out to verify the accuracy of the drawing , There are sidewalks , Cement road , Dirt roads and grass .
LOAM The effect of drawing on the sidewalk is not good , It may be the interference of tree leaves at one end , As shown in the figure below :
In the other three scenarios ,LeGO-LOAM The deviation of ( The deviation of the end point from the initial position ) Perform better than LOAM.
The results of the whole test are as follows :
- Comparison of the number of feature points :LeGO-LOAM The overall decline of feature points exceeds :29%,40%,68%,72%.
- Comparison of iterations : The number of iterations of odometer is reduced 34%,48%.
- Run time comparison : To reduce the 60%
- Posture error comparison :LeGOLOAM Comparable or better position estimation accuracy can be achieved with less computation time .
Reference material
- https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
remarks : The author is also us 「3D Vision goes from beginner to proficient 」 Special guests : A super dry 3D Visual learning community
This article is only for academic sharing , If there is any infringement , Please contact to delete .
边栏推荐
- Analysis report on development trends and prospects of China's pyrolytic boron nitride (PBN) component industry 2022-2028
- What is "data" in data analysis- Cassie Kozyrkov
- The same set of code returns normally sometimes and reports an error sometimes. Signature error authfailure SignatureFailure
- Set multiple print for batch generated barcodes
- Make standardized tools in the cloud native era to realize efficient cloud R & D workflow
- Tencent Conference - black screen analysis
- What is data analysis? Analysis is not storytelling... - Cassie kozyrkov
- NTP synchronization clock server server and client settings
- Vivo global mall: design and practice of commodity system architecture
- [security] Tencent public cloud released the revolutionary function of "driving threat operation" of the new SOC security operation center!
猜你喜欢

application. Yaml configuring multiple running environments

How to fill in and register e-mail, and open mass mailing software for free

Review of AI hotspots this week: the Gan compression method consumes less than 1/9 of the computing power, and the open source generator turns your photos into hand drawn photos

layer 3 switch

If there are enumerations in the entity object, the conversion of enumerations can be carried out with @jsonvalue and @enumvalue annotations

163 mailbox login portal display, enterprise mailbox computer version login portal

BIM model example

Introduction to development model + test model

Stm32g474 infrared receiving based on irtim peripherals
随机推荐
Devops learning notes (II)
Global and Chinese gallium industry market panoramic survey and investment strategy proposal report 2022-2028
[read together] Web penetration attack and defense practice (I)
Tcapulusdb Jun · industry news collection
Tcapulusdb Jun · industry news collection (November 22)
Why do cloud desktops use rack servers? What are the functions of cloud desktop?
Designing complex messaging systems using bridging patterns
Line/kotlin jdsl: kotlin DSL for JPA criteria API
Super parameter tuning of neural network using keras tuner
The same set of code returns normally sometimes and reports an error sometimes. Signature error authfailure SignatureFailure
How do I fix the iPhone green screen problem? Try these solutions
SAP mm Migo + 301 K can transfer vendor consignment inventory across factories
Mainstay of network detection - nping User Guide
Echo framework: implementing service end flow limiting Middleware
A complete collection of SQL commands. Each command has an example. Xiaobai can become a God after reading it!
How to fill in and register e-mail, and open mass mailing software for free
An attempt to use Navicat tool to copy and export MySQL database data
Grp: implement GRP timeout interceptor
Six steps from strategy to product - johncutlefish
Vivo global mall: design and practice of commodity system architecture