(2002.03.03再編集) | |
(2002.03.03再編集) | |
(2003.11.01更新) | |
(2003.11.01更新) |
そもそもロボットアームを作りたくなったのは、「初めて学ぶ 基礎ロボット工学」を読んだのがきっかけでした。この本は吉野さんが Web ページで紹介されていたので買ったのですが、やさしく書かれていて、とにかく何かを作りたくなる本でした。
特に、逆運動学によりロボットアームの先端位置から各関節の角度を計算する部分にソソラレてしまいました。いわゆる制御理論本では感じにくい、本に書かれている理論式と実際のコーディングとの融合がズバッと感じられたのです。丁度 RC サーボを使って角度制御してみたいと思っていた所でした。計算により得られた角度から RC サーボへの角度指令パルス幅への変換は簡単なので、ロボットアームなら比較的楽に実現できるだろうと思いました。
ロボットアームには関節軸の組み合わせ方でいくつかの方式があるようです。今後の発展も考え、一般的な多関節型ロボットアームを作ることにします。またロボットアームといえば先端にハンドのようなものが付いているイメージがあるのですが、今回は RC サーボを扱う最初の取り組みでもあるので、「先端軌跡を自由に制御する」を目標とし、3自由度のみのロボットアームを作成します。
RC サーボを動かしてみる
まずは RC サーボ単体を動かしてみます。三菱の M16C/62 を使った OAKS16 マイコンボードで遊んでみたかったので、これに RC サーボをつなげてみることにします。RC サーボは、あるパルス幅を持つ PWM 信号を与えると、パルス幅に応じた角度に出力軸を回転させます。つまり、このパルス幅を OAKS16 で変えることで、ロボットアームの関節角度を指定できることになります。
パルス幅を簡単に変化させるために、とりあえず OAKS16 の内蔵タイマを使ってみることにしました。信号出力可能なタイマ A を、角度分解能を考えて 16bit モードで動かすことにします。16bit タイマでは PWM 周期が分周比設定によって決まるため、自由度が低いのが難点です。4ms 周期か 32ms 周期のどちらかになってしまうのですが、4ms 周期では RC サーボが発振してしまったため、32ms 周期にします。
早速タイマ A の出力と 5V / GND の3本を RC サーボにつないで動かしてみました。サーボは Futaba S3101 を使いました。出力パルス幅を徐々に変えて有効なパルス幅の範囲を調べてみると、大体 16bit のタイマ値で 0x0400-0x1400 あたりが有効範囲となりました。私の手持ちの RC サーボでは、パルス幅と角度の関係に若干個体差が見受けられました。これに対しては各サーボごとにパラメータを変えて調整することにします。
メカの作成
メカの作成は苦手なので色々と問題があります。第1の問題は、アーム本体を構成する素材に何を使うかです。本当はアルミ板等を使いたいところなのですが、経験値が足りないので、気軽に使えるタミヤのユニバーサルアームセットを使うことにしました。このユニバーサルアームでジュラコンスペーサを挟み、平べったいアーム本体を作ります。
第2の問題は関節軸の駆動をどうするかです。RC サーボは回転軸が片側にしかないため、サーボ回転軸をそのまま関節軸とするためには、もう片方の軸を自作する必要があります。リンク機構を用いてサーボ出力軸と関節軸を分ける方法が良いのでしょうが、これまた経験値が足りないので、サーボ筐体に穴を空けてネジを内側から通して軸とし、サーボ回転軸をそのまま関節軸にしてみました。
第3の問題は RC サーボのアーム本体への固定方法です。RC サーボ筐体のネジ止め用穴は中央に近い部分にあるので、そのままではどこにも固定できません。またサーボ出力軸を関節軸としたため、サーボ両端での固定も難しい状況です。結局ジュラコンスペーサでアーム本体と片側だけ固定する方法で妥協しました。
アームの台座部分には格安バイスを使い、サーボをバイスで挟んでみました。バイス底面の吸盤で机の上への固定もバッチリ!と思っていたのですが、さすが格安バイス、しばらくするとすぐに吸盤が外れてしまいました。まあ台座部分の工作が一切省けたと思えば、仕方の無いことです。
理想は手のひらの上で動くロボットアームなのですが、まだそこまでのスキルはありません。現状ロボットアームの大きさを決めているのは RC サーボです。そこで、フタバ産業で見つけて、前から気になっていた 5g サーボを使ってみることにしました。
サーボ軸の反対側に、ケーブルを取り出す穴があいているので、ここにそのままネジを入れました。ケーブルは筐体横に穴を新設して、そこから取り出すように加工しました。ケーブルの取り回しを変えるため、制御基板から一度ケーブルを外す時がちょっとコワかったです。
ロボットアーム基部のサーボは、バイスに挟むだけなので大きさは関係ありません。そこで安価な標準サイズのサーボを使いました。
もっと自分のイメージどおりに!
自分の中ではロボットアームの本体は筒型というイメージがあります。考えた末に、外径 22mm のポリカーボネードパイプを購入し、これを本体とすることにしました。問題はサーボの固定方法です。1号機と同じくジュラコンスペーサを使います。ボトルシップのように、スペーサを取り付けたサーボをパイプ内に押し込み、外側からネジ止めします。場所の問題で、今回は片側のみ固定となります。これだけだとぐらぐらしてしまうので、更にネジで両側から押さえつけて動かないようにして見ました。
サーボホーンとの接続部分は、パイプの先端を細く加工しネジ止めとしました。かなり強度的にはつらいです。小型サーボ付属のホーンが柔らかな素材なのも相まって、動かすとかなり振動が大きいです。見てくれは良くなったのですが、キビキビとした動きがなくなり、ちょっとガッカリです。
ロボットアームを形にするための障壁は、メカ音痴の自分には高いものばかりです。アーム本体の素材は何が良いのか?RC サーボの固定方法は?反対軸はネジでイイのか?疑問は尽きません。
そんな時にイトーレイネツから ServoCreation が販売開始されました。これを使えば反対軸の問題もクリアされるし、ブラケット自体をアーム本体とすればメカ加工そのものから逃げられそうです。販売開始直ぐにメールで発注をしてしまいました。
サーボモータは PDS-2144FET で固めるのがセオリなのでしょうけど、残念ながら持っていませんでした。代わりに手持ちの PS-2174FET をかき集め、あとは PS-401 を使いました。穴位置は多少違いましたが、とりあえずブラケットに固定できました。
小型モノ好きな自分を再認識
逃げちゃダメだ。自分の求める形を追い求めるならばメカ加工は避けられない。という訳でヤッパリアルミ板加工に走ることにしました。そう思うようになったのは Hot Bodies マイクロサーボのおかげです。小型サーボながらサーボホーンは JR やサンワと互換性があります。これならサーボホーンの加工も失敗を恐れずガンガンやれます。
アルミ板の加工では先人の知恵に倣い、シールに原寸で展開図を印刷し、これをアルミ板に貼り付けて切断、穴あけを行いました。この方法のおかげで作業がグンと楽になりました。特に穴あけ位置を決めるために縦横イロイロと測ってケガいていた時間が無くなったのが大きいです。シールは試行錯誤の末、フロッピーラベルを使うことにしました。
仏作って魂入れず
使用している HB マイクロサーボはトルクが小さいのでなるべく軽く作りたいです。という訳でアルミ板は 0.5mm 厚のものを用い、縁を折り曲げて強度を増してみました。また軸受けには樹脂ブッシュを入れました。そして今回初めてアームの先にハンドをつけてみました。これでホントの意味でのアームに到達したのかもしれません。
大きさにはある程度満足できるものが出来ましたが、動かして見るとヤッパリ強度の点で問題がありました。0.5mm 厚ではこのサイズは苦しいですかねえ。そして一番の難点は制御でしょうか。何も考えずに動かすと、振動がスゴイことになってしまいました。動かしていて感じたのはサーボがプルプルするポイントとそうでないポイントがあることです。これらのポイントを使えば振動を抑制することも出来るのかも、と思いました。
結局マトモに動かすことなく終わってしまったアームとなりましたが、メカ製作の経験値を積むことが出来ました。次はこの経験を活かして、実際にモノが掴めるアームに仕立て上げたいと思います。