autolabor-c1-doc/node/opencv.md

108 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2024-08-16 18:08:33 +08:00
## cv_camera
2024-08-16 18:03:07 +08:00
### 简介
cv_camera节点采用OpenCV捕获视频设备发布图像和相机信息话题。
驱动包中提供了Autolabor云台相机的标定参数和原始图像。
用户可直接启动launch查看矫正前后的数据。
如果你在寻找 ROS2 驱动程序,请查看 [这里](https://github.com/Kapernikov/cv_camera)。
### 使用方法
#### 1、依赖项
安装image_proc包用于矫正图像。
```bash
sudo apt-get install ros-noetic-image-proc
```
#### 2、编译和安装
首先,将这个包克隆到你的 ROS 工作空间的 `src` 目录下,然后使用以下命令编译:
```bash
cd ~/catkin_ws # 或你的工作空间目录
catkin_make # 或使用 catkin build如果你使用 catkin_tools
```
#### 3、修改launch文件
`cv_camera.launch` 文件中,修改 `device_path` 参数。
可以通过以下命令查看设备路径:
```bash
ls /dev/v4l/by-path
```
#### 4、启动launch文件
使用以下命令启动系统:
```bash
roslaunch cv_camera camera1920.launch
```
该launch文件会启动一个节点发布分辨率为1920x1080的图像以及矫正后的图像。
### 文件说明
- launch文件夹
- camera1280.launch发布分辨率为1280x720的图像以及矫正后的图像。
- camera1920.launch发布分辨率为192x1080的图像以及矫正后的图像。
- camera3840.launch发布分辨率为3840x2160的图像以及矫正后的图像。
- calibrationdata文件夹
- 1280x720.yaml 分辨率为1280x720的相机标定参数。
- 1920x1080.yaml分辨率为1920x1080的相机标定参数。
- 3840x2160.yaml分辨率为3840x2160的相机标定参数。
- 12880x720.tar.gz分辨率为1280x720的标定图像。
- 1920x1080.gz分辨率为1920x1080的标定图像。
- 3840x2160.gz分辨率为3840x2160的标定图像。
### 发布的话题
* `~image_raw` (*sensor_msgs/Image*)
* `~camera_info` (*sensor_msgs/CameraInfo*)
### 服务
* `~set_camera_info` (*sensor_msgs/SetCameraInfo*)
### 参数
* `~rate` (*double*, 默认值: 30.0) 发布频率 [Hz]。
* `~device_id` (*int*, 默认值: 0) 捕获设备 ID。
* `~device_path` (*string*, 默认值: "") 相机设备文件路径,例如 `/dev/video0`
* `~frame_id` (*string*, 默认值: "camera") 消息头的 `frame_id`
* `~image_width` (*int*) 尝试设置捕获图像的宽度。
* `~image_height` (*int*) 尝试设置捕获图像的高度。
* `~camera_info_url` (*string*) 相机信息 yaml 文件的 URL。
* `~file` (*string*, 默认值: "") 如果不为空,则使用电影文件而不是设备。
* `~capture_delay` (*double*, 默认值: 0) 捕获和接收图像的估计持续时间。
* `~rescale_camera_info` (*bool*, 默认值: false) 自动缩放相机校准信息。
* `~camera_name` (*bool*, 默认值: 与 `frame_id` 相同) `camera_info_manager` 的相机名称。
支持 CV_CAP_PROP_*,通过以下参数。
* `~cv_cap_prop_pos_msec` (*double*)
* `~cv_cap_prop_pos_avi_ratio` (*double*)
* `~cv_cap_prop_frame_width` (*double*)
* `~cv_cap_prop_frame_height` (*double*)
* `~cv_cap_prop_fps` (*double*)
* `~cv_cap_prop_fourcc` (*double*)
* `~cv_cap_prop_frame_count` (*double*)
* `~cv_cap_prop_format` (*double*)
* `~cv_cap_prop_mode` (*double*)
* `~cv_cap_prop_brightness` (*double*)
* `~cv_cap_prop_contrast` (*double*)
* `~cv_cap_prop_saturation` (*double*)
* `~cv_cap_prop_hue` (*double*)
* `~cv_cap_prop_gain` (*double*)
* `~cv_cap_prop_exposure` (*double*)
* `~cv_cap_prop_convert_rgb` (*double*)
* `~cv_cap_prop_rectification` (*double*)
* `~cv_cap_prop_iso_speed` (*double*)