用Opencv4.5.2+Melodic+电脑自带摄像头跑通ORB-SLAM2

2 篇文章 0 订阅

如何在Ubuntu18.04上用Opencv4.5.2+Melodic+电脑自带摄像头跑通ORB-SLAM2



前言


一、安装环境

  1. Ubuntu18.04
    Linux发展至今,已经发布了多种版本,镜像文件可以Ubuntu官网上下载安装版本选择
    对于虚拟机,就不再这里推荐了,建议直接上双系统,这里可能又会出现两个问题:
    1.需不需要再加装一块固态硬盘 ?
    2.之后万一系统崩了,怎么快速恢复?
    我个人建议,如果可以,就再加装一块固态硬盘,关于拆机的问题,可以参考这篇文章
    关于双系统的安装,可以参考这篇文章

  2. Melodic
    关于Melodic的安装,可以参考我之前的一篇文章ROS是什么及ROS的安装

  3. ORB-SLAM2
    想要将ORB-SLAM2跑起来,还需要安装一些必要的依赖库,如Pangolin、OpenCV、Eigen3等,这里推荐参考这篇文章ORB-SLAM2 “工具安装 和 系统运行“ 详细过程

以上的安装过程,可能会消耗大量的时间,坑会比较多,但我希望大家在安装时都可以没有报错

二、构建功能包

第一:首先确定自己有一个ROS的工作空间,并对其进行初始化,为下一步创建功能包作准备。

mkdir  -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

第二:开始构建发布话题的摄像头调用功能包,这里建议直接借用官方给出的usb_cam功能包

cd catkin_ws/src

//git拉取代码,如果速度很慢,使用方法2拉取,如果没有安装git,请根据提示安装git即可,或者自行百度一下
git clone https://github.com/bosch-ros-pkg/usb_cam usb_cam   //方法1
git clone https://hub.fastgit.org/bosch-ros-pkg/usb_cam usb_cam		//方法2
cd usb_cam
mkdir build 
cd build 
cmake ..   //Cmake编译
make 	   //make编译

第三:打开ROS检查,功能包是否编译正常

roscore
roslaunch usb_cam usb_cam-test.launch

如果得到如下图的效果即为正常
在这里插入图片描述
其余的一些操作可以参考这篇文章用电脑自带的摄像头跑orb_slam2

第四:如果在操作到这一步中遇到了如下图的问题
在这里插入图片描述
我在安装Opencv时没有指定安装的版本,所以最后安装Opencv的版本为Opencv4.5.2,而在ROS中集成的Opencv为Opencv3.2.0。开始时由于对Opencv了解比较少,所以在这里卡了很久,在查了一些资料之后,发现可能是Opencv版本冲突的问题,在ORB-SLAM2中Cmakelist中我并没有指定Opencv库的调用位置,所以,在运行ORB-SLAM2时,会自动的指向ROS(Melodic)中自带的Opencv版本。所以在明白了这一点之后,我经过查找资料,找到了一个比较合适的解决方法。

在解决这个问题过程中所参考的资料
1.OpenCV 4.3.0 引入的错误 TlsStorage releaseSlot 导致 crash
2.ROS下使用Opencv4.4.0,并且使用cv_bridge转换msgs与opencv图像
3.解决ROS配置中cv_bridge问题
4.ORB-SLAM2——(十一)ORBSLAM2在ROS下运行

这里也简述一下我的解决过程

  1. 下载最新的vision_opencv,复制文件夹到cakin_ws/src目录下
    注意这里要下载对应自己ROS版本分支的文件,比如我的ROS是melodic,那么需要在git clone时指定对应分支。
git clone -b melodic https://github.com/ros-perception/vision_opencv.git  方法1
git clone -b melodic https://hub.fastgit.org/ros-perception/vision_opencv.git  方法2

cd vision_opencv
cp cv_bridge home/xxx/catkin_ws/src   //xxx为你的用户名

在这里插入图片描述

2.更改cv_bridge中的Opencv版本,改成与自己安装版本一至,如我安装的版本为4.5.2,则需要对cv_bridge下的CMakeLists.txt文件中的这一部分进行修改。

find_package(OpenCV 4 REQUIRED
  COMPONENTS
    opencv_core
    opencv_imgproc
    opencv_imgcodecs
  CONFIG
)

3.编译cv_bridge

cd cv_bridge
mkdir build
cd build
cmake ..
make

然后在ORB-SLAM2下修改CMakeLists.txt,添加第一句set()来指定在运行ORB-SLAM2时,cv_bridge的路径,这样应该就可以避免多个Opencv版本之间的冲突问题。


set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake)   //在find_package前面

find_package(OpenCV 4 QUIET)
if(NOT OpenCV_FOUND)
   find_package(OpenCV 2.4.3 QUIET)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
   endif()
endif()

4.重新编译整个工作空间

cd catkin_ws
catkin_make

