Forward Dynamics Model
- 又称: forward model, dynamics model, transition model
- 类别: Learning & autonomy › RL & simulation
- 标签: dynamics, model-based-control, model-based-rl, simulation, prediction
一种模型,根据系统的当前状态和施加的动作预测其状态将如何变化,让机器人在采取动作之前先模拟其效果。
定义
正向动力学模型(Forward dynamics models)根据系统的当前状态和施加于其上的动作,预测系统的下一个状态。简洁地写出来,它们把状态和动作映射到下一个状态,或映射到状态的变化率。它们回答的问题是“如果我这样做,会发生什么?”,这使它们成为仿真、基于模型的规划和基于模型的强化学习的核心组成部分。
在经典机器人学中,正向动力学有精确的含义:给定刚体机器人的关节位置、速度和力矩,计算由此产生的关节加速度。这些加速度由运动方程得出,用到质量矩阵以及科里奥利项、离心项和重力项,并用铰接体算法等算法高效计算。MuJoCo、PyBullet 和 Drake 等物理仿真器都是围绕这一计算构建的,并在时间上向前积分。
在机器人学习中,正向动力学模型往往从数据中学习得到,而不是推导出来的。神经网络在记录下的状态转移上训练,根据当前状态和动作预测下一个状态或其潜在表示。学习得到的模型可以捕捉难以手工建模的效应,例如不平地形上的车轮打滑、线缆或布料的变形,或整个由感知驱动的系统的响应。当状态是图像或学习得到的嵌入时,同样的思想通常被称为世界模型。
规划器使用正向模型的方式是:采样或优化动作序列,通过模型对其进行推演(rollout),并对预测结果打分。主要弱点是误差累积:单步的小错误会在较长的预测时域上不断放大,而且规划器可能会利用模型中不准确的部分。
为何重要
任何通过预测自身动作后果来进行规划的机器人,都需要一个正向动力学模型,无论它是由物理推导而来还是从数据中学到的。该模型的精度决定了机器人能可靠地向前规划多远,以及在从未见过的情形中能多安全地行动。
主要应用
- 刚体机器人的物理仿真
- 模型预测控制和基于采样的规划
- 基于模型的强化学习
- 预测机器人在崎岖或可变形地形上的运动
- 用于从图像进行规划的视频和潜在空间预测模型
实际应用
对于刚性机械臂,团队通常从物理引擎或 Pinocchio、Drake 等库中获取正向动力学,并使用带有辨识出的质量和惯量的 URDF。对于难以建模的系统,例如在混合地形上行驶的地面机器人,他们在遥操作或自主运行期间记录状态、动作和传感器数据,训练神经网络预测未来状态,并在留出的运行数据上比较规划时域内预测的轨迹与实际轨迹来验证它。随后,学习得到的模型被接入 MPPI 等基于采样的控制器,由控制器通过模型推演许多候选动作序列并选出最佳的一个。工程师会跟踪预测误差随时域长度的变化,因为这决定了控制器能有效地向前规划多远。
常见误解
- 正向动力学和逆向动力学可以互换 — 正向动力学把动作映射到由此产生的运动,而逆向动力学把期望的运动映射到产生它的动作
- 单步预测得好的模型就能规划得好 — 误差会在多步推演中累积,而且规划器可能利用模型的不准确之处
- 正向动力学模型总是学习得到的 — 在经典机器人学中,它们是从机器人的运动方程解析推导出来的
谁需要了解
- 基于模型的控制与规划工程师
- 研究基于模型的强化学习(RL)和世界模型的机器人学习研究人员
- 仿真开发者
- 对地形交互进行建模的野外机器人团队
相关技术
- MuJoCo
- Pinocchio
- Drake
- 模型预测路径积分(Model Predictive Path Integral,MPPI)
- 铰接体算法(Articulated Body Algorithm)
- 世界模型(World Model)
相关术语
相关项目
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- RLinf: Scalable infrastructure for post-training foundation models via RL
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
- NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing