librealsense icon indicating copy to clipboard operation
librealsense copied to clipboard

[D555] DDS timeout errors with Nvidia Jetson Orin Nano

Open nvikramraj opened this issue 1 month ago • 10 comments

Real Sense Camera D555 - throwing errors while using Ethernet

The camera works on USB and Ethernet on my laptop with Ubuntu 22.04 and it only works with USB on the jetson.

Instructions followed to set up RealSense SDK:

https://github.com/realsenseai/librealsense/blob/master/doc/installation_jetson.md#4-install-with-debian-packages

Jetson model: NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super OS: Jetpack 6.x R36 (release), REVISION: 4.7, GCID: 42132812, BOARD: generic, EABI: aarch64

Real Sense viewer errors :

realsense-viewer Terminal: 30/11 10:43:54,901 ERROR [281472857192512] (dds-device-impl.cpp:698) throwing: stream 'Infrared_1' options received out of order 30/11 10:43:54,940 ERROR [281472857192512] (dds-device-impl.cpp:698) throwing: stream 'Infrared_2' options received out of order 30/11 10:43:54,974 ERROR [281472857192512] (dds-device-impl.cpp:698) throwing: stream 'Motion' options received out of order Application: 10:58:33 [Error] ./third-party/realdds/src/dds-device.cpp:53 - throwing: [D555_409122301224.203] timeout waiting to get ready 10:58:33 [Error] ./src/dds/rsdds-device-factory.cpp:61 - Discovered DDS device failed to be ready within timeout[D555_409122301224.203] timeout waiting to get ready

rs-dds-config 30/11 10:39:06,218 ERROR [281472875464768] (dds-device-impl.cpp:698) throwing: stream 'Infrared_1' options received out of order 30/11 10:39:06,252 ERROR [281472875464768] (dds-device-impl.cpp:698) throwing: stream 'Infrared_2' options received out of order 30/11 10:39:06,286 ERROR [281472875464768] (dds-device-impl.cpp:698) throwing: stream 'Motion' options received out of order -F- No device found supporting Eth

nvikramraj avatar Nov 30 '25 17:11 nvikramraj

Hi @nvikramraj There is another case at https://github.com/realsenseai/librealsense/issues/14281 that experienced these error messages. The solution in their particular case was to make sure that the MTU value was set to 9000.

MartyG-RealSense avatar Dec 01 '25 11:12 MartyG-RealSense

Hello @MartyG-RealSense , That worked thank you for your support.

nvikramraj avatar Dec 03 '25 05:12 nvikramraj

You are very welcome, @nvikramraj - it's great to hear that you were successful. Thanks very much for the update!

MartyG-RealSense avatar Dec 03 '25 10:12 MartyG-RealSense

Hello @MartyG-RealSense , I have a question about retrieving intrinsic values over Ethernet. In my current pipeline, I obtain the camera intrinsics at runtime, which was straightforward using the PyRealSense package when the camera was connected via USB. After switching to an Ethernet setup, this no longer seems possible. Is there a way to access the intrinsics over Ethernet, or an alternative method I should be using?

Edit: Would I be able to set the resolution of the stream coming in or is it locked to 896x504?

nvikramraj avatar Dec 05 '25 02:12 nvikramraj

On a PoE ethernet connection the intrinsics are accessible with the rs-enumerate-devices tool by launching it in calibration information mode with the command rs-enumerate-devices -c

Once you obtain the intrinsics for a particular resolution (different resolutions have different intrinsics) then it is possible to set the values manually in pyrealsense2 code, as described at https://github.com/realsenseai/librealsense/issues/4061

It is possible to set a resolution with a cfg stream configuration instruction, though you will need to set a resolution supported by PoE. The supported resolutions on PoE are listed below.

Image

MartyG-RealSense avatar Dec 05 '25 11:12 MartyG-RealSense

@MartyG-RealSense , Could you please provide the instructions of how to set the resolution , I'm not able to find any good wikis on how to do a clean resolution change with cfg stream config ?

nvikramraj avatar Dec 07 '25 16:12 nvikramraj

You would place lines like the ones below before the pipeline start line of your script.

cfg= rs.config()
cfg.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30)

pipeline.start (cfg)

Change the 1280, 720 values to the values of the resolution that you want to set.

MartyG-RealSense avatar Dec 07 '25 17:12 MartyG-RealSense

@MartyG-RealSense , the below works with USB but not with Ethernet due to DDS. I'm not able to set the config stream during runtime. Is there a command that I could use to save a stream config for ethernet through USB ?

self.pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30)
profile = self.pipeline.start(config)

nvikramraj avatar Dec 07 '25 17:12 nvikramraj

I will discuss your issue with my RealSense colleagues in the coming week. Thanks very much for your patience.

MartyG-RealSense avatar Dec 07 '25 17:12 MartyG-RealSense

I tested with the SDK's opencv_viewer_example.py example and it works after changing the resolution to 1280x720. (D555 doesn't support 640x480)
https://github.com/realsenseai/librealsense/blob/master/wrappers/python/examples/opencv_viewer_example.py#L31-L32 The stream config happen prior to stream start and cannot be changed during the streaming.

hsuys avatar Dec 08 '25 19:12 hsuys