動力學

重力補償

重力補償是這樣一個巧妙做法:即時算出此刻重力對機械臂每一個部件向下拉拽的力到底有多大,然後讓馬達以恰好相等的力反向托住——不多也不少。結果就是機械臂彷彿失去了重量:它既不會向地面下垂,也不會向上漂移。想像你把一架很重的梯子穩穩地舉在半空。你的大部分力氣並不是用來移動它,而只是用來對抗重力,好讓梯子停在你鬆手的地方。重力補償就是把這份恰到好處的「托舉」力氣交給機器人自己的馬達,讓它們自行把手臂托住。

這為什麼如此重要?機械臂是一串沉重的連桿,重力對每根連桿的拉拽,取決於此刻手臂是怎樣折疊的——伸直的手臂在肩部所需的托舉扭矩,要遠遠大於收攏的手臂。機器人會用一個描述自身質量和長度的數學模型,一個關節一個關節地算出:僅僅為了對抗重力、保持不動所需的那份穩定扭矩。一旦這份基準扭矩被自動提供,控制器再發出的任何額外指令,就會純粹用在你真正想要的運動上,而不會被浪費在托舉重量上。這讓手臂更容易被精確控制,也讓人可以直接抓住手臂、像它在漂浮一樣用手引導它——很多機器人正是用這種方式被「手把手」教會新動作的。

當外科醫生鬆開一隻機器人輔助的手術臂時,它會凍結在他們鬆手的確切位置、而不會癱軟落下,因為這隻手臂正不停地用重力補償扭矩把自己托住。

能托住自身重量的手臂,在被鬆開時會停在原處。

重力補償只抵消了力中「重力」那一部分;控制器仍然要額外提供用於加速、減速和克服摩擦的扭矩。

又稱
gravity cancellation重力抵消抗重力扭矩