ペンローズがノーベル賞を受賞したので、ロボットの制御にも使われる、ムーア•ペンローズの擬似逆行列の話を書いておく。用語はあまり統一されておらず、擬似逆行列(pseudo inverse)ではなく一般化逆行列(generalized inverse)と呼んだり,ムーア•ペンローズの逆行列(Moore-Penrose inverse)を略してMP逆行列(M-P inverse)と呼ぶ場合もある。
擬似逆行列については,↓の解説がわかりやすい。
以下は,ロボット工学に関連するところのみ紹介する。
広義の擬似逆行列は、ある行列に対して、
を満たすのことを指す。
広義の擬似逆行列は、一通りではなく、無数にある。ムーア•ペンローズの擬似逆行列もそのうちの一つなのだが、ロボット工学では、ムーア•ペンローズの擬似逆行列のことを単に擬似逆行列と呼ぶ場合が多い。例えば,ロボット工学の教科書として有名な吉川の「ロボット制御基礎論」
で、「擬似逆行列は一意」とあるが、これはムーア•ペンローズの擬似逆行列のことを指している。ムーア•ペンローズの擬似逆行列は一意に決まる。
ロボット工学では、擬似逆行列は,直交座標系と関節座標系の変換に使われる。直交座標系は,XYZの並進3自由度+姿勢角3自由度の計6自由度なので,関節の数も6個なら普通の逆行列で良いが、7個以上だと擬似逆行列を用いることになる。制御したい自由度より関節の数が多いロボットは「冗長ロボット」と呼ばれる。
関節角度の微小変化量から直交座標系の手先位置の微小変化量を求める式は,ヤコビ行列を用いて
‥(1)
と表される。冗長ロボットでは,ヤコビ行列は横長の行列となる。
この場合のムーア•ペンローズの擬似逆行列(狭義の擬似逆行列)は
であり,
として関節角度の微小変化量を求めると,手先位置の微小変化量がとなるようなのうち,各要素の2乗和が最小になるようなが求められることが知られている。これはロボットにとっては無理のない姿勢になりやすいので特別な事情がなければとりあえずこれを使っておけばよい。
広義の擬似逆行列を用いると,
- 直交座標系の手先位置の微小変化量から関節角度の微小変化量を求める一般式は
- 直交座標系の手先力から関節トルクを求める一般式は
‥(2)
で表される。やは任意(何でも成り立つ)なので、第2条件を付けられる。を零空間トルク(null space torque)と呼ぶ。
動的に無矛盾な疑似逆行列(dynamically consistent generalized inverse)
最後に,Khatib(1990)が提案した「動的に無矛盾な疑似逆行列」↓
http://ai.stanford.edu/manips/publications/pdfs/Khatib_1990_2.pdf
について,あまり日本語の情報が見当たらないので紹介しておく。
結論から書くと,動的に無矛盾な疑似逆行列は,
で表され,この擬似逆行列を使って(2)式で関節トルクを求めると,零空間トルクが力だけでなく加速度にも影響しないようにできる。ただし,は関節座標での慣性行列,は直交座標での慣性行列を表す。
この導出を示す。
関節座標系でのロボットの運動方程式は,以下の式で表される。
左からをかけて
これを代入して
(2)式を代入して
動的に無矛盾であるためには,最後の項が常に0となる必要があるので
‥(3)
直交座標での慣性行列と関節座標での慣性行列とは,以下の関係がある。(これはちょっと調べれば情報がたくさんあるので導出は省略)
したがって,(3)式は以下のように書ける。
慣性行列は対称行列なので転置はなくてもよい。