slam的环境配置大全--保姆教学

本文参照哔哩大学的视频【高翔x助教黑熊x深蓝学院】视觉SLAM理论与实践环境搭建,我黑熊又来了!但是视频没有给出安装包链接,而且视频中间出错一次。
本博客根据安装无数遍后的踩坑而总结,根据每一步链接应该可以完成(前提你熟悉ubuntu,我用的ubuntu18版本)。
在这里插入图片描述

首先,每个库的版本都很重要,把每个库都重新安装一遍最好。
环境配置成功后sudo apt-get upgrade 指令就一般不要用了。

先在终端运行两句:

sudo apt-get update 
sudo apt-get install build-essential cmake

开始安装

1、Eigen3.3.9安装

Eigen3.3.4以上的Eigen3版本对于目前的slam环境都可用,但是亲测Eigen3.3.9的毛病最少。

参照这个链接:https://blog.csdn.net/knswd/article/details/113006153
Eigen是一个c++开源线性代数库,后边几个库都要根据Eigen3.3.9来安装,很重要。安装后应该在/usr/local/include/eigen3 中能找到eigen3文件夹。

查看已经下载的Eigen3的方法为指令:

gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h

其中后边可以改成自己Eigen3的位置,下图中竖着的几个数字3.3.4即为版本号。
在这里插入图片描述

2、Sophus安装

sophus需要依赖fmt库,因此优先安装fmt:

git clone  https://github.com/fmtlib/fmt.git
cd fmt
mkdir build
cd build
cmake ..
make
sudo make install

再安装sophus,自己建立一个文件夹,在终端打开,然后:

git clone https://github.com/strasdat/Sophus.git
cd Sophus/
mkdir build
cd build
cmake ..
make
sudo make install

在这里强调!不要回滚git checkout a621ff,否则会装成老版本的非模板sophus(网上大多教程都有回滚)
千万不要回滚!!!!!
且强调
sudo make install一定要有。

最后测试,先看看这个目录下有没有sophus
在这里插入图片描述然后导入头文件看看
(1)CMakeList.txt ( 同时加入eigen和sophus的依赖 )

cmake_minimum_required(VERSION 2.8)
project(useSophus)

# 为使用 sophus,需要使用find_package命令找到它
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})

# Eigen
include_directories("/usr/local/include/eigen3")
add_executable(useSophus useSophus.cpp)
target_link_libraries(useSophus ${Sophus_LIBRARIES} fmt)

注意,include_directories(“/usr/local/include/eigen3”) 一定是这个路径,而不是直接usr/include/eigen3,因为你自己编译安装的是在local下面。
(2)测试

#include <iostream>
#include <cmath>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include "sophus/se3.hpp"

using namespace std;
using namespace Eigen;

/// 只是导入头文件看看能不能成

int main()
{


}

3、安装Pangolin

Sophus和这个Pangolin必须在Eigen3.3.#的版本安装,如果装过建议重装。若和Eigen版本不对应则后边无法运行。
已安装的卸载:在Pangolin文件夹的build文件夹下打开终端,输入

sudo make uninstall

卸载。然后删除Pangolin文件夹,按照下文重新安装。

先安装两个必要依赖:

sudo apt install pkg-config python3-pip
sudo apt install libglew-dev

推荐依赖:python2、用于python和C++互相调用所需的库pybind11、图形库Pillow等其他python模块、Linux 新型显示服务架构Wayland

sudo apt install libpython2.7-dev
git submodule init && git submodule update
sudo python -mpip install numpy pyopengl Pillow pybind11
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

然后安装Pangolin,打开终端以下指令安装。
一定要安装0.5版本,默认下载就是0.6版本了。0.5版本安装包链接如下:
https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.5

cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
sudo make install

4、安装Ceres-solver

先安装依赖:

#google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
#BLAS&LAPACK
sudo apt-get install libatlas-base-dev
#SuiteSparse and CXSparse(optional)
sudo apt-get install libsuitesparse-dev

然后去https://github.com/ceres-solver/ceres-solver下载安装包,点击网站页面的Code,选择Download zip即可下载。找到下载的文件夹,解压并在文件夹中打开终端,然后输入以下指令完成安装:

mkdir build && cd build 
cmake ..
make -j3
make test
sudo make install

5、安装g2o

先安装依赖:

sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5

然后去https://github.com/RainerKuemmerle/g2o下载安装包,点击网站页面的Code,选择Download zip即可下载。找到下载的文件夹,解压并在文件夹中打开终端,然后输入以下指令完成安装:

mkdir build && cd build 
cmake ..
make
sudo make install

6、安装opencv

