ubuntu20.04 安装 Sophus库 slambook2

ubuntu20.04 安装 Sophus库 slambook2

slambook2 实践部分,需要我们自行安装 sophus 库,但是相关的依赖很多,而且sophus分为模板类和非模板类两种,安装起来还是比较繁琐的。
slambook2中采用d的是模板类安装,fmt 这个包和 sophus 之间也存在不适配的问题,我在安装 sophus 的过程中,花费了不少时间,因此做一个记录,也方便他人查看。

1. 升级 eigen

这里参考教程安装了 eigen3.3.7

2.Sophus 安装

2.1 fmt安装

sophus安装需要依赖 fmt 库,但是该库尚在较快地迭代当中,很容易出现不适配而无法使用的情况。
此处先不要急于克隆 github 上提供的包,否则在下一步编译 sophus库 时会报如下的错误。
在这里插入图片描述
根据报错内容,显示为 fmt 的问题,所以手动下载最新版本的 fmt api,进行编安装译。
如下给出最新版 fmt-8.1.1 ( 2022/02/10 ) 版本的官方下载链接

https://fmt.dev/8.1.1/

这里也可以下载
下载到本地后,右键选择提取到此处:然后进入fmt 文件夹后新建 build 文件夹编译安装即可:

cd fmt-8.1.1
mkdir build
cd build
cmake ..
make
sudo make install
2.2 sophus 安装

建立一个文件夹,右键在终端中打开后:

git clone https://github.com/strasdat/Sophus.git
cd Sophus/

mkdir build
cd build
cmake ..
make
sudo make install

编译安装完成后,在usr/local/include/目录下查看是否已经有 sophus 文件夹
然后切换到 rgbd 目录下,编译 CMakeLists.txt文件
在这里插入图片描述添加 eigen和sophus的依赖

cmake_minimum_required( VERSION 2.8 )
project(rgbd)

##  使用模板类sophus
# set(Sophus_DIR "/usr/local/sophus-template/share/sophus/")
#或 
set(Sophus_INCLUDE_DIRS "/usr/local/sophus-template/include")
##set(Sophus_LIBS )

# 为使用 sophus,需要使用find_package命令找到它
find_package(Sophus REQUIRED)

find_package(Pangolin REQUIRED)
find_package(OpenCV REQUIRED)

include_directories(
	${Sophus_INCLUDE_DIRS}
	${OpenCV-INCLUDE_DIRS}
)
include_directories("/usr/local/include/eigen3")

add_executable(joinMap joinMap.cpp)
target_link_libraries(joinMap ${OpenCV_LIBS})
target_link_libraries(joinMap ${Pangolin_LIBRARIES})
target_link_libraries(joinMap ${Sophus_LIBS} fmt)

接下来对 joinMap进行编译,在 rgbd 下新建 build 文件夹,然后

cd build
cmake ..
make

编译完成后,需要将 pose.txt color 和 depth 放在 build 目录下,
在这里插入图片描述

然后执行./joinMap即可得到运行结果:

转换图像中: 1
转换图像中: 2
转换图像中: 3
转换图像中: 4
转换图像中: 5
点云共有1081843个点.

