3. XPlanar坐标系与路径表达

XPlanar的防碰撞调度,本质上是在同一套空间基准下,对多个动子的位置、速度与时间进行统一计算。如果坐标系定义不统一,哪怕每个动子单独运行都正常,一旦进入同一区域,碰撞判断也会出现偏差。因此,理解定子模块坐标系、全局坐标系、动子局部坐标系,以及路径点、轨迹段与时间参数化之间的关系,是后续调度算法能够正确工作的前提。

三层坐标系的分工

XPlanar系统中,定子模块(Tile)是物理铺设的基础单元。每个定子模块都有自己的模块坐标系,通常以模块的某个角点或中心为原点,X、Y轴沿模块边线方向,Z轴垂直于定子表面。模块坐标系描述的是“这个模块内部”的位置,动子在该模块上方的悬浮位置,首先由模块坐标系给出。

多个定子模块拼接后,系统需要一套全局坐标系来描述整个定子平面。全局坐标系的原点通常选在整片定子阵列的某个基准点,各模块通过安装时的偏移量(offset)和旋转角(rotation)映射到全局坐标系中。调度器在做跨模块路径规划时,使用的是全局坐标,因为只有全局坐标才能表达“从模块A的某点移动到模块B的某点”这种跨模块运动。

动子自身还有局部坐标系,原点在动子中心,随动子平移和旋转。动子的姿态角(yaw)就是局部坐标系相对于全局坐标系的旋转量。当动子需要搬运工件、对齐工位或进入某个加工角度时,局部坐标系决定了工件的实际朝向。防碰撞计算中,动子的外形包络(bounding shape)是在局部坐标系下定义的,再通过姿态角变换到全局坐标系参与碰撞检测。

XPlanar 三层坐标系与路径表达关系 全局坐标系 (Global) 定子模块 A 模块坐标系原点 O_A 定子模块 B O_B 全局原点 O_G X_G Y_G offset_A (Δx, Δy, Δθ) 模块间偏移 动子 M1 x_L y_L θ P1 P2 P3 轨迹段 S1 轨迹段 S2 路径表达要素 路径点 P(x, y, θ) 全局坐标 + 姿态角 轨迹段 S(Pi → Pj) 几何形状 + 约束条件 时间参数化 v(t), a(t), t_start, t_end 碰撞检测包络 局部外形 → 全局变换 坐标变换链 局部 → 模块 → 全局

路径点与轨迹段的表达

在全局坐标系下,一个路径点通常表达为 P(x, y, θ),其中 x、y 是动子中心在全局坐标系中的位置,θ 是动子局部坐标系相对于全局坐标系的旋转角。路径点不是孤立的坐标,它往往还携带速度约束、到达时间窗口等属性。例如调度器可能要求动子M1在 t=2.0s 时到达 P3,且到达时速度不超过 0.5 m/s,这些约束会附加在路径点上。

两个路径点之间由轨迹段连接。轨迹段描述的是几何路径,可以是直线段、圆弧段,也可以是XPlanar支持的自由曲线。轨迹段的几何形状决定了动子实际走过的空间曲线,而时间参数化则决定动子沿这条曲线以什么速度、什么加速度运动。同一段几何路径,可以有不同的时间参数化方案:快速通过、匀速通过、或者带加减速的平滑通过。防碰撞调度中,时间参数化是调整动子到达时间、避免冲突的关键手段。

坐标变换链与统一计算基准

实际计算中,动子的位置信息可能来自不同层级。动子上的传感器或控制器给出的可能是局部坐标,定子模块的驱动系统给出的是模块坐标,而调度器需要的是全局坐标。因此存在一条明确的坐标变换链:局部坐标 → 模块坐标 → 全局坐标。变换过程包括平移和旋转,通常用齐次变换矩阵表示:

P_global = T_module_to_global · T_local_to_module · P_local

其中:
T_local_to_module = [cosθ  -sinθ  x_offset]
                    [sinθ   cosθ  y_offset]
                    [0      0     1       ]

T_module_to_global 由模块安装参数决定
θ 为动子局部坐标系相对模块坐标系的旋转角
x_offset, y_offset 为动子中心在模块坐标系中的位置

这条变换链必须在整个调度系统中保持一致。如果某个模块的安装偏移量标定错误,或者动子姿态角的符号约定不统一,那么同一个物理位置在不同计算环节中会得到不同的全局坐标,碰撞检测就会失效。因此,工程上通常会在系统初始化阶段做一次坐标一致性校验:让动子依次移动到几个已知的标定点,比较调度器计算出的全局坐标与实际标定坐标的偏差,偏差超过阈值就说明变换链中某个环节有问题。

时间参数化与调度计算的关系

时间参数化把几何路径转化为带时间戳的运动轨迹。对于一条轨迹段,常见的参数化方式是给出起点和终点的速度、加速度约束,然后生成一条平滑的速度曲线。在防碰撞调度中,调度器需要知道每个动子在每个时刻占据的空间范围,因此时间参数化必须能够回答“t 时刻动子在哪里、朝向如何”这个问题。

假设动子M1沿轨迹段S1从P1运动到P2,采用梯形速度曲线,最大速度 v_max = 1.0 m/s,加速度 a = 2.0 m/s²,段长 L = 0.8 m。则加速时间 t_acc = v_max / a = 0.5s,加速距离 s_acc = 0.5 · a · t_acc² = 0.25m。由于 2 · s_acc = 0.5m < L = 0.8m,存在匀速段,匀速距离 s_const = 0.3m,匀速时间 t_const = 0.3s,总时间 T = 2 · t_acc + t_const = 1.3s。调度器据此可以算出M1在任意时刻的位置,并与其它动子的时空包络做比较。

坐标变换链中的旋转方向约定必须全文统一。建议采用右手坐标系,绕Z轴逆时针旋转为正,并在模块标定、动子姿态计算、碰撞包络变换中保持一致。若某个环节使用了相反的符号约定,会导致动子实际朝向与调度器计算朝向相差两倍姿态角,在窄通道或工位对接场景中极易引发碰撞。

统一空间基准的工程检查要点

  • 模块偏移量标定:每个定子模块的安装位置和旋转角必须精确标定,并写入系统配置。标定误差直接传递到全局坐标。
  • 动子姿态角定义:明确θ的零位方向、正方向,以及局部坐标系与模块坐标系、全局坐标系之间的旋转顺序。
  • 路径点属性完整:每个路径点应包含位置、姿态、速度约束、时间窗口,缺一项都可能导致调度器无法正确判断冲突。
  • 时间参数化可查询:调度器需要能快速查询任意时刻动子的位置和包络,因此时间参数化结果通常以采样点或解析函数形式存储。
  • 坐标一致性校验:定期或在系统变更后执行标定点校验,确保变换链没有因配置修改而失配。

把这三层坐标系、路径点、轨迹段和时间参数化统一到同一套计算基准下,后续的防碰撞调度才有可靠的空间与时间依据。任何一层出现偏差,都会在动子交汇、避让、工位对接等场景中被放大,因此这一节的内容是后续所有调度逻辑的基础。