读书笔记: Cartesian Impedance Control of Redundant and Flexible-Joint Robots, Section 2


Cartesian Impedance Control of Redundant and Flexible-Joint Robots 读书笔记

Section 2 柔性关节机器人建模

只考虑开链机器人的情况,机器人柔性分两部分:分布参数弹性是各连杆形变导致的柔性,集中参数部分是由齿轮导致的弹性。本书只讨论后者。

2.1 运动学

本书采用的旋量是 v v v在上, ω \omega ω在下,既与《A Mathematical Introduction to Robotic Manipulation》保持一致。
V b = ( b v s b b ω s b ) V^b=\left( \begin{array}{c} _bv_{sb}\\ _b\omega _{sb}\\ \end{array} \right) Vb=(bvsbbωsb)
b ω s b _b\omega _{sb} bωsb的左下标 b b b表示该向量表达在 B B B系中,右下标 s b sb sb表示这是 ω s b \omega_{sb} ωsb
除此之外运动学部分没有啥需要特别注意的。

2.2 柔性关节机器人动力学模型

动力学模型有两个:完整模型和简化模型。简化模型假设转子的动能仅有其旋转产生。

2.2.1 Complete Model的假设

  • 假设1:电机转子是旋转对称的刚体,并且对称中心与运动的旋转中心一直
  • 假设2:电路部分的动态特性(内环电流环)足够快,相较于机械特性而言可以忽略

这两条假设是说,电机可以看成一个理想的转矩源, i i i关节电机的转矩为 τ m o t o r , i \tau_{motor,i} τmotor,i
考虑传动比 N i N_i Ni后,
τ m , i = N i τ m o t o r , i       θ i = 1 N i θ m o t o r , i \tau_{m,i} = N_i\tau_{motor,i} \ \ \ \ \ \theta_{i} = \frac{1}{N_i}\theta_{motor,i} τm,i=Niτmotor,i     θi=Ni1θmotor,i

  • 假设3:齿轮的弹性可用线性弹簧表示,弹簧位于转子与下一个link之间的
    在这里插入图片描述
    q i q_i qi是关节角,及下一个link与本link之间的夹角, θ i \theta_i θi是经过传动比折算之后的电机角。因此弹簧力是 τ i = K i ( θ i − q i ) \tau_i=K_i(\theta_i-q_i) τi=Ki(θiqi)这个关节的弹性势能是 V k , i = 1 2 K i ( θ i − q i ) 2 V_{k,i}=\frac{1}{2}K_i(\theta_i-q_i)^2 Vk,i=21Ki(θiqi)2结合实际, θ i \theta_i θi是由在电机轴上测出来的角(一般是增量编码器), q i q_i qi是输出端测出来的角度(一般是绝对值编码器)。

2.2.2 Complete Model推导

对于有 n n n个关节的开链机器人
坐标系这么建

在这里插入图片描述
对关节 i i i L i L_i Li放在与之相连的Link_i的质心, R i R_i Ri放在前一个link的转子处,z轴与旋转方向一致。
因此,Links的动能是
T l ( q , q ˙ ) = 1 2 ∑ i = 1 n ( V l , i b ) T M l , i V l , i b T_l\left( q,\dot{q} \right) =\frac{1}{2}\sum_{i=1}^n{\left( V_{l,i}^{b} \right) ^T\mathcal{M} _{l,i}V_{l,i}^{b}} Tl(q,q˙)=21i=1n(Vl,ib)TMl,iVl,ib
构造惯性矩阵
M l ( q ) = ∑ i = 1 n J l , i b ( q ) T M l , i J l , i b ( q ) M_l\left( q \right) =\sum_{i=1}^n{J_{l,i}^{b}\left( q \right) ^T\mathcal{M} _{l,i}J_{l,i}^{b}\left( q \right)} Ml(q)=i=1nJl,ib(q)TMl,iJl,ib(q)
于是有
T l ( q , q ˙ ) = 1 2 q ˙ T M l ( q ) q ˙ T_l\left( q,\dot{q} \right) =\frac{1}{2}\dot{q}^TM_l\left( q \right) \dot{q} Tl(q,q˙)=21q˙TMl(q)q˙

