当前位置:   article > 正文

ubuntu + oepncv + PCL + realsenseSDK + ROS + OpenVino开发环境搭建_ros2 openvino camera

ros2 openvino camera

目的

本文主要介绍ROS机器人操作系统中主要开发环境的搭建过程。

注意:以下操作尽量在系统原本的空间中,不要在conda建立的虚拟空间中操作。

环境搭建找到正确的路线后,几乎是分分钟就能完成的事,但是实际上由于机器配置问题、版本问题、翻墙下载问题等等,需要耗费几天的时间去寻找原因并测试,所以很有必要对某个项目的开发环境,做个从零开始的配置记录,方便后续在新机器上,能够在半天内将环境和源代码复现。

1 Ubuntu系统安装

后续要使用ROS软件系统,以及OpenVino库,最好安装Ubuntu18.04版,原因不赘述。

基于win10系统安装Ubuntu系统基本没问题,资料好找,只是旧电脑磁盘碎片整理很花时间(几个小时以上),推荐使用SmartDefrag软件,简单易懂易用,比win10自带的功能好很多。

注意事项:

  • 比如硬盘剩余200GB空间,磁盘碎片整理后,划分空闲磁盘区大概只能划分50%,如果划分空间超过50%,win10会报错:空间不足。
  • 有些Ubuntu安装方法没有指引安装英伟达显卡驱动,这可能导致进入Ubuntu系统时,总是卡在登录输入密码界面进不去。我是登录不进桌面界面后,在Ctrl+alt+F2功能下(以命令行模式登入系统),使用命令行安装的英伟达显卡驱动。安装方法网上找到的资料,按照一步步操作按照没遇到什么问题。

2 安装Ubuntu常用软件和包

常见的如:VSCODE,anaconda,CMAKE等等。这些东西编译和安装方法都很简单不会出异常,也可以要用的时候再去安装。

备注:为anaconda添加中科大源(清华的源好像没更新了)

  • 下载anaconda后,终端中输入:conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
  • 设置搜索时显示通道地址:conda config --set show_channel_urls yes

3 安装realsense SDK并测试(此SDK并不一定要安装)

在ros-realsense(大概几十MB)中,包含了realsense SDK(大概1GB)中核心组件,如果只是用realsense的数据源,并不需要去安装原版的SDK!如果想安装,方法如下:

这个SDK安装要选对参考资料,我第一天找的两个安装资料,一步步操作最后总报错。后来换了如下这个链接,什么都没改动,一步步直接装好了:

https://www.cnblogs.com/tzbubble/p/13040323.html

-------------20210715分界线--------------------

在笔记本上部署时,上述链接指导安装时出现一些问题,重新撰写下流程:

  1. https://github.com/IntelRealSense/librealsense 下载源码,并放到某路径下,待会编译。
  2. 安装依赖环境
    1. sudo apt-get install libusb-1.0-0-dev libglfw3-dev libgtk-3-dev
  3. 将英特尔服务器添加到存储库列表中(作者原来那个不行了,需要使用下面这个)
    1. sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
  4. 注册服务器的公钥(作者原来那个不行了,需要使用下面这个)
    1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
  5. 刷新apt列表
    1. sudo apt-get update
  6. 安装相关包
    1. sudo apt-get install librealsense2-dkms
    2. sudo apt-get install librealsense2-utils
  7. 检查安装
    1. modinfo uvcvideo | grep "version:"  (终端会返回相关版本信息)
  8. 建立编译目录
    1. cd librealsense
    2. mkdir build
    3. cd build
  9. 使用cmake进行编译
    1. cmake ..
    2. make -j8   (多核编译)
    3. sudo make install
  10. 使用例程进行测试
    1. cd examples/capture
    2. ./rs-caputure

注意:

  • 建议在打开终端的初始路径(有个“~”)下去执行安装操作,这样软件会安装在/home/你主机名/librealsense文件夹中。

4 编译安装OpenCV 4.5.1和OpenCV_Contrib库,并测试

编译安装OpenCV同样遇到一点麻烦,参考了几个博客,并手动下载了一些东西放在某路径后,最终才得以成功。

主要参考的博客:

https://blog.csdn.net/weixin_45873781/article/details/109370712  (流程参考,demo测试代码参考)

https://blog.csdn.net/z1314520cz/article/details/103501274 (在cmake或make操作前,需要去参考)

https://blog.csdn.net/u011736771/article/details/85960300 (在cmake或make操作前,需要去参考)

https://blog.csdn.net/PecoHe/article/details/97476135 (pkg-config 问题的解决办法)

https://www.cnblogs.com/fx-blog/p/8213704.html(辅助参考编译流程)

具体编译安装流程:

  1. 我是在CSDN下载的OpenCV 4.5.1.zip及其对应的OpenCV_Contrib.zip。
  2. 然后按照第一个链接博客中流程去操作(我同时参考了第5个和第4个)。
  3. 如果执行cmake或make命令时,遇到问题(大概率会遇到和我一样的问题),那么就用第2和第3个博客链接中的方法操作。手动下载boostdesc_bgm.i等文件的地址是:https://download.csdn.net/download/u011736771/12152001  (需要CSDN会员或积分,当然评论里也有人直接公开了自己盘备份的下载地址),下载该压缩包后,将里面两个文件夹内文件单独拿出来,将奇怪的前缀名删除,然后将这些文件放到~/opencv_contrib/modules/xfeatures2d/src/内。这样执行“make”时,就不会报错没有这些文件了。
  4. 在第一个链接查看OpenCV版本时,那行代码可能提示没有此命令什么点,这个问题就参考第4个链接博客中的方法即可解决。(注意修改版本号)
  5. 测试OpenCV能否使用时,在VScode中,代码#include <opencv2/opencv.hpp>底下会有红线,表示找不到此库,这并不是没安装好OpenCV,而是vscode这个代码编辑器没配置OpenCV路径而已。直接按照第一个链接博客中编译程序那个语句执行,如果生成了test2可执行程序并能运行图片成功,就表示OpenCV安装好了。

