Skip to content

Commit a49a768

Browse files
Merge pull request #31 from NVIDIA-ISAAC-ROS/release-2.0.0
Isaac ROS 2.0.0
2 parents 7ec3bd3 + 6aa805b commit a49a768

31 files changed

+709
-510
lines changed

README.md

Lines changed: 85 additions & 243 deletions
Large diffs are not rendered by default.

isaac_ros_argus_camera/CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#
1616
# SPDX-License-Identifier: Apache-2.0
1717

18-
cmake_minimum_required(VERSION 3.23.2)
18+
cmake_minimum_required(VERSION 3.22.1)
1919
project(isaac_ros_argus_camera LANGUAGES C CXX)
2020

2121
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
@@ -28,8 +28,7 @@ message( STATUS "Architecture: ${ARCHITECTURE}" )
2828
find_package(ament_cmake_auto REQUIRED)
2929
ament_auto_find_build_dependencies()
3030

31-
# aarch64
32-
31+
ament_auto_add_library(argus_nitros_context SHARED src/argus_nitros_context.cpp)
3332
ament_auto_add_library(base_node SHARED src/argus_camera_node.cpp)
3433
ament_auto_add_library(mono_node SHARED src/argus_camera_mono_node.cpp)
3534
rclcpp_components_register_nodes(mono_node "nvidia::isaac_ros::argus::ArgusMonoNode")
@@ -39,10 +38,20 @@ ament_auto_add_library(stereo_node SHARED src/argus_camera_stereo_node.cpp)
3938
rclcpp_components_register_nodes(stereo_node "nvidia::isaac_ros::argus::ArgusStereoNode")
4039
set(node_plugins "${node_plugins}nvidia::isaac_ros::argus::ArgusStereoNode;$<TARGET_FILE:stereo_node>\n")
4140

41+
# Utils(for StereoCameraSynchronizer)
42+
add_subdirectory(gxf/utils)
43+
install(TARGETS gxf_utils DESTINATION share/${PROJECT_NAME}/gxf/lib/utils)
44+
4245
if(BUILD_TESTING)
4346
find_package(ament_lint_auto REQUIRED)
4447
ament_lint_auto_find_test_dependencies()
4548

49+
50+
# The FindPythonInterp and FindPythonLibs modules are removed
51+
if(POLICY CMP0148)
52+
cmake_policy(SET CMP0148 OLD)
53+
endif()
54+
4655
find_package(launch_testing_ament_cmake REQUIRED)
4756
# Only add camera tests if on Jetson platform
4857
if(${ARCHITECTURE} STREQUAL "aarch64")

isaac_ros_argus_camera/config/argus_camera_mono_node.yaml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,12 @@ components:
6868
module_id: 0
6969
mode: 0
7070
framerate: 30
71+
fsync_type: 1
7172
camera_type: 0
7273
output_format: 1
74+
camera_provider: global_camera_provider/global_camera_provider
7375
- type: nvidia::gxf::PeriodicSchedulingTerm
7476
parameters:
75-
transmitter: left_camera_output
7677
recess_period: 30Hz
7778
---
7879
name: splitter_left
@@ -142,7 +143,8 @@ components:
142143
pool: pool
143144
input_adapter: global/adapter
144145
output_adapter: global/adapter
145-
output_name: "image"
146+
input_name: "frame"
147+
output_name: "frame"
146148
stream: global/stream
147149
---
148150
name: global
@@ -214,11 +216,12 @@ components:
214216
components:
215217
- name: clock
216218
type: nvidia::gxf::RealtimeClock
217-
- type: nvidia::gxf::GreedyScheduler
219+
- type: nvidia::gxf::MultiThreadScheduler
218220
parameters:
219221
clock: clock
220222
stop_on_deadlock: false
221-
check_recession_period_us: 100
223+
check_recession_period_ms: 0.05
224+
worker_thread_number: 2
222225
- type: nvidia::gxf::JobStatistics
223226
parameters:
224227
clock: clock

isaac_ros_argus_camera/config/argus_camera_stereo_node.yaml

