海康相机ROS驱动使用

这篇具有很好参考价值的文章主要介绍了海康相机ROS驱动使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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图
海康ros,项目-环境建图,数码相机,linux文章来源地址https://www.toymoban.com/news/detail-561976.html

到了这里,关于海康相机ROS驱动使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ros2 基础教程-使用ROS 2进行相机标定

    相机(摄像头)是一种非常精密的光学仪器,对外界环境的感知非常敏感。由于摄像头内部和外部的一些原因,摄像头采集的图像常常会发生一定的畸变。如果直接将采集到的图像拿来进行图像处理,会产生很大的问题。为了避免图像数据源造成的误差,需要对摄像头的相关

    2024年01月21日
    浏览(50)
  • ROS机器人应用(6)—— 激光雷达建图和导航

    小车开机,连接WIFI,密码:dongguan。 启动激光建图(服务端) 查看建图效果(客户端) 可以使用键盘控制、APP遥控、PS2遥控、航模遥控进行控制小车运动。 建图完成,保存地图 (服务端) 保存方法1: 保存方法2: 文件挂载,查看地图 注:地图文件可以使用PhotoShop进行编

    2024年02月02日
    浏览(44)
  • ROS gazebo 机器人仿真,环境与robot建模,添加相机 lidar,控制robot运动

    b站上有一个非常好的ros教程234仿真之URDF_link标签简介-机器人系统仿真_哔哩哔哩_bilibili,推荐去看原视频。 视频教程的相关文档见:6.7.1 机器人运动控制以及里程计信息显示 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 本文对视频教程第六章的主要内容做一个总

    2024年02月03日
    浏览(44)
  • ROS环境下大疆tello无人机源码安装&驱动代码解读

            大疆tello无人机是一款微小型无人机,可以支持多种开发模式。这里用的是ROS1的kinetic版本进行开发。参考文档来自http://wiki.ros.org/tello_driver         打开终端,键入以下命令进行二进制文件安装:         然后进入到ros工作空间,下载tello驱动源码         返回

    2024年02月13日
    浏览(63)
  • 使用ros从realsence相机中获取图像

    使用ros从相机中获取视频,并将视频拆分成每帧图像,将RGB图像和Depth图像分别保存在两个文件夹中。 代码如下(示例): 演示如下: 代码如下(示例): 演示如下: 打开界面如下图: 代码如下(示例): 演示如下: 说明: “/camera/color/image_raw” 是RGB图像的话题; “

    2024年02月01日
    浏览(76)
  • ROS-基于PX4的无人机SLAM建图(Cartographer)仿真

    首先在电脑上安装好Ubuntu系统和ROS系统,我安装的是Ubuntu18.04和ROS Melodic,不同的Ubuntu版本对应不同的ROS版本 ROS发布日期 ROS版本 停止支持日期 对应Ubuntu版本 2018年5月23日 ROS Melodic Morenia 2023年5月 Ubuntu 18.04 2016年5月23日 ROS Kinetic Kame 2021年4月 Ubuntu 16.04 (Xenial) Ubuntu 15.10 (Wily) 201

    2024年02月15日
    浏览(53)
  • 使用Matlab、Opencv、Ros三种方法完成相机标定

    1、相机标定的意义         在机器视觉领域,相机的标定是一个关键的环节,它决定了机器视觉系统能否有效的定位,能否有效的计算目标物。相机标定意义在于将现实世界中的三维物体与相机图像对应的二维物体映射起来,实际上就是透视投影。 2、相机标定原理   

    2024年04月13日
    浏览(61)
  • Jetson Nano之ROS入门 - - SLAM之Gmapping建图与路径规划

    SLAM(Simultaneous Localization And Mapping)是指在机器人或移动设备等自主移动系统的运动过程中,同时实时地构建出环境地图并确定自己的位置的技术。SLAM技术已经广泛应用于无人驾驶、机器人导航、虚拟现实等领域。 在SLAM技术中,机器人需要通过自身的传感器,如激光雷达、

    2024年02月08日
    浏览(31)
  • 在ROS中使用奥比中光Orbbec Astra Pro深度相机(二)

    在之前外面已经介绍过Orbbec Astra Pro深度相机,同学们可以点击☞☞☞了解详情,接着再来介绍介绍。 有兴趣的可以看一下ROS Wiki上的介绍: Orbbec Astra Pro介绍 astra_camera包介绍 astra_launch包介绍 功能包下载地址,可以直接用步骤里的git clone 发现一篇好文:https://www.ncnynl.com/arc

    2024年02月05日
    浏览(44)
  • ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)

    先安装相关的ROS功能包: 安装 gmapping 包(用于构建地图):sudo apt install ros-ROS版本-gmapping 安装地图服务包(用于保存与读取地图):sudo apt install ros-ROS版本-map-server 安装 navigation 包(用于定位以及路径规划):sudo apt install ros-ROS版本-navigation   新建功能包,并导入依赖: gmapping map_serve

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包