A-LOAM
文章平均质量分 85
A-LOAM算法代码解析及运行
可见一班
这个作者很懒,什么都没留下…
展开
-
生成A-LOAM运行轨迹文件并用EVO工具绘制
针对轨迹绘制问题,主要包含两个具体问题:其一,怎么让算法生成轨迹文件?其二,怎么使用EVO工具?A-LOAM算法作为最简单的激光SLAM算法,故本文以该算法为例进行学习和调试。安装evo,绘制kitti数据集真值轨迹,修改aloam代码生成tum格式的轨迹文件,用evo绘制所得轨迹原创 2022-10-09 15:54:15 · 2431 阅读 · 6 评论 -
编译rs_to_velodyne-master报错
编译rs_to_velodyne-master时,出现以下错误:/usr/include/pcl-1.10/pcl/point_types.h:574:1: error: ‘plus’ is not a member of ‘pcl::traits’ 574 | POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::CPPFSignature,原创 2022-03-26 10:21:03 · 1693 阅读 · 6 评论 -
速腾激光雷达rslidar(RS 16)运行ALOAM建图
速腾激光雷达rslidar(rs16)采集数据,并将话题转换为velodyne的,运行A-LOAM算法对走廊和地下室建图。原创 2022-04-06 16:33:16 · 3694 阅读 · 1 评论 -
A-LOAM运行和常见问题及解决方法
在ubuntu20.04+Noetic系统下运行A-LOAM算法,在nsh_indoor_outdoor.bag数据库下建图。遇到编译和运行的问题,以及解决方法。cv::IMREAD_GRAYSCALE;rviz只显示绿色轨迹线c++: internal compiler error: 已杀死 (program cc1plus)原创 2022-03-17 21:29:48 · 8517 阅读 · 14 评论 -
A-LOAM代码注释学习(五)laserMapping.cpp
在里程计部分,知道了lidar->landmark(传感器测量),推算出了lidar->odometry,从而知道landmark在odometry下的姿态,现在加一个高精度的lidar->map,就构建出了地图,同时odometry->map就是优化量,对载体位姿进行优化。先找五个点,然后求出能够代表这五个点的直线方向,再以此为基础构建两个点,连成线,然后残差函数的形式就跟Odometry部分的一样了,残差距离即点到线的距离。里程计回调函数是为了以前端的频率向外发布位姿,这里主要提供一个估计的初值。原创 2022-10-17 20:50:31 · 768 阅读 · 0 评论 -
A-LOAM代码注释学习(四)laserOdometry.cpp
原理:按照匀速运动假设,找到了一个衡量畸变的参数s,就是前面算出来的点的时间,保存在point.intensity的小数部分。也就是说,时间越晚,运动的时刻相对开始时刻越晚,产生的畸变越严重。在去畸变的时候,位移向量可以直接乘这个衡量参数s进行校正,而姿态四元数表征旋转,需要用slerp球面线性插值。思考:先转换到初始点,因为可以依据匀速模型。再转换到结束点,因为这个变化的位姿需要迭代优化。t_last_curr表示current—>last的平移变化。1.2 回调函数这个节点的回调函数功能简单原创 2022-10-15 15:45:36 · 890 阅读 · 0 评论 -
A-LOAM代码注释学习(三)scanRegistration.cpp
根据代码,对A-LOAM算法框架进一步理解,进行数学推导理解和代码里函数的使用。scanRegistration.cpp对应scanRegistration节点,包括主函数,近点剔除函数和特征点提取回调函数。对各部件进行了详细的代码注释,并对部分难点进行梳理和理解。原创 2022-10-13 10:49:13 · 1026 阅读 · 1 评论 -
A-LOAM代码注释学习(二)kittiHelper.cpp
kittiHelper.cpp主要用来把文件格式的KITTI数据集打包成ros格式并发布topic,需要与kitti_helper.launch配合使用。此处有一个矩阵运算的bug,已进行标注,可以分别对修改前后生成的bag的信息进行查看。主要查看 /path_gt 和 /odometry_gt 的输出。根据KITTI数据集存放位置和kittiHelper.cpp中的文件路径对kitti_helper.launch文件进行修改。原创 2022-10-18 14:33:56 · 997 阅读 · 4 评论 -
A-LOAM代码注释学习(一)common.h和tictoc.h
#pragma once //#ifndef可以针对一个文件中的部分代码,而#pragma once只能针对整个文件(物理上) //在C/C++中,#pragma once是一个非标准但是被广泛支持的方式。#include //基础数学运算库#include //原创 2022-10-11 22:35:23 · 654 阅读 · 0 评论