(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】自己位置推定装置
(51)【国際特許分類】
G05D 1/02 20200101AFI20230801BHJP
【FI】
G05D1/02 J
(21)【出願番号】P 2020081405
(22)【出願日】2020-05-01
【審査請求日】2022-08-09
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100124062
【氏名又は名称】三上 敬史
(74)【代理人】
【識別番号】100148013
【氏名又は名称】中山 浩光
(72)【発明者】
【氏名】小田 和孝
(72)【発明者】
【氏名】井上 祐太
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】国際公開第2019/044500(WO,A1)
【文献】特開2011-209203(JP,A)
【文献】特開2019-220035(JP,A)
【文献】特開2020-9252(JP,A)
【文献】特開2018-13860(JP,A)
【文献】国際公開第2012/176249(WO,A1)
【文献】特開2019-215773(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
移動体の走行時に前記移動体の自己位置の推定を行う自己位置推定装置において、
前記移動体から前記移動体の周囲に存在する物体までの距離を検出する距離検出部と、
前記移動体の移動量を検出する移動量検出部と、
前記距離検出部の検出データと地図データとをマッチングさせて、前記移動体の自己位置を推定する自己位置推定部と、
前記移動量検出部により検出された前記移動体の移動量に基づいて、前記自己位置推定部により推定された前記移動体の自己位置を補間することで、前記移動体の自己位置推定値を取得する自己位置補間部と、
前記自己位置推定部により推定された前記移動体の最新自己位置が前記自己位置補間部により補間されることで取得された前記移動体の第1自己位置推定値と、前記移動体の前回自己位置が前記自己位置補間部により補間されることで取得された前記移動体の第2自己位置推定値との差分を自己位置ずれ量として算出する自己位置ずれ算出部と、
前記自己位置ずれ算出部により算出された自己位置ずれ量に基づいて、前記自己位置ずれ算出部において次回使用される前記前回自己位置を決定する前回自己位置決定部と、
前記自己位置推定部により前記移動体の自己位置の推定を開始する際の前記移動体の基準位置を設定入力する設定入力部と、
前記自己位置ずれ算出部により算出された自己位置ずれ量が予め決められた第1閾値以上であるときに、前記基準位置を再設定する基準位置再設定部とを備え、
前記自己位置推定部は、前記設定入力部により設定入力された前記基準位置に基づいて、前記移動体の自己位置の推定を開始すると共に、前記基準位置再設定部により前記基準位置が再設定されたときは、前記再設定された基準位置に基づいて、前記移動体の自己位置の推定を継続して行う自己位置推定装置。
【請求項2】
前記前回自己位置決定部は、前記自己位置ずれ量が予め決められた第2閾値以下であるときは、前記第1自己位置推定値を前記次回使用される前回自己位置として決定し、前記自己位置ずれ量が前記第2閾値よりも大きいときは、前記第2自己位置推定値を前記次回使用される前回自己位置として決定する請求項1記載の自己位置推定装置。
【請求項3】
前記第1閾値は、前記第2閾値よりも小さい請求項2記載の自己位置推定装置。
【請求項4】
前記基準位置再設定部は、前記自己位置ずれ量が前記第1閾値以上であるときに、前記基準位置を前記第2自己位置推定値または前記第2自己位置推定値に対応した位置に再設定する請求項1~3の何れか一項記載の自己位置推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自己位置推定装置に関する。
【背景技術】
【0002】
従来の自己位置推定装置としては、例えば特許文献1に記載されている技術が知られている。特許文献1に記載の自己位置推定装置は、自動搬送車の移動量を検出するエンコーダと、自動搬送車の周囲にレーザを照射し、壁や柱等で反射したレーザを受信することで、自動搬送車の周囲の環境情報を検出する外界センサと、自動搬送車の現在地及び目的地等の経路情報を入力する情報入力部と、エンコーダ及び外界センサの検出情報と情報入力部の入力情報とに基づいて、地図情報と環境情報とを参照するSLAM手法を用いて、自動搬送車を自律走行させるCPUとを備えている。CPUは、自動搬送車の移動量に基づき自動搬送車の第1仮想値を演算し、特定環境情報に基づき、パーティクルフィルタによって自動搬送車の複数の第2仮想値を演算し、第1仮想値及び各第2仮想値から確定値を決定し、その確定値に応じて自動搬送車を自律走行させる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術においては、以下の問題点が存在する。即ち、例えば移動体である自動搬送車の周囲の環境が変化することで、環境情報が地図情報と異なった状況になると、自動搬送車の自己位置の推定精度が低下する。その状態で、自動搬送車の走行を継続させると、自動搬送車の自己位置推定値のずれが累積されてしまう。
【0005】
本発明の目的は、移動体の自己位置推定値のずれの累積を抑制することができる自己位置推定装置を提供することである。
【課題を解決するための手段】
【0006】
本発明の一態様は、移動体の走行時に移動体の自己位置の推定を行う自己位置推定装置において、移動体から移動体の周囲に存在する物体までの距離を検出する距離検出部と、移動体の移動量を検出する移動量検出部と、距離検出部の検出データと地図データとをマッチングさせて、移動体の自己位置を推定する自己位置推定部と、移動量検出部により検出された移動体の移動量に基づいて、自己位置推定部により推定された移動体の自己位置を補間することで、移動体の自己位置推定値を取得する自己位置補間部と、自己位置推定部により推定された移動体の最新自己位置が自己位置補間部により補間されることで取得された移動体の第1自己位置推定値と、移動体の前回自己位置が自己位置補間部により補間されることで取得された移動体の第2自己位置推定値との差分を自己位置ずれ量として算出する自己位置ずれ算出部と、自己位置ずれ算出部により算出された自己位置ずれ量に基づいて、自己位置ずれ算出部において次回使用される前回自己位置を決定する前回自己位置決定部と、自己位置推定部により移動体の自己位置の推定を開始する際の移動体の基準位置を設定入力する設定入力部と、自己位置ずれ算出部により算出された自己位置ずれ量が予め決められた第1閾値以上であるときに、基準位置を再設定する基準位置再設定部とを備え、自己位置推定部は、設定入力部により設定入力された基準位置に基づいて、移動体の自己位置の推定を開始すると共に、基準位置再設定部により基準位置が再設定されたときは、再設定された基準位置に基づいて、移動体の自己位置の推定を継続して行う。
【0007】
このような自己位置推定装置においては、距離検出部によって移動体から移動体の周囲に存在する物体までの距離が検出され、その検出データと地図データとのマッチングにより移動体の自己位置が推定される。また、移動量検出部によって移動体の移動量が検出され、その移動体の移動量に基づいて移動体の自己位置が補間されることで、移動体の自己位置推定値が取得される。そして、移動体の最新自己位置が補間されることで取得された移動体の第1自己位置推定値と、移動体の前回自己位置が補間されることで取得された移動体の第2自己位置推定値との差分が自己位置ずれ量として算出される。そして、自己位置ずれ量に基づいて、次回使用される前回自己位置が決定される。ここで、移動体の自己位置の推定は、設定入力部により設定入力された基準位置に基づいて開始される。移動体の自己位置の推定が開始された後は、上記の自己位置ずれ量が第1閾値以上になると、基準位置が再設定される。そして、再設定された基準位置に基づいて、移動体の自己位置の推定が継続して行われる。このため、検出データと地図データとのマッチングによる移動体の自己位置の推定精度が低下しやすい状況になっても、移動体の自己位置推定値が正しい位置に近づきやすくなる。これにより、移動体の自己位置推定値のずれの累積が抑制される。
【0008】
前回自己位置決定部は、自己位置ずれ量が予め決められた第2閾値以下であるときは、第1自己位置推定値を次回使用される前回自己位置として決定し、自己位置ずれ量が第2閾値よりも大きいときは、第2自己位置推定値を次回使用される前回自己位置として決定してもよい。このような構成では、第1自己位置推定値と第2自己位置推定値との誤差に関わらず、適切な前回自己位置が得られる。従って、移動体の自己位置推定値のずれの累積が更に抑制される。
【0009】
第1閾値は、第2閾値よりも小さくてもよい。このような構成では、第1自己位置推定値と第2自己位置推定値との誤差が増加すると、早い段階で基準位置が再設定されることになる。従って、移動体の自己位置の推定ずれの累積が一層抑制される。
【0010】
基準位置再設定部は、自己位置ずれ量が第1閾値以上であるときに、基準位置を第2自己位置推定値または第2自己位置推定値に対応した位置に再設定してもよい。このような構成では、移動体の前回自己位置が補間されることで取得された第2自己位置推定値または第2自己位置推定値に対応した位置が基準位置として使用されるため、適切な基準位置が容易に得られる。
【発明の効果】
【0011】
本発明によれば、移動体の自己位置推定値のずれの累積を抑制することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態に係る自己位置推定装置を備えた走行制御装置の構成を概略的に示すブロック図である。
【
図2】第1自己位置推定値及び第2自己位置推定値を示す概念図である。
【
図3】
図1に示された前回自己位置決定部により実行される決定処理の手順を示すフローチャートである。
【
図4】
図3に示された決定処理において使用される閾値Aを第1自己位置推定値及び第2自己位置推定値と共に示す概念図である。
【
図5】
図1に示された基準位置再設定部により実行される再設定処理の手順を示すフローチャートである。
【
図6】
図5に示された再設定処理において使用される閾値Bを閾値A、第1自己位置推定値及び第2自己位置推定値と共に示す概念図である。
【
図7】
図1に示された自己位置推定部により実行される自己位置推定処理の手順の詳細を示すフローチャートである。
【
図8】自己位置の推定精度が低下していない状態と自己位置の推定精度が低下した状態とで、時間経過に従って前回自己位置が決定される様子を第1自己位置推定値、第2自己位置推定値及び真値と共に示す概念図である。
【
図9】自己位置の推定精度が低下した状態において移動体の基準位置が再設定されるときに、時間経過に従って前回自己位置が決定される様子を第1自己位置推定値、第2自己位置推定値及び真値と共に示す概念図である。
【
図10】
図3に示された決定処理の手順の変形例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0014】
図1は、本発明の一実施形態に係る自己位置推定装置を備えた走行制御装置の構成を概略的に示すブロック図である。
図1において、走行制御装置1は、例えばフォークリフト等の移動体2(
図2参照)を目的地まで自動的に走行させる装置である。走行制御装置1は、移動体2に搭載されている。
【0015】
走行制御装置1は、レーザセンサ3と、オドメトリセンサ4と、入力器5と、駆動部6と、コントローラ7とを備えている。
【0016】
レーザセンサ3は、レーザ光を用いて、移動体2から移動体2の周囲に存在する物体までの距離を検出する距離検出部である。レーザセンサ3は、移動体2の周囲にレーザ光を照射し、そのレーザ光の反射光を受光することにより、移動体2の周囲に存在する物体までの距離を検出する。物体は、壁や柱等であり、地図データ(後述)に登録されている。レーザセンサ3としては、例えばレーザレンジファインダが使用される。レーザセンサ3から照射されるレーザ光としては、2Dレーザでもよいし、3Dレーザでもよい。
【0017】
オドメトリセンサ4は、移動体2の移動量を検出する移動量検出部である。オドメトリセンサ4としては、例えば移動体2の車輪の回転角度を計測することにより、移動体2の移動量を検出するエンコーダ等が使用される。
【0018】
入力器5は、ユーザが移動体2の基準位置を含む各種情報を入力するための機器である。ここでの基準位置は、後述する自己位置推定部10により移動体2の自己位置の推定を開始する際の移動体2の初期位置である。基準位置は、2次元座標(XY座標)及び向きで表される。ユーザは、入力器5によって基準位置の2次元座標及び向きを直接入力する。入力器5は、移動体2の基準位置を設定入力する設定入力部を構成している。
【0019】
駆動部6は、特に図示はしないが、移動体2の車輪を回転させる走行モータと、移動体2の車輪を転舵させる操舵モータとを有している。
【0020】
コントローラ7は、CPU、RAM、ROM及び入出力インターフェース等により構成されている。コントローラ7は、自己位置推定部10と、自己位置補間部11と、自己位置ずれ算出部12と、前回自己位置決定部13と、基準位置再設定部14と、駆動制御部15とを有している。
【0021】
ここで、レーザセンサ3、オドメトリセンサ4、入力器5、自己位置推定部10、自己位置補間部11、自己位置ずれ算出部12、前回自己位置決定部13及び基準位置再設定部14は、本実施形態の自己位置推定装置16を構成している。自己位置推定装置16は、移動体2の走行時に移動体2の自己位置の推定を行う装置である。
【0022】
自己位置推定部10は、レーザセンサ3の検出データと移動体2の周囲環境の地図データとを用いて、移動体2の自己位置を推定する。自己位置推定部10は、レーザSLAM(simultaneous localization andmapping)手法を用いて、移動体2の自己位置を推定する。SLAMは、センサデータ及び地図データを使って自己位置推定を行う自己位置推定技術である。SLAMは、センサデータを利用して、自己位置推定と環境地図の作成とを同時に行う。
【0023】
具体的には、自己位置推定部10は、レーザセンサ3の検出データと移動体2の周囲環境の地図データとをマッチングさせて、移動体2の自己位置の推定演算を行う。このとき、自己位置推定部10は、入力器5により設定入力された初期位置(基準位置)に基づいて、移動体2の自己位置の推定を開始する。なお、移動体2の自己位置は、2次元座標及び向きで表される。
【0024】
自己位置推定部10による移動体2の自己位置の推定演算には時間がかかるため、移動体2の自己位置の推定演算が行われている間にも移動体2が移動してしまう。従って、自己位置推定部10により移動体2の自己位置の推定演算が行われている間に移動体2が進んだ距離を補間する必要がある。
【0025】
自己位置補間部11は、オドメトリセンサ4により検出された移動体2の移動量に基づいて、自己位置推定部10により推定された移動体2の自己位置を補間することで、移動体2の自己位置推定値を取得する。具体的には、自己位置補間部11は、自己位置推定部10により推定された移動体2の自己位置に、オドメトリセンサ4により検出された移動体2の移動量を加算することにより、移動体2の自己位置を補間する(下記の(A)式及び(B)式参照)。
【0026】
自己位置ずれ算出部12は、移動体2の第1自己位置推定値と移動体2の第2自己位置推定値との差分を自己位置ずれ量として算出する。
【0027】
第1自己位置推定値は、自己位置推定部10により直近に推定された移動体2の最新自己位置が自己位置補間部11により補間されることで取得された自己位置推定値である。具体的には、第1自己位置推定値は、移動体2の最新自己位置の推定演算が行われている間に移動体2が進んだ移動量だけ移動体2の最新自己位置が補間されることで取得される。
【0028】
第2自己位置推定値は、移動体2の前回自己位置が自己位置補間部11により補間されることで取得された自己位置推定値である。前回自己位置は、自己位置推定部10により直近以前に推定された移動体2の自己位置が自己位置補間部11により補間されることで取得される。具体的には、第2自己位置推定値は、移動体2の前回自己位置の推定演算が行われたときから移動体2の最新自己位置の推定演算が行われている間に移動体2が進んだ移動量だけ移動体2の前回自己位置が補間されることで取得される。
【0029】
例えば
図2に示されるように、時刻t1において自己位置推定部10により今周期(直近)に推定された移動体2の最新自己位置をx
1とし、オドメトリセンサ4により検出された移動体2の移動量をΔx
12とすると、時刻t2における第1自己位置推定値x
2aは下記式で表される。
x
2a=x
1+Δx
12 …(A)
【0030】
一方、時刻t0における移動体2の前回自己位置をx0とし、オドメトリセンサに4より検出された移動体2の移動量をΔx02とすると、時刻t2における第2自己位置推定値x2bは下記式で表される。なお、前回自己位置x0は、自己位置推定部10により前周期(直近以前)に推定された移動体2の自己位置が自己位置補間部11により補間されることで取得された自己位置である。
x2b=x0+Δx02 …(B)
【0031】
そして、自己位置ずれ量dは、下記式の絶対値で表される。
d=x2a-x2b …(C)
【0032】
前回自己位置決定部13は、自己位置ずれ算出部12により算出された自己位置ずれ量dに基づいて、自己位置ずれ算出部12において次回使用される前回自己位置を決定する。
【0033】
図3は、前回自己位置決定部13により実行される決定処理の手順を示すフローチャートである。
図3において、前回自己位置決定部13は、まず自己位置ずれ算出部12により算出された自己位置ずれ量dを取得する(手順S101)。
【0034】
続いて、前回自己位置決定部13は、自己位置ずれ量dが閾値A以下であるかどうかを判断する(手順S102)。閾値Aは、予め決められた第2閾値である。
【0035】
前回自己位置決定部13は、自己位置ずれ量dが閾値A以下であると判断したときは、第1自己位置推定値を前回自己位置に決定する(手順S103)。従って、
図4(a)に示されるように、第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値A以下であるときは、第1自己位置推定値Pが妥当であると判定され、前回自己位置が第1自己位置推定値Pに更新される。
【0036】
前回自己位置決定部13は、自己位置ずれ量dが閾値Aよりも大きいと判断したときは、第2自己位置推定値を前回自己位置に決定する(手順S104)。従って、
図4(b)に示されるように、第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値Aよりも大きいときは、第1自己位置推定値Pが妥当でないと判定される。このため、前回自己位置は、更新されずに第2自己位置推定値Qのままとなる。
【0037】
基準位置再設定部14は、自己位置ずれ算出部12により算出された自己位置ずれ量dが閾値B以上であるときに、移動体2の基準位置を再設定する。つまり、基準位置再設定部14は、自己位置推定部10による移動体2の自己位置の推定処理をリセットする。
【0038】
図5は、基準位置再設定部14により実行される再設定処理の手順を示すフローチャートである。
図5において、基準位置再設定部14は、まず自己位置ずれ算出部12により算出された自己位置ずれ量dを取得する(手順S111)。
【0039】
続いて、基準位置再設定部14は、自己位置ずれ量dが閾値B以上であるかどうかを判断する(手順S112)。閾値Bは、予め決められた第1閾値である。閾値Bは、
図6に示されるように、閾値Aよりも小さい値である。
【0040】
基準位置再設定部14は、自己位置ずれ量dが閾値B以上であると判断したときは、移動体2の基準位置を第2自己位置推定値に再設定する(手順S113)。基準位置再設定部14は、自己位置ずれ量dが閾値Bよりも小さいと判断したときは、手順S113を実行しない。
【0041】
従って、
図6(a)に示されるように、第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値Bよりも小さいときは、基準位置の再設定処理は実施されない。一方、
図6(b)に示されるように、第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値B以上であるときは、基準位置の再設定処理が実施される。
【0042】
駆動制御部15は、自己位置補間部11により得られた補間後の移動体2の自己位置に基づいて、移動体2を目的地に向けて走行させるように駆動部6を制御する。
【0043】
上記の自己位置推定部10は、入力器5により設定入力された基準位置に基づいて、移動体2の自己位置の推定を開始すると共に、基準位置再設定部14により基準位置が再設定されたときは、再設定された基準位置に基づいて、移動体2の自己位置の推定を継続して行う。
【0044】
図7は、自己位置推定部10により実行される自己位置推定処理の手順の詳細を示すフローチャートである。
図7において、自己位置推定部10は、まず入力器5により移動体2の初期位置(基準位置)が設定入力されたかどうかを判断する(手順S121)。
【0045】
自己位置推定部10は、入力器5により移動体2の初期位置が設定入力されたと判断したときは、初期位置に基づいて、上述した移動体2の自己位置の推定演算を開始する(手順S122)。
【0046】
続いて、自己位置推定部10は、基準位置再設定部14により移動体2の基準位置が再設定されたかどうかを判断する(手順S123)。自己位置推定部10は、基準位置再設定部14により基準位置が再設定されたと判断したときは、再設定された新しい基準位置に基づいて、上述した移動体2の自己位置の推定を継続して行う(手順S124)。そして、自己位置推定部10は、手順S123を再度実行する。
【0047】
自己位置推定部10は、基準位置再設定部14により基準位置が再設定されていないと判断したときは、再設定されていない現在の基準位置に基づいて、上述した移動体2の自己位置の推定を継続して行う(手順S125)。そして、自己位置推定部10は、手順S123を再度実行する。
【0048】
以上のような自己位置推定装置16において、
図8(a)に示されるように、時刻t0で得られた第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値A以下であるときは、第1自己位置推定値Pが次周期(t1)で使用される基準位置として採用される。そして、時刻t1で得られた第1自己位置推定値Pと第2自己位置推定値Qとの自己位置ずれ量dも閾値A以下であるときは、第1自己位置推定値Pが次周期(t2)で使用される基準位置として採用される。なお、
図8中の菱形印は、実際の移動体2の自己位置である真値Rを表している。ただし、コントローラ7による処理では、真値Rは不明である。
【0049】
しかし、例えば移動体2の周囲の環境が変化することで、移動体2の周囲の環境が地図データと異なった状況になると、移動体2の自己位置の推定精度が悪くなる。この場合には、第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが累積されるため、不適切な基準位置が採用されることがある。
【0050】
例えば
図8(b)に示されるように、時刻t1で得られた第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値A以下であるために、第1自己位置推定値Pが次周期(t2)で使用される基準位置として採用されても、時刻t2で得られた第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値Aよりも大きくなることがある。この場合には、真値Rに近い第1自己位置推定値Pが得られているにも関わらず、第1自己位置推定値Pが基準位置として採用されない。このように自己位置ずれ量dが累積すると、移動体2の自己位置推定値を正しい位置に戻すことができなくなる。
【0051】
しかし、本実施形態では、
図9に示されるように、時刻t0で得られた第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値B以上であるときは、移動体2の基準位置が第2自己位置推定値Qに再設定される。そして、再設定された基準位置に基づいて、移動体2の自己位置の推定が継続して実施される。
【0052】
すると、時刻t1において、真値Rに近い第1自己位置推定値Pが得られ、第1自己位置推定値Pと第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値Bよりも小さくなる。そして、時刻t2においても、真値Rに更に近い第1自己位置推定値Pが得られ、第1自己位置推定値Pと第2自己位置推定値Qとの自己位置ずれ量dが閾値Bよりも小さくなる。これにより、移動体2の周囲環境の変化等によって移動体2の自己位置の推定精度が悪くなっても、移動体2の自己位置推定値を正しい位置に戻すことができる。
【0053】
以上のように本実施形態によれば、レーザセンサ3によって移動体2から移動体2の周囲に存在する物体までの距離が検出され、その検出データと地図データとのマッチングにより移動体2の自己位置が推定される。また、オドメトリセンサ4によって移動体2の移動量が検出され、その移動体の移動量に基づいて移動体2の自己位置が補間されることで、移動体2の自己位置推定値が取得される。そして、移動体2の最新自己位置が補間されることで取得された移動体2の第1自己位置推定値と、移動体2の前回自己位置が補間されることで取得された移動体2の第2自己位置推定値との差分が自己位置ずれ量として算出される。そして、自己位置ずれ量に基づいて、次回使用される前回自己位置が決定される。ここで、移動体2の自己位置の推定は、入力器5により設定入力された基準位置に基づいて開始される。移動体2の自己位置の推定が開始された後は、上記の自己位置ずれ量が閾値B以下になると、基準位置が再設定される。そして、再設定された基準位置に基づいて、移動体2の自己位置の推定が継続して行われる。このため、検出データと地図データとのマッチングによる移動体2の自己位置の推定精度が低下しやすい状況になっても、移動体2の自己位置推定値が正しい位置に近づきやすくなる。これにより、移動体2の自己位置推定値のずれの累積が抑制される。その結果、移動体2の自己位置の推定精度が良い状態で、移動体2の走行を継続させることができる。
【0054】
また、本実施形態では、自己位置ずれ量が閾値A以下であるときは、第1自己位置推定値が次回使用される前回自己位置として決定され、自己位置ずれ量が閾値Aよりも大きいときは、第2自己位置推定値が次回使用される前回自己位置として決定される。このため、第1自己位置推定値と第2自己位置推定値との誤差に関わらず、適切な前回自己位置が得られる。従って、移動体2の自己位置推定値のずれの累積が更に抑制される。
【0055】
また、本実施形態では、閾値Bは閾値Aよりも小さいので、第1自己位置推定値と第2自己位置推定値との誤差が増加すると、早い段階で基準位置が再設定されることになる。従って、移動体2の自己位置の推定ずれの累積が一層抑制される。
【0056】
また、本実施形態では、自己位置ずれ量が閾値B以上であるときに、基準位置が第2自己位置推定値に再設定される。このように移動体2の前回自己位置が補間されることで取得された第2自己位置推定値が基準位置として使用されるため、適切な基準位置が容易に得られる。
【0057】
なお、本発明は、上記実施形態には限定されない。例えば上記実施形態では、閾値Bは閾値Aよりも小さいが、特にその形態には限られず、閾値Bは閾値Aと等しくてもよいし、或いは閾値Bは閾値Aよりも大きくてもよい。
【0058】
また、上記実施形態では、入力器5により移動体2の初期位置(基準位置)が設定入力されているが、特にそのような形態には限られない。例えば、コントローラ7は、移動体2の初期位置と関連付けられた番号等の特定情報を記憶する記憶部と、入力器5により入力された特定情報に応じた初期位置を記憶部から読み出して設定する設定部とを有していてもよい。この場合には、入力器5、記憶部及び設定部が、上記の設定入力部を構成する。
【0059】
また、上記実施形態では、移動体2の第1自己位置推定値Pと移動体2の第2自己位置推定値Qとの差分である自己位置ずれ量dが閾値A以下であるときは、第1自己位置推定値Pが前回自己位置に決定され、自己位置ずれ量dが閾値Aよりも大きいときは、第2自己位置推定値Qが前回自己位置に決定されているが、その処理に加えて、移動体2の自己位置推定の信頼度に応じて前回自己位置を決定してもよい。
【0060】
図10は、
図3に示された決定処理の手順の変形例を示すフローチャートである。
図10において、前回自己位置決定部13は、上記の手順S101を実行した後、自己位置推定部10による移動体2の自己位置推定の信頼度が高いかどうかを判断する(手順S107)。
【0061】
このとき、前回自己位置決定部13は、例えばレーザセンサ3の検出データに基づいて移動体2の複数の自己位置候補点の分散値を算出する。そして、前回自己位置決定部13は、複数の自己位置候補点の分散値が予め決められた閾値以上であるときは、移動体2の自己位置精度が高いと判定し、複数の自己位置候補点の分散値が閾値以上よりも低いときは、移動体2の自己位置精度が低いと判定する。
【0062】
前回自己位置決定部13は、移動体2の自己位置推定の信頼度が高いと判断したときは、上記の手順S102を実行する。このため、移動体2の自己位置推定の信頼度が高い場合に、自己位置ずれ量dが閾値A以下であるときは、第1自己位置推定値が前回自己位置に決定される。前回自己位置決定部13は、移動体2の自己位置推定の信頼度が低いと判断したときは、上記の手順S104を実行する。このため、移動体2の自己位置推定の信頼度が低いときは、自己位置ずれ量dに関わらず、第2自己位置推定値が前回自己位置に決定される。
【0063】
また、上記実施形態では、レーザセンサ3の検出データと地図データとをマッチングさせて、移動体2の自己位置の推定演算を行っているが、そのようなレーザセンサ3の検出データと地図データとのマッチングに加えて、オドメトリセンサ4により検出された移動体2の移動量に基づいて、例えばパーティクルフィルタと呼ばれる時系列データの予測手法を用いて、移動体2の自己位置を確率的に推定してもよい。パーティクルフィルタでは、現状態から起こりうる多数の次状態を多数のパーティクルで表現し、全パーティクルの尤度(追跡したい対象物らしさ)に従って算出された重みつき平均を次状態であると推測して追跡を行う。
【0064】
また、上記実施形態では、基準位置再設定部14において、基準位置が第2自己位置推定値に再設定されているが、特にその形態には限られず、基準位置を第2自己位置推定値に対応した位置に再設定してもよい。例えば、上記のパーティクルフィルタを用いて移動体2の自己位置を推定する場合には、第2自己位置推定値を基準としてパーティクルの数を変更して移動体2の自己位置を再計算し、その計算結果を基準位置として再設定してもよい。
【0065】
また、上記実施形態では、オドメトリセンサ4により移動体2の移動量が検出されているが、特にオドメトリセンサ4には限られず、移動体2の角速度及び加速度を計測する慣性計測ユニットを使用し、慣性計測ユニットの計測値を用いて移動体2の移動量を検出してもよい。
【0066】
また、上記実施形態では、レーザセンサ3の検出データを使用したレーザSLAMによって、移動体2の自己位置が推定されているが、特にレーザSLAMには限られず、例えば移動体2の周囲を撮像するカメラの画像データを使用した画像SLAMによって、移動体2の自己位置を推定してもよい。
【符号の説明】
【0067】
2…移動体、3…レーザセンサ(距離検出部)、4…オドメトリセンサ(移動量検出部)、5…入力器(設定入力部)、10…自己位置推定部、11…自己位置補間部、12…自己位置ずれ算出部、13…前回自己位置決定部、14…基準位置再設定部、16…自己位置推定装置、A…閾値(第2閾値)、B…閾値(第1閾値)、P…第1自己位置推定値、Q…第2自己位置推定値。