1.本技术属于机器人领域,尤其涉及一种机器人的控制方法、装置、机器人及存储介质。
背景技术:
2.目前,机器人应用于越来越多的领域,可以执行更加复杂的动作,例如机器人可以执行擦桌子、擦鞋等动作。在机器人执行复杂动作的过程中,为了提高机器人的控制准确度,需要同时考虑机器人的末端的位置以及各关节的位置。现有的控制方法中,一般是在得到机器人的末端的轨迹后,通过求逆解的方法得到与轨迹对应的各关节的角度。但是机器人的末端的位置调整与机器人的各关节的位置调整之间存在矛盾,即调整关节位置会影响末端的位置,因此,在求逆解的过程中,会存在物理约束、奇异位形、多解切换等问题,从而影响位置计算的准确度。为了提高计算准确度,可以通过优化求解的方法代替求逆解的方法,但是机器人的微分运动模型是非线性的运动模型,优化求解的过程是对非线性的优化问题进行求解的过程,对非线性的优化问题进行求解存在求解效率低的问题。
技术实现要素:
3.有鉴于此,本技术实施例提供了机器人的控制方法、装置、机器人及存储介质,可以解决现有的控制方法中计算准确度不高、计算效率低的问题。
4.本技术实施例的第一方面提供了一种机器人的控制方法,包括:
5.确定机器人的线性运动模型,所述线性运动模型由所述机器人的微分运动模型线性化处理后得到;
6.根据所述线性运动模型确定预设时段内各时刻对应的预测状态,所述预设时段表示第k+1时刻到第k+n时刻,其中,所述k和所述n均表示正整数;
7.根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;
8.根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据所述第k时刻的指令参数调整所述机器人各关节的位置。
9.在一种可能的实现方式中,所述线性运动模型用于表示第k+1时刻的状态变化量与第k时刻的状态变化量、第k时刻的输入变量之间的线性关系,所述根据所述线性运动模型确定预设时段内各时刻对应的预测状态,包括:
10.根据所述线性运动模型确定预设时段内各时刻对应的状态变化量;
11.根据所述预设时段内各时刻对应的状态变化量,确定预设时段内各时刻对应的预测状态。
12.在一种可能的实现方式中,根据所述机器人的末端的参考位置、关节的参考位置,
以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态,包括:
13.根据所述机器人的末端的参考位置以及第一导纳控制方程,确定预设时段内各时刻对应的末端的期望位置;
14.根据所述机器人的关节的参考位置以及第二导纳控制方程,确定预设时段内各时刻对应的关节的期望位置;
15.根据预设时段内各时刻对应的末端的期望位置以及所述第预设时段内各时刻对应的关节的期望位置,确定预设时段内各时刻对应的期望状态。
16.在一种可能的实现方式中,根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,包括:
17.根据所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数和约束条件;
18.根据所述目标函数和所述约束条件,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值。
19.在一种可能的实现方式中,根据所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数,包括:
20.根据关节位置跟踪的优先级以及末端位置跟踪的优先级确定权重系数;
21.根据所述权重系数、所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数。
22.在一种可能的实现方式中,所述约束条件包括所述预设时段内各时刻对应的预测状态的范围阈值,以及第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值的范围阈值。
23.在一种可能的实现方式中,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,包括:
24.根据所述第k时刻的关节的速度补偿值,确定第k时刻的关节的速度;
25.根据所述第k时刻的关节的速度以及第k-1时刻的关节的指令位置,确定第k时刻的关节的指令位置,将所述第k时刻的关节的指令位置作为第k时刻的指令参数。
26.本技术实施例的第二方面提供了一种机器人的控制装置,包括:
27.模型确定模块,用于确定机器人的线性运动模型,所述线性运动模型由所述机器人的微分运动模型线性化处理后得到;
28.预测状态确定模块,用于根据所述线性运动模型确定预设时段内各时刻对应的预测状态,所述预设时段表示第k+1时刻到第k+n时刻,其中,所述k和所述n均表示正整数;
29.期望状态确定模块,用于根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;
30.指令参数确定模块,用于根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据所述第k时刻的指令参数调整所述机器人各关节的位置。
31.本技术实施例的第三方面提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实
现如上述第一方面所述的机器人的控制方法。
32.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的机器人的控制方法。
33.本技术实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行上述第一方面中任一项所述的机器人的控制方法。
34.本技术实施例与现有技术相比存在的有益效果是:通过对机器人的微分运动模型进行线性化处理,得到机器人的线性运动模型,从而将机器人运动过程中的求解问题转化为线性求解问题。之后,根据线性运动模型确定预设时段内各时刻对应的预测状态,以及根据机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;再根据预设时段内各时刻对应的预测状态、预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,再根据第k时刻的指令参数调整机器人各关节的位置,从而将机器人运动过程中的求解问题转化为线性优化求解问题,进而提高了计算准确度和计算效率。
附图说明
35.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
36.图1是本技术一实施例提供的机器人的控制方法的实现流程示意图;
37.图2是本技术实施例提供的确定预设时段内各时刻对应的期望状态的实现流程示意图;
38.图3是本技术实施例提供的控制流程示意图;
39.图4是本技术实施例提供的确定指令参数的流程图;
40.图5是本技术实施例提供的机器人的控制装置示意图;
41.图6是本技术实施例提供的机器人的结构示意图。
具体实施方式
42.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
43.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
44.现有的机器人的控制方法中,一般是在得到机器人的末端的轨迹后,通过求逆解的方法得到与轨迹对应的各关节的角度。但是在求逆解的过程中,会存在物理约束、奇异位形、多解切换等问题,从而影响位置计算的准确度。为了提高计算准确度,可以通过优化求解的方法代替求逆解的方法,但是机器人的微分运动模型是非线性的运动模型,优化求解
的过程是对非线性的优化问题进行求解的过程,对非线性的优化问题进行求解存在求解效率低的问题。
45.为此,本技术提供一种机器人的控制方法,通过对机器人的微分运动模型进行线性化处理,得到机器人的线性运动模型,从而将机器人运动过程中的求解问题转化为线性求解问题。之后,根据线性运动模型确定预设时段内各时刻对应的预测状态,以及根据机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;再根据预设时段内各时刻对应的预测状态、预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,再根据第k时刻的指令参数调整机器人各关节的位置,从而将机器人运动过程中的求解问题转化为线性优化求解问题,进而提高了计算准确度和计算效率。
46.下面对本技术提供的机器人的控制方法进行示例性说明。
47.请参阅附图1,本技术一实施例提供的机器人的控制方法包括:
48.s101:确定机器人的线性运动模型,所述线性运动模型由所述机器人的微分运动模型线性化处理后得到。
49.具体地,机器人包括多个机械臂,机械臂包括关节以及末端。末端的速度与关节的速度之间存在对应关系其中,j(θ)为根据机器人的末端的速度以及关节的速度的对应关系所建立的雅可比矩阵,表示机器人的末端的速度,θ表示机器人的关节的位置,表示机器人的关节的速度。定义机器人的状态为x,x表示机器人的末端的位置,则机器人的微分运动模型为位置,则机器人的微分运动模型为表示机器人的状态x的一阶导数。
50.定义其中,表示机器人的关节的速度。将机器人上一时刻的状态作为当前时刻的参考状态xr,将机器人上一时刻的关节的速度作为当前时刻的关节的参考速度ur,则在(xr,ur)处对进行泰勒展开,并忽略高阶项,得到
[0051][0052]
其中,
[0053]
令则得到
[0054]
进一步得到
[0055][0056]
令可以得到其中,表示机器人的状态的一阶导数与参考状态的一阶导数之间的差值,表示机器人的状态与参考状态之间的差值,由于参考状态是上一时刻的状态,因此也表示机器人的状态变化量,表示关节的速度与关节的参考速度的差值。
[0057]
对上式进行离散化,得到其中,表示第k+1时刻的状态变化量,t
p
表示预测步长、ak、bk均表示系数,i表示单位矩阵,表示第k时刻的状态变化量,表示第k时刻的关节的速度与第k时刻的关节的参考速度之间的差值,也表示第k时刻的输入变量。
[0058]
令t
pak
+i=am(k),t
pbk
=bm(k),得到
[0059]
即为线性运动模型,该线性运动模型用于表示第k+1时刻的状态变化量与第k时刻的状态变化量、第k时刻的输入变量之间的线性关系。
[0060]
s102:根据所述线性运动模型确定预设时段内各时刻对应的预测状态,所述预设时段表示第k+1时刻到第k+n时刻,其中,所述k和所述n均表示正整数。
[0061]
具体地,当前时刻是第k时刻,根据上一时刻的状态,可以预测当前时刻的状态,再根据线性运动模型可以对第k+1时刻到第k+n时刻的状态进行预测,得到各时刻对应的预测状态。
[0062]
示例性地,线性运动模型为则根据第k+1时刻的状态变化量的表达式,对k+2时刻的状态变化量进行类推,得到
[0063][0064]
其中,表示第k+2时刻的状态变化量,am(k+1)、bm(k+1)分别表示类推得到的第k+2时刻对应的系数。表示第k+1时刻的关节的速度与第k+1时刻的关节的参考速度之间的差值,第k+1时刻的关节的参考速度即为第k时刻的关节的速度,则参考速度之间的差值,第k+1时刻的关节的参考速度即为第k时刻的关节的速度,则u(k-1)表示第k-1时刻的关节的速度,u(k)表示第k时刻的关节的速度,u(k+1)表示第k+1时刻的关节的速度。
[0065]
继而类推得到
[0066][0067]
其中,表示第k+n时刻的状态变化量,表示第k+n-1时刻的关节的速度与第k+n-1时刻的关节的参考速度之间的差值,am(k+n-1)、bm(k+n-1)分别表示类推得到的第k+n时刻对应的系数。
[0068]
令第k+1时刻、k+2时刻
…
k+n时刻的状态变化量对应的系数与第k时刻的系数相等,分别记为a
m,k
和b
m,k
,则存在等式
[0069][0070]
令
[0071][0072]
则上述等式可以表示为
[0073]
x
e_expand
=a
m_expand
·
xe(k)+b
m_expand
·ue_expand
,因此,x
e_expand
表示第k+1时刻到第k+n时刻内各时刻对应的状态变化量。
[0074]
之后,根据
[0075][0076][0077]
...
[0078][0079]
可以得到对应的矩阵表示
[0080]
其中,x(k)表示第k时刻的预测状态,x(k+1)表示第k+1时刻的预测状态,x(k+2)表示第k+2时刻的预测状态,x(k+n)表示第k+n时刻的预测状态,i表示单位矩阵。
[0081]
令
[0082][0083][0084]
则上述矩阵可以表示为x
expand
=c
m_expand
·
x
e_expand
+x(k)。对应地,第k+1时刻到第k+n时刻内各时刻对应的预测状态可以用x
expand
表示,第k+1时刻到第k+n时刻也称为预测时域。
[0085]
s103:根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态。
[0086]
具体地,将机器人的末端的参考位置、关节的参考位置代入预设的导纳控制方程,得到第k时刻的期望状态,再根据第k时刻的期望状态以及机器人的运动规律,得到第k+1时刻到第k+n时刻对应的期望状态,即为预设时段内各时刻对应的期望状态。
[0087]
如图2所示,在一种可能的实现方式中,s103具体包括以下步骤。
[0088]
s201:根据所述机器人的末端的参考位置以及第一导纳控制方程,确定预设时段内各时刻对应的末端的期望位置。
[0089]
在一实施例中,第一导纳控制方程是基于笛卡尔空间的导纳控制方程,示例性的,第一导纳控制方程是其中,m表示惯性矩阵,b表示阻尼矩阵,k表示刚度矩阵,惯性矩阵、阻尼矩阵、刚度矩阵均为可调参数,可以根据期望值的交互特性确定。xr表示第k时刻的末端的参考位置,xc表示第k时刻的末端的期望位置,表示第k时刻的末端的期望位置对时间的一阶导数,表示第k时刻的末端的期望位置对时间的一阶导数,表示第k时刻的末端的参考位置对时间的二阶导数,示第k时刻的末端的期望位置对时间的二阶导数,f表示末端的受力。将惯性矩阵、阻尼矩阵、刚度
矩阵、第k时刻对应的末端的参考位置以及末端的受力输入第一导纳控制方程,即可得到第k时刻的末端的期望位置。
[0090]
示例性地,根据第一导纳控制方程确定第k时刻的末端的期望位置的流程如图3所示。将惯性矩阵、阻尼矩阵、刚度矩阵、第k时刻的末端的参考位置以及末端的受力按照图示运算过程进行运算,得到位置补偿值δx,根据公式xc=xr+δx即可得到第k时刻的末端的期望位置。其中,图3中,π表示乘法运算,∑表示加法运算,t表示积分运算。
[0091]
在确定第k时刻的末端的期望位置后,对第k时刻的末端的期望位置进行拓展,得到第k+1时刻到第k+n时刻末端的期望位置。示例性地,根据公式计算第k+1时刻到第k+n时刻末端的期望位置,其中,i=1、2、3
…
n,xc(k+i)表示第k+i时刻的末端的期望位置,x
current
表示第k+i时刻的上一时刻末端的期望位置,表示第k时刻的末端的期望位置对时间的一阶导数,也即第k时刻的末端的期望速度,t
pre
表示预测步长。
[0092]
s202:根据所述机器人的关节的参考位置以及第二导纳控制方程,确定预设时段内各时刻对应的关节的期望位置。
[0093]
在一实施例中,第二导纳控制方程是基于关节空间的导纳控制方程,示例性地,第二导纳控制方程是其中,其中,m表示惯性矩阵,b表示阻尼矩阵,k表示刚度矩阵,第二导纳控制方程中的惯性矩阵、阻尼矩阵、刚度矩阵均为可调参数,与第一导纳控制方程中的惯性矩阵、阻尼矩阵、刚度矩阵不同。qc表示第k时刻的关节的期望位置,qr表示第k时刻的关节的参考位置,表示第k时刻的关节的期望位置对时间的一阶导数,表示第k时刻的关节的参考位置的一阶导数,表示第k时刻的关节的期望位置对时间的二阶导数,表示第k时刻的关节的参考位置的二阶导数,τ表示关节的受力。将惯性矩阵、阻尼矩阵、刚度矩阵、第k时刻的关节的参考位置以及关节的受力输入第二导纳控制方程,即可得到第k时刻的关节的期望位置。
[0094]
在确定第k时刻的关节的期望位置后,对第k时刻的关节的期望位置进行拓展,得到第k+1时刻到第k+n时刻关节的期望位置。示例性地,根据公式计算第k+1时刻到第k+n时刻关节的期望位置,其中,qc(k+i)表示第k+i时刻的关节的期望位置,q
current
示第k+i时刻的上一时刻关节的期望位置,表示第k时刻的关节的期望位置对时间的一阶导数,也即第k时刻的关节的期望速度。
[0095]
通过基于笛卡尔空间的导纳控制方程以及基于关节空间的导纳控制方程确定期望状态,可以实现笛卡尔空间和关节空间的协同导纳,在不影响笛卡尔空间轨迹跟踪、柔顺交互的前提下,实现关节空间的柔顺交互。
[0096]
s203:根据预设时段内各时刻对应的末端的期望位置以及预设时段内各时刻对应的关节的期望位置,确定预设时段内各时刻对应的期望状态。
[0097]
具体地,在得到第k时刻的末端的期望位置以及所述第k时刻的关节的期望位置后,可以得到第k时刻的期望状态为对应地,第k+1时刻到第k+n时刻的期望状
态可以表示为也即也即
[0098]
其中,xd(k+i)表示第k+i时刻的期望状态,i=1,2,3...n。
[0099]
令x
d_expand
即表示预设时段内各时刻对应的期望状态。
[0100]
上述实施例中,通过分别确定预设时段内各时刻对应的末端的期望位置以及预设时段内各时刻对应的关节的期望位置,根据预设时段内各时刻对应的末端的期望位置以及预设时段内各时刻对应的期望位置,确定预设时段内各时刻对应的期望状态,可以实现机器人的末端和关节的协同控制,减少了关节调整和末端调整之间互相制约的问题。
[0101]
s104:根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据所述第k时刻的指令参数调整所述机器人各关节的位置。
[0102]
其中,根据预测状态以及期望状态求解指令参数的过程为优化求解的过程,指令参数可以是关节的指令参数,也可以是末端的指令参数,指令参数可以是速度、加速度、位置等参数。第k时刻的指令参数用于输入机器人的底层控制器,底层控制器根据指令参数即可调整机器人各关节的位置。
[0103]
如图4所示,在一种可能的实现方式中,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值的流程包括以下步骤。
[0104]
s401:根据所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数和约束条件。
[0105]
在一实施例中,第k时刻的指令参数可以采用模型预测控制(model predictive control,mpc)算法进行优化求解,优化求解的过程是在满足约束条件的情况下求解目标函数的最大值或最小值的过程中。示例性地,目标函数需要满足期望状态对预测状态的跟踪控制以及避免系统输入的关节的速度的突变,因此,需要求解期望状态与预测状态之间的差值的最小值以及,输入的关节的速度与关节的参考速度之间的最小值。
[0106]
在一实施例中,首先根据关节位置跟踪的优先级以及末端位置跟踪的优先级确定权重系数,根据权重系数、预设时段内各时刻对应的预测状态以及预设时段内各时刻对应的期望状态,确定目标函数。具体地,权重系数χ的形式为其中,χ
x
为末端位姿跟踪的控制权重,χq为关节位置跟踪的控制权重,当χ
x
》χq时,可以保证末端位置跟踪的任务的高优先级。当χ
x
《χq时,可以使得关节位置跟踪的任务被映射到末端轨迹跟踪的零空间,保证了关节位置跟踪任务的高优先级,即关节柔顺完全不影响末端轨迹跟踪和末端柔顺。根据机器人执行的任务确定关节位置跟踪的优先级以及末端位置跟踪的优先级,进而确定权重系数中χ
x
和χq的取值,在目标函数中,权重系数中的χ
x
和χq分别与末端对应的参数
以及关节对应的参数相乘,即可实现对关节位置跟踪的优先级以及末端位置跟踪的优先级的调整,进一步实现对机器人的灵活控制。
[0107]
在一实施例中,约束条件包括预设时段内各时刻对应的预测状态的范围阈值,以及第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值的范围阈值。其中,第k时刻的关节速度的补偿值是指第k时刻的关节的速度与第k时刻的关节的参考速度之间的差值第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值即为u
e_expand
。通过设定预测状态以及关节速度的补偿值的范围阈值,可以提高得到的指令参数的合理性,避免指令参数突变引起机器人不稳定的问题。
[0108]
示例性的,设置目标函数和约束条件为
[0109][0110]
其中,jk表示目标函数,min表示求最小值,s.t.表示约束条件,优化求解的过程即为在满足约束条件的情况下,求解jk的最小值的过程。α和β分别为系数,一般情况下α》》β。“||||”表示范数,
[0111][0112]
w表示松弛变量,用于描述预测状态与期望状态之间的误差值,
[0113][0114][0115]
o表示零矩阵表示关节的加速度极限,t表示积分时长,θ表示关节位置的上限,表示关节位置的下限。
[0116]
s402:根据所述目标函数和所述约束条件,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值。
[0117]
继续上述实施例,在满足约束条件的情况下,求解目标函数的最小值,目标函数最小值时,得到的u
e_expand
即为输出值,也即第k时刻到第k+n-1时刻内各时刻的关节速度的补
偿值。
[0118]
在一实施例中,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值u
e_expand
之后,u
e_expand
中的第一维即为第k时刻的关节的速度补偿值
[0119]
根据公式得到第k时刻的关节的速度,可以将第k时刻的关节的速度作为第k时刻的指令参数,其中,u(k-1)表示第k-1时刻的关节的速度。也可以在得到第k时刻的关节的速度后,根据公式qi=q
i_last
+u(k)
·
t
ctrl
计算第k时刻的关节的指令位置,将第k时刻的关节的指令位置作为第k时刻的指令参数。其中,qi第k时刻的关节的指令位置,q
i_last
表示第k-1时刻的关节的指令位置,t
ctrl
表示控制周期。
[0120]
通过确定目标函数和约束条件,根据目标函数和约束条件确定第k时刻的关节的速度补偿值,再根据第k时刻的关节的速度补偿值确定第k时刻的指令参数,可以使得得到的指令参数同时适应关节的调整和末端的调整,实现末端和关节的协同控制。
[0121]
本技术实施例中,通过对机器人的微分运动模型进行线性化处理,得到机器人的线性运动模型,从而将机器人运动过程中的求解问题转化为线性求解问题。之后,根据线性运动模型确定预设时段内各时刻对应的预测状态,以及根据机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;再根据预设时段内各时刻对应的预测状态、预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,再根据第k时刻的指令参数调整机器人各关节的位置,从而将机器人运动过程中的求解问题转化为线性优化求解问题,进而提高了计算准确度和计算效率。
[0122]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0123]
对应于上文实施例所述的机器人的控制方法,图5示出了本技术实施例提供的机器人的控制装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0124]
如图5所示,机器人的控制装置包括,
[0125]
模型确定模块51,用于确定机器人的线性运动模型,所述线性运动模型由所述机器人的微分运动模型线性化处理后得到;
[0126]
预测状态确定模块52,用于根据所述线性运动模型确定预设时段内各时刻对应的预测状态,所述预设时段表示第k+1时刻到第k+n时刻,其中,所述k和所述n均表示正整数;
[0127]
期望状态确定模块53,用于根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;
[0128]
指令参数确定模块54,用于根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据所述第k时刻的指令参数调整所述机器人各关节的位置。
[0129]
在一种可能的实现方式中,所述线性运动模型用于表示第k+1时刻的状态变化量与第k时刻的状态变化量、第k时刻的输入变量之间的线性关系,预测状态确定模块52具体用于:
[0130]
根据所述线性运动模型确定预设时段内各时刻对应的状态变化量;
[0131]
根据所述预设时段内各时刻对应的状态变化量,确定预设时段内各时刻对应的预测状态。
[0132]
在一种可能的实现方式中,所述期望状态确定模块53具体用于:
[0133]
根据所述机器人的末端的参考位置以及第一导纳控制方程,确定预设时段内各时刻对应的末端的期望位置;
[0134]
根据所述机器人的关节的参考位置以及第二导纳控制方程,确定预设时段内各时刻对应的关节的期望位置;
[0135]
根据预设时段内各时刻对应的末端的期望位置以及预设时段内各时刻对应的关节的期望位置,确定预设时段内各时刻对应的期望状态。
[0136]
在一种可能的实现方式中,所述指令参数确定模块54具体用于:
[0137]
根据所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数和约束条件;
[0138]
根据所述目标函数和所述约束条件,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值。
[0139]
在一种可能的实现方式中,所述指令参数确定模块54具体用于:
[0140]
根据关节位置跟踪的优先级以及末端位置跟踪的优先级确定权重系数;
[0141]
根据所述权重系数、所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数。
[0142]
在一种可能的实现方式中,所述约束条件包括所述预设时段内各时刻对应的预测状态的范围阈值,以及第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值的范围阈值。
[0143]
在一种可能的实现方式中,所述指令参数确定模块54具体用于:
[0144]
根据所述第k时刻的关节的速度补偿值,确定第k时刻的关节的速度;
[0145]
根据所述第k时刻的关节的速度以及第k-1时刻的关节的指令位置,确定第k时刻的关节的指令位置,将所述第k时刻的关节的指令位置作为第k时刻的指令参数。
[0146]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0147]
图6是本技术实施例提供的机器人的结构示意图。
[0148]
如图6所示,该实施例的机器人包括:处理器61、存储器62以及存储在所述存储器62中并可在所述处理器61上运行的计算机程序63。所述处理器61执行所述计算机程序63时实现上述机器人的控制方法实施例中的步骤,例如图1所示的步骤s101至s104。或者,所述处理器61执行所述计算机程序63时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块51至模块54的功能。
[0149]
示例性的,所述计算机程序63可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器62中,并由所述处理器61执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序63在所述机器人中的执行过程。
[0150]
本领域技术人员可以理解,图6仅仅是机器人的示例,并不构成对机器人的限定,
可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。
[0151]
所述处理器61可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0152]
所述存储器62可以是所述机器人的内部存储单元,例如机器人的硬盘或内存。所述存储器62也可以是所述机器人的外部存储设备,例如所述机器人上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器62还可以既包括所述机器人的内部存储单元也包括外部存储设备。所述存储器62用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
[0153]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0154]
在本技术所提供的实施例中,应该理解到,所揭露的装置/机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置/机器人实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0155]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0156]
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光
盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
[0157]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0158]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
技术特征:
1.一种机器人的控制方法,其特征在于,包括:确定机器人的线性运动模型,所述线性运动模型由所述机器人的微分运动模型线性化处理后得到;根据所述线性运动模型确定预设时段内各时刻对应的预测状态,所述预设时段表示第k+1时刻到第k+n时刻,其中,所述k和所述n均表示正整数;根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据所述第k时刻的指令参数调整所述机器人各关节的位置。2.根据权利要求1所述的方法,其特征在于,所述线性运动模型用于表示第k+1时刻的状态变化量与第k时刻的状态变化量、第k时刻的输入变量之间的线性关系,所述根据所述线性运动模型确定预设时段内各时刻对应的预测状态,包括:根据所述线性运动模型确定预设时段内各时刻对应的状态变化量;根据所述预设时段内各时刻对应的状态变化量,确定预设时段内各时刻对应的预测状态。3.根据权利要求1所述的方法,其特征在于,根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态,包括:根据所述机器人的末端的参考位置以及第一导纳控制方程,确定预设时段内各时刻对应的末端的期望位置;根据所述机器人的关节的参考位置以及第二导纳控制方程,确定预设时段内各时刻对应的关节的期望位置;根据所述预设时段内各时刻对应的末端的期望位置以及所述预设时段内各时刻对应的关节的期望位置,确定预设时段内各时刻对应的期望状态。4.根据权利要求1所述的方法,其特征在于,根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,包括:根据所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数和约束条件;根据所述目标函数和所述约束条件,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值。5.根据权利要求4所述的方法,其特征在于,根据所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数,包括:根据关节位置跟踪的优先级以及末端位置跟踪的优先级确定权重系数;根据所述权重系数、所述预设时段内各时刻对应的预测状态以及所述预设时段内各时刻对应的期望状态,确定目标函数。6.根据权利要求4所述的方法,其特征在于,所述约束条件包括所述预设时段内各时刻对应的预测状态的范围阈值,以及所述第k时刻到第k+n-1时刻内各时刻的关节速度的补偿
值的范围阈值。7.根据权利要求1所述的方法,其特征在于,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,包括:根据所述第k时刻的关节的速度补偿值,确定第k时刻的关节的速度;根据所述第k时刻的关节的速度以及第k-1时刻的关节的指令位置,确定第k时刻的关节的指令位置,将所述第k时刻的关节的指令位置作为第k时刻的指令参数。8.一种机器人的控制装置,其特征在于,包括:模型确定模块,用于确定机器人的线性运动模型,所述线性运动模型由所述机器人的微分运动模型线性化处理后得到;预测状态确定模块,用于根据所述线性运动模型确定预设时段内各时刻对应的预测状态,所述预设时段表示第k+1时刻到第k+n时刻,其中,所述k和所述n均表示正整数;期望状态确定模块,用于根据所述机器人的末端的参考位置、关节的参考位置,以及预设的导纳控制方程,确定预设时段内各时刻对应的期望状态;指令参数确定模块,用于根据所述预设时段内各时刻对应的预测状态、所述预设时段内各时刻对应的期望状态,确定第k时刻到第k+n-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据所述第k时刻的指令参数调整所述机器人各关节的位置。9.一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
技术总结
本申请适用于机器人领域,提供了机器人的控制方法、装置、机器人及存储介质。机器人的控制方法包括:确定机器人的线性运动模型,根据线性运动模型确定预设时段内各时刻对应的预测状态,确定预设时段内各时刻对应的期望状态;再根据预设时段内各时刻对应的预测状态、预设时段内各时刻对应的期望状态,确定第k时刻到第k+N-1时刻内各时刻的关节速度的补偿值,根据第k时刻的关节速度的补偿值确定第k时刻的指令参数,根据第k时刻的指令参数调整机器人各关节的位置。上述步骤将机器人运动过程中的求解问题转化为线性优化求解问题,从而提高了跟踪期望状态的准确度,同时保证了计算效率。率。率。
技术研发人员:曾献文 刘益彰 熊友军
受保护的技术使用者:深圳市优必选科技股份有限公司
技术研发日:2021.11.27
技术公布日:2022/3/8