Skip to main content
The orbbec_camera sample application enables the Orbbec Gemini camera 335L to work in RGB or depth mode. This application generates the RGB and depth information by topics. Orbbec-camera is the OrbbecSDK ROS2 Wrapper, which provides seamless integration of Orbbec cameras within the ROS 2 environment.

Pipeline flow for orbbec_camera

The following figure shows the pipeline of orbbec_camera.

Figure : The orbbec-camera pipeline

ROS topics used in the orbbec_camera pipeline

ROS topicMessage typePublished/Subscribed byDescription
/camera/color/camera_infosensor_msgs::msg::CameraInfoPublished by orbbec_cameraPublishes the color camera information.
/camera/color/image_rawsensor_msgs::msg::ImagePublished by orbbec_cameraPublishes the color image.
/camera/depth/camera_infosensor_msgs::msg::CameraInfoPublished by orbbec_cameraPublishes the depth camera information.
/camera/depth/image_rawsensor_msgs::msg::ImagePublished by orbbec_cameraPublishes the depth image.
/camera/depth/pointssensor_msgs::msg::PointCloud2Published by orbbec_cameraPublishes the depth point cloud.
/camera/gyro_accel/samplesensor_msgs::msg::ImuPublished by orbbec_cameraPublishes the gyroscope and accelerometer data.

Prerequisites

A USB 3.0 port is recommended for best performance. When connected using a USB 2.0 port, the Orbbec Gemini 335L camera may not support certain resolutions (for example, 848×480).

Run out-of-the-box orbbec_camera

  1. Install the udev rules for the Orbbec camera (one-time prerequisite).
    Note
    • This step ensures proper device permissions and allows the system to access the camera without requiring root privileges.
    • You need to perform this step only once on a newly setup device.
    (ssh) cd /usr/ros/jazzy/share/orbbec_camera/scripts/
    (ssh) bash install_udev_rules.sh
    (ssh) udevadm control --reload-rules && udevadm trigger
    
  2. Launch Orbbec camera 335L in the following 3 modes:
    • To set up QIR SDK and ROS2 environment on the device and start the orbbec_camera ROS node with the RGB module enabled, start a new terminal and run the following commands:
      (ssh) source /usr/share/qirp-setup.sh
      (ssh) cd /usr/ros/jazzy/share/orbbec_camera/scripts/
      (ssh) source ../scripts/dds_config.sh
      (ssh) ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=false enable_depth:=false enable_point_cloud:=false color_width:=848 color_height:=480 color_fps:=30 color_qos:=default
      
    • To set up QIR SDK and ROS2 environment on the device and start the orbbec_camera ROS node with the Depth module enabled, start a new terminal and run the following commands:
      (ssh) source /usr/share/qirp-setup.sh
      (ssh) cd /usr/ros/jazzy/share/orbbec_camera/scripts/
      (ssh) ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=true enable_depth:=true enable_sync:=true enable_point_cloud:=false color_width:=848 color_height:=480 color_fps:=30 depth_fps:=30
      
    • To set up QIR SDK and ROS2 environment on the device and start the orbbec_camera ROS node with the IMU module enabled, start a new terminal and run the following commands:
      (ssh) source /usr/share/qirp-setup.sh
      (ssh) cd /usr/ros/jazzy/share/orbbec_camera/scripts/
      (ssh) ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=false enable_depth:=false enable_point_cloud:=false color_width:=640 color_height:=360 color_fps:=30 color_qos:=default enable_accel:=true enable_gyro:=true enable_sync_output_accel_gyro:=true