机器人运动-力混合控制

#关节动力学 #运动控制 #力控制
详细可参考书本:《现代机器人学:机构规划与控制》第11.5章,其中的动力学方程见第8章相关内容。
其他参考资料:
[【现代机器人学】学习笔记十:机器人控制_zkk9527的博客-CSDN博客]

力控制

关节空间中的动力学方程

机器人的动力学方程可以写为如下等效形式:
τ = M ( θ ) θ ¨ + h ( θ , θ ˙ ) = M ( θ ) θ ¨ + c ( θ , θ ˙ ) + g ( θ ) = M ( θ ) θ ¨ + θ ˙ T Γ ( θ ) θ ˙ + g ( θ ) = M ( θ ) θ ¨ + C ( θ , θ ˙ ) θ ˙ + g ( θ ) \begin{aligned} \tau &=M\left( \theta \right) \ddot{\theta}+h\left( \theta ,\dot{\theta} \right)\\ &=M\left( \theta \right) \ddot{\theta}+c\left( \theta ,\dot{\theta} \right) +g\left( \theta \right)\\ &=M\left( \theta \right) \ddot{\theta}+\dot{\theta}^T\Gamma \left( \theta \right) \dot{\theta}+g\left( \theta \right)\\ &=M\left( \theta \right) \ddot{\theta}+C\left( \theta ,\dot{\theta} \right) \dot{\theta}+g\left( \theta \right)\\ \end{aligned} τ=M(θ)θ¨+h(θ,θ˙)=M(θ)θ¨+c(θ,θ˙)+g(θ)=M(θ)θ¨+θ˙TΓ(θ)θ˙+g(θ)=M(θ)θ¨+C(θ,θ˙)θ˙+g(θ)
式中, M ( θ ) M\left( \theta \right) M(θ) n × n n\times n n×n的对称正定质量矩阵, h ( θ , θ ˙ ) h\left( \theta ,\dot{\theta} \right) h(θ,θ˙)是由于重力和二阶速度项所引起的广义力之和, c ( θ , θ ˙ ) c\left( \theta ,\dot{\theta} \right) c(θ,θ˙)是二阶速度力, g ( θ ) g\left( \theta \right) g(θ)是重力, Γ ( θ ) \Gamma \left( \theta \right) Γ(θ)为对 M ( θ ) M\left( \theta \right) M(θ)相对于 θ \theta θ求取偏导数而得到的第一类Christoffel符号的 n × n × n n\times n\times n n×n×n矩阵, C ( θ , θ ˙ ) C\left( \theta ,\dot{\theta} \right) C(θ,θ˙) n × n n\times n n×n科里奥利矩阵,其第 ( i , j ) (i,j) (i,j)个元素为 C i j ( θ , θ ˙ ) = ∑ k = 1 n Γ i j k ( θ ) θ ˙ k C_{ij}\left( \theta ,\dot{\theta} \right) =\sum_{k=1}^n{\Gamma _{ijk}\left( \theta \right) \dot{\theta}_k} Cij(θ,θ˙)=k=1nΓijk(θ)θ˙k.
如果机器人的末端执行器对环境施加一个力旋量 F t i p \mathcal{F} _{tip} Ftip,则应该在机器人动力学方程的等号右侧添加 J T ( θ ) F t i p J^T(\theta)\mathcal{F} _{tip} JT(θ)Ftip项。

力控制

