首页 > 其他分享 >SLAM十四讲第二版代码环境配置-ubantu18.04

SLAM十四讲第二版代码环境配置-ubantu18.04

时间:2024-10-11 21:47:42浏览次数:12  
标签:ubantu18.04 make sudo dev apt SLAM build install 十四

前言

默认已经进入ubantu18.04界面,之前的怎么下载VM怎么从光盘文件安装18.04步骤就不再赘述了,主要是之前按照其他的博客安装时时常会出现一点问题,然后来网上各种缝缝补补。以下是所有步骤。

1.自适应屏幕+复制粘贴

这一部分主要是为了方便看屏幕和粘贴的工具性安装,可以通过虚拟机界面安装vmtools,也可以按一下步骤:
先删掉之前安装的(刚打开肯定没有的,这一步可以略去)

sudo apt-get autoremove open-vm-tools

安装tools

sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop

然后重启就可以了,直接关掉就行。

2.安装git ,Vim,g++和cmake3.30.4

这里cmake最好安装较新的版本,因为直接apt的话可能是3.10.x但是后面随版本更新装Pangolin时又需要3.24.x以上(反正装最近的就行)
还是先公式安装git,vim,g++吧

sudo apt-get install git
sudo apt install vim
sudo apt-get install g++

现在开始装cmake
cmake3.30.4(当然你也可以自己调整到合适版本)官网下载地址下载并解压到slam文件夹的三方文件夹下(装其他地方也可以,这里主要方便管理)

下载依赖不然报错

sudo apt-get install libssl-dev

开始编译(如果没有./configure,就./bootstrap)

./configure
make 
sudo make install

有时候为了快一点可以,但还是看你配置决定,太高在编译时万一配置不行就杀死进程了。

make -j2
make -j4
make -j6

3.slambook2源码下载

git clone --recursive http://github.com/gaoxiang12/slambook2

一定要加 --recursive,不然下出来的3rdparty里的文件夹全是空的(这时候就从github的slambook2的3rdparty文件夹内链接里相应位置一个一个找到链接点进去,到相应库位置下载下来替换)

4.Eigen

事先说明这个库会装两个版本,由于我也不知道的原因,截至2024年9月Pangolin等库要求更加新的eigen3.4版本,但是,后面的ceres库又要求与前些库冲突的低级的eigen3.2版本。有些博客说使用默认sudo apt-get install libeigen3-dev安装eigen的版本是3.2.x,但是现在已经是默认3.3了,所以在看到这篇文章的时候记得关注各个包的版本依赖问题!

下载eigen压缩包(较新版)

完了之后呢解压文件然后进去这个eigen文件,在里面:

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

为后期方便使用,建议将eigen3文件夹复制到/usr/include/目录下(运行之前你可以去对应位置看看有没有eigen3)

sudo cp -r /usr/local/include/eigen3 /usr/include/

5.fmt

这个是Sophus安装要装的
下载解压
fmt地址(记得按你现在的时间选择版本)
编译四步走哇~

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

6.Sophus

这个在装书的源代码是应该是下好了,如果你没有,看看4和5步骤,仿照下一个,版本的话就从slambook2源码3rdparty/Sophus下的链接进去下就可以。

总之你现在有这个文件夹了(并且里面还有cmakelist.txt文件)开始编译四步

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

安装完成后,可以在目录/usr/local/include/中查看是否生成sophus文件夹

7.Pangoiln

先装依赖

sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev libgl1-mesa-dev libglfw3-dev libglew-dev libepoxy-dev

到文件夹下

mkdir build && cd build
cmake  ..

这一步如果报错“ cannot import name ‘sysconfig’ ”
这里解决

make 
sudo make install

8.OPENCV 3.4.15

先装依赖

sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff5-dev libopenexr-dev libtbb-dev

然后还是从opencv官网(往下滑到底)下载,解压,进入文件夹

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

如果出现什么“Set non-toolchain portion of runtime path of “/usr/local/bin/opencv_version” to "/usr/local/lib”先别管,反正我没管之后也能运行,有懂的可以评论区说下。

9.ceres

先装依赖

sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
sudo apt-get install libatlas-base-dev

到ceres文件夹,编译四步

mkdir build && cd build
cmake ..
make

如果这一步make到schur消元时退出进程啥的。
一个可能的原因是eigen3.4不适配,请参考下面的链接解决
添加链接描述

sudo make install

10.g2o

依赖

sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3 qtbase5-dev qtchooser qtbase5-dev-tools

进文件夹编译四步

mkdir build && cd build
cmake ..
make

如果这里有报错“没有filesystem”之类的,可能是因为cmakelist文件里面的C++标准是11,改成17试试,这问题碰到的时候忘记笔记了。。。。之后记起来再更新一下,或者可以在评论区补充。

sudo make install

11.DBoW

没啥好说的,找到文件夹编译四步,没有的话自己下下来吧
最后要加个依赖

