当前位置:网站首页>Laser slam:logo-loam --- code compilation, installation and gazebo test
Laser slam:logo-loam --- code compilation, installation and gazebo test
2022-07-28 20:49:00 【The moon shines on the silver sea like a dragon】
laser slam:LeGO-LOAM--- Code compilation and installation gazebo test
LeGO-LOAM brief introduction
LeGO-LOAM Our English full name is lightweight and ground optimized lidar odometry and mapping. Lightweight lidar odometer with ground optimization and mapping 
The framework is as follows , In general, and LOAM It's consistent 
LeGO-LOAM Is based on LOAM Improved version , Its main purpose is to realize the positioning and mapping of the car under changeable terrain , A series of improvements have been made for both the front end and the back end .
In the original LOAM For example, the application scenario is :AGV Driving in the grass , Points in the grassland will probably be extracted as corners , But this kind of point is unstable , Compared with buildings 、 Stable corners such as trunk , I hope to remove the corners on the ground .
LeGO-LOAM More lightweight , Reduce the calculation load without affecting the accuracy , It ensures the real-time performance of the embedded platform
comparison LOAM Improvements
front end :
- 1 Classify and extract ground points , Avoid the extraction of some edge points
- 2 A simple point cloud clustering algorithm is applied , Eliminate some possible outlier
- 3 Solve the front-end odometer in two steps , Reduce the calculation load without affecting the accuracy , It ensures the real-time performance of the embedded platform
Back end :
- 1 Use slam The back-end part is reconstructed with the concept of key frame in
- 2 The concepts of loop detection and pose map optimization are introduced , Make the global consistency of the map better
LeGO-LOAM Code compilation installation
github The address is :https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
Has been tested ROS Version has :
- indigo
- kinetic
- melodic
Its dependent libraries are gtsam. So you need to install it first gtsam
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install
cmake It can be changed into the following instructions
cmake -DGTSAM_BUILD_EITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
The purpose is to set some macros
DGTSAM_BUILD_EITH_MARCH_NATIVE Is open css Accelerated macros , To shut down . Avoid other libraries ( such as PCL Or your own code ) If it's not turned on , It will cause abnormal conditions during operation
DGTSAM_USE_SYSTEM_EIGEN This is installed with the system eigen Compiled macro , To turn on .OFF Yes, I can gtsam Self contained eigen, There are two versions of code running eigen It's easy to go wrong
Then download LeGO-LOAM Of ROS Function pack
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
And then on ROS Working space for
Then compile , Be careful The first compilation should use
catkin_make -j1
You don't need to compile later -j1 了
The reason for this is LeGO-LOAM There are some customized msg.
-j1 Will be compiled by single thread . Put custom msg Compile to .
If you use it directly catkin_make According to how many cores the computer has , Compile several threads .
If the compilation is successful, it will generate LeGO-LOAM Of Executable file 
LeGO-LOAM Gazebo test
Here's a direct build gazebo Test scenarios Yes LeGO-LOAM Conduct a preliminary test
Before running, it needs to be based on The type of lidar used , stay utility.h Set some variables in the file
The location of the file is include Under the folder :
Point cloud of lidar Topic name
extern const string pointCloudTopic = "/velodyne_points";
The parameters of lidar include
- Wire harness
- Horizontal points
- Horizontal corner resolution
- Vertical angle resolution
- Angle with horizontal direction
- The number of laser lines scanned to the ground
stay gazebo The simulation scenario built in is used Velodyne-16 Laser radar of , Its configuration is as follows :
// VLP-16
extern const int N_SCAN = 16;
extern const int Horizon_SCAN = 1800;
extern const float ang_res_x = 0.2;
extern const float ang_res_y = 2.0;
extern const float ang_bottom = 15.0+0.1;
extern const int groundScanInd = 7;
And then run in launch Under folder run.launch file
Then start the simulation scenario , Do a preliminary test
The result is as follows :

stay rviz The medium green is the corner , The pink one is pastry
There is no abnormality in feature extraction 
Construction of drawings
边栏推荐
- LVS load balancing cluster
- C reads the data in the CSV file and displays it after importing the DataTable
- Oracle library access is slow. Why?
- [complete collection of common ADB commands and their usage (from a comprehensive summary of [wake up on Sunday)]
- 超大模型工程化实践打磨,百度智能云发布云原生AI 2.0方案
- Sorting out problems in interface endpoint testing practice using Supertest
- 到底为什么不建议使用SELECT * ?
- Configure Windows Server + install MySQL database on the server + Remote Access database
- Oracle库访问很慢,是什么原因?
- MySQL batch update data
猜你喜欢
![[pytorch] LSTM neural network](/img/c8/c1f92e7d4da7f07b85abe481f025bc.png)
[pytorch] LSTM neural network

Raspberry pie 4B deploy yolov5 Lite using ncnn

Redis入门二:redhat 6.5安装使用

不懂就问,快速成为容器服务进阶玩家!

Usage Summary of thymeleaf

Unity uses shader to quickly make a circular mask

有奖征文 | 2022 云原生编程挑战赛征稿活动开启

类与对象(中)

Ask if you don't understand, and quickly become an advanced player of container service!

同质化代币与 NFT 结合,如何使治理结构设计更灵活?
随机推荐
Introduction to redis II: RedHat 6.5 installation and use
太空射击第14课: 玩家生命
Network layer performance test
System. ArgumentException: Object of type ‘System. Int64‘ cannot be converted to type ‘System.Int32‘
NAT实验演示(Huawei交换机设备配置)
7/27 训练日志(位运算+后缀数组)
Learn about the native application management platform of rainbow cloud
太空射击第13课: 爆炸效果
平均海拔4000米!我们在世界屋脊建了一朵云
Unity performance optimization
js win7透明桌面切换背景开始菜单js特效
Three steps to teach you unity serial communication
[server data recovery] HP StorageWorks series storage RAID5 two disk failure offline data recovery case
Linxu [permission, sticky bit]
js图片悬挂样式照片墙js特效
有奖征文 | 2022 云原生编程挑战赛征稿活动开启
Use of DDR3 (axi4) in Xilinx vivado (2) read write design
一文了解 Rainbond 云原生应用管理平台
Cartoon JS shooting game source code
PXE_ KS unattended system