RealSenseD400 Camera can not work on Jetson Xavier NX

RealSense D400 series camera is the most popular depth camera, which worked well on previous Jeston platform, such as Nano, TX2, Xavier. But there are some problems when the camera work on the latest NX, maybe the JetPack4.4 DP or hardware compatibility. The related issue has been raised on GitHub, could NV engineers give some advices? That will be very helpful!

Does the Nano J4.4DP working?

yes, someone has test nano with jp4.4 dp, and it worked.

Could you check if the v4l2-ctl can find the realSense D400?

v4l2-ctl --list-devices

when plugin d415 camera and run v4l2-ctl, realsense camera can be seen.
‘’’

intel realsense depth ca(usb-3610000.xhci-2.2)
/dev/video0
/dev/video1
/dev/video2
‘’’
after running tha camera api, cameras are lost
‘’’
failed to open /dev/video0: no such file or dir
‘’’

the situation is similar to issue in the github

Could you try to replace the kernel to r32.3.1 to check if the problem cause by kernel regression.

how to replace the kernel on jetson nx, could you give a manual to follow? it seems jp4.3 image can not be flashed on NX

Just copy these two files /lib/modules/4.9.140-tegra/kernel/drivers/gpu/nvgpu/nvgpu.ko and /boot/Image from r32.3.1 to r32.4

Are the two files the same in various Jetson platform? I just need to copy them in nano with jp4.3.

It’s different with Nano’s Image and ko files.

so, where can I get the r32.3 version files. does nx have jp4.3?

You can have J4.3 Xavier Image for NX

I can run the realsense_viewer on NX with J4.4 DP not sure if the firmware update help it or not.

nvidia@nvidia-desktop:~$ rs-fw-update -l

connected devices:

  1. Name: Intel RealSense D435, serial number: 825312071783, update serial number: 824613020664, firmware version: 05.12.05.00, USB type: 3.2

thanks very much! the latest firmware works normally now.

@ShaneCCC,
Could you confirm the camera to work from within docker container with ROS1/ROS2, please? With both? With neither of the two?
ROS2:

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/ros2_realsense /bin/bash -c '. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; realsense_ros2_camera'

ROS1:

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/librealsense1ros /bin/bash -c '. /opt/ros/melodic/setup.bash; source devel/setup.bash; roslaunch realsense2_camera rs_camera.launch'

source Docker files are in the linked thread Intel realsense d435i on NX devkit

Got below error.

root@nvidia-desktop:/home/nvidia# xhost +
access control disabled, clients can connect from any host
root@nvidia-desktop:/home/nvidia# 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 librealsense1ros /bin/bash -c ‘. /opt/ros/melodic/setup.bash; source devel/setup.bash; roslaunch realsense2_camera rs_camera.launch’
Unable to find image ‘librealsense1ros:latest’ locally
docker: Error response from daemon: pull access denied for librealsense1ros, repository does not exist or may require ‘docker login’.
See ‘docker run --help’.

@ShaneCCC
Thank you for your feedback!
It allowed to merge two commands [ pull and run] into single command

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/librealsense1ros /bin/bash -c ‘. /opt/ros/melodic/setup.bash; source devel/setup.bash; roslaunch realsense2_camera rs_camera.launch’ 

will the updated command work?

Got below error.

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/librealsense1ros /bin/bash -c ‘. /opt/ros/melodic/setup.bash; source devel/setup.bash; roslaunch realsense2_camera rs_camera.launch’ [sudo] password for nvidia: Sorry, try again. [sudo] password for nvidia: /opt/ros/melodic/setup.bash: ’\342\200\230.’: command not found
failed to resize tty, using default size
-bash: devel/setup.bash: No such file or directory
-bash: roslaunch: command not found

Thank you for your prompt response;
the error was due to the symbol ’ that reflected as ‘

The correct command is:

 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/librealsense1ros /bin/bash -c '. /opt/ros/melodic/setup.bash; source devel/setup.bash; roslaunch realsense2_camera rs_camera.launch'

for ROS2:

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/ros2_realsense /bin/bash -c '. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; realsense_ros2_camera'

Could you try these two guys above once again, please?
The command below allows to run docker without sudo. Requires restart of terminal though.

sudo usermod -aG docker $USER

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/librealsense1ros /bin/bash -c ‘. /opt/ros/melodic/setup.bash; source devel/setup.bash; roslaunch realsense2_camera rs_camera.launch’
… logging to /root/.ros/log/4cfa2990-a95a-11ea-a0a4-48b02d0350f4/roslaunch-nvidia-desktop-54.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://nvidia-desktop:41187/

