ubuntu20.0.4系统上使用海康相机基于opencv3.2.0的ros驱动安装

海康相机官方不提供ros驱动(无脑),目前网上初学者全是慈善家网友们开源,正因为都是个人基于自身情况撰写,bug重叠不穷,此文记录海康相机基于opencv3.2.0在ubuntu20.0.4系统上完成话题topic记录。

1. opencv3.2.0安装

为啥用opencv3.2.0?因为慈善网友爹们开源分享的ros驱动是基于opencv3.2.0,ubuntu20.0.4系统自带的是opencv3.4.0,所以你需要安装多opencv版本。

此处为官网的链接,瞅准版本号:https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/https://opencv.org/releases/page/6/

下载后解压巴拉巴拉进行编译,自行解决,首先安装依赖项:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

运行后出现libjasper-dev无法安装的问题,一般不影响,但是如果强迫症,参考以下命令:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

请参考以下命令把下载的opnecv320文件夹进行编译,创建opencv320目录,在/usr/local/opecv320创建目录并且最终安装在这里:

sudo mkdir opencv320

cd ~/Downloads/Applications/opencv-3.2.0
mkdir build 
cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D ENABLE_PRECOMPILED_HEADERS=OFF .. 
make -j20 
sudo make install

这个过程会有很多bug,挑个难的,比如出现“

make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2 make: *** [Makefile:138: all] Error 2”

根据报错的文件如cv2.cpp打开,对其中的代码进行修改如下(添加(char *)(有空格)保存,重新sudo make):char* str = PyString_AsString(obj) 改为 char* str = (char *)PyString_AsString(obj);

运行下述命令配置系统环境变量:

sudo gedit ~/.bashrc 
export LD_LIBRARY_PATH=/usr/local/opencv320/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/opencv320/lib/pkgconfig:$PKG_CONFIG_PATH

验证opencv版本:pkg-config --modversion opencv,应当出现3.2.0

2. cv_bridge安装

卸载原有的cv_bridge,:

sudo apt-get remove ros-noetic-cv-bridge

cv_brige的下载地址(GitHub - ros-perception/vision_opencv at noetic),根据系统版本此处选择ubuntu20.0.4版本的vision_opencv-noetic.zip

打开cv_bridge对应的CMakeLists,按照下图进行注释和增加内容:

执行编译:

mkdir build 
mkdir -p install/install320 
cd build 
cmake -D CMAKE_INSTALL_PREFIX=/home/***/Downloads/Applications/vision_opencv-noetic/cv_bridge/install/install320 ..
make -j20 
sudo make install

3.MVS的安装

linux版本驱动如下链接:海康机器人-机器视觉-下载中心

把deb安装包通过dpkg命令安装,以下命令启动客户端:

cd /opt/MVS/bin/
./MVS.sh

本机的路径如下

MVS的下载是因为海康相机的驱动涉及到MVS的路径:

 

4. 海康相机ros驱动

(a)以下是目前开源的海康相机ros驱动的最早版本,很多其他代码版本都是用这位慈善家的代码修改的:(可以试试,我报错报的麻了)

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

出现如下bug,此时不要去把别人工程的相应文件拿过来直接复制用:

这是需要编译生成的,哪怕你把别人工程文件出现的复制进去,完成catkin_make,在最后launch会一直相出现如下的连接错误:

(b)正确的ros驱动:GitHub - HippoSoX/HIKROBOT-MVS-CAMERA-ROS

这个文件里对cmakelist文件进行了如下注释,解决上述图的报错:

把cv_bridge文件夹复制到和工程文件同一路径,进行catkin_make

进行编译:

source /devel/setup.bash
roslaunch hikrobot_camera hikrobot_camera.launch

结果如下:

最难的是opencv和cv_birge的安装和编译,以及系统变量设置的问题. 很关键的一处是opencv的系统变量设置和我们要运行的工程文件之间的调用,如果没有监测顺利到链接,就会产生报错,需要自己用经验去设置。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值