仿真到实机的 Sim-to-Real 是机器人控制的难题。本文目的是复盘如何从零推导底层物理模型,打通实机控制闭环,并最终将 RL 智能体部署到真机上的全过程。

1. 动力学重力前馈

纯 PID 控制在面对随姿态非线性变化的重力矩时,极易产生稳态误差与迟滞。基于 RNE(递归牛顿-欧拉)算法建立了动力学模型,并将计算出的重力项直接作为前馈量引入底层控制器。复合控制律由 重力项 G(q)比例项 Kp*e(t)积分项 Ki∫e(τ)dτ* 以及 微分项 Kd*ė(t) 共同组成。

在此架构下,PID 控制器仅需处理动态误差与摩擦力扰动。

图 1 关节轨迹跟踪与误差分析

2. 3D 笛卡尔空间控制

在执行推拉、画圆等被动康复训练时,笛卡尔空间的轨迹跟踪极易受到多轴耦合的干扰。

基于 DH 参数的正逆运动学解析解,结合时间序列索引与线性插值,保障了系统底层的绝对实时性。从空间映射数据来看,Z 轴执行大范围运动时,非运动方向(X/Y轴)的交叉耦合微波振荡被有效抑制。

图 2 空间解耦分析

3. Sensorless 外力观测与二阶导纳模型

人机物理交互(pHRI)的核心在于感知与顺应。系统通过电机扭矩反馈与雅可比矩阵 J(q) 实时反向解算末端交互外力 F_ext

在此基础上,系统部署了经典的二阶导纳控制(Admittance Control)模型,通过建立 惯性 M阻尼 D刚度 K 的动力学平衡,使系统对外部作用力产生位置退让。通过实机单变量特性分析实验,我将系统精准整定至最优临界阻尼状态,有效消除了欠阻尼参数下易引发的弹簧震荡感。

图 3 阻尼特性对比

4. TD3 强化学习部署

传统恒定刚度控制面临着本质的两难困境:设定偏硬(如 400 N/m)会在患者痉挛时导致二次拉伤;设定过软(如 100 N/m)则完全丧失轨迹强制引导的能力。

引入 TD3 强化学习智能体动态调节虚拟刚度 K(t)。

训练环境中引入了“域随机化 (Domain Randomization)”机制——向机械臂末端注入幅值与时序完全随机的人工脉冲扰动力,迫使 Agent 去学习底层的物理映射规律,而非针对单一时间轴产生过拟合。

图 4 突发痉挛工况动态响应

量化指标: TD3 Agent 以 500Hz 频率在实机闭环运行。日常无扰动时输出极低刚度,实现透明跟随;遭遇突发痉挛时瞬间变硬兜底。相较于传统控制,患者全程平均交互阻力大幅降低了 53%,系统位置退让误差死守 < 0.01 rad,完美兼顾了引导精度与极致的安全柔顺性。

完整实机测试视频: 👉 基于 TD3 强化学习的 BURT 康复机械臂变阻抗控制系统 (Bilibili)