Skip to content

[Bug] Gemini 336L fails to initialize on Jetson Orin NX (JetPack 6.x) - Invalid Descriptor / No valid video chain #164

@wei920731-dot

Description

@wei920731-dot

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

  1. 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)

  1. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions