ubuntu18.04 下海康工业相机hikrobot 您所在的位置:网站首页 工业相机巨型帧在哪里设置 ubuntu18.04 下海康工业相机hikrobot

ubuntu18.04 下海康工业相机hikrobot

2024-07-07 04:16| 来源: 网络整理| 查看: 265

海康的相机没有ros驱动,而且对linux开发不太用好(windows的支持还是不错的),就重写了sdk接口,并创建了ros节点封装成ros包,方便linux环境下ros的调用,用于开发后面的算法,完整版ros驱动:https://github.com/luckyluckydadada/HIKROBOT-MVS-ROS-package

环境 Ubuntu 18.04

机器视觉工业相机客户端MVS V2.1.0(Linux)

相机型号:MV-CA013  或 016

适用于海康机器视觉工业相机系列(以太网传输和usb传输同样适用),相机接入pc或开发板的usb3.0接口或网口。

下载海康mvs sdk

海康机器人-机器视觉-下载中心杭州海康机器人股份有限公司海康机器人HIKROBOT是面向全球的机器视觉和移动机器人产品及解决方案提供商,业务聚焦于工业物联网、智慧物流和智能制造,构建开放合作生态,为工业和物流领域用户提供服务,以创新技术持续推动智能化,引领智能制造进程https://www.hikrobotics.com/machinevision/service/download?module=01、选linux的最新版:机器视觉工业相机客户端MVS V2.1.0(Linux)

 

2、下载好的软件安装包,拷贝至 linux 系统中 3、 安装前,需要获取系统 root 权限,使用“sudo su”或者“su root”命令,需要输入密码。

 4、打开 MVS 安装包所在文件夹,使用“tar –xzvf MVS-2.0.0_x86_64_20191126.tar.gz”对安装包进行解压(不同硬件平台,解压后有不同的安装包,本文以 x86 架构、64 位安装包为例进行讲解)

解压

MVS_Linux_STD_V2.1.0_201228.zip解压后,目录中含有多种架构已经编译好并打包的*.dpkg包,另外还有tar.gz(也含编译好的so和bin文件)。

MVS-2.1.0_aarch64_20201228.deb      MVS-2.1.0_i386_20201228.deb

MVS-2.1.0_aarch64_20201228.tar.gz   MVS-2.1.0_i386_20201228.tar.gz

MVS-2.1.0_armhf_20201228.deb        MVS-2.1.0_x86_64_20201228.deb

MVS-2.1.0_armhf_20201228.tar.gz     MVS-2.1.0_x86_64_20201228.tar.gz

MVS-2.1.0_arm-none_20201228.tar.gz    

树莓派选armhf架构,jetson选aarch64,pc机选x86_64,i386是32位pc。

armhf和aarch64区别就是armhf是armv7架构,如树莓派。aarch64是armv8架构,如jetson nano。

arm-none只有Samples,没有编译好的bin,也没有dpkg包,海康也没有提供源码,所以用不上。

所有的tar包都包含另一个MVS.tar.gz,继续解压后是海康打包的so和Samples。 Samples说明参照MVS/Samples/README-CH,安装完sdk后可以在每个sample子目录敲make编译生成可执行程序。

因为海康没有提供源码,只提供编译好的so来给我们调用,所以下面的tar包安装也不用编译。

5、解压完成以后,会在文件夹中生成对应的文件夹(如:MVS2.0.0_x86_64_20191126.tar.gz)。如下 图所示:

 

6、打开解压后的文件夹(cd MVS-2.0.0_x86_64_20191126)。运行安装脚本“./setup.sh”安装 MVS,安装过程如下图所示

7、 安装完成后,会在文件夹/opt 文件夹中生成 MVS 文件夹。MVS 文件夹中一般包含:bin、doc、deriver、include、lib、lincese、logserver、Samples 文件夹(不同版本可能存在差异)。如下图所示:

 

8、编译demo

解压tar包,包含另一个MVS.tar.gz,继续解压,找到Samples目录。

Samples说明参照MVS/Samples/README-CH,安装完sdk后可以在每个Sample子目录敲make编译生成可执行程序。

如:cd Samples/64/ImageProcess/ make ./ImageProcess [device 0]: Device Model Name: MV-CE060-10UC UserDefinedName:

Please Intput camera index: 0                     #  只有一个相机此处填0,用于指定相机 Now you GetOneFrame, Width[3072], Height[2048], nFrameNum[0]

    0     to do nothing     1     to convert RGB     2     to save as BMP                                 # 2 为保存照片到当前目录 Please Input Index: 2 save image succeed

Press enter to exit. 打开当前目录的image.bmp照片,说明sdk的开发环境测试成功。 如果只是想使用相机的采集的topic做算法开发,直接clone ros的驱动包https://github.com/luckyluckydadada/HIKROBOT-MVS-ROS-package,参照Readme安装即可。

9. 示例程序能够正常运行,安装完成,进入 cd /opt/MVS/bin 路径下,执行./MVS.sh 命令即可打开 MVS 客户端;也可进入 cd /opt/MVS/Samples 路径下,运行测试相关示例程序

