ubuntu16.04中运行orb-slam2_with_semantic_labelling-master

本文介绍如何在Ubuntu16.04环境下搭建ORB-SLAM2_with_semantic_labelling项目,包括所需软件版本及安装步骤,如pcl1.8、vtk7.1.1等,同时分享了解决编译过程中遇到的问题的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ubuntu16.04中运行orb-slam2_with_semantic_labelling-master

运行环境:

GTX 1080t 8GB
Ubuntu16.04
vtk7.1.1
pcl1.8
opencv3.4.1
cmake3.18
cuda8.0
cudnn6.0.21
**
orb-slam2_with_semantic_labelling-master是在orb_slam2基础上进行的,所以先安装好orb_slam2的运行环境

参考博客:https://blog.youkuaiyun.com/qq_36318986/article/details/100733741
源码: https://github.com/qixuxiang/orb-slam2_with_semantic_labelling

1.pcl1.8+vtk7.1.1

我的电脑安装了ros,有自带的pcl1.7,但这个会运行报错,(因为这是我在运行成功之后突然想记录一下,所以一些过程没有截图)
系统是可以共存1.7和1.8的,我就直接安装pcl1.8 。
pcl1.8链接
https://github.com/PointCloudLibrary/pcl/releases
1.安装一些依赖项

sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui 
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common  
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev

sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev//安装vtk7.1.1 这句不用执行

sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev 
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre

sudo apt-get install libopenni-dev 
sudo apt-get install libopenni2-dev

在usr/local下新建文件

sudo mkdir pcl1.8.1

解压下载的pcl1.8压缩包,新建build文件夹进行编译
https://github.com/PointCloudLibrary/pcl/releases

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/pcl1.8.1 -D CUDA_GENERATION=Kepler -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=OFF -D WITH_OPENGL=ON -D BUILD_TIFF=ON ..

make -j8

sudo make install

在orb-slam2_with_semantic_labelling-master目录下的CMakelist.txt中设置pcl1.8路径

set(PCL_INCLUDE_DIRS /usr/local/pcl1.8.1/include/pcl-1.8)

之后可以进行测试是否安装成功,网上很多,这里就不细说了,测试结果如下
在这里插入图片描述

2.pcl与vtk之间有对应的版本 我安装的是pcl1.8.1+vtk7.1.1
vtk的官网

vtk下载完解压、安装、编译:在build目录下,

    cmake ..
    sudo make
    sudo make install

**

2.cmake1.18

cmake1.18链接:
https://github.com/Kitware/CMake/releases/
下载cmake1.18解压,文件下有四个文件
bin doc man share
把这4个文件夹放在usr/local/cmake下

sudo mkdir cmake

先复制要移动的文件夹,打开终端,输入:sudo nautilus;然后选定位置,进行粘贴就行

sudo nautilus

之后更新配置文件

sudo gedit ~/.bashrc
//末尾添加
export PATH="/usr/local/cmake/bin:$PATH"
//保存退出
source ~/.bashrc
//查看版本
cmake --version
显示
cmake version 3.18.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).
安装成功

在这里插入图片描述

3.编译

首先分别编译thirdparty下的darknet、g2o、DBoW2

mkdir build && cd build
cmake ..
make -j8

**问题:**在编译darknet时报错,删除build文件,在建立新Build文件在编译报错,再次删除build,新建build,编译,成功
不知道问题在哪,总之问题解决,成功编译

再次编译整个项目
在orb-slam2_with_semantic_labelling-master下新建build文件,

cmake ..
make -j8

最后运行在orb-slam2_with_semantic_labelling-master下运行build.sh

./build.sh

在这里插入图片描述

4.运行

在darknet中找到yolov3.weights和yolov3.cfg替换bin文件下的yolov3.weights和yolov3.cfg,并在bin文件下创建img文件

mkdir img

在bin文件下运行

cd orb-slam2_with_semantic_labelling-master/bin
 
