A-LOAM配置过程

简介: A-LOAM配置过程

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
目录
相关文章
|
6月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
316 3
|
前端开发 定位技术 索引
3D激光SLAM:ALOAM---后端 lasermapping构建角点约束与面点约束
后端的构建约束问题和前端不一样。原因就是前端从上一帧上去找,而后端是在局部地图上找,点要多很多,并且没有了线束信息,所以原理上不一样了。 **线特征的提取** 通过kdtree在局部地图中找到5个最近的线特征,为了判断他们是否符合线特征的特性,需要对5个点构成的协方差矩阵进行特征值分解,当上述5个点在一条直线上时,他们只有一个主方向,也就是特征值是一个大特征值,以及两个小特征值,大特征值对应的特征向量就是对应直线的方向向量。 **面特征的提取** 通过kdtree在地图中找到最近的面特征也是5个, 理论上也可以通过特种值分解的方式,最小的特征值对应的特征向量就是平面的法向量, 不过代码里选
3D激光SLAM:ALOAM---后端 lasermapping构建角点约束与面点约束
|
存储 前端开发 数据可视化
3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
**LeGO-LOAM**的全称是 Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain 其中LeGO就是轻量级和利用地面优化,轻量级的实现就是通过两步的优化方式,利用地面优化的部分也在两步优化的第一步中。 和原始LOAM一样,通过前后两帧点云来估计两帧之间的运动,从而累加得到前端里程计的输出,和上述方法使用线面约束同时优化六自由度帧间位姿不同,LeGO-LOAM的前端分成两个步骤,每个步骤估计三自由度的变量。 通过这种方式进行帧间里程计的运算,可以提供运算效率,使得可以在嵌入式平台
3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
|
前端开发 测试技术 芯片
【前端验证】关于那道经典概率题,用UVM环境来仿真下是男孩的概率
【前端验证】关于那道经典概率题,用UVM环境来仿真下是男孩的概率
|
监控
【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)
【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)
|
存储 人工智能 算法
鲁棒优化入门(4)-两阶段鲁棒优化及行列生成算法(C&CG)超详细讲解
        鲁棒优化是应对数据不确定性的一种优化方法,但单阶段鲁棒优化过于保守。为了解决这一问题,引入了两阶段鲁棒优化(Two-stage Robust Optimization)以及更一般的多阶段鲁棒优化,其核心思想是将决策问题分为两个阶段。第一阶段是进行初步决策,第二阶段是根据第一阶段的决策结果制定更好的决策策略,应对数据不确定性的影响。这种方法可以降低保守性,提高鲁棒性。
|
机器学习/深度学习 算法
【数字预失真(DPD)】静态DPD设计扩展为自适应设计及评估两种自适应DPD设计:基于(最小均方)LMS算法、使用递归预测误差方法(RPEM)算法研究(Matlab&Simulink实现)
【数字预失真(DPD)】静态DPD设计扩展为自适应设计及评估两种自适应DPD设计:基于(最小均方)LMS算法、使用递归预测误差方法(RPEM)算法研究(Matlab&Simulink实现)
168 0
|
机器学习/深度学习 传感器 资源调度
【优化控制】基于策略迭代算法求解重构机械臂容错跟踪控制优化问题含Matlab代码
【优化控制】基于策略迭代算法求解重构机械臂容错跟踪控制优化问题含Matlab代码
|
自动驾驶 机器人 计算机视觉
3D检测难点 | 3D检测如何解决远处小目标问题?Deformable PV-RCNN 或是个答案!
3D检测难点 | 3D检测如何解决远处小目标问题?Deformable PV-RCNN 或是个答案!
185 0
|
编解码 数据可视化 UED
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节(2)
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节
314 0