2. 机器人控制基础

机器人控制的核心任务,是让机械系统在不确定环境中按照期望轨迹运动,并保持足够的精度、鲁棒性与安全性。要达成这一目标,工程师必须首先建立对机器人本体行为的数学描述——运动学描述“位置与姿态”,动力学描述“力与运动的关系”,控制架构则负责将期望指令转化为实际力矩。本章作为《机器人控制中的机器学习与强化学习策略》课程的基础章节,将系统梳理运动学、动力学、经典控制架构与状态空间表示方法,为后续引入学习型控制策略奠定必要的理论框架。

机器人控制基础框架 运动学 • 正运动学:关节角 → 末端位姿 • 逆运动学:末端位姿 → 关节角 • 雅可比矩阵:关节速度 ↔ 笛卡尔速度 • 奇异性分析:秩亏、不可达位形 • 工作空间与灵巧度评估 代表方法:DH参数、旋量理论、数值迭代 动力学 • 牛顿-欧拉递推:O(n) 计算效率 • 拉格朗日方程:能量法建模 • 惯性矩阵 M(q)、科氏力 C(q,q̇) • 重力项 G(q)、摩擦力矩 • 参数辨识:最小二乘、激励轨迹 标准形式:M(q)q̈ + C(q,q̇)q̇ + G(q) = τ 控制架构 • PID:P-比例、I-积分、D-微分 • 计算力矩法:非线性补偿+线性化 • 阻抗/导纳控制:柔顺交互 • 前馈+反馈复合结构 • 鲁棒控制:滑模、H∞ 内环:力矩/电流环;外环:位置/力环 状态空间表示 状态变量:x = [q, q̇]ᵀ ∈ R²ⁿ 状态方程:ẋ = f(x, u) = [q̇; M⁻¹(q)(τ - C(q,q̇)q̇ - G(q))] 输出方程:y = g(x) = [q; 末端位姿] 线性化:ẋ = Ax + Bu, y = Cx + Du(工作点附近) 用途:能控性/能观性分析、LQR设计、观测器设计、RL状态输入 运动学提供参考轨迹 → 动力学描述被控对象 → 控制架构生成力矩指令 → 状态空间统一描述用于分析与学习 机器学习与强化学习将在状态空间基础上,替代或优化传统控制器的部分环节

上图展示了机器人控制基础四大模块之间的逻辑关系:运动学负责描述机器人的几何关系,动力学揭示其惯性、科氏力与重力特性,控制架构基于上述模型生成力矩指令,而状态空间表示则为统一分析与现代控制方法(包括强化学习)提供了数学框架。下面逐一展开。

2.1 运动学:从关节空间到笛卡尔空间

2.1.1 核心原理

运动学研究机器人各连杆之间的几何关系,不考虑产生运动的力。正运动学(Forward Kinematics)给定关节角度向量 q = [q₁, q₂, ..., qₙ]ᵀ,求解末端执行器的位置与姿态(通常用齐次变换矩阵 T ∈ SE(3) 表示)。逆运动学(Inverse Kinematics)则相反,给定期望的末端位姿,反解关节角。对于六自由度串联机械臂,逆运动学通常存在多解或无解情况,需要根据关节限位、避障等约束进行最优选择。

雅可比矩阵 J(q) 建立了关节速度与末端笛卡尔速度之间的线性映射:

ν = J(q) · q̇

其中 ν = [v; ω] 为末端线速度与角速度向量。雅可比矩阵的秩决定了机器人的奇异位形——当 rank(J) < 6 时,末端在某些方向上失去运动能力,此时关节速度可能趋于无穷大,必须通过阻尼最小二乘等方法进行奇异鲁棒处理。

2.1.2 判断方法与操作流程

在实际工程中,运动学求解通常遵循以下流程:

  1. 建立DH参数表:根据连杆长度 aᵢ、连杆偏距 dᵢ、连杆转角 αᵢ、关节角 θᵢ 建立坐标系变换矩阵。
  2. 正运动学计算:连乘各关节变换矩阵,得到末端位姿 T₀ₙ = A₁·A₂·...·Aₙ。
  3. 逆运动学求解:优先采用解析法(如Pieper准则适用于多数六轴工业机器人),若解析解不存在则使用数值迭代法(如Levenberg-Marquardt)。
  4. 雅可比计算:通过微分变换法或矢量积法求取 J(q),并检查奇异值。

