掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及机器人技术领域,特别是涉及一种可移动设备脱困方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着可移动设备的发展,可移动设备的形态越来越多,比如机器人、扫地机、或者无人机等。可移动设备可以按照导航自动行走,以实现所配置的特定功能。

传统技术中,可移动设备在按照导航行走的过程中,在移动场景临时发生变化的情况下,可移动设备可能会被困在角落无法出来,影响了可移动设备的正常运行。

发明内容

基于此,有必要针对上述技术问题,提供一种能够实现脱困的可移动设备脱困方法、装置、计算机设备、存储介质和计算机程序产品。

第一方面,本申请提供了一种可移动设备脱困方法。方法包括:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

第二方面,本申请还提供了一种可移动设备脱困装置。装置包括:

生成模块,用于根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

筛选模块,用于对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

确定模块,用于基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

在一些实施例中,筛选模块具体用于:对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

在一些实施例中,虚拟设备为多边形,筛选模块具体用于:对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。

在一些实施例中,确定模块具体用于:对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。

在一些实施例中,确定模块具体用于:获取虚拟设备移动至候选脱困路径的最后一个轨迹点时与障碍物之间的目标距离;将目标距离与远离障碍物代价项对应的权重相乘,得到第一代价值。

在一些实施例中,确定模块具体用于:获取初始目标点的位姿;计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量;将偏移量和初始目标偏离代价项对应的权重相乘,得到第二代价值。

在一些实施例中,确定模块具体用于:获取生成候选脱困路径使用的目标行走速度;在目标行走速度大于预设值的情况下,将预设代价值作为第三代价值;在目标行走速度小于预设值的情况下,获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

第三方面,本申请还提供了一种可移动设备。可移动设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

上述可移动设备脱困方法、装置、计算机设备、存储介质和计算机程序产品,根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,可移动设备可按照该目标脱困路径进行移动,从而实现脱困,并继续完成所配置的功能任务,提升了可移动设备应对复杂场景的能力以及移动安全性。

附图说明

图1为一个实施例中可移动设备脱困方法的流程示意图;

图2为一个实施例中计算第一代价值的流程示意图;

图3为一个实施例中计算第二代价值的流程示意图;

图4为一个实施例中计算第三代价值的流程示意图;

图5为一个实施例中可移动设备脱困装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的可移动设备脱困方法可以应用于可移动设备,该可移动设备可以为机器人、扫地机、无人机等,可移动设备能够自动执行导航任务,示例性,基于可移动设备被配置的特定功能,可移动设备可以为清洁型移动设备、巡航型移动设备、排雷型移动设备、收割型移动设备等,本申请实施例对此不作限定。可移动设备按照导航移动的过程中,由于所在场景发生了变化,或者导航出现了错误等,可移动设备可能会被困在某个角落无法出来,导致可移动设备的移动受阻,无法继续执行相应的功能。

为此,本申请实施例提出一种脱困路径确定方法,在可移动设备确定被困的情况下,可根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径,对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径。最后,基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,可移动设备可按照该目标脱困路径移动,以实现脱困目的。下面对可移动设备脱困方法的具体过程进行详细介绍。

在一些实施例中,提供一种可移动设备脱困方法,该方法由可移动设备执行,参见图1所示,该方法具体包括如下步骤:

S102、根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径。

在一些实施例中,可基于可移动设备的行走速度候选集合、旋转角速度候选集合以及预设的行走时刻集合,采样得到多组运动参数。

其中,可移动设备可以为机器人、扫地机、无人机等,基于可移动设备被配置的特定功能,可移动设备可以为清洁型移动设备、巡航型移动设备、排雷型移动设备、收割型移动设备等,本申请实施例对此不作限定。

其中,在开发阶段,基于可移动设备所要适配的移动场景,开发人员可为可移动设备配置与移动场景适配的感知模型和运动模型。感知模型用于表征可移动设备的感知能力。运动模型用于表征可移动设备的旋转能力。

在一些实施例中,可根据可移动设备配置的感知模型,确定可移动设备所能达到的最大行走速度,根据可移动设备配置的运动模型,确定可移动设备所能达到的最大旋转角速度。可基于最大行走速度,确定行走速度候选集合,基于最大旋转角速度,确定旋转角速度候选集合。

在一些实施例中,可从行走速度候选集合随机选择一个行走速度,从旋转角速度候选集合中随机选择一个旋转角速度,该行走速度和该旋转角速度构成一个速度对,该速度对和预设的行走时刻集合可构成一组运动参数。多次执行上述随机选择的过程,可得到多个速度对,基于该多个速度对,可组成多组运动参数。