F t i p \mathcal{F} _{tip} Ftip为机械手对环境所施加的力旋量,则[[#关节空间中的动力学方程]]为:
M ( θ ) θ ¨ + c ( θ , θ ˙ ) + g ( θ ) + b ( θ ˙ ) + J T ( θ ) F t i p = τ (11.48) M\left( \theta \right) \ddot{\theta}+c\left( \theta ,\dot{\theta} \right) +g\left( \theta \right) +b\left( \dot{\theta} \right) +J^T\left( \theta \right) \mathcal{F} _{tip}=\tau \tag{11.48} M(θ)θ¨+c(θ,θ˙)+g(θ)+b(θ˙)+JT(θ)Ftip=τ(11.48)
考虑到机器人在力控制任务期间移动缓慢,可以忽略其加速度和速度项,上式简化为:
g ( θ ) + J T ( θ ) F t i p = τ (11.49) g\left( \theta \right) +J^T\left( \theta \right) \mathcal{F} _{tip}=\tau \tag{11.49} g(θ)+JT(θ)Ftip=τ(11.49)
在没有对机器人末端执行器的力-力矩进行直接测量的情况下,得到单独的关节角度反馈可用于实施前馈控制([[误差动力学与PID控制#前馈控制]]):
τ = g ~ ( θ ) + J T ( θ ) F d \tau =\tilde{g}\left( \theta \right) +J^T\left( \theta \right) \mathcal{F} _d τ=g~(θ)+JT(θ)Fd
可见,该控制律需要一个好的重力补偿模型 g ~ ( θ ) \tilde{g}\left( \theta \right) g~(θ),并且需要能够精确控制机器人关节处所产生的力矩。
若进一步在机器人与末端执行器之间配备一个六轴力-力矩传感器,直接测量末端执行器的力旋量 F t i p \mathcal{F} _{tip} Ftip,则可以考虑具有前馈项和重力补偿项的PI力控制器([[误差动力学与PID控制#前馈加反馈线性化]]):
τ = g ~ ( θ ) + J T ( θ ) ( F d + K f p F e + K f i ∫ F e ( t ) d t ) (11.51) \tau =\tilde{g}\left( \theta \right) +J^T\left( \theta \right) \left( \mathcal{F} _d+K_{fp}\mathcal{F} _e+K_{fi}\int{\mathcal{F} _e\left( t \right) \mathrm{d}t} \right) \tag{11.51} τ=g~(θ)+JT(θ)(Fd+KfpFe+KfiFe(t)dt)(11.51)
式中, F e = F d − F t i p \mathcal{F} _e=\mathcal{F} _d-\mathcal{F} _{tip} Fe=FdFtip K f p K_{fp} Kfp K f i K_{fi} Kfi分别是比例和积分环节的正定增益矩阵。在完美重力模型的情况下,将上式代入到式(11.49)得到误差动力学方程,即
( K f p + 1 ) F e + K f i ∫ F e ( t ) d t = J ( θ ) ( g ( θ ) − g ~ ( θ ) ) \left( K_{fp}+1 \right) \mathcal{F} _e+K_{fi}\int{\mathcal{F} _e\left( t \right) \mathrm{d}t}=J\left( \theta \right) \left( g\left( \theta \right) -\tilde{g}\left( \theta \right) \right) (Kfp+1)Fe+KfiFe(t)dt=J(θ)(g(θ)g~(θ))
g ~ ( θ ) \tilde{g}\left( \theta \right) g~(θ)的模型不准确,即上式右侧受到非零但恒定的力扰动,对上式求导可得
K f p F ˙ e + K f i F e = 0 ⇒ F e ( t ) = e − K f p / K f i    t F e ( 0 ) \begin{array}{c} K_{fp}\dot{\mathcal{F}}_e+K_{fi}\mathcal{F} _e=0\\ \Rightarrow \mathcal{F} _e\left( t \right) =e^{-{{K_{fp}}\Bigg/{K_{fi}}}\,\,t}\mathcal{F} _e\left( 0 \right)\\ \end{array} KfpF˙e+KfiFe=0Fe(t)=eKfp/KfitFe(0)
这表明对于正定的 K f p K_{fp} Kfp K f i K_{fi} Kfi F e \mathcal{F} _e Fe将收敛至零(参见一阶误差动力学的解)。

运动-力混合控制

任务空间中的动力学方程

参见书本第8.6节
考虑一个6-dof开链机器人的[[#关节空间中的动力学方程]],即
τ = M ( θ ) θ ¨ + h ( θ , θ ˙ ) , θ ∈ R 6 , τ ∈ R 6 (8.82) \tau =M\left( \theta \right) \ddot{\theta}+h\left( \theta ,\dot{\theta} \right) , \theta \in \mathbb{R} ^6, \tau \in \mathbb{R} ^6 \tag{8.82} τ=M(θ)θ¨+h(θ,θ˙),θR6,τR6(8.82)
忽略末端执行器作用力 F t i p \mathcal{F} _{tip} Ftip。末端执行器的运动旋量 V = ( ω , v ) \mathcal{V} =\left( \omega ,v \right) V=(ω,v)与关节速度 θ ˙ \dot \theta θ˙通过下式关联:
V = J ( θ ) θ ˙ ⇒ V ˙ = J ˙ ( θ ) θ ˙ + J ( θ ) θ ¨ \mathcal{V} =J\left( \theta \right) \dot{\theta}\Rightarrow \dot{\mathcal{V}}=\dot{J}\left( \theta \right) \dot{\theta}+J\left( \theta \right) \ddot{\theta} V=J(θ)θ˙V˙=J˙(θ)θ˙+J(θ)θ¨
J ( θ ) J(\theta) J(θ)可逆的位形 θ \theta θ处,可解得
{ θ ˙ = J − 1 V θ ¨ = J − 1 V ˙ − J − 1 J ˙ J − 1 V \begin{cases} \dot{\theta}=J^{-1}\mathcal{V}\\ \ddot{\theta}=J^{-1}\dot{\mathcal{V}}-J^{-1}\dot{J}J^{-1}\mathcal{V}\\ \end{cases} {θ˙=J1Vθ¨=J1V˙J1J˙J1V
将其带入式(8.82)中可得
τ = M ( θ ) ( J − 1 V ˙ − J − 1 J ˙ J − 1 V ) + h ( θ , J − 1 V ) \tau =M\left( \theta \right) \left( J^{-1}\dot{\mathcal{V}}-J^{-1}\dot{J}J^{-1}\mathcal{V} \right) +h\left( \theta ,J^{-1}\mathcal{V} \right) τ=M(θ)(J1V˙J1J˙J1V)+h(θ,J1V)
J − T J^{-T} JT表示为 ( J − 1 ) T = ( J T ) − 1 \left( J^{-1} \right) ^T=\left( J^T \right) ^{-1} (J1)T=(JT)1,对上式两端同时左乘 J − T J^{-T} JT,得到
J − T τ = J − T M ( θ ) ( J − 1 V ˙ − J − 1 J ˙ J − 1 V ) + h ( θ , J − 1 V ) = J − T M J − 1 V ˙ − J − T M J − 1 J ˙ J − 1 V + J − T h ( θ , J − 1 V ) \begin{aligned} J^{-T}\tau &=J^{-T}M\left( \theta \right) \left( J^{-1}\dot{\mathcal{V}}-J^{-1}\dot{J}J^{-1}\mathcal{V} \right) +h\left( \theta ,J^{-1}\mathcal{V} \right)\\ &=J^{-T}MJ^{-1}\dot{\mathcal{V}}-J^{-T}MJ^{-1}\dot{J}J^{-1}\mathcal{V} +J^{-T}h\left( \theta ,J^{-1}\mathcal{V} \right)\\ \end{aligned} JTτ=JTM(θ)(J1V˙J1J˙J1V)+h(θ,J1V)=JTMJ1V˙JTMJ1J˙J1V+JTh(θ,J1V)
J − T τ J^{-T}\tau JTτ表示为力旋量 F \mathcal{F} F,上式即为任务空间中的动力学方程
⇒      F = Λ ( θ ) V ˙ + η ( θ , V ) (8.89) \Rightarrow \;\;\mathcal{F} =\Lambda \left( \theta \right) \dot{\mathcal{V}}+\eta \left( \theta ,\mathcal{V} \right) \tag{8.89} F=Λ(θ)V˙+η(θ,V)(8.89)
其中
Λ ( θ ) = J − T M J − 1 η ( θ , V ) = J − T h ( θ , J − 1 V ) − Λ ( θ ) J ˙ J − 1 V \begin{aligned} \Lambda \left( \theta \right) &=J^{-T}MJ^{-1}\\ \eta \left( \theta ,\mathcal{V} \right) &=J^{-T}h\left( \theta ,J^{-1}\mathcal{V} \right) -\Lambda \left( \theta \right) \dot{J}J^{-1}\mathcal{V}\\ \end{aligned} Λ(θ)η(θ,V)=JTMJ1=JTh(θ,J1V)Λ(θ)J˙J1V

受约束动力学

详细参见书本第8.7节
考虑 n n n关节机器人受到一组 k k k个完整或非完整Pfaffian速度约束,
A ( θ ) θ ˙ = 0 ,      A ( θ ) ∈ R k × n A\left( \theta \right) \dot{\theta}=0,\;\;A\left( \theta \right) \in \mathbb{R} ^{k\times n} A(θ)θ˙=0,A(θ)Rk×n
假设约束对机器人没有作用,即与约束条件对应的广义力 τ c o n \tau_{con} τcon满足
τ c o n T θ ˙ = 0 \tau _{con}^{T}\dot{\theta}=0 τconTθ˙=0
这一假设意味着 τ c o n \tau_{con} τcon必须是矩阵 A T ( θ ) A^T\left( \theta \right) AT(θ)列向量的线性组合,即 τ c o n = A T ( θ ) λ \tau_{con}=A^T\left( \theta \right)\lambda τcon=AT(θ)λ,其中 λ ∈ R k \lambda\in \mathbb{R}^k λRk,因为这些是 θ ˙ \dot{\theta} θ˙被施加在约束条件 A ( θ ) θ ˙ = 0 A\left( \theta \right) \dot{\theta}=0 A(θ)θ˙=0下不做功的广义力为
∀ λ ∈ R k ,      ( A T ( θ ) λ ) T θ ˙ = λ T A ( θ ) θ ˙ = 0 \forall \lambda \in \mathbb{R} ^k,\;\;\left( A^T\left( \theta \right) \lambda \right) ^T\dot{\theta}=\lambda ^TA\left( \theta \right) \dot{\theta}=0 λRk,(AT(θ)λ)Tθ˙=λTA(θ)θ˙=0
将约束力 A T ( θ ) λ A^T\left( \theta \right)\lambda AT(θ)λ添加到运动方程中,可以用 n + k n+k n+k个未知量 { θ ¨ , λ } \{\ddot{\theta},\lambda\} {θ¨,λ}(正向运动学)或 n + k n+k n+k个未知量 { τ , λ } \{\tau,\lambda\} {τ,λ}(逆向运动学)来写出 n + k n+k n+k个约束运动方程,即受约束动力学方程可表示为
{ τ = M ( θ ) θ ¨ + h ( θ , θ ˙ ) + A T ( θ ) λ A ( θ ) θ ˙ = 0 (8.93) \begin{cases} \tau =M\left( \theta \right) \ddot{\theta}+h\left( \theta ,\dot{\theta} \right) +A^T\left( \theta \right) \lambda\\ A\left( \theta \right) \dot{\theta}=0 \tag{8.93}\\ \end{cases} {τ=M(θ)θ¨+h(θ,θ˙)+AT(θ)λA(θ)θ˙=0(8.93)
其中, λ \lambda λ是一组拉格朗日乘子,而 A T ( θ ) λ A^T\left( \theta \right) \lambda AT(θ)λ是作用域约束的关节力和力矩。

运动-力混合控制

如果我们对位置闭环,那就无法控制力。
如果我们对力闭环,那就无法控制位置。

考虑任务空间中的 k k k个自然约束表达为Pfaffian约束:
A ( θ ) V = 0 ,      V ∈ R 6 ,      A ( θ ) ∈ R k × 6 (11.55) A\left( \theta \right) \mathcal{V}=0,\;\;\mathcal{V}\in \mathbb{R}^6,\;\;A\left( \theta \right) \in \mathbb{R} ^{k\times 6} \tag{11.55} A(θ)V=0,VR6,A(θ)Rk×6(11.55)
那么根据[[#任务空间中的动力学方程]]式(8.89)与[[#受约束动力学]]式(8.93),任务空间中的约束动力学
F = Λ ( θ ) V ˙ + η ( θ , V ) + A T ( θ ) λ ⏟ F t i p (11.56) \mathcal{F} =\Lambda \left( \theta \right) \dot{\mathcal{V}}+\eta \left( \theta ,\mathcal{V} \right) +\underset{\mathcal{F} _{tip}}{\underbrace{A^T\left( \theta \right) \lambda }} \tag{11.56} F=Λ(θ)V˙+η(θ,V)+Ftip AT(θ)λ(11.56)
式中, λ ∈ R k \lambda\in\mathbb{R}^k λRk是拉格朗日乘数, F t i p \mathcal{F} _{tip} Ftip是机器人施加到约束上的力旋量。期望的力旋量 F d \mathcal{F}_d Fd必须位于 A T ( θ ) A^T(\theta) AT(θ)的列向量空间中。
在任意时刻都需要满足式(11.55),采用时间导数代替:
A ( θ ) V ˙ + A ˙ ( θ ) V = 0 (11.57) A\left( \theta \right) \dot{\mathcal{V}}+\dot{A}\left( \theta \right)\mathcal{V}=0 \tag{11.57} A(θ)V˙+A˙(θ)V=0(11.57)
为了确保系统状态在满足式(11.55)时能够同时满足上式,任何期望加速度 V ˙ d \dot{\mathcal{V}}_d V˙d都应该满足 A ( θ ) V ˙ d = 0 A\left( \theta \right) \dot{\mathcal{V}}_d=0 A(θ)V˙d=0
根据式(11.56)可得 V ˙ = Λ − 1 ( F − η − A T λ ) \dot{\mathcal{V}}=\Lambda ^{-1}\left( \mathcal{F} -\eta -A^T\lambda \right) V˙=Λ1(FηATλ),将其带入式(11.57)可得
A Λ − 1 ( F − η − A T λ ) + A ˙ V = 0 ⇒ A Λ − 1 ( F − η ) + A ˙ V = A Λ − 1 A T λ ⇒ λ = ( A Λ − 1 A T ) − 1 A Λ − 1 ( F − η ) + A ˙ V                = ( A Λ − 1 A T ) − 1 A Λ − 1 − A V ˙ (11.58) \begin{array}{l} A\Lambda ^{-1}\left( \mathcal{F} -\eta -A^T\lambda \right) +\dot{A}\mathcal{V} =0\\ \Rightarrow A\Lambda ^{-1}\left( \mathcal{F} -\eta \right) +\dot{A}\mathcal{V} =A\Lambda ^{-1}A^T\lambda\\ \Rightarrow \lambda =\left( A\Lambda ^{-1}A^T \right) ^{-1}A\Lambda ^{-1}\left( \mathcal{F} -\eta \right) +\dot{A}\mathcal{V}\\ \,\,\;\;\;\;\;\; =\left( A\Lambda ^{-1}A^T \right) ^{-1}A\Lambda ^{-1}-A\dot{\mathcal{V}}\\ \tag{11.58} \end{array} AΛ1(FηATλ)+A˙V=0AΛ1(Fη)+A˙V=AΛ1ATλλ=(AΛ1AT)1AΛ1(Fη)+A˙V=(AΛ1AT)1AΛ1AV˙(11.58)
进一步利用式(11.58)可以求得机器人对约束施加的力旋量 F t i p = A T ( θ ) λ \mathcal{F_{tip}}=A^T(\theta)\lambda Ftip=AT(θ)λ
将式(11.58)带入到式(11.56)并进行操作,受约束动力学(11.56)中的 n n n个方程可表示为 n − k n-k nk个独立的运动方程(可参考书本8.7节):
P ( θ ) F = P ( θ ) ( Λ V ˙ + η ) P\left( \theta \right) \mathcal{F} =P\left( \theta \right) \left( \Lambda \dot{\mathcal{V}}+\eta \right) P(θ)F=P(θ)(ΛV˙+η)
式中, P ( θ ) = I − A T ( A Λ − 1 A T ) − 1 A Λ − 1 P\left( \theta \right) =I-A^T\left( A\Lambda ^{-1}A^T \right) ^{-1}A\Lambda ^{-1} P(θ)=IAT(AΛ1AT)1AΛ1.
n × n n\times n n×n矩阵 P ( θ ) P(\theta) P(θ)的秩为 n − k n-k nk,它将任意的一个机械手力旋量 F \mathcal{F} F投影到力旋量的子空间,该子空间可使末端执行器沿与约束相切的方向移动。秩为 k k k的矩阵 I − P ( θ ) I-P(\theta) IP(θ)将任意的一个力旋量 F \mathcal{F} F投影到与约束相对作用的力旋量子空间上。因此, P ( θ ) P(\theta) P(θ) n n n维力空间划分为两部分:用于解决运动控制任务的力旋量;以及用于解决力控制任务的力旋量。即力旋量 F \mathcal{F} F可以划分为:
F = P ( θ ) F + ( I − P ( θ ) ) F \mathcal{F}=P(\theta)\mathcal{F}+(I-P(\theta))\mathcal{F} F=P(θ)F+(IP(θ))F
因此,运动-力混合控制器通过 P ( θ ) P(\theta) P(θ) ( I − P ( θ ) ) (I-P(\theta)) (IP(θ))的投影,可以看作是任务空间运动控制器([[任务空间中的运动控制#任务空间中的运动控制]])和任务空间力控制器([[#力控制]])之和,每个控制器都被投影到相应的子空间中以产生力。 假设在末端执行器坐标系 { b } \{b\} {b}中表达力旋量和运动旋量,则运动-力混合控制器可表达为:
τ = J b T ( θ ) F = J b T ( θ ) [ P ( θ ) F + ( I − P ( θ ) ) F ] = J b T ( θ ) { P ( θ ) [ Λ ~ ( θ ) ( d d t ( [ A d X − 1 X d ] V d ) + K p X e + K i ∫ X e ( t ) d t + K d V e ) ] + ( I − P ( θ ) ) ( F d + K f p F e + K f i ∫ F e ( t ) d t ) + η ~ ( θ , V b ) } \begin{aligned} \tau &=J_{b}^{T}\left( \theta \right) \mathcal{F}\\ &=J_{b}^{T}\left( \theta \right) \left[ P\left( \theta \right) \mathcal{F} +\left( I-P\left( \theta \right) \right) \mathcal{F} \right]\\ &=J_{b}^{T}\left( \theta \right) \left\{ \begin{aligned} P\left( \theta \right) \left[ \widetilde{\Lambda }\left( \theta \right) \left( \frac{\mathrm{d}}{\mathrm{d}t}\left( \left[ Ad_{X^{-1}X_d} \right] \mathcal{V} _d \right) +K_pX_e+K_i\int{X_e\left( t \right) \mathrm{d}t+K_d}\mathcal{V} _e \right) \right]\\ +\left( I-P\left( \theta \right) \right) \left( \mathcal{F} _d+K_{fp}\mathcal{F} _e+K_{fi}\int{\mathcal{F} _e\left( t \right) \mathrm{d}t} \right)\\ +\tilde{\eta}\left( \theta ,\mathcal{V} _b \right)\\ \end{aligned} \right\}\\ \end{aligned} τ=JbT(θ)F=JbT(θ)[P(θ)F+(IP(θ))F]=JbT(θ) P(θ)[Λ (θ)(dtd([AdX1Xd]Vd)+KpXe+KiXe(t)dt+KdVe)]+(IP(θ))(Fd+KfpFe+KfiFe(t)dt)+η~(θ,Vb)
上式中,两个控制器的动力学通过 P P P I − P I-P IP这两个正交投影而相互解耦,所以控制器继承了独立的力和运动控制器在各自子空间上的误差动态和稳定性分析。
然而,上述力-运动混合控制很难在刚性环境中实施,因为无法确定在任何时间都有效的 A ( θ ) V = 0 A(\theta)\mathcal{V}=0 A(θ)V=0,然而这对于指定期望运动和期望力、计算投影都是必要的,但关于环境的任何模型都会存在一些不确定性。解决该困难的一种方法是:

  1. 基于力反馈,使用实时估计算法来识别约束方向;
  2. 另一种方法是通过选择低反馈增益来牺牲一些性能,进而使运动控制器变“软”,同时力控制器更能容忍力的误差。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值