Orbbec Gemini 2 integration on ctrlX X7 – snap confinement & udev rules issue

Hi everyone,

I’m working on integrating an Orbbec Gemini 335L camera into a Bosch Rexroth ctrlX X7 industrial controller running Ubuntu Core with strict snap confinement. I’m building a ROS2 snap that includes the OrbbecSDK ROS2 wrapper and all its dependencies.

The snap works perfectly on my development laptop (Ubuntu 22.04, ROS2 Humble) where I can install udev rules manually and have full shell access. However, on the ctrlX X7 it fails at camera enumeration/initialization — the device is not recognized.

The core issue seems to be udev rules: on a standard system I would install the Orbbec udev rules (e.g. /etc/udev/rules.d/99-obsensor-libusb.rules) to grant USB access permissions. But on the ctrlX:

  • The OS is locked down (no shell access, strict snap confinement)
  • I cannot manually drop udev rules into /etc/udev/rules.d/
  • Snaps with strict confinement must use declared interfaces (e.g. raw-usb, hardware-observe) to access USB devices

My questions:

  1. Has anyone successfully run an Orbbec camera (Gemini 2 / Gemini 335L or similar) on a Bosch Rexroth ctrlX CORE or X7?
  2. Is there a way to bundle or auto-apply the Orbbec udev rules within a strictly confined snap (e.g. via a snap hook or a gadget snap)?
  3. Does the OrbbecSDK have any fallback mechanism for USB enumeration when standard udev rules are not in place?

Any experience or suggestions would be very appreciated. Thanks!