Files
yq_2026/src/rm_hardware_driver/ros2_hik_camera
ChenYouYuan 52257cf15c init
2026-03-23 06:58:09 +08:00
..
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00
2026-03-23 06:58:09 +08:00

ros2_hik_camera

A ROS2 packge for Hikvision USB3.0 industrial camera

Usage

ros2 launch hik_camera hik_camera.launch.py

离线视频回放VideoPlayerNode用于没有相机时跑全链路/复现):

ros2 run hik_camera video_player_node --ros-args --params-file <your_video_player_params.yaml>

也可以在整套工程里通过 rm_bringup 启动(推荐),此时相机参数通常来自:

  • rm_bringup/config/node_params/camera_driver_params.yaml

注意rm_bringup 里加载的是自己的参数文件hik_camera 包内的 config 主要用于“单独启动 hik_camera.launch.py”时测试。

Params

以下参数均为 camera_driver 节点的 ROS 参数YAML 中写在 /**/ros__parameters 下面即可):

  • camera_info_url:标定文件 URLpackage://rm_bringup/config/camera_info.yaml
  • camera_name:相机名字标签(主要给 CameraInfo/工具识别用,不影响取图)
  • camera_frame_id:发布图像的 frame_id默认 camera_optical_frame
  • use_sensor_data_qos:是否使用 sensor_data QoS

成像控制:

  • exposure_time曝光时间单位us支持运行时 ros2 param set
  • gain:增益,支持运行时 ros2 param set
  • auto_white_balance自动白平衡0=Off非0=Continuous
  • frame_rate:期望帧率(会尝试下发到相机的 AcquisitionFrameRate* 节点;不同型号可能不支持)

ROI / 裁剪(已接入海康 SDK 的 Width/Height/OffsetX/OffsetY且会按相机的 min/max/inc 自动对齐):

  • resolution_width
  • resolution_height
  • offsetX
  • offsetY

像素格式(发布端输出格式,驱动会用 SDK 转码后发布):

  • pixel_formatrgb8(默认)/ bgr8 / mono8

录像:

  • recording:是否录制,true 时保存到 ~/fyt2024-log/video/<timestamp>.avi

VideoPlayerNode 参数(与 rm_bringup/config/node_params/video_player_params.yaml 对齐):

  • path:视频文件路径
  • frame_rate:发布帧率
  • start_frame:从第几帧开始发布(前面只读不发)
  • keep_looping:播到结尾是否循环
  • frame_id:发布 frame_id

示例: /**: ros__parameters: camera_info_url: package://rm_bringup/config/camera_info.yaml camera_name: narrow_stereo camera_frame_id: camera_optical_frame pixel_format: rgb8

	exposure_time: 2500
	gain: 15.0
	auto_white_balance: 1
	frame_rate: 210

	resolution_width: 1280
	resolution_height: 1024
	offsetX: 0
	offsetY: 0

	recording: false

## Topics

- `image_raw`图像Image
- `image_raw/camera_info`相机标定信息CameraInfo
- `camera_driver/heartbeat`心跳Int64自增1Hz

## Health / Reconnect

- 驱动包含看门狗:超过 5 秒没有收到新帧会触发 `close()` 并自动重连 `open()`。

## Daheng 风格参数说明(为什么有些需要重启)

在本工程里,类似 `resolution_width/height`、`offsetX/Y`、`auto_white_balance`、`frame_rate` 这类参数属于“相机配置”,通常是在相机 `open()` 时一次性下发到硬件。

- 对 Daheng 原实现:运行时只支持动态改 `exposure_time/gain`;其它参数改 YAML 后需要重启节点生效。
- 对当前 Hik 实现:这些参数已支持运行时动态改(`ros2 param set` 会立即尝试下发到相机),但具体是否成功取决于相机型号是否暴露对应 GenICam 节点(失败会 WARN