ogulink−四節リンク軌跡計算専用Matlabスクリプト
ogulinkは4節リンク軌跡計算専用Matlabスクリプト(プログラム)です。 このスクリプトは第3回かわさきロボットコンテスト参加予定マシン 「五里霧中」の設計過程で必要となり、アームの設計に使用されました。 その後数度改変されて「らぴすらずり」「らぴすらずりIII」「らぴすらずりIX」 のアーム設計に再使用されました。
開発の経緯
剛体の棒を回転または平行運動ができるように接続したものをリンク機構といいますが、 「五里霧中/らぴすらずり」の製作過程で、相手を攻撃するエッジを まっすぐに相手マシンの所へ運搬するリンク機構が要求されました。

このようにリンクの先端、あるいは一部分が直線運動をする機構を 直動機構といい、機構学の本に代表的な物が掲載されています。 しかし既存の直動機構は複雑すぎて「らぴすらずり」に搭載する事ができません。 そこで僕は4節リンクに注目しました。 これは文字どおり4本のリンク棒からなる最も簡単な機構で、 各リンク棒の長さを変更する事で さまざまな軌跡をリンク先端に描かせる事ができます (かわさきロボットの足として多用されるチェビシェフ近似直動機構も4節リンクの一種です)。

左図の辺DA、AB、BC、CDEが4本のリンク棒からなる四節リンク機構です。 ABは固定されています(例えばABが胴体にネジどめされ、 点Eはマシンの手の先、あるいは足の先と考えればいいでしょう)。

各リンク棒は接続されていて軸を中心に回転する事ができるようになっています。

ここでリンクDAが点Aを中心に回転したときに点Eはある動きをしますが、 この動きを使ってICBEを相手マシンの所まで運搬しようというのが僕の着想でした。

しかし既に使いやすい機構が存在する足回りの4節リンクに対して、 事実上ゼロから始めなければならなかった腕の4節リンク機構には 別の問題が発生しました。
それは調べなければならないリンクの種類が多すぎるという事です。

図1において、固定されているリンクABの長さを1とし、 角度ζは一定として、BC,CD,DA,DEについてのみそれぞれ10通りの長さを調べるとしても、 調べる4節リンク機構の種類は10×10×10×10=10000通りとなります。
工作用紙を使うなどしてリンク機構の模型を作り、 リンク棒の動作を確かめていたら、時間ばかりかかってしまう事は明らかでした。

そこで各リンク棒の長さを与えると、 リンク機構がどのような動きをするかを計算するMatlabスクリプト −プログラムをまず作る事としました。

スクリプトの内容
具体的な計算手順は以下のようになります。

点A、点Bは固定点ですから位置を求める必要はありません。 全ての計算はここからスタートする事になります。

次に点Dの位置を決定します。 これは∠DAx=Φとすれば(DA×cosΦ、DA×sinΦ)として求められます。

点Dの位置が決まったので点Bおよび点Dから それぞれ半径BC、CDの円をひけばその交点として点Cが求められます。

実際の計算では円の連立方程式を使う方法と、 ロボットアームの解析の初歩の練習問題としてよく使われる 2自由度SCALA型ロボットアームの逆運動学の問題として解く方法の二つがあります。 ogulinkでは後者を採用しています。

最後に点Eを求める事になります。 点Eは辺CDを角度ζだけ傾けて延ばした距離DEの位置に 存在しますので複雑な計算もなく求める事ができます。

これはある角度Φに対する点Eですから、 Φに別の角度を入れて点Eを求める事を繰り返します。 するとΦの変化−−つまり点Aを中心としたリンクDAの回転に応じた 点Eの軌跡が得られるわけです。

得られた成果
ogulinkはこのようにして点Eの軌跡を計算してくれます。 そこで僕はリンクDA、BC、CD、DEの長さを変えながら 点Eの軌跡を求めるスクリプトを書きました。 最も単純な「総当たり法」と言われる方式です。 このような方法でさえ、i486DX4-75MHzを使って 約1万通りのリンク機構を2日間で調べる事ができました。 現在ではCPUの速度が向上しているために、 1日もあれば3000万通りのリンクの評価が可能です。

しかし1万通りの点Eの軌跡を比較する事は人間には不可能です。 そこで「らぴすらずり」の腕に求められている条件を改めて考え直し、 比較もプログラムが自動で行うようにしました。

まず点Eの軌跡(左図の太い青の鎖線)から、 回帰計算によって直線(赤線)を導き出します。 次にこの直線とそれぞれの点E(E1、E2、E3……)との距離を調べます。 そして得られた距離を全て合計します(D1+D2+D3+…)。

この値が小さければそれだけ点Eが直線の近くに存在している −−つまり この軌跡が直線に近い事が分かるわけです。
この方式でまず1万通りのリンク機構に順番をつけた後、 上位の結果を得たリンク機構を選び、 改めて点Eの軌跡を調べて僕が最終的決定を下しました。

こうして決定されたリンク機構がどのような動作をするかは、 「らぴすらずり」のページを参照してください。

開発の意義
ogulinkスクリプトは全く目新しい技術を提供したものではなく、 計算手法自体は既に確立されているものを流用したに過ぎず、 何ら優れた技術ではありません。 リンク探査が自動化できたのは「らぴすらずり」の リンクに対する要求が単純−−「ともかくまっすぐ進めばよい」−−だった事によります。

むしろogulink開発の意義は、 こういうスクリプトを作るのは非常に簡単である事を示した点にあります。 ささやかな計算機とちょっとしたプログラミング能力さえあれば 工作用紙と画鋲と方眼紙をリンク設計の過程から取り去り、 はるかに速いテンポで独自のリンク軌跡の検討が行えるのです。 さらにogulinkは中上君製作の 多節リンク汎用解析システム「LCL」 の開発の契機となるという役割を果たしました。 単品生産のためのスクリプトとしては、 まずまずの役割を演ずる事ができたといえるのではないでしょうか。


異常設計事業部へ
ラグオ電工トップページへ