如果遇到报错,先解决报错,如果编译没有报

三、运行效果

首先启动ROS

roscore

按住Ctrl+Alt+T可以快速创建新的终端
创建一个新终端

roslaunch usb_cam usb_cam-test.launch

再创建一个新终端

rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM2.yaml

需要先对相机进行初始化,获取到一定数量的关键帧,然后才能进行SLAM点云建图。
在这里插入图片描述

这里是单目相机情况下的具体演示效果


总结

以上就是本文的内容,本文介绍了如何在Ubuntu18.04上用Opencv4.5.2+Melodic+电脑自带摄像头跑通ORB-SLAM2,本文写的比较粗糙,之后会补上缺失的部分重要内容。

这里立一个Flag,之后会在对ORB-SLAM2有一个系统全面的分析和源码解析博客。

参考资料:
(1)《ROS机器人开发实践》 胡春旭著
(2) ROS官网 http://wiki.ros.org/melodic/Installation/Ubuntu

如需转载请注明:转自CSDN甦傑

欢迎持续关注 我的ROS专栏

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在ROS Melodic中安装OpenCV,可以按照以下步骤进行操作: 1. 首先,确保已经安装了ROS Melodic。如果没有安装,请先安装ROS Melodic。 2. 打开终端,输入以下命令以更新软件包列表: ``` sudo apt-get update ``` 3. 然后,输入以下命令以安装OpenCV: ``` sudo apt-get install ros-melodic-opencv ``` 4. 安装完成后,可以使用以下命令检查OpenCV是否已经安装成功: ``` rospack find opencv ``` 如果输出结果为“/opt/ros/melodic/share/opencv”,则说明OpenCV已经成功安装。 5. 如果需要使用OpenCV的其他功能,可以安装相应的软件包。例如,如果需要使用OpenCV的Python接口,可以使用以下命令安装: ``` sudo apt-get install python-opencv ``` 如果需要使用OpenCV的GUI功能,可以使用以下命令安装: ``` sudo apt-get install libopencv-dev ``` 安装完成后,就可以在ROS Melodic中使用OpenCV了。 ### 回答2: Opencv是用于图像处理和计算机视觉的广泛使用的开源库。而ROS(Robot Operating System)是个用于机器人开发的操作系统,ROS允许机器人软件在不同的平台上运行,包含许多内在的库,用于帮助机器人的传感、控制和导航等。 在ROS的各种机器人应用中,Opencv的集成是很常见的。尤其是在使用机器人进行视觉检测、目标追踪或SLAM时,Opencv是必须的。下面是在ROS Melodic下安装Opencv的步骤: 1. 安装Opencv的相关依赖包 ``` sudo apt-get install libopencv-dev python-opencv ``` 2. 在ROS Melodic中安装Opencv ``` sudo apt-get install ros-melodic-vision-opencv ``` 3. 更新ROS Melodic的环境变量 ``` echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 4. 在ROS中使用Opencv 在ROS中使用Opencv时,需要添加以下行到C++代码的头文件中: ``` #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> ``` 同时,在编译代码时,需要链接Opencv库: ``` rosbuild_add_executable(image_view src/image_view.cpp) target_link_libraries(image_view ${OpenCV_LIBRARIES}) ``` 以上是在ROS Melodic下安装Opencv的简要步骤,特别是第二步是安装与ROS Melodic的版本兼容的Opencv库,确保机器人中所有程序的兼容性和稳定性。 ### 回答3: 在安装ROS Melodic之后,需要安装OpenCV才能进行更多图像处理的工作。在安装OpenCV之前,需要先确认电脑上是否已经有OpenCV。可以通过以下命令来检查: ```bash pkg-config --modversion opencv ``` 如果已经有安装的OpenCV版本,则不需要安装OpenCV。 如果电脑上没有安装OpenCV,那么需要执行以下命令来安装: ```bash sudo apt-get update sudo apt-get install ros-melodic-vision-opencv ``` 执行上述命令后,系统将会安装ROS Melodic版本所对应的OpenCV包。这个包将会包含一些基本的计算机视觉和图像处理的功能,包括图像读取、二值化、边缘检测、哈希直方图等等应用。 在安装OpenCV之后,需要配置一些环境变量,以便让ROS能够使用OpenCV这个库。可以把以下的命令添加到`.bashrc`文件中: ```bash echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc echo "source /usr/share/opencv4/setup.bash" >> ~/.bashrc ``` 以上命令来配置ROS和OpenCV的环境变量, 让电脑能够有更好的支持ROS和OpenCV基于ROS的代码开发。如果以上的命令不能正常工作,那么需要手动添加`/usr/share/opencv4/setup.bash`路径。 最后,重新启动终端,或者使用`source ~/.bashrc`命令来让修改的`.bashrc`文件生效。 现在,ROS Melodic已经准备好使用OpenCV库进行更多的图像处理和计算机视觉的相关工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值