Lines changed: 61 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,12 @@ components:
7373
module_id: 0
7474
mode: 0
7575
framerate: 30
76+
fsync_type: 1
7677
camera_type: 1
7778
output_format: 1
79+
camera_provider: global_camera_provider/global_camera_provider
7880
- type: nvidia::gxf::PeriodicSchedulingTerm
7981
parameters:
80-
transmitter: left_camera_output
81-
recess_period: 30Hz
82-
- type: nvidia::gxf::PeriodicSchedulingTerm
83-
parameters:
84-
transmitter: right_camera_output
8582
recess_period: 30Hz
8683
---
8784
name: rectify_parameters
@@ -136,6 +133,52 @@ components:
136133
right_camera_output: right_transmitter
137134
allocator: allocator
138135
---
136+
name: stereo_camera_synchronizer
137+
components:
138+
- name: rx_left_camera
139+
type: nvidia::gxf::DoubleBufferReceiver
140+
parameters:
141+
capacity: 1
142+
policy: 0
143+
- type: nvidia::gxf::MessageAvailableSchedulingTerm
144+
parameters:
145+
receiver: rx_left_camera
146+
min_size: 1
147+
- name: rx_right_camera
148+
type: nvidia::gxf::DoubleBufferReceiver
149+
parameters:
150+
capacity: 1
151+
policy: 0
152+
- type: nvidia::gxf::MessageAvailableSchedulingTerm
153+
parameters:
154+
receiver: rx_right_camera
155+
min_size: 1
156+
- name: tx_left_camera
157+
type: nvidia::gxf::DoubleBufferTransmitter
158+
parameters:
159+
capacity: 1
160+
policy: 0
161+
- type: nvidia::gxf::DownstreamReceptiveSchedulingTerm
162+
parameters:
163+
transmitter: tx_left_camera
164+
min_size: 1
165+
- name: tx_right_camera
166+
type: nvidia::gxf::DoubleBufferTransmitter
167+
parameters:
168+
capacity: 1
169+
policy: 0
170+
- type: nvidia::gxf::DownstreamReceptiveSchedulingTerm
171+
parameters:
172+
transmitter: tx_right_camera
173+
min_size: 1
174+
- name: stereo_camera_synchronizer
175+
type: nvidia::isaac::StereoCameraSynchronizer
176+
parameters:
177+
rx_left_camera: rx_left_camera
178+
rx_right_camera: rx_right_camera
179+
tx_left_camera: tx_left_camera
180+
tx_right_camera: tx_right_camera
181+
---
139182
name: splitter_left
140183
components:
141184
- name: data_receiver
@@ -254,7 +297,7 @@ components:
254297
receiver: data_receiver
255298
min_size: 1
256299
- name: data_transmitter
257-
parameters:
300+
parameters:
258301
capacity: 30
259302
policy: 0
260303
type: nvidia::gxf::DoubleBufferTransmitter
@@ -273,6 +316,7 @@ components:
273316
pool: pool
274317
input_adapter: global/adapter
275318
output_adapter: global/adapter
319+
input_name: "frame"
276320
output_name: "frame"
277321
stream: global/stream
278322
---
@@ -364,6 +408,10 @@ components:
364408
- type: nvidia::gxf::Connection
365409
parameters:
366410
source: rectify_parameters/left_transmitter
411+
target: stereo_camera_synchronizer/rx_left_camera
412+
- type: nvidia::gxf::Connection
413+
parameters:
414+
source: stereo_camera_synchronizer/tx_left_camera
367415
target: splitter_left/data_receiver
368416
- type: nvidia::gxf::Connection
369417
parameters:
@@ -384,6 +432,10 @@ components:
384432
- type: nvidia::gxf::Connection
385433
parameters:
386434
source: rectify_parameters/right_transmitter
435+
target: stereo_camera_synchronizer/rx_right_camera
436+
- type: nvidia::gxf::Connection
437+
parameters:
438+
source: stereo_camera_synchronizer/tx_right_camera
387439
target: splitter_right/data_receiver
388440
- type: nvidia::gxf::Connection
389441
parameters:
@@ -397,11 +449,12 @@ components:
397449
components:
398450
- name: clock
399451
type: nvidia::gxf::RealtimeClock
400-
- type: nvidia::gxf::GreedyScheduler
452+
- type: nvidia::gxf::MultiThreadScheduler
401453
parameters:
402454
clock: clock
403455
stop_on_deadlock: false
404-
check_recession_period_us: 100
456+
check_recession_period_ms: 0.05
457+
worker_thread_number: 2
405458
- type: nvidia::gxf::JobStatistics
406459
parameters:
407460
clock: clock
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
%YAML 1.2
2+
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
3+
# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
# SPDX-License-Identifier: Apache-2.0
18+
---
19+
name: global_camera_provider
20+
components:
21+
- name: global_camera_provider
22+
type: nvidia::isaac::CameraProvider

isaac_ros_argus_camera/config/extension_specs.yaml

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

isaac_ros_argus_camera/gxf/AMENT_IGNORE

Whitespace-only changes.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
2+
# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
16+
# SPDX-License-Identifier: Apache-2.0
17+
18+
project(gxf_utils LANGUAGES C CXX)
19+
20+
# Dependencies
21+
find_package(CUDAToolkit REQUIRED)
22+
find_package (Eigen3 3.3 REQUIRED NO_MODULE)
23+
find_package(GXF ${ISAAC_ROS_GXF_VERSION} MODULE REQUIRED
24+
COMPONENTS
25+
std
26+
multimedia
27+
isaac_messages
28+
)
29+
find_package(yaml-cpp)
30+
31+
# Occupancy Grid Projector extension
32+
add_library(gxf_utils SHARED
33+
extensions/utils/utils.cpp
34+
extensions/utils/stereo_camera_synchronizer.cpp
35+
extensions/utils/stereo_camera_synchronizer.hpp
36+
)
37+
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
38+
target_link_libraries(gxf_utils
39+
PUBLIC
40+
Eigen3::Eigen
41+
GXF::std
42+
GXF::multimedia
43+
yaml-cpp
44+
GXF::isaac_messages
45+
)

0 commit comments

Comments
 (0)