動力學
正動力學
正動力學回答的是一個“如果……會怎樣”的問題:在已知每個馬達此刻正用多大力推動、機器人當前是什麼姿態、又在如何運動的情況下,它在下一瞬間會加速還是減速、變化有多快?說白了,你輸入力和扭矩,它就預測出由此產生的加速度。它好比機器人版本的“推購物車”:你知道自己推得有多用力、車裡裝得有多滿,正動力學就告訴你這輛車會以多快的速度加起速來。
它背後的數學,遵循牛頓那條古老的規律——力等於質量乘以加速度,只不過被推廣到了一整個連成串的物體上,其中每個關節都會牽動其他所有關節。機器人從它當前的狀態出發——每個關節的角度、以及它轉動得有多快——再加上施加的扭矩和重力那份穩定的拉拽,然後解算出每個關節處的加速度。關鍵在於,這恰好是逆動力學的反向操作:逆動力學問的是“要實現這個運動,我需要多大扭矩?”,而正動力學問的是“這些扭矩會產生什麼樣的運動?”
它真正大放異彩的地方是模擬。為了在拿真實硬體冒險之前先在電腦上預演機器人的行為,人們會以極小的時間步長一遍遍地執行正動力學:施加扭矩、算出加速度、把速度和角度向前推進短短一瞬,再重複。把這些步驟一步步拼接起來,就成了一個可信的虛擬機器人——這正是電子遊戲物理引擎和機器人訓練模擬器內部共用的那台引擎。
機器人訓練模擬器每秒會用上千次正動力學:在每一幀裡,它接收發出的馬達扭矩和重力,算出每個關節如何加速,再把虛擬機器人向前推進極小的一步,從而讓它的跌倒、擺動或邁步看起來都很真實。
輸入扭矩、輸出加速度——一小步一小步重複下去,就構成了一次模擬。
正動力學需要機器人的質量模型(它的慣性矩陣);在每個時間步對這個矩陣求逆,正是執行物理模擬中開銷最大的部分。
又稱
另見