マニピュレータ入門の入門

この記事は rogy Advent Calender 2022 の21日目の記事です。
情報の正確性には細心の注意を払っておりますが、万が一、間違いや不備がありましたらご指摘をお願いします。

導入

世界の皆様、ごきげんよう。私が来ましたよ。20-Aoです。Twitterの名前はA-f(まっする)です。
今回のアドベントカレンダーの主催者は私なので、全く何も記事を書かないというのはよろしくないかと思い、急遽書くことになりました。
今回は理論系の記事でいきたいと思います。決して紹介できるような成果物がないとかじゃないですからね!決してねっ!!!!

今回は自分の勉強も兼ねてマニピュレータ、いわゆるロボットアームの制御の基礎について軽く紹介しようと思いました。が、あまりにも長くなりそうなので、今回はマニピュレータの制御理論を学ぶにあたって必要な情報をサラッと紹介します。
実機については15の先輩方のROBO-剣の記事に詳しく書いてありますので、是非併せてご覧ください。
記事は以下の3つです。ちなみに、先輩方は第11回 ROBO-剣で優勝されています。(すごい!)
【Gano剣】第11回 ROBO-剣(アーム型) 参加報告 – 機構編 –
【Gano剣】第11回 ROBO-剣(アーム型) 参加報告 – 画像処理編 –
【Gano剣】第11回 ROBO-剣(アーム型) 参加報告 – 制御編 –

参考文献

以下の書籍を参考にさせていただいてます。

  • 吉川恒夫, ロボット制御基礎論, コロナ社
  • 細田耕, 株式会社アールティ, 実践ロボット制御, オーム社
  • Mark W. Spong, Seth Hutchinson, M. Vidyasagar, Robot Dynamics and Control, Willey

また、いくつかの講義資料(非公開)も参考にしています。

順運動学と逆運動学

まずは簡単な2次元平面内を動く2リンクマニピュレータを考えてみましょう。

赤いリンクをリンク1その長さを l_1 ,青いリンクをリンク2,その長さを l_2 とします。また、白い二重丸はサーボモータがあることを示しています。
2つのサーボモータを制御してマニピュレータの手先の黒い丸の座標,手先座標 (x,y) を任意の位置に動かすことを目標とします。
サーボモータ角度を下からそれぞれ \theta,\phi とします。

サーボモータ(関節)の角度 (\theta,\phi) から手先座標 (x,y) を求めることを順運動学,手先座標 (x,y) から,サーボモータ(関節)の角度 (\theta,\phi) を求めることを逆運動学といいます。
今回はかなり簡単なモデルなので,幾何学的関係から逆運動学が解析的に解けますが,多リンクになると解析的に解けなくなったり,手先の自由度よりもサーボモータ(関節)の数が多い,冗長マニピュレータなどはそもそも逆運動学が解けなかったりします。

独立な座標と完全な座標

ここで,サーボモータ(以下,関節)の角度をどのように設定するのが望ましいか考えてみます。
以下の二つの変数の取り方を例に考えてみます。

図1:点線はリンク1の延長線です

図2:点線はx軸と平行です

おそらく,多くの方は \theta の取り方については異論はないでしょう。それでは, \phi はどうでしょう?

結論としては,どちらでもよいのですが,図1の取り方が望ましいです。これから解説していきます。

(\theta,\phi) のように質点や剛体の状態を決める状態量(ここでは角度)を一般化座標と言います。先ほど示した通り,一般化座標の取り方は一意ではありません(いくつかの組み合わせが考えられるということです)。与えられた一般化座標から質点や剛体の状態が一意に決定できるとき,その一般化座標は完全であるといいます。逆に,与えられた一般化座標から状態を一意に決められないとき,その一般化座標は完全ではないといいます。
図1,図2の取り方はすでに分かっている l_1, l_2 と併せればマニピュレータの状態が一意に決まり,完全です。この意味ではどちらの取り方でも問題ない,というわけです。

次に,図1,2をもう一度見てください。 \theta のみを動かしたときの \phi の値はどのようになるでしょうか。図1は \phi が同じ角度を保ったまま動くのに対して,図2は \theta の動きに影響を受けて変化していきます。このように,ほかの要素に依存した要素を持つ一般化座標は独立ではないといいます。逆に,どの要素も相互に影響を与えないような一般化座標を独立であるといいます。
今回の例では,図2の変数の取り方をしてしまうと,根元から二つ目の関節を動かすサーボモータは動いていない=角度は変化していない,のに根本のサーボモータを動かすと \phi が変動してしまい,非常に紛らわしくなります。

よって,完全かつ独立である図1の取り方が望ましい,ということになります。

懺悔

執筆者が疲れてきてしまったので今回はここまでで勘弁してください。Advent Calendar 2022期間中に書き上げられるかはわかりませんが、座標変換、同次変換と同次変換行列、ヤコビ行列、辺りまでは書くつもり(自分の復習も兼ねて)だったので、今後ぼちぼちアップしていきたいと思います。気長にお待ちいただけると幸いです。

次回は1日挟んで、Aqua研の20-Yoくんの「音波の分析」記事です。おぉー!私も楽しみです。

それでは皆様ごきげんよう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です