動力學

逆動力學

逆動力學是從目標倒推的:你告訴它你究竟想讓機器人怎樣運動——路徑、速度,尤其是要多快地加速和減速——它就算出每個馬達必須使出多大的推力,才能讓這個運動真正發生。如果說正動力學是“我這麼用力推,它會跑到哪兒去?”,逆動力學就是反過來:“我想讓它正好跑到這裡、按這個樣子跑——那我得用多大力推?”這正是你自己的大腦在不假思索間回答的同一個問題:當你決定把杯子平穩地舉到唇邊時,你的肌肉就恰好提供了那份合適的力。

為了把答案算對,逆動力學必須同時把好幾種力都考慮進去。重力時刻把每根連桿向下拉,所以僅僅為了保持位置就需要一些扭矩。讓一個關節加速或減速要額外的扭矩,因為質量會抵抗運動狀態的改變。而在一隻連成串的手臂裡,甩動一個關節會把側向的力甩到其他關節上——這就是科里奧利力和離心力的效應——這些也必須被“買單”。把面向目標運動的這一切全部相加,就得到了每個關節在每一瞬間確切的扭矩指令。

這是高效能機器人控制的脊梁。與其先輕推馬達、再事後糾正錯誤,控制器可以用逆動力學提前預測出所需的扭矩,把它們直接送給馬達,再讓一個較小的糾偏迴路只去清理剩下的那一點誤差。它帶來的回報,是又快、又平穩、又精確的運動——這對於焊出一條筆直的焊縫、或端著一滿杯水不灑出來這類任務,都是不可或缺的。

在機械臂猛地劃過一段快速抓取-放置的弧線之前,它的控制器會執行逆動力學,算出在加速最猛的那一刻每個關節所需的扭矩峰值,好讓手臂緊跟規劃好的路徑,而不是落在後面、又衝過了頭。

輸入想要的運動、輸出所需的扭矩——這就是精確控制的配方。

計算逆動力學既快又標準的方法,是遞迴牛頓-歐拉演算法:它沿手臂向外掃一遍、再向回掃一遍。

又稱
ID逆向动力学