Skip to content

Commit 0b2ecb3

Browse files
Merge pull request #24 from NVIDIA-ISAAC-ROS/release-3.0
Isaac ROS 3.0.1
2 parents e3f9715 + f7e2eaa commit 0b2ecb3

File tree

7 files changed

+57
-41
lines changed

7 files changed

+57
-41
lines changed

README.md

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,40 @@ Learn how to use this package by watching our on-demand webinar:
1515

1616
## Overview
1717

18-
[Isaac ROS DNN Stereo Depth](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_stereo_depth) provides a GPU-accelerated package for DNN-based
19-
stereo disparity. Stereo disparity is calculated from a
20-
time-synchronized image pair sourced from a stereo camera and is used to
21-
produce a depth image or a point cloud for a scene. The `isaac_ros_ess`
22-
package uses the [ESS DNN
23-
model](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/isaac/models/dnn_stereo_disparity)
24-
to perform stereo depth estimation via continuous disparity prediction.
25-
Given a pair of stereo input images, the package generates a disparity
26-
map of the left input image.
18+
The vision depth perception problem is generally useful in many fields of robotics such as estimating
19+
the pose of a robotic arm in an object manipulation task, estimating distance of static or moving targets
20+
in autonomous robot navigation, tracking targets in delivery robots and so on.
21+
[Isaac ROS DNN Stereo Depth](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_stereo_depth) is targeted at two Isaac applications,
22+
Isaac Manipulator and Isaac Perceptor. In Isaac Manipulator application, ESS is deployed in
23+
[Isaac ROS cuMotion](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_cumotion/index.html)
24+
package as a plug-in node to provide depth perception maps for robot arm motion planning and control.
25+
In this scenario, multi-camera stereo streams of industrial robot arms on a table task are passed to ESS to
26+
obtain corresponding depth streams. The depth streams are used to segment the relative distance of robot arms from
27+
corresponding objects on the table; thus providing signals for collision avoidance and fine-grain control.
28+
Similarly, the Isaac Perceptor application uses several Isaac ROS packages, namely,
29+
[Isaac ROS Nova](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nova/index.html),
30+
[Isaac ROS Visual Slam](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_visual_slam/index.html),
31+
[Isaac ROS Stereo Depth (ESS)](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_dnn_stereo_depth/index.html),
32+
[Isaac ROS Nvblox](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nvblox/index.html)
33+
and [Isaac ROS Image Pipeline](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_image_pipeline/index.html).
34+
35+
ESS is deployed in Isaac Perceptor to enable Nvblox to create
36+
3D voxelized images of the robot surroundings. Specifically, the Nova developer suite provides 3x stereo-camera
37+
streams to Isaac Perceptor. Each stream corresponds to the front, left, and right cameras.
38+
In both Isaac Manipulator and Isaac Perceptor, a camera-specific image processing pipeline consisting of
39+
GPU-accelerated operations, provides rectification and undistortion of the input stereo images. All stereo stream image
40+
pair are time synchronized before before passing them to ESS. ESS node outputs corresponding depth maps for all three
41+
preprocessed image streams and combines the depth images with motion signals provided by cuVSLAM module.
42+
The combined depth and motion integrated signals are fed to Nvblox module to produce a dense 3D volumetric scene
43+
reconstruction of the surrounding scene.
2744

2845
<div align="center"><a class="reference internal image-reference" href="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_dnn_stereo_depth/isaac_ros_ess_nodegraph.png/"><img alt="image" src="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_dnn_stereo_depth/isaac_ros_ess_nodegraph.png/" width="800px"/></a></div>
2946

30-
ESS is used in a graph of nodes to provide a disparity prediction from an input left and right stereo image pair.
31-
Images to ESS need to be rectified and resized to the appropriate input resolution.
32-
The aspect ratio of the image is recommended to be maintained, so the image may need to be cropped and resized to maintain the input aspect ratio.
33-
The graph for DNN encode, DNN inference, and DNN decode is included in the ESS node.
34-
Inference is performed using TensorRT, as the ESS DNN model is designed with optimizations supported by TensorRT.
35-
ESS node is agnostic to the model dimension and disparity output has the same dimension as the ESS model.
47+
Above, ESS node is used in a graph of nodes to provide a disparity prediction from an input left and right stereo image pair.
48+
The rectify and resize nodes pre-process the left and right frames to the appropriate resolution.
49+
The aspect ratio of the image is recommended to be maintained to avoid degrading the depth output quality.
50+
The graph for DNN encode, DNN inference, and DNN decode is included in the ESS node. Inference is performed using
51+
TensorRT, as the ESS DNN model is designed with optimizations supported by TensorRT.
3652

