This commit is contained in:
2026-01-13 14:30:31 +07:00
parent 78b11b60fe
commit acc6fd38ab
14 changed files with 335 additions and 57 deletions

View File

@@ -23,6 +23,7 @@ find_package(catkin REQUIRED COMPONENTS
robot_nav_2d_utils
move_base_core
robot_cpp
robot_nav_msgs
)
## System dependencies are found with CMake's conventions
@@ -40,7 +41,7 @@ find_package(PkgConfig)
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
INCLUDE_DIRS include
LIBRARIES amr_control
LIBRARIES amr_control amr_control_converter amr_control_publisher amr_control_subscriber
CATKIN_DEPENDS
geometry_msgs
loc_core
@@ -66,6 +67,18 @@ include_directories(
)
## Declare a C++ library
add_library(${PROJECT_NAME}_converter src/tf_converter.cpp src/sensor_converter.cpp)
add_dependencies(${PROJECT_NAME}_converter ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(${PROJECT_NAME}_converter ${catkin_LIBRARIES} ${Boost_LIBRARIES})
add_library(${PROJECT_NAME}_publisher src/amr_publiser.cpp)
add_dependencies(${PROJECT_NAME}_publisher ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(${PROJECT_NAME}_publisher ${catkin_LIBRARIES} ${Boost_LIBRARIES})
add_library(${PROJECT_NAME}_subscriber src/amr_subcriber.cpp)
add_dependencies(${PROJECT_NAME}_subscriber ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(${PROJECT_NAME}_subscriber ${catkin_LIBRARIES} ${Boost_LIBRARIES})
add_library(${PROJECT_NAME}
src/amr_control.cpp
src/amr_monitor.cpp
@@ -75,18 +88,14 @@ add_library(${PROJECT_NAME}
src/amr_make_plan_with_order.cpp
)
add_library(${PROJECT_NAME}_converter src/tf_converter.cpp src/sensor_converter.cpp src/amr_publiser.cpp)
add_dependencies(${PROJECT_NAME}_converter ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(${PROJECT_NAME}_converter ${catkin_LIBRARIES} ${Boost_LIBRARIES})
## Add cmake target dependencies of the library
## as an example, code may need to be generated before libraries
## either from message generation or dynamic reconfigure
add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_converter_EXPORTED_TARGETS} ${${PROJECT_NAME}_publisher_EXPORTED_TARGETS} ${${PROJECT_NAME}_subscriber_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
# Fix circular RPATH dependency: disable automatic RPATH detection to avoid cycle warnings
# Libraries will be found via LD_LIBRARY_PATH or system paths
set_target_properties(${PROJECT_NAME} PROPERTIES
set_target_properties(${PROJECT_NAME} ${PROJECT_NAME}_converter ${PROJECT_NAME}_publisher ${PROJECT_NAME}_subscriber PROPERTIES
SKIP_BUILD_RPATH TRUE
BUILD_WITH_INSTALL_RPATH FALSE
INSTALL_RPATH_USE_LINK_PATH FALSE
@@ -123,6 +132,8 @@ set_target_properties(${PROJECT_NAME}_node PROPERTIES
## Specify libraries to link a library or executable target against
target_link_libraries(${PROJECT_NAME}
${PROJECT_NAME}_converter
${PROJECT_NAME}_publisher
${PROJECT_NAME}_subscriber
${FreeOpcUa_LIBRARIES}
${catkin_LIBRARIES}
${Boost_LIBRARIES}
@@ -130,7 +141,6 @@ target_link_libraries(${PROJECT_NAME}
target_link_libraries(${PROJECT_NAME}_node
${PROJECT_NAME}
${PROJECT_NAME}_converter
${catkin_LIBRARIES}
${Boost_LIBRARIES}
)
@@ -158,7 +168,7 @@ install(TARGETS ${PROJECT_NAME}_node
## Mark libraries for installation
## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
install(TARGETS ${PROJECT_NAME}
install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_converter ${PROJECT_NAME}_publisher ${PROJECT_NAME}_subscriber
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}