./rgbd_tum ../Vocabulary/ORBvoc.txt ../Examples/RGB-D/TUM2.yaml ../data/rgbd_dataset_freiburg2_rpy/ ../data/rgbd_dataset_freiburg2_rpy/associations.txt

运行截图如下:
在这里插入图片描述

5.存在问题

1.出现如下问题,我的是因为显存太小,换了个8GB的显存可以成功运行
在这里插入图片描述

2.运行之后,还有个问题
[pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would overflow.
好像是因为点云数量过大,待解决…

### 回答1: ORB-SLAM2_with_semantic_label是一种基于ORB-SLAM2的视觉SLAM系统,它使用语义标签信息来增强场景理解和地图构建。该系统通过将每个地图点与语义标签相对应,从而为地图中的每个区域提供更多的上下文信息。这有助于提高系统的鲁棒性和场景理解能力,并可以在机器人导航、自动驾驶等领域得到广泛应用。 ### 回答2ORB-SLAM2是一种视觉SLAM算法,可以实现从单个或多个摄像头的图像序列中实时重建3D地图,同时在该地图中定位相机。它广泛应用于机器人导航、增强现实、自动驾驶等领域。然而,在某些现实场景中,例如室内场景、城市环境等,只有3D地图是不够的,需要利用语义信息来更好地理解环境。 因此,ORB-SLAM2的研究人员进行了扩展,开发了一种ORB-SLAM2_with_semantic_label算法,以结合视觉SLAM和语义信息。该算法的目标是在ORB-SLAM2中增加对语义信息的支持,从而允许机器理解其所在环境中的物体及其特征。该算法的一个重要应用是在机器人导航中,机器人可以利用语义标签对其周围环境进行更准确、更可靠的理解,从而更好地规划路径。 该算法的关键步骤包括以下几个方面。首先,需要将语义分割模型与ORB-SLAM2进行集成,产生语义标记的地图,这可以在ORB-SLAM2映射初始化期间完成。其次,需要利用深度学习技术提取图像的语义特征,用于在传统视觉SLAM系统中增加语义信息。接着,需要将ORB-SLAM2中的回环检测模块改进,以考虑语义信息来消除误报。最后,需要使用机器学习算法,通过对特定环境中所遇到的物体的历史观测进行学习,从而使机器人能够在不同环境中尽可能准确地识别物体。 该算法的优点是可以在不增加太多计算量的情况下增加语义信息,从而使机器能够自然地与人类进行交互。但是,该算法的缺点是需要对语义标注数据进行精确的手动标注,这是一项非常耗时的任务。此外,该算法对光照和尺度变化非常敏感,因此在实际应用中需要特别注意。 ### 回答3: ORB-SLAM2是一种基于视觉SLAM技术的实时多目标跟踪和定位系统,它结合了ORB特征提取器和BoW词袋模型,使得系统具有高效的实时位姿估计能力。而ORB-SLAM2 with Semantic Label则是在ORB-SLAM2的基础上,加入了语义标签的支持。 语义标签是指对环境元素的分类标注,例如标注图像中的建筑、人、车等。加入语义标签的目的是提高系统对环境信息的理解和描述能力。在ORB-SLAM2 with Semantic Label中,可以通过在输入图像中标记语义标签信息,并将其存储到地图数据中,从而实现地图的语义化描述。同时,语义标签可以通过深度学习等技术来实现自动分类。 与传统的视觉SLAM系统相比,ORB-SLAM2 with Semantic Label可以更好地应对复杂的环境场景。在城市街道和室内场所等环境中,ORB-SLAM2 with Semantic Label可以对人、车辆和建筑等复杂元素进行识别,并在建立地图时,将这些语义信息一同存储在地图中。这样可以提供更为精确的地图信息,使得系统的位置估计更加准确、稳定。 总之,ORB-SLAM2 with Semantic Label是一种具有语义理解能力的SLAM系统,可以为机器人的自主导航和环境理解等方面的应用提供更为准确、可靠的基础支撑。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值