MAGAZINE ARTICLES
このページをホームページに登録プラットフォームが支えるロボット開発
[2008年04月号]iRobot Create
図1 iRobot社の「iRobot Create」
iRobot社は、同社の清掃ロボットRoombaをベースとしてこのロボット開発プラットフォームを開発した。教育や趣味の用途以外に、開発者向けに、独自のハードウエアやソフトウエアを追加できるようになっている。
同社が2005年10月から製造しているRoombaシリーズの製品の1つに、「iRobot Roomba SCI(serial command interface)」がある。これは電子部品とソフトウエアで構成されており、開発者がRoombaの動作を制御/変更したり、付属するセンサーを遠隔監視したりするためのものである。Roomba SCIのプロトコルは、ミニDINコネクタを介した外部シリアルポートにより、Roombaへの制御リンクを提供する。モーター、LED、スピーカなど、Roombaのすべてのアクチュエータを制御し、すべてのセンサーからデータを取得するためのコマンドが用意されている。
2007年の初めに、iRobot社はモバイルロボット開発プラットフォームの「iRobot Create」をリリースした。32個のセンサー、アクチュエータ、シリアルインターフェースを内蔵する組み立て済みの製品であり、価格は129.99米ドルからとなっている(図1)。
iRobot CreateはRoombaのコア技術をベースとしている。そのため、Roombaの充電式電池、リモコンなどの付属品との互換性を持つ。同プラットフォームには、ペイロードベイ、25端子の拡張ポート、拡張部品の取り付け用のねじ穴が用意されている。これにより、既製のセンサーやアクチュエータ、カメラ、アーム、ロボットへのワイヤレス接続用部品などサードパーティ製の電子部品を搭載できる。
iRobot Createでは、デスクトップ型パソコンからのシリアル接続を使用して、短いコマンドから成るスクリプトをダウンロードしたり、コマンドモジュールにプログラムをロードしたりすることができる。この仕組みによって、同プラットフォームに対するプログラミングが行える。コマンドモジュールで用いられているプロセッサは、20MHz/8ビットのマイクロコントローラ「ATMega168」(米Atmel社製)である。オープンソースの開発ツールセットである「WinAVR」が、コマンドモジュールにおけるC/C++によるプログラミングをサポートする。開発ツールとしては、コマンドモジュール用のエディタ、コンパイラ、ダウンローダが用意されている。
Roomba Createのコマンドモジュールのマニュアルには、プログラミング手法やプログラムの例が示されている*1)。例えば、計算時におけるプログラミング手法の注意点として以下のように記されている。
●可能な限り8ビットの値を使用すること
●浮動小数点演算は避けること
●除算は行わないようにし、整数と右シフトを使用すること
これらの手法を用いた例として、例えばA-Dコンバータのセットアップから、起動、変換の際に行うレジスタ/ポートの設定方法が示されている。言い換えれば、現時点では、こうした処理のためのAPI(application program interface)は存在しないということだ。ほかにも、タイマーによるディレイ機能を利用して、ボタン入力をデバウンスする方法などが示されている。こうした処理を抽象化するAPIの枠組みをiRobot社が追加するまでは、複雑な自律型制御を実現するのにかなりの学習が必要になりそうである。
ただし、iRobot Create用の開発ツールとしては、Roombaに対応したRobotics Studio(2006年12月にリリース)を使用することもできる。このツールでは、上述したような基本的な処理を抽象化するAPIの枠組みが用意されている。また、米RoboDynamics社の「RoombaDevTools」を使うことで、開発者は自分のパソコンからBluetooth、USB、シリアルインターフェースを用いてRoomba Createを制御することも可能である。
脚注
- *1)
iRobot Command Module Owner's Manual, http://www.irobot.com/filelibrary/create/Command%20Module%20Manual_v2.pdf











