激光雷达标定入门(7)海康摄像头驱动

本文指导用户如何解决在使用海康威视摄像头时遇到的编译错误,涉及克隆驱动代码、查找和修复链接库路径,以及调整CMakeLists.txt中的链接目录。

如果你在使用海康威视摄像头时遇到了编译报错的问题,可能是链接库的路径配置不正确。下面是解决这个问题的步骤和原理:

1. 克隆海康摄像头驱动代码

首先,你需要将海康摄像头的驱动代码克隆到你的工作空间中。使用以下命令:

git clone https://github.com/guangqianzhang/hika_ros.git

2. 编译报错

在编译过程中,你可能会遇到类似以下的错误:
在这里插入图片描述

/usr/bin/ld: cannot find -lhcnetsdk
/usr/bin/ld: cannot find -lPlayCtrl
collect2: error: ld returned 1 exit status

这些错误表明编译器找不到相应的链接库。

3. 找不到链接库的解决方法

解决办法可以参考这篇博客中提到的方法,它解释了在Linux下编译C或C++文件时可能会遇到找不到链接库的问题。

原理是这么个原理,但是解决不了上面出现的编译问题,我把原理梳理一下:

① 链接库文件存在于usr/lib目录下

如果链接库文件存在于usr/lib目录下,你可以使用以下命令修复链接:

ln -s lib***.so.6(某个数字) lib***.so

例如:

ln -s libhcnetsdk.so.6 libhcnetsdk.so
ln -s libPlayCtrl.so.6 libPlayCtrl.so

② 链接库文件不存在于usr/lib目录下

如果链接库文件不存在于usr/lib目录下,你需要在系统根目录中搜索这些库文件,并使用以下命令将其复制到usr/lib目录下:

sudo cp 库文件名 /usr/lib

例如:

sudo cp libhcnetsdk.so /usr/lib
sudo cp libPlayCtrl.so /usr/lib

分割线============================================

最终参考这篇博客的思路解决上面的问题:

根据上面的提示:提示找不到相关库文件
其实在程序包中是有相关库文件的,只是系统在编译的时候找不到,尝试了很多种办法之后,决定直接复制到/usr/lib下面

在这里插入图片描述

解决办法如下:

复制库文件

1、在/usr/lib/ 下面创建一个文件夹hik

sudo mkdir hik

2、在自己包下面的库文件中打开终端,准备复制

root@1bbaa109b262:/home/user/calibration/ros_ws/src/hika_ros/src/hikan_robot-B/lib# sudo cp -i libhcnetsdk.so /usr/lib/hik/
root@1bbaa109b262:/home/user/calibration/ros_ws/src/hika_ros/src/hikan_robot-B/lib# sudo cp -i libPlayCtrl.so /usr/lib/hik/

4. 问题终止线

在执行上述步骤后,无论是在容器中创建还是在容器外创建,还是不能够catkin_make,还是会报一样的错误.

回归本质找问题,仔细看报错问题,应该是CMaklist文件链接不到相应的库,所以回头去看CMakelist文件

link_directories(../../../hikan_robot-B/src/hikan_robot-B/lib)

这一句有问题,路径不对

应该是

link_directories(../../../hika_ros/src/hikan_robot-B/lib)

这样编译就能顺利过.
在这里插入图片描述

5. 启动摄像头节点

最后,使用以下命令启动摄像头节点:

source devel/setup.bash
roslaunch hikvision_ros hik.launch

至此,应该能够成功驱动海康摄像头了。希望能够解决大家在实际工程中遇到的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值