1990年以来、iRobot社は床の清掃から爆弾の除去までさまざまな作業を行うロボットを提供してきた。家具を避けての移動や廃墟となった建物での探索には、同社の特許技術であるロボットインテリジェンスシステム「AWARE」が用いられている。
同社が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)。例えば、計算時におけるプログラミング手法の注意点として以下のように記されている。
これらの手法を用いた例として、例えばA-Dコンバータのセットアップから、起動、変換の際に行うレジスタ/ポートの設定方法が示されている。言い換えれば、現時点では、こうした処理のためのAPI(application program interface)は存在しないということだ。ほかにも、タイマーによるディレイ機能を利用して、ボタン入力をデバウンスする方法などが示されている。こうした処理を抽象化するAPIの枠組みをiRobot社が追加するまでは、複雑な自律型制御を実現するのにかなりの学習が必要になりそうである。
ただし、iRobot Create用の開発ツールとしては、Roombaに対応したRobotics Studio(2006年12月にリリース)を使用することもできる。このツールでは、上述したような基本的な処理を抽象化するAPIの枠組みが用意されている。また、米RoboDynamics社の「RoombaDevTools」を使うことで、開発者は自分のパソコンからBluetooth、USB、シリアルインターフェースを用いてRoomba Createを制御することも可能である。
Copyright © ITmedia, Inc. All Rights Reserved.