动力学

正动力学

正动力学回答的是一个“如果……会怎样”的问题:在已知每个电机此刻正用多大力推动、机器人当前是什么姿态、又在如何运动的情况下,它在下一瞬间会加速还是减速、变化有多快?说白了,你输入力和扭矩,它就预测出由此产生的加速度。它好比机器人版本的“推购物车”:你知道自己推得有多用力、车里装得有多满,正动力学就告诉你这辆车会以多快的速度加起速来。

它背后的数学,遵循牛顿那条古老的规律——力等于质量乘以加速度,只不过被推广到了一整个连成串的物体上,其中每个关节都会牵动其他所有关节。机器人从它当前的状态出发——每个关节的角度、以及它转动得有多快——再加上施加的扭矩和重力那份稳定的拉拽,然后解算出每个关节处的加速度。关键在于,这恰好是逆动力学的反向操作:逆动力学问的是“要实现这个运动,我需要多大扭矩?”,而正动力学问的是“这些扭矩会产生什么样的运动?”

它真正大放异彩的地方是仿真。为了在拿真实硬件冒险之前先在计算机上预演机器人的行为,人们会以极小的时间步长一遍遍地运行正动力学:施加扭矩、算出加速度、把速度和角度向前推进短短一瞬,再重复。把这些步骤一步步拼接起来,就成了一个可信的虚拟机器人——这正是电子游戏物理引擎和机器人训练仿真器内部共用的那台引擎。

机器人训练仿真器每秒会用上千次正动力学:在每一帧里,它接收发出的电机扭矩和重力,算出每个关节如何加速,再把虚拟机器人向前推进极小的一步,从而让它的跌倒、摆动或迈步看起来都很真实。

输入扭矩、输出加速度——一小步一小步重复下去,就构成了一次仿真。

正动力学需要机器人的质量模型(它的惯性矩阵);在每个时间步对这个矩阵求逆,正是运行物理仿真中开销最大的部分。

又称
direct dynamics正向动力学FD