当前位置:网站首页>Laser slam learning (2d/3d, partial practice)
Laser slam learning (2d/3d, partial practice)
2022-07-07 23:45:00 【Sell pigs inside】
---------------------------------------------- Source of learning materials --- Deep Blue College --------------------------------------------------
Catalog
1、 laser SLAM Brief introduction
1.1.1 map --> odom --> base_footprint --> base_link --> laser_link Of tf Tree relationships
1.1.2 odom Role and understanding of
1.1.3 Why not directly from map --> base_link Publish the information ?
1.1.1 Eigen::Vector3d and Eigen::Matrix3dA
2、 Sensor data processing I: Odometer motion model and calibration
3、 Sensor data processing II: Lidar mathematical model and motion distortion removal
3.1 Introduction to the principle of lidar Sensor
3.3 Motion distortion removal —— Sensor assist
3.3.1 IMU Advantages and disadvantages of wheel odometer
3.3.2 Why is lidar data CPU On the processing rather than on the single-chip processor ?
4、 laser SLAM Front end registration method
5、gmapping—— Filter based laser SLAM Method (Grid-based)
6、cartographer—— Laser simulation based on graph optimization SLAM Method (Grid-based)
7、 Mapping based on known location
1、 laser SLAM Brief introduction
1.1 tf Trees
1.1.1 map --> odom --> base_footprint --> base_link --> laser_link Of tf Tree relationships

1、 World coordinates (map)
The map The coordinate system is a world fixed coordinate system , Its Z The axis points up . Typical settings , Positioning module ( Sensors such as wheel odometer ) Constantly recalculate the pose of the robot in the world coordinates , So as to eliminate the deviation , But when the new sensor information arrives, it may jump .
2、 Odometer coordinate system (odom)
odom The coordinate system is calculated based on the ranging source , Such as wheel odometer , Visual odometer or inertial measurement unit .
3、 Base mark (base_footprint)
Default Z Coordinate for 0, That is, close to the ground . But the actual situation is generally not like this .
base_footprint Robot base_link The projection of the origin on the ground , difference base_link The reason is that “z” The coordinates are different . Generally, in order that the model does not fall into the ground ,base_footprint Of “z” Coordinate ratio base_link high . The green frame indicated by the blue arrow is base_footprint.

4、 Base mark (base_link)
base_link It is a coordinate system fixed on the robot body , Usually choose robot waist ; It is generally set as the rotation center of the robot , That is, the middle axle between the two wheels .
Here is an important default :move_base Default base_link Of z Coordinate for 0. That is, the position of the robot in the map is determined by base_link. Therefore, the general default is base_link The coordinate system of the robot body set for positioning .
base_link difference base_footprint The reason is that “z” The coordinates are different , The former is higher than the latter .
5、 Radar coordinate system (laser_link)
Measure according to the actual installation position , modify tf Release parameters of .
1.1.2 odom Role and understanding of
“odom and map The coordinate system coincides at the beginning of robot motion . however , It doesn't coincide with the passage of time , The deviation is the cumulative error of odometer . that map-->odom Of tf It is in the cooperation of some correction sensors package such as gmapping Will give a location estimate (localization), This can get map-->base_link Of tf, So the deviation between the estimated position and the odometer position is odom And map Coordinate system deviation . therefore , If your odom There is no error in the calculation , that map–->odom Of tf Namely “ As shown in the figure below :

1.1.3 Why not directly from map --> base_link Publish the information ?
The navigation stack must have map To base_link Transformation of , Some local planners also require /odom
Reference blog :
1.2 slam Common functions
1.1.1 Eigen::Vector3d and Eigen::Matrix3dA
First Eigen Is an open source based on c++ Matrix operation library .
Eigen::Ref< Eigen::Matrix3d > in “Matrix3d” Representing one 33 The type of double Matrix ,Ref<> For reference type , So this statement means Yes 3*3 Reference object of matrix ; Empathy ,Vector3d The length is 3 The type of double Vector .
boolcompute_C(Eigen::Ref<Eigen::Matrix3d>A_,Eigen::Ref<Eigen::Vector3d>B_). It should declare a function , There are two parameters , The first is called A Matrix , The second is called B Vector . To avoid copying and temporary values , So use the Ref<>.Ref The usage of can be understood as Pass by reference .
2、 Sensor data processing I: Odometer motion model and calibration
3、 Sensor data processing II: Lidar mathematical model and motion distortion removal
3.1 Introduction to the principle of lidar Sensor




3.2 Motion distortion

resolvent :ICP、VICP wait
3.3 Motion distortion removal —— Sensor assist

3.3.1 IMU Advantages and disadvantages of wheel odometer

3.3.2 Why is lidar data CPU On the processing rather than on the single-chip processor ?
4、 laser SLAM Front end registration method
5、gmapping—— Filter based laser SLAM Method (Grid-based)
6、cartographer—— Laser simulation based on graph optimization SLAM Method (Grid-based)
7、 Mapping based on known location
8、3D laser SLAM Introduce
Reference link :SLAM Summary of common coordinate systems :_Zack_Liu The blog of -CSDN Blog _slam Coordinate system

边栏推荐
- Benchmarking Detection Transfer Learning with Vision Transformers(2021-11)
- C - linear table
- Anti climbing means cracking the second
- Understand TCP's three handshakes and four waves with love
- Chisel tutorial - 05 Sequential logic in chisel (including explicit multi clock, explicit synchronous reset and explicit asynchronous reset)
- Ora-01741 and ora-01704
- 35岁那年,我做了一个面临失业的决定
- @Detailed introduction of configuration annotation
- Flash download setup
- MP4文件格式解析之结合实例分析
猜你喜欢

MySQL架构

HB 5469民用飞机机舱内部非金属材料燃烧试验方法
![[experiment sharing] log in to Cisco devices through the console port](/img/e4/fc72ed57de74a0dd51c484a1c2f348.png)
[experiment sharing] log in to Cisco devices through the console port

Anxin vb01 offline voice module access intelligent curtain guidance

MySQL Architecture

蓝桥ROS中使用fishros一键安装

ASP. Net core middleware request processing pipeline

SAP HR social work experience 0023

C - linear table

Progress broadcast | all 29 shield machines of Guangzhou Metro Line 7 have been launched
随机推荐
UIC564-2 附录4 –阻燃防火测试:火焰的扩散
FFA与ICGA造影
Svn relocation
【leetcode】day1
P1055 [noip2008 popularization group] ISBN number
Apng2gif solutions to various problems
Live server usage
Access database query all tables SQL
C method question 2
Benchmarking Detection Transfer Learning with Vision Transformers(2021-11)
AWS AWS help error
Take you hand in hand to build Eureka client with idea
Ora-01741 and ora-01704
35岁那年,我做了一个面临失业的决定
Pigsty:开箱即用的数据库发行版
Balanced binary tree [AVL tree] - insert, delete
One of the anti climbing methods
串联二极管,提高耐压
[untitled]
@Detailed introduction of configuration annotation