然后计算转子动能:
电机的定子固连在前一级link上,转子在相对于定子旋转,旋转角度是 θ i \theta_i θi,因此计算转子的6维速度旋量时需要在 R i R_i Ri对应的虚度旋量上进行叠加,有
V r , i b = J r , i b ( q ) q ˙ + ( 0 0 0 0 0 1 ) θ ˙ i V_{r,i}^{b}=J_{r,i}^{b}\left( q \right) \dot{q}+\left( \begin{array}{c} 0\\ 0\\ 0\\ 0\\ 0\\ 1\\ \end{array} \right) \dot{\theta}_i Vr,ib=Jr,ib(q)q˙+ 000001 θ˙i
这里需要注意的是这个计算是在 R i R_i Ri系里进行的,而不是 L i L_i Li系,所以转子动能是
T r ( q , q ˙ , θ ˙ ) = 1 2 ∑ i = 1 n ( V r , i b ) T M r , i V r , i b T_r\left( q,\dot{q},\dot{\theta} \right) =\frac{1}{2}\sum_{i=1}^n{\left( V_{r,i}^{b} \right) ^T\mathcal{M} _{r,i}V_{r,i}^{b}} Tr(q,q˙,θ˙)=21i=1n(Vr,ib)TMr,iVr,ib
犹豫对称性假设,在 R i R_i Ri系表达的惯性张量应为 I r , i = d i a g { A i , B i , C i } I_{r,i}=diag\{A_i,B_i,C_i\} Ir,i=diag{Ai,Bi,Ci},整理后有

T r ( q , q ˙ , θ ˙ ) = 1 2 ( q ˙ θ ˙ ) T ( M r ( q ) S ( q ) S ( q ) T B ) ( q ˙ θ ˙ ) T_r\left( q,\dot{q},\dot{\theta} \right) =\frac{1}{2}\left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) ^T\left( \begin{matrix} M_r\left( q \right)& S\left( q \right)\\ S\left( q \right) ^T& B\\ \end{matrix} \right) \left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) Tr(q,q˙,θ˙)=21(q˙θ˙)T(Mr(q)S(q)TS(q)B)(q˙θ˙)
其中, M r ( q ) = ∑ i = 1 n J r , i b ( q ) T M r , i J r , i b ( q ) M_r\left( q \right) =\sum_{i=1}^n{J_{r,i}^{b}\left( q \right) ^T\mathcal{M} _{r,i}J_{r,i}^{b}\left( q \right)} Mr(q)=i=1nJr,ib(q)TMr,iJr,ib(q)
S ( q ) = [ s 1 ( q )   .   .   .   s 2 ( q ) ] S\left( q \right) =\left[ s_1\left( q \right) \ .\ .\ .\ s_2\left( q \right) \right] S(q)=[s1(q) . . . s2(q)]
s i ( q ) = J r , i b ( q ) T ( 0 0 0 0 0 B i ) s_i\left( q \right) =J_{r,i}^{b}\left( q \right) ^T\left( \begin{array}{c} 0\\ 0\\ 0\\ 0\\ 0\\ B_i\\ \end{array} \right) si(q)=Jr,ib(q)T 00000Bi

B = d i a g ( B i ) B=\mathrm{diag}\left( B_i \right) B=diag(Bi)
两部分动能之和是系统动能
T ( q , q ˙ , θ ˙ ) = 1 2 ( q ˙ θ ˙ ) T [ M l ( q ) + M r ( q ) S ( q ) S ( q ) T B ] ( q ˙ θ ˙ ) T\left( q,\dot{q},\dot{\theta} \right) =\frac{1}{2}\left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) ^T\left[ \begin{matrix} M_l\left( q \right) +M_r\left( q \right)& S\left( q \right)\\ S\left( q \right) ^T& B\\ \end{matrix} \right] \left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) T(q,q˙,θ˙)=21(q˙θ˙)T[Ml(q)+Mr(q)S(q)TS(q)B](q˙θ˙)

再计算势能部分,各个关节的弹性势能有
V k ( q , θ ) = 1 2 ( θ − q ) T K ( θ − q ) V_k\left( q,\theta \right) =\frac{1}{2}\left( \theta -q \right) ^TK\left( \theta -q \right) Vk(q,θ)=21(θq)TK(θq)
K = d i a g ( K i ) K=diag(K_i) K=diag(Ki)是个对角矩阵
对重力势能部分,设 m l , i m_{l,i} ml,i是link_i的质量, m r , i m_{r,i} mr,i是转子的质量。 e g e_g eg是重力的方向向量, g g g是重力加速度,于是有
V g ( q ) = − g e g T ∑ i = 1 n ( m l , i p s l , i ( q ) + m r , i p s r , i ( q ) ) V_g\left( q \right) =-ge_{g}^{T}\sum_{i=1}^n{\left( m_{l,i}p_{sl,i}\left( q \right) +m_{r,i}p_{sr,i}\left( q \right) \right)} Vg(q)=gegTi=1n(ml,ipsl,i(q)+mr,ipsr,i(q))
所以i,势能是
V p o t ( q , θ ) = V g ( q ) + 1 2 ( θ − q ) T K ( θ − q ) V_{pot}\left( q,\theta \right) =V_g\left( q \right) +\frac{1}{2}\left( \theta -q \right) ^TK\left( \theta -q \right) Vpot(q,θ)=Vg(q)+21(θq)TK(θq)

