(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-05
(45)【発行日】2022-09-13
(54)【発明の名称】走行制御装置
(51)【国際特許分類】
G05D 1/02 20200101AFI20220906BHJP
【FI】
G05D1/02 H
(21)【出願番号】P 2019009398
(22)【出願日】2019-01-23
【審査請求日】2021-04-19
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100124062
【氏名又は名称】三上 敬史
(74)【代理人】
【識別番号】100148013
【氏名又は名称】中山 浩光
(72)【発明者】
【氏名】開田 宏介
(72)【発明者】
【氏名】後藤 新矢
【審査官】堀内 亮吾
(56)【参考文献】
【文献】特開2011-048776(JP,A)
【文献】国際公開第2017/158973(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
データ上で仮想的に設定された仮想ガイド線に沿って移動体を自動的に走行させる走行制御装置であって、
前記仮想ガイド線の位置を記憶する記憶部と、
前記移動体の位置を推定する位置推定部と、
前記記憶部に記憶された前記仮想ガイド線の位置と前記位置推定部により推定された前記移動体の位置とに基づいて、前記仮想ガイド線と前記移動体とのずれ量を検出する検出部と、
前記検出部により検出された前記仮想ガイド線と前記移動体とのずれ量に基づいて、前記移動体を前記仮想ガイド線に沿って走行させるように前記移動体の駆動部を制御する制御部と、
前記移動体の周囲環境に応じて前記検出部の検出範囲を設定する検出範囲設定部とを備え、
前記検出部は、前記仮想ガイド線と前記移動体とのずれ量が前記検出範囲設定部により設定された検出範囲内にあるかどうかを判断し、前記仮想ガイド線と前記移動体とのずれ量が前記検出範囲内にないときは、前記移動体が前記仮想ガイド線に対してコースアウトしたと判定
し、
前記位置推定部は、前記移動体の位置を推定すると共に、前記移動体の位置推定の信頼度を判定し、
前記検出範囲設定部は、前記移動体の位置推定の信頼度が高くなるほど前記検出部の検出範囲が大きくなるように、前記移動体の位置推定の信頼度に応じて前記検出部の検出範囲を設定する走行制御装置。
【請求項2】
前記検出範囲設定部は、前記移動体の周囲環境に応じて前記検出部の検出範囲を段階的に設定する請求項
1記載の走行制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、走行制御装置に関する。
【背景技術】
【0002】
従来の走行制御装置としては、例えば特許文献1に記載されているような技術が知られている。特許文献1に記載の走行制御装置は、地図データを保持する地図データ保持部と、仮想ガイド線データを保持する仮想ガイド線データ保持部と、周囲の物体までの距離を測定するレーザ測域センサと、地図データとレーザ測域センサから伝送されてくる測定結果とを照合して、地図データ上におけるレーザ測域センサの位置及び向きを検出する位置検出処理部と、レーザ測域センサの位置及び向きに基づいて、仮想ガイドセンサと仮想ガイド線データとのずれ量を算出するデータ変換処理部とを備え、仮想ガイドセンサと仮想ガイド線データとのずれ量に基づいて、車両を仮想ガイド線に沿って自動走行させる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来技術においては、地図データ上における車両(移動体)の自己位置を推定し、車両と地図データ上の仮想ガイド線とのずれ量を算出している。このため、車両の自己位置の推定精度が低いときは、車両と仮想ガイド線とのずれ量の算出精度も低下する。従って、車両と仮想ガイド線とのずれ量に基づいて車両が仮想ガイド線に対してコースアウトしたかどうかを判定する場合には、車両の自己位置の推定精度が低いと、車両のコースアウトの判定を適切に行うことができない。その結果、車両がコースアウトしていないと判定されたにも関わらず、実際には車両が壁等に干渉する可能性がある。
【0005】
本発明の目的は、移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる走行制御装置を提供することである。
【課題を解決するための手段】
【0006】
本発明の一態様は、データ上で仮想的に設定された仮想ガイド線に沿って移動体を自動的に走行させる走行制御装置であって、仮想ガイド線の位置を記憶する記憶部と、移動体の位置を推定する位置推定部と、記憶部に記憶された仮想ガイド線の位置と位置推定部により推定された移動体の位置とに基づいて、仮想ガイド線と移動体とのずれ量を検出する検出部と、検出部により検出された仮想ガイド線と移動体とのずれ量に基づいて、移動体を仮想ガイド線に沿って走行させるように移動体の駆動部を制御する制御部と、移動体の周囲環境に応じて検出部の検出範囲を設定する検出範囲設定部とを備え、検出部は、仮想ガイド線と移動体とのずれ量が検出範囲設定部により設定された検出範囲内にあるかどうかを判断し、仮想ガイド線と移動体とのずれ量が検出範囲内にないときは、移動体が仮想ガイド線に対してコースアウトしたと判定する。
【0007】
このような走行制御装置においては、位置推定部が移動体の位置を推定し、検出部が仮想ガイド線の位置と移動体の位置とに基づいて仮想ガイド線と移動体とのずれ量を検出し、制御部が当該ずれ量に基づいて移動体を仮想ガイド線に沿って走行させるように駆動部を制御する。このとき、検出部は、仮想ガイド線と移動体とのずれ量が検出部の検出範囲内にあるかどうかを判断し、仮想ガイド線と移動体とのずれ量が検出範囲内にないときは、移動体が仮想ガイド線に対してコースアウトしたと判定する。検出部の検出範囲は、移動体の周囲環境に応じて設定される。このため、検出部の検出範囲は、移動体の周囲環境によって変更されることになる。これにより、移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる。
【0008】
位置推定部は、移動体の位置を推定すると共に、移動体の位置推定の信頼度を判定し、検出範囲設定部は、移動体の位置推定の信頼度が高くなるほど検出部の検出範囲が大きくなるように、移動体の位置推定の信頼度に応じて検出部の検出範囲を設定してもよい。移動体の位置推定の信頼度が高くなるほど、移動体の位置推定の最大誤差量が小さくなる。そこで、移動体の位置推定の信頼度が高くなるほど、検出部の検出範囲を大きくすることにより、移動体の位置推定の信頼度に関わらず、移動体がコースアウトしたと判定する判定値における仮想ガイド線からの最大逸脱量を等しくすることができる。
【0009】
位置推定部は、移動体の位置を推定すると共に、移動体の周囲との距離関係を判定し、検出範囲設定部は、移動体の周囲との距離が長くなるほど検出部の検出範囲が大きくなるように、移動体の周囲との距離に応じて検出部の検出範囲を設定してもよい。このような構成では、移動体の周囲との距離が長くなるほど、検出部の検出範囲が大きくなる。従って、移動体の周囲との距離が長くなるほど、移動体がコースアウトしたと判定する判定値における仮想ガイド線からの最大逸脱量が大きくなる。
【0010】
検出範囲設定部は、移動体の周囲環境に応じて検出部の検出範囲を段階的に設定してもよい。このような構成では、移動体の周囲環境に応じた検出範囲を予め決めて保存しておくことで、検出部の検出範囲の設定処理を簡素化することができる。
【発明の効果】
【0011】
本発明によれば、移動体を仮想ガイド線に沿って走行させる際に、移動体のコースアウトの判定を適切に行うことができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態に係る走行制御装置を備えた走行制御システムを示す概略構成図である。
【
図2】
図1に示された走行制御装置の構成を示すブロック図である。
【
図3】
図2に示されたSLAMコントローラにより実行される演算処理手順の詳細を示すフローチャートである。
【
図4】移動体の位置推定の信頼度と移動体の位置推定の最大誤差量とずれ量検出部の検出範囲との関係を示す表である。
【
図5】
図2に示された検出範囲設定部により設定されるずれ量検出部の検出範囲を示す概念図である。
【
図6】
図2に示されたずれ量検出部により実行される検出処理手順の詳細を示すフローチャートである。
【
図7】
図2に示されたずれ量検出部により移動体がコースアウトしたと判定された状態を示す概念図である。
【
図8】
図2に示された走行制御部により実行される制御処理手順の詳細を示すフローチャートである。
【
図9】ずれ量検出部の検出範囲が小さい場合に、移動体が大きくコースアウトしている状態を示す概念図である。
【
図10】変形例として、
図2に示されたSLAMコントローラにより実行される他の演算処理手順の詳細を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、図面において、同一または同等の要素には同じ符号を付し、重複する説明を省略する。
【0014】
図1は、本発明の一実施形態に係る走行制御装置を備えた走行制御システムを示す概略構成図である。
図1において、走行制御システム1は、例えばフォークリフト等の移動体2をスタート地点3Aから目的地点3Bまで無人で走行させるシステムである。走行制御システム1は、移動体2をスタート地点3Aから目的地点3Bまでの走行経路である仮想ガイド線3に沿って自動的に走行させる走行制御装置4を具備している。
【0015】
仮想ガイド線3は、データ上で仮想的に設定された走行経路である。スタート地点3A及び目的地点3Bを含む仮想ガイド線3の位置は、2次元座標(XY座標)で表されている。ここでは、スタート地点3Aの2次元座標は、(0,0)である。目的地点3Bの2次元座標は、(100,0)である。なお、
図1では、仮想ガイド線3は、直線経路となっているが、曲線経路であってもよい。
【0016】
床面には、移動体2が走行を行うための走行指示データを関連付けた走行指示用マークである磁気マーク5が設置されている。磁気マーク5は、床面における仮想ガイド線3の脇に相当する箇所に埋設されている。
【0017】
図2は、走行制御装置4の構成を示すブロック図である。
図2において、本実施形態の走行制御装置4は、移動体2に搭載されている。走行制御装置4は、位置推定ユニット6と、磁気マークセンサ7と、自動走行制御ユニット8とを備えている。
【0018】
位置推定ユニット6は、移動体2の位置を推定する位置推定部である。位置推定ユニット6は、SLAM(simultaneous localization andmapping)手法を用いて、移動体2の自己位置を推定する。SLAMは、センサデータ及び地図データを使って自己位置推定を行う自己位置推定技術である。SLAMは、レーザレンジスキャナー等を利用して、自己位置推定と環境地図の作成とを同時に行う。
【0019】
位置推定ユニット6は、レーザセンサ9と、SLAMコントローラ10とを有している。レーザセンサ9は、移動体2の周囲にレーザ光を照射し、その反射光を受光することにより、移動体2の周囲の物体までの距離を検出する。
【0020】
SLAMコントローラ10は、CPU、RAM、ROM及び入出力インターフェース等により構成されている。SLAMコントローラ10は、レーザセンサ9により検出された移動体2の周囲の物体までの距離と移動体2の周囲の環境地図データとに基づいて、移動体2の位置の推定演算を行う。移動体2の位置は、2次元座標(XY座標)及び向きで表される。
【0021】
このとき、SLAMコントローラ10は、例えばパーティクルフィルタ(逐次モンテカルロ法)と呼ばれる時系列データの予測手法を用いて、移動体2の自己位置を確率的に推定する。パーティクルフィルタでは、現状態から起こりうる多数の次状態を多数のパーティクル(粒子)で表現し、全パーティクルの尤度(追跡したい対象物らしさ)に従って算出された重みつき平均を次状態であると推測して追跡を行う。
【0022】
図3は、SLAMコントローラ10により実行される演算処理手順の詳細を示すフローチャートである。本処理は、移動体2の電源がONになると実行される。
【0023】
図3において、SLAMコントローラ10は、まずレーザセンサ9の検出値を取得する(手順S101)。そして、SLAMコントローラ10は、移動体2の位置の推定演算を行う(手順S102)。具体的には、SLAMコントローラ10は、レーザセンサ9により検出された移動体2の周囲の物体までの距離と移動体2の周囲環境の地図とをマッチングさせて、移動体2の位置の推定演算を行う。これにより、移動体2の推定位置が得られる。
【0024】
続いて、SLAMコントローラ10は、位置推定ユニット6による移動体2の位置推定の信頼度を判定する(手順S103)。具体的には、SLAMコントローラ10は、例えばパーティクルの数、移動体2の周囲の物体までの距離と移動体2の周囲環境の地図とのマッチング度合い及び位置推定結果の分散値等に基づいて、移動体2の位置推定の信頼度を判定する。このとき、SLAMコントローラ10は、
図4に示されるように、移動体2の位置推定の信頼度を「高」、「中」、「低」の3段階に表現する。
【0025】
そして、SLAMコントローラ10は、移動体2の推定位置及び移動体2の位置推定の信頼度を自動走行制御ユニット8に出力し(手順S104)、手順S101を再び実行する。
【0026】
図2に戻り、磁気マークセンサ7は、特に図示はしないが、移動体2の下部に取り付けられている。磁気マークセンサ7は、磁気マーク5を検出するセンサである。
【0027】
自動走行制御ユニット8は、位置推定ユニット6により推定された移動体2の位置と磁気マークセンサ7の検出値とに基づいて、所定の処理を行い、移動体2をスタート地点3Aから目的地点3Bまで自動的に走行させるように走行モータ11及び操舵モータ12を制御する。
【0028】
走行モータ11は、走行輪(図示せず)を回転させるモータである。操舵モータ12は、操舵輪(図示せず)を転舵させるモータである。走行モータ11及び操舵モータ12は、移動体2の駆動部を構成している。
【0029】
自動走行制御ユニット8は、CPU、RAM、ROM及び入出力インターフェース等により構成されている。自動走行制御ユニット8は、記憶部13と、検出範囲設定部14と、ずれ量検出部15(検出部)と、走行制御部16(制御部)とを有している。
【0030】
記憶部13は、仮想ガイド線3及び磁気マーク5の位置と走行指示データ等といった移動体2の走行に関する情報を記憶する。記憶部13は、仮想ガイド線3及び磁気マーク5の位置を2次元座標として記憶している。走行指示データは、上述したように磁気マーク5に関連付けられている。走行指示データとしては、例えば加速指示、停止指示、右折指示及び左折指示等がある。
【0031】
検出範囲設定部14は、SLAMコントローラ10により判定された移動体2の位置推定の信頼度に応じて、ずれ量検出部15の検出範囲L(
図5参照)を設定する。移動体2の位置推定の信頼度は、移動体2の周囲環境によって変化する。従って、検出範囲設定部14は、移動体2の周囲環境に応じて、ずれ量検出部15の検出範囲Lを設定することになる。
【0032】
図4に示されるように、移動体2の位置推定の信頼度が高くなるほど、移動体2の位置推定の最大誤差量が小さくなる。例えば、移動体2の位置推定の信頼度が高いときは、移動体2の位置推定の最大誤差量は±10mmである。移動体2の位置推定の信頼度が中程度であるときは、移動体2の位置推定の最大誤差量は±30mmである。移動体2の位置推定の信頼度が低いときは、移動体2の位置推定の最大誤差量は±50mmである。なお、最大誤差量は、3σを指標としている。
【0033】
そこで、検出範囲設定部14は、移動体2の位置推定の最大誤差量を加味して、ずれ量検出部15の検出範囲Lを段階的に設定する。このとき、検出範囲設定部14は、
図4に示されるように、移動体2の位置推定の信頼度が高くなるほど、ずれ量検出部15の検出範囲Lを大きくする。例えば、移動体2の位置推定の信頼度が高いと判定されたときは、ずれ量検出部15の検出範囲Lは±90mmに設定される。移動体2の位置推定の信頼度が中程度と判定されたときは、ずれ量検出部15の検出範囲Lは±70mmに設定される。移動体2の位置推定の信頼度が低いと判定されたときは、ずれ量検出部15の検出範囲Lは±50mmに設定される。
【0034】
ここでは、ずれ量検出部15の検出範囲Lは、移動体2の位置推定の信頼度に応じて3段階に設定されているが、特にそれには限られず、ずれ量検出部15の検出範囲Lを2段階に設定してもよいし、或いは4段階以上に設定してもよい。
【0035】
ずれ量検出部15は、記憶部13に記憶された仮想ガイド線3の位置と位置推定ユニット6により推定された移動体2の位置とに基づいて、仮想ガイド線3と移動体2とのずれ量を検出する。このとき、ずれ量検出部15は、
図5に示されるように、移動体2の前後2箇所において仮想ガイド線3と移動体2とのずれ量を検出する。これにより、ずれ量検出部15は、仮想ガイド線3の位置座標と移動体2の位置座標とのずれ量だけでなく、仮想ガイド線3の向きと移動体2の向きとのずれ量も検出することができる。
【0036】
走行制御装置4は、機能的には、データ上で仮想ガイド線3を仮想的に検出する前後2つの仮想ガイドセンサ20を有することになる。この場合、仮想ガイドセンサ20の長さは、移動体2の位置推定の信頼度に応じて異なる。移動体2の位置推定の信頼度が高いと判定された際の仮想ガイドセンサ20の長さは、
図5(a)に示されるようにL1である。移動体2の位置推定の信頼度が低いと判定された際の仮想ガイドセンサ20の長さは、
図5(b)に示されるようにL2(<L1)である。
【0037】
ずれ量検出部15の検出範囲Lは、
図5に示されるように、仮想ガイドセンサ20の左右方向(長手方向)の中心が仮想ガイド線3上にある状態での仮想ガイドセンサ20の長さに一致する。従って、移動体2の位置推定の信頼度が高いと判定された際のずれ量検出部15の検出範囲Lは、L1である。移動体2の位置推定の信頼度が低いと判定された際のずれ量検出部15の検出範囲Lは、L2である。
【0038】
また、ずれ量検出部15は、仮想ガイド線3と移動体2とのずれ量が検出範囲設定部14により設定されたずれ量検出部15の検出範囲L内にあるかどうかを判断し、当該ずれ量が検出範囲L内にないときは、移動体2が仮想ガイド線3に対してコースアウトしたと判定する。
【0039】
図6は、ずれ量検出部15により実行される検出処理手順の詳細を示すフローチャートである。本処理も、SLAMコントローラ10による演算処理と同様に、移動体2の電源がONになると実行される。
【0040】
図6において、ずれ量検出部15は、まずSLAMコントローラ10により得られた移動体2の推定位置と、検出範囲設定部14により設定されたずれ量検出部15の検出範囲とを取得する(手順S111)。続いて、ずれ量検出部15は、仮想ガイド線3の位置と移動体2の推定位置とに基づいて、仮想ガイド線3と移動体2とのずれ量を算出する(手順S112)。
【0041】
続いて、ずれ量検出部15は、仮想ガイド線3と移動体2とのずれ量がずれ量検出部15の検出範囲L内であるかどうかを判断する(手順S113)。ずれ量検出部15は、仮想ガイド線3と移動体2とのずれ量がずれ量検出部15の検出範囲L内であるときは、手順S111を再び実行する。
【0042】
ずれ量検出部15は、
図7に示されるように、仮想ガイド線3と移動体2とのずれ量がずれ量検出部15の検出範囲L内にないときは、移動体2が仮想ガイド線3に対してコースアウトしたと判定し(手順S114)、手順S111を再び実行する。
【0043】
移動体2が仮想ガイド線3に対してコースアウトした状態は、仮想ガイドセンサ20が仮想ガイド線3から外れた状態に相当する。
図7(a)は、移動体2の位置推定の信頼度が高いと判定された際に、移動体2がコースアウトした状態を示している。
図7(b)は、移動体2の位置推定の信頼度が低いと判定された際に、移動体2がコースアウトした状態を示している。
【0044】
図2に戻り、走行制御部16は、ずれ量検出部15により検出された仮想ガイド線3と移動体2とのずれ量に基づいて、移動体2を仮想ガイド線3に沿って走行させるように走行モータ11及び操舵モータ12を制御する。また、走行制御部16は、磁気マークセンサ7により磁気マーク5が検出されたときに、当該磁気マーク5に関連付けられた走行指示データに従って移動体2を走行させるように走行モータ11及び操舵モータ12を制御する。
【0045】
さらに、走行制御部16は、ずれ量検出部15により移動体2がコースアウトしたと判定されたときは、その旨を警告表示器17に通知すると共に、移動体2を強制的に停止させるように走行モータ11を制御する。
【0046】
図8は、走行制御部16により実行される制御処理手順の詳細を示すフローチャートである。本処理も、SLAMコントローラ10による演算処理と同様に、移動体2の電源がONになると実行される。
【0047】
図8において、走行制御部16は、ずれ量検出部15により移動体2がコースアウトしていないと判定されたかを判断する(手順S121)。走行制御部16は、移動体2がコースアウトしていないと判定されたときは、磁気マークセンサ7により磁気マーク5が検出されたかどうかを判断する(手順S122)。
【0048】
走行制御部16は、磁気マーク5が検出されたときは、当該磁気マーク5の番号に対応した走行指示データを記憶部13から取得する(手順S123)。そして、走行制御部16は、取得した走行指示データに応じた制御信号を走行モータ11及び操舵モータ12に出力する(手順S124)。走行制御部16は、例えば取得した走行指示データが加速指示である場合には、走行モータ11の回転速度を高くするような制御信号を走行モータ11に出力する。これにより、移動体2の走行速度が上昇するようになる。
【0049】
走行制御部16は、手順S124が実行された後、または手順S122で磁気マーク5が検出されていないときは、ずれ量検出部15により検出された仮想ガイド線3と移動体2とのずれ量を取得する(手順S125)。そして、走行制御部16は、仮想ガイド線3と移動体2とのずれ量が0となるような制御信号を走行モータ11及び操舵モータ12に出力する(手順S126)。これにより、移動体2の位置座標及び向きが仮想ガイド線3に近づくようになる。
【0050】
続いて、走行制御部16は、移動体2が目的地点3Bに達したかどうかを判断する(手順S127)。走行制御部16は、移動体2が目的地点3Bに達していないときは、手順S121を再び実行する。走行制御部16は、移動体2が目的地点3Bに達したときは、本処理を終了する。
【0051】
走行制御部16は、手順S121で移動体2がコースアウトしたと判定されたときは、警告信号を警告表示器17に出力する(手順S128)。これにより、警告表示器17により警告表示が行われるため、ユーザは移動体2がコースアウトしたと認識することができる。なお、警告表示器17は、警告表示を行う際に、警報音を発してもよい。
【0052】
また、走行制御部16は、移動体2を停止させるような制御信号(停止用制御信号)を走行モータ11に出力し(手順S129)、本処理を終了する。これにより、移動体2が緊急停止する。
【0053】
以上のように構成された走行制御装置4においては、上述したように、仮想ガイド線3と移動体2とのずれ量がずれ量検出部15の検出範囲L内にないときは、移動体2がコースアウトしたと判定される(
図5及び
図7参照)。
【0054】
ここで、
図4に示されるように、移動体2の位置推定の信頼度が高いと判定されたときは、ずれ量検出部15の検出範囲Lは±90mmに設定される。また、移動体2の位置推定の信頼度が高いときは、移動体2の位置推定の最大誤差量は±10mmである。従って、移動体2がコースアウトしたと判定する判定値における仮想ガイド線3からの移動体2の最大逸脱量は、左右両側共に100mm(=90mm+10mm)となる。
【0055】
移動体2の位置推定の信頼度が低いと判定されたときは、ずれ量検出部15の検出範囲Lは±50mmに設定される。また、移動体2の位置推定の信頼度が低いときは、移動体2の位置推定の最大誤差量は±50mmである。従って、移動体2がコースアウトしたと判定する判定値における仮想ガイド線3からの移動体2の最大逸脱量は、左右両側共に100mm(=50mm+50mm)となる。
【0056】
ところで、移動体2の位置推定の信頼度に関わらず、ずれ量検出部15の検出範囲Lが±90mmと一定である場合には、以下の不具合が発生する。即ち、移動体2の位置推定の信頼度が低い場合は、移動体2がコースアウトしたと判定する判定値における仮想ガイド線3からの移動体2の最大逸脱量は、左右両側共に140mm(=90mm+50mm)となる。このため、例えば仮想ガイド線3から壁21(
図7参照)までの距離が120mmである場合には、移動体2が壁に干渉することがある。
【0057】
そのような不具合を解消するために、移動体2の位置推定の信頼度に関わらず、ずれ量検出部15の検出範囲Lを±50mmと小さくした場合には、移動体2の走行速度を上げることが困難となる。移動体2の走行速度を上げると、移動体2がふらつきやすくなるため、すぐに移動体2がコースアウトしたと判定されてしまう可能性がある。
【0058】
しかし、本実施形態では、移動体2の位置推定の信頼度が低い場合は、移動体2の位置推定の信頼度が高い場合に比べて、ずれ量検出部15の検出範囲Lが小さくなっている。このため、
図9に示されるように、移動体2がコースアウトしたと判定する判定値における仮想ガイド線3からの移動体2の逸脱量が最大逸脱量(100mm)であっても、移動体2が壁21に干渉することはない。
【0059】
以上のように本実施形態にあっては、位置推定ユニット6が移動体2の位置を推定し、ずれ量検出部15が仮想ガイド線3の位置と移動体2の位置とに基づいて仮想ガイド線3と移動体2とのずれ量を検出し、走行制御部16が当該ずれ量に基づいて移動体2を仮想ガイド線3に沿って走行させるように走行モータ11及び操舵モータ12を制御する。このとき、ずれ量検出部15は、仮想ガイド線3と移動体2とのずれ量がずれ量検出部15の検出範囲L内にあるかどうかを判断し、仮想ガイド線3と移動体2とのずれ量が検出範囲L内にないときは、移動体2が仮想ガイド線3に対してコースアウトしたと判定する。ずれ量検出部15の検出範囲Lは、移動体2の周囲環境に応じて設定される。このため、ずれ量検出部15の検出範囲Lは、移動体2の周囲環境によって変更されることになる。これにより、移動体2を仮想ガイド線3に沿って走行させる際に、移動体2のコースアウトの判定を適切に行うことができる。その結果、移動体2が周囲の壁21等に干渉することを防止できる。
【0060】
また、本実施形態では、ずれ量検出部15の検出範囲Lは、移動体2の位置推定の信頼度に応じて設定される。このとき、移動体2の位置推定の信頼度が高くなるほど、ずれ量検出部15の検出範囲Lを大きくすることにより、移動体2の位置推定の信頼度に関わらず、移動体2がコースアウトしたと判定する判定値における仮想ガイド線3からの最大逸脱量を等しくすることができる。
【0061】
また、本実施形態では、ずれ量検出部15の検出範囲Lは、移動体2の位置推定の信頼度に応じて段階的に設定される。従って、移動体2の位置推定の信頼度に応じた検出範囲Lを予め決めて保存しておくことで、検出範囲Lの設定処理を簡素化することができる。
【0062】
また、本実施形態では、ずれ量検出部15の検出範囲Lを予め最悪値に設定する必要がないため、移動体2の走行速度を上げることが可能となる。
【0063】
なお、本発明は、上記実施形態には限定されない。例えば上記実施形態では、ずれ量検出部15の検出範囲Lは、移動体2の位置推定の信頼度に応じて変更されているが、特にその形態には限られず、ずれ量検出部15の検出範囲Lを、移動体2の周囲との距離関係に応じて設定してもよい。
【0064】
図10は、変形例として、SLAMコントローラ10により実行される他の演算処理手順の詳細を示すフローチャートであり、
図3に対応する図である。
図10において、SLAMコントローラ10は、
図3に示される処理手順と同様に、手順S101,S102を実行する。
【0065】
続いて、SLAMコントローラ10は、レーザセンサ9の検出値に基づいて、移動体2の周囲との距離関係を判定する(手順S103A)。そして、SLAMコントローラ10は、移動体2の推定位置及び移動体2の周囲との距離関係を自動走行制御ユニット8に出力する(手順S104A)。
【0066】
自動走行制御ユニット8の検出範囲設定部14は、SLAMコントローラ10により判定された移動体2の周囲との距離関係に応じて、ずれ量検出部15の検出範囲Lを段階的に設定する。従って、検出範囲設定部14は、移動体2の周囲環境に応じて、ずれ量検出部15の検出範囲Lを設定することになる。このとき、検出範囲設定部14は、移動体2の周囲との距離が長くなるほど、ずれ量検出部15の検出範囲Lを大きくする。
【0067】
本変形例では、移動体2の周囲との距離が長くなるほど、ずれ量検出部15の検出範囲Lが大きくなる。従って、移動体2の周囲との距離が長くなるほど、移動体2がコースアウトしたと判定する判定値における仮想ガイド線3からの最大逸脱量が大きくなる。
【0068】
また、上記実施形態では、ずれ量検出部15の検出範囲Lは、移動体2の周囲環境に応じて段階的に設定されているが、特にその形態には限られず、ずれ量検出部15の検出範囲Lを移動体2の周囲環境に応じて連続的に設定してもよい。
【0069】
また、上記実施形態では、移動体2の前後2箇所において仮想ガイド線3と移動体2とのずれ量が検出されているが、特にその形態には限られず、移動体2の任意の1箇所において仮想ガイド線3と移動体2とのずれ量を検出してもよい。
【0070】
また、上記実施形態では、位置推定ユニット6は、自己位置推定技術としてレーザを利用したSLAM手法を用いて、移動体2の位置を推定しているが、自己位置推定技術としては、特にそれには限られず、カメラの撮像画像を利用したSLAM手法または衛星を利用したGNSS(globalnavigation satellite system)測位法等を用いてもよい。
【0071】
また、上記実施形態の走行制御装置4は、移動体2としてフォークリフトを仮想ガイド線3に沿って自動的に走行させる装置であるが、本発明は、例えば搬送台車等のような自動走行可能な移動体全般に適用可能である。
【符号の説明】
【0072】
2…移動体、3…仮想ガイド線、4…走行制御装置、6…位置推定ユニット(位置推定部)、11…走行モータ(駆動部)、12…操舵モータ(駆動部)、13…記憶部、14…検出範囲設定部、15…ずれ量検出部(検出部)、16…走行制御部(制御部)。