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库 时会报如下的错误。
ubuntu20.04 安装 Sophus库 slambook2_第1张图片
根据报错内容,显示为 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文件
ubuntu20.04 安装 Sophus库 slambook2_第2张图片添加 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 目录下,
ubuntu20.04 安装 Sophus库 slambook2_第3张图片

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

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

ubuntu20.04 安装 Sophus库 slambook2_第4张图片
文件路径问题,也可以采用绝对路径,从一个盘符开始一步一步找到文件的路径。

你可能感兴趣的:(golang,开发语言,后端)