Skip to content

Commit 1181137

Browse files
committed
update codes
1 parent 85e47be commit 1181137

10 files changed

Lines changed: 432 additions & 147 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ These complementary aspects require different evaluation approaches, as global d
2727

2828
## News
2929

30+
- **2025/07/05:** Update the parameter setting and more config examples.
3031
- **2025/05/05:** Add new test data and remove the simulation codes.
3132
- **2025/03/05**: [Formally published](https://ieeexplore.ieee.org/document/10910156)!
3233
- **2025/02/25**: Accept!

map_eval/.idea/libraries/ROS.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

map_eval/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ project(map_eval)
44
set(CMAKE_CXX_STANDARD 17)
55
set(CMAKE_BUILD_TYPE Release)
66

7+
set(Open3D_DIR "/home/xchu/xicp_ws/devel/.private/open3d_catkin/lib/cmake/Open3D")
8+
message(STATUS "LTLoc: Set Open3D_DIR to ${Open3D_DIR}") # 打印信息,确认设置生效
9+
710
find_package(Open3D REQUIRED)
811
find_package(Eigen3 REQUIRED)
912
find_package(OpenMP REQUIRED)

map_eval/config/config.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,13 @@ evaluate_noise_gt: false
5757

5858
# vmd voxel size
5959
# outdoor: 2.0-4.0; indoor: 2.0-3.0
60-
vmd_voxel_size: 3.0
60+
vmd_voxel_size: 3.0
61+
62+
# downsample size for estimated and gt point cloud map
63+
downsample_size: 0.01
64+
65+
# if show the evaluation error map after registration
66+
use_visualization: true
67+
68+
# if print the debug info
69+
enable_debug: true
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# registration methods from Open3D: 0-point-to-point icp; 1-point-to-plane icp; 2-GICP
2+
registration_methods: 2
3+
# set icp_max_distance when search the nearest point, larger value will make the search slower
4+
icp_max_distance: 1.0
5+
6+
# accuracy_level, vector5d, we mainly use the result of the first element
7+
# if inlier is very small, we can try to larger the value, e.g. for outdoors, [0.5, 0.3, 0.2, 0.1, 0.05]
8+
accuracy_level: [0.2, 0.1, 0.08, 0.05, 0.01]
9+
10+
# initial_matrix, vector16d, the initial matrix of the registration
11+
# make sure the format is correct, or you will got the error log: YAML::BadSubscript' what(): operator[] call on a scalar
12+
# if you evaluate the LIO mapping result, you can use the CloudCompare to get the initial matrix first
13+
initial_matrix:
14+
- [1.0, 0.0, 0.0, 0.0]
15+
- [0.0, 1.0, 0.0, 0.0]
16+
- [0.0, 0.0, 1.0, 0.0]
17+
- [0.0, 0.0, 0.0, 1.0]
18+
19+
# estimate map folder path, end with "/", make sure your estimate point cloud and map is renamed as "map.pcd"
20+
# results path will also in the same folder: estimate_map_path + "map_results"
21+
estimate_map_path: /home/xchu/data/ltloc_result/building_day_all/20220225_building_day_ref_tsvd/
22+
23+
# ground truth map file path
24+
# note that we support ".pcd" or ".ply" format for ground truth map loading
25+
gt_map_path: /media/xchu/e81eaf80-d92c-413a-a503-1c9b35b19963/home/xchu/data/evaluation/gt/map/building_day_gt.pcd
26+
27+
28+
# scene name, not important, just for batch processing for a series of scenes
29+
scene_name: stairs
30+
31+
# other settings
32+
# if we save the immediate result to a text file
33+
save_immediate_result: true
34+
35+
# if evaluate Mean Map Entropy (MME) if you do not have ground truth map
36+
# but remember, MME can be only used for map comparison with the same scale, e.g., maps are for odometry.
37+
# it costs a lot of time to calculate MME, so we set it as false by default
38+
evaluate_mme: false
39+
40+
# if we have ground truth map, we also want to evaluate the MME of the ground truth map
41+
evaluate_gt_mme: false
42+
43+
# NN search radius for MME calculation (m), larger value will make the search much more slower, even the memory overflow
44+
nn_radius: 0.1
45+
46+
# if we want to evaluate the registration result using initial matrix without alignments, this operation will save time
47+
# that means your estimate map is already aligned with the ground truth map,
48+
# or your estimate map and the ground truth map is already in the same coordinate system
49+
# e.g. the estimate map is already aligned with the ground truth map
50+
evaluate_using_initial: false
51+
52+
# we want to add noise to the ground truth map, and evaluate the registration result
53+
# note that true will cause the system do not load the estimate map, instead the noise gt_map will be used
54+
# just for algorithm robustness evaluation experiments, not for real-world application
55+
# do not recommand to set it as true, since it will cause the memory overflow
56+
evaluate_noise_gt: false
57+
58+
# vmd voxel size
59+
# outdoor: 2.0-4.0; indoor: 2.0-3.0
60+
vmd_voxel_size: 2.0
61+
62+
# downsample size for estimated and gt point cloud map
63+
downsample_size: 0.01
64+
65+
# if show the evaluation error map after registration
66+
use_visualization: true
67+
68+
# if print the debug info
69+
enable_debug: true
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# registration methods from Open3D: 0-point-to-point icp; 1-point-to-plane icp; 2-GICP
2+
registration_methods: 2
3+
# set icp_max_distance when search the nearest point, larger value will make the search slower
4+
icp_max_distance: 1.0
5+
6+
# accuracy_level, vector5d, we mainly use the result of the first element
7+
# if inlier is very small, we can try to larger the value, e.g. for outdoors, [0.5, 0.3, 0.2, 0.1, 0.05]
8+
accuracy_level: [0.2, 0.1, 0.08, 0.05, 0.01]
9+
10+
# initial_matrix, vector16d, the initial matrix of the registration
11+
# make sure the format is correct, or you will got the error log: YAML::BadSubscript' what(): operator[] call on a scalar
12+
# if you evaluate the LIO mapping result, you can use the CloudCompare to get the initial matrix first
13+
initial_matrix:
14+
- [1.0, 0.0, 0.0, 0.0]
15+
- [0.0, 1.0, 0.0, 0.0]
16+
- [0.0, 0.0, 1.0, 0.0]
17+
- [0.0, 0.0, 0.0, 1.0]
18+
19+
# estimate map folder path, end with "/", make sure your estimate point cloud and map is renamed as "map.pcd"
20+
# results path will also in the same folder: estimate_map_path + "map_results"
21+
estimate_map_path: /home/xchu/data/ltloc_result/corridor_all/20220216_corridor_day_ref_eular/
22+
23+
# ground truth map file path
24+
# note that we support ".pcd" or ".ply" format for ground truth map loading
25+
gt_map_path: /media/xchu/e81eaf80-d92c-413a-a503-1c9b35b19963/home/xchu/data/evaluation/gt/map/corridor_day_gt.pcd
26+
27+
28+
# scene name, not important, just for batch processing for a series of scenes
29+
scene_name: corridor
30+
31+
# other settings
32+
# if we save the immediate result to a text file
33+
save_immediate_result: true
34+
35+
# if evaluate Mean Map Entropy (MME) if you do not have ground truth map
36+
# but remember, MME can be only used for map comparison with the same scale, e.g., maps are for odometry.
37+
# it costs a lot of time to calculate MME, so we set it as false by default
38+
evaluate_mme: false
39+
40+
# if we have ground truth map, we also want to evaluate the MME of the ground truth map
41+
evaluate_gt_mme: false
42+
43+
# NN search radius for MME calculation (m), larger value will make the search much more slower, even the memory overflow
44+
nn_radius: 0.1
45+
46+
# if we want to evaluate the registration result using initial matrix without alignments, this operation will save time
47+
# that means your estimate map is already aligned with the ground truth map,
48+
# or your estimate map and the ground truth map is already in the same coordinate system
49+
# e.g. the estimate map is already aligned with the ground truth map
50+
evaluate_using_initial: false
51+
52+
# we want to add noise to the ground truth map, and evaluate the registration result
53+
# note that true will cause the system do not load the estimate map, instead the noise gt_map will be used
54+
# just for algorithm robustness evaluation experiments, not for real-world application
55+
# do not recommand to set it as true, since it will cause the memory overflow
56+
evaluate_noise_gt: false
57+
58+
# vmd voxel size
59+
# outdoor: 2.0-4.0; indoor: 2.0-3.0
60+
vmd_voxel_size: 2.0
61+
62+
# downsample size for estimated and gt point cloud map
63+
downsample_size: 0.01
64+
65+
# if show the evaluation error map after registration
66+
use_visualization: true
67+
68+
# if print the debug info
69+
enable_debug: true

map_eval/config/config_geode.yaml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# registration methods from Open3D: 0-point-to-point icp; 1-point-to-plane icp; 2-GICP
2+
registration_methods: 2
3+
# set icp_max_distance when search the nearest point, larger value will make the search slower
4+
icp_max_distance: 1.0
5+
6+
# accuracy_level, vector5d, we mainly use the result of the first element
7+
# if inlier is very small, we can try to larger the value, e.g. for outdoors, [0.5, 0.3, 0.2, 0.1, 0.05]
8+
accuracy_level: [0.2, 0.1, 0.08, 0.05, 0.01]
9+
10+
# initial_matrix, vector16d, the initial matrix of the registration
11+
# make sure the format is correct, or you will got the error log: YAML::BadSubscript' what(): operator[] call on a scalar
12+
# if you evaluate the LIO mapping result, you can use the CloudCompare to get the initial matrix first
13+
initial_matrix:
14+
- [1.0, 0.0, 0.0, 0.0]
15+
- [0.0, 1.0, 0.0, 0.0]
16+
- [0.0, 0.0, 1.0, 0.0]
17+
- [0.0, 0.0, 0.0, 1.0]
18+
19+
# estimate map folder path, end with "/", make sure your estimate point cloud and map is renamed as "map.pcd"
20+
# results path will also in the same folder: estimate_map_path + "map_results"
21+
estimate_map_path: /home/xchu/data/ltloc_result/stair_bob_all/stairs_bob_fcn_sr/
22+
23+
# ground truth map file path
24+
# note that we support ".pcd" or ".ply" format for ground truth map loading
25+
gt_map_path: /media/xchu/新加卷/GEODE/gt_map.pcd
26+
27+
28+
# scene name, not important, just for batch processing for a series of scenes
29+
scene_name: stairs
30+
31+
# other settings
32+
# if we save the immediate result to a text file
33+
save_immediate_result: true
34+
35+
# if evaluate Mean Map Entropy (MME) if you do not have ground truth map
36+
# but remember, MME can be only used for map comparison with the same scale, e.g., maps are for odometry.
37+
# it costs a lot of time to calculate MME, so we set it as false by default
38+
evaluate_mme: false
39+
40+
# if we have ground truth map, we also want to evaluate the MME of the ground truth map
41+
evaluate_gt_mme: false
42+
43+
# NN search radius for MME calculation (m), larger value will make the search much more slower, even the memory overflow
44+
nn_radius: 0.1
45+
46+
# if we want to evaluate the registration result using initial matrix without alignments, this operation will save time
47+
# that means your estimate map is already aligned with the ground truth map,
48+
# or your estimate map and the ground truth map is already in the same coordinate system
49+
# e.g. the estimate map is already aligned with the ground truth map
50+
evaluate_using_initial: false
51+
52+
# we want to add noise to the ground truth map, and evaluate the registration result
53+
# note that true will cause the system do not load the estimate map, instead the noise gt_map will be used
54+
# just for algorithm robustness evaluation experiments, not for real-world application
55+
# do not recommand to set it as true, since it will cause the memory overflow
56+
evaluate_noise_gt: false
57+
58+
# vmd voxel size
59+
# outdoor: 2.0-4.0; indoor: 2.0-3.0
60+
vmd_voxel_size: 2.0
61+
62+
# downsample size for estimated and gt point cloud map
63+
downsample_size: 0.01
64+
65+
# if show the evaluation error map after registration
66+
use_visualization: true
67+
68+
# if print the debug info
69+
enable_debug: true

0 commit comments

Comments
 (0)