第四节 拖动示教原理:直接示教与间接示教、重力补偿、摩擦力补偿、惯性补偿的基本概念

拖动示教(Drag Teaching / Direct Teaching)是力控协作机器人最具代表性的编程方式之一,其核心思想是:操作者直接握住机器人末端(或安装在末端的手柄),通过施加外力引导机器人运动到目标位姿,系统记录运动轨迹并生成作业程序。这种方式彻底摆脱了传统示教器逐点编程的繁琐流程,将编程时间从小时级压缩到分钟级。然而,要让机器人“顺滑地”跟随操作者的手部动作,并非简单地将各关节置于零力矩模式——它涉及对机器人本体动力学特性的深度补偿。本节将系统阐述拖动示教的分类、三大核心补偿原理(重力、摩擦力、惯性)及其工程实现路径。

拖动示教系统核心原理总览 示教方式分类 直接示教(直接拖拽) 操作者直接接触机器人本体 间接示教(示教器/遥操作) 通过手柄/示教器远程引导 力控拖动示教属于 直接示教 + 力觉引导 三大核心补偿 重力补偿 抵消连杆自重 → 悬浮感 摩擦力补偿 克服关节静/动摩擦 → 轻便感 惯性补偿 削弱质量/惯量效应 → 顺滑感 力控拖动控制链路 关节力矩传感器 / 电流环 动力学模型(重力/摩擦/惯量) 导纳控制 / 零力控制 拖动示教体验目标 操作者施加 5~15N 的力即可平稳拖动 · 停止后无回弹 · 轨迹重复精度 ±0.5mm 以内 图4-1 拖动示教原理框架:分类、补偿与控制链路

4.1 直接示教与间接示教:概念辨析与适用场景

4.1.1 核心原理

直接示教(Direct Teaching),又称手动牵引示教,是指操作者直接接触机器人本体(通常是末端法兰、专用手柄或特定连杆),通过施加外力/力矩使机器人各关节产生协同运动,系统实时记录关节角度或末端位姿序列,最终生成运动轨迹。其本质是“人机物理交互 + 轨迹采样”。间接示教(Indirect Teaching)则指操作者不直接接触机器人本体,而是通过示教器、3D鼠标、力反馈手柄、视觉引导或离线编程软件等中间媒介,间接指定机器人的运动路径。拖动示教属于直接示教的典型代表,但并非所有直接示教都依赖力控——早期一些工业机器人也支持“手动拖拽+按钮确认”模式,但缺乏力控补偿时拖动阻力大、体验差。

对比维度 直接示教(力控拖动) 间接示教(示教器/遥操作)
交互方式 人手直接接触机器人本体 通过示教器、手柄、软件界面
力觉反馈 操作者实时感知机器人运动阻力 通常无物理力反馈(或通过手柄模拟)
编程效率 极高,复杂轨迹分钟级完成 较低,逐点示教或离线编程
轨迹精度 依赖操作者手感,适合连续路径 精度高,适合离散点位
典型应用 喷涂、打磨、焊接、装配试教 搬运码垛、点焊、精密装配

4.1.2 判断方法与选型依据

在实际工程项目中,选择直接示教还是间接示教,需要从以下四个维度进行判断:

  1. 轨迹复杂度:若任务轨迹是连续自由曲面(如打磨、喷涂),直接示教优势明显;若任务轨迹是规则几何路径(如直线、圆弧),间接示教更高效。
  2. 精度要求:直接示教受人为因素影响,重复精度通常为±0.5~2mm;若要求±0.1mm以内,应选择间接示教+离线编程。
  3. 环境约束:在狭窄空间或危险环境中,操作者无法进入,只能采用间接示教(遥操作)。
  4. 操作者技能:直接示教对操作者经验要求较低,而间接示教需要理解坐标系、工具参数等专业知识。
经验提醒:在3C装配、医疗手术辅助等场景中,常采用“直接示教粗定位 + 间接示教精调整”的混合模式。先用拖动示教快速走一遍大致轨迹,再用示教器微调关键点位,兼顾效率与精度。

4.1.3 案例拆解:某汽车零部件厂涂胶轨迹示教

背景与约束:某汽车零部件厂需要为一种异形密封条涂胶,胶路轨迹为三维空间曲线,包含多处圆弧过渡和斜面爬升。传统示教器编程需要约4小时,且由于工件表面曲率变化大,示教点位难以覆盖全部轮廓。

初始现象与目标:使用间接示教时,操作者需要逐点记录约80个路径点,且每两个点之间需要手动调整姿态,效率极低。目标是将编程时间压缩到30分钟以内,并保证胶路连续均匀。

分析判断过程:该轨迹属于连续自由曲面,且对精度要求不高(±1mm即可满足涂胶要求),但要求轨迹平滑连续。因此,直接示教是更优选择。

