2. 机器人学基础
在机器人模仿学习中,策略网络最终输出的往往不是“关节角度”,而是末端执行器的目标位姿、速度或力。要让这些输出真正驱动机器人,必须理解机器人学中最基础的四个概念:坐标系变换、运动学、动力学与末端执行器控制。它们共同决定了“数据从哪里来、动作如何映射、误差如何产生”。
一、坐标系变换:把数据放到同一个世界里
机器人系统中同时存在多个坐标系:世界坐标系、基座坐标系、各连杆坐标系、工具坐标系、相机坐标系以及目标物体坐标系。模仿学习采集的示教轨迹,通常记录的是末端在某一坐标系下的位姿,而策略推理时又可能来自相机坐标系,因此必须通过齐次变换统一到同一参考系。
一个刚体位姿可用 4×4 齐次变换矩阵表示:旋转矩阵描述姿态,平移向量描述位置。连续变换通过矩阵相乘完成,顺序不可交换。工程中常用“父坐标系→子坐标系”的链式表达,例如 world → base → link6 → tool。若顺序写反,末端位置会出现明显偏差,这是新手最常见的错误之一。
核心公式: Tworld,tool = Tworld,base · Tbase,link6 · Tlink6,tool
二、运动学:从关节空间到任务空间
正运动学(FK)根据关节角计算末端位姿,是确定且唯一的;逆运动学(IK)根据目标位姿反解关节角,可能存在多解、无解或奇异。模仿学习中,若示教数据是关节角,策略学习的是关节空间动作;若示教数据是末端位姿,则需要 IK 转换为关节指令后才能下发。
雅可比矩阵 J 描述关节速度与末端速度的线性关系:ẋ = J(q)·q̇。当 J 接近奇异时,微小末端速度会对应极大的关节速度,导致抖动甚至失控。因此在数据采集和策略部署时,应避开奇异位形,或使用阻尼最小二乘等数值 IK 方法。
# 伪代码:正运动学链式求解
T = np.eye(4)
for i in range(num_joints):
T = T @ dh_transform(q[i], a[i], d[i], alpha[i])
end_effector_pose = T
三、动力学:为什么同一动作在不同速度下表现不同
动力学描述力矩、关节运动与惯性、科氏力、重力之间的关系:τ = M(q)q̈ + C(q,q̇)q̇ + G(q)。模仿学习若只学习位置轨迹,忽略动力学,在高速或负载变化时会出现跟踪误差。尤其在接触任务中,力控与阻抗控制比纯位置控制更关键。
常见机器人平台在动力学特性上差异明显:协作机械臂通常关节柔性大、负载小;工业机械臂刚性强、速度快;移动操作机器人还需考虑底盘与机械臂耦合。策略迁移时,动力学差异是“仿真到现实”鸿沟的重要来源。
四、末端执行器控制与常见平台
末端执行器控制可分为位置控制、速度控制、力/力矩控制与阻抗控制。模仿学习中最常用的是位置增量控制与笛卡尔阻抗控制。位置控制简单稳定,适合抓取与放置;阻抗控制能在接触时柔顺响应,适合插孔、擦拭等任务。
| 平台类型 | 典型自由度 | 控制接口 | 模仿学习适用场景 |
|---|---|---|---|
| 桌面协作臂(如 UR、xArm) | 6~7 | 关节位置/速度、笛卡尔位姿 | 抓取、装配、按钮操作 |
| 工业机械臂(如 KUKA、ABB) | 6 | 关节位置、力控选件 | 高速搬运、焊接 |
| 移动操作机器人 | 底盘+6~7 | 底盘速度+机械臂位姿 | 家庭服务、长程导航操作 |
| 灵巧手/夹爪 | 1~20+ | 位置、电流、触觉 | 精细抓取、工具使用 |
五、案例:从示教到执行的完整链路
假设人类通过遥操作采集了一段“抓杯子”的示教。数据记录的是末端在相机坐标系下的位姿序列。部署时,系统需要:先将相机坐标系变换到机器人基座坐标系;再用 IK 求解关节角;最后通过位置控制下发。若其中任一步的坐标系或标定有误,杯子就会被抓偏。
工程建议:在模仿学习项目中,优先统一记录“末端位姿+夹爪状态+时间戳”,并保存对应的基座坐标系与工具坐标系参数。这样后续无论用关节空间还是笛卡尔空间策略,都能复现同一物理动作。
六、常见误区与复盘
- 误区一:把旋转矩阵直接相加。旋转必须用矩阵乘法或四元数/旋转向量组合。
- 误区二:忽略工具坐标系。夹爪长度不同,末端位姿含义完全不同。
- 误区三:只用位置控制做接触任务。接触时位置误差会转化为大力,损坏工件。
- 误区四:不检查 IK 解。多解中选择错误分支会导致关节大幅翻转。