动力学
逆动力学
逆动力学是从目标倒推的:你告诉它你究竟想让机器人怎样运动——路径、速度,尤其是要多快地加速和减速——它就算出每个电机必须使出多大的推力,才能让这个运动真正发生。如果说正动力学是“我这么用力推,它会跑到哪儿去?”,逆动力学就是反过来:“我想让它正好跑到这里、按这个样子跑——那我得用多大力推?”这正是你自己的大脑在不假思索间回答的同一个问题:当你决定把杯子平稳地举到唇边时,你的肌肉就恰好提供了那份合适的力。
为了把答案算对,逆动力学必须同时把好几种力都考虑进去。重力时刻把每根连杆向下拉,所以仅仅为了保持位置就需要一些扭矩。让一个关节加速或减速要额外的扭矩,因为质量会抵抗运动状态的改变。而在一只连成串的手臂里,甩动一个关节会把侧向的力甩到其他关节上——这就是科里奥利力和离心力的效应——这些也必须被“买单”。把面向目标运动的这一切全部相加,就得到了每个关节在每一瞬间确切的扭矩指令。
这是高性能机器人控制的脊梁。与其先轻推电机、再事后纠正错误,控制器可以用逆动力学提前预测出所需的扭矩,把它们直接送给电机,再让一个较小的纠偏回路只去清理剩下的那一点误差。它带来的回报,是又快、又平稳、又精确的运动——这对于焊出一条笔直的焊缝、或端着一满杯水不洒出来这类任务,都是不可或缺的。
在机械臂猛地划过一段快速抓取-放置的弧线之前,它的控制器会运行逆动力学,算出在加速最猛的那一刻每个关节所需的扭矩峰值,好让手臂紧跟规划好的路径,而不是落在后面、又冲过了头。
输入想要的运动、输出所需的扭矩——这就是精确控制的配方。
计算逆动力学既快又标准的方法,是递归牛顿-欧拉算法:它沿手臂向外扫一遍、再向回扫一遍。
又称
另见