slambook2 实践部分,需要我们自行安装 sophus 库,但是相关的依赖很多,而且sophus分为模板类和非模板类两种,安装起来还是比较繁琐的。
slambook2中采用d的是模板类安装,fmt 这个包和 sophus 之间也存在不适配的问题,我在安装 sophus 的过程中,花费了不少时间,因此做一个记录,也方便他人查看。
这里参考教程安装了 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 install2.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个点.
文件路径问题,也可以采用绝对路径,从一个盘符开始一步一步找到文件的路径。



