2022.10.1国庆 bionic
基于slambook2

1.更新cmake版本

千万不要卸载删除ubuntu原有的cmake,否则之前经过原有cmake编译过的文件将也会被删除,比如 ros

因为需要glog,而glog的cmakelists对于cmake的版本要求卡的很死,要3.16以上,那么原先自带的cmake只有3.10显然不够用了

我这里附上我安装的某云包,需要的自取

 链接: https://pan.baidu.com/s/1dz9eBxrSR6DcqrY0GakgeA
 提取码: e4vr 

把包解压到主目录下,否则后面mv会报错

在主目录终端下把包移动到opt下

sudo mv cmake-3.21.4-Linux-x86_64 /opt/cmake-3.21.4  

建立软链接

sudo ln -sf /opt/cmake-3.21.4/bin/* /usr/bin/   

查看现在的版本号

cmake --version

cmake安装成功之后,不要忘记将cmake的文件路径添加至 .bashrc里面

进入~/.bashrc

sudo gedit ~/.bashrc

输入以下内容

export  PATH=$PATH:/opt/cmake-3.21.4/bin

保存 .bashrc的更改和更新source一下

source ~/.bashrc 

OK,这里就把版本更新到了3.21.4

2.安装glog库

glog 是一个 C++ 日志库,它提供 C++ 流式风格的 API。在安装 glog 之前需要先安装 gflags,这样 glog 就可以使用 gflags 去解析命令行参数

apt-get install安装:

sudo apt-get install libgoogle-glog-dev

下载源码进行编译安装(可能需要科学上网懂得都懂):

git clone https://github.com/google/glog.git
cd glog
mkdir build
cd build
cmake ..
make
sudo make install

这样没问题就完成了

3.ceres库, gaussNewton 的安装使用

安装依赖项

ubuntu18.04中libcxsparse的版本号是3

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

这个库版本号的对应关系如下:

libcxsparse3.1.2————————ubuntu14.04

libcxsparse3.1.4————————ubuntu16.04

libcxsparse3————————————ubuntu18.04

这里提供了我的ceres安装包,有需要的自取

链接:https://pan.baidu.com/s/1U4Y9nu7q_U5EPFx_3DE5MA 
提取码:rolz

解压ceres无所谓在哪个目录下面,进入解压后的文件夹,打开终端做如下操作是最稳妥的

mkdir build
cd build
cmake ..
make
sudo make install

总的来说,还是挺简单的。
然后打开slambook2 ch6
这里make会出现g2o的错误不过没有关系,放在那里,后面再重新一遍

mkdir build
cd build
cmake ..
make
./ceresCurveFitting 

gaussNewton 也可以直接运行

4.g2o库的安装使用

安装依赖项

sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3

下载编译安装
(这里的make -j6不要轻易尝试,大量template的扩展需要足够的内存,报错的原因是(虚拟机)运行内存不足)
make时间比较长,需要耐心等待

git clone https://github.com/RainerKuemmerle/g2o   # 克隆最新版本g2o
cd g2o
mkdir build
cd build
cmake ..
make       # 注意,这里尽量使用更多的j,否则g2o安装很慢(-j4  -j6等等)
sudo make install

make结束

重新在ch6 build中make

./g2oCurveFitting

运行

5.g2o_viewer安装与使用

之前编译g2o库的时候因为少装了部分依赖所以没有编译出 g2o_viewer的可执行文件

那么先补一下可视化没有装的依赖

sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake
sudo apt-get install libqglviewer-dev-qt5

重新编译g2o,编译过程中出现了g2o_viewer

编译后在g2o bin目录下看到了g2o_viewer

直接在bin目录下./g2o_viewer

file中load
在ch10中选择.g2o文件