Files
OrbbecSDK_ROS2/docs/zh/source/camera_devices/3_quickstarts/quickstart.md
T

127 lines
2.7 KiB
Markdown
Raw Normal View History

2025-10-19 16:20:38 +08:00
## ROS 包快速入门
### 简介
本节提供 Orbbec ROS 2 包装器的快速入门指南。
您将学习如何:
* 启动相机节点。
* 在 **RViz2** 中可视化深度/彩色流。
* 使用 **ROS 2 CLI 工具**与话题和服务交互。
---
### 构建您的第一个相机应用
#### 步骤 1:配置 ROS 2 和工作空间环境
确保已配置 ROS 2 和工作空间环境:
```bash
source /opt/ros/$ROS_DISTRO/setup.bash
```
源码构建需要
```bash
2025-10-19 16:20:38 +08:00
source ~/ros2_ws/install/setup.bash
```
#### 步骤 2:启动相机节点
- 在终端 1 中
```bash
. ./install/setup.bash
ros2 run orbbec_camera list_devices_node #检查相机是否已连接
ros2 launch orbbec_camera gemini_330_series.launch.py # 或其他启动文件,见下表
```
如果您连接了多个相机,可以指定**序列号**:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py serial_number:=<您的相机序列号>
```
#### 步骤 3:在 RViz2 中可视化
启动 RViz2 并加载默认配置:
- 在终端 2 中
```bash
rviz2
```
* 添加一个 **Image** 显示,将话题设置为 `/camera/color/image_raw`。
* 为 `/camera/depth/image_raw` 添加另一个 **Image** 显示。
* 可选:为 `/camera/depth/points` 添加 **PointCloud2** 显示。
现在您应该能在 RViz2 中看到彩色流、深度流和 3D 点云。
---
### 示例功能
节点运行后,尝试一些 ROS 2 CLI 命令:
#### 列出可用的话题/服务/参数
```bash
ros2 topic list
ros2 service list
ros2 param list
```
#### 回显话题
查看深度相机数据:
```bash
ros2 topic echo /camera/depth/camera_info
```
#### 调用服务
例如,获取设备信息:
```bash
ros2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo '{}'
```
#### 使用 rosbag2 录制
```bash
ros2 bag record /camera/color/image_raw /camera/depth/image_raw
```
#### 使用 SDK bag 录制和回放
SDK bag 会通过 Orbbec SDK 录制设备数据,适合后续用 wrapper 作为回放设备重新启动。启动时录制:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py bag_record_filename:=/tmp/orbbec_record.bag
```
也可以在节点运行时通过服务开始或停止录制:
```bash
ros2 service call /camera/set_bag_recording orbbec_camera_msgs/srv/SetBagRecording "{enable: true, file_path: '/tmp/orbbec_record.bag'}"
```
```bash
ros2 service call /camera/set_bag_recording orbbec_camera_msgs/srv/SetBagRecording "{enable: false, file_path: ''}"
```
回放 SDK bag:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py bag_filename:=/tmp/orbbec_record.bag
```
如果需要循环回放:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py bag_filename:=/tmp/orbbec_record.bag bag_loop:=true
```