Skip to content

Commit

Permalink
Isaac ROS 0.11.0 (DP1.1)
Browse files Browse the repository at this point in the history
  • Loading branch information
hemalshahNV committed Sep 2, 2022
1 parent aa2a6aa commit c234427
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 8 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,17 @@ The following are the benchmark performance results of the prepared pipelines in
- [Updates](#updates)

## Latest Update
Update 2022-06-30: Removed frame_id, queue_size and tensor_output_order parameter. Added network_output_type parameter (support for sigmoid and argmax output layers). Switched implementation to use NITROS. Removed support for odd sized images. Switched tutorial to use PeopleSemSegNet ShuffleSeg and moved som details to other READMEs.
Update 2022-08-31: Update to be compatible with JetPack 5.0.2

## Supported Platforms
This package is designed and tested to be compatible with ROS2 Humble running on [Jetson](https://developer.nvidia.com/embedded-computing) or an x86_64 system with an NVIDIA GPU.

> **Note**: Versions of ROS2 earlier than Humble are **not** supported. This package depends on specific ROS2 implementation features that were only introduced beginning with the Humble release.

| Platform | Hardware | Software | Notes |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Jetson | [Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/)<br/>[Jetson Xavier](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-agx-xavier/) | [JetPack 5.0.1 DP](https://developer.nvidia.com/embedded/jetpack) | For best performance, ensure that [power settings](https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance.html) are configured appropriately. |
| Jetson | [Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/)<br/>[Jetson Xavier](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-agx-xavier/) | [JetPack 5.0.2](https://developer.nvidia.com/embedded/jetpack) | For best performance, ensure that [power settings](https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance.html) are configured appropriately. |
| x86_64 | NVIDIA GPU | [Ubuntu 20.04+](https://releases.ubuntu.com/20.04/) <br> [CUDA 11.6.1+](https://developer.nvidia.com/cuda-downloads) |


Expand Down Expand Up @@ -231,6 +233,7 @@ For solutions to problems with using DNN models, please check [here](https://git
## Updates
| Date | Changes |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 2022-08-31 | Update to be compatible with JetPack 5.0.2 |
| 2022-06-30 | Removed frame_id, queue_size and tensor_output_order parameter. Added network_output_type parameter (support for sigmoid and argmax output layers). Switched implementation to use NITROS. Removed support for odd sized images. Switched tutorial to use PeopleSemSegNet ShuffleSeg and moved unnecessary details to other READMEs. |
| 2021-11-15 | Isaac Sim HIL documentation update |
| 2021-10-20 | Initial release |
2 changes: 1 addition & 1 deletion docs/tutorial-isaac-sim.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Tutorial with Isaac Sim
> **Note: Isaac Sim 2022.1.0 published on 6/3/2022 does not support ROS2 Humble. Please follow one of the [workarounds](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docs/isaac-sim-sil-setup.md#isaac-sim-202210-workarounds) before continuing with the tutorial**

1. Complete the [Quickstart section](../README.md#quickstart) in the main README till step 9.
2. Launch the Docker container using the `run_dev.sh` script:
```bash
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_unet/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ if(BUILD_TESTING)
ament_lint_auto_find_test_dependencies()

find_package(launch_testing_ament_cmake REQUIRED)
add_launch_test(test/isaac_ros_unet_pol_test.py TIMEOUT "300")
add_launch_test(test/isaac_ros_unet_pol_test.py TIMEOUT "400")
endif()

ament_auto_package(INSTALL_TO_SHARE launch)
4 changes: 3 additions & 1 deletion isaac_ros_unet/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_unet</name>
<version>0.9.0</version>
<version>0.11.0</version>
<description>U-Net model processing</description>

<maintainer email="hemals@nvidia.com">Hemal Shah</maintainer>
Expand All @@ -28,6 +28,8 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<depend>rclcpp_components</depend>
<depend>isaac_ros_dnn_encoders</depend>
<depend>isaac_ros_nitros</depend>
<depend>isaac_ros_nitros_image_type</depend>
<depend>isaac_ros_nitros_tensor_list_type</depend>

<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
Expand Down
7 changes: 5 additions & 2 deletions isaac_ros_unet/src/unet_decoder_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@

#include "rclcpp/rclcpp.hpp"
#include "sensor_msgs/sensor_msgs/image_encodings.hpp"
#include "isaac_ros_nitros/types/nitros_image.hpp"
#include "isaac_ros_nitros/types/nitros_tensor_list.hpp"
#include "isaac_ros_nitros_image_type/nitros_image.hpp"
#include "isaac_ros_nitros_tensor_list_type/nitros_tensor_list.hpp"

namespace nvidia
{
Expand Down Expand Up @@ -159,6 +159,9 @@ UNetDecoderNode::UNetDecoderNode(const rclcpp::NodeOptions options)
throw std::invalid_argument("Received invalid network output type: " + network_output_type_);
}

registerSupportedType<nvidia::isaac_ros::nitros::NitrosImage>();
registerSupportedType<nvidia::isaac_ros::nitros::NitrosTensorList>();

startNitrosNode();
}

Expand Down
13 changes: 12 additions & 1 deletion isaac_ros_unet/test/isaac_ros_unet_pol_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,14 +127,25 @@ class IsaacROSUNetPipelineTest(IsaacROSBaseTest):

@IsaacROSBaseTest.for_each_test_case()
def test_image_segmentation(self, test_folder):
self.node._logger.info(f'Generating model (timeout={self.MODEL_GENERATION_TIMEOUT_SEC}s)')
start_time = time.time()
ten_second_count = 1
while not os.path.isfile(self.MODEL_PATH):
if (time.time() - start_time) > self.MODEL_GENERATION_TIMEOUT_SEC:
time_diff = time.time() - start_time
if time_diff > self.MODEL_GENERATION_TIMEOUT_SEC:
self.fail('Model generation timed out')
if time_diff > ten_second_count*10:
self.node._logger.info(
f'Waiting for model generation to finish... ({int(time_diff)}s passed)')
ten_second_count += 1
time.sleep(1)

# Wait for TensorRT engine
time.sleep(self.INIT_WAIT_SEC)

self.node._logger.info(
f'Model generation was finished (took {(time.time() - start_time)}s)')

"""Expect the node to segment an image."""
self.generate_namespace_lookup(
['image', 'unet/raw_segmentation_mask',
Expand Down

0 comments on commit c234427

Please sign in to comment.