视频05
- cp slambook/3rdparty/ceres-solver.tar.gz ./
- 将ceres-solver.tar.gz一起保存到code文件夹下
- tar -xzvf ceres-solver.tar.gz 解压
- 安装环境
- sudo apt-get install libcxsparse3 libsuitesparse-dev libeigen3-dev libgoogle-glog-dev libgtest-dev
- 视频里libcxsparse3为libcxsparse3.1.4,但我这里找不到3.1.4所以按照libcxsparse3安装的
- 然后 建立 build文件
- cmake …=>make -j2
- 报错:
/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h:64:8: error: no type named ‘Literal’ in ‘struct Eigen::NumTraits<ceres::Jet<double, 6> >’
struct promote_scalar_arg<S,T,false> : promote_scalar_arg_unsupported<S,T,typename NumTraits<S>::Literal> {};
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-根据度娘查找,可能是版本不匹配
eigen与slam版本不匹配
- 查看版本号
-
pkg-config --modversion eigen3
3.3.4
有人说不需要重装EIGEN,所以先试试这个
- 找到1.14.0版本
安装依赖
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
解压
tar -zxvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0/
mkdir build
cd build/
cmake ..
make
sudo make install
ls /usr/local/include/ceres/
能看到头文件
ls /usr/local/lib/
能看到libceres.a文件
接下来安装g2o
cp slambook/3rdparty/g2o.tar.gz ./
tar -xzvf g2o.tar.gz
mkdir build
cmake ..
sudo apt-get install libqt4-dev libqglviewer-dev-qt4 libcholmod3
视频中要求的是libqglviewer-dev 但我这里没有,只能换成了libqglviewer-dev-qt4
sudo apt-get install libqt4-dev qt4-qmake
依然报错:
-- Could NOT find QGLVIEWER (missing: QGLVIEWER_LIBRARY)
依然前一个博主的一篇踩坑日记
依然报错:
Could NOT find QGLVIEWER (missing: QGLVIEWER_LIBRARY)
找了一个新的方法
十、安装优化库:G2O、GTSAM和Ceres
sudo apt-get install libqglviewer-dev-qt5
用这个方法,似乎没报错了
但到make -j2时,又有提示了:
报错:
EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;
见第6个坑
具体等发现这个坑避不过去了再处理吧
cd ../../slambook/ch6/ceres_curve_fit
mkdir build
cd build
cmake ..
make
./curve_fitting
能看到仿真的数据
- 继续g2o编译
- sudo make install
cd slambook/ch6/g2o_curve_fitting/
mkdir build
cd build
cmake ..
make
./curve_fitting
也能看到数据