(57)【要約】      （修正有）【課題】移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる走行制御装置を提供する。【解決手段】走行制御装置４は、移動体の位置を推定する位置推定ユニット６と、仮想ガイド線の位置と移動体の位置とに基づいて、仮想ガイド線と移動体とのずれ量を検出するずれ量検出部１５と、仮想ガイド線と移動体とのずれ量に基づいて、移動体を仮想ガイド線に沿って走行させるように制御する走行制御部１６と、移動体の周囲環境に応じてずれ量検出部１５の検出範囲を設定する検出範囲設定部とを備え、ずれ量検出部１５は、仮想ガイド線と移動体とのずれ量が検出範囲内にあるかどうかを判断し、ずれ量が検出範囲内にないときは、移動体が仮想ガイド線に対してコースアウトしたと判定する。【選択図】図２
2020119214.tif 000002
【特許請求の範囲】
【請求項１】
データ上で仮想的に設定された仮想ガイド線に沿って移動体を自動的に走行させる走行制御装置であって、
前記仮想ガイド線の位置を記憶する記憶部と、
前記移動体の位置を推定する位置推定部と、
前記記憶部に記憶された前記仮想ガイド線の位置と前記位置推定部により推定された前記移動体の位置とに基づいて、前記仮想ガイド線と前記移動体とのずれ量を検出する検出部と、
前記検出部により検出された前記仮想ガイド線と前記移動体とのずれ量に基づいて、前記移動体を前記仮想ガイド線に沿って走行させるように前記移動体の駆動部を制御する制御部と、
前記移動体の周囲環境に応じて前記検出部の検出範囲を設定する検出範囲設定部とを備え、
前記検出部は、前記仮想ガイド線と前記移動体とのずれ量が前記検出範囲設定部により設定された検出範囲内にあるかどうかを判断し、前記仮想ガイド線と前記移動体とのずれ量が前記検出範囲内にないときは、前記移動体が前記仮想ガイド線に対してコースアウトしたと判定する走行制御装置。
【請求項２】
前記位置推定部は、前記移動体の位置を推定すると共に、前記移動体の位置推定の信頼度を判定し、
前記検出範囲設定部は、前記移動体の位置推定の信頼度が高くなるほど前記検出部の検出範囲が大きくなるように、前記移動体の位置推定の信頼度に応じて前記検出部の検出範囲を設定する請求項１記載の走行制御装置。
【請求項３】
前記位置推定部は、前記移動体の位置を推定すると共に、前記移動体の周囲との距離関係を判定し、
前記検出範囲設定部は、前記移動体の周囲との距離が長くなるほど前記検出部の検出範囲が大きくなるように、前記移動体の周囲との距離に応じて前記検出部の検出範囲を設定する請求項１記載の走行制御装置。
【請求項４】
前記検出範囲設定部は、前記移動体の周囲環境に応じて前記検出部の検出範囲を段階的に設定する請求項１〜３の何れか一項記載の走行制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、走行制御装置に関する。
【背景技術】
【０００２】
従来の走行制御装置としては、例えば特許文献１に記載されているような技術が知られている。特許文献１に記載の走行制御装置は、地図データを保持する地図データ保持部と、仮想ガイド線データを保持する仮想ガイド線データ保持部と、周囲の物体までの距離を測定するレーザ測域センサと、地図データとレーザ測域センサから伝送されてくる測定結果とを照合して、地図データ上におけるレーザ測域センサの位置及び向きを検出する位置検出処理部と、レーザ測域センサの位置及び向きに基づいて、仮想ガイドセンサと仮想ガイド線データとのずれ量を算出するデータ変換処理部とを備え、仮想ガイドセンサと仮想ガイド線データとのずれ量に基づいて、車両を仮想ガイド線に沿って自動走行させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２２７９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術においては、地図データ上における車両（移動体）の自己位置を推定し、車両と地図データ上の仮想ガイド線とのずれ量を算出している。このため、車両の自己位置の推定精度が低いときは、車両と仮想ガイド線とのずれ量の算出精度も低下する。従って、車両と仮想ガイド線とのずれ量に基づいて車両が仮想ガイド線に対してコースアウトしたかどうかを判定する場合には、車両の自己位置の推定精度が低いと、車両のコースアウトの判定を適切に行うことができない。その結果、車両がコースアウトしていないと判定されたにも関わらず、実際には車両が壁等に干渉する可能性がある。
【０００５】
本発明の目的は、移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる走行制御装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明の一態様は、データ上で仮想的に設定された仮想ガイド線に沿って移動体を自動的に走行させる走行制御装置であって、仮想ガイド線の位置を記憶する記憶部と、移動体の位置を推定する位置推定部と、記憶部に記憶された仮想ガイド線の位置と位置推定部により推定された移動体の位置とに基づいて、仮想ガイド線と移動体とのずれ量を検出する検出部と、検出部により検出された仮想ガイド線と移動体とのずれ量に基づいて、移動体を仮想ガイド線に沿って走行させるように移動体の駆動部を制御する制御部と、移動体の周囲環境に応じて検出部の検出範囲を設定する検出範囲設定部とを備え、検出部は、仮想ガイド線と移動体とのずれ量が検出範囲設定部により設定された検出範囲内にあるかどうかを判断し、仮想ガイド線と移動体とのずれ量が検出範囲内にないときは、移動体が仮想ガイド線に対してコースアウトしたと判定する。
【０００７】
このような走行制御装置においては、位置推定部が移動体の位置を推定し、検出部が仮想ガイド線の位置と移動体の位置とに基づいて仮想ガイド線と移動体とのずれ量を検出し、制御部が当該ずれ量に基づいて移動体を仮想ガイド線に沿って走行させるように駆動部を制御する。このとき、検出部は、仮想ガイド線と移動体とのずれ量が検出部の検出範囲内にあるかどうかを判断し、仮想ガイド線と移動体とのずれ量が検出範囲内にないときは、移動体が仮想ガイド線に対してコースアウトしたと判定する。検出部の検出範囲は、移動体の周囲環境に応じて設定される。このため、検出部の検出範囲は、移動体の周囲環境によって変更されることになる。これにより、移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる。
【０００８】
位置推定部は、移動体の位置を推定すると共に、移動体の位置推定の信頼度を判定し、検出範囲設定部は、移動体の位置推定の信頼度が高くなるほど検出部の検出範囲が大きくなるように、移動体の位置推定の信頼度に応じて検出部の検出範囲を設定してもよい。移動体の位置推定の信頼度が高くなるほど、移動体の位置推定の最大誤差量が小さくなる。そこで、移動体の位置推定の信頼度が高くなるほど、検出部の検出範囲を大きくすることにより、移動体の位置推定の信頼度に関わらず、移動体がコースアウトしたと判定する判定値における仮想ガイド線からの最大逸脱量を等しくすることができる。
【０００９】
位置推定部は、移動体の位置を推定すると共に、移動体の周囲との距離関係を判定し、検出範囲設定部は、移動体の周囲との距離が長くなるほど検出部の検出範囲が大きくなるように、移動体の周囲との距離に応じて検出部の検出範囲を設定してもよい。このような構成では、移動体の周囲との距離が長くなるほど、検出部の検出範囲が大きくなる。従って、移動体の周囲との距離が長くなるほど、移動体がコースアウトしたと判定する判定値における仮想ガイド線からの最大逸脱量が大きくなる。
【００１０】
検出範囲設定部は、移動体の周囲環境に応じて検出部の検出範囲を段階的に設定してもよい。このような構成では、移動体の周囲環境に応じた検出範囲を予め決めて保存しておくことで、検出部の検出範囲の設定処理を簡素化することができる。
【発明の効果】
【００１１】
本発明によれば、移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る走行制御装置を備えた走行制御システムを示す概略構成図である。
【図２】図１に示された走行制御装置の構成を示すブロック図である。
【図３】図２に示されたＳＬＡＭコントローラにより実行される演算処理手順の詳細を示すフローチャートである。
【図４】移動体の位置推定の信頼度と移動体の位置推定の最大誤差量とずれ量検出部の検出範囲との関係を示す表である。
【図５】図２に示された検出範囲設定部により設定されるずれ量検出部の検出範囲を示す概念図である。
【図６】図２に示されたずれ量検出部により実行される検出処理手順の詳細を示すフローチャートである。
【図７】図２に示されたずれ量検出部により移動体がコースアウトしたと判定された状態を示す概念図である。
【図８】図２に示された走行制御部により実行される制御処理手順の詳細を示すフローチャートである。
【図９】ずれ量検出部の検出範囲が小さい場合に、移動体が大きくコースアウトしている状態を示す概念図である。
【図１０】変形例として、図２に示されたＳＬＡＭコントローラにより実行される他の演算処理手順の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、図面において、同一または同等の要素には同じ符号を付し、重複する説明を省略する。
【００１４】
図１は、本発明の一実施形態に係る走行制御装置を備えた走行制御システムを示す概略構成図である。図１において、走行制御システム１は、例えばフォークリフト等の移動体２をスタート地点３Ａから目的地点３Ｂまで無人で走行させるシステムである。走行制御システム１は、移動体２をスタート地点３Ａから目的地点３Ｂまでの走行経路である仮想ガイド線３に沿って自動的に走行させる走行制御装置４を具備している。
【００１５】
仮想ガイド線３は、データ上で仮想的に設定された走行経路である。スタート地点３Ａ及び目的地点３Ｂを含む仮想ガイド線３の位置は、２次元座標（ＸＹ座標）で表されている。ここでは、スタート地点３Ａの２次元座標は、（０，０）である。目的地点３Ｂの２次元座標は、（１００，０）である。なお、図１では、仮想ガイド線３は、直線経路となっているが、曲線経路であってもよい。
【００１６】
床面には、移動体２が走行を行うための走行指示データを関連付けた走行指示用マークである磁気マーク５が設置されている。磁気マーク５は、床面における仮想ガイド線３の脇に相当する箇所に埋設されている。
【００１７】
図２は、走行制御装置４の構成を示すブロック図である。図２において、本実施形態の走行制御装置４は、移動体２に搭載されている。走行制御装置４は、位置推定ユニット６と、磁気マークセンサ７と、自動走行制御ユニット８とを備えている。
【００１８】
位置推定ユニット６は、移動体２の位置を推定する位置推定部である。位置推定ユニット６は、ＳＬＡＭ（simultaneous localization andmapping）手法を用いて、移動体２の自己位置を推定する。ＳＬＡＭは、センサデータ及び地図データを使って自己位置推定を行う自己位置推定技術である。ＳＬＡＭは、レーザレンジスキャナー等を利用して、自己位置推定と環境地図の作成とを同時に行う。
【００１９】
位置推定ユニット６は、レーザセンサ９と、ＳＬＡＭコントローラ１０とを有している。レーザセンサ９は、移動体２の周囲にレーザ光を照射し、その反射光を受光することにより、移動体２の周囲の物体までの距離を検出する。
【００２０】
ＳＬＡＭコントローラ１０は、ＣＰＵ、ＲＡＭ、ＲＯＭ及び入出力インターフェース等により構成されている。ＳＬＡＭコントローラ１０は、レーザセンサ９により検出された移動体２の周囲の物体までの距離と移動体２の周囲の環境地図データとに基づいて、移動体２の位置の推定演算を行う。移動体２の位置は、２次元座標（ＸＹ座標）及び向きで表される。
【００２１】
このとき、ＳＬＡＭコントローラ１０は、例えばパーティクルフィルタ（逐次モンテカルロ法）と呼ばれる時系列データの予測手法を用いて、移動体２の自己位置を確率的に推定する。パーティクルフィルタでは、現状態から起こりうる多数の次状態を多数のパーティクル（粒子）で表現し、全パーティクルの尤度（追跡したい対象物らしさ）に従って算出された重みつき平均を次状態であると推測して追跡を行う。
【００２２】
図３は、ＳＬＡＭコントローラ１０により実行される演算処理手順の詳細を示すフローチャートである。本処理は、移動体２の電源がＯＮになると実行される。
【００２３】
図３において、ＳＬＡＭコントローラ１０は、まずレーザセンサ９の検出値を取得する（手順Ｓ１０１）。そして、ＳＬＡＭコントローラ１０は、移動体２の位置の推定演算を行う（手順Ｓ１０２）。具体的には、ＳＬＡＭコントローラ１０は、レーザセンサ９により検出された移動体２の周囲の物体までの距離と移動体２の周囲環境の地図とをマッチングさせて、移動体２の位置の推定演算を行う。これにより、移動体２の推定位置が得られる。
【００２４】
続いて、ＳＬＡＭコントローラ１０は、位置推定ユニット６による移動体２の位置推定の信頼度を判定する（手順Ｓ１０３）。具体的には、ＳＬＡＭコントローラ１０は、例えばパーティクルの数、移動体２の周囲の物体までの距離と移動体２の周囲環境の地図とのマッチング度合い及び位置推定結果の分散値等に基づいて、移動体２の位置推定の信頼度を判定する。このとき、ＳＬＡＭコントローラ１０は、図４に示されるように、移動体２の位置推定の信頼度を「高」、「中」、「低」の３段階に表現する。
【００２５】
そして、ＳＬＡＭコントローラ１０は、移動体２の推定位置及び移動体２の位置推定の信頼度を自動走行制御ユニット８に出力し（手順Ｓ１０４）、手順Ｓ１０１を再び実行する。
【００２６】
図２に戻り、磁気マークセンサ７は、特に図示はしないが、移動体２の下部に取り付けられている。磁気マークセンサ７は、磁気マーク５を検出するセンサである。
【００２７】
自動走行制御ユニット８は、位置推定ユニット６により推定された移動体２の位置と磁気マークセンサ７の検出値とに基づいて、所定の処理を行い、移動体２をスタート地点３Ａから目的地点３Ｂまで自動的に走行させるように走行モータ１１及び操舵モータ１２を制御する。
【００２８】
走行モータ１１は、走行輪（図示せず）を回転させるモータである。操舵モータ１２は、操舵輪（図示せず）を転舵させるモータである。走行モータ１１及び操舵モータ１２は、移動体２の駆動部を構成している。
【００２９】
自動走行制御ユニット８は、ＣＰＵ、ＲＡＭ、ＲＯＭ及び入出力インターフェース等により構成されている。自動走行制御ユニット８は、記憶部１３と、検出範囲設定部１４と、ずれ量検出部１５（検出部）と、走行制御部１６（制御部）とを有している。
【００３０】
記憶部１３は、仮想ガイド線３及び磁気マーク５の位置と走行指示データ等といった移動体２の走行に関する情報を記憶する。記憶部１３は、仮想ガイド線３及び磁気マーク５の位置を２次元座標として記憶している。走行指示データは、上述したように磁気マーク５に関連付けられている。走行指示データとしては、例えば加速指示、停止指示、右折指示及び左折指示等がある。
【００３１】
検出範囲設定部１４は、ＳＬＡＭコントローラ１０により判定された移動体２の位置推定の信頼度に応じて、ずれ量検出部１５の検出範囲Ｌ（図５参照）を設定する。移動体２の位置推定の信頼度は、移動体２の周囲環境によって変化する。従って、検出範囲設定部１４は、移動体２の周囲環境に応じて、ずれ量検出部１５の検出範囲Ｌを設定することになる。
【００３２】
図４に示されるように、移動体２の位置推定の信頼度が高くなるほど、移動体２の位置推定の最大誤差量が小さくなる。例えば、移動体２の位置推定の信頼度が高いときは、移動体２の位置推定の最大誤差量は±１０ｍｍである。移動体２の位置推定の信頼度が中程度であるときは、移動体２の位置推定の最大誤差量は±３０ｍｍである。移動体２の位置推定の信頼度が低いときは、移動体２の位置推定の最大誤差量は±５０ｍｍである。なお、最大誤差量は、３σを指標としている。
【００３３】
そこで、検出範囲設定部１４は、移動体２の位置推定の最大誤差量を加味して、ずれ量検出部１５の検出範囲Ｌを段階的に設定する。このとき、検出範囲設定部１４は、図４に示されるように、移動体２の位置推定の信頼度が高くなるほど、ずれ量検出部１５の検出範囲Ｌを大きくする。例えば、移動体２の位置推定の信頼度が高いと判定されたときは、ずれ量検出部１５の検出範囲Ｌは±９０ｍｍに設定される。移動体２の位置推定の信頼度が中程度と判定されたときは、ずれ量検出部１５の検出範囲Ｌは±７０ｍｍに設定される。移動体２の位置推定の信頼度が低いと判定されたときは、ずれ量検出部１５の検出範囲Ｌは±５０ｍｍに設定される。
【００３４】
ここでは、ずれ量検出部１５の検出範囲Ｌは、移動体２の位置推定の信頼度に応じて３段階に設定されているが、特にそれには限られず、ずれ量検出部１５の検出範囲Ｌを２段階に設定してもよいし、或いは４段階以上に設定してもよい。
【００３５】
ずれ量検出部１５は、記憶部１３に記憶された仮想ガイド線３の位置と位置推定ユニット６により推定された移動体２の位置とに基づいて、仮想ガイド線３と移動体２とのずれ量を検出する。このとき、ずれ量検出部１５は、図５に示されるように、移動体２の前後２箇所において仮想ガイド線３と移動体２とのずれ量を検出する。これにより、ずれ量検出部１５は、仮想ガイド線３の位置座標と移動体２の位置座標とのずれ量だけでなく、仮想ガイド線３の向きと移動体２の向きとのずれ量も検出することができる。
【００３６】
走行制御装置４は、機能的には、データ上で仮想ガイド線３を仮想的に検出する前後２つの仮想ガイドセンサ２０を有することになる。この場合、仮想ガイドセンサ２０の長さは、移動体２の位置推定の信頼度に応じて異なる。移動体２の位置推定の信頼度が高いと判定された際の仮想ガイドセンサ２０の長さは、図５（ａ）に示されるようにＬ１である。移動体２の位置推定の信頼度が低いと判定された際の仮想ガイドセンサ２０の長さは、図５（ｂ）に示されるようにＬ２（＜Ｌ１）である。
【００３７】
ずれ量検出部１５の検出範囲Ｌは、図５に示されるように、仮想ガイドセンサ２０の左右方向（長手方向）の中心が仮想ガイド線３上にある状態での仮想ガイドセンサ２０の長さに一致する。従って、移動体２の位置推定の信頼度が高いと判定された際のずれ量検出部１５の検出範囲Ｌは、Ｌ１である。移動体２の位置推定の信頼度が低いと判定された際のずれ量検出部１５の検出範囲Ｌは、Ｌ２である。
【００３８】
また、ずれ量検出部１５は、仮想ガイド線３と移動体２とのずれ量が検出範囲設定部１４により設定されたずれ量検出部１５の検出範囲Ｌ内にあるかどうかを判断し、当該ずれ量が検出範囲Ｌ内にないときは、移動体２が仮想ガイド線３に対してコースアウトしたと判定する。
【００３９】
図６は、ずれ量検出部１５により実行される検出処理手順の詳細を示すフローチャートである。本処理も、ＳＬＡＭコントローラ１０による演算処理と同様に、移動体２の電源がＯＮになると実行される。
【００４０】
図６において、ずれ量検出部１５は、まずＳＬＡＭコントローラ１０により得られた移動体２の推定位置と、検出範囲設定部１４により設定されたずれ量検出部１５の検出範囲とを取得する（手順Ｓ１１１）。続いて、ずれ量検出部１５は、仮想ガイド線３の位置と移動体２の推定位置とに基づいて、仮想ガイド線３と移動体２とのずれ量を算出する（手順Ｓ１１２）。
【００４１】
続いて、ずれ量検出部１５は、仮想ガイド線３と移動体２とのずれ量がずれ量検出部１５の検出範囲Ｌ内であるかどうかを判断する（手順Ｓ１１３）。ずれ量検出部１５は、仮想ガイド線３と移動体２とのずれ量がずれ量検出部１５の検出範囲Ｌ内であるときは、手順Ｓ１１１を再び実行する。
【００４２】
ずれ量検出部１５は、図７に示されるように、仮想ガイド線３と移動体２とのずれ量がずれ量検出部１５の検出範囲Ｌ内にないときは、移動体２が仮想ガイド線３に対してコースアウトしたと判定し（手順Ｓ１１４）、手順Ｓ１１１を再び実行する。
【００４３】
移動体２が仮想ガイド線３に対してコースアウトした状態は、仮想ガイドセンサ２０が仮想ガイド線３から外れた状態に相当する。図７（ａ）は、移動体２の位置推定の信頼度が高いと判定された際に、移動体２がコースアウトした状態を示している。図７（ｂ）は、移動体２の位置推定の信頼度が低いと判定された際に、移動体２がコースアウトした状態を示している。
【００４４】
図２に戻り、走行制御部１６は、ずれ量検出部１５により検出された仮想ガイド線３と移動体２とのずれ量に基づいて、移動体２を仮想ガイド線３に沿って走行させるように走行モータ１１及び操舵モータ１２を制御する。また、走行制御部１６は、磁気マークセンサ７により磁気マーク５が検出されたときに、当該磁気マーク５に関連付けられた走行指示データに従って移動体２を走行させるように走行モータ１１及び操舵モータ１２を制御する。
【００４５】
さらに、走行制御部１６は、ずれ量検出部１５により移動体２がコースアウトしたと判定されたときは、その旨を警告表示器１７に通知すると共に、移動体２を強制的に停止させるように走行モータ１１を制御する。
【００４６】
図８は、走行制御部１６により実行される制御処理手順の詳細を示すフローチャートである。本処理も、ＳＬＡＭコントローラ１０による演算処理と同様に、移動体２の電源がＯＮになると実行される。
【００４７】
図８において、走行制御部１６は、ずれ量検出部１５により移動体２がコースアウトしていないと判定されたかを判断する（手順Ｓ１２１）。走行制御部１６は、移動体２がコースアウトしていないと判定されたときは、磁気マークセンサ７により磁気マーク５が検出されたかどうかを判断する（手順Ｓ１２２）。
【００４８】
走行制御部１６は、磁気マーク５が検出されたときは、当該磁気マーク５の番号に対応した走行指示データを記憶部１３から取得する（手順Ｓ１２３）。そして、走行制御部１６は、取得した走行指示データに応じた制御信号を走行モータ１１及び操舵モータ１２に出力する（手順Ｓ１２４）。走行制御部１６は、例えば取得した走行指示データが加速指示である場合には、走行モータ１１の回転速度を高くするような制御信号を走行モータ１１に出力する。これにより、移動体２の走行速度が上昇するようになる。
【００４９】
走行制御部１６は、手順Ｓ１２４が実行された後、または手順Ｓ１２２で磁気マーク５が検出されていないときは、ずれ量検出部１５により検出された仮想ガイド線３と移動体２とのずれ量を取得する（手順Ｓ１２５）。そして、走行制御部１６は、仮想ガイド線３と移動体２とのずれ量が０となるような制御信号を走行モータ１１及び操舵モータ１２に出力する（手順Ｓ１２６）。これにより、移動体２の位置座標及び向きが仮想ガイド線３に近づくようになる。
【００５０】
続いて、走行制御部１６は、移動体２が目的地点３Ｂに達したかどうかを判断する（手順Ｓ１２７）。走行制御部１６は、移動体２が目的地点３Ｂに達していないときは、手順Ｓ１２１を再び実行する。走行制御部１６は、移動体２が目的地点３Ｂに達したときは、本処理を終了する。
【００５１】
走行制御部１６は、手順Ｓ１２１で移動体２がコースアウトしたと判定されたときは、警告信号を警告表示器１７に出力する（手順Ｓ１２８）。これにより、警告表示器１７により警告表示が行われるため、ユーザは移動体２がコースアウトしたと認識することができる。なお、警告表示器１７は、警告表示を行う際に、警報音を発してもよい。
【００５２】
また、走行制御部１６は、移動体２を停止させるような制御信号（停止用制御信号）を走行モータ１１に出力し（手順Ｓ１２９）、本処理を終了する。これにより、移動体２が緊急停止する。
【００５３】
以上のように構成された走行制御装置４においては、上述したように、仮想ガイド線３と移動体２とのずれ量がずれ量検出部１５の検出範囲Ｌ内にないときは、移動体２がコースアウトしたと判定される（図５及び図７参照）。
【００５４】
ここで、図４に示されるように、移動体２の位置推定の信頼度が高いと判定されたときは、ずれ量検出部１５の検出範囲Ｌは±９０ｍｍに設定される。また、移動体２の位置推定の信頼度が高いときは、移動体２の位置推定の最大誤差量は±１０ｍｍである。従って、移動体２がコースアウトしたと判定する判定値における仮想ガイド線３からの移動体２の最大逸脱量は、左右両側共に１００ｍｍ（＝９０ｍｍ＋１０ｍｍ）となる。
【００５５】
移動体２の位置推定の信頼度が低いと判定されたときは、ずれ量検出部１５の検出範囲Ｌは±５０ｍｍに設定される。また、移動体２の位置推定の信頼度が低いときは、移動体２の位置推定の最大誤差量は±５０ｍｍである。従って、移動体２がコースアウトしたと判定する判定値における仮想ガイド線３からの移動体２の最大逸脱量は、左右両側共に１００ｍｍ（＝５０ｍｍ＋５０ｍｍ）となる。
【００５６】
ところで、移動体２の位置推定の信頼度に関わらず、ずれ量検出部１５の検出範囲Ｌが±９０ｍｍと一定である場合には、以下の不具合が発生する。即ち、移動体２の位置推定の信頼度が低い場合は、移動体２がコースアウトしたと判定する判定値における仮想ガイド線３からの移動体２の最大逸脱量は、左右両側共に１４０ｍｍ（＝９０ｍｍ＋５０ｍｍ）となる。このため、例えば仮想ガイド線３から壁２１（図７参照）までの距離が１２０ｍｍである場合には、移動体２が壁に干渉することがある。
【００５７】
そのような不具合を解消するために、移動体２の位置推定の信頼度に関わらず、ずれ量検出部１５の検出範囲Ｌを±５０ｍｍと小さくした場合には、移動体２の走行速度を上げることが困難となる。移動体２の走行速度を上げると、移動体２がふらつきやすくなるため、すぐに移動体２がコースアウトしたと判定されてしまう可能性がある。
【００５８】
しかし、本実施形態では、移動体２の位置推定の信頼度が低い場合は、移動体２の位置推定の信頼度が高い場合に比べて、ずれ量検出部１５の検出範囲Ｌが小さくなっている。このため、図９に示されるように、移動体２がコースアウトしたと判定する判定値における仮想ガイド線３からの移動体２の逸脱量が最大逸脱量（１００ｍｍ）であっても、移動体２が壁２１に干渉することはない。
【００５９】
以上のように本実施形態にあっては、位置推定ユニット６が移動体２の位置を推定し、ずれ量検出部１５が仮想ガイド線３の位置と移動体２の位置とに基づいて仮想ガイド線３と移動体２とのずれ量を検出し、走行制御部１６が当該ずれ量に基づいて移動体２を仮想ガイド線３に沿って走行させるように走行モータ１１及び操舵モータ１２を制御する。このとき、ずれ量検出部１５は、仮想ガイド線３と移動体２とのずれ量がずれ量検出部１５の検出範囲Ｌ内にあるかどうかを判断し、仮想ガイド線３と移動体２とのずれ量が検出範囲Ｌ内にないときは、移動体２が仮想ガイド線３に対してコースアウトしたと判定する。ずれ量検出部１５の検出範囲Ｌは、移動体２の周囲環境に応じて設定される。このため、ずれ量検出部１５の検出範囲Ｌは、移動体２の周囲環境によって変更されることになる。これにより、移動体２を仮想ガイド線３に沿って走行させる際に、移動体２のコースアウトの判定を適切に行うことができる。その結果、移動体２が周囲の壁２１等に干渉することを防止できる。
【００６０】
また、本実施形態では、ずれ量検出部１５の検出範囲Ｌは、移動体２の位置推定の信頼度に応じて設定される。このとき、移動体２の位置推定の信頼度が高くなるほど、ずれ量検出部１５の検出範囲Ｌを大きくすることにより、移動体２の位置推定の信頼度に関わらず、移動体２がコースアウトしたと判定する判定値における仮想ガイド線３からの最大逸脱量を等しくすることができる。
【００６１】
また、本実施形態では、ずれ量検出部１５の検出範囲Ｌは、移動体２の位置推定の信頼度に応じて段階的に設定される。従って、移動体２の位置推定の信頼度に応じた検出範囲Ｌを予め決めて保存しておくことで、検出範囲Ｌの設定処理を簡素化することができる。
【００６２】
また、本実施形態では、ずれ量検出部１５の検出範囲Ｌを予め最悪値に設定する必要がないため、移動体２の走行速度を上げることが可能となる。
【００６３】
なお、本発明は、上記実施形態には限定されない。例えば上記実施形態では、ずれ量検出部１５の検出範囲Ｌは、移動体２の位置推定の信頼度に応じて変更されているが、特にその形態には限られず、ずれ量検出部１５の検出範囲Ｌを、移動体２の周囲との距離関係に応じて設定してもよい。
【００６４】
図１０は、変形例として、ＳＬＡＭコントローラ１０により実行される他の演算処理手順の詳細を示すフローチャートであり、図３に対応する図である。図１０において、ＳＬＡＭコントローラ１０は、図３に示される処理手順と同様に、手順Ｓ１０１，Ｓ１０２を実行する。
【００６５】
続いて、ＳＬＡＭコントローラ１０は、レーザセンサ９の検出値に基づいて、移動体２の周囲との距離関係を判定する（手順Ｓ１０３Ａ）。そして、ＳＬＡＭコントローラ１０は、移動体２の推定位置及び移動体２の周囲との距離関係を自動走行制御ユニット８に出力する（手順Ｓ１０４Ａ）。
【００６６】
自動走行制御ユニット８の検出範囲設定部１４は、ＳＬＡＭコントローラ１０により判定された移動体２の周囲との距離関係に応じて、ずれ量検出部１５の検出範囲Ｌを段階的に設定する。従って、検出範囲設定部１４は、移動体２の周囲環境に応じて、ずれ量検出部１５の検出範囲Ｌを設定することになる。このとき、検出範囲設定部１４は、移動体２の周囲との距離が長くなるほど、ずれ量検出部１５の検出範囲Ｌを大きくする。
【００６７】
本変形例では、移動体２の周囲との距離が長くなるほど、ずれ量検出部１５の検出範囲Ｌが大きくなる。従って、移動体２の周囲との距離が長くなるほど、移動体２がコースアウトしたと判定する判定値における仮想ガイド線３からの最大逸脱量が大きくなる。
【００６８】
また、上記実施形態では、ずれ量検出部１５の検出範囲Ｌは、移動体２の周囲環境に応じて段階的に設定されているが、特にその形態には限られず、ずれ量検出部１５の検出範囲Ｌを移動体２の周囲環境に応じて連続的に設定してもよい。
【００６９】
また、上記実施形態では、移動体２の前後２箇所において仮想ガイド線３と移動体２とのずれ量が検出されているが、特にその形態には限られず、移動体２の任意の１箇所において仮想ガイド線３と移動体２とのずれ量を検出してもよい。
【００７０】
また、上記実施形態では、位置推定ユニット６は、自己位置推定技術としてレーザを利用したＳＬＡＭ手法を用いて、移動体２の位置を推定しているが、自己位置推定技術としては、特にそれには限られず、カメラの撮像画像を利用したＳＬＡＭ手法または衛星を利用したＧＮＳＳ（globalnavigation satellite system）測位法等を用いてもよい。
【００７１】
また、上記実施形態の走行制御装置４は、移動体２としてフォークリフトを仮想ガイド線３に沿って自動的に走行させる装置であるが、本発明は、例えば搬送台車等のような自動走行可能な移動体全般に適用可能である。
【符号の説明】
【００７２】
２…移動体、３…仮想ガイド線、４…走行制御装置、６…位置推定ユニット（位置推定部）、１１…走行モータ（駆動部）、１２…操舵モータ（駆動部）、１３…記憶部、１４…検出範囲設定部、１５…ずれ量検出部（検出部）、１６…走行制御部（制御部）。
【図１】
2020119214.tif 000003
【図２】
2020119214.tif 000004
【図３】
2020119214.tif 000005
【図４】
2020119214.tif 000006
【図５】
2020119214.tif 000007
【図６】
2020119214.tif 000008
【図７】
2020119214.tif 000009
【図８】
2020119214.tif 000010
【図９】
2020119214.tif 000011
【図１０】
2020119214.tif 000012