[D555] DDS timeout errors with Nvidia Jetson Orin Nano
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
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.
Hello @MartyG-RealSense , That worked thank you for your support.
You are very welcome, @nvikramraj - it's great to hear that you were successful. Thanks very much for the update!
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?
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.
@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 ?
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 , 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)
I will discuss your issue with my RealSense colleagues in the coming week. Thanks very much for your patience.
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.