发明内容
有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种阻抗控制方法、装置、阻抗控制器和机器人。
本发明的一实施例提供一种阻抗控制方法,包括:
获取机械臂当前在关节空间的关节运动信息和关节受力信息以及末端受到的实际交互力,根据所述关节运动信息通过正运动学求解所述末端在任务空间的实际运动信息;
利用当前环境信息和在所述任务空间预先规划的末端期望交互力计算所述末端的修正期望轨迹,根据所述关节受力信息、所述实际交互力、所述末端的所述实际运动信息和包含所述修正期望轨迹的末端期望信息计算所述机械臂在所述关节空间的阻抗控制力矩;
构建所述机械臂的动力学方程,根据所述动力学方程中的非线性项确定补偿力矩;
根据所述阻抗控制力矩和所述补偿力矩对所述机械臂进行关节力矩控制。
在一种实施例中,所述动力学方程为所述机械臂在所述任务空间的动力学方程,所述任务空间的动力学方程的构建包括:
构建所述机械臂在所述关节空间的动力学方程;
基于各关节与所述末端之间的运动关系将所述关节空间的动力学方程转换为所述任务空间的动力学方程。
在一种实施例中,所述当前环境信息包括当前的环境等效刚度和环境位置;所述利用当前环境信息和在所述任务空间预先规划的末端期望交互力计算所述末端的修正期望轨迹,包括:
根据当前的所述环境等效刚度、所述环境位置和所述末端期望交互力按照如下公式计算得到所述末端的修正期望轨迹;
其中,
表示修正期望轨迹;x
f表示环境位置;K
eq表示环境等效刚度;F
ref表示末端期望交互力。
在一种实施例中,所述实际运动信息包括所述末端当前的实际位置和实际速度,所述末端期望信息包括所述末端当前的期望速度、期望加速度和所述修正期望轨迹;
所述根据所述关节受力信息、所述实际交互力、所述末端的所述实际运动信息和包含所述修正期望轨迹的末端期望信息计算所述机械臂在所述关节空间的阻抗控制力矩,包括:
根据所述修正期望轨迹与所述实际位置之间的位置偏差、所述期望速度和所述实际速度之间的速度偏差和所述实际交互力基于弹簧-质量-阻尼模型计算在所述任务空间的阻尼控制量;
将所述关节受力信息由所述关节空间转换为所述任务空间,根据所述阻尼控制量、所述期望加速度和转换后的关节受力信息计算在所述任务空间的加速度控制量;
根据所述任务空间的所述加速度控制量基于雅克比矩阵计算所述机械臂在所述关节空间的阻抗控制力矩。
在一种实施例中,所述关节运动信息包括各关节的角位移和角速度;所述根据所述关节运动信息通过正运动学求解所述末端在任务空间的实际运动信息,包括:
根据所述各关节的角位移和角速度通过正运动学求解所述末端在所述任务空间的所述实际位置、所述实际速度;
所述机械臂各关节的所述角位移q、所述角速度
所述末端的所述实际位置x,所述实际速度
满足如下公式:
x=f(q);
其中,f(q)表示关节角位移与末端位置之间的映射关系;J为雅克比矩阵。
在一种实施例中,所述构建所述机械臂在所述关节空间的动力学方程,包括:
根据获取的在所述关节空间的所述关节运动信息计算所述机械臂受到的作用力向量、离心力与科式力矩阵、以及重力向量;
根据所述作用力向量、所述离心力与科式力矩阵、所述重力向量、所述实际交互力和所述关节受力信息构建所述机械臂在关节空间的动力学方程。
在一种实施例中,所述任务空间的动力学方程中的所述非线性项包括含所述离心力与科式力矩阵的第一非线性项和含所述重力向量的第二非线性项;
将所述第一非线性项和所述第二非线性项进行叠加,以作为在所述任务空间中进行非线性补偿的补偿力矩。
本发明的一实施例还提供一种阻抗控制装置,包括:
信息获取模块,用于获取机械臂当前在关节空间的关节运动信息和关节受力信息以及末端受到的实际交互力,根据所述关节运动信息通过正运动学求解所述末端在任务空间的实际运动信息;
阻抗控制量计算模块,利用当前环境信息和在所述任务空间预先规划的末端期望交互力计算所述末端的修正期望轨迹,根据所述关节受力信息、所述实际交互力、所述末端的所述实际运动信息和包含所述修正期望轨迹的末端期望信息计算得到所述机械臂在所述关节空间的阻抗控制力矩;
补偿量计算模块,用于构建所述机械臂的动力学方程,根据所述动力学方程中的非线性项确定补偿力矩;
力矩控制模块,用于根据所述阻抗控制力矩和所述补偿力矩对所述机械臂进行关节力矩控制。
本发明的一实施例还提供一种阻抗控制器,所述阻抗控制器包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述的阻抗控制方法。
本发明的一实施例还提供一种机器人,采用上述的阻抗控制器进行机械臂力矩控制。
本发明的一实施例还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时,实施上述的阻抗控制方法。
本发明的实施例具有如下优点:
本发明实施例的阻抗控制方法通过考虑环境因素,利用力传感器信息和环境信息对阻抗控制律进行修正,以实现方向解耦的阻抗控制,不仅有利于提高对力控机械臂的控制精度,同时也有利于提高机械臂的柔顺性和安全性,有助于增强其在人机交互方面的应用。此外,通过实时补偿动力学中的非线性项,使机器人动力学方程线性化,从而简化力控机械臂的控制复杂度等。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
示范性地,以一力控型机械臂(或者力控机器人)为例,该机械臂具有n个自由度,且末端执行器(以下简称末端)在执行任务时所需自由度为m,为使末端与外界环境交互时具有柔顺性,通常采用在笛卡尔空间中进行阻抗控制。然而,机械臂末端在执行笛卡尔空间的阻抗任务时,由于末端质量矩阵(或惯量矩阵)的耦合性,使得末端所表现出来的阻抗行为也具有方向耦合性,即若只受垂直方向的力时,另外两个不受外力方向也会产生运动,从而与预先规划的轨迹将产生偏差等。
例如,如图1所示,假设让该机械臂末端与一个具有弹性的平面(xy平面)接触,接触力方向是z向,并保持接触力大小(设定为10N)恒定的同时循环画圆。当采用通用的阻抗控制方法时,此时,由于机器人动力学中的惯性矩阵M在xyz方向上是耦合的,导致末端在该xy平面的圆轨迹会受z方向的力影响,从而与期望轨迹产生偏差,如图2所示。通常,理想的场景应该是哪个方向受到外力,就在哪个方向产生柔顺运动而其他方向不受影响,图2所示的现象正是由于末端的惯性矩阵在各个方向上具有耦合性导致的。另外,通过对末端进行期望力跟踪还发现,末端受到的实际交互力无法达到10N的期望交互力,如图3所示。
基于上述问题,本发明实施例提出一种阻抗控制方法,通过利用力传感器信息和环境信息对阻抗控制律进行修正,实现方向解耦的阻抗控制,不仅有利于提高对力控机械臂的控制精度,同时也有利于提高机械臂的柔顺性和安全性,有助于增强其在人机交互方面的应用。此外,考虑到任务通常是由末端执行的,还通过实时补偿动力学方程中的非线性项,从而简化力控机械臂的控制复杂度等。
实施例1
请参照图4,本实施例提出一种阻抗控制方法,可应用于具有冗余自由度及末端具有自由度的机械臂或机器人等的力矩控制。由于该阻抗控制方法针对的是在笛卡尔空间的阻抗控制,即机械臂末端在笛卡尔空间中执行任务,故本实施例中的笛卡尔空间也称为任务空间。
下面对该阻抗控制方法进行详细说明。
步骤S110,获取机械臂当前在关节空间的关节运动信息和关节受力信息以及末端受到的实际交互力,根据该关节运动信息通过正运动学求解末端在任务空间的实际运动信息。
在一种实施例中,该末端的实际运动信息主要包括该末端在当前任务空间的实际位置、实际速度等。示范性地,可先通过获取到每个时刻该机械臂在关节空间中各关节的关节运动信息,再基于机器人的各关节与末端之间的运动学关系,即通过正向运动学求解出该机械臂末端在任务空间的实际运动信息。
例如,该关节运动信息可包括各关节的角位移q和角速度
其中q和
与关节相关,均为n*1的列向量,n为机械臂的自由度。具体地,可通过设置在各关节对应位置的角位移传感器或位置编码器等采集对应关节的角位移,再通过对该角位移进行差分以得到对应的角速度。或者,也可以通过相应的角速度传感器来直接测量得到各关节的角速度。
于是,根据机器人的关节与末端之间的运动关系计算得到当前时刻末端的实际位置x,实际速度
即满足如下公式:
x=f(q);
其中,x、
均为m*1列向量,m为机械臂末端的自由度;f(q)表示关节角位移与末端位置之间的映射关系,可通过机器人正运动学计算得到;J为m*n的雅克比矩阵,表示关节速度与末端线速度之间的映射关系。
上述的末端受到的实际交互力,即为末端与环境之间的相互作用力,可通过设置在末端处的力传感器进行测量得到,如六维力传感器等。
上述的关节受力信息是指机械臂受到环境的作用力而在各个关节所产生的外力矩,具体地,可通过各关节对应的力矩传感器采集得到。
步骤S120,利用当前环境信息和在任务空间预先规划的末端期望交互力计算方法末端的修正期望轨迹,根据该关节受力信息、该末端受到的实际交互力、以及该末端的实际运动信息和包含该修正期望轨迹的末端期望信息计算机械臂在关节空间的阻抗控制力矩。
为使机械臂完成相应任务,通常按照预先规划好的末端期望轨迹对机械臂进行相应控制。示范性地,该机械臂的末端期望信息可包括但不限于为末端的期望轨迹、期望速度、期望加速度,及末端与环境间的期望交互力等。
考虑到现有的阻抗控制方法中,往往存在如图2和图3的问题,为此,本实施例在进行阻抗控制时,通过对阻抗控制律进行修正,以用于对方向进行解耦,进而达到对机械臂的精确控制等目的。
上述步骤S120主要包括两部分,即对末端期望轨迹进行调整,以及利用调整后的期望轨迹来计算对应的阻抗控制力矩。
通常地,末端与环境之间产生的交互力应当是由机械臂的刚度与环境的刚度共同决定的。然而,在现有的阻抗控制方法中,完全没有考虑到环境因素。为此,本方法在考虑环境因素的影响,对末端期望轨迹进行重新预期,得到考虑环境因素在内的修正期望轨迹。可以理解为,是利用重新计算的期望轨迹对已规划好的期望轨迹进行替换,达到期望轨迹修正目的。
示范性地,上述的环境信息包括环境等效刚度和环境位置,可以理解,该环境是指与末端直接接触的外界对象,而该环境等效刚度则与环境刚度和机械臂刚度有关,是环境刚度与机械臂刚度的函数。示范性地,若环境刚度为K
f,机械臂刚度为K
d,则该环境等效刚度K
eq为:
于是,根据当前的环境等效刚度K
eq、环境位置x
f和该末端期望交互力F
ref可计算得到该末端的修正期望轨迹
即满足如下公式:
接着,利用修正后的期望轨迹并同时考虑末端的实际受力来计算下一时刻的阻抗控制力矩。对于该阻抗控制力矩的计算过程,如图5所示,主要包括以下步骤:
步骤S121,根据该修正期望轨迹与末端的实际位置之间的位置偏差、末端的期望速度和实际速度之间的速度偏差和该实际交互力基于弹簧-质量-阻尼模型计算在任务空间的阻尼控制量。
示范性地,若修正期望轨迹为
末端当前的实际位置为x,则该位置偏差为
同理,若末端的期望速度为
实际速度为
则速度偏差为
为实现该机械臂的柔顺控制,可将机械臂等效为一个弹簧-质量-阻尼系统,并基于弹簧-质量-阻尼模型计算对应的阻抗控制量。示范性地,若该阻抗控制中弹簧的刚度矩阵为K
d(等效为机械臂刚度),质量矩阵为M
d,阻尼矩阵为D
d,末端与环境之间的实际交互力为F
ext,则基于上述的弹簧-质量-阻尼模型计算得到的阻尼控制量
为:
步骤S122,将该关节受力信息由关节空间转换为任务空间,根据该阻尼控制量、末端的期望加速度和转换后的机械臂的关节受力信息计算在任务空间的加速度控制量。
示范性地,利用上述步骤S121计算得到的阻抗控制量,同时考虑该机械臂受到的外力矩,计算得到该加速度控制量
即满足有:
其中,
为期望加速度;
为阻尼控制量;τ
ext为该机械臂受到的关节外力矩;M(q)为n*n的正定对称方阵,表示该机械臂的质量矩阵(也称惯性矩阵);J为m*n的雅克比矩阵。
步骤S123,根据在任务空间的该加速度控制量基于雅克比矩阵计算得到该机械臂在关节空间的阻抗控制力矩。
由于计算得到的该加速度控制量是对于任务空间中的末端而言,为实现对关节的力矩控制,还需要转换为关节空间的力矩控制量,即上述的阻抗控制力矩。其中,J#为雅克比矩阵J的伪逆,示范性地,该阻抗控制力矩τcmd满足如下公式:
步骤S130,构建机械臂的动力学方程,根据所述动力学方程中的非线性项确定补偿力矩。
考虑到该阻抗控制方法是用于力控机械臂的,而力控机械臂具有较高的非线性,为此,本实施例的阻抗控制方法提出在实现方向解耦的阻抗控制的同时,还对关节空间或任务空间中的科式力、离心力以及重力项等非线性项进行实时补偿。
在一种实施方式中,所述动力学方程为机械臂在关节空间的动力学方程。例如,可根据在关节空间获取到的该机械臂各关节的关节运动信息来计算该机械臂在关节空间中受到的作用力、离心力与科式力,以及重力等。示范性地,该关节空间的动力学方程如下:
其中,
为n*n的离心力与科里奥利力矩阵,可根据关节角位移q、关节角速度
等关节运动信息计算得到;G(q)为机械臂各个连杆受到的重力所组成的n*1的列向量;τ
c表示该机械臂所接收到的总控制力矩,为n*1的列向量;τ
ext表示该机械臂受到的外力矩组成的列向量,为n*1的列向量。
于是,将对关节空间进行科式力、离心力以及重力项等非线性项的补偿,此时的补偿项τ
compensation即为
在另一种实施方式中,所述动力学方程为机械臂在任务空间的动力学方程。示范性地,所述任务空间的动力学方程的构建包括:先构建机械臂在关节空间的动力学方程,然后基于各关节与末端之间的运动关系将其转换为任务空间的动力学方程。例如,根据上述的关节空间的动力学方程,此时任务空间的动力学方程如下:
其中,J#T为雅克比矩阵J转置的逆。
考虑到该任务空间存在两个非线性项,分别是含离心力与科式力矩阵的第一非线性项
以及含重力向量的第二非线性项G(q),于是,通过对任务空间的科式力与离心力项、重力项进行补偿,使该动力学方程线性化。示范性地,该补偿力矩τ
compensation为:
值得注意的是,正如上述第一种实施方式,机械臂动力补偿通常是在关节空间进行科式力、离心力以及重力项等非线性项的补偿,即补偿项为
此时,补偿后的动力学方程将简化成
根据机器人关节与末端之间的运动学转换关系(参见上述步骤S110),可知补偿完的关节空间的动力学方程转换为任务空间的动力学方程,即为
可知,对于该任务空间来说,仍存在与关节速度相关的非线性项。
而考虑到实际机械臂的任务是在末端笛卡尔空间中执行的,为此,上述第二种实施方式则提出直接在任务空间中进行非线性项实时补偿,通过补偿任务空间动力学方程中的离心力、科里奥利力以及重力项,此时,任务空间的动力学方程将简化为
由上述可知,根据该任务空间简化的动力学方程,能够实现更为简单和直观的末端任务规划。并且,根据在任务空间中的补偿项可知,在任务空间中能够对该机械臂补偿更多,实现了真正的线性化,大大简化了对力矩机械臂的控制复杂度等。
步骤S140,根据该阻抗控制力矩和补偿力矩对该机械臂进行关节力矩控制。
示范性地,将计算得到的阻抗控制力矩和该补偿力矩进行叠加以作为该机械臂所需的总控制力矩τc,即有:τc=τcmd+τcompensation,进而发送至各关节以进行相应的力矩控制,达到执行相应任务的目的。
可以理解,考虑到任务通常是在机械臂的末端执行的,并且末端阻抗的各方向具有耦合性且存在无法精确跟踪末端力的问题,如图6所示,本实施例的阻抗控制方法通过在笛卡尔任务空间中引入利用由力传感器测量得到的实际外力信息(包含末端的实现交互力及机械臂受到的关节外力矩等)以及环境信息,使得机器人在与外界环境进行交互时,其展现出的柔顺具有方向解耦性。同时,结合环境信息得到的修正期望轨迹来对阻抗控制律进行修正,还能实现精确的末端力跟踪,提高了阻抗控制在需要控制末端力时的应用需求。例如,当控制机械臂末端写字时,可以方便地控制末端的出力大小以实现笔划的轻重等。同时,本实施例的阻抗控制方法还通过实时补偿动力学中的非线性项,尤其是在任务空间中进行直接补偿,可大大简化控制复杂度,很好地解决力控机械臂的非线性及控制复杂问题等。
例如,对于如图1的力控机械臂,采用本实施例的阻抗控制方法,即采用方向解耦的阻抗控制时,由于利用力传感器采集到的实际外力信息及环境信息对控制律的修正,消除了末端的质量矩阵(或惯性矩阵)的影响,从xy平面的轨迹可以看出,z方向的受力是不影响xy方向的运动的,可得到如图7的期望轨迹。另外,将环境模型考虑在内,可实现精确的10N期望力跟踪,如图8所示。
实施例2
请参照图9,基于上述实施例1的阻抗控制方法,本实施例提出一种阻抗控制装置10,该装置包括:
信息获取模块110,用于机械臂当前在关节空间的关节运动信息和关节受力信息以及末端受到的实际交互力,根据所述关节运动信息通过正运动学求解所述末端在任务空间的实际运动信息。
阻抗控制量计算模块120,用于利用当前环境信息和在所述任务空间预先规划的末端期望交互力计算所述末端的修正期望轨迹,根据所述关节受力信息、所述实际交互力、所述末端的所述实际运动信息和包含所述修正期望轨迹的末端期望信息计算得到所述机械臂在所述关节空间的阻抗控制力矩。
补偿量计算模块130,用于构建所述机械臂的动力学方程,根据所述动力学方程中的非线性项确定补偿力矩。
力矩控制模块140,用于根据所述阻抗控制力矩和所述补偿力矩对所述机械臂进行关节力矩控制。
可以理解,上述的阻抗控制装置10对应于实施例1的阻抗控制方法。实施例1中的任何可选项也适用于本实施例,这里不再详述。
本发明还提供了一种阻抗控制器,应用于机器人控制,该阻抗控制器包括处理器和存储器,其中,存储器存储有计算机程序,处理器用于执行所述计算机程序以实施上述实施例1的阻抗控制方法或上述实施例2的阻抗控制装置10中各个模块的功能。
本发明还提出一种机器人,该机器人包括上述的阻抗控制器,通过该阻抗控制器进行机械臂力矩控制,以实现柔顺控制等。示范性地,该机器人可为运用在各领域内的机器人,如切割机器人、焊接机器人、打磨机器人或按摩机器人等等。
本发明还提供了一种计算机可读存储介质,用于储存上述阻抗控制器中使用的所述计算机程序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。