备注:在机器人上部署时,编译OpenCV又遇到额外两个问题:

  1. 报错 fatal error: opencv2/xfeatures2d.hpp: No such file or directory

    1. 解决办法:cmake时指定:-D BUILD_opencv_xfeatures2d=OFF。参考:https://www.jianshu.com/p/bf8533725b16https://github.com/opencv/opencv_contrib/issues/1534

  2. In file included from /home/moi/yinming/OpenCV/opencv-4.5.1/modules/python/src2/cv2.cpp:38:0:
    /home/moi/yinming/OpenCV/opencv-4.5.1/build/modules/python_bindings_generator/pyopencv_generated_include.h:178:34: fatal error: opencv2/sfm/robust.hpp: No such file or directory
    1. 解决办法:在opencv_contrib-4.1.1/modules/hdf/include/opencv2/hdf/hdf5.hpp 文件中修改第40行 添加#include "/usr/include/hdf5/serial/hdf5.h"。参考:https://blog.csdn.net/sheqianweilong/article/details/102646929

5 编译安装PCL库,并测试

官方推荐的在Linux系统安装方法是:

  1. 新建一个终端
  2. 输入:sudo apt-get install libpcl-dev

我的在安装过程中,没有报任何错。当然更多的安装方法,可以参考如下:

  1. Ubuntu16.04 下安装点云库 PCL https://zhuanlan.zhihu.com/p/144885134
  2. 在自己的工程文件中使用 PCL https://zhuanlan.zhihu.com/p/149591434

直接安装好库后,使用的上述第2个链接中main.cpp代码和CMakeLists.txt代码测试PCL是否安装成功。

我在测试中,直接按照上述方法编译demo报错了,后来详细研读后,尝试将作者CMakeLists.txt中:

find_package(PCL REQUIRED COMPONENTS common io)

这一句替换为:

find_package(PCL REQUIRED)

即将PCL所有库模块都找到。只要改动这一句,自己在build文件夹内放入一张PCD文件后,就能编译和运行通过,程序返回你那PCD文件总的点云个数。

6 安装ROS

网上很多教程,但是最精简、最靠谱的参考安装方法如下:

Ubuntu18.04 melodic 安装与下载ROS(超详细教程):https://www.guyuehome.com/10082

备注:

如果不能翻墙,可能会遇到某几个文件不好下载的问题,上面链接中提到的两个方法,我是通过增加DNS通过的,当然也不是一次性通过的,具体试了多少次命令也忘了。

7 安装realsense-ros,并测试

安装方法参照官网:https://github.com/IntelRealSense/realsense-ros中方法1(使用apt-get直接安装)

具体过程:

  1. 新建终端
  2. 执行:export ROS_VER=melodic
  3. 执行:sudo apt-get install ros-$ROS_VER-realsense2-camera

测试:

  1. 新建终端,并执行:roslaunch realsense2_camera rs_camera.launch
  2. 再新建一个终端,并执行:rviz
  3. 在弹出的rviz软件中,左下角有个‘Add’,然后在弹框中选择‘By topic’选择数据源,这样就能看到realsense实时采集的数据了。(具体rviz使用方法还需要多了解)

备注:

  1. 如果运行roslaunch realsense2_camera rs_camera.launch时,报如下错误:
    1. "failed to open usb interface: 0, error: RS2_USB_STATUS_ACCESS"
    2. 解决方法:把99-realsense-libusb.rules放到/etc/udev/rules.d文件夹内,需要重新拔插一次realsense!  (https://github.com/IntelRealSense/realsense-ros/issues/1408)
  2. 自己在安装realsense-ros时,刚开始用的源码编译安装方法,遇到‘/home/xxx/catkin_ws/devel/lib/librealsense2_camera.so: undefined symbol’这样的错误,花了1天时间全网和GitHub上搜集答案,但依旧没能解决。最终换用apt-get方式安装realsense-ros后,才没出现这个问题。
  3. 在使用apt-get方式安装realsense-ros后,由于不清楚rviz中还有Add数据源,又花了1个多小时去查找问题,以为apt-get方式安装的realsense-ros方式也不行。最终还是别人偶然帮我操作了下rviz,才让数据源在rviz中出现。。。。。

8 安装Openvino

  1. 官网下载离线安装包。
  2. 解压:tar -xvzf l_openvino_toolkit_p_2021.4.582.tgz
  3. cd l_openvino_toolkit_p_2021.4.582
  4. sudo ./install_GUI.sh 一路next安装
  5. cd /opt/intel/openvino_2021/deployment_tools/model_optimizer(openvino跟CUDA一样,有个动态链接文件夹(用于区分多版本安装问题),这个openvino_2021就是动态链接文件夹)
  6. sudo -E ./install_openvino_dependencies.sh
  7. gedit ~/.bashrc
  8. 把如下两行放置到bashrc文件尾
    1. source /opt/intel/openvino_2021/bin/setupvars.sh
    2. source /opt/intel/openvino_2021/opencv/setupvars.sh
  9. source ~/.bashrc 激活环境
  10. cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites

  11. sudo ./install_prerequisites_onnx.sh(配置onnx依赖,用于onnx转IR)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/660530
推荐阅读
相关标签
  

闽ICP备14008679号