4. 动作表示入门
在VLA(Vision-Language-Action)机器人系统中,动作表示决定了模型“输出什么”、数据“标注什么”、控制器“执行什么”。同一个抓取任务,可以用七个关节角描述,也可以用末端执行器的六维位姿描述,还可以用末端速度或关节力矩描述。选择哪种表示,直接影响数据采集难度、策略学习效率、跨本体迁移能力和最终控制精度。本章从工程视角梳理常见动作表示形式,帮助你建立“表示—数据—控制”之间的映射直觉。
一、核心原理:动作表示的四个层级
机器人动作表示可以按抽象层级分为四类:关节空间、任务空间、末端执行器位姿以及速度与力矩。它们并非互斥,而是同一物理运动在不同坐标系和不同物理量下的投影。
- 关节空间(Joint Space):以每个关节的角度或位移为分量,例如六轴机械臂的
[q1, q2, q3, q4, q5, q6]。它最贴近底层伺服,无奇异点问题,但难以直接表达“手该往哪走”。 - 任务空间(Task Space):以机器人在笛卡尔空间中的位置和姿态描述,通常为
[x, y, z, roll, pitch, yaw]。它符合人类直觉,便于视觉对齐,但需要逆运动学求解。 - 末端执行器位姿(End-Effector Pose):任务空间的特化形式,强调夹爪或工具中心点(TCP)的位姿,常以齐次变换矩阵或四元数表示。
- 速度与力矩(Velocity & Torque):描述动作的瞬时变化率或力交互,包括关节速度
q̇、末端线速度/角速度[v, ω]、关节力矩τ和末端力/力矩[f, n]。
动作表示的核心矛盾:越靠近底层(关节、力矩),控制越直接、精度越高,但语义越弱、跨本体越难;越靠近高层(任务空间、位姿),语义越强、越易迁移,但需要运动学求解且可能遇到奇异点。
二、方法流程:从任务到执行的表示转换链
一个典型的VLA动作生成与执行流程如下:视觉语言模型根据图像和指令预测动作表示,再经过运动学转换送入控制器。不同表示形式对应不同的转换路径。
- 输入:RGB-D图像、语言指令、机器人当前关节状态。
- 策略输出:模型输出动作表示,可能是关节增量
Δq、末端位姿增量ΔT、末端速度v或关节力矩τ。 - 坐标转换:若输出为任务空间量,需通过逆运动学(IK)转为关节目标;若输出为关节量,可直接下发。
- 控制执行:位置控制、速度控制或力矩控制模式接收目标值,驱动伺服。
- 反馈闭环:编码器返回实际关节角,力传感器返回接触力,形成下一时刻状态。
下面用一张信号链图展示四种动作表示在系统中的位置与转换关系。
三、案例/场景:同一抓取任务的不同表示
假设机器人需要把桌上的杯子抓起来放到架子上。不同动作表示下的数据形态差异显著:
| 表示形式 | 典型数据维度 | 优点 | 局限 | 适用场景 |
|---|---|---|---|---|
| 关节空间 | 6~7维角度 | 无奇异点、直接控制 | 语义弱、跨本体难 | 固定机械臂、示教复现 |
| 任务空间 | 6维位姿 | 直观、视觉对齐好 | 需IK、可能奇异 | 抓取、放置、避障 |
| 末端位姿 | 4×4变换矩阵 | 含姿态、便于组合 | 冗余参数、需归一化 | 精细操作、工具使用 |
| 速度/力矩 | 6维速度或7维力矩 | 动态响应好、力控自然 | 噪声敏感、标定复杂 | 装配、打磨、柔顺控制 |
在数据采集阶段,如果使用遥操作设备,通常记录关节角;如果使用VR手柄,通常记录末端位姿;如果使用力反馈设备,还会记录力矩。VLA模型训练时需要根据任务需求选择或融合这些表示。
四、误区与复盘
常见误区一:认为任务空间一定优于关节空间。任务空间语义强,但逆运动学可能无解或多解,在奇异点附近关节速度会急剧增大。实际系统中常采用“任务空间规划+关节空间执行”的混合策略。
常见误区二:忽略速度与力矩的物理意义。位置表示只告诉“去哪”,速度表示告诉“多快”,力矩表示告诉“用多大力”。接触-rich任务中,仅用位置表示会导致碰撞或滑脱,必须引入力/力矩维度。
复盘建议:在构建VLA数据集时,至少同时记录关节角、末端位姿和夹爪状态三路信息。关节角用于底层复现,末端位姿用于跨本体迁移,夹爪状态用于任务语义标注。若条件允许,增加关节力矩和末端力传感器数据,为后续力控策略留出接口。
动作表示不是非此即彼的选择,而是需要根据任务阶段动态切换。例如接近阶段用任务空间保证方向正确,抓取阶段切换到力矩控制保证柔顺,搬运阶段回到关节空间保证稳定。理解每种表示的物理含义和转换关系,是设计高质量VLA数据管线的基础。
# 典型动作表示转换伪代码
q = robot.get_joint_positions() # 关节空间
T = forward_kinematics(q) # 正运动学 → 末端位姿
J = compute_jacobian(q) # 雅可比矩阵
v = J @ q_dot # 关节速度 → 末端速度
tau = J.T @ F # 末端力 → 关节力矩
q_target = inverse_kinematics(T_target) # 逆运动学 → 关节目标
掌握这四种表示及其转换,你就能在VLA数据工程中做出有依据的表示选择,而不是盲目跟随单一范式。