机器人导航方法、非易失性可读存储介质及机器人
文献发布时间:2024-04-18 19:44:28
技术领域
本发明涉及机器人技术领域,具体涉及一种机器人导航方法、非易失性可读存储介质及机器人。
背景技术
相关技术提供的机器人在清洁完当前区域后,会继续搜索待清洁区域以便实施清洁作业。当待清洁区域的狭小入口被动态障碍物所占据,或者激光雷达的激光数据出现误差时,机器人未能够成功地规划出由当前区域抵达待清洁区域的导航路径,通常机器人都会直接选择放弃清洁待清洁区域,选择返航回充,但是,动态障碍物在狭小入口的停留时间往往不长,若机器人直接放弃导航至待清洁区域,如此会降低导航成功率,不利于提高清洁覆盖率。
发明内容
本发明实施例的一个目的旨在提供一种机器人导航方法、非易失性可读存储介质及机器人,旨在改善相关技术的导航成功率较低的问题。
在第一方面,本发明实施例提供一种机器人导航方法,包括:
获取地图,所述地图包括目标区域;
检测到机器人不可达所述目标区域时,在所述地图上去除满足狭小区域条件的目标障碍物,得到更新后的地图;
基于所述更新后的地图,控制所述机器人导航至所述目标区域。
可选地,所述在所述地图上去除满足狭小区域条件的目标障碍物包括:
根据所述目标障碍物在所述地图的位置确定墙点位置,所述墙点位置为以所述目标障碍物为中心,按照预设的目标遍历方向遍历出满足墙点条件的位置;
根据所述目标障碍物在所述地图的位置及墙点位置计算离墙距离;
若所述离墙距离小于或等于预设的狭小距离阈值,则所述目标障碍物满足狭小区域条件,在所述地图上去除所述目标障碍物。
可选地,所述根据所述目标障碍物在所述地图的位置确定墙点位置包括:
根据所述目标障碍物在所述地图的位置及所述目标遍历方向确定起始遍历位置;
自所述起始遍历位置按照所述目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置。
可选地,所述根据所述目标障碍物在所述地图的位置及所述目标遍历方向确定起始遍历位置包括:
根据所述目标障碍物在所述地图的位置确定遍历线集合,所述遍历线集合包括多个目标线,至少一个目标线穿过所述目标障碍物;
确定所述目标障碍物的基准参考线及所述基准参考线与每条所述目标线的相交点,所述基准参考线的方向与所述目标遍历方向垂直;
将所述相交点的位置作为每条所述目标线的起始遍历位置。
可选地,所述根据所述目标障碍物在所述地图的位置确定遍历线集合包括:
根据所述目标障碍物在所述地图的位置及预设拓展方向确定目标边沿线,所述预设拓展方向与所述目标遍历方向垂直;
根据所述目标边沿线及预设拓展距离确定拓展边沿线;
根据所述拓展边沿线确定遍历线集合。
可选地,所述基准参考线为所述目标障碍物的中心线。
可选地,所述自所述起始遍历位置按照所述目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置包括:
根据预设遍历距离,自所述起始遍历位置按照所述目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置。
可选地,所述根据预设遍历距离,自所述起始遍历位置按照所述目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置包括:
根据预设遍历距离,自所述起始遍历位置按照所述目标遍历方向开始执行遍历操作;
若在遍历过程中遇到的位置点在墙体占据的区域或者遇到的位置点到所述起始遍历位置的距离为预设遍历距离,则所述位置点满足墙点条件,所述位置点为墙点位置。
可选地,所述目标遍历方向包括方向相反的第一遍历方向及第二遍历方向,所述根据所述目标遍历方向及预设遍历距离,自所述起始遍历位置开始执行遍历操作包括:
根据所述预设遍历距离及所述第一遍历方向,自所述起始遍历位置开始执行遍历操作;
根据所述预设遍历距离及所述第二遍历方向,自所述起始遍历位置开始执行遍历操作。
可选地,所述根据所述目标障碍物在所述地图的位置及所述墙点位置计算离墙距离包括:
根据所述目标障碍物在所述地图的位置及所述目标遍历方向确定起始遍历位置;
根据所述起始遍历位置及所述墙点位置计算离墙距离。
可选地,所述方法还包括:
若所述离墙距离大于所述狭小距离阈值,则所述目标障碍物的区域不满足狭小区域条件,调整所述目标遍历方向,调整后的目标遍历方向与调整前的目标遍历方向垂直;
根据调整后的目标遍历方向,确定所述目标障碍物的区域是否满足狭小区域条件。
在第二方面,本发明实施例提供一种非易失性可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于使机器人执行上述的机器人导航方法。
在第三方面,本发明实施例提供一种机器人,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的机器人导航方法。
在本发明实施例提供的机器人导航方法中,获取地图,地图包括目标区域,检测到机器人不可达目标区域时,在地图上去除满足狭小区域条件的目标障碍物,得到更新后的地图,基于更新后的地图,控制机器人导航至目标区域。本实施例通过去除被视为处于狭小区域的目标障碍物,然后再基于更新后的地图进行规划导航路径以便导航至目标区域,如此可避免目标障碍物在狭小区域上造成路径规划失败,有利于提高导航成功率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种机器人导航方法的流程示意图;
图2为本发明实施例提供的一种地图的示意图;
图3为在图2上标注机器人的当前位置及目标位置的示意图;
图4为在图2上去除处于狭小区域的目标障碍物的示意图;
图5为基于图4生成导航路径的示意图;
图6为本发明实施例提供的目标障碍物与墙体的距离的第一种状态示意图;
图7为本发明实施例提供的目标障碍物与墙体的距离的第二种状态示意图;
图8为本发明实施例提供的目标障碍物与墙体的距离的第三种状态示意图;
图9为本发明实施例提供的基于目标障碍物进行水平方向的遍历操作的状态示意图;
图10为本发明实施例提供的在目标障碍物上添加基准参考线的状态示意图,其中,目标遍历方向为水平方向;
图11为本发明实施例提供的在目标障碍物上添加基准参考线的状态示意图,其中,目标遍历方向为竖直方向;
图12为本发明实施例提供的以目标障碍物为中心进行拓展的状态示意图,其中,目标遍历方向为水平方向;
图13为本发明实施例提供的以目标障碍物为中心进行拓展的状态示意图,其中,目标遍历方向为竖直方向;
图14为本发明另一实施例提供的一种地图的示意图;
图15为在图14上标注机器人的当前位置及目标位置的示意图;
图16为在图14上去除处于狭小区域的目标障碍物的示意图;
图17为基于图16生成导航路径的示意图;
图18为本发明实施例提供的一种机器人的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例提供一种机器人导航方法。请参阅图1,机器人导航方法包括以下步骤:
S11:获取地图,地图包括目标区域。
本步骤中,地图可由机器人根据传感组件采集的环境数据并结合地图构建算法处理环境数据所得到的,其中,传感组件包括激光雷达和/或摄像头和/或各种运动传感器,地图构建算法可为SLAM算法等算法。机器人可为清洁机器人、搬运机器人等。清洁机器人包括扫地机器人、拖地机器人、扫拖机器人、洗地机器人等。
本实施例提供的地图可为栅格地图或其它图形化的地图。当地图为栅格地图时,地图由多个栅格组成。为了能够体现出环境中的物体的分布情况,可以给每个栅格设置对应的栅格值,栅格值能够体现对应的栅格的状态,栅格的状态用于表示环境中相应像素点的情况。单个栅格的状态可为以下一种:可通行状态、障碍物状态、未知状态。其中,可通行状态用于表示对应的像素点属于环境中无障碍物占据的区域的像素,障碍物状态用于表示对应的像素点属于环境中被障碍物占据的区域的像素,未知状态用于表示对应的像素点属于环境中未知区域的像素。为了便于描述,可将可通行状态对应的栅格的类型、障碍物状态对应的栅格的类型、未知状态对应的栅格的类型分别确定为可通行栅格、障碍物栅格、未知区域栅格。在一些实施例中,可通行栅格对应的栅格值、障碍物栅格对应的栅格值、未知状态栅格对应的栅格值分别为0、1、2。
目标区域可由机器人根据预设规则进行确定。在一些实施例中,目标区域为满足清洁规则的待清洁区域,比如目标区域为与机器人的当前位置最近的待清洁区域。
S12:检测到机器人不可达目标区域时,在地图上去除满足狭小区域条件的目标障碍物,得到更新后的地图。
本步骤中,检测到机器人不可达目标区域包括:确定机器人的当前位置及目标区域,根据路径规划算法判断机器人是否可规划出由当前位置到目标区域的导航路径,若是,则确定机器人可达目标区域,若否,则确定机器人不可达目标区域。
根据路径规划算法判断机器人是否可规划出由当前位置到目标区域的导航路径包括:获取目标队列,所述目标队列包括目标区域内依序排列的多个目标栅格,以每个栅格作为目标位置,根据路径规划算法判断机器人是否可规划出由当前位置到目标位置的导航路径,若不可规划出,则依序另选一个栅格作为目标位置。路径规划算法包括BFS算法或迪杰斯特拉算法等。
狭小区域条件为用于判断目标障碍物是否处于狭小区域的条件,更新后的地图为去除满足狭小区域条件的目标障碍物后的地图。
可以理解的是,地图可以本来就存在狭小区域,目标障碍物在狭小区域,比如房间的门口对应的区域可视为狭小区域,人作为目标障碍物站在门口的中间。还可理解的是,地图可以不存在狭小区域,但是,由于目标障碍物被机器人扫描到,目标障碍物的数据增加到地图上,目标障碍物与墙体之间能够形成狭小区域,如此会使得目标障碍物满足狭小区域条件。
在地图上去除满足狭小区域条件的目标障碍物前,机器人导航还包括以下步骤:选择尺寸小于或等于预设尺寸阈值的障碍物作为目标障碍物。其中,尺寸可为长度、宽度、高度或面积等,预设尺寸阈值由设计者根据工程经验自定义,比如预设尺寸阈值为20cm。另外,对于室内的墙体,通常墙体的长度至少为1m。
当地图为栅格地图时,选择尺寸小于或等于预设尺寸阈值的障碍物作为目标障碍物包括:根据BFS算法确定未遍历的障碍物连通域,其中,障碍物连通域包括组成连通域的多个障碍物栅格,判断障碍物连通域的尺寸是否小于或等于预设尺寸阈值,若是,则确定障碍物连通域对应的障碍物为目标障碍物,若否,则另选未遍历的障碍物连通域。
判断障碍物连通域的尺寸是否小于或等于预设尺寸阈值包括:判断障碍物连通域的栅格数量是否小于或等于预设数量阈值,若是,则障碍物连通域的尺寸小于或等于预设尺寸阈值,若否,则障碍物连通域的尺寸大于预设尺寸阈值。通常,若一个栅格的大小对应实际环境的5cm*5cm区域,预设尺寸阈值为20cm,当障碍物连通域的栅格数量小于或等于4时,则障碍物连通域的尺寸小于或等于预设尺寸阈值。
S13:基于更新后的地图,控制机器人导航至目标区域。
本步骤中,本实施例基于更新后的地图规划导航路径,根据导航路径控制机器人导航至目标区域。基于更新后的地图规划导航路径包括:确定机器人在更新后的地图上的当前位置及目标位置,根据当前位置及目标位置规划导航路径。
在机器人导航至待清洁区域的过程中,机器人导航方法还包括:若机器人在目标障碍物的区域遇到阻挡物,且机器人未能够推开阻挡物,则控制机器人停止导航至目标区域。若机器人在目标障碍物的区域遇到阻挡物,且机器人能够推开所述阻挡物,则控制机器人继续导航至目标区域。若机器人在目标障碍物的区域未遇到阻挡物,则控制机器人继续导航至目标区域。其中,阻挡物位于机器人前往目标区域的导航路径上,能够阻挡机器人前往目标区域。
判断机器人是否能够推开阻挡物包括:确定阻挡物的物体类型,判断所述物体类型是否为可碰撞类型,若所述物体类型为可碰撞类型,则控制机器人碰撞阻挡物,并接收机器人碰撞阻挡物的碰撞信号,判断所述碰撞信号是否大于预设信号阈值,若大于或等于,则确定机器人不可推开阻挡物,若小于,则确定机器人可推开阻挡物。若所述物体类型不为可碰撞类型,则确定机器人不可推开阻挡物。
为了详细阐述本实施例提供的机器人导航方法,本实施例结合图2至图5作出详细阐述,具体如下:
请参阅图2,机器人通过扫描周边环境,得到环境数据,根据地图构建算法处理环境数据,得到地图200,其中,地图200的狭小区域及其它区域都零散分布着多个目标障碍物,多个目标障碍物分别为目标障碍物21、目标障碍物22、目标障碍物23、目标障碍物24、目标障碍物25、目标障碍物26及目标障碍物27。
请参阅图3,地图200包括第一清洁分区201及第二清洁分区202,机器人的当前位置203在第一清洁分区201,其中,第一清洁分区201为已清洁区域,第二清洁分区202为待清洁区域。机器人需要由当前位置203导航至第二清洁分区202的目标位置204。由于当前位置203到目标位置204的路径被位于狭小区域的目标障碍物21所影响,导致机器人未能够规划出当前位置203到目标位置204的导航路径,亦即导航失败。
请参阅图4,机器人在地图200上去除满足狭小区域条件的目标障碍物21至目标障碍物27。请结合图1,可发现图4中已去除掉目标障碍物21至目标障碍物27。
请参阅图5,机器人基于图4示出的更新后的地图,根据当前位置203与目标位置204能够成功地规划出导航路径205,亦即导航成功。接着,机器人能够按照导航路径205,从第一清洁分区201导航至第二清洁分区202,从而能够对第二清洁分区202执行清洁作业,区别于相关技术,本实施例能够提高清洁覆盖率。
总体而言,本实施例通过去除被视为处于狭小区域的目标障碍物,然后再基于更新后的地图进行规划导航路径以便导航至目标区域,如此可避免目标障碍物在狭小区域上所造成路径规划失败,有利于提高导航成功率。
在一些实施例中,在地图上去除满足狭小区域条件的目标障碍物包括以下步骤:
S121:根据目标障碍物在地图的位置确定墙点位置,墙点位置为以目标障碍物为中心,按照预设的目标遍历方向遍历出满足墙点条件的位置。
S122:根据目标障碍物在地图的位置及墙点位置计算离墙距离。
S123:若离墙距离小于或等于预设的狭小距离阈值,则目标障碍物满足狭小区域条件,在地图上去除目标障碍物。
S124:若离墙距离大于预设的狭小距离阈值,则目标障碍物不满足狭小区域条件。
在S121中,墙点条件为用于筛选出墙点位置的条件。在一些实施例中,墙点位置为以目标障碍物为中心,按照目标遍历方向遍历出位于墙体上的位置。举例而言,请参阅图6,目标障碍物601的左边存在墙体602,目标遍历方向为水平方向,本实施例以目标障碍物601为中心沿着水平方向,遍历40厘米后得到位置603,其中,位置603位于墙体602内,位置603为墙点位置。通常机器人的直径为30厘米,因此,墙体602与目标障碍物601之间的区域足够容许机器人的穿过。
在一些实施例中,墙点位置为以目标障碍物为中心,按照目标遍历方向及预设遍历距离遍历出的位置。举例而言,请参阅图7,目标障碍物601的左边存在墙体602,其中,墙体602与目标障碍物601的距离为40厘米。目标遍历方向为水平方向,预设遍历距离为30厘米。本实施例以目标障碍物601为中心沿着水平方向,遍历30厘米后得到位置604,其中,位置604为墙点位置。由于容许机器人穿过的距离至少为30厘米,且墙体602与目标障碍物601之间的距离为40厘米,为了节省算力,提高计算效率,本实施例无需遍历遇到墙体时才将位于墙体上的位置当成墙点位置,可以将与目标障碍物601距离30厘米对应的位置作为墙点位置。
再举例而言,请参阅图8,目标障碍物601的左边存在墙体605,墙体605相对目标障碍物601是倾斜设置的,墙体605与目标障碍物601的距离为10厘米。本实施例以目标障碍物601为中心沿着水平方向,遍历10厘米后遇到墙体605的位置606,其中,位置606位于墙体605内,本实施例将位置606为墙点位置。
目标遍历方向由设计者自定义,其中,目标遍历方向可为水平方向或竖直方向,当目标遍历方向为水平方向时,本实施例以目标障碍物为中心,沿着水平方向遍历出墙点位置。当目标遍历方向为竖直方向时,本实施例以目标障碍物为中心,沿着竖直方向遍历出墙点位置。
在S122中,在一些实施例中,当目标障碍物在地图占据多个位置时,本实施例可根据目标障碍物中的任一位置及墙点位置计算离墙距离。在一些实施例中,当目标障碍物在地图占据多个位置时,本实施例确定目标障碍物的中心位置,根据中心位置及墙点位置计算离墙距离。
在S123中,狭小距离阈值由设计者根据工程经验自定义,比如狭小距离阈值为25厘米、40厘米等。若离墙距离小于或等于狭小距离阈值,说明目标障碍物在狭小区域上,因此,本实施例在地图上去除目标障碍物。
若离墙距离小到足以说明目标障碍物是紧贴着墙体,本实施例并不需要去除此类状态下的目标障碍物,因此,在一些实施例中,若离墙距离大于预设的接触距离阈值,且小于或等于预设的狭小距离阈值,则目标障碍物满足狭小区域条件,在地图上去除目标障碍物,其中,接触距离阈值小于狭小距离阈值,比如接触距离阈值为0,若离墙距离大于0,说明目标障碍物并不是紧贴着墙体,可考虑去除此目标障碍物。
在S124中,若离墙距离大于狭小距离阈值,说明目标障碍物不在狭小区域上,因此,本实施例不需要在地图上去除目标障碍物。若离墙距离小于或等于接触距离阈值,或者大于狭小距离阈值,则目标障碍物不满足狭小区域条件。
本实施例通过结合离墙距离及狭小距离阈值,能够可靠地判断出目标障碍物是否在狭小区域,以便可靠地执行在地图上是否需要去除目标障碍物的操作。
在一些实施例中,根据目标障碍物在地图的位置确定墙点位置包括以下步骤:根据目标障碍物在地图的位置及目标遍历方向确定起始遍历位置,自起始遍历位置按照目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置。
当目标障碍物在地图上占据多个位置或者目标障碍物为不规则形状时,本实施例按照目标遍历方向,逐行/逐列地执行遍历操作以得到满足墙点条件的墙点位置,从而能够保证全方位地执行遍历操作以得到满足墙点条件的墙点位置。
请参阅图9,目标障碍物70包括3行9个栅格,分别为栅格1至栅格9,其中,目标遍历方向为水平方向。本实施例选择栅格1为目标障碍物70的第一行栅格的起始遍历位置,自栅格1按照水平方向开始执行遍历操作,得到墙体71上的墙点位置72。若经由栅格1得到的离墙距离大于狭小距离阈值,本实施例继续选择栅格3为目标障碍物70的第二行栅格的起始遍历位置,自栅格3按照水平方向开始执行遍历操作,得到墙体71上的墙点位置73,若经由栅格3得到的离墙距离大于狭小距离阈值,本实施例继续选择栅格7为目标障碍物70的第三行栅格的起始遍历位置,自栅格7按照水平方向开始执行遍历操作,得到墙体71上的墙点位置74,以此类推。
在一些实施例中,根据目标障碍物在地图的位置及目标遍历方向确定起始遍历位置包括以下步骤:
S1211:根据目标障碍物在地图的位置确定遍历线集合,遍历线集合包括多个目标线,至少一个目标线穿过目标障碍物。
S1212:确定目标障碍物的基准参考线及基准参考线与每条目标线的相交点,基准参考线的方向与目标遍历方向垂直。
S1213:将相交点的位置作为每条目标线的起始遍历位置。
在S1211中,在一些实施例中,遍历线集合的目标线都是穿过目标障碍物的线条。举例而言,请结合图9,当目标遍历方向为水平方向时,遍历线集合的目标线为行线,都是穿过目标障碍物的。当目标遍历方向为竖直方向时,遍历线集合的目标线为列线,都是穿过目标障碍物的。
在一些实施例中,遍历线集合中的一部分目标线都是穿过目标障碍物的线条,另一部分目标线是基于目标障碍物拓展出的线条。举例而言,当目标遍历方向为水平方向时,遍历线集合的目标线为行线,其中,一部分目标线穿过目标障碍物,另一部分目标线与目标障碍物的最大行和最小行都间隔一定距离。当目标遍历方向为竖直方向时,遍历线集合的目标线为列线,其中,一部分目标线穿过目标障碍物,另一部分目标线与目标障碍物的最大列和最小列都间隔一定距离。
在S1212中,基准参考线对应的方向与目标遍历方向垂直,当目标遍历方向为水平方向时,基准参考线对应的方向为竖直方向。当目标遍历方向为竖直方向时,基准参考线对应的方向为水平方向。
基准参考线由设计者根据工程经验自定义,在一些实施例,基准参考线为目标障碍物的中心线。在一些实施例,基准参考线为目标障碍物的最小边沿线或最大边沿线,最小边沿线为与目标障碍物的中心线距离最小的线条,最大边沿线为与目标障碍物的中心线距离最大的线条。
请参阅图10,当本实施例按照水平方向执行遍历操作时,本实施例选择直线r0作为基准参考线。请继续参阅图10,目标障碍物的遍历线集合包括目标线r1、目标线r2及目标线r3,目标线r1为由栅格1形成的行线,目标线r2为由栅格2至栅格4形成的行线,目标线r3为由栅格5至栅格9形成的行线。直线r0与目标线r1、目标线r2及目标线r3的相交点分别为栅格1、栅格3及栅格7。
请参阅图11,当本实施例按照竖直方向执行遍历操作时,本实施例选择直线c0作为基准参考线。请继续参阅图11,目标障碍物的遍历线集合包括目标线c1、目标线c2、目标线c3、目标线c4及目标线c5,目标线c1为由栅格5形成的列线,目标线c2为由栅格2和栅格6形成的列线,目标线c3为由栅格1、栅格3及栅格7形成的列线,目标线c4为由栅格4和栅格8形成的列线,目标线c5为由栅格9形成的列线。直线c0与目标线c2、目标线c3及目标线c4的相交点分别为栅格2、栅格3及栅格4。
在S1213中,请结合图10,当本实施例按照水平方向执行遍历操作时,本实施例选择栅格1作为目标线r1的起始遍历位置,栅格3作为目标线r2的起始遍历位置,栅格7作为目标线r3的起始遍历位置。
请结合图11,当本实施例按照竖直方向执行遍历操作时,本实施例选择栅格2作为目标线c2的起始遍历位置,栅格3作为目标线c3的起始遍历位置,栅格4作为目标线c4的起始遍历位置。
在一些实施例中,根据目标障碍物在地图的位置确定遍历线集合包括以下步骤:
S12111:根据目标障碍物在地图的位置及预设拓展方向确定目标边沿线,预设拓展方向与目标遍历方向垂直。
S12112:根据目标边沿线及预设拓展距离确定拓展边沿线。
S12113:根据拓展边沿线确定遍历线集合。
在S12111中,当目标遍历方向为水平方向时,预设拓展方向为竖直方向。当目标遍历方向为竖直方向时,预设拓展方向为水平方向。
目标边沿线包括第一边沿线及第二边沿线,若预设拓展方向为竖直方向,则选择目标障碍物的最大行线为第一边沿线,及最小行线为第二边沿线。请结合图10,目标线r1为目标障碍物的最小行线,目标线r3为目标障碍物的最大行线,因此,目标线r3为第一边沿线,目标线r1为第二边沿线。
目标边沿线包括第一边沿线及第二边沿线,若预设拓展方向为水平方向,则选择目标障碍物的最大列线为第一边沿线,及最小列线为第二边沿线。请结合图11,目标线c1为目标障碍物的最小列线,目标线c5为目标障碍物的最大列线,因此,目标线c5为第一边沿线,目标线c1为第二边沿线。
在S12112中,拓展边沿线包括第一拓展线及第二拓展线,根据目标边沿线及预设拓展距离确定拓展边沿线包括:将第一边沿线按照预设的第一方向平移预设拓展距离,得到第一拓展线,将第二边沿线按照预设的第二方向平移预设拓展距离,得到第二拓展线,第一方向与所述第二方向相反,且第一方向及第二方向都为远离目标障碍物的方向。其中,预设拓展距离由设计者根据工程经验自定义。
在一些实施例中,若目标遍历方向为水平方向,预设拓展方向为竖直方向,则第一方向为向下方向,第二方向为向上方向。若目标遍历方向为竖直方向,预设拓展方向为水平方向,则第一方向为向右方向,第二方向为向左方向。
请参阅图12,本实施例将目标线r3按照向下方向平移预设拓展距离,得到第一拓展线r4,将目标线r1按照向上方向平移预设拓展距离,得到第二拓展线r5。
请参阅图13,本实施例将目标线c5按照向右方向平移预设拓展距离,得到第一拓展线c6,将目标线c1按照向左方向平移预设拓展距离,得到第二拓展线c7。
在S12113中,拓展边沿线包括第一拓展线及第二拓展线,根据拓展边沿线确定遍历线集合包括以下步骤:将在第一拓展线与第二拓展线之间的线条都作为目标线,根据多个目标线生成遍历线集合。
请结合图12,本实施例依序将拓展线r5、拓展线r6、拓展线r7、目标线r1、目标线r2、目标线r3、拓展线r8、拓展线r9、拓展线r4组成遍历线集合。
请结合图13,本实施例依序将拓展线c7、拓展线c8、拓展线c9、目标线c1、目标线c2、目标线c3、目标线c4、目标线c5、拓展线c10、拓展线c11、拓展线c6组成遍历线集合。
总体而言,若本实施例不拓展出目标边沿线,就以目标障碍物所占据的目标线进行遍历操作以确定每条目标线的离墙距离时,虽然机器人从目标障碍物的左方和右方遍历得到的离墙距离都大于狭小距离阈值,但是,目标障碍物的上方和/或下方可能出现与墙体的距离比较近,比如墙体相对目标障碍物是倾斜的,目标障碍物的左右方都与墙体间隔较远距离,但是上方和/或下方可能会紧挨着墙体,机器人在此种状态下的区域也不能正常地穿过。同理可得,当机器人从目标障碍物的上方和下方遍历得到的离墙距离都大于狭小距离阈值,但是,目标障碍物的左方和/或右方可能出现与墙体的距离比较近,具体情形同上所述,在此不赘述。
本实施例通过根据目标边沿线及预设拓展距离生成拓展边沿线,如此能够扩大遍历范围,将遍历范围从目标障碍物本身所占据的目标线延伸到拓展边沿线,给予了机器人更多地评价裕量以便可靠和全方位地衡量目标障碍物是否处于狭小区域,有利于提高导航成功率和鲁棒性。
在一些实施例中,自起始遍历位置按照目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置包括:根据预设遍历距离,自起始遍历位置按照目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置。
可以理解的是,机器人可以无需根据预设遍历距离,都可自起始遍历位置按照目标遍历方向开始执行遍历操作,以得到墙点位置,比如,如前所述,机器人沿着每条目标线进行遍历时,逐个判断遇到的位置点是否在墙体,若是,则将该位置点作为墙点位置。当地图的面积较大时,此种作法容易耗费较大算力。
但是,当机器人根据预设遍历距离,自起始遍历位置按照目标遍历方向开始执行遍历操作,当遇到的位置点与起始遍历位置的离墙距离为预设遍历距离,即使遇到的位置点不在墙体占据的区域上,机器人也可结束在此目标线上的遍历操作,如此能够节约算力,提高查找墙点位置的效率。
在一些实施例中,根据预设遍历距离,自起始遍历位置按照目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置包括以下步骤:根据预设遍历距离,自起始遍历位置按照目标遍历方向开始执行遍历操作,若在遍历过程中遇到的位置点在墙体占据的区域或者遇到的位置点到起始遍历位置的距离为预设遍历距离,则位置点满足墙点条件,位置点为墙点位置。
在一些实施例中,目标遍历方向包括方向相反的第一遍历方向及第二遍历方向,根据目标遍历方向及预设遍历距离,自起始遍历位置开始执行遍历操作包括以下步骤:根据预设遍历距离及第一遍历方向,自起始遍历位置开始执行遍历操作,根据预设遍历距离及第二遍历方向,自起始遍历位置开始执行遍历操作。
请结合图12,本实施例按照水平方向执行遍历操作,其中,第一遍历方向为水平向左方向,第二遍历方向为水平向右方向。当本实施例按照水平方向在目标线r1执行遍历操作时,本实施例根据预设遍历距离,以栅格1为起始遍历位置,开始按照水平向左方向执行遍历操作,以及按照水平向右方向执行遍历操作。同理可得,在目标线r2上以栅格3为起始遍历位置,并按照上述方式进行遍历操作,以此类推。
请结合图13,本实施例按照竖直方向执行遍历操作,其中,第一遍历方向为竖直向上方向,第二遍历方向为竖直向下方向。当本实施例按照竖直方向在目标线c2执行遍历操作时,本实施例根据预设遍历距离,以栅格2为起始遍历位置,开始按照竖直向上方向执行遍历操作,以及按照竖直向下方向执行遍历操作。同理可得,在目标线c3上以栅格3为起始遍历位置,并按照上述方式进行遍历操作,以此类推。
在一些实施例中,根据目标障碍物在地图的位置及墙点位置计算离墙距离包括以下步骤:根据目标障碍物在地图的位置及目标遍历方向确定起始遍历位置,根据起始遍历位置及墙点位置计算离墙距离。
在一些实施例中,目标遍历方向包括方向相反的第一遍历方向及第二遍历方向,墙点位置包括第一墙点的位置及第二墙点的位置,第一墙点为自起始遍历位置开始按照第一遍历方向得到的墙点,第二墙点为自起始遍历位置开始按照第二遍历方向得到的墙点。
根据起始遍历位置及墙点位置计算离墙距离包括以下步骤:根据起始遍历位置及第一墙点的位置计算第一距离,根据起始遍历位置及第二墙点的位置计算第二距离,根据第一距离及第二距离计算离墙距离。
地图配置有坐标系,坐标系的原点可以被定义在地图的任意合适位置,例如,原点可被定义在地图的左下角,X轴的正方向为水平向右,Y轴的正方向为垂直向上,如此,通过坐标系,每个物体或每个区域在地图中的位置都可以被量化表示。
根据起始遍历位置及第一墙点的位置计算第一距离包括:确定起始遍历位置的坐标及第一墙点位置的坐标,根据起始遍历位置的坐标及第一墙点位置的坐标,计算起始遍历位置与第一墙点位置的相对距离,将相对距离作为第一距离。
根据起始遍历位置及第二墙点的位置计算第二距离包括:确定起始遍历位置的坐标及第二墙点位置的坐标,根据起始遍历位置的坐标及第二墙点位置的坐标,计算起始遍历位置与第二墙点位置的相对距离,将相对距离作为第二距离。
根据第一距离及第二距离计算离墙距离包括:将第一距离及第二距离进行相加,得到离墙距离。
在一些实施例中,若离墙距离大于狭小距离阈值,则目标障碍物的区域不满足狭小区域条件,调整目标遍历方向,调整后的目标遍历方向与调整前的目标遍历方向垂直,根据调整后的目标遍历方向,确定目标障碍物的区域是否满足狭小区域条件,如此,本实施例以目标障碍物为中心,从两个维度方向进行多方位地评价目标障碍物是否处于狭小区域,避免单方向识别目标障碍物是否处于狭小区域所带来的误判。
在一些实施例中,当调整前的目标遍历方向为水平方向时,调整后的目标遍历方向为竖直方向,当调整前的目标遍历方向为竖直方向时,调整后的目标遍历方向为水平方向。
举例而言,请结合图12,当调整前的目标遍历方向为水平方向时,本实施例在拓展线r5、拓展线r6、拓展线r7、目标线r1、目标线r2、目标线r3、拓展线r8、拓展线r9、拓展线r4上的起始遍历位置开始执行水平向左方向上的遍历操作,及执行水平向右方向的遍历操作。当拓展线r5、拓展线r6、拓展线r7、目标线r1、目标线r2、目标线r3、拓展线r8、拓展线r9、拓展线r4对应的离墙距离都大于狭小距离阈值时,本实施例将目标遍历方向调整为竖直方向。
请结合图13,由于调整后的目标遍历方向为竖直方向,本实施例在拓展线c7、拓展线c8、拓展线c9、目标线c1、目标线c2、目标线c3、目标线c4、目标线c5、拓展线c10、拓展线c11、拓展线c6上的起始遍历位置开始执行竖直向上方向上的遍历操作,及执行竖直向下方向的遍历操作。当拓展线c7、拓展线c8、拓展线c9、目标线c1、目标线c2、目标线c3、目标线c4、目标线c5、拓展线c10、拓展线c11、拓展线c6对应的离墙距离都大于狭小距离阈值时,本实施例无需将目标障碍物从地图中去除。当拓展线c7、拓展线c8、拓展线c9、目标线c1、目标线c2、目标线c3、目标线c4、目标线c5、拓展线c10、拓展线c11、拓展线c6中任一目标线的离墙距离小于狭小距离阈值,本实施例需将目标障碍物从地图中去除。
根据调整后的目标遍历方向确定目标障碍物的区域是否满足狭小区域条件包括:根据目标障碍物在地图的位置及调整后的目标遍历方向确定起始遍历位置,自起始遍历位置按照调整后的目标遍历方向开始执行遍历操作以得到满足墙点条件的墙点位置,根据起始遍历位置及墙点位置计算离墙距离,若离墙距离大于预设的接触距离阈值,且小于或等于预设的狭小距离阈值,则目标障碍物的区域满足狭小区域条件,在所述地图上去除目标障碍物。
为了详细阐述本实施例提供的机器人导航方法,本实施例结合图14至图17作出详细阐述,具体如下:
请参阅图14,机器人通过扫描周边环境,得到环境数据,根据地图构建算法处理环境数据,得到地图140。地图140包括清洁分区141及清洁分区142,清洁分区141为已清洁区域,清洁分区142为待清洁区域。
请参阅图15,机器人的当前位置143在清洁分区141,目标位置144在清洁分区142,机器人需要从当前位置143导航至目标位置144。由于清洁分区142的入口站着一个人145,清洁分区141到清洁分区142的路径被该人145所影响,相关技术提供的机器人未能够规划出当前位置143至目标位置144的导航路径,亦即导航失败。
请参阅图16,机器人执行上述各个实施例提供的方法,在地图140上去除该人145所占据的区域。
请参阅图17,机器人基于图16示出的更新后的地图,根据当前位置143与目标位置144能够成功地规划出导航路径146,亦即导航成功。接着,机器人能够按照导航路径146,从当前位置143导航至目标位置144,从而能够对清洁分区142执行清洁作业,区别于相关技术,本实施例能够提高导航成功率和清洁覆盖率。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
请参阅图18,图18为本发明实施例提供的一种机器人的电路结构示意图。如图18所示,机器人180包括一个或多个处理器181以及存储器182。其中,图18中以一个处理器181为例。
处理器181和存储器182可以通过总线或者其他方式连接,图18中以通过总线连接为例。存储器182作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的机器人导航方法对应的程序指令/模块。处理器181通过运行存储在存储器182中的非易失性软件程序、指令以及模块,从而实现上述方法实施例提供的机器人导航方法的功能。
存储器182可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器182可选包括相对于处理器181远程设置的存储器,这些远程存储器可以通过网络连接至处理器181。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器182中,当被所述一个或者多个处理器181执行时,执行上述任意方法实施例中的机器人导航方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图18中的一个处理器181,可使得上述一个或多个处理器可执行上述任意方法实施例中的机器人导航方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被机器人执行时,使所述机器人执行任一项所述的机器人导航方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
- 一种机器人控制方法、机器人及计算机可读存储介质
- 信息处理装置及方法及非易失性的计算机可读记录介质
- 信息处理装置及方法及非易失性的计算机可读记录介质
- 清扫机器人路径规划方法及相关系统、可读存储介质
- 机器人交互方法、装置、计算机设备及可读存储介质
- 机器人的控制方法、非易失性可读存储介质及机器人
- 机器人行进方法、非易失性计算机可读存储介质及机器人