(57)【特許請求の範囲】
【請求項１】
所定の移動領域内を移動する移動体の最終自己位置をステップごとに推定する装置であって、
第１自己位置推定部と、第２自己位置推定部と、異常発生確率計算式記憶部と、異常発生確率計算部と、最終自己位置推定部と、を備えており、
前記第１自己位置推定部は、前記移動領域の環境地図と、現在のステップで観測された「前記移動体から前記移動領域内に存在している物体までの距離」及び「前記移動体に対する前記物体の方位」と、を少なくとも用いて前記移動体の状態の確率分布を最新の状態に更新し、その最新の状態の確率分布に基づいて第１自己位置を推定し、
前記第２自己位置推定部は、前記最終自己位置推定部で推定された１つ前のステップにおける前記移動体の最終自己位置に、オドメトリにより取得される、前記１つ前のステップから現在のステップまでの前記移動体の移動距離及び移動方向を加算することにより第２自己位置を推定し、
前記異常発生確率計算式記憶部は、前記移動体の学習移動時において、前記第１自己位置推定部が前記第１自己位置を推定した際に取得された学習データを機械学習して得られた異常発生確率計算式を記憶し、
前記異常発生確率計算部は、前記移動体の本移動時において、前記第１自己位置推定部が前記第１自己位置を推定した際に取得される複数の変数を前記異常発生確率計算式に入力して異常発生確率を計算し、
前記最終自己位置推定部は、前記第１自己位置推定部から取得される前記第１自己位置と前記第２自己位置推定部から取得される第２自己位置とを用いて算出される重み付き平均値を、現在のステップにおける最終自己位置とし、
前記学習データは、学習移動時に前記第１自己位置推定部において前記第１自己位置を推定した際に取得される複数の変数と、そのときの第１自己位置推定結果を正常又は異常に分類したときの分類結果と、を関連付けたデータを複数有しており、
前記最終自己位置推定部で用いられる重み係数は、前記異常発生確率計算部で取得される異常発生確率の関数である、移動体の自己位置推定装置。
【請求項２】
前記異常発生確率が増加するにつれて、前記第１自己位置の前記重み係数が減少すると共に、前記第２自己位置の前記重み係数が増加する、請求項１に記載の移動体の自己位置推定装置。
【請求項３】
前記第１自己位置推定部は、
前記１つ前のステップにおける前記異常発生確率が所定の閾値を超えていない場合は、当該第１自己位置推定部で推定された１つ前のステップにおける前記移動体の第１自己位置をさらに用いて前記移動体の状態の確率分布を最新の状態に更新し、
前記１つ前のステップにおける前記異常発生確率が所定の閾値を超えた場合は、前記移動体の状態の確率分布を、現在のステップにおいて前記第２自己位置推定部が推定した前記第２自己位置を含む所定の範囲内に前記移動体が位置するように更新する、請求項１又は２に記載の移動体の自己位置推定装置。
【請求項４】
前記学習データの前記第１自己位置推定結果は、学習移動時に前記第１自己位置推定部で推定された第１自己位置と、前記移動体の実際の位置との位置誤差が所定値以下の場合には正常と分類され、前記位置誤差が所定値を超える場合には異常と分類されている、請求項１〜３の何れか一項に記載の移動体の自己位置推定装置。
【請求項５】
前記オドメトリは、車輪オドメトリ、カメラを用いたビジュアルオドメトリ又はレーザセンサを用いたレーザオドメトリの何れかである、請求項１〜４の何れか一項に記載の移動体の自己位置推定装置。
【請求項６】
前記第１自己位置推定部は、モンテカルロ位置同定法（Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｌｏｃａｌｉｚａｔｉｏｎ、  ＭＣＬ）又は拡張カルマンフィルタの何れかの手法を用いて前記第１自己位置を推定する、請求項１〜５の何れか一項に記載の移動体の自己位置推定装置。
【請求項７】
所定の移動領域内を移動する移動体であって、
オドメトリにより前記移動体の移動距離及び移動方向を取得する移動情報取得部と、
前記移動領域内に存在している物体を観測し、前記移動体から前記物体までの距離及び前記移動体に対する前記物体の方位を取得する観測情報取得部と、
前記移動領域の環境地図を記憶している環境地図記憶部と、
請求項１〜６の何れか一項に記載の自己位置推定装置と、を備える移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、移動体に関する。詳しくは、移動体の位置を推定する技術に関する。
【背景技術】
【０００２】
所定の移動領域内を移動する移動体であって、移動領域内における自己位置を推定する移動体が知られている。例えば、非特許文献１の移動体では、モンテカルロ位置同定法（Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｌｏｃａｌｉｚａｔｉｏｎ（以下、ＭＣＬと称する））による自己位置推定と、ビジョンセンサによる自己位置推定の重み付き平均値を最終自己位置としている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】吉川大地、足立勝、安田賢一、“屋内ロボットのための複数センサを用いたロバストな自己位置推定”、第３１回日本ロボット学会学術講演会、２０１３年９月４日〜６日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１の技術では、ＭＣＬのパーティクル集合の分散が閾値を超えるか否かによって、自己位置推定に用いる重み係数を変化させている。ここで、ＭＣＬのパーティクル集合の分散の度合いは、移動体が移動する移動領域によって変化する。このため、移動領域が変わると、それに応じて閾値を変更しなければならない。非特許文献１の技術では、閾値の変更を設定者の経験と勘に基づいて行っていたため、そのバラツキが大きく、自己位置推定精度が安定しないという問題があった。
【０００５】
本明細書では、移動体の自己位置推定精度を従来よりも安定化できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書は、所定の移動領域内を移動する移動体の最終自己位置をステップごとに推定する自己位置推定装置を開示する。自己位置推定装置は、第１自己位置推定部と、第２自己位置推定部と、異常発生確率計算式記憶部と、異常発生確率計算部と、最終自己位置推定部と、を備える。第１自己位置推定部は、移動領域の環境地図と、現在のステップで観測された「移動体から移動領域内に存在している物体までの距離」及び「移動体に対する物体の方位」と、を少なくとも用いて移動体の状態の確率分布を最新の状態に更新し、その最新の状態の確率分布に基づいて第１自己位置を推定する。第２自己位置推定部は、最終自己位置推定部で推定された１つ前のステップにおける移動体の最終自己位置に、オドメトリにより取得される、１つ前のステップから現在のステップまでの移動体の移動距離及び移動方向を加算することにより第２自己位置を推定する。異常発生確率計算式記憶部は、移動体の学習移動時において、第１自己位置推定部が第１自己位置を推定した際に取得された学習データを機械学習して得られた異常発生確率計算式を記憶する。異常発生確率計算部は、移動体の本移動時において、第１自己位置推定部が第１自己位置を推定した際に取得される複数の変数を異常発生確率計算式に入力して異常発生確率を計算する。最終自己位置推定部は、第１自己位置推定部から取得される第１自己位置と第２自己位置推定部から取得される第２自己位置とを用いて算出される重み付き平均値を、現在のステップにおける最終自己位置とする。学習データは、学習移動時に第１自己位置推定部において第１自己位置を推定した際に取得される複数の変数と、そのときの第１自己位置推定結果を正常又は異常に分類したときの分類結果と、を関連付けたデータを複数有する。最終自己位置推定部で用いられる重み係数は、異常発生確率計算部で取得される異常発生確率の関数である。
【０００７】
上記の自己位置推定装置では、移動体の最終自己位置を推定する際に用いる重み係数が、異常発生確率の関数となっている。異常発生確率は、異常発生確率計算式から算出される。異常発生確率計算式は、移動体が学習移動することで取得される学習データを機械学習することにより得られる。即ち、異常発生確率計算式は、学習データを統計的に解析することにより生成される。このため、重み係数の値が経験や勘に基づいて決定されないため、移動体の最終自己位置の推定精度を安定化することができる。
【０００８】
本明細書が開示する技術の詳細、及び、さらなる改良は、発明を実施するための形態及び実施例にて詳しく説明する。
【図面の簡単な説明】
【０００９】
【図１】移動体のシステム構成を示す。
【図２】移動体が最終自己位置推定処理等を実施する際のシステム構成を示す。
【図３】移動体が学習データ生成処理を実施する際のシステム構成を示す。
【図４】移動体が学習移動する移動領域の一例を示す。
【図５】学習データの一例を示す。
【図６】移動体が異常発生確率計算式生成処理を実施する際のシステム構成を示す。
【図７】異常発生確率計算式のグラフを示す。
【図８】異常発生確率に依存する重み係数のグラフを示す。
【発明を実施するための形態】
【００１０】
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に記載する技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。
【００１１】
（特徴１）  本明細書が開示する移動体の自己位置推定装置では、異常発生確率が増加するにつれて、第１自己位置の重み係数が減少すると共に、第２自己位置の重み係数が増加してもよい。上記の構成によると、異常発生確率が高いとき（即ち、第１自己位置の推定精度が低いとき）は、第２自己位置の重み係数が増加するため、最終自己位置の推定精度が低下することを抑制することができる。
【００１２】
（特徴２）  本明細書が開示する移動体の自己位置推定装置では、第１自己位置推定部が、１つ前のステップにおける異常発生確率が所定の閾値を超えていない場合は、当該第１自己位置推定部で推定された１つ前のステップにおける移動体の第１自己位置をさらに用いて移動体の状態の確率分布を最新の状態に更新してもよい。１つ前のステップにおける異常発生確率が所定の閾値を超えた場合は、移動体の状態の確率分布を、現在のステップにおいて第２自己位置推定部が推定した第２自己位置を含む所定の範囲内に移動体が位置するように更新してもよい。この構成では、１つ前のステップにおいて異常発生確率が所定の閾値を超えた場合（即ち、第１自己位置の推定精度が閾値より低いとき）は、現在のステップにおいては、第２自己位置推定部が推定した第２自己位置を含む所定の範囲内に移動体が位置するように、移動体の状態の確率分布が更新される。このため、移動体の状態の確率分布を適切に更新することができる。
【００１３】
（特徴３）  本明細書が開示する移動体の自己位置推定装置では、学習データの第１自己位置推定結果が、学習移動時に第１自己位置推定部で推定された第１自己位置と、移動体の実際の位置との位置誤差が所定値以下の場合には正常と分類され、位置誤差が所定値を超える場合には異常と分類されていてもよい。この構成では、移動体の実際の位置を基準として、第１自己位置推定結果が正常であるか異常であるかの分類が行われる。このため、信頼性の高い分類結果を取得でき、学習データの信頼性が向上し、結果として精度の高い異常発生確率計算式を取得できる。
【００１４】
（特徴４）  本明細書が開示する移動体の自己位置推定装置では、オドメトリが、車輪オドメトリ、カメラを用いたビジュアルオドメトリ又はレーザセンサを用いたレーザオドメトリの何れかであってもよい。
【００１５】
（特徴５）  本明細書が開示する移動体の自己位置推定装置では、第１自己位置推定部が、モンテカルロ位置同定法（Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｌｏｃａｌｉｚａｔｉｏｎ、  ＭＣＬ）又は拡張カルマンフィルタの何れかの手法を用いて第１自己位置を推定してもよい。
【００１６】
（特徴６）  本明細書が開示する自己位置推定装置は、所定の移動領域内を移動する移動体に搭載することができる。移動体は、移動情報取得部と、観測情報取得部と、環境地図記憶部と、自己位置推定装置と、を備えていてもよい。移動情報取得部は、オドメトリにより移動体の移動距離及び移動方向を取得してもよい。観測情報取得部は、移動領域内に存在している物体を観測し、移動体から物体までの距離及び移動体に対する物体の方位を取得してもよい。環境地図記憶部は、移動領域の環境地図を記憶していてもよい。この構成によると、自己位置推定精度を従来よりも安定化した移動体を実現できる。
【実施例１】
【００１７】
図１〜図８を参照して移動体１０について説明する。移動体１０は、左右に車輪を有する車輪駆動型の移動体であり、所定の移動領域内を自律的に走行する。移動体１０の左右の車輪は独立して駆動され、左右の車輪の回転速度を変えることで、移動体１０は進行方向を変えることができる。なお、後述する「現在のステップ」とは、移動体１０の走行中における最新のステップを意味する。また、「１つ前のステップ」、「１つ後の（次の）ステップ」とは、それぞれ「現在のステップから１つ前のステップ」、「現在のステップから１つ後の（次の）ステップ」を意味する。移動体１０は、ステップごとに推定される最終自己位置に基づいて、スタート地点から目的地まで走行する。以下では、移動体１０が最終自己位置を推定する走行を、「本走行」と称する。なお、厳密には、移動体１０は、自身の位置及び方位を推定するが、以下では、移動体１０の位置と方位をまとめて「自己位置」と称する。
【００１８】
図１に示すように、移動体１０は、エンコーダ１２と、レーザレンジファインダ１４（以下、ＬＲＦ１４と称する）と、三角測量センサ１６（後述）と、コンピュータ１８を備える。
エンコーダ１２は、左右の車輪の回転角度を検出し、コンピュータ１８の第１自己位置推定部２８及び第２自己位置推定部２９（後述）に出力する。即ち、左右の車輪はそれぞれ図示しないモータによって駆動される。左右の車輪を駆動するモータにはエンコーダ１２がそれぞれ設けられ、各エンコーダ１２は左右の車輪の回転角度をそれぞれ検出する。エンコーダ１２で検出される左右の車輪の回転角度は、コンピュータ１８に入力される。
ＬＲＦ１４は、レーザ光を射出し、射出したレーザ光が物体で反射して返ってくるまでの時間を計測する。ＬＲＦ１４で計測される時間から、ＬＲＦ１４（即ち、移動体１０）から物体までの距離が計測される。また、ＬＲＦ１４からレーザ光を射出した方向（即ち、物体から反射されるレーザ光の入射角度）は既知であるため、ＬＲＦ１４に対する物体の方位を決定することができる。以下、物体までの距離及び物体の方位を「観測情報」とも称する。ＬＲＦ１４で取得した観測情報は、コンピュータ１８の第１自己位置推定部２８に出力される。ＬＲＦ１４は、移動体１０の進行方向に対して所定の角度範囲（例えば、進行方向に対して左右方向にそれぞれ６０°）でレーザ光を射出する。
コンピュータ１８は、演算処理を行うＣＰＵ２０、演算処理のデータが一時的に記憶されるＲＡＭ２２、及びＣＰＵによって実行される演算プログラムが記憶されたＲＯＭ２４を備えている。コンピュータ１８は、後述する様々な処理を実行する。ＣＰＵ２０がＲＯＭ２４に記憶された演算プログラムを実行することで、ＣＰＵ２０は、第１自己位置推定部２８、第２自己位置推定部２９等として機能する。なお、コンピュータ１８による移動体１０の走行制御については、公知の方法で行うことができるため、ここでは、コンピュータ１８による最終自己位置推定等の処理について詳細に説明する。
【００１９】
（第１自己位置推定処理：通常時）
図２に示すように、コンピュータ１８は、環境地図記憶部２６と、第１自己位置推定部２８を備える。第１自己位置推定部２８は、判定部５８と、通常時推定部５９と、異常時推定部６０を備える。第１自己位置推定部２８は、判定部５８での判定結果に基づいて、ステップごとに、通常時推定部５９での処理と、異常時推定部６０での処理を切替える。通常時推定部５９及び異常時推定部６０は、いずれも移動体１０の自己位置を推定する。以下では、通常時推定部５９及び異常時推定部６０により推定される自己位置を、いずれも「第１自己位置」と称する。以下では、通常時推定部５９での第１自己位置推定処理について先に説明し、判定部５８での判定処理及び異常時推定部６０での第１自己位置推定処理については後で説明する。
【００２０】
環境地図記憶部２６は、ＲＯＭ２４に設けられており、ｘｙ座標平面上に移動領域内の物体の位置及び高さが記録された環境地図を記憶している。環境地図に記憶される物体としては、例えば、移動領域内の障害物（例えば、壁、床面等）が含まれる。
通常時推定部５９は、ＲＯＭ２４に予め格納されている公知の運動モデルに基づいて、モンテカルロ位置同定法（Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｌｏｃａｌｉｚａｔｉｏｎ（以下、ＭＣＬと称する））により移動体１０の第１自己位置をステップごとに推定する。ＭＣＬを用いた第１自己位置推定処理では、１つ前のステップにおいて推定された第１自己位置を用いて現在のステップにおける第１自己位置を推定する。ここで、現在のステップが、移動体１０がスタート地点から移動を開始してから最初のステップであるときは、上記「１つ前のステップにおいて推定された第１自己位置」はスタート地点の位置を表す。この処理は、ＣＰＵ２０で実施される。ＭＣＬは、パーティクルフィルタを用いて移動体が自己位置を推定する公知の手法である。具体的には、通常時推定部５９は、（１）まず、初期パーティクル集合を生成する。各パーティクルは移動体１０の位置候補を表すベクトルであり、ベクトル要素として、ｘｙ座標系における移動体１０のｘ座標、ｙ座標、及びヨー角を備える。（２）次に、通常時推定部５９は、エンコーダ１２から取得した各車輪の回転角度を元に、移動体１０の１ステップ分の移動距離及び移動方向（以下、移動距離及び移動方向を「移動情報」とも称する）を算出する。具体的には、通常時推定部５９は、現在のステップにおいてエンコーダ１２から取得した各車輪の回転角度から、現在のステップにおける移動体１０の移動情報を算出する。そして、現在のステップにおける移動体１０の移動情報と、１つ前のステップにおいて既に算出されている移動体１０の移動情報との差を求めることにより、移動体１０の１ステップ分の移動情報を算出する。ここで、現在のステップが、上述した最初のステップであるときは、上記「１つ前のステップにおいて既に算出されている移動体１０の移動情報」はゼロである。そして、運動モデルに移動体１０の１ステップ分の移動情報を入力し、各パーティクルを運動モデルに従って移動させる。（３）続いて、通常時推定部５９は、各パーティクルにおいて、ＬＲＦ１４から入力された観測情報を、環境地図記憶部２６から取得した環境地図とマッチングさせて、各パーティクルの尤度（確からしさ）を計算する。（４）そして、パーティクル数が、尤度の高い領域で多く、尤度の低い領域で少なくなるようにパーティクルを選択し、ノイズを加えて新たな集合を生成する。
【００２１】
通常時推定部５９は、上記（２）〜（４）の処理を繰り返すことでパーティクルの尤度を上げて観測情報と最も適合するパーティクルを発見し、その適合パーティクルを移動体１０の第１自己位置と推定する。別言すれば、通常時推定部５９は、パーティクル集合に移動体１０の実際の位置（以下、真値とも称する）が含まれる（即ち、パーティクル集合を構成するパーティクルのいずれかと真値が一致する）まで、或いは、パーティクル集合のいずれかのパーティクルが真値に極めて近くなるまで、上記（２）〜（４）の処理を繰り返す。即ち、通常時の第１自己位置推定処理では、１回のステップにおいて、パーティクル集合の分布は複数回更新される。これにより、通常時推定部５９において、現在のステップにおける第１自己位置が推定される。
【００２２】
（第２自己位置推定処理）
図２に示すように、コンピュータ１８は、第１自己位置推定部２８の他に、第２自己位置推定部２９と、最終自己位置記憶部５６を備える。最終自己位置記憶部５６は、ＲＯＭ２４に設けられており、最終自己位置推定部５４（後述）により推定された最終自己位置（厳密には、環境地図上の座標）をステップごとに記憶している。第２自己位置推定部２９は、最終自己位置記憶部５６に記憶されている最終自己位置のうち、１つ前のステップにおける最終自己位置に、移動体１０の１ステップ分の移動情報を加算することにより算出される値を、現在のステップにおける移動体１０の自己位置と推定する。上記の説明から明らかなように、第２自己位置推定部２９は、環境地図を用いずに第２自己位置を推定する。なお、第２自己位置自体は、環境地図に依存した要素を含む場合がある（即ち、１つ前のステップにおける最終自己位置が第１自己位置を構成要素に含む場合）。
【００２３】
なお、上記の「１つ前のステップにおける最終自己位置」は、別言すれば、最終自己位置記憶部５６に記憶されている最終自己位置の中で最も新しい最終自己位置である。以下では、第２自己位置推定部２９により推定される移動体１０の自己位置を「第２自己位置」と称する。この処理は、ＣＰＵ２０で行われる。なお、第２自己位置推定部２９における移動体１０の１ステップ分の移動情報の求め方は、第１自己位置推定部２８の通常時推定部５９における求め方と同様である。このため、移動体１０の１ステップ分の移動情報を通常時推定部５９と第２自己位置推定部２９の間で共有してもよい。なお、現在のステップが、移動体１０がスタート地点から移動を開始してから最初のステップであるときは、「１つ前のステップにおける最終自己位置」とは、スタート地点の位置を意味する。
【００２４】
（学習データ生成処理）
移動体１０は、本走行を行う前に、学習走行と呼ばれる走行を行う。以下では、移動体１０の学習走行、及び学習走行時に得られるデータを元に学習データを生成する処理について説明する。
【００２５】
図３に示すように、コンピュータ１８は、上述した処理で使用される各部の他に、真値計算用地図記憶部３０と、真値計算部３２と、位置誤差計算部３４と、学習データ生成部３６と、学習データ記憶部３８を備える。環境地図記憶部２６には、移動体１０が学習走行を行う移動領域の環境地図が記憶されている。移動体１０が学習走行を行う移動領域は、本走行を行う移動領域と異なっていてもよい。このため、学習走行時と本走行時とで移動領域が異なる場合は、環境地図記憶部２６は、両方の移動領域の環境地図を記憶している。以下では、学習走行時の移動領域と本走行時の移動領域とを区別するために、前者を「第１移動領域」と称し、後者を「第２移動領域」と称する。また、第１移動領域の環境地図を「第１環境地図」と称し、第２移動領域の環境地図を「第２環境地図」と称する。
【００２６】
図４は、移動体１０が学習走行を行う第１移動領域４０を示す。図４に示すように、第１移動領域４０の一部には、障害物としての塀４２が配置されている。塀４２は互いに対向するように配置されており、塀４２の対向面（内側の面）にはリフレクタ４４が等間隔で固定されている。学習走行時の移動体１０の走行は、リモートコントローラ（リモコン）で制御される。破線は、学習走行時の移動体１０の走行ルートを示す。破線で示すように、移動体１０は、塀４２が配置されていない領域、及び対向する塀４２の間の領域の双方を走行する。
【００２７】
真値計算用地図記憶部３０は、ＲＯＭ２４に設けられており、環境地図記憶部２６が記憶している第１環境地図に、塀４２及びリフレクタ４４の位置が記録された地図を記憶している。別言すれば、第１環境地図には、作為的に配置された塀４２及びリフレクタ４４の情報は記憶されていない。
【００２８】
三角測量センサ１６は、全方位（３６０°）にレーザ光を射出し、リフレクタ４４で反射して返ってくるレーザ光を検知することで、リフレクタ４４までの距離及び移動体１０に対するリフレクタ４４の方位を計測し、これらの情報をコンピュータ１８の真値計算部３２に出力する。三角測量センサ１６は、移動体１０に搭載されている。
【００２９】
真値計算部３２は、三角測量センサ１６から取得した距離及び方位の情報から、リフレクタ４４に対する移動体１０の相対位置（厳密には、相対方位も含む）を特定する。真値計算用地図記憶部３０から取得した地図にはリフレクタ４４の位置が記録されているため、当該地図に移動体１０の相対位置をマッピングすることで、当該地図上における移動体１０の位置を特定できる。このようにして、真値計算部３２は、移動体１０の実際の位置（真値）を計算する。この処理は、ＣＰＵ２０で行われる。移動体１０の真値は、位置誤差計算部３４に出力される。
【００３０】
一方、第１自己位置推定部２８の通常時推定部５９は、第１環境地図を用いて第１移動領域４０における移動体１０の第１自己位置を推定し、その結果を位置誤差計算部３４に出力する。第１自己位置推定処理と真値計算処理は同じタイミングで行われる。また、通常時推定部５９は、最新のパーティクル集合（即ち、現在のステップにおける第１自己位置が推定されたときのパーティクル集合）の分布からｘ方向の標準偏差σｘ、ｙ方向の標準偏差σｙ、及びパーティクルの尤度の最大値ｗｍａｘを計算し、これらの情報（標準偏差σｘ、標準偏差σｙ、最大尤度ｗｍａｘ）を学習データ生成部３６に出力する。なお、標準偏差σｘ、標準偏差σｙ、最大尤度ｗｍａｘが「変数」の一例に相当する。
【００３１】
位置誤差計算部３４は、真値計算部３２から取得した真値と、通常時推定部５９から取得した第１自己位置との差（位置誤差）を計算し、学習データ生成部３６に出力する。この処理は、ＣＰＵ２０で行われる。
【００３２】
学習データ生成部３６は、位置誤差計算部３４から取得した位置誤差が１５ｃｍ以下の場合は、通常時推定部５９が第１自己位置の推定に成功したとみなし、第１自己位置推定結果を「正常」と分類する。一方、位置誤差が１５ｃｍを超える場合は、通常時推定部５９が第１自己位置の推定に失敗したとみなし、第１自己位置推定結果を「異常」と分類する。学習走行では、位置誤差が「異常」と分類される事態を意図的に作り出している。即ち、第１移動領域４０には、第１環境地図に記録されていない塀４２が配置されている。このため、移動体１０が塀４２の間を走行する際は、ＬＲＦ１４により取得される観測情報と第１環境地図とのマッチング度が低くなり、適合パーティクルの発見が困難になる。これは、仮にパーティクル集合の中に真値が含まれていたとしても、移動体１０は真値と一致するパーティクルを適合パーティクルとして発見できないことを意味する。このため、移動体１０が塀４２の間を走行する場合は、真値とは異なるパーティクルを適合パーティクルとみなし、そのパーティクルを第１自己位置と推定する可能性が極めて高くなる。この結果、第１自己位置と真値との位置誤差が大きくなり、その位置誤差が１５ｃｍを超える場合は、「異常」と分類されることになる。
【００３３】
このように、学習データ生成部３６では、位置誤差を基準として、即ち、「真値」に対する移動体１０の第１自己位置のずれ量を基準として、第１自己位置推定結果が正常であるか異常であるかの分類が行われる。このため、信頼性の高い分類結果を取得できる。なお、本実施例では、第１自己位置推定結果の正常／異常の分類基準値を１５ｃｍに設定したが、分類基準値はこれに限られない。分類基準値を低くするほど、異常発生確率計算式の異常予測精度を高くすることができる。
【００３４】
図５は、学習データ生成部３６により生成される学習データの例を示す。図５に示すように、学習データ生成部３６は、第１自己位置推定時の時刻と、位置誤差計算部３４から取得した位置誤差と、第１自己位置推定結果の分類結果と、通常時推定部５９から取得した３つの変数（標準偏差σｘ、標準偏差σｙ、最大尤度ｗｍａｘ）と、を関連付けたデータセットを時系列に並べたデータセット群（学習データ）を生成する（σｘ、σｙ、ｗｍａｘのアルファベットは、実際には数値である）。学習データを参照することで、各時刻における位置誤差、第１自己位置推定結果の正常／異常、及び第１自己位置が推定されたときの変数を知ることができる。例えば、時刻ｔ＝２ｓでは、第１自己位置と真値との位置誤差は７ｃｍであるため、第１自己位置推定結果は「正常」と分類されており、そのときの変数σｘ、σｙ、ｗｍａｘは、それぞれｂ、ｇ、ｌであることがわかる。また、時刻ｔ＝１０ｓでは、第１自己位置と真値との位置誤差は２０ｃｍであるため、第１自己位置推定結果は「異常」と分類されており、そのときの変数σｘ、σｙ、ｗｍａｘは、それぞれｃ、ｈ、ｍであることがわかる。学習データ生成処理は、ＣＰＵ２０で行われる。このように、移動体１０自身が学習データを生成することにより、移動体１０の外部において学習データを生成する構成と比較して、システム構成を簡素化することができる。
【００３５】
学習データ記憶部３８は、ＲＯＭ２４に設けられており、学習データ生成部３６で生成された学習データを記憶する。学習データ記憶部３８に記憶された学習データは、後述する異常発生確率計算式生成部４６に出力される。このように、移動体１０自身が学習データを記憶しておくことにより、移動体１０に不具合が生じた場合等に、学習データのログを分析してエラーがないかどうか検証することが可能となる。このため、移動体１０に不具合が生じた場合にその原因を発見し易くなり、移動体１０の信頼性を向上させることができる。なお、本実施例では、データセットには自己位置推定時の時刻が含まれているが、この構成に限られない。例えば、データセットは時刻を含んでいなくてもよく、学習データは、データセットが第１自己位置推定時刻とは無関係に並べられたデータ群により構成されていてもよい。また、学習データには位置誤差が含まれていなくてもよい。
【００３６】
（異常発生確率計算式生成処理）
移動体１０が異常発生確率計算式を生成する処理について説明する。図６に示すように、コンピュータ１８は、上述した処理で使用される各部の他に、異常発生確率計算式生成部４６と、異常発生確率計算式記憶部４８を備える。
異常発生確率計算式生成部４６は、学習データ記憶部３８に記憶されている学習データを取得し、学習データをロジスティック回帰分析して、異常発生確率計算式を生成する。ロジスティック回帰分析は多変量解析の一手法であり、結果が２値の場合に、その結果の起きる確率を予測できる統計的な回帰モデルを生成する手法である。具体的には、次の数式で表されるロジスティックモデル；
【数１】
0006438354.tif 000002
（Ｚ：目的変数、Ｘ１〜Ｘ３：説明変数、ｂ０：定数、ｂ１〜ｂ３：回帰係数）に学習データを適用して、定数ｂ０及び回帰係数ｂ１〜ｂ３の値を求める。学習データを適用する際は、目的変数Ｚに分類結果（正常：０、異常：１）を用い、説明変数Ｘ１、Ｘ２、Ｘ３に学習データの標準偏差σｘ、標準偏差σｙ、最大尤度ｗｍａｘをそれぞれ用いる。これにより、次の数式で表される異常発生確率計算式；
【数２】
0006438354.tif 000003
が生成される（図７参照）。ｐは、移動体１０の本走行時において第１自己位置推定部２８により推定される第１自己位置（即ち、通常時推定部５９により推定される第１自己位置と、後述する異常時推定部６０により推定される第１自己位置）が異常となる確率（以下、異常発生確率とも称する）である。異常発生確率ｐは、第１自己位置が真値からどれだけ離れているかを示す尺度であり、第１自己位置が真値から遠ざかるにつれて大きくなる。第１自己位置の推定精度が低くなるほど、異常発生確率ｐが大きくなる。説明変数Ｘ１〜Ｘ３に用いる変数（σｘ、σｙ、ｗｍａｘ）は互いに独立しているため、回帰係数ｂ１〜ｂ３は、項目間の影響が排除された係数となる。従って、異常発生確率を算出する際に、より正確に項目ごとの影響度を量ることができる。異常発生確率計算式生成処理は、ＣＰＵ２０で行われる。
異常発生確率計算式記憶部４８は、ＲＯＭ２４に設けられており、異常発生確率計算式生成部４６で生成された異常発生確率計算式を記憶する。
【００３７】
（第１自己位置推定処理：再設定時）
上述したように、第１自己位置推定部２８は、判定部５８での判定結果に基づいて、ステップごとに、通常時推定部５９での処理と、異常時推定部６０での処理を切替える。以下では、異常時推定部６０での第１自己位置推定処理について説明する。
異常時推定部６０は、パーティクル集合を生成する際に運動モデルを用いない点で通常時推定部５９と異なっている。具体的には、異常時推定部６０は、まず、第２自己位置推定部２９から現在のステップにおける第２自己位置を取得し、当該第２自己位置を含む所定の範囲内にパーティクル集合を生成する。この所定の範囲内には、移動体１０（即ち、真値）が含まれている。パーティクル集合を構成するパーティクルの数は、通常時推定部５９におけるパーティクルの数と略同じである。
次に、異常時推定部６０は、通常時推定部５９における（３）、（４）の処理を実行する。異常時推定部６０は、パーティクル集合を構成するパーティクルのいずれかと真値が一致するまで、或いは、パーティクル集合のいずれかのパーティクルが真値に極めて近くなるまで、上記（３）、（４）の処理を繰り返す。即ち、再設定時の第１自己位置推定処理においても、１回のステップにおいて、パーティクル集合の分布は複数回更新される。これにより、異常時推定部６０において、現在のステップにおける第１自己位置が推定される。即ち、異常時推定部６０では、１つ前のステップにおける第１自己位置ではなく、現在のステップにおける第２自己位置を用いて、現在のステップにおける第１自己位置を推定する。この処理は、ＣＰＵ２０で行われる。なお、パーティクル集合を構成するパーティクルは、上記の所定の範囲内にランダムに分布されてもよいし、均一に分布されてもよいし、所定の基準に従って分布されてもよい。
【００３８】
（異常発生確率計算処理）
移動体１０が異常発生確率ｐを計算する処理について説明する。コンピュータ１８は、上述した処理で使用される各部の他に、異常発生確率計算部５０を備える。
移動体１０が第２移動領域において本走行を行う際は、第１自己位置推定部２８の通常時推定部５９又は異常時推定部６０が、第２環境地図を用いて第１自己位置を推定する。通常時推定部５９又は異常時推定部６０で現在のステップにおける第１自己位置が推定されたときの３つの変数σｘ、σｙ、ｗｍａｘは、異常発生確率計算部５０に出力される。
異常発生確率計算部５０は、通常時推定部５９又は異常時推定部６０から取得した現在のステップにおける３つの変数σｘ、σｙ、ｗｍａｘを、異常発生確率計算式記憶部４８から取得した異常発生確率計算式のＸ１、Ｘ２、Ｘ３にそれぞれ入力して、現在のステップにおける異常発生確率ｐを求める。異常発生確率ｐは、ステップごとに計算される。この処理は、ＣＰＵ２０で行われる。異常発生確率計算部５０で算出された異常発生確率ｐは、第１自己位置推定部２８の判定部５８と、重み係数計算部５２に出力される。現在のステップにおける異常発生確率ｐは、判定部５８では１つ後のステップにおける判定処理（後述）に用いられ、重み係数計算部５２では現在のステップにおける重み係数計算処理に用いられる。
【００３９】
（判定処理）
移動体１０が、現在のステップにおける第１自己位置を推定する処理を、通常時推定部５９と異常時推定部６０のどちらで行うかを判定する処理について説明する。上述したように、第１自己位置推定部２８は、判定部５８を備える。判定部５８は、異常発生確率計算部５０から、１つ前のステップにおける異常発生確率ｐを取得する。判定部５８は、異常発生確率ｐが０＜ｐ≦０．８を満たすときは通常時推定部５９において第１自己位置推定処理を実行させ、０．８＜ｐを満たすときは、異常時推定部６０において第１自己位置推定処理を実行させる。なお、移動体１０がスタート地点から移動を開始してから最初のステップでは、判定の基準となる異常発生確率ｐがまだ算出されていないため、通常時推定部５９が第１自己地位推定処理を行う。即ち、判定処理は、２回目以降のステップから実施される。また、第１自己位置推定処理を通常時推定部５９と異常時推定部６０のどちらで行うか判定する基準となる異常発生確率ｐの閾値は、０．８に限られず、例えば、０．８未満であってもよいし、０．８超であってもよい。
【００４０】
（最終自己位置推定処理）
移動体１０は、第２移動領域において本走行を行う前に、上述した学習データ生成処理及び異常発生確率計算式生成処理を実施する。そして、移動体１０が本走行を行う際は、異常発生確率計算式から算出した異常発生確率に基づいて重み係数を計算し、その重み係数を用いて最終自己位置を推定する。以下では、移動体１０の本走行時における最終自己位置推定処理について説明する。図２に示すように、コンピュータ１８は、上述した処理で使用される各部の他に、重み係数計算式記憶部５１と、重み係数計算部５２と、最終自己位置推定部５４を備える。
【００４１】
重み係数計算式記憶部５１は、ＲＯＭ２４に設けられており、予め設定された重み係数計算式を記憶している。重み係数計算式は、次のシグモイド関数；
【数３】
0006438354.tif 000004
（ｐ：異常発生確率、α：重み係数）で表される（図８参照（後述））。
重み係数計算部５２は、重み係数計算式記憶部５１から取得した重み係数計算式に、異常発生確率計算部５０から取得した現在のステップにおける異常発生確率ｐを入力して重み係数αを求める。この処理は、ＣＰＵ２０で行われる。重み係数計算部５２で算出された重み係数αは、最終自己位置推定部５４に出力される。
【００４２】
最終自己位置推定部５４は、重み係数計算部５２から取得した重み係数αを用いて、第１自己位置推定部２８から取得した第１自己位置と第２自己位置推定部２９から取得した第２自己位置の重み付き平均値を算出し、その値を最終自己位置として推定する。具体的には、最終自己位置推定部５４は、次の数式；
【数４】
0006438354.tif 000005
（ｒｆ：最終自己位置、ｒ１：第１自己位置、ｒ２：第２自己位置）に従って計算を行い、移動体１０の現在のステップにおける最終自己位置を算出する。重み係数αは第１自己位置の重み係数として使用され、１から重み係数αを減じた係数１−αは第２自己位置の重み係数として使用される。この処理は、ＣＰＵ２０で行われる。最終自己位置推定部５４で算出された最終自己位置は、最終自己位置記憶部５６に出力される。最終自己位置記憶部５６に出力され記憶される最終自己位置は、１つ後のステップにおける第２自己位置推定処理に用いられる。
【００４３】
ここで、上記の関数（数３）及び図８を参照して重み係数計算式について説明する。重み係数計算式により算出される重み係数αは、異常発生確率ｐの関数となっている。第１自己位置の重み係数である重み係数αは、異常発生確率ｐが大きくなるにつれて（即ち、第１自己位置の推定精度が低下するにつれて）減少している。具体的には、重み係数αの値は、異常発生確率ｐが０＜ｐ＜０．１を満たすときは１に近似しており、ｐ＝０．２のときは０．５であり、０．３＜ｐを満たすときは０に近似している。このため、最終自己位置は、異常発生確率ｐが１０％未満のときは第１自己位置とほぼ一致し、異常発生確率ｐが２０％であるときは第１自己位置と第２自己位置の中間地点となり、異常発生確率が３０％超のときは第２自己位置とほぼ一致することが分かる。上記の説明から明らかなように、本実施例では、異常時推定部６０が第１自己位置推定処理を行うときは、第２自己位置と最終自己位置はほぼ一致している。なお、重み係数計算式の定数（５０、０．２）は上記の値に限られない。また、重み係数計算式はシグモイド関数に限られない。重み係数αの値を異常発生確率ｐの値に対してどのように対応付けるかによって、種々の関数を用いることができる。
【００４４】
次に、判定処理についてより詳細に説明する。移動体１０が、第２移動領域において第２環境地図には記録されていない障害物の付近を走行すると、ＬＲＦ１４で取得される観測情報と環境地図とのマッチング度が低くなる（観測情報が無用化する）ため、第１自己位置の推定精度が低下する。このため、異常発生確率ｐが高くなる。即ち、たとえパーティクル集合の中に真値が含まれていたとしても、移動体１０が真値に相当するパーティクルを適合パーティクルと見なすことができず、別のパーティクルを適合パーティクルと見なすことになる。実施例の移動体１０では、通常時推定部５９は、ＭＣＬの手法に則り、１ステップ前における第１自己位置を用いて現在のステップにおける第１自己位置を推定する。このため、移動体１０が第２環境地図には記録されていない障害物の付近を引き続き走行する場合は、通常時推定部５９により推定される第１自己位置は真値からますます離れていくことになり、最終的にはパーティクル集合に真値が含まれなくなる。一旦パーティクル集合に真値が含まれなくなると、この後でたとえ移動体１０が第２移動領域において障害物が配置されていない領域を走行するようになったとしても（即ち、有用な観測情報を取得できるようになったとしても）、ＭＣＬの手法では、真値が含まれる範囲にパーティクル集合を生成することが不可能になる。即ち、通常時推定部５９では、精度良く第１自己位置を推定することが不可能になる。
【００４５】
第１自己位置推定部２８の判定部５８は、異常発生確率ｐが８０％を超えると、通常時推定部５９ではなく異常時推定部６０で第１自己位置推定処理を実施させる。異常時推定部６０では、現在のステップにおいて第２自己位置推定部２９により推定された第２自己位置を含む所定の範囲内にパーティクル集合を生成する。当該所定の範囲内には、真値が含まれている。このため、移動体１０が異常時推定部６０が有用な観測情報を取得できれば、異常時推定部６０は、パーティクル集合の中の真値に相当するパーティクルを適合パーティクルと見なすことができ、現在のステップにおいて第１自己位置を精度良く推定できる。即ち、判定部５８が異常発生確率ｐに基づいて第１自己位置の推定手法を切替えることにより、第１自己位置推定部２８における第１自己位置の推定精度を再度向上させることができる。第１自己位置の推定精度が向上して現在のステップにおける異常発生確率ｐが８０％以下になると、判定部５８は、次のステップにおける第１自己位置推定処理を、異常時推定部６０から通常時推定部５９に切替える（後述）。
【００４６】
一方、移動体１０が第２環境地図には記録されていない障害物の付近を引き続き走行するなどして、異常時推定部６０が有用な観測情報を取得できない場合を考える。この場合、たとえ真値を含む範囲内にパーティクル集合が生成されても、異常時推定部６０は、真値に相当するパーティクルとは別のパーティクルを適合パーティクルと見なし、精度良く第１自己位置を推定できない可能性がある。これにより、異常発生確率ｐが依然として８０％を超える場合は、判定部５８は、次のステップにおいても、異常時推定部６０で第１自己位置推定処理を実施させる。
【００４７】
他方、異常発生確率ｐが８０％以下のときは、判定部５８は、通常時推定部５９で第１自己位置推定処理を実施させる。本願発明者らは、実験により、異常発生確率ｐが８０％以下の場合は、たとえ移動体１０が第２環境地図には記録されていない障害物の付近を走行していたとしても、真値がパーティクル集合の中に含まれることを確認した。このため、通常時推定部５９が有用な観測情報を取得できれば、通常時推定部５９は、パーティクル集合の中の真値に相当するパーティクルを適合パーティクルと見なすことができ、現在のステップにおいて第１自己位置を精度良く推定できる。この結果、現在のステップにおける異常発生確率ｐが８０％を超えることがなくなり、判定部５８は、次のステップにおいても通常時推定部５９で第１自己位置推定処理を実施させる。
【００４８】
一方、移動体１０が、第２環境地図には記録されていない障害物の付近を長時間走行するなどして、連続した複数のステップで有用な観測情報を取得できない場合を考える。この場合、通常時推定部５９の第１自己位置推定精度がステップを追うごとに低下していく。最終的に異常発生確率ｐが８０％を超えると、判定部５８は、第１自己位置推定を、通常時推定部５９での処理から異常時推定部６０での処理に切替える。これにより、上述したように、第１自己位置の推定精度を再度向上できる。
【００４９】
実施例の移動体１０の作用効果を説明する。この移動体１０では、最終自己位置推定部５４で移動体１０の最終自己位置を推定する際に用いられる重み係数αが、異常発生確率ｐの関数となっている。異常発生確率ｐを算出する異常発生確率計算式は、移動体１０が学習移動することで取得される学習データを、機械学習の一手法であるロジスティック回帰分析の手法を用いて解析することにより得られる式である。このため、重み係数αは、異常発生確率計算式以外の要因によって影響を受けることがない。従って、例えば移動領域が変更したり、移動体１０の管理者が変更したとしても、重み係数αの値を決定する基準が変動することがない。結果として、移動体１０の最終自己位置の推定精度を安定化することができる。
【００５０】
また、第２自己位置は、１つ前のステップにおける最終自己位置に、エンコーダ１２から取得される左右の車輪の回転角度を元に算出された１ステップ分の移動情報を加算することにより求められる。エンコーダ１２が検出する情報には、各車輪の滑り等により誤差が含まれる場合があるが、エンコーダ１２による検出距離が比較的に短い場合は、上記の誤差はほとんど無視できる。１ステップ分の移動距離は極めて短いため、１ステップ分の移動情報の精度は高い。また、第２自己位置は、第２環境地図を用いずに推定される。このため、移動体１０が、第２移動領域において第２環境地図に記録されていない障害物の付近を走行する場合であっても、このことに起因して第２自己位置の推定精度が低下することはない。従って、１ステップ前の最終自己位置の推定精度が高ければ、現在のステップにおける第２自己位置は高い推定精度を維持できる。
本実施例の移動体１０では、異常発生確率ｐが増加するにつれて第１自己位置の重み係数αが減少すると共に、第２自己位置の重み係数１−αが増加する。この構成によると、異常発生確率ｐが高いとき（即ち、第１自己位置の推定精度が低いとき）は、最終自己位置に占める第１自己位置の割合を減らすと共に、第２自己位置の割合を増やすことができる。上述したように、第２自己位置の推定精度は高い。このため、この構成によると、第１自己位置の推定精度が低下しても、最終自己位置の推定精度が低下することを抑制できる。また、重み係数計算式は連続した滑らかな関数であるため、重み係数αは異常発生確率ｐの推移に応じて滑らかに変動する。このため、最終自己位置は、第１自己位置と第２自己位置の間を連続的に推移可能な値となる。従って、最終自己位置の推定精度がさらに向上する。
【００５１】
また、従来の移動体では、一旦真値がパーティクル集合に含まれなくなると、それ以降のステップでは、ＭＣＬの手法から、別の手法（オドメトリ、ＧＰＳ等）に切替えるしかなかった。しかしながら、実施例の移動体１０では、真値がパーティクル集合に含まれなくなった場合は、真値が再度パーティクル集合に含まれるようにパーティクル集合の生成の仕方を変更する。このため、ＭＣＬの手法を用いた第１自己位置推定処理を再開して、第１自己位置の推定精度を再度向上させることができる。従って、第１自己位置の推定精度が低下することにより最終自己位置に占める第２自己位置の割合が極めて高くなった後でも、第１自己位置の推定精度を再度向上させることにより、最終自己位置に占める第１自己位置の割合を再度増やすことが可能になる。このように、第１自己位置推定部２８と第２自己位置推定部２９のそれぞれの機能をバランスよく活用することで、移動体１０がスタート地点から目的地に到達するまで、最終自己位置の推定精度を高く保つことができる。
【００５２】
なお、本願発明者らは、本明細書に開示される最終自己位置の推定手法を、従来のＭＣＬの手法と比較する実験を行った。実験では、２つの移動体に、上記の手法を用いた自己位置推定装置をそれぞれ搭載し、各移動体に、環境地図には記録されていない障害物が配置された移動領域を走行させた。走行後、各移動体について、スタート地点から目的地までのステップごとの位置誤差の平均値を計算した。実験の結果、本明細書に開示される手法では、従来の手法と比較して、位置誤差の平均値が約３０％減少した。このことから、移動体１０は、従来よりも安定した精度で最終自己位置を推定できることが分かった。
【００５３】
また、本実施例では、第１自己位置推定処理が通常時推定部５９での処理から異常時推定部６０での処理に切替えられると、パーティクル集合の生成の仕方が変更される。具体的には、パーティクル集合は、現在のステップにおける第２自己位置を含む所定の範囲に生成される。また、パーティクルの数は通常時推定部５９で用いられるパーティクルの数と略同じである。一方、従来の手法では、パーティクルを再散布する際は、移動領域の全体に大量のパーティクルを散布していた。このため、自己位置推定の精度が低く、処理に時間がかかっていた。本実施例では、真値の比較的近傍に位置する特定の位置（即ち、第２自己位置（本実施例では最終自己位置でもある））を基準としてパーティクル集合を生成する。これにより、パーティクルの数を増やさなくても、精度良く、且つ短時間で、第１自己位置を推定することができる。
【００５４】
また、本実施例では、学習データの元になる情報（即ち、自己位置推定結果や標準偏差σｘ等の変数）は、移動体１０に実際に第１移動領域４０を走行させることで取得する。このため、学習データには、移動体１０の第１自己位置推定性能が直接的に反映される。このように、実際に特定の領域を走行させて得られる情報を元に学習データを生成することにより、より精度の高い異常発生確率計算式を生成できる。
【００５５】
以上、本明細書が開示する技術の実施例について詳細に説明したが、これらは例示にすぎず、本明細書が開示する移動体は、上記の実施例を様々に変形、変更したものが含まれる。
【００５６】
例えば、第１自己位置推定部２８では、ＭＣＬの代わりに拡張カルマンフィルタを用いて第１自己位置推定処理を行ってもよい。この場合、推定誤差共分散行列から得られる値（例えば、分散値、誤差共分散行列の各要素の値、誤差楕円の長軸及び短軸等）を説明変数に用いて異常発生確率計算式を生成することができる。また、本走行時に得られるこれらの変数を異常発生確率計算式に入力することで、第１自己位置推定結果の正常／異常を精度良く判定することができる。
【００５７】
また、上記の実施例では、モータに設けられたエンコーダ１２を用いて移動情報を取得したが、移動情報を取得する手法はこれに限られない。例えば、カメラを用いたビジュアルオドメトリ又はレーザセンサを用いたレーザオドメトリを用いて移動情報を取得してもよい。
【００５８】
また、移動体１０は学習データ生成部３６を有していなくてもよく、学習データは移動体１０の外部で生成されてもよい。また、移動体１０は、学習データ記憶部３８を有していなくてもよい。即ち、学習データを元に異常発生確率計算式が生成されたら、学習データを消去する構成であってもよい。また、移動体１０は、異常発生確率計算式生成部４６を有していなくてもよく、異常発生確率計算式は移動体１０の外部で生成されてもよい。
【００５９】
また、異常発生確率計算式生成部４６では、多変量解析の代わりにサポートベクターマシーンを用いてもよい。サポートベクターマシーンは、パターン認識のモデリングにおいて公知の手法であり、クラスの帰属が未知の特徴ベクトルを入力すると、当該特徴ベクトルが帰属するクラスを２値で出力する識別関数を構成する手法である。識別関数は、クラスの帰属が既知の訓練用のサンプル集合から構成される。このため、実施例の学習データを訓練用のサンプル集合に用いて学習データをサポートベクターマシーンで学習することで、識別関数（異常発生確率計算式）を構成することができる。そして、当該識別関数に第１自己位置推定部２８から取得される３つの変数σｘ、σｙ、ｗｍａｘを入力することで、第１自己位置推定結果の正常／異常を判定することができる。この方法によっても、実施例と同様の作用効果を奏することができる。
【００６０】
また、異常発生確率計算式生成部４６では、多変量解析の代わりにニューラルネットワークを用いてもよい。ニューラルネットワークは、パターン認識のモデリングにおいて公知の手法であり、クラスの帰属が未知の変数を入力すると、当該変数が帰属するクラスを２値で出力する識別関数を構成する手法である。この手法では、教師あり学習と教師なし学習の２通りで識別関数を構成できる。教師あり学習では、学習例と、当該学習例に対する目標出力が与えられ、初期状態の関数に学習例を入力して得られる出力が目標出力と一致するように初期状態の関数の重みを調整することで、識別関数が構成される。このため、実施例の学習データの３つの変数σｘ、σｙ、ｗｍａｘを学習例とし、そのときの分類結果（正常／異常）を目標出力として、学習データをニューラルネットワークで学習することで、識別関数（異常発生確率計算式）を構成することができる。そして、当該識別関数に第１自己位置推定部２８から取得される３つの変数σｘ、σｙ、ｗｍａｘを入力することで、第１自己位置推定結果の正常／異常を判定することができる。この方法によっても、実施例と同様の作用効果を奏することができる。
【００６１】
また、学習データを解析する際は、ロジスティック回帰分析の代わりに判別分析を用いてもよい。
【００６２】
また、学習走行は、実際に移動体に特定の領域を走行させる代わりに、シミュレーションにより行ってもよい。
【００６３】
また、移動体１０は車輪駆動型でなくてもよく、例えば、二足歩行型でもよい。また、移動体１０はＬＲＦ１４を複数個有していてもよい。
【００６４】
また、真値計算部３２では、三角測量センサ１６及びリフレクタ４４を用いて移動体１０の真値を計算したが、真値を計算する方法はこれに限られない。例えば、モーションキャプチャや磁気レールの手法を用いて真値を計算してもよい。
【００６５】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６６】
１０：移動体、１２：エンコーダ、１４：レーザレンジファインダ（ＬＲＦ）、２６：環境地図記憶部、２８：第１自己位置推定部、２９：第２自己位置推定部、３６：学習データ生成部、３８：学習データ記憶部、４６：異常発生確率計算式生成部、４８：異常発生確率計算式記憶部、５０：異常発生確率計算部、５１：重み係数計算式記憶部、５２：重み係数計算部、５４：最終自己位置推定部、５６：最終自己位置記憶部、５８：判定部、５９：通常時推定部、６０：異常時推定部
【図１】
0006438354.tif 000006
【図２】
0006438354.tif 000007
【図３】
0006438354.tif 000008
【図４】
0006438354.tif 000009
【図５】
0006438354.tif 000010
【図６】
0006438354.tif 000011
【図７】
0006438354.tif 000012
【図８】
0006438354.tif 000013