TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

经典方法与强化学习:什么用方程求解,什么交由学习处理

状态:草稿 (2026-10-18),实测。 数字是通过笔记本(Apple M1 Max, macOS 26.5)中的 Python 3.9.6 和 numpy 2.0.2 计算的模拟值。 原始数据与代码:工作目录 measure/robot-arm-basics/的 m10_learn.py, out/m10_learn.json。“现实世界”同样是模拟,没有真实的机器人实验 (硬件未实测)。论文中的数字已在各原文(arXiv 版本标注了版本号)中核实。参考资料查阅于 2026-10-18。 撰写规则:以实测数据为基础,无法测量的标注为“未实测”,无法确认的标注为“未确认”。

目录

1. 直觉:已知的通过计算解决,未知的通过学习解决

第 1 到第 9 篇使用的全都是方程。球的飞行遵循牛顿定律,球拍姿态遵循几何学,轨迹遵循多项式,控制遵循逆动力学。方程无需数据就能从第一颗球开始 运行,并且能够解释错误产生的原因。不过, 模型错得有多离谱,结果就会错得有多离谱。 在第 7 篇中,球拍反弹系数偏差 0.05 时,落点就会偏离 13 cm。

强化学习(reinforcement learning, RL)则恰好相反。它无需模型并通过试错来学习,因此不受模型错误的影响,但需要进行大量的击球尝试,且很难深入探究学到了什么。

构建乒乓球机器人的研究都在将两者结合。核心问题不是“要不要结合”,而是**“边界究竟该划在哪里”**。

2. 图表:四个系统的边界

네 시스템이 무엇을 학습에 맡겼나 공 예측 타격 결정 동작·궤적 관절 제어 Mülling 2013 EKF 물리 학습(선택) 시연+DMP 고전 Koç 2018 EKF 물리 최적화 최적 3차식 고전 Büchler 2022 모델(HYSR) RL RL RL(근육압) D'Ambrosio 2024 필터만 학습+규칙 선택 ES(관절속도) 로봇 제어기 학습이 맡음(실선) 방정식·고전 방법(점선) 각 논문 원문으로 확인한 구성을 단순화했다. 세부는 본문 표.
图表:四个乒乓球机器人系统在球的预测、击球决策、动作、关节控制中,哪部分交由学习处理的对比

3. 论文对比

这是打开各篇原文确认后的架构。由于数字旁边的条件各不相同,因此无法直接进行对比。

Mülling 等 2013 Koç 等 2018 Büchler 等 2022 D'Ambrosio 等 2024
机器人 Barrett WAM 7 自由度 Barrett WAM 7 自由度 由 8 个气动人工肌肉驱动的 4 自由度机械臂 ABB IRB 1100 6 自由度 + 线性龙门 2 轴
感知 4 台相机 60 Hz 4 台相机 60 Hz 球的位置 180 Hz 2 台相机 125 Hz
球的预测 EKF(重力、阻力,忽略旋转) EKF + 飞行模型 模型(学习过程中的球为模拟) 滤波器(不进行实时飞行预测)
击球决策 混合运动基元(MoMP)选择并混合契合情境的基元 同时优化击球时间和位置 PPO 策略全权负责 高级控制器为每次击球选择一项技术
动作 人类手把手教出的 25 个动作(DMP) 每个关节的三次多项式最优轨迹 PPO 以 100 Hz 调整肌肉压力变化 17 项技术,每项约 1 万个参数的 CNN 以 50 Hz 控制关节速度
学习负责的部分 基元选择权重(RL)、动作形态(示范) 估计球模型常量(示范数据) 机械臂的全部控制 技术(在模拟中使用进化策略系列的 BGS 学习) + 技术选择
报告的结果 实物回球成功率 69% → 97%(学习 150 次后),对人战绩 74.4% → 88% 实物回球成功率:固定击球平面约 10~40%,所提方法约 40~60%(根据设定可达 80~90%) 回球 75%(107 次),扣球 29%(128 次,平均约 12 m/s) 与 29 人进行 29 场比赛,取得 13 胜(45%):初级 7/7,中级 6/11,高级及以上 0/11

总结来说,边界越向右侧推移,学习所占的比重就越大。

也有通过学习来修正模型的思路。Sony AI (2026) 利用 9 台相机收集的大约 5.8 万条轨迹重新调整了球的阻力、马格努斯效应和反弹模型,并在球拍模型的物理公式之上叠加了神经网络残差。据报道,落点中心误差从基准模型的 0.37 m 降至 0.15 m。

4. 实测:将相同的问题化为小问题

由于各篇论文所用的机器人、球和评估标准各不相同,因此无法直接对比“边界划在哪里需要击球多少次”。为此,我们直接借用了第 7 篇的击球问题进行了一个小实验。

