From 3ade0fa5906763d2df769a368d1536ab6ae76f90 Mon Sep 17 00:00:00 2001 From: Hunter Crosland Date: Thu, 26 Sep 2024 21:37:28 +0000 Subject: [PATCH] Isaac ROS 3.1 --- README.md | 2 +- docker/Dockerfile.aarch64 | 14 +++---- docker/Dockerfile.ros2_humble | 4 +- docker/Dockerfile.x86_64 | 13 +++--- docker/Dockerfile.zed | 41 +++++++++++++++++++ docker/rosdep/extra_rosdeps.yaml | 24 ++++------- docker/scripts/install-zed-aarch64.sh | 2 +- isaac_ros_apriltag_interfaces/package.xml | 2 +- isaac_ros_bi3d_interfaces/package.xml | 2 +- isaac_ros_common/package.xml | 2 +- .../isaac_ros_launch_utils/core.py | 7 +++- isaac_ros_launch_utils/package.xml | 2 +- .../package.xml | 2 +- isaac_ros_nova_interfaces/package.xml | 2 +- isaac_ros_pointcloud_interfaces/package.xml | 2 +- isaac_ros_tensor_list_interfaces/package.xml | 2 +- isaac_ros_test/package.xml | 2 +- 17 files changed, 82 insertions(+), 43 deletions(-) create mode 100644 docker/Dockerfile.zed diff --git a/README.md b/README.md index 493943c..b07b864 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,4 @@ Please visit the [Isaac ROS Documentation](https://nvidia-isaac-ros.github.io/re ## Latest -Update 2024-05-30: Update to be compatible with JetPack 6.0 +Update 2024-09-26: Updated for Isaac ROS 3.1 diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64 index d9c2de1..c02c3f6 100644 --- a/docker/Dockerfile.aarch64 +++ b/docker/Dockerfile.aarch64 @@ -136,14 +136,14 @@ RUN python3 -m pip install -U \ scikit-learn \ ninja \ networkx \ - "numpy<2" \ + "numpy>=1.24.4,<2" \ numpy-quaternion \ pyyaml \ - setuptools_scm>=6.2 \ + "setuptools_scm>=6.2" \ trimesh \ - yourdfpy>=0.0.53 \ - warp-lang>=0.9.0 \ - scipy>=1.7.0 \ + "yourdfpy>=0.0.53" \ + "warp-lang>=0.9.0" \ + "scipy>=1.7.0" \ tqdm \ importlib_resources @@ -202,7 +202,7 @@ apt-get update && apt-get install -y --no-install-recommends \ libopenblas-dev \ libarchive-dev -RUN --mount=type=cache,target=/var/cache/apt \ +RUN --mount=type=cache,target=/var/cache/apt \ cd /opt \ && wget https://github.com/triton-inference-server/server/releases/download/v2.40.0/tritonserver2.40.0-igpu.tar.gz \ && tar -xzvf tritonserver2.40.0-igpu.tar.gz \ @@ -243,4 +243,4 @@ RUN python3 -m pip install -U \ jetson-stats # Store list of packages (must be last) -RUN mkdir -p /opt/nvidia/isaac_ros_dev_base && dpkg-query -W | sort > /opt/nvidia/isaac_ros_dev_base/aarch64-end-packages.csv +RUN mkdir -p /opt/nvidia/isaac_ros_dev_base && dpkg-query -W | sort > /opt/nvidia/isaac_ros_dev_base/aarch64-end-packages.csv \ No newline at end of file diff --git a/docker/Dockerfile.ros2_humble b/docker/Dockerfile.ros2_humble index d57b796..929454c 100644 --- a/docker/Dockerfile.ros2_humble +++ b/docker/Dockerfile.ros2_humble @@ -63,7 +63,6 @@ RUN python3 -m pip install -U \ flake8-docstrings \ flake8-import-order \ flake8-quotes \ - numpy>=1.24.4 \ matplotlib \ pandas \ rosbags \ @@ -84,6 +83,7 @@ apt-get update && apt-get install -y \ ros-humble-cv-bridge \ ros-humble-demo-nodes-cpp \ ros-humble-demo-nodes-py \ + ros-humble-diagnostics \ ros-humble-diagnostic-aggregator \ ros-humble-diagnostic-updater \ ros-humble-example-interfaces \ @@ -111,6 +111,7 @@ apt-get update && apt-get install -y \ ros-humble-rosbag2-py \ ros-humble-rosbag2-storage-mcap \ ros-humble-rosbridge-suite \ + ros-humble-rosx-introspection \ ros-humble-rqt-graph \ ros-humble-rqt-image-view \ ros-humble-rqt-reconfigure \ @@ -130,6 +131,7 @@ COPY rosdep/extra_rosdeps.yaml /etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml RUN --mount=type=cache,target=/var/cache/apt \ rosdep init \ && echo "yaml file:///etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml" | tee /etc/ros/rosdep/sources.list.d/00-nvidia-isaac.list \ + && sed -i 's|gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte||g' /etc/ros/rosdep/sources.list.d/20-default.list \ && rosdep update ####### -- Install updated packages over installed debians diff --git a/docker/Dockerfile.x86_64 b/docker/Dockerfile.x86_64 index 58cce71..429d60a 100644 --- a/docker/Dockerfile.x86_64 +++ b/docker/Dockerfile.x86_64 @@ -104,19 +104,20 @@ RUN python3 -m pip install -U \ flake8-docstrings \ flake8-import-order \ flake8-quotes \ + gpustat==0.6.0 \ onnx \ pydocstyle \ scikit-learn \ ninja \ networkx \ - "numpy<2" \ + "numpy>=1.24.4,<2" \ numpy-quaternion \ pyyaml \ - setuptools_scm>=6.2 \ + "setuptools_scm>=6.2" \ trimesh \ - yourdfpy>=0.0.53 \ - warp-lang>=0.9.0 \ - scipy>=1.7.0 \ + "yourdfpy>=0.0.53" \ + "warp-lang>=0.9.0" \ + "scipy>=1.7.0" \ tqdm \ importlib_resources @@ -172,4 +173,4 @@ apt-add-repository ppa:mosquitto-dev/mosquitto-ppa \ mosquitto-clients # Store list of packages (must be last) -RUN mkdir -p /opt/nvidia/isaac_ros_dev_base && dpkg-query -W | sort > /opt/nvidia/isaac_ros_dev_base/x86_64-end-packages.csv +RUN mkdir -p /opt/nvidia/isaac_ros_dev_base && dpkg-query -W | sort > /opt/nvidia/isaac_ros_dev_base/x86_64-end-packages.csv \ No newline at end of file diff --git a/docker/Dockerfile.zed b/docker/Dockerfile.zed new file mode 100644 index 0000000..35fb532 --- /dev/null +++ b/docker/Dockerfile.zed @@ -0,0 +1,41 @@ +# Copyright (c) 2023, 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. + +ARG BASE_IMAGE +FROM ${BASE_IMAGE} + +ARG ZED_SDK_MAJOR=4 +ARG ZED_SDK_MINOR=0 + +# zed-ros2-wrapper dependencies +RUN --mount=type=cache,target=/var/cache/apt \ +apt-get update && apt-get install -y \ + libgeographic-dev \ + ros-humble-geographic-info \ + ros-humble-nmea-msgs \ + ros-humble-robot-localization \ + ros-humble-xacro + +# The zed installation script expects to be run as non-root user and needs the USER ENV variable to be set +ENV USER=${USERNAME} +USER ${USERNAME} + +COPY scripts/install-zed-x86_64.sh /opt/zed/install-zed-x86_64.sh +COPY scripts/install-zed-aarch64.sh /opt/zed/install-zed-aarch64.sh + +RUN --mount=type=cache,target=/var/cache/apt \ + if [ "$(uname -m)" = "x86_64" ]; then \ + sudo chmod +x /opt/zed/install-zed-x86_64.sh; \ + /opt/zed/install-zed-x86_64.sh; \ + else \ + sudo chmod +x /opt/zed/install-zed-aarch64.sh; \ + /opt/zed/install-zed-aarch64.sh; \ + fi + +# Revert to root user +USER root diff --git a/docker/rosdep/extra_rosdeps.yaml b/docker/rosdep/extra_rosdeps.yaml index 6879c96..f439399 100644 --- a/docker/rosdep/extra_rosdeps.yaml +++ b/docker/rosdep/extra_rosdeps.yaml @@ -2459,14 +2459,6 @@ gxf_isaac_video_buffer_utils: ubuntu: focal: [ros-humble-gxf-isaac-video-buffer-utils] jammy: [ros-humble-gxf-isaac-video-buffer-utils] -h264_image_transport: - ubuntu: - focal: [ros-humble-h264-image-transport] - jammy: [ros-humble-h264-image-transport] -h264_msgs: - ubuntu: - focal: [ros-humble-h264-msgs] - jammy: [ros-humble-h264-msgs] hardware_interface: ubuntu: focal: [ros-humble-hardware-interface] @@ -3323,10 +3315,6 @@ isaac_ros_test: ubuntu: focal: [ros-humble-isaac-ros-test] jammy: [ros-humble-isaac-ros-test] -isaac_ros_to_h264_msgs_packet: - ubuntu: - focal: [ros-humble-isaac-ros-to-h264-msgs-packet] - jammy: [ros-humble-isaac-ros-to-h264-msgs-packet] isaac_ros_triton: ubuntu: focal: [ros-humble-isaac-ros-triton] @@ -3379,6 +3367,10 @@ isaac_ros_yolov8: ubuntu: focal: [ros-humble-isaac-ros-yolov8] jammy: [ros-humble-isaac-ros-yolov8] +isaac_ros_zed: + ubuntu: + focal: [ros-humble-isaac-ros-zed] + jammy: [ros-humble-isaac-ros-zed] isaac_ros_zed_test: ubuntu: focal: [ros-humble-isaac-ros-zed-test] @@ -5653,6 +5645,10 @@ proxsuite: ubuntu: focal: [ros-humble-proxsuite] jammy: [ros-humble-proxsuite] +py_binding_tools: + ubuntu: + focal: [ros-humble-py-binding-tools] + jammy: [ros-humble-py-binding-tools] py_trees: ubuntu: focal: [ros-humble-py-trees] @@ -6629,10 +6625,6 @@ ros2_controllers_test_nodes: ubuntu: focal: [ros-humble-ros2-controllers-test-nodes] jammy: [ros-humble-ros2-controllers-test-nodes] -ros2_h264_encoder: - ubuntu: - focal: [ros-humble-ros2-h264-encoder] - jammy: [ros-humble-ros2-h264-encoder] ros2_socketcan: ubuntu: focal: [ros-humble-ros2-socketcan] diff --git a/docker/scripts/install-zed-aarch64.sh b/docker/scripts/install-zed-aarch64.sh index 6b3d5f6..9699d89 100644 --- a/docker/scripts/install-zed-aarch64.sh +++ b/docker/scripts/install-zed-aarch64.sh @@ -7,7 +7,7 @@ sudo apt-get install --no-install-recommends lsb-release wget less zstd udev sud # Download zed SDK installation RUN file to /tmp directory cd /tmp -wget -q --no-check-certificate -O ZED_SDK_Linux.run https://stereolabs.sfo2.digitaloceanspaces.com/zedsdk/QA/JP5.1.2/ZED_SDK_Tegra_L4T35.4_v4.0.6.zstd.run +wget -q --no-check-certificate -O ZED_SDK_Linux.run +wget -q --no-check-certificate -O ZED_SDK_Linux.run https://stereolabs.sfo2.cdn.digitaloceanspaces.com/zedsdk/4.1/ZED_SDK_Tegra_L4T36.3_v4.1.3.zstd.run chmod +x ZED_SDK_Linux.run ; ./ZED_SDK_Linux.run silent skip_od_module skip_python skip_drivers # Symlink required to use the streaming features on Jetson inside a container, based on diff --git a/isaac_ros_apriltag_interfaces/package.xml b/isaac_ros_apriltag_interfaces/package.xml index c6b9a8d..0e19a67 100644 --- a/isaac_ros_apriltag_interfaces/package.xml +++ b/isaac_ros_apriltag_interfaces/package.xml @@ -11,7 +11,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_apriltag_interfaces - 3.0.1 + 3.1.0 Interfaces for performing Isaac ROS AprilTag detection Isaac ROS Maintainers diff --git a/isaac_ros_bi3d_interfaces/package.xml b/isaac_ros_bi3d_interfaces/package.xml index 5ab55e8..8889a79 100644 --- a/isaac_ros_bi3d_interfaces/package.xml +++ b/isaac_ros_bi3d_interfaces/package.xml @@ -11,7 +11,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_bi3d_interfaces - 3.0.1 + 3.1.0 Interfaces for Isaac ROS Bi3D Isaac ROS Maintainers diff --git a/isaac_ros_common/package.xml b/isaac_ros_common/package.xml index 80d78ef..1fb2553 100644 --- a/isaac_ros_common/package.xml +++ b/isaac_ros_common/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_common - 3.0.1 + 3.1.0 Utilities for performing common functions in Isaac ROS packages Isaac ROS Maintainers diff --git a/isaac_ros_launch_utils/isaac_ros_launch_utils/core.py b/isaac_ros_launch_utils/isaac_ros_launch_utils/core.py index 781ec04..c199ffd 100644 --- a/isaac_ros_launch_utils/isaac_ros_launch_utils/core.py +++ b/isaac_ros_launch_utils/isaac_ros_launch_utils/core.py @@ -321,6 +321,7 @@ def play_rosbag(bag_path: Any, loop: Any = None, rate: Any = None, delay: Any = None, + shutdown_on_exit: bool = False, additional_bag_play_args: Any = None, condition: Substitution = None) -> Action: """ Add a process playing back a ros2bag to the launch graph. """ @@ -347,8 +348,10 @@ def impl(context: LaunchContext) -> Action: cmd.extend((bag_args_str).split()) print("[play_rosbag]: Running the following command:", ' '.join(cmd)) - - bag_play_action = ExecuteProcess(cmd=cmd, output='screen', on_exit=Shutdown()) + on_exit_func = None + if shutdown_on_exit: + on_exit_func = Shutdown() + bag_play_action = ExecuteProcess(cmd=cmd, output='screen', on_exit=on_exit_func) return [_add_delay_if_set(bag_play_action, delay_str)] return OpaqueFunction(function=impl, condition=condition) diff --git a/isaac_ros_launch_utils/package.xml b/isaac_ros_launch_utils/package.xml index 859beb0..be26e1f 100644 --- a/isaac_ros_launch_utils/package.xml +++ b/isaac_ros_launch_utils/package.xml @@ -2,7 +2,7 @@ isaac_ros_launch_utils - 3.0.1 + 3.1.0 Helper functions to simplify ROS2 launch files. Isaac ROS Maintainers Apache-2.0 diff --git a/isaac_ros_nitros_bridge_interfaces/package.xml b/isaac_ros_nitros_bridge_interfaces/package.xml index c45ac03..92817be 100644 --- a/isaac_ros_nitros_bridge_interfaces/package.xml +++ b/isaac_ros_nitros_bridge_interfaces/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nitros_bridge_interfaces - 3.0.1 + 3.1.0 Interfaces for Isaac ROS NITROS Bridge Msgs Isaac ROS Maintainers diff --git a/isaac_ros_nova_interfaces/package.xml b/isaac_ros_nova_interfaces/package.xml index 8a07597..87e3424 100644 --- a/isaac_ros_nova_interfaces/package.xml +++ b/isaac_ros_nova_interfaces/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_nova_interfaces - 3.0.1 + 3.1.0 Interfaces for Isaac ROS Nova Isaac ROS Maintainers diff --git a/isaac_ros_pointcloud_interfaces/package.xml b/isaac_ros_pointcloud_interfaces/package.xml index baa49a3..fc75b66 100644 --- a/isaac_ros_pointcloud_interfaces/package.xml +++ b/isaac_ros_pointcloud_interfaces/package.xml @@ -13,7 +13,7 @@ isaac_ros_pointcloud_interfaces - 3.0.1 + 3.1.0 Pointcloud interfaces for Isaac ROS NITROS Isaac ROS Maintainers diff --git a/isaac_ros_tensor_list_interfaces/package.xml b/isaac_ros_tensor_list_interfaces/package.xml index 7863aa0..9caa855 100644 --- a/isaac_ros_tensor_list_interfaces/package.xml +++ b/isaac_ros_tensor_list_interfaces/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_tensor_list_interfaces - 3.0.1 + 3.1.0 Interfaces for Isaac ROS tensor list Isaac ROS Maintainers diff --git a/isaac_ros_test/package.xml b/isaac_ros_test/package.xml index 78ca194..504c13b 100644 --- a/isaac_ros_test/package.xml +++ b/isaac_ros_test/package.xml @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited. isaac_ros_test - 3.0.1 + 3.1.0 Isaac ROS testing utilities Isaac ROS Maintainers