当前位置:网站首页>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
边栏推荐
- Pigsty:开箱即用的数据库发行版
- C language greedy snake
- 企业应用需求导向开发之人力部门,员工考勤记录和实发工资业务程序案例
- C - linear table
- HDU - 1260 Tickets(线性DP)
- Take you hand in hand to build Eureka client with idea
- 2022 certified surveyors are still at a loss when preparing for the exam? Teach you how to take the exam hand in hand?
- May day C - most
- An example analysis of MP4 file format parsing
- Ora-02437 failed to verify the primary key violation
猜你喜欢
Restricted linear table
快速回复二极管整流特性
[stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
ping报错:未知的名称或服务
Take you hand in hand to build Eureka server with idea
一份假Offer如何盗走了「Axie infinity」5.4亿美元?
Arbre binaire équilibré [Arbre AVL] - Insérer et supprimer
Understand TCP's three handshakes and four waves with love
Live server usage
Class C design questions
随机推荐
【汇总】看过的一些Panel与视频
保证接口数据安全的10种方案
Chisel tutorial - 00 Ex.scala metals plug-in (vs Code), SBT and coursier exchange endogenous
【7.5】15. 三数之和
Anti climbing means cracking the second
Learn about scratch
95.(cesium篇)cesium动态单体化-3D建筑物(楼栋)
C cat and dog
串联二极管,提高耐压
C number of words, plus ¥, longest word, average value
May day d-light
解析token的网址
Extract the file name under the folder under win
HDU - 1260 tickets (linear DP)
平衡二叉树【AVL树】——插入、删除
神奇快速幂
Pycharm basic settings latest version 2022
C - minute number V3
【LeetCode】20、有效的括号
Take you hand in hand to build Eureka client with idea