(57)【要約】      （修正有）【課題】動的な環境内を移動するモバイルシステムを、障害物との干渉を避けて移動させる方法およびシステムを提供する。【解決手段】移動可能なシステムであるモバイルシステム１００を、障害物との干渉を避けて移動させるためにコンピュータが実行する方法であって、一つ以上のセンサ１１３からイメージセンサデータを受信する受信ステップと、前記イメージセンサデータに少なくとも部分的に基づいて、一つ以上の障害物パラメータを推定するパラメータ推定ステップと、前記一つ以上の障害物パラメータに少なくとも部分的に基づいて、出発地からナビゲーション目的地までの経路における、障害物との干渉しやすさに関する値である左障害物干渉度および右障害物干渉度を決定する干渉度決定ステップと、前記左右の障害物干渉度の差を用いて、モバイルシステムの移動方向を決定する方向決定ステップと、を含むことを特徴とする。【選択図】図１
2014123348.tif 000002
【特許請求の範囲】
【請求項１】
移動可能なシステムであるモバイルシステムを、障害物との干渉を避けて移動させるためにコンピュータが実行する方法であって、
一つ以上のセンサからイメージセンサデータを受信する受信ステップと、
前記イメージセンサデータに少なくとも部分的に基づいて、一つ以上の障害物パラメータを推定するパラメータ推定ステップと、
前記一つ以上の障害物パラメータに少なくとも部分的に基づいて、出発地からナビゲーション目的地までの経路における、障害物との干渉しやすさに関する値である障害物干渉度を決定する干渉度決定ステップと、
前記障害物干渉度に少なくとも部分的に基づいて、モバイルシステムの進行方向を決定する方向決定ステップと、
を含み、
前記障害物干渉度は、前記センサの検知範囲のうち、進行方向左側の領域に対応する障害物干渉度である左障害物干渉度と、進行方向右側の領域に対応する障害物干渉度である右障害物干渉度と、からなり、
前記方向決定ステップでは、前記左右の障害物干渉度の差を用いて、モバイルシステムの進行方向を決定する
ことを特徴とする方法。
【請求項２】
前記障害物パラメータは、障害物の数、モバイルシステムに対する障害物の相対速度、モバイルシステムと障害物との相対距離、障害物の密集度のうちの少なくともいずれか一つである
ことを特徴とする、請求項１に記載の方法。
【請求項３】
前記方向決定ステップでは、前記左右の障害物干渉度の差に基づいて、障害物との干渉がより少ない方向を決定し、当該方向をモバイルシステムの進行方向とする
ことを特徴とする、請求項１または２に記載の方法。
【請求項４】
前記ナビゲーション方向に少なくとも部分的に基づいて、前記モバイルシステムをナビゲーション目的地まで移動させるための第一のナビゲーション速度ベクトルを決定する速度決定ステップと、
前記第一のナビゲーション速度ベクトルに少なくとも部分的に基づいて、前記モバイルシステムをナビゲーション目的地まで移動させるための第一のナビゲーションコマンドを生成するコマンド生成ステップと、
をさらに含むことを特徴とする、請求項１から３のいずれかに記載の方法。
【請求項５】
前記左障害物干渉度および右障害物干渉度に少なくとも部分的に基づいて、中間目的地を決定するステップと、
ナビゲーション目的地を前記中間目的地に再設定するステップと、
をさらに含む
ことを特徴とする、請求項４に記載の方法。
【請求項６】
前記干渉度決定ステップでは、
前記一つ以上の障害物パラメータを評価関数への入力とし、前記評価関数によって前記左障害物干渉度および右障害物干渉度を決定する
ことを特徴とする、請求項４または５のいずれかに記載の方法。
【請求項７】
前記第一のナビゲーション速度ベクトルは、移動方向および移動速度を含み、
前記速度決定ステップは、
出発地とナビゲーション目的地とを結ぶ経路を決定するステップと、
前記経路に少なくとも部分的に基づいて、出発地からナビゲーション目的地までの移動速度を決定するステップと、
前記経路に少なくとも部分的に基づいて、出発地からナビゲーション目的地までの移動方向を決定するステップと、を含む
ことを特徴とする、請求項４から６のいずれかに記載の方法。
【請求項８】
前記モバイルシステムがナビゲーション目的地に到着したか否かを判定するステップと、
前記モバイルシステムがナビゲーション目的地に到着した場合に、当該目的地が中間目的地であるか否かを判定するステップと、
当該目的地が中間目的地である場合に、前記ナビゲーション目的地を出発地に再設定し、ナビゲーション目的地を最終目的地に再設定するステップと、
をさらに含む
ことを特徴とする、請求項４から７のいずれかに記載の方法。
【請求項９】
経路上に障害物が無いことを判定するステップと、
経路上に障害物が無い場合に、モバイルシステムを経路に沿って移動させる際の第二のナビゲーション速度ベクトルを決定するステップと、
前記第二のナビゲーション速度ベクトルに少なくとも部分的に基づいて、モバイルシステムを経路に沿って移動させるための第二のナビゲーションコマンドを生成するステップと、
をさらに含む
ことを特徴とする、請求項４から８のいずれかに記載の方法。
【請求項１０】
前記ナビゲーション目的地は、最終目的地または中間目的地のどちらかである
ことを特徴とする、請求項４から９のいずれかに記載の方法。
【請求項１１】
前記モバイルシステムは、ロボットである
ことを特徴とする、請求項４から１０のいずれかに記載の方法。
【請求項１２】
請求項１から１１のいずれかに記載の方法を、コンピュータに実行させるためのプログラム。
【請求項１３】
移動可能なシステムであるモバイルシステムを、障害物との干渉を避けて移動させるためのシステムであって、
一つ以上のセンサからイメージセンサデータを受信する通信モジュールと、
前記通信モジュールと通信可能に結合され、前記イメージセンサデータに少なくとも部分的に基づいて、一つ以上の障害物パラメータを推定する推定モジュールと、
前記推定モジュールと通信可能に結合され、前記一つ以上の障害物パラメータに少なくとも部分的に基づいて、出発地からナビゲーション目的地までの経路における、障害物との干渉しやすさに関する値である障害物干渉度を決定する干渉度モジュールと、
前記干渉度モジュールと通信可能に結合され、前記障害物干渉度に少なくとも部分的に基づいて、モバイルシステムの移動方向を決定するベクトルモジュールと、
を有し、
前記障害物干渉度は、前記センサの検知範囲のうち、進行方向左側の領域に対応する障害物干渉度である左障害物干渉度と、進行方向右側の領域に対応する障害物干渉度である右障害物干渉度と、からなり、
前記ベクトルモジュールは、前記左右の障害物干渉度の差を用いて、モバイルシステムの進行方向を決定する
ことを特徴とするシステム。
【請求項１４】
前記障害物パラメータは、障害物の数、モバイルシステムに対する障害物の相対速度、モバイルシステムと障害物との相対距離、障害物の密集度のうちの少なくともいずれか一つである
ことを特徴とする、請求項１３に記載のシステム。
【請求項１５】
前記ベクトルモジュールは、前記左右の障害物干渉度の差に基づいて、障害物との干渉がより少ない方向を決定し、当該方向をモバイルシステムの進行方向とする
ことを特徴とする、請求項１３または１４に記載のシステム。
【請求項１６】
前記ベクトルモジュールと通信可能に結合され、前記ナビゲーション方向に少なくとも部分的に基づいて、前記モバイルシステムをナビゲーション目的地まで移動させるための第一のナビゲーション速度ベクトルを決定するナビゲーションモジュールと、
前記ナビゲーションモジュールと通信可能に結合され、前記第一のナビゲーション速度ベクトルに少なくとも部分的に基づいて、前記モバイルシステムをナビゲーション目的地まで移動させるための第一のナビゲーションコマンドを生成するコマンドモジュールと、
をさらに有する
ことを特徴とする、請求項１３から１５のいずれかに記載のシステム。
【請求項１７】
前記ナビゲーションモジュールは、さらに
前記左障害物干渉度および右障害物干渉度に少なくとも部分的に基づいて、中間目的地を決定し、
ナビゲーション目的地を前記中間目的地に再設定する
ことを特徴とする、請求項１６に記載のシステム。
【請求項１８】
前記干渉度モジュールは、
前記一つ以上の障害物パラメータを評価関数への入力とし、前記評価関数によって前記左障害物干渉度および右障害物干渉度を決定する
ことを特徴とする、請求項１６または１７に記載のシステム。
【請求項１９】
前記第一のナビゲーション速度ベクトルは、移動方向および移動速度を含み、
前記ナビゲーションモジュールは、
出発地とナビゲーション目的地とを結ぶ経路を決定し、
前記経路に少なくとも部分的に基づいて、出発地からナビゲーション目的地までの移動速度を決定し、
前記経路に少なくとも部分的に基づいて、出発地からナビゲーション目的地までの移動方向を決定する
ことを特徴とする、請求項１６から１８のいずれかに記載のシステム。
【請求項２０】
前記ナビゲーションモジュールは、さらに
前記モバイルシステムがナビゲーション目的地に到着したか否かを判定し、
前記モバイルシステムがナビゲーション目的地に到着した場合に、当該目的地が中間目的地であるか否かを判定し、
当該目的地が中間目的地である場合に、前記ナビゲーション目的地を出発地に再設定し、ナビゲーション目的地を最終目的地に再設定する
ことを特徴とする、請求項１６から１９のいずれかに記載のシステム。
【請求項２１】
前記推定モジュールは、経路上に障害物が無いことをさらに判定し、
前記ナビゲーションモジュールは、経路上に障害物が無い場合に、モバイルシステムを
経路に沿って移動させる際の第二のナビゲーション速度ベクトルをさらに決定し、
前記コマンドモジュールは、前記第二のナビゲーション速度ベクトルに少なくとも部分的に基づいて、モバイルシステムを経路に沿って移動させるための第二のナビゲーションコマンドをさらに生成する
ことを特徴とする、請求項１６から２０のいずれかに記載のシステム。
【請求項２２】
前記ナビゲーション目的地は、最終目的地または中間目的地のどちらかである
ことを特徴とする、請求項１６から２１のいずれかに記載のシステム。
【請求項２３】
前記モバイルシステムは、ロボットである
ことを特徴とする、請求項１６から２２のいずれかに記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ナビゲーションシステムに関し、特に障害物との干渉を避けて自律的に移動するシステムおよび方法に関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、２０１２年１２月２１日に出願された米国特許出願第１３／７２４，５５５号の優先権を主張する。該出願は、その全体が本明細書中に参照として組み込まれる。
【０００３】
ロボットのような自ら移動するシステムを、動的な障害物（例えば人ごみや、静的な障害物と動的な障害物の組み合わせ等）を含む動的な環境下で移動させたいという課題がある。
一般的に、環境は連続的に変化するため、動的な環境に関して利用できる情報は非常に限られている。例えば、動的な環境において移動する物体（例えば歩行者の群れ）の数は常に変わり、また、その歩行経路と目的地は不明である。
この、環境における動的な変化は、自律的に移動するシステム（以下、モバイルシステム）を目的地までナビゲーションするため、規範を守りつつ、安全かつ衝突のおそれがない経路を決定するという課題を生み出す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１４５６６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術は、このように大勢の人ごみを含むような動的な環境において、モバイルシステムをナビゲーションするための効果的な手法を提供することができない。
また、従来の技術は、動的な環境における動きのパターンを学習するための学習データを必要とし、その性能は学習データの品質に依存する。もし、学習データが利用できない場合、もしくは学習データの品質が低い場合、従来の技術では、最適なパフォーマンスを提供することができない。
【０００６】
本発明は、上記の問題点を考慮してなされたものであり、動的な環境内を移動するモバイルシステムを、障害物との干渉を避けて移動させる方法およびシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、障害物との干渉を避けてモバイルシステムを移動させるための以下のシステムおよび方法の少なくとも一部を提供することによって従来技術の課題を解決する。
【０００８】
本発明の一形態に係るシステムは、通信モジュール、推定モジュール、干渉度モジュール、ベクトルモジュール、ナビゲーションモジュール、コマンドモジュールを含む。
具体的には、通信モジュールは、一つ以上のセンサからイメージセンサデータを受信する。推定モジュールは、前記イメージセンサデータに少なくとも部分的に基づいて、一つ以上の障害物パラメータを推定する。干渉度モジュールは、前記一つ以上の障害物パラメータに少なくとも部分的に基づいて、出発地からナビゲーション目的地までの経路における、障害物との干渉しやすさに関する値である障害物干渉度を決定する。
障害物干渉度は、センサの検知範囲のうち、進行方向左側の領域に対応する障害物干渉度である左障害物干渉度と、進行方向右側の領域に対応する障害物干渉度である右障害物干渉度と、からなり、ベクトルモジュールは、前記左右の障害物干渉度に少なくとも部分的に基づいて、ナビゲーション方向を決定するためのベクトルモデルを生成する。
また、ナビゲーションモジュールは、前記ナビゲーション方向に少なくとも部分的に基づいて、前記モバイルシステムをナビゲーション目的地まで移動させるための第一のナビゲーション速度ベクトルを決定する。コマンドモジュールは、前記第一のナビゲーション速度ベクトルに少なくとも部分的に基づいて、前記モバイルシステムをナビゲーション目的地まで移動させるための第一のナビゲーションコマンドを生成する。
【０００９】
本発明に係るシステムは、以下のような点で特に有益である。
第一に、本発明に係るシステムは、いかなる学習方法をも必要とせず、モバイルシステムを自動的に障害物のあるエリア（例えば人ごみの中）を、学習データを必要とせずに安全かつ干渉することなく通過させることができる。
第二に、本発明に係るシステムは、元の経路のローカル情報（例えば、センサの視野に対応するローカル画像センサデータ）を利用してローカル障害物干渉度を決定し、中間目的地までの最も干渉の少ない最適な経路を再設定できる。システムは、障害物との干渉を避けるために、中間目的地を経由させながらモバイルシステムを移動させ、最終目的地を目指すという段階的なナビゲーションルートをとる。
第三に、本発明に係るシステムは、モバイルシステムを、様々なタイプの障害物フロー（例えば、同方向、反対方向、交差方向、低密度、高密度等）の中を通過させるための、高速かつ機敏で、一貫性のあるアプローチを提供する。
第四に、本発明に係るシステムは、モバイルシステムを、「対向して接近しない」「似た方向に進行させる」等の社交的なふるまい基準を考慮して移動させる。これにより、移動するモバイルシステムに対してより人間らしいふるまいをさせることができる。
【００１０】
また、これらの形態の一つ以上の他の実装として、システム、装置、コンピュータプログラム、コンピュータ記憶装置上に符号化された方法の実行などが含まれる。
【発明の効果】
【００１１】
本発明によると、動的な環境内を移動するモバイルシステムを、障害物との干渉を避けて移動させる方法およびシステムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態における、障害物を回避しながらモバイルシステムを移動させるためのシステムを例示するハイレベルブロック図である。
【図２】一実施形態における、ナビゲーションアプリケーションを示すブロック図である。
【図３】一実施形態における、障害物を回避しながらモバイルシステムを移動させるための方法を示すフローチャート図である。
【図４Ａ】他の実施形態における、障害物を回避しながらモバイルシステムを移動させるための方法を示すフローチャート図である。
【図４Ｂ】他の実施形態における、障害物を回避しながらモバイルシステムを移動させるための方法を示すフローチャート図である。
【図４Ｃ】他の実施形態における、障害物を回避しながらモバイルシステムを移動させるための方法を示すフローチャート図である。
【図５】センサが取得した視野を例示する図、およびナビゲーション方向を決定するためのベクトルモデルを例示する図である。
【図６】様々なナビゲーションシナリオを、障害物の分布ごとに例示する図である。
【図７】様々なナビゲーションシナリオを、障害物の分布ごとに例示する図である。
【図８】様々なナビゲーションシナリオに対応する様々なナビゲーションアクションを例示する図である。
【図９】様々なナビゲーションシナリオに対応する様々なナビゲーションアクションを例示する図である。
【発明を実施するための形態】
【００１３】
モバイルシステムを、障害物を通過させてナビゲーションするシステムおよび方法について以下に記載する。
以下の説明では、本発明を十分に理解できるように、多くの詳細について説明する。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。たとえば、一実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【００１４】
本明細書における「１つの実施形態」または「別の実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「１つの実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【００１５】
以下の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【００１６】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【００１７】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【００１８】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【００１９】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【００２０】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【００２１】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【００２２】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【００２３】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【００２４】
なお、明細書中で用いられる「ナビゲート」「ナビゲーション」という語は、モバイルシステムを目的地に向けて移動させることを指し、「ナビゲーション方向」という語は、モバイルシステムを移動させる方向を指す。
また、明細書中で用いられる角速度（angular velocity）という語は、回転する速度ではなく、モバイルシステムを移動させる方向を表し、直線速度（linear velocity）とい
う語は、モバイルシステムが移動する速さを表す。
また、「障害物を通過（through obstacles）」という語は、障害物（例えば複数の歩
行者）が移動しているエリアを通過することを指す。
【００２５】
（システム概要）
図１は、一実施形態における、モバイルシステムのナビゲーションを行うためのシステム１００を例示するブロック図である。図示されたシステム１００は、制御部１０１、センサ１１３、モータコントローラ１１５、地図サーバ１１７を含む。
図１には、一つの制御部１０１、一つのセンサ１１３、一つのモータコントローラ１１
５、一つの地図サーバ１１７が記載されているが、制御部１０１、センサ１１３、モータコントローラ１１５、地図サーバ１１７は複数個であってもよい。
当業者であれば、システム１００が、表示装置や入力装置など、図１に示されていない他の構成要素を含んでもよいことを認識できるであろう。
【００２６】
図示した実施形態では、センサ１１３は信号線１０８を介して制御部１０１と通信可能に結合している。また、モータコントローラ１１５は信号線１１０を介して制御部１０１と通信可能に結合している。地図サーバ１１７は信号線１１４を介して制御部１０１と通信可能に結合している。
【００２７】
また、オプションとして、システム１００はリモートコントローラ１２７を含む。リモートコントローラ１２７は、信号線１１２を介して制御部１０１と通信可能に結合している。
一実施形態において、システム１００の構成要素は、オプションであるネットワーク１２５に接続される。例えば、制御部１０１は、信号線１０６を介してネットワーク１２５と結合され、地図サーバ１１７は、信号線１０４を介してネットワーク１２５と結合され、リモートコントローラ１２７は、信号線１０２を介してネットワーク１２５と結合される。
【００２８】
一実施形態において、制御部１０１、センサ１１３、モータコントローラ１１５、地図サーバ１１７のうち一つ以上は、モバイルシステムに含まれる。モバイルシステムとは、自律的に移動するノードである。例えば、モバイルシステムとはロボットである。
他の実施形態では、制御部１０１、センサ１１３、モータコントローラ１１５がモバイルシステムに含まれ、地図サーバ１１７は、ネットワーク１２５を介して制御部１０１と通信可能に結合される。
さらに別の実施形態では、センサ１１３およびモータコントローラ１１５のみがモバイルシステムに含まれる。
【００２９】
制御部１０１は、任意のプロセッサベースのコンピュータである。例えば制御部１０１は、モバイルシステムに実装されたＥＣＵ（Electronic Control Unit）である。一実施
形態において、制御部１０１は、ＳＯＣ（System On Chip）のような集積回路によって実装される。他の実施形態において、制御部１０１は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、ＰＤＡなどの、一つ以上のプロセッサが内蔵されたコンピュータである。
また、制御部１０１は、プロセッサ１０３、メモリ１０５、通信部１０７、ナビゲーションアプリケーション１０９を含む。制御部１０１のこれらの構成要素は、互いに通信可能に結合している。一実施形態において、制御部１０１は、記憶装置等（不図示）といった、その他の任意の構成要素を含む。
【００３０】
プロセッサ１０３には、算術論理演算ユニット、マイクロプロセッサ、汎用コントローラ、または計算を実行し、メモリ１０５上に記憶されたデータを取得するための他の何らかのプロセッサアレイ等が含まれる。プロセッサ１０３はデータ信号を処理し、複合命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実装するアーキテクチャが含まれる様々なコンピューティングアーキテクチャを含んでいてもよい。
制御部１０１内には、単一のプロセッサ１０３しか図示していないが、複数のプロセッサを含めることもできる。その処理能力は、画像を表示することおよび画像を取得して伝送することをサポートすることに限定され得る。また、その処理能力は、様々な種類の特徴抽出およびサンプリングを含む、より複雑なタスクを実行するのに十分であり得る。他のプロセッサ、オペレーティングシステム、センサ、表示装置および物理的構成を用いて
もよいことは当業者には明らかであろう。
【００３１】
メモリ１０５は、プロセッサ１０３によって実行される命令やデータを記憶する手段である。当該命令やデータは、本明細書中に記載の技術のいずれか、もしくは全てを実行するためのコードを含んでいてもよい。
メモリ１０５は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または当技術分野で知られている他の何らかのメモリ装置である。一実施形態において、メモリ１０５には、ハードディスクドライブ、フロッピーディスクドライブ、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）装置、デジタル多用途ディスク読取専用メモリ（ＤＶＤ−ＲＯＭ）装置、デジタル多用途ディスクランダムアクセスメモリ（ＤＶＤ−ＲＡＭ）装置、デジタル多用途ディスク書替え可能（ＤＶＤ−ＲＷ）装置、フラッシュメモリデバイス、当技術分野で知られている他の何らかの不揮発性の記憶装置など、情報を永続的に記憶するための装置も含まれる。
【００３２】
通信部１０７は、制御部１０１と、システム１００内の他のコンポーネントとの間の通信を担う手段である。例えば、通信部１０７は、センサ１１３からセンサデータを受信し、当該センサデータをナビゲーションアプリケーション１０９に送信する。
他の例では、通信部１０７は、ナビゲーションアプリケーション１０９から移動コマンドを受信し、当該移動コマンドをモータコントローラ１１５に送信する。移動コマンドについては後述する。
【００３３】
一実施形態において、通信部１０７は、制御部１０１とネットワーク１２５とを接続するためのネットワークインタフェースを含む。一実施形態において、通信部１０７は、ネットワーク１２５または他の通信チャネルと直接的な物理接続を行うためのポートを有している。例えば、通信部１０７は、ネットワーク１２５と有線通信を行うための、ユニバーサルシリアルバス（ＵＳＢ）、カテゴリ５ケーブル、または同様のポートを有している。他の実施形態では、ネットワークインタフェースモジュール１２５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Near Field
Communication：近距離無線通信）または他の好適な無線通信方法によって、ネットワーク１２５または他の通信チャネルとデータ交換を行うための無線トランシーバを有している。一実施形態において、通信部１０７は、近距離通信用のＲＦ信号を生成するＮＦＣチップを備えている。
【００３４】
他の実施形態では、通信部１０７は、Ｂｌｕｅｔｏｏｔｈ通信ネットワークや、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ダイレクトデータ接続、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、電子メール等、好適なタイプの電子通信を用いて、データを、携帯電話網を介して送受信するためのセルラ通信トランシーバを含む。
さらに、通信部１０７は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＭＴＰ等の、当業者であれば理解できる標準的ネットワークプロトコルを用いて、従来型のネットワーク接続でファイルやメディアを送受信することができる。
本明細書で説明する機能を提供するため、他のタイプのデバイスが通信部１０７に含まれうることは当業者には明らかであろう。
【００３５】
ナビゲーションアプリケーション１０９は、モバイルシステムに対するナビゲーションを行うためのコードまたはルーチンである。一実施形態において、ナビゲーションアプリケーション１０９は、プロセッサ１０３のオンチップストレージに記録されたコードまたはルーチンを含む。他の実施形態において、ナビゲーションアプリケーション１０９は、ＦＰＧＡやＡＳＩＣといったハードウェアを用いて実装される。他の実施形態では、ナビ
ゲーションアプリケーション１０９は、ハードウェアとソフトウェアの組み合わせによって実装される。
一実施形態において、ナビゲーションアプリケーション１０９は制御部１０１に含まれ、また別の実施形態では、ナビゲーションアプリケーション１０９は他の装置（例えば地図サーバ１１７やリモートコントローラ１２７）や、複数の装置の組み合わせに含まれる。そのため、ナビゲーションアプリケーション１０９は、図１中破線で記載している。
【００３６】
一実施形態において、ナビゲーションアプリケーション１０９は、以下のうち一つ以上を考慮してモバイルシステムをナビゲートする。
（１）人間は、障害物があるエリアを通過する際に、視認している情報によってのみ判断を行い、まだ視認できていない障害物についての情報は推定しない。
（２）動く物体全てが障害物となるわけではない。例えば、反対方向から接近してくる物体は障害物であるが、ナビゲーション方向と同じ方向に進行している物体は障害物にはならない。
ナビゲーションアプリケーション１０９については、図２，図３，図４Ａ〜４Ｃを参照して後ほど詳しく説明する。
【００３７】
センサ１１３は、任意のタイプのデータを収集するように構成された、任意のタイプの従来型のセンサである。たとえば、センサ１１３は、画像データ（イメージセンサデータと称する）を収集するように構成されたセンサである。
一実施形態において、センサ１１３は、ＴＯＦ（Time of Flight）カメラセンサ、ステレオカメラセンサ、３次元Ｋｉｎｅｃｔ（登録商標）カメラセンサのうちの一つである。
また、センサ１１３は、イメージセンサデータをシステム１００に提供するための、その他のタイプのセンサであってもよい。また、センサ１１３は、モバイルシステムの外部に備えられていてもよい。
【００３８】
モータコントローラ１１５は、モバイルシステムが有するモータを制御する手段である。例えば、モータコントローラ１１５は、ロボットを動かすために、方向と速度を含むロボットの動きを制御する。一実施形態において、モータコントローラ１１５は、ナビゲーションアプリケーション１０９から一つ以上の移動コマンドを受信し、当該コマンドに少なくとも部分的に基づいてモバイルシステムの動きを制御する。他の実施形態において、モータコントローラ１１５は、一つ以上の移動コマンドによってモバイルシステムの操舵を行う。さらに別の実施形態において、モータコントローラ１１５は、ナビゲーションアプリケーション１０９から停止コマンドを受信し、モバイルシステムを停止させる。
【００３９】
移動コマンドは、モバイルシステムの動きを制御するための命令である。例えば、移動コマンドは、モータコントローラ１１５に対して、指定されたナビゲーション方向（例えば前方や左前方４５度）にある目的地に、指定された直線速度（例えば５０センチメートル毎秒）でモバイルシステムを進行させるような指示を行う。
別の例では、移動コマンドは、モータコントローラ１１５に対して、モバイルシステムを減速または加速させるような指示を行う。さらに別の例では、移動コマンドは、モータコントローラ１１５に対して、モバイルシステムの走行を起動または停止させるような指示を行う。移動コマンドには、他のコマンドが含まれていてもよい。
【００４０】
地図サーバ１１７は、プロセッサおよびメモリ、オプションとしてネットワーク通信手段を有したコンピュータである。一実施形態において、地図サーバ１１７は、ナビゲーションアプリケーション１０９にナビゲーションのための地図を提供する。例えば、地図サーバ１１７は、出発地から最終目的地までの最も短い経路（あるいは一つ以上の他の経路）を表す地図データを提供する。図示した実施形態において、地図サーバ１１７は、記憶装置１２１を有している。
【００４１】
記憶装置１２１は、データを記憶する非一時的なメモリである。例えば、記憶装置１２１は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または当技術分野で知られている他の何らかのメモリ装置である。一実施形態において、記憶装置１２１には、ハードディスクドライブ、フロッピーディスクドライブ、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）装置、デジタル多用途ディスク読取専用メモリ（ＤＶＤ−ＲＯＭ）装置、デジタル多用途ディスクランダムアクセスメモリ（ＤＶＤ−ＲＡＭ）装置、デジタル多用途ディスク書替え可能（ＤＶＤ−ＲＷ）装置、フラッシュメモリデバイス、当技術分野で知られている他の何らかの不揮発性の記憶装置など、情報を永続的に記憶するための装置も含まれる。
【００４２】
図示した実施形態において、記憶装置１２１には地図データ１２３が記憶されている。地図データ１２３は、地理区分に対応する一つ以上の地図を表すデータである。例えば、地図データ１２３には、モバイルシステムがナビゲートされる建物の間取りを表すデータが含まれる。他の例では、地図データ１２３には、モバイルシステムがナビゲートされる道路の歩道を表すデータが含まれる。地図データには、他のデータが含まれていてもよい。
【００４３】
オプションであるリモートコントローラ１２７は、プロセッサおよびメモリ、ネットワーク通信手段を有したコンピュータである。例えば、リモートコントローラ１２７は、モバイルシステムを遠隔で制御する装置である。一実施形態において、リモートコントローラ１２７は、ナビゲーションアプリケーション１０９をオプションとして含む。
【００４４】
オプションであるネットワーク１２５は、有線または無線による従来型のネットワークであり、スター型、トークンリング型など、当業者にとって公知などのような構成を有していてもよい。
一実施形態において、ネットワーク１２５は、ローカルエリア接続（ＬＡＮ）、インターネットなどの広域ネットワーク接続（ＷＡＮ）、複数の装置が相互接続されたデータパスのうちの一つ以上を含む。
他の実施形態において、ネットワーク１２５は、ピアツーピアネットワークである。ネットワーク１０５は、異なる通信プロトコルの様々なデータを送信するための通信ネットワークに接続され、または一部が含まれている。例えば、ネットワーク１２５は３Ｇまたは４Ｇネットワークである。さらに別の実施形態では、ネットワーク１２５は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワークや、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ダイレクトデータ接続、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、電子メール等を介してデータを送受信するための携帯電話通信網を含む。
さらに別の実施形態では、ネットワーク１２５のリンクの全部または一部は、セキュアソケットレイヤ（ＳＳＬ）、セキュアＨＴＴＰおよび、または仮想プライベートネットワーク（ＶＰＮ）などの暗号化技術を用いて暗号化される。
【００４５】
（ナビゲーションアプリケーション）
図２を参照しながら、ナビゲーションアプリケーション１０９について詳しく説明する。図２は、一実施形態におけるコンピュータ２００を表すブロック図である。コンピュータ２００は、ナビゲーションアプリケーション１０９、プロセッサ２３５、メモリ２３７、通信部２３９、記憶装置２４３を含む。コンピュータ２００のこれらの構成要素は、バス２２０によって通信可能に結合している。
一実施形態において、コンピュータ２００は、制御部１０１、地図サーバ１１７、リモートコントローラ１２７のうちのいずれかである。
【００４６】
プロセッサ２３５は、プロセッサ１０３と同様の機能を提供するものであるため、詳細な説明は省略する。メモリ２３７は、メモリ１０５と同様の機能を提供するものであるため、詳細な説明は省略する。通信部２３９は、通信部１０７と同様の機能を提供するものであるため、詳細な説明は省略する。
プロセッサ２５３は、信号線２２２を介してバス２２０と通信可能に結合している。メモリ２３７は、信号線２２４を介してバス２２０と通信可能に結合している。通信部２３９は、信号線２２６を介してバス２２０と通信可能に結合している。
【００４７】
記憶装置２４３は、データを記憶する非一時的なメモリである。例えば、記憶装置２４３は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または当技術分野で知られている他の何らかのメモリ装置である。
一実施形態において、記憶装置２４３には、ハードディスクドライブ、フロッピーディスクドライブ、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）装置、デジタル多用途ディスク読取専用メモリ（ＤＶＤ−ＲＯＭ）装置、デジタル多用途ディスクランダムアクセスメモリ（ＤＶＤ−ＲＡＭ）装置、デジタル多用途ディスク書替え可能（ＤＶＤ−ＲＷ）装置、フラッシュメモリデバイス、当技術分野で知られている他の何らかの不揮発性の記憶装置など、情報を永続的に記憶するための装置も含まれる。
【００４８】
一実施形態において、記憶装置２４３は、本明細書に表された機能を提供するためのデータを記憶する。
例えば、記憶装置２４３は、出発地点、中間目的地、最終目的地、経路のうち少なくとも一つ以上、または、経路における障害物パラメータ、左障害物干渉度、右障害物干渉度のうち少なくとも一つ以上を記憶する。
他の例では、記憶装置２４３は、ナビゲーション速度ベクトルや、モバイルシステムを出発地点から目的地（中間目的地、最終目的地）へ移動させるための移動コマンドを記憶する。
左障害物干渉度、右障害物干渉度、ナビゲーション速度ベクトルについては後ほど詳しく説明する。
また、他の実施形態において、記憶装置２４３は、センサ１１３から受信したイメージセンサデータを記憶する。
【００４９】
図示した実施形態において、ナビゲーションアプリケーション１０９は、通信モジュール２０１、環境構成モジュール２０３、経路モジュール２０５、推定モジュール２０７、干渉度モジュール２０９、ベクトルモジュール２１１、ナビゲーションモジュール２１３、コマンドモジュール２１５、ユーザインタフェースモジュール２１７を含む。
【００５０】
ナビゲーションアプリケーション１０９のこれらの構成要素は、互いに、または、コンピュータ２００の他の構成要素と通信可能なように、バス２２０と通信可能に結合されている。
【００５１】
通信モジュール２０１は、プロセッサ２３５で実行されるコードまたはルーチンであり、ナビゲーションアプリケーション１０９の構成要素と、システム１００の他の構成要素との間の通信を担う手段である。
例えば、通信モジュール２０１は、通信部２３９を介してセンサ１１３からイメージセンサデータを受信し、推定モジュール２０７へ当該イメージセンサデータを送信する。
一実施形態において、通信モジュール２０１は、コマンドモジュール２１５から移動コマンドを受信し、通信部２３９を介してモータコントローラ１１５に当該移動コマンドを送信する。
他の実施形態において、通信モジュール２０１は、地図サーバ１１７から地図データを受信し、経路モジュール２０５に当該地図データを送信する。
通信モジュール２０１は、信号線２３０を介してバス２２０と通信可能に結合している。
【００５２】
一実施形態において、通信モジュール２０１は、ユーザインタフェースモジュール２１７からグラフィックデータを受信し、ユーザインタフェースを表示するために、制御部１０１に当該グラフィックデータを送信する。
他の実施形態において、通信モジュール２０１は、ナビゲーションアプリケーション１０９の他の構成要素（例えばナビゲーションモジュール２１３）からデータ（例えばナビゲーション速度ベクトルデータ）を受信し、当該データを記憶装置２４３に記憶させる。
さらに他の実施形態において、通信モジュール２０１は、データを記憶装置２４３から取得し、ナビゲーションアプリケーション１０９の他の構成要素に送信する。
通信モジュール２０１は、本明細書に記載された通信を扱うための任意の機能を提供してもよい。
【００５３】
環境構成モジュール２０３は、ナビゲーションパラメータを構成するためにプロセッサ２３５で実行されるコードまたはルーチンである。環境構成モジュール２０３は、信号線２３２を介してバス２２０と通信可能に結合している。
ナビゲーションパラメータの例には、ナビゲーションを行う際の出発地点および目的地（中間目的地または最終目的地）が含まれるが、これに限定されるものではない。
最終目的地とは、モバイルシステムをナビゲートする最終的な目的地である。
中間目的地とは、モバイルシステムが最終目的地に到着する前に到達する任意の目的地である。
ナビゲーション目的地とは、モバイルシステムがナビゲートされる任意の目的地である。例えば、ナビゲーション目的地は、最終目的地または中間目的地のうちの一つである。
【００５４】
一実施形態において、環境構成モジュール２０３は、ナビゲーションにおける出発地点を決定する。
例えば、環境構成モジュール２０３は、全地球測位システム（ＧＰＳ）を用いてモバイルシステムの現在位置を取得し、当該現在位置をナビゲーションの出発地点とする。
別の例では、環境構成モジュール２０３は、ユーザから地点の指定を受け付け、当該地点をナビゲーションの出発地点とする。
さらに別の例では、環境構成モジュール２０３が、ナビゲーションモジュール２１３から、モバイルシステムがナビゲーション目的地に到着したことを示す信号を受信したとする。当該ナビゲーション目的地が、最終目的地ではない場合、環境構成モジュール２０３は、到着したナビゲーション目的地を、次のナビゲーションにおける出発地点に設定する。
【００５５】
一実施形態において、環境構成モジュール２０３は、ナビゲーションにおけるナビゲーション目的地を決定する。
例えば、環境構成モジュール２０３は、通信モジュール２０１を介して、ユーザによって指定された最終目的地を取得し、当該最終目的地をナビゲーション目的地として設定する。
他の例では、環境構成モジュール２０３は、ナビゲーションモジュール２１３から中間目的地を受信し、当該中間目的地をナビゲーション目的地として設定する。
さらに他の例では、環境構成モジュール２０３が、ナビゲーションモジュール２１３から、モバイルシステムがナビゲーション目的地に到着したことを示す信号を受信したとする。当該ナビゲーション目的地が、最終目的地ではない場合、環境構成モジュール２０３は、最終目的地を、次のナビゲーションにおけるナビゲーション目的地として設定する。
【００５６】
経路モジュール２０５は、出発地点からナビゲーション目的地に至る経路を決定するためにプロセッサ２３５で実行されるコードまたはルーチンである。
図示の実施形態において、経路モジュール２０５は、信号線２３４を通してバス２２０と通信可能に結合している。
一実施形態において、経路モジュール２０５は、環境構成モジュール２０３から、出発地点とナビゲーション目的地を表すデータを受信する。また、経路モジュール２０５は、地図サーバ１１７から地図データを受信する。そして、経路モジュール２０５は、地図データに少なくとも部分的に基づいて、出発地点からナビゲーション目的地に至る経路を決定する。
例えば、経路モジュール２０５は、地図データによって表される地図に少なくとも部分的に基づいて、出発地点からナビゲーション目的地までの一つ以上の経路を決定し、当該一つ以上の経路から好ましい経路を選択する。
【００５７】
一実施形態において、好ましい経路とは、出発地点からナビゲーション目的地までの距離が最も小さい経路である。例えば、好ましい経路は、出発地点とナビゲーション目的地（例えば中間目的地または最終目的地）とを結ぶ直線経路である。他の実施形態において、好ましい経路は、その他の経路と比べて障害物が最も少ない経路である。
【００５８】
推定モジュール２０７は、一つ以上の障害物パラメータを推定する、プロセッサ２３５で実行されるコードまたはルーチンである。図示の実施形態において、推定モジュール２０７は、信号線２３６を介してバス２２０と通信可能に結合している。
障害物とは、経路上においてモバイルシステムの動きを妨げる任意の物体である。例えば、経路上に倒れこんでいる木は、経路によってナビゲートされるモバイルシステムにとっての障害物である。
一実施形態において、経路上の障害物は、移動しない静的なオブジェクト（静的障害物とも呼ばれる）である。例えば、経路上にある石は静的障害物である。
他の実施形態において、経路上の障害物は、移動するオブジェクト（動的障害物と呼ばれる）である。例えば、道路を歩く歩行者の群れは、当該道路を移動する、または当該道路を横断しようとするモバイルシステムにとっての動的障害物である。
さらに他の実施形態において、経路上の障害物は、静的障害物および動的障害物の組み合わせを含む。
【００５９】
障害物パラメータとは、一つ以上の障害物を表すパラメータである。例えば、障害物パラメータは、以下のうちの一つを表すデータである。
（１）経路上で検出された障害物の数（例えばセンサ１１３の視野から検出された人の数）
（２）モバイルシステム（例えばロボット）から各障害物までの距離
（３）モバイルシステムに対する各障害物の移動速度
（４）障害物の範囲分布要素
【００６０】
センサ１１３の視野とは、センサ１１３によって捉えられる視野範囲である。視野の例を、図５（Ａ）に示す。
障害物の範囲分布要素とは、障害物の分布状況を表すパラメータである。例えば、人の群れに対する範囲分布要素は、群れの中にいる人の分布を表し、群れの中にいる人の位置によって決定される。
【００６１】
一実施形態において、推定モジュール２０７は、通信モジュール２０１を介してセンサ１１３からイメージセンサデータを受信する。イメージセンサデータは、出発地点からナビゲーション目的地までの経路の少なくとも一部における環境を捉えることができる。例
えば、イメージセンサデータは、出発地点からナビゲーション目的地までを直線で結んだ経路に関連付いた、センサ１１３の視野における環境を捉えることができる。
推定モジュール２０７は、イメージセンサデータを処理し、センサ１１３の視野内の環境に障害物が無いか決定する。例えば、推定モジュール２０７は、出発地点からナビゲーション目的地までの直線経路における環境に障害物が無いか決定する。
【００６２】
経路環境に障害物が無い場合、推定モジュール２０７は、ナビゲーションモジュール２１３に対して障害物が無い旨の信号を送信し、ナビゲーションモジュール２１３は、当該経路によってモバイルシステムをナビゲーション目的地まで移動させるためのナビゲーション速度ベクトルを生成する。
例えば、出発地点から最終目的地へ至る直線経路上に障害がない場合、推定モジュール２０７は、ナビゲーションモジュール２１３に対して、当該直線に沿ってモバイルシステムを最終目的地まで移動させるためのナビゲーション速度ベクトルを生成するように指示する。
【００６３】
一方、経路環境に障害物がある場合、推定モジュール２０７は、イメージセンサデータを用いて、経路上の障害物を表す一つ以上の障害物パラメータを推定する。例えば、推定モジュール２０７は、イメージセンサデータを処理し、以下のような一つ以上の障害物パラメータを推定する。
（１）センサ１１３の視野から検出された、経路上の人の数
（２）モバイルシステムから各人までの距離
（３）各人のモバイルシステムに対する移動速度
（４）人の範囲分布要素
【００６４】
一実施形態において、一つ以上の障害物パラメータは、一つ以上の移動する物体（例えば経路上を歩いている歩行者）を表す。
他の実施形態において、一つ以上の障害物パラメータは、一つ以上の静的な物体を表す。
さらに他の実施形態において、一つ以上の障害物パラメータは、移動する物体と静的な物体の組み合わせを表す。
また、一実施形態において、一つ以上の障害物パラメータは、後述する左障害物パラメータと右障害物パラメータを含む。
【００６５】
一実施形態において、モバイルシステムが有するセンサ１１３は、ナビゲーション目的地の方向を向いて設置されている。
推定モジュール２０７は、センサ１１３から、センサ１１３の視野のうち、左側部分に関連したイメージセンサデータを受信する。これを左イメージセンサデータと称する。
図５（Ａ）のうち、経路５０６と、符号５１０で表された直線で囲まれた領域が左イメージセンサデータの例である。推定モジュール２０７は、左イメージセンサデータに対応する領域に少なくとも部分的に基づいて、センサ１１３の視野の左側領域における一つ以上の障害物パラメータを決定する。これを左障害物パラメータと称する。
左障害物パラメータは、センサ１１３の視野の左側領域にある障害物を表すパラメータである。例えば、推定モジュール２０７は、以下のような一つ以上の左障害物パラメータを推定する。
（１）センサ１１３の視野の左側領域から検出された、経路上の人の数
（２）モバイルシステムから、視野の左側領域にいる各人までの距離
（３）視野の左側領域にいる各人のモバイルシステムに対する移動速度
（４）視野の左側領域にいる人の範囲分布要素
【００６６】
また、推定モジュール２０７は、センサ１１３から、センサ１１３の視野のうち、右側
部分に関連したイメージセンサデータを受信する。これを右イメージセンサデータと称する。
図５（Ａ）のうち、経路５０６と、符号５１２で表された直線で囲まれた領域が右イメージセンサデータの例である。推定モジュール２０７は、右イメージセンサデータに対応する領域に少なくとも部分的に基づいて、センサ１１３の視野の右側領域における一つ以上の障害物パラメータを決定する。これを右障害物パラメータと称する。
右障害物パラメータは、センサ１１３の視野の右側領域にある障害物を表すパラメータである。例えば、推定モジュール２０７は、以下のような一つ以上の右障害物パラメータを推定する。
（１）センサ１１３の視野の右側領域から検出された、経路上の人の数
（２）モバイルシステムから、視野の右側領域にいる各人までの距離
（３）視野の右側領域にいる各人のモバイルシステムに対する移動速度
（４）視野の右側領域にいる人の範囲分布要素
【００６７】
一実施形態において、推定モジュール２０７は、左障害物パラメータと右障害物パラメータを含む一つ以上の障害物パラメータを記憶装置２４３に記憶させる。
他の実施形態において、推定モジュール２０７は、干渉度モジュール２０９に一つ以上の障害物パラメータを送信する。
【００６８】
干渉度モジュール２０９は、障害物干渉度を生成するための、プロセッサ２３５で実行されるコードまたはルーチンである。
図示した実施形態において、干渉度モジュール２０９は、信号線２３８を介してバス２２０と通信可能に結合している。障害物干渉度は、センサ１１３の視野における障害物の密集度を表しているデータである。たとえば、障害物干渉度は、センサ１１３が捉えることができる範囲の中での障害物の密集度を表すデータである。
なお、障害物干渉度は、必ずしも障害物の密集度のみを表すものではない。例えば、特定の領域における障害物干渉度は、当該領域にある障害物の数や、障害物との相対速度、または距離に応じて定まる、当該領域における、障害物との干渉しやすさを表す値である。
一実施形態において、障害物干渉度は、センサ１１３が捉えることができる範囲の中で、ローカルイメージセンサデータのようなローカル情報を用いて決定されるローカルの干渉度である。
一実施形態において、干渉度モジュール２０９は、推定モジュール２０７から一つ以上の障害物パラメータを受信し、効用関数を用いて障害物干渉度を決定する。
【００６９】
効用関数とは、以下のうちの一つ以上を構成要素とする関数である。
（１）センサ１１３の視野から検出された障害物の数
（２）障害物のモバイルシステムに対する移動速度
（３）モバイルシステムから障害物までの距離
（４）センサ１１３のセンサ範囲
【００７０】
例えば、干渉度モジュール２０９は、一つ以上の障害物パラメータを効用関数への入力とし、当該効用関数を用いて左障害物干渉度と右障害物干渉度をそれぞれ決定する。なお、左障害物干渉度および右障害物干渉度については後述する。
さらに他の例では、干渉度モジュール２０９は、数式１に示したような障害物干渉度Densityを決定する。
【数１】
2014123348.tif 000003
【００７１】
ここで、ｔは、障害物を検知した時刻を表す。また、Ｒｍａｘは、最大センサ範囲を、Ｒｍｉｎは、最小センサ範囲を表す。また、φは、センサ１１３の視野を表す。また、ｆ、ｆ１、ｆ２は、異なる効用関数を表す。
効用関数の例について、図５（Ａ）を参照しながら説明する。
【００７２】
ｎ、ｘ１…ｘｎ、ｙ１…ｙｎ、ｖ、Ｋｒｄｆは、様々な障害物パラメータを表す。例えば、ｎは、センサ１１３の視野内における障害物の数（例えば人の数）を表す。ｘ１…ｘｎは、モバイルシステムから人までの距離のＸ軸成分を表す。ｙ１…ｙｎは、モバイルシステムから人までの距離のＹ軸成分を表す。ｖは、モバイルシステムに対する障害物の平均的な相対速度（例えばロボットと歩行者との間の平均相対速度）を表す。Ｋｒｄｆは、範囲分布要素を表す。
【００７３】
一実施形態において、障害物干渉度は、左障害物干渉度と右障害物干渉度のうちの一つである。モバイルシステムに取り付けられたセンサ１１３が、ナビゲーション目的地の方向を向いているとき、左障害物干渉度は、センサ１１３の視野の左側領域の障害物干渉度である。例えば、左障害物干渉度は、出発地点からナビゲーション目的地に至る経路の左手方向の障害物干渉度である。右障害物干渉度は、センサ１１３の視野の右側領域の障害物干渉度である。例えば、右障害物干渉度は、出発地点からナビゲーション目的地に至る経路の右手方向の障害物干渉度である。
【００７４】
一実施形態では、干渉度モジュール２０９は、左障害物干渉度を決定するための効用関数を適用するために、効用関数への入力として、一つ以上の左障害物パラメータを使用する。例えば、干渉度モジュール２０９は、センサ１１３の視野の左側領域に関連した障害物パラメータの値（例えばｎ、ｘ１…ｘｎ、ｙ１…ｙｎ、ｖ、Ｋｒｄｆ）、を効用関数へ入力し、効用関数の出力として、左障害物干渉度を得る。
また、干渉度モジュール２０９は、右障害物干渉度を決定するための効用関数を適用するために、効用関数への入力として、一つ以上の右障害物パラメータを使用する。例えば、干渉度モジュール２０９は、センサ１１３の視野の右側領域に関連した障害物パラメータの値（例えばｎ、ｘ１…ｘｎ、ｙ１…ｙｎ、ｖ、Ｋｒｄｆ）、を効用関数へ入力し、効用関数の出力として、右障害物干渉度を得る。
左障害物干渉度および右障害物干渉度を決定する例を、図５（Ａ）に示す。
【００７５】
一実施形態において、干渉度モジュール２０９は、左障害物干渉度および右障害物干渉度を記憶装置２４３に記憶させる。他の実施形態において、干渉度モジュール２０９は、左障害物干渉度および右障害物干渉度をベクトルモジュール２１１へ送信する。
【００７６】
ベクトルモジュール２１１は、ナビゲーション方向を決定するためのベクトルモデルを生成する、プロセッサ２３５で実行されるコードまたはルーチンである。図示した実施形態において、ベクトルモジュール２１１は、信号線２４０を介してバス２２０と通信可能に結合している。一実施形態において、ベクトルモジュール２１１は、左障害物干渉度（ＤＬと表す）および右障害物干渉度（ＤＲと表す）を干渉度モジュール２０９から取得する。なお、障害物干渉度はベクトルで表されるが、本明細書の本文で表記する際は、ベクトルを表す記号を、当該要素がベクトルであることを明示したうえで省略する。
一実施形態において、左障害物干渉度および右障害物干渉度は、互いに反対の方向を持
つ。例えば、ｕｙを、出発地点とナビゲーション目的地とを結ぶ直線経路に直交する方向を持つ単位ベクトルであるとすると、左障害物干渉度はＤＬ＝１０ｕｙであり、右障害物干渉度はＤＲ＝−１２ｕｙである。例えば、ｕｘを、出発地点とナビゲーション目的地とを結ぶ直線経路の方向の単位ベクトルであるとすると、ｕｙはｕｘと直交する。ｕｘおよびｕｙの例を、図５（Ａ）に示す。
【００７７】
ベクトルモジュール２１１は、左障害物干渉度および右障害物干渉度を合成したベクトルである合成干渉度（Ｄｎｅｔと表す）および方向ベクトル（Ｖｄｉｒと表す）を生成するためのベクトルモデルを決定する。ベクトルモデルの例を図５（Ｂ）および図６，図７に示す。例えば、ベクトルモジュール２１１は、Ｄｎｅｔ＝ＤＬ＋ＤＲを求め、合成干渉度とする。
【００７８】
また、ベクトルモジュール２１１は、方向ベクトルを決定するために、Ｖｄｉｒ＝Ｄｎｅｔ＋ｕｘを求める。
【００７９】
ベクトルモジュール２１１は、方向ベクトルＶｄｉｒと同じ方向をナビゲーション方向として決定する。例えば、方向ベクトルＶｄｉｒが、出発地点とナビゲーション目的地とを結ぶ直線経路から左に４５度離れている場合、ベクトルモジュール２１１は、ナビゲーション方向を、同様に、出発地点とナビゲーション目的地とを結ぶ直線経路から左に４５度離れた方向とする。
一実施形態において、ナビゲーション方向は、モバイルシステムを中間目的地にナビゲートする新しい方向である。中間目的地については、後ほどより詳細に説明する。
一実施形態において、ナビゲーション方向は、モバイルシステムを障害物が最も少ない新しい経路に沿ってナビゲーションできるような、最も障害物干渉度が少ない方向である。
【００８０】
一実施形態において、ベクトルモジュール２１１は、ナビゲーション方向を記憶装置２４３に記憶させる。他の実施形態において、ベクトルモジュール２１１は、ナビゲーションモジュール２１３にナビゲーション方向を送信する。
【００８１】
ナビゲーションモジュール２１３は、モバイルシステムのナビゲーション速度ベクトルや中間目的地を決定するための、プロセッサ２３５で実行されるコードまたはルーチンである。
ナビゲーション速度ベクトルとは、モバイルシステムを出発地点からナビゲーション目的地にナビゲーションする際のベクトルである。一実施形態において、ナビゲーション速度ベクトルは、直線速度および角速度を含む。角速度は、モバイルシステムをナビゲーションする方向（例えば、直進、直線経路に対して左斜め４５度、等）を表す。直線速度は、モバイルシステムがナビゲーション方向に沿って移動する際の速さ（例えば秒速０．５メートル）である。
図示した実施形態において、ナビゲーションモジュール２１３は、信号線２４２を介してバス２２０と通信可能に結合している。
【００８２】
一実施形態において、ナビゲーションモジュール２１３は、推定モジュール２０７から、出発地点からナビゲーション目的地（例えば最終目的地）までの経路上に障害物が無い旨の信号を受信する。そして、ナビゲーションモジュール２１３は、ナビゲーション目的地に至る当該経路に沿ってモバイルシステムをナビゲーションする際のナビゲーション速度ベクトルを決定する。
例えば、直線経路上に障害物が無い場合、ナビゲーションモジュール２１３は、ナビゲーション目的地にまっすぐ向かう直線経路方向を角速度として決定する。そして、ナビゲーションモジュール２１３は、出発地点とナビゲーション目的地との距離（例えば１０メ
ートル）と、ナビゲーションにかける時間（例えば２０秒）から決定した平均速度（例えば秒速０．５メートル）を、直線速度として決定する。
【００８３】
他の実施形態において、ナビゲーションモジュール２１３は、ベクトルモジュール２１１からナビゲーション方向を受信し、受信したナビゲーション方向を角速度として決定する。
また、ナビゲーションモジュール２１３は、以下に述べるように中間目的地を決定し、当該中間目的地を用いてナビゲーション目的地を更新する。例えば、ナビゲーションモジュール２１３は、環境構成モジュール２０３に対して、中間目的地をナビゲーション目的地としてセットするように指示する。そして、ナビゲーションモジュール２１３は、出発地点と、更新されたナビゲーション目的地とを結ぶ経路を更新するように経路モジュール２０５に指示する。
そして、ナビゲーションモジュール２１３は、出発地点とナビゲーション目的地との距離（例えば１０メートル）と、ナビゲーションにかける時間（例えば２０秒）から決定した平均速度（例えば秒速０．５メートル）を、直線速度として決定する。
ナビゲーションモジュール２１３は、ナビゲーション速度ベクトルを、決定した角速度および直線速度を用いて更新する。
【００８４】
一実施形態において、ナビゲーションモジュール２１３は、一つ以上の障害物パラメータに少なくとも部分的に基づいて、直線速度を決定する。例えば、障害物パラメータが、歩行者群の移動方向がモバイルシステムの角速度（あるいはナビゲーション方向）に対して垂直であることを示している場合、ナビゲーションモジュール２１３は、当該歩行者群を横切るために、直線速度を最小とする。
例えば、図８（Ｆ），図８（Ｈ），図９（Ｆ），図９（Ｈ）のようにモバイルシステムが人の流れを横断する場合、ナビゲーションモジュール２１３は、モバイルシステムに対して、速度を落として当該人の流れを注意深く横断するように指示する。
【００８５】
一実施形態において、ナビゲーションモジュール２１３は、ナビゲーション速度ベクトルを記憶装置２４３に記憶させる。他の実施形態において、ナビゲーションモジュール２１３は、コマンドモジュール２１５にナビゲーション速度ベクトルを送信する。
【００８６】
一実施形態において、ナビゲーションモジュール２１３は、ナビゲーション方向、当該方向における一つ以上の障害物パラメータ、左右の障害物干渉度等のうちの一つ以上に少なくとも部分的に基づいて、障害物との干渉を避けるための中間目的地を決定する。
【００８７】
例えば、ナビゲーションモジュール２１３は、ナビゲーション方向において最も障害物が少ない地点を中間目的地として決定する。
別の例では、ナビゲーションモジュール２１３は、ナビゲーション方向において最も障害物干渉度が少ない地点を中間目的地として決定する。
さらに別の例では、モバイルシステムの管理者が、中間目的地を決定し、ナビゲーションモジュール２１３に当該中間目的地を提供する。
【００８８】
一実施形態において、ナビゲーションモジュール２１３は、モバイルシステムのナビゲーション処理を監視し、モバイルシステムがナビゲーション目的地に到着したか否かを判断する。
例えば、ナビゲーションモジュール２１３は、モバイルシステムをナビゲーション目的地にナビゲートしつつ、ＧＰＳを用いてモバイルシステムの位置を追跡する。そして、ナビゲーションモジュール２１３は、検出した位置と、ナビゲーション目的地との距離が所定の値（例えば１メートル以下、０．３メートル以下等）よりも小さくなった場合に、モバイルシステムがナビゲーション目的地に到着したと判断する。
【００８９】
モバイルシステムがナビゲーション目的地に到着した場合、ナビゲーションモジュール２１３は、到着したナビゲーション目的地が最終目的地であるか否かを判定する。
もし、到着したナビゲーション目的地が最終目的地であった場合、ナビゲーションモジュール２１３は、コマンドモジュール２１５に対して、モバイルシステムの移動を停止する指示を行う。
もし、到着したナビゲーション目的地が最終目的地ではない場合（例えば中間目的地であった場合）は、ナビゲーションモジュール２１３は、環境構成モジュール２０３に対して、到着した中間目的地を次のナビゲーションの新しい出発地点として設定し、最終目的地を新しいナビゲーション目的地として設定する指示を行う。
そして、ナビゲーションアプリケーション１０９は、到着した中間目的地から最終目的地への、モバイルシステムに対する新しいナビゲーションを開始する。
【００９０】
コマンドモジュール２１５は、一つ以上の移動コマンドを生成する、プロセッサ２３５で実行されるコードまたはルーチンである。図示した実施形態において、コマンドモジュール２１５は、信号線２４４を介してバス２２０と通信可能に結合している。
一実施形態において、コマンドモジュール２１５は、ナビゲーションモジュール２１３から、モバイルシステムが最終目的地に到着したことを表す信号を取得する。そして、コマンドモジュール２１５は、停止コマンドを生成し、モータコントローラ１１５に送信する。これにより、モータコントローラ１１５はモバイルシステムの移動を停止させる。
【００９１】
一実施形態において、コマンドモジュール２１５は、ナビゲーションモジュール２１３からナビゲーション速度ベクトルを受信し、当該ナビゲーション速度ベクトルに少なくとも部分的に基づいて、一つ以上の移動コマンドを生成する。
一つ以上の移動コマンドとは、ナビゲーション速度ベクトルを用いてモバイルシステムを移動させるための命令を含む。
コマンドモジュール２１５は、モータコントローラ１１５に一つ以上の移動コマンドを送信し、モータコントローラ１１５は、当該ナビゲーション速度ベクトルによってモバイルシステムをナビゲーション目的地へ移動させる。
一実施形態において、コマンドモジュール２１５は、ナビゲーションモジュール２１３から中間目的地を取得し、他の目的地へ向かう他のナビゲーションよりも、当該中間目的地へ向かうナビゲーションを優先させる。
【００９２】
ユーザインタフェースモジュール２１７は、ユーザインタフェースを利用者に提供するためのグラフィックデータを生成するための、プロセッサ２３５で実行されるコードまたはルーチンである。
図示した実施形態において、ユーザインタフェースモジュール２１７は、信号線２４６を介してバス２２０と通信可能に結合している。
一実施形態において、ユーザインタフェースモジュール２１７は、利用者にユーザインタフェースを提供するために、グラフィックデータを生成する。
ユーザインタフェースは、利用者に、モバイルシステムをナビゲートするための出発地点、中間目的地、最終目的地のうちの一つ以上を入力させる。
【００９３】
一実施形態において、ユーザインタフェースモジュール２１７は、ナビゲーションモジュール２１３から、ナビゲーション速度ベクトルを取得し、ナビゲーション速度ベクトルを表すグラフィックデータを生成する。
ユーザインタフェースモジュール２１７は、生成したグラフィックデータを制御部１０１へ送信し、制御部１０１が、制御部１０１に接続された表示装置を通してユーザインタフェースを提供する。
ユーザインタフェースモジュール２１７は、他のユーザインタフェースを利用者に提供
するために、他のグラフィックデータを生成してもよい。
【００９４】
（ナビゲーション方法）
次に、図３，図４Ａ〜４Ｃを参照して、様々な実施形態におけるナビゲーション方法について説明する。
図３は、一実施形態における、障害物を通過させてモバイルシステムをナビゲートする方法３００を表すフローチャートである。
一実施形態において、環境構成モジュール２０３は、ナビゲーション処理における出発地点を決定する（ステップ３０２）。また、環境構成モジュール２０３は、ナビゲーション処理における最終目的地を決定する。
環境構成モジュール２０３は、最終目的地を、ナビゲーション処理におけるナビゲーション目的地に設定する（ステップ３０４）。
【００９５】
次に、通信モジュール２０１が、センサ１１３からイメージセンサデータを受信し、当該イメージセンサデータを推定モジュール２０７に送信する（ステップ３０６）。
次に、推定モジュール２０７が、イメージセンサデータに少なくとも部分的に基づいて、出発地点からナビゲーション目的地への経路に障害物がないことを判定する（ステップ３０８）。ここで、障害物が無い場合、方法３００はステップ３１８へ遷移する。障害物があった場合、推定モジュール２０７は、イメージセンサデータに少なくとも部分的に基づいて、一つ以上の障害物パラメータ（例えば左障害物パラメータおよび右障害物パラメータ）を生成し、方法３００はステップ３１０へ遷移する。
【００９６】
ステップ３１０では、干渉度モジュール２０９が、左障害物干渉度および右障害物干渉度を決定するために、効用関数を適用する。効用関数への入力は、一つ以上の障害物パラメータである。
【００９７】
次に、ベクトルモジュール２１１は、左障害物干渉度および右障害物干渉度に少なくとも部分的に基づいて、ナビゲーション方向を決定するためのベクトルモデルを生成する（ステップ３１２）。
次に、ナビゲーションモジュール２１３は、障害物パラメータ、左障害物干渉度、右障害物干渉度、ナビゲーション方向のうち一つ以上に少なくとも部分的に基づいて、中間目的地を決定する（ステップ３１４）。
次に、ナビゲーションモジュール２１３は、決定した中間目的地を用いてナビゲーション目的地を更新する（ステップ３１６）。
ナビゲーションモジュール２１３は、ナビゲーション速度ベクトルを決定し、当該ナビゲーション速度ベクトルに少なくとも部分的に基づいて、コマンドモジュール２１５に対して一つ以上の移動コマンドを生成するための指示を行う。
モータコントローラ１１５は、一つ以上の移動コマンドに従い、モバイルシステムをナビゲーション目的地に移動させる（ステップ３１８）。
【００９８】
ナビゲーションモジュール２１３は、到着したナビゲーション目的地が最終目的地であるかを判定し（ステップ３２０）、もし最終目的地であった場合、方法３００は終了する。
最終目的地ではない場合、ナビゲーションモジュール２１３は、環境構成モジュール２０３に対して、到着した中間目的地を次のナビゲーション処理の新しい出発地点として設定する指示を行い、方法３００はステップ３０４へ遷移する。
【００９９】
図４Ａ〜４Ｃは、もう一つの実施形態によって、障害物を通過させてモバイルシステムをナビゲートする方法４００を表すフローチャートである。図４Ａを参照して説明する。
まず、通信モジュール２０１が、利用者から最終目的地を表すデータを取得する（ステ
ップ４０２）。
次に、環境構成モジュール２０３が、最終目的地へのナビゲーション処理を行うための出発地点を決定する（ステップ４０４）。一実施形態において、環境構成モジュール２０３は、通信モジュール２０１を介して利用者から出発地点を表すデータを取得する。
環境構成モジュール２０３は、ナビゲーション目的地として最終目的地を設定する（ステップ４０６）。
次に、経路モジュール２０５が、出発地点から、ナビゲーション目的地（例えば最終目的地）に至る経路（例えば直線経路）を決定する（ステップ４０８）。
次に、ナビゲーションモジュール２１３は、モバイルシステムを経路に沿って移動させる際のナビゲーション速度ベクトルを決定する（ステップ４１０）。
【０１００】
一実施形態において、通信モジュール２０１はセンサ１１３からイメージセンサデータを受信する（ステップ４１２）。そして、通信モジュール２０１は、推定モジュール２０７にイメージセンサデータを送信する。
推定モジュール２０７は、決定した経路上に障害物が無いかを判定する（ステップ４１４）。もし、障害物が無い場合、方法４００は、図４Ｃにおけるステップ４３０へ遷移する。障害物がある場合は、方法４００は、図４Ｂにおけるステップ４１６へ遷移する。
【０１０１】
次に、図４Ｂを参照して説明する。
ステップ４１６では、推定モジュール２０７が、イメージセンサデータに少なくとも部分的に基づいて、一つ以上の障害物パラメータ（例えば左障害物パラメータ、右障害物パラメータ）を推定する。
次に、干渉度モジュール２０９が、左障害物干渉度および右障害物干渉度を決定するために、一つ以上の障害物パラメータ（例えば左障害物パラメータおよび右障害物パラメータ）を入力として効用関数をそれぞれ適用する（ステップ４１８）。
次に、ベクトルモジュール２１１が、モバイルシステムのナビゲーション方向を決定するためのベクトルモデルを、左障害物干渉度および右障害物干渉度に少なくとも部分的に基づいて生成する（ステップ４２０）。
【０１０２】
ステップ４２２では、ナビゲーションモジュール２１３が、左障害物干渉度、右障害物干渉度、一つ以上の障害物パラメータ、ナビゲーション方向のうち一つ以上に少なくとも部分的に基づいて中間目的地を決定する。
次に、ナビゲーションモジュール２１３は、ナビゲーション目的地として中間目的地を設定する（ステップ４２４）。
次に、ナビゲーションモジュール２１３は、出発地点と、更新されたナビゲーション目的地とを結ぶ経路を更新する（ステップ４２６）。
次に、ナビゲーションモジュール２１３は、ナビゲーション方向および更新された経路に少なくとも部分的に基づいて、ナビゲーション速度ベクトルを更新する（ステップ４２８）。
【０１０３】
次に、図４Ｃを参照して説明する。
コマンドモジュール２１５は、ナビゲーション速度ベクトルに少なくとも部分的に基づいて、一つ以上の移動コマンドを生成する（ステップ４３０）。
次に、コマンドモジュール２１５は、一つ以上の移動コマンドをモータコントローラ１１５に送信する。
モータコントローラ１１５は、一つ以上の移動コマンドに少なくとも部分的に基づいて、ナビゲーションモバイルシステムをナビゲーション目的地へ移動させる（ステップ４３４）。
ナビゲーションモジュール２１３は、モバイルシステムのナビゲーションを監視し、モバイルシステムがナビゲーション目的地に到着したか否かを判定する（ステップ４３６）
。モバイルシステムがナビゲーション目的地に到着した場合、方法４００はステップ４３８へ遷移する。到着していない場合、方法４００はステップ４３４へ遷移する。
【０１０４】
ステップ４３８では、ナビゲーションモジュール２１３が、ナビゲーション目的地が最終目的地であるかを判定する。ナビゲーション目的地が最終目的地であった場合、方法４００は終了する。最終目的地ではない場合、ナビゲーションモジュール２１３は、環境構成モジュール２０３に対して、到着した中間目的地を次のナビゲーション処理の新しい出発地点として設定する指示を行い、方法４００は、図４Ａのステップ４０６へ遷移する。
【０１０５】
（グラフィック図）
図５（Ａ）は、一実施形態における、センサ１１３によるモバイルシステムの視野を表すグラフィック５００である。
本例において、グラフィック５００は、出発地点５０４、目的地５０２、ナビゲーション処理において前記二点を結ぶ直線経路５０６を表している。
目的地５０２は、中間目的地または最終目的地のうちの一つである。
直線経路５０６を含む、第一のライン５１０と第二のライン５１２の間の領域は、センサ１１３の視野を表す。
また、図５（Ａ）には、センサ１１３の視野における複数の障害物が表されている。オブジェクト５０８は、障害物の例である。
【０１０６】
図示した実施形態において、視野の左側領域（例えば直線経路５０６とライン５１０との間の領域）には、内側の半径Ｒｉ，Ｌと外側の半径Ｒｏ，Ｌとの間に障害物エリアがある。また、視野の右側領域（例えば直線経路５０６とライン５１２との間の領域）には、内側の半径Ｒｉ，Ｒと外側の半径Ｒｏ，Ｒとの間に障害物エリアがある。
視野の左側領域における障害物の数は、視野の右側領域における障害物の数よりも少ない。従って、左障害物干渉度の絶対値は、右障害物干渉度の絶対値よりも小さくなる。例えば、||ＤＬ||＜||ＤＲ||である。左障害物干渉度および右障害物干渉度の計算方法については後述する。ｕｘは、直線経路方向の単位ベクトルであり、ｕｙは、直線経路方向と直交する方向の単位ベクトルである。
【０１０７】
図示した実施形態において、センサ１１３は、６０度（π／３ラジアン）の視野角を持つＫｉｎｅｃｔ（登録商標）センサである。干渉度モジュール２０９は、左障害物干渉度ＤＬを、数式２に示した効用関数によって算出する。
【数２】
2014123348.tif 000004
【０１０８】
数式２において、ｎＬは、視野の左側領域における障害物の数である。θsensorは、センサ１１３の視野角（Ｋｉｎｅｃｔセンサではπ／３ラジアン）である。Ｒｉ，ＬおよびＲｏ，Ｌは、視野の左側領域における障害物エリアの内側半径と外側半径をそれぞれ表す。ＶＬは、視野の左側領域における、モバイルシステムと障害物との平均相対速度を表す。ＶＬ，ｘは、視野の左側領域における、モバイルシステムと障害物との平均相対速度のＸ軸成分を表す。ρは係数である。例えば、実験で得られた係数ρは１．５である。
【０１０９】
干渉度モジュール２０９は、右障害物干渉度ＤＲを同様に、数式３に示した効用関数によって算出する。
【数３】
2014123348.tif 000005
【０１１０】
数式３において、ｎＲは、視野の右側領域における障害物の数である。Ｒｉ，ＲおよびＲｏ，Ｒは、視野の右側領域における障害物エリアの内側半径と外側半径をそれぞれ表す。ＶＲは、視野の右側領域における、モバイルシステムと障害物との平均相対速度を表す。ＶＲ，ｘは、視野の右側領域における、モバイルシステムと障害物との平均相対速度のＸ軸成分を表す。
【０１１１】
図５（Ｂ）は、一実施形態において、ナビゲーション方向を決定するためのベクトルモデルを表すグラフィック５５０である。図示した実施形態において、図５（Ｂ）に示したベクトルモデルは、図５（Ａ）における左障害物干渉度および右障害物干渉度と一致する。
ベクトルモジュール２１１は、左障害物干渉度ＤＬと右障害物干渉度ＤＲを合成したベクトルである合成干渉度Ｄｎｅｔを、Ｄｎｅｔ＝ＤＬ＋ＤＲの式によって決定する。
【０１１２】
そして、ベクトルモジュール２１１は、方向ベクトルＶｄｉｒを、Ｖｄｉｒ＝Ｄｎｅｔ＋ｕｘの式によって決定する。また、ベクトルモジュール２１１は、方向ベクトルＶｄｉｒと同じ方向をナビゲーション方向として決定する。
【０１１３】
図６（Ａ）〜（Ｃ），図７（Ａ）〜（Ｃ）は、様々な実施形態において、障害物の分布が異なる様々なナビゲーションシナリオを例示する図である。
例えば、図６（Ａ）は、一実施形態において、経路（例えば直線経路）の左側と右側とで等しい障害物分布がある場合のナビゲーションシナリオを例示するグラフィック６００である。障害物は、経路と同じ方向（例えばｕｘ方向）に動くものとする。図６（Ａ）に示したベクトルモデルは、左障害物干渉度と右障害物干渉度が同じ（例えば||ＤＬ||＝||ＤＲ||）であることを表している。また、方向ベクトルは、経路方向と同じ方向を向いている。本例では、モバイルシステムはそのまま経路方向にナビゲートされる。
【０１１４】
図６（Ｂ）は、一実施形態において、経路の右側にある障害物が、経路の左側にある障害物より多い場合のナビゲーションシナリオを例示するグラフィック６１０である。障害物は、経路と同じ方向（例えばｕｘ方向）に動くものとする。図６（Ｂ）に示したベクトルモデルは、左障害物干渉度が右障害物干渉度よりも少ない（例えば||ＤＬ||＜||ＤＲ||）ことを表している。方向ベクトルＶｄｉｒは、ベクトルモデルによって決定される。すなわち、モバイルシステムは、方向ベクトルによって決定されたナビゲーション方向に従って、障害物が少ない方向にナビゲートされる。
【０１１５】
図６（Ｃ）は、一実施形態において、経路（例えば直線経路）の左側と右側とで等しい数の障害物がある場合のナビゲーションシナリオを例示するグラフィック６２０である。障害物は、経路と反対方向に動くものとする。図６（Ｃ）に示したベクトルモデルは、左障害物干渉度と右障害物干渉度が同じ（例えば||ＤＬ||＝||ＤＲ||）であることを表して
いる。また、方向ベクトルは、経路方向と同じ方向を向いている。本例では、モバイルシステムはそのまま経路方向にナビゲートされる。
【０１１６】
図７（Ａ）は、一実施形態において、経路の右側にある障害物が、経路の左側にある障害物より多い場合のナビゲーションシナリオを例示するグラフィック６３０である。障害物は、経路と反対方向に動くものとする。図７（Ａ）に示したベクトルモデルは、左障害物干渉度が右障害物干渉度よりも少ない（例えば||ＤＬ||＜||ＤＲ||）ことを表している。方向ベクトルＶｄｉｒは、ベクトルモデルによって決定される。すなわち、モバイルシステムは、方向ベクトルによって決定されたナビゲーション方向に従って、障害物が少ない方向にナビゲートされる。
【０１１７】
図７（Ｂ）は、一実施形態において、経路の左側にある障害物が、経路の右側にある障害物より多い場合のナビゲーションシナリオを例示するグラフィック６４０である。なお、グラフィック６４０は、経路の左右両側の障害物の数が等しい場合のナビゲーションシナリオにも適用できる。経路の左側にある障害物は、経路と反対方向に動き、経路の右側にある障害物は、経路と同じ方向に動く。図７（Ｂ）に示したベクトルモデルは、左障害物干渉度が右障害物干渉度よりも大きい（例えば||ＤＬ||＞||ＤＲ||）ことを表している。すなわち、モバイルシステムは、方向ベクトルによって決定されたナビゲーション方向に従って、障害物の流れに合流する方向、かつ、障害物が少ない方向にナビゲートされる。
【０１１８】
図７（Ｃ）は、一実施形態において、経路の左側にある障害物が、経路の右側にある障害物より多い場合のナビゲーションシナリオを例示するグラフィック６５０である。障害物は、経路に対して垂直な方向に動く。図７（Ｃ）に示したベクトルモデルは、左障害物干渉度が右障害物干渉度よりも大きい（例えば||ＤＬ||＞||ＤＲ||）ことを表している。すなわち、モバイルシステムは、方向ベクトルによって決定されたナビゲーション方向に従って、障害物の流れに合流する方向、かつ、障害物が少ない方向にナビゲートされる。
【０１１９】
図８および図９は、様々な実施形態における、障害物の動きが異なる様々なナビゲーションシナリオに対応するナビゲーションアクションを例示する図である。
図８（Ａ）は、一実施形態において、障害物が経路と同じ方向に動いている場合のナビゲーションシナリオを例示するグラフィック７００である。
例えば、符号７０２は、経路左側の障害物が、経路と同じ方向に動いていることを表す。また、符号７０４は、経路右側の障害物が、経路と同じ方向に動いていることを表す。この場合、モバイルシステムは、「進路変更なし」というナビゲーションアクション７０６に従ってナビゲートされる。
【０１２０】
図８（Ｂ）は、一実施形態において、経路の左側にある障害物が経路と同じ方向に動いており、経路の右側にある障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７１０である。この場合、モバイルシステムは、「進路を左へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２１】
図８（Ｃ）は、一実施形態において、経路の左側にある障害物が経路と同じ方向に動いており、経路の右側にある障害物が経路と反対の方向に動いている場合のナビゲーションシナリオを例示するグラフィック７１２である。この場合、モバイルシステムは、「進路を左へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２２】
図８（Ｄ）は、一実施形態において、経路の左側にある障害物が経路と同じ方向に動いており、経路の右側にある障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７１４である。この場合、モバイルシステムは、
「進路を左へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２３】
図８（Ｅ）は、一実施形態において、経路の左側にある障害物が経路に対して垂直な方向に動いており、経路の右側にある障害物が経路と同じ方向に動いている場合のナビゲーションシナリオを例示するグラフィック７１６である。この場合、モバイルシステムは、「進路を右へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２４】
図８（Ｆ）は、一実施形態において、障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７１８である。この場合、モバイルシステムは、「減速して交差」というナビゲーションアクションに従ってナビゲートされる。
【０１２５】
図８（Ｇ）は、一実施形態において、経路の左側にある障害物が経路に対して垂直な方向に動いており、経路の右側にある障害物が経路と反対の方向に動いている場合のナビゲーションシナリオを例示するグラフィック７２０である。この場合、モバイルシステムは、「減速して進路を左へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２６】
図８（Ｈ）は、一実施形態において、障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７２２である。この場合、モバイルシステムは、「減速して交差」というナビゲーションアクションに従ってナビゲートされる。
【０１２７】
図９（Ａ）は、一実施形態において、経路の左側にある障害物が経路と反対の方向に動いており、経路の右側にある障害物が経路と同じ方向に動いている場合のナビゲーションシナリオを例示するグラフィック７２４である。この場合、モバイルシステムは、「進路を右へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２８】
図９（Ｂ）は、一実施形態において、経路の左側にある障害物が経路と反対の方向に動いており、経路の右側にある障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７２６である。この場合、モバイルシステムは、「減速して進路を右へ」というナビゲーションアクションに従ってナビゲートされる。
【０１２９】
図９（Ｃ）は、一実施形態において、障害物が経路と反対の方向に動いている場合のナビゲーションシナリオを例示するグラフィック７２８である。この場合、モバイルシステムは、「減速」というナビゲーションアクションに従ってナビゲートされる。
【０１３０】
図９（Ｄ）は、一実施形態において、経路の左側にある障害物が経路と反対の方向に動いており、経路の右側にある障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７３０である。この場合、モバイルシステムは、「減速して進路を右へ」というナビゲーションアクションに従ってナビゲートされる。
【０１３１】
図９（Ｅ）は、一実施形態において、経路の左側にある障害物が経路に対して垂直な方向に動いており、経路の右側にある障害物が経路と同じ方向に動いている場合のナビゲーションシナリオを例示するグラフィック７３２である。この場合、モバイルシステムは、「進路を右へ」というナビゲーションアクションに従ってナビゲートされる。
【０１３２】
図９（Ｆ）は、一実施形態において、障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７３４である。この場合、モバイルシステムは、「減速して交差」というナビゲーションアクションに従ってナビゲートされる。
【０１３３】
図９（Ｇ）は、一実施形態において、経路の左側にある障害物が経路に対して垂直な方向に動いており、経路の右側にある障害物が経路と反対の方向に動いている場合のナビゲーションシナリオを例示するグラフィック７３６である。この場合、モバイルシステムは、「減速して進路を左へ」というナビゲーションアクションに従ってナビゲートされる。
【０１３４】
図９（Ｈ）は、一実施形態において、障害物が経路に対して垂直な方向に動いている場合のナビゲーションシナリオを例示するグラフィック７３８である。この場合、モバイルシステムは、「減速して交差」というナビゲーションアクションに従ってナビゲートされる。
【０１３５】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。
さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【０１３６】
なお、実施形態の説明では、ナビゲーション方向を決定したのちにナビゲーション速度ベクトルを決定し、モータコントローラに対する移動コマンドを生成したが、ナビゲーション速度ベクトルの生成および移動コマンドの生成は、本発明の課題を解決するための必須構成ではない。例えば、ナビゲーションアプリケーションが、決定したナビゲーション方向のみを他のコンポーネントに通知するようにしても、障害物との干渉を避けつつモバイルシステムを移動させるという本発明の目的を達成することができる。
【符号の説明】
【０１３７】
１００・・・システム
１０１・・・制御部
１０３・・・プロセッサ
１０５・・・メモリ
１０７・・・通信部
１０９・・・ナビゲーションアプリケーション
１１３・・・センサ
１１５・・・モータコントローラ
１１７・・・地図サーバ
１２１・・・記憶装置
２００・・・コンピュータ
２３５・・・プロセッサ
２３７・・・メモリ
２３９・・・通信部
２４３・・・記憶装置
【図１】
2014123348.tif 000006
【図２】
2014123348.tif 000007
【図３】
2014123348.tif 000008
【図４Ａ】
2014123348.tif 000009
【図４Ｂ】
2014123348.tif 000010
【図４Ｃ】
2014123348.tif 000011
【図５】
2014123348.tif 000012
【図６】
2014123348.tif 000013
【図７】
2014123348.tif 000014
【図８】
2014123348.tif 000015
【図９】
2014123348.tif 000016