一种机器人避障方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种机器人避障方法和装置。
背景技术
实现移动机器人自主导航的基本要求是避障。避障是指移动机器人根据采集的障碍物的状态信息,在行走过程中通过传感器感知到妨碍其通行的静态物体和动态物体时,使用避障算法进行有效地避障,最后到达目标位置。现有技术中,通常使用的避障算法有可视图法、人工势场法、向量场直方图法(Vector Field Histogram,VFH)等。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的避障算法将移动机器人当作质点,不考虑移动机器人的整体轮廓和形状,使用避障算法进行局部路径规划所得出的路径在真实世界中可能很靠近障碍物,机器人沿该路径移动时会导致移动机器人会与障碍物发生碰撞而无法通行。
发明内容
有鉴于此,本发明实施例提供一种机器人避障方法和装置,通过对障碍物进行膨胀处理后,过滤模拟轨迹集中经过障碍物或膨胀区的运动轨迹,进而结合评价函数确定目标轨迹,避免机器人与障碍物发生碰撞,同时降低了参与评价的运动轨迹的数量,降低了确定目标轨迹的耗时。
为实现上述目的,根据本发明实施例的一个方面,提供了一种机器人避障方法。
本发明实施例的一种机器人避障方法,包括:根据机器人的运动限制条件,在速度空间中采样多组速度,以模拟所述机器人在所述多组速度下的运动轨迹,得到模拟轨迹集;其中,所述多组速度包括所述机器人在多个时刻的速度;对环境地图中的障碍物进行膨胀处理,从所述模拟轨迹集中过滤经过所述障碍物或膨胀区的运动轨迹,得到优化轨迹集;其中,所述膨胀区为所述障碍物在所述环境地图的像素点边沿与膨胀边沿所围成的区域;采用评价函数对所述优化轨迹集的运动轨迹分别进行评价,以根据评价结果从所述优化轨迹集中确定目标轨迹,使用所述目标轨迹对应的速度驱动所述机器人移动。
可选地,所述对环境地图中的障碍物进行膨胀处理,包括:按照设定的膨胀距离,将环境地图中所述障碍物所在的像素点向外扩张;其中,所述膨胀距离大于等于允许所述机器人通行的最小宽度所对应的所述环境地图的宽度的1/2。
可选地,所述采用评价函数对所述优化轨迹集的运动轨迹分别进行评价的步骤之前,还包括:在过滤后的模拟轨迹集为空的情况下,将经过警戒区的运动轨迹添加到所述优化轨迹集;其中,所述警戒区是将所述膨胀区去除所述障碍物的最小膨胀区后得到的。
可选地,所述评价函数由下列任意一个或者多个评价因子加权求和得到:方位角评价因子:用于表示所述机器人在当前速度下达到对应的运动轨迹末端时,与目标位置之间的角度;第一距离评价因子:用于表示所述机器人在当前运动轨迹上与障碍物之间的最近距离;速度评价因子:用于表示所述当前运动轨迹所对应的速度大小;第二距离评价因子:用于表示所述机器人在模拟周期内的移动距离;第三距离评价因子:用于表示所述机器人在所述当前速度下达到对应的运动轨迹末端时,与所述目标位置之间的距离;第四距离评价因子:用于表示机器人在所述当前速度下达到对应的运动轨迹末端时,与全局路径规划对应的最优路径的最短距离。
可选地,采样得到的所述速度满足以下条件:所述速度归属于所述机器人的最大最小速度区间;所述速度归属于所述机器人在设定时间间隔内实际达到的速度区间;以及所述速度小于等于所述机器人在当前运动轨迹下与所述障碍物的最近距离的2倍与最大减速度乘积的平方根。其中,速度区间包括最小速度和最大速度。
可选地,所述方法还包括:确定机器人坐标系下所述机器人在设定时间间隔内的移动距离;将所述移动距离投影到世界坐标系下,得到所述机器人在所述世界坐标系下的位移;将设定时间段内的位移累计求和,以为所述机器人构建轨迹运动模型;所述模拟所述机器人在所述多组速度下的运动轨迹,包括:将所述多组速度输入所述轨迹运动模型,得到所述机器人的多条运动轨迹。
为实现上述目的,根据本发明实施例的另一方面,提供了一种机器人避障装置。
本发明实施例的一种机器人避障装置,包括:轨迹模拟模块,用于根据机器人的运动限制条件,在速度空间中采样多组速度,以模拟所述机器人在所述多组速度下的运动轨迹,得到模拟轨迹集;其中,所述多组速度包括所述机器人在多个时刻的速度;膨胀过滤模块,用于对环境地图中的障碍物进行膨胀处理,从所述模拟轨迹集中过滤经过所述障碍物或膨胀区的运动轨迹,得到优化轨迹集;其中,所述膨胀区为所述障碍物在所述环境地图的像素点边沿与膨胀边沿所围成的区域;评价确定模块,用于采用评价函数对所述优化轨迹集的运动轨迹分别进行评价,以根据评价结果从所述优化轨迹集中确定目标轨迹,使用所述目标轨迹对应的速度驱动所述机器人移动。
可选地,所述膨胀过滤模块,还用于:按照设定的膨胀距离,将环境地图中所述障碍物所在的像素点向外扩张;其中,所述膨胀距离大于等于允许所述机器人通行的最小宽度所对应的所述环境地图的宽度的1/2。
可选地,所述装置还包括:添加模块,用于在过滤后的模拟轨迹集为空的情况下,将经过警戒区的运动轨迹添加到所述优化轨迹集;其中,所述警戒区是将所述膨胀区去除所述障碍物的最小膨胀区后得到的。
可选地,所述评价函数由下列任意一个或者多个评价因子加权求和得到:方位角评价因子:用于表示所述机器人在当前速度下达到对应的运动轨迹末端时,与目标位置之间的角度;第一距离评价因子:用于表示所述机器人在当前运动轨迹上与障碍物之间的最近距离;速度评价因子:用于表示所述当前运动轨迹所对应的速度大小;第二距离评价因子:用于表示所述机器人在模拟周期内的移动距离;第三距离评价因子:用于表示所述机器人在所述当前速度下达到对应的运动轨迹末端时,与所述目标位置之间的距离;第四距离评价因子:用于表示机器人在所述当前速度下达到对应的运动轨迹末端时,与全局路径规划对应的最优路径的最短距离。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种机器人避障方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种机器人避障方法。
上述发明中的一个实施例具有如下优点或有益效果:通过对障碍物进行膨胀处理后,过滤模拟轨迹集中经过障碍物或膨胀区的运动轨迹,进而结合评价函数确定目标轨迹,避免机器人与障碍物发生碰撞,同时降低了参与评价的运动轨迹的数量,降低了确定目标轨迹的耗时;基于机器人的外形尺寸确定膨胀距离,保证过滤后的运动轨迹避开障碍物;在过滤后的模拟轨迹集为空的情况下,开放经过警戒区的运动轨迹,提高机器人避障过程中在狭窄环境中的稳定性;综合考虑影响机器人移动的多个性能指标,使机器人在避开障碍物,并朝着目标位置以较快速度运动的同时,提升了机器人运动方向的稳定性、运动的平滑性,并减少了机器人到达终点的时间,且受传感器的影响较小。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的机器人避障方法的主要步骤的示意图;
图2是本发明实施例的机器人定位导航原理示意图;
图3是根据本发明实施例的机器人避障方法的主要流程示意图;
图4是本发明实施例中机器人坐标系和世界坐标系的转换原理示意图;
图5是本发明实施例的机器人防碰撞原理示意图;
图6是本发明实施例中安全区、警戒区和障碍区划分示意图;
图7是本发明实施例的机器人沿运动轨迹行驶时,与目标位置之间的角度示意图;
图8是根据本发明实施例的机器人避障装置的主要模块的示意图;
图9是本发明实施例可以应用于其中的示例性***架构图;
图10是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的机器人避障方法的主要步骤的示意图。如图1所示,本发明实施例的机器人避障方法,主要包括如下步骤:
步骤S101:根据机器人的运动限制条件,在速度空间中采样多组速度,以模拟所述机器人在所述多组速度下的运动轨迹,得到模拟轨迹集;其中,所述多组速度包括所述机器人在多个时刻的速度。机器人的运动限制条件包括机器人自身的最大最小速度限制、机器人在设定时间间隔内能够达到的实际最大最小速度限制、以及防碰撞限制。在满足上述运动限制条件的前提下,对速度空间多次进行随机采样,或者按照设定间隔进行多次采样,得到多组速度。将多组速度输入预先构建的轨迹运动模型,以模拟出机器人的多条运动轨迹,模拟出的运动轨迹即构成模拟轨迹集。
步骤S102:对环境地图中的障碍物进行膨胀处理,从所述模拟轨迹集中过滤经过所述障碍物或膨胀区的运动轨迹,得到优化轨迹集;其中,所述膨胀区为所述障碍物在所述环境地图的像素点边沿与膨胀边沿所围成的区域。将机器人预先构建出的环境地图中的障碍物进行膨胀处理,即按照设定的膨胀距离,将环境地图中障碍物所在的像素点向外扩张。若机器人沿着经过障碍物或膨胀区的运动轨迹移动,很大可能会与障碍物发生碰撞,故需从模拟轨迹集中过滤经过障碍物或膨胀区的运动轨迹,得到优化轨迹集。
步骤S103:采用评价函数对所述优化轨迹集的运动轨迹分别进行评价,以根据评价结果从所述优化轨迹集中确定目标轨迹,使用所述目标轨迹对应的速度驱动所述机器人移动。预先确定至少一个评价因子,将评价因子加权求和即可得到评价函数。使用评价函数计算优化轨迹集中多个运动轨迹的评价值,以基于该评价值从优化轨迹集中确定最优的运动轨迹,该最优的运动轨迹即目标轨迹,将该目标轨迹对应的速度通过控制指令发送至机器人,以驱动机器人按照该速度向目标位置移动,并且同时可避免与障碍物发生碰撞。
图2是本发明实施例的机器人定位导航原理示意图。如图2所示,首先,机器人利用自身携带的传感器感知周围环境,以进行自身定位,并构建环境地图。之后结合感知得到的环境信息(包括障碍物的尺寸、形状、位置等信息)和定位得到的位置信息认知机器人周围的环境(即确定机器人在哪里以及周围的环境)后,进行运动控制;其中,运动控制包括行为认知(即机器人是全向运动,还是只能前进、旋转)、避障行为、位置反馈(该位置为机器人移动后的位置)和路径规划(包括全局路径规划和局部路径规划)。之后根据位置反馈重新进行环境感知,循环上述过程就可以获知机器人的当前位置、机器人的目标位置、如何移动到目标位置、以及在移动过程中的临时避障,至此机器人实现了自主移动。
图3是根据本发明实施例的机器人避障方法的主要流程示意图。如图3所示,本发明实施例的机器人避障方法,主要包括如下步骤:
步骤S301:为机器人构建轨迹运动模型。假设机器人的运动轨迹是一段一段的圆弧或者直线(机器人的角速度为0时),则一对(vt,ωt)就可以代表一个圆弧轨迹,其中,vt为机器人在t时刻的线速度,ωt为机器人在t时刻的角速度。
假设机器人只能前进和旋转,不能纵向移动,如图4所示,实施例中将两个相邻时刻之间的运动轨迹看作直线,则机器人(即图4中的圆圈)沿xrobot轴的移动距离为vt×Δt,其中,Δt为时间间隔。将该移动距离投影到世界坐标系的x轴和y轴上,即可得到t+1时刻相对于t时刻机器人在世界坐标系中移动的位移Δx和Δy,具体可以用下式表示:
式中,v为机器人在t时刻沿xrobot轴方向的线速度,θt为xrobot轴与x轴的夹角。
以此类推,将一段时间内的位移累计求和,即可得到机器人在一段时间内的运动轨迹(x,y,θ),具体可以用下式表示:
如果机器人是全向运动的,即在机器人坐标系下,机器人在xrobot轴和yrobot轴都有速度,则还需将机器人在yrobot轴的移动距离投影到世界坐标系,具体可以用下式表示:
式中,vy为机器人在t时刻沿yrobot轴方向的线速度。
此时机器人在一段时间内的运动轨迹,则需在公式2的基础上叠加yrobot轴的移动距离,具体可以用下式表示:
机器人的轨迹运动模型即可用公式4表示,根据该轨迹运动模型即可以模拟出机器人的运动轨迹。
步骤S302:根据机器人的运动限制条件,在速度空间中采样多组速度。由轨迹运动模型可知,模拟机器人的运动轨迹需要采样多组速度,后续对得到的各运动轨迹进行评分,即可获得最优运动轨迹。在速度(v,ω)的二维空间中存在无穷多组速度,实施例中可以按照设定间隔或者随机进行多次采样,每次采样得到同一时刻的多个速度,将这些速度作为一组,经多次采样得到多组速度,多组速度构成一个速度集Vm。比如线速度v的取值范围为[0m/s,1.5m/s],按照0.2m/s的间隔采样,则采样得到的速度为[0.2m/s,0.4m/s,0.6m/s,0.8m/s,1.0m/s,1.2m/s,1.4m/s]。
在一可选的实施例中,速度集Vm中的速度(v,ω)需要满足如下运动限制条件:
(1)机器人自身的最大最小速度限制:机器人的速度受自身最大最小速度的限制,即需大于等于自身允许的最小速度,且小于等于自身允许的最大速度,具体可以用下式表示:
Vm={v∈[vmin,vmax],ω∈[ωmin,ωmax]} 公式5
式中,vmin、vmax分别为机器人自身允许的最小线速度和最大线速度,ωmin和ωmax分别为机器人自身允许的最小角速度和最大角速度。
(2)机器人在设定时间间隔内能够达到的实际最大最小速度限制:由于机器人的电机力矩有限,存在最大的加减速限制,因此机器人的运动轨迹前向模拟周期内存在一个动态窗口,在该动态窗口内的速度是机器人能够实际达到的速度。即机器人的速度需大于等于时间间隔内机器人能够实际达到的最小速度,且小于等于该时间间隔内机器人能够实际达到的最大速度,具体可以用下式表示:
式中,v
c和ω
c分别是机器人的当前线速度和当前角速度,
和
分别是机器人的线速度对应的最大减速度和最大加速度,
和
分别是机器人的角速度对应的最大减速度和最大加速度,∧代表与运算。
(3)防碰撞限制:基于机器人安全的考虑,机器人需要在碰到障碍物之前停下来,因此在最大减速度的条件下,机器人的速度应满足下式:
式中,dist(v,ω)为速度(v,ω)对应运动轨迹上,机器人与障碍物的最近距离,Va是能够让机器人在碰撞到障碍物之前停下来的速度的集合。图5是本发明实施例的机器人防碰撞原理示意图。如图5所示,运动轨迹与障碍物相交的点为碰撞点,机器人内部的黑色实线为机器人的运动方向。为了保证机器人在碰到障碍物之前停下来,机器人的速度需满足公式7。
需要注意的是,公式7对应的条件并不是采样一开始就能得到的,而是需要在模拟出机器人的运动轨迹后,计算机器人沿该运动轨迹移动时与障碍物之间的距离,判断该运动轨迹对应的速度能否在碰撞到障碍物之前停下来,如果能够停下来,则保留该对速度;如果不能停下来,则丢弃该对速度。
步骤S303:将多组速度输入轨迹运动模型,得到机器人的多条运动轨迹,将多条运动轨迹添加到模拟轨迹集。
步骤S304:对环境地图中的障碍物进行膨胀处理,从模拟轨迹集中过滤经过障碍物或膨胀区的运动轨迹。现有技术进行避障时,把机器人当作一个质点,即不考虑机器人的整体轮廓和形状,直接由评价函数从模拟轨迹集中确定出最优运动轨迹。但是该方式确定出的最优运动轨迹可能会由于比较靠近障碍物,导致真实环境中机器人无法通行(即会与障碍物发生碰撞)或者通行较为危险(即很可能会与障碍物发生碰撞)。因此,本申请中对环境地图中的障碍物进行了膨胀处理,在对机器人进行局部路径规划时,丢弃经过障碍物或膨胀区的运动轨迹,以极大的避开障碍物,降低后续参与评价的运动轨迹的数量,提高路径规划的速度。其中,膨胀区为障碍物在环境地图的像素点边沿与膨胀边沿所围成的区域。
实施例中,对障碍物进行膨胀处理的具体实现为:按照设定的膨胀距离,将环境地图中障碍物所在的像素点向外扩张。假设两个障碍物之间存在可通行像素点,则当该可通行像素点对应的真实世界的尺寸大于等于允许机器人通行的最小宽度时,机器人才可以从这两个障碍物之间通过。故膨胀距离需大于等于允许机器人通行的最小宽度所对应的环境地图的宽度的1/2。另外,环境地图在计算机中是一个2维的像素数组,比如一个像素表示真实世界中的10cm,那么100×100像素就可以表示10×10m的工作环境。像素的值可以是0和1,用来表示有障碍物和没有障碍物。
下面对膨胀距离进行举例说明。比如,假设机器人为圆柱形,直径为D1,则允许机器人通行的最小宽度即为D1,该最小宽度D1对应在环境地图的宽度为m1,则膨胀距离S≥m1/2。再比如,机器人为立方体,最小边长为D2,则允许机器人通行的最小宽度即为D2,该最小宽度D2对应在环境地图的宽度为m2,则膨胀距离S≥m2/2。再比如,机器人为不规则形状,则根据机器人的轮廓和形状确定允许机器人通行的最小宽度,以及该最小宽度对应在环境地图的宽度,膨胀距离S大于等于该宽度的一半。
步骤S305:判断过滤后的模拟轨迹集是否为空,如果为空,则执行步骤S306;如果不为空,则执行步骤S307。通过步骤S304的过滤处理后,虽然可以极大的避开障碍物,但是对于需要通过狭窄路径的情景,比如室内环境,膨胀区可能会堵塞通路,直接滤除含有膨胀区的运动轨迹反而会导致机器人找不到可行的运动轨迹,造成路径规划失败。因此,实施例中设定了三种机器人进行路径规划时可能遇到的区域:安全区、警戒区和障碍区,并对经过三种区域的运动轨迹分别进行处理。
下面对上述三种区域分别进行说明:安全区:与障碍物和膨胀区均不相交的区域;警戒区:将膨胀区去除障碍物的最小膨胀区后形成的区域;障碍区:障碍物本身和最小膨胀区组成的区域。其中,最小膨胀区通过以下方式得到:以允许机器人通行的最小宽度所对应的环境地图的宽度的1/2为膨胀距离,对障碍物进行膨胀处理后所得到的膨胀区即最小膨胀区。
图6是本发明实施例中安全区、警戒区和障碍区划分示意图。如图6所示,圆圈为机器人,黑色实心方框为障碍物。假设机器人的半径对应环境地图的宽度为2cm,障碍物在环境地图的像素为2×2cm,则最小膨胀区对应的膨胀距离为2cm,以2cm为膨胀距离从障碍物的像素点边沿向外扩张,即可得到最小膨胀区。实施例中,以5cm为膨胀距离从障碍物的像素点边沿向外扩张,得到膨胀区。
步骤S306:将经过警戒区的运动轨迹添加到优化轨迹集,执行步骤S308。如果过滤后的模拟轨迹集为空,说明安全区内没有可行的运动轨迹,此时可以将经过警戒区的运动轨迹添加到优化轨迹集,后续通过对该优化轨迹集中的运动轨迹进行评价,实现局部路径规划,提高机器人避障过程中在狭窄环境中的稳定性。
在一优选的实施例中,还可以降低机器人的最大移动速度,比如降低为原来的一半,以使机器人低速通过警戒区,提高机器人避障过程中在狭窄环境中的安全性。
步骤S307:将过滤后的模拟轨迹集作为优化轨迹集,执行步骤S308。如果过滤后的模拟轨迹集不为空,说明安全区内存在可行的运动轨迹,直接将过滤后的模拟轨迹集作为优化轨迹集,后续通过对该优化轨迹集中的运动轨迹进行评价,实现局部路径规划。
步骤S308:采用评价函数对优化轨迹集的运动轨迹分别进行评价。综合考虑待评价运动轨迹(即优化轨迹集中的多个运动轨迹)的方向性、机器人运动的平滑性、到达目标位置的快速性等性能指标,构建评价函数。评价函数由一个或者多个评价因子加权求和得到,评价因子可以包括方位角评价因子、第一距离评价因子、速度评价因子和第二至第四距离评价因子。实施例中,评价函数G(v,ω)可以用下式表示:
式中,σ、α、β、γ、μ、η、ρ均为相应评价因子的权重,且为常数;方位角评价因子heading(v,ω),用于表示机器人在当前速度下达到对应的运动轨迹末端时,与目标位置之间的角度;第一距离评价因子dist(v,ω),用于表示机器人在当前运动轨迹上与障碍物之间的最近距离;速度评价因子velocity(v,ω),用于表示当前运动轨迹所对应的速度大小;第二距离评价因子Obs(v,ω),用于表示机器人在模拟周期内的移动距离;第三距离评价因子Gdist(v,ω),用于表示机器人在当前速度下达到对应的运动轨迹末端时,与目标位置之间的距离;第四距离评价因子Pdist(v,ω),用于表示机器人在当前速度下达到对应的运动轨迹末端时,与全局路径规划对应的最优路径的最短距离。其中,全局路径规划所采用的算法可以是A Star(A*)算法、D Star(D*)算法等。
机器人在当前速度下达到对应的运动轨迹末端时,与目标位置之间的角度
越小,heading(v,ω)的评价得分越高。dist(v,ω)越大,其评价得分越高。在一优选的实施例中,如果当前运动轨迹上没有障碍物,则可以将dist(v,ω)设置为常数,比如取经验值8m。velocity(v,ω)越大,其评价得分越高。Obs(v,ω)代表运动快慢,其值越大,评价得分越高。Gdist(v,ω)能够保证机器人朝着目标位置前进,其值越小,评价得分越高。Pdist(v,ω)能够保证机器人沿着全局路径规划出的最优路径前进,增加运动轨迹的平滑性,其值越小,评价得分越高。
实施例中,各评价因子的权重取值根据实际应用场景确定,比如室外宽敞环境下,机器人的安全性较为重要,则可以设定heading(v,ω)、Gdist(v,ω)的权重值较大;在室内狭窄环境下,机器人的速度较为重要,则可以设定Obs(v,ω)、velocity(v,ω)等的权重值较大。在室内狭窄环境下,实施例中将上述权重对应设置为1.0、0.1、0.2、0.2、0.3、0.1、0.2。
在一优选的实施例中,计算出上述五个评价因子后先进行归一化处理后,再计算评价函数的值,可以使得运动轨迹更加平滑。以dist(v,ω)为例,归一化过程如下式所示:
式中,normal_dist(i)为第i个待评价运动轨迹中机器人与障碍物的最近距离的归一化结果,dist(i)为第i个待评价运动轨迹上机器人与障碍物的最近距离,n为待评价运动轨迹的数量。
图7是本发明实施例的机器人沿运动轨迹行驶时,与目标位置之间的角度示意图。如图7所示,机器人沿当前运动轨迹由当前实际位置移动至预测位置时,机器人的中心点与目标位置的连线与机器人的运动方向构成夹角
公式8的评价函数中,前三个评价因子heading(v,ω)、dist(v,ω)、velocity(v,ω)保证在局部导航过程中,机器人避开障碍物,朝着目标位置以较快速度运动;后三个评价因子Obs(v,ω)、Gdist(v,ω)、Pdist(v,ω)提升了机器人运动方向的稳定性、运动的平滑性,并减少了机器人到达终点的时间。
步骤S309:将最优评价值的运动轨迹作为目标轨迹,使用该目标轨迹对应的速度驱动机器人移动。由于公式8中,有些评价因子在取值小时评价得分高,有些评价因子在取值大时评价得分高,故可以调整各评价因子的权重正负,以将评价因子统一为取值大或者取值小时,评价得分高。实施例中,将评价因子统一为取值小时,评价得分高,则评价函数的评价值最低时,对应的运动轨迹为最优的轨迹,将该轨迹作为目标轨迹,机器人沿该目标轨迹移动就可以在避开障碍物的同时,朝着目标位置、快速、稳定、平滑的移动。
实施例中,若最低评价值对应的运动轨迹为最优的轨迹,则还可以通过下式来确定最低评价值对应的速度,以驱动机器人按照该速度移动:
式中,V*是最低评价值的待评价运动轨迹对应的(v,ω),Vr为所有待评价运动轨迹对应的(v,ω)。
上述实现过程中,对模拟轨迹集中的运动轨迹,首先滤除经过障碍区或警戒区的运动轨迹,如果此时存在剩余运动轨迹,则取评价函数值最低的运动轨迹进行局部路径规划;如果此时没有剩余运动轨迹,则加入警戒区的运动轨迹,同时降低机器人的移动速度,再取评价函数值最低的运动轨迹进行局部路径规划;如果不存在经过警戒区的运动轨迹,则机器人无法通过。
通过本发明实施例的机器人避障方法可以看出,通过对障碍物进行膨胀处理后,过滤模拟轨迹集中经过障碍物或膨胀区的运动轨迹,进而结合评价函数确定目标轨迹,避免机器人与障碍物发生碰撞,同时降低了参与评价的运动轨迹的数量,降低了确定目标轨迹的耗时;基于机器人的外形尺寸确定膨胀距离,保证过滤后的运动轨迹避开障碍物。
图8是根据本发明实施例的机器人避障装置的主要模块的示意图。如图8所示,本发明实施例的机器人避障装置800,主要包括:
轨迹模拟模块801,用于根据机器人的运动限制条件,在速度空间中采样多组速度,以模拟所述机器人在所述多组速度下的运动轨迹,得到模拟轨迹集;其中,所述多组速度包括所述机器人在多个时刻的速度。机器人的运动限制条件包括机器人自身的最大最小速度限制、机器人在设定时间间隔内能够达到的实际最大最小速度限制、以及防碰撞限制。在满足上述运动限制条件的前提下,对速度空间多次进行随机采样,或者按照设定间隔进行多次采样,得到多组速度。将多组速度输入预先构建的轨迹运动模型,以模拟出机器人的多条运动轨迹,模拟出的运动轨迹即构成模拟轨迹集。
膨胀过滤模块802,用于对环境地图中的障碍物进行膨胀处理,从所述模拟轨迹集中过滤经过所述障碍物或膨胀区的运动轨迹,得到优化轨迹集;其中,所述膨胀区为所述障碍物在所述环境地图的像素点边沿与膨胀边沿所围成的区域。将机器人预先构建出的环境地图中的障碍物进行膨胀处理,即按照设定的膨胀距离,将环境地图中障碍物所在的像素点向外扩张。若机器人沿着经过障碍物或膨胀区的运动轨迹移动,很大可能会与障碍物发生碰撞,故需从模拟轨迹集中过滤经过障碍物或膨胀区的运动轨迹,得到优化轨迹集。
评价确定模块803,用于采用评价函数对所述优化轨迹集的运动轨迹分别进行评价,以根据评价结果从所述优化轨迹集中确定目标轨迹,使用所述目标轨迹对应的速度驱动所述机器人移动。预先确定至少一个评价因子,将评价因子加权求和即可得到评价函数。使用评价函数计算优化轨迹集中多个运动轨迹的评价值,以基于该评价值从优化轨迹集中确定最优的运动轨迹,该最优的运动轨迹即目标轨迹,将该目标轨迹对应的速度通过控制指令发送至机器人,以驱动机器人按照该速度向目标位置移动,并且同时可避免与障碍物发生碰撞。
另外,本发明实施例的机器人避障装置800还可以包括:添加模块和构建模块(图8中未示出)。其中,添加模块,用于在过滤后的模拟轨迹集为空的情况下,将经过警戒区的运动轨迹添加到所述优化轨迹集;其中,所述警戒区是将所述膨胀区去除所述障碍物的最小膨胀区后得到的。构建模块,用于确定机器人坐标系下所述机器人在设定时间间隔内的移动距离;将所述移动距离投影到世界坐标系下,得到所述机器人在所述世界坐标系下的位移;以及将设定时间段内的位移累计求和,以为所述机器人构建轨迹运动模型。
从以上描述可以看出,通过对障碍物进行膨胀处理后,过滤模拟轨迹集中经过障碍物或膨胀区的运动轨迹,进而结合评价函数确定目标轨迹,避免机器人与障碍物发生碰撞,同时降低了参与评价的运动轨迹的数量,降低了确定目标轨迹的耗时;基于机器人的外形尺寸确定膨胀距离,保证过滤后的运动轨迹避开障碍物。
图9示出了可以应用本发明实施例的机器人避障方法或机器人避障装置的示例性***架构900。
如图9所示,***架构900可以包括终端设备901、902、903,网络904和服务器905。网络904用以在终端设备901、902、903和服务器905之间提供通信链路的介质。网络904可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备901、902、903可以为需要提供避障功能的可移动设备,实施例中可以为扫地机器人、送餐机器人、导航运输车等。
服务器905可以是提供各种服务的服务器,例如对终端设备901、902、903所产生的数据提供支持的后台管理服务器。后台管理服务器可以对接收到的地图数据、运动轨迹等进行存储。
需要说明的是,本申请实施例所提供的机器人避障方法一般由终端设备901、902、903执行,相应地,机器人避障装置一般设置于终端设备901、902、903中。
应该理解,图9中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的机器人避障方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的机器人避障方法。
下面参考图10,其示出了适用于来实现本发明实施例的电子设备的计算机***1000的结构示意图。图10示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机***1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有***1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括轨迹模拟模块、膨胀过滤模块和评价确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,轨迹模拟模块还可以被描述为“根据机器人的运动限制条件,在速度空间中采样多组速度,以模拟所述机器人在所述多组速度下的运动轨迹,得到模拟轨迹集的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据机器人的运动限制条件,在速度空间中采样多组速度,以模拟所述机器人在所述多组速度下的运动轨迹,得到模拟轨迹集;其中,所述多组速度包括所述机器人在多个时刻的速度;对环境地图中的障碍物进行膨胀处理,从所述模拟轨迹集中过滤经过所述障碍物或膨胀区的运动轨迹,得到优化轨迹集;其中,所述膨胀区为所述障碍物在所述环境地图的像素点边沿与膨胀边沿所围成的区域;采用评价函数对所述优化轨迹集的运动轨迹分别进行评价,以根据评价结果从所述优化轨迹集中确定目标轨迹,使用所述目标轨迹对应的速度驱动所述机器人移动。
从以上描述可以看出,通过对障碍物进行膨胀处理后,过滤模拟轨迹集中经过障碍物或膨胀区的运动轨迹,进而结合评价函数确定目标轨迹,避免机器人与障碍物发生碰撞,同时降低了参与评价的运动轨迹的数量,降低了确定目标轨迹的耗时。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。