多軸加工と同次座標

5軸加工機の制御では、工具やワークの位置・姿勢を扱うために、座標変換が欠かせません。
そして、その変換には 4×4行列 が当たり前のように使われています。

しかし、3次元空間の回転や位置は、本来 3×3行列と3次元ベクトル で表せるはずです。
「それなのに、なぜ4×4行列なのか?」

実は、この“次元をひとつ増やす”という操作こそ、3D空間の変換を統一的に扱うための重要な仕組みにつながっています。
この記事では、回転・平行移動・姿勢ベクトルをどのように行列で扱うのかを整理しながら、なぜ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×3行列で表せますが、平行移動は加算であり線形変換ではないため、3×3行列だけでは両者を行列積で統一できません。
そこで第4成分を加えて座標を4次元に拡張すると、回転・平行移動・点と方向の区別を含む変換をすべて行列積で表現できます。

以上が、多軸加工の座標変換に4×4行列が選ばれる理由です。