第四章:机器人运动学基础
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 知识体系结构图
4.5 避坑指南
做焊接编程这些年,我踩过不少坑。分享几个典型的:
- TCP标定不准: 我曾经用一把旧焊枪,TCP偏了2毫米,结果焊了50个工件才发现。从那以后,我每次换焊丝都重新标定。
- 万向锁: 用欧拉角编程时,如果焊枪姿态接近90度,就会触发万向锁。解决办法:用四元数,或者调整路径点。
- 坐标系混淆: 新手容易把基座坐标系和工件坐标系搞混。我建议你:在程序开头明确注释当前使用的坐标系。
嗯,运动学基础就这些。记住:坐标系是骨架,运动是肌肉,姿态控制是灵魂。三者配合好,焊接质量自然就上去了。
公众号:蓝海资料掘金营,微信deep3321