机器人控制方法、装置、机器人及存储介质与流程

文档序号:28103205发布日期:2021-12-22 12:15阅读:73来源:国知局
机器人控制方法、装置、机器人及存储介质与流程

1.本技术属于机器人技术领域,尤其涉及一种机器人控制方法、装置、机器人及存储介质。


背景技术:

2.随着机器人技术的发展,机器人被广泛应用于工业制造、医疗、商业服务等各类应用场景中。在各类应用场景中,存在着需要机器人与其它物体或者人近距离接触的情况,例如机器人进行擦桌、擦鞋,或者与人进行握手交互等。在这些情况下,若通过普通的排斥外力的位置控制方法,由于位置精度需求较高且机器人刚度较大,位置一旦有偏差,则机器人与作业对象之间会产生过大的接触力,造成对作业对象以及机器人自身的损伤。
3.为了避免位置偏差造成对作业对象或者机器人的损伤,需要对机器人进行柔顺控制。柔顺控制相对于普通的位置控制方法,能够在受到外力时,控制机器人顺应这个外力进行运动,当外力撤销之后,再恢复之前的状态,即,柔顺控制为通过控制机器人适应外力进行惯性运动,以避免机器人与作业对象的刚性碰撞的控制方法。虽然现有的柔顺控制方法能够一定程度地减少机器人与作业对象之间的碰撞,然而,目前的机器人柔顺控制方法仍存在一定的缺陷。


技术实现要素:

