用于使机器人优化速度同时保持对加速度和加加速度的限制的运动规划的制作方法

文档序号:30012383发布日期:2022-05-11 21:20阅读:3570来源:国知局
用于使机器人优化速度同时保持对加速度和加加速度的限制的运动规划的制作方法

1.本公开总体上涉及可用于机器人的运动规划,并且具体地涉及能够在保持对加速度和加加速度(jerk)的限制的同时优化机器人或其部分的速度的方面提高计算效率的系统和方法。


背景技术:

2.相关技术
3.运动规划是机器人控制和机器人学中的基础问题。运动规划指定了机器人从起始状态到目标状态能够遵循的路径,通常为了在不与操作环境中的任何障碍物发生碰撞的情况下,或者在减少与操作环境中的任何障碍物发生碰撞的可能性的情况下完成任务。运动规划面临的挑战涉及即使环境特征变化也能够以非常快的速度执行运动规划。例如,环境中一个或更多个障碍物的位置或方向等特征可能会随着时间而改变。挑战还包括使用成本相对低的设备、以相对低的能耗和有限的存储量(例如,存储器电路(如处理器芯片电路))来执行运动规划。


技术实现要素:

4.机器人或其部分通常沿路径或轨迹,从起始姿态或构型运动到结束姿态或构型,在其间具有一个或更多个中间姿态或构型。机器人学中的一个问题是在保持对加速度的限制同时使机器人或其部分沿路径的速度最大化,并最小化由运动引起的机器人或其部分的任何抖动。这可以作为优化问题提出,即在不违反任何约束的情况下优化沿几何路径的速度。此上下文中的约束包括对速度、加速度和加加速度(即加速度对时间的导数)的约束。
5.在观察对加加速度的限制(即加加速度限制(jerk limit))的同时优化速度通常是计算上的难题。传统方法采用非线性优化方法。这些非线性优化方法通常求解缓慢,并且容易陷入非最优局部最小值,从而导致错误的解。
6.在不违反对加速度和加加速度的约束的情况下,优化机器人或其部分的速度的更快、更低计算强度和更鲁棒的技术在商业上是可取的。
7.方面1:一种在基于处理器的系统中控制机器人的运动的操作的方法,所述基于处理器的系统包括至少一个处理器,所述方法包括:
8.对于沿几何路径从s1到至少s
n-1
的多个航路点si中的每一个,存在针对每个航路点si的对应的机器人构型qi,在将加速度限制应用于由航路点si的相邻航路点之间的转换表示的运动的同时线性确定沿路径的最大速度的估计;
9.在将加速度限制应用于由航路点si的相邻航路点之间的转换表示的运动的同时线性确定沿路径的最大速度的估计之后,对于沿几何路径从s1到至少s
n-1
的多个航路点si中的每一个,在将加加速度限制应用于由航路点si的相邻航路点之间的转换表示的运动的同时线性确定沿路径的最大速度的估计;以及
10.对于沿几何路径从至少s2到sn的航路点si中的每一个,基于所确定的最大速度的估计中的相应的估计来确定将到达相应的航路点的相应的时间。
11.方面2:根据方面1所述的方法,其中,在将加速度限制应用于由航路点si的相邻航路点之间的转换表示的运动的同时线性确定沿路径的最大速度的估计包括:
12.对于从至少s
n-1
到s1(后向)连续的航路点si,确定由每个相应的航路点si处的加速度限制界定的相应的可行速度范围;以及
13.在确定由每个的相应航路点si处的加速度限制界定的相应的可行速度范围之后,然后,对于从s1到s
n-1
(前向)连续的航路点si,选择至少近似地最大化从s1到至少s
n-1
的连续航路点si之间的每个转换的速度绝对值或速度平方的相应的加速度值,使得相应的加速度值在对应的加速度限制内并且对应的速度在相应的可行速度范围内。
14.方面3:根据方面2所述的方法,其中,对于从至少s
n-1
到s1(后向)连续的航路点si,确定由每个相应的航路点si处的加速度限制界定的相应的可行速度范围包括:确定在航路点sn处的速度为等于零。
15.方面4:根据方面1至3中任一项所述的方法,其中,在将加加速度限制应用于由航路点si的相邻航路点之间的转换表示的运动的同时线性确定沿路径的最大速度的估计包括:
16.对于从s
n-1
到s1连续的航路点si,确定相应的可行速度范围和相应的可行加速度范围,范围中的每个由每个相应的航路点si处的加加速度限制的界定;以及
17.在确定由每个相应的航路点si处的加加速度限制界定的相应的可行速度范围和可行加速度范围之后,然后,对于从s1到s
n-1
(后向)连续的航路点si,选择至少近似地最大化从s1到sn的连续航路点si之间的每个转换的速度平方(x)的相应的加加速度值,使得相应的加加速度值在对应的加加速度限制内,对应的速度在相应的可行速度范围内,并且对应的加速度在相应的可行加速度范围内。
18.方面5:根据方面4所述的方法,还包括:
19.进行多次迭代,直到达到结束条件,
20.对于航路点si,至少部分地基于相应的输入值来确定相应的加加速度限制速度,所述相应的输入值等于最近先前迭代的相应的输入值减去epsilon值,并且所述epsilon值是在多次迭代内保持不变的常量或在多次迭代中变化的变量。
21.方面6:根据方面5所述的方法,还包括:
22.通过以下方式确定是否达到结束条件:
23.确定对应于当前选择的加加速度值的至少近似最大化的速度平方与对应于最近的先前选择的加加速度值的至少近似最大化的速度平方之间的差;以及
24.将确定的差与阈值进行比较。
25.方面7:根据方面1所述的方法,其中,对于沿着几何路径从s1到sn的多个航路点si中的每一个,基于最大化速度中的相应的速度来确定将到达相应的航路点的相应的时间包括:确定表示构型qi中的每个将被实现的的相应的相对时间的时间向量。
26.方面8:根据方面7所述的方法,还包括:接收n个机器人构型qi的构型向量,构型向量具有长度n,并且其中,确定表示构型qi中的每个将被实现的相应的相对时间的时间向量包括确定具有与构型向量的长度等于的长度的时间向量。
27.方面9:根据方面8所述的方法,其中,接收n个机器人构型qi的构型向量包括接收提供机器人的构型空间中的点向量的构型向量,每个点指定机器人的至少两个关节中的每一个的相应的姿态。
28.方面10:根据方面1所述的方法,其中,对于沿几何路径从至少s2到sn的航路点si中的每一个,基于最大速度的所确定的估计的中的相应的估计来确定将到达相应的航路点的相应的时间包括将确定到达相应的航路点的相应的相对时间,所述相应的相对时间相对于将到达至少一个先前航路点的相应的时间。
29.方面11:根据方面1至3或6至10中任一项所述的方法,还包括:至少提供所确定的将到达相应的航路点的相应的时间以控制机器人的运动。
30.方面12:一种控制机器人的运动的系统,所述系统包括:
31.至少一个处理器;以及
32.至少一个非暂时性处理器可读介质,其通信地耦合到所述至少一个处理器并存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器进行以下操作:
33.对于沿几何路径从s1到至少s
n-1
的多个航路点si中的每一个,存在针对每个航路点si的对应的机器人构型qi,在应用于由航路点si的相邻航路点之间的转换表示的运动的加速度限制下,线性确定沿路径的最大速度的估计;
34.在应用于由航路点si的相邻航路点之间的转换表示的运动的加速度限制下线性确定沿路径的最大速度的估计之后,对于沿几何路径从s1到至少s
n-1
的多个航路点si中的每一个,在应用于由航路点si的相邻航路点之间的转换表示的运动的加加速度限制下,线性确定沿路径的最大速度的估计;以及
35.对于沿几何路径从至少s2到sn的航路点si中的每一个,基于所确定的最大速度的所确定的估计中的相应的估计来确定将到达相应的航路点的相应的时间。
36.方面13:根据方面12所述的系统,其中,为了在应用于由航路点si的相邻航路点之间的转换表示的运动的加速度限制下,线性确定沿路径的最大速度的估计,所述处理器可执行指令使所述至少一个处理器:
37.对于从至少s
n-1
到s1(后向)连续的航路点si,确定由每个相应的航路点si处的加速度限制界定的相应的可行速度范围;以及
38.在确定由每个相应航路点si处的加速度限制界定的相应的可行速度范围之后,然后,对于从s1到s
n-1
(前向)连续的航路点si,选择至少近似地最大化从s1到sn的连续航路点si之间的每个转换的速度平方(x)相应的加速度值,使得相应的加速度值在对应的加速度限制内并且对应的速度在相应的可行速度范围内。
39.方面14:根据方面12或13中任一项所述的系统,其中,为了在应用于由航路点si的相邻航路点之间的转换表示的运动的加加速度限制下,线性确定沿路径的最大速度的估计,所述处理器可执行指令使所述至少一个处理器:
40.对于从s
n-1
到s1(后向)连续的航路点si,确定相应的可行速度范围和相应的可行加速度范围,范围中的每个由每个相应的航路点si处的加加速度限制的界定;以及
41.在确定由每个相应的航路点si处的加加速度限制界定的相应的可行速度范围和可行加速度范围之后,然后,对于从s1到s
n-1
(前向)连续的航路点si,选择至少近似地最大化
从s1到sn的连续航路点si之间的每个转换的速度平方(x)的相应的加加速度值,使得相应的加加速度值在对应的加加速度限制内,对应的速度在相应的可行速度范围内,并且对应的加速度在相应的可行加速度范围内。
42.方面15:根据方面14所述的系统,其中,所述处理器可执行指令在被执行时使所述至少一个处理器进一步进行以下操作:
43.进行多次迭代,直到达到结束条件,
44.对于航路点si,至少部分地基于相应的输入值来确定相应的加加速度限制的速度,所述相应的输入值等于最近先前迭代的相应的输入值减去epsilon值,并且所述epsilon值是在多次迭代内保持不变的常量或在多次迭代中变化的变量。
45.方面16:根据方面15所述的方法,还包括:
46.通过以下方式确定是否达到结束条件:
47.确定对应于当前选择的加加速度值的至少近似最大化的速度平方与对应于最近的先前选择的加加速度值的至少近似最大化的速度平方之间的差;以及
48.将确定的差与阈值进行比较。
49.方面17:根据方面12所述的系统,其中,为了基于最大速度中的相应的最大速度来确定将到达相应的航路点的相应的时间,所述处理器可执行指令使所述至少一个处理器确定表示构型qi中的每个将被实现的的相应的相对时间的时间向量。
50.方面18:根据方面17所述的系统,其中,所述至少一个处理器接收n个机器人构型qi的构型向量,构型向量具有长度n,并且其中,为了确定表示构型qi中的每个将被实现的相应的相对时间的时间向量,所述处理器可执行指令使所述至少一个处理器确定具有等于构型向量的长度的长度的时间向量。
51.方面19:根据方面12所述的系统,其中,为了基于最大速度的所确定的估计的组中的相应的估计来确定将到达相应的航路点的相应的时间,所述处理器可执行指令使所述至少一个处理器对于沿几何路径从至少s2至sn的航路点s1中的每个,确定将到达相应的航路点的相应的相对时间,所述相应的相对时间相对于将到达至少一个先前航路点的相应的时间。
52.方面20:根据方面12所述的系统,其中,当由所述至少一个处理器执行时,所述处理器可执行指令使所述至少一个处理器进一步进行以下操作:
53.至少提供相应的航路点的机器人构型和将到达相应的航路点的对应确定的相应的时间以控制机器人的运动。
54.方面21:一种在基于处理器的系统中控制机器人的运动的操作的方法,所述基于处理器的系统包括至少一个处理器,所述方法包括:
55.确定由在加速度限制下沿几何路径的多个航路点中的相邻航路点之间的转换所表示的机器人运动的可行加速度限制速度范围,存在针对每个航路点的对应的机器人构型;
56.对于航路点的至少一些,从可行加速度限制速度范围中选择至少近似最大化的可行加速度限制速度;
57.确定由在至少近似加加速度限制下沿几何路径的多个航路点中的相邻航路点之间的转换所表示的机器人运动的可行加加速度限制速度范围;
58.对于航路点的至少一些,从可行加加速度限制速度范围中选择至少近似最大化的可行加加速度限制速度;以及
59.对于航路点的至少一些中的每一个,基于所选择的至少近似最大化的加加速度限制速度中的相应的速度来确定将到达相应的航路点的相应的时间。
60.方面22:根据方面21所述的方法,还包括:
61.重复以下操作直到达到结束条件:
62.确定由在至少近似加加速度限制下沿几何路径的多个航路点中的相邻航路点之间的转换所表示的机器人运动的新的可行加加速度限制速度范围;以及
63.对于航路点的至少一些,从所述新的可行加加速度限制速度范围中选择至少近似最大化的可行加加速度限制速度。
64.方面23:根据方面22所述的方法,还包括:
65.通过以下中的至少一个来确定结束条件:确定至少近似最大化的可行加加速度限制速度的连续选择之间的差是否等于或低于阈值,或者确定是否已经达到定义的迭代次数。
66.方面24:根据方面21所述的方法,其中,确定由在加速度限制下沿几何路径的多个航路点中的相邻航路点之间的转换所表示的机器人运动的可行加速度限制速度范围,包括:
67.对于从至少s
n-1
到s1(后向)连续的航路点si中的每一个,确定在每个相应的航路点si处的加速度限制下可获得的相应的可行加速度限制速度范围;以及
68.从可行加速度限制速度范围中选择至少近似最大化的可行加速度限制速度包括:对于从s1到s
n-1
(前向)连续的航路点si,选择至少使从s1至sn的连续航路点si之间的每个转换的速度平方(x)近似最大化的相应的加速度值。
69.方面25:根据方面21所述的方法,其中,确定由在至少近似加加速度限制下沿几何路径的多个航路点中的相邻航路点之间的转换所表示的机器人运动的可行加加速度限制速度范围,包括:
70.对于从s
n-1
到s1(后向)连续的航路点si,确定在每个相应的航路点si处的加加速度限制和加速度限制下可获得的相应的可行速度范围和相应的可行加速度范围;以及
71.对于航路点的至少一些中的每一个,基于所选择的至少近似最大化的加加速度限制速度中的相应的速度来确定将到达相应的航路点的相应的时间包括:对于从s1到s
n-1
(前向)连续的航路点si,选择至少近似最大化从s1至sn的连续航路点si之间的每个转换的速度平方(x)的相应的加加速度值。
72.方面26:根据方面25所述的方法,其中,确定由在至少近似加加速度限制下沿几何路径的多个航路点中的相邻航路点之间的转换所表示的机器人运动的可行加加速度限制速度范围包括:进行多次迭代直到达到结束条件,对于航路点si,至少部分地基于相应的输入值来确定相应的加加速度限制速度,所述相应的输入值等于最近先前迭代的相应的输入值减去epsilon值,并且所述epsilon值是在多次迭代内保持不变的常量或在多次迭代中变化的变量。
73.方面27:根据方面21至26中任一项所述的方法,还包括:至少提供确定的将到达相应的航路点的时间以控制机器人的运动。
74.方面28:一种控制机器人运动的系统,所述系统包括:
75.至少一个处理器;以及
76.至少一个非暂时性处理器可读介质,其通信地耦合到所述至少一个处理器并存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器执行如方面1至10或21至26所述的方法中的任一项。
77.方面29:根据方面28所述的系统,其中,当由所述至少一个处理器执行时,所述处理器可执行指令使所述至少一个处理器进一步进行以下操作:
78.至少提供针对相应的航路点的机器人构型和对应确定的将到达相应的航路点的相应的时间以控制机器人的运动。
附图说明
79.在附图中,相同的附图标记表示相似的元件或动作。附图中元件的大小和相对位置不一定按比例绘制。例如,各个元件的形状和角度不按比例绘制,其中一些元件被任意放大和定位以提高附图的易读性。另外,所绘制的元件的特定形状不旨在传递关于该特定元件的真实形状的任何信息,选择该特定形状仅仅是为了便于在附图中识别。
80.图1a、图1b、图1c、图1d和图1e是根据一个说明性实施方式、以沿几何路径的多个顺序姿态分别示出的具有包括多个连杆和关节的可移动机器人附件的机器人的示意图。
81.图2是环境的功能框图,在该环境中,根据一个说明性实施方式,机器人经由机器人控制系统来控制,该机器人控制系统包括运动规划器和优化器,该优化器至少大致以计算有效的方式优化了机器人或其部分的速度,同时保持对加速度和加加速度的限制。
82.图3是示出了根据一个说明性实施方式的图2的系统的操作方法的流程图。
具体实施方式
83.在以下描述中,阐述了一些具体细节以提供对各个公开的实施例的充分理解。但是,相关领域的技术人员会认识到,可以在没有这些具体细节中的一个或更多个细节的情况下实践实施例,或者利用其他方法、部件、材料等实践实施例。在其他实例中,没有详细示出或描述与计算机系统、机器人、机器人附件、致动器系统和/或通信网络有关的公知结构,以避免不必要地模糊实施例的描述。
84.除非上下文另有要求,否则在整个说明书和所附的权利要求书中,词语“包括”及其变体,诸如“包括(comprises)”和“包括(comprising)”应以开放、包容的意义解释,即“包括但不限于”。
85.在整个说明书中,提到“一个实施方式”或“实施方式”或提到“一个实施例”或“实施例”时,意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施方式中或在至少一个实施例中。因此,在本说明书全文中多个地方出现的短语“一个实施方式”或“实施方式”或“在一个实施例中”或“在实施例中”不一定都是指同一实施方式或实施例。此外,特定特征、结构或者特性可以以任何合适的方式结合在一个或更多个实施方式或实施例中。
86.除非内容另有明确指示,否则在本说明书和所附权利要求中使用的单数形式“一”、“一个”以及“该”包括复数指示物。还应注意,除非内容另有明确指示,否则术语“或
者”通常以包括“和/或”的意义进行使用。
87.本文中提供的公开内容的标题和摘要仅是为了方便,不用于解释实施例的范围或意义。
88.如前所述,机器人学中的重要问题被称为“加加速度最小化”,其可以通过在保持对加速度和加加速度(即加速度相对于时间的导数)的限制的同时确定各种构型之间的速度来实现。
89.例如,机器人或机器人附件要遵循的给定几何路径或轨迹可以指定为构型向量,即机器人的构型或c空间中的点向量(例如,{关节的第1位置,关节的第2位置,
……
,关节的第n位置})。对于每个几何路径,都会生成具有机器人或其部分到达那些相应的构型或“位置”的时间(例如,{t1,t2,

,tn})的时间向量。时间向量可能与构型向量具有相同的长度。提出了性能优化问题,在不违反任何约束(例如对速度、加速度和加加速度(加速度的导数)的约束)的情况下沿着几何路径尽可能快地前进。
90.在观察加加速度限制的同时优化速度在计算上是困难的。传统方法通常采用非线性优化方法,这种方法是缓慢的并且能够陷入非最优局部最小值。本文描述的方法使关于加加速度的优化成为拟凸优化问题,显著降低了计算复杂度。本文首先在简化该问题的理论基础方面、然后在实际实施方式方面描述了一种线性优化方法以用于在保持在加速度限制内的同时优化沿几何路径的速度。
91.几何路径或轨迹在起点与终点之间有一些“航路点”(路径上的位置)。航路点表示为si,如{s1,s2,...,sn}。目标是找到对应于这些航路点的时间(例如,时间的向量或时间向量){t1,t2,...,tn}。关节的构型表示为qi,如在航路点si处机器人为qi构型。速度用v表示,加速度用a表示,并且加加速度是加速度对时间的导数(da/dt)。
92.使用了两种类型的导数。关于时间的导数(例如,dz/dt)表示为变量的顶部的一个点或多个点(例如,)。关于几何路径上位置的导数(例如,dz/ds)表示为一个上撇号或多个上撇号(例如,z')。
93.从下面的等式1开始,其中导数dq/ds=q'是随着几何路径上位置变化而发生的构型变化,并且导数是速度。
[0094][0095]
等式1
[0096]
接下来,等式1中关于s取导数,得到:
[0097][0098]
等式2
[0099]
将和代入等式2,得到
[0100][0101]
等式3
[0102]
优化目标是在以下三个约束下最大化速度的绝对值,或者更方便的是速度平方(x):
[0103]
约束1)xq'2<v-limit2
[0104]
约束2)aq'+q"x<a_hmit
[0105]
约束3)x
i+1
=xi+2δai[0106]
该技术有利地利用了将该非线性优化问题转化为线性优化问题的优势。为此,假设在几何路径的端部处,速度和加速度(a)将各自等于零。一旦到达几何路径的端部,速度为零,并且能够任意保证加速度也为零。这意味着在端部航路点sn处,v=a=0。
[0107]
在实施方式中,为了在保持对加速度的限制的同时求解估计的最大速度,首先能够找到每个航路点处受限于加速度(a)边界或受限于加速度限制的可行速度范围。这能够通过沿几何路径或轨迹向后工作、确定沿几何路径从至少s
n-1
到s1连续的每个航路点处的可行范围来完成。可行速度的范围可以是连续的,也可以是离散的。值得注意的是,在航路点s
n-1
(最终航路点sn的前一个航路点),当机器人或其部分朝向最终航路点sn减速时,加速度(a)将介于零与一个小的负数之间。由于已知加速度(a)是一个小的负数,因此速度(v)能够是有界的。现在,沿着几何路径或轨迹连续从s1到s
n-1
向前工作,在每个航路点si处选择(a)的值,它允许速度的绝对值或更方便地速度平方(x)至少近似为最大化,使得相应的加速度值在对应的加速度限制内并且对应的速度在相应的可行速度范围内。
[0108]
上述方法是一种线性方法,用于在保持在加速度限制之下的同时至少近似最大化或优化速度。变量的正确选择使问题线性化。在加速度受限的情况下,约束和目标函数是由使问题线性化的决策变量有意构建的。能够使用线性求解器来解决问题。
[0109]
现在描述一种线性方法,以用于在不超过对加加速度的约束的同时至少近似地最大化或优化速度。
[0110]
从下面的等式4开始
[0111][0112]
等式4
[0113]
代入:得到
[0114][0115]
等式5
[0116]
注意,如上所述,通过在保持在加速度限制内的同时优化速度,已经求解了的估计。由于在保持加速度限制的同时求解速度的问题的线性化,所得到的估计速度不受加加速度或加加速度限制的界定,而是有利地用作用于在保持在加加速度限制内的良好起点的同时优化速度。注意,在每个航路点si处有不同的(速度)值。如下所述,在加速度限制处预先确定的值(表示为)能够有利地用于在保持加加速度限制的同时求解速度的线性化问题。
[0117]
表示为“近似加加速度(approximated-jerk)”的值被定义为加加速度等式,其中速度被先前确定的在加速度限制处的值替代,即尽管这意味着优化可能不如针对“真正的”加加速度限制进行优化那样优化,但这种近似是有帮助的。包括上述代入的近似加加速度等式如下:
[0118][0119]
等式6
[0120]
现在我们通过在三个新约束以及上述约束1和2下最大化速度的绝对值或更方便地速度平方(即x+2δa+δ2j)来进行优化:
[0121]
约束1)xq'2<v
limit2
[0122]
约束2)aq

