> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.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 或深度模式下工作。此应用通过 topic 生成 RGB 和深度信息。

Orbbec-camera 是 OrbbecSDK ROS2 Wrapper，它在 ROS 2 环境中提供 Orbbec 摄像头的无缝集成。

## `orbbec_camera` 的流水线流程

下图显示了 `orbbec_camera` 的流水线。

<img
  src="https://mintlify.s3.us-west-1.amazonaws.com/qualcomm-staging/zh/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/orbbec-camera-pipeline.svg"
  style={{
width: "90%",
display: "block",
margin: "0 auto" }}
/>

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

## `orbbec_camera` 流水线中使用的 ROS topic

<table>
  <thead>
    <tr>
      <th style={{ width: '20%' }}>ROS topic</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 端口。
* SSH 终端通过 `ssh root@[ip-addr]` 连接到设备。

<Note>
  为获得最佳性能，推荐使用 USB 3.0 端口。当使用 USB 2.0 端口连接时，Orbbec Gemini 335L 摄像头可能不支持某些分辨率（例如 848×480）。
</Note>

## 开箱即用运行 `orbbec_camera`

<Accordion title="试一试">
  1. 为 Orbbec 摄像头安装 udev 规则（一次性前提条件）。

       <Note>
         **注意**

         * 此步骤确保正确的设备权限，并允许系统在不需要 root 权限的情况下访问摄像头。
         * 你只需在新设置的设备上执行此步骤一次。
       </Note>

     ```bash title="SSH Session" theme={null}
     cd /usr/ros/jazzy/share/orbbec_camera/scripts/
     bash install_udev_rules.sh
     udevadm control --reload-rules && udevadm trigger
     ```
  2. 以以下 3 种模式启动 Orbbec 摄像头 335L：

     * 要在设备上设置 QIR SDK 和 ROS2 环境并启动启用了 `RGB` 模块的 `orbbec_camera` ROS 节点，请启动一个新终端并运行以下命令：
       ```bash title="SSH Session" theme={null}
       source /usr/share/qirp-setup.sh
       cd /usr/ros/jazzy/share/orbbec_camera/scripts/
       source ../scripts/dds_config.sh
       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 节点，请启动一个新终端并运行以下命令：
       ```bash title="SSH Session" theme={null}
       source /usr/share/qirp-setup.sh
       cd /usr/ros/jazzy/share/orbbec_camera/scripts/
       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 节点，请启动一个新终端并运行以下命令：
       ```bash title="SSH Session" theme={null}
       source /usr/share/qirp-setup.sh
       cd /usr/ros/jazzy/share/orbbec_camera/scripts/
       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
       ```
</Accordion>
