在先前的文章中,我们已经讨论过了四足机器人的腿部运动学建模,但是仅有运动学部分是不够的的,因为机器人时刻出于运动当中,是一个时变系统,在此运动中,机器人的速度,加速度也可能会时间变化。而涉及到加速度,就离不开力,涉及到力的分析,就离不开动力学。

现在,我们先将问题简化,假定机身是固定在空间中的某一点上,来分析腿部模型的动力学模型

一、速度和静力

要研究动力学,我们首先从刚体运动开始

1.1 时变位姿符号表示

下面下来讨论一些基本知识:向量微分,角速度的表示及符号

位置向量的微分

当物体的质量可以集中于一点时,我们可以忽略物体本身的旋转,只考虑其线速度。

定义参考系{B}中一点Q,其位置表示为BPQ^BP_Q,其速度为BVQ^BV_Q

因此有以下关系:

BVQ=dBPQdt=limΔt0BPQ(t+Δt)BPQ(t)Δt^BV_Q = \frac{d^BP_Q}{dt} = \underset{\Delta t\rightarrow 0}{lim}\frac{^BP_Q(t+\Delta t)- ^BP_Q(t)}{\Delta t}

上式描述了,Q点位置的时间微分,即Q点的速度(B参考系下)。

参考系是非常重要的,这点不能忽略,举个例子,Q点在坐标系B下观察时,其速度不随时间变化,即速度为0,而参考系{B}本身有可能是运动的,因此,点Q在其他参考系下观察时,其速度不一定为0

与位置变换类似,速度也是可以在不同坐标系下进行变化的:

ABVQ=A(dBPQdt)=ABRBVQ^A(^BV_Q) = ^A(\frac{d^BP_Q}{dt}) = _{A}^{B}\textrm{R}^BV_Q

多数情况下会讨论某一个坐标原点相对于世界参考系的速度,此时不去深究其相对于其他任意坐标系的的速度,这种情况下会写作:
vc=UVCORGv_c = ^UV_{CORG}

角速度向量

当物体不能看做是一个质点时,我们就得考虑其本身的旋转,通常用角速度来描述。用Ω\Omega表示。

【数学问题2】动力学基础
上图中AΩB^A\Omega_B描述了坐标系{B}相对于于坐标系{A}的旋转

现在讨论一种情况,假设从坐标系{B}观察点Q,其位置不随时间变化,而{B}相对于于坐标系{A}的旋转,计算Q点在{A}下的速度(具体推导过程略):

AVQ= AΩB × APQ^AV_Q = \ ^A\Omega_B \ \times \ ^AP_Q

叉乘公式为:
【数学问题2】动力学基础

其中:

APQ= BAR BPQ^AP_Q = \ ^A_B R \ ^BP_Q

一般情况下,点Q是相对于{B}变化的,因此需要加上线速度分量:

AVQ= ARB BVQ+AΩB × BAR BPQ^AV_Q = \ ^AR_B \ ^BV_Q + ^A \Omega_B\ \times \ ^A_BR \ ^BP_Q

加上原点的线速度,将上式推广到坐标原点不重合的情况:

AVQ= AVBORG+ BAR BVQ + AΩB × BAR BPQ^AV_Q =\ ^AV_{BORG} + \ ^A_BR \ ^BV_Q \ + \ ^A \Omega_B \ \times \ ^A_BR \ ^BP_Q

二、机器人连杆运动

【数学问题2】动力学基础
规定ωi\omega_i为连杆坐标系{i}\{i\}的角速度,viv_i为连杆坐标系原点的线速度。由于操作臂是链式结构,每一个连杆的运动都与它相邻杆有关

旋转关节

根据DH模型,我们计算其角速度值:

iωi+1= iωi+i+1iRθ˙i+1 i+1Z^i+1^i \omega_{i+1} = \ ^i \omega_i + ^i_{i+1}R \dot \theta_{i+1} \ ^{i+1}\hat Z _{i+1}

其中:

θi+1 i+1Z^i+1= i+1[00θ˙i+1] \theta_{i+1} \ ^{i+1}\hat Z _{i+1} =\ ^{i+1} \begin{bmatrix} 0 \\ 0\\\dot \theta_{i+1} \end{bmatrix}

需要注意,DH模型中我们定义旋转轴为Z轴,因此才会有θi+1 i+1Z^i+1\theta_{i+1} \ ^{i+1}\hat Z _{i+1}

由于连杆i+1i+1的角速度是由关节运动产生,因此第i+1i+1个连杆相对于第ii连杆的角速度,等于连杆ii本身的角速度加上连杆i+1i+1的关节角速度

两边同时乘以ii+1R^{i+1}_{i}R,对观测坐标系进行变换,我们得到:

i+1ωi+1=ii+1R iωi+θ˙i+1 i+1Z^i+1^{i+1} \omega_{i+1} = ^{i+1}_{i}R \ ^i \omega_i + \dot \theta_{i+1} \ ^{i+1}\hat Z _{i+1}

对于线速度:

ivi+1= ivi+ iωi× iPi+1^iv_{i+1} = \ ^iv_i + \ ^i\omega_i \times \ ^iP_{i+1}

两边同时乘以ii+1R^{i+1}_{i}R,得到:

i+1vi+1=ii+1R( ivi+ iωi× iPi+1)^{i+1}v_{i+1} =^{i+1}_{i}R ( \ ^iv_i + \ ^i\omega_i \times \ ^iP_{i+1})

相关文章: