Cannot install TensorRT 8.x on Isaac ROS 3.1 (Jetson Orin NX with Jetpack 6.0)

I am using ISAAC ROS 3.1 (isaac_ros_common v3.1.0), trying to run inference with isaac_ros_tensorrt on a model suited for tensorrt 8. Since I rebuild the docker image a few weeks ago, tensorrt in the docker is on version 10. When trying to build the isaac_ros_tensorrt package I get a missing library error (nvcaffe_parser).
After some research I found out that nvcaffe_parser is deprecated since tensorrt 10. Removing this from /workspaces/isaac_ros-dev/src/isaac_ros_common/isaac_ros_common/cmake/modules/FindTENSORRT.cmake alongside nvparsers (same issue I believe):

find_trt_library(nvinfer)
find_trt_library(nvinfer_plugin)
# find_trt_library(nvcaffe_parser)
find_trt_library(nvonnxparser)
# find_trt_library(nvparsers)

results in another error during build:

admin@jonx:/workspaces/isaac_ros-dev$ cd ${ISAAC_ROS_WS}/ &&    colcon build --symlink-install --packages-up-to isaac_ros_tensor_rt
[1.091s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
	'isaac_ros_common' is in: /workspaces/isaac_ros-dev/install/isaac_ros_common, /opt/ros/humble
	'isaac_ros_test' is in: /workspaces/isaac_ros-dev/install/isaac_ros_test, /opt/ros/humble
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.
 
If you understand the risks and want to override a package anyways, add the following to the command line:
	--allow-overriding isaac_ros_common isaac_ros_test
 
This may be promoted to an error in a future release of colcon-override-check.
Starting >>> isaac_ros_common
Starting >>> isaac_ros_test
Finished <<< isaac_ros_common [1.09s]                                                         
Starting >>> gxf_isaac_tensor_rt
--- stderr: gxf_isaac_tensor_rt                                                             
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find TENSORRT: Found unsuitable version "..", but required is at
  least "8" (found /usr/include/aarch64-linux-gnu)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:592 (_FPHSA_FAILURE_MESSAGE)
  /workspaces/isaac_ros-dev/install/isaac_ros_common/share/isaac_ros_common/cmake/modules/FindTENSORRT.cmake:68 (find_package_handle_standard_args)
  CMakeLists.txt:30 (find_package)
 
 
---
Failed   <<< gxf_isaac_tensor_rt [1.25s, exited with code 1]
Aborted  <<< isaac_ros_test [2.72s]                     
 
Summary: 1 package finished [3.64s]
  1 package failed: gxf_isaac_tensor_rt
  1 package aborted: isaac_ros_test
  1 package had stderr output: gxf_isaac_tensor_rt
  1 package not processed

So now im wondering if there is a way, maybe a different base image wich I can use, which uses tensorrt 8. Or is there a way to specify tensorrt 8 in the dockerfile?

Please tell me if I should provide any more information. Thanks in advance :)

Hi @a.wolff

Welcome to the Isaac ROS forum.

JetPack 6.0 includes TensorRT 8.6.2. Which shall be the same version in docker image built by Isaac ROS 3.1.

If you confirmed that TensorRT version in installed JetPack 6.0 is 8.6.2, you can try to delete all the docker images as well as isaac workspace. And pull isaac_ros_common then launch docker container again.

Let me know,
Best,
Ahung