需要说明的是:任意两个速度对中行走速度和旋转角速度不能同时相同。也就是说,可以是行走速度和旋转角速度均不同,也可以是其中一个不同,本申请实施例对此不作限定。还需说明的是,本申请实施例中的行走速度也可称为线速度,本申请以行走速度为例进行说明,但此名称不构成对本申请实施例的限制。

在一些实施例中,可根据可移动设备的当前位姿和多组运动参数,生成多条移动路径。具体的,在得到多组运动参数的情况下,对于每组运动参数,可基于可移动设备的当前位姿和该组运动参数,确定相应的移动路径,对每组运动参数均执行上述操作,可得到多个移动路径。

在一些实施例中,对于每组运动参数,可根据可移动设备的当前位姿、该组运动参数中的行走速度、该组运动参数中的旋转角速度,确定预设的行走时刻集合中各个行走时刻对应的位姿,基于各个行走时刻对应的位姿,确定相应的移动路径。

S104、对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径。

在一些实施例中,对于多条移动路径中的每条移动路径,计算虚拟设备依次移动至该移动路径上的每个轨迹点时,虚拟设备和障碍物之间的距离,若虚拟设备和障碍物之间的距离是逐渐变大的,说明虚拟设备在逐渐远离障碍物,则将该移动路径保留,作为候选脱困路径。若虚拟设备和障碍物之间的距离不是逐渐变大,则将该移动路径删除。

在可选实施例中,通过在控制空间采样得到多条移动路径,随后利用控制空间中与可移动设备对应的虚拟设备来模拟这些移动路径。

下面举例说明:

假设S102确定的多条移动路径中某条移动路径包括5个轨迹点,可计算虚拟设备在初始轨迹点时与障碍物之间距离,在第2个轨迹点时与障碍物之间距离,在第3个轨迹点时与障碍物之间距离,在第4个轨迹点时与障碍物之间距离,在第5个轨迹点时与障碍物之间距离,若虚拟设备与障碍物之间的距离逐渐增大,则将该移动路径保留,若不是逐渐增大,则将该移动路径删除。

在一些实施例中,可通过可移动设备上自带的感知传感器获取可移动设备周围的实时障碍物信息,可基于实时障碍物信息生成实时感知地图,感知地图中的障碍物构成的障碍物集合可以使用obstacles={obstacle_0,obstacle_1,…,obstacle_i,……,obstacle_N}表示,obstacle_i在感知地图中的坐标为(x,y),由于可移动设备上感知传感器感知能力的局限,可能会将本不是障碍物的物体感知为障碍物,因此感知地图上的障碍物不一定真的是障碍物,可使用预设参数表征感知地图上障碍物的真实性,预设参数例如可以为cost,cost越大,表示对应障碍物的真实性越大。本步骤中提到的障碍物可以是感知地图上的任一障碍物,也可以是感知地图上的所有障碍物,也可以是感知地图上cost最大的障碍物,本申请实施例对此不作限定。

S106、基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

在一些实施例中,在得到多条候选脱困路径后,可计算每条候选脱困路径在预设代价项下的代价值,将代价值最小的候选脱困路径作为目标脱困路径,可移动设备可按照该目标脱困路径移动,从而实现脱困。

其中,预设代价项包括:远离障碍物代价项、初始目标偏离代价项、或者脱困倾向性代价项中的至少一种。

在一些实施例中,在得到多条候选脱困路径后,对于每条候选脱困路径,可计算该候选脱困路径在远离障碍物代价项下的代价值、在初始目标偏离代价项下的代价值、以及在脱困倾向性代价项下的代价值,可求取这三个代价值的权重和,将求和结果最小的候选脱困路径,作为目标脱困路径。

在一些实施例中,对于每条候选脱困路径,由于在S104中已经计算得到虚拟设备依次在该候选脱困路径上各轨迹点移动时,虚拟设备与障碍物之间的距离,可从中提取最后一个轨迹点对应的距离,将该距离和远离障碍物代价项对应的权重相乘,便可得到该候选脱困路径在远离障碍物代价项下的代价值。

在一些实施例中,对于每条候选脱困路径,可提取该候选脱困路径上最后一个轨迹点,求取该轨迹点和预先设定的目标点的距离,将该距离和初始目标偏离代价项对应的权重相乘,便可得到该候选脱困路径在初始目标偏离代价项下的代价值。

