经典机器人方法与学习系统怎样协作
经典方法提供几何、动力学、约束和可验证的反馈骨架,学习方法补足难以精确建模、难以手写规则和需要泛化的部分。
一台机器人从任务到电机通常跨越多个时间尺度。任务规划可能每几秒更新一次,视觉策略可能以数赫兹到数十赫兹给出目标,轨迹规划与模型预测控制更快,关节电流环则可能运行到千赫兹以上。越接近电机,系统越强调确定性、时延上界和稳定性;越接近任务,环境组合越复杂,学习方法越能发挥语义理解和模式归纳能力。工程上常见的“大脑—小脑—脊髓”比喻大致对应任务推理、运动技能和低层伺服,但它只是帮助理解的分层,具体产品可以有不同划分。
经典机器人链路从坐标与模型开始。正运动学用关节角 \(q\) 推出末端位姿 \(x=f(q)\);雅可比矩阵 \(J(q)\) 把关节速度映射到末端速度:
动力学进一步描述质量、惯性、重力、摩擦和外力:
这里 \(M\) 是惯性矩阵,\(C\dot q\) 表示科氏力和离心项,\(g\) 是重力项,\(\tau_f\) 是摩擦,\(\tau\) 是执行器输出,\(F_{ext}\) 是环境接触力。这些式子不要求模型完美。它们的价值在于告诉工程师变量怎样相互作用、约束在哪里、什么量能被测量,并给控制器一个可解释的起点。
反馈控制持续比较目标和测量值。最简单的 PID 控制按误差、误差积分和误差变化率产生控制量;阻抗控制则让机械臂在接触时表现得像预设的弹簧—阻尼系统。轨迹优化和模型预测控制会在有限时间窗内寻找满足动力学、碰撞、关节限位和力约束的动作。对于焊接轨迹、固定工位搬运、已知地图导航等结构化问题,这些方法通常数据需求低、行为边界清楚,调试工具也更成熟。
学习方法适合处理模型难以写全的部分。例如视觉中的物体差异、布料和线缆的形变、摩擦不确定性、人类语言的多样表达,以及一个动作存在多条合理路径的情况。学习到的感知模型可以输出物体姿态,学习到的残差模型可以修正刚体动力学,模仿策略可以直接提出末端动作序列,强化学习可以在仿真中形成步态。它们也带来新风险:训练分布之外的输入、置信度失真、动作抖动、算力与网络时延、难以证明的稳定性。
混合架构因此很常见。高层模型把“把桌面收拾干净”分解成可执行子任务;几何规划器检查可达性和碰撞;学习策略处理抓取与接触;低层控制器追踪位置或力;独立安全控制器限制速度、力、工作空间并监视急停。另一个组合方式是“模型加学习残差”:已知动力学产生基础控制量 \(u_{model}\),神经网络只学习未建模误差 \(\Delta u_\theta\):
残差的作用域较小,数据效率和可诊断性通常优于从零学习全部控制,但基础模型偏差过大时也可能限制最终能力。
选择方法时,可以先问四个问题。任务目标能否形式化;环境变化能否穷举;错误代价有多高;真实数据是否可安全获得。目标清楚、约束硬、容错低的部分优先保留显式模型与安全逻辑。视觉、接触和任务组合数量很大时,可以引入学习。学习模块要声明输入分布、输出单位、控制频率、失效处理和验证集,而不能只交付一个权重文件。
一个有用的工程判断是“让每层处理它能观测和能负责的变量”。语言模型擅长任务语义,却无法仅凭一张远景图精确感知夹爪接触力;关节控制器能以高频稳定电流,却不了解订单优先级。把上层推理直接连接到电机,会放大时延和幻觉风险;让低层控制器承担开放世界语义,也会使规则数量失控。
设计混合系统时,可以为每个模块写一张五列接口单:输入及单位、输出及单位、更新频率、允许延迟、失败状态。以抓取为例,VLA 可能输出相机坐标中的末端增量,逆运动学转换成关节目标,轨迹控制器在关节空间执行;若相机外参过期,三个模块都可能“按设计工作”,整条链仍会抓偏。接口单把这种系统性错误从算法准确率中分离出来,也方便确定哪一层负责检测和停止。
经典模型还承担“护栏”与“反事实基线”。当学习策略失败时,工程师可以用几何可达性、碰撞检测、能量和稳定性分析判断失败是否物理可行;当新模型声称提升时,也应与经过调参的 PID、轨迹优化或规则基线比较。许多任务的简单部分已经有成熟解法,让学习模块集中处理不确定残差,可以缩小训练和验证空间。
深入阅读
- *Modern Robotics* 在线教材:https://modernrobotics.northwestern.edu/nu-gm-book-resource/
- *Modern Robotics* 控制系统概览:https://modernrobotics.northwestern.edu/nu-gm-book-resource/11-1-control-system-overview/
- MIT *Underactuated Robotics*:https://underactuated.mit.edu/
- *Underactuated Robotics* 输出反馈与像素到力矩:https://underactuated.mit.edu/output_feedback.html
- ROS 2 节点与 Topic、Service、Action:https://github.com/ros2/ros2_documentation/blob/rolling/source/ROS-Framework/nodes/Working-with-nodes/Understanding-ROS2-Nodes/Understanding-ROS2-Nodes.rst