1.本发明属于移动机器人路径规划及避障领域,具体涉及一种机器人避障路径规划方法。
背景技术:2.近些年来,随着人们生活水平的不断提高,扫地机器人作为一种服务型移动机器人已经广泛地进入到各个家庭中,为人们的日常生活提供了便利。路径规划技术作为扫地机器人的关键技术之一,其算法性能的好坏直接影响扫地机器人的工作效率。扫地机器人的路径规划是机器人学科的一个重要的研究领域,从任务上可以分为两类:点到点规划和全覆盖路径规划,点到点规划关注的是如何以最优的路径到达终点,全覆盖规划要求机器人完整地遍历一定的平面区域或空间范围。
3.在室内家庭环境中,扫地机器人进行全覆盖清扫的时候容易碰到人、宠物等动态障碍物,其中,本领域技术人员会根据障碍物的状态类型,可以分为动态障碍物和静态障碍物。扫地机器人在避开环境中出现的动态障碍物时,都是将动态障碍物当成瞬时的静态障碍物来处理或者无法检测到动态障碍物,同时由于激光的测量精度原因,容易将障碍物分散成一个个散点,从而导致了障碍物的整体特性被忽略,极端情况下可能规划出穿过障碍物的路径,缺少引导扫地机器人在所处室内环境内避开动态物体的策略,无法提前对障碍物的运动行为进行预测,从而造成扫地机器人在全覆盖清扫或局部清扫的过程中与动态障碍物频繁碰撞。
技术实现要素:4.针对机器人在移动过程中缺乏动态避障策略的问题,本发明公开一种机器人避障路径规划方法,具体的技术方案如下:
5.一种机器人避障路径规划方法,机器人装配有测距传感器,用于获取点云数据;机器人避障路径规划方法包括如下步骤:步骤a、机器人从点云数据中提取出用于标记障碍物的拟合图形;同时,机器人构建栅格地图;然后机器人将所述拟合图形的中心与栅格地图进行对比,筛选出中心落入栅格地图的可通行区域的拟合图形;步骤b、基于当前筛选出的拟合图形的映射情况,调用优化的dwa算法规划避障路径;或在调用优化的dwa算法规划避障路径失败时,调用启发式搜索算法规划避障路径。
6.进一步地,所述步骤b具体包括如下步骤:步骤b1、机器人通过执行步骤a筛选出对应的拟合图形后,引入dwa算法中的对应维度的评价函数并调节对应的加权参数,再结合当前筛选出的拟合图形在dwa算法的采样窗口内的映射情况规划避障路径,以实现调用优化的dwa算法规划避障路径;步骤b2、在机器人使用优化的dwa算法规划避障路径失败的情况下,在机器人检测到障碍物时,机器人基于步骤a筛选出的拟合图形在栅格地图内的映射情况,使用启发式搜索算法规划避障路径。
7.进一步地,在所述步骤b中,机器人设置采样窗口,该采样窗口的大小设置为对机
器人的矢量速度的限制,并将该采样窗口设置为在机器人检测到障碍物时覆盖到该障碍物的全部轮廓;机器人调用优化的dwa算法的方式包括:机器人使用采样窗口对机器人的矢量速度进行采样;然后,机器人将dwa算法中预先设置的各个维度的评价函数进行归一化处理,再将选定的两个维度的评价函数的归一化处理结果作比值,获得运动代价加权参数之间的大小关系;再根据机器人与当前筛选出的拟合图形标记的障碍物之间的距离关系调节运动代价加权参数之间的大小关系,再结合调节后的运动代价加权参数之间的大小关系对采样窗口的采样数据进行评分,获取最优的运动轨迹,对应为所述避障路径,以使机器人沿着该最优的运动轨迹行走时不与障碍物碰撞。
8.进一步地,在所述步骤b中,还包括:机器人控制步骤a筛选出的拟合图形膨胀处理以离散成多个点,获得该拟合图形所标记的障碍物在采样窗口内的映射信息,以形成该障碍物在其速度方向的代价地图;再从该采样信息中实时提取出机器人与步骤a筛选出的拟合图形标记的障碍物之间的距离,以使得dwa算法在所述代价地图上所规划的路径是避开处于运动状态下的障碍物;其中,该拟合图形所标记的障碍物的速度越大,该拟合图形在膨胀处理后形成的覆盖范围越大;当机器人的矢量速度包括机器人的线速度与其角速度时,所述结合调节后的运动代价加权参数之间的大小关系对采样窗口的采样数据进行评分之后,机器人选择评分最高的速度组合,以规划出适应机器人按照该速度组合运动的运动轨迹。
9.进一步地,在步骤b1中,还包括:在预设采样时间内,机器人以当前设定的速度运动的情况下,若机器人与步骤a筛选出的拟合图形的中心之间的距离是预设安全距离、或者是机器人的一侧存在步骤a筛选出的拟合图形但机器人不与该侧存在的拟合图形对应标记的障碍物相碰撞,则停止调用优化的dwa算法;机器人的当前位置与用于标记该障碍物的拟合图形的中心的距离小于或等于预设安全距离时,若机器人没有改变当前的前进方向或保持当前的前进方向行走直至碰撞上障碍物,则确定机器人使用优化的dwa算法规划避障路径失败,然后停止调用优化的dwa算法。
10.进一步地,在优化的dwa算法当中,所述机器人将dwa算法中预先设置的各个维度的评价函数进行归一化处理,再将选定的两个维度的评价函数的归一化处理结果作比值,获得运动代价加权参数之间的大小关系的的方法包括:机器人设置的各个维度的评价函数分别是方位角评价函数、距离评价函数以及机器人速度评价函数;机器人为方位角评价函数施加的运动代价加权参数是方位角权重;机器人为距离评价函数施加的运动代价加权参数是距离权重;机器人为机器人速度评价函数施加的运动代价加权参数是机器人速度权重;对于每种维度的评价函数,归一化处理的方式包括:机器人使用采样窗口对机器人的矢量速度进行采样后,在采样数据的基础上,根据运动学模型规划出预测轨迹;机器人在遍历预测轨迹的各个节点过程中,累加该评价函数在预测轨迹的各个节点处产生的函数值,获得该评价函数的统计和值,并获取该评价函数产生最大评价函数值和最小评价函数值;然后将最大评价函数值与最小评价函数值的差值的绝对值与该评价函数的统计和值的比值标记为该评价函数的归一化结果;在运动代价加权参数的误差允许范围内,机器人将方位角权重与方位角评价函数的归一化结果的乘积配置为等于距离权重与距离评价函数的归一化结果的乘积;机器人还将距离权重与距离评价函数的归一化结果的乘积配置为等于机器人速度权重与机器人速度评价函数的归一化结果的乘积。
11.进一步地,在优化的dwa算法当中,所述根据机器人与所检测到的障碍物之间的距离关系调节运动代价加权参数之间的大小关系包括:当机器人检测到以其为中心且半径为预设安全距离的圆域内不存在步骤a筛选出的拟合图形的中心时,机器人将方位角权重和距离权重都调节为大于机器人速度权重,以使机器人加速向预设目标点运动;当机器人检测到所述预测轨迹与步骤a筛选出的拟合图形的中心之间的最小距离小于预设安全距离时,机器人将距离权重和机器人速度权重都调节为大于方位角度权重,以使机器人转向过程中不与步骤a筛选出的拟合图形标记的障碍物相碰撞;当机器人位于所述预测轨迹的路径终点的前一个路径节点处时,机器人将方位角度权重调节为同时大于距离权重和机器人速度权重,以使机器人减速运动至路径终点;其中,每一条预测轨迹的评分被配置为等于对应维度的评价函数加权平均的结果。
12.进一步地,在机器人使用优化的dwa算法规划避障路径失败后,在机器人没有碰触障碍物的情况下,若采样窗口内存在反射自障碍物的点云数据,则机器人以步骤a筛选出的拟合图形的中心的坐标为均值、且以与该拟合图形标记的障碍物的速度正相关的参数为标准差,建立起二维高斯分布,再使用该二维高斯分布将该拟合图形的边缘线离散成多个点,再将这些离散的点分别映射到栅格地图上并标记为障碍物占据的栅格,再在该栅格地图上用启发式搜索算法规划出绕开障碍物占据的栅格的路径,并确定使用启发式搜索算法规划避障路径。
13.进一步地,在该栅格地图上用启发式搜索算法规划出绕开障碍物占据的栅格的路径的方法包括:机器人先在全局地图坐标系上设置路径起点和路径终点;再将当前位置的坐标和/或预设目标点的坐标转换到全局地图坐标系上,再利用启发式搜索算法规划出绕开障碍物占据的栅格的路径,得到多个位于全局地图坐标系的路径节点及其路径延伸方向信息,以实现使用启发式搜索算法规划出避障路径,其中,路径起点和路径终点分别是该避障路径的起点和终点,机器人的当前位置或预设目标点是启发式搜索算法所规定的搜索起点。
14.进一步地,步骤a还包括:利用筛选出的拟合图形的中心的坐标变化,来识别该拟合图形所标记的障碍物的状态类型,以区分静态障碍物与动态障碍物。
15.进一步地,所述步骤a具体包括:步骤a1、机器人对所获取的点云数据进行分割,得到若干个点集合;步骤a2、对步骤a1获得的点集合进行合并处理,获得拟合线段;步骤a3、对步骤a2获得的拟合线段进行圆拟合操作,获得预设外接圆;再对预设外接圆进行圆合并处理,获得拟合圆;步骤a4、利用点云数据构建栅格地图,再依据可通行性对栅格地图进行二值化处理,再对二值化的栅格地图进行腐蚀处理,然后将经过二值化处理和腐蚀处理后的栅格地图更新为栅格地图;步骤a5、将步骤a3获得的拟合圆的圆心转换到地图上以实现与步骤a4最后更新出的栅格地图的坐标索引信息进行对比,筛选出圆心落入栅格地图的可通行区域的拟合圆,并确定机器人获得所述用于标记障碍物的拟合图形;步骤a6、通过获取不同时刻下的用于标记障碍物的拟合图形的中心,计算出该障碍物的速度,再依据障碍物的速度识别该障碍物是属于静态障碍物还是属于动态障碍物。
16.进一步地,在所述步骤a1中,机器人通过测距传感器获取的点云数据是激光点云,激光点云包括多个激光点;所述机器人对所获取的点云数据进行分割,得到若干个点集合的方法包括:步骤a11、在机器人搜索激光点的过程中,机器人利用两个激光点的欧式距离
的变化,将激光点云分成多个激光点组;步骤a12、机器人利用最小二乘法将每个激光点组内的激光点拟合出一条拟合线段;在每个激光点组内,机器人将距离对应拟合出的拟合线段最远的激光点标记为最远点,当机器人计算出最远点到该激光点组对应拟合出的拟合线段之间的距离大于预设分割距离阈值,则以该最远点为分界将该激光点组分割为两个子集合以使该最远点成为其中一个子集合内的第一个激光点,其中,该激光点组内,机器人将索引值比该最远点小的激光点归入一个子集合,并将索引值比该最远点大的激光点归入另一个子集合;步骤a13、机器人将每个子集合更新为步骤a12所述的激光点组,再执行步骤a12,直至所有的激光点组内对应的最远点与该激光点组对应拟合出的拟合线段之间的距离都小于或等于预设分割距离阈值,然后将把激光点的数量少于预设数量阈值的激光点组剔除,剩余的激光点组是步骤a11所述的若干个点集合,并获得现存的各个激光点组内的激光点拟合出的的拟合线段。
17.进一步地,在所述步骤a11中,所述机器人利用两个激光点的欧式距离的变化,将激光点云分成多个激光点组的方法包括:步骤a111、机器人计算当前一次搜索到的激光点与上一次搜索到的激光点的欧式距离;若该欧式距离小于预设分组距离阈值,则将当前一次搜索到的激光点与上一次搜索到的激光点归为同一个激光点组;若该欧式距离大于或等于预设分组距离阈值,则将当前一次搜索到的激光点归入一个新的激光点组内,并将当前一次搜索到的激光点标记为该新的激光点组内的第一个激光点;然后执行步骤a112;步骤a112、机器人搜索新的激光点,然后将当前一次搜索到的激光点更新为上一次搜索到的激光点,再执行步骤a111,直至机器人计算完每个激光点与其余任一个激光点的欧式距离并依据对应两个激光点的欧式距离分出激光点组,然后执行步骤a12。
18.进一步地,在所述步骤a2中,对点集合进行合并处理的方法包括:每当机器人从步骤a13获得的所有拟合线段当中搜索两条拟合线段后,若机器人检测到该两条拟合线段之间最近的端点的距离小于预设轮廓距离阈值,且该两条拟合线段的斜率的差值的绝对值小于预设斜率阈值,且该两条拟合线段的延长线与同一坐标轴的交点的距离小于预设截距阈值时,则确定该两条拟合线段处于一条直线;然后,将该两条拟合线段对应的两个激光点组并为一个新的激光点组,再利用最小二乘法将合并后的激光点组内的激光点拟合为新的拟合线段。
19.进一步地,对于每条拟合线段,该条拟合线段的两个端点分别配置为该条拟合线段对应的激光点组内的第一个激光点和最后一个激光点;每个激光点组对应一条拟合线段;在同一个激光点组内,第一个激光点和最后一个激光点之间的距离是任意两个激光点之间的距离当中的最大值。
20.进一步地,在步骤a3中,对拟合线段进行圆拟合操作的方法包括:机器人从所述步骤a2获得的每条拟合线段中获取垂直于该条拟合线段且指向激光坐标系的原点的向量,将该向量与横坐标轴所成的夹角的角度设置为水平偏转角度,并将该向量与纵坐标轴所成的夹角的角度设置为竖直偏转角度;然后将该条拟合线段设置为等边三角形的一条边,然后将该等边三角形的外心设置为与激光坐标系的原点分居该条拟合线段的两侧、或设置为与激光坐标系的原点位于该条拟合线段的同一侧;然后将该条拟合线段的长度与30度的正切函数值的乘积设置为该等边三角形的外接圆的半径;然后将该等边三角形的外接圆的半径的一半与水平偏转角度的余弦函数值的乘积标记为预设横轴偏移坐标量,并确定该预设横
轴偏移坐标量是该条拟合线段的中点与该等边三角形的外接圆的圆心在横坐标轴上的坐标偏移量;同时,将该等边三角形的外接圆的半径的一半与竖直偏转角度的余弦函数值的乘积标记为预设纵轴偏移坐标量,并确定该预设纵轴偏移坐标量是该条拟合线段的中点与该等边三角形的外接圆的圆心在纵坐标轴上的坐标偏移量;然后利用预设纵轴偏移坐标量和预设横轴偏移坐标量计算出该等边三角形的外接圆的圆心的坐标位置;在该等边三角形的外接圆的圆心的坐标位置的基础上,将该等边三角形的外接圆的半径扩大一个预设半径增量,获得所述预设外接圆,并确定对该条拟合线段完成圆拟合操作。
21.进一步地,在步骤a3中,对预设外接圆进行圆合并处理的方法包括:当机器人检测到存在两个预设外接圆为包含关系时,保留该两个预设外接圆当中半径相对大的预设外接圆,同时剔除该两个预设外接圆当中半径相对小的预设外接圆,并将该两个预设外接圆当中半径相对大的预设外接圆设置为拟合圆,以使该拟合圆标记或圈定一个障碍物;当机器人检测到存在两个预设外接圆相交时,将该两个预设外接圆的圆心的连线配置为拟合线段,再将该拟合线段进行前述的圆拟合操作,得到参考外接圆;然后将参考外接圆的半径与前述的圆拟合操作之前的两个预设外接圆中相对大的半径相加,获得参考半径;当检测到该参考半径小于预设容许半径,则保留下该参考外接圆的圆心,再以参考外接圆的圆心为圆心、参考半径为半径设定一个圆形并将该圆形标记为所述拟合圆,以使该拟合圆标记或圈定一个障碍物。
22.进一步地,所述步骤a4具体包括:利用点云数据表征的障碍物占据的位置信息,为栅格地图的各个栅格赋予相应的像素值,然后将像素值大于预设像素阈值的栅格标记为可通行栅格,并将像素值小于或等于预设像素阈值的栅格标记为不可通行栅格,然后获得二值化的栅格地图,并确定原始的栅格地图经过二值化处理;再按照预设的点云转换误差将二值化的栅格地图内的每个不可通行栅格的关联邻域的可通行栅格标记为不可通行栅格,获得腐蚀处理后的栅格地图;其中,每个不可通行栅格的关联邻域的栅格区域与预设的点云转换误差涉及的栅格区域正相关;然后将先后经过二值化处理和腐蚀处理后的栅格地图更新为所述栅格地图,再将可通行栅格组成的区域标记为栅格地图内的可通行区域,同时将可通行栅格在所述栅格地图内的坐标索引值记录下来;然后执行步骤a5。
23.进一步地,在所述步骤a5中,机器人将步骤a3获得的拟合圆的圆心从激光坐标系投影到步骤a4最后更新出的栅格地图中,获得相应拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值;然后对比步骤a4所记录的坐标索引值与拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值;当步骤a3获得的拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值等于步骤a4所记录的其中一个坐标索引值时,确定该拟合圆是所述步骤a筛选出的中心落入栅格地图的可通行区域的拟合图形,则筛选出中心落入栅格地图的可通行区域的拟合圆并将该拟合圆标记为所述用于标记障碍物的拟合图形;当步骤a3获得的拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值不等于步骤a4所记录的任意一个坐标索引值时,从栅格地图内剔除该拟合圆的圆心。
24.进一步地,在所述步骤a6中,所述通过获取不同时刻下的所述用于标记障碍物的拟合图形的中心,计算出该障碍物的速度,再依据障碍物的速度识别该障碍物是属于静态障碍物还是属于动态障碍物的方法包括:机器人将步骤a5在第一时刻筛选出的拟合图形的中心的坐标标记为第一中心坐标;然后,机器人将步骤a5在第二时刻筛选出的同一拟合图
形的中心的坐标标记为第二中心坐标;机器人将第一时刻与第二时刻的时间差值标记为障碍物运动时间差;机器人将第一中心坐标与第二中心坐标的距离标记为障碍物的运动距离;然后计算障碍物的运动距离与障碍物运动时间差的比值,获得该障碍物的速度;当机器人判断到该障碍物的速度大于预设速度阈值时,确定该障碍物是动态障碍物,再重复执行步骤a1至步骤a6以实现对该动态障碍物的运动状态的跟踪;当机器人判断到该障碍物的速度小于或等于预设速度阈值时,确定该障碍物是静态障碍物。
25.本发明的有益技术效果在于:本发明结合评价函数的归一化结果计算权重系数,并在机器人与障碍物的碰触摸关系、以及预测轨迹(来源于运动学模型推测对应的轨迹)与障碍物(拟合图形标记出的或圈定的)的各种位置关系中适应性地调节所引入的评价函数的权重系数,改变预先规划出的轨迹的评分,形成最优的轨迹,使得优化的dwa算法选择出评分较高的有效避开障碍物的规划路径,提前对障碍物的运动行为进行预测,减少机器人与动态障碍物发生碰撞的次数。还利用动态障碍物信息生成二维高斯分布并将其映射到二值栅格地图上,则可以在优化的dwa算法执行失败时(一般是机器人碰撞上障碍物时),在该地图上配合a*算法规划出避开动态障碍物的路径并确定使用启发式搜索算法规划出绕开障碍物占据的栅格的路径,实现全局路径规划条件下的机器人动态避障的效果。另外,可以有选择性的调用优化的dwa算法或a*算法,降低机器人导航作业时的运行负载,避免机器人的运行内存一直处于高负荷状态。
附图说明
26.图1是本发明的一种实施例公开的机器人避障路径规划方法的流程图。
27.图2是本发明的一种实施例公开的将激光点云分成两个激光点组的示意图。
28.图3是本发明的一种实施例公开的对一个激光点组分割的示意图。
29.图4是本发明的一种实施例公开的对两条拟合线段合并处理的示意图。
30.图5是本发明的一种实施例公开的等边三角形的外接圆的示意图。
31.图6是本发明的一种实施例公开的将两个预设外接圆进行圆合并处理为拟合圆的示意图。
具体实施方式
32.为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。下面通过实施例并结合附图,对本发明的技术方案进一步具体的说明。
33.本发明公开一种适用于各种状态类型的障碍物环境下的机器人避障路径规划方法,机器人避障路径规划方法的执行主体是一种自动移动的机器人,该机器人的机体上装配测距传感器,用于获取点云数据,这些点云数据是测距传感器发出的调制光信号扫描机器人所处的环境的结果,具体是机器人所处环境内的障碍物反射的信息,反映机器人所探测到的障碍物全部轮廓或部分轮廓的位置信息。优选地,测距传感器是支持360度旋转的激光雷达,获取各个角度方向上的激光点云,即所述点云数据,由旋转角度信息和距离信息组成;一般地,激光雷达每旋转一圈,则获取一帧激光点云。所述机器人避障路径规划方法包括:步骤a、机器人从点云数据中提取出用于标记障碍物的拟合图形,即构建出能够在点云
数据中代表该障碍物的图形,优选为包围(或圈住)该障碍物的圆形。同时,机器人构建栅格地图,该栅格地图可以简化为由0和1表示的栅格组成的二值化的栅格地图,也可以是概率栅格地图;其中,用于标记障碍物的拟合图形不一定是位于栅格地图内。因此,机器人需要将所述拟合图形的中心与栅格地图进行对比,筛选出中心落入栅格地图的可通行区域的拟合图形,具体地,机器人会先将所述拟合图形的中心转换到所述栅格地图上,并通过图像处理手段去剔除中心处于地图边界上的拟合图形,从而筛选出中心落入栅格地图的可通行区域的拟合图形,获得处于栅格地图内部的可能的动态障碍物的位置信息。然后执行步骤b。
34.步骤b、机器人通过执行步骤a筛选出对应拟合图形后,基于当前筛选出的拟合图形的映射情况,包括当前筛选出的拟合图形在步骤a所述的栅格地图内的投影情况,调用优化的dwa算法,以使机器人避开障碍物,包括避开动态障碍物;或在调用优化的dwa算法规划避障路径失败时,调用启发式搜索算法规划避障路径。
35.需要说明的是,机器人通过执行步骤a筛选出对应拟合图形的同时,机器人已经检测到障碍物,可以理解为机器人已经识别出该障碍物的状态类型,具体可以是动态障碍物,或者仅仅是在相应的搜索空间或采样窗口内捕获到障碍物的全部轮廓或部分轮廓。所述避障路径是配置为避开障碍物的路径,并遵循优化的dwa算法或启发式搜索算法的相关约束条件,包括路径节点数量、路径代价、运动方向等关联的约束条件,这些约束条件可以是点云数据的拟合结果或一些概率分布模型下映射出的栅格地图;无论机器人当前规划路径时是否碰撞上障碍物,机器人规划出的所述避障路径是让机器人后续及时避开障碍物(包括动态障碍物),为机器人在动态障碍物或静态障碍物的环境下的无碰撞运动提供有效保障。
36.在前述实施例的基础上,使用运动控制器让机器人跟随着规划出的避障路径,即输入规划出的避障路径,输出机器人控制的速度;针对轮式差速机器人,输出机器人控制的线速度与角速度,以达到机器人实时跟随所述避障路径的目的。由于避障路径是避开障碍物的,机器人沿着所述避障路径走自然也不会与障碍物发生碰撞。
37.作为一种实施例,所述步骤b具体包括如下步骤:
38.步骤b1、在没碰撞障碍物的前提下,可以是在机器人检测到障碍物时,即在相应的搜索空间或采样窗口内捕获到障碍物的全部轮廓或部分轮廓的情况下,机器人通过执行步骤a筛选出对应的拟合图形后,引入dwa算法中的对应维度的评价函数并调节对应的加权参数,再结合当前筛选出的拟合图形在dwa算法的采样窗口内的映射情况,规划避障路径,以实现调用优化的dwa算法规划避障路径,优选地,当机器人碰触到障碍物时,确定机器人使用优化的dwa算法规划避障路径失败。其中,拟合图形在dwa算法的采样窗口内的映射情况,为了让机器人在导航过程中遇到动态障碍物时能有更多的反应时间,则利用拟合图形的变化速度、中心所在位置和覆盖区域大小,进行适应性地膨胀,以将拟合图形的边缘离散成若干个点作为拟合图形对应标记的障碍物的位置信息,增添为dwa算法的采样窗口内的一部分采样信息。
39.步骤b2、在机器人使用优化的dwa算法规划避障路径失败的情况下(相当于dwa算法也失效),机器人检测到障碍物时,即在采样窗口内捕获到障碍物的全部轮廓(采样窗口框定障碍物反射的全部点云数据以覆盖障碍物的全部轮廓)时,机器人基于步骤a筛选出的拟合图形在栅格地图内的映射情况,使用启发式搜索算法规划避障路径,具体是在确定拟合图形在栅格地图内的投影区域后,在栅格地图内使用启发式搜索算法规划避障路径,指
引机器人避开障碍物障,实现局部避障,当障碍物是识别为动态障碍物时,实现规划出避开动态障碍物的路径,实现动态避障。至于所述拟合图形在栅格地图内的映射情况,具体是拟合图形的中心的坐标转换为代价地图上对应的位置,实现离散成若干个点并映射到栅格地图上;并可以利用高斯分布将障碍物周围的栅格的代价值进行更新,优选地,代价地图可以从拟合图形的中心出发,沿着障碍物的运动速度的方向的栅格的代价值变大。
40.作为一种实施例,在所述步骤b中,机器人设置采样窗口,该采样窗口的大小设置为对机器人的矢量速度的限制,并将该采样窗口设置为在机器人检测到障碍物时覆盖到该障碍物的全部轮廓,即该障碍物整体上遮挡住该采样窗口,尤其是在dwa算法中比较常用;需要说明的是,dwa算法(dynamic window approach),其原理主要是在速度空间(线速度与角速度)中采样多组速度,并模拟出这些速度在一定时间内的运动轨迹,并通过评价函数对这些轨迹进行评价,选取最优轨迹对应的(线速度与角速度)驱动机器人运动。机器人的运动状态,包括其不停变换的位置及运动方向,实际上是由其当前的运动速度及角速度决定,也接受各个维度的评价函数的调节;dwa算法执行的核心部分是动态窗口,速度空间(线速度与角速度)以窗口的形式创建出来,即用于框住部分速度数据的矩形方框,以此作为一个限定范围,在这个限定范围内计算每个速度和角速度下所能达到的位置,实现模拟出这些速度在一定时间内的运动轨迹;在对每个位置进行测评(测评内容包括距障碍物的距离、朝向终点的角度等),由此选出最佳位置,然后再由这个最佳位置继续重复以上过程中建立新的窗口,这样窗口就动起来,即所述动态窗口,在本实施例中描述为采样窗口。
41.机器人调用优化的dwa算法的方式包括:机器人使用采样窗口对机器人的矢量速度进行采样;然后,机器人将dwa算法中预先设置的各个维度的评价函数进行归一化处理,以将加权参数换算到与栅格地图内的每个栅格的占用概率值处于同一数值范围内;再将选定的两个维度的评价函数的归一化处理结果作比值,获得运动代价加权参数之间的大小关系,具体是选定的两个维度的运动代价加权参数之间的比值;再根据机器人与当前筛选出的拟合图形标记的障碍物之间的距离关系(可以视为步骤a筛选出的拟合图形的中心与机器人的当前位置(机器人的机体中心)之间的距离关系)调节运动代价加权参数之间的大小关系,再结合调节后的运动代价加权参数之间的大小关系对采样窗口的采样数据进行评分,获取最优的运动轨迹,对应为所述避障路径,以使机器人沿着该最优的运动轨迹行走时不与障碍物碰撞。
42.优选地,在所述步骤b中,还包括:机器人控制步骤a筛选出的拟合图形膨胀处理以离散成多个点,获得该拟合图形所标记的障碍物在采样窗口内的映射信息,具体将被采样窗口所覆盖到的该拟合图形的边缘线转换为由离散点组成,可以按照一定的角度间隔将拟合图形的边缘线上的点提取出来作为离散点,该离散点与拟合图形的中心的距离可以变大或保持不变,而被提取出来的边缘线上的点的邻域处的点被剔除或像素值发生较大的变化以区别开。当该拟合图形或其离散点需要转换到地图坐标系上时,可以形成该障碍物在其速度方向的代价地图;再从该采样信息中实时提取出机器人与所检测到的障碍物之间的距离,以使得dwa算法在所述代价地图上所规划的路径是避开处于运动状态下的障碍物;其中,该拟合图形所标记的障碍物的速度越大,该拟合图形在膨胀处理后形成的覆盖范围越大,当拟合图形是圆形时,该圆形的半径越大,则该拟合图形的覆盖区域越大,反之越小。基于dwa算法的路径规划方式,当机器人的矢量速度包括机器人的线速度与其角速度时,所述
结合调节后的运动代价加权参数之间的大小关系对采样窗口的采样数据进行评分之后,机器人选择评分最高的速度组合,以规划出适应机器人按照该速度组合运动的运动轨迹,形成所述避障路径。
43.需要说明的是,机器人利用dwa算法规划路径的过程中,根据机器人速度限制、加速度限制、离障碍物距离限制对速度(包括机器人的线速度和角速度)进行采样,设计评价函数对每组采样数据或每一类型的速度进行评分,最后选择评分最高的速度组合,其中,为机器人能够到达的所有矢量速度的集合,机器人会受到最大线速度、最小线速度、最大角速度以及最小角速度的影响,在一些实施例中,加速度有一个范围限制,所以最大加速度或最大减速度在一定时间内能达到的速度才会被保留;为了能在碰到障碍物前停下来,既要确定最大减速度,也要确定轨迹上与障碍物最近的距离;本实施例专门对各个维度的评价函数的加权参数进行调节、以及对各个维度的评价函数归一化处理,以将加权参数换算到与栅格地图内的每个栅格的占用概率值处于同一数值范围内,实施成为优化的dwa算法,使得各个维度的评价函数的加权平均结果达到预设的指标,则在这一预设的指标下规划出的运动轨迹更加灵活地应对动态障碍物的碰撞问题。
44.在dwa算法或优化的dwa算法中,采样窗口所采样到的线速度和角速度用来模拟机器人运动的轨迹,需要先要分析机器人运动学模型,机器人运动学模型涉及到在机器人坐标系中,横坐标轴方向的速度、纵坐标轴方向的速度以及旋转角度,以形成两个不同时刻下的位置和速度关系,具体地,随着电机的线加速度、角加速度进行变换,动态窗口大小也适应性进行调节,动态窗口采样到的速度及覆盖的位置当中,机器人受到最大最小线速度和角速度约束、最大加速度或最大减速度一定时间内能达到的速度的约束、且在对应的轨迹上与障碍物最近的距离内以最大减速度停止在障碍物之前且不与障碍物碰撞。因此,使用动态窗口进行速度采样时,根据前述的机器人运动学模型推测对应的轨迹(获得采样轨迹),接下来引入评价函数,对轨迹进行打分,选取评分最高的轨迹,则在评价函数的相关权重参数都没有被调节的前提下形成dwa算法规划出的避障路径;在评价函数的相关权重参数都被调节的前提下形成优化的dwa算法规划出的避障路径。需要说明的是,所述最优的运动轨迹是在调节后的运动代价加权参数与对应维度的评价函数加权平均的结果当中,评分最高的一条预测轨迹。
45.优选地,在步骤b1中,还包括:在预设采样时间内,机器人以当前设定的速度运动的情况下,若机器人与步骤a筛选出的拟合图形标记的障碍物之间的距离是预设安全距离、或者是机器人的一侧存在步骤a筛选出的拟合图形标记的障碍物但机器人不与该侧存在的障碍物相碰撞(不影响机器人的正常运动以无阻碍地绕开所述步骤a筛选出的拟合图形标记的障碍物),或者机器人与步骤a筛选出的拟合图形的中心之间的距离是预设安全距离、或者是机器人的一侧存在步骤a筛选出的拟合图形但机器人不与该侧存在的拟合图形对应标记的障碍物相碰撞,则停止调用优化的dwa算法。这样既可以有选择性的调用优化的dwa算法,又可以降低机器人导航作业时的运行负载,避免机器人的运行内存一直处于高负荷状态、或者因为优化的dwa算法起路径规划作用而需采样过多的速度信息,造成较多的速度浪费。
46.需要说明的是,机器人沿着优化的dwa算法规划出的避障路径行走的过程中,若机器人在内设的采样窗口内获取到前方障碍物的全部轮廓,且机器人的当前位置与障碍物
(用于标记该障碍物的拟合图形的中心)的距离小于或等于机身半径时,机器人虽然没有碰触到障碍物,但没有改变前进方向,则确定优化的dwa算法规划避障路径失败或机器人调用该优化的dwa算法失败,同时机器人继续以当前速度直行直至与该障碍物相撞,此时可以更加准确地确定机器人使用优化的dwa算法规划避障路径失败。或者,在步骤b1中,已经默认机器人在内设的采样窗口内获取到前方障碍物的全部轮廓,则机器人的当前位置与用于标记该障碍物的拟合图形的中心的距离小于或等于预设安全距离时,若机器人没有改变当前的前进方向或保持当前的前进方向行走直至碰撞障碍物,则确定机器人使用优化的dwa算法规划避障路径失败,然后停止调用优化的dwa算法;其中,在机器人没有改变当前的前进方向的前提下就确定机器人使用优化的dwa算法规划避障路径失败,然后停止调用优化的dwa算法,转而及时调用启发式搜索算法规划出的避障路径,则可以实现在没碰撞上障碍物前,成功避开障碍物。
47.优选地,预设安全距离是机器人的机身半径,预设采样时间与机器人的加速度(可以理解为减速度或刹车速度)关联,当机器人的加速度被配置得越大,则将预设采样时间配置得越小;当机器人的加速度被配置得越小,则将预设采样时间配置得越大。
48.作为一种实施例,在优化的dwa算法当中,所述机器人将dwa算法中预先设置的各个维度的评价函数进行归一化处理,再将选定的两个维度的评价函数的归一化处理结果作比值,获得运动代价加权参数之间的大小关系的方法包括:机器人设置的各个维度的评价函数分别是方位角评价函数、距离评价函数以及机器人速度评价函数;机器人为方位角评价函数施加的运动代价加权参数是方位角权重;机器人为距离评价函数施加的运动代价加权参数是距离权重;机器人为机器人速度评价函数施加的运动代价加权参数是机器人速度权重;其中,方位角评价函数,用于评价机器人在当前的设定的速度下,运动轨迹(所述预测轨迹)末端朝向与目标点之间的角度差距变化,具体是以机器人的线速度和角速度为自变量而产生的变化,目标点可以是用于标记障碍物的拟合图形的边缘线上距离机器人最近的点,当拟合图形是圆形时,方位角评价函数用于描述运动轨迹(所述预测轨迹)末端朝向与经过该目标点的切线之间的角度差距。距离评价函数的意义是机器人处于预测轨迹末端点位置时,与拟合图形的中心距离最近的点之间的距离的变化,具体是以机器人的线速度和角速度为自变量而产生的变化,其中,拟合图形的中心用于表示该拟合图形标记的障碍物的位置信息,采样靠近障碍物的点(预测轨迹上的节点),确保机器人的避障能力,降低机器人与障碍物发生碰撞的概率。机器人速度评价函数用于描述机器人当前的线速度变化,具体是以机器人的线速度和角速度为自变量而产生的变化,以促进机器人快速到达目标速度。
49.对于每种维度的评价函数,归一化处理的方式包括:机器人使用采样窗口对机器人的矢量速度进行采样后,在采样数据的基础上,根据运动学模型规划出预测轨迹,相当于待评分的采样轨迹。然后,机器人在遍历预测轨迹的各个节点过程中,累加该评价函数在预测轨迹的各个节点处产生的函数值,获得该评价函数的统计和值,并获取该评价函数产生最大评价函数值和最小评价函数值;然后将最大评价函数值与最小评价函数值的差值的绝对值与该评价函数的统计和值的比值标记为该评价函数的归一化结果。在运动代价加权参数的误差允许范围内,机器人将方位角权重与方位角评价函数的归一化结果的乘积配置为等于距离权重与距离评价函数的归一化结果的乘积;机器人还将距离权重与距离评价函数
的归一化结果的乘积配置为等于机器人速度权重与机器人速度评价函数的归一化结果的乘积。优选地,在方位角权重、距离权重以及机器人速度权重当中,若选择其中一个运动代价加权参数为预设常数,则其余两个容易获得,比如,机器人速度权重是设置为数值1时,机器人将机器人速度评价函数的归一化结果与方位角评价函数的归一化结果的比值设置为等于方位角权重,机器人将机器人速度评价函数的归一化结果与距离评价函数的归一化结果的比值设置为等于距离权重。
50.优选地,运动代价加权参数的误差允许范围配置为:在方位角权重、距离权重以及机器人速度权重当中,任意两个运动代价加权参数之间的差值不超出10的负6次幂。
51.优选地,方位角评价函数的归一化结果用于将方位角评价函数输出的角度范围转换到一个参考角度范围内,距离评价函数的归一化结果用于将距离评价函数输出的预测轨迹末端点与拟合图形的边缘线上的点之间的距离转换到一个参考距离范围内,机器人速度评价函数的归一化结果用于将机器人速度评价函数输出的机器人线速度转换到一个参考速度范围内,以适应步骤a筛选出的拟合图形转换到对应的代价地图中。
52.作为一种实施例,在优化的dwa算法当中,所述根据机器人与当前筛选出的拟合图形标记的障碍物之间的距离关系调节运动代价加权参数之间的大小关系包括:
53.当机器人检测到以其为中心且半径为预设安全距离的圆域内不存在步骤a筛选出的拟合图形的中心时,确定所有障碍物(包括已经探测且识别出状态类型的障碍物以及未在最大探测范围内的障碍物)与机器人的当前位置之间的距离都大于预设安全距离,则机器人将方位角权重和距离权重都调节为大于机器人速度权重,以使机器人加速向预设目标点运动,但不一定达到预设目标点,形成最优的运动轨迹;预设安全距离优选地为机器人的机身半径或机身宽度的一半。预设目标点可以是前述实施例中根据dwa算法的运动学模型规划出的预测轨迹上的一点,或者是用于标记障碍物的拟合图形的边缘线上距离机器人最近的点;在本实施例中,将机器人速度权重配置为越小,则越能削弱机器人的线速度过大带来的影响,因而可以在机器人以较大的速度沿着最优的运动轨迹行走,且该最优的运动轨迹不仅仅是评分较高,还能顺畅有效地绕过障碍物。
54.当机器人检测到所述预测轨迹与步骤a筛选出的拟合图形的中心之间的最小距离小于预设安全距离时,确定所述预测轨迹上存在一个路径节点与步骤a筛选出的拟合图形所标记的障碍物上的一个对应轮廓点之间的距离小于预设安全距离,即机器人移动至该路径节点时比较靠近障碍物,存在碰撞的风险,则机器人将距离权重和机器人速度权重都调节为大于方位角度权重,以使机器人在沿着所述预测轨迹行走至一个路径节点时可以发生足够大偏转角度的转向,以避免与步骤a筛选出的拟合图形所标记的障碍物相碰撞,进而形成最优的运动轨迹;本实施例将方位角权重配置为越小,则越容易削弱偏转角度带来的影响,则机器人在沿着最优的运动轨迹行走的过程中可以发生较大角度的偏转动作,以安全通过该障碍物附近。
55.当机器人位于所述预测轨迹的路径终点的前一个路径节点处时,即确定机器人位于与dwa算法所规划出的路径终点相邻的一个路径节点处时,机器人将方位角度权重调节为同时大于距离权重和机器人速度权重,以使机器人从所述预测轨迹的路径终点的前一个路径节点开始减速运动至路径终点,则在运动至路径终点之前不原地转动,以避免机器人被困在同一个路径节点及其附近区域内而无法行走至路径终点。本实施例将速度权重和距
离权重都设置得较小,则削弱速度和距离带来的影响,可以保证机体在路径终点的前一个路径节点处与障碍物之间的距离不会过小。因此,最终评分获得的该最优的运动轨迹不仅仅是评分较高,还能顺畅有效地绕过障碍物。
56.需要说明的是,在本实施例中,所述最优的运动轨迹是在调节后的运动代价加权参数与对应维度的评价函数加权平均的结果当中,评分最高的一条规划路径;具体是,针对前述运动代价加权参数之间的大小关系的三种调试方式,机器人都是将方位角评价函数与调节后的方位角权重的乘积、距离评价函数与调节后的距离权重的乘积、以及机器人速度评价函数与调节后的机器人速度权重的乘积相加的结果,设置为对应一条预测轨迹的评分结果;其中,每条预测轨迹对应匹配上述三种维度的评价函数,当预测轨迹发生变化或切换到不同的预测轨迹时,对应匹配的三种维度的评价函数的输出结果也会发生变化,则由其加权平均值产生的评分结果也会发生变化。为机器人的无碰撞运动提供有效保障。
57.前述实施例结合评价函数的归一化结果计算权重系数,并在机器人与障碍物的碰触摸关系、以及预测轨迹(来源于运动学模型推测对应的轨迹)与障碍物(拟合图形标记出的或圈定的)的各种位置关系中适应性地调节所引入的评价函数的权重系数,改变预先规划出的轨迹的评分,形成最优的轨迹,以便于后续选择出评分较高的有效避开障碍物的规划路径,而且不仅仅局限于局部路径。
58.作为一种实施例,在机器人使用优化的dwa算法规划避障路径失败后,在机器人没有碰触障碍物的情况下,若采样窗口内存在反射自障碍物的点云数据,即机器人检测到障碍物时,机器人以步骤a筛选出的拟合图形的中心的坐标为均值、且以与该拟合图形标记的障碍物的速度正相关的参数为标准差,建立起二维高斯分布,从而在拟合图形是圆形时,根据拟合图形的圆心的坐标、半径和运动速度构造出二维高斯分布,再使用该二维高斯分布将该拟合图形的边缘线离散成多个点,再将这些离散的点分别映射到栅格地图上并标记为障碍物占据的栅格,其中,为了简化计算复杂程度,栅格地图可以被二值化处理,使得栅格地图中,像素值大于128的像素点所在的栅格标记为二进制0,形成可通行栅格,反之将像素点所在的栅格标记为二进制1,形成不可通行栅格,构建一张由二进制0和二进制1构成的二值栅格地图,并更新为所述栅格地图;在必要的情况下可以对障碍物占据的栅格邻域处的栅格的代价值(可以使用可通行区域的范围大小或可通行路径的长度来表示)进行更新或根据拟合图形的运动速度的方向进行增大,则将所述拟合图形叠加到预先构建的栅格地图中,形成新的代价地图,提前对障碍物的运动行为进行预测,减少机器人与动态障碍物发生碰撞的次数。然后在该栅格地图上用启发式搜索算法(包括a*算法)规划出绕开障碍物占据的栅格的路径,并确定使用启发式搜索算法规划避障路径,实现全局路径规划条件下的机器人动态避障的效果。
59.具体地,在该栅格地图上用启发式搜索算法规划出绕开障碍物占据的栅格的路径的方法包括:机器人先在全局地图坐标系上设置路径起点和路径终点;再将当前位置的坐标和/或预设目标点的坐标转换到全局地图坐标系上,当前位置的坐标和/或预设目标点的坐标是位于机器人坐标系上,这里的预设目标点可以是位于机器人的当前位置的邻域处或距离机器人的当前位置一个机身半径的位置处;这里的坐标转换方式,以机器人的当前位置坐标为例,先按照相同的预设比例系数分别对当前位置的横坐标及纵坐标进行换算,再分别对换算后的横坐标和纵坐标进行平移,以使机器人坐标系和全局地图坐标系的原点重
合在一起,其中,预设比例系数是机器人坐标系分辨率(一个栅格边长代表多少物理距离)与全局地图坐标系的分辨率(一个栅格边长代表多少物理距离)的比值决定的,优选地,机器人坐标系的一个坐标轴与全局地图坐标系的同一坐标轴是相互平行,然后在其中一个坐标轴的正方向是同向时将两个坐标系的原点在该坐标轴上的偏移量与预设比例系数的乘积作为前述换算后的横坐标和纵坐标的平移量。再利用启发式搜索算法规划出绕开障碍物占据的栅格的路径,得到多个位于全局地图坐标系的路径节点及其路径延伸方向信息(包括每条直线段或曲线段的延伸方向相对于坐标轴的偏转角度),以实现使用启发式搜索算法规划出避障路径,在本实施例中,路径起点和路径终点分别是该避障路径的起点和该避障路径的终点,机器人的当前位置或预设目标点是启发式搜索算法所规定的搜索起点,以使机器人从搜索起点开始进行邻域搜索,主要是在搜索起点的四邻域或八邻域内递推搜索没有被障碍物占据的栅格,直至搜索到路径终点,则机器人提前规划出避障路径。
60.作为一种实施例,步骤a还包括:利用筛选出的拟合图形的中心的坐标变化,来识别该拟合图形所标记的障碍物的状态类型,以区分静态障碍物与动态障碍物。其中,拟合图形是配置为障碍物的整体信息,拟合图形的中心的坐标变化是配置为障碍物的运动信息;筛选出的拟合图形的中心的坐标变化是表示为用于标记同一障碍物(运动的障碍物)的拟合图形的坐标运动量,在本实施例中,机器人获取到的点云数据一直是反射自同一个障碍物,该障碍物可能处于运动状态下,用于标记该障碍物的拟合图形的中心的坐标在一段时间内持续发生变化,形成该障碍物的运动速度,以使前述实施例调用优化的dwa算法规划出的避障路径是适用于局部区域内,则所述最优的运动轨迹是提前规划出的局部路径。
61.作为一种实施例,所述步骤a具体包括:步骤a1、机器人对所获取的点云数据进行分割,得到若干个点集合;其中,点云数据具体是障碍物点云的位置信息,点云数据以激光数据(激光点云)表示时,每一帧激光数据有对应一条激光的角度和激光点的距离,并以极坐标的形式表示出来,在确定机器人自身的位姿后,将激光数据进行三角函数变换后,得到障碍物的坐标位置信息。一般地,通过机器人的激光雷达获取当前帧的激光数据后,去除激光点的距离过远的激光数据,以激光坐标系内的坐标形式保留所有符合阈值范围要求的激光点形成激光点云。其中,激光点的距离越大,激光点云越稀疏。然后,机器人对所获取的点云数据进行分组,再对每组的点云数据作进一步的分割,如此重复,直至每个激光点都被分割到相应一组内,获得若干个点集合。
62.需要说明的是,每个点集合都能对应拟合出一条拟合线段,即拟合出直线段,且在误差允许的范围内可以将拟合出的直线段的两个端点分别由该点集合内的第一个点和最后一个点表示,该点集合内的第一个点和最后一个点分别是索引值最小的点和索引值最大的点,表现为在该点集合内的距离最远的两个点;所以,每个点集合对应拟合出的直线段可以使用该直线段对应的直线方程、该点集合内的第一个点和最后一个点来共同描述。
63.步骤a2、机器人对步骤a1获得(由于机器人所获得的所有符合阈值范围要求的激光点都需要进行分组,所以步骤a1获得可以理解为步骤a1最终获得)的点集合进行合并处理,即对步骤a1重复分割出的所有的点集合进行合并处理以获得新的一个点集合,获得拟合线段,包括合并处理出来的点集合对应拟合出的拟合线段、以及不需合并处理的且属于步骤a1分出的点集合对应拟合出的拟合线段;为避免步骤a1对点云数据过度分割而导致拟合出的直线段过多,步骤a2对拟合出直线段依次进行判断与合并,也表现为相应的点集合
的合并,得到数量相对少的拟合线段;当存在部分拟合直线段不需进行合并处理,连同步骤a2合并处理出的拟合线段都作为步骤a2最终获得的拟合线段,分别对应一个点集合。
64.步骤a3、机器人对步骤a2获得的拟合线段进行圆拟合操作,即对经过步骤a2合并处理后的每个点集合和未经过步骤a2合并处理的每个点集合都进行圆拟合操作,获得预设外接圆,以充分标记并圈定对应的障碍物,包括动态障碍物和静态障碍物;但针对可能存在的不同的预设外接圆标记同一个物体的情况,则需要对当前获得的预设外接圆进行圆合并处理,以替换在先获得的预设外接圆,圆合并处理获得的拟合圆作为步骤a3获得的拟合圆。其中,经过圆拟合操作出来的每个预设外接圆都需进行圆合并处理。在实际环境中的动态障碍物的半径都不会太大,为了排除长走廊、墙壁、体积较大的障碍物的影响,本实施例只考虑将拟合线段进行圆拟合操作,获得预设外接圆,进而经过圆合并处理而获得拟合圆,等效于圆形障碍物,而不是简单地使用拟合线段表示动态障碍物,一般地,线段障碍物用于表示墙壁或长走廊。
65.步骤a4、利用点云数据构建栅格地图,此时的点云数据是需要先转换为地图数据,再依据可通行性对栅格地图进行二值化处理以使每个栅格由二进制0或二进制1表示,再对二值化的栅格地图进行腐蚀处理,然后将经过二值化处理和腐蚀处理后的栅格地图更新为栅格地图,从而以更加统一和便于进行图像计算操作的形式来表示栅格地图。
66.需要说明的是,机器人使用cartographer算法构建栅格地图,cartographer算法主要负责处理来自激光雷达、imu、里程计的数据,并基于这些数据进行地图的构建,用于激光定位导航场景下,cartographer框架一般划分为前端匹配和后端优化工作。首先前端匹配的过程就是创建局部地图的过程,通过添加一系列的经过点云滤波,以及陀螺仪、里程计数据信息进行位姿融合,再将融合的位姿添加到局部地图当中去,这里的匹配策略是当前扫描出的激光帧图像与预先扫描出的激光帧图像进行位姿匹配,但是当大量的激光帧图像被创建完成时,就会有误差积累,这时引入后端回环检测,进行优化,也就是分枝定界算法,这个算法通过将栅格分为几层深度(通俗来讲就是分了好几层分辨率),通过先匹配低分辨率再匹配高分辨率,大大的缩短了回环检测的时间。一旦建立了回环,就会进行优化,优化的方式,就是构建位姿图,通过将陀螺仪数据、里程计数据、激光数据、局部地图数据形成各自的约束,建立一个多边形回环,建立环上的节点,通过稀疏位姿图进行优化,优化的方式是建立一个非线性最小二乘方程进行优化,再为cartographer建好的地图每个栅格赋予对应的像素值,以描述实际环境分布,包括障碍物的分布情况,最终得到原始的栅格地图,以便接受前述的二值化处理和腐蚀处理。
67.步骤a5、机器人将步骤a3获得的拟合圆(机器人在步骤a3中获得的所有预设外接圆都需要进行圆合并处理,最终获得的拟合圆)的圆心转换到地图上以实现与步骤a4最后更新出的栅格地图的坐标索引信息进行对比,筛选出圆心落入栅格地图的可通行区域的拟合圆,以剔除掉栅格地图边界处的拟合圆,在一些实施例中与栅格地图比较的过程中可以剔除已知障碍物并以圆圈标记新加入的障碍物,并确定机器人获得所述用于标记障碍物的拟合图形,即获得处于栅格地图内部的可能的动态障碍物的位置信息,其中,拟合图形是以拟合圆(圆形)的形式表示。
68.步骤a6、通过获取不同时刻下的所述用于标记障碍物的拟合图形的中心,计算出该障碍物的速度,再依据障碍物的速度识别该障碍物是属于静态障碍物还是属于动态障碍
物。其中,所述用于标记同一障碍物的部分或全部的拟合图形会跟随对应拟合线段的变化而变化,而该拟合线段也会跟随点集合的变化而变化,这里的变化是指点云数据所反映的同一障碍物的位置发生变化以描述出该障碍物的运动状态,所述用于标记同一障碍物的部分或全部的拟合图形在本实施例中可以表示为用于圈定同一障碍物的部分或全部轮廓的拟合圆,在大多情况下是圈定障碍物的全部轮廓的圆形;从而通过步骤a5筛选出的拟合圆的圆心的实时变化来判断出动态障碍物。
69.综上,由于激光的测量精度原因,将障碍物分散成一个个散点,但本实施例将其整合为一个拟合图形,通过拟合图形来表示对应标记的障碍物的整体特性,提前对障碍物的运动行为进行预测,避免极端情况下可能规划出穿过障碍物的路径。进而机器人一旦规划到动态障碍物运动方向上的路径时,不容易出现机器人与动态障碍物碰撞的情况。
70.作为一种实施例,在所述步骤a1中,机器人通过测距传感器获取的点云数据是激光点云,激光点云包括多个激光点,均能在机器人的内存中搜索;这些激光点可以按照障碍物反射位置在机器人的内存中进行排列,则相邻两个激光点是位置相邻的两个激光点,其中一个激光点可视为位于另一个激光点的邻域。在一些实施例中,激光点云也可以按照机器人搜索的时间先后顺序在机器人内存中进行排序。
71.所述机器人对所获取的点云数据进行分割,得到若干个点集合的方法包括:
72.步骤a11、在机器人搜索激光点的过程中,机器人利用两个激光点的欧式距离的变化,将激光点云分成多个激光点组;具体地,所述机器人利用两个激光点的欧式距离的变化,将激光点云分成多个激光点组的方法包括:步骤a111、机器人计算当前一次搜索到的激光点与上一次搜索到的激光点的欧式距离;若该欧式距离小于预设分组距离阈值,则将当前一次搜索到的激光点与上一次搜索到的激光点归为同一个激光点组;若该欧式距离大于或等于预设分组距离阈值,则将当前一次搜索到的激光点归入一个新的激光点组内,并将当前一次搜索到的激光点标记为该新的激光点组内的第一个激光点;然后执行步骤a112;步骤a112、机器人搜索新的激光点,然后将当前一次搜索到的激光点更新为上一次搜索到的激光点,再执行步骤a111,直至机器人计算完每个激光点与其余任一个激光点的欧式距离并依据对应两个激光点的欧式距离分出激光点组,然后执行步骤a12。
73.作为一种实施例,对应到步骤a11,如图2所示,机器人依次计算当前一个激光点与上一个激光点的欧式距离其中,i是激光点在内存空间的排序号;在一些实施例中,当前一个激光点是上一个激光点的邻近范围内的激光点;若欧式距离小于预设分组距离阈值,则将激光点和激光点归为同一组,并标记为同一个激光点组内的相邻两个激光点;否则,以为第一个点创建一个新的激光点组sj,相对于激光点所处的激光点组s
j-1
而言。预设分组距离阈值用于表示预先配置出的同一组激光点内的两个激光点之间所能达到的最大距离、或大于该最大距离。当机器人计算完任两个激光点之间的欧式距离,即计算完每个激光点与其余任一个激光点的欧式距离并依据对应两个激光点的欧式距离分出激光点组后,机器人已经遍历完所有的激光点且不能继续扩展出的新激光点,会得到若干个分好组的激光点组sj(j=1,2,...,n,n≤m),j表示激光点组的组数或组序号;需要说明的是,在图2中,以的形式保留机器人所获取到的激光点或所获取到的激光点当中
符合要求的激光点,xi对应的是激光坐标系上的第i个激光点的横坐标,yi对应的是激光坐标系上的第i个激光点的纵坐标,m为激光点的总数量,m也相当于机器人所需搜索的激光点的数量。图2中的激光点当中,激光点组sj内的激光点相对于原点(ox,oy)在y轴方向上的偏离距离都小于激光点组s
j-1
内的激光点相对于原点(ox,oy)在y轴方向上的偏离距离。
74.步骤a12、机器人利用最小二乘法将每个激光点组内的激光点拟合出一条拟合线段,在本实施例中,每个激光点组对应拟合出一条拟合线段;在每个激光点组内,机器人将距离对应拟合出的拟合线段最远的激光点标记为最远点,当机器人计算出最远点到该激光点组对应拟合出的拟合线段之间的距离大于预设分割距离阈值,则以该最远点为分界将该激光点组分割为两个子集合以使该最远点成为其中一个子集合内的第一个激光点,并确定该激光点组满足分割条件;其中,预设分割距离阈值用于表示同一组激光点内的激光点到其对应的拟合直线的最大距离;该激光点组内,机器人将索引值比该最远点小的激光点归入一个子集合,并将索引值比该最远点大的激光点归入另一个子集合,最远点可以归入前述分割出的两个子集合当中的任一个子集合内,或同时归入前述分割出的两个子集合当中的每个子集合内;在一些实施例中,机器人将搜索时间比该最远点小的激光点早的归入一个子集合,并将搜索时间比最远点晚的激光点归入另一个子集合,机器人是按照位置远近依次进行激光点的搜索/遍历。
75.步骤a13、机器人将每个子集合更新为步骤a12所述的激光点组,再执行步骤a12,直至所有的激光点组内对应的最远点与该激光点组对应拟合出的拟合线段之间的距离都小于或等于预设分割距离阈值,即所有被分出的激光点组或所述子集合不满足分割条件;然后将把激光点的数量少于预设数量阈值的激光点组剔除,剩余的激光点组是步骤a11所述的若干个点集合,并获得现存的各个激光点组内的激光点拟合出的的拟合线段。预设数量阈值优选为3。
76.作为一种实施例,如图3所示,机器人先利用最小二乘法在待分割的激光点组sj中的激光点内拟合出一条拟合线段lm,即激光点组sj包括激光点,利用最小二乘法实现直线拟合出直线方程am*x+bm*y+cm=0,由于所求直线不唯一,这里只需要设置cm不等于0即可,利用最小二乘法确定直线系数am和bm,其中,直线系数am、直线系数bm和直线系数cm的具体求解方式,参阅中国发明专利cn113253717a的权利要求2中的步骤5公开的与直线拟合关联的计算公式,在此再赘述。然后,寻找该激光点组中距离直线lm最远的激光点如果激光点到直线段lm的距离dk大于预设分割距离阈值,则将从该激光点处将此激光点组分割为两个子集合sj、s
j+1
,其中,子集合sj中存在子集合s
j+1
中存在而是同时归入子集合sj和归入子集合s
j+1
;在此基础上,依次对每一个子集合重复执行前述的分割处理,直到所有的子集合都不满足分割条件为止;然后机器人把激光点个数少于3的激光点组剔除,则其对应拟合出的拟合线段也不被机器人调用来进行后续的圆拟合操作。在此基础上,可把所有点云数据按照前述实施例设定的规则以若干个点集合的形式分开,且每一个点集合都对应一条拟合出的直线,然后,在本实施例中,以激光点组中的第一个激光点和最后一个激光点以及对应拟合出的直线方程来描述对应的拟合线段,在误差允许的范围内,激光点组中的第一个激光点和最后一个激光点可以视为该激光点组对应拟合出的拟合线段的两个端点。
77.作为一种实施例,在所述步骤a2中,对点集合进行合并处理的方法包括:每当机器人从步骤a13最终获得的拟合线段当中搜索到两条拟合线段后,检测该两条拟合线段之间的属性差异,包括拟合线段的两个端点、与对应的直线方程的截距及斜率;机器人搜索到的两条拟合线段可以是位置相邻的两条拟合线段,但不一定是相互平行的两条线段;当机器人检测到该两条拟合线段之间最近的端点的距离小于预设轮廓距离阈值,且该两条拟合线段的斜率的差值的绝对值小于预设斜率阈值,且该两条拟合线段的延长线与同一坐标轴的交点的距离(即在激光坐标系内对应的直线方程的截距)小于预设截距阈值时,则确定该两条拟合线段处于一条直线,在一些实施例中可以确定该两条拟合线段表示同一障碍物或同一障碍物的不同部分,否则该两条拟合线段不位于一条直线上以确定该两条拟合线段分别位于相隔开的两个障碍物上;然后,机器人将该两条拟合线段对应的两个激光点组合并为一个新的激光点组,再利用最小二乘法将合并后的激光点组内的激光点拟合为新的拟合线段,则该新的拟合线段可以单独表示一个障碍物。
78.为避免步骤a1出现对激光点组或前述子集合或点集合过度分割的问题,机器人对步骤a1中所有分割出的点集合及其对应的拟合线段进行合并判断与处理,得到最终的若干条拟合线段;如图4所示,存在位置相邻的两条直线段,对应的直线方程分别表示为:lm:am*x+bm*y+cm=0,l
m+1
:a
m+1
*x+b
m+1
*y+c
m+1
=0,其中,直线lm是由子集合sj内的激光点拟合出来的拟合直线,直线l
m+1
是由子集合s
j+1
内的激光点拟合出来的拟合直线。首先,判断两条直线段是否靠近。本实施例使用d0表示该两条直线段的最近距离,同时使用预设轮廓距离阈值表示该两条直线段处于同一障碍物的距离阈值。如图4所示,直线段lm上的最后一个点与直线段l
m+1
上的第一个点的距离是直线lm与直线l
m+1
之间的最近距离,使用d0表示,当d0小于预设轮廓距离阈值时,确定直线lm与直线l
m+1
处于同一直线上,可以将直线段lm上的最后一个点与直线段l
m+1
上的第一个点连接成为一条直线段,同时可以将子集合s
j+1
内的激光点并入子集合sj内的激光点当中,组成激光点数量更多的一个子集合sj,实现对子集合sj的更新,也合并出一个新的激光点组以避免子集合过度分割,相应地可以拟合出直线lm,毕竟原来的直线段lm与直线段l
m+1
被视为处于同一直线上。
79.优选地,对于每条拟合线段,该条拟合线段的两个端点分别配置为该条拟合线段对应的激光点组内的第一个激光点和最后一个激光点;每个激光点组对应一条拟合线段。在同一个激光点组内,第一个激光点和最后一个激光点之间的距离是任意两个激光点之间的距离当中的最大值,使得第一个激光点和最后一个激光点在所处的激光点组内具有代表性,且在两个不同的激光点组之间具有连通意义。
80.优选地,在前述组成一个新的激光点组或划分一个新子集合的相关步骤中,机器人将最早加入该条拟合线段对应的激光点组的激光点标记为该激光点组内的第一个激光点,同时将最晚加入该条拟合线段对应的激光点组的激光点标记为该激光点组内的最后一个激光点;在一些实施例中,为了便于索引每个激光点组内的激光点,加入同一个激光点组的时间越早的激光点的索引值越小,加入同一个激光点组的时间越晚的激光点的索引值越大。进一步地,对于不同的激光点组也配置相应的组别索引值,越早被创建或划分出的激光点组被配置出的组别索引值越小。
81.作为一种实施例,在步骤a3中,对拟合线段进行圆拟合操作,获得拟合圆的方法包括:机器人从所述步骤a2获得的每条拟合线段中获取垂直于该条拟合线段且指向激光坐标
系的原点的向量,即机器人从步骤a2合并处理出的每条拟合线段以及没被步骤a2合并处理出的每条拟合线段(来源于步骤a112分割出的每个激光点组内对应拟合出拟合线段)中获取垂直于该条拟合线段且指向激光坐标系的原点的向量,将该向量与横坐标轴所成的夹角的角度设置为水平偏转角度,并将该向量与纵坐标轴所成的夹角的角度设置为竖直偏转角度;然后机器人将该条拟合线段设置为等边三角形的一条边,一般是由该条拟合线段对应的激光点组的第一个激光点和最后一个激光点的连线;然后机器人将该等边三角形的外心(该等边三角形的外接圆的圆心)设置为与激光坐标系的原点分居该条拟合线段的两侧、或设置为与激光坐标系的原点位于该条拟合线段的同一侧;然后,由于是处理等边三角形,所以将该条拟合线段的长度与30度的正切函数值的乘积设置为该等边三角形的外接圆的半径;然后将该等边三角形的外接圆的半径的一半与水平偏转角度的余弦函数值的乘积标记为预设横轴偏移坐标量,并确定该预设横轴偏移坐标量是该条拟合线段的中点与该等边三角形的外接圆的圆心在横坐标轴上的坐标偏移量;同时,机器人将该等边三角形的外接圆的半径的一半与竖直偏转角度的余弦函数值的乘积标记为预设纵轴偏移坐标量,并确定该预设纵轴偏移坐标量是该条拟合线段的中点与该等边三角形的外接圆的圆心在纵坐标轴上的坐标偏移量;然后利用预设纵轴偏移坐标量和预设横轴偏移坐标量计算出该等边三角形的外接圆的圆心的坐标位置,即机器人利用预设纵轴偏移坐标量与该条拟合线段的中点的纵坐标相加以获得该等边三角形的外接圆的圆心的纵坐标,同理地,机器人利用预设横轴偏移坐标量与该条拟合线段的中点的横坐标相加以获得该等边三角形的外接圆的圆心的横坐标,在确定出该等边三角形的外接圆的圆心的坐标位置之后,结合该等边三角形的外接圆的半径,机器人可以在激光坐标系内确定出该等边三角形的外接圆在激光坐标系中的覆盖区域。然后,机器人在该等边三角形的外接圆的圆心的坐标位置的基础上,将该等边三角形的外接圆的半径扩大一个预设半径增量,获得所述预设外接圆,并确定对该条拟合线段完成圆拟合操作,则步骤a2获得的每条拟合线段对应一个预设外接圆;其中,设置的预设半径增量相当于在该等边三角形的外接圆的基础上扩展出一个圆形边界以保证包含障碍物。
82.优选地,实际环境中的动态障碍物的半径都不会太大,为了排除长走廊、墙壁、体积较大的障碍物的影响,设置一个预设容许半径,只有半径小于该预设容许半径的预设外接圆才能保留下来。
83.作为一种实施例,为充分代表并包裹障碍物,对步骤a2拟合出的所有拟合线段(视为步骤a2合并处理出的激光点组对应拟合出的拟合线段和不需经过合并处理的激光点组对应拟合出的拟合线段(来源于步骤a13拟合出的拟合线段))进行拟合圆的操作;参阅图5,对激光点组或其对应的拟合线段进行圆拟合操作的方法包括:以一条直线段为例,该直线段对应的激光点组中的第一个激光点为最后一个激光点为也可以视为该直线段的两个端点;同时,机器人设置该直线段的指向激光坐标系原点的法向量为如图5所示,机器人将该直线段作为底边,设计出外心(圆心)远离激光坐标系原点原点(ox,oy)的等边三角形,即该等边三角形的外心与激光坐标系的原点分居该条直线段的两侧,则将该等边三角形的外接圆的覆盖区域设置得更远,覆盖比测距传感器的中心更远的位置处的障碍物,毕竟障碍物不是距离机器人比较近。具体地,在该等边三角形的外接圆
中,该外接圆的半径为中,该外接圆的半径为该外接圆的圆心的向量表示为原理在于前述实施例中将该等边三角形的外接圆的半径的一半与水平偏转角度的余弦函数值的乘积标记为预设横轴偏移坐标量,并确定该预设横轴偏移坐标量是该条拟合线段的中点与该等边三角形的外接圆的圆心在横坐标轴上的坐标偏移量;同时,机器人将该等边三角形的外接圆的半径的一半与竖直偏转角度的余弦函数值的乘积标记为预设纵轴偏移坐标量,并确定该预设纵轴偏移坐标量是该条拟合线段的中点与该等边三角形的外接圆的圆心在纵坐标轴上的坐标偏移量。进一步地,为保证所做出的圆能充分代表障碍物甚至圈定该障碍物,需要将该等边三角形的外接圆的半径扩展一个预设半径增量r
enlarge
,以r+r
enlarge
表示最终确定的预设外接圆的半径大小,以表示该预设外接圆的中心点坐标。
84.在前述实施例的基础上,在步骤a3中,对预设外接圆进行圆合并处理的方法包括:当机器人检测到存在两个预设外接圆为包含关系时,保留该两个预设外接圆当中半径相对大的预设外接圆,同时剔除该两个预设外接圆当中半径相对小的预设外接圆,并将该两个预设外接圆当中半径相对大的预设外接圆设置为拟合圆,以使该拟合圆标记或圈定一个障碍物,则可以确定该拟合圆是用于标记哪个障碍物的拟合圆,方便后续计算用于标记同一障碍物的该拟合圆的运动速度,并在机器人的内存中对应标注上识别信息,以确定该拟合圆是用于标记哪个障碍物的拟合圆,方便后续计算用于标记同一障碍物的该拟合圆的运动速度。当机器人检测到存在两个预设外接圆相交时,将该两个预设外接圆的圆心的连线配置为拟合线段,再将该拟合线段进行圆拟合操作,得到参考外接圆;然后将参考外接圆的半径与进行前述圆拟合操作之前的两个预设外接圆中相对大的半径相加,获得参考半径;当检测到该参考半径小于预设容许半径,则保留下该参考外接圆的圆心,具体是记录下该圆心的坐标,并剔除圆拟合操作前的两个预设外接圆和参考外接圆,再以参考外接圆的圆心为圆心、参考半径为半径设定一个圆形并将该圆形标记为所述拟合圆,从而将圆拟合操作前的两个预设外接圆合并为所述拟合圆,实现使用一个拟合圆标记或圈定对应的一个障碍物,并在机器人的内存中对应标注上识别信息,以确定该拟合圆是用于标记哪个障碍物的拟合圆,方便后续计算用于标记同一障碍物的该拟合圆的运动速度;综上,通过步骤a3获得的不同的拟合圆分别标记或圈定不同的障碍物,避免存在不同的圆(比如两个预设外接圆)表示同一个障碍物。
85.对应到图6中,对所有预设外接圆进行圆合并处理的过程中,可以根据位置相邻的两个预设外接圆(图6中的圆)的圆心与半径的关系,进行相应的处理:当两个预设外接圆为相交关系的时候,连接该两个预设外接圆的圆心c1、c2,对c1和c2的连线进行前述圆拟合操作,得到一个圆心为c3的新的预设外接圆,被标记为参考外接圆,再将该参考外接圆的半径r3与圆心为c2的预设外接圆的半径r2相加,若相加后的半径r小于预设容许半径,则保留参考外接圆的圆心的坐标c3和半径r作为所述拟合圆的组成要素以覆盖到激光坐标系内。
86.作为一种实施例,所述步骤a4具体包括:利用点云数据表征的障碍物占据的位置信息,为栅格地图的各个栅格赋予相应的像素值,然后将像素值大于预设像素阈值的栅格标记为可通行栅格,并将像素值小于或等于预设像素阈值的栅格标记为不可通行栅格,然后获得二值化的栅格地图,并确定原始的栅格地图经过二值化处理;具体地,机器人利用机
体预存的cartographer算法建好栅格地图后,确定利用点云数据表征的障碍物占据的位置信息,为栅格地图的各个栅格赋予相应的像素值,从而获取栅格地图的长宽信息以及每一个栅格的像素值,具体将像素值大于128的像素点所在的栅格标记为二进制0,形成可通行栅格,反之将像素点所在的栅格标记为二进制1,形成不可通行栅格,构建一张由二进制0和二进制1构成的二值栅格地图,并更新为所述栅格地图,以简化地图的表示形式和填充的内环境信息。然后机器人按照预设的点云转换误差将二值化的栅格地图内的每个不可通行栅格的关联邻域的可通行栅格标记为不可通行栅格,获得腐蚀处理后的栅格地图;其中,每个不可通行栅格的关联邻域的栅格区域与预设的点云转换误差涉及的栅格区域正相关,优选地,在腐蚀处理的过程中,机器人在栅格地图内,将以每个赋值为二进制1的栅格为中心的二十四邻域内存在的二进制0全部更新为二进制1,即在每个赋值为二进制1的栅格的外围相邻接的两圈栅格内,将二进制0全部更新为二进制1,以完成对该栅格地图的腐蚀处理,其中,二十四邻域覆盖的区域是除了中心之外,行数为5且列数为5的栅格区域,可以记为该次腐蚀处理的有效腐蚀区域,或者理解为腐蚀半径等于两个栅格,具体的腐蚀半径是能够依据机器人所处的环境进行调节以便于在更大的有效区域内识别动态障碍物。然后将先后经过前述二值化处理和前述腐蚀处理后的栅格地图更新为所述栅格地图,再将可通行栅格组成的区域标记为栅格地图内的可通行区域,同时将可通行栅格在所述栅格地图内的坐标索引值记录下来以形成可通行点的集合,实际上是以索引值的形式保存每个栅格在全局地图坐标系下的坐标信息;然后执行步骤a5。
87.作为一种实施例,在所述步骤a5中,机器人将步骤a3获得的拟合圆的圆心从激光坐标系投影到步骤a4最后更新出的栅格地图中,以实现将所有拟合圆的圆心从激光点的形式转换到地图索引值的形式,获得相应拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值,实际上是以索引值的形式保存拟合圆的圆心在全局地图坐标系下的坐标信息;优选地,激光坐标系的x轴与全局地图坐标系的x轴垂直或平行。然后对比前述实施例的步骤a4所记录的坐标索引值与拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值;当步骤a3获得的拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值等于步骤a4所记录的其中一个坐标索引值时,确定该拟合圆是中心落入栅格地图的可通行区域的拟合图形,则机器人可以筛选出中心落入栅格地图的可通行区域的拟合圆并将该拟合圆标记为所述用于标记障碍物的拟合图形;当步骤a3获得的拟合圆的圆心在栅格地图的全局地图坐标系上的坐标索引值不等于步骤a4所记录的任意一个坐标索引值时,从栅格地图内剔除该拟合圆的圆心,去除掉不在该栅格地图的边界框定范围内的位置点,具体是剔除障碍物占据区域与可通行区域的边界位置处圆心,剩余的即为处于地图可通行区域内的可的动态障碍物的位置信息,因为在可通行区域内才能调用动态窗口探测处于运动状态的障碍物及其反射回的点云数据。
88.作为一种实施例,在所述步骤a6中,所述通过获取不同时刻下的所述用于标记障碍物的拟合图形的中心,计算出该障碍物的速度,再依据障碍物的速度识别该障碍物是属于静态障碍物还是属于动态障碍物的方法包括:机器人将步骤a5在第一时刻筛选出的用于标记障碍物的拟合图形的中心(在标记同一障碍物的前提下,第一时刻产生的拟合圆的圆心)的坐标标记为第一中心坐标;然后,机器人将步骤a5在第二时刻筛选出的用于标记同一障碍物的拟合图形的中心(在标记同一障碍物的前提下,第二时刻产生的拟合圆的圆心)的
坐标标记为第二中心坐标;在机器人执行步骤a5之后,从步骤a4最后更新出的栅格地图的坐标索引信息中提取出用于标记同一障碍物的拟合圆的依据是拟合圆与所标记的障碍物的对应关系,且经过执行步骤a3的圆合并处理可克服不同拟合圆标记同一障碍物的问题,其涉及的对应关系可以由步骤a2中对激光点组的合并处理以及步骤a3中的预设外接圆的获取及其合并处理(即圆合并处理)形成。
89.机器人将第一时刻与第二时刻的时间差值标记为障碍物运动时间差;障碍物运动时间差可以视为记录同一障碍物的特征点(对应于前述实施例的拟合圆的圆心)所经过的相邻时间间隔,具体可以根据实际探测障碍物的体型大小、轻重程度、受摩擦力的大小等其余物理因素共同设定。因此,机器人将第一中心坐标与第二中心坐标的距离标记为障碍物的运动距离。
90.然后计算障碍物的运动距离与障碍物运动时间差的比值,获得该障碍物的速度,作为该障碍物的瞬时速度。当机器人判断到该障碍物的速度大于预设速度阈值时,确定该障碍物是动态障碍物,再重复执行步骤a1至步骤a6以实现对该障碍物的运动状态的跟踪,包括对用于标记该动态障碍物的拟合圆及其圆心的变化,还包括该拟合圆对应的激光点组、拟合线段的变化,其中,预设速度阈值是配置为区分静态障碍物和动态障碍物的速度阈值,该速度阈值不一定是0,则静态障碍物不一定处于静止状态下,可能在误差允许的范围内运动得比较慢以视为处于静止状态下。具体地,随着机器人采样时间的推进,点云数据会被刷新,进而被步骤a1分割出的激光点组、步骤a2合并处理出的拟合线段以及由步骤a3获得的拟合圆被刷新,尤其是障碍物反射回的若干个点云数据或用于标记该障碍物的拟合圆及其圆心被不断刷新,因此可以使用最小二乘法去对所述障碍物运动时间差内不断刷新的多个点云数据(激光点),得到拟合直线方程,配置为障碍物的运动状态方程,可以确定该障碍物在第一时刻与第二时刻下的位置信息,具体是在标记同一障碍物的前提下,第一时刻产生的拟合圆的圆心的坐标,以及第二时刻产生的拟合圆的圆心的坐标,然后可以计算出这两个圆心之间的距离,获得所述障碍物的运动距离,进而可以计算所标记的同一障碍物的运动速度。
91.另外,当机器人判断到该障碍物的速度小于或等于预设速度阈值时,确定该障碍物是静态障碍物,再停止计算该障碍物的速度,也不予以跟踪用于标记该静态障碍物的拟合圆及其对应激光点组的变化情况。
92.综上,通过筛选出合适的拟合圆来计算获得不同状态类型的障碍物的整体特性及其运动信息,便于提前对障碍物的运动行为进行预测,减少机器人与动态障碍物发生碰撞。
93.本发明的保护范围并不限于上述的实施例,显然,本领域的技术人员可以对本发明进行各种改动和变形而不脱离本发明的范围和精神。倘若这些改动和变形属于本发明权利要求及其等同技术的范围内,则本发明的意图也包含这些改动和变形在内。