RealSenseD400 Camera can not work on Jetson Xavier NX

it seems that on first launch ROS2 librealsense node starts , but after the termination the camera device becomes unavailable to the system.
Moreover, it seems that ROS1 node has some errors with the camera that ROS2 node doesn’t have.
Thank you for testing!

could you test once again, please?

xhost +
docker run -it --rm --net=host -e DISPLAY=$DISPLAY --ipc=host --privileged -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest /bin/bash -c '. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz && realsense_ros2_camera'

the latter one might display rviz2 visualization

Got below result.

nvidia@nvidia-desktop:~$ xhost +
xhost: unable to open display “”
nvidia@nvidia-desktop:~$ sudo docker run -it --rm --net=host -e DISPLAY=$DISPLAY --ipc=host --privileged -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest /bin/bash -c ‘. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz && realsense_ros2_camera’
[sudo] password for nvidia:
Unable to find image ‘iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest’ locally
docker: Error response from daemon: pull access denied for iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense, repository does not exist or may require ‘docker login’.
See ‘docker run --help’.

could you try once again, please?

xhost +
docker run -it --rm --net=host -e DISPLAY=$DISPLAY --ipc=host --privileged -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest /bin/bash -c '. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz && realsense_ros2_camera'

nvidia@nvidia-desktop:~$ xhost +
xhost: unable to open display “”
nvidia@nvidia-desktop:~$ sudo docker run -it --rm --net=host -e DISPLAY=$DISPLAY --ipc=host --privileged -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest /bin/bash -c ‘. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz && realsense_ros2_camera’
[sudo] password for nvidia:
Unable to find image ‘iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest’ locally
docker: Error response from daemon: pull access denied for iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense, repository does not exist or may require ‘docker login’.
See ‘docker run --help’.
nvidia@nvidia-desktop:~$ xhost +
xhost: unable to open display “”
nvidia@nvidia-desktop:~$ sudo docker run -it --rm --net=host -e DISPLAY=$DISPLAY --ipc=host --privileged -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest /bin/bash -c ‘. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz && realsense_ros2_camera’
Unable to find image ‘iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest’ locally

latest: Pulling from idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense
3b5e2c02f523: Already exists
b9448035bb0a: Already exists
ec9ea6732d09: Already exists
515b0d7ffbf7: Already exists
7663c88dd173: Already exists
5dd4bd16e931: Already exists
5231bd433c70: Already exists
9e017cdad796: Already exists
0c8ba4b0f40b: Already exists
de2653fc4eda: Already exists
21b3dc12ac76: Already exists
18d3041d2711: Already exists
8b4bed079038: Already exists
efb313fc2a73: Already exists
5c1e867b3d6d: Already exists
c6981e9e205d: Already exists
efe73e4fe4ec: Already exists
c1322bd51ce1: Already exists
22005aac2d63: Already exists
7b4c4e3d7703: Already exists
c12c5d18ac9d: Already exists
6b65ecf6e2a5: Already exists
103a8e098f01: Already exists
b8aaf468fdc1: Already exists
2cbe7a54b032: Already exists
45b7717b7605: Already exists
5045ed7ef1a0: Already exists
cb4b8ab76ce6: Already exists
01c684db930e: Pull complete
d7d10d3081ce: Pull complete
06c67de282f4: Pull complete
4db7b5f541d1: Pull complete
b997e66d7f2e: Pull complete
100890a7519b: Pull complete
dfb9732e4996: Pull complete
c8955f67f031: Pull complete
cf00df31ed5a: Pull complete
ca02dbfcc9fe: Pull complete
Digest: sha256:ca7a8e3b2dae3580590a763f4e0b2b7df46648692262f02761055b10402324ae
Status: Downloaded newer image for iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.

it seems that you are running the execution remotely;
for remote executions there is an issue with forwarding to display.
I shall try to ask someone who has local camera access with local display and keyboard perhaps; As it is not obvious how to get remote X forwarding for this use case.

1 Like

Running on local console.

nvidia@nvidia-desktop:~$ sudo docker run -it --rm --net=host -e DISPLAY=$DISPLAY --ipc=host --privileged -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/rviz2_ros2_librealsense:latest /bin/bash -c ‘. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz && realsense_ros2_camera’
[sudo] password for nvidia:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
[ERROR] [rviz2]: Failed to create an OpenGL context. BadValue (integer parameter out of range for operation)

Hi @da0909, in case your application require a rugged version of Intel Realsense camera; check out FRAMOS’ GigE version of Intel Realsense: NVIDIA and FRAMOS Partnership

It is working on JP4.4.

Could you share image of SD card for Jetson Xavier NX on which you got D435 running? Do you think it will work for D435i version too (vesrion with IMU)?

running like what?
as for now it requires to build the sdk
it is better to build the 38 version from sources,
It also requires to update the firmware to the latest.
Then d435i & d435 will work with realsense examples including but not limited to realsense-viewer & rs-tracking-and-depth
It also works with ROS1 realsense wrapper.
However, I wasnt able to use it on ROS2 foxy, but on dashing.
you may use dockerfile as a reference; or build the sdk with the steps pointed out separately

I did not test it with the cuda argument added, but it should work… If it doesn’t just omit the cmake cuda flag.

wget https://github.com/IntelRealSense/librealsense/archive/v2.38.0.tar.gz && tar -xvf v2.38.0.tar.gz && cd librealsense-2.38.0/ && mkdir build && cd build &&  cmake ../ -DFORCE_RSUSB_BACKEND=true -DBUILD_PYTHON_BINDINGS=true -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=true -DBUILD_WITH_CUDA=true -DBUILD_GRAPHICAL_EXAMPLES=true && make -j8 && make install

Hello everyone,
I follow up this thread in order to get some updates on the combination of the Jetson Xavier NX with RealSense D435i camera. I’m pretty new in the field and I need to chose an hardware platform for my company in order to start developing object recognition tasks and AI. Looking around Intel Realsense cameras and Xavier NX is a nice combo, but then I check for compatibility issues founding @Andrey1984 post. Are there some news on this topic?
Can you suggest other camera-board combos?

Many Thanks,
Gabriele

d400x works on NX, but sometimes it might require powered usb hub

Thank you @Andrey1984, does this mean that the camera power consumption could be in some cases higher than the output power provided by the Jetson NX module, thus requiring an external power supply to overcome such current/power limitations? Is that true even if the NX module is supplied with the proper power supply module?
Thanks

Gabriele