以下、自律走行体の一実施形態について説明する。
図1及び図2に示すように、自律走行体10は、走行体としての車両20と、車両20に搭載されたセンサ31と、車両20に搭載された制御装置32と、通信I/F35と、を備える。車両20は、車体21と、複数の車輪22と、を備える。自律走行体10は、例えば、荷を搬送する搬送台車である。
本実施形態の車輪22は、全方向移動車輪である。全方向移動車輪とは、車軸と一体となって回転することに加えて、車軸の軸線方向への移動を許容する車輪である。車輪22は、4つ設けられている。車輪22の回転数、及び回転方向が制御されることで、車両20は、車体21の向きを維持した状態での全方向への移動、車体21の向きを変更しながらの移動、移動しない状態での車体21の向きの変更が可能である。なお、上記した「全方向」とは、車両20が走行する路面上や床面上での移動方向を示す。
通信I/F35は、携帯通信端末等の通信機器と通信を行うための通信インターフェースである。通信端末は、例えば、自律走行体10の使用者が所持している。通信I/F35は、制御装置32により制御されることで、通信端末への情報の送信と、通信端末からの情報の受信とを行うことができる。
図2に示すように、自律走行体10は、車輪22を駆動させる駆動機構41を備える。駆動機構41は、車輪22を回転させるためのモータ42と、モータ42を駆動させるモータドライバ43と、を備える。なお、図示は省略するが、モータ42及びモータドライバ43は、車輪22の数と同数設けられる。モータドライバ43は、制御装置32からの指令に応じてモータ42の回転数を制御する。制御装置32は、モータドライバ43を介してモータ42の回転数を制御することで、車両20の進行方向を制御可能である。
次に、センサ31及び制御装置32について詳細に説明する。
センサ31としては、制御装置32に障害物を検出させることが可能なものが用いられる。本実施形態のセンサ31は、レーザーレンジファインダである。レーザーレンジファインダは、レーザーを周辺に照射し、レーザーが当たった部分から反射された反射光を受光することで距離を測定する距離計である。本実施形態では、水平方向への照射角度を変更しながらレーザーを照射する二次元のレーザーレンジファインダが用いられている。
レーザーが当たった部分を照射点とすると、センサ31は照射点までの距離を照射角度に対応付けて測定する。即ち、センサ31は、車両20と照射点との距離を示す相対座標を測定できる。本実施形態において、センサ31の水平方向へのレーザーの照射可能角度は270°である。
図1に示すように、レーザーの照射可能角度の中央を基準軸Bとすると、照射可能角度は基準軸B±135度の範囲である。センサ31によって測定される相対座標は、基準軸Bの延びる方向をY軸、水平方向のうちY軸に直交する方向をX軸とする直交座標系の座標である。以下の説明において、X軸の延びる方向をX軸方向、Y軸の延びる方向をY軸方向とする。
図2に示すように、制御装置32は、CPU33と、RAM、ROM及び磁気記憶装置等からなる記憶部34と、を備える。記憶部34には、自律走行体10を制御するための種々のプログラムが記憶されている。制御装置32は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、即ち、特定用途向け集積回路:ASICを備えてもよい。処理回路である制御装置32は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASIC等の1つ以上の専用のハードウェア回路、或いは、それらの組み合わせを含み得る。プロセッサは、CPU、並びに、RAM及びROM等のメモリを含む。メモリは、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
制御装置32の記憶部34には、地図情報が記憶されている。地図情報とは、自律走行体10の用いられる環境の形状、広さなど、自律走行体10の周辺環境の物理的構造に関する情報である。地図情報としては、例えば、建築物の壁、柱など位置の変化しにくい物の座標が記憶される。地図情報は、SLAM:Simultaneous Localization and Mappingによるマッピングにより作成されてもよいし、予め作成されていてもよい。マッピングは、例えば、センサ31によって得られた照射点の座標から局所地図を作成し、この局所地図を自己位置に応じて組み合わせることによって行われる。
図1に示すように、車両20を走行させる際には、制御装置32は、走行経路Rを生成する。走行経路Rは、車両20の出発点である現在位置から最終到達点までの経路である。なお、車両20が直進している場合、走行経路Rと基準軸Bとは同一方向を向く。図1では、走行経路Rと基準軸Bとが重なり合っている。走行経路Rの生成方法としては、走行可能経路をグリッドマップ化して経路生成を行う方法や、ポテンシャル場を用いたポテンシャル法など種々の手法を用いることができる。
制御装置32は、車両20から所定距離離れた走行経路R上の位置を目標点P1とし、目標点P1に向けて走行するように駆動機構41を制御する。制御装置32は、Pure Pursuit法による経路追従を行うといえる。本実施形態において、制御装置32は、障害物を回避する場合を除いて、車両20が走行経路Rを走行するように駆動機構41を制御する。なお、車両20が走行経路Rを走行している状態とは、車両20の所定位置P2が走行経路R上に位置するように車両20が走行している状態である。所定位置P2は、車両20の任意の位置であり、予め定められた固定位置である。本実施形態では、車体21のY軸方向の中心であり、かつ、車体21のX軸方向の中心である位置を所定位置P2としている。即ち、所定位置P2は、車体21における水平方向の中心位置といえる。制御装置32は、センサ31の基準軸Bが車両20の進行方向を向くように車両20を走行させる。また、制御装置32は、車両20の走行中に、障害物と車両20とが接触しないように図3に示す回避制御を行う。回避制御は、所定の制御周期で繰り返し行われる。
図3及び図4に示すように、ステップS1において、制御装置32は、探索領域A1内に障害物が存在するか否かを判定する。探索領域A1は、長方形状の領域である。探索領域A1は、X軸方向に延びる2つの仮想的な長辺LS1,LS2と、Y軸方向に延びる2つの仮想的な短辺SS1,SS2とで囲まれる領域である。X軸方向に延びる2つの長辺LS1,LS2のうち一方の長辺LS1は車両20の所定位置P2を通過し、他方の長辺LS2は車両20よりも進行方向に位置する。探索領域A1は、車両20から車両20の走行する走行経路Rの延びる方向に拡がる領域である。
探索領域A1のX軸方向の寸法、及び探索領域A1のY軸方向の寸法はセンサ31による障害物の検出可能範囲内で任意の値を設定することができる。本実施形態であれば、センサ31によって測定される距離から障害物の検出を行うため、センサ31による測定可能距離の範囲内で探索領域A1のX軸方向の寸法、及び探索領域A1のY軸方向の寸法は設定される。
探索領域A1のX軸方向の寸法は、走行経路Rの延びる方向に交差する方向に対して障害物の探索をどこまで行うかにより定められている。探索領域A1のX軸方向の寸法は、例えば、車両20が走行すると想定される場所によって異なり、部屋のレイアウトや、道路の幅等によって異なる。自律走行体10の走行する場所が予め定まっている場合、探索領域A1のX軸方向の寸法は、場所に応じて予め設定された固定値であってもよい。自律走行体10の走行する場所が定まっていない場合、制御装置32は、走行する場所に応じて探索領域A1のX軸方向の寸法を変更してもよい。
探索領域A1のY軸方向の寸法は、車両20の走行経路Rの延びる方向に対して障害物の探索をどこまで行うかにより定められている。本実施形態では、所定位置P2から目標点P1までのY軸方向の距離を探索領域A1のY軸方向の寸法、即ち、探索領域A1の短辺SS1,SS2の寸法としている。探索領域A1のY軸方向の寸法は、例えば、障害物の検出から障害物を回避可能な位置まで車両20を移動させるのに要する時間等に応じて設定される。なお、障害物の回避に関して目標点P1については必ずしも長辺LS2上に設ける必要はなく、車両20の回避時の俊敏性と目標追従性を考慮して適宜位置をずらして設定させてもよい。
探索領域A1は、走行経路Rを間に挟んで位置する第1領域A11及び第2領域A12を備える。第1領域A11及び第2領域A12は、走行経路RからX軸方向に拡がる領域である。第1領域A11は、走行経路Rと短辺SS1との間の領域である。第2領域A12は、走行経路Rと短辺SS2との間の領域である。
制御装置32による障害物の検出は、センサ31の検出結果から行われる。制御装置32は、センサ31から測定結果を取得する。制御装置32は、例えば、レーザーが当たった複数の照射点のうち、所定範囲内のものについては同一の障害物に当たった点群とみなす。制御装置32は、探索領域A1内に位置する点群を障害物として検出する。制御装置32は、点群を構成する照射点の相対座標から障害物の相対座標を認識することができる。
ステップS1の判定の結果、探索領域A1内に障害物が存在しない場合、制御装置32は回避制御を終了する。一方で、ステップS1の判定の結果、探索領域A1内に障害物が存在する場合、制御装置32はステップS2の処理を行う。ステップS1の処理を行うことで、制御装置32は、障害物判定部となる。
制御装置32は、ステップS2において、探索領域A1内に回避可能領域AAが存在するか否かを判定する。まず、制御装置32は、探索領域A1内の回避可能領域AAを探索する。回避可能領域AAの探索は、例えば、図4に矢印Y1で示すように基準軸Bを中心として、探索領域A1内を時計回りに探索した後に、矢印Y2で示すように反時計回りに探索領域A1内を探索することで行われる。回避可能領域AAは、障害物からX軸方向に車両20を回避させることが可能な領域である。回避可能領域AAは、例えば、車両20が障害物とX軸方向に並んだときに、障害物との距離を所定値以上に保った状態で、Y軸方向に進行可能な空間を示す。なお、所定値とは、センサ31の検出精度や、障害物が移動体である可能性を考慮した上で、障害物と車両20との接触を抑止できるように設定されている。
制御装置32は、探索領域A1内で、障害物からX軸方向への寸法が閾値以上の空間を回避可能領域AAと判断する。X軸方向は、水平方向のうち走行経路Rに直交する方向である回避方向である。なお、閾値とは、車両20と障害物との距離を所定値以上に保った状態で車両20が走行可能な寸法に基づき設定されている。図5に示す例では、探索領域A1内に1つの障害物O1が存在する。制御装置32は、障害物O1と探索領域A1の各短辺SS1,SS2との間のX軸方向の寸法を測定する。障害物O1と探索領域A1の短辺SS1との間の空間、及び障害物O1と探索領域A1の短辺SS2との間の空間のそれぞれは、X軸方向への寸法が閾値以上である回避可能領域AAとなる。図5に示す例では、探索領域A1内に存在する障害物O1が1つのみのため、障害物O1と探索領域A1の短辺SS1,SS2との間のX軸方向への寸法から回避可能領域AAが探索領域A1内に存在するかを判定している。探索領域A1内に複数の障害物が存在する場合、障害物同士の間のX軸方向への寸法によって障害物同士の間に回避可能領域AAが存在するか否かが判定される。なお、探索領域A1内に複数の障害物が存在する場合、障害物同士の間の水平方向に対する最短距離から障害物同士の間に回避可能領域AAが存在するか否かが判定されてもよい。この場合、回避方向とは、水平方向のうち走行経路Rに交差している方向であればよく、回避方向とX軸方向とは一致していなくてもよい。
図3に示すように、ステップS2の判定の結果、探索領域A1内に回避可能領域AAが存在しない場合、制御装置32はステップS10の処理を行う。ステップS2の判定の結果、探索領域A1内に回避可能領域AAが存在する場合、制御装置32はステップS3の処理を行う。ステップS2の処理を行うことで、制御装置32は、探索部となる。
図3及び図5に示すように、ステップS3において、制御装置32は、回避行動を行う場合に用いる1つの回避可能領域AAを選択する。回避行動とは、車両20の進行方向を回避可能領域AAに向かうように変更することで、車両20を走行経路Rから離間させて障害物を回避させることである。以下、回避行動を行う場合に用いる回避可能領域AAを回避領域SAと称する。探索領域A1内に複数の回避可能領域AAが存在する場合、制御装置32は、センサ31から回避可能領域AAのX軸方向の中央Cまでの距離を算出する。制御装置32は、センサ31から中央Cまでの距離が最も短い回避可能領域AA、即ち、車両20から最も近い回避可能領域AAを回避領域SAとして選択する。制御装置32は、回避可能領域AAが1つの場合、当該回避可能領域AAを回避領域SAとして選択する。図5に示す例では、障害物O1のX軸方向の両側に存在する回避可能領域AAのうち第2領域A12側の回避可能領域AAが回避領域SAとなる。
次に、ステップS4において、制御装置32は、進行方向変更領域A2内に障害物が存在しているか否かを判定する。進行方向変更領域A2は、車両20に回避行動を行わせるか否かを判定するために設定された領域である。なお、以下の説明において、進行方向変更領域A2を変更領域A2と称する。変更領域A2は、探索領域A1内の領域である。変更領域A2は、長方形状の領域である。変更領域A2は、X軸方向に延びる2つの仮想的な長辺LS3,LS4と、Y軸方向に延びる2つの仮想的な短辺SS3,SS4とで囲まれる領域である。X軸方向に延びる2つの長辺LS3,LS4のうち一方の長辺LS3は所定位置P2を通過し、他方の長辺LS4は車両20よりも進行方向に位置する。変更領域A2は、車両20から走行経路Rの延びる方向に拡がる領域といえる。
変更領域A2は、探索領域A1よりも狭い。なお、「狭い」とは、XY平面での変更領域A2の面積が探索領域A1よりも小さいことをいう。変更領域A2のY軸方向の寸法は、探索領域A1のY軸方向の寸法より短い。変更領域A2のX軸方向の寸法は、探索領域A1のX軸方向の寸法より短い。
変更領域A2のY軸方向の寸法、即ち、変更領域A2の短辺SS3,SS4の寸法により、車両20が回避行動を開始する際の回避開始距離が定まる。制御装置32は、車両20と障害物とのY軸方向の離間距離が変更領域A2のY軸方向の寸法未満になったことを契機として回避行動を開始する。
変更領域A2のX軸方向の寸法により、回避行動を行う際の回避距離が定まる。回避距離とは、車両20と障害物とのX軸方向の間隔である。変更領域A2のX軸方向の寸法は、車両20のX軸方向の最長の寸法よりも長い寸法であり、車両20のX軸方向の寸法と変更領域A2のX軸方向の寸法の差分から回避距離が定まる。
ステップS4の判定の結果、変更領域A2内に障害物が存在する場合、制御装置32はステップS5の処理を行う。ステップS4の判定の結果、変更領域A2内に障害物が存在しない場合、制御装置32はステップS6の処理を行う。
図3及び図6に示すように、ステップS5において、制御装置32は、車両20に回避行動を行わせる。制御装置32は、駆動機構41を制御することで車両20の進行方向を回避領域SAに向かうように変更する。車両20は、回避領域SAに向けて進行する。回避行動は、走行経路R上から回避領域SAに向けて、車両20を走行経路Rに対して斜めに走行させることで行われる。回避行動を行うと、車両20のX座標は、走行経路RのX座標から遠ざかっていくことになり、車両20は走行経路Rから離間することになる。詳細にいえば、車両20の所定位置P2が走行経路RからX軸方向に離間していくことになる。走行経路Rは、回避行動を行わない場合に車両20が走行する経路といえる。このように、変更領域A2内に障害物が存在する場合、障害物を回避するように車両20は走行することになる。変更領域A2は、検出した障害物に対して、実際に回避行動を行うか否かの判定を行うための領域といえる。探索領域A1内に障害物が存在している場合であっても、変更領域A2内に障害物が存在しない場合には回避行動は行われず、変更領域A2内に障害物が存在している場合に回避行動が行われる。ステップS4及びステップS5の処理を行うことで、制御装置32は進行方向変更部となる。
ステップS6において、制御装置32は車両20に走行経路Rを走行させる。詳細にいえば、制御装置32は、車両20が走行経路Rを走行している場合には車両20が走行経路Rを走行している状態を維持する。また、制御装置32は、図7に示すように車両20が回避行動を終えることで、変更領域A2内に障害物が存在しなくなると、車両20を走行経路Rに復帰させる。
図3に示すように、ステップS5又はステップS6の処理を終えると、制御装置32は、回避制御を終えて、次の制御周期の回避制御に移行する。ステップS4にて障害物が存在していると判定されている間は、ステップS5にて回避行動が行われることになる。一方、車両20が障害物を通過し、障害物が変更領域A2内に存在しなくなると、ステップS4にて障害物が存在しないと判定されることになり、制御装置32は車両20に走行経路Rを走行させる。ステップS4にて障害物が存在していると判定された次の制御周期では、ステップS2において車両20の回避行動中に探索領域A1内の回避可能領域AAが探索されることになる。ステップS4にて障害物が存在していないと判定された次の制御周期では、ステップS2において車両20が走行経路Rを走行中に探索領域A1内の回避可能領域AAが探索されることになる。以下、車両20が走行経路Rを走行中に行われる回避可能領域AAの探索と、車両20の回避行動中に行われる回避可能領域AAの探索について詳細に説明を行う。
図6に示すように、車両20が走行経路Rを走行している場合、制御装置32は走行経路Rを軸として線対称となるように変更領域A2を設定する。同様に、車両20が走行経路Rを走行している場合、制御装置32は、走行経路Rを軸として線対称となるように探索領域A1を設定する。車両20が走行経路Rを走行している場合、変更領域A2及び探索領域A1のX軸方向の中心は走行経路Rになるといえる。
図7に示すように、回避行動により車両20が走行経路Rから離間している場合、制御装置32は車両20に追従して変更領域A2を走行経路Rから離間させる。変更領域A2は、車両20を基準として設定された領域といえる。回避行動により車両20が走行経路Rから離間している場合、制御装置32は走行経路Rを軸として線対称となるように探索領域A1を設定する。探索領域A1は、車両20が走行経路Rを走行している場合であっても、車両20が走行経路Rから離間している場合であっても同一位置に設定されるといえる。探索領域A1は、車両20が走行経路Rを走行している場合には所定位置P2をX軸方向の中心とする領域であり、車両20が走行経路Rから離間している場合には所定位置P2とY座標が同一でありX座標が走行経路R上に位置する基準位置P3をX軸方向の中心とする領域といえる。基準位置P3は、所定位置P2から走行経路Rに垂線を引いた場合に垂線と走行経路Rとが交わる点ともいえる。
図6及び図7に示すように、第1領域A11のX軸方向に対する寸法を第1寸法L1とし、第2領域A12のX軸方向に対する寸法を第2寸法L2とする。また、第1領域A11及び第2領域A12のうち、車両20が回避行動を行う際に走行経路Rから離れる方向に位置する領域を走行領域とする。図6及び図7に示す例では、車両20は走行経路Rから第2領域A12側に移動するため、第2領域A12が走行領域となる。走行領域とは、第1領域A11及び第2領域A12のうち、回避行動を行っている車両20の所定位置P2が位置する領域ともいえる。
走行領域となる第2領域A12の第2寸法L2は、車両20が走行経路Rを走行している場合と、車両20が走行経路Rから離間している場合で同一である。本実施形態では、第1領域A11の第1寸法L1についても、車両20が走行経路Rを走行している場合と、車両20が走行経路Rから離間している場合で同一である。制御装置32は、車両20が走行経路Rから離間している場合であっても探索領域A1のX軸方向の中心を走行経路Rからずらさないことで、車両20が走行経路Rから離間している場合における第2領域A12の第2寸法L2に上限値を設けているといえる。本実施形態では、第2領域A12の第2寸法L2の上限値は、車両20が走行経路Rを走行中の場合における第2領域A12の第2寸法L2である。なお、上記した例では、走行領域として第2領域A12を挙げて説明したが、第1領域A11が走行領域となる場合には第1領域A11の第1寸法L1について同様のことが行われる。即ち、走行領域となる第1領域A11の第1寸法L1は、車両20が走行経路Rを走行している場合と、車両20が走行経路Rから離間している場合で同一にされる。車両20が走行経路Rから離間している場合における走行領域のX軸方向に対する寸法は、車両20が走行経路Rを走行中の場合における走行領域のX軸方向に対する寸法以上であり、かつ、予め定められた上限値以下といえる。
ステップS10において、制御装置32は、変更領域A2内に障害物が存在するか否かを判定する。ステップS10の判定の結果、変更領域A2内に障害物が存在する場合、制御装置32はステップS11の処理を行う。ステップS10の判定の結果、変更領域A2内に障害物が存在していない場合、制御装置32は回避制御を終了する。
ステップS11において、制御装置32は、車両20を停止させる。即ち、制御装置32は、変更領域A2内に障害物が存在し、かつ、回避可能領域AAが探索領域A1内に存在しない場合、車両20を停止させる。
次に、制御装置32は、ステップS12において、新たな走行経路Rを生成する。この際、制御装置32は、地図情報に加えて、センサ31により検出できる障害物の情報から走行経路Rを生成する。制御装置32は、地図情報による構造物の座標、及び障害物の座標から車両20が障害物を回避しながら最終到達点に到着できるように走行経路Rを生成する。なお、前述したように、センサ31の検出結果から制御装置32が認識することのできる障害物の座標は、センサ31を原点とする相対座標である。制御装置32は、自己位置推定を行っており、地図情報上での自己位置を推定している。制御装置32は、自己位置と障害物の相対座標から障害物の地図情報上での座標を認識することができる。なお、自己位置の推定は、モータ42の回転数を用いて自己移動量を推定するオドメトリを用いて行われてもよいし、ランドマークと地図情報とのマッチング結果から行われてもよい。また、これらを組み合わせて自己位置を推定してもよい。ステップS12の処理を行うことで、制御装置32は経路生成部となる。
なお、制御装置32は、障害物により車両20を停止させた場合、通信I/F35を介して通信端末に車両20が停止した旨の報知を行う。この際、制御装置32は、通信端末を介して、検出した障害物の位置情報を地図情報に登録するか否かを自律走行体10の使用者に問い合わせる。自律走行体10の使用者は、通信端末を介して障害物の位置情報を地図情報に登録するか否かの回答を行う。障害物の位置情報を地図情報に登録する旨の指令を受信した場合、制御装置32は障害物の座標を地図情報に登録する。
上記したように、障害物判定部、探索部、進行方向変更部、及び経路生成部は、制御装置32が予め定められたプログラムに従い動作することで機能する機能要素として実現されている。
実施形態の作用について説明する。
制御装置32は、探索領域A1内に障害物が存在する場合であっても、障害物が変更領域A2内に存在しない場合には車両20に回避行動を行わせない。制御装置32は、障害物が変更領域A2内に存在している場合、車両20に回避行動を行わせる。
車両20の回避行動が行われる際には車両20が走行経路Rから離間する。この際、走行経路Rからの車両20の離間とともに走行領域のX軸方向に対する寸法を大きくしていくと、走行経路Rから過剰に離れた位置にある回避可能領域AAが探索されるおそれがある。例えば、図8に示すように、実施形態で記載した障害物O1よりも走行経路Rの下流に3つの障害物O2,O3,O4が存在しいているとする。4つの障害物O1,O2,O3,O4同士のX軸方向の離間距離は、回避可能領域AAを判定するための閾値未満である。従って、4つの障害物O1,O2,O3,O4同士の間には回避可能領域AAが存在していない。障害物O2は、障害物O1よりも走行経路Rの下流であり、かつ、障害物O1よりも第2領域A12側に走行経路Rから離間している。障害物O3は、障害物O2よりも走行経路Rの下流であり、かつ、障害物O2よりも第2領域A12側に走行経路Rから離間している。障害物はO4、障害物O3よりも走行経路Rの下流であり、かつ、障害物O3よりも第2領域A12側に走行経路Rから離間している。4つの障害物O1,O2,O3,O4は、走行経路Rの下流に向けて、走行経路Rから第2領域A12側に離れるように位置しているといえる。このように配置された障害物O1,O2,O3,O4が存在する位置を自律走行体10が走行する場合であって、かつ、車両20に追従して探索領域A1が移動したとする。図8に一点鎖線で示すように、障害物O1を回避するために車両20が走行経路Rから第2領域A12側に走行し、車両20に追従して探索領域A1が移動すると、走行領域となる第2領域A12の第2寸法L2は車両20が走行経路Rから離れるにつれて大きくなっていく。すると、障害物O1を回避した後には、障害物O4のX軸方向の両側のうち走行経路Rから離れた位置に存在する回避可能領域AAが探索されるおそれがある。結果として、車両20は走行経路Rから過剰に離れた回避可能領域AAに向かうことになり、車両20が走行経路Rから過剰に離れてしまうおそれがある。車両20が走行経路Rから過剰に離れると、自律走行体10の使用者が意図しない位置に車両20が進行してしまうおそれがあるため、車両20が走行経路Rから過剰に離れることを抑制することが好ましい。
図8に二点鎖線で示すように、本実施形態では車両20が走行経路Rから離間している場合における走行領域のX軸方向に対する寸法に上限値を設けている。車両20が走行経路Rから離間しても、回避可能領域AAが探索される範囲は制限されることになる。図8に示す例でいえば、仮に、障害物O4のX軸方向に回避可能領域AAとなり得る空間が存在していたとしても、回避可能領域AAは探索領域A1内で探索されるため、障害物O4のX軸方向には回避可能領域AAが存在しないと判定される。従って、制御装置32は、回避可能領域AAが存在しないと判定された時点で車両20を停止させることになる。
実施形態の効果について説明する。
(1)探索領域A1内に障害物が存在する場合であっても、障害物が変更領域A2内に存在しない場合には自律走行体10は障害物の回避を行わない。障害物が変更領域A2内に存在している場合、自律走行体10は回避可能領域AAに向かうように回避行動を行う。障害物を検出した場合でも、探索領域A1よりも狭い変更領域A2内に障害物が存在しない限りは回避行動が行われないため、無駄な回避行動を抑制することができる。また、走行領域のX軸方向に対する寸法に上限値を設定することで、車両20が走行経路Rから過剰に離れることを抑制できる。
(2)車両20が走行経路Rから離間している場合における走行領域のX軸方向に対する寸法の上限値は、車両20が走行経路Rを走行中の場合における走行領域のX軸方向に対する寸法としている。車両20が走行経路Rを走行している場合と、車両20が走行経路Rから離間している場合で走行領域のX軸方向に対する寸法が同一になる。従って、車両20が走行経路Rから過剰に離れることを更に抑制することができる。
(3)制御装置32は、探索領域A1に回避可能領域AAが存在しない場合には、新たな走行経路Rを生成する。このため、車両20の走行が維持されやすい。車両20が停止した場合に、自律走行体10の使用者が車両20を移動させたり、車両20を再度走行させる手間を省くことができる。また、センサ31により検出できる障害物を回避するように走行経路Rを生成することで、障害物により車両20の走行が阻害されることを抑制できる。
(4)変更領域A2のX軸方向の寸法により回避距離は定まり、変更領域A2のY軸方向の寸法により回避開始距離は定まる。変更領域A2のX軸方向の寸法、及び、変更領域A2のY軸方向の寸法を個別に設定することで、回避距離と回避開始距離とを独立して制御することができる。
(5)制御装置32は、回避行動を終えた後には走行経路Rに戻る。このため、生成された走行経路Rに沿って車両20を走行させることができる。障害物を回避する度に新たな走行経路Rを生成する場合に比べて、制御装置32の負荷が軽減される。
(6)制御装置32は、車両20に回避行動を行わせる場合、最も近い回避可能領域AAを通過させる。このため、走行距離を短くすることができ、走行の効率化を図ることができる。
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変形例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
○図9に示すように、走行領域のX軸方向に対する寸法の上限値は、車両20が走行経路Rを走行中の場合における走行領域のX軸方向に対する寸法に所定値を加算した値であってもよい。ここでの所定値としては、車両20が回避行動を行うことで走行経路Rから離間する場合であっても、走行領域のX軸方向に対する寸法が過剰に大きくならないように設定されている。即ち、車両20が走行経路Rから過剰に離れないように所定値は設定されている。
図9に示す例では、第2領域A12が走行領域になる。車両20が走行経路Rから離間している場合における第2領域A12の第2寸法L2は、車両20が走行経路Rを走行している場合における第2領域A12の第2寸法L2よりも大きくなる。そして、第1領域A11及び第2領域A12のうち走行領域とならない第1領域A11の第1寸法L1は、第2領域A12の第2寸法L2が大きくなった分だけ小さくなる。言い換えれば、探索領域A1の全体が、車両20が走行経路Rから離れた方向に対して所定値だけ移動しているといえる。この場合であっても、走行領域のX軸方向に対する寸法に上限値を設定しない場合に比べて、車両20が走行経路Rから過剰に離れることを抑制することができる。このように、車両20が走行経路Rから離間している場合における走行領域のX軸方向に対する寸法は、予め定められた上限値以下であれば車両20が走行経路Rを走行中の場合における走行領域のX軸方向に対する寸法より大きくてもよい。なお、車両20が走行経路Rから離間している場合における走行領域のX軸方向に対する寸法を、車両20が走行経路Rを走行中の場合における走行領域のX軸方向に対する寸法より大きくした場合であっても、走行領域とならない領域のX軸方向に対する寸法は変更しなくてもよい。
○制御装置32は、車両20を停止させた後に新たな走行経路Rを生成しなくてもよい。この場合、車両20は停止した状態に維持される。
○制御装置32は、通信I/F35を介して自律走行体10の使用者に報知等を行わなくてもよい。この場合、自律走行体10は、通信I/F35を備えていなくてもよい。
○制御装置32は、車両20が回避行動を行っている場合、第1領域A11及び第2領域A12のうち走行領域とは異なる領域のX軸方向に対する寸法を小さくしてもよい。車両20が回避行動を行っている場合、第1領域A11及び第2領域A12のうち走行領域とは異なる領域から車両20が離間する。結果として、第1領域A11及び第2領域A12のうち走行領域とは異なる領域の一部が、センサ31による障害物の検出可能範囲から外れるおそれがある。この場合には、制御装置32は、第1領域A11及び第2領域A12のうち走行領域とは異なる領域のX軸方向に対する寸法を小さくしてもよい。
○制御装置32は、探索領域A1内に複数の回避可能領域AAが存在する場合、いずれの回避可能領域AAを回避領域SAとしてもよい。例えば、制御装置32は、複数の回避可能領域AAのうち車両20から最も遠い回避可能領域AAを回避領域SAとして選択してもよい。
○探索領域A1内に複数の回避可能領域AAが存在する場合、制御装置32は、回避可能領域AAのX軸方向の端までの距離から最も近い回避可能領域AAを判断してもよい。即ち、複数の回避可能領域AAで、センサ31からの距離を算出する基準位置が同一であれば、中央C以外の箇所までの距離から最も近い回避可能領域AAを判断してもよい。
○走行経路Rは、最終到達点より前の位置までの経路であってもよい。
○制御装置32は、走行経路Rの生成を行わなくてもよい。この場合、制御装置32は、予め定められた走行経路Rに沿って車両20を走行させる。
○図1に示すように、制御装置32は、車両20の進行方向の反対方向に拡がる判定領域A3と走行経路Rとの間に障害物が存在しない場合に、車両20が回避領域SAを通過したと判定してもよい。これによれば、制御装置32は、回避領域SAを通過したことの判定を行える。そして、回避領域SAを通過したと判定したあとに車両20を走行経路Rに戻すことで、車両20と障害物との接触を抑止することができる。即ち、判定領域A3は、回避行動を行った後に車両20を走行経路Rに戻す際のマージンとして機能することになる。
○センサ31としては、水平方向に加えて、鉛直方向へのレーザーの照射角度を変更可能なレーザーレンジファインダを用いてもよい。この場合、照射点の座標としては、X座標及びY座標に加えて、鉛直方向の座標であるZ座標を含む三次元座標が得られる。制御装置32は、Z座標が所定座標以下の照射点を有効なものとし、この照射点のX座標及びY座標から障害物の検出を行う。所定座標とは、走行に際して車両20や、車両20に搬送される荷が衝突し得る高さに位置する障害物を検出できるように設定される。
○センサ31として、ステレオカメラを用いてもよい。ステレオカメラは、複数のカメラによって周辺環境を撮像することで得られた視差画像から周辺環境を制御装置32に認識させる。視差画像は、同一の特徴点について複数のカメラによって撮像を行った場合に、カメラ間で生じる画素差を示すものである。特徴点は、物体のエッジなど視差が得られる部分である。制御装置32は、視差画像から特徴点までの距離を測定できる。制御装置32は、特徴点の集合である点群から障害物を検出することができる。また、センサ31としては、ミリ波レーダー等を用いてもよい。即ち、センサ31としては、車両20と障害物との相対座標を制御装置32に認識させることが可能であれば、どのようなものであってもよい。
○制御装置32は、走行領域のX軸方向に対する寸法に上限値を設ける制御と、走行領域のX軸方向に対する寸法に上限値を設けない制御と、を切り替えられるようにしてもよい。
○探索領域A1のY軸方向の寸法は、車両20の速度が速いほど長くしてもよい。これによれば、車両20の速度が速いほど、車両20の先の位置まで回避可能領域AAを探索することができる。車両20の速度が速い場合、障害物を検出してから障害物に到達するまでの時間が短い。障害物及び回避可能領域AAをいち早く検出することで、適切に回避行動を行うことができる。同様に、変更領域A2のY軸方向の寸法についても、車両20の速度が速いほど長くしてもよい。
○探索領域A1のY軸方向の寸法、及び探索領域A1のX軸方向の寸法は、地図情報に応じて可変としてもよい。
○回避可能領域AAを判定するための閾値は、車両20の速度が速いほど大きくしてもよい。
○探索領域A1の形状は変更してもよい。例えば、長辺LS1から車両20の進行方向に向けて円形に拡がる形状であってもよい。同様に、変更領域A2の形状を変更してもよい。なお、探索領域A1の形状を変更した場合、第1領域A11の第1寸法L1は、第1領域A11のX軸方向に対する寸法のうち最大の寸法であり、第2領域A12の第2寸法L2は、第2領域A12のX軸方向に対する寸法のうち最大の寸法である。
○車輪22は、全方向移動車輪以外の車輪、即ち、車輪22の回転軸線方向への移動を許容しない車輪であってもよい。この場合、車輪を2つとし、2つの車輪の回転速度を異ならせることで操舵を行う二輪速度差制御により車両20の進行方向を変更してもよい。あるいは、車輪毎に個別の操舵機構を設けて、車輪毎に個別の操舵を行うことで進行方向を変更可能としてもよい。
○自律走行体10は、荷を搬送する搬送台車に限られず、自律掃除機などでもよい。
○走行体は、車輪で走行する車両20に限られず、例えば、多足歩行方式の走行体であってもよい。