1. 前言
笔者最近开始学习深蓝学院的网课《从零开始手写VIO》,先前读过《视觉slam十四讲》以及《机器人学中的状态估计》两本书,光是里面的数学推导都感到非常吃力,实操更是一塌糊涂。所以也是趁着有些矩阵分析和李代数的基础,借助于《从零开始手写VIO》课程,正式步入视觉惯性里程计的学习和实践,分享在学习中遇到的问题和经验。对于VIO实践来说,所有的研究都是基于三维运动的姿态变化为重点,所以第一步需要安装的库就是Sophus。
2.概述
操作系统:Ubuntu16.04。
编译环境:VSCode,C++。关于VSCode的介绍和安装这里就不再赘述了,需要关注的是工程的配置文件中 .vscode/c_cpp_properties.json 的变量 includePath,在之后的研究中如果需要添加新库,则需要把那个库的路径添加在这个变量中。
Eigen库:矩阵库,可以进行线性代数、向量、矩阵等操作和运算的C++库。解压即可用,不需要使用cmake。
Sophus库:支持二维运动SO(2)、SE(2),三维运动SO(3)、SE(3)等内容,是在Eigen库基础上的开发,分为模板类库和非模板类库,这里选择非模板类库。
3. Eigen和Sophus的安装
(1)矩阵Eigen
安装Eigen
sudo apt-get install libeigen3-dev
解压完成后确认Eigen的路径,可以把eigen-3.3.7中的Eigen文件夹单独复制出来,与eigen-3.3.7同一个路径下(方便写代码的时候直接使用“#include <Eigen/…>”),把该路径添加进includePath。我的是 /usr/local/include/Eigen。如下图所示:
程序中添加Eigen的头文件测试,例如以下代码,没有报错即表示安装成功。
#include <Eigen/Core>
#