2. 力学基础

六维力传感器之所以被称为“六维”,是因为它同时测量三个方向的力与三个方向的力矩。要真正读懂传感器输出、正确安装标定、并在机器人控制中用好这些数据,必须先建立一套统一的力学语言:力与力矩如何用矢量表示,不同坐标系之间如何变换,静力平衡如何约束测量结果,以及力旋量如何把力与力矩统一成一个整体。本节围绕这四个核心概念展开,并说明它们在机器人腕部力觉中的实际意义。

一、力与力矩的矢量表示

力是矢量,既有大小又有方向,还依赖作用点。在三维空间中,力通常表示为 F = [Fx, Fy, Fz]ᵀ,单位是牛顿(N)。力矩描述力使物体绕某轴转动的趋势,表示为 M = [Mx, My, Mz]ᵀ,单位是牛·米(N·m)。力矩不是独立于力的量,它由力与力臂共同决定:

M = r × F
其中 r 为从参考点到力作用点的位置矢量
|M| = |r|·|F|·sinθ

这里的关键是“参考点”。同一个力,相对于不同参考点会产生不同的力矩。六维力传感器内部通常以传感器坐标系原点为参考点,因此安装位置、工具重心、负载偏心都会直接影响力矩读数。理解这一点,是后续做重力补偿和负载辨识的前提。

记忆要点:力是“推拉”,力矩是“拧转”;力与参考点无关,力矩与参考点强相关。

二、坐标系变换:从传感器到机器人基座

传感器测量的是自身坐标系下的六维量,而机器人控制往往需要基座坐标系或工具坐标系下的量。因此必须进行坐标变换。三维空间中的变换包括旋转和平移,常用齐次变换矩阵表示:

T = [ R  p ]
    [ 0  1 ]

R:3×3 旋转矩阵,描述姿态
p:3×1 平移矢量,描述位置

对于力与力矩,变换规则与普通点不同。若已知传感器坐标系 S 下的力 F_S 和力矩 M_S,要变换到基座坐标系 B,需要同时考虑旋转和平移:

F_B = R_BS · F_S
M_B = R_BS · M_S + p_BS × F_B

注意第二项 p_BS × F_B:平移会引入附加力矩。这正是为什么传感器安装法兰的偏移量必须精确标定。若忽略这一项,机器人做力控时会出现明显的力矩偏差,尤其在末端负载较大时更为突出。

力与力矩的坐标系变换关系 传感器坐标系 S F_S = [Fx, Fy, Fz]ᵀ M_S = [Mx, My, Mz]ᵀ 原点:传感器参考点 R_BS, p_BS 旋转 + 平移 基座坐标系 B F_B = R_BS · F_S M_B = R_BS · M_S + p_BS × F_B 用于机器人力控与规划 变换核心公式 F_B = R_BS · F_S M_B = R_BS · M_S + p_BS × F_B 平移项 p_BS × F_B 是力矩变换中不可忽略的附加项

三、静力平衡:传感器读数的物理约束

当机器人末端静止或匀速运动时,工具与负载处于静力平衡状态。此时传感器测得的力与力矩,等于负载重力、外部接触力以及惯性力(若忽略动态项)的合力与合力矩。静力平衡条件为:

ΣF = 0  →  F_sensor + F_gravity + F_external = 0
ΣM = 0  →  M_sensor + M_gravity + M_external = 0

在机器人腕部力觉中,最常见的应用是重力补偿:机器人空载时,传感器读数并非零,而是工具重力在传感器坐标系下的投影。通过静力平衡模型,可以估计工具重力 G 和重心位置 r_c,从而在后续测量中扣除重力影响,得到真实的外部接触力。

静力平衡的工程意义:它把“传感器读数”与“真实外力”联系起来。没有静力平衡模型,六维力传感器只能输出原始电压对应的六维量,无法直接用于力控。

四、力旋量及其在机器人中的应用

力旋量(Wrench)是把力与力矩统一成一个六维矢量的数学工具:

W = [F; M] = [Fx, Fy, Fz, Mx, My, Mz]ᵀ

力旋量的价值在于:它可以在不同坐标系之间用统一的变换矩阵进行传递,并且满足功率对偶关系。在机器人学中,力旋量常用于:

  • 雅可比矩阵转置映射:关节力矩 τ = Jᵀ · W,把末端力旋量映射为关节驱动力矩;
  • 阻抗/导纳控制:以力旋量为输入,计算机器人末端应产生的位移或速度修正;
  • 装配与打磨:同时控制接触力和力矩,实现柔顺插入或恒力跟踪;
  • 碰撞检测:监测力旋量突变,判断是否发生意外接触。
概念 数学表示 物理含义 机器人中的典型用途
力矢量 F = [Fx, Fy, Fz]ᵀ 推拉作用,与参考点无关 接触力检测、恒力控制
力矩矢量 M = r × F 拧转作用,依赖参考点 拧螺丝、轴孔装配
齐次变换 T = [R p; 0 1] 描述坐标系之间的位姿关系 传感器数据坐标转换
静力平衡 ΣF = 0, ΣM = 0 静止或匀速下的力与力矩约束 重力补偿、负载辨识
力旋量 W = [F; M] 力与力矩的统一六维表示 雅可比映射、阻抗控制

五、案例:腕部六维力传感器的重力补偿

假设机器人末端安装了一个工具,传感器读数在机器人不同姿态下不断变化。若不做补偿,控制器会误以为存在外部接触力。实际操作流程如下:

  1. 让机器人以多个不同姿态运动,记录每个姿态下的传感器六维读数;
  2. 建立静力平衡方程,把工具重力 G 和重心 r_c 作为未知量;
  3. 利用最小二乘法求解 G 和 r_c;
  4. 在实时控制中,根据当前姿态计算重力在传感器坐标系下的投影,并从读数中扣除;
  5. 扣除后的力旋量即为外部接触力旋量,用于力控或碰撞检测。
# 重力补偿伪代码
for each pose:
    R = get_rotation(pose)          # 传感器到基座的旋转
    F_gravity = R.T @ [0, 0, -m*g]  # 重力在传感器坐标系的投影
    M_gravity = r_c × F_gravity     # 重力产生的力矩
    W_external = W_measured - [F_gravity; M_gravity]

常见误区:只补偿力而不补偿力矩;忽略传感器安装法兰的平移偏移;把工具重心当作传感器原点。这些都会导致力矩通道出现随姿态变化的周期性误差,在精密装配中表现为“越拧越偏”。

六、复盘与要点归纳

本节的核心可以概括为一条主线:力与力矩是矢量,力矩依赖参考点;坐标系变换必须同时处理旋转和平移;静力平衡是连接传感器读数与真实外力的桥梁;力旋量把六维量统一起来,并通过雅可比转置映射到关节空间。掌握这条主线,才能在后续章节中正确理解六维力传感器的标定、解耦、滤波与控制应用。

  • 力矢量与参考点无关,力矩矢量与参考点强相关;
  • 坐标变换中,力矩变换比力变换多一项 p × F;
  • 静力平衡是重力补偿和负载辨识的理论基础;
  • 力旋量是机器人力觉控制的标准数学接口;
  • 工程中必须同时标定旋转和平移,否则力矩通道会出现系统性偏差。