Skip to content

Commit 511452a

Browse files
fix(markdown): change to appropriate headings
1 parent 099e6f7 commit 511452a

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

wiki/state-estimation/lio-sam-velocity-undistortion-and-dynamic-filtering.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The detailed explanation of the LIO-SAM algorithm and its configuration settings
1919

2020
After the point cloud map is built, we will also describe a simple approach for removing dynamic obstacles and outliers from the map. Our goal is to generate a static, clean, and high-quality 3D point cloud map.
2121

22-
# Dependencies
22+
## Dependencies
2323
Our improved version is tested with ROS2 Humble on Ubuntu 22.04.
2424

2525
Refer to the [Dependencies](https://github.com/TixiaoShan/LIO-SAM/tree/ros2) in LIO-SAM's github ros2 branch.
@@ -44,7 +44,7 @@ Use the following script to install [Sophus](https://github.com/strasdat/Sophus.
4444
bash install_sophus.sh
4545
```
4646

47-
# Installation
47+
## Installation
4848
Use the following commands to compile the package:
4949

5050
```
@@ -54,7 +54,7 @@ git checkout ros2-velocity
5454
bash build_lio.sh
5555
```
5656

57-
# Run the package
57+
## Run the package
5858
The source command is already written in the script:
5959
```
6060
bash run_lio.sh
@@ -65,28 +65,28 @@ Then play bag files:
6565
ros2 bag play your-bag
6666
```
6767

68-
# Core Configuration Setup
68+
## Core Configuration Setup
6969

70-
## Input Topic
70+
### Input Topic
7171
- pointCloudTopic (sensor_msgs/msg/PointCloud2)
7272
- imuTopic (sensor_msgs/msg/Imu)
7373
- twistTopic (geometry_msgs/msg/TwistStamped) (Optional)
7474
- gpsTopic (nav_msgs::msg::Odometry) (Optional)
7575

76-
## Distortion Function
76+
### Distortion Function
7777
- enable_distortion_function: Open if you want to use distortion correction algorithm
7878
- use_imu: Use IMU data in distortion function
7979
- use_velocity: Use velocity data in distortion function
8080

81-
## IMU Settings
81+
### IMU Settings
8282
- extrinsicTrans: Translation between LiDAR and IMU
8383
- extrinsicRot, extrinsicRPY: Rotation between LiDAR and IMU
8484

85-
## Loop Closure
85+
### Loop Closure
8686
- loopClosureEnableFlag: Open loop closing
8787
- historyKeyframeFitnessScore: ICP matching threshold, adjust it if loop closing performance is bad
8888

89-
# Distortion Correction Module
89+
## Distortion Correction Module
9090
LiDAR motion distortion occurs when the sensor or robot moves while a frame is being captured. Since a rotating LiDAR does not measure all points at the same instant, different parts of the point cloud correspond to slightly different sensor poses. This can cause straight walls to appear curved, objects to shift position, and scan matching accuracy to degrade. The rotation distortion video is shown [here](https://drive.google.com/file/d/1KnMkAbJXtDpj2OJxOIoW3D4nRNeQGs_S/view?usp=sharing).
9191

9292
In LIO-SAM, IMU measurements are used to estimate the sensor’s rotational motion during each scan and correct, or “undistort,” the point cloud before mapping. However, translational motion of the sensor is not fully accounted for. When the vehicle moves at high speed, this translation-induced distortion can become significant and may degrade mapping quality.
@@ -100,7 +100,7 @@ Before distortion correction:
100100
After distortion correction:
101101
![](/assets/images/state-estimation/After_Undistortion.png)
102102

103-
# Dynamic Obstacle Filtering
103+
## Dynamic Obstacle Filtering
104104
Dynamic obstacle filtering is applied after the initial map is constructed to remove points caused by moving objects, such as vehicles, pedestrians, or cyclists. These dynamic points may appear as ghost artifacts or inconsistent structures in the map because they do not belong to the static environment. By identifying and removing them from the generated point cloud map, the final map becomes cleaner, more reliable, and better suited for localization and navigation.
105105

106106
A simple way to remove these dynamic obstacles is through manual selection. We use CloudCompare to edit and refine point cloud segments in the map. For example, in a map generated by LIO-SAM, many unwanted dynamic obstacles and outliers may remain. In CloudCompare, the Segment tool can be used to select the areas that need to be removed, as shown below:
@@ -116,7 +116,7 @@ After applying multiple segmentation steps across the map, merge all remaining s
116116
![](/assets/images/state-estimation/DOF4.png)
117117
The white points represent the filtered dynamic obstacles, while the colored points represent the remaining static map.
118118

119-
# Future Work
119+
## Future Work
120120
Several improvements can be added in future work. First, GNSS measurements can be integrated as an elevation drift constraint during mapping. This would help reduce vertical drift and improve map consistency, especially in large-scale outdoor environments.
121121

122122
Second, better visualization tools can be developed to make the mapping and filtering results easier to inspect. Clear visualization of trajectory quality, point cloud alignment, removed dynamic objects, and map consistency would help with debugging and evaluation.

0 commit comments

Comments
 (0)