在前面http://blog.csdn.net/andymfc/article/details/60955819中我们对整体的室内路径规划思想进行了简单介绍,其关键将室内划分为栅格地图,通过设置引导位置,然后采用路径搜索算法查询机器到引导位置的路径,但是如何确定室内栅格地图上的障碍区域,是我们采用该思想实现室内路径规划控制机器人移动的第一步,今天就结合前面给出的方案,进一步对如何实现室内栅格地图的位置更新进行理论分析和设计。
根据http://blog.csdn.net/andymfc/article/details/59486169给出的初步方案,在家庭环保卫士机器人上我们会搭载一个(或多个)超声波传感器用于检测前方障碍物,并且使用kobuki机器人底盘我们可以实时的获取环保卫士的平面位置和方向角度,这样我们就可以精确的计算出前方障碍物的位置坐标,而进一步我们可以根据这些坐标在一定范围内确定当前的栅格状态,并且在机器人移动的过程中,不断的完善整个室内地图栅格信息的收集确定室内栅格的状态是处于通行还是不可通行状态。
如下图1所示,是一次机器人从起始点移动到目标点的过程中可以采集到的室内栅格状态示意图,在机器人移动的过程中,其可以采集到起前方的栅格的状态信息,并且建搞这些状态信息保存到数据库中,其中白色表示可通行,黑色表示不可通行,其他未知信息的栅格没有标出,同时也不保持记录,在需要的时候将其看做未知状态,路径搜索过程中假设为可以通行状态。
图1 一次移动过程中机器人可以采集到的栅格状态信息
通过上述分析我们可以得出整个算法的基本思想就是通过移动过程中不断的采集室内地图的栅格信息,对栅格进行标记,然后通过机器人在室内的有引导和随机移动,不断的去完善室内地图栅格状态信息的采集,如下图2所示。
图2 室内地图更新服务实现流程
基于上述设计,在构建室内环保机器人的时候,只需要基于上述流程构建一个室内地图更新服务,就可以在每次移动机器人的过程中不断的更新和刷新室内栅格地图信息,在不断的移动之后,环保卫士存储的室内地图数据会越来越丰富,最终实现越来越精确和更高效的路径规划和移动。
同样,在上述流程中,涉及到两个核心过程,即如何将机器人的位置和超声波传感器探测到的障碍物的转换为栅格位置,同时如何计算获取当前可以确定的所有的栅格位置信息,即根据当前位置点和障碍物点确定其中间位置的栅格的状态,这里我们将在下期blog中进一步完善该算法,对具体的实现思路进行介绍。