一种适用于车式移动机器人的室内区域覆盖方法

文档序号:8395551阅读:594来源:国知局
一种适用于车式移动机器人的室内区域覆盖方法
【技术领域】
[0001] 本发明涉及室内环境中车式移动机器人可用的区域覆盖方法,它以一定的运动控 制逻辑,使得机器人能够遍历整个工作空间,该过程既要求机器人可以自主避障,也要使得 机器人能够尽量覆盖空间中每个单元,而且尽可能的避免区域重复覆盖,整个行为符合人 类认知特点。属于移动机器人路径规划领域。
【背景技术】
[0002] 随着时代的进步和科学技术的不断发展,机器人被广泛地应用在人类生产和生活 中,以辅助或替代人类完成一些重复性较高、技术含量较低或是比较危险的任务,比如航空 航天、工业生产、教育、救援、家政服务等。区域覆盖是服务机器人领域的一项重要应用,如 何高效的控制车式机器人完成指定区域的全覆盖是一个典型的研宄课题。
[0003] 车式移动机器人可以视作无人驾驶车的一种。当前对无人车的研宄大多侧重其在 室外环境中的应用,很少考虑将其应用在展厅、大厅等大规模室内环境中。另一方面,将应 用室外无人车的技术直接移植到室内环境中存在一定的难度,因为GPS、北斗信号等全局定 位手段在室内环境中目前还无法使用,必须借助于室内定位和导航技术。
[0004] 针对车式移动机器人在室内环境中应用的需求,本发明考虑车辆的运动学限制, 使得车辆具有掉头、倒车、转向能力,保证了车辆整个覆盖过程进行的比较可靠且自然。考 虑到环境中可能出现的动态障碍物,覆盖过程机器人可以做到快速对其做出响应,避开障 碍物,并重新回到初始规划路径中,使得车辆既可以实现自主避障又降低了区域的遗漏。

【发明内容】

[0005] 本发明的目的是通过对车辆运动路径的规划和控制,实现车式移动机器人在室内 环境中的区域全覆盖。本发明主要包括两个方面:1.车辆的运动仿真;2.针对不同规格的 子区域,形成多覆盖策略;本发明提供的方法符合车式移动机器人的运动特点,能够安全、 有效的实现机器人的覆盖功能。
[0006] 本发明采用的技术方案为:一种车式移动机器人的室内环境区域覆盖方法,该方 法包括以下步骤:
[0007] 第一步,获取当前机器人的全局位姿,确定所在的子区域,并得到该子区域的宽度 W以及该子区域所包含的栅格信息;
[0008] 第二步,将子区域宽度W与最小转弯半径min_radius和车宽width_car的较大值 作比较,来决定区域的覆盖策略;
[0009] 第三步,如果W小于max(min_radius,width_car),此时机器人只需一次单向运动 就可以完成该区域的覆盖;否则,执行下一步;
[0010] 第四步,如果W值介于max(min_radius,width_car)和 2max(min_radius,width_ car)之间,贝采用往返覆盖策略,由于机器人一次覆盖的宽度是width_car,所以,此区域 只需要一次往返即可完成覆盖;否则,执行第五步;
[0011]第五步,W大于2max(min_radius,width_car),则采用回旋策略;回旋策略可分以 下几个步骤:
[0012] 1.确定机器人所需要的往返次数num,先确定机器人宽度占据的栅格列数,用子 区域总列数除以宽度占据的栅格列数得到num值;
[0013] 2.对于每次往返运动,首先保存此次往返所覆盖的栅格坐标,并确定目标点时需 要考虑机器人的最小转弯半径;
[0014] 3.转弯时,结合当前机器人位姿和转弯方向来确定转弯圆弧目标点;
[0015] 4.水平移动,根据回旋策略,从当前的规划路径到下一次规划路径间的转移路径, 保存此路径中的栅格坐标,在确定目标点是也需要考虑机器人的转弯半径;
[0016] 5.水平转移之后,执行转弯,确定转弯圆弧目标点;重复执行上述步骤,直到完成 该子区域的完成;
[0017] 第六步,完成当前子区域的覆盖之后,采用最小树的方法来确定目标覆盖子区域, 具体步骤如下:
[0018] 1.根据区域分割后的子区域信息可以建一个无向图G,得到目前未规划的子区域 总数为N;
[0019] 2.获取当前子区域SN的未规划邻接节点,总数记为M,其中:
[0020] 1)若M值为0,按之前的规划覆盖反向顺序,找到第一个存在未规划邻接节点的节 点,且将该节点设为SN,返回步骤2 ;
[0021] 2)若M为1,将该未规划邻接节点定为SN,且将该节点的状态标记为已规划状态, 并将该节点对应子区域作为目标覆盖子区域,规划结束;
[0022] 3)若M大于1,则将这些未规划邻接节点分别设为图G的节点,并搜索最小树节 点;若最小树节点总数是1,则应将对应的未规划节点设定SN,否则,计算机器人从当前位 置到等价最小树节点子区域的路径代价值,最小代价对应的未规划节点设定为SN,将SN的 状态标记为已规划状态,并将SN对应子区域作为目标覆盖子区域,规划结束;
[0023] 第七步,确定目标覆盖子区域之后,基于Dijkstra算法实现区域间转移路径,并 将该路径传递给机器人执行单元完成区域转移;
[0024] 第八步,到达目标覆盖子区域后,重复上述步骤,完成所有子区域的覆盖。
[0025] 本发明与现有技术相比的优点在于:
[0026] (1)本发明考虑了子区域的主方向问题,在每个子区域内部参照主方向来设定机 器人的运动方向,可以减少机器人的转弯次数,提高覆盖效率。
[0027] (2)本发明对每个子区域的覆盖策略是基于该区域的规格来设定的,可以保证针 对不同规格区域使用最有效的覆盖策略,形成多策略区域覆盖,提高机器人的工作效率。
【附图说明】
[0028] 图1为区域覆盖算法流程图;
[0029] 图2为车辆运动模型示意图;
[0030] 图3为实验车式移动机器人;
[0031] 图4为算法验证实验环境;
[0032] 图5为机器人覆盖轨迹图;
[0033] 图6为覆盖过程覆盖率和耗时参数变化曲线。
【具体实施方式】
[0034] 本实施例在以发明技术方案为前提下进行实施,给出了详细的实施方案和过程, 但本发明的实施范围不限于下述的实施例。
[0035] 如图1所示,一种车式移动机器人的室内环境区域覆盖方法,该方法包括以下步 骤:
[0036] 第一步,获取当前机器人的全局位姿,确定所在的子区域,并得到该子区域的宽度 W以及该子区域所包含的栅格信息;
[0037] 第二步,将子区域宽度W与最小转弯半径min_radius和车宽width_car的较大值 作比较,来决定区域的覆盖策略;
[0038] 第三步,如果W小于max(min_radius,width_car),此时机器人只需一次单向运动 就可以完成该区域的覆盖;否则,执行下一步;
[0039] 第四步,如果W值介于max(min_radius,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1