在一些实施例中,对于每条候选脱困路径,可获取S102中确定该候选脱困路径时所使用的行走速度。在该行走速度大于或者等于0的情况下,则确定该候选脱困路径在脱困倾向性代价项下的代价值为0。在该行走速度小于0的情况下,则取该行走速度的相反数,将该相反数和脱困倾向性代价项对应的权重相乘,便可得到该候选脱困路径在脱困倾向性代价项下的代价值。

上述实施例中,根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,可移动设备可按照该目标脱困路径进行移动,从而实现脱困,并继续完成所配置的功能任务,提升了可移动设备应对复杂场景的能力以及移动安全性。

在一些实施例中,基于可移动设备的行走速度候选集合、旋转角速度候选集合以及预设的行走时刻集合,采样得到多组运动参数的步骤,包括:每次从行走速度候选集合中提取一个行走速度,从旋转角速度候选集合中提取一个旋转角速度;基于提取到的行走速度、提取到的旋转角速度以及预设的行走时刻集合,生成一组运动参数;基于多次生成的运动参数,获得多组运动参数。

在一些实施例中,每个可移动设备均配置有对应的感知模型和运动模型,可根据感知模型,确定可移动设备所能达到的最大行走速度,根据运动模型,确定可移动设备所能达到的最大旋转角速度。可基于最大行走速度,确定行走速度候选集合,基于最大旋转角速度,确定旋转角速度候选集合。

在一些实施例中,在得到可移动设备所能达到的最大行走速度后,可将[0,最大行走速度]作为行走速度采样区间。可在该采样区间中采样得到n个行走速度,可将该n个行走速度组成的集合称为行走速度候选集合,该行走速度候选集合可用sample_v={v0,v1,…,vn}表示。

在一些实施例中,在得到可移动设备所能达到的最大旋转角速度后,可将[0,最大旋转角速度]作为旋转角速度的采样区间。可在该采样区间中采样得到n个旋转角速度,可将该n个旋转角速度组成的集合称为旋转角速度候选集合,该旋转角速度候选集合可用sample_w={w0,w1,…,wn}表示。

在一些实施例中,在开发阶段,开发人员可针对脱困路径确定这一功能设置行走时刻集合,可将该行走时刻集合作为本步骤中的预设的行走时刻集合。预设的行走时刻集合可用sample_t={t0,t1,…,tn}表示。t0表示距离当前时刻为t0的时刻,t1表示距离当前时刻为t1的时刻,以此类推,预设的行走时刻集合中相邻时刻间隔的时间相同,当前时刻可以为可移动设备确定被困的时刻。

在一些实施例中,可从行走速度候选集合提取一个行走速度,从旋转角速度候选集合中提取一个旋转角速度,该行走速度和该旋转角速度构成一个速度对,该速度对和预设的行走时刻集合可构成一组运动参数。示例性的,从行走速度候选集合随机选择的行走速度为vi,从旋转角速度候选集合中随机选择的旋转角速度为wj,(vi,wj,t0)、(vi,wj,t1)、(vi,wj,t2)、……、(vi,wj,tn)便可构成一组运动参数。多次执行上述提取过程,可得到多个速度对,基于每个速度对,可生成相应的运动参数。基于多次生成的运动参数,可得到多组运动参数。

需要说明的是,在可移动设备的感知模型指示可移动设备不存在后视传感器的情况下,说明可移动设备只能正向移动,即只能前进,这时最大行走速度包括最大正向行走速度,这时可将[0,最大正向行走速度]作为行走速度采样区间。在可移动设备的感知模型指示可移动设备存在后视传感器的情况下,说明可移动设备还能负向移动,即还能倒退,这时最大行走速度包括最大正向行走速度和最大负向行走速度,这时可将[最大负向行走速度,最大正向行走速度]作为行走速度采样区间,由于最大负向行走速度为负值,采样得到的行走速度可能为负值。

上述实施例中,每次从行走速度候选集合中提取一个行走速度,从旋转角速度候选集合中提取一个旋转角速度;基于提取到的行走速度、提取到的旋转角速度以及预设的行走时刻集合,生成一组运动参数;基于多次生成的运动参数,获得多组运动参数。得到的多组运动参数可用于后续移动路径的生成,为后续流程提供数据基础。

在一些实施例中,基于可移动设备的当前位姿和多组运动参数,生成多条移动路径的步骤,包括:对于每组运动参数,根据当前位姿、生成运动参数时使用的的行走速度以及旋转角速度,确定预设的行走时刻集合中各个行走时刻对应的位姿;基于各个行走时刻对应的位姿,确定相应的移动路径。基于多组运动参数各自对应的移动路径,得到多条移动路径。

