System

Study on main system for developing planetary exploration rover.

研究背景

近年,災害現場におけるレスキューや極限環境,海洋,惑星などにおける調査,観測作業や地雷除去に関わるロボットの実用化が始まり,さらに家事や介護,人間とのコミュニケーション等の幅広い分野で遠隔移動ロボットの利用が期待されている. このような次世代ロボット産業は2025年には4兆円から5兆円規模の市場になると予想されており,ロボット産業のリーダー国である日本にとって次世代ロボット開発・運用はますます重要なものになっていくと予想される.

しかし,遠隔移動ロボットは,必然的に未知環境での運用が多くなるため,多種多様なミッションを行う上での想定外の状況や,想定上のパラメータの不適合,及びアルゴリズムの不具合によるシステム障害等が発生する場合が考えられる. また,環境調査など,特に災害現場や極限環境下においては時間の有効利用が要求される. よって,ロボットはそれらの障害に対し,柔軟に,かつ素早く対応しなくてはならない. さらに,遠隔地における運用では,このようなシステム障害をソフトウェアで吸収する必要がある. すなわち,システム構成を変更することによりシステム障害の回復を行うことが求められる. しかし,システム構成の変更において,システム内の各モジュール間における依存関係が強い場合では,システム構成の変更は困難となる. そこで,システム構成を柔軟に変更できる仕組みとして,モジュール間における依存関係が弱い,すなわち,各モジュールの独立性が高いシステム構成が重要となる.

以上に述べた問題点に対し,これらを解決するようなロボットシステムに対する期待は依然高いままである.

研究目的

本研究では遠隔移動ロボットの開発・運用の効率化を目的とする.

研究内容

  • ソフトウェアのモジュール・ネットワーク化
  • システム変更を効率的に行うためにはモジュール化とネットワーク化によるシステム構築が有効である. モジュール化を行うと,システムのそれぞれの機能を明確に出来るため,システム変更の際の効率化に繋がる. さらにこれらをネットワークで接続し,システムを構築することで,システムの一部だけを変更することが容易に行えるようになる. モジュールを作る際は,システムの機能や従属関係を整理し,機能を分割することが重要であり,更にはモジュールのインターフェースを規格化することによって,モジュールの独立性を確保することが出来る.

    モジュールの組み合わせによって目的とするシステムを構築することは,システムに柔軟性を持たせる上で,非常に重要である. モジュールにインターフェースの共通化がなされていれば,他のモジュールに影響を与えることなく,モジュールの入れ替えを行うことができ,部分的なシステム変更が可能になる.
  • 3層構造型ソフトウェアアーキテクチャ
  • モジュール・ネットワーク化されたソフトウェアを柔軟に管理運用するために,OperationLayer,ConnectionLayer,HardwareLayer の3層から成る,3層構造型ソフトウェアアーキテクチャを提案する.
図: 3層構造型アーキテクチャ
  • Operation Layer
  • 一層目はモジュールの動作ロジックを定義する層である.
    この層では,ユーザは,モジュールの入れ替え,追加,交換,削除などより,モジュールネットワークやそのロジックを自由に構築することができる. そして,構築されたある一つのモジュールのネットワークを一つのタスクとし,複数のタスクを状況に応じて柔軟に切り替えることで,遠隔地での運用を実現させる.
図: ComponentCreateImage
  • Connection Layer
  • 二層目はモジュールの実際の接続を定義する層である.
    第一層で定義された動作ロジックの通りにモジュールを接続するのでは,柔軟にシステム変更をすることは困難である. したがって,第一層での接続を仮想的なものとし,実際には,一つのデータベースノードモジュールに各機能モジュールを接続する. そして,このデータベースノードモジュールが各機能モジュールより送られてくるデータを管理し,また,各機能モジュールの振る舞いを統括することによって,第一層にて構築された動作ロジックを実現させつつ,高度な可変構造性を確保する. しかし,遠隔移動ロボットは,通信,行動計画,運動制御,認識技術,人とのコミュニケーションなど幅広い技術分野を持ち,それが複雑に絡み合って動作している. そのため,必然的に機能モジュールが多くなる. したがって,多数の機能モジュールが一つのデータベースにアクセスすることになり,複数のプロセスやスレッドを動作させるためにCPU パワーの減少が起きる.
    また,モジュールの数だけ通信トラフィックが増加する.そのため,データベースにアクセスする際に通信の衝突が起き,待機状態のモジュールが発生するために遅延が発生する.
    更に,1つのシーケンス動作を実行している場合は遅延の伝播が起こる.
    一方,モジュール間で協調動作をしている場合は同期合わせが必要になるため,片方のモジュールの遅延がもう片方に伝播する. これらのような理由でシステム性能が低下すると,緊急停止など急を要する動作が間に合わなくなり,ロボットに致命的な損害を引き起こす可能性が生じる.
図: 階層型データベース
  • Hardware Layer
  • 三層目は,ハードウェアのアーキテクチャを定義する層である.
    遠隔地で活動するシステムを運用するためには,常にシステムの状況を把握する必要がある. 特に,変更を要する不具合が発生した場合,その原因特定や危険回避及び機能変更のため,ハードウェア,ソフトウェアを問わず,全てのシステムの状況の把握とアクセスが欠かせない. このため,システムの透過性の確保が重要な課題となる. しかし,通常,システムには接続関係が存在し,ハード的な接続方式によっては情報の直接的取得が難しい場合がある.

    これに対し,接続をスター型のネットワークベースとし,接続関係をネットワーク上に維持することで,必要に応じ各機能に直接アクセスしたり,接続関係をソフトウェア的に切り替えることが可能にした仕組みを採用する.
    これにより,高度な可変構造性を確保する. また,障害時に失われるユニットを最小限にとどめることで,原因究明や,残されたユニットでの復旧を容易にし,耐障害性を高める.
図: スター型ネットワーク接続
図: System Flowchart