https://github.com/gaoxiang12/slam_in_autonomous_driving
- 第1章,概述
- 第2章,数学基础知识回顾,几何学、运动学、KF滤波器理论,矩阵李群
- 第3章,误差状态卡尔曼滤波器,惯性导航、卫星导航、组合导航
- 第4章,预积分,图优化,基于预积分的组合导航
- 第5章,点云基础处理,各种最近邻结构,点云线性拟合
- 第6章,2D激光建图,scan matching, 似然场,子地图,2D回环检测,pose graph
- 第7章,3D激光建图,ICP,变种ICP,NDT,NDT LO, Loam-like LO,LIO松耦合
- 第8章,紧耦合LIO,IESKF,预积分紧耦合LIO
- 第9章,离线建图,前端,后端,批量回环检测,地图优化,切片导出
- 第10章,融合定位,激光定位,初始化搜索,切片地图加载,EKF融合
编译
- 本书推荐的编译环境是Ubuntu 20.04。更老的Ubuntu版本需要适配gcc编译器,主要是C++17标准。更新的Ubuntu则需要您自己安装对应的ROS版本。
- 在编译本书代码之前,请先安装以下库(如果您机器上没有安装的话)
- ROS Noetic: http://wiki.ros.org/noetic/Installation/Ubuntu
- 使用以下指令安装其余的库
sudo apt install -y ros-noetic-pcl-ros ros-noetic-velodyne-msgs libopencv-dev libgoogle-glog-dev libeigen3-dev libsuitesparse-dev libpcl-dev libyaml-cpp-dev libbtbb-dev libgmock-dev
- Pangolin: 编译安装thirdparty/pangolin.zip,或者 https://github.com/stevenlovegrove/Pangolin
- 编译thirdparty/g2o,或者自行编译安装 https://github.com/RainerKuemmerle/g2o
- 通过cmake, make安装本repo下的
thirdparty/g2o
库
- 之后,使用通常的cmake, make方式就可以编译本书所有内容了。例如
mkdir build
cd build
cmake ..
make -j8
报错1
因为装了aconda 所以默认制定的是aconda的python3 需要切换会系统自带的python3,从而对于对应
编译制定python
cmake .. -DPYTHON_EXECUTABLE=/usr/bin/python3
报错2
pangolin版本不匹配,按如下方式卸载安装新版即可。
因为openvslam安装了0.6版本的
git clone https://github.com/stevenlovegrove/Pangolin.git
cmake-gui
默热路径
指定安装位置
sudo make -j8
sudo make install
看到安装好的库和头文件
cmake指定库路径
在当前工程文件下打开CMakeLists.txt
在find_package(Pangolin REQUIRED)前边添加
set(Pangolin_DIR /xxx/xxx/Pangolin/build/src)
其中xxx/xxx为缺少文件的路径。
set(Pangolin_DIR "/home/r9000k/v2_project/v3_SLAM/激光雷达slam/Pangolin/install") find_package(Pangolin REQUIRED) include_directories(${Pangolin_INCLUDE_DIRS})