在一些实施例中,对于每组运动参数,可通过下面的公式计算各个行走时刻对应的轨迹点的位姿:

x(t)=x(t-1)+v*t*cos(theta(t-1)+w*t/2.0)

y(t)=y(t-1)+v*t*sin(theta(t-1)+w*t/2.0)

theta(t)=theta(t-1)+w*t

其中,可将可移动设备的当前位姿(x(0),y(0),theta(0))作为初始轨迹点的位姿,v为该组运动参数中的行走速度,w为该组运动参数中的旋转角速度,t为预设的行走时刻集合中相邻时刻间隔的时间,可移动设备的当前位姿可以为可移动机器人确定被困的时候的位姿。

下面举例说明:

假设(v1,w1,t0)、(v1,w1,t1)、(v1,w1,t2)、(v1,w1,t3)、(v1,w1,t4)、(v1,w1,t5)为多组运动参数中的一组运动参数,t0和t1之间、t1和t2之间、t2和t3之间、t3和t4之间、t4和t5之间间隔的时间均为t,(v1,w1,t0)对应初始轨迹点,假设初始轨迹点的位姿为(x(0),y(0),theta(0))。则第2个轨迹点的位姿为:

x(1)=x(0)+v*t*cos(theta(0)+w*t/2.0),

y(1)=y(0)+v*t*sin(theta(0)+w*t/2.0),

theta(1)=theta(0)+w*t;

第3个轨迹点的位姿为:

x(2)=x(1)+v*t*cos(theta(1)+w*t/2.0),

y(2)=y(1)+v*t*sin(theta(1)+w*t/2.0),

theta(2)=theta(1)+w*t;

第4个轨迹点的位姿为:

x(3)=x(2)+v*t*cos(theta(2)+w*t/2.0),

y(3)=y(2)+v*t*sin(theta(2)+w*t/2.0),

theta(3)=theta(2)+w*t;

第5个轨迹点的位姿为:

x(4)=x(3)+v*t*cos(theta(3)+w*t/2.0),

y(4)=y(3)+v*t*sin(theta(3)+w*t/2.0),

theta(4)=theta(3)+w*t;

这5个轨迹点可构成一条行走路径。

上述实施例中,对于每组运动参数,根据当前位姿、生成运动参数时使用的行走速度以及旋转角速度,确定预设的行走时刻集合中各个行走时刻对应的位姿;基于各个行走时刻对应的位姿,确定相应的移动路径。基于多组运动参数各自对应的移动路径,得到多条移动路径。后续可从这些移动路径中确定脱困路径,使得可移动设备实现脱困。

在一些实施例中,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径的步骤,包括:对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

在一些实施例中,在可移动设备为多边形,其对应的虚拟设备为大小相同的多边形的情况下,虚拟设备移动至移动路径的每个轨迹点时,可通过如下方式计算虚拟设备与障碍物之间的距离:对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。

在一些实施例中,虚拟设备移动至每个轨迹点时,可计算障碍物到虚拟设备的外轮廓上最近点的距离,将该距离作为虚拟设备和障碍物之间的距离。

下面介绍如何计算障碍物到虚拟设备的外轮廓上最近点的距离:

假设虚拟设备的外轮廓的形状为多边形,外轮廓的每条边是由相邻的两个顶点构成的,将外轮廓中任意两个相邻顶点构成的边称为l,将构成l的两个顶点分别用ls(ls_x,ls_y)和le(le_x,le_y)表示,将障碍物用p(p_x,p_y)表示,首先通过如下公式计算l的截距:

然后,通过如下公式计算截距坐标点:

p到l的距离可以用p到vp的距离表示,即p到l的距离dis可通过如下公式计算:

需要说明的是,在通过上述公式计算得到dis后,还需判断p是否在虚拟设备的外轮廓的内部,若在内部,则确定p到l的距离为-dis,若在外部,则确定p到l的距离为dis。

通过上述公式可以得到障碍物到外轮廓每条边的距离,将障碍物到每条边的距离值进行比较,将其中的最小距离作为障碍物到虚拟设备的外轮廓上最近点的距离值。

需要说明的是:对于每条移动路径,计算虚拟设备移动至每个轨迹点时,虚拟设备和障碍物之间的距离,若虚拟设备和障碍物之间的距离是逐渐增大的,则进一步判断虚拟设备移动至的最后一个轨迹点是否在障碍物的覆盖范围,若不在,则将对应的移动路径作为候选脱困路径,对每条移动路径均做此处理,可以得到多条候选脱困路径。