q q q θ \theta θ摞起来构成广义坐标
q ^ = ( q θ ) \hat{q}=\left( \begin{array}{c} q\\ \theta\\ \end{array} \right) q^=(qθ)
拉格朗日函数
L ( q ^ , q ^ ˙ ) = T − V p o t L\left( \hat{q},\dot{\hat{q}} \right) =T-V_{pot} L(q^,q^˙)=TVpot
带入拉格朗日方程
d d t ( ∂ L ∂ q ^ ˙ ) − ∂ L ∂ q ^ = Q \frac{d}{dt}\left( \frac{\partial L}{\partial \dot{\hat{q}}} \right) -\frac{\partial L}{\partial \hat{q}}=Q dtd(q^˙L)q^L=Q
得到

H ( q ) ( q ¨ θ ¨ ) + Γ ( q , q ˙ ) ( q ˙ θ ˙ ) + ( g ( q ) − K ( θ − q ) K ( θ − q ) ) = ( τ e x t τ m ) H\left( q \right) \left( \begin{array}{c} \ddot{q}\\ \ddot{\theta}\\ \end{array} \right) +\varGamma \left( q,\dot{q} \right) \left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) +\left( \begin{array}{c} g\left( q \right) -K\left( \theta -q \right)\\ K\left( \theta -q \right)\\ \end{array} \right) =\left( \begin{array}{c} \tau _{ext}\\ \tau _m\\ \end{array} \right) H(q)(q¨θ¨)+Γ(q,q˙)(q˙θ˙)+(g(q)K(θq)K(θq))=(τextτm)

其中 H ( q ) H(q) H(q)是完整的惯性矩阵, H ( q ) q ^ ¨ H(q)\ddot{\hat{q}} H(q)q^¨是加速度产生的惯性力 H ( q ) = [ M l ( q ) + M r ( q ) S ( q ) S ( q ) T B ] H\left( q \right) =\left[ \begin{matrix} M_l\left( q \right) +M_r\left( q \right)& S\left( q \right)\\ S\left( q \right) ^T& B\\ \end{matrix} \right] H(q)=[Ml(q)+Mr(q)S(q)TS(q)B]
g ( q ) 是重力矩 g(q)是重力矩 g(q)是重力矩
g ( q ) = ( ∂ V g ( q ) ∂ q ) T g\left( q \right) =\left( \frac{\partial V_g\left( q \right)}{\partial q} \right) ^T g(q)=(qVg(q))T

Γ ( q , q ˙ ) q ^ ˙ \varGamma \left( q,\dot{q} \right) \dot{\hat{q}} Γ(q,q˙)q^˙包含了科里奥利力和离心力, Γ ( q , q ˙ ) \varGamma \left( q,\dot{q} \right) Γ(q,q˙)比较复杂,表达式是
Γ i j ( q , q ˙ ) = ∑ k = 1 2 n Γ i j k ( q ) q ^ ˙ k Γ i j k ( q ) = 1 2 ( ∂ H i j ( q ) ∂ q ^ k + ∂ H i k ( q ) ∂ q ^ j − ∂ H k j ( q ) ∂ q ^ i ) \varGamma _{ij}\left( q,\dot{q} \right) =\sum_{k=1}^{2n}{\varGamma _{ijk}\left( q \right) \dot{\hat{q}}_k} \\ \varGamma _{ijk}\left( q \right) =\frac{1}{2}\left( \frac{\partial H_{ij}\left( q \right)}{\partial \hat{q}_k}+\frac{\partial H_{ik}\left( q \right)}{\partial \hat{q}_j}-\frac{\partial H_{kj}\left( q \right)}{\partial \hat{q}_i} \right) Γij(q,q˙)=k=12nΓijk(q)q^˙kΓijk(q)=21(q^kHij(q)+q^jHik(q)q^iHkj(q))
上方红色的方程就是所谓的柔性关节机器人的完整动力学模型(complete model of a flexible joint robot)。如果把其中 S ( q ) S(q) S(q)部分忽略,就是接下来的简化动力学模型。

2.2.3 Reduced Model

简化模型的假设:

  • 假设4 : 电机转子的动能只包含其旋转产生的转动动能,而忽略因其他关节运动所产生的的动能。换言之,认为电机转子没有质量只有转动惯量。这个假设对应的物理事实是在减速比作用下,电机转子的旋转速度一般比较高,因此转动动能占主导地位,另外很多机器人设计通过线驱把电机给后置到基座上,

