Skip to content

机械臂笔记(六)机械臂的动力学模型(牛顿-欧拉方程)

通过欧拉-拉格朗日方程在步骤上可以方便地对机器人进行动力学建模,但是最后得到的公式会比较复杂,难以计算。最终工程上还是会用牛顿-欧拉法对机器人进行动力学建模,更利于控制算法的设计。

一般来说,我们(忽略地球的自转和公转等)选择机械臂底座的中心作为世界坐标系(惯性系);如果底座也在动,我们需要选择地面上的一个固定点作为坐标系的原点。
这个坐标系不加速、不转动,或者相对真正的宇宙惯性系只做匀速直线运动

推导过程

coord.svg

我们假设上图蓝色的物体是一个刚体,我们选择刚体上的某一点,在此点上定义了一个与该刚体固连的坐标系B,即本体系。假设该刚体是均匀的,是由许多微元组成。最终,我们希望得到外力与刚体相对惯性系的速度与加速度的关系式。

符号定义

比较容易搞混的概念就是不同坐标系下的变换,所以符号相对于哪个坐标系非常重要。

符号表示坐标系说明
TS代表刚体的动能,必须相对于惯性系,不然坐标系选择会影响数值
PbB刚体相对于惯性系的动量,用本体系的坐标表示
ΠbB刚体相对于惯性系的角动量,用本体系的坐标表示
UbB刚体相对于惯性系的速度,用本体系的坐标表示
ΩbB刚体相对于惯性系的角速度,用本体系的坐标表示
UsS刚体相对于惯性系的速度,用惯性系的坐标表示
ΩsS刚体相对于惯性系的角速度,用惯性系的坐标表示
VibB刚体微元i 相对于惯性系的速度,用本体系的坐标表示
pbB向量p 在本体系下的表示
psS向量p 在惯性系下的表示
rcbB向量rc 在本体系下的表示
ribB向量ri 在本体系下的表示
m-表示刚体的质量
Ib-刚体的惯量矩阵,相对于本体系
FextbB刚体所受的合外力,在本体系下的表示
MextbB刚体所受的合外力矩,在本体系下的表示

其中有一些定义公式,可能对以后的推导有帮助:

  • 质心
(0.1)rcb=1mribdm
  • 标准向量恒等式(对称的)
(0.2)(a×b)(a×b)=aT(||b||2IbbT)a=bT(||a||2IaaT)b
  • 惯量矩阵
(0.3)Ib=(||rib||IribribT)dm(0.4)(dadt)s=(dadt)b+Ωb×a
  • 向量微分
(0.5)ddt(a×b)=a×b+a×b

计算刚体动能

刚体的动能等于所有微元的动能之和:

(1)T=12Vib2dm

由于刚体上任意微元的运动都可以分解为参考本体系的平动和转动,因此微元的速度可以表示为线速度和转动诱导速度之和:

(2)Vib=Ub+Ωb×rib

联立式(0.1),(0.2),(0.3),(1),(2),可得:

(3)T=12Vib2dm=12(Ub+Ωb×rib)(Ub+Ωb×rib)dm=12Ub2dm+Ub(Ωb×rib)dm+12(Ωb×rib)(Ωb×rib)dm=12mUbTUb+UbΩb×ribdm+12ΩbT[(||rib||2IribribT)dm]Ωb=12mUbTUb+mUbΩb×rcb+12ΩbTIbΩb

计算刚体动量

动能对速度求导,即可得到动量:

(4)Pb=TUb=mUb+mΩb×rcb

动能对角速度求导,即可得到角动量:

(5)Πb=TΩb=mrcb×Ub+IbΩb

计算动能/动量与合外力的关系

在惯性系下,角动量与力矩的关系如下:

(6)ddtΠs=Ms

但是到本体系里面,结合式(0.4),它与合外力矩的关系是:

(7)ddtΠs=ddtΠb+Ωb×ΠbddtΠb=ddtΠsΩb×Πb()Mextb=MextbUb×Pb

在惯性系下,结合(4) 式,对动量和角动量对时间求导:

(8)Fextb=dsPbdt=mdsUbdt+dsΩb×rcbdt=mUb+mΩb×Ub+mΩb×rcb+mΩb×(Ωb×rcb)

同样,对于公式(7) 有:

(9)Mextb=dsΠbdt+Ub×Pb=mds(rcb×Ub)dt+dsIbΩbdt+mUb×(Ωb×rcb)=m(rcb×Ub+Ωb×(rcb×Ub))+IbΩb+Ωb×(IbΩb)+mUb×(Ωb×rcb)=mrcb×Ub+IbΩb+Ωb×(IbΩb)+mrcb×(Ωb×Ub)

整理后得到矩阵的形式:

(10)[FextbMextb]=[mI3×3mrcbmrcbIb][UbΩb]+[mΩb×Ub+mΩb×(Ωb×rcb)mrcb×(Ωb×Ub)+Ωb×(IbΩb)]

简写成如下形式:

(11)Fextj=MjVj+βj

其中:

  • j 表示第j 个连杆;
  • Vj=[UjΩj] 表示连杆j 相对于惯性系的速度和角速度组成的六维向量,在本体系下表示。
  • jHj+1 表示一个六维变换矩阵,可以将j+1 系下的力变化到j 系下
  • Fextj 表示连杆收到的外力,外力矩在j 系下的表示。