上述实施例中,对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。可将多条移动路径中不满足脱困条件的移动路径删除,提升了脱困成功率。

在一些实施例中,预设代价项包括:远离障碍物代价项、初始目标偏离代价项、或者脱困倾向性代价项中的至少一种;基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径的步骤,包括:对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值之和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。

在一些实施例中,参见图2所示,计算候选脱困路径在远离障碍物代价项下的第一代价值的步骤可包括:

S201、对于每条候选脱困路径,可获取虚拟设备移动至候选脱困路径的最后一个轨迹点时与障碍物之间的目标距离。

S202、将目标距离与远离障碍物代价项对应的权重相乘,得到第一代价值。

其中,由于在S104中已经计算出虚拟设备在每条移动路径上各轨迹点移动时,虚拟设备与障碍物之间的距离,对于每条候选脱困路径,可直接从计算得到的距离中,提取该候选脱困路径上最后一个轨迹点对应的距离,该距离可使用obs_dis表示。

在一些实施例中,可预先设置远离障碍物代价项对应的权重,用w_obs_dis表示,可通过如下公式计算第一代价值:

cost_obs_dis=obs_dis*w_obs_dis

在一些实施例中,参见图3所示,计算候选脱困路径在初始目标偏离代价项下的第二代价值的步骤可包括:

S301、获取初始目标点的位姿。

S302、计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量。

S303、将偏移量和初始目标偏离代价项对应的权重相乘,得到第二代价值。

在一些实施例中,候选脱困路径上最后一个轨迹点的位姿可用(xN,yN,thetaN)表示,初始目标点的位姿可用(aim_x,aim_y,aim_theta)表示,可通过如下公式计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量:

在一些实施例中,可预先设置初始目标偏离代价项对应的权重,用w_aim_offest表示,可通过如下公式计算第二代价值:

cost_aim_offest=aim_offest*w_aim_offest

在一些实施例中,参见图4所示,计算候选脱困路径在脱困倾向性代价项下的第三代价值的步骤可包括:

S401、获取生成候选脱困路径使用的目标行走速度。

S402、在目标行走速度大于预设值的情况下,将预设代价值作为第三代价值。

S403、在目标行走速度小于预设值的情况下,获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

其中,预设值可以为0,在目标行走速度大于0的情况下,可将0作为第三代价值,在目标行走速度小于0的情况下,可获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

在一些实施例中,可预先设置脱困倾向性代价项对应的权重,用w_escape_dir表示,在目标行走速度小于0的情况下,目标行走速度的相反数用escape_dir表示,可通过如下公式计算第三代价值:

cost_escape_dir=escape_dir*w_escape_dir

对于每条候选脱困路径,在得到其第一代价值、第二代价值和第三代价值得情况下,可基于预先针对第一代价值、第二代价值和第三代价值设置的权重值,求取第一代价值、第二代价值和第三代价值的权重和,从而得到候选脱困路径的目标代价值。可将目标代价值最小的候选脱困路径作为目标脱困路径。

上述实施例中,对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。所选择的目标脱困路径是考虑了最终可远离障碍物的距离、脱困后可移动设备距离初始目标点得距离与朝向、脱困倾向性(倾向于前向脱困惩罚后退脱困)等维度下得到的结果,提升了可移动脱困成功率。

在一些实施例中,提供一种可移动设备脱困方法,以该方法有可移动设备执行为例进行说明,该方法包括:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径。

对可移动设备在每条移动路径上的移动过程进行仿真模拟,对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。得到各个轨迹点各自对应的距离后,在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。按照目标脱困路径移动。

上述实施例中,根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,可移动设备可按照该目标脱困路径进行移动,从而实现脱困,并继续完成所配置的功能任务,提升了可移动设备应对复杂场景的能力以及移动安全性。

应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的可移动设备脱困方法的可移动设备脱困装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个可移动设备脱困装置实施例中的具体限定可以参见上文中对于可移动设备脱困方法的限定,在此不再赘述。

在一个实施例中,如图5所示,提供了一种可移动设备脱困装置,包括:

生成模块501,用于根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

筛选模块502,用于对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

确定模块503,用于基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

在一些实施例中,筛选模块502具体用于:对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

在一些实施例中,虚拟设备为多边形,筛选模块502具体用于:对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。

在一些实施例中,确定模块503具体用于:对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。

