海康相机ROS驱动使用

news/2025/2/11 15:32:27/

1、海康MV-CS050-10GC 镜头 MVL-HF1624M-10MP f=16mm MVL-HF0624M-10MP f=6mm 两个镜头都是1000万分辨率
2、支持POE供电 使用网线连接支持POE的交换机或网卡
3、下载linux客户端
4、查找相关ros驱动 https://github.com/luckyluckydadada/HIKROBOT-MVS-CAMERA-ROS.git
按照readme编译
问题1
fatal error: MvErrorDefine.h: 没有那个文件或目录
解决
需要先安装linux客户端(海康机器人官网),sudo dpkg -i MVS-2.1.2_x86_64_20221208.deb cd /opt/MVS/bin/ 再./MVS.sh运行,客户端启动。
问题2
/usr/bin/ld: 找不到 -lGCBase_gcc421_v3_0
/usr/bin/ld: 找不到 -lGenApi_gcc421_v3_0
/usr/bin/ld: 找不到 -llog4cpp_gcc421_v3_0
/usr/bin/ld: 找不到 -lLog_gcc421_v3_0
/usr/bin/ld: 找不到 -lMathParser_gcc421_v3_0
/usr/bin/ld: 找不到 -lNodeMapData_gcc421_v3_0
/usr/bin/ld: 找不到 -lXmlParser_gcc421_v3_0
本机缺少对应的动态库
解决
git上找到对应文件 https://github.com/yiningzeng/hikvision-darknet-demo.git 将相应的.so文件复制到 /opt/MVS/lib/64/
再次编译-通过
问题3
通过时存在警告:warning: libopencv_imgcodecs.so.4.2, needed by /opt/ros/noetic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.3.4
系统中已经安装了OpenCV 3.4版本的库文件和OpenCV 4.2版本的库文件,而这两个版本的库文件都提供了名为 libopencv_imgcodecs.so 的共享库。但是,软件包或程序需要一个特定版本的库文件以正常工作。在本例中,程序需要使用OpenCV 4.2版本的库文件。
解决:在程序中通过配置 LD_LIBRARY_PATH 环境变量,使链接器首先在特定目录搜索库文件,export LD_LIBRARY_PATH=/path/to/opencv4:$LD_LIBRARY_PATH 其中 “/path/to/opencv4” 代表包含OpenCV 4库文件的目录
5、正常通过
source ./devel/setup.bash
roslaunch hikrobot_camera hikrobot_camera.launch

6、实际测试:
稳压电源:15V
蓝灯常亮
启动客户端配置ip :192.168.1.5 网关:192.168.1.254
手动调整光圈焦距,直至需要的效果
当前发布频率为6hz左右,客户端采集频率也为6hz。
稳压电源设为20V
问题1:
客户端采集频率18hz,一旦使用ros驱动后会导致数据采集频率变为6hz,问题出在ros驱动上。
宽度和高度不同;(改为) 2048*2448
亮度增益不同;0
将像素格式改为BGR8 与算法适配 0x02180015
PixelType_Gvsp_BGR8_Packed = (MV_GVSP_PIX_COLOR | MV_PIXEL_BIT_COUNT(24) | 0x0015),
#define MV_GVSP_PIX_COLOR 0x02000000
#define MV_PIXEL_BIT_COUNT(n) ((n) << 16)
0x02000000 + 0x00180000(24的16进制表达)+ 0x0015 = 0x02180015

设置巨帧 echo “9000”> /sys/class/net/eno1/mtu 频率变为8hz

将图像格式设置为BayerRG8 频率正常输出

/*

再用函数 cv::cvtColor(bayer_image, image, cv::COLOR_BayerRG2BGR); 转为BGR8 算法所需格式

出现 nRet = MV_CC_OpenDevice(handle); MV_OK != nRet
warning: libopencv_imgcodecs.so.3.2, needed by /opt/ros/melodic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.3.3

在Cmakelist 中 用
LINK_DIRECTORIES(
/usr/local/lib/
)
替代
target_link_libraries(${PROJECT_NAME}
${OpenCV_LIBRARIES}
)
警告消失!但是仍然出现 MV_OK != nRet
camera::frame = cv::Mat(stImageInfo.nHeight, stImageInfo.nWidth, CV_8UC3, m_pBufForSaveImage).clone();
改为CV_8UC1。但是MV_CC_SetPixelFormat fail! 换成0x01080009 BayerRG8还不是正常图
*/