4.有鉴于此,本技术实施例提供了机器人控制方法、装置、机器人及存储介质,以解决现有技术中如何安全准确地实现机器人的柔顺控制的问题。
5.本技术实施例的第一方面提供了一种机器人控制方法,包括:
6.获取机器人肢体关节的轨迹规划参数、末端受力数据和关节受力数据;
7.对所述末端受力数据进行笛卡尔空间导纳控制运算,得到机器人在笛卡尔空间上的末端导纳补偿量;
8.根据所述末端导纳补偿量和所述轨迹规划参数,确定所述末端导纳补偿量在关节空间上对应的第一关节参数值和第一松弛变量;所述第一松弛变量用于表示笛卡尔空间导纳控制的运动误差;
9.对所述关节受力数据进行关节空间导纳控制运算,得到所述机器人在所述关节空间上的关节导纳补偿量
10.根据所述第一关节参数值、所述第一松弛变量、所述关节导纳补偿量和所述轨迹规划参数,确定第二关节参数值;
11.根据所述第二关节参数值,确定目标关节指令位置;
12.根据所述目标关节指令位置,控制所述机器人进行运动。
13.本技术实施例的第二方面提供了一种机器人控制装置,包括:
14.获取单元,用于获取机器人肢体关节的轨迹规划参数、末端受力数据和关节受力数据;
15.第一导纳控制运算单元,用于对所述末端受力数据进行笛卡尔空间导纳控制运算,得到机器人在笛卡尔空间上的末端导纳补偿量;
16.第一关节参数值确定单元,用于根据所述末端导纳补偿量和所述轨迹规划参数,确定所述末端导纳补偿量在关节空间上对应的第一关节参数值和第一松弛变量;所述第一松弛变量用于表示笛卡尔空间导纳控制的运动误差;
17.第二导纳控制运算单元,用于对所述关节受力数据进行关节空间导纳控制运算,得到所述机器人在所述关节空间上的关节导纳补偿量
18.第二关节参数值确定单元,用于根据所述第一关节参数值、所述第一松弛变量、所述关节导纳补偿量和所述轨迹规划参数,确定第二关节参数值;
19.目标关节指令位置确定单元,用于根据所述第二关节参数值,确定目标关节指令位置;
20.运动控制单元,用于根据所述目标关节指令位置,控制所述机器人进行运动。
21.本技术实施例的第三方面提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得机器人实现如所述机器人控制方法的步骤。
22.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得机器人实现如所述机器人控制方法的步骤。
23.本技术实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行上述第一方面中任一项所述的机器人控制方法。
24.本技术实施例与现有技术相比存在的有益效果是:本技术实施例中,在获取机器人肢体关节的轨迹规划参数、末端受力数据和关节受力数据后,首先能够根据末端受力数据进行笛卡尔空间导纳控制运算,确定机器人在笛卡尔空间上的末端导纳补偿量,并根据轨迹规划参数求得该末端导纳补偿量映射到关节空间上的第一关节参数值和第一松弛变量;并且,能够根据关节受力数据进行关节空间导纳控制运算,确定该机器人在关节空间上的关节导纳补偿量;之后,根据基于末端导纳补偿量求得的第一关节参数值、第一松弛变量,以及关节导纳补偿量和轨迹规划参数,确定关节空间上的第二关节参数值,并根据该第二关节参数值确定目标关节指令位置,以控制机器人进行运动。由于第一关节参数值是基于笛卡尔空间导纳控制得到的末端导纳补偿量求解得到的,因此该第一关节参数值可以体现笛卡尔空间上的机器人柔顺控制;由于关节导纳补偿量是基于关节空间导纳控制运算得到的,因此该关节导纳补偿量可以体现关节空间上的柔顺控制;而第二关节参数值是根据第一关节参数值、第一松弛变量和关节导纳补偿量确定的,因此该第二关节参数值是在保证笛卡尔空间上实现作业任务的柔顺控制,且考虑笛卡尔空间导纳控制的运动误差的前提下,进一步结合关节空间上的柔顺控制条件得到的。进而使得,基于该第二关节参数值得到的目标关节指令位置控制机器人进行运动,能够在避免关节柔顺对末端位姿的影响的同时,实现笛卡尔空间导纳控制和关节空间导纳控制的有效结合,既能够避免末端位置误差产生过大接触力造成对作业对象或者机器人的损伤,同时又能够在关节空间上实现柔顺、动态避障的需求,从而安全准确地实现机器人的柔顺控制。
附图说明
25.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
26.图1是本技术实施例提供的一种机器人控制方法的实现流程示意图;
27.图2是本技术实施例提供的一种笛卡尔控制导纳控制运算的框图;
28.图3是本技术实施例提供的机器人控制方法的运算框图;
29.图4是本技术实施例提供的一种机器人控制装置的示意图;
30.图5是本技术实施例提供的机器人的示意图。
具体实施方式
31.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
32.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
33.在本技术的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
34.在机器人各类应用场景中,存在着需要机器人与其它物体或者人近距离接触的场景,例如机器人进行擦桌、擦鞋,或者与人进行握手交互等。在这些场景中,需要机器人具有一定的柔顺控制能力,避免位置误差产生过大接触力,造成作业对象/机器人的损伤。目前,存在着通过笛卡尔空间上的导纳控制或者关节空间上的导纳控制实现机器人柔顺控制的方法,然而,该机器人柔顺控制方法通常是在笛卡尔空间或者关节空间上的导纳控制随机选择一项,或者有些会将两项导纳控制分别独立实现,然而却不能将两项导纳控制有效地结合,导致关节导纳控制可能会影响机器人在笛卡尔空间准确的任务位置,因此现有的机器人柔顺控制方法存在一定的缺陷。
35.为了解决上述的技术问题,本技术实施例提供了一种机器人控制方法、装置、机器人及存储介质,包括:在获取机器人肢体关节的轨迹规划参数、末端受力数据和关节受力数据后,首先能够根据末端受力数据进行笛卡尔空间导纳控制运算,确定机器人在笛卡尔空间上的末端导纳补偿量,并根据轨迹规划参数求得该末端导纳补偿量映射到关节空间上的第一关节参数值和第一松弛变量;并且,能够根据关节受力数据进行关节空间导纳控制运算,确定该机器人在关节空间上的关节导纳补偿量;之后,根据基于末端导纳补偿量求得的第一关节参数值、第一松弛变量,以及关节导纳补偿量和轨迹规划参数,确定关节空间上的第二关节参数值,并根据该第二关节参数值确定目标关节指令位置,以控制机器人进行运动。
36.由于第一关节参数值是基于笛卡尔空间导纳控制得到的末端导纳补偿量求解得到的,因此该第一关节参数值可以体现笛卡尔空间上的机器人柔顺控制;由于关节导纳补偿量是基于关节空间导纳控制运算得到的,因此该关节导纳补偿量可以体现关节空间上的柔顺控制;而第二关节参数值是根据第一关节参数值、第一松弛变量和关节导纳补偿量确定的,因此该第二关节参数值是在保证笛卡尔空间上实现作业任务的柔顺控制,且考虑笛
卡尔空间导纳控制的运动误差的前提下,进一步结合关节空间上的柔顺控制条件得到的。进而使得,基于该第二关节参数值得到的目标关节指令位置控制机器人进行运动,能够在避免关节柔顺对末端位姿的影响的同时,实现笛卡尔空间导纳控制和关节空间导纳控制的有效结合,既能够避免末端位置误差产生过大接触力造成对作业对象或者机器人的损伤,同时又能够在关节空间上实现柔顺、动态避障的需求,从而安全准确地实现机器人的柔顺控制。另一方面,由于一开始能够获取机器人肢体关节的轨迹规划参数和受力数据(包括末端受力数据和关节受力数据),使得最终的目标关节指令位置是基于轨迹规划参数和受力数据得到的,从而能够实现机器人运动轨迹的规划和跟踪,实现力和位置的协同柔顺控制。
37.实施例一:
38.图1示出了本技术实施例提供的第一种机器人控制方法的流程示意图,该机器人控制方法的执行主体为机器人,详述如下:
39.在s101中,获取机器人肢体关节的轨迹规划参数、末端受力数据和关节受力数据。
40.本技术实施例中,轨迹规划参数为规划机器人肢体关节的运动轨迹的参数,可以用于描述机器人运动过程中所期望到达的参考位置。该轨迹规划参数可以由用户输入,也可以由机器人自身的路径规划算法生成。
41.末端受力数据为表示机器人的肢体末端所受的力的大小的数据,该末端受力数据可以由安装在机器人肢体末端的力传感器采集得到。
42.关节受力数据为表示机器人的关节处所受的力的大小的数据,该关节受力数据可以由安装在机器人肢体关节处的力传感器采集得到。
43.在s102中,对所述末端受力数据进行笛卡尔空间导纳控制运算,得到机器人在笛卡尔空间上的末端导纳补偿量。
44.本技术实施例中,笛卡尔空间导纳控制运算为在笛卡尔空间上进行导纳控制的算法。导纳控制指的是把机器人的控制器等效为导纳系统,输入为外力,输出的为机器人的机器人肢体所需到达的位置或者速度的柔顺控制方法。该笛卡尔空间为机器人在执行任务时与外界交互所依据的直角坐标系空间,该笛卡尔空间也可以称为任务空间或者操作空间。例如机器人与外界的人、物体的交互位置,可以通过该笛卡尔空间来进行位置描述,该笛卡尔空间的坐标系为三维坐标系,可以通过x、y、z(分别用于描述在三维坐标系中的x轴、y轴、z轴上的位置)三个参数来描述三维坐标位置,或者进一步通过x、y、z、φx、φy、φz来描述该三维坐标位置,其中,φx、φy、φz分别用于描述该三维坐标位置与x轴、y轴、z轴的夹角。
45.将采集到的机器人的末端受力数据输入笛卡尔空间的导纳控制器进行导纳控制运算,可以得到该机器人在笛卡尔空间上的末端导纳补偿量,该末端导纳补偿量为经过导纳控制运算得到的该末端受力数据给机器人肢体末端带来的在笛卡尔空间上的偏移量,该偏移量为指令输入数据与期望的参考数据之间的误差。该末端导纳补偿量可以为末端位置补偿量或者末端速度补偿量。其中,末端位置补偿量用于描述在笛卡尔空间上,输入的末端指令位置与期望的末端参考位置之间的差值;末端速度补偿量用于描述在笛卡尔空间上,实际输入的末端指令速度与期望的末端参考速度之间的差值。
46.在s103中,根据所述末端导纳补偿量和所述轨迹规划参数,确定所述末端导纳补偿量在关节空间上对应的第一关节参数值和第一松弛变量;所述第一松弛变量用于表示笛卡尔空间导纳控制的运动误差。
47.本技术实施例中,对于一个具有n个自由度的的机器人肢体来说,它的所有连杆位置可由一组n个关节变量来确定。这样的一组变量通常被称为n*1的关节矢量。所有关节矢量组成的空间称为关节空间。其中,n为大于0的正整数,“*”表示乘号。示例性地,该机器人肢体可以具有7个自由度,则该关节空间存在7个关节矢量,每个关节的关节位置或者关节角速度可以根据这7个关节矢量进行描述。
48.在得到末端导纳补偿量后,可以将该末端导纳补偿量加上轨迹规划参数携带的参考位置相关的信息,确定经过笛卡尔空间导纳控制后,机器人肢体末端在笛卡尔空间上实际所期望的末端控制量。之后,根据笛卡尔空间与关节空间的映射关系,确定该末端控制量转换到关节空间上对应的关节参数值,将此时得到的关节参数值称为第一关节参数值。其中,该关节参数值可以为关节位置或者关节角速度,即该第一关节参数值可以为第一关节位置或者第一关节角速度。
49.将末端控制量转换到关节空间上对应的第一关节参数值时,期望达到的末端控制量与通过第一关节参数值实际能够达到的末端控制量存在一定的偏差,该偏差即为笛卡尔空间导纳控制的运动误差,将其称为第一松弛变量。
50.在s104中,对所述关节受力数据进行关节空间导纳控制运算,得到所述机器人在所述关节空间上的关节导纳补偿量。
51.本技术实施例中,关节空间导纳控制运算为在关节空间上进行导纳控制的算法。将采集到的机器人的关节受力数据输入关节空间的导纳控制器进行导纳控制运算,可以得到该机器人在关节空间上的关节导纳补偿量。该关节导纳补偿量为经过导纳控制运算得到的该关节受力数据给机器人肢体关节带来的在关节空间上的偏移量。该关节导纳补偿量可以为关节位置补偿量或者关节速度补偿量。其中,为关节位置补偿量用于描述在关节空间上,输入的关节指令位置与期望的关节参考位置之间的差值,关节速度补偿量用于描述在关节空间上,实际输入的关节指令速度与期望的关节参考速度之间的差值。
52.在s105中,根据所述第一关节参数值、所述第一松弛变量、所述关节导纳补偿量和所述轨迹规划参数,确定第二关节参数值。
53.在确定了第一关节参数值、第一松弛变量、关节导纳补偿量后,将该第一关节参数值、关节导纳补偿量和轨迹规划参数中包含的关节空间上的参考位置信息进行相加,确定在关节空间上实际所需的指令控制量作为待定第二关节参数值。求解得到的待定第二关节参数值通常为多个,此时进一步在待定第二参数值中确定满足第一松弛变量的待定第二关节参数值作为最终的第二关节参数值。其中,第二参数值满足第一松弛变量,指的是第二关节参数值映射到笛卡尔空间上的实际末端控制量与期望的末端控制量的偏差等于该第一松弛变量。其中,该第二关节参数值可以为第二关节位置或者第二关节角速度。
54.在s106中,根据所述第二关节参数值,确定目标关节指令位置。
55.在确定第二关节参数值后,根据该第二关节参数值,得到需要输入该机器人的关节指令位置作为目标关节指令位置。在一个实施例中,该第二关节参数值为第二关节位置,则可以直接以该第二关节位置作为目标关节指令位置。
56.在s107中,根据所述目标关节指令位置,控制所述机器人进行运动。
57.在确定目标关节指令位置后,将该目标关节指令位置输入机器人的关节位置控制器,即可实现对机器人的运动控制,使得机器人柔顺运动地到所期望的轨迹规划位置。
58.本技术实施例中,由于第一关节参数值是基于笛卡尔空间导纳控制得到的末端导纳补偿量求解得到的,因此该第一关节参数值可以体现笛卡尔空间上的机器人柔顺控制;由于关节导纳补偿量是基于关节空间导纳控制运算得到的,因此该关节导纳补偿量可以体现关节空间上的柔顺控制;而第二关节参数值是根据第一关节参数值、第一松弛变量和关节导纳补偿量确定的,因此该第二关节参数值是在保证笛卡尔空间上实现作业任务的柔顺控制,且考虑笛卡尔空间导纳控制的运动误差的前提下,进一步结合关节空间上的柔顺控制条件得到的。进而使得,基于该第二关节参数值得到的目标关节指令位置控制机器人进行运动,能够在避免关节柔顺对末端位姿的影响的同时,实现笛卡尔空间导纳控制和关节空间导纳控制的有效结合,既能够避免末端位置误差产生过大接触力造成对作业对象或者机器人的损伤,同时又能够在关节空间上实现柔顺、动态避障的需求,从而安全准确地实现机器人的柔顺控制。另一方面,由于一开始能够获取轨迹规划参数和受力数据(包括末端受力数据和关节受力数据),使得最终的目标关节指令位置是基于轨迹规划参数和受力数据得到的,从而能够实现机器人运动轨迹的规划和跟踪,实现力和位置的协同柔顺控制。
59.可选地,上述的步骤s102,包括:
60.根据所述末端受力数据和预设的笛卡尔空间导纳系数,确定所述笛卡尔空间上的末端导纳补偿量;所述笛卡尔空间导纳系数包括第一惯性矩阵、第一阻尼矩阵和第一刚度矩阵。
61.本技术实施例中,笛卡尔空间导纳控制运算具体根据预设的笛卡尔空间导纳系数进行,该笛卡尔空间导纳系数包括第一惯性矩阵、第一阻尼矩阵和第一刚度矩阵。第一惯性矩阵、第一阻尼矩阵和第一刚度矩阵指的是在笛卡尔空间上预设的惯性矩阵、阻尼矩阵和刚度矩阵。本技术中,惯性矩阵为用于描述期望的阻抗模型的惯性特征的矩阵,阻尼矩阵为用于描述该阻抗模型的阻尼特征的矩阵,刚度矩阵为用于描述该阻抗模型的刚度特征的矩阵。
62.在一个实施例中,可以通过以下的第一预设控制方程实现笛卡尔空间的导纳控制运算:
[0063][0064]
其中,m1表示第一惯性矩阵,b1表示第一阻尼矩阵,k1表示第一刚度矩阵;x
r
、分别表示笛卡尔空间上期望的末端参考位置、末端参考速度、末端参考加速度;x
c
分别表示笛卡尔空间的末端指令位置、末端指令速度、末端指令加速度;f表示末端受力数据。
[0065]
具体地,上述末端指令位置与末端参考位置的差值称为末端位置补偿量δx,δx=(x
c

x
r
);上述末端指令速度与末端参考速度的差值称为末端速度补偿量);上述末端指令速度与末端参考速度的差值称为末端速度补偿量上述末端指令加速度与末端参考加速度的差值称为末端加速度补偿量上述末端指令加速度与末端参考加速度的差值称为末端加速度补偿量基于末端受力数据进行笛卡尔空间导纳控制运算得到的末端导纳补偿量可以为前述的末端位置补偿量δx或者末端速度补偿量
[0066]
具体地,在实际导纳控制运算中,上述的第一预设控制方程可以转化为第二预设控制方程:
[0067][0068]
其中,为当前控制周期t待求解的末端加速度补偿量;δx(t

1)分别为已知的上一控制周期(t

1)的末端速度补偿量、末端位置补偿量;该δx(t

1)初始为0(即当前控制周期为第一个控制周期,不存在上一控制周期的初始状态下为0)。根据上述预设的笛卡尔空间导纳系数、获取的末端受力数据f以及已知的δx(t

1),可以求解得到当前控制周期t的末端加速度补偿量将该末端加速度补偿量进行积分,即可得到当前控制周期的末端速度补偿量将当前控制周期的末端速度补偿量进一步进行积分,即可得到当前控制周期的末端位置补偿量δx(t)。
[0069]
示例性地,根据上述的第二预设控制方程进行的笛卡尔空间导纳控制的运算框图如图2所示。在图2中,各个字符的含义与以上的相关描述相同;此外,“t”表示积分运算,“∏”表示乘法运算,“∑”表示加法运算。
[0070]
本技术实施例中,由于能够根据预设的笛卡尔导纳系数准确地进行笛卡尔空间导纳控制运算,因此能够准确地得到笛卡尔空间上的末端导纳补偿量,准确地实现笛卡尔空间上的柔顺控制。
[0071]
可选地,上述的步骤s104包括:
[0072]
根据所述关节受力数据和预设的关节空间导纳系数,确定所述关节空间上的关节导纳补偿量;所述关节空间导纳系数包括第二惯性矩阵、第二阻尼矩阵和第二刚性矩阵。
[0073]
本技术实施例中,关节空间导纳控制运算具体根据预设的关节空间导纳系数进行,该关节空间导纳系数包括第二惯性矩阵、第二阻尼矩阵和第二刚度矩阵。第二惯性矩阵、第二阻尼矩阵和第二刚度矩阵指的是在关节空间上预设的惯性矩阵、阻尼矩阵和刚度矩阵。
[0074]
在一个实施例中,可以通过以下的第三预设控制方程实现关节空间的导纳控制运算:
[0075][0076]
其中,m2表示第二惯性矩阵,b2表示第二阻尼矩阵,k2表示第二刚度矩阵;q
r
、q
r
分别表示关节空间上期望的关节参考位置、关节参考速度、关节参考加速度;q
c
分别表示关节空间的关节指令位置、关节指令速度、关节指令加速度;τ表示关节受力数据。
[0077]
具体地,上述关节指令位置与关节参考位置的差值称为关节位置补偿量δq,δq=(q
c

q
r
);上述关节指令速度与关节参考速度的差值称为关节速度补偿量);上述关节指令速度与关节参考速度的差值称为关节速度补偿量上述关节指令加速度与关节参考加速度的差值称为关节加速度补偿量上述关节指令加速度与关节参考加速度的差值称为关节加速度补偿量基于关节受力数据进行关节空间导纳控制运算得到的关节导纳补偿量可以为前述的关节位置补偿量δq或者关节速度补偿量
[0078]
具体地,在实际导纳控制运算中,上述的第三预设控制方程可以转化为第三预设控制方程:
[0079]
[0080]
其中,为当前控制周期t待求解的关节加速度补偿量;分别为已知的上一控制周期(t

1)的关节速度补偿量、关节位置补偿量;该δq(t

1)初始为0(即当前控制周期为第一个控制周期,不存在上一控制周期的初始状态下为0)。根据上述预设的关节空间导纳系数、获取的关节受力数据τ以及已知的δq(t

1),可以求解得到当前控制周期t的关节加速度补偿量将该关节加速度补偿量进行积分,即可得到当前控制周期的关节速度补偿量将当前控制周期的关节速度补偿量进一步进行积分,即可得到当前控制周期的关节位置补偿量δq(t)。根据上述的第四预设控制方程进行的关节空间导纳控制的运算流程与图2所示的笛卡尔空间导纳控制的运算流程类似,此处不再重复示出。
[0081]
本技术实施例中,由于能够根据预设的关节导纳系数准确地进行关节空间导纳控制运算,因此能够准确地得到关节空间上的关节导纳补偿量,准确地实现关节空间上的柔顺控制。
[0082]
可选地,所述第一关节参数值为第一关节角速度,所述第二关节参数值为第二关节角速度,对应地,上述的步骤s106,包括:
[0083]
对所述第二关节角速度进行积分运算,得到目标关节指令位置。
[0084]
本技术实施例中,机器人在笛卡尔空间上确定的末端导纳补偿量具体为末端速度补偿量根据该末端速度补偿量和轨迹规划参数确定的第一关节参数值具体为第一关节角速度对应地,根据该第一关节角速度、关节导纳补偿量和轨迹规划参数确定的第二关节参数值具体为第二关节角速度对应地,在步骤s106中,具体对该第二关节角速度进行积分运算,从而得到当前控制周期的目标关节指令位置q
c
(t)。具体地,其中q
c
(t

1)为上一控制周期的关节指令位置。
[0085]
本技术实施例中,由于当得到的第二关节参数值为第二关节角速度时,能够通过积分运算,准确地得到当前控制周期的目标关节指令位置,从而使得机器人能够根据该目标关节指令位置准确地实现柔顺运动。
[0086]
可选地,所述轨迹规划参数包括末端参考位置、末端参考速度、关节参考位置、关节参考速度中的任意一项。
[0087]
本技术实施例中,轨迹规划参数可以为在笛卡尔空间上进行轨迹规划得到的参数,此时该轨迹规划参数可以为轨迹规划所期望的末端参考位置x
r
或者末端参考速度或者,轨迹规划参数可以为在关节空间上进行轨迹规划得到的参数,此时该轨迹规划参数可以为轨迹规划所期望的的关节参考位置q
r
或者关节参考速度
[0088]
本技术实施例中,该机器人控制方法灵活地以末端参考位置、末端参考速度、关节参考位置、关节参考速度中的任意一项作为轨迹规划参数进行输入,从而提高机器人控制方法的灵活性。
[0089]
可选地,上述的步骤s103,包括:
[0090]
根据所述末端导纳补偿量、所述轨迹规划参数和预设的关节位置范围,求解预设的第一约束方程,使得所述第一约束方程中的第一松弛变量的二范数值最小,得到第一关
节参数值和第一松弛变量;
[0091]
其中,所述第一约束方程用于约束所述笛卡尔空间上的第一控制量与所述关节空间上对应的第一关节参数值的关系,所述第一控制量基于所述末端导纳补偿量和所述轨迹规划参数得到,所述第一松弛变量用于描述所述第一关节参数值乘以预设的雅克比矩阵的结果与所述第一控制量的偏差值。
[0092]
本技术实施例中,预设的关节位置范围可以为q
min
<q<q
max
,其中,q
max
、q
min
均为实数,分别用于表示机器人的关节角度位置的上、下限位。
[0093]
在一个实施例中,当末端导纳补偿量为末端速度补偿量第一关节参数值为第一关节角速度时,该第一约束方程如下:
[0094][0095]
其中:
[0096]
j表示预设的雅克比矩阵,用于描述关节空间和笛卡尔空间之间的微分运动映射关系,其可以提前根据机器人当前的关节位置状态计算得到。
[0097]
表示第一关节角速度;w1表示第一松弛变量;表示经过笛卡尔空间导纳控制计算得到的末端速度补偿量。
[0098]
表示末端参考速度,当轨迹规划参数为末端参考速度时,则该可以直接从该轨迹规划参数输入接口中获取,当轨迹规划参数为末端参考位置时,则该可以根据末端参考位置在当前控制周期内进行微分得到;当该轨迹规划参数为关节参考速度或者关节参考位置时,则
[0099]
表示在关节空间上规划的关节参考速度对应在笛卡尔空间上的末端速度,其中,q
r
为当前控制周期t规划的关节空间上的关节参考位置;q
r_last
表示上一控制周期t