mkdir build && cd build
cmake ..
make
sudo make install
sudo apt-get install libcanberra-gtk-module

12.PCL和OCTOMAP

sudo apt-get install libpcl-dev pcl-tools liboctomap-dev octovis

13.gflags,glog,gtest

先下包(如果没有的话),记得mkdir那一步是解压文件夹进入后的步骤啊。。。
gflas

git clone https://github.com/gflags/gflags.git gflags_stable
mkdir build && cd build
cmake .. -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC ..
make
sudo make install

glog

git clone https://ghproxy.com/https://github.com/google/glog

进入文件夹

sudo apt-get install autoconf automake libtool
mkdir build && cd build
cmake ..
make
sudo make install

gtest
找到文件夹(这个应该直接有)进入

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

结语

ok结束,可能尚有遗漏的地方,望海涵,谢谢你们过来看!!!

标签:ubantu18.04,make,sudo,dev,apt,SLAM,build,install,十四
From: https://blog.csdn.net/qq_53736794/article/details/142862241

相关文章

  • ORB-SLAM2 ---- ORBextractor::ComputeKeyPointsOctTree
    文章目录一、函数作用二、源码及注释三、函数的讲解1.遍历金字塔的每一层,将其分成30*30的网格单元,并给每一层添加图像边界2.遍历每个单元格,提取特征点3.调用DistributeOctTree()函数分配特征点4.计算所有保留下来的特征点的方向信息一、函数作用ORB-SLAM2----......
  • 【优选算法】(第三十四篇)
    目录基本计算器II(medium)题目解析讲解算法原理编写代码字符串解码(medium)题目解析讲解算法原理编写代码基本计算器II(medium)题目解析1.题目链接:.-力扣(LeetCode)2.题目描述给你⼀个字符串表达式s,请你实现⼀个基本计算器来计算并返回它的值。整数除法仅保留整数部......
  • ORB-SLAM2源码学习:ORBextractor.cc 逻辑梳理
    前言 温馨提示:请在看过源代码的情况下看此文章学习效果更好。ORBextractor.cc这个源文件定义函数众多,要是按照源码的顺序进行学习会抓不住重点,下面是我梳理的四个核心函数。一、主入口函数:operator()说明:主入口函数直接调用了ComputePyramid()、ComputeKeyPointsOctTree()、......
  • 【K8s】专题十四(1):Kubernetes 安全机制之 RBAC
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口| 精选文章 | Kubernetes |Docker|Linux |羊毛资源 | 工具推荐 |往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决......
  • 《 C++ 修炼全景指南:十四 》大数据杀手锏:揭秘 C++ 中 BitSet 与 BloomFilter 的神奇性
    本篇博客深入探讨了C++中的两种重要数据结构——BitSet和BloomFilter。我们首先介绍了它们的基本概念和使用场景,然后详细分析了它们的实现方法,包括高效接口设计和性能优化策略。接着,我们通过对比这两种数据结构的性能,探讨了在不同应用场景中的选择依据。最后,博客还涵盖......
  • slam 14 讲之特征点和特征匹配
    前言视觉SLAM主要分为视觉前端和优化后端。前端也称为视觉里程计(VO)。它根据相邻图像的信息估计出粗略的相机运动,给后端提供较好的初始值。VO的实现方法分类:特征点法(提取特征),主流,成熟。运行稳定,对光照、动态物体不敏感。直接法(不提特征)在本讲中,我们将从特征点法入手,学习如何......
  • 前端学习-CSS的复合选择器(十四)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录前言什么是复合选择器后代选择器语法格式注意事项代码示例子选择器语法格式注意事项代码示例并集选择器语法格式伪类选择器链接伪类选择器​编辑注意事项:focus伪类选择器表格总结总结......
  • Django学习笔记十四:系统框架总结
    Django系统框架的主要特点Django是一个功能强大的PythonWeb框架,以下是对其系统框架的总结:一、MTV架构模型(Model):负责与数据库交互,处理数据的存储、检索、更新和删除等操作。通过定义数据模型类,Django可以自动生成数据库表结构,或者根据现有的数据库反向生成模型类......
  • 蓝桥杯2023年第十四届省赛A组-网络稳定性
    题目描述有一个局域网,由n个设备和m条物理连接组成,第i条连接的稳定性为wi 。对于从设备A到设备B的一条经过了若干个物理连接的路径,我们记这条路径的稳定性为其经过所有连接中稳定性最低的那个。我们记设备A到设备B之间通信的稳定性为A至B的所有可行路径的......
  • 第十四章 I/O系统
    一、I/O系统的分类1.输入流:程序从输入流读取数据  输出流:程序向输出流写入数据2.字节流:数据流中的最小的数据单元是字节  字符流:数据流中的最小单元是字符3.节点流、处理流二、I/O系统的四个抽象类1.Java中提供的流类型在包java.io内,分别继承自四个抽象类2.I/O系......