当前位置:网站首页>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)
AITM3.0005 烟雾毒性测试
ASP. Net core middleware request processing pipeline
串联二极管,提高耐压
Svn relocation
HB 5469民用飞机机舱内部非金属材料燃烧试验方法
SAP HR social work experience 0023
Flash encryption process and implementation of esp32
How did a fake offer steal $540million from "axie infinity"?
平衡二叉樹【AVL樹】——插入、删除
随机推荐
Jisuan Ke - t3104
Installing gradle
SAP HR 家庭成员信息
【7.5】15. Sum of three numbers
gorm 关联关系小结
May day C - most
The for loop realizes 1-100 addition and eliminates the 4-digit tail number
What if once again forgets the login password of raspberry pie? And you don't have a monitor yet! Today, I would like to introduce a method
【LeetCode】20、有效的括号
Display the server hard disk image to the browser through Servlet
Pycharm basic settings latest version 2022
Learn about scratch
MP4文件格式解析之结合实例分析
Anxinco esp32-a1s development board is adapted to Baidu dueros routine to realize online voice function
Markdown
Chisel tutorial - 05 Sequential logic in chisel (including explicit multi clock, explicit synchronous reset and explicit asynchronous reset)
Magic fast power
【7.4】25. K 个一组翻转链表
数据湖(十五):Spark与Iceberg整合写操作
Stringutils tool class