ISEGORIA / 数学百科事典
ロボットアーム:運動学とヤコビ行列
ロボットアームは回転の連鎖です。順運動学は関節角をグリッパーの位置に変え、逆運動学はその逆をたどりますが、ふつう答えが複数あるか、まったくありません。両者の間の偏微分の行列であるヤコビ行列は、関節速度がどうグリッパーの速度になり、関節トルクがどう力になるかを教え、その階数が落ちるところで腕は動ける方向を一つ失います。工場の溶接ロボットから手術ロボットまで、あらゆる動作計画はこの三つの考えの上に作られています。
前提知識: 三角関数、ベクトルと行列、偏微分
予想してから操作し、各実験の練習問題で理解を確かめてください。練習問題は三つの難易度で毎回新しく生成されます。グラフは数式の図示であり、証明ではありません。
1. 点に手を伸ばす
この腕には三つの関節があります。鉛直軸のまわりに回る基部と、腕自身の鉛直面内で傾く肩と肘です。三つの角が与えられれば、グリッパーの位置は三角法で決まります。面白いのは逆向きです。基部の角で腕を目標に向けたあと、肘は肩を中心とする半径 L₂ の円と目標を中心とする半径 L₃ の円の交点になければなりません。二つの円は二回交わるか、一回接するか、交わらないかなので、一つの点には肘を上げた解と下げた解があるか、または届きません。目標をドラッグし、高さを変え、肘を切り替えてください。
計算例. \(D_1=0.5\)、\(L_2=0.6\)、\(L_3=0.5\) m、目標 \((0.6,\,0.3,\,0.7)\) のとき、\(q_1=\operatorname{atan2}(0.3,0.6)=26.6^\circ\) で、肩から目標までの距離は \(\sqrt{0.45+0.04}=0.7\) m なので \(\cos q_3=(0.49-0.36-0.25)/0.6=-0.2\)、\(q_3=\mp101.5^\circ\) です。肘を上げた解は \(q_2=61.0^\circ\) です。
注意点. 腕は理想化してあり、関節に可動範囲の制限はなく、リンクに太さもないので、表示される解のなかには実際の機械なら基部や床にぶつかるものもあります。産業用の腕は手首にさらに三つの関節を加えてグリッパーの位置だけでなく向きも決めますが、この腕は位置だけを決めます。
なぜ基部の角は肩や肘の角によらないのですか?
肩と肘は、基部の角が選んだ鉛直面の中でしかグリッパーを動かさないからです。何をしてもグリッパーはその面にとどまるので、面が目標を含む必要があり、\(q_1=\operatorname{atan2}(y,x)\)(または後ろ向きに手を回す逆の方向)に決まります。
2. ヤコビ行列とその楕円体
関節を少し動かすとグリッパーも少し動きます。ヤコビ行列 \(J\) は関節速度をグリッパーの速度に変える行列です。長さ 1 のあらゆる関節速度ベクトルを入れると、グリッパーの速度は楕円体を埋め、その軸は \(J\) の特異ベクトル、半軸の長さは特異値です。同じ行列を転置するとグリッパーの力が関節トルクになるので、力の楕円体は同じ軸をもち、長さは逆数になります。\(\det J=0\) では楕円体は円板につぶれます。腕は特異配置にあり、失われた軸の方向には動けません。
計算例. \(q_1=30^\circ\)、\(q_2=50^\circ\)、\(q_3=-80^\circ\) のとき、グリッパーは基部の軸から \(r=0.6\cos50^\circ+0.5\cos30^\circ=0.819\) m の位置にあり、\(\det J=-0.6\times0.5\times0.819\times\sin(-80^\circ)=0.242\) です。特異値は 0.929、0.819、0.318 m/s / rad/s で、最も遅い方向は最も速い方向の三倍の関節速度を必要とします。真ん中の値は \(r\) に等しく、基部を回すとグリッパーは \(r\dot q_1\) で横に動きます。
注意点. 関節速度は rad/s で測り、すべて同じ重みとしていますが、これは一つの選択です。長くて遅い肩と速い肘には異なる重みがふさわしく、楕円体の形はその選び方に依存します。力の楕円体は小さな縮尺で描き、特異配置で際限なく大きくなるところは切っています。
なぜ伸びきった腕は特異なのですか?
肘がまっすぐだと、肩の回転も肘の回転もグリッパーを腕と直角な方向に動かすだけで、腕に沿って動かすものがなくなります。その二つの関節に対する \(J\) の列が平行になるのです。それでも腕は外向きにトルクなしで強く押せます。重いものを腕を伸ばして持つときに肘を固めるのはそのためです。
3. まっすぐ動くのは難しい
グリッパーを A から B へ動かすには二つの自然な計画があります。関節角を補間すると、どの関節も滑らかに回りますが、グリッパーは曲線を描きます。グリッパーの位置を補間すると直線上を進みますが、関節は各瞬間に逆運動学が要求するとおりに動かなければならず、特異配置の近くではそれが急な速度になることがあります。ここでは二つの計画とも静止から始まり静止で終わり、同じ三次の時間スケーリングを使います。動作を選び、関節速度を見てください。
計算例. 上を越える動作は基部の軸から 0.12 m のところを通り、直線の計画は関節空間の計画の 4.1 に対して最大 13.7 rad / 単位時間の関節速度を必要とします。グリッパーが軸を横切る間に基部がおよそ \(155^\circ\) 回らなければならないからです。関節の計画は代わりに距離で払います。そのグリッパーは直線の 1.10 m に対して 1.53 m 進みます。
注意点. 時間は動作全体を単位としているので、速度は動作時間あたりの値です。rad/s にするには実際の動作時間の逆数をかけます。実際の制御器は各関節の速度と加速度も制限し、軸の近くでは何が何でも直線をたどるのではなく、動作を遅くします。
なぜ関節空間の計画にはこの問題が起きないのですか?
関節速度があらかじめ決まっているからです。\(\dot{\mathbf q}=\dot s(t)\,(\mathbf q_B-\mathbf q_A)\) で、ヤコビ行列がどうであれ単位時間あたり最大 \(1.5\,|\mathbf q_B-\mathbf q_A|\) です。その代わり、グリッパーの経路はそれらの角が生み出すとおりになり、大きく膨らんだり障害物の近くを通ったりすることがあります。