- fence_model.hpp: Line2D + FenceModel with wall positions - session_mapper: RANSAC yaw fit + percentile boundary + cone clustering - localizer: setFenceModel(), use calibrated walls in correctWithScanCV - main.cpp: CALIBRATING→READY state machine (30 scan frames) - /nav_metrics publisher (5Hz JSON metrics) - mppi_alive/min_cost exposed via LocalPlanner public members - endpoint-only path_align (EXACT-MPPI PathFollowCritic style) - adaptive exploration ratio based on survival rate
48 lines
1.3 KiB
CMake
48 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.8)
|
|
project(car_nav_lite)
|
|
|
|
if(NOT CMAKE_CXX_STANDARD)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
endif()
|
|
|
|
find_package(ament_cmake REQUIRED)
|
|
find_package(rclcpp REQUIRED)
|
|
find_package(std_msgs REQUIRED)
|
|
find_package(geometry_msgs REQUIRED)
|
|
find_package(nav_msgs REQUIRED)
|
|
find_package(sensor_msgs REQUIRED)
|
|
find_package(tf2 REQUIRED)
|
|
find_package(tf2_ros REQUIRED)
|
|
find_package(Eigen3 REQUIRED)
|
|
find_package(OpenCV REQUIRED)
|
|
|
|
set(INCLUDE_DIR include)
|
|
|
|
add_executable(nav_lite_node
|
|
src/main.cpp
|
|
src/grid_map.cpp
|
|
src/localizer.cpp
|
|
src/global_planner.cpp
|
|
src/local_planner.cpp
|
|
src/bt_executor.cpp
|
|
src/session_mapper.cpp
|
|
)
|
|
|
|
target_include_directories(nav_lite_node PRIVATE
|
|
${INCLUDE_DIR}
|
|
${EIGEN3_INCLUDE_DIRS}
|
|
)
|
|
|
|
ament_target_dependencies(nav_lite_node
|
|
rclcpp std_msgs geometry_msgs nav_msgs sensor_msgs tf2 tf2_ros
|
|
)
|
|
target_link_libraries(nav_lite_node ${OpenCV_LIBS})
|
|
|
|
add_executable(calib_check src/calib_check.cpp)
|
|
target_include_directories(calib_check PRIVATE ${INCLUDE_DIR} ${EIGEN3_INCLUDE_DIRS})
|
|
ament_target_dependencies(calib_check rclcpp geometry_msgs nav_msgs tf2 tf2_ros)
|
|
install(TARGETS nav_lite_node calib_check DESTINATION lib/${PROJECT_NAME})
|
|
install(DIRECTORY launch config maps DESTINATION share/${PROJECT_NAME})
|
|
|
|
ament_package()
|