科里奥利与离心项
在一台多关节机器人里,科里奥利与离心项,是纯粹因为机器人已经在运动才冒出来的那些额外的力——一旦它静止下来,这些力就立刻消失。它们是动力学中并非由重力、也并非由加速度驱动,而是由速度驱动的那一部分:取决于此刻各关节正转得多快。设想一把旋转的办公椅。当你一边转一边把腿伸出去,会感到一股力把腿向外甩开;那股向外甩的劲,就是离心效应。而如果你在仍旋转着时把手臂收进或伸出,会感到一股先前没有的横向轻推;那股横向的推,就是科里奥利效应。
这些力之所以重要,是因为机器人的关节是相互联动的,于是一个关节的运动会悄悄在其它关节处搅起力来。离心项随某关节自身速度的平方增长——转速翻一倍,向外甩的劲大约翻四倍。科里奥利项则在两个关节同时运动时出现,把它们的速度耦合成手臂别处所感受到的一份力。这两者都不来自任何电机的有意推动;它们都只是对“一个运动着的、带关节的物体如何自我推搡”这一现象的记账。工程师常把它们汇成一个整体,写作 C(q,q̇),其中的 q̇ 是在提醒:这些力取决于各关节运动得多快。
忽略这些项,一台缓慢运动的机器人差不多还会如你所料地表现——可一旦命令它快速运动,那些未被建模的速度之力就会把它带偏,造成冲过头、漂移或振动。正因如此,高速、高精度的控制必须显式地计算并抵消科里奥利与离心项,好让手臂即便是在空中甩动、而非缓缓爬行时,也能咬住自己的目标。
一条快速旋转的机械臂伸出它外侧的连杆,会感到那连杆自顾自地被向外拉扯——没有任何电机下令产生这股拉力。一个未能预先料到这股离心甩劲的控制器,会任由连杆漂过它的目标,然后再以一记看得见的猛抽去纠正。
在高速下,机器人自身的运动会生出力来;好的控制器会预测并抵消它们,让手臂始终咬住目标。
离心项源自单个关节自身的速度;科里奥利项源自两个关节同时运动。二者都取决于速度,所以只要机器人静止不动,它们就都会消失。