SUMMARY

PARAMETERS

  • /camera/realsense2_camera/accel_fps: 250
  • /camera/realsense2_camera/accel_frame_id: camera_accel_frame
  • /camera/realsense2_camera/accel_optical_frame_id: camera_accel_opti…
  • /camera/realsense2_camera/align_depth: False
  • /camera/realsense2_camera/aligned_depth_to_color_frame_id: camera_aligned_de…
  • /camera/realsense2_camera/aligned_depth_to_fisheye1_frame_id: camera_aligned_de…
  • /camera/realsense2_camera/aligned_depth_to_fisheye2_frame_id: camera_aligned_de…
  • /camera/realsense2_camera/aligned_depth_to_fisheye_frame_id: camera_aligned_de…
  • /camera/realsense2_camera/aligned_depth_to_infra1_frame_id: camera_aligned_de…
  • /camera/realsense2_camera/aligned_depth_to_infra2_frame_id: camera_aligned_de…
  • /camera/realsense2_camera/allow_no_texture_points: False
  • /camera/realsense2_camera/base_frame_id: camera_link
  • /camera/realsense2_camera/calib_odom_file:
  • /camera/realsense2_camera/clip_distance: -2.0
  • /camera/realsense2_camera/color_fps: 30
  • /camera/realsense2_camera/color_frame_id: camera_color_frame
  • /camera/realsense2_camera/color_height: 480
  • /camera/realsense2_camera/color_optical_frame_id: camera_color_opti…
  • /camera/realsense2_camera/color_width: 640
  • /camera/realsense2_camera/depth_fps: 30
  • /camera/realsense2_camera/depth_frame_id: camera_depth_frame
  • /camera/realsense2_camera/depth_height: 480
  • /camera/realsense2_camera/depth_optical_frame_id: camera_depth_opti…
  • /camera/realsense2_camera/depth_width: 640
  • /camera/realsense2_camera/device_type:
  • /camera/realsense2_camera/enable_accel: True
  • /camera/realsense2_camera/enable_color: True
  • /camera/realsense2_camera/enable_depth: True
  • /camera/realsense2_camera/enable_fisheye1: True
  • /camera/realsense2_camera/enable_fisheye2: True
  • /camera/realsense2_camera/enable_fisheye: True
  • /camera/realsense2_camera/enable_gyro: True
  • /camera/realsense2_camera/enable_infra1: True
  • /camera/realsense2_camera/enable_infra2: True
  • /camera/realsense2_camera/enable_pointcloud: False
  • /camera/realsense2_camera/enable_sync: False
  • /camera/realsense2_camera/filters:
  • /camera/realsense2_camera/fisheye1_frame_id: camera_fisheye1_f…
  • /camera/realsense2_camera/fisheye1_optical_frame_id: camera_fisheye1_o…
  • /camera/realsense2_camera/fisheye2_frame_id: camera_fisheye2_f…
  • /camera/realsense2_camera/fisheye2_optical_frame_id: camera_fisheye2_o…
  • /camera/realsense2_camera/fisheye_fps: 30
  • /camera/realsense2_camera/fisheye_frame_id: camera_fisheye_frame
  • /camera/realsense2_camera/fisheye_height: 480
  • /camera/realsense2_camera/fisheye_optical_frame_id: camera_fisheye_op…
  • /camera/realsense2_camera/fisheye_width: 640
  • /camera/realsense2_camera/gyro_fps: 400
  • /camera/realsense2_camera/gyro_frame_id: camera_gyro_frame
  • /camera/realsense2_camera/gyro_optical_frame_id: camera_gyro_optic…
  • /camera/realsense2_camera/imu_optical_frame_id: camera_imu_optica…
  • /camera/realsense2_camera/infra1_frame_id: camera_infra1_frame
  • /camera/realsense2_camera/infra1_optical_frame_id: camera_infra1_opt…
  • /camera/realsense2_camera/infra2_frame_id: camera_infra2_frame
  • /camera/realsense2_camera/infra2_optical_frame_id: camera_infra2_opt…
  • /camera/realsense2_camera/infra_fps: 30
  • /camera/realsense2_camera/infra_height: 480
  • /camera/realsense2_camera/infra_width: 640
  • /camera/realsense2_camera/initial_reset: False
  • /camera/realsense2_camera/json_file_path:
  • /camera/realsense2_camera/linear_accel_cov: 0.01
  • /camera/realsense2_camera/odom_frame_id: camera_odom_frame
  • /camera/realsense2_camera/pointcloud_texture_index: 0
  • /camera/realsense2_camera/pointcloud_texture_stream: RS2_STREAM_COLOR
  • /camera/realsense2_camera/pose_frame_id: camera_pose_frame
  • /camera/realsense2_camera/pose_optical_frame_id: camera_pose_optic…
  • /camera/realsense2_camera/publish_odom_tf: True
  • /camera/realsense2_camera/publish_tf: True
  • /camera/realsense2_camera/rosbag_filename:
  • /camera/realsense2_camera/serial_no:
  • /camera/realsense2_camera/tf_publish_rate: 0.0
  • /camera/realsense2_camera/topic_odom_in: odom_in
  • /camera/realsense2_camera/unite_imu_method:
  • /camera/realsense2_camera/usb_port_id:
  • /rosdistro: melodic
  • /rosversion: 1.14.5