实际操作步骤:

  1. 将机器人切换至“拖动示教模式”,激活重力补偿和摩擦力补偿。
  2. 操作者握住末端手柄,沿密封条轮廓匀速拖动,系统以10ms周期记录轨迹点。
  3. 拖动完成后,在示教器上回放轨迹,检查是否有明显抖动或突变。
  4. 对轨迹进行平滑滤波处理(如滑动平均或B样条拟合),消除人手抖动带来的高频噪声。
  5. 设置涂胶工艺参数(出胶量、速度),试运行并微调。

结果对比:编程时间从4小时缩短至25分钟,胶路均匀性满足要求,且操作者无需编写任何代码。

风险与代价:直接示教对操作者的手感有一定依赖,不同操作者拖出的轨迹略有差异。为此,工厂制定了“拖动速度不超过200mm/s”的规范,并要求操作者经过30分钟培训后上岗。

4.2 重力补偿:让机器人“悬浮”起来

4.2.1 核心原理

重力补偿(Gravity Compensation)是拖动示教中最基础、最关键的补偿项。机器人各连杆在重力作用下会产生关节力矩,且该力矩随关节角度变化而变化。如果不进行补偿,操作者拖动时需持续对抗机器人自重,尤其是大臂下垂或水平伸展时,所需力矩可达数十牛米,远超人力可接受范围。重力补偿的基本思路是:根据当前关节角度,实时计算各连杆重力产生的关节力矩,并在力矩指令中叠加一个反向等大力矩,使机器人处于“零重力”悬浮状态。

重力补偿的数学模型基于机器人运动学与静力学:

τ_gravity = Σ (m_i · g · r_i(θ))

其中,m_i为第i个连杆的质量,g为重力加速度,r_i(θ)为第i个连杆质心到关节轴的力臂矢量(随关节角度θ变化)。实际工程中,通常采用递推牛顿-欧拉算法或拉格朗日法建立完整动力学模型,提取重力项。

4.2.2 工程实现与参数辨识

重力补偿的精度取决于动力学模型参数的准确性,主要包括:各连杆质量、质心位置、惯性张量。这些参数可通过以下方式获取:

  • CAD模型提取:从三维设计软件中直接读取质量属性,但需注意实际加工装配后的偏差。
  • 参数辨识实验:让机器人各关节分别运动到多个位置,记录关节力矩与角度数据,通过最小二乘法拟合出质量与质心参数。
  • 自适应在线辨识:在拖动过程中实时更新参数,适应负载变化(如末端安装不同工具)。
关键参数示例:某6轴协作机器人(负载5kg),其大臂质量约8.5kg,质心距肩关节轴约0.28m。当大臂水平伸展时,重力矩约为 8.5×9.8×0.28 ≈ 23.3 N·m。若不补偿,操作者需持续施加约23N的力才能保持静止;补偿后,操作者仅需施加2~3N的力即可维持平衡。

4.2.3 常见误区与调优

风险提示:重力补偿并非“越大越好”。过补偿会导致机器人“上浮”,即操作者松手后机器人会自行向上漂移;欠补偿则表现为“下沉”。工程上通常将重力补偿系数设定为理论值的95%~105%,并通过“松手静止测试”来验证:在任意姿态下松开手,机器人应保持静止或仅有极缓慢的漂移(速度小于5mm/s)。

此外,当机器人末端安装有不同工具时,重力补偿参数需要动态切换。例如,从空载切换到安装2kg焊枪时,系统应自动更新末端质量与质心参数。现代协作机器人通常支持“工具自动识别”功能,通过末端六维力传感器或RFID标签实现参数切换。

4.3 摩擦力补偿:消除“卡顿感”

4.3.1 核心原理

摩擦力是拖动示教中导致“卡顿感”和“起步困难”的主要因素。机器人关节中的减速器(如谐波减速器、RV减速器)、轴承、密封圈等部件会产生摩擦力,其特性包括:

  • 静摩擦力(Stiction):使关节从静止到运动需要克服的最大摩擦力,表现为“起步阻力”。
  • 库仑摩擦力(Coulomb Friction):与速度方向相反、大小近似恒定的摩擦力。
  • 粘性摩擦力(Viscous Friction):与速度成正比,速度越高阻力越大。

摩擦力补偿的核心思想是:在关节力矩指令中叠加一个与摩擦力大小相等、方向相反的补偿力矩,使系统“感觉不到”摩擦的存在。然而,摩擦力具有非线性、时变性和温度依赖性,精确建模难度较大。

4.3.2 摩擦模型与补偿策略

工程中常用的摩擦模型包括:

模型类型 数学表达式 适用场景
库仑+粘性模型 τ_f = τ_c·sign(ω) + b·ω 中高速运动,忽略静摩擦
Stribeck模型 τ_f = τ_c + (τ_s - τ_c)·e^(-(ω/ω_s)²) + b·ω 包含静摩擦与低速非线性区
LuGre模型 基于鬃毛形变的状态方程 高精度控制,需在线辨识