+q"x<d_limit
[0123]
约束3)
[0124]
约束4)x
i+1
=xi+2δai+δ2j
[0125]
约束5)a
i+1
=ai+δji[0126]
目标是将非线性优化问题转换为线性优化问题。三个决策变量(和)的选择几乎使得近似的加加速度限制等式相对于决策变量是线性的,除了存在附加的在这种情况下,附加的通过代入加速度限制处的预先确定的值(表示为)而保持不变。这使在保持加加速度限制的同时求解速度的问题线性化,以最优为代价。
[0127]
问题的次优性与的近似有多差直接相关。值得注意的是,加加速度限制是一种特殊形式的非线性,称为拟凸。这种形式的非凸性能够很容易地通过对值的二分搜索来处理。这提供了两个选项,取决于首选最优性或是规划器速度。在最优性至关重要的情况下,以线性求解器的三(3)次或四(4)次额外迭代为代价,该解能够得到最优解的5%-7%内。通过提高估计的准确性,可以使确定的解任意接近最优解。在规划器速度至关重要的情况下,能够在无需连续迭代或细化的情况下直接使用近似加加速度解。
[0128]
在实施方式中,为了在保持对加加速度的限制的同时求解估计的最大速度,首先能够找到受限于加加速度边界或受限于加加速度限制的可行速度范围和可行加速度范围。这能够通过沿几何路径或轨迹向后工作、确定沿几何路径从至少s
n-1
到s1连续的每个航路点处的可行范围来完成。可行速度范围和/或可行加速度范围可以是连续的或可以是离散的。现在,沿着几何路径或轨迹连续从s1到s
n-1
向前工作,在每个航路点si处选择加加速度的值,它允许速度的绝对值或更方便地速度平方(x)至少近似为最大化或优化,使得相应的加加速度值在对应的加加速度限制内、对应的速度在相应的可行速度范围内并且对应的加速度在相应的可行加速度范围内。
[0129]
图1a、图1b、图1c、图1d和图1e示出了根据一个说明性实施方式的具有基座102和可移动机器人附件104的机器人100,分别示出沿着机器人或其部分遵循的几何路径或轨迹的多个顺序构型或姿态。特别地,图1a-1e示出了处于一系列顺序构型或姿态的机器人附件
104,从第一或初始构型或姿态(图1a)移动到最终或结束构型或姿态(图1e),具有沿几何路径或轨迹的多个中间构型或姿态(图1b-1d)。机器人100可操作以执行任务,在此期间机器人或机器人附件104可穿过一条或更多条几何路径或轨迹。
[0130]
机器人100的基座102可以例如固定到地板或其他支撑件,或者替代地可以包括轮或踏板。如图所示,机器人附件104可以包括多个连杆106a、106b、106c(示出的三个统称为106)、关节108a、108b、108c、108d(示出的四个统称为108),并且可选地包括臂端工具或端部执行器110。第一关节108a可以将第一连杆106a可旋转地耦合到基座102,以围绕基座的中心轴线旋转。第二关节108b可以将第二连杆106b可旋转地耦合到第一连杆106a以围绕相应的旋转轴线旋转。第三关节108c可以将第三连杆106c可旋转地耦合到第二连杆106b以围绕相应的旋转轴线旋转。第四关节108d可以将臂端工具或端部执行器110可旋转地耦合到第三连杆106c以围绕相应的旋转轴线旋转。虽然在图1a-1e中不可见,但机器人100通常包括一个或更多个致动器和可选的传动装置,它们被耦合以相对于基座和/或彼此来移动连杆。
[0131]
例如在机器人100的构型空间(c空间)中所表示的,机器人100或机器人附件104的每个构型或姿态可以由关节108a-108d的集合的构型或姿态的相应组来定义。注意,机器人100的“构型空间”或“c空间”不同于机器人100在其中操作的工作空间(即,二维或三维环境)。工作空间可以包括机器人100操纵的作为执行任务的一部分的一个或更多个工作物品或工件(未示出),例如一个或更多个包裹、包装、紧固件、工具、物品或其他物体。几何路径或轨迹可以表示为机器人100或机器人附件104的构型或姿态的序列,序列中的每个构型或姿态表示为关节108a-108d的集合的多个构型或姿态的相应组。机器人100或机器人附件104的构型或姿态的集合可以被提供、接收或表示为构型向量。
[0132]
图2示出了一种根据一个说明性实施方式的环境,在该环境中,机器人控制系统200被通信耦合以控制机器人100或其部分(例如机器人附件104)的运动。
[0133]
机器人控制系统200包括运动规划器204,其生成指定几何路径或轨迹的运动规划,并且还包括加速度限制的优化器或求解器206和加加速度限制的优化器或求解器208,其可操作以在计算上有效地确定至少近似最佳轨迹(例如,机器人构型和定时)以使机器人100或机器人附件104在遵循对加速度和加加速度的限制的同时以近似最佳速度沿着几何路径或轨迹移动。几何路径或轨迹可以允许机器人100执行一项或更多项任务215。
[0134]
机器人控制系统200经由至少一个通信信道(由邻近的箭头指示,例如发射器、接收器、收发器、无线电、路由器、以太网)通信耦合,以控制机器人100的操作。机器人控制系统200可以通信地耦合到向机器人100的一个或更多个致动器220a、220b、220c、220d提供驱动信号的一个或更多个运动控制器218(例如,电机控制器)。运动控制器218可以是机器人100的一部分,或与之分开。
[0135]
机器人100能够采用多种形式中的任何一种。通常,机器人100将采用一个或更多个机器人附件104的形式或具有一个或更多个机器人附件104。机器人102可包括具有一个或更多个关节108a、108b、108c、108d、108e(图1)的一个或更多个连杆106a、106b、106c(图1)、以及耦合并且可操作以响应于控制或驱动信号来使连杆移动106a、106b、106c的致动器220a、220b、220c、220d(例如,电动马达、步进马达、螺线管、气动致动器或液压致动器)。气动致动器可以例如包括一个或更多个活塞、气缸、阀门、气体储存器和/或压力源(例如,压
缩机、鼓风机)。液压致动器可以例如包括一个或更多个活塞、气缸、阀门、流体储存器(例如,低压缩性液压流体)和/或压力源(例如,压缩机、鼓风机)。机器人100可以采用或采取其他形式的机器人,例如自主车辆。
[0136]
机器人控制系统200可以例如经由至少一个通信信道(由邻近的箭头指示,例如发射器、接收器、收发器、无线电、路由器、以太网)通信地耦合,以从运动规划图(未示出)和/或扫掠体积表示(未示出)的一个或更多个源212可选地接收运动规划图和/或扫掠体积表示。根据一个示出的实施方式,运动规划图和/或扫掠体积的源212可以与运动规划器分开且不同。运动规划图和/或扫掠体积的源212例如可以是可由机器人100的相应制造商或者由其他实体操作或控制的一个或更多个基于处理器的计算系统(例如服务器计算机)。运动规划图可以各自包括表示机器人100的状态、构型或姿态的一组节点(未示出),以及耦合相应节点对的节点的一组边(未示出),并表示状态、构型或姿态之间的规范或有效转换。例如,状态、构型或姿态可以表示相应机器人100的关节中的每个的关节位置、取向、姿态或坐标的组。因此,每个节点可以将机器人100或其部分的姿态表示为由包括机器人100的关节的姿态完全定义。运动规划图可以在运行时间之前(例如在运行前时间或构型时间期间)确定、设置或定义(即,在执行任务之前定义)。扫掠体积表示机器人100或其部分在执行对应于运动规划图的相应边的运动或转换时将占据的相应体积。扫掠体积可以以多种形式中的任一种来表示,多种形式例如体素、欧几里德距离场、几何对象的层次结构。这有利地允许在运行时间之前——当响应性不是特别关注时——执行一些计算最密集的工作。
[0137]
机器人控制系统200可以包括一个或更多个处理器222,以及处理器222的一个或更多个相关联的非瞬态计算机或处理器可读存储介质,例如系统存储器224a、磁盘驱动器224b和/或存储器或寄存器(未示出)。非瞬态计算机或处理器可读存储介质224a、224b经由一个或更多个通信信道(诸如系统总线216)通信地耦合到处理器222a。系统总线216能够采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外设总线和/或本地总线。这样的部件中的一个或更多个还可以或替代地经由一个或更多个其他通信信道彼此通信,所述一个或更多个通信信道例如为一个或更多个并行电缆、串行电缆或能够高速通信的无线网络信道,例如、通用串行总线(“usb”)3.0、外设部件互连高速(pcie)或经由
[0138]
如上所述,机器人控制系统200可以可选地可通信地耦合到一个或更多个远程计算机系统,例如服务器计算机(例如运动规划图212的源)、台式计算机、膝上型计算机、超便携计算机、平板计算机、智能手机、可穿戴计算机,它们例如经由网络接口227直接可通信地耦合或间接地可通信地耦合到机器人控制系统200的各种部件。远程计算系统(例如,服务器计算机)可用于对机器人控制系统200和机器人控制系统200内的各种组件进行编程、构型、控制或其他方式与机器人控制系统200和机器人控制系统200内的各种组件交互或向它们输入数据(例如,运动规划图、扫掠体积、任务规范215)。这种连接可以通过一个或更多个通信信道,例如一个或更多个广域网(wan),例如以太网或使用internet协议的internet。如上所述,运行前计算(例如,运动规划图族的生成)可以由与机器人控制系统200或机器人100分开的系统执行,而运行时计算可以由机器人控制系统200的处理器222(在一些实施方式中可以在机器人100上)执行。
[0139]
机器人控制系统200可以可选地可通信地耦合到一个或更多个传感器,例如一个
或更多个摄像机223、运动传感器、旋转编码器、加速度计等。
[0140]
如上所述,机器人控制系统200可以包括一个或更多个处理器222(即电路)、非瞬态存储介质224a、224b和耦合各种系统部件的系统总线216。处理器222可以是任何逻辑处理单元,诸如一个或更多个中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)、现场可编程门阵列(fpga)、专用集成电路(asic)、可编程逻辑控制器(plc)等。系统存储器224a可以包括只读存储器(“rom”)226、随机存取存储器(“ram”)228、闪存230、eeprom(未示出)。能够构成rom 226的一部分的基本输入输出系统(“bios”)232包含例如在启动期间在机器人控制系统200内的元件之间帮助传递信息的基本例程。
[0141]
驱动器224b例如可以是用于读取和写入磁盘的硬盘驱动器、用于读取和写入固态存储器的固态(例如闪存)驱动器、和/或用于读取和写入可移动光盘的光盘驱动器。在各种不同的实施例中,机器人控制系统200a还可以包括这种驱动器的任何组合。驱动器224b可以经由系统总线216与处理器222通信。如本领域技术人员了解的,驱动器224b可以包括耦合在这些驱动器与系统总线216之间的接口或控制器(未示出)。驱动器224b及其相关联的计算机可读介质为机器人控制系统200提供计算机或处理器可读和/或可执行指令、数据结构、程序模块和其他数据的非易失性存储。相关领域的技术人员将理解可以使用能够存储计算机可访问的数据的其他计算机可读介质类型,例如worm驱动器、raid驱动器、磁带、数字视频磁盘(“dvd”)、伯努利盒式磁带、ram、rom、智能卡等。
[0142]
可执行指令和数据能够存储在系统存储器224a中,例如操作系统236、一个或更多个应用程序238、其它程序或模块240和程序数据242。应用程序238可以包括处理器可执行指令,该处理器可执行指令使处理器222执行以下一项或更多项:生成机器人100将在其中操作的环境的离散表示,包括环境中的障碍物和/或目标物体或工件(其中其他机器人的规划的运动可能被表示为障碍物);生成运动规划或路线图,包括调用或以其他方式获得碰撞评估的结果、为运动规划图中的边设置成本值、以及评估运动规划图中的可用路径;可选地存储确定的多个运动规划或路线图,和/或执行优化(例如,线性优化器)。运动规划构建(例如,碰撞检测或评估、基于碰撞检测或评估更新运动规划图中的边的成本、以及路径搜索或评估)能够如通过引用并入本文的参考文献中所描述的那样执行。碰撞检测或评估可以使用通过引用并入本文的参考文献中描述的各种结构和技术来执行碰撞检测或评估。应用程序238可以另外包括一个或更多个机器可读和机器可执行指令,这些指令使处理器222执行其他操作,例如可选地处理(经由传感器捕获的)感知数据和/或优化。应用程序238还可以包括一个或更多个机器可执行指令,这些指令使处理器222执行本文和通过引用并入本文的参考文献中描述的各种其他方法。
[0143]
在各种实施例中,上述操作中的一项或更多项可以由一个或更多个远程处理设备或计算机执行,这些远程处理设备或计算机经由网络接口227通过通信网络(例如,网络210)链接。
[0144]
尽管在图2中示出为存储在系统存储器224a中,但操作系统236、应用程序238、其他程序/模块240和程序数据242能够存储在其他非暂时性计算机或处理器可读介质上,例如驱动器224b。
[0145]
机器人控制系统200的运动规划器204的结构和/或操作可以如2019年6月24日提交的共同受让的美国专利申请62/865,431中所示和所述。
[0146]
处理器222和/或运动规划器204可以是或可以包括任何逻辑处理单元,例如一个或更多个中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、可编程逻辑控制器(plc)等。商用计算机系统的非限制性示例包括但不限于celeron、core、core2、美国公司提供的itanium和xeon系列微处理器;美国advanced micro devices提供的k8、k10、bulldozer和bobcat系列微处理器;美国apple computer公司提供的a5、a6和a7系列微处理器;美国qualcomm公司提供的snapdragon系列微处理器;和美国oracle公司提供的sparc系列微处理器。图2中所示的各种结构的构造和操作可以实施或采用以下中描述的或与之类似的结构、技术和算法:2017年6月9日提交的题为“motion planning for autonomous vehicles and reconfigurable motion planning processors”的国际专利申请pct/us2017/036880;2016年1月5日提交的题为“specialized robot motion planning hardware and methods of making and using same"的国际专利申请公开wo2016/122840;2018年1月12日提交的题为“apparatus,method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects”的美国专利申请62/616,783;2019年6月3日提交题为“apparatus,methods and articles to facilitate motion planning in environments having dynamic obstacles”的美国专利申请62/856,548;和/或2019年6月24日提交的题为“motion planning for multiple robots in shared workspace”的美国专利申请62/865,431。
[0147]
尽管不是必需的,但许多实施方式将在计算机可执行指令的一般背景下进行描述,诸如存储在计算机或处理器可读介质上并由能够执行障碍物表示、碰撞评估、其他运动规划操作和优化的一个或更多个计算机或处理器执行的程序应用模块、对象或宏。
[0148]
运动规划器204可以确定指定机器人100或机器人附件104的构型序列的几何路径或轨迹(例如,最优或优化的),例如指定为机器人100的c空间中的构型向量。
[0149]
加速度限制优化器或求解器206确定在尊重加速度限制的同时几何路径或轨迹的航路点si之间的每个转换的至少近似优化的速度。如前所述,将优化问题转换为线性形式有利于显著提高计算效率,并减少甚至消除陷入局部最小值的情况。确定的速度值可以有利地提供给加加速度限制优化器或求解器208。
[0150]
加加速度限制优化器或求解器208确定在尊重加加速度限制的同时几何路径或轨迹的航路点si之间的每个转换的至少近似优化的速度。如前所述,将优化问题转换为线性形式有利于显著提高计算效率,并减少甚至消除陷入局部最小值的情况。加加速度限制优化器或求解器208可以细化确定的速度值以达到任何定义的优化水平。
[0151]
基于处理器的系统或其部分可以确定对应于每个航路点si的时间,在该时间机器人或其部分应处于对应的构型或姿态。基于处理器的系统或其部分可以提供构型(例如,作为构型向量)214a和时间(例如,作为时间向量)214b以驱动机器人或其部分以至少近似优化方式沿着几何路径或轨迹运动。
[0152]
图3示出了根据至少一个说明性实施方式的基于处理器的系统中的操作方法300,该操作方法在计算上有效地生成至少近似优化的轨迹信息,以控制机器人或其部分。例如,方法300可以在运行时间期间执行。方法300可以由作为机器人一部分的基于处理器的系统和/或机器人控制系统来执行。替代地,方法300可以由与机器人分离且不同,并且可能远离
机器人的基于处理器的系统(例如,服务器计算机)执行。
[0153]
作为概述,最初,加速度限制优化器会产生初始优化速度估计。该初始优化速度估计作为初始估计或种子被提供给加加速度限制优化器以用于确定加加速度限制速度估计。加速度限制速度的初始估计不受对加加速度的约束的限制。如果需要,可以在单次迭代之后使用随后确定的加加速度限制速度估计。替代地,可以执行多次迭代以精确加加速度限制速度估计;每次迭代都更接近最优加加速度限制速度。当然,最优值在达到之前是未知的。在许多实际应用中,因为通常不需要精确的准确性,因此估计或近似的最优加加速度限制速度接近但实际上可能达不到理论上的最优值,并且可以与处理花费的时间进行折衷。
[0154]
在302,基于处理器的系统或其部分生成或接收用于机器人或其部分遵循的离散化几何路径。例如,离散化的几何路径可以采取构型向量的形式,为沿几何路径的每个位置或航路点指定将机器人或其部分置于相应构型或姿态的关节位置或关节坐标的相应组。如图所示,加速度限制优化器或求解器206(图2)可以接收构型向量。
[0155]
在304,基于处理器的系统或其部分(例如,加速度限制优化器或求解器206(图2))基于加速度限制为航路点中的每个确定可行速度范围。可行速度范围的确定对应于沿几何路径或轨迹的后向传递,其作为确定优化的加速度限制速度的一部分而执行,如上所述。可行速度的范围可以是连续的,或者可以是一组离散速度。
[0156]
在306,对于沿几何路径或轨迹的航路点中的每个,基于处理器的系统或其部分选择使速度最大化的加速度。选择加速度以使速度最大化对应于沿几何路径或轨迹的前向传递,其作为确定优化的加速度限制速度的一部分而执行,如上所述。也就是说,例如,可以选择近似最大化速度平方的加速度值,使得相应的加速度值在对应的加速度限制内并且对应的速度在相应的可行速度范围内。
[0157]
在308,最大可行速度值被提供给加加速度限制优化器或求解器208(图2)。例如,加速度限制速度求解器将速度估计传递给近似加加速度限制子问题求解器,该近似加加速度限制子问题求解器使用速度估计作为起点。最终,速度估计通常高于或快于对应的加加速度限制速度估计。
[0158]
在310,基于处理器的系统或其部分(例如,加加速度限制优化器或求解器208(图2))基于加加速度限制为每个航路点确定可行速度范围和可行加速度范围。可行速度范围和可行加速度范围的确定对应于沿几何路径或轨迹的后向传递,其作为确定优化的加加速度限制速度的一部分而执行,如上所述。可行速度范围和/或可行加速度范围可以是连续的或者可以是一组离散的速度或离散的加速度。
[0159]
在312,基于处理器的系统或其部分从可行速度范围中为沿几何路径的航路点中的每个选择最大可行速度。最大可行速度的选择对应于沿几何路径或轨迹的前向传递,其作为确定优化的加加速度限制速度的一部分而执行,如上所述。也就是说,例如,可以选择使速度平方近似最大化的加加速度值,使得相应的加加速度值在对应的加加速度限制内、对应速度在相应的可行速度范围内并且对应的加速度在相应的可行加速度范围内。
[0160]
在314,基于处理器的系统确定是否已经达到退出条件,例如如下所述。
[0161]
在316,响应于确定退出条件尚未发生,基于处理器的系统精确速度估计,例如如下所述。一旦对于每个航路点出现退出条件,则基于处理器的系统在318确定并输出时间最优约束限制轨迹。因此,如下所述,可以通过若干次迭代来精确速度估计,直到退出条件出
现。
[0162]
314的退出条件评估可以是确定估计的加加速度限制速度相对于定义的标准是足够的,和/或可以是执行对精确加加速度限制速度估计的定义次数的迭代,例如收敛到合适的加加速度限制速度估计。例如,为了确定加加速度限制速度估计是否是足够的,基于处理器的系统可以确定当前迭代的加加速度限制速度或速度平方估计与最近的先前迭代的加加速度限制速度或速度平方估计之间的差。然后,基于处理器的系统能够确定该差是否在定义的可接受差阈值内。差阈值可以选择以反映如下事实,即在加加速度限制速度估计中的逐渐改进将导致差随着加加速度限制优化器的每次迭代而变得更小。特定差阈值将是应用特定的,并且将取决于对机器人或机器人附件的优化的加加速度限制速度的期望与计算优化的加加速度限制速度的速度的平衡。迭代次数能够设置为任何所需的整数值。
[0163]
换句话说,基于处理器的系统可以例如迭代直到达到结束条件。在第一迭代期间,加速度限制速度被用作加加速度限制优化的输入。第一迭代产生第一加加速度限制速度估计。第一加加速度限制速度估计可能低于或慢于最优速度,但能够在例如处理时间被认为比机器人或其部分的最优速度更有价值的情况下使用。如果退出条件不满足,则在第二迭代期间,第一迭代的输入减去epsilon值被用作加加速度限制优化的新输入。第二迭代产生第二加加速度限制速度估计。第二加加速度限制速度估计可能低于或慢于最优速度,但能够在例如处理时间被认为比机器人或其部分的最优速度更有价值的情况下使用。如果退出条件不满足,则在第三迭代期间,最近先前迭代(例如,第二迭代)的输入减去epsilon值被用作加加速度限制优化的新输入。第三迭代产生第三加加速度限制速度估计。第三加加速度限制速度估计可能低于或慢于最优速度,但能够在例如处理时间被认为比机器人或其部分的最优速度更有价值的情况下使用。在每次迭代中,加加速度限制速度估计收敛于最优加加速度限制速度。可以重复该算法直到退出条件满足。
[0164]
在执行加加速度限制优化的每次迭代时,加加速度限制优化器可以执行上面一般描述的后向传递和前向传递。在一些实施方式中,epsilon值是在迭代次数中保持恒定的常量。在一些实施方式中,epsilon值是随迭代次数变化的变量。例如,epsilon值可以考虑对两次或更多次先前迭代之间的收敛性的评估。
[0165]
前述详细描述已经通过使用框图、示意图和示例阐述了设备和/或过程的各种实施例。只要此类框图、示意图和示例包含一个或更多个功能和/或操作,本领域技术人员将理解,此类框图、示意图或示例中的每个功能和/或操作可以通过各种硬件、软件、固件或它们的几乎任何组合来单独和/或共同实现。在一个实施例中,本主题可以通过布尔电路、专用集成电路(asic)和/或fpga来实现。然而,本领域技术人员将认识到,本文公开的实施例全部或部分可以在标准集成电路中的各种不同实施方式中实现,作为在一个或更多个计算机上运行的一个或更多个计算机程序(例如,作为在一个或更多个计算机系统上运行的一个或更多个程序),作为在一个或更多个控制器(例如微控制器)上运行的一个或更多个程序,作为在一个或更多个处理器(例如微处理器)上运行的一个或更多个程序,作为固件,或它们的几乎任何组合,并且,根据本发明,为软件和/或固件设计电路和/或编写代码将完全在本领域普通技术人员的技能范围内。
[0166]
本领域技术人员将认识到,本文阐述的许多方法或算法可以采用附加动作,可以省略一些动作,和/或可以以与指定不同的顺序执行动作。
[0167]
此外,本领域技术人员将理解,本文所教导的机制能够在硬件中实现,例如在一个或更多个fpga或asic中实现。
[0168]
上述各种实施例能够组合以提供进一步的实施例。本说明书中提及和/或在申请数据表中列出的所有共同受让的美国专利申请出版物、美国专利申请、外国专利和外国专利申请,包括但不限于:2017年6月9日提交的题为“motion planning for autonomous vehicles and reconfigurable motion planning processors”的国际专利申请pct/us2017/036880,2016年1月5日提交的题为“specialized robot motion planning hardware and methods of making and using same”的国际专利申请公开wo2016/122840;2018年1月12日提交的题为“apparatus,method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects”的美国专利申请62/616,783;2018年2月6日提交的题为“motion planning of a robot storing adiscretized environment on one or more processors and improved operation of same”的美国专利申请62/626,939;2019年6月3日提交的题为“apparatus,methods and articles to facilitate motion planning in environments having dynamic obstacles”的美国专利申请62/856,548;2019年6月24日提交的题为“motion planning for multiple robots in shared environment”的美国专利申请62/865431;以及2019年8月23日提交的题为“motion planning for robots to optimize velocity while maintaining limits on acceleration and jerk”的美国专利申请62/890,830,它们的全部内容通过引用并入本文。能够对根据上面详细描述的说明书的实施例做出这些和其他改变。通常,在所附权利要求中,所使用的术语不应解释为将权利要求限定为在本说明书和权利要求书中公开的具体实施例,而应该理解为包括所附权利要求所保护的所有可行实施例以及等同物。因此,权利要求不受公开内容限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1