一种基于障碍物分类的路径规划方法、装置及机器人
技术领域
本发明属于机器人技术领域,尤其涉及一种基于障碍物分类的路径规划方法、装置及机器人。
背景技术
近年来,随着移动机器人的快速发展,如何进行障碍物检测和避让是体现机器人智能化水平的重要标准,良好的避障功能是移动机器人安全行走的重要保障。而如何进行良好的避障就涉及到对机器人进行合理的路径规划。
机器人导航领域的路径规划是指:首先告知机器人行走的起始点和目标点,然后在存在障碍物的室内环境中根据已知地图信息规划出一条合理的路径供机器人行走。其中,合理的路径应当至少满足以下条件:路径是从起始点到达目标点的相对较短的路径;该路径能够极大程度的避开在已知地图中的障碍物。
现有的导航方案将所有障碍物简单处理为静态障碍物,但这并不能很好与复杂的室内环境相适应。例如,假设我们需要机器人从A点走到B点,但是在机器人行进过程中突然出现了小狗,那么由于在原来的导航方案中由于并没有加入小狗这个动态障碍物的信息,此时机器人会选择继续前进,那么很可能会撞上该小狗。现有技术中也有考虑将动态障碍物信息加入到路径规划中,但是当机器人遇到动态障碍物的时候通常会选择掉头绕行或长时等待。上述避障行为让机器人看起来相当的笨拙,避障效率也很低。
发明内容
有鉴于此,本发明实施例提供了一种基于障碍物分类的路径规划方法、装置及机器人,以解决现有技术中机器人遇到动态障碍物时避障笨拙、效率低的问题。
本发明实施例的第一方面提供了一种基于障碍物分类的路径规划方法,包括:设置预设区域内的先验地图、全局代价地图和机器人在所述预设区域内所要到达的目标点,所述预设区域为预先设置的可供机器人行走的区域,所述先验地图为用于显示坐落在该预设区域中的静态障碍物位置的地图;根据机器人当前所在点、所述目标点及所述全局代价地图确定机器人的第一行走路径,并控制机器人按照所述第一行走路径行走;检测机器人当前所在点预设范围内是否出现所述先验地图中不存在的障碍物;若机器人当前所在点预设范围内出现了所述先验地图中不存在的障碍物,则检测障碍物的类型,根据障碍物的类型生成对应的局部代价地图;结合第一行走路径和所述局部代价地图确定机器人行走的第二行走路径,并控制机器人按照所述第二行走路径行走。
本发明实施例的第二方面提供了一种基于障碍物分类的路径规划装置,包括:预设单元,用于设置预设区域内的先验地图、全局代价地图和机器人在所述预设区域内所要到达的目标点,所述预设区域为预先设置的可供机器人行走的区域,所述先验地图为用于显示坐落在该预设区域中的静态障碍物位置的地图;全局路径确定单元,用于根据机器人当前所在点、所述目标点及所述全局代价地图确定机器人的第一行走路径,并控制机器人按照所述第一行走路径行走;检测单元,用于检测机器人当前所在点预设范围内是否出现所述先验地图中不存在的障碍物;局部代价地图确定单元,用于若机器人当前所在点预设范围内出现了所述先验地图中不存在的障碍物,则检测障碍物的类型,根据障碍物的类型生成对应的局部代价地图;局部路径确定单元,用于结合第一行走路径和所述局部代价地图确定机器人行走的第二行走路径,并控制机器人按照所述第二行走路径行走。
本发明实施例的第三方面提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例将障碍物分为动态障碍物和静态障碍物,不同的障碍物类型采用不同的模型生成代价地图从而影响对应的路径规划,使机器人对于不同类型的障碍物能采用合理的路径并使其具有预判性,提高机器人的避障效率和性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的机器人组成示意图;
图2是本发明实施例提供的一种基于障碍物分类的路径规划方法的实现流程示意图;
图3是本发明实施例提供的全局代价地图计算方法的流程示意图;
图4是本发明实施例提供的动态局部代价地图计算方法的流程示意图;
图5是本发明实施例提供的障碍物模型的结构图;
图6是本发明实施例提供的一种基于障碍物分类的路径规划装置的示意图;
图7是本发明实施例提供的机器人结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解的是,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合附图通过具体实施例对本发明的实现方法进行详细说明,为了清除的描述本发明的内容,首先对机器人进行说明。
实施例一
如图1所示为本发明实施例提供的机器人组成示意图,机器人包括机体100、摄像头101、红外传感器102,齿轮103。其中,摄像头和红外传感器用于扫描机器人行进路径,检测在机器人行进路径上是否存在障碍物;齿轮用于控制机器人行进。应当理解的是,本发明机器人具有控制机器人的内部操作系统,机器人在行走过程中,首先采集摄像头和红外传感器拍摄的路面信息,然后机器人通过对路面情况进行分析从而规划出一条合理的路径从起始点行走到目标点。
实施例二
图2示出了本发明实施例二提供的一种基于障碍物分类的路径规划方法的实现流程示意图,详述如下:
在步骤S21中,设置预设区域内的先验地图、全局代价地图和机器人在所述预设区域内所要到达的目标点。
在本发明实施例中,为了使机器人能够顺利到达目标地点需要提前将目标点位置告知机器人,然后机器人按照规划的合理的路径向目标地点前进。同时,为了使机器人能够找到在预设区域内从起始点到目标点的合理路径,还需要设置预设区域内的全局代价地图。其中,预设区域具体为预先设置的可供机器人行走的区域,包括但不限于以下区域:家庭室内区域或公司办公区域或学校教室区域。预设区域内的先验地图为用于显示坐落在该预设区域中的静态障碍物位置的地图,通过设置先验地图,可以用来判断后续在预设区域内或某局部范围内是否会出现新的静态障碍物。全局代价地图主要是为了反映预设区域中静态障碍物所处区域的代价值,在全局代价地图上,代价值越大的区域,机器人发生碰撞的可能性越大,应当控制机器人尽量避开这些区域行走,当某区域或某点的代价值为最大代价值时,机器人肯定会发生碰撞。例如,可以假设在整个全局代价地图上点的代价值范围为[0~100],那么机器人在进行路径规划的时候,会优先选择总代价值小的路径行走。当某点的代价值为最大代价值也就是代价值为100的时候,机器人必定会与该点的静态障碍物发生碰撞。如图3所示为全局代价地图的建立方法:在步骤S211中,获取预设区域内所有静态障碍物的信息,其中,静态障碍物信息包括但不限于:静态障碍物位置、静态障碍物与机器人的距离。在步骤S212中,根据静态障碍物信息构建静态障碍物模型,其中,静态障碍物模型用于计算预设区域中静态障碍物所处区域的代价值。在步骤S213中,根据构建的静态障碍物模型构建预设区域的全局代价地图,该全局代价地图用于反映预设区域中静态障碍物所处区域的代价值,全局代价地图上面的点的值是该点对应的代价值。
在步骤S22中,根据机器人当前所在点、所述目标点及所述全局代价地图确定机器人的第一行走路径,并控制机器人按照所述第一行走路径行走。
在本发明实施例中,由于在预设区域内,机器人从当前点到达目标点的可达路径可能包含很多条,其中,可达路径为从当前点出发可以到达目标点的路径。为了防止机器人绕行、提高机器人行走效率,需要根据全局代价地图采用相应的路径规划算法求得从当前点到目标点之间的路径代价之和最小的全局路径,即第一行走路径。采用的路径规划算法包括但不限于:跳点搜索算法或A*算法或APF(人工势场)算法,在这里不做具体的限制。
在步骤S23中,检测机器人当前所在点预设范围内是否出现所述先验地图中不存在的障碍物。
在本发明实施例中,由于机器人在行走过程中很可能遇到行人、宠物等动态障碍物,因此,需要实时检测机器人当前所在点预设范围内是否出现先验地图中不存在的障碍物,使机器人具有预判性,然后使机器人根据不同类型的障碍物采用更加合理的路径进行避障,进而使机器人在面对不同障碍物的时候表现的更加智能。在这里,预设范围具体为以机器人的底部中心点(如图1中的104)为中心,面积大于机器人占地面积的圆形区域。在实际操作过程中,可以使该预设范围尽量大些,通过检测大范围的障碍物信息,可以使机器人能够更加及时、快速的作出避障反应,进一步保证机器人行走的安全性。但是,预设范围也不宜过大,具体的,预设范围可根据实际需要来确定,在这里不做具体的限定。
在步骤S24中,若机器人当前所在点预设范围内出现了所述先验地图中不存在的障碍物,则检测障碍物的类型,根据障碍物的类型生成对应的局部代价地图。
在本发明实施例中,若机器人当前所在点预设范围内出现了先验地图中不存在的障碍物,则首先检测障碍物类型,然后根据障碍物的类型生成对应的局部代价地图。这里的局部代价地图主要是为了反映预设范围内新出现的障碍物所处区域的代价值。具体的,障碍物类型可根据障碍物当前的状态进行区分,包括动态障碍物和静态障碍物,其中动态障碍物指机器人检测到该障碍物当前位置正在发生移动的障碍物;静态障碍物指机器人检测到该障碍物当前处于静止状态所处位置不变的障碍物。其中,具有行动能力的人、宠物等也可以为静态障碍物,因为人也可以处在某个位置不动,比如躺床上睡觉。
根据以上内容可知,机器人行走路径上难免会出现动态障碍物,仅仅采用全局代价地图来确定机器人的行走路径并不合理,因为在全局代价地图中无法反映动态障碍物带来的代价,故机器人在行走的时候看不到动态障碍物,会按照根据全局代价地图规划的路径行走,此时,机器人与动态障碍物发生碰撞的可能性增大。故在机器人行进过程中检测机器人当前所在点预设范围内出现的先验地图中不存在的障碍物类型就显得及其重要。通过实时检测机器人局部范围内障碍物的类型,然后使机器人根据不同类型的障碍物采用更加智能、合理的路径进行避障。
在本发明实施例中,根据障碍物的类型生成对应的代价地图,具体的,这里的代价地图可以按照障碍物的类型进行划分:若检测到的障碍物的类型包含动态障碍物类型,则生成动态局部代价地图;若检测到的障碍物的类型均为静态障碍物类型,则生成静态局部代价地图。其中,静态局部代价地图的生成方法与全局代价地图的生成方法一致,只需要将新出现的静态障碍物加入其中进行计算即可。如图4所示为动态局部代价地图生成方法:
在步骤S241中,获取机器人当前所在点的预设范围内的障碍物信息。
在本发明实施例中,获取机器人当前所在点的预设范围内的障碍物信息,所述障碍物信息包括静态障碍物信息和动态障碍物信息。其中,动态障碍物信息包括但不限于障碍物位置、障碍物速度、障碍物与机器人的距离;静态障碍物信息包括但不限于静态障碍物位置、静态障碍物与机器人的距离。
在步骤S242中,根据障碍物信息建立对应的障碍物模型。
在本发明实施例中,根据障碍物信息建立对应的障碍物模型。如步骤S241所述,障碍物信息包括动态障碍物信息和静态障碍物信息,故根据所述障碍物信息建立对应的障碍物模型具体包括:根据静态障碍物信息建立静态障碍物模型,以及根据动态障碍物信息建立动态障碍物模型。
在步骤S243中,根据建立的障碍物模型建立动态局部代价地图。
在本发明实施例中,根据建立的障碍物模型建立动态局部代价地图。其中的障碍物模型具体为在步骤S242中建立的动态障碍物模型和静态障碍物模型。
在这里,设置机器人看不到动态障碍物,即动态局部代价地图不在全局地图更新,而是选择将动态局部代价地图与第一行走路径进行结合并通过对应的路径规划算法来规划第二行走路径,这样即使在机器人当前所在点的预设范围内存在动态障碍物,机器人仍会按照第一路径行进方向继续朝目标点行进,只不过此时,机器人会根据动态局部代价地图调整局部行走路径及行走速度,这样做的好处是避免了机器人感应到动态障碍物而选择绕回走或者长时等待。
在步骤S25中,结合第一行走路径和所述局部代价地图确定机器人行走的第二行走路径,并控制机器人按照所述第二行走路径行走。
在本发明实施例中,结合第一行走路径和所述局部代价地图确定机器人行走的第二行走路径,并控制机器人按照第二行走路径行走。这里的局部代价地图主要是为了反映预设范围内新出现的障碍物所处区域的代价值,根据该局部代价地图,机器人会选择一条代价最低的路径即第二行走路径并通过控制行走速度来避开局部障碍物。同时,在机器人按照第二行走路径行走的过程中仍然会继续监测其预设范围内是否会出现新的障碍物,即机器人在到达目标点之前对周围环境的检测是实时的,一直存在的。具体地,当路面状态特别复杂的时候,即在机器人规划好了第二行走路径但是还没有走出其预设范围的时候又出现了新的障碍物,那么机器人又会重新判断障碍物类型并再次进行路径规划。上述行走速度包括机器人行走的速度方向和速度大小,例如,当在狭窄的路段出现快速行走的行人时,机器人会采用迅速降速缓慢前行的方式通过。
在机器人在到达目标点之前都需要实时监测机器人预设范围内的障碍物及障碍物类型,以使机器人能够根据预设范围内环境的变化随时作出避让反应。故在机器人到达目标点之前,需要重复执行图2步骤S22~S25,直至机器人顺利到达目标点。
本发明实施例的有益效果在于,本发明实施例将障碍物分为动态障碍物和静态障碍物,不同的障碍物类型采用不同的模型生成代价地图从而影响对应的路径规划,使机器人对于不同类型的障碍物能采用合理的路径并使其具有预判性,从而提高机器人的避障效率和性能。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三
图5示出了本发明实施例三提供的障碍物模型示意图,该障碍物模型适用于静态障碍物模型和动态障碍物模型,详述如下:
在本发明实施例中,障碍物模型包括绝对碰撞范围和膨胀范围,其中,绝对碰撞范围为机器人与障碍物绝对会发生碰撞的范围,即只要机器人进入该范围内就一定会与该障碍物发生碰撞,在该范围内所有点的代价值均为最大代价值。例如,假设机器人为球体机器人,半径为R1,障碍物为球体障碍物,半径为R2,当检测到障碍物与该机器人的距离小于R1+R2时,此时机器人与障碍物必定会发生碰撞,那么可以理解的是,此处的绝对碰撞范围为以球体障碍物球心为中心,半径为R1+R2的圆形区域。绝对碰撞范围由障碍物和机器人形状决定,在此处不做具体的限制。所述膨胀范围为机器人与障碍物在绝对碰撞范围以外的可能发生碰撞的范围,在该范围内所有点的代价值小于最大代价值。具体地,障碍物膨胀范围由膨胀模型确定,其中,膨胀模型为二阶高斯模型。根据二阶高斯模型性质可以理解的是,膨胀后该区域各点的代价值由中心向外递减,即:机器人与障碍物距离越远,则代价越小,机器人与障碍物距离越近,代价值越大。静态障碍物膨胀模型和动态障碍物膨胀模型分别为如下公式:
在障碍物模型中,项反映的是障碍物的速度的变化。在静态障碍物模型中,由于障碍物处于静止状态,不会发生位置变化,故σxσy=0,在动态障碍物模型中,由于动态障碍物处于运动状态,会发生位置变化,故σxσy≠0,其中,动态障碍物速度的变化包括速度方向和大小的变化,通过将该项进行调整,可以确定动态障碍物的障碍物模型的膨胀方向。例如,当动态障碍物向右行走,那么该动态障碍物膨胀模型向右膨胀,此时机器人会根据障碍物行走方向、速度大小对自身行走方向、速度大小做适应性调节,机器人可能会控制自己向左行走,也可能会控制自己保持原方向行走,具体地可根据机器人当前所在点预设范围内的具体环境而定。
实施例四
图6示出了本发明实施例四提供的一种基于障碍物分类的路径规划装置200,包括预设单元210、全局路径确定单元220、检测单元230、局部代价地图确定单元240、局部路径确定单元250。
预设单元210,用于设置预设区域内的先验地图、全局代价地图和机器人在所述预设区域内所要到达的目标点,所述预设区域为预先设置的可供机器人行走的区域,所述先验地图为用于显示坐落在该预设区域中的静态障碍物位置的地图;
全局路径确定单元220,用于根据机器人当前所在点、所述目标点及所述全局代价地图确定机器人的第一行走路径,并控制机器人按照所述第一行走路径行走;
检测单元230,用于检测机器人当前所在点预设范围内是否出现所述先验地图中不存在的障碍物;
局部代价地图确定单元240,用于若机器人当前所在点预设范围内出现了所述先验地图中不存在的障碍物,则检测障碍物的类型,根据障碍物的类型生成对应的局部代价地图;
局部路径确定单元250,用于结合第一行走路径和所述局部代价地图确定机器人行走的第二行走路径,并控制机器人按照所述第二行走路径行走。
需要说明的是,本发明实施例提出的一种基于障碍物分类的路径规划装置200与方法实施例二提出的一种基于障碍物分类的路径规划方法基于相同的发明构思,方法实施例与装置实施例中的相应技术内容可互相适用,此处不再详述。
本发明实施例的有益效果是:本发明实施例将障碍物分为动态障碍物和静态障碍物,不同的障碍物类型采用不同的模型生成代价地图从而影响对应的路径规划,使机器人对于不同类型的障碍物能采用合理的路径并使其具有预判性,提高机器人的避障效率和性能。
在本申请实施例中,局部代价地图确定单元包括:类型检测单元,用于若机器人当前所在点预设范围内出现了先验地图中不存在的障碍物,则检测障碍物的类型;局部代价地图生成单元,用于根据障碍物的类型生成对应的局部代价地图,具体的,包括:动态局部代价地图生成模块,用于若检测到的障碍物的类型包含动态障碍物类型,则生成动态局部代价地图,静态局部代价地图生成模块,用于若检测到的障碍物的类型均为静态障碍物类型,则生成静态局部代价地图。其中,动态局部代价地图生成模块包括:获取模块,用于获取机器人当前所在点的预设范围内的障碍物信息,障碍物信息包括静态障碍物信息和动态障碍物信息;模型构建模块,用于根据所述障碍物信息建立对应的障碍物模型,用于计算代价地图的代价值,包括根据静态障碍物信息建立静态障碍物模型,以及根据动态障碍物信息建立动态障碍物模型;代价地图构建模块,用于根据建立的障碍物模型建立动态局部代价地图,包括:绝对碰撞范围模块,用于确定机器人的绝对碰撞范围,其中,绝对碰撞范围为机器人与障碍物绝对会发生碰撞的范围,在该范围内所有点的代价值均为最大代价值;膨胀范围模块,用于确定障碍物的膨胀范围,其中,膨胀范围为机器人与障碍物在绝对碰撞范围以外的可能发生碰撞的范围,在该范围内所有点的代价值小于所述最大代价值,最后根据所述绝对碰撞范围和所述膨胀范围建立所述动态局部代价地图。
实施例五
图7是本发明实施例提供一种机器人的示意图。如图7所示,该实施例的机器人300包括:处理器310、存储器320以及存储在所述存储器320中并可在所述处理器310上运行的计算机程序321。所述处理器310执行所述计算机程序321时实现上述各个方法实施例中的步骤,例如图2所示的步骤21至25。或者,所述处理器310执行所述计算机程序321时实现上述各装置实施例中各模块/单元的功能,例如图6所示单元210至250的功能。
示例性的,所述计算机程序321可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器320中,并由所述处理器310执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序321在所述机器人300中的执行过程。
所述机器人300可包括,但不仅限于,处理器310、存储器320。本领域技术人员可以理解,图7仅仅是本发明机器人300的示例,并不构成对机器人300的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以机身、传感器部件等。
所称处理器310可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器320可以是所述机器人300的内部存储单元,例如机器人300的硬盘或内存。所述存储器320也可以是所述机器人300的外部存储设备,例如所述机器人300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器320还可以既包括所述机器人300的内部存储单元也包括外部存储设备。所述存储器320用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器320还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,本发明实施例提出的机器人实施例与装置实施例提出的一种基于障碍物分类的路径规划装置及方法实施例提出的一种基于障碍物分类的路径规划方法基于相同的发明构思,机器人实施例与方法实施例、装置实施例中的相应技术内容可互相适用,此处不再详述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。