Skip to content

Commit b33821f

Browse files
Merge pull request #184 from NVIDIA-ISAAC-ROS/release-3.2
Isaac ROS 3.2
2 parents 9745130 + 6a4d5c1 commit b33821f

38 files changed

+1059
-1681
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Ignore all pycache files
22
**/__pycache__/**
3+
.vscode

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ outdoor scenes.
101101

102102
## Performance
103103

104-
| Sample Graph<br/><br/> | Input Size<br/><br/> | Nova Carter<br/><br/> |
105-
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
106-
| [Multicam Visual SLAM Live Graph](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/benchmarks/isaac_ros_perceptor_nova_benchmark/scripts/isaac_ros_visual_slam_graph.py)<br/><br/><br/>4 Hawk Cameras<br/><br/> | 1200p<br/><br/><br/><br/> | [30.0 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_4_hawk_vslam_graph-carter_v2.4.json)<br/><br/><br/><br/> |
104+
| Sample Graph<br/><br/> | Input Size<br/><br/> | Nova Carter<br/><br/> |
105+
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
106+
| [Multicam Visual SLAM Live Graph](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/benchmarks/isaac_ros_perceptor_nova_benchmark/scripts/isaac_ros_visual_slam_graph.py)<br/><br/><br/>4 Hawk Cameras<br/><br/> | 1200p<br/><br/><br/><br/> | [30.1 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_4_hawk_vslam_graph-carter-v2.4-jp6.json)<br/><br/><br/><br/> |
107107

108108
> [!Note]
109109
> This benchmark can only be run on a [Nova Orin](https://developer.nvidia.com/isaac/nova-orin) compatible system.
@@ -129,4 +129,4 @@ this repository.
129129

130130
## Latest
131131

132-
Update 2024-09-26: Update for ZED compatibility
132+
Update 2024-12-10: Add support for multi-cam SLAM mode on stereo RGB cameras

isaac_ros_visual_slam/CMakeLists.txt

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,15 @@ endif()
2525
execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE)
2626
message( STATUS "Architecture: ${ARCHITECTURE}" )
2727

28+
find_package(Boost COMPONENTS thread REQUIRED)
2829
find_package(ament_cmake_auto REQUIRED)
2930
ament_auto_find_build_dependencies()
3031

3132
# Dependencies
32-
find_package(Eigen3 REQUIRED)
3333
find_package(Threads REQUIRED)
34+
find_package(Eigen3 REQUIRED)
3435
include_directories(${EIGEN3_INCLUDE_DIR})
36+
include_directories(${isaac_common_INCLUDE_DIRS})
3537

3638
# cuVSLAM (resolve path from ament_index)
3739
ament_index_get_resource(CUVSLAM_RELATIVE_PATH cuvslam isaac_ros_nitros)
@@ -44,6 +46,7 @@ foreach(PREFIX_PATH IN LISTS AMENT_INDEX_PREFIX_PATHS)
4446
endforeach()
4547

4648
include_directories(${CUVSLAM}/include)
49+
4750
add_library(cuvslam SHARED IMPORTED)
4851
set_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)
6366
rclcpp_components_register_nodes(visual_slam_node "nvidia::isaac_ros::visual_slam::VisualSlamNode")
6467
set(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
)
7073
target_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

7584
set_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

8289
if(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-
)
128117
endif()
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+
130125
ament_auto_package(INSTALL_TO_SHARE config launch rviz)

isaac_ros_visual_slam/include/isaac_ros_visual_slam/impl/message_buffer.hpp

Lines changed: 0 additions & 149 deletions
This file was deleted.

isaac_ros_visual_slam/include/isaac_ros_visual_slam/impl/message_stream_sequencer.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
#include <functional>
2323
#include <utility>
2424
#include <vector>
25-
#include "message_buffer.hpp"
25+
26+
#include "isaac_common/messaging/message_buffer.hpp"
2627

2728
namespace nvidia
2829
{
@@ -51,10 +52,9 @@ class MessageStreamSequencer
5152
void RegisterCallback(Callback callback);
5253

5354
private:
54-
// Buffer
55-
MessageBuffer<T1> stream1_buff_;
55+
isaac_common::messaging::MessageBuffer<T1> stream1_buff_;
5656
int64_t epsilon_stream1_;
57-
MessageBuffer<T2> stream2_buff_;
57+
isaac_common::messaging::MessageBuffer<T2> stream2_buff_;
5858
int64_t epsilon_stream2_;
5959
Callback registered_callback_ = [](const std::vector<T1> &, const T2 &) {};
6060
};

0 commit comments

Comments
 (0)