Skip to content

Commit 33cc7a3

Browse files
committed
Add Nav2 regression workflow and Boreas starter path
1 parent e9e0d70 commit 33cc7a3

148 files changed

Lines changed: 20294 additions & 248 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
.vscode
22
build
3-
map/bin_tc-2017-10-15--ndmap.pcd
3+
/install
4+
/log
5+
__pycache__/
6+
*.pyc
7+
map/bin_tc-2017-10-15--ndmap.pcd
8+
param/benchmark/*.local.yaml
9+
param/benchmark/private/

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Changelog
2+
3+
## 1.0.0 - 2026-03-30
4+
5+
Initial repo-ready Nav2-focused release.
6+
7+
- added Nav2-oriented launch flows with `nav2_lidar_localization.launch.py` and `nav2_navigation.launch.py`
8+
- added smoke and replay helpers including `run_nav2_demo_smoke`, `run_nav2_replay_smoke`, and `send_nav2_goal.py`
9+
- added occupancy map generation from PCD with `generate_occupancy_map_from_pcd.py`
10+
- added benchmarking and comparison helpers for rosbag-based localization evaluation
11+
- added local-map crop, twist-based prediction, borderline seed rejection gate, diagnostics, and replay-oriented utilities
12+
- fixed `NDT_OMP` runtime keep-alive issues seen in replay and fixed the shutdown-only `SIGINT` crash path
13+
- set the recommended Nav2 preset to `param/nav2_ndt_urban.yaml`
14+
15+
Known limitation at this release:
16+
17+
- long-duration urban replay robustness is improved enough for smoke and controlled validation, but not yet solved well enough to claim fully stable long-horizon operation in all cases

CMakeLists.txt

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.5)
2-
project(lidar_localization_ros2)
2+
project(lidar_localization_ros2 VERSION 1.0.0)
33

44
if(NOT CMAKE_C_STANDARD)
55
set(CMAKE_C_STANDARD 99)
@@ -15,6 +15,7 @@ find_package(ament_cmake REQUIRED)
1515
find_package(rclcpp_lifecycle REQUIRED)
1616
find_package(lifecycle_msgs REQUIRED)
1717
find_package(diagnostic_msgs REQUIRED)
18+
find_package(std_msgs REQUIRED)
1819
find_package(geometry_msgs REQUIRED)
1920
find_package(sensor_msgs REQUIRED)
2021
find_package(nav_msgs REQUIRED)
@@ -47,6 +48,7 @@ ament_target_dependencies(lidar_localization_component
4748
tf2_sensor_msgs
4849
tf2_eigen
4950
diagnostic_msgs
51+
std_msgs
5052
geometry_msgs
5153
sensor_msgs
5254
nav_msgs
@@ -55,12 +57,12 @@ ament_target_dependencies(lidar_localization_component
5557
)
5658

5759
if(small_gicp_FOUND)
58-
target_compile_definitions(lidar_localization_component PRIVATE LIDAR_LOCALIZATION_HAVE_SMALL_GICP=1)
60+
target_compile_definitions(lidar_localization_component PUBLIC LIDAR_LOCALIZATION_HAVE_SMALL_GICP=1)
5961
target_link_libraries(lidar_localization_component small_gicp::small_gicp)
6062
endif()
6163

6264
if(nav2_util_FOUND AND bondcpp_FOUND)
63-
target_compile_definitions(lidar_localization_component PRIVATE LIDAR_LOCALIZATION_HAVE_NAV2_BOND=1)
65+
target_compile_definitions(lidar_localization_component PUBLIC LIDAR_LOCALIZATION_HAVE_NAV2_BOND=1)
6466
ament_target_dependencies(lidar_localization_component nav2_util bondcpp)
6567
message(STATUS "Nav2 bond support enabled")
6668
endif()
@@ -101,23 +103,50 @@ install(TARGETS
101103
install(PROGRAMS
102104
scripts/benchmark_analyze_drift_window
103105
scripts/benchmark_compare_runs
106+
scripts/compare_nav2_reinit_supervisor_runs.py
107+
scripts/convert_boreas_sequence_to_rosbag2.py
104108
scripts/benchmark_extract_pose_reference_from_rosbag2
109+
scripts/benchmark_from_manifest
105110
scripts/benchmark_make_graph_dataset
106111
scripts/benchmark_pose_recorder
107112
scripts/benchmark_diagnostic_recorder
108113
scripts/benchmark_runner
109114
scripts/benchmark_sweep_localizer
110115
scripts/benchmark_eval_trajectory
116+
scripts/augment_pointcloud_intensity.py
117+
scripts/scaffold_mapless_public_dataset_bundle.py
111118
scripts/fetch_official_autoware_istanbul_dataset.sh
112119
scripts/fetch_official_hdl_localization_sample.sh
120+
scripts/generate_occupancy_map_from_pcd.py
113121
scripts/make_localization_comparison_report.py
122+
scripts/publish_cmd_vel_odom.py
123+
scripts/publish_identity_odom.py
124+
scripts/publish_odom_from_localization.py
125+
scripts/publish_odom_from_twist.py
126+
scripts/publish_pose_from_odom.py
127+
scripts/republish_initialpose_on_reinit.py
128+
scripts/relay_localization_inputs_with_current_stamp.py
114129
scripts/record_hdl_localization_outputs.py
130+
scripts/run_borderline_gate_experiments.py
131+
scripts/run_experiment_suite.py
132+
scripts/run_imu_guard_experiments.py
133+
scripts/run_nav2_reinit_supervisor_sweep.sh
134+
scripts/run_nav2_reinit_supervisor_regression.sh
135+
scripts/run_recovery_action_experiments.py
136+
scripts/run_reinit_trigger_experiments.py
137+
scripts/run_public_regression_suite.sh
138+
scripts/run_release_regression_suite.sh
139+
scripts/run_nav2_demo_smoke
140+
scripts/run_nav2_replay_smoke
141+
scripts/send_nav2_goal.py
142+
scripts/run_autoware_istanbul_60s_predictor_compare.sh
115143
scripts/run_hdl_localization_docker_benchmark.sh
116144
DESTINATION lib/${PROJECT_NAME})
117145

118146
install(DIRECTORY
119147
launch
120148
docs
149+
experiments
121150
param
122151
DESTINATION share/${PROJECT_NAME}/
123152
)

0 commit comments

Comments
 (0)