3753
## Isaac ROS NITROS Acceleration
3854

gxf_isaac_ess/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
2121
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
2222
<package format="3">
2323
<name>gxf_isaac_ess</name>
24-
<version>3.0.0</version>
24+
<version>3.0.1</version>
2525
<description>Disparity GXF extension.</description>
2626

2727
<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>

gxf_isaac_video_buffer_utils/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
2121
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
2222
<package format="3">
2323
<name>gxf_isaac_video_buffer_utils</name>
24-
<version>3.0.0</version>
24+
<version>3.0.1</version>
2525
<description>GXF extension containing miscellaneous utility components for video buffer.</description>
2626

2727
<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>

isaac_ros_ess/config/isaac_ros_ess_isaac_sim.rviz

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Panels:
77
- /Global Options1
88
- /Status1
99
Splitter Ratio: 0.5
10-
Tree Height: 335
10+
Tree Height: 352
1111
- Class: rviz_common/Selection
1212
Name: Selection
1313
- Class: rviz_common/Tool Properties
@@ -93,7 +93,7 @@ Visualization Manager:
9393
Durability Policy: Volatile
9494
History Policy: Keep Last
9595
Reliability Policy: Reliable
96-
Value: /front_stereo_camera/left_rgb/image_resize
96+
Value: /front_stereo_camera/left/image_resize
9797
Value: true
9898
- Class: rviz_default_plugins/Image
9999
Enabled: true
@@ -107,7 +107,7 @@ Visualization Manager:
107107
Durability Policy: Volatile
108108
History Policy: Keep Last
109109
Reliability Policy: Reliable
110-
Value: /front_stereo_camera/left_rgb/image_resize
110+
Value: /front_stereo_camera/right/image_resize
111111
Value: true
112112
Enabled: true
113113
Global Options:
@@ -178,12 +178,12 @@ Visualization Manager:
178178
Window Geometry:
179179
Displays:
180180
collapsed: false
181-
Height: 1066
181+
Height: 1099
182182
Hide Left Dock: false
183183
Hide Right Dock: false
184184
Left Image:
185185
collapsed: false
186-
QMainWindow State: 000000ff00000000fd0000000400000000000001b300000390fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000001d8000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb00000014004c00650066007400200049006d0061006700650100000219000000d90000002800fffffffb000000160052006900670068007400200049006d00610067006501000002f8000000d30000002800ffffff000000010000010000000390fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b00000390000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d00650100000000000007800000024400fffffffb0000000800540069006d00650100000000000004500000000000000000000004c10000039000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
186+
QMainWindow State: 000000ff00000000fd0000000400000000000001b3000003b1fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000001e9000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb00000014004c00650066007400200049006d006100670065010000022a000000e10000002800fffffffb000000160052006900670068007400200049006d0061006700650100000311000000db0000002800ffffff0000000100000100000003b1fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b000003b1000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d00650100000000000007800000025300fffffffb0000000800540069006d00650100000000000004500000000000000000000004c1000003b100000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
187187
Right Image:
188188
collapsed: false
189189
Selection:
@@ -196,4 +196,4 @@ Window Geometry:
196196
collapsed: false
197197
Width: 1920
198198
X: 0
199-
Y: 267
199+
Y: 240

isaac_ros_ess/launch/isaac_ros_ess_isaac_sim.launch.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ def generate_launch_description():
5050
'encoding_desired': 'rgb8',
5151
}],
5252
remappings=[
53-
('camera_info', 'front_stereo_camera/right_rgb/camerainfo'),
54-
('image', 'front_stereo_camera/right_rgb/image_raw'),
55-
('resize/camera_info', 'front_stereo_camera/right_rgb/camerainfo_resize'),
56-
('resize/image', 'front_stereo_camera/right_rgb/image_resize')]
53+
('camera_info', 'front_stereo_camera/right/camera_info'),
54+
('image', 'front_stereo_camera/right/image_rect_color'),
55+
('resize/camera_info', 'front_stereo_camera/right/camera_info_resize'),
56+
('resize/image', 'front_stereo_camera/right/image_resize')]
5757
)
5858

