diff --git a/README.md b/README.md index 4bd9b96..1868211 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Overview -ROS2 Humble introduces new hardware-acceleration features, including type adaptation and type negotiation, that significantly increase performance for developers seeking to incorporate AI/machine learning and computer vision functionality into their ROS-based applications. +ROS2 Humble introduces new hardware-acceleration features, including type adaptation and type negotiation, that significantly increase performance for developers seeking to incorporate AI/machine learning and computer vision functionality into their ROS-based applications. Type adaptation (REP-2007) is common for hardware accelerators, which require a different data format to deliver optimal performance. Type adaptation allows ROS nodes to work in a format better suited to the hardware. Processing pipelines can eliminate memory copies between the CPU and the memory accelerator using the adapted type. Unnecessary memory copies consume CPU compute, waste power, and slow down performance, especially as the image size increases. @@ -14,8 +14,8 @@ Accelerating processing pipelines using type adaptation and negotiation makes th The NVIDIA implementation of type adaption and negotiation are called NITROS (NVIDIA Isaac Transport for ROS). ROS processing pipelines made up of NITROS-based Isaac ROS hardware accelerated modules (a.k.a. GEMs or Isaac ROS nodes) can deliver promising performance and results. - ## Table of Contents + - [Isaac ROS NITROS](#isaac-ros-nitros) - [Overview](#overview) - [Table of Contents](#table-of-contents) @@ -33,44 +33,44 @@ The NVIDIA implementation of type adaption and negotiation are called NITROS (NV - [Using NITROS-Accelerated Nodes in Existing Non-NITROS Graphs](#using-nitros-accelerated-nodes-in-existing-non-nitros-graphs) - [Updates](#updates) - ## Latest Update -Update 2022-08-31: Update to be compatible with JetPack 5.0.2 +Update 2022-10-19: Minor updates and bugfixes ## 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/)
[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/)
[CUDA 11.6.1+](https://developer.nvidia.com/cuda-downloads) | - +| Platform | Hardware | Software | Notes | +| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Jetson | [Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/)
[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/)
[CUDA 11.6.1+](https://developer.nvidia.com/cuda-downloads) | ### Docker + To simplify development, we strongly recommend leveraging the Isaac ROS Dev Docker images by following [these steps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docs/dev-env-setup.md). This will streamline your development environment setup with the correct versions of dependencies on both Jetson and x86_64 platforms. > **Note:** All Isaac ROS Quickstarts, tutorials, and examples have been designed with the Isaac ROS Docker images as a prerequisite. - ## System Assumptions + The design of NITROS makes the following assumptions of the ROS2 applications: + - To leverage the benefit of zero-copy in NITROS, all NITROS-accelerated nodes must run in the same process. - For a given topic in which type negotiation takes place, there can only be one negotiating publisher. - For a NITROS-accelerated node, received-frame IDs are assumed to be constant throughout the runtime. - ## NITROS-Accelerated Nodes + Most Isaac ROS GEMs have been updated to be NITROS-accelerated. The acceleration is in effect between NITROS-accelerated nodes when two or more of them are connected next to each other. In such a case, NITROS-accelerated nodes can discover each other through type negotiation and leverage type adaptation for data transmission automatically at runtime. NITROS-accelerated nodes are also compatible with non-NITROS nodes: A NITROS-accelerated node can be used together with any existing, non-NITROS ROS2 node, and it will function like a typical ROS2 node. - ## NITROS Data Types + NITROS supports transporting various common data types with zero-copy in its own NITROS types. Each NITROS type is one-to-one-mapped to a ROS message type, which ensures compatibility with existing tools, workflows, and codebases. A non-NITROS node supporting the corresponding ROS message types can publish data to or subscribe to data from a NITROS-accelerated node that supports the corresponding NITROS types. @@ -83,13 +83,15 @@ Each NITROS type is one-to-one-mapped to a ROS message type, which ensures compa | NitrosPointCloud | [sensor_msgs/PointCloud2](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/PointCloud2.msg) | | NitrosAprilTagDetectionArray | [isaac_ros_apriltag_interfaces/AprilTagDetectionArray](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/isaac_ros_apriltag_interfaces/msg/AprilTagDetectionArray.msg) | - ## NITROS-Accelerated Graphs + ROS2 graphs built with NITROS-accelerated nodes yield promising performance. The following highlights three graphs that are created and tested fully with Isaac ROS NITROS-accelerated nodes. For more detailed performance outcomes, visit [this page](https://github.com/NVIDIA-ISAAC-ROS/.github/blob/main/profile/performance-summary.md). ### AprilTag Detection Graph + The AprilTag detection graph uses the NVIDIA GPU-accelerated AprilTags library to detect AprilTags in images and publishes their poses, IDs, and additional metadata. Visit [Isaac ROS Apriltag](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_apriltag) for more details. + ```mermaid graph LR; argus_node("ArgusMonoNode (Raw Image)") --> rectify_node("RectifyNode (Rectified Image)"); @@ -97,6 +99,7 @@ graph LR; ``` ### Stereo Disparity Graph + The stereo disparity graph performs DNN-based stereo depth estimation via continuous disparity prediction. It produces a depth image or point cloud of the scene that can be used for robot navigation. Visit [Isaac ROS DNN Stereo Disparity](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_stereo_disparity) for more details. ```mermaid @@ -109,7 +112,9 @@ graph LR; ``` ### Image Segmentation Graph + The image segmentation graph uses a deep learning U-Net model to generate an image mask segmenting out objects of interest. Visit [Isaac ROS Image Segmentation](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_image_segmentation) for more details. + ```mermaid graph LR; argus_node("ArgusMonoNode (Raw Image)") --> rectify_node("RectifyNode (Rectified Image)"); @@ -120,6 +125,7 @@ graph LR; ``` ## Creating Graphs with NITROS-Accelerated Nodes + Besides the above fully tested graphs, it is also possible to construct your own graphs with any of the Isaac ROS NITROS-accelerated nodes to enjoy the performance benefit of NITROS. The key to successfully constructing a NITROS-accelerated graph is to ensure that all NITROS-accelerated nodes start in the same process (which permits zero-copy between nodes). @@ -151,7 +157,9 @@ To do so, follow the steps below to create your own launch file: ], ) ``` + 3. Place the created nodes in `ComposableNodeContainer`: + ```python nitros_container = ComposableNodeContainer( name='nitros_container', @@ -160,14 +168,17 @@ To do so, follow the steps below to create your own launch file: composable_node_descriptions=[argus_mono_node, rectify_node], ) ``` + > **Note:** It is crucial that the `executable` field is set to be `component_container_mt` so that the created nodes can be started and communicated correctly within the same process. 4. Finally, place the created composable node container in `LaunchDescription` to finalize the launch script. + ```python return launch.LaunchDescription([nitros_container]) ``` ## Using NITROS-Accelerated Nodes in Existing Non-NITROS Graphs + As stated in [NITROS-Accelerated Nodes](#nitros-accelerated-nodes), it is also possible to use any NITROS-accelerated nodes in an existing ROS2 graph, as all Isaac ROS nodes are compatible with non-NITROS ROS2 nodes. Follow these steps to integrate one or more NITROS-accelerated nodes into your graph: @@ -177,15 +188,18 @@ Follow these steps to integrate one or more NITROS-accelerated nodes into your g 2. Place the created composable node container in `LaunchDescription` together with your own, regular ROS2 node or composable node container declarations. Now the NITROS-accelerated nodes will be able to choose the best compatible way to communicate with their adjacent nodes. + - When connected to non-NITROS nodes, NITROS-accelerated nodes will function like regular ROS2 nodes. - When connected to NITROS-accelerated nodes, zero-copy data transmission via type adaptation and type negotiation will be adopted. Please visit the link below for an example graph that consists of NITROS-accelerated and non-NITROS nodes: + - [NITROS-accelerated AprilTag node + non-NITROS USB camera node](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_apriltag/blob/main/docs/tutorial-usb-cam.md) ## Updates | Date | Changes | | ---------- | ------------------------------------------ | +| 2022-10-19 | Minor updates and bugfixes | | 2022-08-31 | Update to be compatible with JetPack 5.0.2 | | 2022-06-30 | Initial release | diff --git a/isaac_ros_nitros/CMakeLists.txt b/isaac_ros_nitros/CMakeLists.txt index 5935678..6153d31 100644 --- a/isaac_ros_nitros/CMakeLists.txt +++ b/isaac_ros_nitros/CMakeLists.txt @@ -32,11 +32,14 @@ message( STATUS "Architecture: ${ARCHITECTURE}" ) find_package(ament_cmake_auto REQUIRED) ament_auto_find_build_dependencies() +# Elbrus (register path and install) +ament_index_register_resource(elbrus CONTENT share/${PROJECT_NAME}/elbrus) +install(DIRECTORY lib/elbrus + DESTINATION "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}") # Eigen3 find_package(Eigen3 3.3 REQUIRED NO_MODULE) - # GXF include_directories(gxf/include) include_directories(gxf/include/third_party) @@ -45,17 +48,18 @@ add_library(gxf_std SHARED IMPORTED) add_library(gxf_multimedia SHARED IMPORTED) # for NitrosImage add_library(optimizer SHARED IMPORTED) if( ${ARCHITECTURE} STREQUAL "x86_64" ) - set_property(TARGET gxf PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64/core/libgxf_core.so) - set_property(TARGET gxf_std PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64/std/libgxf_std.so) + set_property(TARGET gxf PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so) + set_property(TARGET gxf_std PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64_cuda_11_7/std/libgxf_std.so) set_property( - TARGET gxf_multimedia PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64/multimedia/libgxf_multimedia.so) - set_property(TARGET optimizer PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64/libgxf_optimizer.so) + TARGET gxf_multimedia + PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64_cuda_11_7/multimedia/libgxf_multimedia.so) + set_property(TARGET optimizer PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_optimizer.so) elseif( ${ARCHITECTURE} STREQUAL "aarch64" ) - set_property(TARGET gxf PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack50/core/libgxf_core.so) - set_property(TARGET gxf_std PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack50/std/libgxf_std.so) + set_property(TARGET gxf PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack502/core/libgxf_core.so) + set_property(TARGET gxf_std PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack502/std/libgxf_std.so) set_property( - TARGET gxf_multimedia PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack50/multimedia/libgxf_multimedia.so) - set_property(TARGET optimizer PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack50/libgxf_optimizer.so) + TARGET gxf_multimedia PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack502/multimedia/libgxf_multimedia.so) + set_property(TARGET optimizer PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack502/libgxf_optimizer.so) endif() @@ -70,6 +74,8 @@ if(USE_NVTX) link_libraries("nvToolsExt") endif() +# Find VPI dependency +find_package(vpi REQUIRED) # NitrosNode ament_auto_add_library(isaac_ros_nitros SHARED @@ -80,11 +86,12 @@ ament_auto_add_library(isaac_ros_nitros SHARED src/types/nitros_int64.cpp src/nitros_publisher.cpp src/nitros_subscriber.cpp - src/nitros_publisher_subscriber_group.cpp) + src/nitros_publisher_subscriber_group.cpp + src/utils/vpi_utilities.cpp) target_compile_definitions(isaac_ros_nitros PRIVATE "COMPOSITION_BUILDING_DLL" ) -target_link_libraries(isaac_ros_nitros gxf gxf_multimedia optimizer Eigen3::Eigen) +target_link_libraries(isaac_ros_nitros gxf gxf_multimedia optimizer Eigen3::Eigen vpi) # For the NitrosNode test node rclcpp_components_register_node(isaac_ros_nitros PLUGIN "nvidia::isaac_ros::nitros::NitrosNode" @@ -123,13 +130,15 @@ install( # Install extensions directory # Also copying libgxf_core.so to the lib directory for exposing it to other packages if( ${ARCHITECTURE} STREQUAL "x86_64" ) - install(DIRECTORY gxf/lib/gxf_x86_64/ DESTINATION share/${PROJECT_NAME}/gxf) - install(FILES gxf/lib/gxf_x86_64/multimedia/libgxf_multimedia.so DESTINATION lib/) - install(FILES gxf/lib/gxf_x86_64/cuda/libgxf_cuda.so DESTINATION lib/) + install(DIRECTORY gxf/lib/gxf_x86_64_cuda_11_7/ DESTINATION share/${PROJECT_NAME}/gxf) + install(FILES gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so DESTINATION lib/) + install(FILES gxf/lib/gxf_x86_64_cuda_11_7/multimedia/libgxf_multimedia.so DESTINATION lib/) + install(FILES gxf/lib/gxf_x86_64_cuda_11_7/cuda/libgxf_cuda.so DESTINATION lib/) elseif( ${ARCHITECTURE} STREQUAL "aarch64" ) - install(DIRECTORY gxf/lib/gxf_jetpack50/ DESTINATION share/${PROJECT_NAME}/gxf) - install(FILES gxf/lib/gxf_jetpack50/multimedia/libgxf_multimedia.so DESTINATION lib/) - install(FILES gxf/lib/gxf_jetpack50/cuda/libgxf_cuda.so DESTINATION lib/) + install(DIRECTORY gxf/lib/gxf_jetpack502/ DESTINATION share/${PROJECT_NAME}/gxf) + install(FILES gxf/lib/gxf_jetpack502/core/libgxf_core.so DESTINATION lib/) + install(FILES gxf/lib/gxf_jetpack502/multimedia/libgxf_multimedia.so DESTINATION lib/) + install(FILES gxf/lib/gxf_jetpack502/cuda/libgxf_cuda.so DESTINATION lib/) endif() set_target_properties(isaac_ros_nitros PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE) set_target_properties(isaac_ros_nitros PROPERTIES INSTALL_RPATH "$ORIGIN/../share/${PROJECT_NAME}/gxf/core") diff --git a/isaac_ros_nitros/gxf/include/common/any.hpp b/isaac_ros_nitros/gxf/include/common/any.hpp index 2737cfa..51c0e92 100644 --- a/isaac_ros_nitros/gxf/include/common/any.hpp +++ b/isaac_ros_nitros/gxf/include/common/any.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_ANY_HPP_ #define NVIDIA_COMMON_ANY_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/assert.hpp b/isaac_ros_nitros/gxf/include/common/assert.hpp index c2ab47d..62377e9 100644 --- a/isaac_ros_nitros/gxf/include/common/assert.hpp +++ b/isaac_ros_nitros/gxf/include/common/assert.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_ASSERT_HPP_ #define NVIDIA_COMMON_ASSERT_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/byte.hpp b/isaac_ros_nitros/gxf/include/common/byte.hpp index f5cb5f6..3dcda0c 100644 --- a/isaac_ros_nitros/gxf/include/common/byte.hpp +++ b/isaac_ros_nitros/gxf/include/common/byte.hpp @@ -1,27 +1,33 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_BYTE_HPP_ #define NVIDIA_COMMON_BYTE_HPP_ -namespace nvidia { - +# if __cplusplus < 201703L +namespace std { using byte = unsigned char; - -} // namespace nvidia - +} // namespace std +using std::byte; +# else +namespace nvidia { + using byte = unsigned char; +} using nvidia::byte; +#endif + #endif // NVIDIA_COMMON_BYTE_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/expected.hpp b/isaac_ros_nitros/gxf/include/common/expected.hpp index cc13e27..bcd1810 100644 --- a/isaac_ros_nitros/gxf/include/common/expected.hpp +++ b/isaac_ros_nitros/gxf/include/common/expected.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_EXPECTED_HPP_ #define NVIDIA_COMMON_EXPECTED_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/fixed_string.hpp b/isaac_ros_nitros/gxf/include/common/fixed_string.hpp index 291f8cd..66bed43 100644 --- a/isaac_ros_nitros/gxf/include/common/fixed_string.hpp +++ b/isaac_ros_nitros/gxf/include/common/fixed_string.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_COMMON_FIXED_STRING_HPP_ #define NVIDIA_GXF_COMMON_FIXED_STRING_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/fixed_vector.hpp b/isaac_ros_nitros/gxf/include/common/fixed_vector.hpp index dca972d..e0d43ed 100644 --- a/isaac_ros_nitros/gxf/include/common/fixed_vector.hpp +++ b/isaac_ros_nitros/gxf/include/common/fixed_vector.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_COMMON_FIXED_VECTOR_HPP_ #define NVIDIA_GXF_COMMON_FIXED_VECTOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/iterator.hpp b/isaac_ros_nitros/gxf/include/common/iterator.hpp index 6b6e2bc..d1e3d80 100644 --- a/isaac_ros_nitros/gxf/include/common/iterator.hpp +++ b/isaac_ros_nitros/gxf/include/common/iterator.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_COMMON_ITERATOR_HPP_ #define NVIDIA_GXF_COMMON_ITERATOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/logger.hpp b/isaac_ros_nitros/gxf/include/common/logger.hpp index 899e04d..b06b024 100644 --- a/isaac_ros_nitros/gxf/include/common/logger.hpp +++ b/isaac_ros_nitros/gxf/include/common/logger.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_LOGGER_HPP_ #define NVIDIA_COMMON_LOGGER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/memory_utils.hpp b/isaac_ros_nitros/gxf/include/common/memory_utils.hpp index b3fd948..94ed294 100644 --- a/isaac_ros_nitros/gxf/include/common/memory_utils.hpp +++ b/isaac_ros_nitros/gxf/include/common/memory_utils.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_MEMORY_UTILS_HPP_ #define NVIDIA_COMMON_MEMORY_UTILS_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/optional.hpp b/isaac_ros_nitros/gxf/include/common/optional.hpp index bb99fbd..a1ce25a 100644 --- a/isaac_ros_nitros/gxf/include/common/optional.hpp +++ b/isaac_ros_nitros/gxf/include/common/optional.hpp @@ -1,21 +1,35 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_OPTIONAL_HPP_ #define NVIDIA_COMMON_OPTIONAL_HPP_ +#if __cplusplus < 201703L #include +namespace std { + +using experimental::optional; +using experimental::nullopt_t; +using experimental::nullopt; + +} // namespace std + +#else +#include +#endif + #endif // NVIDIA_COMMON_OPTIONAL_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/strong_type.hpp b/isaac_ros_nitros/gxf/include/common/strong_type.hpp index be14513..043dbde 100644 --- a/isaac_ros_nitros/gxf/include/common/strong_type.hpp +++ b/isaac_ros_nitros/gxf/include/common/strong_type.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021-2022, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_COMMON_STRONG_TYPE_HPP_ #define NVIDIA_GXF_COMMON_STRONG_TYPE_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/type_name.hpp b/isaac_ros_nitros/gxf/include/common/type_name.hpp index 17d0713..49b3f7f 100644 --- a/isaac_ros_nitros/gxf/include/common/type_name.hpp +++ b/isaac_ros_nitros/gxf/include/common/type_name.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_TYPE_NAME_HPP_ #define NVIDIA_COMMON_TYPE_NAME_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/type_name_gnuc.hpp b/isaac_ros_nitros/gxf/include/common/type_name_gnuc.hpp index e7dd79e..f93210e 100644 --- a/isaac_ros_nitros/gxf/include/common/type_name_gnuc.hpp +++ b/isaac_ros_nitros/gxf/include/common/type_name_gnuc.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_TYPE_NAME_GNUC_HPP_ #define NVIDIA_COMMON_TYPE_NAME_GNUC_HPP_ diff --git a/isaac_ros_nitros/gxf/include/common/type_utils.hpp b/isaac_ros_nitros/gxf/include/common/type_utils.hpp index c484708..75db156 100644 --- a/isaac_ros_nitros/gxf/include/common/type_utils.hpp +++ b/isaac_ros_nitros/gxf/include/common/type_utils.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_COMMON_TYPE_UTILS_HPP_ #define NVIDIA_COMMON_TYPE_UTILS_HPP_ diff --git a/isaac_ros_nitros/gxf/include/extensions/gxf_optimizer/core/optimizer.hpp b/isaac_ros_nitros/gxf/include/extensions/gxf_optimizer/core/optimizer.hpp index 70fbf17..d8f28da 100644 --- a/isaac_ros_nitros/gxf/include/extensions/gxf_optimizer/core/optimizer.hpp +++ b/isaac_ros_nitros/gxf/include/extensions/gxf_optimizer/core/optimizer.hpp @@ -64,6 +64,20 @@ class Optimizer { const GraphIOGroupDataTypeConfigurationsList& configs, const std::string& prefix = std::string()); + // Get the graph based on the given ingress-egres group data type assignments. + // If a prefix string is given, then unnamed entities will be given random names and all + // entity names will be prepended with the given prefix. + // The resulting graph(s) (including all subgraphs) are saved to the specified directory. + // The top level graph YAMLf ile is named .yaml. Its first-level + // subgraphs are named _subgraph.yaml and second-level + // subgraphs being _subgraph_subgraph<2nd_level_index>.yaml + // and so on and so forth if any. + Expected exportGraphToFiles( + const GraphIOGroupDataTypeConfigurationsList& configs, + const std::string& export_directory, + const std::string& export_base_filename, + const std::string& prefix = std::string()); + // Export ingress-egress groups and their supported data types Expected exportGraphIOGroupSupportedDataTypesInfoList(); diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/constant_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/constant_behavior.hpp index 9923d24..d8f06cc 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/constant_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/constant_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021 NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_CONSTANT_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_CONSTANT_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/entity_count_failure_repeat_controller.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/entity_count_failure_repeat_controller.hpp index 79a8181..cc6cd7a 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/entity_count_failure_repeat_controller.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/entity_count_failure_repeat_controller.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_ENTITY_COUNT_FAILURE_REPEAT_CONTROLLER_HPP_ #define NVIDIA_GXF_BT_ENTITY_COUNT_FAILURE_REPEAT_CONTROLLER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/parallel_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/parallel_behavior.hpp index 65786e0..89c1355 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/parallel_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/parallel_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_PARALLEL_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_PARALLEL_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/repeat_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/repeat_behavior.hpp index ea7814e..894a061 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/repeat_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/repeat_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_REPEAT_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_REPEAT_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/selector_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/selector_behavior.hpp index beeeb6c..74c5f3b 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/selector_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/selector_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_SELECTOR_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_SELECTOR_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/sequence_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/sequence_behavior.hpp index d34e321..3c93a05 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/sequence_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/sequence_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_SEQUENCE_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_SEQUENCE_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/switch_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/switch_behavior.hpp index 3e5566e..530b9a1 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/switch_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/switch_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_SWITCH_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_SWITCH_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/timer_behavior.hpp b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/timer_behavior.hpp index 0410ed3..471f619 100644 --- a/isaac_ros_nitros/gxf/include/gxf/behavior_tree/timer_behavior.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/behavior_tree/timer_behavior.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_BT_TIMER_BEHAVIOR_HPP_ #define NVIDIA_GXF_BT_TIMER_BEHAVIOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/core/component.hpp b/isaac_ros_nitros/gxf/include/gxf/core/component.hpp index 720faf9..603721a 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/component.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/core/component.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_COMPONENT_HPP #define NVIDIA_GXF_CORE_COMPONENT_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/core/entity.hpp b/isaac_ros_nitros/gxf/include/gxf/core/entity.hpp index 32aae2a..f6a3266 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/entity.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/core/entity.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_ENTITY_HPP_ #define NVIDIA_GXF_CORE_ENTITY_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/core/expected.hpp b/isaac_ros_nitros/gxf/include/gxf/core/expected.hpp index 4895868..3ab80e7 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/expected.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/core/expected.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_EXPECTED_HPP #define NVIDIA_GXF_CORE_EXPECTED_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/core/gxf.h b/isaac_ros_nitros/gxf/include/gxf/core/gxf.h index 864988c..1e10ee9 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/gxf.h +++ b/isaac_ros_nitros/gxf/include/gxf/core/gxf.h @@ -1,18 +1,19 @@ /* -Copyright (c) 2021-2022, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_GXF_H_ #define NVIDIA_GXF_CORE_GXF_H_ @@ -155,7 +156,7 @@ typedef void* gxf_context_t; #define kNullContext nullptr /// @brief GXF Core Version -#define kGxfCoreVersion "2.4.2" +#define kGxfCoreVersion "2.4.3" /// @brief Creates a new GXF context /// @@ -622,6 +623,10 @@ gxf_result_t GxfParameterSet1DInt32Vector(gxf_context_t context, gxf_uid_t uid, gxf_result_t GxfParameterSet2DInt32Vector(gxf_context_t context, gxf_uid_t uid, const char* key, int32_t** value, uint64_t height, uint64_t width); +// Sets a parameter from YAML. The YAML node pointer should be a type of 'YAML::Node*'. +gxf_result_t GxfParameterSetFromYamlNode(gxf_context_t context, gxf_uid_t uid, const char* key, + void* yaml_node, const char* prefix); + // Gets a 64-bit floating point parameter gxf_result_t GxfParameterGetFloat64(gxf_context_t context, gxf_uid_t uid, const char* key, double* value); diff --git a/isaac_ros_nitros/gxf/include/gxf/core/gxf_ext.h b/isaac_ros_nitros/gxf/include/gxf/core/gxf_ext.h index 822757e..2f336e5 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/gxf_ext.h +++ b/isaac_ros_nitros/gxf/include/gxf/core/gxf_ext.h @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_GXF_EXT_H_ #define NVIDIA_GXF_CORE_GXF_EXT_H_ diff --git a/isaac_ros_nitros/gxf/include/gxf/core/handle.hpp b/isaac_ros_nitros/gxf/include/gxf/core/handle.hpp index c4c9a03..3357785 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/handle.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/core/handle.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_HANDLE_HPP #define NVIDIA_GXF_CORE_HANDLE_HPP @@ -143,6 +144,10 @@ class Handle : public UntypedHandle { return lhs.context() == rhs.context() && lhs.cid() == rhs.cid(); } + friend bool operator!=(const Handle& lhs, const Handle& rhs) { + return lhs.context() != rhs.context() || lhs.cid() != rhs.cid(); + } + friend bool operator<(const Handle& lhs, const Handle& rhs) { return lhs.cid() < rhs.cid(); } diff --git a/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp b/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp index 5026dee..98a037a 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_PARAMETER_HPP_ #define NVIDIA_GXF_CORE_PARAMETER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/core/registrar.hpp b/isaac_ros_nitros/gxf/include/gxf/core/registrar.hpp index fc36891..86c8016 100644 --- a/isaac_ros_nitros/gxf/include/gxf/core/registrar.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/core/registrar.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_REGISTRAR_HPP_ #define NVIDIA_GXF_CORE_REGISTRAR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_common.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_common.hpp index d89fc82..9e6d65b 100644 --- a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_common.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_common.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CUDA_CUDA_COMMON_HPP_ #define NVIDIA_GXF_CUDA_CUDA_COMMON_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_event.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_event.hpp index 7f301d7..2135fae 100644 --- a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_event.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_event.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CUDA_CUDA_EVENT_HPP_ #define NVIDIA_GXF_CUDA_CUDA_EVENT_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream.hpp index dc183ae..8f3c09f 100644 --- a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CUDA_CUDA_STREAM_HPP_ #define NVIDIA_GXF_CUDA_CUDA_STREAM_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_id.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_id.hpp index 35d9482..89b192e 100644 --- a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_id.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_id.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CUDA_CUDA_STREAM_ID_HPP_ #define NVIDIA_GXF_CUDA_CUDA_STREAM_ID_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_pool.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_pool.hpp index fe44cef..2717e31 100644 --- a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_pool.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_pool.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CUDA_CUDA_STREAM_POOL_HPP_ #define NVIDIA_GXF_CUDA_CUDA_STREAM_POOL_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_sync.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_sync.hpp new file mode 100644 index 0000000..6a9c09b --- /dev/null +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/cuda_stream_sync.hpp @@ -0,0 +1,49 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ +#ifndef NVIDIA_GXF_CUDA_CUDA_STREAM_SYNC_HPP_ +#define NVIDIA_GXF_CUDA_CUDA_STREAM_SYNC_HPP_ + +#include + +#include "gxf/cuda/cuda_stream.hpp" +#include "gxf/std/codelet.hpp" +#include "gxf/std/receiver.hpp" +#include "gxf/std/transmitter.hpp" + + +namespace nvidia { +namespace gxf { + +// Get all cuda streams from messages of receiver, synchronize these streams, +// and forward messages to transmitter. +class CudaStreamSync : public Codelet { + public: + virtual ~CudaStreamSync() = default; + gxf_result_t registerInterface(Registrar* registrar) override; + gxf_result_t start() override { return GXF_SUCCESS; } + gxf_result_t tick() override; + gxf_result_t stop() override { return GXF_SUCCESS; } + + private: + Parameter> rx_; + Parameter> tx_; +}; + +} // namespace gxf +} // namespace nvidia + +#endif // NVIDIA_GXF_CUDA_CUDA_STREAM_SYNC_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/cuda/tests/test_cuda_helper.hpp b/isaac_ros_nitros/gxf/include/gxf/cuda/tests/test_cuda_helper.hpp index bdded1e..c333ed9 100644 --- a/isaac_ros_nitros/gxf/include/gxf/cuda/tests/test_cuda_helper.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/cuda/tests/test_cuda_helper.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CUDA_TESTS_TEST_CUDA_HELPER_HPP #define NVIDIA_GXF_CUDA_TESTS_TEST_CUDA_HELPER_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/multimedia/audio.hpp b/isaac_ros_nitros/gxf/include/gxf/multimedia/audio.hpp index 26f6331..aac40a1 100644 --- a/isaac_ros_nitros/gxf/include/gxf/multimedia/audio.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/multimedia/audio.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_MULTIMEDIA_AUDIO_HPP_ #define NVIDIA_GXF_MULTIMEDIA_AUDIO_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/multimedia/camera.hpp b/isaac_ros_nitros/gxf/include/gxf/multimedia/camera.hpp index 7620e59..731f66b 100644 --- a/isaac_ros_nitros/gxf/include/gxf/multimedia/camera.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/multimedia/camera.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021 - 2022, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_MULTIMEDIA_CAMERA_HPP_ #define NVIDIA_GXF_MULTIMEDIA_CAMERA_HPP_ @@ -138,4 +145,4 @@ using Pose3D = Pose3DBase; } // namespace gxf } // namespace nvidia -#endif // NVIDIA_GXF_MULTIMEDIA_CAMERA_HPP_ \ No newline at end of file +#endif // NVIDIA_GXF_MULTIMEDIA_CAMERA_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/multimedia/video.hpp b/isaac_ros_nitros/gxf/include/gxf/multimedia/video.hpp index 7d7724c..49c6a81 100644 --- a/isaac_ros_nitros/gxf/include/gxf/multimedia/video.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/multimedia/video.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_MULTIMEDIA_VIDEO_HPP_ #define NVIDIA_GXF_MULTIMEDIA_VIDEO_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/network/tcp_client.hpp b/isaac_ros_nitros/gxf/include/gxf/network/tcp_client.hpp index abd03ba..5756a7a 100644 --- a/isaac_ros_nitros/gxf/include/gxf/network/tcp_client.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/network/tcp_client.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_NETWORK_TCP_CLIENT_HPP_ #define NVIDIA_GXF_NETWORK_TCP_CLIENT_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/network/tcp_server.hpp b/isaac_ros_nitros/gxf/include/gxf/network/tcp_server.hpp index ec178b5..f039536 100644 --- a/isaac_ros_nitros/gxf/include/gxf/network/tcp_server.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/network/tcp_server.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_NETWORK_TCP_SERVER_HPP_ #define NVIDIA_GXF_NETWORK_TCP_SERVER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/npp/nppi_mul_c.hpp b/isaac_ros_nitros/gxf/include/gxf/npp/nppi_mul_c.hpp index b52d1b6..537d7cc 100644 --- a/isaac_ros_nitros/gxf/include/gxf/npp/nppi_mul_c.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/npp/nppi_mul_c.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_NPP_NPPI_MUL_C_HPP #define NVIDIA_GXF_NPP_NPPI_MUL_C_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/npp/nppi_set.hpp b/isaac_ros_nitros/gxf/include/gxf/npp/nppi_set.hpp index 27f084f..b222220 100644 --- a/isaac_ros_nitros/gxf/include/gxf/npp/nppi_set.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/npp/nppi_set.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_NPP_NPPI_SET_HPP #define NVIDIA_GXF_NPP_NPPI_SET_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/python_codelet/py_codelet.hpp b/isaac_ros_nitros/gxf/include/gxf/python_codelet/py_codelet.hpp index 8825188..7f86d93 100644 --- a/isaac_ros_nitros/gxf/include/gxf/python_codelet/py_codelet.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/python_codelet/py_codelet.hpp @@ -1,12 +1,20 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ #ifndef NVIDIA_GXF_PY_CODELET_HPP_ #define NVIDIA_GXF_PY_CODELET_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/sample/ping_rx.hpp b/isaac_ros_nitros/gxf/include/gxf/sample/ping_rx.hpp index 52dcf54..8dea250 100644 --- a/isaac_ros_nitros/gxf/include/gxf/sample/ping_rx.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/sample/ping_rx.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SAMPLE_PING_RX_HPP_ #define NVIDIA_GXF_SAMPLE_PING_RX_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/sample/ping_tx.hpp b/isaac_ros_nitros/gxf/include/gxf/sample/ping_tx.hpp index d2c07cd..0ad5660 100644 --- a/isaac_ros_nitros/gxf/include/gxf/sample/ping_tx.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/sample/ping_tx.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SAMPLE_PING_TX_HPP_ #define NVIDIA_GXF_SAMPLE_PING_TX_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/component_serializer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/component_serializer.hpp index 0e50a6f..11279fc 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/component_serializer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/component_serializer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_COMPONENT_SERIALIZER_HPP_ #define NVIDIA_GXF_SERIALIZATION_COMPONENT_SERIALIZER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/endpoint.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/endpoint.hpp index 2d204e9..3d43f7d 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/endpoint.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/endpoint.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_ENDPOINT_HPP_ #define NVIDIA_GXF_SERIALIZATION_ENDPOINT_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/entity_recorder.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/entity_recorder.hpp index 70a4bff..d20f9db 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/entity_recorder.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/entity_recorder.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_ENTITY_RECORDER_HPP_ #define NVIDIA_GXF_SERIALIZATION_ENTITY_RECORDER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/entity_replayer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/entity_replayer.hpp index fc90a5b..2fb1e36 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/entity_replayer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/entity_replayer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_ENTITY_REPLAYER_HPP_ #define NVIDIA_GXF_SERIALIZATION_ENTITY_REPLAYER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/entity_serializer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/entity_serializer.hpp index fa96e1d..7c9463a 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/entity_serializer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/entity_serializer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_ENTITY_SERIALIZER_HPP_ #define NVIDIA_GXF_SERIALIZATION_ENTITY_SERIALIZER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/file.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/file.hpp index 0923252..c525e49 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/file.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/file.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_FILE_HPP_ #define NVIDIA_GXF_SERIALIZATION_FILE_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/file_stream.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/file_stream.hpp index 51a4603..526a808 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/file_stream.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/file_stream.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_FILE_STREAM_HPP_ #define NVIDIA_GXF_SERIALIZATION_FILE_STREAM_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/serialization_buffer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/serialization_buffer.hpp index a97da93..81611a4 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/serialization_buffer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/serialization_buffer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_SERIALIZATION_BUFFER_HPP_ #define NVIDIA_GXF_SERIALIZATION_SERIALIZATION_BUFFER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/std_component_serializer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/std_component_serializer.hpp index 1b5eb62..6e8468a 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/std_component_serializer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/std_component_serializer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_STD_COMPONENT_SERIALIZER_HPP_ #define NVIDIA_GXF_SERIALIZATION_STD_COMPONENT_SERIALIZER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_id_serializer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_id_serializer.hpp index 91614f9..cd359c1 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_id_serializer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_id_serializer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_STD_ENTITY_ID_SERIALIZER_HPP_ #define NVIDIA_GXF_SERIALIZATION_STD_ENTITY_ID_SERIALIZER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_serializer.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_serializer.hpp index 6b392ec..5f914de 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_serializer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/std_entity_serializer.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_STD_ENTITY_SERIALIZER_HPP_ #define NVIDIA_GXF_SERIALIZATION_STD_ENTITY_SERIALIZER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/tests/serialization_tester.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/tests/serialization_tester.hpp index 60df2ef..5553bab 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/tests/serialization_tester.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/tests/serialization_tester.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_TESTS_SERIALIZATION_TESTER_HPP_ #define NVIDIA_GXF_SERIALIZATION_TESTS_SERIALIZATION_TESTER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/serialization/tid_hash.hpp b/isaac_ros_nitros/gxf/include/gxf/serialization/tid_hash.hpp index ab3794b..53807fc 100644 --- a/isaac_ros_nitros/gxf/include/gxf/serialization/tid_hash.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/serialization/tid_hash.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_SERIALIZATION_TID_HASH_HPP_ #define NVIDIA_GXF_SERIALIZATION_TID_HASH_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/allocator.hpp b/isaac_ros_nitros/gxf/include/gxf/std/allocator.hpp index 5dfed1f..c9ba41c 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/allocator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/allocator.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_ALLOCATOR_HPP #define NVIDIA_GXF_STD_ALLOCATOR_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/clock.hpp b/isaac_ros_nitros/gxf/include/gxf/std/clock.hpp index d2509c5..800fae4 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/clock.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/clock.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_CLOCK_HPP_ #define NVIDIA_GXF_STD_CLOCK_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/codelet.hpp b/isaac_ros_nitros/gxf/include/gxf/std/codelet.hpp index a838c7d..bc671f5 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/codelet.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/codelet.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #pragma once #include diff --git a/isaac_ros_nitros/gxf/include/gxf/std/component_allocator.hpp b/isaac_ros_nitros/gxf/include/gxf/std/component_allocator.hpp index ed11b14..a169f2c 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/component_allocator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/component_allocator.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_COMPONENT_ALLOCATOR_HPP #define NVIDIA_GXF_STD_COMPONENT_ALLOCATOR_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/component_factory.hpp b/isaac_ros_nitros/gxf/include/gxf/std/component_factory.hpp index 21c9880..5629615 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/component_factory.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/component_factory.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_COMPONENT_FACTORY_HPP #define NVIDIA_GXF_STD_COMPONENT_FACTORY_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/default_extension.hpp b/isaac_ros_nitros/gxf/include/gxf/std/default_extension.hpp index bcc4612..db0097f 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/default_extension.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/default_extension.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_DEFAULT_EXTENSION_HPP_ #define NVIDIA_GXF_STD_DEFAULT_EXTENSION_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/double_buffer_receiver.hpp b/isaac_ros_nitros/gxf/include/gxf/std/double_buffer_receiver.hpp index d4cb548..2eb4b66 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/double_buffer_receiver.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/double_buffer_receiver.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef DOUBLE_BUFFER_RECEIVER_HPP #define DOUBLE_BUFFER_RECEIVER_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/extension.hpp b/isaac_ros_nitros/gxf/include/gxf/std/extension.hpp index 15b018b..06400e7 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/extension.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/extension.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_EXTENSION_HPP #define NVIDIA_GXF_STD_EXTENSION_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/extension_factory_helper.hpp b/isaac_ros_nitros/gxf/include/gxf/std/extension_factory_helper.hpp index 02852fa..bec88cb 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/extension_factory_helper.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/extension_factory_helper.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_FACTORY_HPP #define NVIDIA_GXF_CORE_FACTORY_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue.hpp b/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue.hpp index 0cce6bc..f5fab7c 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_GEMS_STAGING_QUEUE_HPP #define NVIDIA_GXF_STD_GEMS_STAGING_QUEUE_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue_iterator.hpp b/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue_iterator.hpp index 3eb14a6..3ecf122 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue_iterator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/gems/staging_queue/staging_queue_iterator.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_GEMS_STAGING_QUEUE_ITERATOR_HPP #define NVIDIA_GXF_STD_GEMS_STAGING_QUEUE_ITERATOR_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/memory_buffer.hpp b/isaac_ros_nitros/gxf/include/gxf/std/memory_buffer.hpp index 3d492f1..c471a0c 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/memory_buffer.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/memory_buffer.hpp @@ -1,13 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_MEMORY_BUFFER_HPP_ #define NVIDIA_GXF_STD_MEMORY_BUFFER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/metric.hpp b/isaac_ros_nitros/gxf/include/gxf/std/metric.hpp index 1fed7f0..a96aa5b 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/metric.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/metric.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_METRIC_HPP_ #define NVIDIA_GXF_STD_METRIC_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/monitor.hpp b/isaac_ros_nitros/gxf/include/gxf/std/monitor.hpp index 5f82cea..a465b71 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/monitor.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/monitor.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_MONITOR_HPP_ #define NVIDIA_GXF_STD_MONITOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/new_component_allocator.hpp b/isaac_ros_nitros/gxf/include/gxf/std/new_component_allocator.hpp index bb68230..680389f 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/new_component_allocator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/new_component_allocator.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_NEW_COMPONENT_ALLOCATOR_HPP #define NVIDIA_GXF_STD_NEW_COMPONENT_ALLOCATOR_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser.hpp b/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser.hpp index b2aff99..9fe8971 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_PARAMETER_PARSER_HPP_ #define NVIDIA_GXF_STD_PARAMETER_PARSER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser_std.hpp b/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser_std.hpp index 9999687..8df3572 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser_std.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/parameter_parser_std.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_PARAMETER_PARSER_STD_HPP_ #define NVIDIA_GXF_STD_PARAMETER_PARSER_STD_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/parameter_registrar.hpp b/isaac_ros_nitros/gxf/include/gxf/std/parameter_registrar.hpp index cfc6f31..9bcd92d 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/parameter_registrar.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/parameter_registrar.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_PARAMETER_REGISTRAR_HPP_ #define NVIDIA_GXF_STD_PARAMETER_REGISTRAR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/parameter_storage.hpp b/isaac_ros_nitros/gxf/include/gxf/std/parameter_storage.hpp index 8ec1c3c..466964b 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/parameter_storage.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/parameter_storage.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_PARAMETER_STORAGE_HPP_ #define NVIDIA_GXF_STD_PARAMETER_STORAGE_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/queue.hpp b/isaac_ros_nitros/gxf/include/gxf/std/queue.hpp index c6c3f6d..350b125 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/queue.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/queue.hpp @@ -1,12 +1,20 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 202-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ + #ifndef NVIDIA_GXF_STD_QUEUE_HPP #define NVIDIA_GXF_STD_QUEUE_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/receiver.hpp b/isaac_ros_nitros/gxf/include/gxf/std/receiver.hpp index aea76aa..7d020ab 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/receiver.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/receiver.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_RECEIVER_HPP #define NVIDIA_GXF_STD_RECEIVER_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/scheduling_condition.hpp b/isaac_ros_nitros/gxf/include/gxf/std/scheduling_condition.hpp index 5271734..554886b 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/scheduling_condition.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/scheduling_condition.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_SCHEDULING_CONDITION_HPP #define NVIDIA_GXF_STD_SCHEDULING_CONDITION_HPP #include diff --git a/isaac_ros_nitros/gxf/include/gxf/std/scheduling_term.hpp b/isaac_ros_nitros/gxf/include/gxf/std/scheduling_term.hpp index fc6bc8e..3adeabc 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/scheduling_term.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/scheduling_term.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_SCHEDULING_TERM_HPP #define NVIDIA_GXF_STD_SCHEDULING_TERM_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/scheduling_terms.hpp b/isaac_ros_nitros/gxf/include/gxf/std/scheduling_terms.hpp index a21470a..f93db18 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/scheduling_terms.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/scheduling_terms.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_SCHEDULING_TERMS_HPP_ #define NVIDIA_GXF_STD_SCHEDULING_TERMS_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/system.hpp b/isaac_ros_nitros/gxf/include/gxf/std/system.hpp index cba349f..76c717c 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/system.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/system.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_CORE_SYSTEM_HPP #define NVIDIA_GXF_CORE_SYSTEM_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/tensor.hpp b/isaac_ros_nitros/gxf/include/gxf/std/tensor.hpp index 7031471..871bb4d 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/tensor.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/tensor.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #pragma once #include diff --git a/isaac_ros_nitros/gxf/include/gxf/std/timestamp.hpp b/isaac_ros_nitros/gxf/include/gxf/std/timestamp.hpp index 4538714..c3f7f01 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/timestamp.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/timestamp.hpp @@ -1,12 +1,20 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 202-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ #ifndef NVIDIA_GXF_STD_TIMESTAMP_HPP #define NVIDIA_GXF_STD_TIMESTAMP_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/transmitter.hpp b/isaac_ros_nitros/gxf/include/gxf/std/transmitter.hpp index a2b3650..7b7478d 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/transmitter.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/transmitter.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_TRANSMITTER_HPP #define NVIDIA_GXF_STD_TRANSMITTER_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/type_registry.hpp b/isaac_ros_nitros/gxf/include/gxf/std/type_registry.hpp index ea1d97e..72a2f37 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/type_registry.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/type_registry.hpp @@ -1,18 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. 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-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_TYPE_REGISTRY_HPP #define NVIDIA_GXF_STD_TYPE_REGISTRY_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/std/vault.hpp b/isaac_ros_nitros/gxf/include/gxf/std/vault.hpp index 8f57777..20823be 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/vault.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/vault.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_VAULT_HPP_ #define NVIDIA_GXF_STD_VAULT_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/std/yaml_file_loader.hpp b/isaac_ros_nitros/gxf/include/gxf/std/yaml_file_loader.hpp index 187e5a5..7d95d07 100644 --- a/isaac_ros_nitros/gxf/include/gxf/std/yaml_file_loader.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/std/yaml_file_loader.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_STD_YAML_FILE_LOADER_HPP_ #define NVIDIA_GXF_STD_YAML_FILE_LOADER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tensor_rt_inference.hpp b/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tensor_rt_inference.hpp index bc2f550..0cfe4c4 100644 --- a/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tensor_rt_inference.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tensor_rt_inference.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_EXTENSIONS_TENSOR_RT_TENSOR_RT_INFERENCE_HPP_ #define NVIDIA_GXF_EXTENSIONS_TENSOR_RT_TENSOR_RT_INFERENCE_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tests/tensor_checker.hpp b/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tests/tensor_checker.hpp index 390220c..99fee9e 100644 --- a/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tests/tensor_checker.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/tensor_rt/tests/tensor_checker.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_EXTENSIONS_TENSOR_RT_TEST_TENSOR_CHECKER_HPP_ #define NVIDIA_GXF_EXTENSIONS_TENSOR_RT_TEST_TENSOR_CHECKER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/components/entity_monitor.hpp b/isaac_ros_nitros/gxf/include/gxf/test/components/entity_monitor.hpp index 4b6a0db..bc1fcad 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/components/entity_monitor.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/components/entity_monitor.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_EXTENSIONS_ENTITY_MONITOR_HPP_ #define NVIDIA_GXF_TEST_EXTENSIONS_ENTITY_MONITOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/components/mock_allocator.hpp b/isaac_ros_nitros/gxf/include/gxf/test/components/mock_allocator.hpp index 5a83071..be0fa02 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/components/mock_allocator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/components/mock_allocator.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_COMPONENTS_MOCK_ALLOCATOR_HPP_ #define NVIDIA_GXF_TEST_COMPONENTS_MOCK_ALLOCATOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/components/mock_receiver.hpp b/isaac_ros_nitros/gxf/include/gxf/test/components/mock_receiver.hpp index f2020ec..46426b6 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/components/mock_receiver.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/components/mock_receiver.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_COMPONENTS_MOCK_RECEIVER_HPP_ #define NVIDIA_GXF_TEST_COMPONENTS_MOCK_RECEIVER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/components/mock_transmitter.hpp b/isaac_ros_nitros/gxf/include/gxf/test/components/mock_transmitter.hpp index 2dfdd97..ef229a8 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/components/mock_transmitter.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/components/mock_transmitter.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_COMPONENTS_MOCK_TRANSMITTER_HPP_ #define NVIDIA_GXF_TEST_COMPONENTS_MOCK_TRANSMITTER_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_comparator.hpp b/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_comparator.hpp index c963994..ebf58ec 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_comparator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_comparator.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_EXTENSIONS_TENSOR_COMPARATOR_HPP #define NVIDIA_GXF_TEST_EXTENSIONS_TENSOR_COMPARATOR_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_generator.hpp b/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_generator.hpp index b7044f2..1ea2061 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_generator.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/components/tensor_generator.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_EXTENSIONS_TENSOR_GENERATOR_HPP_ #define NVIDIA_GXF_TEST_EXTENSIONS_TENSOR_GENERATOR_HPP_ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/extensions/LICENSE b/isaac_ros_nitros/gxf/include/gxf/test/extensions/LICENSE index c8e7adf..7ffd097 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/extensions/LICENSE +++ b/isaac_ros_nitros/gxf/include/gxf/test/extensions/LICENSE @@ -1,12 +1,18 @@ ################################################################################ -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 # -# NVIDIA Corporation and its licensors retain all intellectual property -# and proprietary rights in and to this software, related documentation -# and any modifications thereto. Any use, reproduction, disclosure or -# distribution of this software and related documentation without an express -# license agreement from NVIDIA Corporation is strictly prohibited. +# 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. ################################################################################ diff --git a/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_helpers.hpp b/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_helpers.hpp index 2af5204..b144ee8 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_helpers.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_helpers.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020-2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_EXTENSIONS_TEST_HELPERS_HPP #define NVIDIA_GXF_TEST_EXTENSIONS_TEST_HELPERS_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_metric.hpp b/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_metric.hpp index 706287e..f500f48 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_metric.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_metric.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_EXTENSIONS_TEST_METRIC_HPP #define NVIDIA_GXF_TEST_EXTENSIONS_TEST_METRIC_HPP diff --git a/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_parameters.hpp b/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_parameters.hpp index 3def271..3eb18d0 100644 --- a/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_parameters.hpp +++ b/isaac_ros_nitros/gxf/include/gxf/test/extensions/test_parameters.hpp @@ -1,12 +1,19 @@ /* -Copyright (c) 2020-2021, NVIDIA CORPORATION. All rights reserved. - -NVIDIA CORPORATION and its licensors retain all intellectual property -and proprietary rights in and to this software, related documentation -and any modifications thereto. Any use, reproduction, disclosure or -distribution of this software and related documentation without an express -license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ + * SPDX-FileCopyrightText: Copyright (c) 2020-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * 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. + */ #ifndef NVIDIA_GXF_TEST_EXTENSIONS_TEST_PARAMETERS_HPP_ #define NVIDIA_GXF_TEST_EXTENSIONS_TEST_PARAMETERS_HPP_ @@ -439,6 +446,94 @@ class TestHandleParameter : public Component { Parameter> pool_; }; +// Tests various parameters with GxfParameterSetFromYamlNode() API +class TestGxfParameterSetFromYamlNode : public Component { + public: + gxf_result_t initialize() override { return GXF_SUCCESS; } + + gxf_result_t registerInterface(Registrar* registrar) override { + Expected result; + result &= registrar->parameter(bool_, "bool"); + result &= registrar->parameter(int8_, "int8"); + result &= registrar->parameter(int16_, "int16"); + result &= registrar->parameter(int32_, "int32"); + result &= registrar->parameter(int64_, "int64"); + result &= registrar->parameter(uint8_, "uint8"); + result &= registrar->parameter(uint16_, "uint16"); + result &= registrar->parameter(uint32_, "uint32"); + result &= registrar->parameter(uint64_, "uint64"); + result &= registrar->parameter(float_, "float"); + result &= registrar->parameter(double_, "double"); + result &= registrar->parameter(string_, "string"); + result &= registrar->parameter(handle_, "handle"); + result &= registrar->parameter(vector_bool_, "vector_bool"); + result &= registrar->parameter(vector_int8_, "vector_int8"); + result &= registrar->parameter(vector_int16_, "vector_int16"); + result &= registrar->parameter(vector_int32_, "vector_int32"); + result &= registrar->parameter(vector_int64_, "vector_int64"); + result &= registrar->parameter(vector_uint8_, "vector_uint8"); + result &= registrar->parameter(vector_uint16_, "vector_uint16"); + result &= registrar->parameter(vector_uint32_, "vector_uint32"); + result &= registrar->parameter(vector_uint64_, "vector_uint64"); + result &= registrar->parameter(vector_float_, "vector_float"); + result &= registrar->parameter(vector_double_, "vector_double"); + result &= registrar->parameter(vector_handle_, "vector_handle"); + result &= registrar->parameter(vector_string_, "vector_string"); + result &= registrar->parameter(vector_2d_bool_, "vector_2d_bool"); + result &= registrar->parameter(vector_2d_int8_, "vector_2d_int8"); + result &= registrar->parameter(vector_2d_int16_, "vector_2d_int16"); + result &= registrar->parameter(vector_2d_int32_, "vector_2d_int32"); + result &= registrar->parameter(vector_2d_int64_, "vector_2d_int64"); + result &= registrar->parameter(vector_2d_uint8_, "vector_2d_uint8"); + result &= registrar->parameter(vector_2d_uint16_, "vector_2d_uint16"); + result &= registrar->parameter(vector_2d_uint32_, "vector_2d_uint32"); + result &= registrar->parameter(vector_2d_uint64_, "vector_2d_uint64"); + result &= registrar->parameter(vector_2d_float_, "vector_2d_float"); + result &= registrar->parameter(vector_2d_double_, "vector_2d_double"); + result &= registrar->parameter(vector_2d_string_, "vector_2d_string"); + return ToResultCode(result); + } + + Parameter bool_; + Parameter int8_; + Parameter int16_; + Parameter int32_; + Parameter int64_; + Parameter uint8_; + Parameter uint16_; + Parameter uint32_; + Parameter uint64_; + Parameter float_; + Parameter double_; + Parameter string_; + Parameter> handle_; + Parameter> vector_bool_; + Parameter> vector_int8_; + Parameter> vector_int16_; + Parameter> vector_int32_; + Parameter> vector_int64_; + Parameter> vector_uint8_; + Parameter> vector_uint16_; + Parameter> vector_uint32_; + Parameter> vector_uint64_; + Parameter> vector_float_; + Parameter> vector_double_; + Parameter>> vector_handle_; + Parameter> vector_string_; + Parameter>> vector_2d_bool_; + Parameter>> vector_2d_int8_; + Parameter>> vector_2d_int16_; + Parameter>> vector_2d_int32_; + Parameter>> vector_2d_int64_; + Parameter>> vector_2d_uint8_; + Parameter>> vector_2d_uint16_; + Parameter>> vector_2d_uint32_; + Parameter>> vector_2d_uint64_; + Parameter>> vector_2d_float_; + Parameter>> vector_2d_double_; + Parameter>> vector_2d_string_; +}; + } // namespace test } // namespace gxf } // namespace nvidia diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/behavior_tree/libgxf_behavior_tree.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/behavior_tree/libgxf_behavior_tree.so deleted file mode 100755 index d63c309..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/behavior_tree/libgxf_behavior_tree.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:909d3f57a440795d96216e0f642e68f00d5d07859ad3d68efa8b01aae1e24eb9 -size 2098568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/core/core_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/core/core_pybind.so deleted file mode 100755 index 6747842..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/core/core_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2dbc36e0a3159c355a5c1175b12b232d9f329fd2481ac82d0eba8f0ec5523104 -size 2196712 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/core/libgxf_core.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/core/libgxf_core.so deleted file mode 100755 index 666709b..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/core/libgxf_core.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c4019cd89daa297d877365d2e1008d225516aa47687d54f72e63e4b49bce19c -size 1479416 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/cuda/cuda_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/cuda/cuda_pybind.so deleted file mode 100755 index bd49745..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/cuda/cuda_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29783198b62f6eb01c5bf7836401b91485eefc3502b84db76650adf9979d81b6 -size 1822392 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/cuda/libgxf_cuda.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/cuda/libgxf_cuda.so deleted file mode 100755 index dcdc55b..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/cuda/libgxf_cuda.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d627a4352c9313041a2b6e0f25b79da847c2a49c5f113b02e88cfe81d1e89a1a -size 1709592 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/dw/libgxf_dw.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/dw/libgxf_dw.so deleted file mode 100755 index 066223f..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/dw/libgxf_dw.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c00db43313cfc440f2dd0b132d75f8a1f9f37603ca6f96f4b350a08157db0acb -size 2438352 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_image_flip.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_image_flip.so deleted file mode 100755 index fc06ad2..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_image_flip.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c7587003ffa6097acbe3a2f3fa6595f45f0dabf90c9f7dc26a0117be6553257 -size 164248 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_message_compositor.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_message_compositor.so deleted file mode 100644 index 530a263..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_message_compositor.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eecac3b0a405d9a9faf8e3c2b9626811c27f64b250f9e7870899357d2036fc51 -size 167648 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_multimedia.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_multimedia.so deleted file mode 100755 index 905a35d..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_multimedia.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:712d6a3551852be84248b468d1087115afe3e4dfac4f85670bb08016e53941be -size 1957296 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_optimizer.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_optimizer.so deleted file mode 100755 index 42a908e..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_optimizer.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6f10232b90eabd7c1000d83000b9210a952f59211df23bf3e642730020207a9c -size 1105448 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_ros_bridge.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_ros_bridge.so deleted file mode 100755 index 7106485..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_ros_bridge.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4fcdea6d17e944f247464d71251d273e4ba79c2a69b8b9c2e72018e7d8abf1e -size 1030544 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_test.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_test.so deleted file mode 100755 index 6c6359d..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_test.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65881e57863cae7a18167170fcc75730ef72228797103d06281b0af798150332 -size 3047616 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/multimedia/libgxf_multimedia.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/multimedia/libgxf_multimedia.so deleted file mode 100755 index 905a35d..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/multimedia/libgxf_multimedia.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:712d6a3551852be84248b468d1087115afe3e4dfac4f85670bb08016e53941be -size 1957296 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/network/libgxf_network.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/network/libgxf_network.so deleted file mode 100755 index aa03974..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/network/libgxf_network.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17ebc8a869c17c5f5d3b9b3dd916debf587f621d647102add3a68d9ca22768c3 -size 1992256 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/npp/libgxf_npp.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/npp/libgxf_npp.so deleted file mode 100755 index 48ac9ed..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/npp/libgxf_npp.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:34e2fec6464ead1f88efa503215155645eefac43a095c8ed0f37459279ee236f -size 1976464 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/nvdsinferutils/libnvds_dbscan.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/nvdsinferutils/libnvds_dbscan.so deleted file mode 100755 index 774a83c..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/nvdsinferutils/libnvds_dbscan.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cc2e6fe6728afbad88f7ecb0c295519b31c06b3119c07c64b23d7fbe03c4fb4 -size 23656 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/python_codelet/libgxf_python_codelet.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/python_codelet/libgxf_python_codelet.so deleted file mode 100755 index ad34268..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/python_codelet/libgxf_python_codelet.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86a246e7510274a4e1bf25b84a24672087693b976e0d27b05b6b3200c10fdd08 -size 2123552 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/python_codelet/pycodelet.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/python_codelet/pycodelet.so deleted file mode 100755 index 337a13a..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/python_codelet/pycodelet.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e30324b13974df040361c8208a3522e2afdf5f5b86934beb8d51b093ca62d07 -size 2168248 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/sample/libgxf_sample.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/sample/libgxf_sample.so deleted file mode 100755 index daf9aba..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/sample/libgxf_sample.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:581a0650611aa02b87b620b2751c5ff3e1e27ab0dcaa8b803bb608659a19ec36 -size 1953464 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/serialization/libgxf_serialization.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/serialization/libgxf_serialization.so deleted file mode 100755 index 3322ad8..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/serialization/libgxf_serialization.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ee3a918fdf63372f85e777694645c372706d16ee1a997a0db1d9ad800c5c4d9 -size 2201160 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/allocator_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/allocator_pybind.so deleted file mode 100755 index d533a34..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/allocator_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4807fb469ac4baa7f60dc8fc8a574242a6b9dc38ed69ed0f40d1bca3e9e7f365 -size 2054640 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/clock_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/clock_pybind.so deleted file mode 100755 index a82dfa7..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/clock_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab526321134dc14eb5a0e5c27eacdcbd9a7b30a0ac1ef7f9179e068d3147bbed -size 2037792 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/libgxf_std.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/libgxf_std.so deleted file mode 100755 index 4e99808..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/libgxf_std.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c5a9b05569b475c5ab4436376977be2c5aa677363e53604bbe1c03035136c1d -size 2157440 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/receiver_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/receiver_pybind.so deleted file mode 100755 index d688d1a..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/receiver_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4df982169973ea0a670826258bf55628e7c47439b5ed99651e619a6f00713aea -size 2053672 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/tensor_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/tensor_pybind.so deleted file mode 100755 index 9e5d51f..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/tensor_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:db94e2eb4d6b2f218fc16fc955e35b54efc7b625e0c3c32e83f4ad59cb3343af -size 2218024 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/timestamp_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/timestamp_pybind.so deleted file mode 100755 index 1325aea..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/timestamp_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5e1b0e7805a7bbbb8d91c5fbc395ee00c27928a12ec2eee4a19aaa28c813706 -size 2023896 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/transmitter_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/transmitter_pybind.so deleted file mode 100755 index 2b91b53..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/transmitter_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd6a5ffbc7163d89a4a7949bd6de5e79cf122f1bb30cbf9bdb330f98e99e38f1 -size 2043840 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/vault_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/vault_pybind.so deleted file mode 100755 index b10b109..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/std/vault_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:851c374c045eb86bd4ca7fb6df5052ea97b9b1713d5394d8438ab9ff75087e75 -size 2029920 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensor_rt/libgxf_tensor_rt.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensor_rt/libgxf_tensor_rt.so deleted file mode 100755 index dd4029c..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensor_rt/libgxf_tensor_rt.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c00bf815b8a9ec11081eaccce36946287daf32d6edd4fcc39bd11cf9142c4c83 -size 2078648 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libgxf_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libgxf_tensorops.so deleted file mode 100755 index c108952..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libgxf_tensorops.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8108b2541d7735918a0f2951020a53fdd04b14aad95481196d4131b7d75ee4e8 -size 2627984 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libnvcv_tensorops.so deleted file mode 100755 index 79a1f36..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libnvcv_tensorops.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6ddc83d6576fcae0c92a34c02b30858b742c0cae5dda54095299209bb9333438 -size 295992 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/behavior_tree/libgxf_behavior_tree.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/behavior_tree/libgxf_behavior_tree.so new file mode 100755 index 0000000..1907a4c --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/behavior_tree/libgxf_behavior_tree.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33b057ddd2702ddbdb384ed5d7609c0c53ddbfcc996e31298083e538f1a6e3ee +size 2098760 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libgxf_bi3d_postprocessor.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libgxf_bi3d_postprocessor.so new file mode 100755 index 0000000..cfbc443 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libgxf_bi3d_postprocessor.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1c0238952b11a230afd491b9dfef8882522ab2623e490fa2cb57a66a643b849 +size 220688 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libgxf_cvcore_bi3d.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libgxf_cvcore_bi3d.so new file mode 100755 index 0000000..1bdf6c4 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libgxf_cvcore_bi3d.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066f2da3f369df89e1a4954a549de96d2bce9ef5649cd34ed06e773582c2dd56 +size 2150416 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_bi3d.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_bi3d.so new file mode 100755 index 0000000..d6146af --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_bi3d.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5297adbace477f1f3c84aa8a10108770c6ef4e88f31bd542c610b5985cb016e3 +size 83568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libnvcv_core.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_core.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_jetpack50/tensorops/libnvcv_core.so rename to isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_core.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_inferencer.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_inferencer.so new file mode 100755 index 0000000..777d011 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_inferencer.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a48ce0cc3986bc286697b34bdd51e77f53ec77a7466380704f400327be614751 +size 61488 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_tensorops.so new file mode 100755 index 0000000..e86c2bb --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94e2f10048dfefdfec3c084b42fb42c17e7c6eaa7dd5078d5904fa6c1511888 +size 295992 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_trtbackend.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_trtbackend.so new file mode 100755 index 0000000..00c50a7 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/bi3d/libnvcv_trtbackend.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:289bef727caa168a3f52d3d6a278307c2b874fb0b00d6526962905063e25fe84 +size 47264 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/core/core_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/core/core_pybind.so new file mode 100755 index 0000000..6e78c73 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/core/core_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ba84e71f448ffdc0e55116d091672ad3ede5e24683dc6454075a43be65fb18b +size 2196904 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/core/libgxf_core.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/core/libgxf_core.so new file mode 100755 index 0000000..3f35467 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/core/libgxf_core.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4decbc622f9a7ab2283379d68860c50c4d9f40e33136f18437c6484447416c28 +size 1479600 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/cuda/cuda_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/cuda/cuda_pybind.so new file mode 100755 index 0000000..cde1a9c --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/cuda/cuda_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c69397decb37d02d4f904dca7e56ffa99acaf9df2b445b176402999c9414d66 +size 1822576 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/cuda/libgxf_cuda.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/cuda/libgxf_cuda.so new file mode 100755 index 0000000..a7cf400 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/cuda/libgxf_cuda.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:904120714b4fb4650e406bd76988db9b249f9c472472c0e1338e91f74b63eadb +size 1709776 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libgxf_cvcore_ess.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libgxf_cvcore_ess.so new file mode 100755 index 0000000..f2f6966 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libgxf_cvcore_ess.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ae62591b1bec65732aa360bcc9677e03f3119e896216887da3537b96d8ce44b +size 2143440 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_core.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_core.so new file mode 100755 index 0000000..517db51 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_core.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aefbb7610d7dafcad34a5ea582b9fcb5a5ce34a87980b8734dad55ecd6cd021e +size 182712 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_ess.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_ess.so new file mode 100755 index 0000000..21b6944 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_ess.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd4d111ee47514909b4ab2bd47ed944b7d6ef7236377ec43b9b8233b99d89231 +size 58000 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_inferencer.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_inferencer.so new file mode 100755 index 0000000..777d011 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_inferencer.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a48ce0cc3986bc286697b34bdd51e77f53ec77a7466380704f400327be614751 +size 61488 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_tensorops.so new file mode 100755 index 0000000..e86c2bb --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94e2f10048dfefdfec3c084b42fb42c17e7c6eaa7dd5078d5904fa6c1511888 +size 295992 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_trtbackend.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_trtbackend.so new file mode 100755 index 0000000..00c50a7 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/ess/libnvcv_trtbackend.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:289bef727caa168a3f52d3d6a278307c2b874fb0b00d6526962905063e25fe84 +size 47264 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_argus.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_argus.so new file mode 100755 index 0000000..c96d1ba --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_argus.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f138fb54a589353eb678d8bb686d9c1d20c4065ebe13af57e14d66efe50007e4 +size 2182224 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_atlas.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_atlas.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_atlas.so rename to isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_atlas.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_disparity_extension.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_disparity_extension.so new file mode 100755 index 0000000..6858011 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_disparity_extension.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fac091d2615c77fa1a9939bb74093ca78f14fe1c45274bb6a84a8c582c3155d5 +size 219504 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_dope.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_dope.so new file mode 100755 index 0000000..5cacde5 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_dope.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47f393f877c2d4c6e867251b377bd49bbda2abcb0c20048498529ac60ff0329e +size 195336 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_encoder_extension.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_encoder_extension.so new file mode 100644 index 0000000..d5e8bdc --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_encoder_extension.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83c359587ccbcaaf57b53c9cc8c9e49829c1a79ca4b1fa1ad84be4002d66f1fd +size 2305560 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_image_flip.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_image_flip.so new file mode 100755 index 0000000..537d859 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_image_flip.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c68f27ea1ff7388353eeba82908edde09cd8505bb62729e39c93dac7f4b4a7 +size 164248 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_isaac_messages.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_isaac_messages.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_isaac_messages.so rename to isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_isaac_messages.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_message_compositor.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_message_compositor.so new file mode 100755 index 0000000..f5861b2 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_message_compositor.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ced6a7c59a3ccf4239dfc20d00318a41dc2596b17e9200c1ba4667dc6bcfd1a +size 167648 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_occupancy_grid_projector.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_occupancy_grid_projector.so new file mode 100755 index 0000000..9e5e092 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_occupancy_grid_projector.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc988ac99045570551972d17ff72b163306c570a9c8d6cc9ec00fd36da58e5eb +size 256880 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_optimizer.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_optimizer.so new file mode 100755 index 0000000..0d3519a --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_optimizer.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77d5dc9ca3710bb02d0e5fa77dcbe718d8adf05e2e57929ab40849dc45699046 +size 1193976 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_point_cloud.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_point_cloud.so new file mode 100755 index 0000000..2ca9aa0 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_point_cloud.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67c9f53b9b832bad5f3043a1deed05b89a5118cadc3e2febea6ecdcd11be39a7 +size 386040 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_segmentation_postprocessor.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_segmentation_postprocessor.so new file mode 100755 index 0000000..d56f403 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_segmentation_postprocessor.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c14a898aee8067e4598df842d68e0ece56cc06b5aeebb785906870b3b75d2729 +size 871328 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_sight.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_sight.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_jetpack50/libgxf_sight.so rename to isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_sight.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_synchronization.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_synchronization.so new file mode 100755 index 0000000..023c25d --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_synchronization.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed4cbf0dad74e8bb3426297d43772db3aadd3bee461263b2767f15125dff55ee +size 141176 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_test.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_test.so new file mode 100755 index 0000000..7a67c63 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/libgxf_test.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f551ef62960091fff21de69c8fac56d5801b4d319a805af3127fe6784be81c6 +size 318552 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/multimedia/libgxf_multimedia.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/multimedia/libgxf_multimedia.so new file mode 100755 index 0000000..4dd9393 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/multimedia/libgxf_multimedia.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:005e89044f3bc1828a3fd6299867b595eb4026567d92b5ada6805f954bca0cb8 +size 1957488 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/network/libgxf_network.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/network/libgxf_network.so new file mode 100755 index 0000000..61849a5 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/network/libgxf_network.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47b5733143c8aa33dd1ca8d49b925f6131702f0712060282a64b7d239fa18f82 +size 1992464 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/npp/libgxf_npp.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/npp/libgxf_npp.so new file mode 100755 index 0000000..f5c70da --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/npp/libgxf_npp.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbadd7f331b364783e29db66df09e2192e65c1ce2591beba7c7b21b57d104fbb +size 1976648 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/python_codelet/libgxf_python_codelet.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/python_codelet/libgxf_python_codelet.so new file mode 100755 index 0000000..64bbfbe --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/python_codelet/libgxf_python_codelet.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:401a706570ef900a392eeaf239002fca28d7d633c6532f3ced08cf302088cb1e +size 2123736 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/python_codelet/pycodelet.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/python_codelet/pycodelet.so new file mode 100755 index 0000000..3ccaa1b --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/python_codelet/pycodelet.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f552f7cf9697c3e7ce122a70add378c21e4747ca8f55fc9c72f543d969fb05a +size 2173904 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/sample/libgxf_sample.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/sample/libgxf_sample.so new file mode 100755 index 0000000..97a84bc --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/sample/libgxf_sample.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93eaea52404554d760a22e7582b4d94f3ef4038e526c5b82d7a83fc92935e45f +size 1953648 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/serialization/libgxf_serialization.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/serialization/libgxf_serialization.so new file mode 100755 index 0000000..8b993c3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/serialization/libgxf_serialization.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dea05177a076ca9040b3f9465a758d91b9be557639d8b58ce2eab6c7b6ba2863 +size 2201352 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/allocator_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/allocator_pybind.so new file mode 100755 index 0000000..429a1f0 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/allocator_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f458eee81e163e1d4fefedcf8cbada84c3a54e6c87f81285ba8961ad33f0e36 +size 2054840 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/clock_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/clock_pybind.so new file mode 100755 index 0000000..be57254 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/clock_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abc8c9b84705180f47a416dd611be2110c0aa48c66deea1967622f3d81229e02 +size 2038000 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/libgxf_std.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/libgxf_std.so new file mode 100755 index 0000000..702a796 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/libgxf_std.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e04ad7169fa368564287480ee2218f10e16507cb797496878f3ca0880e6d80e +size 2157624 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/receiver_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/receiver_pybind.so new file mode 100755 index 0000000..51515a4 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/receiver_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d55a15696027add6908fc4ff9eefb6835327904687c3b714f461d69850084cba +size 2053856 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/tensor_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/tensor_pybind.so new file mode 100755 index 0000000..70c8aef --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/tensor_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:410fc1f5278bc63a995d9448f4b84d4e0bbf8b2ee7f585e32cdd1f9bc17e8b21 +size 2218232 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/timestamp_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/timestamp_pybind.so new file mode 100755 index 0000000..393951d --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/timestamp_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d4931d782bd5cbe2eb441e2a5eb4ec69418f88fd39e7128e2e55d9a2df165e8 +size 2024104 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/transmitter_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/transmitter_pybind.so new file mode 100755 index 0000000..ead7bdd --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/transmitter_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:097f5e8871a8f3508bfaa393431e991c23eb6dfaffa22cc185f3f880f912a684 +size 2048136 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/vault_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/vault_pybind.so new file mode 100755 index 0000000..58c2be3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/std/vault_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f74800c465ce8e83b9fa71438d1d2c8382e39b95b8df497c28052432ffd34fd +size 2030120 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensor_rt/libgxf_tensor_rt.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensor_rt/libgxf_tensor_rt.so new file mode 100755 index 0000000..7304cc3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensor_rt/libgxf_tensor_rt.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:243d8e9d1e8cae7569780fa6c2aff7b4de0fef576a758a706b3b1741113b3696 +size 2078856 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libgxf_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libgxf_tensorops.so new file mode 100755 index 0000000..66b9ed1 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libgxf_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7655065542fe8824d2fb00dd631915977f7eb3dbcd79ab00bed6ee7edc6cc959 +size 2653432 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libnvcv_core.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libnvcv_core.so new file mode 100755 index 0000000..517db51 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libnvcv_core.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aefbb7610d7dafcad34a5ea582b9fcb5a5ce34a87980b8734dad55ecd6cd021e +size 182712 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libnvcv_tensorops.so new file mode 100755 index 0000000..e86c2bb --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/tensorops/libnvcv_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94e2f10048dfefdfec3c084b42fb42c17e7c6eaa7dd5078d5904fa6c1511888 +size 295992 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libgxf_triton_ext.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libgxf_triton_ext.so new file mode 100755 index 0000000..4cee56f --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libgxf_triton_ext.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7d782aa869034db5794b1cd9666b76fe481b5ff2c4765592cca802701e9fd0b +size 5881552 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvbufsurface.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvbufsurface.so new file mode 100755 index 0000000..6b8229c --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvbufsurface.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:debe6b9ddd81e3b4089d77dbe94291b6f77579fb1517fbeb1a766c2ae715d780 +size 682256 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvbufsurftransform.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvbufsurftransform.so new file mode 100755 index 0000000..cff4ca2 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvbufsurftransform.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3df5b77ed6e5804577133002f6474aa0b49b14d0ffcd638c7ba4648a0c701bc +size 23002208 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_infer_server.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_infer_server.so new file mode 100755 index 0000000..0991a6d --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_infer_server.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82115df264e4241b7bf7cd20dbba6462daa9a2e7a4c0ac7d2b212ac3ef310e15 +size 7718832 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_inferlogger.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_inferlogger.so new file mode 100755 index 0000000..f77e8e1 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_inferlogger.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6e74f0c2f8aab1fff93b2998a4a300daf92799077b0a1404ec41bd0d6ee377a +size 14312 diff --git a/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_inferutils.so b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_inferutils.so new file mode 100755 index 0000000..9f16324 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_jetpack502/triton/libnvds_inferutils.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab146d44269965ae4937ac40c911a084beee704322e38ee0114c3b5a88a6e83d +size 100768 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/behavior_tree/libgxf_behavior_tree.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/behavior_tree/libgxf_behavior_tree.so deleted file mode 100755 index bb41f12..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/behavior_tree/libgxf_behavior_tree.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:739b57f47e8fdabd7ebf51aa41fb56a3bed1540af3707f86db45df8d0ab27a03 -size 2249512 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/core/core_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/core/core_pybind.so deleted file mode 100755 index 0f81718..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/core/core_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12d70a10f74645163af4ac6f3cbeecbe81f5c5d6707e87c4cb8a4323400f97e2 -size 2367096 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/core/libgxf_core.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/core/libgxf_core.so deleted file mode 100755 index 1cce416..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/core/libgxf_core.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c45fca8dd2609d3be7020a0a43f5ba3ead987977d7eb7d55012d50b675d7afd -size 1555968 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/cuda/cuda_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/cuda/cuda_pybind.so deleted file mode 100755 index d0ada37..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/cuda/cuda_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6174b78a3a7a8cf309ffdfc7023ae68c2f00d062347a532729923c7fc68a31b2 -size 1935616 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/cuda/libgxf_cuda.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/cuda/libgxf_cuda.so deleted file mode 100755 index f0be332..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/cuda/libgxf_cuda.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b3523dc22828d922232d547a0e0ee9825ca840305f27e1cbda09c7de7ba36de2 -size 1818688 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/dw/libgxf_dw.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/dw/libgxf_dw.so deleted file mode 100755 index 4c280b0..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/dw/libgxf_dw.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11ddac5f3dc6e04428fd64f6ddef65dca785c9dc28a8e48451a77c3ddda7c069 -size 2602080 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_image_flip.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_image_flip.so deleted file mode 100755 index dc31c09..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_image_flip.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55a05d18c296e295c9304dd7fceaffe5b3b1d9e2bfa9e27c0968d97e2b7bf40c -size 173472 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_message_compositor.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_message_compositor.so deleted file mode 100644 index 2b24a7b..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_message_compositor.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8319ce44e11d6b8436cfd596b7f452dc84bee98b6b1f87c265d2d49f13d46a05 -size 183976 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_multimedia.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_multimedia.so deleted file mode 100755 index 980dc03..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_multimedia.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8074b4b9a7f5abe66e871430fc1578e0149ce9f94c72c9d4131f6db13853545f -size 2099264 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_optimizer.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_optimizer.so deleted file mode 100755 index 6855c6a..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_optimizer.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:22d54fe0775ab729ed42213ed3fb5e057c159498239fe496ce0e719ad7818035 -size 1236072 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_ros_bridge.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_ros_bridge.so deleted file mode 100755 index 3338290..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_ros_bridge.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e476d156aeaab1a6f6a930c96da24b21d1e69bc0750b6cba595904d17afab363 -size 1054384 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_test.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_test.so deleted file mode 100755 index bfdb4a1..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_test.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5f9a60b5d3d77f307ce53636ee8980efbabb4ac8c85498ef94b7678754870a2b -size 3242840 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/multimedia/libgxf_multimedia.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/multimedia/libgxf_multimedia.so deleted file mode 100755 index 980dc03..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/multimedia/libgxf_multimedia.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8074b4b9a7f5abe66e871430fc1578e0149ce9f94c72c9d4131f6db13853545f -size 2099264 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/network/libgxf_network.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/network/libgxf_network.so deleted file mode 100755 index 371ce8e..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/network/libgxf_network.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fae461c7b363c8d9a3603c786c7a1b552bfe3791f8c71b7bbd7b47bb12117796 -size 2130576 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/npp/libgxf_npp.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/npp/libgxf_npp.so deleted file mode 100755 index 831d4e1..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/npp/libgxf_npp.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:832200dd0de5cc7dfb4024055a81e2db06b53868d15ad7c49ee8e5e6baf3cb38 -size 2120920 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/nvdsinferutils/libnvds_dbscan.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/nvdsinferutils/libnvds_dbscan.so deleted file mode 100755 index bc1c862..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/nvdsinferutils/libnvds_dbscan.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7e2876ddafaa176223df627aab8f71d8d5015998cf3c3472b16d272a1918d891 -size 26272 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/python_codelet/libgxf_python_codelet.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/python_codelet/libgxf_python_codelet.so deleted file mode 100755 index 80d336f..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/python_codelet/libgxf_python_codelet.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:845e1a1e9cb842d5a00dbd984b3a7b9d7088bcaa20191b4b9e66aa8e903905fb -size 2269744 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/python_codelet/pycodelet.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/python_codelet/pycodelet.so deleted file mode 100755 index 1309dea..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/python_codelet/pycodelet.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59a9d0d6ebc770483cb10419f44c0f6f11d9a26fc0f54dcc6991e42b2d1a1c31 -size 2312848 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/sample/libgxf_sample.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/sample/libgxf_sample.so deleted file mode 100755 index 2c83016..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/sample/libgxf_sample.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67b0dcb1fadfad417c1e7d99d716c61beba4c579f44f67eb46b6d90a0913e9fe -size 2090344 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/serialization/libgxf_serialization.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/serialization/libgxf_serialization.so deleted file mode 100755 index 4fe469c..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/serialization/libgxf_serialization.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdeabc55ab6a3a65ef2d63a70b1c20246dba6fbf938517a7108b4727b676bd6f -size 2361824 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/allocator_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/allocator_pybind.so deleted file mode 100755 index ac038f0..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/allocator_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d44fdbfe2350645a60144b2f60c50d3cf7107d00bc5d806972eaf32e49c1c28 -size 2195440 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/clock_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/clock_pybind.so deleted file mode 100755 index e101b8e..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/clock_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:093a7bae022b83b06e17a2504e37b61683e61a60d6a0f21d9957c784ae1c6833 -size 2183456 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/libgxf_std.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/libgxf_std.so deleted file mode 100755 index d53d002..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/libgxf_std.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8cd7664fb9a636f30a7bffda082f1507d0de60dada3b60e66155492f07decfa -size 2298336 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/receiver_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/receiver_pybind.so deleted file mode 100755 index f48940d..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/receiver_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:265594a79950cc2f936fddd174c5a883ead54dadcf931ab11fa3695c44a145ad -size 2195048 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/tensor_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/tensor_pybind.so deleted file mode 100755 index 3f828a5..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/tensor_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acb18dce4d86c3de6123d6a0c2adc54ce7ff76fbd2ff159a0192caf0900f5bbd -size 2371480 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/timestamp_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/timestamp_pybind.so deleted file mode 100755 index 51ced21..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/timestamp_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c3da9ac8385917cd8c2f4f7e8060bd277b2ede62fe56b1564522e9e0902019b -size 2166568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/transmitter_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/transmitter_pybind.so deleted file mode 100755 index d23a7f7..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/transmitter_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1697b67cc058cbbb072068ee6921014df4319ad585d69d0af5bb86485b0f15e8 -size 2189832 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/vault_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/vault_pybind.so deleted file mode 100755 index 0243c19..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/std/vault_pybind.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c75c45c4bf92919d4d324f188a590fd8d88af11e9a6e34c540d58914857bc2f -size 2176888 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensor_rt/libgxf_tensor_rt.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensor_rt/libgxf_tensor_rt.so deleted file mode 100755 index 6ce5696..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensor_rt/libgxf_tensor_rt.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10bd69272da9994052694b3209bf0091a632656e6c1f5e0b3551457508bb5a77 -size 2219504 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libgxf_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libgxf_tensorops.so deleted file mode 100755 index 30fe223..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libgxf_tensorops.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f44aa1c4a149f393561c20a1241fb7eeca246b59acd332974336eb5b128aa5ed -size 2824888 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libnvcv_tensorops.so deleted file mode 100755 index 598d054..0000000 --- a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libnvcv_tensorops.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:08b123e67b794881bba9b633f2fe836600877e4b58b1f59984cb7f9ceddf91d4 -size 313776 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/behavior_tree/libgxf_behavior_tree.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/behavior_tree/libgxf_behavior_tree.so new file mode 100755 index 0000000..1ba9449 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/behavior_tree/libgxf_behavior_tree.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d64b7a95d98b00646a02e64213a0e065248a7eaca3acac5eb795af86782e2839 +size 2253840 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libgxf_bi3d_postprocessor.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libgxf_bi3d_postprocessor.so new file mode 100755 index 0000000..7fb27cf --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libgxf_bi3d_postprocessor.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c035c6b4e4f90c3883d3fb897828d3a13a64db71b61b10d5e08b0864c50796a2 +size 234576 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libgxf_cvcore_bi3d.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libgxf_cvcore_bi3d.so new file mode 100755 index 0000000..723edf3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libgxf_cvcore_bi3d.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da4da8b56d785e4d18ebfb7535186263a21d340a8716aca8681c7f4d1e914af4 +size 2297368 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_bi3d.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_bi3d.so new file mode 100755 index 0000000..52d6b37 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_bi3d.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52996cc018c517cdbf3be1acbb84d889c1f67b1a0f3234744e062d8eb96119db +size 94824 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libnvcv_core.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_core.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_x86_64/tensorops/libnvcv_core.so rename to isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_core.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_inferencer.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_inferencer.so new file mode 100755 index 0000000..a2148b0 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_inferencer.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ecfb7720bea6d07a4bbba9d2fcc6c0e642850fcc26e013e0d5a43bd206cb291 +size 67976 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_tensorops.so new file mode 100755 index 0000000..cb5cf1c --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3ab1d035950c7592564efcf5e8669da48c24e9f00ce929bc121d87ed35a7df9 +size 313776 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_trtbackend.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_trtbackend.so new file mode 100755 index 0000000..c03c1c3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/bi3d/libnvcv_trtbackend.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52f200683d97749900df6fea3860d9a5a013d326c0aee9883ad13d8ac2099607 +size 50568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/core_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/core_pybind.so new file mode 100755 index 0000000..f1630b2 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/core_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74888947994177ce99e226e7501fc5b76d13a84d41a29f03ece1fa0f1b653e44 +size 2367320 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so new file mode 100755 index 0000000..54895d3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd8486bfe23beb76a16ebe76212aaa30e34357c10f7a1c8411524c3aab024872 +size 1556200 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/cuda/cuda_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/cuda/cuda_pybind.so new file mode 100755 index 0000000..cccd9a2 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/cuda/cuda_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1021907315b46f8ce0ee6be2ef21cc9577511faa8be6ef90280e12ee1d2bc6c1 +size 1939944 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/cuda/libgxf_cuda.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/cuda/libgxf_cuda.so new file mode 100755 index 0000000..8fd3fb5 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/cuda/libgxf_cuda.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba41d190a1754fe52fd63864c4272219e9ba53c8349e8b0b1d28dc3ae96e3850 +size 1818920 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libgxf_cvcore_ess.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libgxf_cvcore_ess.so new file mode 100755 index 0000000..6a694b5 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libgxf_cvcore_ess.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93093a8206f196a7cde157d1112a6674640e54f006d8dfe6cd79d13e318f0c35 +size 2289848 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_core.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_core.so new file mode 100755 index 0000000..d9140e7 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_core.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5eb944fde46c64608e22330d729ea78cfce7744b49aa1f7e00d5cc26d54c8689 +size 198208 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_ess.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_ess.so new file mode 100755 index 0000000..677b778 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_ess.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:703f4099cda931a8a2d2790976c696fd3d39929675df109ceb9efe9c9ed59cf7 +size 65016 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_inferencer.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_inferencer.so new file mode 100755 index 0000000..a2148b0 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_inferencer.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ecfb7720bea6d07a4bbba9d2fcc6c0e642850fcc26e013e0d5a43bd206cb291 +size 67976 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_tensorops.so new file mode 100755 index 0000000..cb5cf1c --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3ab1d035950c7592564efcf5e8669da48c24e9f00ce929bc121d87ed35a7df9 +size 313776 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_trtbackend.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_trtbackend.so new file mode 100755 index 0000000..c03c1c3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/ess/libnvcv_trtbackend.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52f200683d97749900df6fea3860d9a5a013d326c0aee9883ad13d8ac2099607 +size 50568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_atlas.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_atlas.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_atlas.so rename to isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_atlas.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_decoder_extension.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_decoder_extension.so new file mode 100755 index 0000000..fe617a4 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_decoder_extension.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa294e269740996c3141eedc1274d85e2e0d3044a4f3a8d61332c54db538eba3 +size 2249472 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_disparity_extension.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_disparity_extension.so new file mode 100755 index 0000000..0bef89a --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_disparity_extension.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ee7285ec79c524a4aa9b73e91cab158a2b0591841258444930a667474466806 +size 234000 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_dope.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_dope.so new file mode 100755 index 0000000..37ce0f3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_dope.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:125975bf43dfe0a0dec3e17d14be7345a3156420adeab78614d51c5e4155a668 +size 211312 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_image_flip.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_image_flip.so new file mode 100755 index 0000000..f75ebed --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_image_flip.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a26d5694f0b5e05e95f117640262723a0955b6d8bd2a114c807dc864f96d2ee +size 173472 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_isaac_messages.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_isaac_messages.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_isaac_messages.so rename to isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_isaac_messages.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_message_compositor.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_message_compositor.so new file mode 100755 index 0000000..64c5d2b --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_message_compositor.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edc76169aed936ada7f2bc15b6913056c508e2a4cd90128b01b3e909fb8567ae +size 183976 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_occupancy_grid_projector.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_occupancy_grid_projector.so new file mode 100755 index 0000000..280d8fa --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_occupancy_grid_projector.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d42470bae63a3aece3b6b0e59643e87841dd3ea862b8aaff72f51ad81dec8593 +size 279216 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_optimizer.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_optimizer.so new file mode 100755 index 0000000..62db53f --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_optimizer.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:686877a7f6917738ef7f56c222840452815c281be99f58a19a6bba264cebb40c +size 1294424 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_point_cloud.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_point_cloud.so new file mode 100755 index 0000000..e5b1d8e --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_point_cloud.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6df45281ccbfe1c55483dde61b5e251924e322b8d852c4db68f928647a4ee5 +size 437768 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_segmentation_postprocessor.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_segmentation_postprocessor.so new file mode 100755 index 0000000..588c2ea --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_segmentation_postprocessor.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f407306e9c7ab1f955fb460d2e8c71119f1aedaff05e862449b76657598b3be6 +size 973928 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_sight.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_sight.so similarity index 100% rename from isaac_ros_nitros/gxf/lib/gxf_x86_64/libgxf_sight.so rename to isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_sight.so diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_synchronization.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_synchronization.so new file mode 100755 index 0000000..d81b536 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_synchronization.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:778a5e074cf8fa44c5462e5bca0903c83283948d0707fe063494212c9bb521ef +size 146912 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_test.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_test.so new file mode 100755 index 0000000..5d48ce1 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_test.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3603420da90c141a8f5efa5f16f2000e6b8954a09f9e6a9091d9dda95778efd5 +size 337320 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/multimedia/libgxf_multimedia.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/multimedia/libgxf_multimedia.so new file mode 100755 index 0000000..117ae13 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/multimedia/libgxf_multimedia.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a209bc8d2ffd9791084a867bc5b9dbf5ab1a2a5b908f9ca4c0ff7b863040fc7 +size 2099496 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/network/libgxf_network.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/network/libgxf_network.so new file mode 100755 index 0000000..cc646b1 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/network/libgxf_network.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0db47e1309215c45e23f4165087e41a1acf9b45819d7bdb135fe3752c0329b8e +size 2130808 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/npp/libgxf_npp.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/npp/libgxf_npp.so new file mode 100755 index 0000000..5a95b72 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/npp/libgxf_npp.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:062bbd753a99034d85361b17ba55cd9eaa7328690db96007bd24364c7313898c +size 2121152 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/python_codelet/libgxf_python_codelet.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/python_codelet/libgxf_python_codelet.so new file mode 100755 index 0000000..dad1465 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/python_codelet/libgxf_python_codelet.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e82d0fff9955f3240e714bdb32c11cd8935c5eaa1ca2f79199f0deff50999c2 +size 2269976 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/python_codelet/pycodelet.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/python_codelet/pycodelet.so new file mode 100755 index 0000000..f2105b7 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/python_codelet/pycodelet.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a83388dc1ce6288a5ca0844e75ad13d617cf0ccb02a26454e24d97952a5a1df1 +size 2319464 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/sample/libgxf_sample.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/sample/libgxf_sample.so new file mode 100755 index 0000000..e71519a --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/sample/libgxf_sample.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb97a6793bf8f163638ea6791080ba3a75021e575ea73e18860d8daf2af2b14f +size 2094672 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/serialization/libgxf_serialization.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/serialization/libgxf_serialization.so new file mode 100755 index 0000000..56019de --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/serialization/libgxf_serialization.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6f8ff59ff59629606eecc30e59cb0ecc2ce731f87a9b71291a3f348a2540bb2 +size 2362048 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/allocator_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/allocator_pybind.so new file mode 100755 index 0000000..ba44c88 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/allocator_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9872847acc1a334e5f7f79add168480b9ed79f969d676b02479f7711aa2d6df2 +size 2199768 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/clock_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/clock_pybind.so new file mode 100755 index 0000000..42e0a13 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/clock_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6198f0419eefead9de8cef93658c2bb41530e6a9ede7672333b9b4cc35d9811 +size 2183688 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/libgxf_std.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/libgxf_std.so new file mode 100755 index 0000000..a568084 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/libgxf_std.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f518cfcdfe502a7de5bd9bb15b37b1184fa848b94ce55f21a005763f5c6d18f1 +size 2298568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/receiver_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/receiver_pybind.so new file mode 100755 index 0000000..2bf24f1 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/receiver_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f24d5ca008cee488151f72615adcf0955c35a5492e88f3609077022d0bd17dac +size 2195272 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/tensor_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/tensor_pybind.so new file mode 100755 index 0000000..8c93470 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/tensor_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e4b09852c2d38d93bef2b1bfd4e65ad68dabe2414634838a6a7010cf55c6742 +size 2371712 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/timestamp_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/timestamp_pybind.so new file mode 100755 index 0000000..fc8efb3 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/timestamp_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efb1a2f98727112ece6805845e7b6316e41e3e5f4a3482338f585e72f608ebf6 +size 2170888 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/transmitter_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/transmitter_pybind.so new file mode 100755 index 0000000..44f717d --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/transmitter_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b90dd2ed8d28d80e7575068098ed9edc02a770bfb84a098454e6d9c0b7de70 +size 2190056 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/vault_pybind.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/vault_pybind.so new file mode 100755 index 0000000..0216d4b --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/std/vault_pybind.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34b411fe14b292141218c43bb0af03483c6ae2cde8c4d8203dfdb5d8af431386 +size 2177112 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensor_rt/libgxf_tensor_rt.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensor_rt/libgxf_tensor_rt.so new file mode 100755 index 0000000..bf4a9d8 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensor_rt/libgxf_tensor_rt.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e47b307bf7c057603a9a9e4799237218298a4e39f3a357155162e91190c7354d +size 2219736 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libgxf_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libgxf_tensorops.so new file mode 100755 index 0000000..8945409 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libgxf_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e2d6132e6b4b2079c9383246eea12ccbc6462bb077bd23094ab7860d19cafa9 +size 2857416 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libnvcv_core.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libnvcv_core.so new file mode 100755 index 0000000..d9140e7 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libnvcv_core.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5eb944fde46c64608e22330d729ea78cfce7744b49aa1f7e00d5cc26d54c8689 +size 198208 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libnvcv_tensorops.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libnvcv_tensorops.so new file mode 100755 index 0000000..cb5cf1c --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/tensorops/libnvcv_tensorops.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3ab1d035950c7592564efcf5e8669da48c24e9f00ce929bc121d87ed35a7df9 +size 313776 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libgxf_triton_ext.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libgxf_triton_ext.so new file mode 100755 index 0000000..8b12dec --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libgxf_triton_ext.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bb5c83a48a34f8d9ed7ff8bd2c9653655e4a7285b311040733f5b75428b3c0d +size 3637384 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbuf_fdmap.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbuf_fdmap.so new file mode 100755 index 0000000..fe92334 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbuf_fdmap.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d69eed381bbedd5d115142217891ab58f62a0c9d33a77ed4bb13ebae537f9699 +size 18760 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbufsurface.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbufsurface.so new file mode 100755 index 0000000..a02ceaa --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbufsurface.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39ff39cce587b802eea8dce45c7545bca28dcdfaacda9590c0c744b9fa0df509 +size 31168 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbufsurftransform.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbufsurftransform.so new file mode 100755 index 0000000..379940e --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvbufsurftransform.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92e79b3e6c10f13feab6cd73535f851701658554ca43f72c725396ee12d6344b +size 70659568 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_infer_server.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_infer_server.so new file mode 100755 index 0000000..3c8e541 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_infer_server.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aadb9afdae637d019350a986c3cb3491463a6bf38daa119e63c88b2da681d2c0 +size 12525016 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_inferlogger.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_inferlogger.so new file mode 100755 index 0000000..831e995 --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_inferlogger.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d5790f1015db67eef24df28ebc0d129494018cfd449fdbd277437935f7d4d75 +size 22928 diff --git a/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_inferutils.so b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_inferutils.so new file mode 100755 index 0000000..7c4935b --- /dev/null +++ b/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/triton/libnvds_inferutils.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16f2aa63649b9a23eea3ce0dbbedb761f134435205a0e2273faf66d37d877b33 +size 150552 diff --git a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_node.hpp b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_node.hpp index ad6741c..74396bd 100644 --- a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_node.hpp +++ b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_node.hpp @@ -37,6 +37,7 @@ using gxf::optimizer::GraphIOGroupSupportedDataTypesInfoList; using gxf::optimizer::GraphIOGroupDataTypeConfigurations; using gxf::optimizer::ComponentInfo; using gxf::optimizer::ComponentKey; +using NitrosPubSubGroupPointerList = std::vector>; // A hardware-accelerated ROS node base class class NitrosNode : public rclcpp::Node @@ -129,6 +130,15 @@ class NitrosNode : public rclcpp::Node const std::string & parameter_name, const std::string & value ); + + // Find the corresponding Nitros publisher of the given component + std::shared_ptr findNitrosPublisher( + const gxf::optimizer::ComponentInfo & comp_info); + + // Find the corresponding Nitros subscriber of the given component + std::shared_ptr findNitrosSubscriber( + const gxf::optimizer::ComponentInfo & comp_info); + // Get the negotiated data format for the given component std::string getNegotiatedDataFormat(const ComponentInfo comp_info) const; @@ -199,7 +209,7 @@ class NitrosNode : public rclcpp::Node // A list of pub/sub groups in which the data formats of a group of publishers and subscribers // are dependent on each other - std::vector> nitros_pub_sub_groups_; + NitrosPubSubGroupPointerList nitros_pub_sub_groups_; // The graph optimizer nvidia::gxf::optimizer::Optimizer optimizer_; diff --git a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher.hpp b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher.hpp index 3a0d659..4924448 100644 --- a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher.hpp +++ b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher.hpp @@ -48,6 +48,15 @@ class NitrosPublisher : public NitrosPublisherSubscriberBase const NitrosPublisherSubscriberConfig & config, const negotiated::NegotiatedPublisherOptions & negotiated_pub_options); + NitrosPublisher( + rclcpp::Node & node, + const gxf_context_t context, + std::shared_ptr nitros_type_manager, + const gxf::optimizer::ComponentInfo & gxf_component_info, + const std::vector & supported_data_formats, + const NitrosPublisherSubscriberConfig & config, + const negotiated::NegotiatedPublisherOptions & negotiated_pub_options); + // Getter for the negotiated_pub_ std::shared_ptr getNegotiatedPublisher(); diff --git a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_base.hpp b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_base.hpp index df220d4..7ab6ca4 100644 --- a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_base.hpp +++ b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_base.hpp @@ -18,6 +18,7 @@ #include "extensions/gxf_optimizer/exporter/graph_types.hpp" #include "gxf/core/gxf.h" +#include "gxf/std/timestamp.hpp" #include "isaac_ros_nitros/types/nitros_type_base.hpp" #include "isaac_ros_nitros/types/nitros_type_manager.hpp" @@ -87,6 +88,20 @@ class NitrosPublisherSubscriberBase supported_data_formats_(supported_data_formats), config_(config) {} + NitrosPublisherSubscriberBase( + rclcpp::Node & node, + const gxf_context_t context, + std::shared_ptr nitros_type_manager, + const gxf::optimizer::ComponentInfo & gxf_component_info, + const std::vector & supported_data_formats, + const NitrosPublisherSubscriberConfig & config) + : node_(node), + context_(context), + nitros_type_manager_(nitros_type_manager), + gxf_component_info_(gxf_component_info), + supported_data_formats_(supported_data_formats), + config_(config) {} + // Getter for the GXF component info gxf::optimizer::ComponentInfo getComponentInfo() { @@ -139,6 +154,23 @@ class NitrosPublisherSubscriberBase frame_id_map_ptr_ = frame_id_map_ptr; } + uint64_t getTimestamp(NitrosTypeBase & base_msg) const + { + auto msg_entity = nvidia::gxf::Entity::Shared(context_, base_msg.handle); + if (msg_entity) { + auto timestamp = msg_entity->get(); + if (timestamp) { + return timestamp.value()->acqtime; + } + } + RCLCPP_WARN( + node_.get_logger(), + "[NitrosPublisherSubscriberBase] Failed to get timestamp from a NITROS" + " message (eid=%ld)", + base_msg.handle); + return 0; + } + // Start negotiation virtual void start() = 0; diff --git a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_group.hpp b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_group.hpp index 173fb17..655d6f3 100644 --- a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_group.hpp +++ b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_publisher_subscriber_group.hpp @@ -54,6 +54,7 @@ class NitrosPublisherSubscriberGroup // Constructor NitrosPublisherSubscriberGroup( rclcpp::Node & node, + const gxf_context_t context, std::shared_ptr nitros_type_manager, const gxf::optimizer::GraphIOGroupSupportedDataTypesInfo & gxf_io_supported_data_formats_info, const NitrosPublisherSubscriberConfigMap & nitros_pub_sub_configs, @@ -157,6 +158,9 @@ class NitrosPublisherSubscriberGroup // The ROS node that holds this group rclcpp::Node & node_; + // The parent GXF context + gxf_context_t context_; + // Nitros type manager std::shared_ptr nitros_type_manager_; diff --git a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_subscriber.hpp b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_subscriber.hpp index 129339e..f2d6ae6 100644 --- a/isaac_ros_nitros/include/isaac_ros_nitros/nitros_subscriber.hpp +++ b/isaac_ros_nitros/include/isaac_ros_nitros/nitros_subscriber.hpp @@ -45,6 +45,14 @@ class NitrosSubscriber : public NitrosPublisherSubscriberBase const std::vector & supported_data_formats, const NitrosPublisherSubscriberConfig & config); + NitrosSubscriber( + rclcpp::Node & node, + const gxf_context_t context, + std::shared_ptr nitros_type_manager, + const gxf::optimizer::ComponentInfo & gxf_component_info, + const std::vector & supported_data_formats, + const NitrosPublisherSubscriberConfig & config); + // Getter for the negotiated_sub_ std::shared_ptr getNegotiatedSubscriber(); diff --git a/isaac_ros_nitros/include/isaac_ros_nitros/utils/vpi_utilities.hpp b/isaac_ros_nitros/include/isaac_ros_nitros/utils/vpi_utilities.hpp new file mode 100644 index 0000000..8a0e668 --- /dev/null +++ b/isaac_ros_nitros/include/isaac_ros_nitros/utils/vpi_utilities.hpp @@ -0,0 +1,81 @@ +/** + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#ifndef ISAAC_ROS_NITROS__UTILS__VPI_UTILITIES_HPP_ +#define ISAAC_ROS_NITROS__UTILS__VPI_UTILITIES_HPP_ + +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#pragma GCC diagnostic ignored "-Wpedantic" +#include "gxf/multimedia/video.hpp" +#pragma GCC diagnostic pop + +#include "rclcpp/rclcpp.hpp" +#include "vpi/VPI.h" + +// VPI status check macro +#define CHECK_VPI_STATUS(STMT) \ + do { \ + VPIStatus status = (STMT); \ + if (status != VPI_SUCCESS) { \ + char buffer[VPI_MAX_STATUS_MESSAGE_LENGTH]; \ + vpiGetLastStatusMessage(buffer, sizeof(buffer)); \ + std::ostringstream ss; \ + ss << __FILE__ << ":" << __LINE__ << ": " << vpiStatusGetName(status) << ": " << buffer; \ + RCLCPP_ERROR( \ + rclcpp::get_logger( \ + "Isaac ROS Common VPI utilities"), "Error in VPI method. Error[%s]", ss.str().c_str()); \ + throw std::runtime_error("Error in VPI method."); \ + } \ + } while (0); + +namespace nvidia +{ +namespace isaac_ros +{ +namespace nitros +{ + +/** + * @brief Declare and parse ROS2 parameter into VPI backend flags + * + * @param node The node to declare the parameter with + * @param default_backends The default backends to use if given invalid input + * @return uint32_t The resulting VPI backend flags + */ +uint32_t DeclareVPIBackendParameter(rclcpp::Node * node, uint32_t default_backends) noexcept; + +/** + * @brief Data structure to hold VPI format information + * + */ +struct VPIFormat +{ + VPIImageFormat image_format; + std::vector pixel_type; +}; + +using VideoFormat = nvidia::gxf::VideoFormat; +/** + * @brief Convert a GXF video format into VPI format + * + * @param value Input GXF VideoFormat + * @return VPIFormat Resulting VPIFormat + */ +VPIFormat ToVpiFormat(VideoFormat value); + +} // namespace nitros +} // namespace isaac_ros +} // namespace nvidia + +#endif // ISAAC_ROS_NITROS__UTILS__VPI_UTILITIES_HPP_ diff --git a/isaac_ros_nitros/lib/AMENT_IGNORE b/isaac_ros_nitros/lib/AMENT_IGNORE new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/isaac_ros_nitros/lib/AMENT_IGNORE @@ -0,0 +1 @@ + diff --git a/isaac_ros_nitros/lib/elbrus/include/elbrus.h b/isaac_ros_nitros/lib/elbrus/include/elbrus.h new file mode 100644 index 0000000..17ee3b7 --- /dev/null +++ b/isaac_ros_nitros/lib/elbrus/include/elbrus.h @@ -0,0 +1,720 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ +#pragma once + +#ifdef __cplusplus +#include +#include +#else +#include +#include +#endif + +#ifdef _WIN32 + #ifdef ELBRUS_EXPORT + #define ELBRUS_API __declspec(dllexport) + #else + #define ELBRUS_API __declspec(dllimport) + #endif +#else + #define ELBRUS_API __attribute__((visibility("default"))) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * None of the pointers are owning. Client is responsible for managing memory. + */ + +/* + * API is guaranteed to be compatible between the same major version numbers. + */ +#define ELBRUS_API_VERSION_MAJOR 10 +#define ELBRUS_API_VERSION_MINOR 0 + +/* + * Use this function to check the version of the library you are using. + * + * Any one of the pointers could be null. + * + */ +ELBRUS_API +void ELBRUS_GetVersion(int32_t* major, int32_t* minor); + +/* + * Transformation from camera space to world space. + * Rotation matrix is column-major. + */ +struct ELBRUS_Pose +{ + float r[9]; + float t[3]; +}; + +/* + * This structure encapsulates an inertial measurement unit reading + */ +struct ELBRUS_ImuMeasurement +{ + float linear_accelerations[3]; // in meters per squared second + float angular_velocities[3]; // in radians per second +}; + +/* + * Describes intrinsic and extrinsic parameters of a camera. + * + * Supported values of distortion_model: + * + * - brown5k + * 9 parameters: + * 0-1: principal point (cx, cy) + * 2-3: focal length (fx, fy) + * 4-6: radial distortion coeffs (k1, k2, k3) + * 7-8: tangential distortion coeffs (p1, p2) + * + * Each 3D point (x, y, z) is projected in the following way: + * (u, v) = (cx, cy) + diag(fx, fy) * (radial * (xn, yn) + tangential_distortion_vector) + * where: + * radial = (1 + k1 * r^2 + k2 * r^4 + k3 * r^6) + * + * | 2 * p1 * xn * yn + p2 * (r^2 + 2 * xn^2) | + * tandential_distort_vec = | | + * | p1 * (r^2 + 2 * yn^2) + 2 * p2 * xn * yn | + * + * xn = x/z, yn = y/z + * r^2 = (xn)^2 + (yn)^2 + * + * - pinhole + * no distortion, same as radial5 with k0=k1=k2=p0=p1=0.f + * 4 parameters: + * 0-1: principal point (cx, cy) + * 2-3: focal length (fx, fy) + * + * - fisheye4 + * 8 parameters: + * 0-1: principal point (cx, cy) + * 2-3: focal length (fx, fy) + * 4-7: fisheye distortion coeffs (k1, k2, k3, k4) + * Each 3D point (x, y, z) is projected in the following way: + * (u, v) = (cx, cy) + diag(fx, fy) * (distorted_radius(r) * (xn, yn) / r) + * where: + * distorted_radius(r) = atan(r) * (1 + k1 * atan(r)^2 + k2 * atan(r)^4 + k3 * atan(r)^6 + k4 * atan(r)^8) + * xn = x/z, yn = y/z + * r^2 = (xn)^2 + (yn)^2 + */ +struct ELBRUS_Camera +{ + const char* distortion_model; + const float* parameters; + int32_t num_parameters; + int32_t width; + int32_t height; + + /* Transformation from the coordinate frame of the camera + * to the coordinate frame of the rig. + */ + struct ELBRUS_Pose pose; +}; + +struct ELBRUS_CameraRig +{ + const struct ELBRUS_Camera* cameras; + int32_t num_cameras; +}; + +#define ELBRUS_SBA_ON_GPU 0 /*Run sparse bundle adjustment on GPU. This is a default option.*/ +#define ELBRUS_SBA_ON_CPU 1 /*Run sparse bundle adjustment on CPU*/ +#define ELBRUS_SBA_OFF 2 /*Disable sparse bundle adjustment*/ + +/* + * Configuration parameters that affect the whole tracking session. + */ +struct ELBRUS_Configuration +{ + /* Enable internal pose prediction mechanism based on a kinematic model. + * + * If frame rate is high enough it improves tracking performance + * and stability. + * + * Prediction passed into `ELBRUS_TrackStereoSync` overrides prediction + * from the kinematic model. + * + * As a general rule it is better to use a pose prediction mechanism + * tailored to a specific application. If you have an IMU, consider using + * it to provide pose predictions to Elbrus. + * + */ + int32_t use_motion_model; + + /* Enable image denoising. + * Disable if the input images have already passed through a denoising + * filter. + */ + int32_t use_denoising; + + /* Enable feature tracking using GPU. + */ + int32_t use_gpu; + + /* Enable sparse bundle adjustment. This option reduces the drift at the cost of increased + * hardware utilization. + */ + int32_t sba_mode; + + /* Enable fast and robust left-to-right tracking for rectified + * cameras with principal points on the horizontal line. + */ + int32_t horizontal_stereo_camera; + + /* If IMU present this is left camera to imu transformation. + * vImu = imu_from_left * vLeft; + * vImu - vector in imu coordinate system + * vLeft - vector in left eye coordinate system + */ + ELBRUS_Pose imu_from_left; + + + /* Gravitational acceleration that is used for the IMU integration, + * defined in meters per sec^2. + * The vector is defined in the world coordinate system: + * Cameras are always looking in the negative z direction. + * Y is "up", X is from "left" to "right" + * For example: <0, -9.81, 0> is good enough for the most applications. */ + float g[3]; + + /* + * Allow to call ELBRUS_GetLastLeftObservations + */ + int32_t enable_observations_export; + /* + * Allow to call ELBRUS_GetLastLandmarks + */ + int32_t enable_landmarks_export; + + /* + * Use localization and mapping + */ + int32_t enable_localization_n_mapping; + + /* + * Size of map cell. Default is 0 (the size will be calculated from the camera baseline) + */ + float map_cell_size; + + /* + * If localization and mapping is used: + * sync mode (same thread with visual odometry). Default: slam_sync_mode = 0 + */ + int32_t slam_sync_mode; + + /* + * Enable reading internal data from SLAM + * ELBRUS_EnableReadingDataLayer(), ELBRUS_DisableReadingDataLayer() + */ + bool enable_reading_slam_internals; + + /* + * Set directory where the dump files will be saved: + * stereo.edex - cameras and configuration + * cam0.00000.png, cam1.00000.png, ... - input images + * example: + * cfg->debug_dump_directory = "/tmp/elbrus" + */ + const char* debug_dump_directory; + + /* + * Enable IMU integrator + */ + int32_t enable_imu_integrator; +}; + +struct ELBRUS_Tracker; +typedef ELBRUS_Tracker* ELBRUS_TrackerHandle; + +/* + * Pixels must be stored row-wise + */ +struct ELBRUS_Image +{ + const uint8_t* pixels; + + /* Elbrus preserves timestamps: pose timestamp will match image timestamp + * Time must be in nanoseconds. + */ + int64_t timestamp_ns; + + /* image resolution must match what was provided in ELBRUS_Camera */ + int32_t width; + int32_t height; + + /* index of the camera in the rig */ + int32_t camera_index; +}; + +struct ELBRUS_Observation +{ + int32_t id; + float u; // 0 <= u < image width + float v; // 0 <= v < image height +}; + +struct ELBRUS_ObservationVector +{ + uint32_t num; + uint32_t max; // size of pre-allocated observations + ELBRUS_Observation *observations; +}; + +struct ELBRUS_Landmark +{ + int64_t id; + // coordinates in the camera space + float x; + float y; + float z; +}; + +struct ELBRUS_Gravity +{ + // coordinates in the left camera space + float x; + float y; + float z; +}; + +struct ELBRUS_LandmarkVector +{ + uint32_t num; + uint32_t max; // size of pre-allocated landmarks + ELBRUS_Landmark *landmarks; +}; + +/* +* See ELBRUS_PoseEstimate::vo_state +*/ +#define ELBRUS_VO_TRACKER_STATE_UNKNOWN 0 // Unknown state +#define ELBRUS_VO_TRACKER_STATE_SUCCESS 1 // Successed +#define ELBRUS_VO_TRACKER_STATE_FAILED 2 // Failed +#define ELBRUS_VO_TRACKER_STATE_INVALIDATED 3 // Successed but invalidated by IMU + +/* +* See ELBRUS_PoseEstimate::integrator_state +*/ +#define ELBRUS_INTEGRATOR_STATE_UNKNOWN 0 +#define ELBRUS_INTEGRATOR_STATE_STATIC 1 // Static +#define ELBRUS_INTEGRATOR_STATE_INERTIAL 2 // Inertial +#define ELBRUS_INTEGRATOR_STATE_IMU 3 // IMU + +/* + * Rig pose estimate from the tracker. + * All fields will be set by the tracker. + * + * Pose is a transformation from the rig coordinate space + * to the world coordinate space. + * + * The rig coordinate space is user-defined and depends on the extrinsic + * parameters of the cameras. + * + * Cameras are always looking in the negative z direction. + * + * The code has only been tested for the cases when one of the cameras' + * coordinate spaces matches the rig coordinate space: extrinsic + * parameters of the camera are the identity matrix. + * + * The world coordinate space is an arbitrary 3D coordinate frame. + * + * Pose covariance is defined via matrix exponential: + * for a random zero-mean perturbation `u` in the tangent space + * random pose is determined by `mean_pose * exp(u)`. + */ +struct ELBRUS_PoseEstimate +{ + struct ELBRUS_Pose pose; + + /* Pose timestamp in nanoseconds. */ + int64_t timestamp_ns; + + float covariance[6*6]; + + /* + State of vo tracking + See #define ELBRUS_VO_TRACKER_STATE_* + */ + uint32_t vo_state; + /* + State of the integrator (IMU) + See #define ELBRUS_INTEGRATOR_STATE_* + */ + uint32_t integrator_state; +}; + +typedef uint32_t ELBRUS_Status; + +/* Error codes are subject to change except for ELBRUS_SUCCESS + * Under normal conditions you should only expect to see + * `ELBRUS_SUCCESS` and `ELBRUS_TRACKING_LOST`. + * All other error codes indicate unexpected errors. + * In case of an unexpected error the tracker should be reinitialized. + */ +#define ELBRUS_SUCCESS 0 +#define ELBRUS_TRACKING_LOST 1 // obsolete +#define ELBRUS_INVALID_ARG 2 +#define ELBRUS_OUT_OF_MEMORY 3 +#define ELBRUS_GENERIC_ERROR 4 +#define ELBRUS_UNSUPPORTED_NUMBER_OF_CAMERAS 5 +#define ELBRUS_SLAM_IS_NOT_INITIALIZED 6 +#define ELBRUS_NOT_IMPLEMENTED 7 +#define ELBRUS_READING_SLAM_INTERNALS_DISABLED 8 + +/* + * Creates the default configuration + */ +ELBRUS_API +void ELBRUS_InitDefaultConfiguration(ELBRUS_Configuration *cfg); + +/* + * Use this to initialize Elbrus + * + * ELBRUS_TrackerHandle will remember number of cameras + * from rig. Elbrus supports only Mono and Stereo rigs. + */ +ELBRUS_API +ELBRUS_Status ELBRUS_CreateTracker(ELBRUS_TrackerHandle* tracker, + const struct ELBRUS_CameraRig* rig, + const struct ELBRUS_Configuration* cfg); + +/* + * Release all resources owned by the tracker + */ +ELBRUS_API +void ELBRUS_DestroyTracker(ELBRUS_TrackerHandle tracker); + +/* + * If visual odometry loses camera position, it briefly continues execution + * using user-provided IMU measurements, while trying to recover the position. + * You can call this function several times between image acquisition. + * The timestamp is in nanoseconds and should always increment. + * This function returns false in a case of wrong timestamp order. + */ +ELBRUS_API +bool ELBRUS_RegisterImuMeasurement(ELBRUS_TrackerHandle tracker, + int64_t timestamp, + const struct ELBRUS_ImuMeasurement* imu); + +/* + * Track current frame synchronously: + * the function blocks until the tracker has computed a pose. + * + * By default, this function uses visual odometry to compute a pose. If visual + * odometry tracker fails to compute a pose, the function returns the position + * calculated from a user-provided (via ELBRUS_RegisterImuMeasurement) IMU data. + * If after several calls of ELBRUS_Track the visual odometry tracker is not + * recovered ELBRUS_TRACKING_LOST will be returned. + * + * If `predicted_pose` is not NULL, the tracker will use it + * as the initial guess. + * + * The track will output poses in the same coordinate system + * until a loss of tracking. + * + * On success `pose_estimate` contains estimated rig pose. + * On failure value of `pose_estimate` is undefined. + * + * Image timestamps have to match. Elbrus will use timestamp + * of the image taken with camera 0. + * + * If your camera rig provides "almost synchronized" frames, + * you could use one of the following for the common timestamp: + * - timestamp from camera 0 + * - average timestamp + * + * images - is a pointer to single image in case of mono or + * array of two images in case of stereo. + * + * You should use the same number of images for tracker equal to + * rig->num_cameras in ELBRUS_CreateTracker. + */ +ELBRUS_API +ELBRUS_Status ELBRUS_Track(ELBRUS_TrackerHandle tracker, + const ELBRUS_Image *images, + const ELBRUS_Pose* predicted_pose, + ELBRUS_PoseEstimate* pose_estimate); + + +/* + * Get rig pose which was estimated by visual odometry. + * Call ELBRUS_Track() before ELBRUS_GetOdometryPose(). + * On success `pose` contains rig pose estimated by visual odometry + * + */ +ELBRUS_API +ELBRUS_Status ELBRUS_GetOdometryPose(ELBRUS_TrackerHandle tracker, + ELBRUS_Pose* pose_odom); + +/* + * Rig pose estimate by the slam system. + * See ELBRUS_GetSlamPose(). + */ +struct ELBRUS_PoseSlam +{ + ELBRUS_Pose pose; +}; + +/* + * Get rig pose which was estimated by SLAM. + * Call ELBRUS_Track() before ELBRUS_GetSlamPose(). + * On success `pose_slam->pose` contains rig pose estimated by slam + * + * You should set enable_localization_n_mapping=1 in the paramerets of ELBRUS_CreateTracker() + * else ELBRUS_SLAM_IS_NOT_INITIALIZED will be returned + * + */ +ELBRUS_API +ELBRUS_Status ELBRUS_GetSlamPose(ELBRUS_TrackerHandle tracker, + ELBRUS_PoseSlam* pose_slam); + +/* + * Get list of poses for each frame. + * poses_stamped will be filled. + * max_poses_stamped_count shows size of poses_stamped array. + * + * Returns count of items was copied to poses_stamped array. + */ +struct ELBRUS_PoseStamped { + int64_t timestamp_ns; + ELBRUS_Pose pose; +}; +ELBRUS_API +uint32_t ELBRUS_GetAllPoses(ELBRUS_TrackerHandle tracker, + uint32_t max_poses_stamped_count, + ELBRUS_PoseStamped* poses_stamped); + + +// Asynchronous response for ELBRUS_SaveToSlamDb() +typedef void(*ELBRUS_SaveToSlamDbResponse)(void* response_context, ELBRUS_Status status); + +/* + * Save Slam DB (map) to folder. + * This folder will be created, if doesn`t exist. + */ +ELBRUS_API +ELBRUS_Status ELBRUS_SaveToSlamDb( + /* Tracker handle, returned by ELBRUS_CreateTracker function. */ + ELBRUS_TrackerHandle tracker_handle, + + /* Folder name, where Slam lmdb database (map) will be saved. */ + const char* foldername, + + /* User defined asynchronous response, which will be called before the end of saving routine. + * May be used to handle various error codes. */ + ELBRUS_SaveToSlamDbResponse response = nullptr, + + /* Pointer to the response context, which will be passed to asynchronous response as argument. */ + void* response_context = nullptr + ); + + +// Asynchronous response for ELBRUS_LocalizeInExistDb() +typedef void(*ELBRUS_LocalizeInExistDbResponse)(void* response_context, ELBRUS_Status status, const ELBRUS_Pose* pose_in_db); + +/* + * Localize in the existing DB (map). + * Finds the position of the camera in existing Slam lmdb database (map). + * If success, moves the SLAM pose to the found position. + * This is an asynchronous function. To receive result, + * an asynchronous response ELBRUS_LocalizeInExistDbResponse is used. + */ +ELBRUS_API +ELBRUS_Status ELBRUS_LocalizeInExistDb( + /* Tracker handle, returned by ELBRUS_CreateTracker function. */ + ELBRUS_TrackerHandle tracker_handle, + + /* Folder name, which stores saved Slam lmbd database (map). */ + const char* foldername, + + /* Pointer to the proposed pose, where the robot might be. */ + const ELBRUS_Pose* guess_pose, + + /* Radius of the area, where the robot might be. In meters. if 0, a default value will be used. */ + float radius = 0, + + /* Pointer the the observed images. Will be used if ELBRUS_Configuration.slam_sync_mode = 1. + * Default value is nullptr. */ + const ELBRUS_Image* images = nullptr, + + /* User defined asynchronous response, which will be called before the end of localization. + * May be used to handle various error codes. */ + ELBRUS_LocalizeInExistDbResponse response = nullptr, + + /* Pointer to the response context, which will be passed to asynchronous response as argument. */ + void* response_context = nullptr + ); + +/* + * Get current observations (SVIO 2d tracks) for visualization purpose. + */ +ELBRUS_API +ELBRUS_Status ELBRUS_GetLastLeftObservations(ELBRUS_TrackerHandle tracker, + ELBRUS_ObservationVector *observations); + +/* + * Get current landmarks (SVIO 3d tracks) for visualization purpose. + */ +ELBRUS_API +ELBRUS_Status ELBRUS_GetLastLandmarks(ELBRUS_TrackerHandle tracker, + ELBRUS_LandmarkVector *landmarks); + +/* + * Get gravity vector in the last VO frame + */ +ELBRUS_API +ELBRUS_Status ELBRUS_GetLastGravity(ELBRUS_TrackerHandle tracker, ELBRUS_Gravity *gravity); + +/* +* Get internal slam metrics for visualization purpose. +*/ +struct ELBRUS_SlamMetrics +{ + int64_t timestamp_ns; // timestamp of these measurements (in nanoseconds) + uint32_t lc_status; // 0 - failed, 1 - succesed + uint32_t pgo_status; // 0 - failed, 1 - succesed + uint32_t lc_selected_landmarks_count; // Count of Landmarks Selected + uint32_t lc_tracked_landmarks_count; // Count of Landmarks Tracked + uint32_t lc_pnp_landmarks_count; // Count of Landmarks in PNP + uint32_t lc_good_landmarks_count; // Count of Landmarks in LC +}; + +ELBRUS_API +ELBRUS_Status ELBRUS_GetSlamMetrics(ELBRUS_TrackerHandle tracker, + ELBRUS_SlamMetrics* slam_metrics); + + + + +ELBRUS_API +ELBRUS_Status ELBRUS_EnablePoseAccumulator(ELBRUS_TrackerHandle tracker, size_t capacity); + +/* +* Landmarks and pose graph reading +*/ +struct ELBRUS_LandmarkInfo +{ + int64_t id; + float weight; + // coordinates in the camera space + float x; + float y; + float z; +}; + +struct ELBRUS_LandmarkInfoArrayRef +{ + uint64_t timestamp_ns; // timestamp of landmarks + uint32_t num; + const ELBRUS_LandmarkInfo* landmarks; +}; + +struct ELBRUS_PoseGraphNode +{ + uint64_t id; + ELBRUS_Pose node_pose; +}; +struct ELBRUS_PoseGraphEdge +{ + uint64_t node_from; // node id + uint64_t node_to; // node id + ELBRUS_Pose transform; + float covariance[6 * 6]; +}; +struct ELBRUS_PoseGraphRef +{ + uint64_t timestamp_ns; // timestamp of pose graph + uint32_t num_edges; + uint32_t num_nodes; + const ELBRUS_PoseGraphNode* nodes; + const ELBRUS_PoseGraphEdge* edges; +}; + +struct ELBRUS_LocalizerProbe { + uint64_t id; + ELBRUS_Pose guess_pose; + ELBRUS_Pose exact_result_pose; + float weight; + float exact_result_weight; + bool solved; +}; +struct ELBRUS_LocalizerProbesRef { + uint64_t timestamp_ns; // timestamp of pose graph + uint32_t num_probes; + float size; + const ELBRUS_LocalizerProbe* probes; +}; + +enum ELBRUS_DataLayer { + LL_OBSERVATIONS = 0, // Landmarks cloud. Landmarks that are operated in current frame + LL_MAP = 1, // Landmarks cloud. Landmarks of the map + LL_LOOP_CLOSURE = 2, // Landmarks cloud. Map's landmarks that are visible in the last loop closure event + LL_POSE_GRAPH = 3, // Pose Graph + LL_LOCALIZER_PROBES = 4, // Localizer probes + LL_LOCALIZER_MAP = 5, // Landmarks cloud. Landmarks of the Localizer map (opened database) + LL_LOCALIZER_OBSERVATIONS = 6, // Landmarks cloud. Landmarks that are visible in the localization + LL_LOCALIZER_LOOP_CLOSURE = 7, // Landmarks cloud. Landmarks that are visible in the final loop closure of the localization + LL_MAX = 8 +}; + +// Enable or disable landmarks layer reading. +ELBRUS_API ELBRUS_Status ELBRUS_EnableReadingDataLayer( + ELBRUS_TrackerHandle tracker, + ELBRUS_DataLayer layer, + uint32_t max_items_count + ); +ELBRUS_API ELBRUS_Status ELBRUS_DisableReadingDataLayer(ELBRUS_TrackerHandle tracker, ELBRUS_DataLayer layer); + +// Start landmarks layer reading. Have to call ELBRUS_FinishReadingLandmarks. Thread-safe. Lock free +// This function will fill all fields in the ELBRUS_LandmarkInfoArrayRef structure +ELBRUS_API ELBRUS_Status ELBRUS_StartReadingLandmarks( + ELBRUS_TrackerHandle tracker, + ELBRUS_DataLayer layer, + ELBRUS_LandmarkInfoArrayRef* landmarks // output + ); +// Finish landmarks layer reading. +ELBRUS_API ELBRUS_Status ELBRUS_FinishReadingLandmarks(ELBRUS_TrackerHandle tracker, ELBRUS_DataLayer layer); + +// Start pose graph reading. Have to call ELBRUS_FinishReadingPoseGraph. Thread-safe. Lock free +// This function will fill all fields in the ELBRUS_PoseGraphRef structure +ELBRUS_API ELBRUS_Status ELBRUS_StartReadingPoseGraph( + ELBRUS_TrackerHandle tracker, + ELBRUS_DataLayer layer, + ELBRUS_PoseGraphRef* pose_graph // output + ); +// Finish loop landmarks layer reading. +ELBRUS_API ELBRUS_Status ELBRUS_FinishReadingPoseGraph(ELBRUS_TrackerHandle tracker, ELBRUS_DataLayer layer); + +// Start localizer probes reading. Have to call ELBRUS_FinishReadingPoseGraph. Thread-safe. Lock free +// This function will fill all fields in the ELBRUS_LocalizerProbesRef structure +ELBRUS_API ELBRUS_Status ELBRUS_StartReadingLocalizerProbes( + ELBRUS_TrackerHandle tracker, + ELBRUS_DataLayer layer, + ELBRUS_LocalizerProbesRef* localizer_probes // output + ); +ELBRUS_API ELBRUS_Status ELBRUS_FinishReadingLocalizerProbes(ELBRUS_TrackerHandle tracker, ELBRUS_DataLayer layer); + +/* +* Set Log filename. +*/ +ELBRUS_API +ELBRUS_Status ELBRUS_SetLogFilename(const char* filename); + +#ifdef __cplusplus +} // extern "C" +#endif + diff --git a/isaac_ros_nitros/lib/elbrus/lib_aarch64_jetpack50/libelbrus.so b/isaac_ros_nitros/lib/elbrus/lib_aarch64_jetpack50/libelbrus.so new file mode 100755 index 0000000..649ee01 --- /dev/null +++ b/isaac_ros_nitros/lib/elbrus/lib_aarch64_jetpack50/libelbrus.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5102e30eb63c4bf1306b5b141a96f69799fa3fb30d4dbb243efc3bd0b11e75b +size 6788120 diff --git a/isaac_ros_nitros/lib/elbrus/lib_x86_64/libelbrus.so b/isaac_ros_nitros/lib/elbrus/lib_x86_64/libelbrus.so new file mode 100644 index 0000000..bcd5e25 --- /dev/null +++ b/isaac_ros_nitros/lib/elbrus/lib_x86_64/libelbrus.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cc6c0f67496a073b6c59c42aacfc20bde9825be1e1c11774496db625ffdfbe3 +size 7537288 diff --git a/isaac_ros_nitros/package.xml b/isaac_ros_nitros/package.xml index 246cc2e..fff49ba 100644 --- a/isaac_ros_nitros/package.xml +++ b/isaac_ros_nitros/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros - 0.11.0 + 0.20.0 Isaac ROS Nitros CY Chen diff --git a/isaac_ros_nitros/src/nitros_context.cpp b/isaac_ros_nitros/src/nitros_context.cpp index 1cdf22d..5a0ac9e 100644 --- a/isaac_ros_nitros/src/nitros_context.cpp +++ b/isaac_ros_nitros/src/nitros_context.cpp @@ -261,23 +261,18 @@ gxf_result_t NitrosContext::loadExtension( return GXF_FAILURE; } - using func_gxf_set_severity_t = gxf_result_t (*)(gxf_context_t, gxf_severity_t); + using func_gxf_set_severity_t = void (*)(nvidia::Severity); func_gxf_set_severity_t func_gxf_set_severity = - reinterpret_cast(dlsym(handle, "GxfSetSeverity")); + reinterpret_cast(dlsym( + handle, + "_ZN6nvidia11SetSeverityENS_8SeverityE")); if (!func_gxf_set_severity) { - RCLCPP_ERROR( + RCLCPP_WARN( get_logger(), - "[NitrosContext] dlopen error when opening \"%s\": %s", + "[NitrosContext] dlopen error when opening \"%s\" to set the log severity level: %s", extension_file_path.c_str(), dlerror()); - return GXF_FAILURE; - } - - code = func_gxf_set_severity(context_, extension_log_severity_); - if (code != GXF_SUCCESS) { - RCLCPP_ERROR( - get_logger(), - "[NitrosContext] GxfSetSeverity Error: %s", GxfResultStr(code)); - return code; + } else { + func_gxf_set_severity(static_cast(extension_log_severity_)); } // Actually load the extension diff --git a/isaac_ros_nitros/src/nitros_node.cpp b/isaac_ros_nitros/src/nitros_node.cpp index d28d5aa..302d609 100644 --- a/isaac_ros_nitros/src/nitros_node.cpp +++ b/isaac_ros_nitros/src/nitros_node.cpp @@ -397,7 +397,8 @@ void NitrosNode::startNitrosNode() for (const auto & gxf_io_group : gxf_io_group_info_list_) { nitros_pub_sub_groups_.emplace_back( std::make_shared( - *this, nitros_type_manager_, gxf_io_group, config_map_, frame_id_map_ptr_)); + *this, nitros_context_.getContext(), + nitros_type_manager_, gxf_io_group, config_map_, frame_id_map_ptr_)); } // Start negotiation @@ -431,24 +432,21 @@ void NitrosNode::postNegotiationCallback() // Get the graph with the data formats assigned RCLCPP_INFO( get_logger(), - "[NitrosNode] Configuring the final graph based on the negotiation results"); - auto graph_yaml_string = optimizer_.exportGraph(configs, graph_namespace_); - if (!graph_yaml_string) { + "[NitrosNode] Exporting the final graph based on the negotiation results"); + auto export_result = optimizer_.exportGraphToFiles( + configs, package_share_directory_, graph_namespace_, graph_namespace_); + if (!export_result) { std::stringstream error_msg; - error_msg << "[NitrosNode] exportGraph Error: " << GxfResultStr(graph_yaml_string.error()); + error_msg << "[NitrosNode] exportGraphToFiles Error: " << + GxfResultStr(export_result.error()); RCLCPP_ERROR(get_logger(), error_msg.str().c_str()); throw std::runtime_error(error_msg.str().c_str()); } - // Store the YAML graph in a temporary file std::string temp_yaml_filename = package_share_directory_ + "/" + graph_namespace_ + ".yaml"; - std::ofstream app_yaml_file_out(temp_yaml_filename); - app_yaml_file_out << graph_yaml_string.value(); - app_yaml_file_out.close(); RCLCPP_INFO( get_logger(), - "[NitrosNode] Wrote the final YAML graph to \"%s\"", temp_yaml_filename.c_str()); - + "[NitrosNode] Wrote the final top level YAML graph to \"%s\"", temp_yaml_filename.c_str()); // Load the application graph gxf_result_t code; @@ -481,7 +479,6 @@ void NitrosNode::postNegotiationCallback() comp_info.component_type_name, &pointer); sub_ptr->setReceiverPointer(pointer); - sub_ptr->setContext(nitros_context_.getContext()); RCLCPP_DEBUG(get_logger(), "[NitrosNode] Setting a subscriber's pointer: %p", pointer); } @@ -495,7 +492,6 @@ void NitrosNode::postNegotiationCallback() comp_info.component_type_name, &pointer); pub_ptr->setVaultPointer(pointer); - pub_ptr->setContext(nitros_context_.getContext()); RCLCPP_DEBUG(get_logger(), "[NitrosNode] Setting a publisher's pointer: %p", pointer); pub_ptr->startGxfVaultPeriodicPollingTimer(); } @@ -524,6 +520,32 @@ void NitrosNode::preLoadGraphSetParameter( nitros_context_.preLoadGraphSetParameter(entity_name, component_name, parameter_name, value); } +std::shared_ptr NitrosNode::findNitrosPublisher( + const gxf::optimizer::ComponentInfo & comp_info) +{ + for (auto & nitros_pub_sub_group : nitros_pub_sub_groups_) { + auto nitros_pub = nitros_pub_sub_group->findNitrosPublisher(comp_info); + if (nitros_pub != nullptr) { + return nitros_pub; + } + } + return nullptr; +} + +std::shared_ptr NitrosNode::findNitrosSubscriber( + const gxf::optimizer::ComponentInfo & comp_info) +{ + { + for (auto & nitros_pub_sub_group : nitros_pub_sub_groups_) { + auto nitros_sub = nitros_pub_sub_group->findNitrosSubscriber(comp_info); + if (nitros_sub != nullptr) { + return nitros_sub; + } + } + return nullptr; + } +} + std::string NitrosNode::getNegotiatedDataFormat(const ComponentInfo comp_info) const { for (auto & nitros_pub_sub_group : nitros_pub_sub_groups_) { diff --git a/isaac_ros_nitros/src/nitros_publisher.cpp b/isaac_ros_nitros/src/nitros_publisher.cpp index c274357..60ce130 100644 --- a/isaac_ros_nitros/src/nitros_publisher.cpp +++ b/isaac_ros_nitros/src/nitros_publisher.cpp @@ -60,6 +60,21 @@ NitrosPublisher::NitrosPublisher( } } +NitrosPublisher::NitrosPublisher( + rclcpp::Node & node, + const gxf_context_t context, + std::shared_ptr nitros_type_manager, + const gxf::optimizer::ComponentInfo & gxf_component_info, + const std::vector & supported_data_formats, + const NitrosPublisherSubscriberConfig & config, + const negotiated::NegotiatedPublisherOptions & negotiated_pub_options) +: NitrosPublisher( + node, nitros_type_manager, gxf_component_info, supported_data_formats, config, + negotiated_pub_options) +{ + setContext(context); +} + std::shared_ptr NitrosPublisher::getNegotiatedPublisher() { return negotiated_pub_; @@ -225,12 +240,6 @@ void NitrosPublisher::gxfVaultPeriodicPollingCallback() void NitrosPublisher::publish(const int64_t handle) { - #if defined(USE_NVTX) - std::stringstream nvtx_tag_name; - nvtx_tag_name << "[" << node_.get_name() << "] NitrosPublisher::publish"; - nvtxRangePushWrapper(nvtx_tag_name.str().c_str(), CLR_PURPLE); - #endif - std::string frame_id = ""; if ((frame_id_map_ptr_ != nullptr) && (!config_.frame_id_source_key.empty())) { if (frame_id_map_ptr_->count(config_.frame_id_source_key) > 0) { @@ -247,10 +256,6 @@ void NitrosPublisher::publish(const int64_t handle) config_.compatible_data_format, frame_id}; publish(nitros_msg); - - #if defined(USE_NVTX) - nvtxRangePopWrapper(); - #endif } void NitrosPublisher::publish(const int64_t handle, const std_msgs::msg::Header & ros_header) @@ -333,17 +338,43 @@ void NitrosPublisher::publish( void NitrosPublisher::publish(NitrosTypeBase & base_msg) { + #if defined(USE_NVTX) + { + std::stringstream nvtx_tag_name; + nvtx_tag_name << + "[" << node_.get_name() << "] NitrosPublisher::publish(" << + config_.topic_name << ", t=" << + getTimestamp(base_msg) << ")"; + nvtxRangePushWrapper(nvtx_tag_name.str().c_str(), CLR_PURPLE); + } + #endif + // Invoke user-defined callback if needed if (config_.callback != nullptr) { + #if defined(USE_NVTX) + { + std::stringstream nvtx_tag_name; + nvtx_tag_name << + "[" << node_.get_name() << "] NitrosPublisher::publish(" << + config_.topic_name << ")::config_.callback"; + nvtxRangePushWrapper(nvtx_tag_name.str().c_str(), CLR_PURPLE); + } + #endif RCLCPP_DEBUG( node_.get_logger(), "[NitrosPublisher] Calling user-defined callback for an Nitros-typed " "message (eid=%ld)", base_msg.handle); config_.callback(context_, base_msg); + #if defined(USE_NVTX) + nvtxRangePopWrapper(); + #endif } // Skip publishing if its a noop type if (config_.type == NitrosPublisherSubscriberType::NOOP) { + #if defined(USE_NVTX) + nvtxRangePopWrapper(); + #endif return; } @@ -365,6 +396,9 @@ void NitrosPublisher::publish(NitrosTypeBase & base_msg) compatible_pub_, base_msg); } + #if defined(USE_NVTX) + nvtxRangePopWrapper(); + #endif } } // namespace nitros diff --git a/isaac_ros_nitros/src/nitros_publisher_subscriber_group.cpp b/isaac_ros_nitros/src/nitros_publisher_subscriber_group.cpp index 4a24f74..650255f 100644 --- a/isaac_ros_nitros/src/nitros_publisher_subscriber_group.cpp +++ b/isaac_ros_nitros/src/nitros_publisher_subscriber_group.cpp @@ -38,11 +38,13 @@ namespace nitros NitrosPublisherSubscriberGroup::NitrosPublisherSubscriberGroup( rclcpp::Node & node, + const gxf_context_t context, std::shared_ptr nitros_type_manager, const gxf::optimizer::GraphIOGroupSupportedDataTypesInfo & gxf_io_supported_data_formats_info, const NitrosPublisherSubscriberConfigMap & nitros_pub_sub_configs, const std::shared_ptr> frame_id_map_ptr) : node_(node), + context_(context), nitros_type_manager_(nitros_type_manager), gxf_io_supported_data_formats_info_(gxf_io_supported_data_formats_info), nitros_pub_sub_configs_(nitros_pub_sub_configs), @@ -364,7 +366,12 @@ void NitrosPublisherSubscriberGroup::createNitrosSubscribers() NitrosPublisherSubscriberConfig component_config = nitros_pub_sub_configs_[component_key]; auto nitros_sub = std::make_shared( - node_, nitros_type_manager_, ingress_comp_info, supported_data_formats, component_config); + node_, + context_, + nitros_type_manager_, + ingress_comp_info, + supported_data_formats, + component_config); nitros_sub->setFrameIdMap(frame_id_map_ptr_); @@ -416,6 +423,7 @@ void NitrosPublisherSubscriberGroup::createNitrosPublishers() auto nitros_pub = std::make_shared( node_, + context_, nitros_type_manager_, egress_comp_info, supported_data_formats, diff --git a/isaac_ros_nitros/src/nitros_subscriber.cpp b/isaac_ros_nitros/src/nitros_subscriber.cpp index 85c5251..4fd12d0 100644 --- a/isaac_ros_nitros/src/nitros_subscriber.cpp +++ b/isaac_ros_nitros/src/nitros_subscriber.cpp @@ -58,6 +58,19 @@ NitrosSubscriber::NitrosSubscriber( } } +NitrosSubscriber::NitrosSubscriber( + rclcpp::Node & node, + const gxf_context_t context, + std::shared_ptr nitros_type_manager, + const gxf::optimizer::ComponentInfo & gxf_component_info, + const std::vector & supported_data_formats, + const NitrosPublisherSubscriberConfig & config) +: NitrosSubscriber( + node, nitros_type_manager, gxf_component_info, supported_data_formats, config) +{ + setContext(context); +} + std::shared_ptr NitrosSubscriber::getNegotiatedSubscriber() { return negotiated_sub_; @@ -224,7 +237,10 @@ void NitrosSubscriber::subscriberCallback( { #if defined(USE_NVTX) std::stringstream nvtx_tag_name; - nvtx_tag_name << "[" << node_.get_name() << "] NitrosSubscriber::subscriberCallback"; + nvtx_tag_name << + "[" << node_.get_name() << "] NitrosSubscriber::subscriberCallback(" << + config_.topic_name << ", t=" << + getTimestamp(msg_base) << ")"; nvtxRangePushWrapper(nvtx_tag_name.str().c_str(), CLR_PURPLE); #endif diff --git a/isaac_ros_nitros/src/utils/vpi_utilities.cpp b/isaac_ros_nitros/src/utils/vpi_utilities.cpp new file mode 100644 index 0000000..8357aaa --- /dev/null +++ b/isaac_ros_nitros/src/utils/vpi_utilities.cpp @@ -0,0 +1,124 @@ +/** + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#include "isaac_ros_nitros/utils/vpi_utilities.hpp" + +#include +#include + +namespace nvidia +{ +namespace isaac_ros +{ +namespace nitros +{ + +namespace +{ + +// Map from human-friendly backend string to VPI backend as uint32_t +const std::unordered_map g_str_to_vpi_backend({ + {"CPU", VPI_BACKEND_CPU}, + {"CUDA", VPI_BACKEND_CUDA}, + {"PVA", VPI_BACKEND_PVA}, + {"VIC", VPI_BACKEND_VIC}, + {"NVENC", VPI_BACKEND_NVENC}, + {"TEGRA", VPI_BACKEND_TEGRA}, + {"ALL", VPI_BACKEND_ALL}, + }); + +} // namespace + +uint32_t DeclareVPIBackendParameter(rclcpp::Node * node, uint32_t default_backends) noexcept +{ + const std::string DEFAULT_BACKENDS_STRING{""}; + const std::string backends_string{node->declare_parameter("backends", DEFAULT_BACKENDS_STRING)}; + + // If the ROS2 parameter is still at the default value, then return the default backend + if (backends_string == DEFAULT_BACKENDS_STRING) { + return default_backends; + } + + // Final backend to be returned after combining all requested backends + uint32_t backends{}; + + std::stringstream stream{backends_string}; + while (stream.good()) { + // Extract next backend delimited by commas + std::string backend_str; + std::getline(stream, backend_str, ','); + + // Search the map for the backend + auto backend_it{g_str_to_vpi_backend.find(backend_str)}; + if (backend_it != g_str_to_vpi_backend.end()) { + // If found, bitwise-or the backend to add it into the allowable backends + backends |= backend_it->second; + } else { + // Otherwise, log an error with all allowable backends + std::ostringstream os{}; + os << "Backend '" << backend_str << "' from requested backends '" << backends_string << + "' not recognized. Backend must be one of:" << + std::endl; + std::for_each( + g_str_to_vpi_backend.begin(), g_str_to_vpi_backend.end(), [&os](auto & entry) { + os << entry.first << std::endl; + }); + + RCLCPP_ERROR(node->get_logger(), os.str().c_str()); + + // Return default backends due to error + return default_backends; + } + } + + // Once all backends have been bitwise-or'ed together, return the result + return backends; +} + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" +VPIFormat ToVpiFormat(VideoFormat value) +{ + switch (value) { + case VideoFormat::GXF_VIDEO_FORMAT_NV12: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_NV12, + .pixel_type = {VPI_PIXEL_TYPE_U8, VPI_PIXEL_TYPE_2U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_NV12_ER: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_NV12_ER, + .pixel_type = {VPI_PIXEL_TYPE_U8, VPI_PIXEL_TYPE_2U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_RGBA: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_RGBA8, .pixel_type = {VPI_PIXEL_TYPE_4U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_BGRA: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_BGRA8, .pixel_type = {VPI_PIXEL_TYPE_4U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_RGB: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_RGB8, .pixel_type = {VPI_PIXEL_TYPE_3U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_BGR: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_BGR8, .pixel_type = {VPI_PIXEL_TYPE_3U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_GRAY: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_U8, .pixel_type = {VPI_PIXEL_TYPE_U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_GRAY16: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_U16, .pixel_type = {VPI_PIXEL_TYPE_U16}}; + case VideoFormat::GXF_VIDEO_FORMAT_GRAY32: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_U32, .pixel_type = {VPI_PIXEL_TYPE_U32}}; + case VideoFormat::GXF_VIDEO_FORMAT_NV24: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_NV24, + .pixel_type = {VPI_PIXEL_TYPE_U8, VPI_PIXEL_TYPE_2U8}}; + case VideoFormat::GXF_VIDEO_FORMAT_NV24_ER: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_NV24_ER, + .pixel_type = {VPI_PIXEL_TYPE_U8, VPI_PIXEL_TYPE_2U8}}; + default: + return VPIFormat{.image_format = VPI_IMAGE_FORMAT_RGB8, .pixel_type = {VPI_PIXEL_TYPE_3U8}}; + } +} +#pragma GCC diagnostic pop + +} // namespace nitros +} // namespace isaac_ros +} // namespace nvidia diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_april_tag_detection_array_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_april_tag_detection_array_type/package.xml index c2ad385..3f5ba77 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_april_tag_detection_array_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_april_tag_detection_array_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_april_tag_detection_array_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Apriltag Detection Array Type Hemal Shah diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_camera_info_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_camera_info_type/package.xml index 593c106..3d9ef55 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_camera_info_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_camera_info_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_camera_info_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Camera Info Type CY Chen diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/CMakeLists.txt b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/CMakeLists.txt new file mode 100644 index 0000000..6cd3eea --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/CMakeLists.txt @@ -0,0 +1,88 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +cmake_minimum_required(VERSION 3.8) +project(isaac_ros_nitros_compressed_image_type LANGUAGES C CXX) + + +# Default to C++17 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 17) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + + +# Default to Release build +if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) +endif() +message( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" ) + +execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE) +message( STATUS "Architecture: ${ARCHITECTURE}" ) + +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() + + +# for #include +find_package(CUDA REQUIRED) +include_directories("${CUDA_INCLUDE_DIRS}") + +option(USE_NVTX "Enable NVTX markers for improved profiling (if available)" ON) +if(USE_NVTX) + add_definitions(-DUSE_NVTX) + link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") + link_libraries("nvToolsExt") +endif() + + +# NitrosCompressedImage +ament_auto_add_library(${PROJECT_NAME} SHARED + src/nitros_compressed_image.cpp) +target_compile_definitions(${PROJECT_NAME} + PRIVATE "COMPOSITION_BUILDING_DLL" +) +target_link_libraries(${PROJECT_NAME}) +install( + DIRECTORY include/ + DESTINATION include/${PROJECT_NAME} +) +install(TARGETS ${PROJECT_NAME} EXPORT export_${PROJECT_NAME}) + + +if(BUILD_TESTING) + # NitrosCompressedImageForwardNode + ament_auto_add_library(nitros_compressed_image_forward_node SHARED test/src/nitros_compressed_image_forward_node.cpp) + target_compile_definitions(nitros_compressed_image_forward_node + PRIVATE "COMPOSITION_BUILDING_DLL" + ) + target_link_libraries(nitros_compressed_image_forward_node ${PROJECT_NAME}) + rclcpp_components_register_nodes(nitros_compressed_image_forward_node "nvidia::isaac_ros::nitros::NitrosCompressedImageForwardNode") + set(node_plugins "${node_plugins}nvidia::isaac_ros::nitros::NitrosCompressedImage;$\n") + # Install test/config directory + install( + DIRECTORY test/config + DESTINATION share/${PROJECT_NAME}/test + ) + + find_package(ament_lint_auto REQUIRED) + + # Ignore copyright notices since we use custom NVIDIA Isaac ROS Software License + set(ament_cmake_copyright_FOUND TRUE) + + ament_lint_auto_find_test_dependencies() + + find_package(launch_testing_ament_cmake REQUIRED) + add_launch_test(test/isaac_ros_nitros_compressed_image_type_test_pol.py TIMEOUT "15") +endif() + +ament_auto_package() diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/include/isaac_ros_nitros_compressed_image_type/nitros_compressed_image.hpp b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/include/isaac_ros_nitros_compressed_image_type/nitros_compressed_image.hpp new file mode 100644 index 0000000..538b4b4 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/include/isaac_ros_nitros_compressed_image_type/nitros_compressed_image.hpp @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#ifndef ISAAC_ROS_NITROS_COMPRESSED_IMAGE_TYPE__NITROS_COMPRESSED_IMAGE_HPP_ +#define ISAAC_ROS_NITROS_COMPRESSED_IMAGE_TYPE__NITROS_COMPRESSED_IMAGE_HPP_ +/* + * Type adaptation for: + * Nitros type: NitrosCompressedImage + * ROS type: sensor_msgs::msg::CompressedImage + */ + +#include + +#include "isaac_ros_nitros/types/nitros_format_agent.hpp" +#include "isaac_ros_nitros/types/nitros_type_base.hpp" + +#include "rclcpp/type_adapter.hpp" +#include "sensor_msgs/msg/compressed_image.hpp" + + +namespace nvidia +{ +namespace isaac_ros +{ +namespace nitros +{ + +// Type forward declaration +struct NitrosCompressedImage; + +// Formats +struct nitros_compressed_image_t +{ + using MsgT = NitrosCompressedImage; + static const inline std::string supported_type_name = "nitros_compressed_image"; +}; + +// NITROS data type registration factory +NITROS_TYPE_FACTORY_BEGIN(NitrosCompressedImage) +// Supported data formats +NITROS_FORMAT_FACTORY_BEGIN() +NITROS_FORMAT_ADD(nitros_compressed_image_t) +NITROS_FORMAT_FACTORY_END() +// Required extensions +NITROS_TYPE_EXTENSION_FACTORY_BEGIN() +NITROS_TYPE_EXTENSION_ADD("isaac_ros_nitros", "gxf/std/libgxf_std.so") +NITROS_TYPE_EXTENSION_ADD("isaac_ros_nitros", "gxf/multimedia/libgxf_multimedia.so") +NITROS_TYPE_EXTENSION_FACTORY_END() +NITROS_TYPE_FACTORY_END() + +} // namespace nitros +} // namespace isaac_ros +} // namespace nvidia + + +template<> +struct rclcpp::TypeAdapter< + nvidia::isaac_ros::nitros::NitrosCompressedImage, + sensor_msgs::msg::CompressedImage> +{ + using is_specialized = std::true_type; + using custom_type = nvidia::isaac_ros::nitros::NitrosCompressedImage; + using ros_message_type = sensor_msgs::msg::CompressedImage; + + static void convert_to_ros_message( + const custom_type & source, + ros_message_type & destination); + + static void convert_to_custom( + const ros_message_type & source, + custom_type & destination); +}; + +RCLCPP_USING_CUSTOM_TYPE_AS_ROS_MESSAGE_TYPE( + nvidia::isaac_ros::nitros::NitrosCompressedImage, + sensor_msgs::msg::CompressedImage); + +#endif // ISAAC_ROS_NITROS_COMPRESSED_IMAGE_TYPE__NITROS_COMPRESSED_IMAGE_HPP_ diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/package.xml new file mode 100644 index 0000000..bce00d2 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/package.xml @@ -0,0 +1,39 @@ + + + + + + + isaac_ros_nitros_compressed_image_type + 0.20.0 + Isaac ROS NITROS Compressed Image Type + + Hemal Shah + NVIDIA Isaac ROS Software License + https://developer.nvidia.com/isaac-ros-gems/ + CY Chen + Yuankun Zhu + + ament_cmake + + rclcpp + rclcpp_components + sensor_msgs + isaac_ros_nitros + + ament_lint_auto + ament_lint_common + isaac_ros_test + + + ament_cmake + + diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/src/nitros_compressed_image.cpp b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/src/nitros_compressed_image.cpp new file mode 100644 index 0000000..ebe2203 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/src/nitros_compressed_image.cpp @@ -0,0 +1,218 @@ +/** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ +#include + +#include +#include +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#pragma GCC diagnostic ignored "-Wpedantic" +#include "gxf/core/entity.hpp" +#include "gxf/core/gxf.h" +#include "gxf/multimedia/camera.hpp" +#include "gxf/std/timestamp.hpp" +#include "gxf/std/tensor.hpp" +#pragma GCC diagnostic pop + +#include "isaac_ros_nitros_compressed_image_type/nitros_compressed_image.hpp" +#include "isaac_ros_nitros/types/type_adapter_nitros_context.hpp" +#include "rclcpp/rclcpp.hpp" + + +namespace +{ +constexpr char kEntityName[] = "memory_pool"; +constexpr char kComponentName[] = "unbounded_allocator"; +constexpr char kComponentTypeName[] = "nvidia::gxf::UnboundedAllocator"; +} // namespace + + +void rclcpp::TypeAdapter< + nvidia::isaac_ros::nitros::NitrosCompressedImage, + sensor_msgs::msg::CompressedImage>::convert_to_ros_message( + const custom_type & source, ros_message_type & destination) +{ + nvidia::isaac_ros::nitros::nvtxRangePushWrapper( + "NitrosCompressedImage::convert_to_ros_message", + nvidia::isaac_ros::nitros::CLR_PURPLE); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosCompressedImage"), + "[convert_to_ros_message] Conversion started for handle=%ld", source.handle); + + auto context = nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(); + auto msg_entity = nvidia::gxf::Entity::Shared(context, source.handle); + + auto maybe_gxf_tensor = msg_entity->get(); + if (!maybe_gxf_tensor) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Failed to get tensor component from message entity: " << + GxfResultStr(maybe_gxf_tensor.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + auto gxf_tensor = maybe_gxf_tensor.value(); + + destination.format = "h264"; + destination.data.resize(gxf_tensor->size()); + + // compressed results are reside on CPU + const cudaError_t cuda_error = cudaMemcpy( + destination.data.data(), + gxf_tensor->data().value(), gxf_tensor->size(), + cudaMemcpyHostToHost); + + if (cuda_error != cudaSuccess) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] cudaMemcpy failed for conversion from " + "NitrosCompressedImage to sensor_msgs::msg::CompressedImage: " << + cudaGetErrorName(cuda_error) << + " (" << cudaGetErrorString(cuda_error) << ")"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Populate timestamp information back into ROS header + auto input_timestamp = msg_entity->get("timestamp"); + if (!input_timestamp) { // Fallback to any 'timestamp' + input_timestamp = msg_entity->get(); + } + if (input_timestamp) { + destination.header.stamp.sec = static_cast( + input_timestamp.value()->acqtime / static_cast(1e9)); + destination.header.stamp.nanosec = static_cast( + input_timestamp.value()->acqtime % static_cast(1e9)); + } + + // Set frame ID + destination.header.frame_id = source.frame_id; + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosCompressedImage"), + "[convert_to_ros_message] Conversion completed"); + + nvidia::isaac_ros::nitros::nvtxRangePopWrapper(); +} + +void rclcpp::TypeAdapter< + nvidia::isaac_ros::nitros::NitrosCompressedImage, + sensor_msgs::msg::CompressedImage>::convert_to_custom( + const ros_message_type & source, + custom_type & destination) +{ + nvidia::isaac_ros::nitros::nvtxRangePushWrapper( + "NitrosCompressedImage::convert_to_custom", + nvidia::isaac_ros::nitros::CLR_PURPLE); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosCompressedImage"), + "[convert_to_custom] Conversion started"); + + auto context = nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(); + + auto message = nvidia::gxf::Entity::New(context); + if (!message) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Error initializing new message entity: " << + GxfResultStr(message.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + auto gxf_tensor = message->add("compressed_image"); + + // Get pointer to allocator component + gxf_uid_t cid; + nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getCid( + kEntityName, kComponentName, kComponentTypeName, cid); + + auto maybe_allocator_handle = + nvidia::gxf::Handle::Create(context, cid); + if (!maybe_allocator_handle) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Failed to get allocator's handle: " << + GxfResultStr(maybe_allocator_handle.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + auto allocator_handle = maybe_allocator_handle.value(); + + // Allocate memory of gxf tensor. + auto gxf_tensor_result = gxf_tensor.value()->reshape( + nvidia::gxf::Shape{static_cast(source.data.size())}, nvidia::gxf::MemoryStorageType::kHost, + allocator_handle); + if (!gxf_tensor_result) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Error Creating tensors: " << + GxfResultStr(gxf_tensor_result.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Copy data from compressed image msg to gxf tensor. + const cudaError_t cuda_error = cudaMemcpy( + gxf_tensor.value()->data().value(), + source.data.data(), source.data.size(), cudaMemcpyHostToHost); + + if (cuda_error != cudaSuccess) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] cudaMemcpy failed for copying data from " + "sensor_msgs::msg::CompressedImage to NitrosCompressedImage: " << + cudaGetErrorName(cuda_error) << + " (" << cudaGetErrorString(cuda_error) << ")"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Add timestamp to the message + uint64_t input_timestamp = + source.header.stamp.sec * static_cast(1e9) + + source.header.stamp.nanosec; + auto output_timestamp = message->add("timestamp"); + if (!output_timestamp) { + std::stringstream error_msg; + error_msg << "[convert_to_custom] Failed to add a timestamp component to message: " << + GxfResultStr(output_timestamp.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosCompressedImage"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + output_timestamp.value()->acqtime = input_timestamp; + + // Set frame ID + destination.frame_id = source.header.frame_id; + + // Set Entity Id + destination.handle = message->eid(); + GxfEntityRefCountInc(context, message->eid()); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosCompressedImage"), + "[convert_to_custom] Conversion completed (resulting handle=%ld)", message->eid()); + + nvidia::isaac_ros::nitros::nvtxRangePopWrapper(); +} diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/config/test_forward_node.yaml b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/config/test_forward_node.yaml new file mode 100644 index 0000000..3f8e1f8 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/config/test_forward_node.yaml @@ -0,0 +1,56 @@ +%YAML 1.2 +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. +--- +name: forward +components: +- name: input + type: nvidia::gxf::DoubleBufferReceiver + parameters: + capacity: 1 +- name: output + type: nvidia::gxf::DoubleBufferTransmitter +- type: nvidia::isaac_ros::MessageForward + parameters: + in: input + out: output +- type: nvidia::gxf::MessageAvailableSchedulingTerm + parameters: + receiver: input + min_size: 1 +--- +name: vault +components: +- name: input + type: nvidia::gxf::DoubleBufferReceiver + parameters: + capacity: 1 +- type: nvidia::gxf::MessageAvailableSchedulingTerm + parameters: + receiver: input + min_size: 1 +- name: vault + type: nvidia::gxf::Vault + parameters: + source: input + max_waiting_count: 1 + drop_waiting: false +--- +components: +- type: nvidia::gxf::Connection + parameters: + source: forward/output + target: vault/input +--- +components: +- type: nvidia::gxf::GreedyScheduler + parameters: + clock: clock + stop_on_deadlock: false +- name: clock + type: nvidia::gxf::RealtimeClock \ No newline at end of file diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/isaac_ros_nitros_compressed_image_type_test_pol.py b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/isaac_ros_nitros_compressed_image_type_test_pol.py new file mode 100644 index 0000000..d8fb6ec --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/isaac_ros_nitros_compressed_image_type_test_pol.py @@ -0,0 +1,111 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +"""Proof-of-Life test for the NitrosCompressedImage type adapter.""" + +import random +import time + + +from isaac_ros_test import IsaacROSBaseTest + +import launch +from launch_ros.actions import ComposableNodeContainer +from launch_ros.descriptions import ComposableNode +import launch_testing + +import pytest +import rclpy +from sensor_msgs.msg import CompressedImage + + +@pytest.mark.rostest +def generate_test_description(): + """Generate launch description with all ROS2 nodes for testing.""" + test_ns = IsaacROSNitrosCompressedImageTest.generate_namespace() + container = ComposableNodeContainer( + name='compressed_image_container', + namespace='isaac_ros_nitros_container', + package='rclcpp_components', + executable='component_container_mt', + composable_node_descriptions=[ + ComposableNode( + package='isaac_ros_nitros_compressed_image_type', + plugin='nvidia::isaac_ros::nitros::NitrosCompressedImageForwardNode', + name='NitrosCompressedImageForwardNode', + namespace=test_ns, + parameters=[{ + 'compatible_format': 'nitros_compressed_image' + }], + remappings=[ + (test_ns+'/topic_forward_input', test_ns+'/input'), + (test_ns+'/topic_forward_output', test_ns+'/output'), + ] + ), + ], + output='both', + arguments=['--ros-args', '--log-level', 'info'], + ) + + return IsaacROSNitrosCompressedImageTest.generate_test_description([ + container, + launch.actions.TimerAction( + period=2.5, actions=[launch_testing.actions.ReadyToTest()]) + ]) + + +class IsaacROSNitrosCompressedImageTest(IsaacROSBaseTest): + """Validate NitrosCompressedImage type adapter.""" + + def test_nitros_compressed_image_type_conversions(self) -> None: + """Expect data received to be identical to source.""" + self.generate_namespace_lookup(['input', 'output']) + received_messages = {} + + received_compressed_img_sub = self.create_logging_subscribers( + subscription_requests=[('output', CompressedImage)], + received_messages=received_messages + ) + + compressed_img_pub = self.node.create_publisher( + CompressedImage, self.namespaces['input'], self.DEFAULT_QOS) + + try: + compressed_img_msg = CompressedImage() + compressed_img_msg.format = 'h264' + compressed_img_msg.data = [random.randint(0, 255) for _ in range(100)] + # Wait at most TIMEOUT seconds for subscriber to respond + TIMEOUT = 2 + end_time = time.time() + TIMEOUT + + done = False + while time.time() < end_time: + timestamp = self.node.get_clock().now().to_msg() + compressed_img_msg.header.stamp = timestamp + + compressed_img_pub.publish(compressed_img_msg) + rclpy.spin_once(self.node, timeout_sec=0.1) + + # If we have received a message on the output topic, break + if 'output' in received_messages: + done = True + break + + self.assertTrue(done, "Didn't receive output on output_image topic!") + + received_compressed_img = received_messages['output'] + + self.assertEqual(len(compressed_img_msg.data), len(received_compressed_img.data), + 'Source and received image sizes do not match: ' + + f'{len(compressed_img_msg.data)} \ + != {len(received_compressed_img.data)}') + + print('Source and received images are identical.') + finally: + self.node.destroy_subscription(received_compressed_img_sub) + self.node.destroy_publisher(compressed_img_pub) diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/src/nitros_compressed_image_forward_node.cpp b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/src/nitros_compressed_image_forward_node.cpp new file mode 100644 index 0000000..0ff664b --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_compressed_image_type/test/src/nitros_compressed_image_forward_node.cpp @@ -0,0 +1,88 @@ +/** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#include "isaac_ros_nitros_compressed_image_type/nitros_compressed_image.hpp" +#include "isaac_ros_nitros/nitros_node.hpp" + +#include "rclcpp_components/register_node_macro.hpp" + +namespace nvidia +{ +namespace isaac_ros +{ +namespace nitros +{ + +constexpr char PACKAE_NAME[] = "isaac_ros_nitros_compressed_image_type"; +constexpr char FORWARD_FORMAT[] = "nitros_compressed_image"; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" +class NitrosCompressedImageForwardNode : public NitrosNode +{ +public: + explicit NitrosCompressedImageForwardNode(const rclcpp::NodeOptions & options) + : NitrosNode( + options, + // Application graph filename + "test/config/test_forward_node.yaml", + // I/O configuration map + { + {"forward/input", + { + .type = NitrosPublisherSubscriberType::NEGOTIATED, + .qos = rclcpp::QoS(1), + .compatible_data_format = FORWARD_FORMAT, + .topic_name = "topic_forward_input", + .use_compatible_format_only = true, + } + }, + {"vault/vault", + { + .type = NitrosPublisherSubscriberType::NEGOTIATED, + .qos = rclcpp::QoS(1), + .compatible_data_format = FORWARD_FORMAT, + .topic_name = "topic_forward_output", + .use_compatible_format_only = true, + } + } + }, + // Extension specs + {}, + // Optimizer's rule filenames + {}, + // Extension so file list + { + {"isaac_ros_nitros", "gxf/std/libgxf_std.so"}, + {"isaac_ros_nitros", "gxf/cuda/libgxf_cuda.so"}, + {"isaac_ros_nitros", "gxf/serialization/libgxf_serialization.so"}, + {"isaac_ros_nitros", "gxf/libgxf_message_compositor.so"} + }, + // Test node package name + PACKAE_NAME) + { + std::string compatible_format = declare_parameter("compatible_format", ""); + if (!compatible_format.empty()) { + config_map_["forward/input"].compatible_data_format = compatible_format; + config_map_["vault/vault"].compatible_data_format = compatible_format; + } + + registerSupportedType(); + + startNitrosNode(); + } +}; +#pragma GCC diagnostic pop + +} // namespace nitros +} // namespace isaac_ros +} // namespace nvidia + +RCLCPP_COMPONENTS_REGISTER_NODE(nvidia::isaac_ros::nitros::NitrosCompressedImageForwardNode) diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/CMakeLists.txt b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/CMakeLists.txt index 18744de..466da60 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/CMakeLists.txt +++ b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/CMakeLists.txt @@ -37,11 +37,11 @@ include_directories(gxf/include) include_directories(gxf/include/extensions) add_library(detectnet SHARED IMPORTED) if( ${ARCHITECTURE} STREQUAL "x86_64" ) - set_property(TARGET detectnet PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64/libgxf_detectnet.so) - install(DIRECTORY gxf/lib/gxf_x86_64/ DESTINATION share/${PROJECT_NAME}/gxf) + set_property(TARGET detectnet PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_detectnet.so) + install(DIRECTORY gxf/lib/gxf_x86_64_cuda_11_7/ DESTINATION share/${PROJECT_NAME}/gxf) elseif( ${ARCHITECTURE} STREQUAL "aarch64" ) - set_property(TARGET detectnet PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack50/libgxf_detectnet.so) - install(DIRECTORY gxf/lib/gxf_jetpack50/ DESTINATION share/${PROJECT_NAME}/gxf) + set_property(TARGET detectnet PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/gxf/lib/gxf_jetpack502/libgxf_detectnet.so) + install(DIRECTORY gxf/lib/gxf_jetpack502/ DESTINATION share/${PROJECT_NAME}/gxf) endif() # Detect headers install( diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_jetpack50/libgxf_detectnet.so b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_jetpack50/libgxf_detectnet.so deleted file mode 100755 index 1655424..0000000 --- a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_jetpack50/libgxf_detectnet.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ac4b76834e613ff67f86a877fb7fdeef6c3e20f2142cb39887e61262d4dd533 -size 222056 diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_jetpack502/libgxf_detectnet.so b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_jetpack502/libgxf_detectnet.so new file mode 100755 index 0000000..fd0c0c1 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_jetpack502/libgxf_detectnet.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e15b1e7b685b96d1efd45365aad0bd3f93e982e7a122dbfcb56718b6e3f37e83 +size 222056 diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_x86_64/libgxf_detectnet.so b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_x86_64/libgxf_detectnet.so deleted file mode 100755 index bbb4050..0000000 --- a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_x86_64/libgxf_detectnet.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f4d325db5bf7499e00d85423c3753e1d462ff48227ae33e9bcd9764a99d9a23d -size 231824 diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_detectnet.so b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_detectnet.so new file mode 100755 index 0000000..9e2a93f --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/gxf/lib/gxf_x86_64_cuda_11_7/libgxf_detectnet.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0aa8a3d8361a19178b343ceea64697cdc019d96acc942beb18e628f7beeb0fa2 +size 231824 diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/package.xml index 78defd4..4f65c2f 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_detection2_d_array_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_detection2_d_array_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Detection 2D Array Type Ashwin Varghese Kuruttukulam diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/package.xml index 687e770..ca751da 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_disparity_image_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Disparity Image Type Hemal Shah diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/src/nitros_disparity_image.cpp b/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/src/nitros_disparity_image.cpp index 3aec682..3c75e74 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/src/nitros_disparity_image.cpp +++ b/isaac_ros_nitros_type/isaac_ros_nitros_disparity_image_type/src/nitros_disparity_image.cpp @@ -51,7 +51,6 @@ const std::unordered_map g_gxf_to_ros_video_format({ // Get step size for ROS Image uint32_t GetStepSize(const nvidia::gxf::VideoBufferInfo & video_buff_info) { - // TODO(yuankunz): Implement for multiplanar to interleaved return video_buff_info.width * video_buff_info.color_planes[0].bytes_per_pixel; } @@ -106,7 +105,7 @@ void rclcpp::TypeAdapterget(); - auto gxf_disparity_parameters = msg_entity->findAll(); + auto gxf_disparity_parameters = msg_entity->findAll(); if (!gxf_video_buffer) { std::stringstream error_msg; @@ -301,10 +300,10 @@ void rclcpp::TypeAdapteracqtime = input_timestamp; // Set focal and baseline - *(message->add("t")->get()) = source.t; - *(message->add("f")->get()) = source.f; - *(message->add("min_disparity")->get()) = source.min_disparity; - *(message->add("max_disparity")->get()) = source.max_disparity; + *(message->add("t")->get()) = source.t; + *(message->add("f")->get()) = source.f; + *(message->add("min_disparity")->get()) = source.min_disparity; + *(message->add("max_disparity")->get()) = source.max_disparity; // Set frame ID destination.frame_id = source.header.frame_id; @@ -313,7 +312,7 @@ void rclcpp::TypeAdaptereid(); GxfEntityRefCountInc(context, message->eid()); - RCLCPP_INFO( + RCLCPP_DEBUG( rclcpp::get_logger("NitrosDisparityImage"), "[convert_to_custom] Conversion completed (resulting handle=%ld)", message->eid()); diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/CMakeLists.txt b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/CMakeLists.txt index cfcd960..efeb881 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/CMakeLists.txt +++ b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/CMakeLists.txt @@ -32,6 +32,8 @@ message( STATUS "Architecture: ${ARCHITECTURE}" ) find_package(ament_cmake_auto REQUIRED) ament_auto_find_build_dependencies() +# Find VPI dependency +find_package(vpi REQUIRED) # for #include find_package(CUDA REQUIRED) @@ -51,7 +53,7 @@ ament_auto_add_library(${PROJECT_NAME} SHARED target_compile_definitions(${PROJECT_NAME} PRIVATE "COMPOSITION_BUILDING_DLL" ) -target_link_libraries(${PROJECT_NAME}) +target_link_libraries(${PROJECT_NAME} vpi) install( DIRECTORY include/ DESTINATION include/${PROJECT_NAME} diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/include/isaac_ros_nitros_image_type/nitros_image.hpp b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/include/isaac_ros_nitros_image_type/nitros_image.hpp index 96f972a..cc742b6 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/include/isaac_ros_nitros_image_type/nitros_image.hpp +++ b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/include/isaac_ros_nitros_image_type/nitros_image.hpp @@ -84,6 +84,12 @@ struct nitros_image_mono16_t static const inline std::string supported_type_name = "nitros_image_mono16"; }; +struct nitros_image_nv12_t +{ + using MsgT = NitrosImage; + static const inline std::string supported_type_name = "nitros_image_nv12"; +}; + struct nitros_image_nv24_t { using MsgT = NitrosImage; @@ -102,6 +108,7 @@ NITROS_FORMAT_ADD(nitros_image_bgra8_t) NITROS_FORMAT_ADD(nitros_image_bgr16_t) NITROS_FORMAT_ADD(nitros_image_mono8_t) NITROS_FORMAT_ADD(nitros_image_mono16_t) +NITROS_FORMAT_ADD(nitros_image_nv12_t) NITROS_FORMAT_ADD(nitros_image_nv24_t) NITROS_FORMAT_FACTORY_END() // Required extensions diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/package.xml index 6fb14f5..c53c004 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_image_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Image Type Hemal Shah @@ -28,6 +28,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. rclcpp_components sensor_msgs isaac_ros_nitros + isaac_ros_common ament_lint_auto ament_lint_common diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/src/nitros_image.cpp b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/src/nitros_image.cpp index 8bfa679..5ef2507 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_image_type/src/nitros_image.cpp +++ b/isaac_ros_nitros_type/isaac_ros_nitros_image_type/src/nitros_image.cpp @@ -26,51 +26,61 @@ #include "isaac_ros_nitros_image_type/nitros_image.hpp" #include "isaac_ros_nitros/types/type_adapter_nitros_context.hpp" - #include "rclcpp/rclcpp.hpp" - +#include "sensor_msgs/sensor_msgs/image_encodings.hpp" +#include "isaac_ros_nitros/utils/vpi_utilities.hpp" +#include "vpi/Image.h" +#include "vpi/algo/ConvertImageFormat.h" constexpr char kEntityName[] = "memory_pool"; constexpr char kComponentName[] = "unbounded_allocator"; constexpr char kComponentTypeName[] = "nvidia::gxf::UnboundedAllocator"; - namespace { + using VideoFormat = nvidia::gxf::VideoFormat; +namespace img_encodings = sensor_msgs::image_encodings; +namespace nitros = nvidia::isaac_ros::nitros; // Map to store the ROS format encoding to Nitros format encoding const std::unordered_map g_ros_to_gxf_video_format({ - {"rgb8", VideoFormat::GXF_VIDEO_FORMAT_RGB}, - {"rgba8", VideoFormat::GXF_VIDEO_FORMAT_RGBA}, - {"rgb16", VideoFormat::GXF_VIDEO_FORMAT_RGB16}, - {"bgr8", VideoFormat::GXF_VIDEO_FORMAT_BGR}, - {"bgra8", VideoFormat::GXF_VIDEO_FORMAT_BGRA}, - {"bgr16", VideoFormat::GXF_VIDEO_FORMAT_BGR16}, - {"mono8", VideoFormat::GXF_VIDEO_FORMAT_GRAY}, - {"mono16", VideoFormat::GXF_VIDEO_FORMAT_GRAY16}, - {"nv24", VideoFormat::GXF_VIDEO_FORMAT_NV24} + {img_encodings::RGB8, VideoFormat::GXF_VIDEO_FORMAT_RGB}, + {img_encodings::RGBA8, VideoFormat::GXF_VIDEO_FORMAT_RGBA}, + {img_encodings::RGB16, VideoFormat::GXF_VIDEO_FORMAT_RGB16}, + {img_encodings::BGR8, VideoFormat::GXF_VIDEO_FORMAT_BGR}, + {img_encodings::BGRA8, VideoFormat::GXF_VIDEO_FORMAT_BGRA}, + {img_encodings::BGR16, VideoFormat::GXF_VIDEO_FORMAT_BGR16}, + {img_encodings::MONO8, VideoFormat::GXF_VIDEO_FORMAT_GRAY}, + {img_encodings::MONO16, VideoFormat::GXF_VIDEO_FORMAT_GRAY16}, + {img_encodings::NV24, VideoFormat::GXF_VIDEO_FORMAT_NV24_ER}, + {"nv12", VideoFormat::GXF_VIDEO_FORMAT_NV12_ER}, }); // Map to store the Nitros format encoding to ROS format encoding const std::unordered_map g_gxf_to_ros_video_format({ - {VideoFormat::GXF_VIDEO_FORMAT_RGB, "rgb8"}, - {VideoFormat::GXF_VIDEO_FORMAT_RGBA, "rgba8"}, - {VideoFormat::GXF_VIDEO_FORMAT_RGB16, "rgb16"}, - {VideoFormat::GXF_VIDEO_FORMAT_BGR, "bgr8"}, - {VideoFormat::GXF_VIDEO_FORMAT_BGRA, "bgra8"}, - {VideoFormat::GXF_VIDEO_FORMAT_BGR16, "bgr16"}, - {VideoFormat::GXF_VIDEO_FORMAT_GRAY, "mono8"}, - {VideoFormat::GXF_VIDEO_FORMAT_GRAY16, "mono16"}, - {VideoFormat::GXF_VIDEO_FORMAT_NV24, "nv24"} + {VideoFormat::GXF_VIDEO_FORMAT_RGB, img_encodings::RGB8}, + {VideoFormat::GXF_VIDEO_FORMAT_RGBA, img_encodings::RGBA8}, + {VideoFormat::GXF_VIDEO_FORMAT_RGB16, img_encodings::RGB16}, + {VideoFormat::GXF_VIDEO_FORMAT_BGR, img_encodings::BGR8}, + {VideoFormat::GXF_VIDEO_FORMAT_BGRA, img_encodings::BGRA8}, + {VideoFormat::GXF_VIDEO_FORMAT_BGR16, img_encodings::BGR16}, + {VideoFormat::GXF_VIDEO_FORMAT_GRAY, img_encodings::MONO8}, + {VideoFormat::GXF_VIDEO_FORMAT_GRAY16, img_encodings::MONO16}, + {VideoFormat::GXF_VIDEO_FORMAT_NV24_ER, img_encodings::NV24}, + {VideoFormat::GXF_VIDEO_FORMAT_NV12_ER, "nv12"}, }); // Get step size for ROS Image uint32_t get_step_size(const nvidia::gxf::VideoBufferInfo & video_buff_info) { - // TODO(swani): Implement for multiplanar to interleaved return video_buff_info.width * video_buff_info.color_planes[0].bytes_per_pixel; } +uint32_t get_step_size(const VPIImageData & vpi_img_data) +{ + return vpi_img_data.buffer.pitch.planes[0].pitchBytes; +} + template struct NoPaddingColorPlanes {}; @@ -138,6 +148,15 @@ struct NoPaddingColorPlanes std::array planes; }; +template<> +struct NoPaddingColorPlanes +{ + NoPaddingColorPlanes(size_t width) + : planes({nvidia::gxf::ColorPlane("Y", 1, width), + nvidia::gxf::ColorPlane("UV", 2, width * 2)}) {} + std::array planes; +}; + template<> struct NoPaddingColorPlanes { @@ -154,7 +173,6 @@ void allocate_video_buffer_no_padding( const nvidia::gxf::Handle & video_buff, const nvidia::gxf::Handle & allocator_handle) { - // TODO(swani): Implement for Block Linear constexpr auto surface_layout = nvidia::gxf::SurfaceLayout::GXF_SURFACE_LAYOUT_PITCH_LINEAR; constexpr auto storage_type = nvidia::gxf::MemoryStorageType::kDevice; if (width % 2 != 0 || height % 2 != 0) { @@ -238,27 +256,50 @@ void allocate_video_buffer( source.width, source.height, video_buff, allocator_handle); break; + case VideoFormat::GXF_VIDEO_FORMAT_NV12: + allocate_video_buffer_no_padding( + source.width, source.height, video_buff, allocator_handle); + break; + default: break; } } + +VPIStatus CreateVPIImageWrapper( + VPIImage & vpi_image, VPIImageData & img_data, uint64_t flags, + const nvidia::gxf::Handle & video_buff) +{ + nvidia::gxf::VideoBufferInfo image_info = video_buff->video_frame_info(); + nitros::VPIFormat vpi_format = nitros::ToVpiFormat(image_info.color_format); + img_data.bufferType = VPI_IMAGE_BUFFER_CUDA_PITCH_LINEAR; + img_data.buffer.pitch.format = vpi_format.image_format; + img_data.buffer.pitch.numPlanes = image_info.color_planes.size(); + auto data_ptr_offset = 0; + for (size_t i = 0; i < image_info.color_planes.size(); ++i) { + img_data.buffer.pitch.planes[i].data = video_buff->pointer() + data_ptr_offset; + img_data.buffer.pitch.planes[i].height = image_info.color_planes[i].height; + img_data.buffer.pitch.planes[i].width = image_info.color_planes[i].width; + img_data.buffer.pitch.planes[i].pixelType = vpi_format.pixel_type[i]; + img_data.buffer.pitch.planes[i].pitchBytes = image_info.color_planes[i].stride; + + data_ptr_offset = image_info.color_planes[i].size; + } + return vpiImageCreateWrapper(&img_data, nullptr, flags, &vpi_image); +} } // namespace -void rclcpp::TypeAdapter::convert_to_ros_message( - const custom_type & source, - ros_message_type & destination) +void rclcpp::TypeAdapter::convert_to_ros_message( + const custom_type & source, ros_message_type & destination) { - nvidia::isaac_ros::nitros::nvtxRangePushWrapper( - "NitrosImage::convert_to_ros_message", - nvidia::isaac_ros::nitros::CLR_PURPLE); + nitros::nvtxRangePushWrapper("NitrosImage::convert_to_ros_message", nitros::CLR_PURPLE); RCLCPP_DEBUG( rclcpp::get_logger("NitrosImage"), "[convert_to_ros_message] Conversion started for handle=%ld", source.handle); - auto context = nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(); + auto context = nitros::GetTypeAdapterNitrosContext().getContext(); auto msg_entity = nvidia::gxf::Entity::Shared(context, source.handle); auto gxf_video_buffer = msg_entity->get(); @@ -285,21 +326,70 @@ void rclcpp::TypeAdaptersecond; } + void * src_ptr; + size_t src_pitch{0}; + uint32_t step_size{0}; + VPIStream vpi_stream{}; + uint64_t vpi_flags{VPI_BACKEND_CUDA}; + VPIImage input{}, output{}; + VPIImageData input_data{}, output_data{}; + + if (destination.encoding == "nv12" || destination.encoding == "nv24") { + // Convert multiplanar to interleaved rgb + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosImage"), + "[convert_to_ros_message] Multiplanar to interleaved started"); + + // Create VPI stream + CHECK_VPI_STATUS(vpiStreamCreate(vpi_flags, &vpi_stream)); + + // VPI input image + CHECK_VPI_STATUS(CreateVPIImageWrapper(input, input_data, vpi_flags, gxf_video_buffer.value())); + // VPI output image + CHECK_VPI_STATUS( + vpiImageCreate( + destination.width, destination.height, VPI_IMAGE_FORMAT_RGB8, vpi_flags, &output)); + + // Call for color format conversion + CHECK_VPI_STATUS(vpiSubmitConvertImageFormat(vpi_stream, vpi_flags, input, output, nullptr)); + + // Wait for operations to complete + CHECK_VPI_STATUS(vpiStreamSync(vpi_stream)); + + // Copy data + CHECK_VPI_STATUS( + vpiImageLockData(output, VPI_LOCK_READ, VPI_IMAGE_BUFFER_CUDA_PITCH_LINEAR, &output_data)); + // Release lock + CHECK_VPI_STATUS(vpiImageUnlock(output)); + + destination.encoding = img_encodings::RGB8; + src_ptr = output_data.buffer.pitch.planes[0].data; + src_pitch = get_step_size(output_data); + step_size = get_step_size(output_data); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosImage"), + "[convert_to_ros_message] Multiplanar to interleaved finished"); + } else { + src_ptr = gxf_video_buffer.value()->pointer(); + src_pitch = video_buffer_info.color_planes[0].stride; + step_size = get_step_size(video_buffer_info); + } + destination.is_bigendian = 0; // Full row length in bytes - destination.step = get_step_size(video_buffer_info); + destination.step = step_size; // Resize the ROS image buffer to the right size destination.data.resize(destination.step * destination.height); // Copy data from Device to Host - // TODO(swani): Implement multiplanar to interleaved const cudaError_t cuda_error = cudaMemcpy2D( destination.data.data(), destination.step, - gxf_video_buffer.value()->pointer(), - video_buffer_info.color_planes[0].stride, + src_ptr, + src_pitch, destination.step, destination.height, cudaMemcpyDeviceToHost); @@ -316,6 +406,10 @@ void rclcpp::TypeAdapterget("timestamp"); if (!input_timestamp) { // Fallback to any 'timestamp' @@ -335,28 +429,22 @@ void rclcpp::TypeAdapter::convert_to_custom( - const ros_message_type & source, - custom_type & destination) +void rclcpp::TypeAdapter::convert_to_custom( + const ros_message_type & source, custom_type & destination) { - nvidia::isaac_ros::nitros::nvtxRangePushWrapper( - "NitrosImage::convert_to_custom", - nvidia::isaac_ros::nitros::CLR_PURPLE); + nitros::nvtxRangePushWrapper("NitrosImage::convert_to_custom", nitros::CLR_PURPLE); - RCLCPP_DEBUG( - rclcpp::get_logger("NitrosImage"), - "[convert_to_custom] Conversion started"); + RCLCPP_DEBUG(rclcpp::get_logger("NitrosImage"), "[convert_to_custom] Conversion started"); - auto context = nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(); + auto context = nitros::GetTypeAdapterNitrosContext().getContext(); // Get pointer to allocator component gxf_uid_t cid; - nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getCid( + nitros::GetTypeAdapterNitrosContext().getCid( kEntityName, kComponentName, kComponentTypeName, cid); auto maybe_allocator_handle = @@ -409,12 +497,13 @@ void rclcpp::TypeAdaptervideo_frame_info(); // Copy data from Host to Device + auto width = get_step_size(video_buffer_info); const cudaError_t cuda_error = cudaMemcpy2D( gxf_video_buffer.value()->pointer(), video_buffer_info.color_planes[0].stride, source.data.data(), source.step, - video_buffer_info.width * video_buffer_info.color_planes[0].bytes_per_pixel, + width, video_buffer_info.height, cudaMemcpyHostToDevice); @@ -456,7 +545,7 @@ void rclcpp::TypeAdaptereid()); - nvidia::isaac_ros::nitros::nvtxRangePopWrapper(); + nitros::nvtxRangePopWrapper(); } // Map to store the Nitros image format encoding to Video buffer format @@ -469,6 +558,7 @@ const std::unordered_map g_nitros_to_gxf_video_format( {"nitros_image_bgr16", VideoFormat::GXF_VIDEO_FORMAT_BGR16}, {"nitros_image_mono8", VideoFormat::GXF_VIDEO_FORMAT_GRAY}, {"nitros_image_mono16", VideoFormat::GXF_VIDEO_FORMAT_GRAY16}, + {"nitros_image_nv12", VideoFormat::GXF_VIDEO_FORMAT_NV12}, {"nitros_image_nv24", VideoFormat::GXF_VIDEO_FORMAT_NV24} }); diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/CMakeLists.txt b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/CMakeLists.txt new file mode 100644 index 0000000..27792c3 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/CMakeLists.txt @@ -0,0 +1,89 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +cmake_minimum_required(VERSION 3.8) +project(isaac_ros_nitros_occupancy_grid_type LANGUAGES C CXX) + + +# Default to C++17 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 17) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + + +# Default to Release build +if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) +endif() +message( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" ) + +execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE) +message( STATUS "Architecture: ${ARCHITECTURE}" ) + +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() + + +# for #include +find_package(CUDA REQUIRED) +include_directories("${CUDA_INCLUDE_DIRS}") + +option(USE_NVTX "Enable NVTX markers for improved profiling (if available)" ON) +if(USE_NVTX) + add_definitions(-DUSE_NVTX) + link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") + link_libraries("nvToolsExt") +endif() + + +# NitrosOccupancyGrid +ament_auto_add_library(${PROJECT_NAME} SHARED + src/nitros_occupancy_grid.cpp) +target_compile_definitions(${PROJECT_NAME} + PRIVATE "COMPOSITION_BUILDING_DLL" +) +target_link_libraries(${PROJECT_NAME}) +install( + DIRECTORY include/ + DESTINATION include/${PROJECT_NAME} +) +install(TARGETS ${PROJECT_NAME} EXPORT export_${PROJECT_NAME}) + + +if(BUILD_TESTING) + # NitrosOccupancyGridForwardNode + ament_auto_add_library(nitros_occupancy_grid_forward_node SHARED test/src/nitros_occupancy_grid_forward_node.cpp) + target_compile_definitions(nitros_occupancy_grid_forward_node + PRIVATE "COMPOSITION_BUILDING_DLL" + ) + target_link_libraries(nitros_occupancy_grid_forward_node ${PROJECT_NAME}) + rclcpp_components_register_nodes(nitros_occupancy_grid_forward_node "nvidia::isaac_ros::nitros::NitrosOccupancyGridForwardNode") + set(node_plugins + "${node_plugins}nvidia::isaac_ros::nitros::NitrosOccupancyGridForwardNode;$\n") + # Install test/config directory + install( + DIRECTORY test/config + DESTINATION share/${PROJECT_NAME}/test + ) + + find_package(ament_lint_auto REQUIRED) + + # Ignore copyright notices since we use custom NVIDIA Isaac ROS Software License + set(ament_cmake_copyright_FOUND TRUE) + + ament_lint_auto_find_test_dependencies() + + find_package(launch_testing_ament_cmake REQUIRED) + add_launch_test(test/isaac_ros_nitros_occupancy_grid_type_test_pol.py TIMEOUT "15") + endif() + +ament_auto_package() diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/include/isaac_ros_nitros_occupancy_grid_type/nitros_occupancy_grid.hpp b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/include/isaac_ros_nitros_occupancy_grid_type/nitros_occupancy_grid.hpp new file mode 100644 index 0000000..28fcae2 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/include/isaac_ros_nitros_occupancy_grid_type/nitros_occupancy_grid.hpp @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#ifndef ISAAC_ROS_NITROS_OCCUPANCY_GRID_TYPE__NITROS_OCCUPANCY_GRID_HPP_ +#define ISAAC_ROS_NITROS_OCCUPANCY_GRID_TYPE__NITROS_OCCUPANCY_GRID_HPP_ +/* + * Type adaptation for: + * Nitros type: NitrosOccupancyGrid + * ROS type: nav_msgs::msg::OccupancyGrid + */ + +#include + +#include "isaac_ros_nitros/types/nitros_format_agent.hpp" +#include "isaac_ros_nitros/types/nitros_type_base.hpp" + +#include "rclcpp/type_adapter.hpp" +#include "nav_msgs/msg/occupancy_grid.hpp" + + +namespace nvidia +{ +namespace isaac_ros +{ +namespace nitros +{ + +// Type forward declaration +struct NitrosOccupancyGrid; + +// Formats +struct nitros_occupancy_grid_t +{ + using MsgT = NitrosOccupancyGrid; + static const inline std::string supported_type_name = "nitros_occupancy_grid"; +}; + +// NITROS data type registration factory +NITROS_TYPE_FACTORY_BEGIN(NitrosOccupancyGrid) +// Supported data formats +NITROS_FORMAT_FACTORY_BEGIN() +NITROS_FORMAT_ADD(nitros_occupancy_grid_t) +NITROS_FORMAT_FACTORY_END() +// Required extensions +NITROS_TYPE_EXTENSION_FACTORY_BEGIN() +NITROS_TYPE_EXTENSION_ADD("isaac_ros_nitros", "gxf/multimedia/libgxf_multimedia.so") +NITROS_TYPE_EXTENSION_FACTORY_END() +NITROS_TYPE_FACTORY_END() + +} // namespace nitros +} // namespace isaac_ros +} // namespace nvidia + + +template<> +struct rclcpp::TypeAdapter< + nvidia::isaac_ros::nitros::NitrosOccupancyGrid, + nav_msgs::msg::OccupancyGrid> +{ + using is_specialized = std::true_type; + using custom_type = nvidia::isaac_ros::nitros::NitrosOccupancyGrid; + using ros_message_type = nav_msgs::msg::OccupancyGrid; + + static void convert_to_ros_message( + const custom_type & source, + ros_message_type & destination); + + static void convert_to_custom( + const ros_message_type & source, + custom_type & destination); +}; + +RCLCPP_USING_CUSTOM_TYPE_AS_ROS_MESSAGE_TYPE( + nvidia::isaac_ros::nitros::NitrosOccupancyGrid, + nav_msgs::msg::OccupancyGrid); + +#endif // ISAAC_ROS_NITROS_OCCUPANCY_GRID_TYPE__NITROS_OCCUPANCY_GRID_HPP_ diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/package.xml new file mode 100644 index 0000000..c837579 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/package.xml @@ -0,0 +1,38 @@ + + + + + + + isaac_ros_nitros_occupancy_grid_type + 0.20.0 + Isaac ROS Nitros Occupancy Grid Type + + Jaiveer Singh + NVIDIA Isaac ROS Software License + https://developer.nvidia.com/isaac-ros-gems/ + Jaiveer Singh + + ament_cmake + + rclcpp + rclcpp_components + nav_msgs + isaac_ros_nitros + + ament_lint_auto + ament_lint_common + isaac_ros_test + + + ament_cmake + + diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/src/nitros_occupancy_grid.cpp b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/src/nitros_occupancy_grid.cpp new file mode 100644 index 0000000..ac961ad --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/src/nitros_occupancy_grid.cpp @@ -0,0 +1,423 @@ +/** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#include + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#pragma GCC diagnostic ignored "-Wpedantic" +#include "gxf/core/entity.hpp" +#include "gxf/core/gxf.h" +#include "gxf/std/tensor.hpp" +#include "gxf/std/timestamp.hpp" +#pragma GCC diagnostic pop + +#include "isaac_ros_nitros_occupancy_grid_type/nitros_occupancy_grid.hpp" +#include "isaac_ros_nitros/types/type_adapter_nitros_context.hpp" + +#include "rclcpp/rclcpp.hpp" + +constexpr char kEntityName[] = "memory_pool"; +constexpr char kComponentName[] = "unbounded_allocator"; +constexpr char kComponentTypeName[] = "nvidia::gxf::UnboundedAllocator"; + +constexpr int kExpectedPoseAsTensorSize = (3 + 4); // Translation (XYZ) and Rotation (XYZW) + +constexpr char kResolutionName[] = "resolution"; +constexpr char kWidthName[] = "width"; +constexpr char kHeightName[] = "height"; +constexpr char kOriginName[] = "origin"; +constexpr char kDataName[] = "data"; + +void rclcpp::TypeAdapter< + nvidia::isaac_ros::nitros::NitrosOccupancyGrid, + nav_msgs::msg::OccupancyGrid>::convert_to_ros_message( + const custom_type & source, ros_message_type & destination) +{ + nvidia::isaac_ros::nitros::nvtxRangePushWrapper( + "NitrosOccupancyGrid::convert_to_ros_message", + nvidia::isaac_ros::nitros::CLR_PURPLE); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosOccupancyGrid"), + "[convert_to_ros_message] Conversion started for handle=%ld", source.handle); + + auto context = nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(); + auto msg_entity = nvidia::gxf::Entity::Shared(context, source.handle); + + // Primitive metadata + auto maybe_gxf_resolution = msg_entity->get(kResolutionName); + if (!maybe_gxf_resolution) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Failed to get the resolution: " << + GxfResultStr(maybe_gxf_resolution.error()); + RCLCPP_ERROR(rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + destination.info.resolution = *maybe_gxf_resolution.value().get(); + + auto maybe_gxf_width = msg_entity->get(kWidthName); + if (!maybe_gxf_width) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Failed to get the width: " << + GxfResultStr(maybe_gxf_width.error()); + RCLCPP_ERROR(rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + destination.info.width = *maybe_gxf_width.value().get(); + + auto maybe_gxf_height = msg_entity->get(kHeightName); + if (!maybe_gxf_height) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Failed to get the height: " << + GxfResultStr(maybe_gxf_height.error()); + RCLCPP_ERROR(rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + destination.info.height = *maybe_gxf_height.value().get(); + + auto maybe_gxf_pose_tensor = msg_entity->get(kOriginName); + if (!maybe_gxf_pose_tensor) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Failed to get the origin: " << + GxfResultStr(maybe_gxf_pose_tensor.error()); + RCLCPP_ERROR(rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + auto gxf_pose_tensor = maybe_gxf_pose_tensor.value(); + + if (gxf_pose_tensor->shape() != nvidia::gxf::Shape{kExpectedPoseAsTensorSize}) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Pose Tensor was not the correct shape: " << + gxf_pose_tensor->size(); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Allocate array for copying GXF Pose Tensor data as contiguous block + std::array ros_pose_tensor{}; + + // Copy pose tensor off device to CPU memory + switch (gxf_pose_tensor->storage_type()) { + case nvidia::gxf::MemoryStorageType::kHost: + { + std::memcpy(ros_pose_tensor.data(), gxf_pose_tensor->pointer(), gxf_pose_tensor->size()); + } + break; + case nvidia::gxf::MemoryStorageType::kDevice: + { + const cudaError_t cuda_error = cudaMemcpy( + ros_pose_tensor.data(), gxf_pose_tensor->pointer(), + gxf_pose_tensor->size(), cudaMemcpyDeviceToHost); + if (cuda_error != cudaSuccess) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] cudaMemcpy failed for conversion from " + "gxf::Tensor to ROS Pose: " << + cudaGetErrorName(cuda_error) << + " (" << cudaGetErrorString(cuda_error) << ")"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + } + break; + default: + std::string error_msg = + "[convert_to_ros_message] MemoryStorageType not supported: conversion from " + "gxf::Tensor to ROS Pose failed!"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.c_str()); + throw std::runtime_error(error_msg.c_str()); + } + + // Populate the message object's origin fields + destination.info.origin.position.x = ros_pose_tensor.at(0); + destination.info.origin.position.y = ros_pose_tensor.at(1); + destination.info.origin.position.z = ros_pose_tensor.at(2); + + destination.info.origin.orientation.x = ros_pose_tensor.at(3); + destination.info.origin.orientation.y = ros_pose_tensor.at(4); + destination.info.origin.orientation.z = ros_pose_tensor.at(5); + destination.info.origin.orientation.w = ros_pose_tensor.at(6); + + auto maybe_gxf_data_tensor = msg_entity->get(kDataName); + if (!maybe_gxf_data_tensor) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Failed to get the data: " << + GxfResultStr(maybe_gxf_data_tensor.error()); + RCLCPP_ERROR(rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + auto gxf_data_tensor = maybe_gxf_data_tensor.value(); + + // Resize before copying GXF cell data as contiguous block + destination.data.resize(gxf_data_tensor->size()); + + // Copy data tensor off device to CPU memory + switch (gxf_data_tensor->storage_type()) { + case nvidia::gxf::MemoryStorageType::kHost: + { + std::memcpy(destination.data.data(), gxf_data_tensor->pointer(), gxf_data_tensor->size()); + } + break; + case nvidia::gxf::MemoryStorageType::kDevice: + { + const cudaError_t cuda_error = cudaMemcpy( + destination.data.data(), gxf_data_tensor->pointer(), + gxf_data_tensor->size(), cudaMemcpyDeviceToHost); + if (cuda_error != cudaSuccess) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] cudaMemcpy failed for conversion from " + "gxf::Tensor to ROS int8 array: " << + cudaGetErrorName(cuda_error) << + " (" << cudaGetErrorString(cuda_error) << ")"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + } + break; + default: + std::string error_msg = + "[convert_to_ros_message] MemoryStorageType not supported: conversion from " + "gxf::Tensor to ROS int8 array failed!"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.c_str()); + throw std::runtime_error(error_msg.c_str()); + } + + // Populate timestamp information back into ROS header + auto input_timestamp = msg_entity->get("timestamp"); + if (!input_timestamp) { // Fallback to label 'timestamp' + input_timestamp = msg_entity->get(); + } + if (input_timestamp) { + destination.header.stamp.sec = static_cast( + input_timestamp.value()->acqtime / static_cast(1e9)); + destination.header.stamp.nanosec = static_cast( + input_timestamp.value()->acqtime % static_cast(1e9)); + } + + // Set frame ID + destination.header.frame_id = source.frame_id; + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosOccupancyGrid"), + "[convert_to_ros_message] Conversion completed"); + + nvidia::isaac_ros::nitros::nvtxRangePopWrapper(); +} + +void rclcpp::TypeAdapter< + nvidia::isaac_ros::nitros::NitrosOccupancyGrid, + nav_msgs::msg::OccupancyGrid>::convert_to_custom( + const ros_message_type & source, + custom_type & destination) +{ + nvidia::isaac_ros::nitros::nvtxRangePushWrapper( + "NitrosOccupancyGrid::convert_to_custom", + nvidia::isaac_ros::nitros::CLR_PURPLE); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosOccupancyGrid"), + "[convert_to_custom] Conversion started"); + + // Get pointer to allocator component + gxf_uid_t cid; + nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getCid( + kEntityName, kComponentName, kComponentTypeName, cid); + + auto maybe_allocator_handle = + nvidia::gxf::Handle::Create( + nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(), cid); + if (!maybe_allocator_handle) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Failed to get allocator's handle: " << + GxfResultStr(maybe_allocator_handle.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + auto allocator_handle = maybe_allocator_handle.value(); + + auto message = nvidia::gxf::Entity::New( + nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext()); + if (!message) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Error initializing new message entity: " << + GxfResultStr(message.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Primitive metadata + auto gxf_resolution = message->add(kResolutionName); + *gxf_resolution.value() = source.info.resolution; + + auto gxf_width = message->add(kWidthName); + *gxf_width.value() = source.info.width; + + auto gxf_height = message->add(kHeightName); + *gxf_height.value() = source.info.height; + + // Initializing GXF tensor + auto gxf_pose_tensor = message->add(kOriginName); + auto result = gxf_pose_tensor.value()->reshape( + nvidia::gxf::Shape{kExpectedPoseAsTensorSize}, nvidia::gxf::MemoryStorageType::kDevice, + allocator_handle); + + if (!result) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Error initializing GXF pose tensor of shape (" << + kExpectedPoseAsTensorSize << ",): " << + GxfResultStr(result.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Get pointer to first element of pose tensor + auto maybe_pose_data = gxf_pose_tensor.value()->data(); + if (!maybe_pose_data) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Could not get data pointer from Pose Tensor: " << + gxf_pose_tensor.value(); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Allocate array for copying ROS Pose data as contiguous block + std::array ros_pose_tensor{ + source.info.origin.position.x, + source.info.origin.position.y, + source.info.origin.position.z, + + source.info.origin.orientation.x, + source.info.origin.orientation.y, + source.info.origin.orientation.z, + source.info.origin.orientation.w + }; + + // Populate ROS Pose data into GXF Tensor + cudaError_t cuda_error = cudaMemcpy( + gxf_pose_tensor.value()->pointer(), + ros_pose_tensor.data(), + gxf_pose_tensor.value()->size(), + cudaMemcpyHostToDevice + ); + if (cuda_error != cudaSuccess) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] cudaMemcpy failed for copying data from " + "ROS Pose Tensor to GXF Tensor: " << + cudaGetErrorName(cuda_error) << + " (" << cudaGetErrorString(cuda_error) << ")"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosPoseArray"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Initializing GXF tensor + auto gxf_data_tensor = message->add(kDataName); + result = gxf_data_tensor.value()->reshape( + nvidia::gxf::Shape{static_cast(source.data.size())}, + nvidia::gxf::MemoryStorageType::kDevice, + allocator_handle); + + if (!result) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] Error initializing GXF data tensor of shape (" << + source.data.size() << ",): " << + GxfResultStr(result.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Get pointer to first element of data tensor + auto maybe_data = gxf_data_tensor.value()->data(); + if (!maybe_data) { + std::stringstream error_msg; + error_msg << + "[convert_to_ros_message] Could not get data pointer from data tensor: " << + gxf_data_tensor.value(); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Populate ROS data into GXF Tensor + cuda_error = cudaMemcpy( + gxf_data_tensor.value()->pointer(), + source.data.data(), + gxf_data_tensor.value()->size(), + cudaMemcpyHostToDevice + ); + if (cuda_error != cudaSuccess) { + std::stringstream error_msg; + error_msg << + "[convert_to_custom] cudaMemcpy failed for copying data from " + "ROS data tensor to GXF tensor: " << + cudaGetErrorName(cuda_error) << + " (" << cudaGetErrorString(cuda_error) << ")"; + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + + // Add timestamp to the message + uint64_t input_timestamp = + source.header.stamp.sec * static_cast(1e9) + + source.header.stamp.nanosec; + auto output_timestamp = message->add("timestamp"); + if (!output_timestamp) { + std::stringstream error_msg; + error_msg << "[convert_to_custom] Failed to add a timestamp component to message: " << + GxfResultStr(output_timestamp.error()); + RCLCPP_ERROR( + rclcpp::get_logger("NitrosOccupancyGrid"), error_msg.str().c_str()); + throw std::runtime_error(error_msg.str().c_str()); + } + output_timestamp.value()->acqtime = input_timestamp; + + // Set frame ID + destination.frame_id = source.header.frame_id; + + // Set message entity + destination.handle = message->eid(); + GxfEntityRefCountInc( + nvidia::isaac_ros::nitros::GetTypeAdapterNitrosContext().getContext(), message->eid()); + + RCLCPP_DEBUG( + rclcpp::get_logger("NitrosOccupancyGrid"), + "[convert_to_custom] Conversion completed"); + + nvidia::isaac_ros::nitros::nvtxRangePopWrapper(); +} diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/config/test_forward_node.yaml b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/config/test_forward_node.yaml new file mode 100644 index 0000000..3f8e1f8 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/config/test_forward_node.yaml @@ -0,0 +1,56 @@ +%YAML 1.2 +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. +--- +name: forward +components: +- name: input + type: nvidia::gxf::DoubleBufferReceiver + parameters: + capacity: 1 +- name: output + type: nvidia::gxf::DoubleBufferTransmitter +- type: nvidia::isaac_ros::MessageForward + parameters: + in: input + out: output +- type: nvidia::gxf::MessageAvailableSchedulingTerm + parameters: + receiver: input + min_size: 1 +--- +name: vault +components: +- name: input + type: nvidia::gxf::DoubleBufferReceiver + parameters: + capacity: 1 +- type: nvidia::gxf::MessageAvailableSchedulingTerm + parameters: + receiver: input + min_size: 1 +- name: vault + type: nvidia::gxf::Vault + parameters: + source: input + max_waiting_count: 1 + drop_waiting: false +--- +components: +- type: nvidia::gxf::Connection + parameters: + source: forward/output + target: vault/input +--- +components: +- type: nvidia::gxf::GreedyScheduler + parameters: + clock: clock + stop_on_deadlock: false +- name: clock + type: nvidia::gxf::RealtimeClock \ No newline at end of file diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/isaac_ros_nitros_occupancy_grid_type_test_pol.py b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/isaac_ros_nitros_occupancy_grid_type_test_pol.py new file mode 100644 index 0000000..865eaff --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/isaac_ros_nitros_occupancy_grid_type_test_pol.py @@ -0,0 +1,153 @@ +# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +"""Proof-of-Life test for the NitrosOccupancyGrid type adapter.""" + +import os +import pathlib +import time + +from isaac_ros_test import IsaacROSBaseTest, JSONConversion + +from launch_ros.actions import ComposableNodeContainer +from launch_ros.descriptions import ComposableNode +from nav_msgs.msg import OccupancyGrid + +import pytest +import rclpy + + +@pytest.mark.rostest +def generate_test_description(): + """Generate launch description with all ROS2 nodes for testing.""" + test_ns = IsaacROSNitrosOccupancyGridTest.generate_namespace() + container = ComposableNodeContainer( + name='test_container', + namespace='isaac_ros_nitros_container', + package='rclcpp_components', + executable='component_container_mt', + composable_node_descriptions=[ + ComposableNode( + package='isaac_ros_nitros_occupancy_grid_type', + plugin='nvidia::isaac_ros::nitros::NitrosOccupancyGridForwardNode', + name='NitrosOccupancyGridForwardNode', + namespace=test_ns, + parameters=[{ + 'compatible_format': 'nitros_occupancy_grid' + }], + remappings=[ + (test_ns+'/topic_forward_input', test_ns+'/input'), + (test_ns+'/topic_forward_output', test_ns+'/output'), + ] + ), + ], + output='both', + arguments=['--ros-args', '--log-level', 'info'], + ) + + return IsaacROSNitrosOccupancyGridTest.generate_test_description( + [container], + node_startup_delay=2.5 + ) + + +class IsaacROSNitrosOccupancyGridTest(IsaacROSBaseTest): + """Validate NitrosOccupancyGrid type adapter.""" + + filepath = pathlib.Path(os.path.dirname(__file__)) + + @IsaacROSBaseTest.for_each_test_case() + def test_nitros_occupancy_grid_type_conversions(self, test_folder) -> None: + """Expect the occupancy grid from NitrosOccupancyGrid type to be compatible with source.""" + self.generate_namespace_lookup(['input', 'output']) + received_messages = {} + + received_message_sub = self.create_logging_subscribers( + subscription_requests=[('output', OccupancyGrid)], + received_messages=received_messages + ) + + occupancy_grid_pub = self.node.create_publisher( + OccupancyGrid, self.namespaces['input'], self.DEFAULT_QOS) + + try: + occupancy_grid: OccupancyGrid = JSONConversion.load_occupancy_grid_from_json( + test_folder / 'occupancy_grid.json') + + # Wait at most TIMEOUT seconds for subscriber to respond + TIMEOUT = 2 + end_time = time.time() + TIMEOUT + + done = False + while time.time() < end_time: + timestamp = self.node.get_clock().now().to_msg() + occupancy_grid.header.stamp = timestamp + + occupancy_grid_pub.publish(occupancy_grid) + + rclpy.spin_once(self.node, timeout_sec=0.1) + + # If we have received a message on the output topic, break + if 'output' in received_messages: + done = True + break + + self.assertTrue(done, "Didn't receive output on the output topic!") + + received_occupancy_grid = received_messages['output'] + + # Header + # Frame ID is to be passed from NitrosOccupancyGrid to ROS message + # self.assertEqual( + # occupancy_grid.header.frame_id, received_occupancy_grid.header.frame_id) + + # MapMetadata + self.assertEqual(occupancy_grid.info.resolution, + received_occupancy_grid.info.resolution, 'Resolution does not match') + self.assertEqual(occupancy_grid.info.width, + received_occupancy_grid.info.width, 'Width does not match') + self.assertEqual(occupancy_grid.info.height, + received_occupancy_grid.info.height, 'Height does not match') + self.assertEqual( + round(occupancy_grid.info.origin.position.x, 2), + round(received_occupancy_grid.info.origin.position.x, 2), + 'Position x value does not match') + self.assertEqual( + round(occupancy_grid.info.origin.position.y, 2), + round(received_occupancy_grid.info.origin.position.y, 2), + 'Position y value does not match') + self.assertEqual( + round(occupancy_grid.info.origin.position.z, 2), + round(received_occupancy_grid.info.origin.position.z, 2), + 'Position z value does not match') + + self.assertEqual( + round(occupancy_grid.info.origin.orientation.x, 2), + round(received_occupancy_grid.info.origin.orientation.x, 2), + 'Orientation x value does not match') + self.assertEqual( + round(occupancy_grid.info.origin.orientation.y, 2), + round(received_occupancy_grid.info.origin.orientation.y, 2), + 'Orientation x value does not match') + self.assertEqual( + round(occupancy_grid.info.origin.orientation.z, 2), + round(received_occupancy_grid.info.origin.orientation.z, 2), + 'Orientation x value does not match') + self.assertEqual( + round(occupancy_grid.info.origin.orientation.w, 2), + round(received_occupancy_grid.info.origin.orientation.w, 2), + 'Orientation w value does not match') + + # data + for cell, received_cell in zip(occupancy_grid.data, received_occupancy_grid.data): + self.assertEqual(cell, received_cell, 'Occupancy data does not match') + + print('The received occupancy grid is verified successfully') + finally: + self.node.destroy_subscription(received_message_sub) + self.node.destroy_publisher(occupancy_grid_pub) diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/src/nitros_occupancy_grid_forward_node.cpp b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/src/nitros_occupancy_grid_forward_node.cpp new file mode 100644 index 0000000..26b3226 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/src/nitros_occupancy_grid_forward_node.cpp @@ -0,0 +1,88 @@ +/** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + +#include "isaac_ros_nitros_occupancy_grid_type/nitros_occupancy_grid.hpp" +#include "isaac_ros_nitros/nitros_node.hpp" + +#include "rclcpp_components/register_node_macro.hpp" + +namespace nvidia +{ +namespace isaac_ros +{ +namespace nitros +{ + +constexpr char PACKAE_NAME[] = "isaac_ros_nitros_occupancy_grid_type"; +constexpr char FORWARD_FORMAT[] = "nitros_occupancy_grid"; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" +class NitrosOccupancyGridForwardNode : public NitrosNode +{ +public: + explicit NitrosOccupancyGridForwardNode(const rclcpp::NodeOptions & options) + : NitrosNode( + options, + // Application graph filename + "test/config/test_forward_node.yaml", + // I/O configuration map + { + {"forward/input", + { + .type = NitrosPublisherSubscriberType::NEGOTIATED, + .qos = rclcpp::QoS(1), + .compatible_data_format = FORWARD_FORMAT, + .topic_name = "topic_forward_input", + .use_compatible_format_only = true, + } + }, + {"vault/vault", + { + .type = NitrosPublisherSubscriberType::NEGOTIATED, + .qos = rclcpp::QoS(1), + .compatible_data_format = FORWARD_FORMAT, + .topic_name = "topic_forward_output", + .use_compatible_format_only = true, + } + } + }, + // Extension specs + {}, + // Optimizer's rule filenames + {}, + // Extension so file list + { + {"isaac_ros_nitros", "gxf/std/libgxf_std.so"}, + {"isaac_ros_nitros", "gxf/cuda/libgxf_cuda.so"}, + {"isaac_ros_nitros", "gxf/serialization/libgxf_serialization.so"}, + {"isaac_ros_nitros", "gxf/libgxf_message_compositor.so"} + }, + // Test node package name + PACKAE_NAME) + { + std::string compatible_format = declare_parameter("compatible_format", ""); + if (!compatible_format.empty()) { + config_map_["forward/input"].compatible_data_format = compatible_format; + config_map_["vault/vault"].compatible_data_format = compatible_format; + } + + registerSupportedType(); + + startNitrosNode(); + } +}; +#pragma GCC diagnostic pop + +} // namespace nitros +} // namespace isaac_ros +} // namespace nvidia + +RCLCPP_COMPONENTS_REGISTER_NODE(nvidia::isaac_ros::nitros::NitrosOccupancyGridForwardNode) diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/test_cases/profile/occupancy_grid.json b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/test_cases/profile/occupancy_grid.json new file mode 100644 index 0000000..68984e6 --- /dev/null +++ b/isaac_ros_nitros_type/isaac_ros_nitros_occupancy_grid_type/test/test_cases/profile/occupancy_grid.json @@ -0,0 +1,35 @@ +{ + "header": { + "frame_id": "tf_camera" + }, + "info": { + "resolution": 1.0, + "width": 5, + "height": 2, + "origin": { + "position": { + "x": 1.0, + "y": 2.0, + "z": 3.0 + }, + "orientation": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 1.0 + } + } + }, + "data": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ] +} \ No newline at end of file diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_point_cloud_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_point_cloud_type/package.xml index 035883a..618ef66 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_point_cloud_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_point_cloud_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_point_cloud_type - 0.11.0 + 0.20.0 Isaac ROS NITROS Point Cloud Type Hemal Shah diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_pose_array_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_pose_array_type/package.xml index a68b367..2d5cff0 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_pose_array_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_pose_array_type/package.xml @@ -13,10 +13,10 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_pose_array_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Pose Array Type - Jaiveer Singh + Jaiveer Singh NVIDIA Isaac ROS Software License https://developer.nvidia.com/isaac-ros-gems/ Jaiveer Singh diff --git a/isaac_ros_nitros_type/isaac_ros_nitros_tensor_list_type/package.xml b/isaac_ros_nitros_type/isaac_ros_nitros_tensor_list_type/package.xml index c6c1248..9079fad 100644 --- a/isaac_ros_nitros_type/isaac_ros_nitros_tensor_list_type/package.xml +++ b/isaac_ros_nitros_type/isaac_ros_nitros_tensor_list_type/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_tensor_list_type - 0.11.0 + 0.20.0 Isaac ROS Nitros Tensor List Type Hemal Shah