1规划的关节空间上的关节参考位置。若当前的轨迹规划参数具体为笛卡尔空间上的末端参考速度或者末端参考位置时,等于0。
[0100]
x
respect
表示最终结合笛卡尔空间导纳控制和关节空间导纳控制确定的目标末端参考位置,具体地,其中,x
init
表示本控制周期机器人末端的初始位姿;t表示当前控制周期.。
[0101]
x
command
表示最终结合笛卡尔空间导纳控制和关节空间导纳控制确定的末端指令位置。具体地,x
command
=f(q
c
),f()表示机器人正运动学函数,q
c
表示目标关节指令位置。
[0102]
k为预设的比例系数。
[0103]
上述的等式右边即构成了笛卡尔空间上的第一控制量。
[0104]
在本实施例中,在预设的关节位置范围q
min
<q<q
max
内求解满足第一约束方程:且使得第一松弛变量w1的二范数||w1||最小的第一关节速度作为第一关节参数值。上述的第一关节参数值和第一松弛变量的求解约束条件(称为第一约束条件)可以归纳为:
[0105][0106]
具体地,通过上述的第一约束条件求解到的值包括使得||w1||最小的第一松弛变量w1以及第一关节速度其中,满足该第一约束条件的第一关节速度可能存在多个,即求解到的第一关节参数值实际为第一关节速度集合。
[0107]
在另一个实施例中,当末端导纳补偿量为末端位置补偿量δx,第一关节参数值为第一关节位置q1时,该第一约束方程如下:
[0108]
j
·
q1‑
w1=δx+x
r
+x
r_from_qr
+k(x
respect

x
command
)
[0109]
其中,δx表示末端位置补偿量,q1表示第一关节位置,x
r
表示末端参考位置;表示在关节空间上规划的关节参考位置q
r
对应在笛卡尔空间上的末端位置,x
r_from_qr
=j
·
q
r
,j、w1、k、x
respect
、x
command
与上一实施例的定义相同。
[0110]
本技术实施例中,由于能够根据末端导纳补充量、轨迹规划参数和预设的关节位置范围以及第一约束方程准确地求解得到第一关节参数值和第一松弛变量,从而能够准确地确定末端受力数据经过笛卡尔空间导纳控制后在关节空间上所产生的影响,以便后续根据该第一关节参数值准确地确定后续的目标关节指令位置,安全有效地实现机器人的柔顺控制。
[0111]
可选地,上述的步骤s105,包括:
[0112]
根据所述第一关节参数值、所述第一松弛变量、所述关节导纳补偿量、所述轨迹规划参数和所述关节位置范围,求解预设的第一约束方程,使得所述第一约束方程中的第一松弛变量的二范数值最小,得到第一关节参数值和第一松弛变量;
[0113]
其中,所述第二约束方程用于约束所述关节空间上的第二控制量与所述关节空间上对应的第二关节参数值的关系,所述第二控制量基于所述第一关节参数值、所述关节导纳补偿量和所述轨迹规划参数得到,所述第二松弛变量用于描述所述第二关节参数值与所述第二控制量的偏差值。
[0114]
在一个实施例中,当关节导纳补偿量为关节位置补偿量,第二关节参数值为第二关节位置时,该第二约束方程如下:
[0115]
q2‑
w2=(q
r
+δq+∫q1)
[0116]
其中,q
r
表示在关节空间上规划得到的关节参考位置,δq表示关节位置补偿量,q2表示第二关节参数值,(q
r
+δq+∫q1)表示第二控制量,w2表示第二松弛变量。
[0117]
在本实施例中,在满足第一约束条件(即根据第一约束方程求得得到第一关节参数值和第一松弛变量)的前提下,进一步求解满足第二约束方程:q2‑
w2=(q
r
+δq+∫q1),且使得第二松弛变量w1的二范数||w2||最小的第二关节位置q2作为第二关节参数值。上述的第二关节参数值的求解约束条件(称为第二约束条件)可以归纳为:
[0118][0119]
具体地,通过上述的第二约束条件求解到的值包括使得||w2||最小的第二松弛变量w2以及第二关节位置q2。
[0120]
在另一个实施例中,当关节导纳补偿量为关节速度补偿量,第二关节参数值为第二关节角速度时,该第二约束方程如下:
[0121][0122]
其中,表示在关节空间上规划得到的关节参考位置,表示关节位置补偿量,表示第二关节参数值,表示第二控制量,w2表示第二松弛变量。
[0123]
本技术实施例中,由于能够根据第一关节参数值、第一松弛变量和关节导纳补充量、轨迹规划参数和预设的关节位置范围以及第二约束方程准确地求解得到第二关节参数值,以便后续根据该第二关节参数值准确地确定目标关节指令位置,安全有效地实现机器人的柔顺控制。
[0124]
示例性地,本技术实施例的机器人控制方法的运算框图可以如图3所示,通过笛卡尔空间导纳运算和关节空间导纳控制运算的有序结合,实现多空间协同柔顺控制。图3中示出的符号和相关表达式的含义与上面出现的同样的符号和表达式的含义相同。在进行笛卡尔空间导纳控制运算得到末端速度补偿量后,结合轨迹规划参数中的末端参考速度在第一求解器中,求解得到满足第一约束条件的第一关节参数值q1、和第一松弛变量w1。并且,在进行关节控制导纳控制运算得到关节位置补偿量δq后,结合轨迹规划参数中的关节参考位置q
r
,在第二求解器中,求解得到满足第二约束条件的第二关节参数值q2、和第二松弛变量w2。之后根据该第二关节参数值q2,得到目标关节指令位置q
c
。将该目标关节指令位置q
c
输入至机器人的关节位置控制器中,即可使得机器人按照该目标关节指令位置进行柔顺运动。
[0125]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0126]
实施例二:
[0127]
图4示出了本技术实施例提供的一种机器人控制装置的结构示意图,为了便于说明,仅示出了与本技术实施例相关的部分:
[0128]
该机器人控制装置包括:获取单元41、第一导纳控制运算单元42、第一关节参数值确定单元43、第二导纳控制运算单元44、第二关节参数值确定单元45、目标关节指令位置确定单元46和运动控制单元47。其中:
[0129]
获取单元41,用于获取机器人肢体关节的轨迹规划参数、末端受力数据和关节受力数据;
[0130]
第一导纳控制运算单元42,用于对所述末端受力数据进行笛卡尔空间导纳控制运算,得到机器人在笛卡尔空间上的末端导纳补偿量;
[0131]
第一关节参数值确定单元43,用于根据所述末端导纳补偿量和所述轨迹规划参数,确定所述末端导纳补偿量在关节空间上对应的第一关节参数值和第一松弛变量;所述第一松弛变量用于表示笛卡尔空间导纳控制的运动误差;
[0132]
第二导纳控制运算单元44,用于对所述关节受力数据进行关节空间导纳控制运算,得到所述机器人在所述关节空间上的关节导纳补偿量
[0133]
第二关节参数值确定单元45,用于根据所述第一关节参数值、所述第一松弛变量、所述关节导纳补偿量和所述轨迹规划参数,确定第二关节参数值;
[0134]
目标关节指令位置确定单元46,用于根据所述第二关节参数值,确定目标关节指令位置;
[0135]
运动控制单元47,用于根据所述目标关节指令位置,控制所述机器人进行运动。
[0136]
可选地,所述第一导纳控制运算单元42,具体用于根据所述末端受力数据和预设的笛卡尔空间导纳系数,确定所述笛卡尔空间上的末端导纳补偿量;所述笛卡尔空间导纳系数包括第一惯性矩阵、第一阻尼矩阵和第一刚度矩阵。
[0137]
可选地,所述第二导纳控制运算单元44,具体用于根据所述关节受力数据和预设的关节空间导纳系数,确定所述关节空间上的关节导纳补偿量;所述关节空间导纳系数包括第二惯性矩阵、第二阻尼矩阵和第二刚性矩阵。
[0138]
可选地,所述第一关节参数值为第一关节角速度,所述第二关节参数值为第二关节角速度,对应地,所述目标关节指令位置确定单元46,具体用于对所述第二关节角速度进行积分运算,得到目标关节指令位置。
[0139]
可选地,所述第一关节参数值确定单元43,具体用于根据所述末端导纳补偿量、所述轨迹规划参数和预设的关节位置范围,求解预设的第一约束方程,使得所述第一约束方程中的第一松弛变量的二范数值最小,得到第一关节参数值和第一松弛变量;其中,所述第一约束方程用于约束所述笛卡尔空间上的第一控制量与所述关节空间上对应的所述第一关节参数值的关系,所述第一控制量基于所述末端导纳补偿量和所述轨迹规划参数得到,所述第一松弛变量用于描述所述第一关节参数值乘以预设的雅克比矩阵的结果与所述第一控制量的偏差值。
[0140]
可选地,所述第二关节参数值确定单元45,具体用于根据所述第一关节参数值、所述第一松弛变量、所述关节导纳补偿量、所述轨迹规划参数和所述关节位置范围,在满足所述第一约束方程的前提下且求解预设的第二约束方程,使得所述第二约束方程中的第二松
弛变量的二范数值最小,得到第二关节参数值;其中,所述第二约束方程用于约束所述关节空间上的第二控制量与所述关节空间上对应的所述第二关节参数值的关系,所述第二控制量基于所述第一关节参数值、所述关节导纳补偿量和所述轨迹规划参数得到,所述第二松弛变量用于描述所述第二关节参数值与所述第二控制量的偏差值。
[0141]
可选地,,所述轨迹规划参数包括末端参考位置、末端参考速度、关节参考位置、关节参考速度中的任意一项。
[0142]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0143]
实施例三:
[0144]
图5是本技术一实施例提供的机器人的示意图。如图5所示,该实施例的机器人5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如机器人控制程序。所述处理器50执行所述计算机程序52时实现上述各个机器人控制方法实施例中的步骤,例如图1所示的步骤s101至s107。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所获取单元41至运动控制单元47的功能。
[0145]
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述机器人5中的执行过程。
[0146]
所述机器人可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是机器人5的示例,并不构成对机器人5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。
[0147]
所称处理器50可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0148]
所述存储器51可以是所述机器人5的内部存储单元,例如机器人5的硬盘或内存。所述存储器51也可以是所述机器人5的外部存储设备,例如所述机器人5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器51还可以既包括所述机器人5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0149]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上
描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0150]
在本技术所提供的实施例中,应该理解到,所揭露的装置/机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置/机器人实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0151]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0152]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0153]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0154]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1