From 7d1a11ab328f200ba39ed885215e6536586a4f75 Mon Sep 17 00:00:00 2001 From: Jaiveer Singh Date: Wed, 19 Oct 2022 11:13:26 -0700 Subject: [PATCH] Isaac ROS 0.20.0 (DP2) --- CONTRIBUTING.md | 14 + LICENSE | 266 +++++++++++++----- README.md | 79 ++++-- isaac_ros_argus_camera/CMakeLists.txt | 29 +- .../config/argus_camera_mono_node.yaml | 22 +- .../config/argus_camera_stereo_node.yaml | 22 +- .../config/namespace_injector_rule.yaml | 22 +- .../lib/gxf_jetpack50/argus/libgxf_argus.so | 3 - .../argus_camera_mono_node.hpp | 25 +- .../argus_camera_node.hpp | 25 +- .../argus_camera_stereo_node.hpp | 25 +- .../isaac_ros_argus_camera_mono.launch.py | 21 +- .../isaac_ros_argus_camera_stereo.launch.py | 22 +- isaac_ros_argus_camera/package.xml | 23 +- .../src/argus_camera_mono_node.cpp | 25 +- .../src/argus_camera_node.cpp | 27 +- .../src/argus_camera_stereo_node.cpp | 25 +- .../test/isaac_ros_argus_camera_mono_test.py | 21 +- .../isaac_ros_argus_camera_stereo_test.py | 21 +- 19 files changed, 506 insertions(+), 211 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100755 isaac_ros_argus_camera/gxf/lib/gxf_jetpack50/argus/libgxf_argus.so diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a89cd42 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,14 @@ +# Isaac ROS Contribution Rules + +Any contribution that you make to this repository will +be under the Apache 2 License, as dictated by that +[license](http://www.apache.org/licenses/LICENSE-2.0.html): + +> **5. Submission of Contributions.** Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +Contributors must sign-off each commit by adding a `Signed-off-by: ...` +line to commit messages to certify that they have the right to submit +the code they are contributing to the project according to the +[Developer Certificate of Origin (DCO)](https://developercertificate.org/). + +[//]: # (202201002) diff --git a/LICENSE b/LICENSE index 88bc900..7a4a3ea 100644 --- a/LICENSE +++ b/LICENSE @@ -1,66 +1,202 @@ -NVIDIA ISAAC ROS SOFTWARE LICENSE -This license is a legal agreement between you and NVIDIA Corporation ("NVIDIA") and governs the use of the NVIDIA Isaac ROS software and materials provided hereunder (“SOFTWARE”). - -This license can be accepted only by an adult of legal age of majority in the country in which the SOFTWARE is used. - -If you are entering into this license on behalf of a company or other legal entity, you represent that you have the legal authority to bind the entity to this license, in which case “you” will mean the entity you represent. - -If you don’t have the required age or authority to accept this license, or if you don’t accept all the terms and conditions of this license, do not download, install or use the SOFTWARE. - -You agree to use the SOFTWARE only for purposes that are permitted by (a) this license, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions. - -1. LICENSE. Subject to the terms of this license, NVIDIA hereby grants you a non-exclusive, non-transferable license, without the right to sublicense (except as expressly provided in this license) to: -a. Install and use the SOFTWARE, -b. Modify and create derivative works of sample or reference source code delivered in the SOFTWARE, and -c. Distribute any part of the SOFTWARE (i) as incorporated into a software application that has material additional functionality beyond the included portions of the SOFTWARE, or (ii) unmodified in binary format, in each case subject to the distribution requirements indicated in this license. - -2. DISTRIBUTION REQUIREMENTS. These are the distribution requirements for you to exercise the distribution grant above: - a. The following notice shall be included in modifications and derivative works of source code distributed: “This software contains source code provided by NVIDIA Corporation.” - b. You agree to distribute the SOFTWARE subject to the terms at least as protective as the terms of this license, including (without limitation) terms relating to the license grant, license restrictions and protection of NVIDIA’s intellectual property rights. Additionally, you agree that you will protect the privacy, security and legal rights of your application users. - c. You agree to notify NVIDIA in writing of any known or suspected distribution or use of the SOFTWARE not in compliance with the requirements of this license, and to enforce the terms of your agreements with respect to the distributed portions of the SOFTWARE. -3. AUTHORIZED USERS. You may allow employees and contractors of your entity or of your subsidiary(ies) to access and use the SOFTWARE from your secure network to perform work on your behalf. If you are an academic institution you may allow users enrolled or employed by the academic institution to access and use the SOFTWARE from your secure network. You are responsible for the compliance with the terms of this license by your authorized users. - -4. LIMITATIONS. Your license to use the SOFTWARE is restricted as follows: - a. The SOFTWARE is licensed for you to develop applications only for their use in systems with NVIDIA GPUs. - b. You may not reverse engineer, decompile or disassemble, or remove copyright or other proprietary notices from any portion of the SOFTWARE or copies of the SOFTWARE. - c. Except as expressly stated above in this license, you may not sell, rent, sublicense, transfer, distribute, modify, or create derivative works of any portion of the SOFTWARE. - d. Unless you have an agreement with NVIDIA for this purpose, you may not indicate that an application created with the SOFTWARE is sponsored or endorsed by NVIDIA. - e. You may not bypass, disable, or circumvent any technical limitation, encryption, security, digital rights management or authentication mechanism in the SOFTWARE. - f. You may not use the SOFTWARE in any manner that would cause it to become subject to an open source software license. As examples, licenses that require as a condition of use, modification, and/or distribution that the SOFTWARE be: (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. - g. You acknowledge that the SOFTWARE as delivered is not tested or certified by NVIDIA for use in connection with the design, construction, maintenance, and/or operation of any system where the use or failure of such system could result in a situation that threatens the safety of human life or results in catastrophic damages (each, a "Critical Application"). Examples of Critical Applications include use in avionics, navigation, autonomous vehicle applications, ai solutions for automotive products, military, medical, life support or other life critical applications. NVIDIA shall not be liable to you or any third party, in whole or in part, for any claims or damages arising from such uses. You are solely responsible for ensuring that any product or service developed with the SOFTWARE as a whole includes sufficient features to comply with all applicable legal and regulatory standards and requirements. - h. You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, and their respective employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, fines, restitutions and expenses (including but not limited to attorney’s fees and costs incident to establishing the right of indemnification) arising out of or related to your use of goods and/or services that include or utilize the SOFTWARE, or for use of the SOFTWARE outside of the scope of this license or not in compliance with its terms. - -5. UPDATES. NVIDIA may, at its option, make available patches, workarounds or other updates to this SOFTWARE. Unless the updates are provided with their separate governing terms, they are deemed part of the SOFTWARE licensed to you as provided in this license. - -6. PRE-RELEASE VERSIONS. SOFTWARE versions identified as alpha, beta, preview, early access or otherwise as pre-release may not be fully functional, may contain errors or design flaws, and may have reduced or different security, privacy, availability, and reliability standards relative to commercial versions of NVIDIA software and materials. You may use a pre-release SOFTWARE version at your own risk, understanding that these versions are not intended for use in production or business-critical systems. - -7. COMPONENTS UNDER OTHER LICENSES. The SOFTWARE may include NVIDIA or third-party components with separate legal notices or terms as may be described in proprietary notices accompanying the SOFTWARE, such as components governed by open source software licenses. If and to the extent there is a conflict between the terms in this license and the license terms associated with a component, the license terms associated with the component controls only to the extent necessary to resolve the conflict. - -8. OWNERSHIP. - -8.1 NVIDIA reserves all rights, title and interest in and to the SOFTWARE not expressly granted to you under this license. NVIDIA and its suppliers hold all rights, title and interest in and to the SOFTWARE, including their respective intellectual property rights. The SOFTWARE is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. - -8.2 Subject to the rights of NVIDIA and its suppliers in the SOFTWARE, you hold all rights, title and interest in and to your applications and your derivative works of the sample or reference source code delivered in the SOFTWARE including their respective intellectual property rights. With respect to source code samples or reference source code licensed to you, NVIDIA and its affiliates are free to continue independently developing source code samples and you covenant not to sue NVIDIA, its affiliates or their licensees with respect to later versions of NVIDIA released source code. - -9. FEEDBACK. You may, but are not obligated to, provide to NVIDIA Feedback. “Feedback” means suggestions, fixes, modifications, feature requests or other feedback regarding the SOFTWARE. Feedback, even if designated as confidential by you, shall not create any confidentiality obligation for NVIDIA. NVIDIA and its designees have a perpetual, non-exclusive, worldwide, irrevocable license to use, reproduce, publicly display, modify, create derivative works of, license, sublicense, and otherwise distribute and exploit Feedback as NVIDIA sees fit without payment and without obligation or restriction of any kind on account of intellectual property rights or otherwise. - -10. NO WARRANTIES. THE SOFTWARE IS PROVIDED AS-IS. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW NVIDIA AND ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. NVIDIA DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ALL ERRORS WILL BE CORRECTED. - -11. LIMITATIONS OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW NVIDIA AND ITS AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR FOR ANY LOST PROFITS, PROJECT DELAYS, LOSS OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION WITH THIS LICENSE OR THE USE OR PERFORMANCE OF THE SOFTWARE, WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF LIABILITY, EVEN IF NVIDIA HAS PREVIOUSLY BEEN ADVISED OF, OR COULD REASONABLY HAVE FORESEEN, THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS LICENSE EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS LIMIT. - -12. TERMINATION. Your rights under this license will terminate automatically without notice from NVIDIA if you fail to comply with any term and condition of this license or if you commence or participate in any legal proceeding against NVIDIA with respect to the SOFTWARE. NVIDIA may terminate this license with advance written notice to you, if NVIDIA decides to no longer provide the SOFTWARE in a country or, in NVIDIA’s sole discretion, the continued use of it is no longer commercially viable. Upon any termination of this license, you agree to promptly discontinue use of the SOFTWARE and destroy all copies in your possession or control. Your prior distributions in accordance with this license are not affected by the termination of this license. All provisions of this license will survive termination, except for the license granted to you. - -13. APPLICABLE LAW. This license will be governed in all respects by the laws of the United States and of the State of Delaware, without regard to the conflicts of laws principles. The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed. You agree to all terms of this license in the English language. The state or federal courts residing in Santa Clara County, California shall have exclusive jurisdiction over any dispute or claim arising out of this license. Notwithstanding this, you agree that NVIDIA shall still be allowed to apply for injunctive remedies or urgent legal relief in any jurisdiction. - -14. NO ASSIGNMENT. This license and your rights and obligations thereunder may not be assigned by you by any means or operation of law without NVIDIA’s permission. Any attempted assignment not approved by NVIDIA in writing shall be void and of no effect. NVIDIA may assign, delegate or transfer this license and its rights and obligations, and if to a non-affiliate you will be notified. - -15. EXPORT. The SOFTWARE is subject to United States export laws and regulations. You agree to comply with all applicable U.S. and international export laws, including the Export Administration Regulations (EAR) administered by the U.S. Department of Commerce and economic sanctions administered by the U.S. Department of Treasury’s Office of Foreign Assets Control (OFAC). These laws include restrictions on destinations, end-users and end-use. By accepting this license, you confirm that you are not currently residing in a country or region currently embargoed by the U.S. and that you are not otherwise prohibited from receiving the SOFTWARE. - -16. GOVERNMENT USE. The SOFTWARE is, and shall be treated as being, “Commercial Items” as that term is defined at 48 CFR § 2.101, consisting of “commercial computer software” and “commercial computer software documentation”, respectively, as such terms are used in, respectively, 48 CFR § 12.212 and 48 CFR §§ 227.7202 & 252.227-7014(a)(1). Use, duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the restrictions in this license pursuant to 48 CFR § 12.212 or 48 CFR § 227.7202. In no event shall the US Government user acquire rights in the SOFTWARE beyond those specified in 48 C.F.R. 52.227-19(b)(1)-(2). - -17. NOTICES. Please direct your legal notices or other correspondence to NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, California 95051, United States of America, Attention: Legal Department. - -18. ENTIRE AGREEMENT. This license is the final, complete and exclusive agreement between the parties relating to the subject matter of this license and supersedes all prior or contemporaneous understandings and agreements relating to this subject matter, whether oral or written. If any court of competent jurisdiction determines that any provision of this license is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect. Any amendment or waiver under this license shall be in writing and signed by representatives of both parties. - -(v. November 17, 2021) + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. \ No newline at end of file diff --git a/README.md b/README.md index 9147765..7b98f63 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,15 @@
## Overview + This repository provides the Isaac ROS Argus node, which enables ROS developers to use monocular and stereo cameras connected to Jetson platforms over CSI. The node uses the [Libargus API](https://docs.nvidia.com/jetson/l4t-multimedia/group__LibargusAPI.html) internally for acquiring images and associated metadata from camera devices. ### Isaac ROS NITROS Acceleration -This package is powered by [NVIDIA Isaac Transport for ROS (NITROS)](https://developer.nvidia.com/blog/improve-perception-performance-for-ros-2-applications-with-nvidia-isaac-transport-for-ros/), which leverages type adaptation and negotiation to optimize message formats and dramatically accelerate communication between participating nodes. + +This package is powered by [NVIDIA Isaac Transport for ROS (NITROS)](https://developer.nvidia.com/blog/improve-perception-performance-for-ros-2-applications-with-nvidia-isaac-transport-for-ros/), which leverages type adaptation and negotiation to optimize message formats and dramatically accelerate communication between participating nodes. ## Table of Contents + - [Isaac ROS Argus Camera](#isaac-ros-argus-camera) - [Overview](#overview) - [Isaac ROS NITROS Acceleration](#isaac-ros-nitros-acceleration) @@ -36,29 +39,30 @@ This package is powered by [NVIDIA Isaac Transport for ROS (NITROS)](https://dev - [Solution](#solution) - [Updates](#updates) - ## Latest Update -Update 2022-08-31: Update to be compatible with JetPack 5.0.2 + +Update 2022-10-19: Updated OSS licensing ## Supported Platforms + This package is designed and tested to be compatible with ROS2 Humble running on [Jetson](https://developer.nvidia.com/embedded-computing) with off-the-shelf cameras from NVIDIA partners (see the [Reference Cameras](#reference-cameras) section for more details). > **Note**: x86_64 system is not supported. > **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) | The [CSI](https://en.wikipedia.org/wiki/Camera_Serial_Interface) camera device needs to be connected and presented as a video device (e.g. `/dev/video0`).

