我是靠谱客的博主 敏感猎豹,最近开发中收集的这篇文章主要介绍slam学习笔记二----eigen、Pangolin、Sophus的linux环境配置一,配置eigen二、配置 Pangolin 三、安装Sophus(李代数库),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一,配置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. 首先下载该软件依赖的一

  1. sudo apt-get install libglew-dev  
  2. sudo apt-get install cmake  
  3. sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

2,安装pangolin

到slam的实例包中,就是放第三方库的文件夹下。执行语句:

git clone https://github.com/stevenlovegrove/Pangolin.git 

执行后的文件夹中的内容为:

  1. cd Pangolin  
  2. mkdir build  
  3. cd build  
  4. cmake .. 
  5. make  

  1. 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(李代数库)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部