第四节 拖动示教原理:直接示教与间接示教、重力补偿、摩擦力补偿、惯性补偿的基本概念
拖动示教(Drag Teaching / Direct Teaching)是力控协作机器人最具代表性的编程方式之一,其核心思想是:操作者直接握住机器人末端(或安装在末端的手柄),通过施加外力引导机器人运动到目标位姿,系统记录运动轨迹并生成作业程序。这种方式彻底摆脱了传统示教器逐点编程的繁琐流程,将编程时间从小时级压缩到分钟级。然而,要让机器人“顺滑地”跟随操作者的手部动作,并非简单地将各关节置于零力矩模式——它涉及对机器人本体动力学特性的深度补偿。本节将系统阐述拖动示教的分类、三大核心补偿原理(重力、摩擦力、惯性)及其工程实现路径。
4.1 直接示教与间接示教:概念辨析与适用场景
4.1.1 核心原理
直接示教(Direct Teaching),又称手动牵引示教,是指操作者直接接触机器人本体(通常是末端法兰、专用手柄或特定连杆),通过施加外力/力矩使机器人各关节产生协同运动,系统实时记录关节角度或末端位姿序列,最终生成运动轨迹。其本质是“人机物理交互 + 轨迹采样”。间接示教(Indirect Teaching)则指操作者不直接接触机器人本体,而是通过示教器、3D鼠标、力反馈手柄、视觉引导或离线编程软件等中间媒介,间接指定机器人的运动路径。拖动示教属于直接示教的典型代表,但并非所有直接示教都依赖力控——早期一些工业机器人也支持“手动拖拽+按钮确认”模式,但缺乏力控补偿时拖动阻力大、体验差。
| 对比维度 | 直接示教(力控拖动) | 间接示教(示教器/遥操作) |
|---|---|---|
| 交互方式 | 人手直接接触机器人本体 | 通过示教器、手柄、软件界面 |
| 力觉反馈 | 操作者实时感知机器人运动阻力 | 通常无物理力反馈(或通过手柄模拟) |
| 编程效率 | 极高,复杂轨迹分钟级完成 | 较低,逐点示教或离线编程 |
| 轨迹精度 | 依赖操作者手感,适合连续路径 | 精度高,适合离散点位 |
| 典型应用 | 喷涂、打磨、焊接、装配试教 | 搬运码垛、点焊、精密装配 |
4.1.2 判断方法与选型依据
在实际工程项目中,选择直接示教还是间接示教,需要从以下四个维度进行判断:
- 轨迹复杂度:若任务轨迹是连续自由曲面(如打磨、喷涂),直接示教优势明显;若任务轨迹是规则几何路径(如直线、圆弧),间接示教更高效。
- 精度要求:直接示教受人为因素影响,重复精度通常为±0.5~2mm;若要求±0.1mm以内,应选择间接示教+离线编程。
- 环境约束:在狭窄空间或危险环境中,操作者无法进入,只能采用间接示教(遥操作)。
- 操作者技能:直接示教对操作者经验要求较低,而间接示教需要理解坐标系、工具参数等专业知识。
4.1.3 案例拆解:某汽车零部件厂涂胶轨迹示教
背景与约束:某汽车零部件厂需要为一种异形密封条涂胶,胶路轨迹为三维空间曲线,包含多处圆弧过渡和斜面爬升。传统示教器编程需要约4小时,且由于工件表面曲率变化大,示教点位难以覆盖全部轮廓。
初始现象与目标:使用间接示教时,操作者需要逐点记录约80个路径点,且每两个点之间需要手动调整姿态,效率极低。目标是将编程时间压缩到30分钟以内,并保证胶路连续均匀。
分析判断过程:该轨迹属于连续自由曲面,且对精度要求不高(±1mm即可满足涂胶要求),但要求轨迹平滑连续。因此,直接示教是更优选择。
实际操作步骤:
- 将机器人切换至“拖动示教模式”,激活重力补偿和摩擦力补偿。
- 操作者握住末端手柄,沿密封条轮廓匀速拖动,系统以10ms周期记录轨迹点。
- 拖动完成后,在示教器上回放轨迹,检查是否有明显抖动或突变。
- 对轨迹进行平滑滤波处理(如滑动平均或B样条拟合),消除人手抖动带来的高频噪声。
- 设置涂胶工艺参数(出胶量、速度),试运行并微调。
结果对比:编程时间从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模型提取:从三维设计软件中直接读取质量属性,但需注意实际加工装配后的偏差。
- 参数辨识实验:让机器人各关节分别运动到多个位置,记录关节力矩与角度数据,通过最小二乘法拟合出质量与质心参数。
- 自适应在线辨识:在拖动过程中实时更新参数,适应负载变化(如末端安装不同工具)。
4.2.3 常见误区与调优
此外,当机器人末端安装有不同工具时,重力补偿参数需要动态切换。例如,从空载切换到安装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模型 | 基于鬃毛形变的状态方程 | 高精度控制,需在线辨识 |
在实际拖动示教系统中,通常采用“前馈+反馈”的复合补偿策略:
- 前馈补偿:根据当前关节速度方向,直接叠加库仑摩擦力矩估计值。
- 抖动补偿(Dither):在关节力矩指令上叠加高频小幅振荡信号,帮助系统“冲破”静摩擦死区。
- 力矩闭环反馈:利用关节力矩传感器实时检测实际力矩,与期望力矩比较后修正补偿量。
4.3.3 案例拆解:低速拖动时的“爬行”现象
现象描述:某机器人在拖动示教时,当操作者以极低速度(<10mm/s)拖动末端时,机器人出现明显的“一顿一顿”的爬行现象,尤其在关节即将停止再启动时更为明显。
原因分析:这是典型的静摩擦+粘性摩擦切换导致的极限环振荡。当操作者施加的力略大于静摩擦力时,关节开始运动;一旦运动,摩擦力突然降为库仑摩擦,导致加速度突变,产生“跳动”。
解决方案:
- 在摩擦前馈中引入Stribeck曲线,精确补偿低速区的摩擦非线性。
- 增加关节速度环阻尼,抑制速度突变。
- 在力矩指令上叠加幅值为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 惯性补偿的实现方法
工程中常用的惯性补偿方法包括:
- 计算力矩法:基于完整动力学模型,实时计算惯性力矩并前馈补偿。该方法需要精确的惯性张量参数,计算量较大。
- 加速度观测器:通过编码器差分或状态观测器估计关节加速度,再乘以惯性矩阵进行补偿。
- 自适应惯量调节:根据操作者的拖动速度动态调整虚拟惯量——低速时减小惯量以提高灵敏度,高速时适当增加惯量以保持稳定性。
4.4.3 常见误区与总结
总结复盘:拖动示教的三大补偿——重力补偿、摩擦力补偿、惯性补偿——分别解决了“静力平衡”、“运动阻力”和“动态响应”三个层面的问题。三者相互耦合:重力补偿不准确会加剧摩擦力补偿的难度;惯性补偿不当会影响重力补偿的静态平衡。在实际调试中,应遵循“先重力、再摩擦、后惯性”的顺序逐步整定,每一步都通过量化指标(如松手漂移速度、最小稳定拖动速度、阶跃响应滞后时间)进行验证。