设定。 “现实世界”中的球拍与模型不同。反弹系数 e = 0.72(模型为 0.8),切向速度保持率 k = 0.88(模型为 1.0,由于胶皮摩擦导致切向速度减少 12%)。球是从第 1 篇的数据集中挑选的 300 个实际击球数据(训练 200 个,测试 100 个),目标是在 0.6 秒内将球落到对手半场的 (0.3, 0.9) m 处。

三种方法。

# (b) 한 번 칠 때마다 e, k 를 최소제곱으로 다시 맞춘다
n, vrn = racket_general(V, v_out_wanted, e, k)        # 지금 추정값으로 닫힌 해
vout = true_racket(V, n, vrn)                          # 실제 세계(모델과 다름)
Vm, Om = V + noise(), vout + noise()                   # 관측
A_e.append(vrn - Vm @ n);  b_e.append(Om @ n - vrn)    # e 에 대해 선형인 식
e = dot(A_e, b_e) / dot(A_e, A_e)
모델이 틀린 라켓: 몇 번 쳐 봐야 맞추나 1 10 100 1,000 10,000 0.1 1 10 100 쳐 본 공의 수(로그) 착지 오차 중앙값(cm, 로그) 방정식만(명목 모델) 24.5 cm 물리 상수만 학습 0.33 cm 모델 없이 정책 탐색(CEM) 실제 라켓 e=0.72, 접선 보존 0.88 / 모델 e=0.8, 1.0. 시험 공 100개. 물리 상수 학습은 10번 시드의 중앙값, CEM 은 선형 정책 18개 파라미터.
图表:在模型有误的球拍上,根据击球次数的落点误差
方法 击球次数 测试落点误差中位数
(a) 仅方程(名义模型) 0 24.5 cm(90% 29.3)
(a') 方程 + 精确常量(参考) 0 0.0007 cm
(b) 仅学习物理常量 1 2.1 cm
3 1.8 cm
10 1.3 cm
30 0.77 cm
100 0.33 cm
(c) 线性策略 CEM 2,000 129 cm
8,000 25.0 cm
16,000 30.6 cm
24,000 25.4 cm

(b) 是 10 个随机种子下的中位数,击打 100 次后推断出的 e 为 0.720,k 为 0.876(真实值为 0.72, 0.88)。

这个实验是刻意简化了的。现实世界同样也是模拟,且与模型的不同之处恰好在于“模型内部的常量”,这对 (b) 非常有利。如果模型的 形态本身就是错误的 (例如:模型完全不了解胶皮产生旋转的效果),无论怎么调整常量都会残留误差,而学习这些残差正是 Sony AI (2026) 中神经网络残差的作用。

5. 边界应划在哪里:本系列的建议

作为开源硬件首个机器人的起点,我们提出以下建议。这些建议可能会随着实验而调整。

阶段 初期方案 可加入学习的部分
球预测(第 6 篇) EKF + 物理模型 用我们的球和球台数据重新拟合阻力、马格努斯效应和反弹常量。旋转估计
击球决策(第 7 篇) 弹道学 + 反弹模型的闭式解 拟合球拍反弹常量(本文的 b),随后是模型残差
逆运动学·轨迹(第 4、8 篇) 解析解 + 五次多项式/时间最优 几乎不需要
控制(第 9 篇) PD + 逆动力学前馈 惯性与摩擦常量辨识、迭代学习控制(通过重复相同动作来修正前馈)
战术(打向何处) 固定目标点 强化学习。由于这部分随对手而变,很难用方程编写

原则只有一个: 如果方程能够缩小“未知事物的范围”,那就只对缩小的部分进行学习。 对于难以建立模型的执行器(气动肌肉)或没有标准答案的判断(战术),从一开始就交由学习来处理会更好。

6. 局限性

7. 第一部分结语

在过去的十篇文章中,我们通过计算走过了击打一个球所需的七个步骤。当将其转移到开源硬件时,需要记住的数据汇总如下。

数字 值 篇
球到达底线的时间 数据集中心 0.65 s,12 m/s 的球 0.32 s 1
预测误差的主要原因 未知旋转 5 cm,已知旋转 0.5 cm 6
球拍角度 1° / 速度 0.1 m/s / 反弹系数 0.05 落点 6 / 10 / 13 cm 7
击回所需的关节速度 约 10 rad/s(若要像人一样击打则需约 25) 5
挥拍时间 0.05~0.1 s(加速度极限 300~600 rad/s²) 8
控制 1 kHz + 前馈,电流环 1~2 kHz 带宽 9
关节零点 0.1° 对应球拍方向 0.1~0.2° 3

下一步是在实际零件和模拟器中重新测量这些数据。在此之前,第 11 至 15 篇将通过玩具问题直接实现强化学习的原理(MDP、PPO、奖励设计与动作空间、从仿真到真实、评估),并继续进行探讨。

TT 的话。 如果想把什么都学会,就算击球两万次也不够。已知的事情交个方程式,只需要学习未知的两个数字,所以十次就足够了!

参考

所有资料均于 2026-10-18 查阅。

登录后即可点赞

评论

还没有评论。

登录后即可发表评论