LOAM 系列(1): A-LOAM 安装以及概述

一、github

GitHub - HKUST-Aerial-Robotics/A-LOAM: Advanced implementation of LOAM

二、安装依赖

1. ROS

Ubuntu 64-bit 16.04  ROS Kinetic

比较常规,就不赘述了

2. Ceres Solver

Installation — Ceres Solver

安装版本:

3. PCL

sudo apt install libpcl-dev

三、编译

1. 下载代码至 catkin_ws

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git

2. 编译

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

四、运行 example

1. 启动 ros

roscore

2. 启动 loam

roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

3. 播放 bag

cd $DATASET_DIR # 切换至存放 bag 目录
rosbag play nsh_indoor_outdoor.bag

4. 效果

五、ros 节点组织

1. launch 文件解析

<launch>
    
    <param name="scan_line" type="int" value="16" />

    <!-- if 1, do mapping 10 Hz, if 2, do mapping 5 Hz. Suggest to use 1, it will adjust frequence automaticlly -->
    <param name="mapping_skip_frame" type="int" value="1" />

    <!-- remove too closed points -->
    <param name="minimum_range" type="double" value="0.3"/>


    <param name="mapping_line_resolution" type="double" value="0.2"/>
    <param name="mapping_plane_resolution" type="double" value="0.4"/>

    // 运行三个bin
    <node pkg="aloam_velodyne" type="ascanRegistration" name="ascanRegistration" output="screen" />
    <node pkg="aloam_velodyne" type="alaserOdometry" name="alaserOdometry" output="screen" />
    <node pkg="aloam_velodyne" type="alaserMapping" name="alaserMapping" output="screen" />

    <arg name="rviz" default="true" />
    <group if="$(arg rviz)">
        <node launch-prefix="nice" pkg="rviz" type="rviz" name="rviz" args="-d $(find aloam_velodyne)/rviz_cfg/aloam_velodyne.rviz" />
    </group>

</launch>

(1). 可执行文件

aloam_velodyne: ascanRegistration

aloam_velodyne: alaserOdometry

aloam_velodyne: alaserMapping

(2). 可视化

rviz

2. topic 订阅

 可以看到,运行的三个可执行文件是串行方式:

ascanRegistration ——> alaserOdometry ——> alaserMapping

六、算法流程

ascanRegistration:特征提取

alaserOdometry:高频率的里程计(Odometry)实现粗定位

alaserMapping:低频率的里程计(Mapping)实现精定位

在第 k 次扫描周期中,lidar 获取到的所有点云集合记作  \hat{P}_k\hat{P}_k 被两个算法处理

1. lidar odometry 算法计算相邻帧的变换,且运动估计结果用于对点云去畸变,10HZ

2.  去畸变后的点云通过 lidar mapping 算法,获取相对于地图的运动,1HZ

最终,两种算法输出的位姿融合,输出 10HZ 的运动轨迹

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值