在这里插入图片描述
文件路径问题,也可以采用绝对路径,从一个盘符开始一步一步找到文件的路径。

  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 要在Ubuntu 20.04安装Sophus,请按照以下步骤进行操作: 1. 打开终端并更新软件包列表: sudo apt-get update 2. 安装必要的依赖项: sudo apt-get install cmake libeigen3-dev 3. 克隆Sophus的GitHub存储: git clone https://github.com/strasdat/Sophus.git 4. 进入Sophus目录并创建一个build目录: cd Sophus mkdir build cd build 5. 使用CMake构建Sophus: cmake .. make 6. 安装Sophus: sudo make install 7. 安装完成后,您可以在您的项目中使用Sophus。 希望这可以帮助您安装Sophus。 ### 回答2: Sophus是一个用于李群理论和SLAM等领域的C++,它能够对李群(例如SO3,SE3,Sim3等)和李代数(例如so3,se3,sim3等)进行数学操作。此外,Sophus还提供了一些用于SLAM中的最优化和运动估计的常用功能。在Ubuntu20.04操作系统中安装Sophus非常简单。 首先,我们需要在Ubuntu20.04安装CMake、Git和Eigen。打开终端窗口,在终端中输入以下命令: ``` sudo apt-get update sudo apt-get install cmake git libeigen3-dev ``` 完成以上步骤之后,我们可以从Github上下载Sophus源代码。在终端中输入以下命令: ``` git clone https://github.com/strasdat/Sophus.git ``` 然后进入Sophus文件夹: ``` cd Sophus/ ``` 接下来,我们需要将Sophus编译为共享。在终端中输入以下命令: ``` mkdir build cd build cmake .. make sudo make install ``` 此时,Sophus已经成功安装到我们的Ubuntu20.04操作系统中了。 我们可以在Sophus的示例程序中测试是否安装成功。首先,我们需要安装Pangolin。打开终端窗口,在终端中输入以下命令: ``` sudo apt-get install libgl1-mesa-dev libglew-dev python3-pip sudo pip3 install pybind11 git clone https://github.com/uoip/pangolin.git cd pangolin mkdir build cd build cmake .. make sudo make install ``` 然后,我们可以在Sophus示例程序中测试Sophus是否以正确的方式安装。打开Sophus文件夹中的example文件夹,找到se3_example.cpp文件。在终端中输入以下命令进行编译: ``` cd example mkdir build cd build cmake .. make ``` 编译完成后,在终端中输入以下命令运行示例程序: ``` ./se3_example ``` 如果一切正常,我们应该能够看到程序在终端中输出正确的结果。 综上所述,我们可以通过在Ubuntu20.04安装CMake、Git和Eigen,然后从Github上下载Sophus源代码,将Sophus编译为共享,最后通过示例程序测试Sophus是否正确安装。 ### 回答3: Sophus是一个用于Lie群和Lie代数的C++模板,主要用于机器人学和计算机视觉等领域中的运动估计问题。如果你在Ubuntu20.04系统上需要使用Sophus来完成你的项目或研究,下面是安装Sophus的方法: 步骤1:打开终端并更新软件包索引 在打开的终端中,输入以下命令: sudo apt-get update 这将更新软件包索引。 步骤2:安装必要的依赖项 在终端中,输入以下命令来安装必要的依赖项: sudo apt-get install cmake libeigen3-dev libsuitesparse-dev libsuitesparse-dev是Sophus的依赖项,libeigen3-dev是线性代数Eigen3的依赖项,而cmake则用于编译Sophus。 步骤3:下载Sophus源代码 在终端中,输入以下命令来下载Sophus源代码: git clone https://github.com/strasdat/Sophus.git 这将下载Sophus源代码到当前目录下的Sophus文件夹。 步骤4:编译Sophus 进入Sophus文件夹,并创建一个build文件夹: cd Sophus mkdir build 进入build文件夹,并使用cmake编译Sophus: cd build cmake .. make -j4 -j4选项可用于使用4个线程来编译Sophus,以加快编译时间。 步骤5:安装Sophus 在build文件夹中,使用以下命令来安装Sophus: sudo make install 这将在系统中安装Sophus。 步骤6:测试Sophus 你可以使用以下代码来测试Sophus是否成功安装: #include "sophus/so3.hpp" #include "sophus/se3.hpp" #include <iostream> int main() { // Create a random rotation matrix Eigen::Matrix3d R = Eigen::Matrix3d::Identity(); Eigen::AngleAxisd rotation_vector(M_PI / 4, Eigen::Vector3d(0, 0, 1)); R = rotation_vector.toRotationMatrix(); // Create a random translation vector Eigen::Vector3d t(1, 2, 3); // Create a random SE3 pose Sophus::SE3d SE3(R, t); // Print the pose and its Lie algebra std::cout << "SE3 pose = \n" << SE3.matrix() << std::endl; std::cout << "SE3 Lie algebra = \n" << SE3.log() << std::endl; // Create a random so3 rotation Sophus::SO3d so3(R); // Print the so3 rotation and its Lie algebra std::cout << "so3 rotation = \n" << so3.matrix() << std::endl; std::cout << "so3 Lie algebra = \n" << so3.log() << std::endl; return 0; } 保存为test.cpp,然后使用以下命令编译: g++ -o test test.cpp -std=c++11 -I/usr/local/include/eigen3 -pthread -I/usr/local/include 运行此程序,如果你看到正确的输出,那么说明Sophus已经成功安装。 至此,“Ubuntu20.04安装Sophus”就介绍完了。希望这篇文章能够对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值