2.1.3 案例拆解:六轴关节机器人的逆解选择

以典型的六自由度关节型工业机器人为例(如类似UR5构型),其逆运动学存在8组可能的关节角组合。实际场景中,某焊接工位要求末端以特定姿态到达焊缝位置,同时必须避开夹具障碍物。初始现象:使用数值迭代法求解时,算法收敛到一组关节角,但该组解导致第3关节接近限位(-170°),且第5关节处于奇异位形附近。分析过程:通过解析法获得全部8组候选解,逐一检查关节限位、奇异值、避障条件,最终选择第2组解(q = [-45°, -90°, 120°, 0°, 90°, 0°]),该组解关节角度远离限位,且雅可比矩阵最小奇异值 σ_min = 0.32,远离奇异。操作步骤:在离线编程软件中预先计算所有候选解,并设计评分函数(权重:限位余量0.4、奇异距离0.3、避障距离0.3),自动选择最优解。结果对比:相比数值迭代法,解析法+评分策略将求解成功率从78%提升至99.2%,且关节力矩峰值降低15%。复盘经验:逆运动学求解必须结合任务约束进行多解评估,不能简单依赖单一数值方法。

经验提醒:在强化学习环境中,逆运动学通常作为底层接口被调用。建议将解析解与数值解结合,并缓存最近一次成功解作为初始猜测,可显著提升求解速度与稳定性。

2.2 动力学:力与运动的深层关系

2.2.1 核心原理

动力学描述机器人运动与驱动力矩之间的因果关系。最常用的两种建模方法:牛顿-欧拉法基于力/力矩平衡递推,计算复杂度为 O(n),适合实时控制;拉格朗日法基于系统能量(动能-势能)推导,形式简洁但计算量较大。标准动力学方程可写为:

M(q)q̈ + C(q, q̇)q̇ + G(q) + F_friction(q̇) = τ

其中 M(q) 为惯性矩阵(对称正定),C(q,q̇) 为科氏力和离心力矩阵,G(q) 为重力项,F_friction 为摩擦力(通常包含库仑摩擦与粘性摩擦),τ 为关节驱动力矩。该方程揭示了机器人系统的非线性、耦合性和时变性——这些特性正是传统线性控制难以取得高性能的根本原因。

2.2.2 动力学参数辨识流程

步骤操作内容关键工具/方法输出
1. 模型线性化将动力学方程改写为 Y(q,q̇,q̈)·θ = τ符号计算、最小参数集回归矩阵 Y,参数向量 θ
2. 激励轨迹设计设计有限傅里叶级数轨迹,保证回归矩阵条件数小优化算法、条件数评估激励轨迹 q_des(t)
3. 数据采集以1kHz采样关节角、力矩指令伺服驱动器、编码器时间序列数据
4. 参数估计加权最小二乘、岭回归MATLAB/Python辨识后的 θ̂
5. 模型验证对比预测力矩与实际力矩残差分析、R²指标验证报告

2.2.3 实战场景:计算力矩法中的模型误差补偿

计算力矩法(Computed Torque Control)的核心思想是利用动力学模型进行非线性补偿,将原系统线性化为双积分器形式。控制律为:

τ = M(q)·(q̈_des + K_d·ė + K_p·e) + C(q,q̇)q̇ + G(q)

