ORB_SLAM2源码资源包 该资源包是提取和跟踪的特征点使用ORB。ORB特征的提取过程非常快,适合用于实时性强的系统。该资源包没有进行编译,而是自己需要手动编译的! 在进行ROS学习的时候,必不可少的学习阶段就是对于ORB_SLAM2的学习,同时,也是通过自己进行文件的编译而执行的可视化视觉系统,本次博客,林君学长主要带大家了解ORB_SLAM2的安装及配置
通过以上的定义和特点,详细大家对ORB_SLAM2有一定的了解啦,现在,就开始ORB_SLAM2的安装吧 Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。可以用于3D视觉和3D导航的视觉图,可以输入各种类型的视频、并且可以保留视频和输入数据用于debug 1)、从gitHub上面下载Pangolin包到本地 3)、配置编译 编译成功如上所示: 1)、opencv的安装,林君学长另外写了一个博客,小伙伴们可以参考opencv的安装博客哦,链接如下: Eigen的神奇之处在于,它是一个纯用头文件搭起建起来的库。这意味着你只能找到它的头文件,而没有.so或.a那样的二进制文件。在使用时只需引入Eigen的头文件即可,不需要链接库文件! 1)、安装命令如下所示: 2)、查看Eigen库的具体位置 在进行ORB_SLAM2安装是,我们需要准备一些工具,用于编译或者是下载ORB_SLAM2的源码,具体步骤如下所示: 1)、下载ORB_SLAM2资源包 下载过程较慢,请耐心等待! 1)、进入ORB_SLAM2包 2)、修改build.sh文件权限 3)、编译build.sh文件 1)、如果需要在ROS环境下运行ORB_SLAM,我们需要通过对build_ros.sh文件进行编译,具体步骤如下所示: 2)、添加环境变量,添加到 .bashrc文件尾部 其中,~/lenovo/ros/ 对应林君学长自己的ROS工作空间的路径和名称,具体根据自己的ROS工作空间进行修改! 该编译过程也需等待时间,静静等待着就是了哈,当然,在最后可能会包错,如下所示: 如下所示: 1)、进入ros空间,下载usb_cam 4)、创建usb_cam编译文件夹 5)、编译 1)、在路径为:ros/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src下的ros_mono.cc文件,如下所示: 1)、通过以下链接,下载TMU数据集, 1)、创建Data文件夹 2)、将下载好的数据集通过传输软件上传至该文件夹下面并提取文件到此处 1)、输入以下命令,进行单目运行 其中,Data/rgbd_dataset_freiburg1_xyz/ 就是我们刚刚数据集的路径哦 下载的数据集中有很多组数据,都可以进行测试!这里,就给出上面两个测试结果啦! 为了能够在线实时地运行ORB-SLAM2,需要借助ROS和笔记本电脑的摄像头,因此,确保自己笔记本摄像头已经接入电脑哦! 以上代码中xxx代表自己ubuntu的用户名、lenovo/ros代表林君学长自己的ROS空间, 以上就是本次博客的全部内容啦,希望小伙伴通过对本次博客的阅读,可以帮助你们了解ORB_SLAM2在ros上的运行哦!
ROS学习【17】—–ubuntu16.04上ORB_SLAM2的安装及配置目录
一、了解ORB_SLAM2
1、什么是ORB_SLAM2
system”发表在2015年的IEEE Trans. on Robotics上。2、ORB_SLAM2的特点
二、安装Pangolin
1、安装下载及编译工具
sudo apt-get install cmake sudo apt-get install git sudo apt-get install g++
2、安装依赖
sudo apt-get install libglew-dev sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev sudo apt-get install libpython2.7-dev
3、安装Pangolin
git clone https://github.com/stevenlovegrove/Pangolin.git
2)、进入Pangolin文件夹,创建编译文件夹cd Pangolin mkdir build cd build
cmake -DCPP11_NO_BOOSR=1 ..
4)、编译Pangolin资源文件sudo make -j8
三、安装opencv
https://blog.csdn.net/qq_42451251/article/details/105565305四、安装Eigen库
sudo apt-get install libeigen3-dev
sudo updatedb locate eigen3
可以看出,eigen3库的位置在usr/include/eigen3这个目录下,记住该目录,后面需要用到!五、ORB_SLAM2的安装
1、将ORB_SLAM2包克隆到ubuntu本地
cd git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
2)、林君学长已经将下载完成后的ORB_SLAM2资源包上传至ImapBox的后台我的资源模块,小伙伴可以通过如下链接进行下载,下载链接如下:
https://download.csdn.net/download/qq_42451251/12332604
3)、将ORB_SLAM2源代码资源包剪切到ROS工作空间的src文件夹下面去
2、ROS空间下的ORB_SLAM2包的编译
cd ~/lenovo/ros/src/ORB_SLAM2
chmod +x build.sh
./build.sh
该过程,一般来说,会在百分之59处等待许久,但请不要关闭,大约5分钟之后,就会继续编译,因为有些进程需要编译的等待时间
4)、如果想快进程编译,可以修改build.sh文件中的make -j为make -j8,当然,若果自己的电脑配置低,建议修改为make,单线程编译;下面的build_ros.sh文件也可以这样操作哦!
3、在ROS环境下运行ORB_SLAM的准备
1.继续在当前中终端进行权限修改chmod +x build_ros.sh
gedit ~/.bashrc export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/lenovo/ros/src/ORB_SLAM2/Examples/ROS
3)、编译 build_ros.sh文件./build_ros.sh
出错原因为:libboost_system.so 与libboost_filesystem.so找不到链接目录
4)、解决方案
1.查看boost_system和boost_filesystem的具体位置locate boost_system locate boost_filesystem
2、复制上面的文件名,然后再对应路径 /usr/lib/x86_64-linux-gnu下去寻找对应的上述文件,并将libboost_system.so和libboost_system.so.1.58.0与libboost_filesystem.so和libboost_filesystem.so.1.58.0一起复制到ORB_SLAM2/lib路径下,如下所示:
3.将上面的四个文件,复制到ORB_SLAM2/lib的路径下面
4.将ORB_SLAM2/Examples/ROS/ORB_SLAM2下的Cmakelists.txt中加入库目录
找到set()函数,并在该函数末尾添加如下代码:${PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so ${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so
保存后关闭
5)、在刚刚的终端再次进行编译,成功如下所示:./build_ros.sh
到这里,我们的ORB_SLAM2就基本安装完成,接下来,我们将进行数据集的下载及处理,然后进行运行六、安装usb_cam
1、下在安装usb_cam
cd lenovo/ros/src git clone https://github.com/bosch-ros-pkg/usb_cam.git
2)、编译ROS工作空间cd ~/lenovo/ros ctakin_make
3)、程序注册,使得该功能包生效source ./devel/setup.bash
cd src/usb_cam mkdir build cd build
cmake .. make -j8
6)、修改usb_cam launch文件权限
去usb_cam下的launch文件夹中找到该launch文件,配置他的权限,使之成为可执行程序:
7)、接入笔记本电脑摄像头
8)、新建终端,运行相机节点:roslaunch usb_cam usb_cam-test.launch
至此,我们的usb_cam摄像头就下载测试完成,关闭运行的节点,终端暂时不忙关闭,后面还需要用到此终端!接下来,我们需要将ORB_SLAM2下的c语言文件的相机节点修改为usb_cam/image_raw2、修改配置文件的相机节点
2)、修改上面三个文件的内容,将相机节点修改为usb_cam/image_raw,当然,后面的实现我们只会用到ros_mono.cc文件,因此,暂时,你可以只修改这个,建议都修改吧:usb_cam/image_raw
3)、再次编译ORB_SLAM2下的build_ros.sh文件chmod +x build_ros.sh ./build_ros.sh
可以看到,我们修改的文件的节点更新啦!
到这里,我们需要配置就ok啦,接下来开始我们的实验吧!七、ORB_SLAM2的单目运行
1、TUM数据集下载
https://vision.in.tum.de/data/datasets/rgbd-dataset/download
2、在ROS空间下的ORB_SLAM2包中创建Data文件夹,用于存放TMU数据集
mkdir Data
到这里,我们数据集就已经准备完成,接下来,我们将进行ORB_SLAM2数据集的运行操作啦!3、基于ORB_SLAM2中TMU的单目运行
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml Data/rgbd_dataset_freiburg1_xyz/
2)、单目运行结果如下所示:
图中右侧窗口中的蓝色小方块为提取的图像ORB特征,左侧窗口显示了环境的稀疏地图和相机的运动轨迹。
3)、除此之外,我们的数据集中还有很多组数据,我们也可以通过其他组的数据进行测试,测试代码如下: ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM2.yaml Data/rgbd_dataset_freiburg1_xyz/
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM3.yaml Data/rgbd_dataset_freiburg1_xyz/
4、基于ROS下ORB-SLAM2包中摄像头的单目运行
1)、在上面新建的终端中再次运行摄像头节点,roslaunch usb_cam usb_cam-test.launch
2)、调用笔记本电脑的摄像头进行实时运行ORB-SLAM2 rosrun ORB_SLAM2 Mono /home/xxx/lenovo/ros/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/xxx/lenovo/ros/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
抱着自己的笔记本电脑慢慢的走一圈,我们就可以看到左边窗口在进行路径规划,右边窗口在捕捉RGB!一定要缓慢移动哦!
3)、除了通过Mono ,我们还可以通过其他可执行文件运行,比如以下标记的都可以,林君学长暂时只测试了这两个哦,其他的还没有测试:
rosrun ORB_SLAM2 RGBD /home/xxx/lenovo/ros/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/xxx/lenovo/ros/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
遇到问题的小伙伴评论区留言,林君学长看到会为大家解答的,这个学长不太冷!
陈一月的又一天编程随岁月^ _ ^
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算