多軸加工と同次座標

回転軸を含む多軸加工の位置や姿勢は、基本的に3次元空間上の量として表される。
しかし、これらを算出・変換する際には4×4行列が用いられることが一般的である。

なぜ、次元を拡張する必要があるのかを以下に示す。

回転

回転は線形変換として行列で表現できる。
位置ベクトルを3次元ベクトル $P$ とすると、

$$ P = \begin{pmatrix} p_x \\ p_y \\ p_z \\ \end{pmatrix} $$


Z軸中心の回転角度を $\theta$ とした場合、回転を表す行列 $R_z$ は次のようになる。

$$ R_z = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \\ \end{pmatrix} $$


このとき、変換後の座標 $P'$ は、

$$ P' = R_z P $$


で与えられる。

平行移動

平行移動はベクトルの加算で表現される。
平行移動ベクトルを

$$ \mathbf{d} = \begin{pmatrix} d_x \\ d_y \\ d_z \\ \end{pmatrix} $$


とすると、

$$ P' = P + \mathbf{d} $$


となる。

回転と平行移動の違い

回転は原点を固定する線形変換である。すなわち

$$ P = \mathbf{0} \implies P' = R_z \mathbf{0} = \mathbf{0} $$


となる。
一方、平行移動の場合、原点は別の点に移る。

$$ P = \mathbf{0} \implies P' = \mathbf{0} + \mathbf{d} = \mathbf{d} $$

3×3行列による写像は線形変換であり、必ずゼロベクトルをゼロに写す。
しかし、平行移動 $P = \mathbf{0}$ では、$P' = \mathbf{d} \neq \mathbf{0}$ となる。

すなわち、平行移動は線形変換ではなく、3×3行列では表現できない。

回転と平行移動の対比図
図1:回転は原点を固定する(左)、平行移動は原点も移動させる(右)

同次座標

平行移動を含む変換を行列積で扱うためには、座標の表現を拡張する必要がある。

3次元ベクトル $𝑃$ に1 を付け加え、4次元ベクトル $\tilde{P}$ として表す。

$$ \tilde{P} = \begin{pmatrix} p_x \\ p_y \\ p_z \\ 1 \\ \end{pmatrix} $$


このとき、回転 $R$ と平行移動 $\mathbf{d}$ を同時に含む変換は、次の4×4行列で表される。

$$ T = \begin{pmatrix} R & \mathbf{d} \\ \mathbf{0}^\top & 1 \\ \end{pmatrix} $$


ここで

  • $R$ は3×3の回転行列
  • $\mathbf{d}$ は3×1の平行移動ベクトル
  • $\mathbf{0}^\top = [0\ 0\ 0]$ は1×3の零行ベクトル($\top$ は転置を表す)
  • 右下の $1$ はスカラー

である。

同次変換行列Tのブロック構造
図2:T のブロック構造 ― 回転・平行移動・固定値の3領域

これを作用させると、

$$ \tilde{P}' = T \tilde{P} $$


となり、

$$ \tilde{P}' = T \tilde{P} = \begin{pmatrix} R & \mathbf{d} \\ \mathbf{0}^\top & 1 \\ \end{pmatrix} \begin{pmatrix} P \\ 1 \\ \end{pmatrix} = \begin{pmatrix} RP+\mathbf{d} \\ 1 \\ \end{pmatrix} $$


すなわち、

$$ P' = RP+\mathbf{d} $$


となる。

この方法により、回転と平行移動を一つの行列で表すことができるだけでなく、複数の変換を順に適用する場合も行列の積で表現可能である。
そのため、複雑な座標変換でも、各点に対して1回の行列積を計算するだけで済み、計算が簡略化される。

このように、平行移動、回転、拡大縮小を行列の積で一括計算可能にする表現方法を 同次座標 と呼ぶ。 特に平行移動・回転・拡大縮小を組み合わせた変換は アフィン変換(Affine Transformation) と総称される。 多軸加工で扱う座標変換は、このアフィン変換の範疇に属する。

さらに、第4成分の値により点と方向ベクトルを区別できる。

  • 位置(点): 第4成分を 1
    $$ \tilde{P} = \begin{pmatrix} p_x \\ p_y \\ p_z \\ 1 \\ \end{pmatrix} $$
  • 姿勢(方向ベクトル): 第4成分を 0
    $$ \tilde{V} = \begin{pmatrix} v_x \\ v_y \\ v_z \\ 0 \\ \end{pmatrix} $$

姿勢(方向ベクトル)に対して $T$ 作用させると、

$$ \tilde{V}' = T \tilde{V} = \begin{pmatrix} R & \mathbf{d} \\ \mathbf{0}^\top & 1 \\ \end{pmatrix} \begin{pmatrix} V \\ 0 \\ \end{pmatrix} = \begin{pmatrix} RV \\ 0 \\ \end{pmatrix} \\ $$

となり、平行移動の影響を受けない。

同次座標は、点とベクトルの性質を自然に区別しつつ、平行移動を含む変換を線形代数の枠組みで統一的に扱う方法である。

多軸加工への応用

5軸加工機はXYZの直線3軸に加えて2つの回転軸(例:A軸・C軸)を持つ。
各軸の運動は独立した同次変換行列として表され、工具先端位置(TCP)はこれらの積として求まる。

$$ T_{\text{TCP}} = T_X \cdot T_Y \cdot T_Z \cdot T_C \cdot T_A $$

各 $T$ は前節の4×4同次変換行列であり、それぞれの軸の平行移動または回転に対応する。
同次座標を用いることで、複雑な多軸機構の変換連鎖を行列の積として統一的に記述できる。

5軸加工機の変換連鎖
図3:各軸の変換行列の連鎖による TCP 算出

まとめ

同次座標とは、3次元空間を4次元空間に拡張し、本来線形でない平行移動を含む変換を、4次元空間上の線形変換として統一的に扱う手法である。

なぜ次元を増やす必要があるのか?

次元を増やす理由は、回転と平行移動を同じ線形構造の中で扱うためである。

5軸加工機では、各軸(X・Y・Z・A・C)の運動をそれぞれ同次変換行列で表し、それらの積によって工具先端位置(TCP)を算出している。
同次座標はこの変換の連鎖を、統一的かつ効率的に記述する手段である。