ロボットアームの関節をどれだけ回すと手先がどこへ行くのか、そして目的の場所へ手先を持っていくには各関節を何度にすればよいのか。前者を求めるのが順運動学、後者を求めるのが逆運動学です。関節角と手先位置という2つの見方を行き来する手続きで、アームを扱ううえでの土台になります。
このシリーズでは、平面上のアームを動かせる図で、その行き来を目で追います。このページで扱うのは、リンク2本の平面アーム(2R)の順運動と逆運動、そしてリンクを1本足した平面3リンク(3R)で手先の向きまで指定する入門です。届く範囲の形や、姿勢が潰れる場所については、(2)作業領域・特異点・産業ロボへの拡張で扱います。
なお、以下の図はいずれも仕組みを見るための簡略モデルです。特定メーカーの産業用ロボットを再現したものではなく、摩擦・慣性・実機の関節可動域・計測ノイズは含めていません。各節の「本記事の図では」に、その図固有の約束をまとめてあります。
順運動学(図1)
運動学の原理
関節角 θ₁, θ₂ が決まれば、手先の位置 (x, y) は一通りに決まります。第1リンクは基点から θ₁ の向きへ長さ L₁ だけ伸び、第2リンクはそこからさらに θ₂ だけ折れた向き、つまり全体では θ₁+θ₂ の向きへ長さ L₂ だけ伸びます。手先の位置は、この2本のベクトルを足したものです。
ここで大切なのは、答えが必ず1つに決まることです。関節角を与えれば手先は一意に定まり、迷う余地がありません。この素直さは順運動学の側だけの性質で、次の逆運動学では事情が変わります。
本記事の図では
左がアーム、右が作業平面(方眼)です。緑の矢印はアーム → 方眼を指し、関節角のほうが原因で手先位置が結果である、という順運動の向きを表します。左右の青い点と、図の下に並ぶ代入数値は、すべて同じ状態 (θ₁, θ₂, x, y) を映しています。肘か手先をドラッグすると、3つが同時に動きます。
| 定義 | L₁=L₂=1、基点は原点。破線円は最大リーチ L₁+L₂=2(内側の円は |L₁−L₂|=0 のため現れない)。 |
|---|---|
| 色 | 灰=基点、橙=肘、青=手先。水色の線は手先の軌跡(「軌跡」オン時のみ。既定はオフ)。 |
| 左の読み取り | 円弧と数値が θ₁(+x 軸から第1リンクまで)と θ₂(肘での折れ角)。 |
| 右の読み取り | 手先から X 軸・Y 軸へ下ろした垂線と、軸上の x= y= 表示。 |
| 操作 | 肘または手先をドラッグ。操作できる点はホバーすると薄く広がります。「軌跡」でオン/オフ。 |
| やっていないこと | 摩擦・慣性・実機の関節可動域・計測ノイズは入れていません。 |
逆運動学(図2)
運動学の原理
今度は逆に、届かせたい位置 (x, y) のほうが先にあり、そこへ手先を置くための関節角を求めます。基点・肘・手先を頂点とする三角形を考えると、3辺の長さは L₁, L₂ と基点から目標までの距離で分かっているので、余弦定理から肘の折れ角 θ₂ が出ます。θ₂ が決まれば、目標の方位角から肘のぶんの補正を引いて θ₁ が求まります。
θ₂ の式に付いた ± が、逆運動学の性質をそのまま表しています。同じ位置に手先を置く姿勢は一般に2つあり、肘が上に張り出す形と下に張り出す形のどちらでもよいのです。順運動学が一意だったのに対し、逆運動学では「どちらの姿勢を選ぶか」という判断が必ず付いてきます。実機で経路を組み立てるときに、この選択が問題になります。
本記事の図では
レイアウトは図1と同じですが、緑の矢印が方眼 → アームへ反転します。手先を動かすと、それに合わせて θ₁, θ₂ が計算し直される流れを追ってください。「肘上」「肘下」のボタンで、手先を同じ場所に置いたまま姿勢だけを切り替えられます。
| 定義 | 図1と同じ L₁=L₂=1。到達円の外へは置けず、円周上へ押し戻されます。 |
|---|---|
| 2つの解 | 「肘上/肘下」で、同じ (x, y) に対する別の姿勢へ切り替わります。 |
| 操作 | 手先ドラッグが主(肘も動かせます)。「軌跡」オン/オフ(既定はオフ)。 |
| やっていないこと | 経路計画、速度の制限、特異点付近の詳しい扱い(続きは(2)で)。 |
平面3リンクへ(図3)
運動学の原理
平面のままリンクを1本足した3Rでは、手先の位置 (x, y) に加えて向き φ まで指定できるようになります。平面上の向きは各関節角の総和で決まり、φ = θ₁+θ₂+θ₃ です。物を決まった角度で置きたい、工具を面に垂直に当てたい、といった要求はこの向きの指定にあたります。
逆運動を解くときは、いきなり3つの角を求めにいかず、次の3段に分けます。
- 向き φ から手首の位置を割り出す。手先から φ と逆向きに、第3リンクの長さ L₃ だけ戻った点が手首です。
- その手首 (xw, yw) を、リンク1–2だけの2R逆運動として解く(ここで肘上/肘下の2解が出ます)。
- 残りを θ₃ = φ − θ₁ − θ₂ で埋める。
つまり、向きを指定したぶんだけ手首の位置が確定し、そこから先は図2で見た2Rの問題に戻ります。この「手首をいったん切り離してから残りを解く」という分け方は、空間のアームでもよく使われる考え方です。
本記事の図では
平面3Rの最小構成です。手先から出ている青い棒が向きハンドルで、これを回すと φ が変わります。手先そのものをドラッグしたときは、φ を保ったまま位置だけを解き直します。2Rで掴んだ「角と座標の行き来」に、向きが1つ足された拡張として読んでください。
| 定義 | L₁=L₂=L₃=2/3(最大リーチは 2 のまま)。φ = θ₁+θ₂+θ₃。 |
|---|---|
| 色 | 灰=基点、黄橙=第1関節、赤橙=第2関節、青=手先。手先から出る青い棒が向きハンドル。 |
| 右の読み取り | 手先位置の垂線と x= y=。向きハンドルの先の点からも φ を操作できます。 |
| 操作 | 向きハンドルで φ。手先ドラッグは φ を保った位置の逆運動。第2関節は平面上を自由に動かせ、第1関節も連動します。 |
| やっていないこと | 冗長な解を連続的に選び続ける処理、6軸のロールなどの姿勢。 |
産業用6軸への拡張
運動学の原理
ここまでの平面2Rは位置 (x, y) と関節角 (θ₁, θ₂) の対応、平面3Rはそこに向き φ を足した最小構成でした。産業用の6軸アームはおおむね位置3+姿勢3 に近い自由度を持ち、解析的に解けるか数値で解くか、解が複数あるときにどれを選ぶか、といった扱いが一気に増えます。
それでも読み方の骨格は変わりません。順運動は角から手先へ、逆運動は手先から角へという向きを保ったまま、自由度と解の枝が増えていくと考えると整理しやすくなります。図3で見た「手首をいったん戻してから残りを2Rで解く」という分解も、空間のアームで繰り返し現れる原型です。
本記事では
6軸の動く図はこのシリーズには置きません。計算量も操作画面も平面の図とは別のスケールになるためです。代わりに、2Rと3Rで得た感覚を次のページへ持ち越します。次に見るのは次の3点です。
- 作業領域 … 届く場所と届かない場所が、どういう形の集合になるか
- 特異点 … 腕が伸びきるなど、2つあった解が重なって潰れる境界
- 向きを課したときの狭まり … 位置だけなら届く場所でも、向きまで指定すると届かなくなる
まとめ
関節角から手先を求める順運動学は、ベクトルを足すだけの一意な計算でした。逆に手先から関節角を求める逆運動学は、余弦定理と atan2 で解ける一方、肘上と肘下という2つの姿勢が同時に成り立ちます。順方向は素直で逆方向は分岐する、というこの非対称が、平面2リンクという最小の題材にすでに現れています。
リンクを1本足した3Rでは、位置に加えて向き φ を指定できるようになり、逆運動は「手首を戻す」「2Rで解く」「残りを埋める」の3段に分かれました。向きを1つ足しただけで手続きが階層化するところが、多軸アームへ進む前の見どころです。
続く(2)作業領域・特異点・産業ロボへの拡張では、そもそもどこまで届くのか、2つの解が重なって潰れるのはどこか、向きを課すと届く範囲がどれだけ狭まるのかを、同じ平面アームの図で追いかけます。
よくある質問
Q1. 逆運動学の解は、いつでも2つあるのですか?
A. 平面2Rでは一般に2つですが、例外があります。腕が完全に伸びきる位置(到達円の周上)では θ₂ が 0 になり、肘上と肘下が同じ姿勢に重なって1つになります。逆に、L₁ と L₂ が等しくない場合に基点のごく近くを狙うと、届かないために解が0個になります。この「解の個数が変わる境界」は(2)の主題です。
Q2. θ₁ を求めるのに atan2 を使うのはなぜですか?
A. 通常の arctan は比 y/x しか受け取らないため、(x, y) と (−x, −y) を区別できず、答えが半回転ずれることがあります。atan2 は x と y を別々に受け取り、符号の組み合わせから象限を判断します。アームは全方位を向くので、この区別が必要になります。
Q3. 図で手先を到達円の外へ引っぱると、どうなりますか?
A. 円周上へ押し戻されます。この図では届かない指令をエラーとして止めるのではなく、いちばん近い到達点へ丸める作りにしてあります。実機の制御では、届かない指令をどう扱うかは設計次第で、そのまま拒否する場合もあります。
Q4. 3Rの図で、手先を動かしても向きが変わらないのはなぜですか?
A. 手先のドラッグは φ を保ったままの位置の逆運動として解いているためです。向きを変えたいときは、手先から出ている青い向きハンドルのほうを操作してください。位置と向きを別々に指定できることが、リンクを1本足して得られたものです。
Q5. この図は実際の産業用ロボットと同じ動きですか?
A. 違います。運動学の対応関係だけを取り出した簡略モデルで、摩擦・慣性・実機の関節可動域・計測ノイズは含めていません。実機では関節ごとに回せる範囲の上限があり、計算上は解けても姿勢が取れないことがあります。各節の「本記事の図では」に、この図が何を計算していないかを明記しています。

コメントを残す