-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from NVIDIA-ISAAC-ROS/release-3.0
Isaac ROS 3.0.0
- Loading branch information
Showing
54 changed files
with
3,241 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Ignore Python files in linguist | ||
*.py linguist-detectable=false | ||
|
||
# Images | ||
*.gif filter=lfs diff=lfs merge=lfs -text | ||
*.jpg filter=lfs diff=lfs merge=lfs -text | ||
*.png filter=lfs diff=lfs merge=lfs -text | ||
*.psd filter=lfs diff=lfs merge=lfs -text | ||
|
||
# Archives | ||
*.gz filter=lfs diff=lfs merge=lfs -text | ||
*.tar filter=lfs diff=lfs merge=lfs -text | ||
*.zip filter=lfs diff=lfs merge=lfs -text | ||
|
||
# Documents | ||
*.pdf filter=lfs diff=lfs merge=lfs -text | ||
|
||
# Shared libraries | ||
*.so filter=lfs diff=lfs merge=lfs -text | ||
*.so.* filter=lfs diff=lfs merge=lfs -text | ||
|
||
# ROS Bags | ||
**/resources/**/*.zstd filter=lfs diff=lfs merge=lfs -text | ||
**/resources/**/*.db3 filter=lfs diff=lfs merge=lfs -text | ||
**/resources/**/*.yaml filter=lfs diff=lfs merge=lfs -text | ||
**/resources/**/*.bag filter=lfs diff=lfs merge=lfs -text | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Ignore all pycache files | ||
**/__pycache__/** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Isaac ROS Contribution Rules | ||
|
||
Any contribution that you make to this repository will | ||
be under the Apache 2 License, as dictated by that | ||
[license](http://www.apache.org/licenses/LICENSE-2.0.html): | ||
|
||
> **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. | ||
Contributors must sign-off each commit by adding a `Signed-off-by: ...` | ||
line to commit messages to certify that they have the right to submit | ||
the code they are contributing to the project according to the | ||
[Developer Certificate of Origin (DCO)](https://developercertificate.org/). | ||
|
||
[//]: # (202201002) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,5 @@ | ||
# isaac_ros_examples | ||
Examples of using Isaac ROS GEMs together | ||
# Isaac ROS Examples | ||
|
||
This repository contains example launch files and scripts to support Isaac ROS package quickstarts. | ||
|
||
Visit the [Isaac ROS Package Index](https://nvidia-isaac-ros.github.io/repositories_and_packages/index.html) for a list of packages that include quickstart examples. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES | ||
# Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
from .isaac_ros_launch_fragment import IsaacROSLaunchFragment | ||
from .isaac_ros_launch_fragment_spec import IsaacROSLaunchFragmentSpec, LAUNCH_FRAGMENT_SPECS | ||
|
||
__all__ = [ | ||
'IsaacROSLaunchFragment', | ||
'IsaacROSLaunchFragmentSpec', | ||
'LAUNCH_FRAGMENT_SPECS' | ||
] |
77 changes: 77 additions & 0 deletions
77
isaac_ros_examples/isaac_ros_examples/isaac_ros_launch_fragment.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES | ||
# Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
from typing import Any, Dict | ||
|
||
from launch import Action | ||
from launch_ros.descriptions import ComposableNode | ||
|
||
|
||
class IsaacROSLaunchFragment(): | ||
|
||
@staticmethod | ||
def get_interface_specs() -> Dict[str, Any]: | ||
""" | ||
Get the interface specifications for this fragment. | ||
Interface specifications are a way to define key-value pairs that this fragment | ||
makes available to other fragments in the launch graph. This is useful for communicating | ||
values that must be known prior to launch time, such as camera resolutions, etc. | ||
Returns | ||
------- | ||
Dict[str, Any] | ||
The interface specifications for this fragment. | ||
""" | ||
return {} | ||
|
||
@staticmethod | ||
def get_composable_nodes(interface_specs: Dict[str, Any] = {}) -> Dict[str, ComposableNode]: | ||
""" | ||
Get the composable nodes for this fragment. | ||
Parameters | ||
---------- | ||
interface_specs : Dict[str, Any], optional | ||
The accumulated interface specs from all fragments, by default {} | ||
Returns | ||
------- | ||
Dict[str, ComposableNode] | ||
The composable nodes for this fragment, labelled with unique names | ||
""" | ||
return {} | ||
|
||
@staticmethod | ||
def get_launch_actions(interface_specs: Dict[str, Any] = {}) -> Dict[str, Action]: | ||
""" | ||
Get the launch actions for this fragment. | ||
Parameters | ||
---------- | ||
interface_specs : Dict[str, Any], optional | ||
The accumulated interface specs from all fragments, by default {} | ||
Returns | ||
------- | ||
Dict[str, Action] | ||
The launch actions for this fragment, labelled with unique names | ||
""" | ||
return {} |
184 changes: 184 additions & 0 deletions
184
isaac_ros_examples/isaac_ros_examples/isaac_ros_launch_fragment_spec.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES | ||
# Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
from typing import Dict | ||
|
||
|
||
class IsaacROSLaunchFragmentSpec: | ||
|
||
def __init__(self, package, class_name, filename=''): | ||
self.package = package | ||
self.class_name = class_name | ||
self.filename = filename if filename != '' else f'{package}_core.launch.py' | ||
|
||
|
||
LAUNCH_FRAGMENT_SPECS: Dict[str, IsaacROSLaunchFragmentSpec] = { | ||
################ | ||
# Data Sources # | ||
################ | ||
|
||
# RealSense Camera | ||
'realsense_mono': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_realsense', 'IsaacROSRealSenseMonoLaunchFragment', | ||
'isaac_ros_realsense_mono_core.launch.py'), | ||
'realsense_mono_rect': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_realsense', 'IsaacROSRealSenseMonoRectLaunchFragment', | ||
'isaac_ros_realsense_mono_rect_core.launch.py'), | ||
'realsense_stereo_rect': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_realsense', 'IsaacROSRealSenseStereoRectLaunchFragment', | ||
'isaac_ros_realsense_stereo_rect_core.launch.py'), | ||
'realsense_stereo_rect_imu': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_realsense', 'IsaacROSRealSenseStereoRectImuLaunchFragment', | ||
'isaac_ros_realsense_stereo_rect_imu_core.launch.py'), | ||
'realsense_mono_rect_depth': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_realsense', 'IsaacROSRealSenseMonoRectDepthLaunchFragment', | ||
'isaac_ros_realsense_mono_rect_depth_core.launch.py'), | ||
|
||
# Argus Camera | ||
'argus_mono': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_argus_camera', 'IsaacROSArgusMonoLaunchFragment', | ||
'isaac_ros_argus_camera_mono_core.launch.py'), | ||
'argus_stereo': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_argus_camera', 'IsaacROSArgusStereoLaunchFragment', | ||
'isaac_ros_argus_camera_stereo_core.launch.py'), | ||
'argus_depth': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_argus_camera', 'IsaacROSArgusDepthLaunchFragment', | ||
'isaac_ros_argus_camera_depth_core.launch.py'), | ||
|
||
# USB Camera | ||
'usb_cam': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_usb_cam', 'IsaacROSUSBCameraLaunchFragment'), | ||
|
||
########################### | ||
# Preprocessing Utilities # | ||
########################### | ||
|
||
# Rectification | ||
'rectify_mono': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSRectifyMonoLaunchFragment', | ||
'isaac_ros_image_rectify_mono_core.launch.py'), | ||
'rectify_stereo': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSRectifyStereoLaunchFragment', | ||
'isaac_ros_image_rectify_stereo_core.launch.py'), | ||
|
||
# Resize + Rectification | ||
'resize_rectify_stereo': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSResizeRectifyStereoLaunchFragment', | ||
'isaac_ros_image_resize_rectify_stereo_core.launch.py'), | ||
|
||
# Isaac ROS Depth Proc | ||
# Convert depth to metric | ||
'convert_metric': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_depth_image_proc', 'IsaacROSConvertMetricLaunchFragment', | ||
'isaac_ros_depth_image_proc_convert_metric_core.launch.py'), | ||
# Convert depth to pointcloud | ||
'point_cloud_xyz': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_depth_image_proc', 'IsaacROSPointCloudXyzLaunchFragment', | ||
'isaac_ros_depth_image_proc_point_cloud_xyz_core.launch.py'), | ||
# Convert depth to colorized pointcloud | ||
'point_cloud_xyzrgb': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_depth_image_proc', 'IsaacROSPointCloudXyzrgbLaunchFragment', | ||
'isaac_ros_depth_image_proc_point_cloud_xyzrgb_core.launch.py'), | ||
|
||
# Isaac ROS Stereo Image Proc | ||
# SGM disparity estimation | ||
'disparity': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_stereo_image_proc', 'IsaacROSDisparityLaunchFragment', | ||
'isaac_ros_stereo_image_proc_disparity_core.launch.py'), | ||
# Convert disparity to colorized pointcloud | ||
'point_cloud': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_stereo_image_proc', 'IsaacROSPointCloudLaunchFragment', | ||
'isaac_ros_stereo_image_proc_point_cloud_core.launch.py'), | ||
# Convert disparity to depth | ||
'disparity_to_depth': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_stereo_image_proc', 'IsaacROSDisparityToDepthLaunchFragment', | ||
'isaac_ros_stereo_image_proc_disparity_to_depth_core.launch.py'), | ||
|
||
############### | ||
# Core Graphs # | ||
############### | ||
|
||
# Isaac ROS AprilTag | ||
'apriltag': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_apriltag', 'IsaacROSAprilTagLaunchFragment'), | ||
|
||
# Isaac ROS Compression | ||
'stereo_h264_decoder': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_h264_decoder', 'IsaacROSStereoH264DecoderLaunchFragment'), | ||
'stereo_h264_encoder': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_h264_encoder', 'IsaacROSStereoH264EncoderLaunchFragment'), | ||
|
||
# Isaac ROS Depth Segmentation | ||
'bi3d': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_bi3d', 'IsaacROSBi3DLaunchFragment'), | ||
|
||
# Isaac ROS DNN Stereo Depth | ||
'ess_disparity': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_ess', 'IsaacROSEssLaunchFragment'), | ||
|
||
# Isaac ROS Freespace Segmentation | ||
'bi3d_freespace': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_bi3d_freespace', 'IsaacROSBi3DFreespaceLaunchFragment'), | ||
|
||
# Isaac ROS Image Pipeline | ||
'resize': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSResizeLaunchFragment', | ||
'isaac_ros_image_resize_core.launch.py'), | ||
'flip': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSFlipLaunchFragment', | ||
'isaac_ros_image_flip_core.launch.py'), | ||
'crop': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSCropLaunchFragment', | ||
'isaac_ros_image_crop_core.launch.py'), | ||
'color_conversion': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_image_proc', 'IsaacROSColorConversionLaunchFragment', | ||
'isaac_ros_image_color_conversion_core.launch.py'), | ||
|
||
# Isaac ROS Image Segmentation | ||
'segformer': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_segformer', 'IsaacROSSegformerLaunchFragment'), | ||
'segment_anything': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_segment_anything', 'IsaacROSSegmentAnythingLaunchFragment'), | ||
'unet': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_unet', 'IsaacROSUNetLaunchFragment'), | ||
|
||
# Isaac ROS Object Detection | ||
'rtdetr': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_rtdetr', 'IsaacROSRtDetrLaunchFragment'), | ||
'detectnet': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_detectnet', 'IsaacROSDetectnetLaunchFragment'), | ||
'yolov8': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_yolov8', 'IsaacROSYolov8LaunchFragment'), | ||
|
||
# Isaac ROS Pose Estimation | ||
'centerpose': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_centerpose', 'IsaacROSCenterPoseLaunchFragment'), | ||
'centerpose_visualizer': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_centerpose', 'IsaacROSCenterPoseVisualizerLaunchFragment', | ||
'isaac_ros_centerpose_visualizer_core.launch.py'), | ||
'dope': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_dope', 'IsaacROSDopeLaunchFragment'), | ||
'foundationpose': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_foundationpose', 'IsaacROSFoundationPoseLaunchFragment'), | ||
'foundationpose_tracking': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_foundationpose', 'IsaacROSFoundationPoseTrackingLaunchFragment', | ||
'isaac_ros_foundationpose_tracking_core.launch.py'), | ||
|
||
# Isaac ROS Visual Slam | ||
'visual_slam': IsaacROSLaunchFragmentSpec( | ||
'isaac_ros_visual_slam', 'IsaacROSVisualSlamLaunchFragment'), | ||
} |
Oops, something went wrong.