SLAM总览【自学备忘】

一、VSLAM

1、库

1.1 Sophus库

Eigen库是一个开源的C++线性代数库,它提供了快速的有关矩阵的线性代数运算,还包括解方程等功能。但是Eigen库提供了集合模块,但没有提供李代数的支持。一个较好的李群和李代数的库是Sophus库,它很好的支持了SO(3),so(3),SE(3)和se(3)。Sophus库是基于Eigen基础上开发的,继承了Eigen库中的定义的各个类。因此在使用Eigen库中的类时,既可以使用Eigen命名空间,也可以使用Sophus命名空间。

1.1.1 Sophus库安装

1、因为sophus的使用必须依赖eigen库,因此先下载eigen,但是如果你有 3.3 以下的版本的eigen,那么请先卸载
注意,千万不要使用 sudo apt-get install libeigen3-dev ,因为这个命令下载的是3.2版本的eigen,从而无法与模板类的sophus相匹配。
2、现如今sophus需要依赖fmt库,因此优先安装fmt:

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

3、安装sophus库:

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

在这里强调!不要回滚git checkout a621ff,否则会装成老版本的非模板sophus(网上大多教程都有回滚)
CMakeLists.txt为:

FIND_PACKAGE(Sophus REQUIRED)
INCLUDE_DIRECTORIES(${Sophus_INCLUDE_DIRS})
1.1.2 Sophus库函数
函数函数释义
Sophus::SO3d李群李代数最直接的用法就是表达为位姿,如何对特征点进行变换,值得注意的是,此时的特征点必须是Eigen的Vector类型。
Sophus::SE3d李群李代数最直接的用法就是表达为位姿,如何对特征点进行变换,值得注意的是,此时的特征点必须是Eigen的Vector类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值