其中 e = q_des - q 为跟踪误差,K_p、K_d 为PD增益。理想情况下,闭环误差方程为 ë + K_d·ė + K_p·e = 0,可通过极点配置设计增益。然而实际中模型参数存在误差(如负载变化、摩擦未完全补偿),导致系统出现稳态误差甚至不稳定。某装配机器人负载从2kg变为5kg后,未更新模型参数,导致轨迹跟踪误差从±0.5mm增大到±3.2mm。分析发现惯性矩阵 M(q) 误差约40%,重力项 G(q) 误差约25%。解决方案:采用自适应控制策略,在线估计负载参数,将误差收敛至±0.8mm。操作步骤:在计算力矩控制律中增加参数自适应律 θ̂̇ = -Γ·Yᵀ·Bᵀ·P·x,其中 Γ 为自适应增益矩阵,Y 为回归矩阵,P 为Lyapunov方程解。结果对比:自适应计算力矩法相比固定参数法,最大跟踪误差降低75%,且无需离线重新辨识。风险提示:自适应增益过大可能导致参数漂移,需加入σ-修正或死区。

风险说明:计算力矩法对模型精度要求较高。当模型误差超过30%时,系统可能失去稳定性。建议在实施前进行充分的参数辨识,并设计鲁棒项(如滑模项)来应对未建模动态。

2.3 控制架构:从PID到现代方法

2.3.1 核心原理与对比

经典PID控制器因其结构简单、无需模型、鲁棒性强而广泛应用于工业机器人关节控制。其控制律为:

τ = K_p·e + K_i·∫e dt + K_d·ė

然而,PID本质上是线性控制器,对于机器人这类强耦合非线性系统,难以在所有工况下获得一致的高性能。计算力矩法通过模型补偿实现全局线性化,但依赖精确模型。实际工程中常采用“PID+重力补偿”或“PID+前馈”的折中方案。

控制方法模型依赖稳态精度动态性能鲁棒性计算复杂度适用场景
PID无中(有静差)一般高低低速、低精度要求
PID+重力补偿部分(重力项)较好中等较高低垂直关节机器人
计算力矩法完整模型高优秀低(模型失配时)中高速高精度轨迹跟踪
滑模控制部分(边界已知)高良好极高中强扰动、参数大范围变化
阻抗控制部分(动力学)力控精度高柔顺中中人机交互、装配

2.3.2 操作流程:PID参数整定

  1. 系统辨识:获取关节的近似传递函数(如通过阶跃响应或频率响应)。
  2. 先整定P:从小到大增加 K_p,观察响应直至出现轻微振荡。
  3. 再整定D:增加 K_d 抑制超调,改善阻尼。
  4. 最后整定I:缓慢增加 K_i 消除稳态误差,注意积分饱和问题。
  5. 联合验证:在不同速度、负载下测试,必要时采用增益调度。

2.3.3 案例拆解:SCARA机器人高速拾取控制

某SCARA机器人用于电子元件高速拾取,节拍要求0.8s完成“下降-拾取-上升-移动-放置”动作。初始方案采用纯PID控制,在高速运行时末端振动明显,定位误差达±1.5mm,超出±0.5mm的规格要求。关键数据:关节2(大臂)PID参数 K_p=120, K_i=5, K_d=8,最大速度 180°/s。分析过程:通过频谱分析发现末端振动频率约12Hz,与关节2的机械谐振频率接近。操作步骤:① 在PID基础上增加二阶低通滤波器(截止频率30Hz)抑制高频噪声;② 增加速度前馈项 τ_ff = K_v·q̇_des,K_v 通过辨识得到约0.85;③ 采用计算力矩法替代纯PID,利用辨识的动力学模型进行补偿。结果对比:采用“计算力矩+前馈”方案后,定位误差降至±0.3mm,节拍缩短至0.65s,振动幅度降低70%。复盘经验:对于高速轻载机器人,动力学前馈比单纯提高PID增益更有效,且不会激发机械谐振。

要点总结:控制架构选择应遵循“由简到繁”原则——先尝试PID+重力补偿,若性能不足再引入动力学前馈或计算力矩法。对于强化学习策略,建议将传统控制器作为底层安全保护,学习层负责生成参考轨迹或补偿项。

2.4 状态空间表示:统一分析与学习的基础

2.4.1 核心原理

状态空间表示将机器人动力学方程转化为一阶微分方程组形式,便于现代控制理论与机器学习方法的应用。定义状态向量 x = [q; q̇] ∈ R²ⁿ,则:

