座標変換の微分
座標変換を用いた順運動学からヤコビ行列を求めるには,個々の関節パラメタを含んだ座標変換行列の微分を考えればよい. 座標変換行列の微分は,座標変換行列自身と微分を表す行列との積で表現できる.
また物体の位置姿勢計測やキャリブレーションなどで座標系の精密位置合わせを行う場合は 座標変換をそのパラメタで微分する必要がある. 座標変換行列の直接の微分や姿勢をオイラー角で表現した場合はそのままパラメタで微分することは あまり好ましくない(この辺は四元数に利点があるかな). しかし,座標系を微小に変化させる座標変換を導入して微小の範囲でパラメタ表現すれば 問題なく微分表現が可能となる.
座標軸パラメタによる座標変換の微分
座標軸ごとの座標変換の微分は,ロボットのヤコビ行列を計算するときに必要となる.
$x$軸周りの回転変換を $$ T_{\alpha}(\alpha) = \left( \begin{array}{cc} 1 & 0 & 0 & 0 \\ 0 & \mathrm{cos}\, \alpha & - \mathrm{sin}\, \alpha & 0\\ 9 & \mathrm{sin}\, \alpha & \mathrm{cos}\, \alpha & 0 \\ 0 & 0 & 0 & 1 \end{array} \right) $$ とすると,その微分は $$ \dfrac{\partial{T_{\alpha}}}{\partial{\alpha}} = \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & -\mathrm{sin}\, \alpha & - \mathrm{cos}\, \alpha & 0\\ 0 & \mathrm{cos}\, \alpha & -\mathrm{sin}\, \alpha & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) $$ $$ = \left( \begin{array}{cc} 1 & 0 & 0 & 0 \\ 0 & \mathrm{cos}\, \alpha & - \mathrm{sin}\, \alpha & 0\\ 9 & \mathrm{sin}\, \alpha & \mathrm{cos}\, \alpha & 0 \\ 0 & 0 & 0 & 1 \end{array} \right) \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) = T_{\alpha} \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) $$ このとき並進部に定数が入っていても微分すれば消えるので結果は同じである.
$x$軸方向の並進変換を $$ T_{x}(x) = \left( \begin{array}{cc} A & \begin{array}{c} x \\ y \\ z \end{array} \\ \begin{array}{c} 0 & 0 & 0 \end{array} & 1 \end{array} \right) $$ とするとその微分は
$$ \dfrac{\partial{T_{x}}}{\partial{x}} = \left( \begin{array}{cc} 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) $$ $x$方向の並進以外の定数は回転も含めすべて消えてしまう.
以上の議論は各軸の並進,回転について同様に得られる.すなわち,
$$ \dfrac{\partial{T_{\beta}}}{\partial{\beta}} = T_{\beta} \left( \begin{array}{cc} 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\ -1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) , \qquad \dfrac{\partial{T_{\gamma}}}{\partial{\gamma}} = T_{\gamma} \left( \begin{array}{cc} 0 & -1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) $$ $$ \dfrac{\partial{T_{y}}}{\partial{y}} = \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) , \qquad \dfrac{\partial{T_{z}}}{\partial{z}} = \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \end{array} \right) $$
微小座標変換パラメタの微分
座標変換パラメタでの微分は,ガウス・ニュートン法などの最小二乗法を用いて 物体の位置計測やキャリブレーションを精密に行うときに必要となる.
一般の座標変換 $$ T_0 $$ で表された座標系を, 座標変換行列 $$ T(\boldsymbol{q})=T_\mathrm{xyz}(x,y,z)T_\alpha(\alpha)T_\beta(\beta)T_\gamma(\gamma) $$ $$ \boldsymbol{q} = (x,y,z,\alpha,\beta,\gamma)^\mathrm{T} $$ を用いて並進,回転移動させることを考える.
すなわち $$ T_0T(\boldsymbol{q}) $$ とすることで,座標系の微小移動を表現する. このように微小移動を切り出すことにより 回転に関しても均質で整合性の良い 微分演算が可能となる.
$\alpha$,$\beta$,$\gamma$は, いわゆるオイラー角の$\alpha\beta\gamma$表現である. しかし,$\boldsymbol{0}$周りの微少量,微分を考える場合は回転ベクトルと同等と考えてよい (参考 ).
この$T(\boldsymbol{q})$を$\boldsymbol{q}=\boldsymbol{0}$周りで微分すると,
$$ \dfrac{\partial{T_{x}}}{\partial{x}} = \left( \begin{array}{cc} 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) , \qquad \dfrac{\partial{T_{y}}}{\partial{y}} = \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) , \qquad \dfrac{\partial{T_{z}}}{\partial{z}} = \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \end{array} \right) $$
$$ \dfrac{\partial{T_{\alpha}}}{\partial{\alpha}} = \left( \begin{array}{cc} 0 & 0 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) , \qquad \dfrac{\partial{T_{\beta}}}{\partial{\beta}} = \left( \begin{array}{cc} 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\ -1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) , \qquad \dfrac{\partial{T_{\gamma}}}{\partial{\gamma}} = \left( \begin{array}{cc} 0 & -1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) $$
この結果は,座標変換パラメタでの微分とほとんど同じだがいくつか注意が必要である.
回転に関しては微小部分だけ切り出しているためシンプルになっている. 微小座標変換の対象となっている座標系をかけると形の上では同じに見える. しかし,座標変換パラメタの方は各一軸のみの回転しかあつかっていないので 複数軸周りの回転をまとめて扱うと異なる結果になる.
一方,並進に関しては微小座標変換の対象となっている座標系をかけると その方向は対象座標系の$\boldsymbol{e}_\mathrm{i}$となり, 座標軸パラメタのものとは異なる方向となる.