第四章:机器人运动学基础

4.1 坐标系:机器人的“世界观”

做焊接编程,第一件事就是搞清楚机器人在哪、焊枪在哪、工件在哪。说白了,就是坐标系的事。

我个人习惯把坐标系分成四层:世界、基座、工具、工件。你想想看,这就像你站在车间里,先找到自己的位置,再找到手里的工具,最后对准要焊的零件。

4.1.1 世界坐标系

世界坐标系是全局参考。它通常固定在车间地面上,所有机器人都以它为基准。我在项目里遇到过,两台机器人协同焊接时,如果世界坐标系没校准好,焊出来的焊缝能偏出5毫米。嗯,那场面挺尴尬的。

4.1.2 基座坐标系

基座坐标系固定在机器人底座上。原点在底座安装面中心,Z轴向上。这个坐标系是机器人自己的“原点”。你编程时,大部分运动指令其实默认就是基座坐标系。

4.1.3 工具坐标系

工具坐标系(TCP)在焊枪末端。我建议你每次换焊枪或夹持器后,都重新标定一下TCP。为什么?因为焊丝伸出长度变了,TCP位置就变了。我曾经因为偷懒没标定,结果焊了20个工件全废了。

4.1.4 工件坐标系

工件坐标系是用户自定义的。你把工件放在工作台上,测量几个点,就能建立这个坐标系。好处是:如果工件位置偏移了,你只需要更新工件坐标系,不用改程序。

核心原则: 编程时尽量用工件坐标系。这样程序移植性好,换产时改几个点就行。

4.2 关节运动与线性运动

机器人怎么动?两种基本方式:关节运动和线性运动。

4.2.1 关节运动(JOINT)

关节运动是每个轴独立转动。路径不可预测,但速度快。适合在空行程、大范围移动时用。

我记得有一次,新手程序员用关节运动做焊接路径,结果焊枪在焊缝中间突然“甩”了一下,因为某个关节角度到了极限。嗯,这就是关节运动的坑——路径不可控。

警告: 焊接过程中绝对不要用关节运动!焊缝路径必须用线性运动。

4.2.2 线性运动(LINEAR)

线性运动是TCP沿直线移动。路径可控,姿态稳定。焊接、搬运、装配等精度要求高的场合,必须用线性运动。

我建议你:所有焊接路径都用线性运动。空行程可以用关节运动,但接近工件前10毫米,一定要切回线性运动。

4.3 姿态控制:欧拉角与四元数

姿态控制是机器人编程的难点。说白了,就是焊枪怎么“拿”的问题。角度不对,焊缝质量就完蛋。

4.3.1 欧拉角

欧拉角用三个角度(Rx, Ry, Rz)描述姿态。直观,但有个大问题——万向锁。

我在项目里遇到过,用欧拉角编程时,焊枪转到某个角度突然“卡住”了,怎么调都不对。后来发现是万向锁。解决办法?换四元数。

表示方式 优点 缺点
欧拉角 直观,容易理解 有万向锁,插值不平滑
四元数 无万向锁,插值平滑 不直观,四个数难理解

4.3.2 四元数

四元数用四个数(w, x, y, z)表示姿态。没有万向锁,插值平滑。我建议你:在需要平滑过渡、避免姿态突变时,用四元数。

举个例子:焊接一个圆弧焊缝,用欧拉角编程,焊枪在圆弧中点可能会突然“扭”一下。用四元数,姿态变化就非常平滑。

我的习惯: 示教时用欧拉角(直观),程序里用四元数(稳定)。很多机器人控制器会自动转换,但你要知道原理。

4.4 知识体系结构图

机器人运动学基础 坐标系 运动类型 姿态控制 应用场景 世界坐标系 基座坐标系 工具坐标系 (TCP) 工件坐标系 关节运动 (JOINT) 线性运动 (LINEAR) 圆弧运动 (CIRC) 路径规划 欧拉角 (Rx, Ry, Rz) 四元数 (w, x, y, z) 万向锁问题 姿态插值 焊接路径 搬运码垛 装配作业 协同作业 核心原则:焊接路径用线性运动 + 工件坐标系 + 四元数姿态 空行程用关节运动,接近工件前10mm切回线性运动

4.5 避坑指南

做焊接编程这些年,我踩过不少坑。分享几个典型的:

  • TCP标定不准: 我曾经用一把旧焊枪,TCP偏了2毫米,结果焊了50个工件才发现。从那以后,我每次换焊丝都重新标定。
  • 万向锁: 用欧拉角编程时,如果焊枪姿态接近90度,就会触发万向锁。解决办法:用四元数,或者调整路径点。
  • 坐标系混淆: 新手容易把基座坐标系和工件坐标系搞混。我建议你:在程序开头明确注释当前使用的坐标系。
小技巧: 示教时,先手动把焊枪移到焊缝起点,记录姿态。然后用线性运动走一遍路径。如果发现姿态突变,立刻检查是不是万向锁。

嗯,运动学基础就这些。记住:坐标系是骨架,运动是肌肉,姿态控制是灵魂。三者配合好,焊接质量自然就上去了。


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