根本原因:在hpp的最后,已经进行了转换。所以只需要改图像格式设置为BayerRG8就行,不需要上述/* xxxx */中的工作。
使用总结:1、修改config.yaml中的图像宽度和高度,修改频率;2、修改hpp中的图像高度和宽度。

虽然海康本身没有ros驱动,但是其sdk封装了一些与opencv同样功能的函数,在写ros驱动时中使用sdk函数的时候和opencv产生了重复。

/****/
红外相机ros驱动使用
MV-CI003-GL-N35 焦距 35mm 像素30万
1、测试客户端
不要使用RT系列网卡!!
在车载端测试正常–50HZ
2、写一个红外相机的ROS驱动 目前的工业相机ros驱动似乎也能用于红外相机。
/
/

完善ros驱动使其能够同时发布多个相机

1、在launch里面写多个节点用于拉起多个相机。每个节点应该开关可控
2、每个相机有自己的config.yaml文件
3、出现yaml文件无法加载问题,采用group 节点组 将每个相机所需参数放置到group中。
4、出现节点died情况,排查–需要万兆通信才行 因为网卡的原因(具体不太清楚),每一分钟数据会停传一次。
5、完善红外相机数据的解码方式,相机镜头影响,相机内参标定&相机激光雷达的外参标定。
多相机&激光雷达rviz图
在这里插入图片描述


http://www.ppmy.cn/news/305162.html

相关文章

vue3中的nextTick()

目录 nextTick() 方法用法回调函数方式使用await方式使用 实现原理使用nextTick() 方法时的注意事项 nextTick() 方法 nextTick() 方法是一个非常强大的工具&#xff0c;是一个等待下一次 DOM 更新刷新的工具方法。用于将一个函数以异步的方式推迟到下一个 DOM 更新周期执行。…

【数据库中事务的隔离级别】—— 每天一点小知识

&#x1f4a7; 数据库中事务的隔离级别 \color{#FF1493}{数据库中事务的隔离级别} 数据库中事务的隔离级别&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算…

IP组播5_PIM-SM(ASM)详解

目录 1.PIM-SM&#xff08;ASM&#xff09;简介 2.PIM-SM&#xff08;ASM&#xff09;工作原理 2.1 什么是DR&#xff1f; 2.2 什么是RP&#xff1f; 2.2.1 静态RP 2.2.2 动态RP 2.3 组播源注册和RPT建立 2.4 SPT切换 3. PIM-SM&#xff08;ASM&#xff09;实验 3.1 …

利用编程解决索尼A7S3相机视频MP4文件丢失数据恢复

异常换相机电池导致视频丢失 索尼微单相机A7S3拍摄访谈节目&#xff0c;导素材时发现少了1段&#xff0c;应该是一共录了5段&#xff0c;缺了第3段。了解到拍摄过程确实是有人为操作异常&#xff0c;摄像师回忆在第3段结尾电池快没电可能存在换电池操作异常。记得之前处理过的…

一分钟学一个 Linux 命令 - tar

前言 大家好&#xff0c;我是 god23bin。今天给大家带来的是 Linux 命令系列&#xff0c;每天只需一分钟&#xff0c;记住一个 Linux 命令不成问题。今天&#xff0c;我们要介绍的是一个常用且强大的命令&#xff1a;tar。 什么是 tar 命令&#xff1f; tar 是 tape archive…

实验14:20211030 Java大数据1+X 中级实操考试(id:2498)

实验14&#xff1a;20211030 Java大数据1X 中级实操考试&#xff08;id&#xff1a;2498&#xff09; 一、项目背景说明二、表结构三、步骤【5 分】步骤 1&#xff1a;项目准备【5 分】步骤 2&#xff1a;完成实体类 Member【10 分】步骤 3&#xff1a;完成实体类 Goods【10 分…

修复无限网卡驱动报错:windows仍在设置此设备的类配置(代码56)

寻找问题&#xff1a;针对win10系统设置里边无法找到“WLAN”及“以太网”问题&#xff0c;先在设备管理器中找到无限网卡&#xff0c;“此电脑”或者“我的电脑”右键点“管理”——》“系统工具”——》“设备管理器”——》“网络适配器”选中你的无线网卡驱动双击&#xff…

无线网卡、无线上网卡、网卡、有线网卡的个人总结

无线网卡 无线网卡只是一个信号收发的设备&#xff0c;只有在找到上互联网的出口时才能实现与互联网的连接&#xff0c;所有无线网卡只能局限在已布有无线局域网的范围内。无线网卡就是不通过有线连接&#xff0c;采用无线信号进行连接的网卡。 图片&#xff1a; 现在使用的无…