Skip to content

Commit 380b92d

Browse files
authored
Merge pull request #4 from NVIDIA-ISAAC-ROS/release-dp-2
Isaac ROS 0.20.0 (DP2)
2 parents 372e1c3 + 327a472 commit 380b92d

39 files changed

+1186
-219
lines changed

CONTRIBUTING.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Isaac ROS Contribution Rules
2+
3+
Any contribution that you make to this repository will
4+
be under the Apache 2 License, as dictated by that
5+
[license](http://www.apache.org/licenses/LICENSE-2.0.html):
6+
7+
> **5. Submission of Contributions.** Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
8+
9+
Contributors must sign-off each commit by adding a `Signed-off-by: ...`
10+
line to commit messages to certify that they have the right to submit
11+
the code they are contributing to the project according to the
12+
[Developer Certificate of Origin (DCO)](https://developercertificate.org/).
13+
14+
[//]: # (202201002)

LICENSE

Lines changed: 201 additions & 65 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 78 additions & 13 deletions
Large diffs are not rendered by default.

docs/tutorial-ess-realsense.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Tutorial for DNN Stereo Depth Estimation using a RealSense camera
2+
3+
<div align="center"><img src="../resources/realsense_example.png"/></div>
4+
5+
## Overview
6+
7+
This tutorial demonstrates how to perform stereo-camera-based reconstruction using a [RealSense](https://www.intel.com/content/www/us/en/architecture-and-technology/realsense-overview.html) camera and [isaac_ros_ess](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_stereo_disparity).
8+
9+
> Note: This tutorial has been tested with a RealSense D455/D435 camera connected to a Jetson Xavier AGX, as well as an x86 PC with an NVIDIA graphics card.
10+
11+
## Tutorial Walkthrough
12+
13+
1. Complete the [realsense setup tutorial](https://github.com/NVIDIA-ISAAC-ROS/.github/blob/main/profile/realsense-setup.md).
14+
2. Complete steps 1-2 described in the [Quickstart Guide](../README.md#quickstart).
15+
3. Open a new terminal and launch the Docker container using the `run_dev.sh` script:
16+
17+
```bash
18+
cd ~/workspaces/isaac_ros-dev/src/isaac_ros_common && \
19+
./scripts/run_dev.sh
20+
```
21+
22+
4. Build and source the workspace:
23+
24+
```bash
25+
cd /workspaces/isaac_ros-dev && \
26+
colcon build --symlink-install && \
27+
source install/setup.bash
28+
```
29+
30+
5. Run the launch file, which launches the example and waits for 10 seconds:
31+
32+
```bash
33+
ros2 launch isaac_ros_ess isaac_ros_ess_realsense.launch.py engine_file_path:=/workspaces/isaac_ros-dev/src/isaac_ros_dnn_stereo_disparity/resources/ess.engine
34+
```

docs/tutorial-isaac-sim.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Tutorial for DNN Stereo Depth Estimation with Isaac Sim
2+
3+
<div align="center"><img src="../resources/Rviz.png" width="800px"/></div>
4+
5+
## Overview
6+
7+
This tutorial walks you through a pipeline to [estimate depth](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_stereo_disparity) with stereo images from Isaac Sim.
8+
9+
## Tutorial Walkthrough
10+
11+
1. Complete steps 1-7 listed in the [Quickstart section](../README.md#quickstart) of the main README.
12+
2. Install and launch Isaac Sim following the steps in the [Isaac ROS Isaac Sim Setup Guide](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docs/isaac-sim-sil-setup.md)
13+
3. Open the Isaac ROS Common USD scene (using the **Content** window) located at:
14+
15+
`omniverse://localhost/NVIDIA/Assets/Isaac/2022.1/Isaac/Samples/ROS2/Scenario/carter_warehouse_apriltags_worker.usd`.
16+
17+
Wait for the scene to load completely.
18+
> **Note:** To use a different server, replace `localhost` with `<your_nucleus_server>`
19+
4. Go to the **Stage** tab and select `/World/Carter_ROS/ROS_Cameras/ros2_create_camera_right_info`. In the **Property** tab, locate the **Compute Node -> Inputs -> stereoOffset -> X** value and change it from `0` to `-175.92`.
20+
<div align="center"><img src="../resources/Isaac_sim_set_stereo_offset.png" width="500px"/></div>
21+
22+
5. Enable the right camera for a stereo image pair. Go to the **Stage** tab and select `/World/Carter_ROS/ROS_Cameras/enable_camera_right`, then tick the **Condition** checkbox.
23+
<div align="center"><img src="../resources/Isaac_sim_enable_stereo.png" width="500px"/></div>
24+
6. Press **Play** to start publishing data from the Isaac Sim application.
25+
<div align="center"><img src="../resources/Isaac_sim_play.png" width="800px"/></div>
26+
7. Open a second terminal and attach to the container:
27+
28+
```bash
29+
cd ~/workspaces/isaac_ros-dev/src/isaac_ros_common && \
30+
./scripts/run_dev.sh
31+
```
32+
33+
8. In the second terminal, start the `isaac_ros_ess` node using the launch files:
34+
35+
```bash
36+
ros2 launch isaac_ros_ess isaac_ros_ess_isaac_sim.launch.py engine_file_path:=/workspaces/isaac_ros-dev/src/isaac_ros_dnn_stereo_disparity/resources/ess.engine
37+
```
38+
39+
9. Optionally, you can run the visualizer script to visualize the disparity image.
40+
41+
```bash
42+
ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py
43+
```
44+
45+
<div align="center"><img src="../resources/Visualizer_isaac_sim.png" width="500px"/></div>

docs/tutorial-nitros-graph.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ If you have an [Argus-compatible camera](https://github.com/NVIDIA-ISAAC-ROS/isa
1414
To start the graph, follow the steps below:
1515

1616
1. Follow the [Quickstart section](../README.md#quickstart) up to step 6 in the main README.
17-
17+
1818
2. Outside the container, clone an additional repository required to run Argus-compatible camera under `~/workspaces/isaac_ros-dev/src`.
1919

2020
```bash
@@ -25,17 +25,21 @@ To start the graph, follow the steps below:
2525
git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_argus_camera
2626
```
2727

28-
3. Inside the container, build and source the workspace:
28+
3. Inside the container, build and source the workspace:
29+
2930
```bash
3031
cd /workspaces/isaac_ros-dev && \
3132
colcon build && \
3233
source install/setup.bash
3334
```
34-
4. (Optional) Run tests to verify complete and correct installation:
35+
36+
4. (Optional) Run tests to verify complete and correct installation:
37+
3538
```bash
3639
colcon test --executor sequential
3740
```
3841

3942
5. Launch ESS Disparity Node:
43+
4044
```bash
4145
ros2 launch isaac_ros_ess isaac_ros_argus_ess.launch.py engine_file_path:=/workspaces/isaac_ros-dev/src/isaac_ros_dnn_stereo_disparity/resources/ess.engine

docs/visualize-image.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,28 @@ In addition to supporting the ROS Bag input type, the `isaac_ros_ess_visualizer.
77
1. Complete the [Quickstart](../README.md#quickstart) guide first.
88

99
2. Pull the example data:
10+
1011
```bash
1112
cd ~/workspaces/isaac_ros-dev/src/isaac_ros_dnn_stereo_disparity && \
1213
git lfs pull -X "" -I "resources/examples"
1314
```
1415

1516
3. Launch the ESS Disparity Node:
17+
1618
```bash
1719
ros2 launch isaac_ros_ess isaac_ros_ess.launch.py engine_file_path:=/workspaces/isaac_ros-dev/src/isaac_ros_dnn_stereo_disparity/resources/ess.engine
1820
```
1921

2022
4. Visualize and validate the output of the package:
23+
2124
```bash
2225
ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py --raw_inputs
2326
```
27+
2428
<div align="center"><img src="../resources/output_raw.png" width="600px" title="Output of ESS Disparity Node."/></div>
2529

2630
5. Try your own examples:
31+
2732
```bash
2833
ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py --raw_inputs \
2934
--left_image_path '<Absolute path to your left image>' \

isaac_ros_ess/CMakeLists.txt

Lines changed: 26 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
1-
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
1+
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
2+
# Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
23
#
3-
# NVIDIA CORPORATION and its licensors retain all intellectual property
4-
# and proprietary rights in and to this software, related documentation
5-
# and any modifications thereto. Any use, reproduction, disclosure or
6-
# distribution of this software and related documentation without an express
7-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
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
817

9-
cmake_minimum_required(VERSION 3.5)
18+
cmake_minimum_required(VERSION 3.8)
1019
project(isaac_ros_ess LANGUAGES C CXX)
1120

1221

@@ -23,10 +32,10 @@ endif()
2332
if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
2433
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
2534
endif()
26-
message( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" )
35+
message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
2736

2837
execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE)
29-
message( STATUS "Architecture: ${ARCHITECTURE}" )
38+
message(STATUS "Architecture: ${ARCHITECTURE}")
3039

3140
find_package(ament_cmake_auto REQUIRED)
3241
ament_auto_find_build_dependencies()
@@ -38,14 +47,14 @@ target_compile_definitions(isaac_ros_ess_node
3847
PRIVATE "COMPOSITION_BUILDING_DLL"
3948
)
4049
target_link_libraries(isaac_ros_ess_node)
41-
rclcpp_components_register_node(isaac_ros_ess_node
42-
PLUGIN "nvidia::isaac_ros::dnn_stereo_disparity::ESSDisparityNode"
43-
EXECUTABLE isaac_ros_ess)
50+
rclcpp_components_register_nodes(isaac_ros_ess_node "nvidia::isaac_ros::dnn_stereo_disparity::ESSDisparityNode")
51+
set(node_plugins "${node_plugins}nvidia::isaac_ros::dnn_stereo_disparity::ESSDisparityNode;$<TARGET_FILE:isaac_ros_ess_node>\n")
4452

45-
# Install config directory
46-
install(
47-
DIRECTORY config
48-
DESTINATION share/${PROJECT_NAME}
53+
# Install visualizer python scripts
54+
55+
install(PROGRAMS
56+
scripts/isaac_ros_ess_visualizer.py
57+
DESTINATION lib/${PROJECT_NAME}
4958
)
5059

5160
# Install package executable
@@ -55,37 +64,12 @@ install(TARGETS isaac_ros_ess_node
5564
RUNTIME DESTINATION bin
5665
)
5766

58-
# Install extensions directory
59-
if( ${ARCHITECTURE} STREQUAL "x86_64" )
60-
install(DIRECTORY gxf/lib/gxf_x86_64/ DESTINATION share/${PROJECT_NAME}/gxf)
61-
elseif( ${ARCHITECTURE} STREQUAL "aarch64" )
62-
install(DIRECTORY gxf/lib/gxf_jetpack50/ DESTINATION share/${PROJECT_NAME}/gxf)
63-
endif()
64-
6567
if(BUILD_TESTING)
6668
find_package(ament_lint_auto REQUIRED)
67-
68-
# Ignore copyright notices since we use custom NVIDIA Isaac ROS Software License
69-
set(ament_cmake_copyright_FOUND TRUE)
70-
7169
ament_lint_auto_find_test_dependencies()
7270

7371
find_package(launch_testing_ament_cmake REQUIRED)
7472
add_launch_test(test/isaac_ros_ess_test.py TIMEOUT "300")
7573
endif()
7674

77-
# Launch/Visualizer python scripts
78-
ament_python_install_package(${PROJECT_NAME})
79-
# Install Python executables
80-
install(PROGRAMS
81-
launch/isaac_ros_ess.launch.py
82-
launch/isaac_ros_argus_ess.launch.py
83-
DESTINATION share/${PROJECT_NAME}
84-
)
85-
86-
install(PROGRAMS
87-
scripts/isaac_ros_ess_visualizer.py
88-
DESTINATION lib/${PROJECT_NAME}
89-
)
90-
91-
ament_auto_package()
75+
ament_auto_package(INSTALL_TO_SHARE launch config)

isaac_ros_ess/config/ess_inference.yaml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
%YAML 1.2
2-
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
2+
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
3+
# Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
34
#
4-
# NVIDIA CORPORATION and its licensors retain all intellectual property
5-
# and proprietary rights in and to this software, related documentation
6-
# and any modifications thereto. Any use, reproduction, disclosure or
7-
# distribution of this software and related documentation without an express
8-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
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
918
---
1019
name: sync
1120
components:

0 commit comments

Comments
 (0)