(57)【要約】制御サーバ１１０は、自律移動可能な情報処理装置であるロボット１０１の位置に関する情報である第１の情報と、ロボット１０１の通信に関する情報である第２の情報とを取得し、第１の情報及び第２の情報を用いて通信品質の分布を示す通信品質マップを作成する制御サーバ１１０は、通信品質マップに基づいて、ロボット１０１の移動範囲を制御する。図１
2018122906.tif 000002
【特許請求の範囲】
【請求項１】
自律移動可能な情報処理装置を制御する制御装置であって、
前記情報処理装置の位置に関する情報である第１の情報と、前記情報処理装置の通信に関する情報である第２の情報とを取得し、前記第１の情報及び前記第２の情報を用いて通信品質の分布を示す通信品質情報を作成する通信品質情報生成部と、
前記通信品質情報に基づいて、前記情報処理装置の移動範囲を制御する移動制御部と、を有する制御装置。
【請求項２】
請求項１に記載の制御装置であって、
前記通信品質情報生成部は、さらに、前記情報処理装置が実行中の機能の通信に関する情報である第３の情報を取得し、
前記移動制御部は、前記第３の情報を用いて、前記情報処理装置の移動範囲を制御すること
を特徴とする制御装置。
【請求項３】
請求項１または２に記載の制御装置であって、
前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記移動制御部は、前記情報処理装置へ移動命令を送信すること
を特徴とする制御装置。
【請求項４】
請求項１または２に記載の制御装置であって、
第１の通信手段で前記情報処理装置と通信を行う第１の通信インタフェースと、
第２の通信手段で前記情報処理装置と通信を行う第２の通信インタフェースと、をさらに備え、
前記第２の情報は、前記第１の通信インタフェースを用いて前記第１の通信手段で前記情報処理装置と行った通信の通信品質に関する情報であり、
前記情報処理装置の現在位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、又は前記情報処理装置への移動命令情報を取得し、前記移動命令による移動先の位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記第１の通信インタフェース及び前記第２の通信インタフェースを用いて前記情報処理装置と通信を行うこと
を特徴とする制御装置。
【請求項５】
請求項１または２に記載の制御装置であって、
前記情報処理装置の現在位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、又は前記情報処理装置への移動命令情報を取得し、前記移動命令による移動先の位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記情報処理装置が実行中の第１の機能を停止させ、前記第１の機能の代替機能である第２の機能を実行させる機能切替処理部、をさらに有する制御装置。
【請求項６】
請求項１または２に記載の制御装置であって、
前記情報処理装置の現在位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、又は前記情報処理装置への移動命令情報を取得し、前記移動命令による移動先の位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記情報処理装置が実行する機能のうち少なくとも一つ以上の機能に関する通信量を抑制する通信制御部、をさらに有する制御装置。
【請求項７】
請求項１または２に記載の制御装置であって、
前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記情報処理装置の形状又は向きを変更する命令を送信する状態管理部、をさらに備える制御装置。
【請求項８】
請求項１または２に記載の制御装置であって、
前記通信品質情報生成部は、前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質と前記通信品質情報との比較結果に基づいて、前記通信品質情報を更新すること
を特徴とする制御装置。
【請求項９】
自律移動可能な情報処理装置と、前記情報処理装置を制御する制御装置と、を有する制御システムであって、
前記制御装置は、
前記情報処理装置から、前記情報処理装置の位置に関する情報である第１の情報と、前記情報処理装置の通信に関する情報である第２の情報とを取得し、前記第１の情報及び前記第２の情報を用いて、前記制御装置と前記情報処理装置との通信品質の分布を示す通信品質情報を作成する通信品質情報生成部と、
前記通信品質情報に基づいて、前記情報処理装置の移動範囲を制御する移動制御部と、を有する制御システム。
【請求項１０】
請求項９に記載の制御システムであって、
前記通信品質情報生成部は、さらに、前記情報処理装置が実行中の機能の通信に関する情報である第３の情報を取得し、
前記移動制御部は、前記第３の情報を用いて、前記情報処理装置の移動範囲を制御すること
を特徴とする制御装置。
【請求項１１】
自律移動可能な情報処理装置であって、
前記情報処理装置の位置に関する情報である第１の情報、及び前記情報処理装置の通信に関する情報である第２の情報を用いて作成された通信品質の分布を示す通信品質情報と、前記情報処理装置の現在位置とに基づいて、移動制御を行う位置管理部を、有する自律移動可能な情報処理装置。
【請求項１２】
請求項１１に記載の自律移動可能な情報処理装置であって、
前記位置管理部は、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて、前記情報処理装置の移動制御を行うこと
を特徴とする自律移動可能な情報処理装置。
【請求項１３】
請求項１１または１２に記載の自律移動可能な情報処理装置であって、
前記自律移動可能な情報処理装置の位置情報が、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて定まる前記情報処理装置の移動許可範囲外であった場合、
前記位置管理部は、前記情報処理装置を前記移動許可範囲内へ移動させること
を特徴とする自律移動可能な情報処理装置。
【請求項１４】
請求項１１または１２に記載の自律移動可能な情報処理装置であって、
第１の通信手段で通信を行う第１の通信インタフェースと、
第２の通信手段で通信を行う第２の通信インタフェースと、をさらに備え、
前記第２の情報は、前記第１の通信インタフェースを用いて前記第１の通信手段で行った通信の通信品質に関する情報であり、
前記情報処理装置の現在位置が、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて定まる前記情報処理装置の移動許可範囲外であった場合、
又は前記第１の情報及び前記第２の情報に基づく前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記第１の通信インタフェース及び前記第２の通信インタフェースを用いて通信を行うこと
を特徴とする自律移動可能な情報処理装置。
【請求項１５】
請求項１１または１２に記載の自律移動可能な情報処理装置であって、
前記情報処理装置の現在位置が、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて定まる前記情報処理装置の移動許可範囲外であった場合、
又は前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、
前記情報処理装置が実行中の第１の機能を停止し、前記第１の機能の代替機能である第２の機能を実行すること
を特徴とする自律移動可能な情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システム、及び自律移動可能な情報処理装置に関するものである。
【背景技術】
【０００２】
近年、ロボットを無線通信により遠隔操作する技術や、一部の機能をアプリケーションサーバに実装し、ロボットがアプリケーションサーバと無線通信を行うことで機能を実現する技術が提案されている。無線通信を使用するロボットでは、無線品質（例えば、電波強度）を維持し、機能に適した通信品質（例えば、スループット、遅延）が維持される必要がある。【０００３】
これに対して、特許文献１では、無線通信により無線親機から送信されるタスク指令に基づいて、移動制御手段が脚部又は脚部に相当する移動機構を駆動制御することで、自律的に移動する移動ロボットにおいて、移動領域の地図データと、当該移動領域における無線環境に関連する複数の無線環境データで構成された総合無線環境データとを対応付けた無線環境マップを記憶した無線環境マップ記憶手段と、前記移動領域内における自己位置を認識する位置認識手段と、前記無線環境の状態を監視する監視手段と、この監視手段で監視された無線環境の状態が、前記無線通信が切断された状態となった場合に、前記無線環境マップに基づいて、前記無線通信の接続が可能な復旧位置を探索する探索手段と、前記認識された自己位置から、前記探索手段で探索された復旧位置までの移動を前記移動制御手段に指示する自己位置移動指示手段と、を備えていることを特徴とする移動ロボットが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−８７１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された技術を用いれば、無線通信が切断されても無線通信を復旧することが可能となる。しかしながら、ロボットの機能が必要な通信品質が維持できず、ロボットのサービス品質が低下する。【０００６】
また、ロボットの機能毎に必要な通信品質は異なるため、機能が使用するデータの転送に重要な通信品質（スループット、遅延等）を常に確保することが求められている。
【課題を解決するための手段】
【０００７】
本発明の一つの実施態様に係る制御装置は、自律移動可能な情報処理装置を制御する制御装置であって、前記情報処理装置の位置に関する情報である第１の情報と、前記情報処理装置の通信に関する情報である第２の情報とを取得し、前記第１の情報及び前記第２の情報を用いて通信品質の分布を示す通信品質情報を作成する通信品質情報生成部と、前記通信品質情報に基づいて、前記情報処理装置の移動範囲を制御する移動制御部と、を有する。
【図面の簡単な説明】
【０００８】
【図１】実施例１のロボット制御システムの構成の例を示す図である。
【図２】制御サーバの構成の例を示す図である。
【図３】通信品質計測処理の例を示すフローチャートである。
【図４】移動許可範囲マップ作成処理の例を示すフローチャートである。
【図５】通信品質判定処理の例を示すフローチャートである。
【図６】通信制御処理の例を示すフローチャートである。
【図７】通信手段切替処理の例を示すフローチャートである。
【図８】機能切替処理の例を示すフローチャートである。
【図９】ロボット状態変更処理の例を示すフローチャートである。
【図１０】通信復旧処理の例を示すフローチャートである。
【図１１】移動判定処理の例を示すフローチャートである。
【図１２】機能情報管理テーブルの構成の例を示す図である。
【図１３】通信品質情報管理テーブルの構成の例を示す図である。
【図１４】通信品質マップの例を示す図である。
【図１５】機能実施可能範囲情報管理テーブルの構成の例を示す図である。
【図１６】機能実施可能範囲マップの例を示す図である。
【図１７】ロボット状態情報管理テーブルの構成の例を示す図である。
【図１８】機能提供範囲情報管理テーブルの構成の例を示す図である。
【図１９】機能提供範囲マップの例を示す図である。
【図２０】移動許可範囲情報管理テーブルの構成の例を示す図である。
【図２１】移動許可範囲マップの例を示す図である。
【図２２】機能状態管理テーブルの構成の例を示す図である。
【図２３】移動許可範囲マップ更新の例を示すシーケンス図である。
【図２４】通信品質を安定させる処理の例を示すシーケンス図である。
【図２５】ロボットの構成の例を示す図である。
【図２６】位置管理処理の例を示すフローチャートである。
【図２７】通信復旧処理の例を示すフローチャートである。
【図２８】実施例２のロボット制御システムの構成の例を示す図である。
【図２９】制御サーバの構成の例を示す図である。
【図３０】通信品質計測処理の例を示すフローチャートである。
【図３１】中継サーバの構成の例を示す図である。
【図３２】情報転送処理の例を示すフローチャートである。
【図３３】装置情報管理テーブルの構成の例を示す図である。
【図３４】通信品質計測処理の例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。
【００１０】
なお、以下の実施形態において、説明の便宜上必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、詳細説明、または補足説明などの関係にある。
【００１１】
また、以下の実施例において、要素の数など（個数、数値、量及び範囲を含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよいものとする。
【００１２】
さらに、以下の実施例において、その構成要素（要素ステップなどを含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではないことは言うまでもない。
【００１３】
本発明の一実施形態に係る自律移動可能な情報処理装置を制御する制御装置は、前記情報処理装置の位置に関する情報である第１の情報と、前記情報処理装置の通信に関する情報である第２の情報とを取得し、前記第１の情報及び前記第２の情報を用いて通信品質の分布を示す通信品質情報を作成する通信品質情報生成部と、前記通信品質情報に基づいて、前記情報処理装置の移動範囲を制御する移動制御部と、を有する。
【００１４】
前記通信品質情報生成部は、さらに、前記情報処理装置が実行中の機能の通信に関する情報である第３の情報を取得し、前記移動制御部は、前記第３の情報を用いて、前記情報処理装置の移動範囲を制御してもよい。
【００１５】
前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記移動制御部は、前記情報処理装置へ移動命令を送信してもよい。
【００１６】
前記制御装置は、第１の通信手段で前記情報処理装置と通信を行う第１の通信インタフェースと、第２の通信手段で前記情報処理装置と通信を行う第２の通信インタフェースと、をさらに備えてもよい。前記第２の情報は、前記第１の通信インタフェースを用いて前記第１の通信手段で前記情報処理装置と行った通信の通信品質に関する情報でよい。前記情報処理装置の現在位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、又は前記情報処理装置への移動命令情報を取得し、前記移動命令による移動先の位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記制御装置は、前記第１の通信インタフェース及び前記第２の通信インタフェースを用いて前記情報処理装置と通信を行ってもよい。
【００１７】
前記情報処理装置の現在位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、又は前記情報処理装置への移動命令情報を取得し、前記移動命令による移動先の位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記制御装置は、前記情報処理装置が実行中の第１の機能を停止させ、前記第１の機能の代替機能である第２の機能を実行させる機能切替処理部をさらに有してもよい。
【００１８】
前記情報処理装置の現在位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、又は前記情報処理装置への移動命令情報を取得し、前記移動命令による移動先の位置の前記第１の通信手段の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記制御装置は、前記情報処理装置が実行する機能のうち少なくとも一つ以上の機能に関する通信量を抑制する通信制御部をさらに有してもよい。
【００１９】
前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記制御装置は、前記情報処理装置の形状又は向きを変更する命令を送信する状態管理部をさらに備えてもよい。
【００２０】
前記通信品質情報生成部は、前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質と前記通信品質情報との比較結果に基づいて、前記通信品質情報を更新してもよい。
【００２１】
本発明の一実施形態に係る制御システムは、自律移動可能な情報処理装置と、前記情報処理装置を制御する制御装置とを有する。前記制御装置は、前記情報処理装置から、前記情報処理装置の位置に関する情報である第１の情報と、前記情報処理装置の通信に関する情報である第２の情報とを取得し、前記第１の情報及び前記第２の情報を用いて、前記制御装置と前記情報処理装置との通信品質の分布を示す通信品質情報を作成する通信品質情報生成部と、前記通信品質情報に基づいて、前記情報処理装置の移動範囲を制御する移動制御部と、を有してもよい。
【００２２】
前記通信品質情報生成部は、さらに、前記情報処理装置が実行中の機能の通信に関する情報である第３の情報を取得し、前記移動制御部は、前記第３の情報を用いて、前記情報処理装置の移動範囲を制御してもよい。
【００２３】
本発明の一実施形態に係る自律移動可能な情報処理装置は、前記情報処理装置の位置に関する情報である第１の情報、及び前記情報処理装置の通信に関する情報である第２の情報を用いて作成された通信品質の分布を示す通信品質情報と、前記情報処理装置の現在位置とに基づいて、移動制御を行う位置管理部を、有してもよい。
【００２４】
前記位置管理部は、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて、前記情報処理装置の移動制御を行ってもよい。
【００２５】
前記自律移動可能な情報処理装置の位置情報が、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて定まる前記情報処理装置の移動許可範囲外であった場合、前記位置管理部は、前記情報処理装置を前記移動許可範囲内へ移動させるようにしてもよい。
【００２６】
前記自律移動可能な情報処理装置が、第１の通信手段で通信を行う第１の通信インタフェースと、第２の通信手段で通信を行う第２の通信インタフェースと、をさらに備えてもよい。前記第２の情報は、前記第１の通信インタフェースを用いて前記第１の通信手段で行った通信の通信品質に関する情報でよい。前記情報処理装置の現在位置が、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて定まる前記情報処理装置の移動許可範囲外であった場合、又は前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記情報処理装置は、前記第１の通信インタフェース及び前記第２の通信インタフェースを用いて通信を行ってもよい。
【００２７】
前記情報処理装置の現在位置が、前記通信品質情報と前記情報処理装置が実行中の機能とに基づいて定まる前記情報処理装置の移動許可範囲外であった場合、又は前記第１の情報及び前記第２の情報に基づく前記情報処理装置の現在位置の通信品質が前記情報処理装置に要求される通信品質を下回る場合、前記情報処理装置が実行中の第１の機能を停止し、前記第１の機能の代替機能である第２の機能を実行してもよい。
【００２８】
＜実施例１＞
図１は、実施例１のロボット管理システムの構成の例を示す図である。実施例１のロボット管理システムは、自律移動可能な情報処理装置であるロボット１０１と、制御サーバ１１０と、アプリケーションサーバ１１１とを有する。
【００２９】
ロボット１０１と制御サーバ１１０とは無線通信により接続される。ロボット１０１と制御サーバ１１０とを接続する通信手段は、例えば無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０４、短距離無線１０６及び移動体通信網１０７である。
【００３０】
ロボット１０１と制御サーバ１１０とが無線ＬＡＮ１０４により接続される場合は、無線ＬＡＮ  ＡＰ（Ａｃｃｅｓｓ  Ｐｏｉｎｔ)を介して接続される。
【００３１】
ロボット１０１と制御サーバ１１０とが短距離無線１０６により接続される場合は、ロボット１０１と制御サーバ１１０とがそれぞれ持つ短距離無線Ｉ／Ｆ（インタフェース）が直接通信を行う。
【００３２】
ロボット１０１と制御サーバ１１０とが移動体通信網１０７により接続される場合は、基地局装置１０８及びインターネット１０９を介して接続される。
【００３３】
制御サーバ１１０は、ロボット１０１との通信情報を用いて、通信品質情報を計測する。通信品質とは、ロボット毎の通信品質であり、制御サーバ１１０とロボット１０１との間の上り方向の受信品質、又は下り方向の受信品質を示す指標である。
【００３４】
また、制御サーバ１１０は、ロボット１０１が計測したロボット１０１の現在位置を示す位置情報を取得する。位置情報は、例えば絶対位置でもよいし、ロボット１０１の移動が認められる最大移動範囲１０１０内の相対位置でもよい。制御サーバ１１０は、ロボット１０１の位置情報と、通信品質情報を用いて、最大移動範囲１０１０内にロボット１０１が移動可能な範囲である移動許可範囲１０３と、ロボット１０１が侵入不可な範囲である非移動許可範囲１０２を設定してもよい。
【００３５】
アプリケーションサーバ１１１は、ロボット１０１にアプリケーションを実行させるためのサーバであり、移動命令を制御サーバ１１０を介してロボット１０１に送信する。
【００３６】
一つの制御サーバ１１０が複数のロボット１０１を収容してもよいし、複数の制御サーバ１１０が一つのロボット１０１を収容してもよい。
【００３７】
図２は、制御サーバ１１０の構成の例を示す図である。
【００３８】
制御サーバ１１０は、メモリ２０１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２と、Ｉ／Ｏ（入出力インタフェース）２０３と、補助記憶装置２０４と、無線ＬＡＮ  Ｉ／Ｆ２０５と、短距離無線Ｉ／Ｆ２０６と、移動体通信網Ｉ／Ｆ２０７とを有する。以下に説明する制御サーバ１１０が行う処理は、ＣＰＵ２０２が、補助記憶装置２０４に格納されたコンピュータプログラム（ソフトウェア）を読み出して、メモリ２０１上に展開して実行することにより実現される。制御サーバ１１０は、無線ＬＡＮ  Ｉ／Ｆ２０５、短距離無線Ｉ／Ｆ２０６又は移動体通信網Ｉ／Ｆ２０７を介してロボット１０１と通信する。
【００３９】
Ｉ／Ｏ２０３は、ユーザが制御サーバ１１０に指示を入力し、プログラムの実行結果などをユーザに提示するためのユーザインタフェースである。Ｉ／Ｏ２０３には、入出力デバイス（例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなど）が接続される。Ｉ／Ｏ２０３は、ネットワークを経由して接続された管理端末によって提供されるユーザインタフェースが接続されてもよい。
【００４０】
ＣＰＵ２０２は、メモリ２０１に格納されたプログラムを実行するプロセッサである。メモリ２０１は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ：Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などが格納される。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、補助記憶装置２０２に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
【００４１】
例えば、メモリ２０１には、通信品質計測プログラム２１１、移動許可範囲マップ作成プログラム２１２、通信品質判定プログラム２１３、通信制御プログラム２１４、通信手段切替プログラム２１５、機能切替プログラム２１６、ロボット状態変更プログラム２１７、通信復旧プログラム２１８、及び移動判定プログラム２１９が格納される。
【００４２】
通信品質計測プログラム２１１は、通信品質計測処理（図３参照）を実行するためのプログラムである。移動許可範囲マップ作成プログラム２１２は、移動許可範囲マップ作成処理（図４参照）を実行するためのプログラムである。通信品質判定プログラム２１３は、通信品質判定処理（図５参照）を実行するためのプログラムである。通信制御プログラム２１４は、通信制御処理（図６参照）を実行するためのプログラムである。通信手段切替プログラム２１５は、通信手段切替処理（図７参照）を実行するためのプログラムである。機能切替プログラム２１６は機能切替処理（図８参照）を実行するためのプログラムである。ロボット状態変更プログラム２１７はロボット状態変更処理（図９参照）を実行するためのプログラムである。通信復旧プログラム２１８は、通信復旧処理（図１０参照）を実行するためのプログラムである。移動判定プログラム２１９は、移動判定処理（図１１参照）を実行するためのプログラムである。
【００４３】
また、メモリ２０１には、機能情報管理テーブル２２１（図１２参照）、通信品質情報管理テーブル２２２（図１３参照）、機能実施可能範囲情報管理テーブル２２３（図１５参照）、ロボット状態情報管理テーブル２２４（図１７参照）、機能提供範囲情報管理テーブル２２５（図１８参照）、移動許可範囲情報管理テーブル２２６（図２０参照）、機能状態情報管理テーブル２２７（図２２参照）が格納される。
【００４４】
補助記憶装置２０４は、例えば、磁気記憶装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの大容量かつ不揮発性の記憶装置である。また、補助記憶装置２０４は、ＣＰＵ２０２により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。すなわち、プログラムは、補助記憶装置２０４から読み出されて、メモリ２０１にロードされ、ＣＰＵ２０２によって実行される。
【００４５】
制御サーバ１１０は、物理的に一つの計算機上で、又は、論理的又は物理的な複数の計算機上で構成される計算機システムであり、メモリ２０１に格納されたプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、制御サーバ１１０と他の装置が一つの物理的又は論理的計算機に収容されてもよい。なお、プログラムの実行によって実現される処理の全部又は一部の処理をハードウェア（例えば、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）によって実現してもよい。
【００４６】
図３は、通信品質計測処理の例を示すフローチャートである。通信品質計測処理は、通信品質計測プログラム２１１が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。通信品質計測プログラム２１１は、通信品質情報生成部として動作する。
【００４７】
通信品質計測処理は、ロボット１０１と制御サーバ１１０との間で送受信されるパケット、及びロボット１０１の位置情報に基づいて行われる処理である。通信品質計測処理では、ロボット１０１と制御サーバ１１０との間で送受信されたメッセージに基づいて通信品質の計測が行われ、この通信品質がロボット１０１の位置情報と対応付けて通信品質情報管理テーブル２２２（図１３）に保存される。
【００４８】
まず、ＣＰＵ２０２は、ロボット１０１と制御サーバ１１０間の通信パケットから通信品質情報を計測する（ステップ２１１１）。次に、ＣＰＵ２０２は、ロボット１０１が計測したロボット１０１自身の位置情報を取得し、時間情報を基に位置情報と通信品質情報を紐付ける（ステップ２１１２）。
【００４９】
ＣＰＵ２０２は通信品質情報管理テーブル２２２（図１３）を参照し、取得したロボット１０１の位置情報が示す位置に通信品質情報が既に登録されているか否かを判定する（ステップ２１１３）。
【００５０】
ロボット１０１の位置情報が示す位置に通信品質情報が登録されていない場合は（ステップ２１１３：Ｎｏ）、ステップ２１１１で計測した通信品質を通信品質情報管理テーブル２２２（図１３）に登録し、通信品質マップ２２２０（図１４参照）を更新する（ステップ２１１７）。さらにＣＰＵ２０２は、更新した通信品質マップ２２２０をロボット１０１に通知して（ステップ２１１８）処理を終了する。
【００５１】
一方、ステップ２１１３において、ロボット１０１の位置情報が示す位置に通信品質情報が登録されていた場合は（ステップ２１１３：Ｙｅｓ）、ＣＰＵ２０２は通信品質情報管理テーブル２２２（図１３）に登録されている通信品質情報と、ステップ２１１１で計測した通信品質情報とを以下の条件１で比較する（ステップ２１１４）。
【００５２】
条件１：計測された通信品質＜登録済み通信品質
【００５３】
ステップ２１１４で、条件１を満たさないと判定された場合、ステップ２１１７へ遷移する。
【００５４】
ステップ２１１４で、条件１を満たすと判定された場合、ＣＰＵ２０２は通信品質判定プログラム２１３を実行し、通信品質判定処理（図５参照）を行う（ステップ２１１５）。ＣＰＵ２０２は、通信品質判定処理によって通信手段切替処理が行われたか否か判定する（ステップ２１１６）。通信品質判定処理で通信手段切替処理が行われなかった場合は（ステップ２１１６：Ｎｏ）、ステップ２１１７へ遷移する。一方で、通信品質判定処理で通信手段切替処理が行われた場合は（ステップ２１１６：Ｙｅｓ）、通信品質計測処理を終了する。
【００５５】
これにより、制御サーバ１１０及びロボット１０１間の最新の通信状態を示す通信品質情報がロボット１０１へ提供される。その結果、ロボット１０１が通信品質に基づいて自律的に位置制御することが可能になる。
【００５６】
図４は、移動許可範囲マップ作成処理の例を示すフローチャートである。移動許可範囲マップ作成処理は、移動許可範囲マップ作成プログラム２１２が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。移動許可範囲マップ作成プログラム２１２は、移動許可範囲情報生成部として動作する。
【００５７】
移動許可範囲マップ作成処理では、現実の通信品質とロボット１０１で使用中の機能の要求通信品質とから、ロボット１０１が移動することを許可される範囲を示す移動許可範囲情報管理テーブル２２６（図２０）が更新される。
【００５８】
まず、ＣＰＵ２０２は、通信品質判定処理により作成された通信品質情報管理テーブル２２２（図１３）を取得する（ステップ２１２１）。次に、ＣＰＵ２０２は機能情報管理テーブル２２１（図１２）を参照して機能毎に要求される通信品質を示す要求通信品質値２２１２を取得する（ステップ２１２２）。そして、ＣＰＵ２０２は、現在の通信品質と各機能の要求通信品質値２２１２とに基づいて、現在の通信品質が各機能の要求通信品質を満たす領域を特定し、機能実施可能範囲情報管理テーブル２２３（図１５）に登録する（ステップ２１２３）。機能実施可能範囲情報管理テーブル２２３は機能別のテーブルであってもよい。
【００５９】
さらに、ＣＰＵ２０２は、ロボット状態情報管理テーブル２２４（図１７）からロボット１０１が使用中の機能に関する情報を取得する（ステップ２１２４）。そして、ＣＰＵ２０２は、ロボットが使用中の機能に関する機能実施可能範囲情報管理テーブル２２３（図１５）に基づいて、ロボットが使用中の機能を維持したまま移動可能な範囲を移動許可範囲情報管理テーブル２２６（図２０）に登録する（ステップ２１２５）。ロボット１０１が複数の機能を使用している場合は、機能毎の要求通信品質を満たすか否かを判定し、すべての機能の通信品質を満たす範囲をロボット１０１の移動許可範囲として、移動許可範囲情報管理テーブル２２６（図２０）に登録してもよい。
【００６０】
次に、ＣＰＵ２０２は、機能提供範囲情報管理テーブル２２５（図１８）から機能の提供が必要となる範囲を取得する（ステップ２１２６）。そして、移動許可範囲情報管理テーブル２２６（図２０）に登録されたロボットの移動許可範囲と、機能提供範囲情報管理テーブル２２５が示す機能の提供が必要となる範囲の重複する範囲を、新たな移動許可範囲として移動許可範囲情報管理テーブル２２６（図２０）を更新する（ステップ２１２７）。
【００６１】
ＣＰＵ２０２は、ロボット１０１に更新された移動許可範囲情報管理テーブル２２６（図２０）を送信する（ステップ２１２８）。このとき、制御サーバ１１０からロボット１０１へ送信されるのは移動許可範囲情報管理テーブル２２６（図２０）でもよいし、このテーブルを最大移動範囲１０１０の地図で表した移動許可範囲マップ（図２１参照）でもよい。
【００６２】
これにより、情報処理装置が実行中の機能と制御サーバ１１０及びロボット１０１間の通信品質とから定まる移動許可範囲情報がロボット１０１へ提供される。その結果、ロボット１０１が許可された範囲で自律的に位置制御することが可能になる。
【００６３】
図５は、通信品質判定処理の例を示すフローチャートである。通信品質判定処理は、通信品質判定プログラム２１３が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。通信品質判定プログラム２１３は、通信品質判定部として動作する。
【００６４】
通信品質判定処理では、通信品質を向上させるための処理が行われる。
【００６５】
通信品質判定処理では、まずＣＰＵ２０２は、機能情報管理テーブル２２１とロボット状態情報管理テーブル２２４を参照する（ステップ２１３１）。そして、ＣＰＵ２０２は、ロボット１０１が使用中の機能の通信品質値の合計と、ステップ２１１１で計測した通信品質値の差を算出し、使用中の機能の通信品質値の合計と計測した通信品質値を以下の条件２で比較する（ステップ２１３２）。
【００６６】
条件２：使用中の機能の要求品質値の合計＞計測した通信品質値
【００６７】
条件２を満たさないと判定された場合は（ステップ２１３２：Ｎｏ）、以下の処理をすべてスキップして通信品質判定処理を終了する。
【００６８】
一方で、条件２を満たすと判定された場合は（ステップ２１３２：Ｙｅｓ）、ＣＰＵ２０２は、通信制御プログラム２１４を実行し、通信制御処理（図６参照）を行う（ステップ２１３３）。通信制御処理では、優先度の低い機能について通信量を抑制するための処理が行われる。
【００６９】
さらにＣＰＵ２０２は、通信手段切替プログラム２１５を実行し、通信手段切替処理（図７参照）を行う（ステップ２１３４）。通信手段切替処理では、要求通信品質を満たす別の通信手段への切替が行われる。
【００７０】
さらにＣＰＵ２０２は、機能切替プログラム２１６を実行し、機能切替処理（図８参照）を行う（ステップ２１３５）。機能切替処理では、代替機能が割り当てられている場合は代替機能への切替が行われる。
【００７１】
次に、ＣＰＵ２０２は、ステップ２１３３で少なくとも１つ以上の機能に対して通信量の抑制が実行されたか否か、ステップ２１３４で少なくとも1つ以上の機能に対して通信手段の切替が実行されたか否か、又はステップ２１３５で少なくとも１つ以上の機能に対して代替機能への切替が実行されたか否かの判定を行う（ステップ２１３６）。
【００７２】
ここで、いずれかの処理が実行されていた場合には（ステップ２１３６：Ｙｅｓ）、通信品質判定処理を終了する。
【００７３】
一方で、いずれの処理も実行されなかった場合は（ステップ２１３６：Ｎｏ）、ＣＰＵ２０２は、ロボット状態変更プログラム２１７を実行し、ロボット形状変更処理（図９参照）を行う（ステップ２１３７）。ロボット形状変更処理では、ロボットの向き又は形状を変更して、通信品質の改善を試みる。
【００７４】
、ステップ２１３７でロボットの向き又は形状の変更が行われた場合は、通信品質処理を終了する（ステップ２１３８：Ｙｅｓ）。一方で、ロボットの向き又は形状の変更が行われなかった場合は（ステップ２１３８：Ｎｏ）、ＣＰＵ２０２は、通信復旧プログラム２１８を実行し、通信復旧処理（図１０参照）を行う（ステップ２１３９）。通信復旧処理では、通信品質が高い位置にロボット１０１を移動させて、通信品質の改善を試みる。
【００７５】
これにより、通信品質が低いときに通信品質を改善するための種々の処理が実行される。
【００７６】
図６は通信制御処理の例を示すフローチャートである。通信制御処理は、通信制御プログラム２１４が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。通信制御プログラム２１４は、通信制御部として動作する。通信制御処理は、図５の通信品質判定処理において実行される。
【００７７】
通信制御処理では、まずＣＰＵ２０２が機能情報管理テーブル２２１（図１２）を参照し（ステップ２１４１）、使用中の機能の優先度と所定の閾値２に関して、以下の条件３を満たす機能があるか判定する。（ステップ２１４２）。
【００７８】
条件３：優先度≦閾値２
【００７９】
条件３を満たす機能がない場合は（ステップ２１４２：Ｎｏ）、通信制御処理を終了する。一方で、条件３を満たす機能がある場合、すなわち、優先度が閾値２よりも低い機能が使用中の場合は、ＣＰＵ２０２は、機能ごとに、その機能が現在使用している通信量と要求通信品質値２２１２とを以下の条件４で比較する（ステップ２１４３）。
【００８０】
条件４：通信量＞要求通信品質値２２１２のいずれか一つ以上
【００８１】
条件４を満たす機能については（ステップ２１４３：Ｙｅｓ）、ＣＰＵ２０２がその機能の通信量が要求通信品質値になるまで通信量を抑制する制御を行う（ステップ２１４４）。一方で、条件４を満たさない機能については（ステップ２１４３：Ｎｏ）、ＣＰＵ２０２は、その機能が正常に動作していないと判断して機能を終了する（Ｓ２１４５）。
【００８２】
これにより、優先度の低い機能が使用する通信量を抑制できる。
【００８３】
図７は、通信手段切替処理の例を示すフローチャートである。通信手段切替処理は、通信手段切替プログラム２１５が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。通信手段切替プログラム２１５は、通信手段切替部として動作する。通信手段切替処理は、図５の通信品質判定処理において実行される。
【００８４】
通信手段切替処理では、まずＣＰＵ２０２は、ロボット１０１と制御サーバ１１０の間で通信可能な通信手段が複数あるか否かを判定する（ステップ２１５１）。通信可能な通信手段が複数存在しない場合は、通信手段切替処理を終了する（ステップ２１５１：Ｎｏ）。
【００８５】
通信可能な通信手段が複数ある場合は（ステップ２１５１：Ｙｅｓ）、機能状態情報管理テーブル２２７（図２２参照）を参照し、機能と通信手段との対応に関する情報を取得する（ステップ２１５２）。ＣＰＵ２０２は、取得した情報に基づき、通信手段が割り当てられていない機能があるか否か、又は割り当てられた通信手段の現在の通信品質では要求通信品質が満たされない機能があるか否かを判定する（ステップ２１５３）。ここで、割り当てられた通信手段の現在の通信品質では要求通信品質が満たされない機能がある場合は、例えば、ロボット１０１が移動許可範囲情報管理テーブル２２６で定まる移動許可範囲外に存在することが考えられる。
【００８６】
通信手段が割り当てられていない機能がない、又は割り当てられた通信手段では要求通信品質が満たされない機能がない場合は（ステップ２１５３：Ｎｏ）、通信手段切替処理を終了する。
【００８７】
一方、通信手段が割り当てられていない機能があるか、又は割り当てられた通信手段では要求通信品質が満たされない機能がある場合は（ステップ２１５３：Ｙｅｓ）、ＣＰＵ２０２は機能情報管理テーブル２２１（図１２）を参照して、その機能の情報を取得し（ステップ２１５４）、その機能が要求する通信品質値を満たす通信手段があるか否かの判定を行う（ステップ２１５５）。
【００８８】
ここで、その機能が要求する通信品質値を満たす通信手段がなければ通信手段切替処理を終了する（ステップ２１５５：Ｎｏ）。
【００８９】
一方で、その機能が要求する通信品質値を満たす通信手段があった場合（ステップ２１５５：Ｙｅｓ）、ＣＰＵ２０２は、その機能に要求する通信品質値を満たす通信手段を割り当てる（ステップ２１５６）。ＣＰＵ２０２は、通信手段の全体の通信品質値からステップ２１５６で機能を割り当てた通信手段の通信品質値を減算し、通信帯域の余剰分を示す通信品質値の差分を算出する（ステップ２１５７）。その後ステップ２１５３に戻り、通信手段が割り当てられていない機能及び割り当てられている通信手段で要求通信品質が満たされない機能がなくなるまで繰り返す。
【００９０】
これにより、機能に対して割り当てられる通信手段の切替が行われる。その結果、ロボット１０１が複数の機能を実行しているときは、各機能に異なる通信手段を割り当てることができる。つまり、ロボット１０１は複数機能を実行中に複数の通信手段で通信することができ、通信品質が安定する。
【００９１】
図８は機能切替処理の例を示すフローチャートである。機能切替処理は、機能切替プログラム２１６が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。機能切替プログラム２１６は機能切替部として動作する。機能切替処理は、図５の通信品質判定処理において実行される。
【００９２】
機能切替処理では、まずＣＰＵ２０２が通信手段切替処理（図７参照）によっても通信手段が割り当てられていない機能があるか否か、又は割り当てられた通信手段の現在の通信品質では要求通信品質が満たされない機能があるか否かを判定する（ステップ２１６１）。ここで、割り当てられた通信手段の現在の通信品質では要求通信品質が満たされない機能がある場合は、例えば、ロボット１０１が移動許可範囲情報管理テーブル２２６で定まる移動許可範囲外に存在することが考えられる。
【００９３】
通信手段が割り当てられていない機能がない、又は割り当てられた通信手段では要求通信品質が満たされない機能がない場合は、機能切替処理を終了する（ステップ２１６１：Ｎｏ）。
【００９４】
通信手段が割り当てられていない機能があるか、又は割り当てられた通信手段では要求通信品質が満たされない機能がある場合は（ステップ２１６１：Ｙｅｓ）、ＣＰＵ２０２は、機能情報管理テーブル２２１（図１２）を参照し、その機能の代替機能２２１５が登録されているか否かを判定する（ステップ２１６２）。代替機能２２１５が登録されていない場合は（ステップ２１６２：Ｎｏ）、ＣＰＵ２０２はその機能を終了させ（ステップ２１６５）、再びステップ２１６１へ戻る。
【００９５】
その機能の代替機能２２１５が登録されている場合は（ステップ２１６２：Ｙｅｓ）、ＣＰＵ２０２は、代替機能の要求する通信品質値を満たす通信手段があるか否かを判定する（ステップ２１６３）。代替機能が要求する通信品質値を満たす通信手段があれば（ステップ２１６３：Ｙｅｓ）、ＣＰＵ２０２は、通信手段が割り当てられていない機能又は割り当てられた通信手段では要求通信品質が満たされない機能を終了し、代替機能を実行して代替機能に切替え（ステップ２１６４）、ステップ２１６１へ戻る。代替機能が要求する通信品質値を満たす通信手段がなければ（ステップ２１６３：Ｎｏ）、ステップ２１６５へ遷移する。
【００９６】
これにより、代替機能が設定されている機能については、代替機能への切替が行われる。
【００９７】
図９はロボット状態変更処理の例を示すフローチャートである。ロボット状態変更処理は、ロボット状態変更プログラム２１７が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。ロボット状態変更プログラム２１７は、ロボット状態変更部として動作する。ロボット状態変更処理は、図５の通信品質判定処理において実行される。
【００９８】
ロボット状態変更処理では、まずＣＰＵ２０２が移動許可範囲情報管理テーブル２２６（図２０）を参照する（ステップ２１７１）。
【００９９】
ＣＰＵ２０２は、移動許可範囲情報管理テーブル２２６（図２０）の中に無線ＬＡＮ  ＡＰ又は無線中継機の場所に関する情報があるか否かを判定する（ステップ２１７２）。移動許可範囲情報管理テーブル２２６（図２０）の中に無線ＬＡＮ  ＡＰ又は無線中継機の場所に関する情報がある場合は（ステップ２１７２：Ｙｅｓ）、ロボット１０１の位置から最も近い無線ＬＡＮ  ＡＰ又は無線中継機の方向へ、ロボット１０１の無線ＬＡＮ  Ｉ／Ｆ３０５が向くようにロボット１０１の姿勢を制御するための制御命令をロボット１０１へ送信する（ステップ２１７３）。
【０１００】
上記の制御命令の送信後、及び、移動許可範囲情報管理テーブル２２６（図２０）の中に無線ＬＡＮ  ＡＰ又は無線中継機の場所に関する情報がない場合は（ステップ２１７２：Ｎｏ）、ＣＰＵ２０２は、ロボット状態情報管理テーブル２２４（図１７）を参照する（ステップ２２７４）。そして制御サーバ１１０は、ロボット１０１の現在の形状が通信復旧用の形状であるか否か判定する（ステップ２１７５）。通信復旧用の形状とは、例えば、予め定められたロボット１０１の形状であって、通信品質が低いときに通信品質を改善させるのに適した形状である。
【０１０１】
ロボット１０１が通信復旧用の形状でない場合は（ステップ２１７５：Ｎｏ）、制御サーバ１１０は、ロボット１０１が自らの形状を通信復旧用の形状に変更するための制御命令をロボット１０１へ送信する（ステップ２１７６）。ロボットが通信復旧用の形状であった場合は（ステップ２１７５：Ｙｅｓ）、ステップ２１７６をスキップしてロボット状態変更処理を終了する。
【０１０２】
これにより、ロボットの向き及び形状を変化させることができる。その結果、制御サーバ１１０とロボット１０１との通信状態の改善が期待できる。
【０１０３】
図１０は通信復旧処理の例を示すフローチャートである。通信復旧処理は、通信復旧プログラム２１８が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。通信復旧プログラム２１８は、ロボット１０１の移動制御をする移動制御部として動作する。通信復旧処理は、図５の通信品質判定処理において実行される。
【０１０４】
通信復旧処理では、まずＣＰＵ２０２が、通信手段が割り当てられておらず、かつ、代替機能も起動されていない機能の優先度と所定の閾値３を以下の条件５で比較する（ステップ２１８１）。
【０１０５】
条件５：優先度≧閾値３
【０１０６】
条件５を満たさない場合は（ステップ２１８１：Ｎｏ）、通信復旧処理を終了する。
【０１０７】
一方、条件５を満たす機能がある場合、つまり、実行中であっても通信状態が不十分な機能がある場合は（ステップ２１８１：Ｙｅｓ）、通信手段切替処理（図７）が既に行われたか否かを判定する（ステップ２１８２）。通信手段切替処理が行われていた場合は（ステップ２１８２：Ｙｅｓ）、処理を終了する。
【０１０８】
通信手段切替処理が行われなかった場合は（ステップ２１８２：Ｎｏ）、通信品質情報管理テーブル２２２（図１３）を参照し、現在の位置より通信品質が高い位置の有無を判定する（ステップ２１８３）。
【０１０９】
現在の位置より通信品質が高い位置がなければ（ステップ２１８３：Ｎｏ）、制御サーバ１１０からロボット１０１へ、待機地点への移動命令が送信される（ステップ２１８４）。現在の位置より通信品質が高い位置があれば（ステップ２１８３：Ｙｅｓ）、制御サーバ１１０からロボット１０１へ通信品質が高い位置への移動命令が送信される（ステップ２１８５）。
【０１１０】
ステップ２１８４及びステップ２１８５の終了後、ＣＰＵ２０２は、移動許可範囲情報管理テーブル２２６（図２０）において、現在位置をロボット１０１の移動が許可されない範囲として更新する（ステップ２１８６）。
【０１１１】
これにより、ロボット１０１を通信状態がより良い位置に強制的に移動させ、制御サーバ１１０がロボット１０１の管理を継続できるようになる。
【０１１２】
図１１は移動判定処理の例を示すフローチャートである。移動判定処理は、移動判定プログラム２１９が制御サーバ１１０のＣＰＵ２０２で実行されることにより行われる処理である。移動判定プログラム２１９は移動判定部として動作する。移動判定プログラム２１９は、ロボット１０１の移動制御をする移動制御部として動作する。
まず、ＣＰＵ２０２は、アプリケーションサーバ１１１からロボット１０１に対する移動通知を取得し、通信品質情報管理テーブル２２２を参照して移動通知が示す移動先の位置の通信品質情報を取得する（ステップ２１９１）。
【０１１３】
次にＣＰＵ２０２は、ロボット状態情報管理テーブル２２４と機能情報管理テーブル２２１とを参照し（ステップ２１９２）、ロボット１０１が使用中の機能の要求通信品質と移動通知が示す移動先の位置の通信品質を以下の条件６で比較する（ステップ２１９３）。
【０１１４】
条件６：使用中の機能の要求品質値の合計値＞移動通知の位置の通信品質値
【０１１５】
条件６を満たさないと判定されると（ステップ２１９３：Ｎｏ）、ＣＰＵ２０２は、ロボット１０１へ移動通知が示す移動先の位置への移動命令を送信し（ステップ２２００）、処理を終了する。
【０１１６】
条件６を満たすと判定された場合は（ステップ２１９３：Ｙｅｓ）、ＣＰＵ２０２は、通信制御プログラム２１４を起動して通信制御処理（図６参照）を実行する（ステップ２１９４）。ＣＰＵ２０２は、さらに、通信手段切替プログラム２１５を起動し通信手段切替処理（図７参照）を実行する（ステップ２１９５）。ＣＰＵ２０２は、さらに、機能切替プログラム２１６を起動し機能切替処理（図８参照）を実行する（ステップ２１９６）。
【０１１７】
そしてステップ２１９４、ステップ２１９５、ステップ２１９６の実行後、ＣＰＵ２０２は、あらためて条件６を満たす機能があるか判定する（ステップ２１９７）。
【０１１８】
条件６を満たす機能がない場合は（ステップ２１９７：Ｎｏ）、ステップ２２００へ遷移する。条件６を満たす機能がある場合（ステップ２１９７：Ｙｅｓ）、ＣＰＵ２０２は、条件６を満たす機能の優先度と所定の閾値４を以下の条件７で比較する（ステップ２１９８）。
条件７：利用不可な機能の優先度≧閾値４
【０１１９】
条件７を満たすと判定されると、ＣＰＵ２０２は、移動通知に基づいてロボット１０１を移動させることが不可であることを、アプリケーションサーバ１１１に対して通知し（ステップ２１９９）、処理を終了する。条件７を満たさないと判定されると、ステップ２２２０へ遷移する。
【０１２０】
これにより、通信品質がよくない位置へロボット１０１を移動させることを未然に防止できる。
【０１２１】
図１２は機能情報管理テーブル２２１の例を示す図である。
【０１２２】
機能情報管理テーブル２２１は、ロボット１０１が実行する機能に関する情報を格納する。例えば、機能情報管理テーブル２２１には、機能を一意に識別するための機能ＩＤ２２１１と、機能ごとに要求されるロボット１０１と制御サーバ１１０との間の通信品質の情報である要求通信品質値２２１２と、通信品質値２２１２から判定される通信品質の要求レベル２２１３と、機能の優先度情報である優先度２２１４と、機能が使用できない場合の代替機能２２１５とが格納される。
【０１２３】
通信品質値２２１２は、図１２に示すように、さらにデータ転送速度などのスループット、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）及びパケットロス率を含むが、これら指標の一部のみを含むものでもよく、通信品質を示す他の指標（ジッタなど）を含んでもよい。
【０１２４】
要求レベル２２１３は、例えば、スループットが０〜１０００００ｂｐｓを１、１００００１〜１００００００ｂｐｓを２、１０００００１〜５００００００ｂｐｓを３、５０００００１〜１０００００００ｂｐｓを４、１００００００１ｂｐｓ以上を５とする。この例では、要求レベルのランクを５段階としているが、要求レベルのランクの数はいくつでもよい。
【０１２５】
代替機能２２１５には、機能ＩＤ２２１１に係る機能に代わりうる代替機能の機能ＩＤが格納される。
【０１２６】
図１３は通信品質情報管理テーブル２２２の例を示す図である。通信品質情報管理テーブル２２２はロボット１０１の最大移動範囲１０１０内の通信品質を示す情報を有する。通信品質情報管理テーブル２２２は、ロボット１０１の位置に関する情報と、ロボット１０１との通信に関する情報から生成される。
【０１２７】
通信品質情報管理テーブル２２２では、例えば、ロボット１０１の最大移動範囲１０１０が所定の大きさの格子状の領域に区分され、格子状に区分された各領域における通信品質レベルに関する情報が格納される。格子状に区分された各領域は、例えば、ＸＹ座標で特定されてもよい。通信品質レベルは、通信品質計測処理（図３）で判定されてもよい。
【０１２８】
この例では、通信品質情報管理テーブル２２２に格納される情報は通信品質レベルとしているが、これ以外でもよい。例えば、通信品質であるスループット、遅延、パケットロス率などの平均値、中央値、最大値、又は最小値としてもよい。
【０１２９】
また、無線ＬＡＮ  ＡＰ又は無線ＬＡＮを中継する中継機の位置が分かっているときは、無線ＬＡＮ  ＡＰ又は中継機の位置を示す文字、記号又は数字等がそれらが位置する格子状の領域に付加されてもよい。
【０１３０】
ロボット１０１と制御サーバ１１０との間に複数の通信手段があるとき、通信品質情報管理テーブル２２２は通信手段別に作成されてもよい。あるいは、一つの通信品質情報管理テーブル２２２が複数の通信手段の通信品質値の合計値に基づいて生成されてもよい。
【０１３１】
図１４は、通信品質マップ２２２０の例を示す図である。通信品質マップ２２２０は、通信品質情報管理テーブル２２２に基づいて、ロボット１０１の移動範囲の通信品質を可視化したマップである。例えば、通信品質マップ２２２０は、図１４に示すように、最大移動範囲１０１０を所定の大きさの格子状の領域に区分し、格子状に区分された領域において、通信品質情報管理テーブル２２２に登録されたスループットを、格子ごとに多段階に分けて表してもよい。通信品質情報管理テーブル２２２と通信品質マップ２２２０の格子は互いに対応していてもよい。
【０１３２】
例えば、スループットが０〜１０００００ｂｐｓをレベル１、１００００１〜１００００００ｂｐｓをレベル２、１０００００１〜５００００００ｂｐｓをレベル３、５０００００１〜１０００００００ｂｐｓをレベル４、１００００００１ｂｐｓ以上をレベル５とする。この例では、要求レベルのランクを５段階としているが、要求レベルのランクの数はいくつでもよい。
【０１３３】
また、マップをｘ軸、ｙ軸、ｚ軸を持つ３次元マップとし、高さ方向のｚ軸のグラフで遅延やパケットロス率、通信品質のレベルを表現してもよい。
【０１３４】
図１５は機能実施可能範囲情報管理テーブル２２３の例を示す図である。機能実施可能範囲情報管理テーブル２２３は、ロボット１０１の最大移動範囲１０１０内で各機能の要求通信品質に対する現実の通信品質の状態を示す情報を有する。機能実施可能範囲情報管理テーブル２２３は、現実の通信品質と、機能に要求される通信品質とから生成される。
【０１３５】
機能実施可能範囲情報管理テーブル２２３では、例えば、通信品質情報管理テーブル２２２と同様にロボット１０１の最大移動範囲１０１０が所定の大きさの格子状の領域に区分される。機能実施可能範囲情報管理テーブル２２３では、機能別に、格子状に区分された各領域における各機能の要求通信品質を満たすか否かを示す情報が格納される。格子状に区分された各領域は、例えば、ＸＹ座標で特定されてもよい。例えば、機能の要求通信品質を満たさない格子には、機能の要求品質を満たさないことを示す値（例えば、０）が格納されるようにしてもよい。
【０１３６】
また、無線ＬＡＮ  ＡＰ又は無線ＬＡＮを中継する中継機の位置が分かっていれば、無線ＬＡＮ  ＡＰ又は中継機の位置を示す文字、記号又は数字等がそれらが位置する格子状の領域に付加されてもよい。
【０１３７】
ロボット１０１と制御サーバ１１０との間に複数の通信手段があるとき、機能実施可能範囲情報管理テーブル２２３は通信手段別に作成されてもよい。あるいは、一つの機能実施可能範囲情報管理テーブル２２３が複数の通信手段の通信品質値の合計値に基づいて生成されてもよい。
【０１３８】
図１６は、機能実施可能範囲マップ２２３０の例を示す図である。機能実施可能範囲マップ２２３０は、機能実施可能範囲情報管理テーブル２２３に基づいてロボット１０１の最大移動範囲１０１０における機能ごとの要求通信品質に対する現実の通信品質のレベルを可視化したマップである。例えば、機能実施可能範囲マップ２２３０は、図１６に示すように、最大移動範囲１０１０を所定の大きさの格子状の領域に区分し、格子状に区分された領域において、機能実施可能範囲情報管理テーブル２２３に登録された機能別の要求通信品質に対する現実の通信品質のレベルを、格子毎に多段階に分けて可視的に表してもよい。例えば、機能の要求通信品質を満たさない領域には、機能利用不可を示す表示してもよい。機能実施可能範囲情報管理テーブル２２３と機能実施可能範囲マップ２２３０の格子は互いに対応していてもよい。
【０１３９】
図１７は、ロボット状態情報管理テーブル２２４の例を示す図である。ロボット状態情報管理テーブル２２４は機能及び形状に関するロボット１０１の状態を示す。
【０１４０】
ロボット状態情報管理テーブル２２４は、例えば、ロボット１０１の状態を一意に識別するためのＩＤであるロボット状態ＩＤ２２４１と、各機能の状態２２４２と、ロボットの形状２２４３とを有する。各機能の状態２２４２には、例えば、ロボット１０１が機能を実施する場合は１、ロボット１０１が機能を実施しない場合は０が格納されるようにしてもよい。ロボット形状２２４３には、例えば、ロボット１０１が通信復旧用形状の場合は１、その他の形状の場合は０が格納されるようにしてもよい。
【０１４１】
図１８は、機能提供範囲情報管理テーブル２２５の例を示す図である。機能提供範囲情報管理テーブル２２５は、ロボット１０１の最大移動範囲１０１０内で各機能の提供が必要な領域を示す。
【０１４２】
機能提供範囲情報管理テーブル２２５では、例えば、通信品質情報管理テーブル２２２及び機能実施可能範囲情報管理テーブル２２３と同様にロボット１０１の最大移動範囲１０１０が所定の大きさの格子状の領域に区分された領域ごとに、機能の提供が必要な範囲か否かを示す値が格納される。格子状に区分された各領域は、例えば、ＸＹ座標で特定されてもよい。機能の提供が必要な範囲か否かを示す値は、例えば、機能の提供が必要な範囲であれば１、機能の提供が必要ない範囲であれば０でよい。
【０１４３】
ロボット１０１と制御サーバ１１０との間に複数の通信手段があるとき、機能提供範囲情報管理テーブル２２５は通信手段別に作成されてもよい。あるいは、一つの機能提供範囲情報管理テーブル２２５が複数の通信手段の通信品質値の合計値に基づいて生成されてもよい。
【０１４４】
図１９は機能提供範囲マップ２２５０の例を示す図である。機能提供範囲マップ２２５０は、機能提供範囲情報管理テーブル２２５に基づいてロボット１０１の最大移動範囲１０１０内で機能の提供が必要とされる範囲を可視化したマップである。例えば、機能提供範囲マップ２２５０は、図１９に示すように、地図を所定の大きさの格子状の領域に区分し、格子状に区分された領域において、機能提供範囲情報管理テーブル２２５に登録された、機能の提供が必要な範囲か否かを示す値を、格子毎に分けて可視的に表してもよい。機能提供範囲情報管理テーブル２２５と機能提供範囲マップ２２５０の格子は互いに対応していてもよい。
【０１４５】
図２０は移動許可範囲情報管理テーブル２２６の例を示す図である。移動許可範囲情報管理テーブル２２６は、ロボット１０１の最大移動範囲１０１０内でロボット１０１が現在提供中の機能を継続して提供するために移動可能な範囲を示す。移動許可範囲情報管理テーブル２２６は、通信品質と実行中の機能の要求通信品質とから生成される。
【０１４６】
移動許可範囲情報管理テーブル２２６では、例えば、通信品質情報管理テーブル２２２、機能実施可能範囲情報管理テーブル２２３及び機能提供範囲情報管理テーブル２２５と同様にロボット１０１の最大移動範囲１０１０が所定の大きさの格子状の領域に区分される。格子状に区分された各領域は、例えば、ＸＹ座標で特定されてもよい。移動許可範囲情報管理テーブル２２６では、格子状に区分された各領域には、通信品質情報又は通信品質のレベルが格納され、ロボット１０１の移動が許可されない領域には、移動を許可しないことを示す値（例えば、０）が格納されるようにしてもよい。
【０１４７】
ロボット１０１と制御サーバ１１０との間に複数の通信手段があるとき、移動許可範囲情報管理テーブル２２６は通信手段別に作成されてもよい。あるいは、一つの移動許可範囲情報管理テーブル２２６が複数の通信手段の通信品質値の合計値に基づいて生成されてもよい。
【０１４８】
図２１は移動許可範囲マップ２２６０の例を示す図である。移動許可範囲マップ２２６０は、移動許可範囲情報管理テーブル２２６に基づいて、ロボット１０１の最大移動範囲１０１０内でロボット１０１の移動が許可される範囲を可視化したマップである。例えば、移動許可範囲マップ２２６０は、図２１に示すように、地図を所定の大きさの格子状の領域に区分し、格子状に区分された領域において、移動許可範囲情報管理テーブル２２６に登録された通信品質情報又は通信品質のレベルを、格子毎に多段階に分けて可視的に表してもよい。例えば、移動が許可されていない領域には、移動を許可しないことを示す記号を表示してもよい。移動許可範囲情報管理テーブル２２６と移動許可範囲マップ２２６０の格子は互いに対応していてもよい。
【０１４９】
図２２は機能状態情報管理テーブル２２７の例を示す図である。機能状態情報管理テーブル２２７は各機能で使用される通信手段を示す。
【０１５０】
機能状態情報管理テーブル２２７は、機能を一意に識別するためのＩＤである機能ＩＤ２２７１と、機能が割り当てられている通信手段を示す通信手段２２７２と、機能が代替機能を使用しているか否かを示す代替機能使用状態２２７３とを有する。通信手段２２７２は、ロボット１０１で機能が実行中のときに割り当てられ、実行が終了すると解除されるようにしてもよい。代替機能使用状態２２７３は、代替機能が実行中であるか否かを示す。
【０１５１】
次に、制御サーバ１１０とロボット１０１との間の通信について説明する。
【０１５２】
図２３は、通信品質マップ及び移動許可範囲マップ更新の例を示すシーケンス図である。
【０１５３】
ロボット１０１と制御サーバ１１０との間でパケットの送受信が行われると、制御サーバ１１０は通信品質計測プログラム２１１を実行して、ロボット１０１と制御サーバ１１０との間の通信品質を計測する。
【０１５４】
通信品質計測プログラム２１１が実行された結果、通信品質情報管理テーブル２２２が更新されると、制御サーバ１１０は、更新された通信品質情報管理テーブル２２２又は通信品質情報管理テーブル２２２と等価な通信品質マップ２２２０に関する情報をロボット１０１に送信する。このとき、制御サーバ１１０からロボット１０１へ、更新後の通信品質情報管理テーブル２２２又は通信品質マップ２２２０を送信してもよいし、これらの更新前との差分情報を送信してもよい。
【０１５５】
次に、制御サーバ１１０は移動許可範囲マップ作成プログラム２１２を実行し、移動許可範囲情報管理テーブル２２６を更新する。その後、制御サーバ１１０は更新された移動許可範囲情報管理テーブル２２６又は移動許可範囲情報管理テーブル２２６と等価な移動許可範囲マップ２２６０に関する情報をロボット１０１へ送信する。このとき、制御サーバ１１０からロボット１０１へ、更新後の移動許可範囲情報管理テーブル２２６又は移動許可範囲マップ２２６０を送信してもよいし、これらの更新前との差分情報を送信してもよい。
【０１５６】
制御サーバ１１０及びロボット１０１は、定期的、あるいは任意のタイミングで図２３の通信品質マップ及び移動許可範囲マップの更新を行うことができる。
【０１５７】
図２４は、ロボット１０１と制御サーバ１１０との間の通信品質を安定させる処理の例を示すシーケンス図である。
【０１５８】
ロボット１０１と制御サーバ１１０との間でパケットの送受信が行われると、制御サーバ１１０は通信品質計測プログラム２１１を実行して、ロボット１０１と制御サーバ１１０との間の通信品質を計測する。計測された通信品質が通信品質情報管理テーブル２２２に登録された値以下であった場合、通信品質計測プログラム２１１による通信品質計測処理において、通信品質判定プログラム２１３が実行される。
【０１５９】
さらに次に、通信品質判定プログラム２１３による通信品質判定処理において、通信制御プログラム２１４及び通信手段切替プログラム２１５が実行され、通信手段の切り替えが行われると、制御サーバ１１０がロボット１０１へ通信手段を切り替える命令を送信する。
【０１６０】
次に、機能切替プログラム２１６による機能切替処理において、ロボット１０１の機能の切り替えが必要と判定されると、制御サーバ１１０からロボット１０１に機能を切り替えるための命令が送信される。
【０１６１】
さらに、ロボット状態変更プログラム２１７によるロボット状態変更処理において、ロボットの形状又は向きの変更が必要と判定されると、制御サーバ１１０がロボット１０１へロボット１０１の形状又は向きを変更させる制御のための制御命令が送信される。
【０１６２】
そして通信復旧プログラム２１８による通信復旧処理において、ロボット１０１の移動が必要と判定されると、制御サーバ１１０からロボット１０１に移動命令が送信される。
【０１６３】
制御サーバ１１０は、定期的、あるいは任意のタイミングで図２４の通信安定化処理を行うことができる。
【０１６４】
図２５は実施例１のロボット１０１の構成の例を示す図である。
【０１６５】
ロボット１０１は、メモリ３０１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０２と、Ｉ／Ｏ（入出力インタフェース）３０３と、補助記憶装置３０４と、無線ＬＡＮ  Ｉ／Ｆ３０５と、短距離無線Ｉ／Ｆ３０６と、移動体通信網Ｉ／Ｆ３０７と、頭、腕、脚といったロボットの機構部分である機構部３０８と、機構部３０８を制御する機構制御部３０９と、音声等を発するスピーカ３１０と、音声等を収集するマイク３１１と、発光部３１２とを有する。以下に説明するロボット１０１が行う処理は、ＣＰＵ３０２が補助記憶装置３０４に格納されたコンピュータプログラム（ソフトウェア）を読み出して、メモリ３０１上に展開して実行することにより実現される。ロボット１０１は、無線ＬＡＮ  Ｉ／Ｆ３０５、短距離無線Ｉ／Ｆ３０６又は移動体通信網Ｉ／Ｆ３０７を介して制御サーバ１１０と通信する。
【０１６６】
Ｉ／Ｏ３０３は、ユーザがロボット１０１に指示を入力し、プログラムの実行結果などをユーザに提示するためのユーザインタフェースである。Ｉ／Ｏ３０３には、入出力デバイス（例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなど）が接続される。Ｉ／Ｏ３０３は、ネットワークを経由して接続された管理端末によって提供されるユーザインタフェースが接続されてもよい。
【０１６７】
ＣＰＵ３０２は、メモリ３０１に格納されたプログラムを実行するプロセッサである。メモリ３０１は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ：Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などが格納される。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、補助記憶装置３０２に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
【０１６８】
例えば、メモリ３０１には、位置管理プログラム３２１、通信復旧プログラム３２２が格納される。
【０１６９】
位置管理プログラム３２１は、位置管理処理（図２６参照）を実行するためのプログラムである。通信復旧プログラム３２２は、通信復旧処理（図２７参照）を実行するためのプログラムである。
【０１７０】
また、メモリ３０１は、通信品質情報管理テーブル２２２（図１３参照）、移動許可範囲情報管理テーブル２２６（図２０参照）が格納される。
【０１７１】
補助記憶装置３０４は、例えば、磁気記憶装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの大容量かつ不揮発性の記憶装置である。また、補助記憶装置３０４は、ＣＰＵ３０２により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。すなわち、プログラムは、補助記憶装置３０４から読み出されて、メモリ３０１にロードされ、ＣＰＵ３０２によって実行される。
【０１７２】
制御サーバ１１０から送信された各種テーブル又はマップは、メモリ３０１又は補助記憶装置３０４に格納され、ＣＰＵ３０２によるプログラム実行時に参照される。
【０１７３】
ロボット１０１の計算機システムは、物理的に一つの計算機上で、又は、論理的又は物理的な複数の計算機上で構成される計算機システムであり、メモリ２０１に格納されたプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。なお、プログラムの実行によって実現される処理の全部又は一部の処理をハードウェア（例えば、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）によって実現してもよい。
【０１７４】
図２６は位置管理処理の例を示すフローチャートである。位置管理処理は、位置管理プログラム３２１がロボット１０１のＣＰＵ３０２で実行されることにより行われる処理である。位置管理プログラム３２１は、位置管理部として動作する。
【０１７５】
位置管理処理では、まずＣＰＵ３０２がロボット１０１の位置情報を取得する（ステップ３２２１）。次にＣＰＵ３０２は、取得したロボット１０１の位置情報を基に移動許可範囲情報管理テーブル２２６を参照し（ステップ３２２２）、ロボット１０１の現在位置が移動許可範囲内か否かを判定する（ステップ３２２３）。
【０１７６】
ロボット１０１の現在位置が移動許可範囲内であれば、位置管理処理を終了する（ステップ３２２３：Ｙｅｓ）。
【０１７７】
一方、ロボット１０１の現在位置が移動許可範囲内でなければ（ステップ３２２３：Ｎｏ）、ＣＰＵ３０２は機構制御部３０９へ、現在位置から最も近い移動許可範囲内の位置に移動させるための指示を出して、ロボット１０１を移動許可範囲内へ移動させる（ステップ３２２４）。
【０１７８】
これにより、ロボット１０１は自らの位置を制御サーバ１１０から指示された移動許可範囲内に保つことができる。
【０１７９】
図２７は通信復旧処理の例を示すフローチャートである。通信復旧処理は、通信復旧プログラム３２２がロボット１０１のＣＰＵ３０２で実行されることにより行われる処理である。通信復旧プログラム３２２は、通信復旧処理部または位置管理部として動作する。
【０１８０】
通信復旧処理は、まずＣＰＵ３０２がロボット１０１と制御サーバ１１０の間で送受信されるパケットから、通信品質を計測する（ステップ３２３１）。ここで計測される通信品質は、例えばデータ転送速度などのスループット、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）などの遅延及びパケットロス率である。ロボット１０１は、通信品質の計測のためにテストパケットを送信してもよい。
【０１８１】
次に、ＣＰＵ３０２は計測された通信品質値と所定の閾値５を、以下の条件８で比較する（ステップ３２３２）。
【０１８２】
条件８：通信品質値≦閾値５
【０１８３】
条件８を満たさないと判定された場合は、通信復旧処理を終了する（ステップ３２３２：Ｎｏ）。
【０１８４】
条件８を満たすと判定された場合、すなわち通信品質値が閾値５以下であるときは（ステップ３２３２：Ｙｅｓ）、ＣＰＵ３０２は通信品質マップ２２２０を参照し（ステップ３２３３）、現在の位置より通信品質の良い場所があるか否か判定する（ステップ３２３４）。
【０１８５】
現在の位置より通信品質の良い場所がなければ（ステップ３２３４：Ｎｏ）、ＣＰＵ３０２は機構制御部３０９へ指示を出して、ロボット１０１を待機地点へ移動させる（ステップ３２３５）。
【０１８６】
一方、現在の位置より通信品質の良い場所があれば（ステップ３２３４：Ｙｅｓ）、ＣＰＵ３０２は機構制御部３０９へ指示を出して、ロボット１０１を現在の位置より通信品質の良い場所へ移動させる（ステップ３２３６）。
【０１８７】
これにより、ロボット１０１の位置を制御して、ロボット１０１が制御サーバ１１０と通信不能となることを回避できる。
【０１８８】
＜実施例２＞
実施例２では、中継サーバ１２０が移動体通信網１０７の通信を中継する例を説明する。以下の説明において、実施例１で説明した構成又は機能と共通するものについては、実施例１と同一の符号を付して説明を省略する場合がある。
【０１８９】
図２８は、実施例２のロボット管理システムの例を示す図である。実施例２のロボット管理システムは、自律移動可能な情報処理装置であるロボット１０１、制御装置である制御サーバ１１０、アプリケーションサーバ１１１と、ロボット１０１と制御サーバ１１０の間の移動体通信網の無線通信を中継する中継サーバ１２０を有する。
【０１９０】
ロボット１０１と制御サーバ１１０は無線通信により接続される。ロボット１０１と制御サーバ１１０を接続する通信手段は、例えば無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０４、短距離無線１０６である。無線ＬＡＮ１０４及び短距離無線１０６を用いた通信は実施例１と同様である。
【０１９１】
ロボット１０１と中継サーバ１２０は無線通信により接続される。ロボット１０１と中継サーバ１２０を接続する通信手段は、例えば移動体通信網１０７である。このとき、ロボット１０１と中継サーバ１２０は基地局装置１０８及びインターネット１０９を介して接続される。制御サーバ１１０と中継サーバ１２０は有線通信、例えばインターネット１０９を介して接続される。従って、ロボット１０１と制御サーバ１１０は、中継サーバ１２０を介して通信できる。
【０１９２】
制御サーバ１１０及び中継サーバ１２０は、それぞれ、ロボット１０１との通信情報を用いて、通信品質情報を計測する。
【０１９３】
図２９は、制御サーバ１１０の構成の例を示す図である。
【０１９４】
制御サーバ１１０は、メモリ４０１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０２と、Ｉ／Ｏ（入出力インタフェース）４０３と、補助記憶装置４０４と、無線ＬＡＮ  Ｉ／Ｆ４０５と、短距離無線Ｉ／Ｆ４０６と、移動体通信網Ｉ／Ｆ４０７と、ネットワーク  Ｉ／Ｆ４０８とを有する。以下に説明する制御サーバ１１０が行う処理は、ＣＰＵ４０２が補助記憶装置４０４に格納されたコンピュータプログラム（ソフトウェア）を読み出して、メモリ４０１上に展開して実行することにより実現される。制御サーバ１１０は、無線ＬＡＮ  Ｉ／Ｆ４０５、短距離無線Ｉ／Ｆ４０６、又は移動体通信網Ｉ／Ｆ４０７を介してロボット１０１と通信する。また、制御サーバ１１０は、ネットワーク  Ｉ／Ｆ４０８を介して中継サーバ１２０と通信する。
【０１９５】
Ｉ／Ｏ（入出力インタフェース）４０３は、ユーザが制御サーバ１１０に指示を入力し、プログラムの実行結果などをユーザに提示するためのユーザインタフェースである。Ｉ／Ｏ４０３には、入出力デバイス（例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなど）が接続される。Ｉ／Ｏ４０３は、ネットワークを経由して接続された管理端末によって提供されるユーザインタフェースが接続されてもよい。
【０１９６】
ＣＰＵ４０２は、メモリ４０１に格納されたプログラムを実行するプロセッサである。メモリ４０１は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ：Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などが格納される。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、補助記憶装置４０２に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
【０１９７】
例えば、メモリ４０１には、通信品質計測プログラム４１１、移動許可範囲マップ作成プログラム２１２、通信品質判定プログラム２１３、通信制御プログラム２１４、通信手段切替プログラム２１５、機能切替プログラム２１６、ロボット状態変更プログラム２１７、通信復旧プログラム２１８及び移動判定プログラム２１９が格納される。
【０１９８】
通信品質計測プログラム４１１は、通信品質計測処理（図３０参照）を実行するためのプログラムである。移動許可範囲マップ作成プログラム２１２〜移動判定プログラム２１９は実施例１と同じであるので説明を省略する。
【０１９９】
また、メモリ４０１に格納されている機能情報管理テーブル２２１〜機能状態情報管理テーブル２２７も実施例１と同じであるので説明を省略する。
【０２００】
補助記憶装置４０４は、例えば、磁気記憶装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの大容量かつ不揮発性の記憶装置である。また、補助記憶装置４０４は、ＣＰＵ４０２により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。すなわち、プログラムは、補助記憶装置４０４から読み出されて、メモリ４０１にロードされ、ＣＰＵ４０２によって実行される。
【０２０１】
図３０は、通信品質計測処理の例を示すフローチャートである。通信品質計測処理は、通信品質計測プログラム４１１が制御サーバ１１０のＣＰＵ４０２で実行されることにより行われる処理である。通信品質計測プログラム４１１は、通信品質計測部として動作する。本実施例の制御サーバ１１０が行う通信品質計測処理は、実施例１と同様に、無線ＬＡＮ１４０及び短距離無線１０６によりロボット１０１と直接行う通信の品質を計測する処理を含む。本実施例の通信品質計測処理は、さらに、中継サーバ１２０とロボット１０１間の通信品質に関する情報を中継サーバ１２０から取得する処理を含む。
【０２０２】
通信品質計測処理は、実施例１と同様に、ロボット１０１と制御サーバ１１０との間で送受信されるパケットを用いて通信品質を計測し、通信品質情報管理テーブル２２２を更新する。
【０２０３】
まず、ＣＰＵ４０２は、実施例１と同様に、ステップ４１１１でロボット１０１と制御サーバ１１０間の通信品質を計測し、ステップ４１１２でロボット１０１の位置情報と通信品質情報を紐付ける。
【０２０４】
次に、ＣＰＵ４０２は、中継サーバ１２０から、中継サーバ１２０の位置情報と、中継サーバ１２０とロボット１０１との通信品質とを取得する（ステップ４１１３）。中継サーバ１２０は、予めロボット１０１との間の通信品質を計測を行い（図３４参照）、制御サーバ１１０はこの計測結果を取得する。
【０２０５】
これ以降、ＣＰＵ４０２は実施例１と同様に、ロボット１０１の位置情報と対応付けられた通信品質を通信品質情報管理テーブル２２２に登録するための処理を行う（ステップ４１１４〜ステップ４１１９）。
【０２０６】
これにより、制御サーバ１１０及びロボット１０１間（中継サーバ１２０を経由する場合を含む）の最新の通信状態を示す通信品質情報がロボット１０１へ提供される。
【０２０７】
図３１は実施例２の中継サーバ１２０の構成の例を示す図である。
【０２０８】
中継サーバ１２０は、メモリ５０１と、ＣＰＵ５０２と、Ｉ／Ｏ５０３と、補助記憶装置５０４と、移動体通信網Ｉ／Ｆ５０５と、ネットワークＩ／Ｆ５０６とを有する。以下に説明する中継サーバ１２０が行う処理は、ＣＰＵ５０２が補助記憶装置５０４に格納されたコンピュータプログラムをメモリ５０１上に展開して実行することにより実現される。中継サーバ１２０は、移動体通信網Ｉ／Ｆ５０５を介してロボット１０１と通信する。また、中継サーバ１２０は、ネットワークＩ／Ｆ５０６を介して制御サーバ１１０と通信する。
【０２０９】
Ｉ／Ｏ（入出力インタフェース）５０３は、ユーザが中継サーバ１２０に指示を入力し、プログラムの実行結果などをユーザに提示するためのユーザインタフェースである。Ｉ／Ｏ５０３には、入出力デバイス（例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなど）が接続される。Ｉ／Ｏ５０３は、ネットワークを経由して接続された管理端末によって提供されるユーザインタフェースが接続されてもよい。
【０２１０】
ＣＰＵ５０２は、メモリ５０１に格納されたプログラムを実行するプロセッサである。メモリ５０１は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ：Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などが格納される。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、補助記憶装置５０２に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
【０２１１】
例えば、メモリ５０１には、情報転送プログラム５１１及び通信品質計測プログラム５１２が格納される。
【０２１２】
情報転送プログラム５１１は、情報転送処理（図３２参照）を実行するためのプログラムである。通信品質計測プログラム５１２は、通信品質計測処理（図３４参照）を実行するためのプログラムである。
【０２１３】
また、メモリ５０１には、装置情報管理テーブル５２１（図３３参照）が格納される。
【０２１４】
補助記憶装置５０４は、例えば、磁気記憶装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの大容量かつ不揮発性の記憶装置である。また、補助記憶装置５０４は、ＣＰＵ５０２により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。すなわち、プログラムは、補助記憶装置５０４から読み出されて、メモリ５０１にロードされ、ＣＰＵ５０２によって実行される。
【０２１５】
中継サーバ１２０は、物理的に一つの計算機上で、又は、論理的又は物理的な複数の計算機上で構成される計算機システムであり、メモリ５０１に格納されたプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、中継サーバ１２０と他の装置が一つの物理的又は論理的計算機に収容されてもよい。なお、プログラムの実行によって実現される処理の全部又は一部の処理をハードウェア（例えば、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）によって実現してもよい。
【０２１６】
図３２は情報転送処理の例を示すフローチャートである。情報転送処理は、情報転送プログラム５１１はＣＰＵ５０２で実行されることにより行われる処理である。情報転送処理は、ロボット１０１又は制御サーバ１１０からのパケットを受信することにより行われる処理である。
【０２１７】
情報転送処理では、まずロボット１０１又は制御サーバ１１０からのパケットを受信すると（ステップ５１１１）、ＣＰＵ５０２が受信したパケットの宛先装置を特定し、装置情報管理テーブル５２１を参照して宛先装置の情報を取得する（ステップ５１１２）。ＣＰＵ５０２は、ステップ５１１２で取得した宛先装置の情報に基づいて、ステップ５１１１で受信したパケットを転送する（ステップ５１１３）。
【０２１８】
図３３は、装置情報管理テーブル５２１の例を示す図である。
【０２１９】
装置情報管理テーブル５２１は、中継サーバ１２０と通信可能な装置に関する情報を有する。例えば、装置情報管理テーブル５２１は、装置を一意に識別するＩＤである装置ＩＤ５２１１と、装置が通信に使用するＩＰアドレス５２１２と、装置が通信に使用するポート番号５２１３が格納される。その他に装置が通信を行うための情報（ＭＡＣアドレスなど）が格納されてもよい。
【０２２０】
図３４は、通信品質計測処理の例を示すフローチャートである。通信品質計測処理は、通信品質計測プログラム５１２が中継サーバ１２０のＣＰＵ５０２で実行されることにより行われる処理である。通信品質計測プログラム５１２は、通信品質計測部として動作する。
【０２２１】
通信品質計測処理では、図３２に示す情報転送処理が行われると（ステップ５１２１）、ＣＰＵ５０２がロボット１０１と中継サーバ１２０との間で送受信されるパケットから、ロボット１０１と中継サーバ１２０間の通信品質を計測する（ステップ５１２２）。
【０２２２】
次にＣＰＵ５０２は、ロボット１０１からロボット１０１の位置情報を取得し、時間情報を基にロボット１０１の位置情報とステップ５１２２で計測した通信品質とを紐付ける（ステップ５１２３）。そして、ＣＰＵ５０２が位置情報と紐付けた通信品質を制御サーバ１１０に送信する（ステップ５１２４）。
【０２２３】
これにより、中継サーバ１２０で通信品質の計測を行うことができる。
【０２２４】
本実施例によれば、中継サーバ１２０を介して制御サーバ１１０とロボット１０１との通信を行っても、実施例１のように直接通信行うときと同様に、制御サーバ１１０とロボット１０１との通信状態を要求通信品質に保つようにロボットを制御することができる。
【０２２５】
なお、本発明を実施するための形態は、以上で説明した実施例に限定されるものではなく、様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成の一部を加えてもよい。
【０２２６】
また、前述したプログラムによる処理などは、それらの一部又は全部を、例えば集積回路で設計するなどにより、ハードウェアで実現してもよく、ハードウェアによる処理とプログラムによる処理を組み合わせてもよい。プログラムやテーブルなどの情報は、メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）などの記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤなどの記録媒体に格納することができる。また、制御線や情報線は説明上必要なものを示しており、示した以外の制御線や情報線があってもよい。
【符号の説明】
【０２２７】
１０１  ロボット
１０２  移動許可範囲
１０３  非移動許可範囲
１０４  無線ＬＡＮ
１０５  無線ＬＡＮ  ＡＰ
１０６  短距離無線
１０７  移動体通信網
１０８  基地局
１０９  インターネット
１１０  制御サーバ
【図１】
2018122906.tif 000003
【図２】
2018122906.tif 000004
【図３】
2018122906.tif 000005
【図４】
2018122906.tif 000006
【図５】
2018122906.tif 000007
【図６】
2018122906.tif 000008
【図７】
2018122906.tif 000009
【図８】
2018122906.tif 000010
【図９】
2018122906.tif 000011
【図１０】
2018122906.tif 000012
【図１１】
2018122906.tif 000013
【図１２】
2018122906.tif 000014
【図１３】
2018122906.tif 000015
【図１４】
2018122906.tif 000016
【図１５】
2018122906.tif 000017
【図１６】
2018122906.tif 000018
【図１７】
2018122906.tif 000019
【図１８】
2018122906.tif 000020
【図１９】
2018122906.tif 000021
【図２０】
2018122906.tif 000022
【図２１】
2018122906.tif 000023
【図２２】
2018122906.tif 000024
【図２３】
2018122906.tif 000025
【図２４】
2018122906.tif 000026
【図２５】
2018122906.tif 000027
【図２６】
2018122906.tif 000028
【図２７】
2018122906.tif 000029
【図２８】
2018122906.tif 000030
【図２９】
2018122906.tif 000031
【図３０】
2018122906.tif 000032
【図３１】
2018122906.tif 000033
【図３２】
2018122906.tif 000034
【図３３】
2018122906.tif 000035
【図３４】
2018122906.tif 000036
【国際調査報告】
2018122906.tif 000037
2018122906.tif 000038
2018122906.tif 000039
2018122906.tif 000040