2足歩行ロボットをはじめとした各種のロボットの開発が企業やアマチュア問わず、大変活発です。ここではロボットの開発を部品レベルから行い、その開発過程で得られた知識やノウハウの共有を目指します。
レゴのマインドストームやXRCなど様々なロボットキットに触れていたり、Robo-1などの活動を見るうちに自分でも一からロボットを開発したくなりました。実際にロボットを開発されている方もWEBなどで情報発信・公開をされていて、非常に参考になります。自分自身でもロボットを開発しようと決意したので、試行錯誤や実験結果、各種の考察をまとめて行こうと思い、本ページを開設しました。
どんなロボットを作るか、考えてみます。最終的には人型の2足歩行のロボットがターゲットです。現在のロボットはラジコン用サーボモータを発展させたロボット用サーボモータによる駆動が一般的になってきましたので、ここでもこれらのサーボモータを利用したロボットを作ることにします。人型ロボット以外の形状については、今後色々と考えていくことにします。
コントローラは実際にロボット動かす頭脳であり、心臓部です。サーボモータのコントロール以外にも様々な働きをします。例を挙げると、各種センサからの信号取り込みやモータ以外のアクチュエータの動作などです。仕様を考えてみます。
コントローラの中核部品としてマイコン(マイクロコントローラ)があります。様々な品種が製品化されており、選択に苦労します。ここではコントローラに必要な条件を列記することにより、数多あるマイコンから機種を絞り込んでいきます。
様々なタスクを走らせて、みて処理速度的に問題が無いかどうか?特にロボットの制御は一定時間以内に処理が終了しないと、システムが成立しないリアルタイムシステム(歩行を例に取ると、右足を出して左足を出すのに倒れた後に足を動かしても意味がありません。)ですから、処理速度には余裕を持たせたいです。
これらの処理をチップ内のメモリに搭載できるかどうか?外付けのメモリだと、消費電力やスペースの面から搭載が不利になります。
プログラムを開発する上で開発環境の充実は必須です。また、高価な開発環境でも参入の敷居を高めてしまいますから、GNUなどのフリーの環境で構築することも重要です。
ロボットは無線でコントロールされます。また、自由に動き回ることが要求されるので、電池駆動になります。低消費電力化は必須です。
秋葉原のショップや通販などで簡単に入手できることが重要です。
コストパフォーマンスに優れたものを選定します。
コントローラの仕様を満たしていることが最重要です。
モータの制御などリアルタイムを行う部分と、通信などのアプリケーション部分を分けて制御を行う。マルチCPUの構成も考えられますが、消費電力と小型化の面から考えるとあまり良い選択ではありません。ただ、機能とのトレードオフの部分ももちろんあります。
上記の基準から今回利用するマイコンは、LPC2138 とします。このマイコンは日本ではあまり有名ではありませんが、海外(特にヨーロッパ)では非常にポピュラーなマイコンです。入手性に関しては OptimizeからEZ-ARM miniとしてリリースされています。入手性も問題ありません。