动力学
重力补偿
重力补偿是这样一个巧妙做法:实时算出此刻重力对机械臂每一个部件向下拉拽的力到底有多大,然后让电机以恰好相等的力反向托住——不多也不少。结果就是机械臂仿佛失去了重量:它既不会向地面下垂,也不会向上漂移。想象你把一架很重的梯子稳稳地举在半空。你的大部分力气并不是用来移动它,而只是用来对抗重力,好让梯子停在你松手的地方。重力补偿就是把这份恰到好处的“托举”力气交给机器人自己的电机,让它们自行把手臂托住。
这为什么如此重要?机械臂是一串沉重的连杆,重力对每根连杆的拉拽,取决于此刻手臂是怎样折叠的——伸直的手臂在肩部所需的托举扭矩,要远远大于收拢的手臂。机器人会用一个描述自身质量和长度的数学模型,一个关节一个关节地算出:仅仅为了对抗重力、保持不动所需的那份稳定扭矩。一旦这份基准扭矩被自动提供,控制器再发出的任何额外指令,就会纯粹用在你真正想要的运动上,而不会被浪费在托举重量上。这让手臂更容易被精确控制,也让人可以直接抓住手臂、像它在漂浮一样用手引导它——很多机器人正是用这种方式被“手把手”教会新动作的。
当外科医生松开一只机器人辅助的手术臂时,它会冻结在他们松手的确切位置、而不会瘫软落下,因为这只手臂正不停地用重力补偿扭矩把自己托住。
能托住自身重量的手臂,在被松开时会停在原处。
重力补偿只抵消了力中“重力”那一部分;控制器仍然要额外提供用于加速、减速和克服摩擦的扭矩。
又称
另见