Token Lab搜索

← Physical AI · 机器人
PHYSICAL AI / 3 OF 8

03 · 反馈控制与滚动时域规划

把学习得到的动作连接到稳定反馈与约束执行。

先修:动力学、导数与线性代数。

理解机制

策略往往指定目标,而非电机扭矩。低层控制器以更高频率跟踪目标,应区分规划、跟踪与安全职责。MPC 优化有限未来,却只执行第一个控制量,然后根据新观察重新规划。训练损失低不意味着稳定;延迟、饱和和接触可能破坏在名义仿真中很平滑的控制器。

Text / 原始公式
u = Kp(x* − x) − Kd v
x_next = x + Δt·v; v_next = v + Δt·u/m
min Σₜ [(xₜ−x*)ᵀQ(xₜ−x*) + uₜᵀRuₜ]
subject to dynamics, state limits and actuator limits
学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

  • 理解层:写明假设、形状/单位和一个反例。
  • 实现层:复算数值例子并检查边界。
  • 研究层:在匹配预算下比较一个替代方法。

机制图与逐步推导

目标与状态估计 → 带约束时域规划 → 执行首个控制量 → 观察误差并重新规划
原创机制示意图,按从上到下顺序阅读。 SVG ↓
符号与假设
符号含义
Kp, Kd比例增益与微分增益
Q, R状态误差与控制代价权重
  1. 1 千克质点位置 0.2 米,目标 1 米,速度 0.1 米/秒。、 时 牛顿。
  2. 若执行器上限 5 牛顿,实际使用 5 牛顿。 秒时显式 Euler 得下一速度 0.2 米/秒、位置 0.202 米。
  3. 比较受约束与无约束轨迹。增益增加可能缩短名义稳定时间,却增加饱和或延迟导致的振荡。
实验检查点

在玩具仿真中扫描延迟和质量,记录超调、稳定时间、峰值控制量与约束违反;固定积分步长。通过仿真不等于硬件认证。

原创面试练习与分析

先口述答案再展开分析,补充假设、反例和你会运行的测试。

为什么重新规划而非执行完整轨迹?

新观察揭示模型偏差和扰动,重新规划以计算换纠偏,但必须符合控制时限。

动作限幅能证明碰撞安全吗?

不能。有限动作仍可能进入障碍物。安全依赖状态、停止距离、几何与监督系统。

阅读一手来源

Underactuated Robotics — Russ Tedrake ↗

Token Lab 原创讲解与合成计算,不是机器人性能实测。来源链接核对于 2026-10-25,未锁版本的 arXiv 链接可能修订,复现时请记录版本。

MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

牛顿/米, 牛顿·秒/米。二次 MPC 常取 Q 半正定、R 正定;凸优化还需仿射动力学和凸约束。算例采用显式 Euler。

已复核公式条件、单位及算例。实现隔离一个数值机制,不训练完整策略,也不控制真实硬件。

运行前:预测一个边界情况

显式 Euler 使用旧速度更新位置;使用新速度是另一种积分器。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node feedback-and-planning.mjs. 无需第三方运行依赖。

const solve=()=>{
const x=.2,v=.1,target=1,kp=10,kd=2,mass=2,dt=.1;
const force=kp*(target-x)-kd*v;return [force,x+dt*v,v+dt*force/mass];
};
const actual=solve();
const expected=[7.8,0.21,0.49];
if(JSON.stringify(actual)===JSON.stringify(expected)){console.log('PASS',actual)}else{
const a=[actual].flat(), b=[expected].flat();
if(a.length!==b.length||a.some((v,i)=>!Number.isFinite(v)||Math.abs(v-b[i])>1e-10))throw Error('Numerical mismatch');
console.log('PASS within 1e-10',actual);
}
参考输出——先预测再展开
[
  7.8,
  0.21,
  0.49
]

测试与迁移

显式 Euler 使用旧速度更新位置;使用新速度是另一种积分器。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围