メディア

プラットフォームが支えるロボット開発(3/5 ページ)

» 2008年04月01日 00時00分 公開
[Robert Cravotta,EDN]

Segway RMP

 米Segway社は、同社の電動2輪車である「Segway PT」をベースとするロボット開発プラットフォーム「Segway Robotics Mobility Platform(RMP)」を提供している。同プラットフォームは、人間と同じくらいの大きさのロボットに適用できるよう、耐久性の高いパッケージで提供されている(図2)。同プラットフォームの構造は、さまざまな条件の狭いスペース内で重い荷物を移動できるようなものとなっている。そのモーターは、連続的に2HP(horse power:馬力。1HPは約745.7W)、必要ならば最大4〜5HPに対応可能である。これは人間と同じくらいの荷重を運ぶのに十分な能力だ。

図2 Segway社の「SegwayRMP」 図2 Segway社の「SegwayRMP」 SegwayPTをベースとしたプラットフォーム。さまざまな積載重量と地面の状態に対応するために、いくつかのバリエーションが用意されている。

 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を隠蔽している。

表1 シミュレーション用ランタイムの構成要素 表1 シミュレーション用ランタイムの構成要素

脚注:

※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.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.