概述
一,配置eigen
安装完成后,需要将eigen3中的文件夹Eigen放在include中,整个linux系统才能使用
linux 下面如何进行安装 Eigen .
调整,默认安装路径是:/usr/include/eigen3
cd /usr/include/eigen3
需要执行复制命令,将Eigen文件夹放在/usr/include 下面
sudo cp Eigen/ .. –R
1.1 使用SLAM书本中的第三章eigen库的使用方法的例子测试
mkdir build
cd build
cmake ..
make
左手系和右手系
二、配置 Pangolin
GitHub - stevenlovegrove/Pangolin: Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.
Pangolin 想必大家都非常熟悉了,这个是一款开源的OPENGL显示库,可以用来视频显示、而且开发容易。
1. 首先下载该软件依赖的一
- sudo apt-get install libglew-dev
- sudo apt-get install cmake
- sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
2,安装pangolin
到slam的实例包中,就是放第三方库的文件夹下。执行语句:
git clone https://github.com/stevenlovegrove/Pangolin.git
执行后的文件夹中的内容为:
- cd Pangolin
- mkdir build
- cd build
- cmake ..
- make
- sudo make install//最后一句别忘了,将pangolin安装到你的机器上。
最后一定加上一句话:
sudo ldconfig
测试是否安装成功
使用SLAM的例程测试方法为,使用该显示软件进行轨迹的显示
mkdir build
cd build
cmake ..
make
然后将trajectory.txt拷贝到build文件夹下,将plotTrajectory.cpp中的相对路径更改,然后执行下图中的语句:
执行的结果如图所示:
三、安装Sophus(李代数库)
SLAM的过程就是不断的估计相机的位姿和建立地图。其中,相机位姿也就是我们所说的变换矩阵T。
变换矩阵T,我们知道T所在的SE(3)空间,对加法计算并不封闭,也就是说任意两个变换矩阵相加后并不是一个变换矩阵,这主要是因为旋转矩阵对加法是不封闭造成的,它是有约束的。
李代数就是解决这个问题的。我们把大写SE(3)空间的T映射为一种叫做李代数的东西,映射后的李代数我们叫做小se(3)好了。它是由向量组成的,我们知道向量是对加法封闭的。这样我们就可以通过对李代数求导来间接的对变换矩阵求导了。
我们在SLAM里最常说的有两个,一个是特殊正交群SO(3),也就是旋转矩阵群,还有特殊欧氏群SE(3),也就是变换矩阵群,3代表是三维的。
李群的定义是指连续光滑的群,比如我们前面说的旋转矩阵群SO(3),你想象你拿个杯子就可以在空间中以某个支点连续的旋转它,所以SO(3)它就是李群。如果你一般旋转一边移动它,也是连续的或者说光滑的运动,所以变换矩阵群SE(3)也是李群。
李群空间的任意一个旋转矩阵R都可以用李代数空间的一个向量的反对称矩阵指数来近似。你只要记得用旋转矩阵表示的话就是李群空间,也是我们熟悉的表示方法。而用向量的反对称矩阵表示的话就是李代数空间,这两个空间建立了联系。
详细的解释可以参考连接:https://www.sohu.com/a/270402234_100007727
3.1 Ubuntu18.04下安装 Sophus李代数库
git clone GitHub - strasdat/Sophus: C++ implementation of Lie Groups using Eigen.
cd Sophus
在Sophus下的sophus文件夹中,修改以下cpp的内容
mkdir build
cd build
cmake ..
make
编译成功后执行语句:
sudo make install
sudo ldconfig
安装完成后,会在以下的文件夹中出现该共享库
3.2 测试是否安装成功
使用slam14讲中的,第ch4中的第一个例子进行库安装是否正确的测试
mkdir build
cd build
cmake ..
make
结果在最后编译的过程中出现如下的错误:
是CMakelists.txt的问题,解决方法,修改CMakelists.txt文件
cmake_minimum_required(VERSION 3.0)
project(useSophus)
# 为使用 sophus,需要使用find_package命令找到它
find_package(Sophus REQUIRED)
set(Sophus_LIBRARIES libSophus.so)
include_directories(${Sophus_INCLUDE_DIRS})
# Eigen
include_directories("/usr/include/eigen3")
add_executable(useSophus useSophus.cpp)
target_link_libraries(useSophus ${Sophus_LIBRARIES})
然后再次进行编译然后执行程序,没有问题就会出现下面的结果
最后
以上就是敏感猎豹为你收集整理的slam学习笔记二----eigen、Pangolin、Sophus的linux环境配置一,配置eigen二、配置 Pangolin 三、安装Sophus(李代数库)的全部内容,希望文章能够帮你解决slam学习笔记二----eigen、Pangolin、Sophus的linux环境配置一,配置eigen二、配置 Pangolin 三、安装Sophus(李代数库)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复