Policy 输出的 Action 到底是什么
机器人学习里常写 policy 根据观测输出 action。这个 action 可以位于任务目标、控制命令或电机接口三层。层级不同,学习问题、控制责任和安全边界都会改变。
机器人策略常被写成一个很短的式子:
这个式子容易让人以为策略网络看到观测以后,直接告诉电机怎么转。实际系统里,\(a_t\) 的含义取决于 action space 定义在哪一层。同样写作 action,它可能是目标位姿,也可能是包含力和柔顺性的控制命令,也可能是关节力矩。
高层动作:目标和位姿
高层 action 描述机器人应该到哪里、沿什么轨迹移动。最常见的形式是目标位姿:
\(x_t^\star\) 可以包含三维位置,也可以包含末端姿态。策略在这一层输出任务目标,后续控制器再把目标转换成电机命令。机械臂移动到杯子上方、夹爪对准门把手、末端沿桌面轨迹移动,都可以先被表达成高层位姿目标。
这里 \(\tau_t\) 才是关节力矩。高层 action 把复杂动力学交给逆运动学、轨迹跟踪或阻抗控制器处理,策略只决定下一段目标。
中层动作:位置、力和柔顺性
接触任务里,只给位姿目标经常不够。机器人碰到桌子、门、杯子或人时,任务成败还取决于接触力和力-位移关系。
\(F_t^\star\) 是目标力,例如擦桌子时希望保持的下压力。\(K_t\) 是刚度,决定偏离目标时机器人拉回去多用力:
\(D_t\) 是阻尼,决定运动太快或发生振荡时系统施加多强的刹车力:
这一层 action 同时定义目标位置、目标力、系统刚度和阻尼。同样让末端向下移动 1 厘米,刚度不同,接触力可能相差很大;阻尼不同,碰到桌面后的行为可能稳定,也可能振荡。
中层 action 保留了力、刚度、阻尼这些物理接口,同时避免让神经网络直接承担全部电机控制。对接触任务来说,这一层经常是更可控的选择。
低层动作:电机和关节接口
最低层 action 直接接近电机接口。它可以是关节力矩:
也可以是目标关节速度或目标关节位置:
低层 action 给策略最大的控制自由度。代价也直接:训练更依赖动力学和接触建模,真实机器人上更容易出现高频抖动、过大力矩和安全问题。让神经网络输出电机级命令通常还需要限幅、滤波、安全检查和 fallback controller。
Action Space 是接口选择
policy 输出 action 这句话没有唯一含义。真正的问题是:
| 层级 | 典型 action | 主要责任 | 主要风险 |
|---|---|---|---|
| 高层 | waypoint, pose, trajectory | 任务目标和几何路径 | 接触力和动力学被隐藏,复杂接触容易失真 |
| 中层 | pose, target force, stiffness, damping | 接触控制和物理交互风格 | 接口设计更复杂,需要控制器配合 |
| 低层 | torque, current, joint velocity | 直接控制电机或关节 | 训练和安全难度最高 |
层级越高,学习更稳定,底层控制器承担更多动力学细节。层级越低,策略自由度更大,训练和安全难度更高。中层 action 保留接触任务需要的物理变量,又把电机级安全交给控制器,因此常常是机器人接触学习里值得优先检查的接口。
机器人策略真正输出的是一个被工程系统定义过的控制接口。看清 action space 的层级,才能判断一个 robot policy 在学习任务目标、接触行为,还是电机控制。
References
- Oussama Khatib, “A Unified Approach for Motion and Force Control of Robot Manipulators: The Operational Space Formulation,” 1987.
- Neville Hogan, “Impedance Control: An Approach to Manipulation,” 1985.
- Steven M. LaValle, Planning Algorithms, Cambridge University Press, 2006.