米Segway社は、同社の電動2輪車である「Segway PT」をベースとするロボット開発プラットフォーム「Segway Robotics Mobility Platform(RMP)」を提供している。同プラットフォームは、人間と同じくらいの大きさのロボットに適用できるよう、耐久性の高いパッケージで提供されている(図2)。同プラットフォームの構造は、さまざまな条件の狭いスペース内で重い荷物を移動できるようなものとなっている。そのモーターは、連続的に2HP(horse power:馬力。1HPは約745.7W)、必要ならば最大4〜5HPに対応可能である。これは人間と同じくらいの荷重を運ぶのに十分な能力だ。
Segway RMPは、さまざまな電池、タイヤ/ハンドルの組み合わせで提供されている。いずれも、15マイル(約24km)の最大走行距離と、400ポンド(約181kg)の最大積載重量に対応する。1〜4個のニッケル水素電池またはリチウムイオン電池パックで走行し、52V以上の電圧を生成できれば、どのようなものでも電源として使用できる。Segway RMPに燃料電池を装備して、稼働中に電池を充電するといったことも可能である。
Segway RMPはオンボードの充電システムを搭載している。このシステムはUSBまたはCAN(controller area network)シリアルバスインターフェースを介して制御することができる。「USB用のフロントエンドを提供することにより、プラットフォームについて学習するのに要する時間が大幅に短縮されることがわかった」(Segway社)ため、USBインターフェースによってCANインターフェースが隠蔽された形となっている。ただし、開発者が望むなら、直接CANレベルで作業することもできる。同社はイーサーネットなどの通信インターフェースを追加することも検討している。
また、Segway社は、ブラケットを取り付けるためのねじ穴の追加など、機械的なインターフェースの改善も考えているという。カスタムのセンシング装置や演算ハードウエア用のサポートフレーム、安定な状態で操作するためのキャスタ、ほかのSegway RMPと相互接続するための接続ポイントを持つモデルもある。取り付け穴やブラケットの代わりに、産業用の面ファスナを用いて、同プラットフォームに独自のコンポーネントを装着した開発例(試作機レベル)も存在する。
Segway社は、Segway RMP向けに、オープンソースの開発ツール群を提供している。また、サードパーティ企業が提供するアルゴリズムへのアクセス手段も提供されている。
Robotics Studio
iRobot Createの節でも触れたMicrosoft社のRobotics Studioは、Segway RMPもサポートしている。Robotics Studioは、エンドツーエンドのウェブベース環境である。Windows CEをベースとしたモバイルデバイスなど、Microsoft .NETベースのサービス指向ランタイム環境であるREST(representational state transfer)を利用可能なハードウウエアプラットフォームをターゲットとしたロボットアプリケーションの開発をサポートする。Robotics Studioには、ビジュアルオーサリングツールやシミュレーションツールが含まれている。Robotics Studioは、iRobot社、Segway社、デンマークLEGO社を含む数十社の製品に対応している*2)。対象となるのは、シリアルポート、USB、Bluetoothなどを利用してデスクトップ型パソコンから制御されるロボットや、オンボードの制御プロセッサを搭載するロボットである。
Robotics Studioでは、ランタイムコンポーネントがロボット開発をサポートする。同プラットフォームのユーザーガイドによると、そのランタイム環境はCCR(concurrency and coordination runtime:並行協調実行環境)とDSS(decentralized software services)コンポーネントで構成される。これらのコンポーネントは次の要件を満たすように働く*3)。
CCRは、自動的に並列処理用のハードウエアを活用する。すなわち、スレッド生成、ロック、セマフォを手作業で管理する必要のないメッセージ指向のプログラミングモデルにより、非同期的で並行な処理をサポートする。この手法により、設計者はより疎結合なソフトウエアモジュール/コンポーネントを構築することができる。
CCRのDLL(dynamic link library)は、.NET Framework Version 2.0のCLR(common language runtime)がターゲットとするすべての言語から利用可能である。Microsoft社はCCR上にDSSを構築しており、DSSはRobotics Studio内のどのコンポーネントにも依存しない。DSSは、サービスを管理するためのホスト環境と、サービスの作成/検出/記録/デバッグ/監視/セキュリティ確保のために利用可能な一連のインフラサービスを提供する。また、従来型のウェブベースアーキテクチャであるRESTにウェブサービスのアーキテクチャ要素を散りばめた、軽量型のサービス指向アプリケーションモデルを提供する。DSSは、サービスの状態と、その状態に対する統一された操作セットという形でサービスを公開する。構造的なデータ操作、イベントの通知、サービス作成の各機能を追加することにより、HTTP(hypertext transfer protocol)のアプリケーションモデルを拡張したものとなっている。
DSSの目的の1つは、サービスが同一ノード上で動作しているか、ネットワークを介して動作しているかにかかわらず、サービス間の相互運用性を実現することである。DSSは、HTTPおよびDSSP(decentralized software services protocol)をサービスとの相互作用のための基盤として用いる。DSSPはXML(extensible markup language)ベースの軽量プロトコルであるSOAPをベースとしており、構造化された状態と、その状態に基づいて変化するイベントモデルの操作をサポートする。
Microsoft社のグラフィカルオーサリング開発環境であるVPL(visual programming language)は、制御フロー型ではなく、データフロー型のプログラミングモデルを採用している。VPLのデータフローは、「アクティビティ」と呼ばれるブロックを接続したシーケンスで構成される。アクティビティとは、未構築のサービス、データフローの制御機能などのコードモジュールを表現するものである。VPLは初級プログラマを対象としたものだが、迅速なプロトタイピング/コード開発を行いたい熟練プログラマにとっても有用なものかもしれない。
Robotics Studioのシミュレーション用ランタイムは、表1のようなものから構成される。Robotics Studioには多くの定義済みエンティティが用意されており、ハードウエアをエミュレートするための高レベルインターフェースを公開することで、低レベルの物理エンジンAPIを隠蔽している。
※2…Microsoft Robotics Studio Partners, http://msdn2.microsoft.com/en-us/robotics/bb383566.aspx
※3…Microsoft Robotics Studio User Guide, http://msdn2.microsoft.com/en-us/library/bb483024.aspx
Copyright © ITmedia, Inc. All Rights Reserved.