(57)【特許請求の範囲】
【請求項１】
短期的な移動の目標となる所定の数の経由点を想定した空間内で、人の移動を表す複数の経由点を含む経由点系列と、移動時間と、その経由点系列を移動する確率とを関連付けた要素を含む経由点リストを利用して人の移動を予測し、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する記憶手段を有する、移動予測装置であって、
予測移動時間を設定する時間設定手段、
前記経由点リストの要素に含まれる移動時間が前記予測移動時間未満のとき、その要素に含まれる経由点系列と次の経由点とに基づいて、前記記憶手段から移動遷移確率を読み出す読み出し手段、
前記読み出し手段によって読み出された移動遷移確率と前記経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する算出手段、
前記算出手段によって算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、前記経由点リストに追加する追加手段、
前記追加手段によって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する到達確率算出手段、および
前記到達確率算出手段によって算出された、各経由点への到達確率に基づいて、移動による人の到達位置を予測する予測手段を備える、移動予測装置。
【請求項２】
前記要素の移動時間が前記予測移動時間より大きいとき、その要素を前記経由点リストから更新結果データに移す移し手段をさらに備え、
前記到達確率算出手段は、前記経由点リストの要素が全て更新結果データに移されたとき、前記更新結果データに移された要素に含まれる確率に基づいて各経由点への到達確率を算出する、請求項１記載の移動予測装置。
【請求項３】
前記追加手段は、前記算出手段によって算出された確率が閾値以上のとき、その確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、前記経由点リストに追加する、請求項１または２記載の移動予測装置。
【請求項４】
前記到達確率算出手段は、到達する経由点が同一の経由点系列の確率に基づいて到達確率を算出する、請求項１ないし３のいずれかに記載の移動予測装置。
【請求項５】
前記空間に所定の数の経由点を設定する経由点設定手段、
人の移動軌跡を記録する記録手段、
前記記録手段によって記録された移動軌跡に基づいて、前記空間に含まれる各部分領域毎に、人の移動方向を判別する判別手段、
前記判別手段によって判別された移動方向を前記経由点設定手段によって設定された所定の数の経由点に対応付ける対応付け手段、および
前記対応付け手段によって対応付けられた移動方向に基づいて、前記経由点設定手段によって設定された所定の数の経由点の位置をそれぞれ更新する位置更新手段をさらに備える、請求項１ないし４のいずれかに記載の移動予測装置。
【請求項６】
人の移動軌跡を記録する記録手段、
前記記録手段によって記録された移動軌跡に基づいて、特定数の経由点を移動する順序を算出する順序算出手段、および
前記順序算出手段によって算出された順序に基づいて、特定数の経由点を移動する確率を算出する確率算出手段をさらに備え、
前記記憶手段は、前記確率算出手段によって算出された確率を移動遷移確率として記憶する、請求項１ないし４のいずれかに記載の移動予測装置。
【請求項７】
請求項１の移動予測装置を含む、ロボット制御装置であって、
前記予測手段によって予測された、人の到達位置に基づいてロボットの行動を確定する行動確定手段を備える、ロボット制御装置。
【請求項８】
請求項５の移動予測装置を含む、ロボット制御装置であって、
前記位置更新手段によって更新された所定の数の経由点に基づいてロボットの行動を確定する行動確定手段を備える、ロボット制御装置。
【請求項９】
短期的な移動の目標となる所定の数の経由点を想定した空間内で、人の移動を表す複数の経由点を含む経由点系列と、移動時間と、その経由点系列を移動する確率とを関連付けた要素を含む経由点リストを利用して人の移動を予測し、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する記憶手段を有する、移動予測装置のプロセッサを、
予測移動時間を設定する時間設定手段、
前記経由点リストの要素に含まれる移動時間が前記予測移動時間未満のとき、その要素に含まれる経由点系列と次の経由点とに基づいて、前記記憶手段から移動遷移確率を読み出す読み出し手段、
前記読み出し手段によって読み出された移動遷移確率と前記経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する算出手段、
前記算出手段によって算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、前記経由点リストに追加する追加手段、
前記追加手段によって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する到達確率算出手段、および
前記到達確率算出手段によって算出された、各経由点への到達確率に基づいて、移動による人の到達位置を予測する予測手段として機能させる、移動予測プログラム。
【請求項１０】
短期的な移動の目標となる所定の数の経由点を想定した空間内で、人の移動を表す複数の経由点を含む経由点系列と、移動時間と、その経由点系列を移動する確率とを関連付けた要素を含む経由点リストを利用して人の移動を予測し、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する記憶手段を有する、移動予測装置における移動予測方法であって、前記移動予測装置のプロセッサが、
予測移動時間を設定する時間設定ステップ、
前記経由点リストの要素に含まれる移動時間が前記予測移動時間未満のとき、その要素に含まれる経由点系列と次の経由点とに基づいて、前記記憶手段から移動遷移確率を読み出す読み出しステップ、
前記読み出しステップによって読み出された移動遷移確率と前記経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する算出ステップ、
前記算出ステップによって算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、前記経由点リストに追加する追加ステップ、
前記追加ステップによって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する到達確率算出ステップ、および
前記到達確率算出ステップによって算出された、各経由点への到達確率に基づいて、移動による人の到達位置を予測する予測ステップを実行する、移動予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、移動予測装置、ロボット制御装置、移動予測プログラムおよび移動予測方法に関し、特にたとえば、人の移動を予測する、移動予測装置、ロボット制御装置、移動予測プログラムおよび移動予測方法に関する。
【背景技術】
【０００２】
特許文献１に開示されている、計測装置では、空間内に複数のレーザレンジファインダ（ＬＲＦ）を設けることで、人の位置および移動速度を推定し、人を追跡することができる。
【特許文献１】特開２００９−１６８５７８号公報［G01S 17/66, G01S 17/42, G01C 3/06, B25J 13/08］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところが、特許文献１の計測装置では、大勢の人が行き交う場所で、人が移動することで到達する位置を正確に予測することはできない。
【０００４】
それゆえに、この発明の主たる目的は、新規な、移動予測装置、ロボット制御装置、移動予測プログラムおよび移動予測方法を提供することである。
【０００５】
この発明の他の目的は、移動によって到達する位置を予測することができる、移動予測装置、ロボット制御装置、移動予測プログラムおよび移動予測方法を提供することである。
【課題を解決するための手段】
【０００６】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【０００７】
第１の発明は、短期的な移動の目標となる所定の数の経由点を想定した空間内で、人の移動を表す複数の経由点を含む経由点系列と、移動時間と、その経由点系列を移動する確率とを関連付けた要素を含む経由点リストを利用して人の移動を予測し、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する記憶手段を有する、移動予測装置であって、予測移動時間を設定する時間設定手段、経由点リストの要素に含まれる移動時間が予測移動時間未満のとき、その要素に含まれる経由点系列と次の経由点とに基づいて、記憶手段から移動遷移確率を読み出す読み出し手段、読み出し手段によって読み出された移動遷移確率と経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する算出手段、算出手段によって算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、経由点リストに追加する追加手段、追加手段によって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する到達確率算出手段、および到達確率算出手段によって算出された、各経由点への到達確率に基づいて、移動による人の到達位置を予測する予測手段を備える、移動予測装置である。
【０００８】
第１の発明では、移動予測装置（１０：実施例において対応する部分を例示する参照符号。以下、同じ。）は、短期的な移動の目標となる所定の数（たとえば、３０個）の経由点（ｖ）を想定した空間内で、経由点リスト（Ｌ）を利用して人の移動を予測する。また、経由点リストは、人の移動を表す複数の経由点を含む経由点系列と、そのときの移動時間（ｔ）と、その経由点系列を移動する確率（ｐ）とを関連付けた要素を含む。また、記憶手段は、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する。時間設定手段（１６，Ｓ６１）は、たとえば移動予測装置の管理者による入力に応じて、移動予測装置が予測する時点までに人が移動する予測移動時間（Ｔ）を設定する。読み出し手段（１６，Ｓ１２３）は、或る要素に含まれる移動時間が上記予測移動時間未満の場合、その或る要素に含まれる経由点系列と次の経由点とに基づいて、記憶手段から移動遷移確率を読み出す。算出手段は、読み出し手段によって読み出された移動遷移確率と経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する。追加手段（１６，Ｓ１２７）は、算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、経由点リストに追加する。そのため、経由点リストには、複数の要素が含まれることになる。到達確率算出手段（１６，Ｓ１５９）は、追加手段によって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する。予測手段（１６，Ｓ１８３）は、たとえば、到達確率が最も高い経由点を、予測移動時間後に人が到達する位置として予測する。
【０００９】
第１の発明によれば、各経由点への到達確率を算出することで、人の到達位置を予測することができる。
第２の発明は、第１の発明に従属し、要素の移動時間が予測移動時間より大きいとき、その要素を経由点リストから更新結果データに移す移し手段をさらに備え、到達確率算出手段は、経由点リストの要素が全て更新結果データに移されたとき、更新結果データに移された要素に含まれる確率に基づいて各経由点への到達確率を算出する。
第３の発明は、第１の発明または第２の発明に従属し、追加手段は、算出手段によって算出された確率が閾値以上のとき、その確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、経由点リストに追加する。
【００１０】
第４の発明は、第１の発明ないし第３の発明のいずれかに従属し、到達確率算出手段は、到達する経由点が同一の経由点系列の確率に基づいて到達確率を算出する。
【００１２】
第４の発明によれば、到達する経由点が同一の経由点系列の確率に基づいて到達確率を算出することで、算出される到達確率の信頼性を高めることができる。
【００１３】
第５の発明は、第１の発明ないし第４の発明のいずれかに従属し、空間に所定の数の経由点を設定する経由点設定手段、人の移動軌跡を記録する記録手段、記録手段によって記録された移動軌跡に基づいて、空間に含まれる各部分領域毎に、人の移動方向を判別する判別手段、判別手段によって判別された移動方向を経由点設定手段によって設定された所定の数の経由点に対応付ける対応付け手段、および対応付け手段によって対応付けられた移動方向に基づいて、経由点設定手段によって設定された所定の数の経由点の位置をそれぞれ更新する位置更新手段をさらに備える。
【００１４】
第５の発明では、経由点設定手段（１６，Ｓ３１）は、空間に所定の数の経由点をランダムに設定する。記録手段（１６，Ｓ５）は、たとえば、ＬＲＦ（１２）などによって計測された人の位置に基づいて、人の移動軌跡を記録する。判別手段（１６，Ｓ１９）は、人の移動軌跡に基づいて、空間に含まれる各部分領域毎に、主な移動方向を判別する。対応付け手段（１６，Ｓ３３）は、各部分領域毎に判別された主な移動方向を、ランダムに設定された所定の数の経由点に対応付ける。位置更新手段（１６，Ｓ３５）は、各経由点に対応付けられた移動方向に基づいて、所定の数の経由点の位置が変化しなくなるまで、経由点の位置を更新する。
【００１５】
第５の発明によれば、各経由点の位置を、人の移動に基づいて設定することで、予測の精度を高くすることができる。
【００１６】
第６の発明は、第１の発明ないし第４の発明のいずれかに従属し、人の移動軌跡を記録する記録手段、記録手段によって記録された移動軌跡に基づいて、特定数の経由点を移動する順序を算出する順序算出手段、および順序算出手段によって算出された順序に基づいて、特定数の経由点を移動する確率を算出する確率算出手段をさらに備え、記憶手段部は、確率算出手段によって算出された確率を移動遷移確率として記憶する。
【００１７】
第６の発明では、記録手段（１６，Ｓ５）は、たとえば、ＬＲＦ（１２）などによって計測された人の位置に基づいて、人の移動軌跡を記録する。順序算出手段（１６，Ｓ４１）は、記録された移動軌跡に基づいて、人が特定数の経由点を移動する順序を算出する。確率算出手段（１６，Ｓ４３，Ｓ４５）は特定数の経由点を移動する確率を算出し、記憶手段は、算出された確率を移動遷移確率として記憶する。
【００１８】
第６の発明によれば、記憶手段に記憶された移動遷移確率を利用することで、人の到達位置をより正確に予測することができる。
【００１９】
第７の発明は、第１の発明の移動予測装置を含む、ロボット制御装置であって、予測手段によって予測された、人の到達位置に基づいてロボットの行動を確定する行動確定手段を備える、ロボット制御装置である。
【００２０】
第７の発明では、ロボット制御装置（１０）は、各経由点までの到達確率を算出することで人の到達位置を予測する、移動予測装置を含む。また、行動確定手段（１６，Ｓ１８５）は、たとえば、予測された到達位置に近づくように、ロボットの行動を確定する。
【００２１】
第７の発明によれば、ロボット制御装置の管理者は、予測された人の到達位置に合わせて、ロボットを動作させることができる。
【００２２】
第８の発明は、第５の発明の移動予測装置を含む、ロボット制御装置であって、位置更新手段によって更新された所定の数の経由点に基づいてロボットの行動を確定する行動確定手段を備える、ロボット制御装置である。
【００２３】
第８の発明では、ロボット制御装置（１０）は、人の移動軌跡に基づいて所定の数の経由点の位置を更新する、移動予測装置を含む。行動確定手段（１６，Ｓ２０３）は、上記のようにして位置が更新された経由点に基づいて、ロボットの行動を確定する。
【００２４】
第８の発明によれば、人の移動に基づいて設定された経由点を利用して、ロボットの動作を確定することができる。これにより、人々の移動が考慮された行動を、ロボットに行わせることができる。
【００２５】
第９の発明は、短期的な移動の目標となる所定の数の経由点（ｖ）を想定した空間内で、人の移動を表す複数の経由点を含む経由点系列と、移動時間（ｔ）と、その経由点系列を移動する確率（ｐ）とを関連付けた要素を含む経由点リスト（Ｌ）を利用して人の移動を予測し、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する記憶手段を有する、移動予測装置（１０）のプロセッサ（１６）を、予測移動時間（Ｔ）を設定する時間設定手段（Ｓ６１）、経由点リストの要素に含まれる移動時間が予測移動時間未満のとき、その要素に含まれる経由点系列と次の経由点とに基づいて、記憶手段から移動遷移確率を読み出す読み出し手段（Ｓ１２３）、読み出し手段によって読み出された移動遷移確率と経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する算出手段、算出手段によって算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、経由点リストに追加する追加手段、追加手段によって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する到達確率算出手段（Ｓ１５９）、および到達確率算出手段によって算出された、各経由点への到達確率に基づいて、移動による人の到達位置を予測する予測手段（Ｓ１８３）として機能させる、移動予測プログラムである。
【００２６】
第９の発明でも、第１の発明と同様、各経由点への到達確率を算出することで、人の到達位置を予測することができる。
【００２７】
第１０の発明は、短期的な移動の目標となる所定の数の経由点（ｖ）を想定した空間内で、人の移動を表す複数の経由点を含む経由点系列と、移動時間（ｔ）と、その経由点系列を移動する確率（ｐ）とを関連付けた要素を含む経由点リスト（Ｌ）を利用して人の移動を予測し、特定数の経由点を移動したときの確率を移動遷移確率として予め記憶する記憶手段を有する、移動予測装置（１０）における移動予測方法であって、移動予測装置のプロセッサが、予測移動時間（Ｔ）を設定する時間設定ステップ（Ｓ６１）、経由点リストの要素に含まれる移動時間が予測移動時間未満のとき、その要素に含まれる経由点系列と次の経由点とに基づいて、記憶手段から移動遷移確率を読み出す読み出しステップ（Ｓ１２３）、読み出しステップによって読み出された移動遷移確率と経由点リストに既に含まれる要素の確率とに基づいて、次の経由点を含む経由点系列を移動する確率を算出する算出ステップ、算出ステップによって算出された確率、次の経由点を含む経由点系列および移動時間を含む新たな要素を、経由点リストに追加する追加ステップ、追加ステップによって新たな要素が追加された経由点リストにおいて、要素に含まれる確率に基づいて各経由点への到達確率を算出する到達確率算出ステップ（Ｓ１５９）、および到達確率算出ステップによって算出された、各経由点への到達確率に基づいて、移動による人の到達位置を予測する予測ステップ（Ｓ１８３）を実行する、移動予測方法である。
【００２８】
第１０の発明でも、第１の発明と同様、各経由点への到達確率を算出することで、人の到達位置を予測することができる。
【発明の効果】
【００２９】
この発明によれば、各経由点への到達確率に基づいて、人が到達する位置を予測することができる。
【００３０】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００３１】
【図１】図１はこの発明の一実施例の移動予想装置の概要を示す図解図である。
【図２】図２は図１に示す移動予測装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すロボットの外観を正面から見た図解図である。
【図４】図４は図１に示すロボットの電気的な構成を示すブロック図である。
【図５】図５は図１および図２に示すＬＲＦの計測領域を示す図解図である。
【図６】図６は図５に示すＬＲＦを利用して検出された移動軌跡の一例を示す図解図である。
【図７】図７は図１に示すＬＲＦが設置される或る空間の地図を示す図解図である。
【図８】図８は図７に示す地図に基づいて作成された分割領域地図の一例を示す図解図である。
【図９】図９は図８に示す或る分割領域における移動軌跡の一例を示す図解図である。
【図１０】図１０は図８に示す或る分割領域における各移動軌跡から算出された移動方向の一例を示す図解図である。
【図１１】図１１は図１０に示す移動方向に基づいて作成された移動方向分布および混合ガウス分布の一例を示す図解図である。
【図１２】図１２は図１１に示す混合ガウス分布から求められる、或る分割領域の主な移動方向の一例を示す図解図である。
【図１３】図１３は図８に示す分割領域地図において各分割領域に主な移動方向を示した移動方向地図の一例を示す図解図である。
【図１４】図１４は図１２に示す移動方向地図に設定される経由点の位置を決める手順の一例を示す図解図である。
【図１５】図１５は図１３に示す移動方向地図に経由点を設定した経由点地図の一例を示す図解図である。
【図１６】図１６は或る経由点および経由点を結ぶ経路の詳細の一例を示す図解図である。
【図１７】図１７は図１６に示す経由点に基づいて設定される経由点リストの一例を示す図解図である。
【図１８】図１８は図１７に示す経由点リストを更新する手順の一例を示す図解図である。
【図１９】図１９は図１８に示す手順で経由点リストが更新されたことで得られる、更新結果データの構成の一例を示す図解図である。
【図２０】図２０は図１９に示す更新結果データに基づいて得られる、到達確率の一例を示す図解図である。
【図２１】図２１は図２に示すメモリのメモリマップの一例を示す図解図である。
【図２２】図２２は図２１に示すメモリマップにおけるデータ記憶領域の一例を示す図解図である。
【図２３】図２３は図２に示すプロセッサの移動軌跡蓄積処理を示すフロー図である。
【図２４】図２４は図２に示すプロセッサの移動方向算出処理を示すフロー図である。
【図２５】図２５は図２に示すプロセッサの経由点設定処理を示すフロー図である。
【図２６】図２６は図２に示すプロセッサの移動遷移確率モデル構築処理を示すフロー図である。
【図２７】図２７は図２に示すプロセッサのメイン処理を示すフロー図である。
【図２８】図２８は図２に示すプロセッサの更新処理を示すフロー図である。
【図２９】図２９は図２に示すプロセッサの追加処理を示すフロー図である。
【図３０】図３０は図２に示すプロセッサの統合処理を示すフロー図である。
【図３１】図３１は図２に示すプロセッサのロボット制御処理を示すフロー図である。
【図３２】図３２は図２に示すプロセッサの他の実施例のロボット制御処理を示すフロー図である。
【発明を実施するための形態】
【００３２】
図１を参照して、この実施例の移動予測装置１０は、ＬＲＦ１２ａ，１２ｂなどを含む数台のＬＲＦを有する。ＬＲＦ１２ａ，１２ｂは、人が任意に移動することができる空間（場所または環境）に設置される。人が任意に行動する場所は、会社のフロア、博物館、ショッピングモールまたはアトラクション会場などであり、ＬＲＦ１２ａ，１２ｂは様々な場所に設置される。
【００３３】
移動予測装置１０は、一定時間（たとえば、１秒）毎にＬＲＦ１２ａ，１２ｂによって、任意に移動する人の位置を検出し、検出された位置のデータを記憶する。また、移動予測装置１０は、記憶された位置データに基づいて、人が移動することで到達する位置を予測する。そして、移動予測装置１０は、ネットワーク１００を介してロボット１４と無線通信を行い、ロボット１４の行動を制御する。そのため、移動予測装置１０は、ロボット制御装置として機能することもある。
【００３４】
位置が検出された人には、検出された順番に人ＩＤが付与される。たとえば、最初に検出された人にはＩＤ「００１」が付与され、次に検出された人にはＩＤ「００２」が付与される。
【００３５】
ロボット１４は、移動予測装置１０が付与する行動命令に基づいて動作する。また、ロボット１４は、相互作用指向のロボット（コミュニケーションロボット）でもあり、人間のようなコミュニケーションの対象（コミュニケーション対象）との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。また、ロボット１４はコミュニケーションの一環として、人に対して道案内や、情報提供などのサービスを行う。
【００３６】
なお、図１では簡単のため、１人しか図示していないが、移動予測装置１０はさらに多くの人の位置を検出し、位置データを記憶することができる。さらに、ロボット１４も同様に１台しか示していないが、移動予測装置１０は２台以上のロボット１４を同時に管理することができる。
【００３７】
図２は移動予測装置１０の電気的な構成を示すブロック図である。図２を参照して、移動予測装置１０は、ＬＲＦ１２ａ−１２ｆ、プロセッサ１６などを含む。プロセッサ１６は、マイクロコンピュータ或いはＣＰＵと呼ばれることもある。また、プロセッサ１６には、先述したＬＲＦ１２ａおよびＬＲＦ１２ｂに加えて、ＬＲＦ１２ｃ，ＬＲＦ１２ｄ，ＬＲＦ１２ｅおよびＬＲＦ１２ｆも接続される。なお、ＬＲＦ１２ａ−１２ｆを区別する必要がない場合、「ＬＲＦ１２」と言う。
【００３８】
また、プロセッサ１６にはメモリ１８、ＬＣＤ２０、入力装置２２、通信ＬＡＮボード２４が接続されると共に、移動軌跡データベース（ＤＢ：Ｄａｔａｂａｓｅ）２８、移動方向分布ＤＢ３０、経由点ＤＢ３２および移動遷移確率モデルＤＢ３４も接続される。
【００３９】
ＬＲＦ１２は、レーザーを照射し、物体（人も含む）に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、トランスミッタ（図示せず）から照射したレーザーを回転ミラー（図示せず）で反射させて、前方を扇状に一定角度（たとえば、０．５度）ずつスキャンする。ここで、ＬＲＦ１２としては、ＳＩＣＫ社製のレーザーレンジファインダ（型式  ＬＭＳ２００）を用いることができる。このレーザーレンジファインダを用いた場合には、距離８ｍを±１５ｍｍ程度の誤差で計測可能である。
【００４０】
メモリ１８は、図示は省略をするが、ＲＯＭ，ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、移動予測装置１０の動作を制御するための制御プログラムが予め記憶される。また、ＲＡＭは、プロセッサ１６のワークメモリやバッファメモリとして用いられる。
【００４１】
ＬＣＤ２０は移動予測装置１０の管理用ＧＵＩなどを表示する。入力装置２２はマウスおよびキーボードなどを含む。そして、管理者は、ＬＣＤ２０に表示されるＧＵＩを確認しながら、入力装置２２のキーボードやマウスを利用して、コマンドなどを入力する。
【００４２】
通信ＬＡＮボード２４は、たとえばＤＳＰで構成され、プロセッサ１６から与えられた送信データを無線通信装置２６に与え、無線通信装置２６は送信データを、ネットワーク１００を介してロボット１４に送信する。たとえば、送信データは、ロボット１４に指示する行動命令の信号（コマンド）などである。また、通信ＬＡＮボード２４は、無線通信装置２６を介してデータを受信し、受信したデータをプロセッサ１６に与える。
【００４３】
移動軌跡ＤＢ２８には、ＬＲＦ１２によって検出された人の移動軌跡が保存される。移動方向分布ＤＢ３０には、人の移動軌跡に基づく移動方向が保存される。経由点ＤＢ３２には、上記した移動方向に基づく経由点の情報が保存される。移動遷移確率モデルＤＢ３４には、上記した移動軌跡および経由点に基づいて構築された移動遷移確率モデルが保存される。なお、移動方向分布ＤＢ３０、経由点ＤＢ３２および移動遷移確率モデルＤＢ３４に保存される各データについては後述するため、ここでの詳細な説明は省略する。
【００４４】
図３はこの実施例のロボット１４の外観を示す正面図である。図３を参照して、ロボット１４は台車４０を含み、台車４０の下面にはロボット１４を自律移動させる２つの車輪４２および１つの従輪４４が設けられる。２つの車輪４２は車輪モータ４６（図４参照）によってそれぞれ独立に駆動され、台車４０すなわちロボット１４を前後左右の任意方向に動かすことができる。また、従輪４４は車輪４２を補助する補助輪である。したがって、ロボット１４は、配置された空間内を自律制御によって移動可能である。
【００４５】
台車４０の上には、円柱形のセンサ取り付けパネル４８が設けられ、このセンサ取り付けパネル４８には、多数の赤外線距離センサ５０が取り付けられる。これらの赤外線距離センサ５０は、センサ取り付けパネル４８すなわちロボット１４の周囲の物体（人間や障害物など）との距離を測定するものである。
【００４６】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のＬＲＦや、超音波距離センサおよびミリ波レーダなどを用いることもできる。
【００４７】
センサ取り付けパネル４８の上には、胴体５２が直立するように設けられる。また、胴体５２の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ５０がさらに設けられ、ロボット１４の前方の主として人間との距離を計測する。また、胴体５２には、その側面側上端部のほぼ中央から伸びる支柱５４が設けられ、支柱５４の上には、全方位カメラ５６が設けられる。全方位カメラ５６は、ロボット１４の周囲を撮影するものであり、後述する眼カメラ８０とは区別される。この全方位カメラ５６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ５０および全方位カメラ５６の設置位置は、当該部位に限定されず適宜変更され得る。
【００４８】
胴体５２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節５８Ｒおよび肩関節５８Ｌによって、上腕６０Ｒおよび上腕６０Ｌが設けられる。図示は省略するが、肩関節５８Ｒおよび肩関節５８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節５８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕６０Ｒの角度を制御できる。肩関節５８Ｒの或る軸（ヨー軸）は、上腕６０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節５８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕６０Ｌの角度を制御できる。肩関節５８Ｌの或る軸（ヨー軸）は、上腕６０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００４９】
また、上腕６０Ｒおよび上腕６０Ｌのそれぞれの先端には、肘関節６２Ｒおよび肘関節６２Ｌが設けられる。図示は省略するが、肘関節６２Ｒおよび肘関節６２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕６４Ｒおよび前腕６４Ｌの角度を制御できる。
【００５０】
前腕６４Ｒおよび前腕６４Ｌのそれぞれの先端には、人の手に相当する球体６６Ｒおよび球体６６Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車４０の前面、肩関節５８Ｒと肩関節５８Ｌとを含む肩に相当する部位、上腕６０Ｒ、上腕６０Ｌ、前腕６４Ｒ、前腕６４Ｌ、球体６６Ｒおよび球体６６Ｌには、それぞれ、接触センサ６８（図４で包括的に示す）が設けられる。台車４０の前面の接触センサ６８は、台車４０への人間や他の障害物の接触を検知する。したがって、ロボット１４は、自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪４２の駆動を停止してロボット１４の移動を急停止させることができる。また、その他の接触センサ６８は、当該各部位に触れたかどうかを検知する。なお、接触センサ６８の設置位置は、当該部位に限定されず、適宜な位置（人の胸、腹、脇、背中および腰に相当する位置）に設けられてもよい。
【００５１】
胴体５２の中央上部（人の首に相当する位置）には首関節７０が設けられ、さらにその上には頭部７２が設けられる。図示は省略するが、首関節７０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１４の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００５２】
頭部７２には、人の口に相当する位置に、スピーカ７４が設けられる。スピーカ７４は、ロボット１４が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク７６Ｒおよびマイク７６Ｌが設けられる。以下、右のマイク７６Ｒと左のマイク７６Ｌとをまとめてマイク７６と言うことがある。マイク７６は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部７８Ｒおよび眼球部７８Ｌが設けられる。眼球部７８Ｒおよび眼球部７８Ｌは、それぞれ眼カメラ８０Ｒおよび眼カメラ８０Ｌを含む。以下、右の眼球部７８Ｒと左の眼球部７８Ｌとをまとめて眼球部７８と言うことがある。また、右の眼カメラ８０Ｒと左の眼カメラ８０Ｌとをまとめて眼カメラ８０と言うことがある。
【００５３】
眼カメラ８０は、ロボット１４に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ８０は、上述した全方位カメラ５６と同様のカメラを用いることができる。たとえば、眼カメラ８０は、眼球部７８内に固定され、眼球部７８は、眼球支持部（図示せず）を介して頭部７２内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部７２の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部７２の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部７８ないし眼カメラ８０の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ７４、マイク７６および眼カメラ８０の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００５４】
このように、この実施例のロボット１４は、車輪４２の独立２軸駆動、肩関節５８の３自由度（左右で６自由度）、肘関節６２の１自由度（左右で２自由度）、首関節７０の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００５５】
図４はロボット１４の電気的な構成を示すブロック図である。この図４を参照して、ロボット１４は、プロセッサ９０を含む。プロセッサ９０は、マイクロコンピュータとも呼ばれ、バス９２を介して、メモリ９４、モータ制御ボード９６、センサ入力／出力ボード９８および音声入力／出力ボード１１０に接続される。
【００５６】
メモリ９４は、図示は省略をするが、ＲＯＭおよびＲＡＭを含む。ＲＯＭには、ロボット１４の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力（センサ情報）を検知するための検知プログラムや、外部コンピュータ（移動予測装置１０）との間で必要なデータやコマンドを送受信するための通信プログラムなどが記録される。また、ＲＡＭは、プロセッサ９０のワークメモリやバッファメモリとして用いられる。
【００５７】
モータ制御ボード９６は、たとえばＤＳＰで構成され、各腕や首関節７０および眼球部７８などの各軸モータの駆動を制御する。すなわち、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、右眼球部７８Ｒの２軸のそれぞれの角度を制御する２つのモータ（図４では、まとめて「右眼球モータ１１２」と示す）の回転角度を制御する。同様に、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、左眼球部７８Ｌの２軸のそれぞれの角度を制御する２つのモータ（図４では、まとめて「左眼球モータ１１４」と示す）の回転角度を制御する。
【００５８】
また、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、肩関節５８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節６２Ｒの角度を制御する１つのモータとの計４つのモータ（図４では、まとめて「右腕モータ１１６」と示す）の回転角度を制御する。同様に、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、肩関節５８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節６２Ｌの角度を制御する１つのモータとの計４つのモータ（図４では、まとめて「左腕モータ１１８」と示す）の回転角度を制御する。
【００５９】
さらに、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、首関節７０の直交する３軸のそれぞれの角度を制御する３つのモータ（図４では、まとめて「頭部モータ１２０」と示す）の回転角度を制御する。そして、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、車輪４２を駆動する２つのモータ（図４では、まとめて「車輪モータ４６」と示す）の回転角度を制御する。なお、この実施例では、車輪モータ４６を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ４６と同様に直流モータを用いるようにしてもよい。また、ロボット１４の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【００６０】
センサ入力／出力ボード９８は、モータ制御ボード９６と同様に、ＤＳＰで構成され、各センサからの信号を取り込んでプロセッサ９０に与える。すなわち、赤外線距離センサ５０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード９８を通じてプロセッサ９０に入力される。また、全方位カメラ５６からの映像信号が、必要に応じてセンサ入力／出力ボード９８で所定の処理を施してからプロセッサ９０に入力される。眼カメラ８０からの映像信号も、同様に、プロセッサ９０に入力される。また、上述した複数の接触センサ６８（図４では、まとめて「接触センサ６８」と示す）からの信号がセンサ入力／出力ボード９８を介してプロセッサ９０に与えられる。音声入力／出力ボード１１０もまた、同様に、ＤＳＰで構成され、プロセッサ９０から与えられる音声合成データに従った音声または声がスピーカ７４から出力される。また、マイク７６からの音声入力が、音声入力／出力ボード１１０を介してプロセッサ９０に与えられる。
【００６１】
また、プロセッサ９０は、バス９２を介して通信ＬＡＮボード１２２に接続される。通信ＬＡＮボード１２２は、たとえばＤＳＰで構成され、プロセッサ９０から与えられた送信データを無線通信装置１２４に与え、無線通信装置１２４は送信データを、ネットワーク２００を介して外部コンピュータ（移動予測装置１０）に送信する。また、通信ＬＡＮボード１２２は、無線通信装置１２４を介してデータを受信し、受信したデータをプロセッサ９０に与える。たとえば、送信データとしては、全方位カメラ５６および眼カメラ８０によって撮影された周囲の映像データなどである。
【００６２】
次に、ＬＲＦ１２について詳細に説明する。図５を参照して、ＬＲＦ１２の計測範囲は、半径Ｒ（Ｒ≒８m）の半円形状（扇形）で示される。つまり、ＬＲＦ１２は、その正面方向を中心とした場合に、左右９０度の方向を所定の距離以内で計測可能である。
【００６３】
また、使用しているレーザーは、日本工業規格 ＪＩＳ  Ｃ  ６８０２「レーザー製品の安全基準」におけるクラス１レーザーであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、ＬＲＦ１２のサンプリングレートを３７Ｈｚとした。これは、歩行するなどにより移動する人の位置を連続して検出するためである。
【００６４】
さらに、ＬＲＦ１２の各々は、計測範囲が重なるように配置され、図示は省略するが、床面から約９０cmの高さに固定される。この高さは、被験者の胴体と腕（両腕）とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、移動予測装置１０を設ける場所（地域ないし国）や被験者の年齢ないし年代（たとえば、子供，大人）に応じて、ＬＲＦ１２を固定する高さを適宜変更するようにしてよい。なお、本実施例では、設定されるＬＲＦ１２は６台としたが、２台以上であれば、任意の台数のＬＲＦ１２が設置されてもよい。
【００６５】
このような構成の移動予測装置１０では、プロセッサ１６がＬＲＦ１２からの出力（距離データ）に基づいて、パーティクルフィルタを用いて、人の現在位置の変化を推定する。そして、推定された位置の変化が移動軌跡として記録される。
【００６６】
たとえば、図６を参照して、ＬＲＦ１２ａ，１２ｂは互いに向い合せに設置され、ＬＲＦ１２ａ，１２ｂの計測範囲が重なる範囲は斜線が付されている。斜線の範囲は検出領域とされ、この検出領域内では人の位置が連続的に検出される。そして、連続的に検出された位置の変化が移動軌跡となる。つまり、移動軌跡データは、複数の位置データから構成される。なお、検出領域にはｘ−ｙ座標が設定され、人の位置データは（ｘ，ｙ）の座標で示すことができる。
【００６７】
図７はＬＲＦ１２が設置される場所を示す地図を示す図解図である。図７を参照して、地図が対応する場所は或るショッピングモールである。また、地図の中央部には通路が設けられており、その周囲には店舗およびエレベータなどが存在する。また、ＬＲＦ１２は通路に設けられており、ショッピングモールの通路の一部が検出領域となる。そのため、移動軌跡ＤＢ２８には、ショッピングモールの通路を行き交う人々の移動軌跡が保存される。
【００６８】
ここで、本実施例では保存された人々の移動軌跡を分析することで、人の短期的な移動の目標となる経由点を設定し、その経由点に基づいて人の移動を予測する。また、経由点は、検出領域に設けられる複数の部分領域毎に、人々の移動を分析することで設定することができる。
【００６９】
図８を参照して、部分領域は、一辺が５０ｃｍの正方形（グリッド）であり、ショッピングモールの通路の一部に設けられる。部分領域を通過する複数の人の移動軌跡は、たとえば図９のように示すことができ、数１に示す式によって、各移動軌跡の移動方向を求めることができる。なお、数１では、「θ」は部分領域を通過したときの角度（図１０参照）を示し、「ｘ（ｔ）」は人が部分領域の中心に最も接近した時刻ｔにおける人の位置ベクトルを示し、「ａｒｇ（ｘ）」はその位置ベクトルの角度を求める関数である。また、「Δ」は短い時間（たとえば、４秒）であり、歩行による移動軌跡のゆらぎや、前から来た人の避けるための短時間の方向変化の影響を抑え、その人が目指している方向を精度よく算出するために用いられる。
【００７０】
[数１]
θ＝ａｒｇ（ｘ（ｔ＋Δ）−ｘ（ｔ））
たとえば、数１の式を利用して、或る部分領域における移動方向を算出すると、図１０のようになる。図１０を参照して、領域では、右側を０度とし、上側を９０度、左側を１８０度、下側を２７０度、０度と同じ位置を３６０度とする。つまり、部分領域内では、右側を基準として反時計方向に大きくなるように角度が設定される。また、図１０に示す移動方向の分布では、部分領域内の各黒丸は人が部分領域から出て行った方向、つまり人の移動方向を示す。また、図１０から分かるように、或る部分領域では、人々の移動方向は一方向に集中せず、いくつかの方向に分散している。
【００７１】
なお、数１における関数「ａｒｇ（ｘ）」は、本実施例用に定義された特別な関数ではない。つまり、関数「ａｒｇ（ｘ）」は、ベクトルの角度を算出するための一般的な関数である。そのため、他の実施例では、関数「ａｒｇ（ｘ）」に代えて、ベクトルの角度を求めることができる一般的な関数を利用することができる。
【００７２】
次に、図１１は図１０に示した複数の移動方向をグラフ化したものである。このグラフでは、横軸は角度を表し、縦軸は同一の角度の移動方向が出現（算出）した回数を示す。そのため、グラフ中の実線は、移動方向が算出された回数の変化を示す。そして、本実施例では、このグラフを利用して、或る部分領域を通過する人の主な移動方向を求める。
【００７３】
具体的には、移動方向分布を混合ガウス分布でモデル化することで、移動方向分布に現れる複数のピーク（主な移動方向）の中心を求める。また、図１１では、モデル化された混合ガウス分布は点線で示され、各ピークと対応する横軸にはバツ印が付与される。これにより、或る部分領域を通過する人々は、主に約１３０度、約２２５度、約３１５度の方向に通過していることが分かる。
【００７４】
なお、混合ガウス分布によるモデル化については、「I. S. Dhillon and S. Sra, “Modeling Data using Directional Distributions,” Technical report of University of Texas, TR-03-062, 2003」に記述されているため、詳細な説明は省略する。
【００７５】
図１２は、或る部分領域において、上述の処理によって求めた移動方向（ピーク）のうち、上位３つの移動方向を示す。図１２を参照して、最も多い移動方向（約３１５度）は破線矢印で示され、２番目に多い移動方向（約２２５度）は点線矢印で示され、３番目に多い移動方向（約１３０度）は実線矢印で示される。そして、他の部分領域についても同様に、主な移動方向を求め、その結果が移動方向分布ＤＢ３０に保存される。
【００７６】
図１３（Ａ）は、移動方向分布ＤＢ３０に保存される、主な移動方向のうち最も多い移動方向だけを各部分領域に示した移動方向地図である。また、図１３（Ｂ）は、移動方向地図における、領域Ａを拡大したものである。図１３（Ａ）を参照して、通路が細くなっている所では、おおよそ同じ方向に人が移動していることが分かる。また、図１３（Ｂ）から分かるように、通路の大きさが変化している領域Ａでは、移動方向がさまざまな方向を指している。
【００７７】
続いて、移動方向分布ＤＢ３０に保存された移動方向から経由点の求め方について説明する。まず、初期設定として、所定の数の経由点が、乱数を用いてランダムに設定される。たとえば、約５００平方メートルのショッピングモールでは、３０個の経由点がランダムに設定される。
【００７８】
次に、部分領域毎に求められた移動方向に対して、１つの経由点を対応付ける。具体的には、部分領域の中心ｏから移動方向を延長した直線に対して経由点から垂線をおろし、垂線が最も短くなる経由点を移動方向に対応付ける。ここで、垂線をおろす経由点は、部分領域の中心ｏから所定距離（たとえば、１０ｍ）以内であり、部分領域の中心ｏから見て、経由点の方向と移動方向とのなす角度が所定角度（たとえば、１０度）以内のものに限られる。
【００７９】
たとえば、図１４（Ａ）を参照して、或る部分領域の中心ｏにおいて、経由点ｖ１および経由点ｖ２が上記した条件に適合する場合、移動方向ベクトルＹを延長した直線に対して、経由点ｖ１および経由点ｖ２から垂線ｄ１および垂線ｄ２がおろされる。このとき、垂線ｄ１の方が、垂線ｄ２よりも短いため、移動方向ベクトルＹには経由点ｖ１が対応付けられる。
【００８０】
全ての移動方向に対して経由点の対応付けが終わると、各経由点の位置を更新する。具体的には、或る経由点において、或る経由点を対応付けた移動方向を延長する直線に対して、或る経由点から垂線ベクトルをおろす。次に、或る経由点から下ろされた各垂線ベクトルを合成して合成ベクトルを求め、或る経由点を合成のベクトルの向きに移動させる。図１４（Ｂ）を参照して、たとえば、或る経由点ｖにおいて移動方向ベクトルＹ１，Ｙ２，Ｙ３が対応付けられている場合、移動方向ベクトルＹ１，Ｙ２，Ｙ３を延長する直線に対して、３本の垂線ベクトルが或る経由点ｖからおろされる。そして、３本の垂線ベクトルを合成した合成ベクトルｒに基づいて、経由点ｖの位置が経由点ｖ’の位置に移動（更新）される。
【００８１】
そして、ランダムに設定した全ての経由点の位置が変化しなくなるまで、上述の処理を全ての経由点に対して繰り返す。その結果、経由点の位置が変化しなくなれば、各経由点の位置が経由点ＤＢ３２に保存される。
【００８２】
図１５（Ａ）は、経由点ＤＢ３２に保存される経由点を、移動方向地図に配置した経由点地図である。図１５（Ａ）を参照して、ほとんどの経由点は検出領域内に設定されるが、一部の経由点は、検出領域外（店舗内）に設定される。また、図１５（Ｂ）を参照して、領域Ａのように、移動方向の変化が多い場所には、各経由点が多く設定される傾向がある。
【００８３】
このように、各経由点の位置を、人の移動に基づいて設定することで、予測の精度を高くすることができる。
【００８４】
続いて、設定された経由点を利用して人の移動を予測する場合、まず、経由点を遷移（移動）する順番に基づいて移動遷移確率モデルを構築する。そして、構築したモデルを利用して、予測移動時間Ｔ後に、人が到達する位置（到達位置）を予測する。
【００８５】
まず、移動遷移確率モデルを構築するために、移動軌跡ＤＢ２８に保存された移動軌跡に基づいて、人々が経由点を通過する順序および通過する確率を求める。ここで、本実施例では、経由点から一定の距離以内に入ったときに、人がその経由点を通過したと判断される。ただし、他の実施例では、経由点の通過の判断は、移動軌跡の移動方向と経由点の方向とのなす角度を利用し、経由点との距離が所定距離以内であり、かつなす角度が所定角度以内の場合に通過とみなしてもよい。
【００８６】
また、２つの経由点間の移動遷移確率ｐを数２に示す式に基づいて算出し、３つの経由点間の移動遷移確率ｐを数３に示す式に基づいて算出する。なお、数２では、「Ｃ（ｉ，ｊ）」は保存された移動軌跡の中で、経由点ｖｉを通過し、続けて経由点ｖｊを通過した人の数であり、「Ｃ（ｉ）」は経由点ｖｉを通過した人の数である。また、数３では、「Ｃ（ｉ，ｊ，ｋ）」は経由点ｖｉ，ｖｊ，ｖｋの順番で通過した人の数である。つまり、数２に示す式は、経由点ｖｉを通過した人のうち、続けて経由点ｖｊを通過した人の割合を表す。また、数３に示す式は、経由点ｖｉおよび経由点ｖｊを続けて通過した人のうち、さらに経由点ｖｋを通過した人の割合を表す。
【００８７】
【数２】
0005763384.tif 000002
【００８８】
【数３】
0005763384.tif 000003
【００８９】
ここで、数２、数３によって移動遷移確率ｐを求める際、データの不足によりＣ（ｉ，ｊ），Ｃ（ｉ，ｊ，ｋ）が十分に得られない問題が生じる。この問題に対して、本実施例では、バックオフ・スムージングによって、移動遷移確率ｐ（ｋ｜ｉ，ｊ）の算出時に、移動遷移確率ｐ（ｉ｜ｊ）を用いて補間し、移動遷移確率ｐ（ｉ｜ｊ）の算出時に移動遷移確率ｐ（ｉ）を用いて補間を行う。なお、このバックオフ・スムージングについては、「北研二  「確率的言語モデル」  東京大学出版会  1999」に記述されているため、詳細な説明は省略する。
【００９０】
また、３つの経由点の組み合わせに対応する移動遷移確率ｐ（ｋ｜ｉ，ｊ）を、他の経由点についても算出する。そして、その算出結果が移動遷移確率モデルとして、移動遷移確率モデルＤＢ３４に保存される。また、本実施例では、構築された移動遷移確率モデルを利用することで、人が到達する位置をより正確に予測することができるようになる。
【００９１】
次に、移動遷移確率モデルＤＢ３４に保存された移動遷移確率モデルを用いて、予測移動時間Ｔにおける到達位置を予測する。この予測移動時間Ｔとは、予測する時点までに対象者が移動するときにかかる時間のことである。また、到達位置を予測する際には、移動遷移確率モデルに加えて、予測の対象となる人（対象者）の現在位置および移動方向も用いられる。これにより、予測移動時間Ｔにおける到達位置が予測される。
【００９２】
まず、移動予測処理では、現在の経由点と直前に通過した経由点とに基づいて、経由点リストＬが初期化される。この経由点リストＬでは、人の移動を表す複数の経由点を含む経由点系列に、そのときの移動時間ｔおよびその経由点系列の移動遷移確率ｐが関連付けられている。次に、この経由点リストＬの経由点系列に対して、使用者が次に目指す経由点（次の経由点）を含む新たな経由点系列を追加し、経由点系列の移動時間ｔおよび移動遷移確率ｐを更新する。このときに、経由点系列の移動遷移確率ｐが閾値以下であれば、その経由点系列が経由点リストＬに追加されることはない。
【００９３】
さらに、更新された結果、経由点系列の移動時間ｔが予測移動時間Ｔを超えた場合には、その移動時間ｔを関連付けた経由点系列は、更新結果データに移される。そして、経由点リストＬに含まれる経由点系列が全て移されれば、更新結果データに基づいて、同一の経由点に到達する経由点系列の移動遷移確率ｐが統合され、予測移動時間Ｔにおける到達確率Ｐが算出される。そして、その到達確率Ｐに基づいて、人の到達地点が予測されると、ロボット１４の行動が確定される。なお、以下の説明では、予測移動時間Ｔを「４．０秒」とし、閾値を「０．１％」として、移動予測処理について説明する。
【００９４】
図１６（Ａ）は、或る４つの経由点ｖを結ぶ経路を示し、図１６（Ｂ）はそれらの経路を移動するためにかかる時間を示す。図１６（Ａ）を参照して、経由点ｖｂは対象者が直前に通過した経由点ｖであり、経由点ｖｐは現在通過している経由点ｖである。経由点ｖ１，ｖ２は、対象者が今後通過する可能性がある経由点ｖである。また、各経由点ｖを結ぶ経路は、経路ｖｂ−ｖｐ、経路ｖｂ−ｖ１、経路ｖｂ−ｖ２、経路ｖｐ−ｖ１、経路ｖｐ−ｖ２および経路ｖ１−ｖ２である。そして、経路ｖｂ−ｖｐはすでに移動しているため実線矢印で示される。図１６（Ｂ）を参照して、経由点ｖを結ぶ各経路の距離および人の平均移動速度ｓｐに基づいて、各経路の時間が算出される。経路の距離は、２つの経由点の座標に三平方の定理を用いて算出される。また、平均移動速度ｓｐは、ＬＲＦ１２を用いて記録される移動軌跡に基づいて、対象者の最近の数秒間の移動速度から算出される。ただし、人の移動軌跡が記録されていない場合は、移動軌跡ＤＢ２８に保存された移動軌跡から、同じ場所を移動する人の平均的な速度を算出してもよい。
【００９５】
そして、対象者が経由点ｖｐにいる時点で移動予測処理が実行されると、経由点リストＬは図１７に示すように初期化される。図１７を参照して、経由点リストＬには、経由点系列が「ｖｂ，ｖｐ」と記録され、それに対応する移動時間および移動遷移確率が「０．０秒」および「１００％」と記録される。なお、以下の説明では、経由点リストＬにおける、１つの経由点系列と、それに対応する移動時間および移動遷移確率とをまとめて「要素ｅ」と言うことにする。
【００９６】
続いて、到達確率Ｐを算出する前に行われる、経由点リストＬについて説明する。まず、現在の経由点ｖｐから遷移可能な経由点ｖに、経由点ｖ１，ｖ２が含まれるのは勿論のこと、対象者が停止したり、戻ったりする可能性もあるため経由点ｖｐ，ｖｂも含まれる。そのため、図１７に示す経由点リストＬに対して新たに追加（更新）される要素ｅ（経由点系列）の候補は、「ｖｂ，ｖｐ，ｖｂ」、「ｖｂ，ｖｐ，ｖｐ」、「ｖｂ，ｖｐ，ｖ２」および「ｖｂ，ｖｐ，ｖ１」の４つとなる。
【００９７】
また、これらの候補の経由点系列に関連付けられる、移動遷移確率ｐは数４に示す数式と一致する移動遷移確率モデルが移動遷移確率モデルＤＢ３４から読み出される。なお、数４では、「Ｎｖ」は次の経由点であり、「Ｆｖ」は経由点系列における最後の経由点であり、「Ｆｖ−１」は最後の経由点の一つ前の経由点である。
【００９８】
[数４]
ｐ＝（Ｎｖ｜Ｆｖ−１，Ｆｖ）
たとえば、「Ｆｖ」を経由点ｖｐとし、「Ｆｖ−１」は経由点ｖｂとし、「Ｎｖ」を経由点ｖ２とした場合、数４に示す式は、「移動遷移確率ｐ＝（経由点ｖ２｜経由点ｖｂ，経由点ｖｐ）」となる。そして、移動遷移確率モデルＤＢ３４からは、経由点ｖｐおよび経由点ｖｂを通過しさらに、経由点ｖ２を通過する移動遷移確率モデル（２０．０％）が読み出される。
【００９９】
同様にして、他の候補についても移動遷移確率ｐを求めた結果は、図１８（Ａ）のようになる。図１８（Ａ）を参照して、前の経由点ｖｂに戻ることを示す経由点系列（ｖｂ，ｖｐ，ｖｂ）には、移動遷移確率ｐとして「０．５％」が関連付けられる。今の経由点ｖｐに留まることを示す経由点系列（ｖｂ，ｖｐ，ｖｐ）には、移動遷移確率ｐとして「０．８％」が関連付けられる。次の経由点ｖ１に進むことを示す経由点系列（ｖｂ，ｖｐ，ｖ１）には、移動遷移確率ｐとして「７０．０％」が関連付けられる。同様に、次の経由点ｖ２に進むことを示す経由点系列（ｖｂ，ｖｐ，ｖ２）には、移動遷移確率ｐとして「２０．０％」が関連付けられる。
【０１００】
そして、移動遷移確率ｐが閾値未満の候補を省いて、経由点リストＬが更新され、その更新結果が図１８（Ｂ）のようになる。ここで、更新により追加された要素ｅにおいて、移動遷移確率ｐは、元となった要素ｅの移動遷移確率ｐと、移動遷移確率モデルによって求められた移動遷移確率ｐとの積になる。また、移動時間ｔは数５に示す数式に基づいて算出される。なお、数５の「Ｂｔ」は、前回の経由点系列に関連付けられた移動時間ｔであり、「｜Ｎｖ−Ｆｖ｜」は、最後の経由点と次の経由点との距離である。
【０１０１】
【数５】
0005763384.tif 000004
【０１０２】
たとえば、「Ｆｖ」を経由点ｖｐとし、「Ｆｖ−１」は経由点ｖｂとし、「Ｎｖ」を経由点ｖ２とした場合、前回の移動時間ｔは図１７に示すように「０．０秒」であるため、数５に示す式は、「４．０秒＝０．０＋（｜経由点ｖ２−経由点ｖｐ｜）／平均移動速度ｓｐ」となる。また、元となる要素の移動遷移確率ｐは「１．００（初期値）」であるため、ここでは候補として算出された移動遷移確率ｐがそのまま、経由点リストＬに記録されることになる。
【０１０３】
移動時間ｔがそれぞれ算出された後、移動時間ｔが予測移動時間Ｔを超える要素ｅについては、更新結果データに移される。ただし、図１８（Ｂ）に示す経由点リストＬには条件を満たす要素ｅが含まれていないため、経由点リストＬの内容は変化しない。
【０１０４】
続いて、図１８（Ｂ）に示す経由点リストＬに対して新たに追加される要素ｅの候補は、図１８（Ｃ）のようになる。つまり、経由点ｖ１，ｖ２の次に通過される可能性がある経由点ｖを含む経由点系列が候補として挙げられる。そして、各候補に関連付けられる移動遷移確率ｐに基づいて経由点リストＬを更新した結果を図１８（Ｄ）に示す。このとき、更新された経由点リストＬの要素ｅ１、要素ｅ３および要素ｅ４に含まれる移動時間ｔは、予測移動時間Ｔ（４．０秒）より大きいため、図１９（Ａ）に示す更新結果データに移される。そのため、図１８（Ｄ）に示す経由点リストＬには、要素ｅ２だけが残る。
【０１０５】
たとえば、図１９（Ａ）を参照して、図１８（Ｄ）の経由点リストＬの要素ｅが移された更新結果データでは、要素ｅ１が更新結果データの要素Ｅ１とされ、要素ｅ３が要素Ｅ２とされ、要素ｅ４が要素Ｅ３とされる。
【０１０６】
次に、図１８（Ｄ）に示す経由点リストＬに対して新たに追加される要素ｅの候補は、図１８（Ｅ）のようになる。この場合、閾値を超える移動遷移確率ｐと対応する候補は、「ｖｂ，ｖｐ，ｖ１，ｖｐ，ｖ２」だけとなり、経由点リストＬが更新された結果は図１８（Ｆ）のようになる。そして、更新された経由点リストＬの要素ｅ１は、移動時間ｔが予測移動時間Ｔより大きい。そのため、この要素ｅ１も更新結果データに移される。その結果、経由点リストＬは何も記録されていない状態になり、更新結果データは図１９（Ｂ）のようになる。つまり、新たな要素Ｅ４として、図１８（Ｆ）の要素ｅ１が更新結果データに移され、経由点リストＬを更新する処理も終了する。
【０１０７】
続いて、移動予測処理は、経由点リストＬが更新されなくなると、更新結果データに含まれる移動遷移確率が、経由点ｖ毎に統合される。具体的には、最後の経由点Ｆｖが同一の経由点ｖを含む、経由点系列に関連付けられた移動遷移確率ｐの総和が到達確率Ｐ（ｖ）として算出される。たとえば、図１９（Ｂ）の更新データでは、要素Ｅ２と要素Ｅ４とは、最後の経由点Ｆｖとして同一の経由点ｖ２を含む。そのため、図２０に示す到達確率データでは、到達確率Ｐ（ｖ２）として、要素Ｅ２と要素Ｅ４との移動遷移確率ｐの総和（４２．２．％）が算出される。また、要素Ｅ１および要素Ｅ３それぞれの最後の経由点Ｆｖは、他の要素Ｅに含まれていない。そのため、要素Ｅ１および要素Ｅ３それぞれの移動遷移確率ｐが、そのまま到達確率Ｐ（ｖｂ）＝「２．５％」および到達確率Ｐ（ｖｐ）＝「１．２％」とされる。なお、ここでは経由点ｖ１を最後の経由点Ｆｖとする要素Ｅは存在しないため、到達確率Ｐ（ｖ１）は「０．０％」となる。
【０１０８】
このように、本実施例では、各経由点を結ぶ複数の移動遷移確率ｐを統合して到達確率Ｐを算出することで、算出される到達確率Ｐの信頼性を高めている。
【０１０９】
また、本実施例では、各経由点ｖへの到達確率Ｐに基づいて、人が到達する位置が予測される。たとえば、図２０に示す到達確率データに基づいて人（対象者）の到達位置を予測する場合、到達確率Ｐ（ｖ２）が最も大きいため、約４．０秒後には経由点ｖ２付近に対象者が存在すると予測される。
【０１１０】
そして、この予測結果を用いて、ロボット１４が経由点ｖ２の近くに移動するように、行動命令がロボット１４に発行される。つまり、管理者は、予測された人の到達位置に合わせて、ロボット１４を動作させることができる。
【０１１１】
なお、上述の説明で用いた、予測移動時間Ｔと閾値とは一例であり、任意に変化させることができる。たとえば、図１５（Ａ）に示すように経由点を設定した場合は、予測移動時間Ｔは「１０秒」とし、閾値は「１０−１０」としてもよい。
【０１１２】
また、空間内に多くの歩行者が存在する場合、対象者は自身に向かってくる他の歩行者との衝突を回避するために方向を変化させることが多い。そこで、他の実施例では、他の歩行者の存在が対象者（自分）に与える影響を表現した「Ｓｏｃｉａｌ  Ｆｏｒｃｅ  Ｍｏｄｅｌ（ＳＦＭ）」を用いて次の経由点の候補を推測してもよい。たとえば、現在の空間内に存在する歩行者の位置と移動方向をＳＦＭに与えると、他の歩行者が与える影響を取り除いたうえで、それぞれの歩行者が真に向かおうとしている方向（希望する移動方向）が推定される。そして、他の実施例では、ＳＦＭによって対象者が希望する移動方向を推定することで、次の経由点の候補が推測される。これにより、次の候補を総当たりで検索する必要がなくなるため、処理時間を短くすることができる。ここで、ＳＦＭとその利用方法の詳細については、「F. Zanlungo, T. Ikeda and T. Kanda, "Social force model with explicit collision prediction," EPL, 93 (2011) 68005.」に記述されているため、詳細な説明は省略する。
【０１１３】
また、その他の実施例では、より単純な処理として、現在の移動方向の延長線上に近いものが選ばれてもよい。
【０１１４】
図２１は図２に示す移動予測装置１０におけるメモリ１８のメモリマップの一例を示す図解図である。図２１で示すように、メモリ１８はプログラム記憶領域３０２およびデータ記憶領域３０４を含む。プログラム記憶領域３０２には、移動予測装置１０を動作させるためのプログラムとして、移動軌跡蓄積プログラム３１０、移動方向算出プログラム３１２、経由点設定プログラム３１４、移動遷移確率モデル構築プログラム３１６、移動予測プログラム３１８およびロボット制御プログラム３２０などが記憶される。また、移動予測プログラム３１８は、メインプログラム３１８ａ、更新プログラム３１８ｂ、追加プログラム３１８ｃおよび統合プログラム３１８ｄを含む。
【０１１５】
移動軌跡蓄積プログラム３１０は、人の位置を連続して検出することで得た移動軌跡を、移動軌跡ＤＢ２８に保存するためのプログラムである。移動方向算出プログラム３１２は、移動軌跡ＤＢ２８に保存された移動軌跡に基づいて、部分領域毎に主な移動方向を算出し、その算出結果を移動方向分布ＤＢ３０に保存するためのプログラムである。経由点設定プログラム３１４は、移動方向分布ＤＢ３０に保存された移動方向に基づいて、検出領域およびその周辺に経由点を設定するためのプログラムである。移動遷移確率モデル構築プログラム３１６は、移動軌跡および経由点に基づいて移動遷移確率ｐを算出し、その算出結果を移動遷移確率モデルとして移動遷移確率モデルＤＢ３４に保存するためのプログラムである。
【０１１６】
移動予測プログラム３１８は、経由点ｖ毎に到達確率Ｐを算出するためのプログラムである。移動予測プログラム３１８のメインプログラム３１８ａは、到達確率Ｐを算出するための経由点リストＬを作成および更新するためのプログラムである。更新プログラム３１８ｂは経由点リストＬを更新するためのプログラムである。追加プログラム３１８ｃは、経由点リストＬに新しい要素を追加するかを判断するためのプログラムである。統合プログラム３１８ｄは、経由点リストＬを更新することで得られた更新結果データ３３６に基づいて、各経由点への到達確率Ｐを算出するためのプログラムである。
【０１１７】
ロボット制御プログラム３２０は、ロボット１４の行動を確定し、行動命令を発行するためのプログラムである。
【０１１８】
なお、図示は省略するが、移動予測装置１０を動作させるためのプログラムには、ＬＲＦ１２によって得た距離を位置（座標）データに変換するためのプログラムなども含まれる。
【０１１９】
図２２を参照して、データ記憶領域３０４には、更新バッファ３３０および予測移動時間バッファ３３２などが設けられる。また、データ記憶領域３０４には、経由点リストデータ３３４、更新結果データ３３６および到達確率データ３３８などが記憶される。
【０１２０】
更新バッファ３３０には、経由点リストＬに追加される要素ｅが一時的に記憶される。予測移動時間バッファ３３２には、閾値として利用される予測移動時間が一時的に記憶される。経由点リストデータ３３４は、たとえば、図１７や図１８（Ｂ）のように構成されたデータである。更新結果データ３３６は、図１９（Ａ）のように構成されたデータである。また、到達確率データ３３８は図２０のように構成されたデータであり、各経由点への到達確率Ｐを含む。
【０１２１】
なお、図示は省略するが、データ記憶領域３０４には、経由点ｖの総数（たとえば、３０個）を示すデータおよび各経由点ｖの座標を格納する配列（集合）データが記憶されると共に、様々な計算の結果を一時的に格納するバッファや、移動予測装置１０の動作に必要な他のカウンタやフラグなども設けられる。
【０１２２】
以下、移動予測装置１０のプロセッサ１６によって実行されるプログラムについて説明する。図２３のフロー図は移動軌跡蓄積プログラム３１０による処理を示し、図２４のフロー図は移動方向算出プログラム３１２による処理を示し、図２５は経由点設定プログラム３１４による処理を示し、図２６は移動遷移確率モデル構築プログラム３１６による処理を示し、図２７−図３０は移動予測プログラム３１８に含まれる各サブルーチンによる処理を示し、図３１はロボット制御プログラム３２０による処理を示す。
【０１２３】
図２３は移動軌跡蓄積処理のフロー図である。移動予測装置１０の電源がオンにされると、移動予測装置１０のプロセッサ１６は、ステップＳ１で現在時刻を記録し、ステップＳ３で人の位置情報が検出される。つまり、ステップＳ１で記録された時刻に対応して、検出領域内に存在する人々の位置座標を検出する。続いて、ステップＳ５では、現在時刻と位置情報とを移動軌跡ＤＢ２８に保存し、ステップＳ１に戻る。つまり、ステップＳ１−Ｓ５の処理が繰り返されると、移動軌跡ＤＢ２８には検出領域内の人々の位置が繰り返して保存される。なお、このようにして繰り返して保存された人々の位置の変化は、移動軌跡として読み出される。また、ステップＳ５の処理を実行するプロセッサ１６は記録手段として機能する。
【０１２４】
図２４は移動方向算出処理のフロー図である。たとえば、移動予測装置１０の管理者によって移動方向を算出する操作が行われると、プロセッサ１６はステップＳ１１で部分領域を設定する。たとえば、ＬＲＦ１２が設けられるショッピングモールの通路において、図８に示すように複数の部分領域が設定される。続いて、ステップＳ１３では、各部分領域を通過する移動軌跡の移動方向を算出する。たとえば、数１に示す数式に基づいて、或る部分領域内を通過する人々の移動方向が算出される。続いて、ステップＳ１５では、部分領域毎に移動方向分布を作成する。たとえば、算出された移動方向から、図１１に示す移動方向分布（実線）を作成する。続いて、ステップＳ１７では、移動方向の分布を混合ガウス分布でモデル化する。たとえば、ステップＳ１５で作成された移動方向分布をモデル化することで、図１１に示す混合ガウス分布（点線）を得る。ステップＳ１９では、各部分領域の主な移動方向を判別する。たとえば、図１１に示す混合ガウス分布から、主な移動方向を示すピークを求める。なお、ステップＳ１９の処理を実行するプロセッサ１６は判別手段として機能する。
【０１２５】
続いて、ステップＳ２１では、各部分領域の主な移動方向を、移動方向分布ＤＢ３０に保存し、移動方向算出処理を終了する。たとえば、図１１に示すガウス分布が作成されている場合、最も出現回数が多い３１５度が主な移動方向として移動方向分布ＤＢ３０に保存される。
【０１２６】
図２５は経由点設定処理のフロー図である。たとえば、移動方向算出処理が終了すると、経由点設定処理が実行される。経由点設定処理が実行されると、プロセッサ１６はステップＳ３１で所定の数の経由点ｖをランダムに設定する。たとえば、乱数を発生させる関数に基づいて、３０個の経由点ｖをランダムに設定する。なお、ステップＳ３１の処理を実行するプロセッサ１６は経由点設定手段として機能する。
【０１２７】
続いて、ステップＳ３３では、各移動方向を経由点ｖに対応付ける。つまり、移動方向分布ＤＢ３０に保存されている各移動方向を、対応する部分領域の中心ｏから所定距離（たとえば、１０ｍ）以内であり、部分領域の中心ｏから見た経由点ｖの方向と移動方向とのなす角度が所定角度（たとえば、１０度）以内の経由点ｖに対応付ける。また、複数の経由点ｖがこの条件を満たす場合には、図１４（Ａ）に示したように、垂線ｄの長さが最も短くなる経由点ｖが対応付けられる。なお、ステップＳ３３の処理を実行するプロセッサ１６は対応付け手段として機能する。
【０１２８】
続いて、ステップＳ３５では、経由点ｖの更新処理を実行する。つまり、図１４（Ｂ）に示すように、各経由点ｖに対応付けられている移動方向に基づいて合成ベクトルを求め、その合成ベクトルに基づいて経由点ｖの位置を更新（移動）する。なお、ステップＳ３５の処理を実行するプロセッサ１６は位置更新手段として機能する。
【０１２９】
続いて、ステップＳ３７では、経由点ｖの位置が変化しなくなったか否かを判断する。つまり、ステップＳ３５の処理で各経由点ｖの位置を更新したとしても、経由点の位置が変化しなかったか否かを判断する。また、具体的な処理としては、ステップＳ３５の処理を実行する前に各経由点の座標を全て記録しておき、ステップＳ３５の処理を実行した後に、各経由点の座標が変化したかを判断する。
【０１３０】
ステップＳ３７で“ＮＯ”であれば、つまり更新によって経由点ｖの位置が変化していれば、ステップＳ３５に戻る。一方、ステップＳ３７で“ＹＥＳ”であれば、つまり更新しても経由点ｖの位置が変化していなければ、各経由点ｖの座標を経由点ＤＢ３２に保存して、経由点設定処理を終了する。
【０１３１】
なお、他の実施例のステップＳ３７では、経由点ｖの変化量が小さければ、“ＹＥＳ”と判断するようにしてもよい。たとえば、更新された結果、経由点ｖの位置の変化が１０ｃｍ以下であれば、ステップＳ３７では“ＹＥＳ”と判断されてもよい。
【０１３２】
図２６は、移動遷移確率モデル構築処理のフロー図である。たとえば、経由点設定処理が終了すると、移動遷移確率モデル構築処理が実行される。また、処理が実行されるとプロセッサ１６はステップＳ４１で各移動軌跡が経由点ｖを通過した順序を算出する。なお、ステップＳ４１の処理を実行するプロセッサ１６は順序算出手段として機能する。
【０１３３】
続いて、ステップＳ４３では、算出された各順序に基づいて、移動遷移確率ｐを算出する。つまり、上述した数２および数３の数式に基づいて、移動遷移確率ｐ（ｋ｜ｉ，ｊ）を算出する。続いて、ステップＳ４５では、算出結果を、移動遷移確率モデルとして移動遷移確率モデルＤＢ３４に保存し、移動遷移確率モデル構築処理を終了する。なお、ステップＳ４３，Ｓ４５の処理を実行するプロセッサ１６は構築手段として機能する。
【０１３４】
図２７は移動予測プログラム３１８のサブルーチンであるメイン処理のフロー図である。たとえば、移動予測装置１０の管理者が人の移動を予測するコマンドを入力すると、プロセッサ１６はステップＳ６１で、予測移動時間Ｔを設定する。たとえば、プロセッサ１６は、移動予測装置１０のＬＣＤ２０に予測移動時間Ｔの入力を促すＧＵＩを表示する。そして、管理者が入力した結果が、予測移動時間Ｔとして予測移動時間バッファ３３２に格納される。また、他の実施例では、予め決められた予測移動時間Ｔを示すデータをメモリ１８に記憶させておき、そのデータを予測移動時間バッファ３３２に格納してもよい。なお、ステップＳ６１の処理を実行するプロセッサ１６は時間設定手段として機能する。
【０１３５】
続いて、ステップＳ６３では人の平均移動速度ｓｐを算出する。たとえば、上述したように、移動軌跡ＤＢ２８に保存されている移動軌跡に基づいて、人の平均移動速度ｓｐが算出される。続いて、ステップＳ６５で人が現在通過している経由点ｖｐを特定し、ステップＳ６７で人が直前に通過した経由点ｖｂを特定する。つまり、移動軌跡ＤＢ２８に記録されている、人の移動軌跡に基づいて経由点ｖｐおよび経由点ｖｂを特定する。
【０１３６】
続いて、ステップＳ６９では、経由点ｖｐ，ｖｂに基づいて、経由点リストＬを初期化する。つまり、経由点リストＬが初期化されると、図１７に示すように、経由点ｖｐ，ｖｂを含む経由点系列に、「０．０秒」の移動時間ｔおよび「１００％」の移動遷移確率ｐが関連付けられる。続いて、更新結果データ３３６を初期化する。たとえば、更新結果データ３３６が何も記録されていない状態にされる。
【０１３７】
続いて、ステップＳ７３では、経由点リストＬに何も記録されていないか否かを判断する。つまり、経由点リストＬが更新された結果、全ての要素ｅが更新結果データ３３６に移されたか否かを判断する。ステップＳ７３で“ＮＯ”であれば、つまり経由点リストＬに要素ｅが含まれていれば、ステップＳ７５で更新処理を実行する。つまり、経由点リストＬを更新するために、更新処理が実行される。そして、ステップＳ７５の処理が終了すると、ステップＳ７３に戻る。一方、ステップＳ７３で“ＹＥＳ”であれば、つまり経由点リストＬの要素ｅが全て更新結果データ３３６に移されれば、ステップＳ７７で統合処理を実行する。そして、統合処理が終了すれば、メイン処理も終了する。なお、更新処理および統合処理の詳細については、後述するためここでの詳細な説明は省略する。
【０１３８】
図２８は移動予測プログラム３１８のサブルーチンである更新処理のフロー図である。メイン処理でステップＳ７５の更新処理が実行されると、プロセッサ１６はステップＳ９１で、更新バッファ３３０を初期化する。つまり、更新バッファ３３０が、何も記憶されていない状態にされる。続いて、ステップＳ９３では、経由点リストＬに含まれる要素ｅの総数を変数Ｍに設定する。たとえば、図１７に示す経由点リストＬであれば変数Ｍには「１」が設定され、図１８（Ｂ）に示す経由点リストＬであれば変数Ｍには「２」が設定され、図１８（Ｄ）に示す経由点リストＬであれば変数Ｍには「４」が設定され、図１８（Ｆ）に示す経由点リストＬであれば変数Ｍには「１」が設定される。続いて、ステップＳ９５では、要素ｅを識別する変数ｍを初期化する。たとえば、変数ｍには「１」が設定される。
【０１３９】
続いて、ステップＳ９７では、要素ｅｍの移動時間ｔは予測移動時間Ｔより大きいか否かを判断する。たとえば変数ｍが「１」であり、経由点リストＬが図１７の状態であれば、１行目の要素ｅ１の移動時間ｔが予測移動時間Ｔよりも大きいか否かが判断される。ステップＳ９７で“ＮＯ”であれば、つまり要素ｅｍの移動時間ｔが予測移動時間Ｔ以下であれば、ステップＳ９９で追加処理が実行される。なお、追加処理については、図２９のフロー図を用いて説明するため、ここでの詳細な説明は省略する。
【０１４０】
また、たとえば経由点リストＬが図１８（Ｄ）の状態であり、変数ｍが「１」であれば、ステップＳ９７で“ＹＥＳ”と判断され、ステップＳ１０１で更新結果データ３３６に、要素ｅ１が移される。つまり、図１８（Ｄ）の要素ｅ１は、図１９（Ａ）に示す更新結果データの要素Ｅ１として移される。
【０１４１】
続いて、ステップＳ１０３では、変数ｍをインクリメントする。つまり、他の要素ｅに対して、ステップＳ９７−Ｓ１０１の処理を実行するために、変数ｍをインクリメントする。続いて、ステップＳ１０５で変数ｍが変数Ｍよりも大きいか否かを判断する。つまり、経由点リストＬにおける全ての要素ｅに対して、ステップＳ９９またはステップＳ１０１の処理が実行されたか否かを判断する。ステップＳ１０５で“ＮＯ”であれば、つまり全ての要素ｅに対してステップＳ９９またはステップＳ１０１の処理が実行されていなければ、ステップＳ９７に戻る。
【０１４２】
一方、ステップＳ１０５で“ＹＥＳ”であれば、つまり全ての要素ｅに対して、上述の処理が実行されていれば、ステップＳ１０７で更新バッファ３３０の内容に基づいて、経由点リストＬを更新する。たとえば、ステップＳ１０７の処理が実行されると、図１７に示す経由点リストＬが、図１８（Ｂ）に示す経由点リストＬとなる。そして、ステップＳ１０７の処理が終了すれば、プロセッサ１６はメイン処理に戻る。なお、ステップＳ１０７の処理を実行するプロセッサ１６は更新手段として機能する。
【０１４３】
なお、他の実施例でＳＦＭが利用される場合は、ステップＳ９９の前に次の経由点を推定する処理が追加される。
【０１４４】
図２９は移動予測プログラム３１８のサブルーチンである追加処理のフロー図である。更新処理のステップＳ９９が実行されると、ステップＳ１２１では、経由点ｖを識別する変数ｎを初期化する。たとえば、変数ｎには「１」が設定される。続いて、ステップＳ１２３では、次の経由点Ｎｖｎへの移動遷移確率ｐを読み出す。たとえば、上記更新処理において、たとえば変数ｍが「１」であり、経由点リストＬが図１７の状態であり、次の経由点Ｎｖｎが「ｖ１」であれば、「ｐ＝（ｖ１｜ｖｂ，ｖｐ）」となる、移動遷移確率モデルが移動遷移確率モデルＤＢ３４から読み出される。なお、ステップＳ１２３の処理を実行するプロセッサ１６は移動遷移確率算出手段として機能する。
【０１４５】
続いて、ステップＳ１２５では、移動遷移確率ｐが閾値よりも小さいか否かを判断する。つまり、ステップＳ１２３で得られた移動遷移確率ｐが閾値より小さいか否かが判断される。ステップＳ１２５で“ＹＥＳ”であれば、たとえば図１８（Ａ）の２行目のように、移動遷移確率ｐが閾値よりも小さければ、ステップＳ１２９に進む。
【０１４６】
一方、ステップＳ１２５で“ＮＯ”であれば、たとえば図１８（Ａ）の４行目のように、移動遷移確率ｐが閾値以上であれば、ステップＳ１２７で更新バッファ３３０に経由点Ｎｖｎを含む要素ｅを追加する。たとえば、図１８（Ａ）の４行目に対応する経由点系列において、移動時間ｔおよび移動遷移確率ｐが算出され、それらを含む要素ｅが更新バッファ３３０に追加される。なお、ステップＳ１２７の処理を実行するプロセッサ１６は追加手段として機能する。
【０１４７】
続いて、ステップＳ１２９では、変数ｎをインクリメントする。つまり、他の経由点ｖを次の経由点Ｎｖとして、更新バッファ３３０に追加することができるかを判断するために、変数ｎはインクリメントされる。続いて、ステップＳ１３１では、変数ｎが経由点ｖの総数Ｎよりも大きいか否かを判断する。つまり、全ての経由点ｖに対して、ステップＳ１２３−Ｓ１２７の処理が実行されたか否かを判断する。ステップＳ１３１で“ＮＯ”であれば、つまり全ての経由点ｖに対して上述の処理が実行されていなければ、ステップＳ１２３に戻る。一方、ステップＳ１３１で“ＹＥＳ”であれば、つまり全ての経由点ｖに対して上述の処理が実行されていれば、追加処理を終了する。そして、プロセッサ１６は更新処理に戻る。
【０１４８】
図３０は移動予測プログラム３１８のサブルーチンである統合処理のフロー図である。メイン処理のステップＳ７７が実行されると、ステップＳ１５１では、到達確率データ３３８を初期化する。つまり、図２０に示すように、各経由点ｖへの到達確率Ｐ（ｖ）それぞれに、「０」を設定する。続いて、ステップＳ１５３では、更新結果データ３３６に含まれる要素Ｅの総数を変数Ｋに設定する。たとえば、図１９（Ｂ）に示す行動結果データであれば、変数Ｋには「４」が設定される。続いて、ステップＳ１５５では、要素Ｅを識別する変数ｋを初期化する。たとえば、変数ｋには「１」が設定される。
【０１４９】
続いて、ステップＳ１５７では、要素Ｅｋに含まれる最後の経由点Ｆｖを抽出する。たとえば、図１９（Ｂ）に示す更新結果データにおいて、変数ｋが「４」であれば、最後の経由点Ｆｖとして、経由点ｖ２が抽出される。続いて、ステップＳ１５９では、到達確率Ｐ（Ｆｖ）に要素Ｅｋの移動遷移確率ｐを足し込む。たとえば、上記したように、経由点ｖｂが抽出された場合、図２０に示す到達確率データにおいて、到達確率Ｐ（ｖ２）に経由点ｖ２の移動遷移確率ｐ（１．６％）が足し込まれる。このとき、到達確率Ｐ（ｖ２）が「４０．６％」であれば、足し込まれた結果が「４２．２％」となる。なお、ステップＳ１５９の処理を実行するプロセッサ１６は到達確率算出手段として機能する。
【０１５０】
続いて、ステップＳ１６１では変数ｋをインクリメントする。つまり、他の要素Ｅに対しても、ステップＳ１５７，Ｓ１５９の処理を実行するために、変数ｋはインクリメントされる。続いて、ステップＳ１６３では変数ｋが変数Ｋよりも大きいか否かを判断する。つまり、全ての要素Ｅに対して、ステップＳ１５７，Ｓ１５９の処理が実行されたか否かを判断する。ステップＳ１６３で“ＮＯ”であれば、つまり上述の処理が全ての要素Ｅに対して実行されていなければ、ステップＳ１５７に戻る。一方、ステップＳ１６３“ＹＥＳ”であれば、つまり上述の処理が全ての要素Ｅに対して実行されていれば、統合処理を終了する。そして、プロセッサ１６は統合処理を終了した後、メイン処理に戻る。
【０１５１】
なお、他の実施例でＳＦＭが利用される場合、追加処理では、ステップＳ１２１，Ｓ１２９およびＳ１３１が省略される。また、ステップＳ１２３では、予測された次の経由点に基づいて次の経由点への移動遷移確率ｐが算出される。
【０１５２】
図３１はロボット制御処理のフロー図である。たとえば、移動予測処理が終了すると、ロボット制御処理が実行される。プロセッサ１６はステップＳ１８１で到達確率データ３３８を読み出す。つまり、各経由点ｖへの到達確率Ｐが記録される、到達確率データ３３８が読み出される。続いて、ステップＳ１８３では、到達確率データ３３８に基づいて、人の到達位置を予測する。たとえば、到達確率Ｐが最も大きい経由点ｖを特定し、予測移動時間Ｔ後には、その経由点ｖに人が到達していると予測する。なお、ステップＳ１８３の処理を実行するプロセッサ１６は予測手段として機能する。
【０１５３】
続いて、ステップＳ１８５では、予測された到達位置に基づいて、ロボット１４の動作を決定する。たとえば、予測移動時間Ｔに経由点ｖへ移動して、情報提供などのサービスを行うように、ロボット１４の行動が確定される。なお、ステップＳ１８５の処理を実行するプロセッサ１６は行動確定手段として機能する。
【０１５４】
そして、ステップＳ１８７では、ロボット１４に動作命令を発行する。つまり、上述のような行動を行うための行動命令をロボット１４に発信する。そして、ステップＳ１８７の処理が終了すれば、ロボット制御処理が終了する。
【０１５５】
なお、他の実施例では、各経由点ｖの位置に基づいてロボット１４の動作が確定されてもよい。たとえば、経由点が多い場所にはロボット１４が近づかないようにして、少し離れた場所で情報提供のサービスを行うようにしてもよい。また、通路が合流したりする経由点にロボット１４を近づけて、道案内のサービスを行うようにしてもよい。
【０１５６】
図３２は、他の実施例におけるロボット制御処理のフロー図である。ロボット制御処理が実行されると、プロセッサ１６はステップＳ２０１で、経由点ＤＢ３２から各経由点ｖを読み出す。たとえば、図１５に示す全ての経由点の位置が読み出される。続いて、ステップＳ２０３では、設けられた経由点に基づいてロボット１４の行動を確定する。つまり、上述したように、読み出した経由点の位置に基づいてロボット１４の行動を確定する。続いて、ステップＳ２０５では、ロボット１４に動作命令を発行し、他の実施例のロボット制御処理を終了する。なお、ステップＳ２０３の処理を実行するプロセッサ１６は行動確定手段として機能する。
【０１５７】
このように、人々の移動に基づいて設定された経由点を利用して、ロボット１４の動作を確定することで、人々の移動が考慮された行動を、ロボット１４に行わせることができる。
【０１５８】
なお、他の実施例では、対象者が向かう可能性が最も高い経由点ｖに対してロボット１４が向かわないように、ロボット１４に行動命令を発行してもよい。
【０１５９】
また、本実施例で説明した複数のプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して本実施例と同等の構成のシステムにおける移動予測装置などに配信されてもよい。また、CD, DVD, BD (Blu-ray Disc)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体にこれらのプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、上記複数のプログラムが、本実施例と同等の構成のシステムにおける移動予測装置にインストールされた場合、本実施例と同等の効果が得られる。
【０１６０】
そして、本明細書中で挙げた、一定時間、距離、誤差、自由度、半径、角度、周波数、部分領域の大きさ、Δ、空間の広さ、経由点の数、所定距離、所定角度、予測移動時間Ｔ、閾値、移動時間ｔ、移動遷移確率ｐおよび到達確率Ｐなどの具体的な数値は、いずれも単なる一例であり、製品の仕様などの必要に応じて適宜変更可能である。
【符号の説明】
【０１６１】
１０  …移動予測装置
１２ａ−１２ｆ  …ＬＲＦ
１４  …ロボット
１６  …プロセッサ
１８  …メモリ
２８  …移動軌跡ＤＢ
３０  …移動方向分布ＤＢ
３２  …経由点ＤＢ
３４  …移動遷移確率モデルＤＢ
【図１】
0005763384.tif 000005
【図２】
0005763384.tif 000006
【図３】
0005763384.tif 000007
【図４】
0005763384.tif 000008
【図５】
0005763384.tif 000009
【図６】
0005763384.tif 000010
【図７】
0005763384.tif 000011
【図８】
0005763384.tif 000012
【図９】
0005763384.tif 000013
【図１０】
0005763384.tif 000014
【図１１】
0005763384.tif 000015
【図１２】
0005763384.tif 000016
【図１３】
0005763384.tif 000017
【図１４】
0005763384.tif 000018
【図１５】
0005763384.tif 000019
【図１６】
0005763384.tif 000020
【図１７】
0005763384.tif 000021
【図１８】
0005763384.tif 000022
【図１９】
0005763384.tif 000023
【図２０】
0005763384.tif 000024
【図２１】
0005763384.tif 000025
【図２２】
0005763384.tif 000026
【図２３】
0005763384.tif 000027
【図２４】
0005763384.tif 000028
【図２５】
0005763384.tif 000029
【図２６】
0005763384.tif 000030
【図２７】
0005763384.tif 000031
【図２８】
0005763384.tif 000032
【図２９】
0005763384.tif 000033
【図３０】
0005763384.tif 000034
【図３１】
0005763384.tif 000035
【図３２】
0005763384.tif 000036