2024-08-16 18:03:07 +08:00
|
|
|
|
## 云台相机快速上手指南
|
|
|
|
|
|
|
|
|
|
### 1. 编译与安装
|
|
|
|
|
|
|
|
|
|
#### 依赖项:
|
|
|
|
|
|
|
|
|
|
安装image_proc包,用于矫正图像。
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo apt-get install ros-noetic-image-proc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 步骤:
|
|
|
|
|
|
|
|
|
|
1. 打开终端并导航到你的 ROS 工作空间目录:
|
|
|
|
|
```bash
|
|
|
|
|
cd ~/catkin_ws
|
|
|
|
|
```
|
|
|
|
|
2. 下载以下三个包到 `src` 目录下:
|
|
|
|
|
- `cv_camera`:用于图像获取和标定数据。
|
|
|
|
|
- `pantilt_camera_serial`:用于云台串口驱动,控制云台转动。
|
|
|
|
|
- `rviz_pantilt_plugin`:云台控制的 RViz 可视化插件。
|
|
|
|
|
|
|
|
|
|
3. 进入 `src` 目录后,使用以下命令编译工作空间:
|
|
|
|
|
```bash
|
|
|
|
|
catkin_make
|
|
|
|
|
```
|
|
|
|
|
如果你使用的是 `catkin_tools`,则可以使用:
|
|
|
|
|
```bash
|
|
|
|
|
catkin build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. Source 你的工作空间:
|
|
|
|
|
```bash
|
|
|
|
|
source ~/catkin_ws/devel/setup.bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. 配置摄像头路径和串口路径
|
|
|
|
|
|
|
|
|
|
#### 步骤:
|
|
|
|
|
|
|
|
|
|
1. 找到你的摄像头设备路径和云台串口路径:
|
|
|
|
|
```bash
|
|
|
|
|
ls /dev/v4l/by-path
|
|
|
|
|
```
|
|
|
|
|
```bash
|
|
|
|
|
ls /dev/ttyUSB*
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 修改 `pantiltcamera.launch` 文件中的 `device_path` 和 `port_name` 参数:
|
|
|
|
|
- `device_path`:摄像头设备路径,如 `/dev/video0`。
|
|
|
|
|
- `port_name`:云台控制的串口路径,如 `/dev/ttyUSB0`。
|
|
|
|
|
|
|
|
|
|
3. 确保当前用户有设备操作权限,使用以下命令添加权限:
|
|
|
|
|
```bash
|
|
|
|
|
sudo usermod -a -G dialout $USER
|
|
|
|
|
sudo chmod a+rw /dev/ttyUSB0
|
|
|
|
|
sudo chmod a+rw /dev/video0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3. 启动Launch文件
|
|
|
|
|
|
|
|
|
|
![ControlPanel](./imgs/control-panel.png)
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
roslaunch pantilt_camera_serial pantiltcamera.launch
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
这将启动云台控制节点,允许你通过话题或服务控制云台的转动。
|
|
|
|
|
|
|
|
|
|
在 RViz 中,你可以通过插件界面实时控制云台,并查看摄像头的图像变化。
|
|
|
|
|
|
|
|
|
|
### 4. ROS节点说明
|
|
|
|
|
|
|
|
|
|
#### 节点功能:
|
|
|
|
|
|
|
|
|
|
- **cv_camera**:用于图像捕获和发布标定数据,提供矫正前后的图像。
|
|
|
|
|
- **pantilt_camera_serial**:通过串口控制云台的转动,发布当前的云台角度,并响应来自其他节点的控制命令。
|
|
|
|
|
- **rviz_pantilt_plugin**:提供 RViz 可视化控制界面,允许用户通过图形界面控制云台,并查看实时图像。
|
|
|
|
|
|
|
|
|
|
#### 话题和服务:
|
|
|
|
|
|
|
|
|
|
- **cv_camera节点**:
|
|
|
|
|
- 发布话题:
|
|
|
|
|
- `/cv_camera/image_raw`:发布原始图像。
|
|
|
|
|
- `/cv_camera/camera_info`:发布相机的标定信息。
|
|
|
|
|
|
|
|
|
|
- **pantilt_camera_serial节点**:
|
|
|
|
|
- 发布话题:
|
|
|
|
|
- `/pantilt_camera_serial/pantilt_angle_info`:发布当前的云台角度信息。
|
|
|
|
|
- 订阅话题:
|
|
|
|
|
- `/pantilt_camera_serial/pantilt_vel`:接收并执行云台速度控制指令。
|
|
|
|
|
- 提供服务:
|
|
|
|
|
- `/pantilt_camera_serial/send_command`:允许用户发送控制命令,如设置云台角度、速度等。
|
|
|
|
|
|
|
|
|
|
- **rviz_pantilt_plugin节点**:
|
|
|
|
|
- 提供一个交互式界面,通过 RViz 可视化控制云台角度,并显示实时图像。
|
|
|
|
|
|
|
|
|
|
按照这些步骤操作,你可以快速上手并有效控制你的云台相机系统。
|