使用 ROS2 package 对 MVS 进行封装 暴露相机参数接口,并支持实时回传多种格式图像
- ✅ 可通过 USB 3.0 连接至 Hikvision MVS 工业相机
- ✅ 图像数据实时发布在
camera/image_rawtopic 上,类型为sensor_msgs/msg/Image - ✅ 实际帧率每秒发布在
camera/fpstopic 上,类型为std_msgs/msg/Float32 - ✅ 支持实时调整相机参数
gain增益fps帧率exposure_time曝光时间pixel_format图片格式
- ✅ 相机意外断连后,可自动重新查找并恢复
- ✅ 支持 rviz2 实时监测
- ✅ 支持
ros2 launch直接运行 - ✅ 支持
rosdep和colcon轻松编译安装
XJTU-RMV-Task04/
├── README.md
├── playground/
│ └──[tests and tutorials]
└── src/
├── build
├── install
├── log
└── hik_camera/
├── CMakeLists.txt
├── package.xml
├── include/hik_camera
├── launch/
│ └── launch.py
└── src/
└── hik_camera_driver.hpp
└── hik_camera_driver.cpp
└── hik_camera_node.cpp
前往官网下载 [中文|En] Machine Vision Software MVS 4.6.0(Linux)版本,解压,使用 sudo dpkg -i 'xxx.deb' 安装。
克隆本仓库,导航到目录 XJTU-RMV-Task04/src/hik_camera,之后使用 rosdep install --from-paths src --ignore-src -y 安装。
导航到目录 XJTU-RMV-Task04/src,运行 colcon build --symlink-install。
确保当前终端已经执行过 source install/setup.zsh 或者 source install/setup.bash,然后使用 ros2 launch hik_camera launch.py 启动运行。
在另一个终端,运行 rviz2,在打开的 rviz2 窗口中点击左下角的 Add,选择 rviz_default_plugins/Image,再在左上角的列表中展开 Image,点击 Topic 右侧空白区域输入 camera/image_raw,即可查看实时画面。
在另一个终端,运行 source install/setup.zsh 或者 source install/setup.bash,之后运行 ros2 param set /hik_camera_node [parameter_name] [value] 进行修改。
| 问题 | 解决方案 |
|---|---|
CMakeList.txt 配置找不到 MVS 和 ros |
同时为 MVS 库添加 include_directories、link_directories 和 target_link_libraries |
| ROS2 中大量使用进阶 C++ 语法 | 询问大模型,使用 Copilot 辅助编码 |
| MVS 接口不熟悉 | 找到官网下载安装后,在 /opt/MVS/doc 中找到完整文档;阅读文档中的示例代码并与大模型交流讨论 |
MV_CC_RegisterImageCallBackEx 总是报错 |
检查出隐蔽的代码片段,提前调用的 startGrabbing |
| 感谢好心人🙏🙏🙏 | |
| 使用 MacOS 上的 VMware Fusion 虚拟机,Ubuntu 无法连接到 USB 相机 | 在 VMware Fusion 中配置了 USB 3.1 接口的转发 |
| 色彩输出红色与蓝色对调 | 初始化相机时采用 RGB8Packed 像素格式 |