ロボット開発プラットフォームについて
移動ロボットのためのソフトウェアパッケージとしては、前回紹介したKARTOしか見つかっていません。もちろん他にもあるにはあるのでしょうが、どうも引っかからないですね。
一方、ロボットプラットフォームとかロボットOSとかいうカテゴリに属するものは結構あるようです。これらはロボットに必要なソフトウェアをモジュール群として定義して、その実行や停止、モジュール、ロボットシミュレータ、実ロボットなどの間でのデータの受け渡しを制御します。
調べた範囲では、現在下記のものが入手可能です。
■Microsoft Robotics Developer Studio
■ROS
■LabVIEW
■OpenRTM-aist
LabVIEWだけちょっと仲間はずれの感はありますが、そのほかはいずれも有名どころでしょう。LabVIEWはあまりロボットという感じはしませんが、LEGO Mindstormsのパソコン環境のベースだったり、一時ROBO ONEのカンファレンスで取り上げられたりと、結構自律ロボットにも使われているようです。
現時点ではあまり細かく調べたわけではないのですが、いずれのプラットフォームに対しても言えそうなことは、「対応する実ロボットを使って、比較的大仕掛けなロボットを製作するには向いていそう」という感じがします。
Microsoft Robotics Developer Studio(RDS)なんかはLEGOにも対応していて、学生さんの入門用にもよさそうですが、実力を発揮するのは、移動+作業+対話などどいった複数のロボット的機能を組み合わせて利用する場合のように思います。
たとえばOpenRTM-aistではOpen-HRIという対話ロボット構築のためのモジュール群があり、容易に自作のロボットに対話機能を持たせることができるようです。
とにかく、どれを選択するとしても自作ロボットとのインターフェィスモジュールは自力で作らなければなりません。あるいは、「対応ロボット」、つまりインターフェィスモジュールが提供されている市販ロボットを使うかですね。
さて、僕はどれを選ぶべきでしょう? シェーキーの次の企画は、「ちょっと変わったホームロボット」で技術基盤(大げさですが)はシェーキーやカメロで開発したリモートブレインのノウハウです。
実際のところ、ブレインになるコンピュータのOSが選択の主要因になるように思います。これがWindowsなら本家RDS、Linux系ならROSかOpenRTM(ガラパゴス化するかもしれませんが)といったところが順当だと思います。このままいくとWindows7になりそうですから、もしプラットフォームを使うならRDSがよさそうです。Kinectもすんなり使えるようですし。また、対応実ロボットにRoombaの一世代前のモデルがあるので、現行の500シリーズも使えるのではという読みもあります。これなら比較的安価にしっかりした実ロボットも手に入ります。
うーん、でも実際のところRDSってどの程度使われているんでしょうか? ROSはかなり検索に引っかかるんですが・・
いずれにせよ、もうちょっと調べる必要がありそうですね。