第3章 坐标系与运动基础
3.1 坐标系——打标的“地图”和“导航”
做激光打标,第一个要搞明白的就是坐标系。说白了,你得知道“激光该往哪儿打”。我刚开始接触这个领域时,总觉得坐标系是个理论概念,跟实际加工关系不大。直到有一次,我在一台双工位打标机上栽了跟头——左边工位打出来是正的,右边工位打出来是歪的。查了一整天,最后发现是两边的坐标系根本没对齐。
从那以后我明白了:坐标系就是打标的“地图”,坐标变换就是“导航”。在激光打标中,我们主要跟两套坐标系打交道:工件坐标系和振镜坐标系。搞不清这两套坐标的关系,后面的轨迹规划根本没法做。
3.2 工件坐标系——你的零件在哪儿
工件坐标系,就是以工件为参考建立的坐标系。通常我们会在工件上选一个固定点作为原点,比如工件的一个角、一个定位孔,或者某个特征边沿。我个人习惯把原点设在工件的左下角,这样所有坐标都是正值,调试时看着舒服。当然,这没有硬性规定,你完全可以根据实际需求来定。
工件坐标系有几个关键特点:
- 原点在工件上,随工件移动
- 坐标值反映的是工件上的物理位置
- 通常用毫米或微米作单位
我在项目中遇到过这样的事:操作员把工件放反了,结果所有打标内容都跑到了工件背面。这就是工件坐标系没定义清楚的典型问题。所以,每次换产时,第一件事就是确认工件坐标系的原点和方向。
| 特性 | 工件坐标系 | 振镜坐标系 |
|---|---|---|
| 原点位置 | 工件上选定点 | 视场中心 |
| 参考物 | 工件本身 | 振镜扫描头 |
| 常用单位 | mm 或 μm | 数字量(D/A 码值) |
| 使用场景 | 编程、轨迹设计 | 实际控制、打标执行 |
3.3 振镜坐标系——激光头怎么看世界
振镜坐标系,是扫描振镜自身的坐标系。振镜通过 X 镜和 Y 镜的偏转,把激光束定位到视场内的不同位置。原点通常在视场中心,也就是激光束垂直于打标平面时的落点。X 轴和 Y 轴分别对应振镜的两个偏转方向。
这里有个关键点:振镜坐标系的单位不是毫米,而是“数字量”——振镜控制卡输出的数字信号,经过 D/A 转换后控制镜片偏转。要把这个数字量转换成实际位置,需要做标定。出厂时振镜会带一份标定文件,但换过镜头或重新安装后,标定数据就要重新做。
为什么会这样?因为振镜本身是个非线性系统,镜片偏转角度和光斑位移之间不是简单的线性关系。尤其是大视场打标时,边缘的畸变很明显。不做标定,打出来的方形就是枕形或桶形。
我曾经遇到过一台振镜,安装时有点旋转偏差,导致打出来的正方形变成了菱形。后来在变换参数里加了旋转校正才解决。嗯,这里要注意:振镜的机械安装偏差,一定要通过坐标变换来补偿,别想着去拧镜片支架。
3.4 坐标变换——让两边对上话
有了两套坐标系,问题就来了:怎么把工件坐标系中的位置,告诉振镜?答案就是坐标变换。
核心是一个 3x3 的变换矩阵,把旋转和平移打包在一起:
[x'] [cosθ -sinθ tx] [x]
[y'] = [sinθ cosθ ty] [y]
[1 ] [0 0 1 ] [1]
x、y 是工件坐标,x'、y' 是振镜坐标。θ 是旋转角,tx、ty 是平移量。这个矩阵看着简单,但用起来特别顺手。我平时用 Python 写控制脚本,会封装这样一个函数:
import numpy as np
def transform_coord(x, y, theta, tx, ty):
# 构建变换矩阵
T = np.array([
[np.cos(theta), -np.sin(theta), tx],
[np.sin(theta), np.cos(theta), ty],
[0, 0, 1]
])
# 齐次坐标
p = np.array([x, y, 1])
# 变换
x_new, y_new, _ = T @ p
return x_new, y_new
3.5 旋转与平移——变换的两个基本功
坐标变换就两个基本操作:旋转和平移。别小看这两个动作,所有复杂的轨迹归根结底都是它们组合出来的。
旋转:工件在台上放歪了,或者你想在工件上打一个旋转后的图案。旋转矩阵长这样:
R = [cosθ -sinθ]
[sinθ cosθ ]
θ 的正负遵循右手法则:逆时针为正,顺时针为负。我习惯用角度制编程,但算矩阵时记得转弧度。
平移:工件位置变了,或者你想在工件上换个位置打标。平移就是加上一个偏移量 tx、ty。说白了,就是把整个图形“挪”到新位置。
下面是这章的知识体系框架,帮你把几个核心概念串起来:
3.6 坐标系校准——实战中的关键一步
讲完理论,咱们说说实战。坐标系校正是每次换产时必须做的步骤。不做校准,所有轨迹规划都是纸上谈兵。
基本流程如下:
- 在工件上选 3~5 个基准点,记录它们的工件坐标
- 用振镜打标这些点,测量实际打标位置的振镜坐标
- 用对应点数据求解变换参数(θ, tx, ty)
- 验证:打一个测试图形,检查是否对准
你想想看,坐标系这件事说难也不难,就是把“工件在哪儿”和“激光往哪儿打”这两件事对齐。搞清楚了,后面的轨迹规划才能跑得顺。