diff --git a/README.md b/README.md
index 3d54e724..3592aeff 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ COPY myfile.txt /myfile.txt
You could extend the base image launched as a container by `run_dev.sh` as follows.
-`workspaces/isaac_ros-dev/ros_ws/src/isaac_ros_common/scripts/.isaac_ros_common_config`
+`workspaces/isaac_ros-dev/ros_ws/src/isaac_ros_common/scripts/.isaac_ros_common-config`
```
CONFIG_IMAGE_KEY="humble.nav2.mine"
CONFIG_DOCKER_SEARCH_DIRS=(workspaces/isaac_ros-dev/ros_ws/docker)
@@ -79,15 +79,17 @@ This configures the image key to match with `mine` included and where to look fi
- [Updates](#updates)
## Latest Update
-Update 2022-06-30: Support ROS2 Humble and miscellaneous bug fixes.
+Update 2022-08-31: Update to be compatible with JetPack 5.0.2
## Supported Platforms
This package is designed and tested to be compatible with ROS2 Humble running on [Jetson](https://developer.nvidia.com/embedded-computing) or an x86_64 system with an NVIDIA GPU.
+> **Note**: Versions of ROS2 earlier than Humble are **not** supported. This package depends on specific ROS2 implementation features that were only introduced beginning with the Humble release.
+
| Platform | Hardware | Software | Notes |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Jetson | [Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/)
[Jetson Xavier](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-agx-xavier/) | [JetPack 5.0.1 DP](https://developer.nvidia.com/embedded/jetpack) | For best performance, ensure that [power settings](https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance.html) are configured appropriately. |
+| Jetson | [Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/)
[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) |
@@ -95,6 +97,7 @@ This package is designed and tested to be compatible with ROS2 Humble running on
| Date | Changes |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 2022-08-31 | Update to be compatible with JetPack 5.0.2 |
| 2022-06-30 | Support ROS2 Humble and miscellaneous bug fixes. |
| 2022-06-16 | Update `run_dev.sh` and removed `isaac_ros_nvengine` |
| 2021-10-20 | Migrated to [NVIDIA-ISAAC-ROS](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common), added `isaac_ros_nvengine` and `isaac_ros_nvengine_interfaces` packages |
diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64
index 4c291fc3..fcc7b7d1 100644
--- a/docker/Dockerfile.aarch64
+++ b/docker/Dockerfile.aarch64
@@ -7,7 +7,7 @@
# license agreement from NVIDIA CORPORATION is strictly prohibited.
# Docker file for aarch64 based Jetson device
-ARG BASE_IMAGE="nvcr.io/nvidia/l4t-base:r34.1"
+ARG BASE_IMAGE="nvcr.io/nvidia/l4t-base:r35.1.0"
FROM ${BASE_IMAGE}
# Disable terminal interaction for apt
@@ -18,7 +18,6 @@ SHELL ["/bin/bash", "-c"]
# Fundamentals
RUN apt-get update && apt-get install -y \
build-essential \
- cmake \
curl \
git \
lsb-release \
@@ -32,12 +31,24 @@ RUN apt-get update && apt-get install -y \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
+# Upgrade cmake to 3.23.2
+RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null \
+ && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null \
+ && apt-get update \
+ && rm /usr/share/keyrings/kitware-archive-keyring.gpg \
+ && apt-get install -y kitware-archive-keyring \
+ && apt-get remove cmake && apt-get purge cmake && apt-get remove cmake-data && apt-get purge cmake \
+ && apt-get install -y cmake=3.23.2-0kitware1ubuntu20.04.1 cmake-data=3.23.2-0kitware1ubuntu20.04.1 \
+ && cmake --version \
+&& rm -rf /var/lib/apt/lists/* \
+&& apt-get clean
+
# Set Python3 as default
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1
# Python basics
RUN apt-get update && apt-get install -y \
- python3-flake8 \
+ python3-flake8 \
python3-pip \
python3-pytest-cov \
python3-setuptools \
@@ -105,17 +116,6 @@ RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.d
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
-# Upgrade cmake to latest
-RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null \
- && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null \
- && apt-get update \
- && rm /usr/share/keyrings/kitware-archive-keyring.gpg \
- && apt-get install -y kitware-archive-keyring \
- && apt-get install -y cmake \
- && cmake --version \
-&& rm -rf /var/lib/apt/lists/* \
-&& apt-get clean
-
# Install TensorRT and VPI
RUN apt-get update && apt-get install -y \
tensorrt \
@@ -144,16 +144,12 @@ ENV PATH="${PATH}:/usr/local/cuda/bin"
# https://forums.developer.nvidia.com/t/error-importerror-usr-lib-aarch64-linux-gnu-libgomp-so-1-cannot-allocate-memory-in-static-tls-block-i-looked-through-available-threads-already/166494/3
ENV LD_PRELOAD="/usr/lib/aarch64-linux-gnu/libgomp.so.1"
-# Restore using the default Foxy DDS middleware: FastRTPS
-ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp
-
-# Pytorch
-RUN python3 -m pip install -U --extra-index-url https://download.pytorch.org/whl/cu113 \
- torch \
- torchvision \
- torchaudio
+# PyTorch (NV CUDA edition)
+# https://docs.nvidia.com/deeplearning/frameworks/install-pytorch-jetson-platform/index.html
+RUN python3 -m pip install --no-cache \
+ https://developer.download.nvidia.cn/compute/redist/jp/v50/pytorch/torch-1.13.0a0+340c4120.nv22.06-cp38-cp38-linux_aarch64.whl
-# Install Triton server 2.13 from https://github.com/triton-inference-server/server/releases/tag/v2.13.0
+# Install Triton server 2.24 from https://github.com/triton-inference-server/server/releases/tag/v2.24.0
RUN apt-get update && apt-get install -y --no-install-recommends \
autoconf \
automake \
@@ -166,23 +162,28 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
patchelf \
rapidjson-dev \
zlib1g-dev \
-&& rm -rf /var/lib/apt/lists/*
+&& rm -rf /var/lib/apt/lists/* \
+&& apt-get clean
RUN mkdir -p /opt/tritonserver && cd /opt/tritonserver \
- && wget https://github.com/triton-inference-server/server/releases/download/v2.20.0/tritonserver2.20.0-jetpack5.0.tgz \
- && tar -xzvf tritonserver2.20.0-jetpack5.0.tgz \
- && rm tritonserver2.20.0-jetpack5.0.tgz
+ && wget https://github.com/triton-inference-server/server/releases/download/v2.24.0/tritonserver2.24.0-jetpack5.0.2.tgz \
+ && tar -xzvf tritonserver2.24.0-jetpack5.0.2.tgz \
+ && rm tritonserver2.24.0-jetpack5.0.2.tgz
ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/tritonserver/lib"
# Add MQTT binaries and libraries
RUN apt-add-repository ppa:mosquitto-dev/mosquitto-ppa \
- && apt-get update \
- && apt-get install -y mosquitto mosquitto-clients
+ && apt-get update && apt-get install -y \
+ mosquitto \
+ mosquitto-clients \
+&& rm -rf /var/lib/apt/lists/* \
+&& apt-get clean
# Note: VPN cannot be on for pymongo download
RUN python3 -m pip install -U \
- pymongo paho-mqtt
+ pymongo \
+ paho-mqtt
# Core dev libraries
RUN apt-get update && apt-get install -y \
diff --git a/docker/Dockerfile.aarch64.humble.nav2 b/docker/Dockerfile.aarch64.humble.nav2
index 08a4bcfe..4205f0e0 100644
--- a/docker/Dockerfile.aarch64.humble.nav2
+++ b/docker/Dockerfile.aarch64.humble.nav2
@@ -6,4 +6,4 @@
# distribution of this software and related documentation without an express
# license agreement from NVIDIA CORPORATION is strictly prohibited.
-FROM nvcr.io/nvidia/isaac/ros:aarch64-humble-nav2_661a3fb05aba6897468c8ded9fa42c11
+FROM nvcr.io/nvidia/isaac/ros:aarch64-humble-nav2_35120f31b84976ec36009722e16f1524
diff --git a/docker/Dockerfile.humble b/docker/Dockerfile.humble
index 779b3c3d..8cad4950 100644
--- a/docker/Dockerfile.humble
+++ b/docker/Dockerfile.humble
@@ -30,10 +30,8 @@ RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/r
# ROS fundamentals
RUN apt-get update && apt-get install -y \
build-essential \
- cmake \
git \
python3-colcon-common-extensions \
- python3-flake8 \
python3-pip \
python3-pybind11 \
python3-pytest-cov \
@@ -60,10 +58,15 @@ RUN python3 -m pip install -U \
pytest \
setuptools
+# Avoid setup.py and easy_install deprecation warnings caused by colcon and setuptools
+# https://github.com/colcon/colcon-core/issues/454
+ENV PYTHONWARNINGS=ignore:::setuptools.command.install,ignore:::setuptools.command.easy_install,ignore:::pkg_resources
+RUN echo "Warning: Using the PYTHONWARNINGS environment variable to silence setup.py and easy_install deprecation warnings caused by colcon"
+
ENV ROS_DISTRO=humble
ENV ROS_ROOT=/opt/ros/${ROS_DISTRO}
-# Build ROS2 core from source source
+# Build ROS2 core from source
RUN mkdir -p ${ROS_ROOT}/src && \
cd ${ROS_ROOT} && \
# https://answers.ros.org/question/325245/minimal-ros2-installation/?answer=325249#post-id-325249
@@ -115,8 +118,8 @@ RUN cd ${ROS_ROOT} \
--from-paths src \
--rosdistro ${ROS_DISTRO} \
--skip-keys "fastcdr rti-connext-dds-6.0.1 rti-connext-dds-5.3.1 urdfdom_headers libopencv-dev libopencv-contrib-dev libopencv-imgproc-dev python-opencv python3-opencv" \
-&& rm -Rf /var/lib/apt/lists/* \
-&& apt-get clean
+ && rm -Rf /var/lib/apt/lists/* \
+ && apt-get clean
# Build ROS2 source
RUN cd ${ROS_ROOT} \
@@ -137,5 +140,5 @@ RUN apt-get update && mkdir -p ${ROS_ROOT}/src && cd ${ROS_ROOT}/src \
&& rosdep install -y -r --ignore-src --from-paths src --rosdistro ${ROS_DISTRO} \
&& colcon build --merge-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo --packages-up-to-regex negotiated* \
&& rm -Rf src logs build \
-&& rm -rf /var/lib/apt/lists/* \
-&& apt-get clean
+ && rm -rf /var/lib/apt/lists/* \
+ && apt-get clean
diff --git a/docker/Dockerfile.nav2 b/docker/Dockerfile.nav2
index 6ee14f48..d2ea116f 100644
--- a/docker/Dockerfile.nav2
+++ b/docker/Dockerfile.nav2
@@ -12,7 +12,7 @@ FROM ${BASE_IMAGE}
# Install nav2
RUN apt-get update && mkdir -p ${ROS_ROOT}/src && cd ${ROS_ROOT}/src \
&& git clone https://github.com/ros-planning/navigation2.git && cd navigation2 && git checkout humble && cd .. \
- && git clone https://github.com/BehaviorTree/BehaviorTree.CPP.git && cd BehaviorTree.CPP && git checkout master && cd .. \
+ && git clone https://github.com/BehaviorTree/BehaviorTree.CPP.git && cd BehaviorTree.CPP && git checkout a363bdcae88350bc748598a7d2950e300859469c && cd .. \
&& source ${ROS_ROOT}/setup.bash && cd ${ROS_ROOT} \
&& rosdep install -y -r --ignore-src --from-paths src --rosdistro ${ROS_DISTRO} \
&& colcon build --merge-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo --packages-up-to-regex nav2* --packages-ignore nav2_system_tests \
diff --git a/docker/Dockerfile.user b/docker/Dockerfile.user
index 2b84ede7..2a3113eb 100644
--- a/docker/Dockerfile.user
+++ b/docker/Dockerfile.user
@@ -23,7 +23,7 @@ RUN apt-get update && apt-get install -y \
# Reuse triton-server user as 'admin' user if exists
RUN if [ $(getent group triton-server) ]; then \
groupmod --gid ${USER_GID} -n ${USERNAME} triton-server ; \
- usermod -l ${USERNAME} -m -d /home/${USERNAME} triton-server ; \
+ usermod -l ${USERNAME} -u ${USER_UID} -m -d /home/${USERNAME} triton-server ; \
mkdir -p /home/${USERNAME} ; \
sudo chown ${USERNAME}:${USERNAME} /home/${USERNAME} ; \
fi
@@ -44,6 +44,10 @@ RUN mkdir -p /usr/local/bin/scripts
COPY scripts/*entrypoint.sh /usr/local/bin/scripts/
RUN chmod +x /usr/local/bin/scripts/*.sh
+# Copy middleware profiles
+RUN mkdir -p /usr/local/share/middleware_profiles
+COPY middleware_profiles/*profile.xml /usr/local/share/middleware_profiles/
+
ENV USERNAME=${USERNAME}
ENV USER_GID=${USER_GID}
ENV USER_UID=${USER_UID}
diff --git a/docker/Dockerfile.x86_64 b/docker/Dockerfile.x86_64
index 242a7f68..e8fdaede 100644
--- a/docker/Dockerfile.x86_64
+++ b/docker/Dockerfile.x86_64
@@ -51,7 +51,6 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1
# Python basics
RUN apt-get update && apt-get install -y \
- python3-flake8 \
python3-pip \
python3-pybind11 \
python3-pytest-cov \
@@ -78,18 +77,12 @@ RUN apt-get update && apt-get install -y \
python3-opencv \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
-
-# Pytorch
-RUN python3 -m pip install -U --extra-index-url https://download.pytorch.org/whl/cu113 \
- torch \
- torchvision \
- torchaudio
# Python3 (PIP)
RUN python3 -m pip install -U \
argcomplete \
autopep8 \
- flake8 \
+ flake8==4.0.1 \
flake8-blind-except \
flake8-builtins \
flake8-class-newline \
@@ -112,12 +105,13 @@ RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.d
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
-# CMake
-RUN wget -qO - https://apt.kitware.com/keys/kitware-archive-latest.asc | apt-key add - && \
- apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" && \
- apt-get update && \
- apt-get install -y --no-install-recommends --only-upgrade \
- cmake \
+# Upgrade cmake to 3.23.2
+RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null \
+ && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null \
+ && apt-get update \
+ && apt-get update \
+ && apt-get remove -y cmake && apt-get purge -y cmake && apt-get remove -y cmake-data && apt-get purge -y cmake \
+ && apt-get install -y cmake=3.23.2-0kitware1ubuntu20.04.1 cmake-data=3.23.2-0kitware1ubuntu20.04.1 \
&& cmake --version \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
@@ -133,12 +127,18 @@ RUN apt-get update && apt-get install -y \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
+# Pytorch
+RUN python3 -m pip install -U --extra-index-url https://download.pytorch.org/whl/cu113 \
+ torch \
+ torchvision \
+ torchaudio
+
# Install VPI packages
ARG HAS_GPU="true"
RUN if [ "$HAS_GPU" = "true" ]; then \
set -e ; \
apt-key adv --fetch-key https://repo.download.nvidia.com/jetson/jetson-ota-public.asc ; \
- add-apt-repository 'deb http://repo.download.nvidia.com/jetson/x86_64/focal r34.1 main' ; \
+ add-apt-repository 'deb http://repo.download.nvidia.com/jetson/x86_64/focal r35.1 main' ; \
apt-get update ; \
apt-get install libnvvpi2 vpi2-dev ; \
rm -rf /var/lib/apt/lists/* ; \
diff --git a/docker/Dockerfile.x86_64.humble.nav2 b/docker/Dockerfile.x86_64.humble.nav2
index d838e260..1231fdfa 100644
--- a/docker/Dockerfile.x86_64.humble.nav2
+++ b/docker/Dockerfile.x86_64.humble.nav2
@@ -6,4 +6,4 @@
# distribution of this software and related documentation without an express
# license agreement from NVIDIA CORPORATION is strictly prohibited.
-FROM nvcr.io/nvidia/isaac/ros:x86_64-humble-nav2_6ffb6f904c4c6d286b16de5ca662ad5f
+FROM nvcr.io/nvidia/isaac/ros:x86_64-humble-nav2_53c4c553a22864a0675e9b05bb7cf19b
diff --git a/docker/middleware_profiles/rtps_udp_profile.xml b/docker/middleware_profiles/rtps_udp_profile.xml
new file mode 100644
index 00000000..fc2f5da1
--- /dev/null
+++ b/docker/middleware_profiles/rtps_udp_profile.xml
@@ -0,0 +1,30 @@
+
+
+
+
+