Materealと他のロボット開発支援ソフトウェアの比較

このページではMatereal以外のロボット開発支援ソフトウェアを紹介し、機能が近いものに関しては使い勝手を比較しています。

全てのソフトウェアをインストールして開発するところまで試したわけではないので、誤った紹介をしているところもあるかもしれません。間違いに気付いた方はWikiを編集して訂正してください。

Tekkotsu

TekkotsuはCarnegie Mellon University発のオープンソースプロジェクト。もともとAIBOのOpen-R SDKを使いやすくする目的で開発されたツールキットである。C++を用いてロボットのプロセッサ上で動作するプログラムを書ける。ホストPCとロボットの間で通信を行い、ホストPC側からGUI(ControllerGUI)でロボット上で実行するプログラムを選んだり、実行中のプログラムの状態を取得したりできる。

プログラムは、実時間コントロールを行うMotion Processとステートマシンによる状態管理を行ったり画像認識を行うMain Processがマルチプロセス(実装によってはマルチスレッド)で動作する。プログラマはこれらの二つの処理を書き、コンパイルして、sshやFTPを用いてロボットに転送し、ControllerGUIから実行する。Storyboard toolを用いるとステートマシンの状態遷移の履歴を記録、閲覧できる。

ロボットはマルチプロセスのプログラムを動かせる程度に高級なプロセッサを積んでいることが要求される。AIBOのほか、iRobot CreateにEee PCを載せたロボットと、独自に開発されたオープンソースロボットChiaraに対応している。

組み込み機能では、多関節ロボットを扱うための逆運動学ソルバを利用した動作指示や、前進後進といった今いる場所からの移動指示が行える。基本的にロボットのセンサのみに頼ったプログラミングを行うため、指定したパスに沿って移動させるようなことは難しい。また、複数台のロボットを扱う場合は各ロボットに他からのイベントを受け取るRemote listenerを実装することが提案されており、情報が伝達するネットワークのトポロジから設計する複雑なプログラミングが要求される。

LEGO Mindstorms NXT

LEGO Mindstorms NXTはLEGO社がMIT Lifelong Kindergartenと共同開発した商品。センサやアクチュエータといった部品が、共通のインターフェースで知能ブロックに接続できるようになっている。LEGOブロックのように自由に部品を組み合わせて新しいロボットを作ることができるのが特徴。公式に提供される開発環境のROBOLABはLabVIEWベースのVisual Programming Languageで、センサの情報を用いた簡単な状況判断やアクチュエータの出力調整ができる。

知能ブロックに接続する部品の仕様(Hardware Developer Kit)やオリジナルのファームウェアを用いたときのBluetooth通信のプロトコル(Bluetooth Developer Kit)だけでなく、ファームウェアを開発するための開発キット(Software Developer Kit)も公開されている。独自ファームウェアではJava VMを実装したLeJOSなどが有名。

materealは組み込みドライバでNXT知能ブロックにBluetooth接続し、サーボモータをコントロールできる。

Pyro (Myro)

Player/Stage/Gazebo

Urbi (Urbiscript)

RT-Middleware

Robot Operating System

Microsoft Robotics Developer Studio