7. cartographer Mapping algorithm

 

7. cartographer Mapping algorithm7.1 Description of program functionality7.2 Introduction to the Cartographer7.3 Application Code Reference path7.4. Program Startup7.4.1. Build the diagram7.4.2. Map saving7.4.3. View the topic communication graph7.4.4 View the TF tree

7.1 Description of program functionality

After the programs on the VM and the car are started, the car is controlled by the controller or keyboard. The car uses the radar scan data to build a map and saves the map after the map is built. This process is visualized in rviz.

7.2 Introduction to the Cartographer

Cartographer:https://google-cartographer.readthedocs.io/en/latest/

Cartographer ROS2:https://github.com/ros2/cartographer_ros

Cartographer is an open-source 2D and 3D SLAM (simultaneous localization and mapping) library supported by ROS systems. Method building algorithm based on graph optimization (multi-threaded backend optimization, cere constructed problem optimization). Data from multiple sensors (e.g., LIDAR, IMU, and camera) can be combined to simultaneously calculate the position of the sensor and map the environment around the sensor.

The cartographer source code consists of three main parts: cartographer, cartographer_ros, and ceres-solver (back-end optimization).

1684831668232

cartographer采用的是主流的SLAM框架,也就是特征提取、闭环检测、后端优化的三段式。由一定数量的LaserScan组成一个submap子图,一系列的submap子图构成了全局地图。用LaserScan构建submap的短时间过程累计误差不大,但是用submap构建全局地图的长时间过程就会存在很大的累计误差,所以需要利用闭环检测来修正这些submap的位置,闭环检测的基本单元是submap,闭环检测采用scan_match策略。cartographer的重点内容就是融合多传感器数据(odometry、IMU、LaserScan等)的submap子图创建以及用于闭环检测的scan_match策略的实现。

 

cartographer_ros is run under ROS and can accept various sensor data in the form of ROS messages

After processing, it is published as a message for debugging and visualization.

7.3 Application Code Reference path

After SSH connection car, the location of the function source code is located at,

The virtual machine side source code is located at,

7.4. Program Startup

7.4.1. Build the diagram

Open the virtual machine terminal and type,

After SSH connects to the car, terminal input,

1685524303444

Handle [L1] key unlock, control car movement. If you do not use the handle, you can use the keyboard control, the car terminal input,

【 Slowly move the cart 】 Start to build the map until the complete map is built.

Note: When building the drawing, the slower the better the effect (especially the rotation speed should be slower), the faster the speed, the effect will be very poor.

In addition, the path of cartographer configuration parameters is,

You can modify it according to your needs, compile and run it.

7.4.2. Map saving

Car terminal input:

The map can be saved as follows:

1684831343375

Includes a.pGM image and a.YAML file. The.yaml file contains the following contents::

Parameter analysis:

7.4.3. View the topic communication graph

Virtual machine terminal input,

1685092744116

To view the cartographer node details, enter,

1685092862078

1685092894177

7.4.4 View the TF tree

Open the virtual machine terminal and type,

1685092942688