第二讲:坐标系与运动学基础

各位工程师朋友,大家好。这一讲我们来聊聊运动控制里最基础、也最绕不开的东西——坐标系和运动学。

说实话,我刚入行那会儿,觉得坐标系不就是个数学概念嘛,有什么好讲的?直到我第一次调试六轴机器人,发现末端怎么都走不到目标点,折腾了两天才意识到——哦,原来我用的坐标系搞混了。嗯,从那以后,我再也不敢小看坐标系了。

2.1 笛卡尔坐标系:我们最熟悉的“世界”

笛卡尔坐标系,说白了就是我们在中学就学过的X、Y、Z三轴。在运动控制里,它描述的是工具末端在空间中的位置和姿态。

举个例子,你让一个机械臂去抓桌上的杯子。你关心的不是每个关节转了多少度,而是“手爪”在空间中的坐标——比如(300mm, 200mm, 150mm),再加上一个朝向角度。这就是笛卡尔坐标系下的描述。

关键点:笛卡尔坐标系下,我们描述的是末端执行器的位置和姿态,而不是每个关节的状态。

我个人习惯把笛卡尔坐标系称为“用户视角”。操作员不需要知道电机怎么转,他只需要告诉机器人“去那里”。

2.2 关节坐标系:机器人的“母语”

关节坐标系就完全不同了。它描述的是每个关节的转角或位移。比如六轴机器人,关节坐标就是J1、J2、J3、J4、J5、J6各自的角度值。

你想想看,电机只能转圈,它听不懂“X方向移动100mm”这种话。电机只认识“转多少度”。所以关节坐标系才是机器人的“母语”。

坐标系类型 描述对象 单位 典型应用
笛卡尔坐标系 末端位置+姿态 mm, 度 轨迹规划、人机交互
关节坐标系 每个关节角度/位移 度, mm 电机控制、伺服驱动

小技巧:调试时如果发现笛卡尔运动有奇异点,切换到关节坐标系手动微调,往往能绕过问题。我在项目中遇到过好几次这种情况。

2.3 正运动学:从关节到末端

正运动学,就是已知每个关节的角度,求末端在笛卡尔空间中的位置和姿态。说白了,就是“我知道电机转了多少,告诉我手在哪里”。

公式长这样(以六轴机器人为例):

T = T1(θ1) × T2(θ2) × T3(θ3) × T4(θ4) × T5(θ5) × T6(θ6)

其中每个T都是一个4×4的齐次变换矩阵。把它们乘起来,就得到了末端相对于基座的位姿。

正运动学是唯一的——给定一组关节角,末端位姿是确定的。这一点很重要,因为逆运动学就没这么简单了。

2.4 逆运动学:从末端到关节

逆运动学正好反过来:已知末端要到达的位置和姿态,求每个关节应该转多少度。

这才是真正让人头疼的地方。为什么?因为逆运动学通常有多个解,甚至可能无解。

举个例子,你让机械臂去抓一个点,它可能“弯着手肘”去,也可能“伸直手肘”去。两种方式都能到达,但关节角度完全不同。这就是多解问题。

注意:逆运动学求解时,一定要考虑关节限位、奇异点、碰撞等因素。我曾经在产线上遇到过,逆解算出来的角度虽然数学上正确,但关节会撞到机架——那场面,啧啧。

常用的逆解方法有:

  • 解析法:速度快,但只适用于特定构型(如PIEPER准则)
  • 数值法:通用性强,但迭代慢,可能不收敛
  • 几何法:直观,适合简单构型

2.5 齐次变换矩阵:运动学的“瑞士军刀”

齐次变换矩阵,说白了就是一个4×4的矩阵,同时包含了旋转和位移信息。

    [ R11  R12  R13  Px ]
T = [ R21  R22  R23  Py ]
    [ R31  R32  R33  Pz ]
    [  0    0    0    1  ]

左上角3×3是旋转矩阵,描述姿态。右上角3×1是位移向量,描述位置。最后一行是固定的[0 0 0 1],用来保持齐次性。

为什么用4×4?因为这样可以把旋转和位移统一成一个矩阵乘法,方便串联多个变换。

比如,从基座到末端,中间经过多个连杆:

T_base_to_end = T_base_to_link1 × T_link1_to_link2 × ... × T_linkN_to_end

每个T都是4×4矩阵,乘起来还是4×4。简洁、优雅、高效。

我的习惯:在代码里,我会把齐次变换矩阵封装成一个类,包含旋转矩阵、位移向量、以及乘法和求逆运算。这样写正逆解的时候,代码会干净很多。

2.6 知识体系总览

下面这张图,是我自己总结的坐标系与运动学知识结构。你可以把它当作这一讲的“地图”。

坐标系与运动学知识体系 坐标系 笛卡尔坐标系 关节坐标系 运动学 正运动学(关节→末端) 逆运动学(末端→关节) 齐次变换矩阵(4×4)

从这张图可以看得很清楚:坐标系是基础,运动学是方法,齐次变换矩阵是工具。三者缺一不可。

2.7 避坑指南

最后,分享几个我踩过的坑:

  • 坐标系搞混:我曾经把工具坐标系和用户坐标系搞反,结果机器人差点撞墙。建议在代码里用枚举类型区分坐标系,不要用数字0、1、2。
  • 逆解选错:多解情况下,一定要根据当前关节位置选择最近解,否则机器人会“抽风”。
  • 齐次矩阵忘记归一化:连续乘法后,旋转矩阵可能不再是正交矩阵。记得定期做正交化处理。

总结一句话:坐标系是运动控制的“世界观”,正逆解是“方法论”,齐次变换矩阵是“工具箱”。把这三样搞明白,多轴插补你就入门了。


公众号:蓝海资料掘金营,微信deep3321