目录
1. Eigen线性代数库的安装
Eigen库是一个C++线性代数开源库,官方主页http://eigen.tuxfamily.org/dox-devel/modules.html。它提供了有关线性代数、矩阵和矢量运算、数值分析及相关的算法。许多上层的软件库也使用Eigen进行矩阵运算,包括g2o、Sophus等。Eigen库由Ubuntu软件源中提供,通过apt命令可以很方便的安装Eigen。
sudo apt-get install libeigen3-dev
Eigen头文件的默认安装位置在“/usr/include/eigen3/”中,如果不确定,可以输入以下命令查找:
sudo updatedb
locate eigen3
Eigen是一个纯用头文件搭建起来的库,在使用时只需要在CMakeLists.txt中引用Eigen的头文件即可,不需要链接库文件。
#添加头文件
include_directories("/usr/include/eigen3")
2. Sophus李代数库的安装
Eigen库提供了几何模块,但是没有提供李代数的支持。一个较好的李代数库是由Strasdat维护的Sophus库。Sophus库支持三维运动的SO(3)、SE(3),此外还支持二维运动的SO(2)、SE(2)和相似变换Sim(3)等内容。它是直接在Eigen库基础上开发的,因此我们不需要安装额外的依赖库。读者可以直接从github上获取Sophus库,Sophus库有模板类库和非模板类库两个版本,本书选择的是非模板类库。可以通过输入以下命令获得非模板类的Sophus库:
git clone http://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
或直接从https://download.csdn.net/download/hz490727/10510302下载,Sophus库本身是一个cmake工程,使用以下命令对它进行编译(Sophus库只需编译,无需安装)。
tar -xzvf slam.tar.gz #将下载的文件解压
cd slam #进入slam文件夹中
tar -xzvg Sophus.tar.gz #将Sophus解压到当前文件夹下
cd Sophus #进入Sophus文件夹中
mkdir build #新建build文件夹
cd build #进入build文件夹中
cmake .. #在build上一层目录下执行CMake命令
make #编译
在CMakeLists.txt中添加Sophus库的头文件和库文件:
#为了使用Sophus,需要使用find_package命令
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS})