Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Differential dynamic programming

  • 又称: DDP
  • 类别: Planning & manipulation › Trajectory optimisation
  • 标签: trajectory-optimization, optimal-control, model-predictive-control, numerical-optimization, shooting-methods

一种轨迹优化方法,它沿当前轨迹使用未来代价(cost-to-go)的局部二次模型,通过反复的反向与前向过程改进控制序列。

定义

微分动态规划(Differential dynamic programming,DDP)是一种轨迹优化算法:给定动力学模型、关于状态和控制量的代价以及初始状态,它找出一个使总代价局部最小的控制序列。它由 David Mayne 于 1966 年提出,并在 Jacobson 和 Mayne 1970 年出版的同名著作中得到进一步发展。DDP 是一种打靶法:决策变量是控制量,在其经典形式中,状态总是通过向前模拟动力学得到,因此每一次迭代的结果都是一条动力学上可行的轨迹。

每次迭代包含两个过程。反向过程从最后一个时间步开始向起点推进,在局部应用 Bellman 最优性原理:它利用动力学和代价的一阶与二阶导数,在当前轨迹附近构造未来代价(cost-to-go)的二次近似,并在每一步求解一个仿射控制更新,该更新由前馈项 k 和反馈增益矩阵 K 组成。随后前向过程用更新后的控制量 u = ū + αk + K(x − x̄) 模拟系统,其中 α 是线搜索步长。由于展开式包含动力学的二阶项,DDP 在局部极小值附近像牛顿法一样二次收敛,而每次迭代的计算量只随时域长度线性增长。

动力学的二阶导数计算代价高昂,因此使用最广泛的变体,即迭代线性二次调节器(iLQR),舍弃了这些导数,只保留动力学的一阶模型,即 Gauss-Newton 近似。实用的求解器会对反向过程进行正则化,使其保持良态,并把该方法扩展到控制量限制(控制受限 DDP)、一般约束(增广拉格朗日方法,例如 ALTRO)、不可行的初始猜测(Crocoddyl 中的可行性驱动 DDP),以及像 Parameterized DDP 那样与控制量一起优化的时不变参数。DDP 只能找到局部最优解,因此结果取决于初始猜测。一个有用的副产品是这组反馈增益,它们可以使机器人稳定在优化后的轨迹附近。

为何重要

DDP 和 iLQR 是机器人轨迹优化和非线性模型预测控制中使用最多的求解器之一。它们利用问题的时间结构,计算量随时域长度线性增长,并且在给出轨迹的同时返回一个局部反馈策略,这就是足式机器人、人形机器人和无人机在机载计算机上实时运行它们的原因。

主要应用

  • 足式机器人和人形机器人的非线性模型预测控制
  • 无人机和敏捷载具的轨迹优化
  • 机械臂的力矩级运动规划
  • 欠驱动系统的起摆与平衡
  • 轨迹与模型参数或设计参数的联合优化

实际应用

一个为四足机器人构建全身模型预测控制的团队在 Crocoddyl 中建立问题。接触序列来自固定的步态时间表,因此每个阶段的接触都是已知的;代价函数结合了基座跟踪、落脚位置、控制量消耗,以及使接触力保持在摩擦锥内的惩罚项。在每个控制周期,求解器以前一次的解向后平移一步作为热启动,只运行一次或几次迭代。第一个控制量及其反馈增益被发送给底层关节控制器,后者利用该增益修正两次求解器更新之间的状态变化。大部分调参工作集中在代价权重、正则化和时域长度上,它们在预见能力与求解时间之间进行权衡。

常见误解

  • DDP 能找到全局最优轨迹 — 它是一种局部方法;结果取决于初始猜测,并且可能是一个很差的局部极小值
  • iLQR 和 DDP 是同一种算法 — iLQR 省略了动力学的二阶项,使每次迭代的计算量小得多,代价是在解附近收敛更慢
  • DDP 无法处理约束 — 基本算法是无约束的,但控制受限变体和增广拉格朗日变体已被广泛使用
  • DDP 是在整个状态空间上进行的动态规划 — 它只沿一条轨迹应用 Bellman 递推,这避免了维数灾难,但只能给出局部结果

谁需要了解

  • 为足式机器人和无人机构建模型预测控制器的控制工程师
  • 轨迹优化研究人员
  • 人形机器人和全身控制开发人员
  • 学习最优控制的机器人专业学生

相关技术

  • iLQR
  • Crocoddyl
  • ALTRO
  • Riccati 递推(Riccati Recursion)
  • 打靶法(Shooting Methods)

相关术语

  • Direct Collocation
  • Model Predictive Control
  • Trajectory Planning
  • Moving horizon estimation
  • Underactuated system
  • Hybrid system

相关项目

  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
  • python_simple_mppi: MPPI control derived and implemented in numpy, with four worked examples
  • mjbatch: Runs thousands of MuJoCo simulations in parallel on the CPU
  • Quadruped-PyMPC: Python MPC framework for quadruped locomotion with gradient and sampling control
  • STLCG: JAX toolbox for differentiable Signal Temporal Logic robustness

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。