1.本发明涉及移动机器人技术领域,更具体地涉及一种路径规划方法、装置、移动机器人及计算机存储介质。
背景技术:
2.自动引导车(automated guided vehicle,agv)、自主移动机器人(autonomous mobile robot,amr)、叉车等移动机器人是现代物流系统的关键设备之一,能够根据路径规划和作业要求,精确地行走并停靠到指定地点,完成物料搬运输送等任务。路径规划是移动机器人运行控制中的重要环节,决定了移动机器人的行进路线。
3.移动机器人的相对导航是指目标位姿或周围环境发生变化时,移动机器人需要根据变化后的目标位姿及周围环境,动态地调整运动轨迹以完成最终任务。目前的移动机器人的相对导航方案成功率较低。
技术实现要素:
4.在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
5.本发明实施例第一方面提供了一种路径规划方法,所述方法包括:
6.获取移动机器人的当前位姿和目标位姿;
7.根据所述当前位姿与所述目标位姿,得到多个点层,每个点层包括多个备选中间点;
8.对相邻的每两个点层中的备选中间点进行曲线拟合,并确定拟合得到的至少部分曲线片段的代价,其中每个曲线片段用于连接相邻的两个点层;
9.根据所述曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,得到从所述当前位姿到所述目标位姿的目标路径。
10.在一个实施例中,所述对相邻的每两个点层中的备选中间点进行曲线拟合,包括:分别以前一个点层中的每个备选中间点和后一个点层中的每个备选中间点作为首末端点进行曲线拟合,得到连接所述前一个点层和所述后一个点层的曲线片段。
11.在一个实施例中,所述曲线拟合包括根据所述备选中间点的位置、方向和曲率进行曲线拟合。
12.在一个实施例中,每个点层上的备选中间点的位置在该点层中均匀分布。
13.在一个实施例中,所述备选中间点的方向平行于所述目标位姿的方向。
14.在一个实施例中,确定每个曲线片段的代价包括:在每个曲线片段中选取多个离散点;分别计算每个离散点的代价;根据同一曲线片段上的多个离散点的代价得到该曲线片段的代价。
15.在一个实施例中,计算每个离散点的代价包括:根据每个离散点的曲率、该离散点
与中心线之间的距离以及该离散点与障碍物之间的距离计算该离散点的代价,所述中心线为当前位置与目标位置的连线。
16.在一个实施例中,根据每个离散点的曲率、该离散点与中心线之间的距离以及该离散点与障碍物之间的距离计算每个离散点的代价包括:对每个离散点的曲率、该离散点与所述中心线之间的距离以及该离散点与障碍物之间的距离进行加权求和,得到该离散点的代价。
17.在一个实施例中,所述确定拟合得到的至少部分所述曲线片段的代价包括:剔除与障碍物之间存在碰撞的曲线片段和/或超过预设曲率的曲线片段;确定剩余的每个曲线片段的代价。
18.在一个实施例中,所述根据所述曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,包括:按照从所述当前位姿到所述目标位姿的顺序,或者按照从所述目标位姿到所述当前位姿的顺序,依次在相邻的每两个点层之间选择目标曲线片段,其中,当确定前一个目标曲线片段之后,在与该前一个目标曲线片段相连的多个曲线片段中选择后一个目标曲线片段。
19.在一个实施例中,所述在与该前一个目标曲线片段相连的多个曲线片段中选择后一个目标曲线片段,包括:根据状态转移方程在该前一个目标曲线片段的后一个点层中的至少部分备选中间点中选择一代价最小的目标中间点,得到连接所述前一个目标曲线片段和所述目标中间点的所述后一个目标曲线片段,其中,所述状态转移方程是根据曲线片段的代价所构建的。
20.本发明实施例第二方面提供了一种路径规划装置,所述路径规划装置包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行如上所述的路径规划方法。
21.本发明实施例第三方面提供了一种移动机器人,包括移动机器人本体以及如上所述的路径规划装置。
22.本发明实施例第四方面提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序在运行时执行如上所述的路径规划方法。
23.本发明的路径规划方法、装置、移动机器人及计算机存储介质在当前位姿与目标位姿间采样多个点层,目标路径根据多个曲线片段得到,路径的形式更加丰富,相对于单段形式的路径规划,成功率和鲁棒性具有显著提高。
附图说明
24.通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
25.图1示出用于实现根据本发明实施例的路径规划方法的示例电子设备的示意性框图;
26.图2示出根据本发明一个实施例的路径规划方法的示意性流程图;
27.图3示出根据本发明一实施例的路径规划装置的示意性框图。
具体实施方式
28.为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
29.首先,参照图1来描述用于实现本发明实施例的路径规划方法的示例电子设备100。
30.如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104。可选地,在一些实施方式中,电子设备100还可以包括输入装置106、输出装置108,以及通信装置110。这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
31.处理器102可以是中央处理单元(cpu)、现场可编程门阵列(fpga)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
32.存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
33.输入装置106可以是用户用来输入指令的装置,并且可以包括按钮、键盘、鼠标、麦克风和触摸屏等中的一个或多个。
34.输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括发光装置、显示器、扬声器等中的一个或多个。
35.通信装置110用于经由网络接收或者发送数据,所述网络具体可以包括无线网络,例如wifi、2g、3g、4g、5g或其组合。通信装置还可以包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。当电子设备100实现为移动机器人的控制器时,通信装置110主要负责移动机器人与控制系统的数据交互,例如接收控制系统的调度指令,以及将移动机器人的状态信息反馈给控制系统等。
36.需要注意的是,图1所示的电子设备100的组件和结构只是示例性的,尽管图1示出的电子设备100包括多个不同的装置,但是根据需要,其中的一些装置可以不是必须的,其中的一些装置的数量可以更多等等,本发明对此不限定。
37.下面,参考图2描述根据本发明实施例的路径规划方法200。该路径方法200可以用于移动机器人,或者用于移动机器人的控制系统。
38.如图2所示,路径规划方法200可以包括如下步骤:
39.在步骤s210,获取移动机器人的当前位姿和目标位姿;
40.在步骤s220,根据所述当前位姿与所述目标位姿,得到多个点层,每个点层包括多个备选中间点;
41.在步骤s230,对相邻的每两个点层中的备选中间点进行曲线拟合,并确定拟合得到的至少部分曲线片段的代价,其中每个曲线片段用于连接相邻的两个点层;
42.在步骤s240,根据所述曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,得到从所述当前位姿到所述目标位姿的目标路径。
43.本发明实施例的路径规划方法200用于为移动机器人进行路径规划,该移动机器人可以应用于制造、仓储配送、物流运输等领域,具体可以实现为采用非预定路径引导方式的移动机器人。以往的移动机器人一般基于纯控制的pid或基于贝塞尔曲线进行重规划。纯控制的pid是指在移动机器人部分进入托盘底后,以底盘中心线为目标进行反馈控制。该方案没有考虑移动机器人与障碍物之间的距离,存在发生碰撞的风险,只适用于当前位姿与目标位姿非常接近的情形,无法处理复杂的环境,鲁棒性不高。基于贝塞尔曲线的重规划是指根据小车当前位姿与运动状态,结合目标状态,以贝塞尔曲线进行两点拟合规划出新的末段路径。该方案的问题在于没有考虑障碍物信息,且两点拟合出的路径参数过少,形式过于简单,因此难以解决需要绕障的场景;对于终点位姿变化较大的情况,此方法的成功率较低。相比而言,本发明实施例的路径规划方法200在当前位姿与目标位姿间采样多个点层,在每相邻点层之间拟合曲线片段,目标路径根据多个曲线片段拼接得到,路径的形式更加丰富,拐点更多,相对于单段形式的路径规划,成功率和鲁棒性均具有显著提高。
44.基于控制器进行路径规划可以实现在移动机器人运行的过程中实时进行路径规划。本发明实施例的路径规划方法200可以是在移动机器人运行过程中实时发起的重规划,用于实现移动机器人的相对导航。当移动机器人在运行过程中目标位姿或周围环境发生变化时,则可以采用本发明实施例的路径规划方法200,根据变化后的目标位姿和周围环境实时重规划路径,动态地调整移动机器人的运动轨迹以完成最终任务。例如,当移动机器人接收到控制系统发送的新的目标位姿时,或当移动机器人的原有路径失效时,都可以触发本申请的路径规划方法200,实时规划新的目标路线。其中,路径失效的原因可以包括移动机器人发生碰撞,或移动机器人检测到障碍物等。
45.触发路径规划以后,首先执行步骤s210,获取移动机器人的当前位姿和目标位姿,其中当前位姿包括当前位置和当前姿态,目标位姿包括目标位置和目标姿态。
46.示例性地,目标位姿可以由控制系统下发至移动机器人。具体地,控制系统可以下发任务消息至移动机器人,例如,该任务可以是通知移动机器人将待运输的物品从一个起始位置运输到终点位置。在一些示例中,当移动机器人处于任务的起始位置时,可以将任务的终点位置的位姿作为路径规划的目标位姿。当移动机器人不在任务的起始位置时,则可以将任务的起始位置的位姿作为目标位姿,以使得移动机器人从当前位置运行至该任务的起始位置以获取待运输的物品。
47.当前位姿可以由移动机器人实时获取。示例性地,不同类型的移动机器人可以采用不同方式获取当前位姿,例如基于激光扫描、惯性导航、图像识别等。基于激光模块确定当前位姿是指在移动机器人行驶区域周围的预定位置处安装激光反射板,移动机器人的激光模块通过激光扫描器发射激光束,同时采集由反射板反射的激光束,由此确定其当前位
姿。基于惯性测量单元确定当前位姿是指在移动机器人上安装陀螺仪,在行驶区域的地面上安装定位块,移动机器人通过对陀螺仪偏差信号与行走距离编码器的综合计算,以及地面定位块信号的比较校正来确定当前位姿。基于图像识别确定当前位姿是指移动机器人利用摄像头实时采集行驶路径周围环境的图像信息,并与已建立的运行路径周围环境图像库中的信息进行比较来确定当前位姿。移动机器人还可以采用基于二维码的图像识别方法,即利用摄像头扫描地面二维码,通过扫码定位技术确定当前位姿。在本实施例中,还可以采用各种可行的方式确定当前位姿,本发明实施例对确定当前位姿的具体方式不做限定。
48.在获取移动机器人的当前位姿和目标位姿之后,执行步骤s220,根据当前位姿与目标位姿得到多个点层,每个点层包括多个备选中间点。
49.示例性地,可以在当前位姿与目标位姿之间进行采样,以得到间隔排列的多个点层。其中,可以在当前位置到目标位置的连线方向上进行采样,以得到间隔排列的多个点层,点层的长度方向可以垂直于当前点与目标点的连线方向。每个点层是指一个期望移动机器人通过的区域,是若干个备选中间点的集合,同一个点层内的备选中间点在一块连续空间内的均匀分布。换句话说,每个点层表示移动机器人期望通过的一块区域,每个点层上每个备选中间点表示该区域中的一个位置。可选地,点层可以是沿中心线方向间隔排列的狭长的矩形区域,当然,点层也可以具有其他形状,例如椭圆形等。示例性地,不同点层的形状和大小可以相同,或者,不同点层的形状和大小可以不同。
50.点层按照离目标位置的距离由远到近有序排列,即每个点层都有唯一确定的前驱点层和后继点层,且不同的点层所占据的空间不相交,移动机器人需要按照顺序依次经过每个点层。
51.示例性地,点层的个数取决于期望经过的中间点的个数,或者说取决于当前位置与目标位置之间的距离。距离越远,则点层的个数越多,距离越近,则点层的个数越少。类似地,相邻点层之间的间距也可以取决于当前位置与目标位置之间的距离,例如,距离越远则间距越大,距离越近则间距越小。
52.在步骤s230,对相邻的每两个点层中的备选中间点进行曲线拟合,并确定拟合得到的至少部分曲线片段的代价,其中每个曲线片段用于连接相邻的两个点层。
53.如上所述,在当前位置与目标位置之间的采样区域内,点层以距离目标位置由远到近的顺序排列,最终确定的目标路径需要遵循点层的空间排列关系,即依次经过每个点层中的一个备选中间点,不能跳过某个点层,也不能打乱经过点层的顺序,因此需要从相邻的点层之间选取中间点拟合曲线片段。
54.例如,若在当前位置与目标位置之间采样了k个点层,则对第一个点层与第二个点层中的备选中间点进行曲线拟合,得到第一个点层与第二个点层之间的多个曲线片段;对第二个点层与第三个点层中的备选中间点进行曲线拟合,得到第二个点层与第三个点层之间的多个曲线片段,以此类推,直到在k个点层中每相邻两个点层之间均拟合得到多个曲线片段。由于每个点层内只能有一个备选中间点被最终选中,以作为目标路径上的目标中间点,因此同一个点层内部的备选中间点之间不互相拟合。
55.进一步地,拟合曲线片段需要循环遍历相邻两个所述点层中的所有备选中间点,分别以前一个点层中的每个备选中间点和后一个点层中的每个备选中间点作为首末端点拟合曲线片段。也就是说,在相邻的每两个点层之间,将前一个点层中的备选中间点与后一
点层中的备选中间点一一组合配对,以任意两个备选中间点作为首末端点来拟合曲线片段,前一个点层中任意一个备选中间点与后一个点层中的每个备选中间点均拟合得到一个曲线片段,同理,后一个点层中任意一个备选中间点与前一个点层中的每个备选中间点也均拟合得到一个曲线片段。例如,若第一个点层中备选中间点的个数为m,第二个点层中备选中间点的个数为n,则在第一个点层与第二个点层之间共拟合得到m*n个曲线片段。
56.其中,每个备选中间点的信息至少包括其位置和方向,根据位置和方向可以拟合得到两点间的曲线。进一步地,每个备选中间点的信息还可以包括曲率,以进一步丰富曲线拟合的参数。将上述备选中间点的信息作为曲线拟合的边界条件来解算曲线参数,即可以得到以备选中间点作为首末端点的曲线片段。示例性地,可采取的曲线形式包括但不限于样条曲线、多项式曲线、贝塞尔曲线等。
57.在一个实施例中,在拟合得到曲线片段之后,还可以剔除与障碍物之间发生碰撞的曲线片段,由此能最大程度上保证移动机器人沿目标路径运行的安全性。
58.示例性地,可以采用如下方式判断曲线片段是否与障碍物之间发生碰撞:判断移动机器人按曲线片段运行时,移动机器人轮廓上的每个点是否出现在障碍物内部。若移动机器人轮廓上的任意一个点出现在障碍物内部,则确定曲线片段与障碍物之间发生碰撞,为保证移动机器人的运行安全,将该曲线片段剔除。
59.示例性地,可以通过向量积方向判断移动机器人轮廓上的每个点是否存在于障碍物内部,具体地,确定包围障碍物的凸多边形,对于移动机器人轮廓上的p,获取其与凸多边形的每个顶点之间的向量;按照逆时针或顺时针方向取相邻向量进行叉乘,若任意两个向量之间的夹角大于180
°
,则说明点p存在于多边形内部。以此为依据可以检测曲线片段上每一个离散的移动机器人位姿是否与障碍物碰撞,并将与障碍物碰撞的曲线片段剔除。
60.作为另一例,剔除的曲线片段可以是超过预设曲率的曲线片段。其中,超过预设曲率的曲线片段可以是最大曲率超过预设曲率的曲线片段,或者可以是平均曲率超过预设曲率的曲线片段。剔除曲率超标的曲线片段可以保证移动机器人运行的平稳性。
61.示例性地,对于在每相邻两个点层之间拟合出的部分或全部曲线片段,计算每个曲线片段的代价。其中,部分曲线片段可以是如上所述剔除了与障碍物之间存在碰撞的曲线片段和/或超过预设曲率的曲线片段之后剩余的曲线片段。曲线片段的代价用于衡量曲线片段的优劣,最终将根据代价来选择曲线片段进行拼接,从而得到总代价最低的最佳的目标路径。
62.考虑到移动机器人的运行情况,曲线片段的优劣体现在对障碍物的避让、曲线的平滑程度、偏离最短路径的距离等方面,因此,在一个实施例中,代价的计算共包含三项:平均曲率、与中心线之间的平均偏差、与障碍物的平均距离,其中,中心线为当前位置与目标位置之间的连线。
63.在一个实施例中,对于每个曲线片段,其代价的计算方式包括:在该曲线片段中选取多个离散点;分别计算每个离散点的代价;根据同一曲线片段上的多个离散点的代价得到该曲线片段的代价。
64.其中,计算每个离散点的代价包括:根据每个离散点的曲率、该离散点与中心线之间的距离以及该离散点与障碍物之间的距离计算该离散点的代价。具体地,对于每个离散点来说,可以对该离散点的曲率、该离散点与中心线之间的距离以及该离散点与障碍物之
间的距离进行加权求和,得到该离散点的代价。最后,可以以每个曲线片段上所有离散点的平均代价作为该曲线片段的整体代价。
65.在一个实施例中,曲线片段的代价可以采用节点链表的方式进行存储,以便于后续进行动态规划。
66.通过执行步骤s230可以获得至少部分曲线片段的代价。之后,在步骤s240,根据曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,得到从当前位姿到目标位姿的目标路径。其中,可以对目标曲线片段进行拼接,得到目标路径。由于目标路径的总代价等于各个曲线片段的代价之和,根据曲线片段的代价即可寻找到总代价最低的目标路径。由于该拼接过程是一个无后效性的马氏过程,即与移动机器人此前的状态无关,因此可采取动态规划求解,根据贝尔曼最优性原理进行规划,从而减少计算量。
67.具体地,动态规划是一种多阶段决策最优解模型,其采用自下而上的递推方式来得出每个子问题的最优解,进而得出依赖子问题的原问题的最优解。也就是说,原问题可以拆分成多个子问题进行求解最优解,在自下而上的递推过程中,由于所求得的每个子问题是全局最优解,因而依赖于子问题的原问题也是全局最优解。
68.在本发明实施例中,原问题即求得目标路径,子问题即求得相邻点层中的最优曲线片段。由于子问题之间存在一定联系,即当前点层与下一个点层之间的最优曲线片段依赖于当前点层与上一个点层之间的曲线片段,因而需要在曲线片段之间建立迭代递推公式,即状态转移方程,根据状态转移方程自下而上地求解,避免由于子问题之间存在重叠而导致重复计算,采用自下而上的求解方式可以消除重叠子问题,减少计算量。
69.自下而上的求解方式即从最底层不能继续分解的子问题开始,根据状态方程逐渐求其上层的问题、再上层的问题,最终求得原问题的最优解。在本发明实施例中,即按照从当前位姿到目标位姿的顺序,或者按照从目标位姿到当前位姿的顺序,依次在相邻的每两个点层之间选择目标曲线片段。其中,当确定前一个目标曲线片段之后,在与该前一个目标曲线片段相连的多个曲线片段中选择后一个目标曲线片段。
70.示例性地,为了在与该前一个目标曲线片段相连的多个曲线片段中选择最优的后一个目标曲线片段,可以根据状态转移方程在前一个目标曲线片段的后一个点层中的至少部分备选中间点中选择一代价最小的目标中间点,以得到连接该前一个目标曲线片段和目标中间点的后一个目标曲线片段。如上所述,对于每个子问题的状态可以根据状态转移方程求解,即每个子问题的状态是上一阶段状态和上一阶段决策的结果,因此,只要定义三个变量,自下而上不断循环迭代即可得到最终结果,即总代价最低的目标路径。
71.本发明一个实施例中,状态转移方程是根据曲线片段的代价所构建的。具体地,可以按照点层的顺序建立状态转移方程,根据曲线片段的代价依次求解每个点层中代价最低的备选中间点,以作为目标中间点,根据目标中间点得到目标曲线片段,目标路径为连接所有目标曲线片段所构成的路径。状态转移方程可建模为:r(p)=min{r(p’) r(p,p’)},其中,p为当前点(即当前备选中间点),p’为p点的所有后继点(即后继备选中间点)的集合,r(p)、r(p’)、r(p,p’)分别代表p点的代价、p’点的代价、以及由p和p’所拟合的曲线片段的代价。由当前p点到后继p’点的代价称为单步代价,p’点本身的代价称为后继代价。该状态转移方程的物理含义是:当前点的代价等于其所有后继点代价与当前点到后继点之间的曲线片段的代价之和的最小值。
72.通过以上状态转移方程按照点层顺序递推求解,即可求解出每个点层中具有最小代价的备选中间点,以作为目标中间点,目标中间点与上一目标曲线片段的末端的连线则为连接当前点层与上一点层的目标曲线片段,目标路径为连接所有目标曲线片段所构成的路径,也即连接所有目标中间点所得到的路径。在求解过程中,可以沿目标位置到当前位置的方向递推求解,也可以沿从当前位置到目标位置的方向递推求解,本发明实施例对此不做限制。
73.基于以上描述即可规划得到最终的目标路径。在运行速度上,由于采用了动态规划,避免了大面积的重复冗余计算,能在较短时间内输出最优的路径规划结果。
74.本发明实施例在在当前位姿与目标位姿之间进行多点层采样,并在点层之间拟合得到曲线片段,最终的目标路径根据多个曲线片段得到,其路径的形式更加丰富,拐点更多,相对于贝塞尔曲线的单段路径规划形式,大大提高了成功率和鲁棒性。
75.本发明实施例另一方面还提供一种路径规划装置,图3示出了根据本发明实施例的路径规划装置300的示意性框图。路径规划装置300包括存储装置310以及处理器320。其中,所述存储装置310用于存储程序代码;所述处理器320用于执行所述程序代码,当所述程序代码执行时,用于实现上文所述的路径规划方法。本发明实施例的路径规划装置300可以实现为移动机器人的控制器,从而可以在移动机器人运行的过程中实时进行路径重规划。所述路径规划装置300还可以用于控制移动机器人沿规划好的目标路径从当前位姿运行到目标位姿。
76.所述存储装置310为用于存储处理器可执行指令的存储器,例如用于存储用于实现根据本发明实施例的路径规划方法200中的相应步骤的处理器可执行的程序指令。存储装置310可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。
77.处理器320可以运行存储装置310存储的所述程序指令,以实现本文所述的本发明实施例中(由处理器实现)的功能以及/或者其它期望的功能,例如以执行根据本发明实施例的路径规划方法200的相应步骤。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
78.所述处理器320可以是中央处理单元(cpu)、图像处理单元(gpu)、专用集成电路(asic)、现场可编程门阵列(fpga)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制路径规划装置300中的其它组件以执行期望的功能。所述处理器能够执行所述存储装置310中存储的所述指令,以执行本文描述的路径规划方法。例如,处理器320能够包括一个或多个嵌入式处理器、处理器核心、微型处理器、逻辑电路、硬件有限状态机(fsm)、数字信号处理器(dsp)或它们的组合。
79.在一个实施例中,存储装置310存储的程序指令被处理器320运行时使得路径规划装置300执行以下步骤:获取移动机器人的当前位姿和目标位姿;根据当前位姿与目标位姿,得到多个点层,每个点层包括多个备选中间点;对相邻的每两个点层中的备选中间点进行曲线拟合,并确定拟合得到的至少部分曲线片段的代价,其中每个曲线片段用于连接相邻的两个点层;根据曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,得到从
当前位姿到目标位姿的目标路径。
80.在一个实施例中,所述对相邻的每两个点层中的备选中间点进行曲线拟合,包括:分别以前一个点层中的每个备选中间点和后一个点层中的每个备选中间点作为首末端点进行曲线拟合,以得到连接所述前一个点层和所述后一个点层的曲线片段。
81.在一个实施例中,所述曲线拟合包括根据所述备选中间点的位置、方向和曲率进行曲线拟合。
82.在一个实施例中,每个点层上的备选中间点的位置在该点层中均匀分布。
83.在一个实施例中,所述备选中间点的方向平行于所述目标位姿的方向。
84.在一个实施例中,确定每个曲线片段的代价包括:在每个曲线片段中选取多个离散点;分别计算每个离散点的代价;根据同一曲线片段上的多个离散点的代价得到该曲线片段的代价。
85.在一个实施例中,计算每个离散点的代价包括:根据每个离散点的曲率、该离散点与中心线之间的距离以及该离散点与障碍物之间的距离计算该离散点的代价,所述中心线为当前位置与目标位置的连线。
86.在一个实施例中,计算每个离散点的代价包括:对每个离散点的曲率、该离散点与所述中心线之间的距离以及该离散点与障碍物之间的距离进行加权求和,得到该离散点的代价。
87.在一个实施例中,所述确定至少部分所述曲线片段的代价包括:剔除与障碍物之间存在碰撞的曲线片段和/或超过预设曲率的曲线片段;确定剩余的每个曲线片段的代价。
88.在一个实施例中,所述根据所述曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,包括:按照从所述当前位姿到所述目标位姿的顺序,或者按照从所述目标位姿到所述当前位姿的顺序,依次在相邻的每两个点层之间选择目标曲线片段,其中,当确定前一个目标曲线片段之后,在与该前一个目标曲线片段相连的多个曲线片段中选择后一个目标曲线片段。
89.在一个实施例中,所述在与该前一个目标曲线片段相连的多个曲线片段中选择后一个目标曲线片段,包括:根据状态转移方程在该前一个目标曲线片段的后一个点层中的至少部分备选中间点中选择一代价最小的目标中间点,以得到连接所述前一个目标曲线片段和所述目标中间点的所述后一个目标曲线片段,其中,所述状态转移方程是根据曲线片段的代价所构建的。
90.本发明实施例还提供一种移动机器人,包括移动机器人本体和路径规划装置300,路径规划装置300用于为移动机器人实现路径规划。示例性地,移动机器人本体包括机械系统和动力系统,机械系统包括车体、车轮、转向装置、移载装置、安全装置等;动力系统包括行走电机、移栽电机、电池组件和充电装置等。以上结构仅作为示例,移动机器人本体可以省略其中的部分结构;移动机器人本体还可以包括其他结构。路径规划装置300可以实现为移动机器人的控制器,其除了能够实现移动机器人的路径规划以外,路径规划装置还可以用于控制移动机器人本体根据规划好的目标路径从当前位姿运行至目标位姿。
91.此外,根据本发明实施例,还提供了一种计算机存储介质,在所述计算机存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的移动机器人的路径规划方法200的相应步骤,其具体细节可以参见上文。所述计算机存储介质
例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd
‑
rom)、usb存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
92.本发明的路径规划方法、装置、移动机器人及计算机存储介质在当前位姿与目标位姿间采样多个点层,目标路径根据多个曲线片段得到,路径的形式更加丰富,拐点更多,相对于单段形式的路径规划,成功率和鲁棒性具有显著提高。
93.尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
94.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
95.在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
96.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
97.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
98.本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
99.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
100.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行
的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者其他合适的处理器来实现根据本发明实施例的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
101.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
102.以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种路径规划方法,其特征在于,所述方法包括:获取移动机器人的当前位姿和目标位姿;根据所述当前位姿与所述目标位姿,得到多个点层,每个点层包括多个备选中间点;对相邻的每两个点层中的备选中间点进行曲线拟合,并确定拟合得到的至少部分曲线片段的代价,其中每个曲线片段用于连接相邻的两个点层;根据所述曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,得到从所述当前位姿到所述目标位姿的目标路径。2.根据权利要求1所述的路径规划方法,其特征在于,所述对相邻的每两个点层中的备选中间点进行曲线拟合,包括:分别以前一个点层中的每个备选中间点和后一个点层中的每个备选中间点作为首末端点进行曲线拟合,得到连接所述前一个点层和所述后一个点层的曲线片段。3.根据权利要求1或2所述的路径规划方法,其特征在于,所述曲线拟合包括根据所述备选中间点的位置、方向和曲率进行曲线拟合。4.根据权利要求3所述的路径规划方法,其特征在于,每个点层中的备选中间点的位置在该点层中均匀分布。5.根据权利要求3所述的路径规划方法,其特征在于,所述备选中间点的方向平行于所述目标位姿的方向。6.根据权利要求1
‑
5中任一项所述的路径规划方法,其特征在于,确定每个曲线片段的代价包括:在每个曲线片段中选取多个离散点;分别计算每个离散点的代价;根据同一曲线片段上的多个离散点的代价得到该曲线片段的代价。7.根据权利要求6所述的路径规划方法,其特征在于,计算每个离散点的代价包括:根据每个离散点的曲率、该离散点与中心线之间的距离以及该离散点与障碍物之间的距离计算该离散点的代价,所述中心线为当前位置与目标位置的连线。8.根据权利要求7所述的路径规划方法,其特征在于,根据每个离散点的曲率、该离散点与中心线之间的距离以及该离散点与障碍物之间的距离计算每个离散点的代价包括:对每个离散点的曲率、该离散点与所述中心线之间的距离以及该离散点与障碍物之间的距离进行加权求和,得到该离散点的代价。9.根据权利要求1
‑
8中任一项所述的路径规划方法,其特征在于,所述确定拟合得到的至少部分曲线片段的代价包括:剔除与障碍物之间存在碰撞的曲线片段和/或超过预设曲率的曲线片段;确定剩余的每个曲线片段的代价。10.根据权利要求1或9所述的路径规划方法,其特征在于,所述根据所述曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,包括:按照从所述当前位姿到所述目标位姿的顺序,或者按照从所述目标位姿到所述当前位姿的顺序,依次在相邻的每两个点层之间选择目标曲线片段,其中,当确定前一个目标曲线片段之后,在与该前一个目标曲线片段相连的多个曲线片段中选择后一个目标曲线片段。11.根据权利要求10所述的路径规划方法,其特征在于,所述在与该前一个目标曲线片
段相连的多个曲线片段中选择后一个目标曲线片段,包括:根据状态转移方程在该前一个目标曲线片段的后一个点层中的至少部分备选中间点中选择一代价最小的目标中间点,得到连接所述前一个目标曲线片段和所述目标中间点的所述后一个目标曲线片段,其中,所述状态转移方程是根据曲线片段的代价所构建的。12.一种路径规划装置,其特征在于,所述路径规划装置包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1
‑
11中任一项所述的路径规划方法。13.一种移动机器人,其特征在于,包括移动机器人本体以及如权利要求12所述的路径规划装置。14.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序在运行时执行如权利要求1
‑
11中的任一项所述的路径规划方法。
技术总结
一种路径规划方法、装置、移动机器人及计算机存储介质,该方法包括:获取移动机器人的当前位姿和目标位姿;根据当前位姿与目标位姿,得到多个点层,每个点层包括多个备选中间点;对相邻的每两个点层中的备选中间点进行曲线拟合,并确定拟合得到的至少部分曲线片段的代价,其中每个曲线片段用于连接相邻的两个点层;根据曲线片段的代价在相邻的每两个点层之间选择目标曲线片段,得到从当前位姿到目标位姿的目标路径。该方法中目标路径根据多个曲线片段得到,相对于单段形式的路径规划,成功率和鲁棒性具有显著提高。和鲁棒性具有显著提高。和鲁棒性具有显著提高。
技术研发人员:关傲
受保护的技术使用者:北京旷视机器人技术有限公司
技术研发日:2021.03.02
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-3084.html