-
Notifications
You must be signed in to change notification settings - Fork 124
Description
Describe the bug I am trying to run the Orbbec Gemini 336L on an NVIDIA Jetson Orin NX (JetPack 6 / Ubuntu 22.04) using ROS 2 Humble. Despite using a powered USB 3.0 Hub (5V/4A) and blacklisting uvcvideo, the camera fails to initialize. The ROS 2 launch file hangs at Loaded node, and dmesg shows config 1 has an invalid descriptor of length 0.
To Reproduce
Hardware Setup:
NVIDIA Jetson Orin NX (JetPack 6.x / L4T R36.x).
Orbbec Gemini 336L connected via a Powered USB 3.0 Hub (j5create JUH377).
Software Setup:
ROS 2 Humble.
OrbbecSDK_ROS2 (v2-main branch).
Installed SDK via deb (tried both v2.4.8 and v2.5.5).
Execution:
Blacklist uvcvideo via /etc/modprobe.d/ and extlinux.conf.
Run: ros2 launch orbbec_camera gemini_330_series.launch.py depth_width:=640 depth_height:=480 depth_fps:=30 color_width:=640 color_height:=480 color_fps:=30
Expected behavior The camera should start streaming ([INFO] ... Start stream), and topics should be published.
Actual behavior The launch process hangs indefinitely after loading the node. Kernel logs indicate a USB descriptor failure.
Logs
- ROS 2 Launch Log (Hangs):
Bash
[INFO] [launch]: All log files can be found below ...
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container-1]: process started with pid [5564]
[component_container-1] [INFO] ... [camera.camera_container]: Load Library: .../liborbbec_camera.so
[component_container-1] [INFO] ... [camera.camera_container]: Found class: rclcpp_components::NodeFactoryTemplate<orbbec_camera::OBCameraNodeDriver>
[component_container-1] [INFO] ... [camera.camera_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<orbbec_camera::OBCameraNodeDriver>
[component_container-1] [INFO] ... [camera.camera]: setUvcBackendType:libuvc
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/camera/camera' in container '/camera/camera_container'
(Hangs here forever, no "Start stream" message)
- Kernel Log (dmesg):
Bash
[ 2067.534534] usb 2-1.1.1: new SuperSpeed USB device number 7 using tegra-xusb
[ 2067.559007] usb 2-1.1.1: config 1 has an invalid descriptor of length 0, skipping remainder of the config
[ 2067.559018] usb 2-1.1.1: config 1 has 1 interface, different from the descriptor's value: 7
[ 2067.614022] usb 2-1.1.1: Found UVC 1.50 device Orbbec Gemini 336L (2bc5:0807)
[ 2067.614041] usb 2-1.1.1: No valid video chain found.
3. lsusb -t (Device recognized as 5000M but no driver):
Bash
|__ Port 3: Dev 5, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 6, If 0, Class=Video, Driver=, 5000M
Environment (please complete the following information):
Camera: Orbbec Gemini 336L
OS: Ubuntu 22.04 (JetPack 6.x / Kernel 5.15)
Platform: NVIDIA Jetson Orin NX
ROS Distro: Humble
SDK Version: Tested v2.4.8 and v2.5.5 (ARM64)
Additional context
Cross-check: The camera and USB cable work perfectly on a Windows PC (USB 3.2, 30FPS) using Orbbec Viewer.
Power: I am using a dedicated powered USB Hub (5V/4A) to prevent power issues.
Troubleshooting tried:
Disabled USB autosuspend.
Blacklisted uvcvideo.
Tried different USB ports.
Re-plugged the device multiple times.