低速无人车
低速无人车听说过吗?
最近几年,无人危化作业、无人清洁、无人快递、 屡屡登上新闻头条,多种无人车平台也都走进日常生活中。而这些无人车,都属于低速无人车。
低速无人车,主要应用在校园、景区、园区、机场、矿山等半封闭区域内。与乘用车或商用车相比,低速无人车拥有明确的应用场景和可控的成本,成为未来更具商业价值的领域。
近年来,随着数字化智能化建设,物流配送、安防巡逻、零售、环卫、港口、矿区等运营场景对低速无人车的需求日益增加,产业链得到较快发展 。
接下来小Y将持续为大家推出低速无人车核心技术分享专栏 ,从自动驾驶技术-到底盘控制技术为大家详细说明低速无人车的技术路线与行业应用发展路线 ,希望大家多多关照 。
在行业应用中移动机器人多种建图算法说明- Hector
1.原理详解
Hector整体算法很直接,就是将激光点与已有的地图“对齐”,即扫描匹配。扫描匹配就是使用当前帧与已经有的地图数据构建误差函数,使用高斯牛顿法得到最优解和偏差量。其工作是实现激光点到栅格地图的转换,t时刻所有的激光点都能变换到栅格地图中,也就意味着匹配成功。
2.具体流程
首先初始时刻激光自身的坐标系与栅格地图坐标系重合,即激光在地图中的初始位姿(estimate)已知,激光的第一帧扫描数据在地图中的坐标已知。接着,获取到第二帧激光扫描数据,第二帧数据在激光雷达坐标系下的坐标是可以测出的(根据激光雷达的range、angle便可得到在激光坐标系下的坐标),但是不知道与第一帧的相对位置关系。
下一步就是实现这两帧数据的匹配,我们假设两帧数据无限接近,即激光点在栅格地图占用值接近1(占用值越大,匹配的效果越好)。然后构造最小二乘法,对函数先对括号内部展开,然后对使误差偏导为0,求解高斯牛顿方程(其中有用到地图求偏导的方程(双线性插值法),带入即可求出位姿增量(在hector位姿增量用变量searchDir)。
接下来就可求出第二帧激光在地图坐标系下的位姿(第一帧位姿加上位姿增量即可得到,estimate += searchDir),slam中定位完成。
接下来建图,后一帧的激光位姿求出,因为已知后一帧激光点在激光坐标系下的坐标,所以可根据后一帧激光位姿得后一帧激光点在地图中坐标,即映射到地图中,完成slam建图过程。
cartographer中的前端匹配使用了双三次线性插值+ceres库求解非线性优化问题(构造最小二乘,优化匹配),而hector slam中使用了双线性插值+高斯牛顿求解非线性优化问题
3.hector存在的问题
1、其中对于双线性差值,在理论上存在不连续的可能,Pm可能在计算的时候迭代的过程中跑出P00->P11围成的正方形。这个问题也被google的cartographer改进为三线性差值。
2、没有对地图的修正能力,一旦地图出错,之后的匹配也都会出现问题。
4.算法概述
Hector slam 利用高斯牛顿方法解决 scan-matching 问题,对传感器要求较高。
其无需使用里程计,所以在不平坦区域实现建图的空中无人机及地面小车具有运用的可行性,利用已经获得的地图对激光束点阵进行优化,估计激光点在地图的表示和占据网络的概率,获得激光点集映射到已有地图的刚体变换,为避免局部最小而非全局最优出现,地图使用多分辨率。
需具备高更新频率且测量噪音小的激光扫描仪,所以,在制图过程中,robot的速度要控制在较低的情况下才会有比较理想的建图效果,这也是它没有回环的一个后遗症。另外在里程计数据比较精确的情况下无法有效利用里程计信息。

5.算法优缺点
优点
不需要使用里程计,所以使得空中无人机及地面小车在不平坦区域建图存在运用的可行性;利用已经获得的地图对激光束点阵进行优化, 估计激光点在地图的表示,和占据网格的概率;利用高斯牛顿方法解决scan-matching 问题,获得激光点集映射到已有地图的刚体变换;为避免局部最小而非全局最优,使用多分辨率地图;导航中的状态估计加入惯性测量系统(IMU),利用EKF滤波;
缺点
成本高 ,需要扫描传感器或雷达(LRS)的更新频率较高满足测量噪点小,但是在制图过程中需要机器人速度控制在比较低的情况下,建图效果才会比较理想,这也是它没有回环(loop close)的一个后遗症;且在里程计数据比较精确的时候,无法有效利用里程计信息,造成数据的浪费 。
6.综合评价
建图效果标准,必须要机器人速度控制在比较低的情况下建图效果才能好一点儿,以上建图由于速度过快导致地图发生偏移。在大地图,低特征(distinctive landmarks)场景中,hector的建图误差高于gmapping。
这是由于hector过分依赖scan-match。特别是在长廊问题中,误差更加明显。hector_slam通过最小二乘法匹配扫描点,且依赖高精度的激光雷达数据,因此扫描角度很小且噪点较大的外围是不行的,匹配时会陷入局部点,地图比较混乱。
对比下来Gmapping是应用最为广泛的2D slam方法,主要是基于2D激光雷达使用RBPF(Rao-Blackwellized Particle Filters)粒子滤波算法完成二维栅格地图构建,每个粒子都携带一张地图,将定位和建图过程分离,先进行定位再进行建图。
Gmapping可以实时构建室内环境地图,在构建小场景地图所需的计算量较小且地图精度较高。相比于Hector SLAM,对激光雷达扫描频率要求较低、鲁棒性高(Hector在机器人快速转向时很容易发生错误匹配,构建的地图发生错位,原因主要是优化算法容易陷入局部最小值);而相比于Cartographer,在构建小场景地图时Gmapping不需要太多的粒子并且没有回环检测,因此计算量小于Cartographer而精度并没有差太多。
Gmapping有效利用了里程计信息,这也是Gmapping对激光雷达频率要求低的原因:里程计可以提供机器人的位姿先验。而Hector和Cartographer的设计初衷不是为了解决平面移动机器人定位和建图,Hector主要用于救灾等地面不平坦的情况。
最后向大家介绍YUHESEN 开发的商业化应用导航模块 NV-AUTO
欢迎大家位临公司交流学习 ,一同推动移动机器人导航技术发展与技术落地。