在实际拖动示教系统中,通常采用“前馈+反馈”的复合补偿策略:

  1. 前馈补偿:根据当前关节速度方向,直接叠加库仑摩擦力矩估计值。
  2. 抖动补偿(Dither):在关节力矩指令上叠加高频小幅振荡信号,帮助系统“冲破”静摩擦死区。
  3. 力矩闭环反馈:利用关节力矩传感器实时检测实际力矩,与期望力矩比较后修正补偿量。
经验提醒:摩擦力补偿参数需要定期校准,因为减速器润滑状态、温度变化都会导致摩擦力漂移。建议每运行500小时或更换润滑油后,执行一次“摩擦力自动辨识”程序:让各关节以不同速度匀速运动,记录力矩-速度曲线,自动拟合摩擦参数。

4.3.3 案例拆解:低速拖动时的“爬行”现象

现象描述:某机器人在拖动示教时,当操作者以极低速度(<10mm/s)拖动末端时,机器人出现明显的“一顿一顿”的爬行现象,尤其在关节即将停止再启动时更为明显。

原因分析:这是典型的静摩擦+粘性摩擦切换导致的极限环振荡。当操作者施加的力略大于静摩擦力时,关节开始运动;一旦运动,摩擦力突然降为库仑摩擦,导致加速度突变,产生“跳动”。

解决方案:

  1. 在摩擦前馈中引入Stribeck曲线,精确补偿低速区的摩擦非线性。
  2. 增加关节速度环阻尼,抑制速度突变。
  3. 在力矩指令上叠加幅值为0.1~0.3N·m、频率为50~100Hz的抖动信号,帮助系统平滑越过静摩擦区。

结果:爬行现象消失,最低稳定拖动速度从30mm/s降低至3mm/s,满足精密装配场景的微动需求。

4.4 惯性补偿:让拖动更“跟手”

4.4.1 核心原理

惯性补偿(Inertia Compensation)解决的是“手感沉重”和“响应滞后”问题。当操作者快速拖动或改变运动方向时,机器人各连杆的惯性会抵抗加速度变化,表现为“拖不动”或“松手后继续滑行”。惯性补偿的基本思想是:在控制系统中引入加速度前馈,抵消机器人本体的惯性力矩,使操作者感受到的“表观惯量”远小于实际物理惯量。

从控制角度看,拖动示教通常采用导纳控制(Admittance Control)框架:

M_d · (ẍ - ẍ_cmd) + B_d · (ẋ - ẋ_cmd) + K_d · (x - x_cmd) = F_ext

其中,M_d、B_d、K_d分别为期望的虚拟质量、阻尼和刚度,F_ext为操作者施加的外力。通过调节M_d,可以改变操作者感受到的“轻重感”。惯性补偿的核心在于:将机器人实际动力学中的惯性项M(θ)从控制回路中“解耦”,使系统表现为期望的虚拟惯量M_d。

4.4.2 惯性补偿的实现方法

工程中常用的惯性补偿方法包括:

  • 计算力矩法:基于完整动力学模型,实时计算惯性力矩并前馈补偿。该方法需要精确的惯性张量参数,计算量较大。
  • 加速度观测器:通过编码器差分或状态观测器估计关节加速度,再乘以惯性矩阵进行补偿。
  • 自适应惯量调节:根据操作者的拖动速度动态调整虚拟惯量——低速时减小惯量以提高灵敏度,高速时适当增加惯量以保持稳定性。
参数调优示例:某7轴协作机器人,默认虚拟惯量M_d设为实际惯量的30%。当操作者以100mm/s速度拖动时,手感轻便;但当操作者突然加速到500mm/s时,由于实际惯量较大,末端出现约80ms的滞后。将M_d调整为20%,滞后减小到40ms,但低速时出现轻微抖动。最终采用“速度自适应”策略:速度低于200mm/s时M_d=25%,高于200mm/s时M_d=35%,兼顾了低速灵敏度和高速稳定性。

4.4.3 常见误区与总结

风险提示:惯性补偿并非“越小越好”。过小的虚拟惯量会导致系统对操作者力输入过于敏感,容易产生振荡;同时,当操作者松手时,机器人可能因残余动量而继续滑行一段距离,造成轨迹偏差。工程上建议虚拟惯量不低于实际惯量的15%,且必须配合适当的阻尼项(B_d)来吸收能量。

总结复盘:拖动示教的三大补偿——重力补偿、摩擦力补偿、惯性补偿——分别解决了“静力平衡”、“运动阻力”和“动态响应”三个层面的问题。三者相互耦合:重力补偿不准确会加剧摩擦力补偿的难度;惯性补偿不当会影响重力补偿的静态平衡。在实际调试中,应遵循“先重力、再摩擦、后惯性”的顺序逐步整定,每一步都通过量化指标(如松手漂移速度、最小稳定拖动速度、阶跃响应滞后时间)进行验证。

工程经验:在部署拖动示教系统时,建议为操作者提供“力觉反馈可视化”界面,实时显示各关节的补偿力矩和操作者施加的力。这不仅能帮助调试人员快速定位问题,还能让操作者直观理解机器人的“手感”来源,从而更高效地完成示教任务。