经过两天的踩坑,因为是第一次用海康威视的相机,下面是海康的相机在linux下的二次开发和在ros下驱动的笔记。

一、下载官方海康威视Linux系统的MVS SDK:

官方网址:海康机器人-机器视觉-下载中心 选择“机器视觉工业相机客户端MVS V2.1.0(Linux)”下载。

解压后有适应各种架构计算机的压缩包:

 

其中常用的是:

  • 树梅派:armhf架构

  • jetson nano: aarch64架构

  • PC: x86_64架构

解压后安装:

里面有一个INSTALL文件可以参考步骤如下:

  • 安装前,需要获取root权限:sudo su 或 su root

  • tar-xzvf 文件名: 解压压缩包

  • cd MVS-2.1.0_x86_64_20201228/ : 进入文件根目录

  • ./setup.sh  :运行安装脚本

  • 安装完成在路径下/opt/MVS下会看到:

     

     

  • 其中:

    • Sample:示例程序

    • lib:封装好的so库

    • include:头文件

    • doc:说明文档

    • bin:可运行文件,包括客户端软件等

运行demo,测试linux环境是否搭建成功:

运行之前先阅读文件夹下的README,步骤如下,如GrabImage:

  • 进入文件GrabImage

  • maek编译

  • ./GrabImage运行可执行文件

  • 运行后会枚举网络中的设备,输入相应的camera index,如0,回车

  • 结果如下:

 

注意事项:

1.关闭防火墙

2.配置ip使得相机的ip和PC的ip在同一网段:

 

Linux 下建议开启巨帧,开启方法(仅供参考,可选择操作部分):

1、临时开启:ifconfig eth0 mtu 9000 2、永久开启:将"ifconfig eth0 mtu 9000"语句写到配置文件,重启生效。

注意:eth0 代表网卡名字,不同系统名字有可能不一样;9000 代表最大接收包的 5大小,一些较老的网卡最大接收包或许无法达到,需根据实际来设置,并且相机 侧需将 GEVSCPSPacketSize 节点设置成相应大小。

对于常见报错,可能是环境配置的脚本运行出了问题,安装包下脚本说明:

1、set_env_path.sh:设置环境变量,将 SDK 动态库放入系统环境变量中。

2、set_rp_filter.sh:禁用 rpfilter,使 pc 的 IP 网段和相机的 IP 网段不在同一网段时也能枚举的上。

3、set_socket_buffer_size.sh:当出现 GigE 丢包时,可开大 socket 缓存,用来减缓丢包。

4、set_usb_priority.sh:设置 udev 规则,使之能在非管理员权限下使用u3相机。

5、set_usbfs_memory_size.sh:设置 usb 缓存,使之能兼容多个大分辨率u3相机。

在ROS下驱动,这里在github上找到一个大佬自己写的驱动:

请自取,主页和方法在下方:

GitHub - luckyluckydadada/HIKROBOT-MVS-CAMERA-ROS: The ros driver package of Hikvision Industrial Camera SDK.​​​​​

 

mkdir -p ~/ws_hikrobot_camera/src
git clone https://github.com/luckyluckydadada/HIKROBOT-MVS-CAMERA-ROS.git ~/ws_hikrobot_camera/src/hikrobot_camera
cd ~/ws_hikrobot_camera
catkin_make
source ./devel/setup.bash 
roslaunch hikrobot_camera hikrobot_camera.launch
#rviz
source ./devel/setup.bash 
roslaunch hikrobot_camera hikrobot_camera_rviz.launch

这里有一个坑,如果在安装MVS配置了bin目录的环境变量,会和rviz需要的libQT5*等库冲突。

要修改相机参数请自行阅读代码内容。如config文件和src文件。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