> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用 orbbec_camera 启用 Orbbec Gemini 335L

`orbbec_camera` 示例应用使 Orbbec Gemini 相机 335L 能够以 RGB 或深度模式工作。该应用通过话题生成 RGB 和深度信息。

Orbbec-camera 是 OrbbecSDK ROS2 Wrapper，可在 ROS 2 环境中无缝集成 Orbbec 相机。

## `orbbec_camera` 的管线流程

下图显示了 `orbbec_camera` 的管线。

<img
  src="https://mintcdn.com/qualcomm-prod/IP0o0G5fE3MFmCJ8/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/orbbec-camera-pipeline.svg?fit=max&auto=format&n=IP0o0G5fE3MFmCJ8&q=85&s=7dcbcfe2c0b0336a343e4e0df59b53ec"
  style={{
width: "90%",
display: "block",
margin: "0 auto" }}
  width="562"
  height="322"
  data-path="SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/orbbec-camera-pipeline.svg"
/>

<p style={{ textAlign: 'center', fontWeight: 'bold' }}>
  图：orbbec-camera 管线
</p>

## `orbbec_camera` 管线中使用的 ROS 话题

<table>
  <thead>
    <tr>
      <th style={{ width: '20%' }}>ROS 话题</th>
      <th style={{ width: '25%' }}>消息类型</th>
      <th style={{ width: '20%' }}>发布/订阅者</th>
      <th style={{ width: '35%' }}>说明</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`/camera/color/camera_info`</td>
      <td>`sensor_msgs::msg::CameraInfo`</td>
      <td>由 `orbbec_camera` 发布</td>
      <td>发布彩色相机信息。</td>
    </tr>

    <tr>
      <td>`/camera/color/image_raw`</td>
      <td>`sensor_msgs::msg::Image`</td>
      <td>由 `orbbec_camera` 发布</td>
      <td>发布彩色图像。</td>
    </tr>

    <tr>
      <td>`/camera/depth/camera_info`</td>
      <td>`sensor_msgs::msg::CameraInfo`</td>
      <td>由 `orbbec_camera` 发布</td>
      <td>发布深度相机信息。</td>
    </tr>

    <tr>
      <td>`/camera/depth/image_raw`</td>
      <td>`sensor_msgs::msg::Image`</td>
      <td>由 `orbbec_camera` 发布</td>
      <td>发布深度图像。</td>
    </tr>

    <tr>
      <td>`/camera/depth/points`</td>
      <td>`sensor_msgs::msg::PointCloud2`</td>
      <td>由 `orbbec_camera` 发布</td>
      <td>发布深度点云。</td>
    </tr>

    <tr>
      <td>`/camera/gyro_accel/sample`</td>
      <td>`sensor_msgs::msg::Imu`</td>
      <td>由 `orbbec_camera` 发布</td>
      <td>发布陀螺仪和加速度计数据。</td>
    </tr>
  </tbody>
</table>

## 前提条件

* 您已根据[为运行示例应用设置环境](./set-up-env-for-sample-app)完成了**设置设备**。
* 连接 Orbbec Gemini 335L 相机的 USB 端口。

<Note>
  建议使用 USB 3.0 端口以获得最佳性能。使用 USB 2.0 端口连接时，Orbbec Gemini 335L 相机可能不支持某些分辨率（例如 848×480）。
</Note>

## 运行开箱即用的 `orbbec_camera`

1. 为 Orbbec 相机安装 udev 规则（一次性前提条件）。

   <Note>
     **注意**

     * 此步骤可确保正确的设备权限，并允许系统在无需 root 权限的情况下访问相机。
     * 此步骤仅需在新设置的设备上执行一次。
   </Note>

   ```cpp theme={null}
   (ssh) cd /usr/ros/jazzy/share/orbbec_camera/scripts/
   (ssh) bash install_udev_rules.sh
   (ssh) udevadm control --reload-rules && udevadm trigger
   ```
2. 以以下 3 种模式启动 Orbbec 相机 335L：

   * 要在设备上设置 QIR SDK 和 ROS2 环境并启动启用 `RGB` 模块的 `orbbec_camera` ROS 节点，请启动一个新终端并运行以下命令：
     ```cpp theme={null}
     (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
     ```
   * 要在设备上设置 QIR SDK 和 ROS2 环境并启动启用 `Depth` 模块的 `orbbec_camera` ROS 节点，请启动一个新终端并运行以下命令：
     ```cpp theme={null}
     (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
     ```
   * 要在设备上设置 QIR SDK 和 ROS2 环境并启动启用 `IMU` 模块的 `orbbec_camera` ROS 节点，请启动一个新终端并运行以下命令：
     ```cpp theme={null}
     (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
     ```