在一些实施例中,确定模块503具体用于:获取虚拟设备移动至候选脱困路径的最后一个轨迹点时与障碍物之间的目标距离;将目标距离与远离障碍物代价项对应的权重相乘,得到第一代价值。

在一些实施例中,确定模块503具体用于:获取初始目标点的位姿;计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量;将偏移量和初始目标偏离代价项对应的权重相乘,得到第二代价值。

在一些实施例中,确定模块503具体用于:获取生成候选脱困路径使用的目标行走速度;在目标行走速度大于预设值的情况下,将预设代价值作为第三代价值;在目标行走速度小于预设值的情况下,获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

上述可移动设备脱困装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是可移动设备,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种可移动设备脱困方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种可移动设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取可移动设备移动至候选脱困路径的最后一个轨迹点时与障碍物之间的目标距离;将目标距离与远离障碍物代价项对应的权重相乘,得到第一代价值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取初始目标点的位姿;计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量;将偏移量和初始目标偏离代价项对应的权重相乘,得到第二代价值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取生成候选脱困路径使用的目标行走速度;在目标行走速度大于预设值的情况下,将预设代价值作为第三代价值;在目标行走速度小于预设值的情况下,获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取可移动设备移动至候选脱困路径的最后一个轨迹点时与障碍物之间的目标距离;将目标距离与远离障碍物代价项对应的权重相乘,得到第一代价值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取初始目标点的位姿;计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量;将偏移量和初始目标偏离代价项对应的权重相乘,得到第二代价值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取生成候选脱困路径使用的目标行走速度;在目标行走速度大于预设值的情况下,将预设代价值作为第三代价值;在目标行走速度小于预设值的情况下,获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

根据可移动设备的当前位姿和采样得到的多组运动参数,生成多条移动路径;

对可移动设备在每条移动路径上的移动过程进行仿真模拟,基于仿真模拟过程中可移动设备对应的虚拟设备在每条移动路径上移动时与障碍物之间距离的变化,从多条移动路径中筛选得到多条候选脱困路径;

基于每条候选脱困路径在预设代价项下的代价值,从多条候选脱困路径确定目标脱困路径,并按照目标脱困路径移动。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对于每条移动路径,在虚拟设备移动至移动路径的每个轨迹点时,计算虚拟设备与障碍物之间的距离,得到各个轨迹点各自对应的距离;在各个轨迹点各自对应的距离按照移动顺序逐渐增大,且虚拟设备移动至的最后一个轨迹点不在障碍物的覆盖范围内的情况下,将移动轨迹作为候选脱困路径。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对于虚拟设备的每条边,根据障碍物的坐标以及当前边的两个顶点的坐标,计算当前边的截距;根据截距以及当前边的两个顶点的坐标,确定截距坐标点;基于障碍物的坐标和截距坐标点,计算障碍物到当前边的距离;基于障碍物到虚拟设备的每条边的距离,确定虚拟设备与障碍物之间的距离。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对于每条候选脱困路径,计算候选脱困路径在远离障碍物代价项下的第一代价值;计算候选脱困路径在初始目标偏离代价项下的第二代价值;计算候选脱困路径在脱困倾向性代价项下的第三代价值;求取第一代价值、第二代价值和第三代价值的权重和,得到候选脱困路径的目标代价值;将目标代价值最小的候选脱困路径作为目标脱困路径。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取可移动设备移动至候选脱困路径的最后一个轨迹点时与障碍物之间的目标距离;将目标距离与远离障碍物代价项对应的权重相乘,得到第一代价值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取初始目标点的位姿;计算初始目标点的位姿与候选脱困路径上最后一个轨迹点的位姿之间的偏移量;将偏移量和初始目标偏离代价项对应的权重相乘,得到第二代价值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取生成候选脱困路径使用的目标行走速度;在目标行走速度大于预设值的情况下,将预设代价值作为第三代价值;在目标行走速度小于预设值的情况下,获取目标行走速度的相反数,将目标行走速度的相反数和脱困倾向性代价项对应的权重相乘,得到第三代价值。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 移动设备操作方法、装置、计算机设备及存储介质
  • 一种定位方法及装置、移动设备和计算机可读存储介质
  • 菜单显示方法、装置、移动设备以及计算机可读存储介质
  • 定位方法、装置、存储介质及移动设备
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 车辆脱困方法、装置、计算机设备、存储介质和程序产品
  • 扫地机器人的脱困方法、装置、计算机设备及存储介质
技术分类

06120116334925