建模示例--平面2R 机械臂

如果不想看上面公式,可以简单捋一下,下面的步骤。

机构与参数定义

  • 关节变量:q=[q1q2],对应的角速度q,角加速度q
  • 连杆参数:
    • 长度: l1,l2
    • 质心到前一关节的距离: r1,r2
    • 质量: m1,m2
    • 转动惯量:I1,I2
  • 重力: g=[0g0]
  • 旋转矩阵:Ri=Rz(qi)=[cosqisinqi0sinqicosqi0001],表示坐标系i 相对于坐标系i−1 的方向
  • 矩阵RiT=Ri1,表示把一个在i−1 系下表达的向量,转换为在 i 系下的表达

正向递推(速度与加速度)

因为底座(惯性系)固定在地面,有:

(12)ω0=[000]α0=[000]a0=g=[0g0]

因为每个质点都会受到向下的重力加速度g,如果另惯性系有一个向上的虚拟加速度g,那么在后悔递推中各连杆的质心加速度哦都会自动包含重力效应。

对于连杆i 的角速度和角加速度有:

(13)ωi=RiTωi1+qizαi=RiTαi1+qiz

其中z=[0,0,1]T 表示z 轴的单位向量。qiz可以把标量转化为角速度(角加速度)的向量。

关节原点的加速度:

(14)ai=RiT(ai1()+αi1×pi1,i+ωi1×(ωi1×pi1,i))

其中:

(15)P0,1=[0,0,0]TP2,1=[l1,0,0]T

很自然可以联想到这是关节到上一关节的拓扑参数。

这里可以看到一个关键点:RiT

连杆的质心加速度:

(16)aci=ai+αi×ri+ωi×(ωi×ri)

其中ri=[ri,0,0]T,表示质心相对于本体坐标系的位置。

反向递推(力与力矩)

假设末端无外力,则从末端到基座的力与力矩为:

(17)f3=[0,0,0]Tn3=[0,0,0]T

本关节惯性力与惯性矩:

(18)Fi=miaiNi=Iiαi+ω×(Iiωi)

递推到关节:

(19)fi=Ri+1fi+1+Fini=Ni外力矩+Ri+1ni+1后杆传来的力矩+ri×Fi惯性力力矩+pi,i+1×(Ri+1fi+1)后杆传力产生的力矩

关节驱动力矩

对于转动关节:

(20)τi=niz

整理后可以得到标准形式:

τ=M(q)q¨惯性项+C(q,q˙)q˙科氏力和离心力项+G(q)重力项

显示结果

为简化表示令ci=cosqi,si=sinqi:

惯性矩阵

M11=I1+I2+m1r12+m2(l12+r22+2l1r2c2)M12=M21=I2+m2(r22+l1r2c2)M22=I2+m2r22

科氏/离心项

C1=m2l1r2s2(2q1q2+q22)C2=m2l1r2s2q12

重力项

G1=(m1r1+m2l1)gcos(q1)+m2r2gcos(q1+q2)G2=m2r2gcos(q1+q2)

注意的点

上面步骤只适用于旋转关节,如果想添加平动环节(旋转矩阵是单位矩阵),还需要作出如下改动:

加速度递推

ωi=RiTωi1继承的角速度+{q˙iz,R 关节0,P 关节本关节贡献

角加速度递推

αi=RiTαi1继承的角加速度+{q¨iz,R 关节0,P 关节本关节贡献

线速度递推

ai=RiT(ai1平移继承+αi1×pi1,i切向加速度+ωi1×(ωi1×pi1,i)向心加速度)+{0,R 关节q¨iz+2ωi×(q˙iz),P 关节本关节贡献

总结

根据上面的建模步骤,可以看到,即使公式推导过程难以理解,但是实际建模却非常有规律,如果用编程实现的话可以看到函数是可以递归调用的。
运动学和动力学可以通过以下方式进行有机的结合:

期望末端轨迹 x_d(t)
        ↓  逆运动学 / 雅可比
期望关节轨迹 q_d(t), ẋ_d(t), q̈_d(t)
        ↓  反馈控制律
误差 e = q_d - q

期望关节加速度 q̈_cmd
        ↓  逆动力学(前馈)
期望力矩 τ_cmd

电机驱动器 → 实际机器人 → 传感器反馈

感谢ChatGPT/Gemini/Calude!

算是一点疑惑或者抱怨

本人虽学习过一段经典控制理论,但是还没毕业基本都还给老师了。作为一个程序员,是否要耗费大量精力去了解和学习理论推导过程?

  • 学:会陷入无尽的公式推导,数学基础薄弱;
  • 不学:没有一个可靠的输入,去网上也很难找到一个容易扩展的工具或案例
    是我的方向错了吧

AI 回复说:

如果你真把牛顿–欧拉、拉格朗日、完整控制理论全补完,你得到的能力,90% 在真实项目里用不上。 而你现在最缺的,其实是:
一个可跑通的控制框架
一套自证正确的测试方法
一种不会把你拖进数学深渊的学习节奏

参考资料

  1. 机器人动力学建模之牛顿欧拉法推导
  2. 关于地转偏向力(科氏力)。在旋转的坐标系中,物体脱手后相对于惯性系是匀速直线运动,但是相对于旋转系则是曲线运动,像是被某个力改变了运动轨迹一般。