Skip to content

Commit 7c30f52

Browse files
Merge pull request #16 from NVIDIA-ISAAC-ROS/release-dp3
Isaac ROS 0.30.0 (DP3)
2 parents 461ed11 + a680043 commit 7c30f52

22 files changed

+1293
-64
lines changed

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# Ignore Python files in linguist
2+
*.py linguist-detectable=false
3+
14
# Images
25
*.gif filter=lfs diff=lfs merge=lfs -text
36
*.jpg filter=lfs diff=lfs merge=lfs -text
@@ -17,6 +20,7 @@
1720
*.so.* filter=lfs diff=lfs merge=lfs -text
1821

1922
# ROS Bags
23+
**/resources/**/*.zstd filter=lfs diff=lfs merge=lfs -text
2024
**/resources/**/*.db3 filter=lfs diff=lfs merge=lfs -text
2125
**/resources/**/*.yaml filter=lfs diff=lfs merge=lfs -text
2226

README.md

Lines changed: 39 additions & 25 deletions
Large diffs are not rendered by default.

docs/tutorial-isaac-sim.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
## Overview
66

7-
This tutorial walks you through a pipeline for [Image Segmentation](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_image_segmentation) of people using images from Isaac Sim.
7+
This tutorial walks you through a graph for [Image Segmentation](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_image_segmentation) of people using images from Isaac Sim.
8+
9+
Last validated with [Isaac Sim 2022.1.0](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/release_notes.html#id10).
810

911
## Tutorial Walkthrough
1012

@@ -29,7 +31,7 @@ This tutorial walks you through a pipeline for [Image Segmentation](https://gith
2931
`omniverse://localhost/NVIDIA/Assets/Isaac/2022.1/Isaac/Samples/ROS2/Scenario/carter_warehouse_apriltags_worker.usd`.
3032

3133
And wait for it to load completely.
32-
> **Note:** To use a different server, replace `localhost` with `<your_nucleus_server>`
34+
> **Note**: To use a different server, replace `localhost` with `<your_nucleus_server>`
3335
6. Go to the stage tab and select `/World/Carter_ROS`, then in properties tab -> Transform -> Translate -> X change `-3.0` to `0.0`.
3436
<div align="center"><img src="../resources/Isaac_sim_set_carter.png" width="400px"/></div>
3537

@@ -59,4 +61,4 @@ This tutorial walks you through a pipeline for [Image Segmentation](https://gith
5961

6062
Then inside the `rqt_image_view` GUI, change the topic to `/unet/colored_segmentation_mask` to view a colorized segmentation mask.
6163

62-
**Note:** The raw segmentation is also published to `/unet/raw_segmentation_mask`. However, the raw pixels correspond to the class labels and so the output is unsuitable for human visual inspection.
64+
**Note**: The raw segmentation is also published to `/unet/raw_segmentation_mask`. However, the raw pixels correspond to the class labels and so the output is unsuitable for human visual inspection.

isaac_ros_unet/CMakeLists.txt

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

18-
cmake_minimum_required(VERSION 3.5)
18+
cmake_minimum_required(VERSION 3.23.2)
1919
project(isaac_ros_unet LANGUAGES C CXX)
2020

21-
# Default to C++17
22-
if(NOT CMAKE_CXX_STANDARD)
23-
set(CMAKE_CXX_STANDARD 17)
24-
endif()
25-
2621
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
2722
add_compile_options(-Wall -Wextra -Wpedantic)
2823
endif()
2924

30-
# Default to Release build
31-
if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
32-
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
33-
endif()
34-
message( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" )
35-
36-
execute_process(COMMAND uname -m COMMAND tr -d '\n'
37-
OUTPUT_VARIABLE ARCHITECTURE
38-
)
39-
message( STATUS "Architecture: ${ARCHITECTURE}" )
40-
4125
find_package(ament_cmake_auto REQUIRED)
4226
ament_auto_find_build_dependencies()
4327

28+
# Dependencies
29+
enable_language(CUDA)
30+
4431
# Decoder node
4532
ament_auto_add_library(unet_decoder_node SHARED src/unet_decoder_node.cpp)
46-
target_compile_definitions(unet_decoder_node
47-
PRIVATE "COMPOSITION_BUILDING_DLL"
48-
)
4933
rclcpp_components_register_nodes(unet_decoder_node "nvidia::isaac_ros::unet::UNetDecoderNode")
5034
set(node_plugins "${node_plugins}nvidia::isaac_ros::unet::UNetDecoderNode;$<TARGET_FILE:unet_decoder_node>\n")
5135

52-
# Install config directory
53-
install(
54-
DIRECTORY config
55-
DESTINATION share/${PROJECT_NAME}
56-
)
36+
### Install extensions built from source
5737

58-
install(TARGETS unet_decoder_node
59-
ARCHIVE DESTINATION lib
60-
LIBRARY DESTINATION lib
61-
RUNTIME DESTINATION bin
62-
)
38+
# Segmentation Postprocessor
39+
add_subdirectory(gxf/image_segmentation)
40+
install(TARGETS gxf_segmentation_postprocessor DESTINATION share/${PROJECT_NAME}/gxf)
6341

42+
### End extensions
6443

6544
if(BUILD_TESTING)
6645
find_package(ament_lint_auto REQUIRED)
@@ -70,4 +49,4 @@ if(BUILD_TESTING)
7049
add_launch_test(test/isaac_ros_unet_pol_test.py TIMEOUT "400")
7150
endif()
7251

73-
ament_auto_package(INSTALL_TO_SHARE launch)
52+
ament_auto_package(INSTALL_TO_SHARE config launch)

isaac_ros_unet/gxf/AMENT_IGNORE

Whitespace-only changes.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
2+
# Copyright (c) 2022-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_segmentation_postprocessor LANGUAGES C CXX)
19+
20+
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
21+
add_compile_options(-fPIC -w)
22+
endif()
23+
24+
# Dependencies
25+
find_package(CUDAToolkit)
26+
find_package(GXF ${ISAAC_ROS_GXF_VERSION} MODULE REQUIRED
27+
COMPONENTS
28+
core
29+
cuda
30+
multimedia
31+
serialization
32+
std
33+
)
34+
include(YamlCpp)
35+
36+
# Create extension
37+
add_library(gxf_segmentation_postprocessor SHARED
38+
segmentation_mask_colorizer.cpp
39+
segmentation_mask_colorizer.hpp
40+
segmentation_postprocessing_utils.hpp
41+
segmentation_postprocessor_ext.cpp
42+
segmentation_postprocessor.cpp
43+
segmentation_postprocessor.hpp
44+
segmentation_postprocessor.cu.cpp
45+
segmentation_postprocessor.cu.hpp
46+
segmentation_mask_colorizer.cu.cpp
47+
segmentation_mask_colorizer.cu.hpp
48+
)
49+
50+
# Mark as CUDA files with non-standard extensions
51+
set_source_files_properties(
52+
segmentation_postprocessor.cu.cpp
53+
segmentation_postprocessor.cu.hpp
54+
segmentation_mask_colorizer.cu.cpp
55+
segmentation_mask_colorizer.cu.hpp
56+
PROPERTIES LANGUAGE CUDA
57+
)
58+
59+
target_link_libraries(gxf_segmentation_postprocessor
60+
PUBLIC
61+
CUDA::cudart
62+
GXF::cuda
63+
GXF::multimedia
64+
GXF::std
65+
yaml-cpp
66+
)

0 commit comments

Comments
 (0)