赞
踩
ubuntu版本:20.04
webots版本:2021a
ros版本:noetic
A_LOAM是由港科大沈老师组的Shaozu Cao根据LOAM源码改写的A-LOAM版本。相比于原始的LOAM开源代码,A-LOAM中坐标系定义较为清晰,利用Ceres开源优化库,简化了后端优化求解过程,较容易理解。与LOAM类似,A-LOAM可分为三部分:scanRegistration, odometry, mapping。其中,scanRegistration部分主要负责实时从原始激光雷达点云中提取线和面特征点,odometry部分负责利用scanRegistration部分提取出的特征点,关联特征并计算估计帧间的相对运,mapping部分负责以1Hz的频率更新维护特征地图,同时利用帧到地图的配准,提高里程计轨迹精度。
Github开源地址:https://github.com/HKUST-Aerial-Robotics/A-LOAM
$ cd ~/catkin_ws/src
$ git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
下载完源码后直接编译是不能通过的,需要进行一些修改才行。
可以看到在A_LOAM/src文件夹下有四个.cpp文件,分别为kittiHelper.cpp;laserMapping.cpp;laserOdometry.cpp;scanRegistration.cpp
/camera_init
修改为camera_init
scanRegistration.cpp
中的 #include <opencv/cv.h>
修改为#include <opencv2/imgproc.hpp>
kittiHelper.cpp
中 CV_LOAD_IMAGE_GRAYSCALE
为 cv::IMREAD_GRAYSCALE
$ cd ~/catkin_ws/
$ catkin_make
编译如果出现以下错误:
error: #error PCL requires C++14 or above
解决办法
在CMakeLists.txt中添加,如下指令即可成功编译
set( CMAKE_CXX_STANDARD 14)
下载nsh_indoor_outdoor.bag 测试数据到你的YOUR_DATASET_FOLDER
$ roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
$ rosbag play YOUR_DATASET_FOLDER/nsh_indoor_outdoor.bag
效果如下所示:
本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~
为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
✌Bye
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。