(可以卸载完后参照我以前的博客:ubuntu安装opencv

首先先把以前的Opencv完全卸载:

进入原先编译opencv2的build目录,在该目录下打开终端;再执行以下代码。(注意如果build已经删除了,可以重新编译一遍该版本的opencv,然后在最后一步执行sudo make uninstall)

sudo make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*

代码执行后会报错,忽略掉

sudo apt-get --purge remove opencv-doc opencv-data python-opencv

用以下代码检查opencv是否卸载干净

pkg-config opencv --libs
pkg-config opencv --modversion

若仍能显出opencv的相关信息,则存在两种可能:
可能一:未卸载干净
执行以下代码

sudo apt-get autoremove opencv-doc opencv-data libopencv-dev libopencv2.4-java libopencv2.4-jni python-opencv libopencv-core2.4 libopencv-gpu2.4 libopencv-ts2.4 libopencv-photo2.4 libopencv-contrib2.4 libopencv-imgproc2.4 libopencv-superres2.4 libopencv-stitching2.4 libopencv-ocl2.4 libopencv-legacy2.4 libopencv-ml2.4 libopencv-video2.4 libopencv-videostab2.4 libopencv-objdetect2.4 libopencv-calib3d2.4

可能二:
库已经被删除,但系统里仍保留了配置文件
打开/usr/local/lib/pkgconfig文件夹,发现有一个opencv.pc,打开该文件,里面写有包含路径与库路径,确保包含路径与库路径均被清空后,删除该pc文件,重新执行pkg-config opencv --libs pkg-config opencv --modversion
显示下面这样就可

No package ‘opencv’ found

卸载完后安装:
首先安装依赖:

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran libgtk2.0-dev libjpeg-dev libpng-dev

然后去https://github.com/opencv/opencv/tree/3.4.12下载安装包,点击网站页面的Code,选择Download zip即可下载。找到下载的文件夹,解压并在文件夹中打开终端,然后输入以下指令完成安装:

mkdir build && cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j4
sudo make install

最后运行下边代码,结合我的截图理解:

sudo gedit /etc/ld.so.conf.d/opencv.conf
添加:
     /usr/local/lib
sudo ldconfig
sudo gedit /etc/bash.bashrc
添加:
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH
source /etc/bash.bashrc
sudo updatedb

**上边这一段代码的注释:**安装好opencv后要告诉系统,安装好了,即首先运行sudo gedit/etc/ld.so.conf.d/opencv.conf,弹出一个文本编辑的小窗,在里边添加上/usr/local/lib即可,如下图
在这里插入图片描述在这里插入图片描述

写好了运行sudo ldconfig,即加载上边写的那个。再运行sudo gedit /etc/bash.bashrc,弹出一个系统的环境变量文档,在最后加上:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
在这里插入图片描述

这两句话加上后用source /etc/bash.bashrc让其生效,然后sudo updatedb全部加载一下。

以上所有安装包和依赖就配置完成了。

在这里插入图片描述这个环境下可以完成大部分的slam开源项目,例如ORB_SLAM 2

安装ORB_SLAM 2

选择放置ORB_SLAM2工程的文件夹(如果需要在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下),在该文件夹中打开终端,执行一下命令:
在 ORB_SLAM2/include/System.h 中加上 #include <unistd.h>

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh

如过需要在ROS环境下运行ORB_SLAM,则需要执行一下命令:

chmod +x build_ros.sh
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS
./build_ros.sh

如果机器性能较低,可以将build.sh文件和build_ros.sh文件中的命令make -j全部改为make

运行ORB_SLAM2

我们使用KITTI数据集中的数据运行ORB_SLAM2。KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。整个数据集由389对立体图像和光流图,39.2 km视觉测距序列以及超过200k 3D标注物体的图像组成,以10Hz的频率采样及同步。

我们可以通过如下链接进行下载:http://www.cvlibs.net/datasets/kitti/eval_odometry.php
在ORB_SLAM2文件夹下打开终端,执行以下命令来运行程序:

./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

KITTI数据集有多组数据,不同的数据集需要选择不同的配置文件。所以我们需要根据KITTI数据集中数据编号来修改以上命令。以KITTI中第00组数据为例,在终端输入一下命令:

./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml PATH_TO_DATASET_FOLDER/dataset/KITTI/sequences/01

其中PATH_TO_DATASET_FOLDER指KITTI数据集所在文件夹的路径。

运行之后效果如下图所示:
在这里插入图片描述

要配置ORB-SLAM3的环境,您需要按照以下步骤操作: 1. 安装依赖库:ORB-SLAM3需要使用一些第三方库,例如OpenCV、Eigen、Pangolin等。确保您已经安装了这些库。您可以通过以下命令在Ubuntu上安装它们: ``` sudo apt-get install libeigen3-dev libopencv-dev libpangolin-dev ``` 2. 克隆ORB-SLAM3的代码库:使用Git工具克隆ORB-SLAM3的代码库到您的本地机器上: ``` git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ``` 3. 编译ORB-SLAM3:进入克隆的代码库目录,并创建一个build目录。然后,使用CMake来配置和构建ORB-SLAM3: ``` cd ORB_SLAM3 mkdir build cd build cmake .. make -j4 ``` 4. 下载Vocabulary文件:在ORB-SLAM3的代码库中,有一个vocabulary文件夹。您需要下载一个适合您的应用的vocabulary文件。例如,如果您想使用ORB-SLAM3的Monocular模式,可以从官方网站(https://github.com/UZ-SLAMLab/ORB_SLAM3#downloads)下载Monocular-vocabulary文件,并将其放置在vocabulary文件夹中。 5. 配置数据集:ORB-SLAM3需要一个输入图像序列作为输入数据集。您可以使用自己的数据集,或者从ORB-SLAM3的官方网站上下载一些示例数据集。 6. 运行ORB-SLAM3:使用以下命令来运行ORB-SLAM3,并指定您的数据集和相机参数: ``` ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml 数据集的路径 ``` 这些步骤可以帮助您配置和运行ORB-SLAM3。请确保按照文档提供的说明进行操作。如果遇到任何问题,您可以参考ORB-SLAM3的官方文档或在相关论坛上寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值