(57)【要約】      （修正有）【課題】移動体を適切に移動制御する。【解決手段】移動体１０は移動体制御装置としても機能するコンピュータを含み、移動体はコンピュータの指示に従って環境内を自律走行する。コンピュータは、今回のすれ違い対象の所定時間後の移動体との相対的な位置を、移動体とすれ違う不特定多数のすれ違い対象の回避行動について予め取得した特徴ベクトルに基づいて予測し、予測した位置と移動体の目的地に基づいて、移動体が所定時間後に移動するべき目標位置を算出する。そして、コンピュータの制御に従って、移動体を目標位置に移動させる。【選択図】図１
2015132980.tif 000002
【特許請求の範囲】
【請求項１】
自律走行する移動体を移動制御する移動体制御装置であって、
前記移動体とすれ違う不特定多数のすれ違い対象の各々の回避行動についての特徴ベクトルを予め記憶した記憶手段、
前記記憶手段に記憶された全特徴ベクトルに基づいて、前記移動体と今回のすれ違い対象の所定時間後の当該移動体に対する相対位置を予測する位置予測手段、
前記位置予測手段によって予測された相対位置と前記移動体の目的地に基づいて当該移動体の目標位置を算出する目標位置算出手段、および
前記目標位置算出手段によって算出された目標位置に前記移動体を移動させる制御手段を備える、移動体制御装置。
【請求項２】
前記記憶手段は、前記全特徴ベクトルをクラスタリングし、クラスタリングした各クラスの複数の特徴ベクトルおよび当該複数の特徴ベクトルの平均ベクトルを記憶し、
前記位置予測手段は、前記今回のすれ違い対象の現在までの特徴ベクトルに近似する特徴ベクトルを含むクラスを求め、当該クラスの平均ベクトルを用いて前記相対位置を予測する、請求項１記載の移動体制御装置。
【請求項３】
前記記憶手段は、前記移動体と前記不特定多数の対象との相対距離毎に生成された特徴ベクトルの集合をクラスタリングし、当該相対距離毎に、クラスタリングした各クラスの複数の特徴ベクトルおよび当該複数の特徴ベクトルの平均ベクトルのデータベースを記憶し、
前記位置予測手段は、前記移動体と前記今回のすれ違い対象との相対距離に応じたデータベースを選択し、当該データベースから、前記今回のすれ違い対象の現在までの特徴ベクトルに近似する特徴ベクトルを含むクラスを求め、当該クラスの平均ベクトルを用いて前記相対位置を予測する、請求項１記載の移動体制御装置。
【請求項４】
前記目標位置算出手段は、前記予測された相対位置から前記今回のすれ違い対象が前記所定時間で移動可能な範囲を表す第１の円に接する、かつ前記目的地を通る直線を算出する直線算出手段、および前記直線算出手段によって算出された直線と前記移動体が前記所定時間で移動可能な範囲を表す第２の円と交差する点を算出する交差点算出手段を含み、前記交差点算出手段によって算出された交差する点から前記目標位置を算出する、請求項１ないし３のいずれかに記載の移動体制御装置。
【請求項５】
自律走行する移動体とすれ違う不特定多数のすれ違い対象の各々の回避行動についての特徴ベクトルを予め記憶した記憶手段を備え、前記移動体を移動制御する移動体制御装置のコンピュータによって実行される移動体制御プログラムであって、
前記コンピュータのプロセッサに、
前記記憶手段に記憶された全特徴ベクトルに基づいて、前記移動体と今回のすれ違い対象の所定時間後の当該移動体に対する相対位置を予測する位置予測ステップ、
前記位置予測ステップにおいて予測した相対位置と前記移動体の目的地に基づいて当該移動体の目標位置を算出する目標位置算出ステップ、および
前記目標位置算出ステップにおいて算出した目標位置に前記移動体を移動させる制御ステップを実行させる、移動体制御プログラム。
【請求項６】
自律走行する移動体とすれ違う不特定多数のすれ違い対象の各々の回避行動についての特徴ベクトルを予め記憶した記憶手段を備え、前記移動体を移動制御する移動体制御装置の移動体制御方法であって、
前記移動体制御装置のコンピュータは、
（ａ）前記記憶手段に記憶された全特徴ベクトルに基づいて、前記移動体と今回のすれ違い対象の所定時間後の当該移動体に対する相対位置を予測し、
（ｂ）前記ステップ（ａ）において予測した相対位置と前記移動体の目的地に基づいて当該移動体の目標位置を算出し、そして
（ｃ）前記ステップ（ｂ）において算出した目標位置に前記移動体を移動させる、移動体制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は移動体制御装置、移動体制御プログラムおよび移動体制御方法に関し、特にたとえば、自律走行する移動体の移動を制御する、移動体制御装置、移動体制御プログラムおよび移動体制御方法に関する。
【背景技術】
【０００２】
この発明の背景技術の一例が特許文献１に開示される。この特許文献１のロボットは、自己とすれ違う歩行者の軌跡を示す歩行者モデルを記憶しており、自己および歩行者の位置を検出して、検出結果および歩行者モデルに基づいて自己とすれ違う歩行者の軌跡を予測し、予測結果に応じて自己の回避行動を決定する。具体的には、所定時間後にロボットが歩行者とすれ違うか否かを判断し、すれ違う場合に、ロボットの位置を中心とする判定円内に歩行者が入るかどうかを判断する。そして、歩行者が判定円内に入る場合に、歩行者と一定以上の距離を保つように、ロボットを移動させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２００８１８[B25J 13/08, G05D 1/02]
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この背景技術では、歩行者が判定円内に入る場合には、歩行者と一定以上の距離を保つように、ロボットを移動させるようにしてある。しかし、歩行者によってロボットとのすれ違いの仕方が異なるため、一律に一定以上の距離を保つように移動させるのは、適切な移動制御とは言えない。たとえば、歩行者にとって一定の距離が十分な距離でない場合には、当該歩行者に危険な印象を与えてしまう虞がある。また、歩行者にとって一定の距離が十分過ぎる場合には、ロボットを過度に大回りさせていることとなり、移動時間をいたずらに長くしてしまう。つまり、移動効率が悪い。
【０００５】
それゆえに、この発明の主たる目的は、新規な、移動体制御装置、移動体制御プログラムおよび移動体制御方法を提供することである。
【０００６】
この発明の他の目的は、適切な移動制御を行うことができる、移動体制御装置、移動体制御プログラムおよび移動体制御方法を提供することである。
【課題を解決するための手段】
【０００７】
第１の発明は、自律走行する移動体を移動制御する移動体制御装置であって、記憶手段、位置予測手段、目標位置算出手段、および制御手段を備える。記憶手段は、移動体とすれ違う不特定多数のすれ違い対象の各々の回避行動についての複数の特徴ベクトルを予め記憶する。位置予測手段は、記憶手段に記憶された全特徴ベクトルに基づいて、移動体と今回のすれ違い対象の所定時間後の当該移動体に対する相対位置を予測する。目標位置算出手段は、位置予測手段によって予測された相対位置と移動体の目的地に基づいて当該移動体の目標位置を算出する。そして、制御手段は、目標位置算出手段によって算出された目標位置に移動体を移動させる。
【０００８】
第１の発明によれば、予め記憶されたすれ違い対象の回避行動についての特徴ベクトルから今回のすれ違い対象の移動後の移動体に対する相対位置を予測し、予測した相対位置と移動体の目的地に基づいて、移動体が次に移動するべき目標位置を算出するので、すれ違い対象に通常の回避行動をさせるように、移動体を移動させることができる。したがって、移動体が、すれ違い対象に近づき過ぎたり、すれ違い対象を回避し過ぎたりすることがない。つまり、適切な移動制御を行うことができる。したがって、すれ違い対象としての歩行者に危険な印象を与えることが無く、また、効率的に移動体を移動させることができる。
【０００９】
第２の発明は、第１の発明に従属し、記憶手段は、全特徴ベクトルをクラスタリングし、クラスタリングした各クラスの複数の特徴ベクトルおよび当該複数の特徴ベクトルの平均ベクトルを記憶する。つまり、回避行動の仕方に応じて、複数の特徴ベクトルがクラス分けされる。位置予測手段は、今回のすれ違い対象の現在までの特徴ベクトルに近似する特徴ベクトルを含むクラスの平均ベクトルを用いて相対位置を予測する。
【００１０】
第２の発明によれば、回避行動の仕方に応じてクラス分けされた特徴ベクトルの平均ベクトルを用いて相対位置を予測するので、今回のすれ違い対象の回避行動に応じた平均ベクトルを用いて予測することができる。したがって、すれ違い対象に通常の回避行動をさせるように、移動体を移動制御することができる。
【００１１】
第３の発明は、第１の発明に従属し、記憶手段は、移動体と不特定多数の対象との相対距離毎に生成された全特徴ベクトルをクラスタリングし、当該相対距離毎に、クラスタリングした各クラスの特徴ベクトルおよび平均ベクトルのデータベースを記憶する。位置予測手段は、移動体と今回のすれ違い対象との相対距離に応じたデータベースを選択し、当該データベースから、今回のすれ違い対象の現在までの特徴ベクトルに近似する特徴ベクトルを含むクラスを求め、当該クラスの平均ベクトルを用いて相対位置を予測する。
【００１２】
第３の発明によれば、回避行動の種類のみならず、移動体とすれ違い対象との相対距離を考慮して、今回のすれ違い対象の回避行動に応じた平均ベクトルを用いて予測することができる。したがって、より正確に、すれ違い対象に通常の回避行動をさせるように、移動体を移動制御することができる。
【００１３】
第４の発明は、第１ないし第３の発明のいずれかに従属し、目標位置算出手段は、直線算出手段および交差点算出手段を含む。直線算出手段は、予測された相対位置から今回のすれ違い対象が所定時間で移動可能な範囲を表す第１の円に接する、かつ目的地を通る直線を算出する。交差点算出手段は、直線算出手段によって算出された直線と移動体が所定時間で移動可能な範囲を表す第２の円と交差する点を算出する。したがって、目標位置算出手段は、交差点算出手段によって算出された交差する点から目標位置を算出する。
【００１４】
第４の発明によれば、予測した所定時間後の今回のすれ違い対象の相対位置に基づいて、所定時間において、今回のすれ違い対象が移動可能な範囲と、移動体が移動可能な範囲を用いて、移動体の目標位置を算出するので、今回のすれ違い対象および移動体のそれぞれの移動の制約に応じた目標位置を算出することができる。
【００１５】
第５の発明は、自律走行する移動体とすれ違う不特定多数のすれ違い対象の各々の回避行動についての特徴ベクトルを予め記憶した記憶手段を備え、移動体を移動制御する移動体制御装置のコンピュータによって実行される移動体制御プログラムであって、コンピュータのプロセッサに、記憶手段に記憶された全特徴ベクトルに基づいて、移動体と今回のすれ違い対象の所定時間後の当該移動体に対する相対位置を予測する位置予測ステップ、位置予測ステップにおいて予測した相対位置と移動体の目的地に基づいて当該移動体の目標位置を算出する目標位置算出ステップ、および目標位置算出ステップにおいて算出した目標位置に移動体を移動させる制御ステップを実行させる、移動体制御プログラムである。
【００１６】
第６の発明は、自律走行する移動体とすれ違う不特定多数のすれ違い対象の各々の回避行動についての特徴ベクトルを予め記憶した記憶手段を備え、移動体を移動制御する移動体制御装置の移動体制御方法であって、移動体制御装置のコンピュータは、（ａ）記憶手段に記憶された全特徴ベクトルに基づいて、移動体と今回のすれ違い対象の所定時間後の当該移動体に対する相対位置を予測し、（ｂ）ステップ（ａ）において予測した相対位置と移動体の目的地に基づいて当該移動体の目標位置を算出し、そして（ｃ）ステップ（ｂ）において算出した目標位置に移動体を移動させる、移動体制御方法である。
【００１７】
第５および第６の発明においても、第１の発明と同様に、適切な移動制御を行うことができる。
【発明の効果】
【００１８】
この発明によれば、予め記憶されたすれ違い対象の回避行動についての全特徴ベクトルから今回のすれ違い対象の移動後の当該移動体に対する相対位置を予測し、予測した相対位置と移動体の目的地に基づいて、移動体が次に移動するべき目標位置を算出するので、すれ違い対象に通常の回避行動をさせるように、移動体を移動させることができる。したがって、移動体が、すれ違い対象に近づき過ぎたり、すれ違い対象を回避し過ぎたりすることがない。つまり、適切な移動制御を行うことができる。したがって、すれ違い対象としての歩行者に危険な印象を与えることが無く、また、効率的に移動体を移動させることができる。
【００１９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２０】
【図１】図１は移動体制御システムの一例を示す図解図である。
【図２】図２は移動体の電気的な構成の一例を示すブロック図である。
【図３】図３は図２に示す移動体の外観構成の一例を示す図解図である。
【図４】図４は図２および図３に示す距離センサの検出範囲を説明するための図解図である。
【図５】図５は図１に示した計測装置の電気的な構成の一例を示すブロック図である。
【図６】図６は図１−図３に示される移動体の位置および向きを算出するためのパラメータを説明するための図解図である。
【図７】図７は移動体とすれ違い対象がすれ違う場合の特徴量を説明するための図解図である。
【図８】図８は或る相対距離におけるすれ違い対象の特徴ベクトルを模式的に示す図である。
【図９】図９は或る相対距離におけるすべての特徴ベクトルをクラスタリングした場合の各クラスの特徴ベクトルおよびクラス毎の平均ベクトルを示す図解図である。
【図１０】図１０はすれ違い対象とすれ違う場合の移動体の移動制御の方法を説明するための図解図である。
【図１１】図１１は移動体の目標位置を算出する方法を説明するための図解図である。
【図１２】図１２は移動体の目標位置を算出する方法を説明するための他の図解図である。
【図１３】図１３は図２に示すＲＡＭのメモリマップの一例を示す図解図である。
【図１４】図１４は図１３に示す平均ベクトルデータの具体的な内容を示す図解図である。
【図１５】図１５は図２に示すＣＰＵの移動制御処理の一部を示すフロー図である。
【図１６】図１６は図２に示すＣＰＵの移動制御処理の他の一部であって、図１５に後続するフロー図である。
【図１７】図１７は図２に示すＣＰＵの移動後位置算出処理を示すフロー図である。
【図１８】図１８は見通しの悪い環境に距離センサを配置した場合の例を示す図解図である。
【図１９】図１９は図１８に示したような環境における移動体の移動制御の方法を説明するための図解図である。
【発明を実施するための形態】
【００２１】
図１はこの実施例の移動体制御システム１であり、移動体１０および計測装置１００を含み、移動体１０および計測装置１００はネットワーク２を介して通信可能に接続される。ただし、実際に通信するのは、移動体１０に含まれるコンピュータ１２（図２参照）と、計測装置１００に含まれるコンピュータ１０２（図５参照）である。
【００２２】
図２は図１に示す移動体１０の電気的な構成を示すブロック図である。この移動体１０は、移動制御装置および経路算出装置としても機能するコンピュータ１２を含む。コンピュータ１２は、汎用のパーソナルコンピュータやワークステーションなどのコンピュータであり、ＣＰＵ１２ａ、ＲＡＭ１２ｂおよびＨＤＤ１２ｃ、通信装置（図示せず）などのコンポーネントを備える。このようなコンポーネントを備えることは、後述するコンピュータ１０２も同様である。
【００２３】
また、コンピュータ１２には、入出力インターフェイス（以下、単に「インターフェイス」という。）１４、操作レバー１６および距離センサ１８ａ、１８ｂが接続される。インターフェイス１４には、モータドライバ２０ａを介してモータ２２ａが接続されるとともに、モータドライバ２０ｂを介してモータ２２ｂが接続される。さらに、インターフェイス１４には、エンコーダ２４ａおよび２４ｂが接続される。
【００２４】
なお、モータ２２ａの回転軸と左の後輪３４ａ（図３参照）の回転軸がギアを用いて連結され、モータ２２ｂの回転軸と右の後輪３４ｂ（図３参照）の回転軸がギアを用いて連結される。
【００２５】
ここで、図３（Ａ）を参照して、この実施例の移動体１０は、電気車椅子のような移動体であり、その下部に、左右の前輪（キャスター）３２ａ、３２ｂおよび左右の後輪３４ａ、３４ｂを備えている。また、移動体１０の左側の枠の上部に、上述した操作レバー１６が設けられる。さらに、移動体１０の左側の枠であり、ユーザが左足を置くステップ３６ａの左側に、上述した距離センサ１８ａが取り付けられる。ただし、距離センサ１８ａは、移動体１０の右側の枠であり、ユーザが右足を置くステップ３６ｂの右側に取り付けてもよい。また、移動体１０を上方から見た模式図である図３（Ｂ）に示すように、移動体１０の後方に、上述した距離センサ１８ｂが設けられる。
【００２６】
なお、この実施例では、距離センサ１８ａおよび１８ｂを移動体１０の前後に取り付けるようにしてあるが、移動体１０の左右に取り付けるようにしてもよい。このように２つの距離センサ１８ａ、１８ｂを移動体１０の前後または左右に設けるのは、移動体１０の周りを全周（３６０°）に渡って、距離を検出（計測）するためである。ただし、これは単なる一例であり、距離センサは１つでもよく、または、３つ以上設けてもよい。
【００２７】
また、この実施例では、距離センサ１８ａおよび１８ｂは、或る環境内の壁、柱のような固定された対象物（静的な障害物）のみならず、人間（歩行者）のような移動する対象物（動的な障害物）との距離を計測（検出）する。
【００２８】
図３（Ａ）に戻って、移動体１０の座席シートの下側であり、左の後輪３４ａと右の後輪３４ｂの間には、ボックス４０が設けられる。この中に、上述したコンピュータ１２、インターフェイス１４、モータドライバ２０ａ、２０ｂ、モータ２２ａ、２２ｂおよびエンコーダ２４ａ、２４ｂが設けられる。ただし、コンピュータ１２およびインターフェイス１４は、ボックス４０の外に設けるようにしてもよい。
【００２９】
コンピュータ１２（ＣＰＵ１２ａ）は、この実施例の移動体１０の全体的な制御を司る。この実施例では、ＣＰＵ１２ａは、移動体１０の移動経路を算出する。また、ＣＰＵ１２ａは、自動的に、または、操作レバー１６からの操作入力に応じてモータ２２ａ、２２ｂの駆動を制御する。つまり、ＣＰＵ１２ａは、移動体１０の移動を制御する。さらに、ＣＰＵ１２ａは、距離センサ１８ａ、１８ｂおよびエンコーダ２４ａ、２４ｂで検出された距離データや回転数データを取得および記憶する。そして、ＣＰＵ１２ａは、検出したデータに基づいて、障害物までの距離を計測したり、移動体１０の位置を予測（決定）したりする。
【００３０】
操作レバー１６は、移動体１０に乗っているユーザによって操作され、操作に応じた信号（操作入力）がコンピュータ１２に与えられる。たとえば、前進、後退、停止、左折、右折および旋回などの操作を行うことができる。
【００３１】
ただし、リモートコントローラ（図示せず）を用いて、遠隔操作により、操作入力をコンピュータ１２に与えることもできる。また、この実施例では、移動体１０を自律走行させるため、操作レバー１６は設けなくてもよい。
【００３２】
距離センサ１８ａ、１８ｂは、たとえば、汎用のレーザレンジファインダ（ＬＲＦ）であり、レーザーを照射し、物体に反射して戻ってくるまでの時間から当該物体との距離を計測するものである。たとえば、ＬＲＦは、トランスミッタ（図示せず）から照射したレーザーを回転ミラー（図示せず）で反射させて、扇状に一定角度（たとえば、０．２５度）ずつスキャンする。また、この実施例では、検出範囲（図４参照）の全体をスキャンする周期は、２５ｍｓｅｃである。
【００３３】
図４は、距離センサ１８ａ、１８ｂの検出範囲（計測範囲）を説明するための図解図である。この実施例の距離センサ１８ａ、１８ｂの計測範囲は、半径Ｒ（Ｒ≒１０〜１５ｍ）の扇形状で示される。扇の角度は、正面方向を中心として左側および右側のそれぞれに１３５°である。つまり、正面を中心とする２７０°の範囲について距離を検出することができる。
【００３４】
図２に戻って、モータドライバ２０ａ、２０ｂは、コンピュータ１２からの指示に基づいて、モータ２２ａ、２２ｂを駆動する。エンコーダ２４ａは、モータ２２ａの回転数（ｒｐｓ）を検出し、回転数についてのデータ（回転数データ）を、インターフェイス１４を介してコンピュータ１２に入力する。同様に、エンコーダ２４ｂは、モータ２２ｂの回転数を検出し、回転数についての回転数データを、インターフェイス１４を介してコンピュータ１２に入力する。
【００３５】
コンピュータ１２は、距離センサ１８ａ、１８ｂで検出される距離データと、エンコーダ２４ａ、２４ｂで検出される回転数データを取得して、ＲＡＭ１２ｂ（ＨＤＤ１２ｃでもよい。）に記憶する。ただし、距離センサ１８ａで検出される距離データと距離センサ１８ｂで検出される距離データは区別されるとともに、同じ時点において検出された距離データと回転数データは互いに関連付けられる。
【００３６】
図５に示すように、計測装置１００は、コンピュータ１０２を含み、このコンピュータ１０２には、複数の距離センサ１０４が接続される。図示は省略するが、複数の距離センサ１０４は、移動体１０が自律走行する環境内に設置される。この距離センサ１０４は、上述した距離センサ１８ａ、１８ｂと同じものを用いることができる。したがって、各距離センサ１０４は、他の距離センサ１０４の検出範囲と一部が重複するように配置され、移動体１０が自律走行する環境の全範囲で距離を計測可能とされる。
【００３７】
ただし、距離センサ１８ａ、１８ｂ、１０４としては、ＬＲＦに代えて超音波距離センサやミリ波レーダなどを用いてもよい。
【００３８】
この実施例では、計測装置１００は、移動体１０の位置を追跡するとともに、移動体１０が自律走行する環境内に存在する１または複数のすれ違い対象の候補（以下、「すれ違い候補」という。）を検出し、各々のすれ違い候補も追跡する。計測装置１００は、移動体１０に対向するように移動するすれ違い候補のうち、時間的に最も早く移動体１０とすれ違うと予測される１のすれ違い候補をすれ違い対象として決定する。すれ違い対象を決定すると、計測装置１００は、すれ違い対象の情報（以下、「すれ違い対象情報」という。）を移動体１０に送信する。
【００３９】
ここで、すれ違い対象情報は、移動体１０とすれ違い対象との距離（相対距離Ｄである。図７参照）、すれ違い対象の現在位置、すれ違い対象の現在時刻における移動速度、すれ違い対象の現在時刻までの移動方向、およびすれ違い対象について算出した特徴ベクトルを含む。特徴ベクトルおよびその算出方法については、後で詳細に説明する。
【００４０】
ただし、すれ違い対象の現在位置およびすれ違い対象の現在時刻までの移動方向は、計測装置１００で、当該すれ違い対象（すれ違い候補）を追跡しているため、容易に知ることができる。また、すれ違い対象情報は、移動体１０とすれ違い対象がすれ違うまで、相対距離Ｄが所定距離（たとえば、１ｍ）変化する度に、移動体１０に送信される。また、その都度、すれ違い対象についての特徴ベクトルが算出（再計算）される。
【００４１】
ここで、すれ違い対象とは、移動体１０とすれ違う歩行者等を意味し、歩行器等の補助具を使用しない歩行者のみならず、歩行器や杖を使用する歩行者、台車やショッピングカートを押す歩行者（台車やショッピングカートを含む場合もある。）および移動体１０とは異なる他の車椅子などが該当する。
【００４２】
このように、すれ違い対象としては、歩行者や車椅子などを含むため、これらを検出するため、上記の各距離センサ１０４は床面からの高さが約７０ｃｍ〜１００ｃｍの位置に設置される。
【００４３】
また、計測装置１００は、移動体１０が自律走行する環境を真上から俯瞰的に見た２次元のマップ（世界座標系のマップ）についてのデータを記憶している。
【００４４】
したがって、計測装置１００は、距離センサ１０４で検出された距離データに基づいて、上記のマップに表れていない物体を検出すると、まず、すれ違い候補であるかどうかを判断する。ただし、移動体１０については、スタート位置が計測装置１００に入力されるため、計測装置１００は移動体１０であることを認識して、これを追跡する。したがって、移動体１０については、すれ違い候補であるかどうかを判断することは無い。
【００４５】
この実施例では、計測装置１００は、検出した物体の大きさおよび移動の有無を検出し、物体の大きさが所定の大きさの範囲内であり（第１の条件）であり、かつ、当該物体が移動している（第２の条件）場合に、当該物体をすれ違い候補として決定する。
【００４６】
たとえば、物体の大きさは、距離センサ１０４から出力される距離データに基づいて特定された当該物体の形状を円で近似し、近似した円の直径が７０ｃｍ〜１５０ｃｍ程度であれば、歩行者や車椅子などであると判断する。つまり、すれ違い候補としての第１の条件を満たすことが判断される。ただし、物体の大きさが上記の範囲から外れる場合には、当該物体はすれ違い対象ではない何らかの障害物として判断される。
【００４７】
また、第１の条件を満たした物体の位置を所定時間（たとえば、数百ミリｓｅｃ）毎に検出することにより、当該物体の移動の有無が検出される。そして、或る一定期間（たとえば、数秒）を超えても、物体の位置が変化しない場合には、当該物体は移動していないため、第２の条件を満たさず、当該物体は何らかの障害物として判断される。一方、一定期間を超えないで物体の位置が変化する場合には、当該物体は移動しており、第２の条件を満たし、当該物体はすれ違い候補として決定される。すれ違い候補として決定された物体には、識別情報が付され、その位置が追跡される。つまり、すれ違い候補の現在位置が所定時間（たとえば、数百ミリｓｅｃ）毎に検出され、その軌跡が取得される。
【００４８】
計測装置１００では、コンピュータ１０２が距離センサ１０４からの出力（距離データ）に基づいて、パーティクルフィルタを用いて、移動体１０や各すれ違い候補の現在位置の変化を推定する。ここで、パーティクルフィルタとは、多数の粒子を用いて、前時刻の状態からの予測と現在の観測情報から現在の状態を推定する手法である。パーティクルフィルタでは、予測、観測、リサンプリングを繰り返すことによって移動体１０やすれ違い候補を追跡する。
【００４９】
たとえば、距離センサ１０４によってスキャンされると、移動体１０やすれ違い候補が存在しない可視区域、移動体１０やすれ違い候補が存在する陰区域、および移動体１０やすれ違い候補のエッジが検出される。また、実空間（移動体１０が自律走行する環境）に対応する仮想空間に対してパーティクルを均等にばら撒き、距離センサ１０４毎に尤度を求める。さらに、距離センサ１０４毎の尤度を統合することで、各パーティクルが更新される。そして、更新された各パーティクルによって、移動体１０やすれ違い候補の現在位置の変化が推定される。なお、尤度は、可視区域では一定値とし、陰区域では一定値とエッジの尤度との和となる。このようにして推定された現在位置の変化に基づいて、移動体１０やすれ違い候補の位置を求め、その位置の平面座標を示す数値（位置データ）を、時系列に従って記憶することにより、移動体１０やすれ違い候補についての軌跡データが生成される。
【００５０】
ただし、移動体１０を追跡するためのパーティクルフィルタと、すれ違い候補を追跡するためのパーティクルフィルタはそれぞれ独立しており、各すれ違い候補を追跡するためのパーティクルフィルタもそれぞれ独立している。
【００５１】
また、この実施例では、移動体１０は、スタート地点とゴール地点（目的地）を入力（設定）することにより、移動経路を算出して（移動経路計画を行って）、自動走行（自律移動）することができる。
【００５２】
通常の移動経路計画は、最短距離や最短時間経路を算出する手法であり、この実施例では、最短距離となる移動経路が算出される。移動経路が算出されると、算出された移動経路に従って移動体１０が移動される。
【００５３】
移動体１０は、算出された移動経路に従って自律走行するが、このとき、モータドライバ２０ａ、２０ｂは、コンピュータ１２からの指示に基づいて、モータ２２ａ、２２ｂを駆動する。エンコーダ２４ａは、モータ２２ａの回転数（ｒｐｓ）を検出し、回転数についてのデータ（回転数データ）を、インターフェイス１４を介してコンピュータ１２に入力する。同様に、エンコーダ２４８ｂは、モータ２２ｂの回転数を検出し、回転数についての回転数データを、インターフェイス１４を介してコンピュータ１２に入力する。
【００５４】
コンピュータ１２は、距離センサ１８ａ、１８ｂで検出される距離データと、エンコーダ２４ａ、２４ｂで検出される回転数データを取得して、ＲＡＭ１２ｂ（ＨＤＤ１２ｃでもよい。）に記憶する。ただし、距離センサ１８ａで検出される距離データと距離センサ１８ｂで検出される距離データは区別されるとともに、同じ時点において検出された距離データと回転数データは互いに関連付けられる。
【００５５】
移動体１０に搭載された距離センサ１８ａ、１８ｂのそれぞれで計測された距離データが、当該距離データを検出したときの移動体１０の位置および向きを基準とする２次元の座標系（移動体座標系）の位置（点）データに変換される。このとき、２つの距離センサ１８ａ、１８ｂの取り付け位置が考慮される。つまり、移動体１０の位置と、距離センサ１８ａ、１８ｂの取り付け位置のずれが調整される。当然のことではあるが、距離データを検出したときの距離センサ１８ａ、１８ｂの計測範囲における角度も考慮される。さらに、この実施例では、移動体座標系における位置データが、２次元の世界座標系の位置データに変換される。つまり、移動体座標系では、距離センサ１８ａ、１８ｂのそれぞれで計測された距離データの検出（移動体１０の移動）を開始したときの移動体１０の位置および向きを基準とするため、それを現実空間についての世界座標系に変換するようにしてある。
【００５６】
ここで、この実施例では、移動体１０の位置および向きは、オドメトリによる計測値に基づいて求められる。図６に示すように、移動体１０の位置および向きは、左右の車輪（３４ａ、３４ｂ）の移動速度ＶL、ＶRおよび車輪間距離ＤＴを用いて算出される移動体１０の動作［ｖｍ,ω］Tを追跡することにより、求められる。
【００５７】
具体的には、移動体１０の動作［ｖｍ,ω］Tは数１に従って算出される。ただし、ｖｍは移動体１０の速度であり、ωは車輪３４ａおよび３４ｂの車軸の中心（図６参照）であり、車軸と垂直な軸周りの角度速である。
【００５８】
［数１］
2015132980.tif 000003
【００５９】
ただし、左右の車輪（３４ａ、３４ｂ）の移動速度ＶL、ＶRは、左右の車輪（３４ａ、３４ｂ）の回転数から算出することができ、また、車輪間隔ＤＴは予め知ることができる。ただし、回転数に応じた移動速度ＶL、ＶRのテーブルを用意しておき、計算せずに、テーブルを参照することにより移動速度ＶL、ＶRを取得してもよい。
【００６０】
そして、算出された動作［ｖｍ,ω］Tを積分することにより、前回算出した移動体１０の位置および向きからの移動距離ｄｍと回転角度θを求めることができる。したがって、移動体１０の初期位置（スタート地点）および初期の向き（角度θ＝０とする。）に、時系列に従って算出される移動距離ｄｍと回転角度θを累積的に加算することにより、マップ上における、時間毎の移動体１０の位置および向きを知ることができる。つまり、移動体１０が算出された移動経路に従って移動しているかどうかを知ることができ、移動経路からずれている場合には、移動経路上を移動するように、移動制御される。
【００６１】
なお、上述したように、計測装置１００は、移動体１０を追跡しているため、計測装置１００から移動体１０の現在位置の座標データを取得してもよい。
【００６２】
このようにして、移動体１０は、算出された移動経路に従って目的地に向かって移動する。しかし、歩行者等のすれ違い対象とすれ違う場合には、先に算出された移動経路に拘わらず、当該すれ違い対象と衝突しないように、すれ違い対象を避けて移動体１０を移動させる必要がある。
【００６３】
たとえば、移動体１０がすれ違い対象を避けて移動する方法としては、所定時間後のすれ違い対象の位置が、所定時間後の移動体１０の位置から一定以上の距離を保つように、移動体１０の移動を制御することが考えられる。
【００６４】
しかし、歩行者等のすれ違い対象が移動体１０を回避する行動は様々であり、一定の距離が或る歩行者等にとっては適切であるかも知れないが他の歩行者等にとっては適切であるとは限らない。したがって、一定の距離が近すぎると感じる歩行者には、恐怖心を与えてしまう可能性がある。また、一定の距離が遠すぎると感じる歩行者には、必要以上に移動体１０を大回りさせてしまうこととなり、移動体１０を効率的に移動させることができない。
【００６５】
そこで、この実施例では、すれ違いの初期の段階からすれ違い対象に少しずつ通常の回避行動をさせるように移動体１０の移動を制御して、安全なすれ違いを実現するとともに、適切な移動制御を行うようにしてある。
【００６６】
簡単に説明すると、移動体１０がすれ違った複数（不特定多数）のすれ違い対象のそれぞれについて、当該移動体１０を回避する行動（回避行動）についての特徴量を取得し、取得した特徴量に基づくデータベースを予め生成する。そして、そのデータベースを用いて、今回のすれ違い対象の所定時間後（移動後）の位置が予測され、この予測結果に基づいて移動体１０が移動制御される。
【００６７】
ただし、今回のすれ違い対象の所定時間後の位置（予測位置）は、予測される移動体１０の位置に対して後述する側方距離ｄ（ｔ＋１）で決まる相対的な位置（相対位置）である。以下、この明細書において同じである。
【００６８】
続いて、特徴量に基づくデータベースを生成する方法およびデータベースを用いて、移動体１０を移動制御する方法について順に説明する。
【００６９】
図７には、時刻ｔにおいて、移動体１０が或るすれ違い対象としての歩行者とすれ違う様子を記述した場合の特徴量が示される。図７に示す例では、すれ違い対象は、左から右に移動し、移動体１０は、右から左に移動する。また、図７に示すように、時刻ｔにおいて、移動体１０とすれ違い対象の相対距離はＤ（ｔ）で表される。また、時刻ｔにおいて、移動体１０の現在位置および移動体１０の目的地を通る線とすれ違い対象との直線距離（以下、「側方距離」ということにする。）はｄ（ｔ）で表される。そして、時刻ｔにおいて、すれ違い対象の移動速度はｖ（ｔ）で表される。
【００７０】
この実施例では、計測装置１００は、様々なすれ違い対象について上記の特徴量を取得する。ただし、特徴量は、計測装置１００ですれ違い対象（すれ違い対象）が検出されてから、当該すれ違い対象とすれ違うまで検出される。つまり、計測装置１００は、各すれ違い候補について、所定時間毎に、相対距離Ｄ（ｔ）、移動速度ｖ（ｔ）および側方距離ｄ（ｔ）が計測（算出）される。
【００７１】
複数のすれ違い対象についての特徴量が取得され、各特徴量の時間変化から特徴ベクトルが生成される。すれ違いの様子（仕方）は、すれ違い対象と移動体１０の相対距離Ｄ（ｔ）に応じて大きく異なる。したがって、相対距離Ｄ（ｔ）毎にデータベースを生成する。この実施例では、相対距離Ｄ（ｔ）が７、６、５、４、３、２（ｍ）のそれぞれに対して、直前の所定時間（この実施例では、３秒）のすれ違いの仕方を、側方距離ｄ（ｔ）と移動速度ｖ（ｔ）の時系列で表現することが考えらえる。相対距離Ｄ（ｔ）が或る値になった時点で、或るすれ違いの仕方は、数２に示す特徴ベクトルＦ（ｔ）で表すことができる。
【００７２】
［数２］
F(t) = [d(t), d(t-Δ), … ,d(t-(N-1)Δ),
v(t), v(t-Δ), … ,v(t-(N-1)Δ)]
なお、Δは、時系列を表現する際の間隔（単位時間）であり、たとえば、５００ｍｓｅｃに設定される。そして、Ｎは、Δで所定時間を割った値に決定される。したがって、この実施例では、所定時間は３秒であるため、Ｎ＝６である。
【００７３】
このように、この実施例では、特徴ベクトルＦは、側方距離ｄ（ｔ）および移動速度ｖ（ｔ）で表される。図８（Ａ）には、或る相対距離Ｄにおける、或るすれ違い対象についての特徴ベクトルが表される。ただし、図８（Ａ）では、簡単のため、側方距離ｄの時間変化のみが示され、移動速度ｖ（ｔ）については省略してある。このことは、図８（Ｂ）、図９（Ａ）−（Ｃ）についても同じである。
【００７４】
このような特徴ベクトルが、すべての計測結果について生成され、全特徴ベクトルがクラスタリングされる。この実施例では、相対距離Ｄ（ｔ）毎に、特徴ベクトルの集合が生成される。たとえば、図８（Ｂ）に示すように、或る相対距離Ｄ（ｔ）における、特徴ベクトルの集合が生成される。このような特徴ベクトルの集合がクラスタリングされる。
【００７５】
すれ違いの仕方を分類するため、２つのすれ違いの仕方の距離関数を定義して、クラスタリングを行う。２つのすれ違いの仕方の特徴ベクトルＦａ，Ｆｂの距離関数distance(Fa,Fb) は、たとえば、数３および数４のように定義することができる。
【００７６】
【数３】
2015132980.tif 000004
【００７７】
【数４】
2015132980.tif 000005
【００７８】
ここで、d’(t), v’(t) は、d(t), v(t) をそれぞれ正規化した量を表す。また、Ｎ−ｉは重みであり、現在時刻に近い要素の重要度が高くされる。
【００７９】
クラスタリングの方法としては，たとえば、ｋ平均法やクラスタ数を自動的に決定するｘ平均法などの利用が有効である。このようにして，各相対距離Ｄ（ｔ）に対してデータベースを作成する。
【００８０】
したがって、たとえば、図８（Ｂ）に示した特徴ベクトルの集合をクラスタリングすることにより、図９（Ａ）、図９（Ｂ）および図９（Ｃ）に示すように、３つのクラス（回避行動の種類）に分類されたと仮定する。
【００８１】
たとえば、図９（Ａ）に示すクラスは、すれ違い対象が大きな回避行動をとった場合の特徴ベクトルのクラスである。図９（Ｂ）に示すクラスは、すれ違い対象が中程度の回避行動をとった場合の特徴ベクトルのクラスである。図９（Ｃ）に示すクラスは、すれ違い対象が小さな回避行動をとった場合の特徴ベクトルのクラスである。
【００８２】
なお、クラス（回避行動の種類）の数はこれに限定される必要はない。たとえば、歩行器等を使用しない歩行者と、歩行器等を使用する歩行者や車椅子では回避行動は異なると考えられる。また、歩行者の年齢によっても回避行動は異なると考えられる。
【００８３】
また、回避行動の種類を特定する必要は無く、異なる回避行動を分類できれば良い点に注意されたい。
【００８４】
上述したように、或る相対距離Ｄ（ｔ）における、特徴ベクトルの集合がクラスタリングされ、さらに、各クラスの複数の特徴ベクトルについての平均ベクトルが算出される。図示等は省略するが、他の相対距離Ｄ（ｔ）についても同様に特徴ベクトルが生成され、クラスタリングされた後に、各クラスの平均ベクトルが算出される。そして、複数の特徴ベクトルおよび平均ベクトルは、相対距離Ｄ（ｔ）毎に、クラス（回避行動の種類）を識別可能にして、コンピュータ１２（移動体１０）に登録される。
【００８５】
したがって、移動体１０は、すれ違い対象とすれ違う際に、移動体１０とすれ違い対象との距離から相対距離Ｄ（ｔ）を決定し、決定した相対距離Ｄ（ｔ）における各クラスからすれ違い対象の特徴ベクトルと近似する特徴ベクトルを求める。そして、求められた特徴ベクトルを含むクラスの平均ベクトルを用いて、すれ違い対象の移動が予測されるのである。つまり、相対距離Ｄ（ｔ）毎に、取得された特徴量に基づくデータベースが生成され、生成されたデータベースを用いて移動体１０が移動制御されるのである。
【００８６】
新たにすれ違い対象の移動が計測された場合には、計測装置１００は、すれ違い対象について計測された位置と移動速度ｖ（ｔ）から特徴ベクトルＦを数２に従って計算（生成）する。そして、計測装置１００は、すれ違い対象情報を移動体１０に送信する。
【００８７】
これに応じて、移動体１０は、相対距離Ｄ（ｔ）の値に対応したデータベースを選択し、選択したデータベースの中から特徴ベクトルＦに最も類似する（近似する）特徴ベクトルを求め、求めた特徴ベクトルを含む回避行動の種類（クラス）を選択する。選択されたクラスの平均ベクトルを取り出し、平均ベクトルを将来の予測結果として用いる。
【００８８】
この実施例では、選択したデータベースの中から特徴ベクトルＦに最も類似する（近似する）特徴ベクトルを求める際には、特徴ベクトルＦと選択されたデータベースに含まれるすべての特徴ベクトルのそれぞれとの距離が算出され、距離が最も短い特徴ベクトルが近似する特徴ベクトルとして求められる。ただし、この距離は、上記の数３および数４に従って算出することができる。また、最も近似する特徴ベクトルが２以上有る場合には、いずれか１つの特徴ベクトルが任意に選択される。つまり、特徴ベクトルＦに近似する１つの特徴ベクトルが選択されればよい。
【００８９】
予測結果としては、移動体１０の目的地の方向を基準とした側方距離ｄ（ｔ）の時系列が得られる。ただし、現時点での側方距離ｄ（ｔ）と、平均ベクトルは異なる値であるため、平均ベクトルを将来の予測結果として直接用いると、移動が不連続になってしまう。そこで、両者が同じになるように平均ベクトルを平行移動したものが用いられる。つまり、算出した特徴ベクトルＦの現時点の側方距離ｄ（ｔ）と、平均ベクトルの側方距離ｄ（ｔ）を合わせるように、平均ベクトルを平行移動させる。そして、平均ベクトルから時刻ｔ＋１における側方距離ｄ（ｔ＋１）を取得する。
【００９０】
上述したように、予測結果は、移動体１０の目的地の方向を基準とした側方距離ｄ（ｔ）の時系列であり、両者の相対的な位置関係であるため、実際のすれ違いでの側方距離ｄ（ｔ）の系列は、移動体１０の動き（移動）に応じて変化する。そこで、移動体１０は、すれ違い対象が予測通りの側方距離ｄ（ｔ）を実現できるように移動制御される。図１０に示すように、すれ違い対象が位置ｘ（ｔ＋１）に移動したときに、予測された側方距離ｄ（ｔ＋１）を実現するように、移動体１０が位置ｙ（ｔ＋１）へ移動する経路計画が立てられる。これは、すれ違い対象の意図した通りのすれ違いを実現することになり、移動体１０の移動に対してすれ違い対象としての歩行者等に与える違和感が少なく、危険な印象を与えない利点がある。
【００９１】
しかし、予測された側方距離ｄ（ｔ）に追従して移動体１０を移動制御すると、移動体１０は急な速度変化や方向転換など、実現できない移動計画を立てられる可能性がある。
【００９２】
そこで、この実施例では、時刻ｔ＋１で移動体１０が実現できる位置の中で、当該移動体１０は、予測された側方距離ｄ（ｔ＋１）に最も近い移動を行わせるように移動制御する。つまり、移動体１０の移動の最大加速度、最大回転角速度等の制約の中で、実現可能な移動計画が立てられる。したがって、移動体１０もまた、計測装置１００に記憶されるマップのデータと同じデータを記憶してある。
【００９３】
このような、移動体１０の移動制御の方法の一例として、次の手法が挙げられる。現在時刻をｔとしたときに、時刻ｔ＋１の移動体１０の移動後の位置（目標位置）を次の３つの段階で求める。
【００９４】
＜第１段階＞
移動体１０が現在の移動速度ｖｍを維持して移動すると仮定すると、すれ違い対象は予測された側方距離ｄ（ｔ＋１）に対して距離ＬＤ＝ｄ（ｔ＋１）×αの距離を保つように移動すると予測される。ここで、αはパラメータであり、０≦α≦１とする。パラメータαは、結果的に側方距離ｄ（ｔ＋１）になるために、すれ違い対象が移動体１０を回避する割合を示す。
【００９５】
図１１に示すように、移動体１０の時刻ｔ＋１における予測位置を点（位置）Ｅとし、当該移動体１０の目的地を点Ｇとする。また、移動体１０の目的地の方向から距離ＬＤ離れた直線を直線Ｌ１とする。ただし、移動体１０の目的地の方向は、移動体１０の予測位置の点Ｅと目的地の点Ｇを結ぶ直線Ｌ２の延びる方向である。また、直線Ｌ１は、点Ｅに最も近い点として点Ａを通ると仮定する。同様に、点Ｇに最も近い直線Ｌ１上の点を点Ｂとする。すれ違い対象が現在時刻ｔで点Ｍに相当する位置に存在し、時刻ｔ＋１までに距離ｗだけ移動できるとすると、すれ違い対象の到達可能な位置は点Ｍから距離ｗを半径とする円Ｃ１上の点に相当する位置である。したがって、直線Ｌ１と円Ｃ１の交点を求めることにより、すれ違い対象の予測位置として点Ｎが求められる。ただし、距離ｗは、現在のすれ違い対象の移動速度ｖ（ｔ）から予測される。この移動速度ｖ（ｔ）は、すれ違い対象情報に含まれている。
【００９６】
具体的には、点Ａおよび点Ｂは、それぞれ数５および数６で表される。ただし、（ｄｘ，ｄｙ）は点Ｅから点Ａに向かうベクトルであり、点Ｅと点Ｇを結ぶ直線Ｌ２に垂直方向であり、長さが距離ＬＤであることから求めることができる。
【００９７】
［数５］
2015132980.tif 000006
【００９８】
［数６］
2015132980.tif 000007
【００９９】
したがって、直線Ｌ１および円Ｃ１は、それぞれ数７および数８で表される。数７および数８を満たす解は、図１１の直線Ｌ１と円Ｃ１の交点に対応し、一般的には２つ求められる。したがって、この実施例では、すれ違い対象は、現在時刻ｔまでの移動方向の延長線上に近い位置に移動すると考え、その延長線上に近い位置に相当する点（解）を１つ選ぶようにしてある。その点（解）がすれ違い対象の時刻ｔ＋１における予測位置（ここでは、点Ｎ）である。ただし、すれ違い対象の現在時刻ｔまでの移動方向は、すれ違い対象情報に含まれている。
【０１００】
［数７］
2015132980.tif 000008
【０１０１】
［数８］
( x - pt )2 + ( y - qt )2 = w2
＜第２段階＞
次に、すれ違い対象の予測位置（点Ｎ）に対して、移動体１０を側方距離ｄ（ｔ＋１）を保った位置に移動させるためには、図１２に示すように、予測位置の点Ｎを中心とする半径ｄ（ｔ＋１）の円Ｃ２を考え、移動体１０の目的地である点Ｇから円Ｃ２に引いた接線（直線Ｌ３）上に移動体１０を移動させればよい。図１２において、円Ｃ２と直線Ｌ３の接点を点Ｈとする。この場合において、円Ｃ２は数９で表され、点Ｈが接点である条件は数１０で表される。数９および数１０の解として接点としての点Ｈが求められる。
【０１０２】
［数９］
2015132980.tif 000009
【０１０３】
［数１０］
( x - pt+1 )( x - xg ) + ( y - qt+1 )( y - yg ) = 0
＜第３段階＞
また、移動体１０が時刻ｔ＋１までに移動できる距離をｒとすると、移動体１０の時刻ｔ＋１の到達可能位置は、現在時刻ｔでの点Ｊから距離ｒを半径とする円Ｃ３上の点に対応する位置である。ただし、距離ｒは、移動体１０の現在時刻ｔにおける移動速度ｖｍから予測される。直線Ｌ３と円Ｃ３の交点を求め、これを移動体１０の時刻ｔ＋１の点Ｋを目標位置とする。ただし、直線Ｌ３は数１１で表され、円Ｃ３は数１２で表さ、交点は数１１および数１２の解として求められる。ここでも、一般的に２つの解が求められるが、移動体１０の目的地の点Ｇに近い方の解が目標位置として採用される。
【０１０４】
［数１１］
2015132980.tif 000010
【０１０５】
［数１２］
( x - xt )2 + ( y - yt )2 = r2
この予測は定期的に更新する。すなわち、移動体１０とすれ違い対象が接近したり、離れたりすることにより、変化した相対距離Ｄ（ｔ）に対してデータベースを変更し、改めて予測を行うことにより、さらに正確な予測を行うことができる。この実施例では、相対距離Ｄ（ｔ）を１ｍ間隔で変化させてデータベースを作成しているため、したがって、相対距離Ｄ（ｔ）が１ｍ変化する毎に予測が更新される。
【０１０６】
なお、移動体１０とすれ違い対象とはすれ違うため、基本的には、相対距離Ｄ（ｔ）は次第に短くなると考えられるが、すれ違い対象の移動の仕方によって相対距離Ｄ（ｔ）が長くなる場合もあるため、相対距離Ｄ（ｔ）が所定距離（１ｍ）変化する毎にデータベースを変更し、改めて予測するようにしてある。
【０１０７】
また、移動体１０は、すれ違い対象とすれ違うと、現在位置と目的地から移動経路を算出し直す。そして、算出し直した移動経路に沿って目的地に向けて移動する。
【０１０８】
ただし、移動体１０がすれ違い対象とすれ違ったかどうかは、計測装置１００で判断され、すれ違ったと判断されたときにそのことが移動体１０に通知される。計測装置１００は、すれ違い対象が移動体１０の左右の側方よりも後ろ寄りに存在するかどうかを判断する。
【０１０９】
なお、この実施例では、最初に算出した移動経路に沿って移動体１０を移動させるように、移動体１０を現在位置から移動経路上の最も近い点（位置）に移動させるようにしてもよい。
【０１１０】
図１３は図２に示したＲＡＭ１２ｂのメモリマップ３００の一例を示す。図１３に示すように、ＲＡＭ１２ｂは、プログラム記憶領域３０２およびデータ記憶領域３０４を含む。プログラム記憶領域３０２には、移動体１０を移動制御するための移動制御プログラムが記憶される。移動制御プログラムは、移動経路算出プログラム３０２ａ、側方距離取得プログラム３０２ｂ、目標位置算出プログラム３０２ｃ、駆動制御プログラム３０２ｄおよび状態算出プログラム３０２ｅなどによって構成される。
【０１１１】
移動経路算出プログラム３０２ａは、移動経路を算出するためのプログラムであって、移動制御の開始時に、スタート地点と目的地から移動経路を算出したり、すれ違い対象とすれ違った場合に、すれ違った後の現在位置と目的地から移動経路を算出し直したりする。
【０１１２】
側方距離取得プログラム３０２ｂは、計測装置１００から取得したすれ違い対象情報に含まれる特徴ベクトルＦと最も近似する特徴ベクトルを求め、求めた特徴ベクトルを含むクラスの平均ベクトルを選択（検出）し、選択した平均ベクトルを用いて予測される側方距離ｄ（ｔ＋１）を取得するためのプログラムである。
【０１１３】
目標位置算出プログラム３０２ｃは、側方距離取得プログラム３０２ｂに従って取得された側方距離ｄ（ｔ＋１）を用いて、時刻ｔ＋１における移動体１０が移動するべき目標位置を算出するためのプログラムである。
【０１１４】
駆動制御プログラム３０２ｄは、移動経路算出プログラム３０２ａに従って算出された移動経路に従って移動体１０を移動させたり、目標位置算出プログラム３０２ｃに従って算出された目標位置に向けて移動体１０を移動させたりするために、モータ２２ａ、２２ｂの駆動を制御するためのプログラムである。
【０１１５】
状態算出プログラム３０２ｅは、オドメトリによる計測値に基づいて、移動体１０の位置および方向を算出し、後述する状態データ３０４ｆを記憶（更新）するためのプログラムである。
【０１１６】
なお、図示および詳細な説明は省略するが、プログラム記憶領域３０２には、他のコンピュータと通信するためのプログラムなども記憶される。
【０１１７】
データ記憶領域３０４には、マップデータ３０４ａ、全特徴ベクトルデータ３０４ｂ、スタート位置データ３０４ｃ、目的地データ３０４ｄ、移動経路データ３０４ｅ、状態データ３０４ｆ、すれ違い対象情報データ３０４ｇ、側方距離データ３０４ｈ、予測位置データ３０４ｉ、直線データ３０４ｊおよび目標位置データ３０４ｋなどを記憶する。
【０１１８】
マップデータ３０４ａは、移動体１０を走行させる環境を真上から俯瞰的に見た２次元のマップについてのデータである。このマップは、世界座標系のマップである。たとえば、マップデータ３０４ａは、予め生成されてコンピュータ１２に入力されたり、コンピュータ１２内部のＨＤＤ１２ｃに予め記憶されたりして、移動制御処理を実行する際にＲＡＭ１２ｂに記憶される。
【０１１９】
全特徴ベクトルデータ３０４ｂは、予め登録されたすべての特徴ベクトルについてのデータであって、相対距離Ｄ毎に、生成およびクラス分けされた複数の特徴ベクトルおよび当該複数の特徴ベクトルの平均ベクトルのデータを含む。図１４に示すように、この全特徴ベクトルデータ３０４ｂは、相対距離Ｄ毎のデータベースを含む。具体的には、全特徴ベクトルデータ３０４ｂは、相対距離Ｄ＝７（ｍ）についての第１距離データベース３１０、相対距離Ｄ＝６（ｍ）についての第２距離データベース３２０、相対距離Ｄ＝５（ｍ）についての第３距離データベース３３０、相対距離Ｄ＝４（ｍ）についての第４距離データベース３４０、相対距離Ｄ＝３（ｍ）についての第５距離データベース３５０および相対距離Ｄ＝２（ｍ）についての第６距離データベース３６０を含む。
【０１２０】
第１距離データベース３１０は、さらに、第１種類特徴ベクトルデータ３１０ａ、第２種類特徴ベクトルデータ３１０ｂ、…を含む。つまり、回避行動の種類（クラス）毎の複数の特徴ベクトルおよびその平均ベクトルについてのデータを含む。
【０１２１】
図示等は省略するが、他の距離データベース（３２０−３６０）についても同様である。
【０１２２】
図１３に戻って、スタート位置データ３０４ｃは、移動体１０のスタート位置についてのデータ（２次元座標データ）である。目的地データ３０４ｄは、移動体１０の最終的な目標位置である目的地についての２次元座標データである。たとえば、スタート位置および目的地は、他のコンピュータ（ホストコンピュータ）からコンピュータ１２に入力される。
【０１２３】
移動経路データ３０４ｅは、移動経路算出プログラム３０２ａに従って算出された移動経路についてのデータであって、たとえば、スタート位置または移動体１０の現在位置から目的地に向けて順に並べられた複数の点（位置）の各々の２次元座標データ（データ群）である。
【０１２４】
状態データ３０４ｆは、状態算出プログラム３０２ｅに従って算出された移動体１０の現在位置についての２次元座標データおよび移動体１０の現在の向きについてのデータ（向きデータ）である。ただし、状態データ３０４ｆに含まれる２次元座標データおよび向きデータは、いずれも世界座標系に変換されたデータである。
【０１２５】
すれ違い対象情報データ３０４ｇは、計測装置１００から取得したすれ違い対象情報についてのデータである。側方距離データ３０４ｈは、側方距離取得プログラム３０２ｂに従って取得された側方距離ｄ（ｔ＋１）についてのデータである。
【０１２６】
予測位置データ３０４ｉは、時刻ｔ＋１において予測されるすれ違い対象の位置についての２次元座標データである。直線データ３０４ｊは、時刻ｔ＋１において移動体１０が移動するべき点（位置）を含む直線（図１２では、Ｌ３）についてのデータである。目標位置データ３０４ｋは、時刻ｔ＋１において移動体１０が存在するべき移動後の位置（目標位置）の２次元座標データである。
【０１２７】
なお、図示は省略するが、データ記憶領域３０４には、移動制御プログラムの実行に必要な他のデータが記憶されたり、カウンタ（タイマ）やフラグが設けられたりする。
【０１２８】
図１５および図１６は、図２に示したＣＰＵ１２ａの移動制御処理のフロー図である。スタート位置および目的地が入力されると、図１５に示すように、ＣＰＵ１２ａは移動制御処理を開始し、ステップＳ１で、移動経路を算出する。ここでは、ＣＰＵ１２ａは、マップデータ３０４ａを参照し、一般的な経路計画に従って、入力されたスタート位置および目的地を結ぶ移動経路を算出し、対応する移動経路データ３０４ｅをＲＡＭ１２ｂに記憶する。
【０１２９】
次のステップＳ３では、ステップＳ１で算出した移動経路に従って移動するように、移動体１０の移動を開始する。つまり、ＣＰＵ１２ａは、移動体１０を移動経路に従って移動させるように、モータ２２ａ、２２ｂの駆動を制御する。以下、移動体１０を移動させる場合について同様である。
【０１３０】
なお、詳細な説明は省略するが、移動体１０の位置および向きは移動制御処理とは別のフローで追跡されており、移動体１０が移動される度に、状態データ３０４ｆが更新される。
【０１３１】
続いて、ステップＳ５では、計測装置１００からすれ違い対象情報を取得したかどうかを判断する。ステップＳ５で“ＮＯ”であれば、つまりすれ違い対象情報を取得していなければ、ステップＳ７で目的地に到達したかどうかを判断する。ここでは、ＣＰＵ１２ａは、目的地データ３０４ｄと状態データ３０４ｆに含まれる移動体１０の現在位置の２次元座標データが一致するまたはほぼ一致するかどうかを判断する。
【０１３２】
ステップＳ７で“ＮＯ”であれば、つまり目的地に到達していなければ、そのままステップＳ５に戻る。したがって、移動体１０は移動経路に沿って移動される。一方、ステップＳ７で“ＹＥＳ”であれば、つまり目的地に到達していれば、ステップＳ９で、移動を終了して、移動制御処理を終了する。ステップＳ９では、ＣＰＵ１２ａは、たとえば、減速および停止するように、モータ２２ａ、２２ｂの駆動を制御する。
【０１３３】
また、ステップＳ５で“ＹＥＳ”であれば、つまりすれ違い対象情報を取得すれば、ステップＳ１１で、すれ違い対象情報に含まれる相対距離Ｄに応じて、データベースを選択する。つまり、全特徴ベクトルデータ３０４ｂに含まれる複数のデータベース（３１０−３６０）から相対距離Ｄに応じた１つのデータベースを選択する。
【０１３４】
続くステップＳ１３では、選択したデータベースから、すれ違い対象情報に含まれるすれ違い対象の特徴ベクトルＦに最も近似する特徴ベクトルを求める。そして、ステップＳ１４で、ステップＳ１３で求めた特徴ベクトルを含むクラスを求める。
【０１３５】
続いて、図１６に示すように、ステップＳ１５で、後述する目標位置算出処理（図１７参照）を実行する。次のステップＳ１７では、算出された目標位置に向けて移動体１０を移動させる。そして、ステップＳ１９で、目的地に到達したかどうかを判断する。この判断処理は、上述したステップＳ７と同じである。
【０１３６】
このステップＳ１９で“ＹＥＳ”であれば、図１５に示したステップＳ９に進むが、“ＮＯ”であれば、ステップＳ２１で、すれ違い対象とすれ違ったかどうかを判断する。ここでは、ＣＰＵ１２ａは、計測装置１００からすれ違い対象とすれ違ったことの通知を受けたかどうかを判断する。
【０１３７】
ステップＳ２１で“ＮＯ”であれば、つまりすれ違い対象とすれ違っていなければ、ステップＳ２３で、計測装置１００からすれ違い対象情報を取得したかどうかを判断する。つまり、ここでは、ＣＰＵ１２ａは、相対距離Ｄが所定距離変化したことにより、更新されたすれ違い対象情報を計測装置１００から取得したどうかを判断するのである。
【０１３８】
ステップＳ２３で“ＮＯ”であれば、ステップＳ１５に戻る。一方、ステップＳ２３で“ＹＥＳ”であれば、図１５に示したステップＳ１１に戻る。したがって、所定距離変化した相対距離Ｄに応じたデータベースから、更新された特徴ベクトルＦに最も近似する特徴ベクトルが求められ、当該特徴ベクトルを含むクラスが選択されるのである。
【０１３９】
また、ステップＳ２１で“ＹＥＳ”であれば、つまりすれ違い対象とすれ違っていれば、ステップＳ２５で、移動経路を算出し直す。つまり、ＣＰＵ１２ａは、マップデータ３０４ａを参照して、移動体１０の現在位置から目的地までの移動経路を算出する。そして、ステップＳ２７で、ステップＳ２５で算出し直した移動経路に沿って目的地に向けて移動を継続し、図１５に示したステップＳ５に戻る。
【０１４０】
図１７は、図１６のステップＳ１５に示した目標位置算出処理を示すフロー図である。図１７に示すように、ＣＰＵ１２ａは、目標位置算出処理を開始すると、ステップＳ５１で、ステップＳ１４で求めたクラスの平均ベクトルを用いて、上述したように、側方距離（ｔ＋１）を取得する。
【０１４１】
次のステップＳ５３では、すれ違い対象の時刻ｔ＋１の予測位置（図１１および図１２では、点Ｎ）を算出する。算出された予測位置についての予測位置データ３０４ｉはデータ記憶領域３０４に記憶される。ただし、現在時刻はｔである。この予測位置の算出は、上記の第１段階において説明したとおりである。
【０１４２】
続くステップＳ５５では、すれ違い対象の予測位置から移動体１０が移動するべき位置を含む直線（図１２では、Ｌ３）を算出する。この直線Ｌ３の算出は、上記の第２段階において説明したとおりである。
【０１４３】
そして、ステップＳ５７で、移動体１０が時刻ｔ＋１に到達可能な直線上の位置を目標位置（図１２では、点Ｋ）として算出し、移動制御処理にリターンする。このステップＳ５７における目標位置の算出は、上記の第３段階において説明したとおりである。
【０１４４】
この実施例によれば、すれ違い対象の回避行動の特徴ベクトルを予め取得し、特徴ベクトルに基づいてすれ違い対象の移動後の相対位置を予測し、予測した相対位置と目的地から移動体の目標位置を算出するので、すれ違い対象に通常の回避行動を行わせるように移動体を移動させることができる。つまり、適切な移動制御を行うことができる。したがって、安全であり、すれ違い対象の人間に安心感を与えることができる。また、必要以上に移動体を大回りさせることが無いため、効率良く移動体を移動させることができる。
【０１４５】
また、この実施例で説明したように、自律的に移動する移動体が適用される環境には、様々なすれ違い対象が存在する。上述したように、すれ違い対象には、他の車椅子や歩行者等が含まれるため、これらのすれ違い対象と移動体がすれ違う際のすれ違いの仕方は様々である。このように様々なすれ違い対象に対しても、それぞれの回避行動に応じた特徴ベクトルのクラスタが生成されるため、すれ違い時の移動を正確に予測することができる。このため、様々なすれ違い対象が存在する環境では特に有効である。
【０１４６】
なお、この実施例では、移動体に対して対向するように移動するすれ違い対象とすれ違う場合について説明したが、これに限定される必要はない。上述したように、計測装置では、環境に設置された距離センサで計測された結果からすれ違い候補を検出し、すれ違い対象を決定する。このため、曲がり角のように、すれ違い対象（すれ違い候補）としての歩行者が移動体を視認（認識）できない場合であっても、計測装置では、当該歩行者と移動体がすれ違うことを予測することができる。したがって、移動体がすれ違い対象と対向する前段階から、歩行者を避けるように移動体を移動制御することにより、安全なすれ違いを実現することができるのである。
【０１４７】
たとえば、図１８には、見通しの悪いＴ字路において、移動体１０が下方向（Ｙの方向）から直進し、歩行者のようなすれ違い対象がＴ字路の右方向（Ｚの方向）から直進する場合について説明する。なお、図１８（図１９（Ａ）および（Ｂ）も同じ）では、環境に設けたセンサ（距離センサ１０４）は丸印で示してある。
【０１４８】
このような曲がり角がある場所では、すれ違い対象としての歩行者は、移動の初期の段階では、壁によって視界を遮られるため、移動体１０の存在を認識することができない。したがって、移動体１０とすれ違い候補の距離（相対距離）が或る程度短くなっても、すれ違い候補としての歩行者が移動体１０を認識できないため、すれ違い対象が決定されず、側方距離に基づく移動制御は実行されない。
【０１４９】
しかしながら、移動体１０が自律走行する環境には複数の距離センサ１０４が配置され、環境に存在する歩行者等は検出可能である。つまり、計測装置１００で、すれ違い候補を検出したり、すれ違い対象を決定したりすることは可能である。
【０１５０】
したがって、かかる場合には、歩行者等のすれ違い対象が移動体１０を認識できなくても、側方距離に基づく移動制御を行うことにより、歩行者等のすれ違い対象との衝突をさけ、安全にすれ違うことができるようにしてもよい。
【０１５１】
たとえば、図１８におけるようなＴ字路において、移動体１０がＺ方向に向けて移動する場合には、すれ違い対象としての歩行者はその移動方向に応じて大きく２種類の異なる回避行動を取ると考えられる。
【０１５２】
図１９（Ａ）に示すように、すれ違い対象としての歩行者がＸ方向に移動する場合には、歩行者は移動体１０を避けるように右寄りに進路を取ることが予測される。これは同様の状況で左側に避ける事例が少ないため、それを反映した予測結果が得られるためである。したがって、上述の実施例の移動制御に基づいて、移動体１０は互いに認識する前の段階から、右寄りに進路を取りつつ、Ｚ方向に移動することができる。
【０１５３】
また、すれ違い対象としての歩行者がＹ方向に移動する場合いは、歩行者は移動体１０を避けるために、右寄りまたは左寄りに進路を取ることが予測される。ここでは、図１９（Ｂ）では、左寄りに進路を取る場合について示してある。このような場合であっても、事前に特徴ベクトルを取得することにより、上述の実施例の移動制御に従って、右寄りまたは左寄りに進路を取るすれ違い対象に対して適切に移動体１０を移動させることができる。
【０１５４】
なお、この実施例では、移動制御装置としても機能するコンピュータを移動体に搭載するようにしたが、これに限定される必要はない。当該コンピュータを移動体の外部に設けて、移動制御のための制御データのみを移動体に送信するようにしてもよい。ただし、制御データは、算出した移動経路のデータ、移動開始および停止の指示、およびすれ違い対象とすれ違う場合の目標位置のデータを意味する。
【０１５５】
また、この実施例では、移動体の一例として電気車椅子を示したが、自律走行するロボットを用いることもできる。この自律走行するロボットの例としては、本件の出願人が開発したロボビー（登録商標）を用いることができる。
【０１５６】
さらに、この実施例では、環境に設けられた距離センサを含む計測装置を設けて、計測装置で、すれ違い候補およびすれ違い対象を検出および追跡するようにするとともに、すれ違い対象情報を生成して移動体に送信するようにしたが、これに限定される必要はない。計測装置から距離データを取得して、移動体側で、すれ違い候補およびすれ違い対象を検出および追跡するとともに、すれ違い対象情報を生成するようにしてもよい。
【０１５７】
さらにまた、この実施例では、移動体のコンピュータ（ＣＰＵ）で、図１５−図１７に示した移動制御処理および目標位置算出処理を実行するようにしたが、これに限定される必要はない。これらの処理を計測装置のコンピュータで実行し、移動体の移動制御のための制御データを移動体に送信するようにしてもよい。この場合、計測装置のコンピュータが移動体の移動制御装置および経路算出装置として機能する。ただし、移動データは、上述したように、算出した移動経路のデータ、移動開始および停止の指示、およびすれ違い対象とすれ違う場合の目標位置のデータを意味する。したがって、移動体は、計測装置のコンピュータからの移動の開始指示に従って移動を開始し、取得した移動経路に沿って移動し、計測装置のコンピュータから目標位置が与えられると、移動経路に拘わらず目標位置に向けて移動し、計測装置のコンピュータからの移動の停止指示に従って移動を終了する。また、移動体は、移動中に、更新された（計算し直された）移動経路のデータを計測装置のコンピュータから取得すると、新たに取得した移動経路に沿って移動する。
【０１５８】
なお、この実施例では、クラス分けした複数の特徴ベクトルおよびそれらの平均ベクトルを記憶しておき、今回のすれ違い対象の特徴ベクトルに近似する特徴ベクトルを求めて、求めた特徴ベクトルを含むクラスの平均ベクトルを用いて、当該すれ違い対象の予測位置を求めるようにしたが、これに限定される必要はない。たとえば、クラス分けして複数の特徴ベクトルの平均ベクトルのみを記憶しておき、今回のすれ違い対象の特徴ベクトルに近似する平均ベクトルを用いて、当該すれ違い対象の予測位置を求めるようにしてもよい。
【０１５９】
なお、この実施例で示した具体的な数値は単なる一例であり、限定されるべきではなく、実施される製品等に応じて適宜変更可能である。
【符号の説明】
【０１６０】
１  …移動体制御システム
１０  …移動体
１２、１０２  …コンピュータ
１２ａ  …ＣＰＵ
１２ｂ  …ＲＡＭ
１２ｃ  …ＨＤＤ
１６  …操作レバー
１８ａ、１８ｂ、１０４  …距離センサ
２０ａ、２０ｂ  …モータドライバ
２２ａ、２２ｂ  …モータ
２４ａ、２４ｂ  …エンコーダ
３２ａ、３２ｂ  …前輪
３４ａ、３４ｂ  …後輪
１００  …計測装置
【図１】
2015132980.tif 000011
【図２】
2015132980.tif 000012
【図３】
2015132980.tif 000013
【図４】
2015132980.tif 000014
【図５】
2015132980.tif 000015
【図６】
2015132980.tif 000016
【図７】
2015132980.tif 000017
【図８】
2015132980.tif 000018
【図９】
2015132980.tif 000019
【図１０】
2015132980.tif 000020
【図１１】
2015132980.tif 000021
【図１２】
2015132980.tif 000022
【図１３】
2015132980.tif 000023
【図１４】
2015132980.tif 000024
【図１５】
2015132980.tif 000025
【図１６】
2015132980.tif 000026
【図１７】
2015132980.tif 000027
【図１８】
2015132980.tif 000028
【図１９】
2015132980.tif 000029