NODES
/camera/
realsense2_camera (nodelet/nodelet)
realsense2_camera_manager (nodelet/nodelet)

auto-starting new master
process[master]: started with pid [64]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 4cfa2990-a95a-11ea-a0a4-48b02d0350f4
process[rosout-1]: started with pid [75]
started core service [/rosout]
process[camera/realsense2_camera_manager-2]: started with pid [82]
[ INFO] [1591601594.250968059]: Initializing nodelet with 2 worker threads.
process[camera/realsense2_camera-3]: started with pid [83]
[ INFO] [1591601595.148787481]: RealSense ROS v2.2.13
[ INFO] [1591601595.148919226]: Running with LibRealSense v2.32.1
[ INFO] [1591601595.200532185]:
[ INFO] [1591601595.678417039]: Device with serial number 825312071783 was found.

[ INFO] [1591601595.678666705]: Device with physical ID 2-3.2-3 was found.
[ INFO] [1591601595.678816562]: Device with name Intel RealSense D435 was found.
[ INFO] [1591601595.681712039]: Device with port number 2-3.2 was found.
[ INFO] [1591601595.696257619]: getParameters…
[ INFO] [1591601595.837237192]: setupDevice…
[ INFO] [1591601595.839596249]: JSON file is not provided
[ INFO] [1591601595.841406855]: ROS Node Namespace: camera
[ INFO] [1591601595.843275669]: Device Name: Intel RealSense D435
[ INFO] [1591601595.844972865]: Device Serial No: 825312071783
[ INFO] [1591601595.846097162]: Device physical port: 2-3.2-3
[ INFO] [1591601595.847552788]: Device FW version: 05.12.05.00
[ INFO] [1591601595.848972959]: Device Product ID: 0x0B07
[ INFO] [1591601595.851522866]: Enable PointCloud: Off
[ INFO] [1591601595.852831580]: Align Depth: Off
[ INFO] [1591601595.854155141]: Sync Mode: Off
[ INFO] [1591601595.855578896]: Device Sensors:
[ INFO] [1591601595.857146844]: Stereo Module was found.
[ INFO] [1591601595.858564518]: RGB Camera was found.
[ INFO] [1591601595.860049265]: (Fisheye, 0) sensor isn’t supported by current device! – Skipping…
[ INFO] [1591601595.861430139]: (Fisheye, 1) sensor isn’t supported by current device! – Skipping…
[ INFO] [1591601595.863235017]: (Fisheye, 2) sensor isn’t supported by current device! – Skipping…
[ INFO] [1591601595.864654867]: (Gyro, 0) sensor isn’t supported by current device! – Skipping…
[ INFO] [1591601595.866020733]: (Accel, 0) sensor isn’t supported by current device! – Skipping…
[ INFO] [1591601595.867431720]: (Pose, 0) sensor isn’t supported by current device! – Skipping…
[ INFO] [1591601595.868868466]: num_filters: 0
[ INFO] [1591601595.870311741]: Setting Dynamic reconfig parameters.
[ INFO] [1591601601.918476182]: Done Setting Dynamic reconfig parameters.
[ INFO] [1591601601.981960461]: depth stream is enabled - width: 640, height: 480, fps: 30, Format: Z16
[ INFO] [1591601601.982609874]: infra1 stream is enabled - width: 640, height: 480, fps: 30, Format: Y8
[ INFO] [1591601601.983321367]: infra2 stream is enabled - width: 640, height: 480, fps: 30, Format: Y8
[ INFO] [1591601602.075757700]: color stream is enabled - width: 640, height: 480, fps: 30, Format: RGB8
[ INFO] [1591601602.075952901]: setupPublishers…
[ INFO] [1591601602.085389003]: Expected frequency for depth = 30.00000
[ INFO] [1591601602.186371704]: Expected frequency for infra1 = 30.00000
[ INFO] [1591601602.248021761]: Expected frequency for infra2 = 30.00000
[ INFO] [1591601602.309479272]: Expected frequency for color = 30.00000
[ INFO] [1591601602.424839167]: setupStreams…
[ INFO] [1591601602.553719738]: insert Depth to Stereo Module
[ INFO] [1591601602.556525359]: insert Color to RGB Camera
[ INFO] [1591601602.558680159]: insert Infrared to Stereo Module
[ INFO] [1591601602.560987440]: insert Infrared to Stereo Module
[ INFO] [1591601602.859537621]: SELECTED BASE:Depth, 0
[ INFO] [1591601602.923007659]: RealSense Node Is Up!
08/06 00:33:22,965 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:22,974 WARNING [547130171776] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: No data available, number: 61
08/06 00:33:22,994 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,026 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,035 WARNING [547130171776] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: No data available, number: 61
08/06 00:33:23,059 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,081 ERROR [546903667072] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,092 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,112 ERROR [546903667072] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,119 WARNING [547130171776] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: No data available, number: 61
08/06 00:33:23,125 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,144 ERROR [546903667072] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!
08/06 00:33:23,158 ERROR [546442297728] (synthetic-stream.cpp:48) Exception was thrown during user processing callback!

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/ros2_realsense /bin/bash -c ‘. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; realsense_ros2_camera’
[sudo] password for nvidia:
[INFO] [RealSenseCameraNode]: RealSense ROS v2. 0.1
[INFO] [RealSenseCameraNode]: Running with LibRealSense v2.16.5
[INFO] [RealSenseCameraNode]: getParameters…
[INFO] [RealSenseCameraNode]: setupDevice…
[INFO] [RealSenseCameraNode]: Device Name: Intel RealSense D435
[INFO] [RealSenseCameraNode]: Device Serial No: 825312071783
[INFO] [RealSenseCameraNode]: Device FW version: 05.12.05.00
[INFO] [RealSenseCameraNode]: Device Product ID: 0B07
[INFO] [RealSenseCameraNode]: Sync Mode: On
[INFO] [RealSenseCameraNode]: Device Sensors:
[INFO] [RealSenseCameraNode]: Stereo Module was found.
[INFO] [RealSenseCameraNode]: RGB Camera was found.
[INFO] [RealSenseCameraNode]: Fisheye sensor isn’t supported by current device! – Skipping…
[INFO] [RealSenseCameraNode]: Gyro sensor isn’t supported by current device! – Skipping…
[INFO] [RealSenseCameraNode]: Accel sensor isn’t supported by current device! – Skipping…
[INFO] [RealSenseCameraNode]: setupPublishers…
[INFO] [RealSenseCameraNode]: setupStreams…
[INFO] [RealSenseCameraNode]: depth stream is enabled - width: 640, height: 480, fps: 30
[INFO] [RealSenseCameraNode]: infra1 stream is enabled - width: 640, height: 480, fps: 30
[INFO] [RealSenseCameraNode]: infra2 stream is enabled - width: 640, height: 480, fps: 30
[INFO] [RealSenseCameraNode]: color stream is enabled - width: 640, height: 480, fps: 30
[INFO] [RealSenseCameraNode]: RealSense Node Is Up!

08/06 00:38:32,775 ERROR [547109052192] (source.cpp:127) Exception was thrown during user callback!

^CInterrupt Signal is received! Terminate RealSense Node…
^Cnvidia@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 -ap-add SYS_PTRACE iad.ocir.io/idso6d7wodhe/jetson_nx/ros2_realsense /bin/bash -c ‘. /opt/ros/dashing/setup.bash; source ~/install/local_setup.bash; realsense_ros2_camera’
[INFO] [RealSenseCameraNode]: RealSense ROS v2. 0.1
[INFO] [RealSenseCameraNode]: Running with LibRealSense v2.16.5
[INFO] [RealSenseCameraNode]: getParameters…
[INFO] [RealSenseCameraNode]: setupDevice…
[ERROR] [RealSenseCameraNode]: No RealSense devices were found! Terminate RealSense Node…
/bin/bash: line 1: 1006 Segmentation fault (core dumped) realsense_ros2_camera