slam学习笔记二----eigen、Pangolin、Sophus的linux环境配置

一,配置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})

 然后再次进行编译然后执行程序,没有问题就会出现下面的结果

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置ORB-SLAM3的环境,您需要按照以下步骤操作: 1. 安装依赖:ORB-SLAM3需要使用一些第三方,例如OpenCV、EigenPangolin等。确保您已经安装了这些。您可以通过以下命令在Ubuntu上安装它们: ``` sudo apt-get install libeigen3-dev libopencv-dev libpangolin-dev ``` 2. 克隆ORB-SLAM3的代码:使用Git工具克隆ORB-SLAM3的代码到您的本地机器上: ``` git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ``` 3. 编译ORB-SLAM3:进入克隆的代码目录,并创建一个build目录。然后,使用CMake来配置和构建ORB-SLAM3: ``` cd ORB_SLAM3 mkdir build cd build cmake .. make -j4 ``` 4. 下载Vocabulary文件:在ORB-SLAM3的代码中,有一个vocabulary文件夹。您需要下载一个适合您的应用的vocabulary文件。例如,如果您想使用ORB-SLAM3的Monocular模式,可以从官方网站(https://github.com/UZ-SLAMLab/ORB_SLAM3#downloads)下载Monocular-vocabulary文件,并将其放置在vocabulary文件夹中。 5. 配置数据集:ORB-SLAM3需要一个输入图像序列作为输入数据集。您可以使用自己的数据集,或者从ORB-SLAM3的官方网站上下载一些示例数据集。 6. 运行ORB-SLAM3:使用以下命令来运行ORB-SLAM3,并指定您的数据集和相机参数: ``` ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml 数据集的路径 ``` 这些步骤可以帮助您配置和运行ORB-SLAM3。请确保按照文档提供的说明进行操作。如果遇到任何问题,您可以参考ORB-SLAM3的官方文档或在相关论坛上寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值