协作机器人(Cobot)的拖动示教(Hand Guiding / Drag Teaching)是一种直观的人机交互方式:操作者用手直接拖动机器人末端或机械臂,使其沿期望轨迹运动,系统实时记录位姿或生成路径,用于后续复现。其核心在于实现'零力'或'低阻抗'状态下的安全、顺滑跟随。
一、基本目标
在拖动示教模式下,机器人应表现为:
- 对外部人力几乎无阻力(即'零力'或'重力补偿'状态);
- 各关节可自由转动,但受安全约束(如速度、位置限幅);
- 实时记录末端位姿或关节角,用于编程。
二、核心原理:基于力/力矩传感器的阻抗控制
1. 力矩感知
协作机器人通常在每个关节集成高精度力矩传感器(或通过电机电流估算关节力矩)。
- 实际测量/估计的关节力矩:
τₛ=[τ₁, τ₂, ..., τₙ]ᵀ - 重力引起的理论力矩(由正动力学模型计算):
τ_g(q)—— 仅与当前关节角q有关 - 注:n 为自由度(如 7 轴机器人 n = 7)
2. 重力补偿(Gravity Compensation)
为消除机器人自重影响,控制器输出抵消重力的力矩:
τ_c = τ_g(q)
此时,若无外力,机器人将'悬浮'在当前位置。
当人施加外力时,关节力矩传感器会检测到额外力矩:
τ_ext = τ_s - τ_g(q)
这个差值即为操作者施加的真实作用力矩。接下来,控制器需要将这些力矩转换为机器人的运动指令。这里通常采用阻抗控制策略,将机器人视为一个虚拟的质量 - 阻尼 - 弹簧系统,通过调节虚拟刚度、阻尼和惯性参数,让机器人表现出不同的物理特性。
3. 运动映射与安全约束
得到外部力矩后,系统将其映射为关节速度或末端笛卡尔空间速度。公式大致如下:
v_cmd = K_impedance * τ_ext
其中 K_impedance 是阻抗增益矩阵。但在实际工程中,不能简单地线性映射,必须加入多层安全保护:
- 速度限制:无论外力多大,关节速度不得超过预设的安全阈值;
- 力矩限制:防止意外碰撞导致电机过载;
- 急停逻辑:一旦检测到异常冲击或超出工作空间,立即停止。
三、工程实践中的调优要点
在实际落地时,单纯的理论公式往往不够用,还需要考虑以下因素:
- 传感器噪声处理:力矩信号通常含有高频噪声,需配合低通滤波,但要避免引入过大的相位延迟,否则会导致拖动时的迟滞感。
- 摩擦补偿:除了重力,关节摩擦也是阻力的主要来源,需要在控制算法中建立摩擦模型进行前馈补偿。
- 动态负载变化:如果末端夹持了不同重量的物体,重力补偿模型必须实时更新,否则会出现明显的'下坠'或'上顶'现象。
总的来说,拖动示教的成功关键在于平衡'顺滑度'与'安全性'。调试过程中,建议先从低速模式开始,逐步增加灵敏度,直到找到用户手感舒适且系统稳定的平衡点。