在这个假设下,转子动能简化为
T r ( q , q ˙ , θ ˙ ) = 1 2 ( q ˙ θ ˙ ) T ( M ˉ r ( q ) 0 0 B ) ( q ˙ θ ˙ ) T_r\left( q,\dot{q},\dot{\theta} \right) =\frac{1}{2}\left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) ^T\left( \begin{matrix} \bar{M}_r\left( q \right)& 0\\ 0& B\\ \end{matrix} \right) \left( \begin{array}{c} \dot{q}\\ \dot{\theta}\\ \end{array} \right) Tr(q,q˙,θ˙)=21(q˙θ˙)T(Mˉr(q)00B)(q˙θ˙)
M ˉ r ( q ) \bar{M}_r\left( q \right) Mˉr(q)部分也发生变化,简化后为
M ˉ r ( q ) = ∑ i = 1 n m r , i J ˉ r , i b ( q ) T J ˉ r , i b ( q ) J ˉ r , i b ( q ) = [ I 3 × 3 0 3 × 3 ] J r , i b ( q ) \bar{M}_r\left( q \right) =\sum_{i=1}^n{m_{r,i}\bar{J}_{r,i}^{b}\left( q \right) ^T\bar{J}_{r,i}^{b}\left( q \right)} \\ \bar{J}_{r,i}^{b}\left( q \right) =\left[ \begin{matrix} I_{3\times 3}& 0_{3\times 3}\\ \end{matrix} \right] J_{r,i}^{b}\left( q \right) Mˉr(q)=i=1nmr,iJˉr,ib(q)TJˉr,ib(q)Jˉr,ib(q)=[I3×303×3]Jr,ib(q)

简化之后的动力学模型为

M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + g ( q ) = K ( θ − q ) + τ e x t B θ ¨ + K ( θ − q ) = τ m M\left( q \right) \ddot{q}+C\left( q,\dot{q} \right) \dot{q}+g\left( q \right) =K\left( \theta -q \right) +\tau _{ext} \\ B\ddot{\theta}+K\left( \theta -q \right) =\tau _m M(q)q¨+C(q,q˙)q˙+g(q)=K(θq)+τextBθ¨+K(θq)=τm

其中 M ( q ) = M l ( q ) + M ˉ r ( q ) M(q)=M_l(q)+\bar{M}_r(q) M(q)=Ml(q)+Mˉr(q) C ( q , q ˙ ) C\left( q,\dot{q} \right) C(q,q˙)是与 M M M对应的科里奥利矩阵。

2.2.4 动力学模型的性质

  • 欠驱动:模型状态变量数量是 2 n 2n 2n但是只有 n n n个控制输入(电机力矩)。
  • 微分平坦:完整模型和简化模型都是微分平坦的,简化模型可以通过静态状态反馈来线性化参见[经典论文Spo87b],完整模型可以通过动态状态反馈线性化[经典论文DLL98]
  • 惯性矩阵 M ( q ) M(q) M(q)是对称正定
  • M ˙ − 2 C \dot{M}-2C M˙2C矩阵反对称

对包含平移关节的机器人, Q p Q^p Qp是考虑各个关节限位之后的位形空间
Q p = { q ∈ Q ∣ q i , m i n ≤ q i ≤ q i , m a x } Q^p=\{q\in Q | q_{i,min} \le q_i \le q_{i,max}\} Qp={qQqi,minqiqi,max}
对于后续的阻抗控制设计还有以下重要性质

  • Q p Q^p Qp内, λ i ( M ( q ) ) \lambda_i(M(q)) λi(M(q))有界 0 < λ m , M ≤ λ i ( M ( q ) ) ≤ λ M , M < ∞ 0<\lambda _{m,M}\le \lambda _i(M(q))\le \lambda _{M,M}<\infty 0<λm,Mλi(M(q))λM,M<
  • 重力矩 g ( q ) = ( ∂ V g ( q ) ∂ q ) T g\left( q \right) =\left( \frac{\partial V_g\left( q \right)}{\partial q} \right) ^T g(q)=(qVg(q))T,对各种矩阵范数都存在一个 α > 0 \alpha>0 α>0使得 ∣ ∣ ∂ g ( q ) ∂ q ∣ ∣ < α ||\frac{\partial g\left( q \right)}{\partial q}||<\alpha ∣∣qg(q)∣∣<α

2.2.5 摩擦力

以上动力学模型都没有包含摩擦力,如果只考虑粘滞摩擦,则不会会影响模型的反馈线性化,这本书只考虑粘滞摩擦的情况。在实际中使用应该进行摩擦补偿。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值