概述
最近在看高翔博士的 视觉SLAM十四讲,这本书对于入门来却是非常的直接,有着很多可以学习借鉴的知识。但是只是看一遍并没有多大的收获,因此在这里稍微的记录,方便自己之后的回顾学习。
首先是对自己学到的东西进行的反思,除了基本的概念之外,我还逐个把书上的代码写了一遍,并在ubuntu 18.04之上运行。这些过程虽然繁琐,而且花费了非常长的时间,但是这对于入门来说,还是必须的。通过亲自把代码实现,学习了常用的cmake,
各种常用库包括opencv,pcl,ceres,g2o,Egien等等,对于之类的操作也会变得得心应手。此外,对于CMakeLists.txt的表达也有了一定的认识(找别人写好的啊)。
在ubuntu上也尝试了新出的编辑软件visual studio code,对于计算机的处理编译过程,有了新的更深的认识。
这些认识也都只是自己的体会,是否准确还得进一步的学习验证啊。不求甚解的学习态度,就是打不好地基的建筑,走不了太远的。
cmake操作使用
首先是cmake的学习。cmake在Ubuntu之中可以直接利用terminal调用,经过一系列的惯常操作(可以写成执行文档直接运行的)。
常用过程如下:
//在当前包含CMakeLists.txt文档下,打开终端
mkdir build
cd build
//这两步可以将编译中生成的临时文件保存在build文件夹之中
//从而不污染原本文件夹中的数据,可以将build直接删除
cmake ..
//.代表当前目录,
..代表上一级目录
make
到了这一步,基本上程序已经编译完全了,make后会在当前文件夹生成可执行文件,文件名也是在CMakeLists.txt之中已经定义过的,之后就用name.out进行代替。在terminal之中可以直接运行 ./name.out 运行,查看最终的运行成果。
Ubuntu中各种库的安装
在windows下习惯了双击安装,然而现在网上各种库都是提供源码,让自己编译安装,刚开始实在是有点头疼。不过仔细的学习之后,发现也并没有什么太难的地方。库的安装其实在网站上已经写得很清楚,或者是大同小异,熟悉之后也都是常见的操作了。
在网站上提供资源包的时候,ubuntu下的安装就很简单,只需要使用下面的程序就行
sudo apt-get install 程序资源包
但是有一点没有搞明白,如何知道安装库的时候,需要先预先安装什么相关的依赖项。目前就是在网上搜索,看看别人发的各种博客,跟着安装。其实我想这些信息,提供库源文件的网站上应该也都会提供,但是目前我也没有仔细的看过,也就这样把问题放了过去。
在使用 sudo apt-get install 的时候,其实在没添加其余库链接地址的时候,系统默认在
http://packages.ubuntu.com
之上搜索对应的安装包。因此,如果我们找到的教程中,安装的依赖项因为版本问题对不上的时候,可以先在
http://packages.ubuntu.com网站上搜一下,找到对应版本号下的依赖项名称,在进行安装。详细的介绍在这里:
https://blog.csdn.net/neptune4751/article/details/79327562
安装好依赖项之后,接下来是对只提供源码的库进行编译安装。过程也比较固定,就是在包含库文件的第一级目录下,打开terminal利用cmake进行编译,过程和之前的cmake编译过程一致。对只包含头文件的库,比如说Eigen库,make之后,就已经是成功的安装了。安装位置默认是在/usr/include/eigen3下,使用的时候需要在CMakeLists.txt中写入eigen的安装位置(还是挺麻烦的啊,不过在一个计算机上安装之后位置基本就不会变了,而且还能安装多个版本的),
对于有库文件的库,需要在make之后,在进行安装的操作,其实一步指令就能做到,
sudo make install
调用的时候,需要利用cmake找到文件的位置,再进行配置,常用的操作以opencv为例,如下所示:
find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
# 其余操作
# 最后
target_link_libraries(result ${OpenCV_LIBS})
这些命名方法都是固定的,最好在安装的时候不要更改,这样在网上就会有许多相关的教程,也都可以直接用别人写好的CMakeLists.txt,从而简便操作过程。
Visual Studio Code使用
在Ubuntu中想用一个比较好用的IDE,最终还是因为偷懒选了VSCode,主要是最近发展比较迅速,听的也比较多。在安装之后,进行了各种尝试,最终也摸索出一个比较模式化的使用方式。
VScode使用的时候,需要自己配置task.json和launch.json,相当于原本visual studio新建工程的步骤全交给自己去完成了。基本能够配置好这两个文件就可以正常的运行了。
首先是安装vscode,在ubuntu下安装比较简便,可以的话自己去网站上下载deb,进行安装就可以了。
之后要安装对应文件,我这里是使用C++语言环境,因此选择安装microsoft出品的 C/C++ ,Ctrl+P调出命令行输入 ext install [关键字或者名称(比如C++)],找到作者是Microsoft的那个进行安装
在所有需要的都安装好之后,就先进行首次运行尝试。可以随便写一个cpp文件,比如是hello world。之后按 ctrl + shift + b 进行编译,这是系统会让你选择对应的task.json,因为现在没有设置,所以选择添加,选择others,自动生成新的 task.json。修改
基础知识点的学习
旋转矩阵R:两组基之间的内积组成,刻画旋转前后同一个向量的坐标变换关系。
旋转矩阵具有一些特殊的性质:是一个行列式为1的正交矩阵(行列式为1的正交矩阵也是一个旋转矩阵),可以定义旋转矩阵集合为 3维空间的特殊正交矩阵
旋转向量:用一个三维向量表示旋转,定义为 旋转轴n与旋转角度theta的乘积。(相较于旋转矩阵,只有三个变量,更为紧凑)
欧拉角:物体坐标系,描述物体的旋转。包括偏航角yaw,俯仰角pitch,滚转角roll(r,p,y分别对应旋转轴为 x,y,z)。但是该描述存在万向锁的问题。
四元数:紧凑并且没有奇异性(找不到不带奇异性的三维向量的描述方式)
旋转向量和旋转矩阵之间的变换关系:罗德里格斯公式描述
旋转矩阵与四元数之间的变换关系
欧拉角与旋转矩阵之间的变换关系
∈ in ∈
最后
以上就是英勇书本为你收集整理的SLAM十四讲 学习cmake操作使用Ubuntu中各种库的安装Visual Studio Code使用基础知识点的学习的全部内容,希望文章能够帮你解决SLAM十四讲 学习cmake操作使用Ubuntu中各种库的安装Visual Studio Code使用基础知识点的学习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复