1. gtsam安装
1.1 在安装之前如果没有安装过gtsam,可以跳过此步;如果安装过gtsam建议先清理一下gtsam(否则会造成版本混乱的问题,可能会在后续编译的时候一直出现问题),清理的步骤如下所示:
目录:其他位置/计算机//usr/local/lib,在该目录下搜索框中输入gtsam,将这些文件全部删除,如果是高版本的还需要删除libmetis-gtsam.so文件。
1.2 这里选择安装gtsam-4.0.0-alpha2版本
在终端中输入 wget https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip 命令下载gtsam,下载好之后将将文件解压提取到主目录就好,在gtsam-4.0.0-alpha2目录下(即下图所示目录下打开终端)
在终端中输入如下指令:
1. mkdir build
2. cd build
3.cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
(cmake --- 是一个跨平台的开源构建系统,用于管理软件的构建过程)
(-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF --- 是向cmake传递一 个选项变量,通常用于控制构建配置)
(.. --- 指定了cmake的构建目录,表示cmake将读取上一级目录(即刚刚切 换到的 build
目录的上一级目录)中的 CMakeLists.txt
文件进行配 置。)
在这一步中有推荐使用cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF - DGTSAM_USE_SYSTEM_EIGEN=ON ..这个命令的,但是笔者没有用,没有对后 续步骤产生影响。
4. sudo make install -j8
(make --- 是一个用于构建软件的工具,根据Makefile中的规则来决定如何编 译源代码)
(-j8 --- 同时使用8个线程进行编译,加快编译速度,但要根据个人电脑的CPU 核心数量进行调整)
2. 安装lego-loam算法
2.1 mkdir -p ~/lego_loam_ws/src
2.2 cd ~/lego_loam_ws/src
2.3 git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
2.4 cd ..
2.5 catkin_make
在这一步中经常会出一些报错:
1. opencv/cv.h --- 将 utility.h 中#include<opencv/cv.h>注释,添加#include <opencv2/opencv.hpp>
2. pcl报错 --- 将c++11改为c++14,如下图所示:
3. error: ‘class std::unordered_map<unsigned int, std::vector<unsigned int> >’ has no member named ‘serialize’ --- 将第一个报错中修改之后的内容放到最后。
4. 找不到lboost --- 找不到什么就添加什么。
5. index --- 目录:其他位置/计算机/usr/include/pcl-1.10/pcl/filters,在该目录下打开终端 并在终端下输入sudo gedit voxel_grid.h打开这个文件,在该文件的第340行和第669行 处的for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)中的Eigen::Index替 换成int保存之后就好了。
解决完上述报错后,就可以编译成功了。
3. 算法实现
3.1 cd lego_loam_ws
3.2 source devel/setup.bash
3.3 roslaunch lego_loam run.launch
在这一步中可能还会出现报错情况,是因为系统中没有安装libmetis库在终端中输 入sudo apt-get install libmetis-dev指令安装完成后,使用sudo ldconfig指令更新 动态链接库缓存。再次运行文件之后终端中就不会有报错了。打开的rviz界面左侧
菜单栏中会有红色小错号的提示,这个并不用在意,这个不是错误,在运行了数 据集之后就没事了。
3.4 下载数据集并运行 --- rosbag play *.bag --clock --topic /velodyne_points /imu/data
数据集下载地址: https://drive.google.com/drive/folders/1_t5fX5yIqY-y6sAifY8pVWX4O9LCK5R2
如上图所示,选择 same_start_end_position 右击下载即可,下载之后解压
将.bag文件放到主目录下,打开终端,在终端中输入上述给定指令即可(其中)
* 可以用自己要运行的文件名替换,运行之后,应该就可以在rviz中看到实时
变化,如果没有看到任何变化,可以在rviz中将话题名称修改成任意一个试一下,
直到看到有变化为止。