5959
image_resize_node_left = ComposableNode(
@@ -66,10 +66,10 @@ def generate_launch_description():
6666
'encoding_desired': 'rgb8',
6767
}],
6868
remappings=[
69-
('camera_info', 'front_stereo_camera/left_rgb/camerainfo'),
70-
('image', 'front_stereo_camera/left_rgb/image_raw'),
71-
('resize/camera_info', 'front_stereo_camera/left_rgb/camerainfo_resize'),
72-
('resize/image', 'front_stereo_camera/left_rgb/image_resize')]
69+
('camera_info', 'front_stereo_camera/left/camera_info'),
70+
('image', 'front_stereo_camera/left/image_rect_color'),
71+
('resize/camera_info', 'front_stereo_camera/left/camera_info_resize'),
72+
('resize/image', 'front_stereo_camera/left/image_resize')]
7373
)
7474

7575
disparity_node = ComposableNode(
@@ -80,11 +80,11 @@ def generate_launch_description():
8080
'threshold': threshold,
8181
'input_layer_width': 960,
8282
'input_layer_height': 576}],
83-
remappings=[('left/image_rect', 'front_stereo_camera/left_rgb/image_resize'),
83+
remappings=[('left/image_rect', 'front_stereo_camera/left/image_resize'),
8484
('left/camera_info',
85-
'front_stereo_camera/left_rgb/camerainfo_resize'),
86-
('right/image_rect', 'front_stereo_camera/right_rgb/image_resize'),
87-
('right/camera_info', 'front_stereo_camera/right_rgb/camerainfo_resize')])
85+
'front_stereo_camera/left/camera_info_resize'),
86+
('right/image_rect', 'front_stereo_camera/right/image_resize'),
87+
('right/camera_info', 'front_stereo_camera/right/camera_info_resize')])
8888

8989
pointcloud_node = ComposableNode(
9090
package='isaac_ros_stereo_image_proc',
@@ -93,10 +93,10 @@ def generate_launch_description():
9393
'use_color': True,
9494
'unit_scaling': 1.0
9595
}],
96-
remappings=[('left/image_rect_color', 'front_stereo_camera/left_rgb/image_resize'),
96+
remappings=[('left/image_rect_color', 'front_stereo_camera/left/image_resize'),
9797
('left/camera_info',
98-
'front_stereo_camera/left_rgb/camerainfo_resize'),
99-
('right/camera_info', 'front_stereo_camera/right_rgb/camerainfo_resize')])
98+
'front_stereo_camera/left/camera_info_resize'),
99+
('right/camera_info', 'front_stereo_camera/right/camera_info_resize')])
100100

101101
container = ComposableNodeContainer(
102102
name='disparity_container',

isaac_ros_ess/package.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
2121
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
2222
<package format="3">
2323
<name>isaac_ros_ess</name>
24-
<version>3.0.0</version>
24+
<version>3.0.1</version>
2525
<description>DNN Stereo Disparity Network for Isaac ROS</description>
2626

2727
<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
@@ -42,7 +42,7 @@ SPDX-License-Identifier: Apache-2.0
4242
<depend>gxf_isaac_messages</depend>
4343
<depend>gxf_isaac_messages_throttler</depend>
4444
<depend>isaac_ros_ess_models_install</depend>
45-
45+
4646
<build_depend>isaac_ros_common</build_depend>
4747
<build_depend>gxf_isaac_gems</build_depend>
4848

isaac_ros_ess_models_install/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
2121
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
2222
<package format="3">
2323
<name>isaac_ros_ess_models_install</name>
24-
<version>3.0.0</version>
24+
<version>3.0.1</version>
2525
<description>Scripts for installing ESS models</description>
2626

2727
<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>

0 commit comments

Comments
 (0)