Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XJTU-RMV-Task04

视觉组第四次作业

HikRobot ROS2 Camera Driver

使用 ROS2 package 对 MVS 进行封装 暴露相机参数接口,并支持实时回传多种格式图像


🛠️ 特性

  • ✅ 可通过 USB 3.0 连接至 Hikvision MVS 工业相机
  • ✅ 图像数据实时发布在 camera/image_raw topic 上,类型为 sensor_msgs/msg/Image
  • ✅ 实际帧率每秒发布在 camera/fps topic 上,类型为 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 

🧩 编译安装

1. 安装 Hikvision MVS SDK

前往官网下载 [中文|En] Machine Vision Software MVS 4.6.0(Linux)版本,解压,使用 sudo dpkg -i 'xxx.deb' 安装。

2. 使用 rosdep 安装其他依赖

克隆本仓库,导航到目录 XJTU-RMV-Task04/src/hik_camera,之后使用 rosdep install --from-paths src --ignore-src -y 安装。

3. 编译

导航到目录 XJTU-RMV-Task04/src,运行 colcon build --symlink-install。

4. 运行

确保当前终端已经执行过 source install/setup.zsh 或者 source install/setup.bash,然后使用 ros2 launch hik_camera launch.py 启动运行。

5. 使用 rviz2 监测

在另一个终端,运行 rviz2,在打开的 rviz2 窗口中点击左下角的 Add,选择 rviz_default_plugins/Image,再在左上角的列表中展开 Image,点击 Topic 右侧空白区域输入 camera/image_raw,即可查看实时画面。

6. 实时修改参数

在另一个终端,运行 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 像素格式

About

初试 ROS2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages