@@ -25,13 +25,15 @@ endif()
2525execute_process (COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE)
2626message ( STATUS "Architecture: ${ARCHITECTURE} " )
2727
28+ find_package (Boost COMPONENTS thread REQUIRED)
2829find_package (ament_cmake_auto REQUIRED)
2930ament_auto_find_build_dependencies()
3031
3132# Dependencies
32- find_package (Eigen3 REQUIRED)
3333find_package (Threads REQUIRED)
34+ find_package (Eigen3 REQUIRED)
3435include_directories (${EIGEN3_INCLUDE_DIR} )
36+ include_directories (${isaac_common_INCLUDE_DIRS} )
3537
3638# cuVSLAM (resolve path from ament_index)
3739ament_index_get_resource(CUVSLAM_RELATIVE_PATH cuvslam isaac_ros_nitros)
@@ -44,6 +46,7 @@ foreach(PREFIX_PATH IN LISTS AMENT_INDEX_PREFIX_PATHS)
4446endforeach ()
4547
4648include_directories (${CUVSLAM} /include )
49+
4750add_library (cuvslam SHARED IMPORTED )
4851set_property (TARGET cuvslam PROPERTY IMPORTED_LOCATION ${CUVSLAM} /lib/libcuvslam.so)
4952
@@ -59,7 +62,7 @@ ament_auto_add_library(
5962 src/impl/visual_slam_impl.cpp
6063 src/impl/viz_helper.cpp
6164)
62- target_link_libraries (visual_slam_node cuvslam)
65+ target_link_libraries (visual_slam_node cuvslam Boost::thread )
6366rclcpp_components_register_nodes(visual_slam_node "nvidia::isaac_ros::visual_slam::VisualSlamNode" )
6467set (node_plugins "${node_plugins} nvidia::isaac_ros::visual_slam::VisualSlamNode;$<TARGET_FILE:visual_slam_node>\n " )
6568
@@ -69,15 +72,19 @@ ament_auto_add_executable(${PROJECT_NAME}
6972)
7073target_link_libraries (${PROJECT_NAME} visual_slam_node)
7174
75+ # API launcher executable
76+ install (PROGRAMS
77+ ${CUVSLAM} /lib/cuvslam_api_launcher
78+ DESTINATION lib/${PROJECT_NAME}
79+ )
80+
7281# Install cuVSLAM
73- install (DIRECTORY ${CUVSLAM} /lib DESTINATION share/cuvslam )
82+ install (FILES ${CUVSLAM} /lib/libcuvslam.so DESTINATION lib )
7483
7584set_target_properties (visual_slam_node PROPERTIES
7685 BUILD_WITH_INSTALL_RPATH TRUE
7786 BUILD_RPATH_USE_ORIGIN TRUE
78- INSTALL_RPATH_USE_LINK_PATH TRUE
79- INSTALL_RPATH "$ORIGIN/../share/cuvslam" )
80-
87+ INSTALL_RPATH_USE_LINK_PATH TRUE )
8188
8289if (BUILD_TESTING)
8390 find_package (ament_lint_auto REQUIRED)
@@ -89,22 +96,16 @@ if(BUILD_TESTING)
8996 endif ()
9097
9198 find_package (launch_testing_ament_cmake REQUIRED)
92- add_launch_test(test /isaac_ros_visual_slam_pol_single_cam_imu.py)
9399 add_launch_test(test /isaac_ros_visual_slam_pol_multi_cam_imu.py)
94- add_launch_test(test /isaac_ros_visual_slam_srv_reset .py)
100+ add_launch_test(test /isaac_ros_visual_slam_pol_single_cam_imu .py)
95101 add_launch_test(test /isaac_ros_visual_slam_srv_get_all_poses.py)
102+ add_launch_test(test /isaac_ros_visual_slam_srv_load_map.py)
103+ # TODO(lgulich): Enable this test when we have better test data.
104+ # add_launch_test(test/isaac_ros_visual_slam_srv_localize_in_map.py)
105+ add_launch_test(test /isaac_ros_visual_slam_srv_reset.py)
106+ add_launch_test(test /isaac_ros_visual_slam_srv_save_map.py)
96107 add_launch_test(test /isaac_ros_visual_slam_srv_set_slam_pose.py)
97108
98- find_package (ament_cmake_gtest REQUIRED)
99- ament_add_gtest(${PROJECT_NAME} _test_message_buffer test /test_message_buffer.cpp)
100- target_include_directories (${PROJECT_NAME} _test_message_buffer PUBLIC
101- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
102- $<INSTALL_INTERFACE:include >
103- )
104- ament_target_dependencies(${PROJECT_NAME} _test_message_buffer
105- std_msgs
106- )
107-
108109 ament_add_gtest(${PROJECT_NAME} _test_message_stream_sequencer test /test_message_stream_sequencer.cpp)
109110 target_include_directories (${PROJECT_NAME} _test_message_stream_sequencer PUBLIC
110111 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
@@ -113,18 +114,12 @@ if(BUILD_TESTING)
113114 ament_target_dependencies(${PROJECT_NAME} _test_message_stream_sequencer
114115 std_msgs
115116 )
116-
117- ament_add_gtest(${PROJECT_NAME} _test_message_stream_synchronizer
118- test /test_message_stream_synchronizer.cpp
119- )
120- target_include_directories (${PROJECT_NAME} _test_message_stream_synchronizer PUBLIC
121- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
122- $<INSTALL_INTERFACE:include >
123- )
124- ament_target_dependencies(${PROJECT_NAME} _test_message_stream_synchronizer
125- rclcpp
126- geometry_msgs
127- )
128117endif ()
129118
119+
120+ # Embed versioning information into installed files
121+ ament_index_get_resource(ISAAC_ROS_COMMON_CMAKE_PATH isaac_ros_common_cmake_path isaac_ros_common)
122+ include ("${ISAAC_ROS_COMMON_CMAKE_PATH} /isaac_ros_common-version-info.cmake" )
123+ generate_version_info(${PROJECT_NAME} )
124+
130125ament_auto_package(INSTALL_TO_SHARE config launch rviz)
0 commit comments