视觉SLAM十四讲ch4 useSophus.cpp make报错问题总结

首先展示一下我的CMakelist

cmake_minimum_required(VERSION 3.0)
project(useSophus)
add_compile_options(-std=c++11)

set(CMAKE_BUILD_TYPE "Release")
set(Sophus_LIBRARIES  "/usr/local/lib/libSophus.so")

# 为使用 sophus,需要使用find_package命令找到它
# include_directories("/usr/local/include/sophus")
find_package(Sophus REQUIRED)
include_directories( ${Sophus_INCLUDE_DIRS} )
# Eigen
# include_directories("/usr/include/eigen3")
add_executable(useSophus useSophus.cpp)
# target_link_libraries(useSophus Sophus::Sophus)
target_link_libraries(useSophus ${Sophus_LIBRARIES})
# add_subdirectory(example)

然后是我遇到的问题:
关于Sophus下载的问题,首先需要知道的事是在书第87页有写着“本书的配套代码中使用的是带模板的Sophus库,所以说下载不用,编译即可”,但是下载也无妨,下面是步骤:

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

mkdir build
cd build
cmake ..
make

然后是很重要的一步,一般来说是可以解决一些路径问题的,就是安装这个库:

sudo make install

这样的话是可以顺利安装的
如果遇到了关于fmt的问题也不用慌,本身这个库和我们的CMakelist里面是需要fmt这个库的
所以下面是展示安装fmt库的方法,方法同安装Sophus,其实这些库的安装都是大同小异,只不过有些带模板的可以不选择安装,但是为了方便起见我个人选择安装:

git clone  https://github.com/fmtlib/fmt.git
cmake .
make && make install 

当然你也可以选择像我一样新建一个build文件单独make

git clone  https://github.com/fmtlib/fmt.git
cd fmt
mkdir build&&cd build
cmake ..
make
make install

到此为止可以解决关于库的几乎所有问题,然后就是对代码做调整:
首先来看usesophus.cpp这个文件
请添加图片描述

对于#include的部分来说,需要对引用的头文件分别包含so3和se3的两个文件,对于是后缀为.h还是.hpp需要自行验证,这个可以在/usr/local/lib/sophus文件里面看到是否含有。
然后就是对所有的SO3d和SE3d做出修改,因为最新的sophus的类里面只有SO3和SE3:
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
修改完之后再进行make就没有什么问题了,最后在build文件里面生成useSophus文件运行结果如下:

hbt@hbt:~/文档/slambook2/ch4/build$ ./useSophus 
SO(3) from matrix:
2.22045e-16          -1           0
          1 2.22045e-16           0
          0           0           1
SO(3) from quaternion:
2.22045e-16          -1           0
          1 2.22045e-16           0
          0           0           1
they are equal
so3 =      0      0 1.5708
so3 hat=
      0 -1.5708       0
 1.5708       0      -0
     -0       0       0
so3 hat vee=      0      0 1.5708
SO3 updated = 
          0          -1           0
          1           0     -0.0001
     0.0001 2.03288e-20           1
*******************************
SE3 from R,t= 
2.22045e-16          -1           0           1
          1 2.22045e-16           0           0
          0           0           1           0
          0           0           0           1
SE3 from q,t= 
2.22045e-16          -1           0           1
          1 2.22045e-16           0           0
          0           0           1           0
          0           0           0           1
se3 =  0.785398 -0.785398         0         0         0    1.5708
se3 hat = 
        0   -1.5708         0  0.785398
   1.5708         0        -0 -0.785398
       -0         0         0         0
        0         0         0         0
se3 hat vee =  0.785398 -0.785398         0         0         0    1.5708
SE3 updated = 
2.22045e-16          -1           0      1.0001
          1 2.22045e-16           0           0
          0           0           1           0
          0           0           0           1

参考文章:
SLAM十四讲第二版ch4 useSophus报错
ubuntu下安装Sophus库出现问题及解决办法
视觉slam14讲 Ubuntu18.04下 Sophus李代数库使用 以及报错处理

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值