(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-11
(45)【発行日】2023-09-20
(54)【発明の名称】自己位置推定装置、及び自己位置推定方法
(51)【国際特許分類】
G05D 1/02 20200101AFI20230912BHJP
【FI】
G05D1/02 J
(21)【出願番号】P 2020006113
(22)【出願日】2020-01-17
【審査請求日】2022-04-15
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100124062
【氏名又は名称】三上 敬史
(74)【代理人】
【識別番号】100148013
【氏名又は名称】中山 浩光
(74)【代理人】
【識別番号】100162640
【氏名又は名称】柳 康樹
(72)【発明者】
【氏名】鈴木 啓輔
【審査官】影山 直洋
(56)【参考文献】
【文献】特開2015-170127(JP,A)
【文献】特開2019-215773(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
移動体の自己位置を推定する自己位置推定装置において、
前記移動体の周囲の検出範囲における環境の状態を検出する検出部と、
前記検出部による検出結果、及び予め取得された地図データに基づいて、前記移動体の自己位置を推定する自己位置推定部と、を備え、
前記自己位置推定部は、
前記検出結果及び前記地図データに基づく第1の自己位置推定に失敗したと判定した場合、前記移動体の走行情報に基づく第2の自己位置推定を行い、
前記第2の自己位置推定に基づいて前記移動体が所定の距離を走行しても、前記第1の自己位置推定に失敗したと判定した場合、前記検出部の前記検出範囲を走行時からずらした前記検出結果に基づいて前記第1の自己位置推定を行
い、
前記自己位置推定部は、前記移動体の旋回に伴って前記検出範囲をずらすように制御し、
前記自己位置推定部は、前記検出範囲をずらすことで前記第1の自己位置推定が成功した場合、前記第1の自己位置推定の推定結果で前記移動体の自己位置を補正し、前記検出範囲が進行方向を向くようにその場で旋回を行うように制御し、
前記自己位置推定部は、前記第2の自己位置推定に基づいて走行を行うと共に第1の自己位置推定による自己位置の推定が可能か判断を行う、自己位置推定装置。
【請求項2】
前記自己位置推定部は、前記検出範囲をずらしている途中で前記第1の自己位置推定を行い、前記第1の自己位置推定が成功した時点で、前記検出範囲をずらすことを停止する、
請求項1に記載の自己位置推定装置。
【請求項3】
前記自己位置推定部は、前記検出範囲が前記移動体の周囲を360°回転しても前記第1の自己位置推定が成功しない場合、前記移動体の停止を行う、
請求項1又は2に記載の自己位置推定装置。
【請求項4】
移動体の自己位置を推定する自己位置推定方法において、
前記移動体の周囲の検出範囲における環境の状態を検出する検出ステップと、
前記検出ステップによる検出結果、及び予め取得された地図データに基づいて、前記移動体の自己位置を推定する自己位置推定ステップと、を備え、
前記自己位置推定ステップは、
前記検出結果及び前記地図データに基づく第1の自己位置推定に失敗したと判定した場合、前記移動体の走行情報に基づく第2の自己位置推定を行う第1のステップと、
前記第2の自己位置推定に基づいて前記移動体が所定の距離を走行しても、前記第1の自己位置推定に失敗したと判定した場合、前記検出ステップでの前記検出範囲を走行時からずらした前記検出結果に基づいて前記第1の自己位置推定を行う第2のステップと、を有
し、
前記自己位置推定ステップにおいて、前記移動体の旋回に伴って前記検出範囲をずらすように制御し、
前記自己位置推定ステップにおいて、前記検出範囲をずらすことで前記第1の自己位置推定が成功した場合、前記第1の自己位置推定の推定結果で前記移動体の自己位置を補正し、前記検出範囲が進行方向を向くようにその場で旋回を行うように制御し、
前記自己位置推定ステップにおいて、前記第2の自己位置推定に基づいて走行を行うと共に第1の自己位置推定による自己位置の推定が可能か判断を行う、自己位置推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自己位置推定装置、及び自己位置推定方法に関する。
【背景技術】
【0002】
移動体の自己位置を推定する自己位置推定装置として、例えば特許文献1に記載されているような技術が知られている。特許文献1に記載の自己位置推定装置は、移動体の前側に設けられたセンサを用いて周囲の環境を検出し、当該検出結果と地図データとを比較することで自己位置を推定している。自己位置推定装置は、上述のような自己位置推定を行いながら、当該自己位置に基づき、予め設定した走行経路上を移動体が走行するように制御を行っている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、移動体が走行する経路の周囲の環境は、必ずしも一定ではない。従って、地図データ作成時と、自己位置推定装置による自己位置推定時とで、移動体の周囲の環境が変化する場合がある。上述の自己位置推定装置は、移動体の前方の環境のみを検出しているため、当該移動体の前方の環境が変化した場合、自己位置推定に失敗してしまう場合がある。これに対し、移動体に多数の検出部を設けることで、移動体の周囲の検出範囲を拡大し、検出結果と地図データとのマッチング度を向上させる方法が挙げられる。しかし、当該方法は、必要な検出部の数が増加してしまうという問題を有する。その他、検出結果及び地図データに基づく自己位置推定に失敗した場合に、エンコーダや慣性センサなどで取得される走行情報に基づく自己位置推定(デッドレコニング)の結果を用いて移動体を自律走行させる方法が挙げられる。しかしながら、当該自己位置推定方法は、周囲の環境を考慮しない方法であるため、長距離の自律走行を行うと、自己位置の誤差が大きくなってしまう。その結果、自己位置推定装置の自己位置推定の性能が低下してしまうという問題が生じる。
【0005】
本発明の目的は、検出部の数を抑制しつつ、自己位置推定の性能を向上できる自己位置推定装置、及び自己位置推定方法を提供することである。
【課題を解決するための手段】
【0006】
本発明の一態様に係る自己位置推定装置は、移動体の自己位置を推定する自己位置推定装置において、移動体の周囲の検出範囲における環境の状態を検出する検出部と、検出部による検出結果、及び予め取得された地図データに基づいて、移動体の自己位置を推定する自己位置推定部と、を備え、自己位置推定部は、検出結果及び地図データに基づく第1の自己位置推定に失敗したと判定した場合、移動体の走行情報に基づく第2の自己位置推定を行い、第2の自己位置推定に基づいて移動体が所定の距離を走行しても、第1の自己位置推定に失敗したと判定した場合、検出部の検出範囲を走行時からずらした前記検出結果に基づいて前記第1の自己位置推定を行う。
【0007】
このような自己位置推定装置においては、自己位置推定部は、移動体の周囲の環境の状態の検出結果、及び予め取得された地図データに基づいて、移動体の自己位置を推定する。従って、環境が変化することで、検出範囲の環境の状態が、地図データを取得したときと異なる場合がある。従って、自己位置推定部は、検出結果及び地図データに基づく第1の自己位置推定に失敗する場合がある。これに対し、自己位置推定部は、検出結果及び地図データに基づく第1の自己位置推定に失敗したと判定した場合、移動体の走行情報に基づく第2の自己位置推定を行う。これにより、移動体は、第1の自己位置推定を行えない状態でも、第2の自己位置推定に基づく自律走行を行うことができる。これにより、移動体が第1の自己位置推定が可能な位置まで到達することができれば、移動体は、精度の良い第1の自己位置推定に基づく自律走行に復帰することができる。一方、移動体が第2の自己位置推定に基づく自律走行を行っても、第1の自己位置推定が可能な位置まで到達できない状況もある。当該状況に対し、自己位置推定部は、第2の自己位置推定に基づいて移動体が所定の距離を走行しても、第1の自己位置推定に失敗したと判定した場合、検出部の検出範囲を走行時からずらした検出結果に基づいて第1の自己位置推定を行う。検出範囲を走行時からずらすことで、検出部の数を増やさなくとも、検出部が移動体の周囲の環境を広範囲にわたって検出することが可能となる。当該タイミングで自己位置推定部が第1の自己位置推定に成功した場合、第2の自己位置推定に基づく自律走行によって蓄積された自己位置の誤差を解消することができる。その結果、自己位置推定部は自己位置推定の精度の低下を抑制しつつ、第2の自己位置推定による自律走行の距離を伸ばすことができる。すなわち、自己位置推定装置は、第1の自己位置推定が可能な位置まで、移動体2が到達できる可能性を高めることができる。以上より、検出部の数を抑制しつつ、自己位置推定の性能を向上できる。
【0008】
自己位置推定部は、移動体の旋回に伴って検出範囲をずらすように制御してよい。この場合、検出範囲をずらすための特別な回転機構などを追加することを不要とすることができる。
【0009】
自己位置推定部は、検出範囲をずらしている途中で第1の自己位置推定を行い、第1の自己位置推定が成功した時点で、検出範囲をずらすことを停止してよい。この場合、検出範囲を360°回転させるまで待たずに、移動体が速やかに自律走行に復帰することができる。
【0010】
自己位置推定部は、検出範囲が移動体の周囲を360°回転しても第1の自己位置推定が成功しない場合、移動体の停止を行ってよい。このように、検出部が移動体の周囲の環境を全周にわたって検出しても、自己位置推定部が第1の自己位置推定を行えない場合、異常停止することで、当該状況に対する処置を行うことができる。
【0011】
本発明の一態様に係る自己位置推定方法は、移動体の自己位置を推定する自己位置推定方法において、移動体の周囲の検出範囲における環境の状態を検出する検出ステップと、検出ステップによる検出結果、及び予め取得された地図データに基づいて、移動体の自己位置を推定する自己位置推定ステップと、を備え、自己位置推定ステップは、検出結果及び地図データに基づく第1の自己位置推定に失敗したと判定した場合、移動体の走行情報に基づく第2の自己位置推定を行う第1のステップと、第2の自己位置推定に基づいて移動体が所定の距離を走行しても、第1の自己位置推定に失敗したと判定した場合、検出ステップでの検出範囲を走行時からずらした検出結果に基づいて第1の自己位置推定を行う第2のステップと、を有する。
【0012】
このような自己位置推定方法によれば、上述の自己位置推定装置と同趣旨の作用・効果を得ることができる。
【発明の効果】
【0013】
本発明によれば、検出部の数を抑制しつつ、自己位置推定の性能を向上できる自己位置推定装置、及び自己位置推定方法を提供することができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の一実施形態に係る自己位置推定装置を備える走行制御装置を示す概略構成図である。
【
図2】レーザセンサの移動体における取付位置を示す概略図である。
【
図3】自己位置推定部による処理内容を示すフローチャートである。
【
図6】比較例に係る自己位置推定装置を備える移動体の挙動を示す概念図である。
【
図7】変形例に係る自己位置推定装置を備える移動体を示す概略図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0016】
図1は、本発明の一実施形態に係る自己位置推定装置100を備える走行制御装置1を示す概略構成図である。走行制御装置1は、移動体2を自動的に走行させる装置である。
図2は、レーザセンサ3の移動体2における取付位置を示す概略図である。移動体2は、例えばフォークリフト、無人搬送車などである。走行制御装置1は、移動体2に搭載されている。
【0017】
走行制御装置1は、レーザセンサ3(検出部)と、駆動部4と、走行状態取得センサ6と、コントローラ5とを備えている。
【0018】
レーザセンサ3は、移動体2の周囲の検出範囲における環境の状態を検出する。具体的に、レーザセンサ3は、移動体2の周囲の物体を検出し、検出した物体との位置関係を計測する。レーザセンサ3は、移動体2の周囲にレーザを照射し、レーザの反射光を受光することにより、レーザセンサ3から移動体2の周囲の物体を検出し、当該物体までの距離を計測する。これにより、レーザセンサ3は、移動体2周囲の検出範囲DE内(
図2参照)に存在する物体を検出し、検出した物体との距離を測定できる。レーザセンサ3としては、例えばレーザレンジファインダが用いられる。使用するレーザとしては、2Dレーザでもよいし、3Dレーザでもよい。
【0019】
ここで、
図2に示すように、レーザセンサ3は、移動体2の車体の所定箇所に設けられている。ここでは、レーザセンサ3は、移動体2の前部に設けられている。レーザセンサ3の検出範囲DEは、レーザセンサ3から移動体2の前側へ向かって延びる基準軸SLを基準として左右に所定の角度をなす範囲に設定される。また、検出範囲DEは、レーザセンサ3を基準として一定の距離をなす範囲に設定される。従って、検出範囲DEは、レーザセンサ3を中心とする扇状をなす。
【0020】
図1に戻り、駆動部4は、特に図示はしないが、移動体2の走行輪を回転させる走行モータと、移動体2の操舵輪を転舵させる操舵モータとを有している。
【0021】
走行状態取得センサ6は、移動体2の走行状態に関する走行情報を取得する。走行状態取得センサ6は、駆動部4に設けられて走行輪などに設けられたエンコーダ、及び慣性センサなどによって構成される。走行状態取得センサ6は、取得した検出結果をコントローラ5へ送信する。
【0022】
コントローラ5は、CPU、RAM、ROM及び入出力インターフェース等により構成されている。コントローラ5は、経路設定部10と、自己位置推定部11と、走行制御部12と、記憶部13と、を有している。
【0023】
経路設定部10は、移動体2が走行するための経路を設定する。経路設定部10は、スタート地点とゴール地点を取得し、当該スタート地点とゴール地点との間において、移動体2が走行する経路を設定する。経路設定部10は、経路設定時には、地図データを読み出し、地図データ中のスタート地点とゴール地点との間に、どのような物体が存在しているかを把握した上で、移動体2がこれらの物体と干渉せずに速やかにゴール地点まで到達できる経路を設定する。
【0024】
自己位置推定部11は、レーザセンサ3による検出結果、及び予め取得された地図データに基づいて、移動体2の自己位置を推定する。自己位置推定部11は、例えばSLAM(simultaneous localization andmapping)手法を用いて、移動体2の自己位置を推定する。SLAMは、センサデータ及び地図データを使って自己位置推定を行う自己位置推定技術である。SLAMは、自己位置推定と環境地図の作成とを同時に行う。具体的には、自己位置推定部11は、レーザセンサ3により検出された物体までの距離データと移動体2の周囲環境の地図データとをマッチングさせて、移動体2の自己位置の推定演算を行う。更に、自己位置推定部11は、補助的な自己位置推定として、走行状態取得センサ6からの走行情報に基づく相対的な自己位置推定(デッドレコニング)を行う。なお、自己位置推定装置100は、自己位置推定部11と、上述のレーザセンサ3と、を備えて構成される。自己位置推定部11は、情報取得部14と、演算部16と、デッドレコニング部17を備える。
【0025】
情報取得部14は、自己位置の推定に必要な各種情報を所得する。情報取得部14は、レーザセンサ3による検出結果を取得する。情報取得部14は、自己位置推定のために必要な地図データを記憶部13から読み出す。情報取得部14は、走行状態取得センサ6から移動体2の走行情報を取得する。また、情報取得部14は、経路設定部10が設定した経路も取得する。
【0026】
演算部16は、レーザセンサ3の検出結果から、移動体2の自己位置を推定するための演算を行う。演算部16は、レーザセンサ3で検出された周囲の物体、及び地図データに基づいて、移動体2の自己位置の推定演算を行う。演算部16による自己位置推定は、SLAM手法を用いて行われてよい。演算部16は、移動体2の周囲の物体を検出し、検出した物体と移動体2との間の距離データと、移動体周囲環境の地図データとをマッチングすることで自己位置を推定してよい。例えば、演算部16は、
図4(a)~(c)に示すような移動体2の周囲の環境の状態と、地図データが含む環境の状態(
図4(a)~(c)の壁部51の手前から荷物52を取り除いた状態)とを比較することで自己位置を推定する。なお、以降の説明では、レーザセンサ3の検出結果及び地図データに基づく自己位置推定を「第1の自己位置推定」と称する場合がある。
【0027】
デッドレコニング部17は、走行状態取得センサ6で取得された走行情報に基づいて、移動体2の自己位置推定を行う。デッドレコニング部17は、エンコーダ値や慣性センサ値などの走行情報に基づき、移動体2が所定位置からどの程度の距離をどの方向へ走行したかを把握することで、自己位置推定を行う。なお、当該自己位置推定方法は、移動体2の周辺環境を考慮することなく、移動体2の相対的な位置を推定する方法であるため、走行距離が長くなるほど(例えば走行輪のスリップなどにより)自己位置推定の誤差が蓄積される。なお、以降の説明では、走行情報に基づく自己位置推定を「第2の自己位置推定」と称する場合がある。
【0028】
ここで、演算部16は、第1の自己位置推定が成功したか失敗したかの判定を行う。例えば、演算部16は、レーザセンサ3で検出された物体と地図データに登録された物体とのマッチング度合いなどを演算し、当該マッチング度が所定の閾値を超えているか否かに基づいて、判定を行う。演算部16は、マッチング度が閾値を超えていれば第1の自己位置推定が成功したと判定し、マッチング度が閾値以下であれば、第1の自己位置推定が失敗したと判定する。
【0029】
デッドレコニング部17は、演算部16が第1の自己位置推定が失敗したと判定した場合、第2の自己位置推定を行う。また、演算部16は、第2の自己位置推定に基づいて移動体2が所定の距離を走行しても、第1の自己位置推定に失敗したと判定した場合、レーザセンサ3の検出範囲DEを走行時からずらすように制御を行い、レーザセンサ3の検出範囲DEをずらした検出結果に基づいて第1の自己位置推定を行う。
【0030】
演算部16が、検出範囲DEを走行時からずらすように制御を行う内容について説明する。検出範囲DEを走行時からずらす事とは、検出範囲DEの基準軸SLの向きを、走行時における検出範囲DEの基準軸SLとは異なるようにすることである。具体的には、演算部16は、
図4(c)に示すように、移動体2の旋回に伴って検出範囲DEをずらすように制御する。移動体2が旋回を行うと、レーザセンサ3の基準軸SLの向きが、走行時のもの(
図4(a)(b)のもの)から変わる。従って、演算部16は、走行制御部12に制御信号を送信して移動体2を旋回させることで、検出範囲DEをずらす。
【0031】
演算部16は、レーザセンサ3が検出範囲DEをずらしている途中で第1の自己位置推定を行う。演算部16は、第1の自己位置推定が成功した時点で、検出範囲DEをずらすことを停止する。演算部16は、検出範囲DEが移動体2の周囲を360°回転しても自己位置を推定できない場合、移動体2の停止を行う。
【0032】
走行制御部12は、自己位置推定部11により推定された移動体2の自己位置に基づいて、移動体2の走行を制御する。走行制御部12は、自己位置とゴール地点の位置とを比較することによって、移動体2の移動方向や移動距離を演算する。また、走行制御部12は、当該演算結果に基づいて、移動体2がゴール地点へ向かうように駆動部4へ制御信号を出力する。記憶部13は、各種データを記憶する。記憶部13は、地図データを記憶する。
【0033】
次に、
図3~
図5を参照して、自己位置推定部11によって実行される処理内容について説明する。
図3は、自己位置推定部11による処理内容を示すフローチャートである。なお、
図3の各ステップは、特段の注意書きが無くとも、請求項における「自己位置推定ステップ」に属するものとする。
図4及び
図5は、移動体2の挙動を示す概念図である。
図4及び
図5は、移動体2が一対の壁部51間の通路53を走行している時の様子を示す。壁部51の手前には、地図データ作成時には存在していない荷物52が多数積まれている。
【0034】
図3に示すように、自己位置推定部11は、レーザセンサ3から検出結果を取得すると共に、当該検出結果及び地図データに基づいて移動体2の第1の自己位置推定を行う(ステップS100:検出ステップ、自己位置推定ステップ)。次に、自己位置推定部11は、第1の自己位置推定が成功したか否かを判定する(ステップS110)。ステップS110において第1の自己位置推定が成功したと判定された場合、自己位置推定部11は、第1の自己位置推定に基づく自律走行を行うように制御を行う(ステップS115)。これにより、
図3に示す処理が終了し、再びステップS100から処理が繰り返される。
【0035】
一方、自己位置推定部11は、ステップS110において第1の自己位置推定が失敗したと判定した場合、移動体2の走行情報に基づく第2の自己位置推定を行い、当該第2の自己位置推定の結果に基づいて移動体2の自律走行を実行する(ステップS120:第1のステップ)。例えば、
図4(a)に示すように、検出範囲DE内に荷物52が増えることによって、検出された環境の状態が地図データから変化した場合、自己位置推定部11は、第1の自己位置推定が失敗したと判定する。この場合、
図4(b)に示すように、自己位置推定部11は、デッドレコニングによる自律走行で移動体2が荷物52の多い領域を抜けるように、第2の自己位置推定を実行する。
【0036】
次に、
図3に示すように、自己位置推定部11は、第2の自己位置推定に基づきデッドレコニングによる自律走行を行っている最中も、第1の自己位置推定を行い、第1の自己位置推定が失敗したか否かを判定する(ステップS130)。自己位置推定部11は、ステップS130において、第1の自己位置推定が成功したと判定した場合、第1の自己位置推定結果に基づく自律走行を行うように制御を行う(ステップS115)。これにより、
図3に示す処理を終了し、再びステップS100から処理が繰り返される。例えば、荷物52の多い領域が小さい場合、移動体2は第1の自己位置推定に失敗しても、第2の自己位置推定に基づきデッドレコニングによる自律走行をすれば、速やかに第1の自己位置推定による自律走行に復帰することができる。
【0037】
一方、自己位置推定部11は、ステップS130において第1の自己位置推定が失敗したと判定した場合、デッドレコニングで一定距離を走行したか否かを判定する(ステップS140)。一定距離は、第2の自己位置推定による自己位置推定の誤差の大きさに基づいて、予め設定される。自己位置推定部11は、移動体2がデッドレコニングにて一定距離を走行していないと判定した場合、ステップS120に戻り、デッドレコニングによる自律走行を継続する。
【0038】
一方、自己位置推定部11は、ステップS140において、移動体2がデッドレコニングにて一定距離を走行したと判定した場合、移動体2がその場で旋回するように制御を行う(ステップS150)。これにより、移動体2が通路53を進行している状態(
図4(a)(b)参照)に対し、レーザセンサ3の検出範囲DEがずれる(
図4(c)参照)。自己位置推定部11は、検出範囲DEをずらしている途中で第1の自己位置推定を行い、第1の自己位置推定が失敗したか否かを判定する(ステップS160:第2のステップ)。例えば、
図4(c)に示すように、検出範囲DEが進行方向と反対側に向いたとき(検出範囲DEが走行時から180°ずれた状態)に、当該検出範囲DEの荷物52が少ない場合、自己位置推定部11は、第1の自己位置推定が成功したと判定する。
【0039】
図3に戻り、自己位置推定部11は、ステップS160において第1の自己位置推定が成功したと判定した場合、第1の自己位置推定の推定結果により、自己位置を補正する(ステップS180)。これにより、自己位置推定部11は、デッドレコニングによる自律走行で蓄積された自己位置の誤差を解消することができる。次に、自己位置推定部11は、検出範囲DEが進行方向を向くように、その場で旋回するように制御を行う(ステップS190)。例えば、
図4(c)に示すように検出範囲DEが進行方向と反対側を向いた状態から、
図5(a)に示すように検出範囲DEが進行方向を向くように、移動体2がその場で旋回する。自己位置推定部11は、検出範囲DEが進行方向を向いたら、ステップS120に戻り、再びデッドレコニングによる自律走行を繰り返す。例えば、
図5(b)に示すように、移動体2がデッドレコニングによる自律走行を行うことで荷物52が多い領域を抜けた場合、ステップS130において自己位置推定部11が第1の自己位置推定が成功したと判定するため、
図5(c)に示すように移動体2が第1の自己位置推定の結果に基づく自律走行を再開する。
【0040】
自己位置推定部11は、ステップS160において第1の自己位置推定が失敗したと判定した場合、レーザセンサ3が移動体2の周囲を360°回転したか否かを判定する(ステップS170)。自己位置推定部11は、ステップS170においてレーザセンサ3が移動体2の周囲を360°回転していないと判定した場合、ステップS150に戻り、移動体2によるその場での旋回を継続するように制御する。一方、自己位置推定部11は、レーザセンサ3が移動体2の周囲を360°回転したと判定した場合、第1の自己位置推定が成功しないと判断する。この場合、自己位置推定部11は、移動体2の停止を行う(ステップS200)。ステップS200の後、所定の処置(例えば、地図データの更新、荷物52の除去などの処置)を施した後、第1の自己位置推定が可能な状態にした後、再びステップS100から処理が繰り返される。
【0041】
次に、本実施形態に係る自己位置推定装置100、及び自己位置推定方法の作用・効果について説明する。
【0042】
例えば、比較例として、移動体2に多数のレーザセンサ3を設けた自己位置推定装置について説明する。例えば、比較例に係る自己位置推定装置は、移動体2の前側のレーザセンサ3のみならず、後側にもレーザセンサ3を有する。この場合、移動体2の周囲の検出範囲を拡大することで、検出結果と地図データとのマッチング度を向上させることはできるが、必要なレーザセンサ3の数が増加してしまうという問題が生じる。
【0043】
これに対し、本実施形態に係る自己位置推定装置100の自己位置推定部11は、検出結果及び地図データに基づく第1の自己位置推定に失敗したと判定した場合(
図4(a)参照)、移動体2の走行情報に基づく第2の自己位置推定を行う。これにより、移動体2は、第1の自己位置推定を行えない状態でも、第2の自己位置推定に基づく自律走行を行うことができる(
図4(b)参照)。これにより、移動体2が第1の自己位置推定が可能な位置まで到達することができれば、移動体2は、精度の良い第1の自己位置推定に基づく自律走行に復帰することができる。
【0044】
ここで、他の比較例として、第1の自己位置推定を失敗したときに第2の自己位置推定に基づいて自律走行させるだけの自己位置推定装置について説明する。比較例に係る自己位置推定装置は、検出範囲DEをずらすような処理を行わない。当該比較例に係る自己位置推定装置は、第1の自己位置推定が行えない場合(
図6(a)参照)、第2の自己位置推定に基づいて自律走行を行わせる(
図6(b)参照)。しかしながら、当該自己位置推定方法は、周囲の環境を考慮しない方法であるため、長距離の自律走行を行うと、自己位置の誤差が大きくなってしまう。従って、移動体2が所定の距離を走行しても第1の自己位置推定を可能な位置まで到達できない場合(
図6(c)参照)、自己位置推定部は、周辺環境に基づく補正を行わずに走行を続けることでエンコーダ等の誤差が徐々に加算されることにより、誤った場所に自己位置があると推定してしまうことになり得る。その結果、比較例に係る自己位置推定装置は、
図6に示すように第1の自己位置推定を行えない場所(通路53に荷物52が多く置かれているような場所)の距離が長くなる場合などに、自己位置推定の性能が低下してしまうという問題が生じる。
【0045】
他の比較例が有する問題に対し、本実施形態に係る自己位置推定装置100の自己位置推定部11は、第2の自己位置推定に基づいて移動体2が所定の距離を走行しても、第1の自己位置推定に失敗したと判定した場合、レーザセンサ3の検出範囲DEを走行時からずらした検出結果に基づいて第1の自己位置推定を行う(
図4(c)参照)。検出範囲DEを走行時からずらすことで、レーザセンサ3の数を増やさなくとも、レーザセンサ3が移動体2の周囲の環境を広範囲にわたって検出することが可能となる。当該タイミングで自己位置推定部11が第1の自己位置推定に成功した場合、第2の自己位置推定に基づく自律走行によって蓄積された自己位置の誤差を解消することができる。従って、移動体2は、自己位置を見失うことなく、引き続き第2の自己位置推定による自律走行を継続できる(
図5(a)(b)参照)。その結果、自己位置推定部11は自己位置推定の精度の低下を抑制しつつ、第2の自己位置推定による自律走行の距離を伸ばすことができる。これにより、自己位置推定装置100は、第1の自己位置推定が可能な位置(
図5(b)参照)まで、移動体2が到達できる可能性を高めることができる。そして、移動体2は、精度のよい第1の自己位置推定に基づく自律走行に復帰することができる(
図5(c)参照)。以上より、レーザセンサ3の数を抑制しつつ、自己位置推定の性能を向上できる。
【0046】
自己位置推定部11は、移動体2の旋回に伴って検出範囲DEをずらすように制御してよい。この場合、検出範囲DEをずらすための特別な回転機構(例えば
図7参照)などを追加することを不要とすることができる。
【0047】
自己位置推定部11は、検出範囲DEをずらしている途中で第1の自己位置推定を行い、第1の自己位置推定が成功した時点で、検出範囲DEをずらすことを停止してよい。この場合、検出範囲DEを360°回転させるまで待たずに、移動体2が速やかに自律走行に復帰することができる。
【0048】
自己位置推定部11は、検出範囲DEが移動体2の周囲を360°回転しても第1の自己位置推定が成功しない場合、移動体2の停止を行ってよい。このように、レーザセンサ3が移動体2の周囲の環境を全周にわたって検出しても、自己位置推定部11が第1の自己位置推定を行えない場合、異常停止することで、当該状況に対する処置を行うことができる。
【0049】
本実施形態に係る自己位置推定方法は、移動体2の自己位置を推定する自己位置推定方法において、移動体2の周囲の検出範囲DEにおける環境の状態を検出する検出ステップと、検出ステップによる検出結果、及び予め取得された地図データに基づいて、移動体2の自己位置を推定する自己位置推定ステップと、を備え、自己位置推定ステップは、検出結果及び地図データに基づく第1の自己位置推定に失敗したと判定した場合、移動体2の走行情報に基づく第2の自己位置推定を行う第1のステップと、第2の自己位置推定に基づいて移動体2が所定の距離を走行しても、第1の自己位置推定に失敗したと判定した場合、検出ステップでの検出範囲を走行時からずらした検出結果に基づいて第1の自己位置推定を行う第2のステップと、を有する。
【0050】
このような自己位置推定方法によれば、上述の自己位置推定装置100と同趣旨の作用・効果を得ることができる。
【0051】
本発明は、上述の実施形態に限定されるものではない。
【0052】
例えば、
図4や
図5で示す作業現場の様子、検出される物体、経路などは一例にすぎず、作業現場に合わせて適宜変更されてよい。
【0053】
上述の実施形態では、移動体2の周囲の物体を検出する検出部として2Dレーザ、3Dレーザなどのレーザセンサが例示されていたが、検出部の具体的構成は特に限定されるものではない。例えば、検出部としてカメラが採用され、VisualSLAM(カメラを用いた自己位置推定)の技術が用いられてもよい。カメラは、取得した画像の画像処理を行うことで、物体を検出すると共に、当該物体までの距離などの情報を検出することができる。例えば、画像中に写された物体のエッジを検出することで、物体の検出が可能である。その他、検出部は、超音波などのセンサによって構成されてもよい。
【0054】
検出範囲DEをずらす方法は、移動体2の旋回に限定されるものではない。例えば、
図7に示すように、移動体2がレーザセンサ3を回転させる回転機構60を有してもよい。回転機構60は、通常時には移動体2の前側にレーザセンサ3を配置し、検出範囲DEをずらす必要がある時は、レーザセンサ3の位置及び検出範囲DEを移動体2周りに回転させる。このような回転機構60は、移動体2が正面を向いたままで検出範囲DEをずらすことができる。
【0055】
なお、デッドレコニング部17は、必ずしも自己位置推定部11が第1の自己位置推定を失敗したときにのみ、第2の自己位置推定を行う必要はなく、第1の自己位置推定が成功している最中にも、補助的に第2の自己位置推定を行ってよい。
【符号の説明】
【0056】
2…移動体、3…レーザセンサ(検出部)、11…自己位置推定部、DE…検出範囲、100…自己位置推定装置。