A-LOAM配置过程
工作环境:Ubuntu 18.04 + ROS Melodic + eigen 3.3.4 + PCL 1.8.1 + ceres 2.0
安装 ceres(参考链接)
1)下载:
git clone https://ceres-solver.googlesource.com/ceres-solver
2)依赖项准备:
# 确保已经安装CMake
sudo apt-get install cmake
# 安装google-glog + gflags,应该是输出代码提示消息的一个google开源库
sudo apt-get install libgoogle-glog-dev libgflags-dev
# 安装BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# 安装Eigen3
sudo apt-get install libeigen3-dev
# 安装SuiteSparse and CXSparse (可选的)
sudo apt-get install libsuitesparse-dev
3)安装过程
# 如果是下载的压缩包,使用tar命令进行解包
tar zxf ceres-solver-2.0.0.tar.gz
# 在解包的路径下建立一个文件夹,命名为ceres-bin
mkdir ceres-bin
# 切换到ceres-bin中
cd ceres-bin
# 进行编译
cmake ../ceres-solver-2.0.0
make -j3
# 测试
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
# 安装,上面提示说也可以不安装,但是我们还是安装吧
make install
4)ceres已经安装完成了,使用下面一句话进行测试是否成功。
bin/simple_bundle_adjuster ../ceres-solver-2.0.0/data/problem-16-22106-pre.txt
出现类似如下的结果,则说明安装成功。
iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time
0 4.185660e+06 0.00e+00 1.09e+08 0.00e+00 0.00e+00 1.00e+04 0 7.59e-02 3.37e-01
1 1.062590e+05 4.08e+06 8.99e+06 5.36e+02 9.82e-01 3.00e+04 1 1.65e-01 5.03e-01
2 4.992817e+04 5.63e+04 8.32e+06 3.19e+02 6.52e-01 3.09e+04 1 1.45e-01 6.48e-01
3 1.899774e+04 3.09e+04 1.60e+06 1.24e+02 9.77e-01 9.26e+04 1 1.43e-01 7.92e-01
4 1.808729e+04 9.10e+02 3.97e+05 6.39e+01 9.51e-01 2.78e+05 1 1.45e-01 9.36e-01
5 1.803399e+04 5.33e+01 1.48e+04 1.23e+01 9.99e-01 8.33e+05 1 1.45e-01 1.08e+00
6 1.803390e+04 9.02e-02 6.35e+01 8.00e-01 1.00e+00 2.50e+06 1 1.50e-01 1.23e+00
Ceres Solver v2.0.0 Solve Report
----------------------------------
Original Reduced
Parameter blocks 22122 22122
Parameters 66462 66462
Residual blocks 83718 83718
Residual 167436 167436
Minimizer TRUST_REGION
Dense linear algebra library EIGEN
Trust region strategy LEVENBERG_MARQUARDT
Given Used
Linear solver DENSE_SCHUR DENSE_SCHUR
Threads 1 1
Linear solver threads 1 1
Linear solver ordering AUTOMATIC 22106, 16
Cost:
Initial 4.185660e+06
Final 1.803390e+04
Change 4.167626e+06
Minimizer iterations 6
Successful steps 6
Unsuccessful steps 0
Time (in seconds):
Preprocessor 0.261
Residual evaluation 0.082
Jacobian evaluation 0.412
Linear solver 0.442
Minimizer 1.051
Postprocessor 0.002
Total 1.357
Termination: CONVERGENCE (Function tolerance reached. |cost_change|/cost: 1.769766e-09 <= 1.000000e-06)
安装 PCL(参考链接)
若已经安装了 ROS 那么PCL是默认已经安装好了的。但是如果没有安装可以通过以下两种方式。
第一种(缺点是好像不能选择版本)
sudo apt install libpcl-dev
第二种,下载对应PCL版本的源文件,进行编译安装,下载地址。
网上有很多教程,这里就不再叙述了。(作者安装的是pcl 1.8.1)
安装 LOAM(参考链接)
# 切换到工作空间下的src文件夹
cd ~/catkin_ws/src
# 下载源文件
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
# 回到上一级目录,即 catkin_ws
cd ../
# 使用catkin工具进行编译
catkin_make
# 激活当前的环境,可以使用 source ./devel/setup.bash
source ~/catkin_ws/devel/setup.bash
测试
下载样例数据集,大概700-800 M,下载链接(NSH indoor outdoor )。
# 启动 loam, 选择VLP_16,因为样例数据是16线的
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
# 切换到自己数据的路径,播放这个bag样例
rosbag play YOUR_DATASET_FOLDER/nsh_indoor_outdoor.bag
测试过程中rviz界面中会出现相应的路径和全局地图。
同时还可以使用kitti数据集进行测试。
roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch
roslaunch aloam_velodyne kitti_helper.launch