For best performance, ensure that [power settings](https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance.html) are configured appropriately. | - +| 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) | The [CSI](https://en.wikipedia.org/wiki/Camera_Serial_Interface) camera device needs to be connected and presented as a video device (e.g. `/dev/video0`).

For best performance, ensure that [power settings](https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance.html) are configured appropriately. | ### 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 Jetson platforms. > **Note:** All Isaac ROS Quickstarts, tutorials, and examples have been designed with the Isaac ROS Docker images as a prerequisite. ### Reference Cameras -NVIDIA has worked with our camera partners to provide the modules listed below which are compatible with the Isaac ROS Argus Camera package. +NVIDIA has worked with our camera partners to provide the modules listed below which are compatible with the Isaac ROS Argus Camera package. | Camera Type | Connector | Resolution/FrameRate | H/V FOV | Shutter | Supplier, HW Part, Link to purchase | | ---------------------- | --------- | -------------------- | ------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -67,12 +71,12 @@ NVIDIA has worked with our camera partners to provide the modules listed below w | Monocular Camera/Color | CSI | 4056x3040@60fps | 140/103 | Global | [IMX477 -140FOH](https://www.leopardimaging.com/product/csi-2-mipi-modules-i-pex/csi-2-mipi-modules/rolling-shutter-mipi-cameras/12-33mp-imx477/li-imx477-mipi-140h/) | | Monocular Camera/Color | CSI | 3264x2464@21fps | 90/90 | Rolling | [LI-NANO-CB-IMX219-090H](https://www.leopardimaging.com/product/nvidia-jetson-cameras/nvidia_nano_mipi_camera_kits/li-nano-cb-imx219-x/li-nano-cb-imx219-090h/) | - - ## Quickstart + 1. Set up your development environment by following the instructions [here](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docs/dev-env-setup.md). 2. Clone this repository and its dependencies under `~/workspaces/isaac_ros-dev/src`. + ```bash cd ~/workspaces/isaac_ros-dev/src ``` @@ -90,56 +94,74 @@ NVIDIA has worked with our camera partners to provide the modules listed below w ``` 3. Launch the Docker container using the `run_dev.sh` script: + ```bash cd ~/workspaces/isaac_ros-dev/src/isaac_ros_common && \ ./scripts/run_dev.sh ``` + 4. Inside the container, build and source the workspace: + ```bash cd /workspaces/isaac_ros-dev && \ colcon build --symlink-install && \ source install/setup.bash ``` + 5. (Optional) Run tests to verify complete and correct installation: + ```bash colcon test --executor sequential ``` + 6. Run the following launch files to spin up a demo of this package: + ```bash ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_mono.launch.py ``` + 7. Use `image_saver` to save the output images: + ```bash ros2 run image_view image_saver --ros-args -r image:=/left/image_raw -p filename_format:="left_image.jpg" ``` ## Package Reference + ### Usage + #### Launch monocular camera + ```bash ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_mono.launch.py ``` + #### Launch stereo camera + ```bash ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_stereo.launch.py ``` ### ROS Parameters -| ROS Parameter | Type | Default | Description | -| ----------------------- | -------- | ------------- | ---------------------------------------------------------------------------------------------------------- | -| `camera_id` | `uint` | `0` | The video device index
E.g. `/dev/video0` | -| `module_id` | `uint` | `0` | The camera module index in the device tree, If there is more than one but the same camera module connected | -| `mode` | `uint` | `0` | The sensor mode supported by the camera sensor and driver | -| `framerate` | `uint` | `30` | The frame rate of the sensor mode
E.g. `30` or `60` fps | -| `camera_type` | `uint` | `1` | 0 for Monocular type camera; 1 for Stereo type camera | -| `output_format` | `uint` | `1` | Output color space format from libargus.
0 for YUV420 to RGB888 ; 1 for YUV444 to RGB888 | -| `camera_info_url` | `string` | N/A, optional | The URL of camera info `.ini` file for monocular camera | -| `left_camera_info_url` | `string` | N/A, optional | The URL of camera info `.ini` file for stereo left | -| `right_camera_info_url` | `string` | N/A, optional | The URL of camera info `.ini` file for stereo right | + +| ROS Parameter | Type | Default | Description | +| -------------------------- | -------- | ----------- | --------------------------------------------------------------------------------------------------------------- | +| `camera_id` | `uint` | `0` | The video device index
E.g. `/dev/video0` | +| `module_id` | `uint` | `0` | The camera module index in the device tree when there is more than one of the same camera module connected | +| `mode` | `uint` | `0` | The resolution mode supported by the camera sensor and driver. | +| `camera_type` | `uint` | `1` | 0 for Monocular type camera; 1 for Stereo type camera | +| `camera_info_url` | `string` | N/A | Optional url of a camera info `.ini` file for monocular camera to read intrinsic information | +| `left_camera_info_url` | `string` | N/A | Optional url of a camera info `.ini` file for the left imager of a stereo camera to read intrinsic information | +| `right_camera_info_url` | `string` | N/A | Optional url of a camera info `.ini` file for the right imager of a stereo camera to read intrinsic information | +| `camera_link_frame_name` | `string` | `camera` | The frame name associated with the origin of the camera body. | +| `optical_frame_name` | `string` | `left_cam` | The frame name associated with the imager inside camera body (for monocular camera). | +| `left_optical_frame_name` | `string` | `left_cam` | The frame name associated with the left imager inside camera body (for stereo camera). | +| `right_optical_frame_name` | `string` | `right_cam` | The frame name associated with the right imager inside camera body (for stereo camera). | > **Note**: To run the stereo camera, two video devices should present for the left and right sensors, respectively (e.g. `/dev/video0` and `/dev/video1`). ### ROS Topics Published + | ROS Topic | Interface | Description | | ------------------ | -------------------------------------------------------------------------------------------------------------- | --------------------------------- | | `left/image_raw` | [sensor_msgs/Image](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Image.msg) | The left image of a stereo pair. | @@ -147,21 +169,26 @@ ros2 launch isaac_ros_argus_camera isaac_ros_argus_camera_stereo.launch.py | `left/camerainfo` | [sensor_msgs/CameraInfo](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/CameraInfo.msg) | The left camera model. | | `right/camerainfo` | [sensor_msgs/CameraInfo](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/CameraInfo.msg) | The right camera model. | - ### Launch testing + #### Monocular camera + ```bash launch_test src/isaac_ros_argus_camera/isaac_ros_argus_camera/test/isaac_ros_argus_camera_mono_test.py ``` + #### Stereo camera + ```bash launch_test src/isaac_ros_argus_camera/isaac_ros_argus_camera/test/isaac_ros_argus_camera_stereo_test.py ``` ### Output Color Space Format + The Isaac ROS Argus node supports the `YUV444` and `YUV420` colorspaces from `libargus` and converts it to the `RGB888` colorspace as output. ### `CameraInfo` Message + The Isaac ROS Argus node uses the Argus Ext API to retrieve calibration parameters from the camera through the Linux device driver and convert it into [CameraInfo](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/CameraInfo.msg) messages. Refer to [this page](https://docs.nvidia.com/jetson/l4t-multimedia/classArgus_1_1Ext_1_1ISyncSensorCalibrationData.html) for the data structure of the calibration parameters. @@ -169,23 +196,29 @@ Refer to [this page](https://docs.nvidia.com/jetson/l4t-multimedia/classArgus_1_ > **Note:** If your camera does not support the Argus Ext API, you can also specify a URL to a camera info `.ini` file parseable by the ROS [CameraInfoManager](http://wiki.ros.org/camera_info_manager) using the `camera_info_url` parameter on the Isaac ROS Argus node. This will allow you to provide parameters you may have calibrated using the ROS Camera Calibration package, for example. ->**Note**: When the `camera_info_url` is provided, the loaded parameters override the `CameraInfo` from Argus Ext API. +> **Note**: When the `camera_info_url` is provided, the loaded parameters override the `CameraInfo` from Argus Ext API. ## Troubleshooting + ### Isaac ROS Troubleshooting + For solutions to problems with Isaac ROS, please check [here](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docs/troubleshooting.md). ### Argus fails to create capture session + #### Symptoms + The Isaac ROS Argus node can fail to create a capture session inside the container after the `nvargus` daemon has crashed. By default, the `nvargus` daemon is running in background, but it may crash due to other Argus clients. This will prevent Argus camera nodes from creating capture sessions. You may see messages with errors similar to `Failed to create capture session`. #### Solution + Exit the Docker container and restart the `nvargus` daemon by running `sudo service nvargus-daemon restart` ## Updates | Date | Changes | | ---------- | ------------------------------------------ | +| 2022-10-19 | Updated OSS licensing | | 2022-08-31 | Update to be compatible with JetPack 5.0.2 | | 2022-06-30 | Support NITROS acceleration | | 2022-03-18 | Support CameraInfo from URL | diff --git a/isaac_ros_argus_camera/CMakeLists.txt b/isaac_ros_argus_camera/CMakeLists.txt index 7b9e067..ccbf16b 100644 --- a/isaac_ros_argus_camera/CMakeLists.txt +++ b/isaac_ros_argus_camera/CMakeLists.txt @@ -1,10 +1,19 @@ -# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. 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. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.8) project(isaac_ros_argus_camera) @@ -89,10 +98,6 @@ if(${ARCHITECTURE} STREQUAL "aarch64") "${node_plugins}nvidia::isaac_ros::argus::ArgusStereoNode;$\n" ) - # Install extensions directory - install( - DIRECTORY gxf/lib/gxf_jetpack50/ - DESTINATION share/${PROJECT_NAME}/gxf) # Install config directory install( DIRECTORY config @@ -115,10 +120,6 @@ endif() if(BUILD_TESTING) 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) diff --git a/isaac_ros_argus_camera/config/argus_camera_mono_node.yaml b/isaac_ros_argus_camera/config/argus_camera_mono_node.yaml index 03f1b60..0b06fd4 100644 --- a/isaac_ros_argus_camera/config/argus_camera_mono_node.yaml +++ b/isaac_ros_argus_camera/config/argus_camera_mono_node.yaml @@ -1,10 +1,20 @@ %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. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 --- name: atlas components: diff --git a/isaac_ros_argus_camera/config/argus_camera_stereo_node.yaml b/isaac_ros_argus_camera/config/argus_camera_stereo_node.yaml index f45ccb3..e8d8c83 100644 --- a/isaac_ros_argus_camera/config/argus_camera_stereo_node.yaml +++ b/isaac_ros_argus_camera/config/argus_camera_stereo_node.yaml @@ -1,10 +1,20 @@ %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. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 --- name: atlas components: diff --git a/isaac_ros_argus_camera/config/namespace_injector_rule.yaml b/isaac_ros_argus_camera/config/namespace_injector_rule.yaml index 70afd96..4752e26 100644 --- a/isaac_ros_argus_camera/config/namespace_injector_rule.yaml +++ b/isaac_ros_argus_camera/config/namespace_injector_rule.yaml @@ -1,10 +1,20 @@ %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. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 --- name: Argus Camera Mono Namespace Injector Rule operation: namespace_injector diff --git a/isaac_ros_argus_camera/gxf/lib/gxf_jetpack50/argus/libgxf_argus.so b/isaac_ros_argus_camera/gxf/lib/gxf_jetpack50/argus/libgxf_argus.so deleted file mode 100755 index c96d1ba..0000000 --- a/isaac_ros_argus_camera/gxf/lib/gxf_jetpack50/argus/libgxf_argus.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f138fb54a589353eb678d8bb686d9c1d20c4065ebe13af57e14d66efe50007e4 -size 2182224 diff --git a/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_mono_node.hpp b/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_mono_node.hpp index b01a891..c11ed15 100644 --- a/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_mono_node.hpp +++ b/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_mono_node.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: NVIDIA CORPORATION & AFFILIATES +// Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 #ifndef ISAAC_ROS_ARGUS_CAMERA__ARGUS_CAMERA_MONO_NODE_HPP_ #define ISAAC_ROS_ARGUS_CAMERA__ARGUS_CAMERA_MONO_NODE_HPP_ diff --git a/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_node.hpp b/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_node.hpp index 73e60ba..76480e3 100644 --- a/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_node.hpp +++ b/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_node.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: NVIDIA CORPORATION & AFFILIATES +// Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 #ifndef ISAAC_ROS_ARGUS_CAMERA__ARGUS_CAMERA_NODE_HPP_ #define ISAAC_ROS_ARGUS_CAMERA__ARGUS_CAMERA_NODE_HPP_ diff --git a/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_stereo_node.hpp b/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_stereo_node.hpp index 5fa99ae..cf9656a 100644 --- a/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_stereo_node.hpp +++ b/isaac_ros_argus_camera/include/isaac_ros_argus_camera/argus_camera_stereo_node.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: NVIDIA CORPORATION & AFFILIATES +// Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 #ifndef ISAAC_ROS_ARGUS_CAMERA__ARGUS_CAMERA_STEREO_NODE_HPP_ #define ISAAC_ROS_ARGUS_CAMERA__ARGUS_CAMERA_STEREO_NODE_HPP_ diff --git a/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_mono.launch.py b/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_mono.launch.py index 08ece36..dba62ed 100644 --- a/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_mono.launch.py +++ b/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_mono.launch.py @@ -1,10 +1,19 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. 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. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 import launch from launch_ros.actions import ComposableNodeContainer diff --git a/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_stereo.launch.py b/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_stereo.launch.py index 537782a..d2365c3 100644 --- a/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_stereo.launch.py +++ b/isaac_ros_argus_camera/launch/isaac_ros_argus_camera_stereo.launch.py @@ -1,11 +1,19 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. 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. - +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 import launch from launch_ros.actions import ComposableNodeContainer diff --git a/isaac_ros_argus_camera/package.xml b/isaac_ros_argus_camera/package.xml index bba979a..0eccf18 100644 --- a/isaac_ros_argus_camera/package.xml +++ b/isaac_ros_argus_camera/package.xml @@ -1,23 +1,30 @@ isaac_ros_argus_camera - 0.11.0 + 0.20.0 Support for Argus Stereo Camera Greg Lo - NVIDIA Isaac ROS Software License + Apache-2.0 https://developer.nvidia.com/isaac-ros-gems/ Shashank Kumar Greg Lo diff --git a/isaac_ros_argus_camera/src/argus_camera_mono_node.cpp b/isaac_ros_argus_camera/src/argus_camera_mono_node.cpp index 4743097..1e31990 100644 --- a/isaac_ros_argus_camera/src/argus_camera_mono_node.cpp +++ b/isaac_ros_argus_camera/src/argus_camera_mono_node.cpp @@ -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: NVIDIA CORPORATION & AFFILIATES +// Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 #include "isaac_ros_argus_camera/argus_camera_mono_node.hpp" diff --git a/isaac_ros_argus_camera/src/argus_camera_node.cpp b/isaac_ros_argus_camera/src/argus_camera_node.cpp index 87461da..d62471d 100644 --- a/isaac_ros_argus_camera/src/argus_camera_node.cpp +++ b/isaac_ros_argus_camera/src/argus_camera_node.cpp @@ -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: NVIDIA CORPORATION & AFFILIATES +// Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 #include @@ -48,7 +55,7 @@ const std::vector> EXTENSIONS = { {"isaac_ros_nitros", "gxf/libgxf_isaac_messages.so"}, {"isaac_ros_nitros", "gxf/multimedia/libgxf_multimedia.so"}, {"isaac_ros_nitros", "gxf/tensorops/libgxf_tensorops.so"}, - {"isaac_ros_argus_camera", "gxf/argus/libgxf_argus.so"}, + {"isaac_ros_nitros", "gxf/libgxf_argus.so"}, {"isaac_ros_nitros", "gxf/libgxf_message_compositor.so"} }; constexpr char PACKAGE_NAME[] = "isaac_ros_argus_camera"; diff --git a/isaac_ros_argus_camera/src/argus_camera_stereo_node.cpp b/isaac_ros_argus_camera/src/argus_camera_stereo_node.cpp index 7d90f8f..39ee116 100644 --- a/isaac_ros_argus_camera/src/argus_camera_stereo_node.cpp +++ b/isaac_ros_argus_camera/src/argus_camera_stereo_node.cpp @@ -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: NVIDIA CORPORATION & AFFILIATES +// Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 #include "isaac_ros_argus_camera/argus_camera_stereo_node.hpp" diff --git a/isaac_ros_argus_camera/test/isaac_ros_argus_camera_mono_test.py b/isaac_ros_argus_camera/test/isaac_ros_argus_camera_mono_test.py index 10bca57..c2b5d4e 100644 --- a/isaac_ros_argus_camera/test/isaac_ros_argus_camera_mono_test.py +++ b/isaac_ros_argus_camera/test/isaac_ros_argus_camera_mono_test.py @@ -1,10 +1,19 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. 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. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 import os import pathlib diff --git a/isaac_ros_argus_camera/test/isaac_ros_argus_camera_stereo_test.py b/isaac_ros_argus_camera/test/isaac_ros_argus_camera_stereo_test.py index ac97440..4718f20 100644 --- a/isaac_ros_argus_camera/test/isaac_ros_argus_camera_stereo_test.py +++ b/isaac_ros_argus_camera/test/isaac_ros_argus_camera_stereo_test.py @@ -1,10 +1,19 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES +# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. 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. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 import os import pathlib