ẋ = f(x, u) = [q̇; M⁻¹(q)·(u - C(q,q̇)q̇ - G(q) - F_friction)]

其中 u = τ 为控制输入。该表示具有以下优势:① 统一描述多输入多输出系统;② 便于进行能控性、能观性分析;③ 为LQR、MPC等现代控制方法提供标准形式;④ 直接作为强化学习的状态输入(state)与动作输入(action)。

2.4.2 线性化与离散化

在平衡点 (x₀, u₀) 附近进行泰勒展开,可得线性化状态方程:

δẋ = A·δx + B·δu

其中 A = ∂f/∂x|₀, B = ∂f/∂u|₀。对于数字控制系统,还需进行离散化(如零阶保持法),得到 x(k+1) = A_d·x(k) + B_d·u(k)。离散化步长通常取控制周期的1/10~1/5。

2.4.3 实战场景:基于状态空间的LQR控制器设计

针对一个二连杆平面机械臂,期望在关节空间实现高精度定位。设计步骤如下:

  1. 建立状态空间模型:取 x = [q₁, q₂, q̇₁, q̇₂]ᵀ,在垂直向下平衡点线性化。
  2. 能控性检查:计算能控性矩阵 Q_c = [B, AB, A²B, A³B],验证 rank(Q_c)=4。
  3. LQR增益计算:选择权重矩阵 Q = diag(100, 100, 1, 1),R = diag(0.1, 0.1),求解Riccati方程得到 K = [31.6, 31.6, 14.1, 14.1]。
  4. 仿真验证:在Simulink中搭建非线性模型,验证LQR在平衡点附近的性能。
  5. 鲁棒性测试:在末端增加0.5kg负载,观察响应变化。

结果:LQR在平衡点附近表现出良好的调节性能(调节时间0.4s,超调5%),但当负载增加后,稳态误差增大至0.02rad。分析:线性化模型未包含重力变化项,导致模型失配。改进方案:在LQR基础上增加积分项(LQI控制器),将稳态误差降至0.005rad以下。

经验提醒:在强化学习环境中,状态空间表示直接影响学习效率。建议将状态归一化至[-1,1]范围,并考虑加入末端速度、力矩等扩展状态。对于高维状态,可使用自动编码器进行降维。

2.5 常见误区与总结复盘

2.5.1 常见误区

  • 误区一:忽视动力学模型的重要性。许多工程师认为PID足够,但在高速、高负载变化场景下,模型补偿是提升性能的关键。
  • 误区二:逆运动学求解只关注单一解。忽略多解评估可能导致关节限位或奇异问题。
  • 误区三:状态空间表示仅用于线性系统。非线性状态空间模型同样是强化学习环境搭建的基础。
  • 误区四:计算力矩法万能。模型误差较大时,该方法可能比PID更不稳定,需配合鲁棒项。
  • 误区五:忽略离散化影响。连续域设计的控制器在数字实现时可能因采样延迟而性能退化。

2.5.2 总结复盘

本章从运动学、动力学、控制架构与状态空间四个维度构建了机器人控制的基础框架。运动学解决“机器人能到达哪里”的问题,动力学回答“需要多大扭矩才能到达”,控制架构决定“如何计算扭矩指令”,状态空间则为“如何统一描述与分析”提供了数学语言。对于后续的机器学习与强化学习策略,这四者分别对应:状态/动作空间定义(运动学+状态空间)、环境动力学模型(动力学)、底层安全控制器(控制架构)、以及学习算法的输入输出接口(状态空间)。建议读者在进入后续章节前,务必掌握以下核心技能:① 能够独立推导并编程实现正逆运动学;② 理解动力学方程各项的物理意义并能进行参数辨识;③ 能够根据任务需求选择合适的控制架构并完成参数整定;④ 熟练将动力学模型转化为状态空间形式,并完成线性化与离散化。

风险提示:在将传统控制方法替换为强化学习策略时,务必保留传统控制器作为安全备份。强化学习初期探索阶段可能产生危险动作,需要通过控制架构中的安全层进行约束。