dpkg包安装(二选一)

dpkg -i MVS-2.1.0_x86_64_20201228.deb

安装在 /opt/MVS下,这里有个问题,运行需要去cd /opt/MVS/bin/ 再./MVS运行。

    可选操作:

虽然环境变量配置了lib目录,但是没有配置bin目录,而且即使配置了bin目录,在其他目录也会运行失败,因为MVS调用的很多lib没有在/opt/MVS/lib目录,而在bin目录,可能是担心lib重名吧。

可以按如下方法修改方法,找到对应行:

vim ~/.bashrc

export PATH=$PATH:/opt/MVS/bin:

export MVCAM_COMMON_RUNENV=/opt/MVS/lib

export LD_LIBRARY_PATH=/opt/MVS/lib/64:/opt/MVS/lib/32:/opt/MVS/bin:$LD_LIBRARY_PATH

下划线部分是我增加的内容,重启终端生效。

任意目录命令行敲MVS打开设备。

上面谨慎修改,因为/opt/MVS/bin目录加入到LD_LIBRARY_PATH后,会同样将这个目录里的libQt5*等库引入全局可见,跟系统安装的libQt版本不一致,比如我的rviz在调用Qt这个库的时候出现了不匹配打不开的情况,使用系统自带的则正常打开,所以谨慎修改。tar包安装(二选一)

tar -xvf MVS-2.1.0_x86_64_20201228.tar.gz cd MVS-2.1.0_x86_64_20201228 sudo bash setup.sh

 可选操作同上。

2  MVS 卸载 软件卸载时有以下两种方法: 方法一: 1. 执行 cd /opt 进入 opt 目录下; 2. 执行/opt/MVS/logserver/RemoveServer.sh 删除软件; 3. 执行 rm –r /opt/MVS 删除所在文件的文件夹。 方法二: 1. 获取 root 权限; 2. 执行 dpkg –r MVS。(只支持 deb 方式安装 MVS 时使用)

3 注意事项 一、 防火墙关闭方式 Linux 系统下如果枚举不到相机,则需要关闭防火墙。以下是不同 Linux 系统环境下关闭防火墙的方式(仅供参 考,具体可能系统版本不一样方式也不一样): 1、 Ubuntu 启动时是默认关闭的 2、Centos7 临时关闭:service firewalld stop 或 systemctl stop firewalld 永久关闭:chkconfig firewalld off 3、RedHat7 临时关闭:service firewalld stop 或 systemctl stop firewalld 永久关闭:chkconfig firewalld off 二、 网卡相关 Linux 下建议开启巨帧,开启方法(仅供参考)

1、临时开启:ifconfig eth0 mtu 9000 2、永久开启:将"ifconfig eth0 mtu 9000"语句写到配置文件,重启生效。 注意:eth0 代表网卡名字,不同系统名字有可能不一样;9000 代表最大接收包的大小,一些较老的网卡最大接 收包或许无法达到,需根据实际来设置,并且相机侧需将 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 相机。

4 常见问题 1、U3 相机在取流时候出现 no data 情况

  3、set_socket_buffer_size.sh:当出现 GigE 丢包时,可开大 socket 缓存,用来减缓丢包。 4、set_usb_priority.sh:设置 udev 规则,使之能在非管理员权限下使用 u3 相机。 5、 set_usbfs_memory_size.sh:设置 usb 缓存,使之能兼容多个大分辨率 u3 相机。 4 常见问题 1、U3 相机在取流时候出现 no data 情况: 报错截图

解决方式: 解压安装包后,cd 到文件夹根目录下“source ./set_usb_priority.sh”和“source set_usbfs_memory_size.sh”。

 

2021/06/02/UN3#505//700 3、set_socket_buffer_size.sh:当出现 GigE 丢包时,可开大 socket 缓存,用来减缓丢包。 4、set_usb_priority.sh:设置 udev 规则,使之能在非管理员权限下使用 u3 相机。 5、 set_usbfs_memory_size.sh:设置 usb 缓存,使之能兼容多个大分辨率 u3 相机。

4 常见问题 1、U3 相机在取流时候出现 no data 情况: 报错截图 解决方式: 解压安装包后,cd 到文件夹根目录下“source ./set_usb_priority.sh”和“source set_usbfs_memory_size.sh”。 2、如果运行 demo 提示报错找不到 libMvCameraControl.so,是由于环境变量没有生效导致。报错如下图所示:

                                                        Cannot find –lMvCameraControl 解决方法: a) 安装完 MVS 以后重启设备,使环境变量生效。 b) 跳转到安装包所在路径,并输入:“source ./set_env_path.sh”,使环境变量生效。如下图所示:

 重启电脑!!!!

启动相机驱动: cd到相机的工作空间(cd 到 ws_hikrobot_camera)下运行 source ./devel/setup.bash roslaunch hikrobot_camera hikrobot_camera.launch ##rviz source ./devel/setup.bash roslaunch hikrobot_camera hikrobot_camera_rviz.launch



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有