以下、本開示の実施形態について図面を参照して詳細に説明する。図面において、同一又は同等の要素には同じ符号を付し、重複する説明を適宜省略する。以下の説明において、「下」との語は、フォークリフトが走行可能に路面に置かれた状態においてフォークリフトから路面に向かう方向(鉛直方向の下側)を意味し、「上」との語は、路面からフォークリフトに向かう方向(鉛直方向の上側)を意味する。「前」との語は、フォークリフトが前進する側、すなわち、フォークリフトのフォークが指す方向を意味し、「後」との語は、フォークリフトの前進方向とは反対方向を意味する。「右」及び「左」との語は、鉛直方向に垂直な水平方向を意味し、後方からフォークリフトを見た場合を基準として用いられる。
図1は、本開示に係る産業車両の一実施形態であるフォークリフト1を示す斜視図である。図1において、本実施形態に係るフォークリフト1は、例えばカウンター式のフォークリフト1である。フォークリフト1は、走行装置2と、走行装置2の前側に配置された荷役装置4と、荷役装置4の前方に存在する物体を検知する複数のセンサ30aを含む検知装置30と、検知装置30の検知結果に基づいて走行装置2及び荷役装置4を制御する荷役制御装置40(図5参照)と、を備える。フォークリフト1は、検知装置30の検知結果に基づいて、荷役対象物としてのパレット群3Wの荷役を行う位置まで自動で走行する自動運転フォークリフトとして構成されている。
走行装置2は、車体6と、車体6の前下部に配置された駆動輪7と、車体6の後下部に配置された操舵輪8と、駆動輪7を回転させる走行モータ9(図5参照)と、フォークリフト1のハンドル軸を回転させることにより操舵輪8を転舵させる転舵モータ10(図5参照)と、を有する。車体6には、ヘッドガードを含むフレームによって構成された運転室が設けられている。
荷役装置4は、荷役対象のパレット群3W(図2参照)の荷積み及び荷置きを行う装置である。図1に示すように、荷役装置4は、車体6の前端部に立設されたマスト11と、マスト11に昇降可能に支持されたリフトブラケット12と、マスト11よりも前側に配置されたバックレスト14と、リフトブラケット12に取り付けられた一対のフォーク13,13と、リフトブラケット12を昇降させるリフトシリンダ15と、マスト11を傾動させるティルトシリンダ16と、一対のフォーク13,13をマスト11に対して左右方向(車幅方向)にシフトさせるサイドシフトシリンダ17(図5参照)と、を有する。フォーク13,13は、リフトブラケット12から前方に突出しており、左右方向に互いに離間した位置に配置されている。フォーク13,13は、パレット群3Wを積載可能である。バックレスト14は、フォーク13,13上に積載されたパレット群3Wが後方にずれることを防ぐための荷受け枠である。
図2は、コンテナ5内に複数のパレット群3Wが置かれた状態を示す正面図である。パレット群3W(荷役対象物群)は、例えばトレーラ荷台26(例えば図7(a)参照)に載置されたコンテナ5内に収容される。コンテナ5は、左右両側に設けられた側壁5aを有している。パレット群3Wは、例えば、コンテナ5の床面に3列で載置される。図2に示すように、パレット群3Wは、上下に二段のパレット3A,3B(荷役対象物)が積み重ねられた構成を有する。つまり、パレット群3Wは、下段のパレット3Aの上に上段のパレット3Bが積み重ねられた状態となっている。
各パレット3A,3Bは、互いに同一の構成を有する。従って、パレット3A,3Bを区別して説明しない場合には、パレット3A,3Bのそれぞれを単に「パレット3」と呼ぶことがある。パレット3は例えば略直方体形状を有しており、パレット3の上端は開口している。パレット3の下端の4つの角部には、基部3aが設けられている。パレット群3Wでは、上段のパレット3Bの基部3aが、下段のパレット3Aの上端に積載された状態となる。パレット3の下端部の4つの角部には、パレット3を折り畳んだ状態で積み重ねる際に、上段のパレット3Bと下段のパレット3Aとを互いに係止する係止具3bが設けられている。
図3は、複数のセンサ30aの付近を拡大して示す斜視図である。図3に示すように、各センサ30aは、荷役装置4の前方に一次元のレーザ光Lを照射して、荷役装置4の前方に位置する物体からのレーザ光Lの反射光を受光することにより、物体との距離を検知する一次元レーザ距離センサ(一次元センサ)である。各センサ30aは、物体との距離を示す検知データ(検知結果)を荷役制御装置40に送信する。一次元のレーザ光Lとは、一方向(本実施形態では、前後方向)に直線状に延びるレーザ光Lを意味する。上記の「物体」とは、荷役対象物としてのパレット群3W(パレット3)、或いはパレット群3Wに積み込まれる荷物自体を指す場合もあるし、パレット群3Wが荷置きされるコンテナ5を指す場合もあるし、コンテナ5内に既に置かれた既存のパレット群3Wを指す場合もある(図2参照)。
図3に示すように、複数のセンサ30aは、例えば、荷役装置4のバックレスト14に取り付けられている。複数のセンサは、バックレスト14の下側に取り付けられる左右一対の下段センサ33,34と、バックレスト14の上側に取り付けられる左右一対の内側上段センサ35,36と、バックレスト14の上側に取り付けられ、内側上段センサ35,36よりも左右外側に配置される左右一対の外側上段センサ31,32と、を含む。
下段センサ33,34は、バックレスト14においてフォーク13,13を挟んで左右対称となる位置に配置される。具体的には、図3に示すように、バックレスト14の左右両側の側面には、上下方向に延びる一対のアルミフレーム21,21が設けられており、下段センサ33,34は、アルミフレーム21,21の外側面にブラケット22を介して取り付けられている。下段センサ33,34は、フォーク13,13にパレット群3Wが積載された状態において、下段のパレット3A(図2参照)に対応する高さに配置される。従って、下段センサ33,34は、上下方向において、フォーク13,13に積載された状態の下段のパレット3Aと同一の位置に配置される。換言すると、下段センサ33,34は、左右方向において、フォーク13,13に積載された状態の下段のパレット3Aと重なる位置に配置される。例えば、下段センサ33,34は、下段のパレット3Aの下端部の高さに対応するアルミフレーム21,21の下端部に取り付けられる。
下段センサ33,34は、左右方向において、パレット3の最大の左右幅(本実施形態では、長手方向の最大寸法)よりも僅かに大きい間隔で配置される。パレット3の最大幅寸法とは、係止具3bが設けられたパレット3の下端部の幅寸法である。従って、パレット3がフォーク13,13の所望の位置に積載された状態では、下段センサ33,34から照射された一次元のレーザ光Lがパレット3の外側を通過し、パレット3に当たることはない。所望の位置とは、パレット3の左右方向の中心線がフォーク13,13間の中心線と一致する位置である。一方、パレット3がフォーク13,13の所望の位置からずれて積載された状態では、下段センサ33,34の一方から照射されたレーザ光Lがパレット3に当たることはあっても、下段センサ33,34の双方から照射されたレーザ光Lが同じパレット3に同時に当たることはない。
内側上段センサ35,36は、下段センサ33,34と同様、バックレスト14においてフォーク13,13を挟んで左右対称となる位置に配置される。具体的には、内側上段センサ35,36は、アルミフレーム21,21の外側面にブラケット23を介して取り付けられている。内側上段センサ35,36は、フォーク13,13にパレット群3Wが積載された状態において、上段のパレット3B(図2参照)に対応する高さに配置される。従って、内側上段センサ35,36は、上下方向において、フォーク13,13に積載された状態の上段のパレット3Bと同一の位置に配置される。換言すると、内側上段センサ35,36は、左右方向において、フォーク13,13に積載された状態の上段のパレット3Bと重なる位置に配置される。
例えば、内側上段センサ35,36は、上段のパレット3Bの下端部の高さに対応するアルミフレーム21,21の上部に取り付けられる。その結果、内側上段センサ35,36は、下段センサ33,34に対して、パレット3A又はパレット3Bの高さ寸法に相当する間隔をもって配置される。また、内側上段センサ35,36は、下段センサ33,34と上下に対応する位置に配置される。換言すると、内側上段センサ35,36は、上下方向において下段センサ33,34と重なる位置に配置される。つまり、内側上段センサ35は、左右方向において下段センサ33と同一の位置に配置され、内側上段センサ36は、左右方向において下段センサ34と重なる位置と同一の位置に配置される。その結果、内側上段センサ35,36の左右の間隔は、下段センサ33,34の左右の間隔と同一となる。
外側上段センサ31,32は、内側上段センサ35,36と同様、アルミフレーム21,21の外側面にブラケット23を介して取り付けられ、フォーク13,13を挟んで左右対称となる位置に配置される。外側上段センサ31,32は、内側上段センサ35,36と同一の高さに配置される。従って、外側上段センサ31,32は、フォーク13,13にパレット群3Wが積載された状態において、上段のパレット3Bに対応する高さに配置される。また、外側上段センサ31,32は、内側上段センサ35,36よりも左右外側に配置される。換言すると、外側上段センサ31,32は、左右方向において内側上段センサ35,36を挟んで両側に配置される。このため、外側上段センサ31,32は、内側上段センサ35,36よりも広い間隔で左右に配置される。図3に示す例では、外側上段センサ31,32は、内側上段センサ35,36の左右外側に隣接する位置に配置される。そして、外側上段センサ31は、内側上段センサ35と共にブラケット23によって左側のアルミフレーム21の外側面に取り付けられ、外側上段センサ32は、内側上段センサ36と共にブラケット23によって右側のアルミフレーム21の外側面に取り付けられる。
図4は、上方から見たフォークリフト1を示す概略平面図である。図4において、下段センサ33,34は、実際には、上方から見て内側上段センサ35,36とそれぞれ重なる位置に配置されるが、便宜上、下段センサ33,34を内側上段センサ35,36に対して前後方向にずらした状態で示している。上述したように、下段センサ33,34の左右の間隔は、パレット3の最大の左右幅よりも僅かに大きい間隔に設定される。このため、フォーク13,13にパレット群3Wが積載された状態において、下段センサ33,34からのレーザ光Lがいずれもパレット群3Wに当たっていない場合には、パレット群3Wが下段センサ33,34の左右内側に収まっていると判断することができる。この場合、フォーク13,13に対してパレット群3Wが左右に大きくずれていないと判断することができる。一方、下段センサ33,34の一方からのレーザ光Lがパレット群3Wに当たっている場合には、フォーク13,13に対してパレット群3Wが下段センサ33,34の左右内側に収まらない位置まで大きくずれていると判断することができる。
従って、下段センサ33,34の左右内側の領域を、フォーク13,13に対するパレット3の左右の位置の許容範囲W1(第1許容範囲)を示すものとして利用することができる。許容範囲W1は、上方から見たときに、左側の下段センサ33からのレーザ光Lと、右側の下段センサ34からのレーザ光Lと、によって挟まれる範囲である。従って、許容範囲W1は、左右の下段センサ33,34によって画定され、下段センサ33,34の左右の間隔を調整することによって調整される。
本実施形態では、許容範囲W1は、パレット3の最大の左右幅よりも広く、且つ、荷置き空間V(例えば図16(a)参照)の最小の左右幅よりも狭く設定される。荷置き空間Vは、荷置き場所において、フォーク13,13に積載されたパレット群3Wを荷置きするために通常必要とされる空間である。従って、荷置き空間Vの最小の左右幅は、少なくともパレット3の最大の左右幅よりも大きく設定される。荷置き空間Vの最小の左右幅は、パレット3の最大の左右幅にマージンを加えた大きさに設定される。
例えば、パレット3の最大の左右幅が1190mmである場合、荷置き空間Vの最小の左右幅は、1190mmに30mmのマージンを加えた1220mmに設定される。荷置き空間Vの最小の左右幅に対応するパレット群3Wの許容範囲を基準許容範囲WSとして設定したときに、許容範囲W1は、基準許容範囲WSよりも狭く設定される。例えば、基準許容範囲WSが1220mmに設定されたとき、許容範囲W1は、1220mmよりも狭い1200mmに設定される。この場合、許容範囲W1は、パレット3の最大の左右幅である1190mmに10mmマージンを加えた大きさとなる。内側上段センサ35,36の左右の間隔は、下段センサ33,34の左右の間隔と同一であるので、内側上段センサ35,36によって画定される許容範囲W1は、下段センサ33,34によって画定される許容範囲W1と同一となる。
一方、外側上段センサ31,32は、内側上段センサ35,36よりも左右外側に配置される。このため、外側上段センサ31,32によって画定される許容範囲W2(第2許容範囲)は、内側上段センサ35,36によって画定される許容範囲W1よりも広くなる。なお、許容範囲W2は、フォークリフト1が走行可能な範囲内に設定される。外側上段センサ31,32によって画定される許容範囲W2とは、上方から見たときに、左側の外側上段センサ31からのレーザ光Lと、右側の外側上段センサ32からのレーザ光Lと、によって挟まれる範囲である。本実施形態では、許容範囲W2は、基準許容範囲WSよりも広く設定される。例えば、基準許容範囲WSが1220mmに設定されるとき、許容範囲W2は、1220mmに20mmのマージンを加えた1240mmに設定される。また、左側の外側上段センサ31と右側の下段センサ34との左右の間隔は、基準許容範囲WSを画定する間隔に設定され、同様に、左側の下段センサ33と右側の外側上段センサ32との左右の間隔も、基準許容範囲WSを画定する間隔に設定される。つまり、上方から見た場合において、左側の外側上段センサ31からのレーザ光Lと右側の下段センサ34からのレーザ光Lとによって挟まれる範囲、及び、左側の下段センサ33と右側の外側上段センサ32とによって挟まれる範囲は、いずれも基準許容範囲WSに設定される。
図5は、荷役制御装置40の機能的構成を示すブロック図である。荷役制御装置40は、フォークリフト1に搭載されている。荷役制御装置40は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、及び入出力インターフェースなどを有するコンピュータである。荷役制御装置40では、例えば、ROMに記憶されているプログラムがRAMにロードされ、RAMにロードされたプログラムがCPUで実行されることにより、各種の機能が実現される。荷役制御装置40は、フォークリフト1の自動運転時に、荷積み及び荷置きを含む荷役に関する制御(荷役制御)を行う。荷積みとは、指定の場所に載置されたパレット群3Wをフォーク13,13に積み込むことを意味する。荷置きとは、フォーク13,13に積み込まれたパレット群3Wを、コンテナ5内などの荷置き場所に載置することを意味する。
ここで、フォークリフト1の自動運転により荷役作業を実施する基本動作について説明する。図6(a)及び図6(b)は、フォークリフト1により荷積み作業を実施する様子を示す斜視図である。まず、荷積み作業を実施するときは、図6(a)に示すように、指定の場所に載置されたパレット群3Wの手前までフォークリフト1を移動させる。そして、図6(b)に示すように、フォーク13,13をパレット群3Wの下に差し込んだ状態で、リフトシリンダ15によりフォーク13,13を僅かに上昇させる。これにより、パレット群3Wがフォーク13,13に積載された状態となる。このとき、ティルトシリンダ16によりマスト11を後傾させてもよい。
図7(a)、図7(b)、図8(a)、及び図8(b)は、フォークリフト1により荷置き作業を実施する様子を示す斜視図である。各図では、パレット群3Wを見やすくするために、コンテナ5を2点鎖線で示している。上記の荷積み作業の後、荷置き作業を実施するときは、図7(a)に示すように、トレーラ荷台26までフォークリフト1を移動させる。このとき、トレーラ荷台26に載置されたコンテナ5内の荷置き位置(パレット群3Wを置くべき位置)の手前で、フォークリフト1を停止させる。そして、図7(b)に示すように、リフトシリンダ15によりフォーク13,13をコンテナ5の高さ位置まで上昇させる。その後、図8(a)に示すように、フォークリフト1を荷置き位置まで前進させた後、リフトシリンダ15によりフォーク13,13を僅かに下降させる。これにより、フォーク13,13に積載されたパレット群3Wがコンテナ5の荷置き位置に置かれた状態となる。そして、図8(b)に示すように、フォークリフト1を後退させた後、フォークリフト1を再び指定の場所まで移動させる。
再び、図5を参照する。荷役制御装置40は、機能的な構成要素として、判定部41と、荷積み制御部42と、走行制御部43と、荷置き制御部44と、を含む。判定部41は、荷積み判定部41aと、走行判定部41bと、荷置き判定部41cと、を含む。荷役制御装置40は、上位のシステム管理装置から送られてきた指示信号に基づいて、フォークリフト1が実施する動作内容を選択する。実施する動作内容としては、荷積み動作、走行動作、及び荷置き動作がある。
荷積み制御部42は、荷積み動作が選択された場合に、フォーク13,13へパレット群3Wを荷積するための荷積み制御を開始する。荷積み制御の開始前には、フォークリフト1は、荷積み対象のパレット群3Wの手前に停止しており、フォーク13,13は、最も下側に位置している(図6(a)参照)。荷積み制御部42は、まず、フォーク13,13を左右方向にシフトさせながら、パレット群3Wに対するフォーク13,13の荷積み開始位置を決定する。このとき、荷積み判定部41aは、検知装置30からの検知データを用いて、複数のセンサ30aから照射されたレーザ光Lがパレット群3Wに当たったか否かを判定する。レーザ光Lがパレット群3Wに当たったと荷積み判定部41aが判定した場合に、荷積み制御部42は、レーザ光Lがパレット群3Wに当たった位置をパレット群3Wの左端位置及び右端位置として認識することにより、フォーク13,13に対するパレット群3Wの位置を把握し、フォーク13,13の荷積み開始位置を決定する。荷積み開始位置とは、パレット群3Wをフォーク13,13へ荷積みすることが可能な位置である。例えば、荷積み開始位置は、パレット群3Wの左右方向(幅方向)の中央位置に対応する位置としてよい。
荷積み制御部42は、荷積み開始位置を決定した後、荷積み開始位置においてフォーク13,13へのパレット群3Wの荷積み動作を開始させる。このとき、荷積み判定部41aは、検知装置30からの検知データを用いて、フォーク13,13に対するパレット群3Wの左右の位置が許容範囲W1に収まっているか否かを判定する。パレット群3Wの左右の位置が許容範囲W1(図4参照)に収まっていると荷積み判定部41aが判定した場合に、荷積み制御部42は、フォーク13,13へのパレット群3Wの荷積み動作を行うように、走行装置2及び荷役装置4を制御する(図6(b)参照)。一方、パレット群3Wの左右の位置が許容範囲W1に収まっていないと荷積み判定部41aが判定した場合に、荷積み制御部42は、荷積み制御を停止させる。つまり、荷積み制御部42は、フォークリフト1の動作を異常停止させる。
走行制御部43は、荷積み動作の後に走行動作が選択された場合に、フォーク13,13にパレット群3Wが積載された状態のフォークリフト1を荷置き場所へ移動させるための走行制御を開始する。このとき、走行判定部41bは、検知装置30からの検知データを用いて、フォーク13,13に対するパレット群3Wの左右の位置が許容範囲W2(図4参照)に収まっているか否かを判定する。パレット群3Wの左右の位置が許容範囲W2に収まっていると走行判定部41bが判定した場合に、走行制御部43は、荷置き場所への走行動作を行うように、走行装置2を制御する。一方、パレット群3Wの左右の位置が許容範囲W2に収まっていないと走行判定部41bが判定した場合には、走行制御部43は、荷積み制御を停止させる。つまり、走行制御部43は、フォークリフト1の動作を異常停止させる。
荷置き制御部44は、走行動作の後に荷置き動作が選択された場合に、荷置き場所にパレット群3Wを荷置きするための荷置き制御を開始する。荷置き制御部44は、まず、フォーク13,13を左右にシフトさせながら、荷置き場所に対するフォーク13,13の荷置き開始位置を決定する。このとき、荷置き判定部41cは、検知装置30からの検知データを用いて、複数のセンサ30aから照射されたレーザ光Lが荷置き空間V(例えば、図16(a)参照)の外側のパレット群3Wなどの物体に当たったか否かを判定する。荷置き判定部41cは、レーザ光Lが荷置き空間Vの外側の物体に当たったと判定した場合に、荷置き制御部44は、レーザ光Lが物体に当たった位置を荷置き空間Vの左端位置及び右端位置として認識することにより、フォーク13,13に対する荷置き空間Vの位置を把握し、フォーク13,13の荷置き開始位置を決定する(図7(a)参照)。荷置き開始位置は、フォーク13,13から荷置き空間Vにパレット群3Wを荷置きすることが可能な位置である。例えば、荷置き開始位置は、荷置き空間Vの左右方向(幅方向)の中央位置に対応する位置としてよい。
荷置き制御部44は、荷置き開始位置を決定した後、荷置き開始位置において荷置き空間Vへのパレット群3Wの荷置き動作を開始させる(図7(b)、図8(a)、及び図8(b)参照)。このとき、荷置き判定部41cは、検知装置30からの検知データを用いて、フォーク13,13に対するパレット群3Wの左右の位置が基準許容範囲WS(図4参照)に収まっているか否かを判定する。パレット群3Wの左右の位置が基準許容範囲WSに収まっていると荷置き判定部41cが判定した場合に、荷置き制御部44は、荷置き空間Vへのパレット群3Wの荷置き動作を行うように、走行装置2及び荷役装置4を制御する。一方、パレット群3Wの左右の位置が基準許容範囲WSに収まっていないと荷置き判定部41cが判定した場合には、荷置き制御部44は、荷置き制御を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。
図9は、荷積み制御部42により実行される荷積み制御処理の手順を示すフローチャートである。図10は、図9に続く荷積み制御処理の手順を示すフローチャートである。図11(a)~図11(c)は、荷積み制御処理による荷積み動作を示す概略平面図である。図12(a)~図12(c)は、図11(a)~図11(c)に続く荷積み動作を示す概略平面図である。荷積み動作の開始前には、フォークリフト1は、荷積み対象のパレット群3Wの手前に停止している(図11(a)参照)。図12(a)~図12(c)、及び図11(a)~図11(c)の各図において、レーザ光Lがパレット群3Wなどの物体に当たっている状態のセンサ30aをハッチングで示している。
まず、荷積み制御部42は、フォーク13,13を、通常位置から左方向の動作限界位置(左端限界位置)に向かって左側にシフトさせる(ステップP11)。通常位置とは、例えば、マスト11の幅方向(左右方向)の中央位置である。このとき、荷積み判定部41aは、フォーク13,13が左端限界位置に達するまでに、右側の下段センサ34が物体を検知したか否かを判定する(ステップP12)。すなわち、荷積み判定部41aは、右側の下段センサ34から照射されたレーザ光Lがパレット群3Wに当たったか否かを判定する。フォーク13,13が左端位置に達するまでに、右側の下段センサ34から照射されたレーザ光Lがパレット群3Wに当たっていないと荷積み判定部41aが判定した場合、すなわち、右側の下段センサ34が物体を検知していないと判定した場合には(ステップP12においてNo)、ステップP11が再度繰り返される。
一方、フォーク13,13が左端限界位置に達するまでに、右側の下段センサ34から照射されたレーザ光Lがパレット群3Wに当たったと荷積み判定部41aが判定した場合、すなわち、右側の下段センサ34が物体を検知したと判定した場合には(ステップP12においてYes)、荷積み制御部42は、右側の下段センサ34からのレーザ光Lが当たった位置を基準位置P0として認識する(図11(b)参照)。その後、荷積み判定部41aは、左側の下段センサ33又は左側の外側上段センサ31が物体を検知したか否かを判定する(ステップP13)。すなわち、荷積み判定部41aは、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lがパレット群3Wなどの物体に当たったか否かを判定する。なお、ステップP12において、右側の下段センサ34が物体を検知することなくフォーク13,13が左端限界位置に達したと荷積み判定部41aが判定した場合においても、ステップP13が実施される。
荷積み判定部41aが、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lがパレット群3Wなどの物体に当たったと判定した場合、すなわち、左側の下段センサ33又は左側の外側上段センサ31が物体を検知したと判定した場合には(ステップP13においてNo)、荷積み制御部42は、荷積み制御を停止させる。つまり、荷積み制御部42は、フォークリフト1の動作を異常停止させる。一方、荷積み判定部41aが、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lがパレット群3Wなどの物体に当たっていないと判定した場合、すなわち、左側の下段センサ33又は左側の外側上段センサ31が物体を検知していないと判定した場合には(ステップP13においてYes)、荷積み制御部42は、フォーク13,13を、右方向の動作限界位置(右端限界位置)に向かって右側にシフトさせる(ステップP14)。
次に、荷積み判定部41aは、フォーク13,13が右端限界位置に達するまでに、左側の下段センサ33が物体を検知したか否かを判定する(ステップP15)。すなわち、荷積み判定部41aは、左側の下段センサ33から照射されたレーザ光Lがパレット群3Wに当たったか否かを判定する。荷積み判定部41aが、フォーク13,13が右端限界位置に達するまでに、左側の下段センサ33からのレーザ光Lがパレット群3Wなどの物体に当たっていないと判定した場合、すなわち、左側の下段センサ33が物体を検知していないと判定した場合には(ステップP15においてNo)、ステップP14が再度繰り返される。
一方、荷積み判定部41aが、フォーク13,13が右端限界位置に達するまでに、左側の下段センサ33からのレーザ光Lがパレット群3Wに当たったと判定した場合、すなわち、左側の下段センサ33が物体を検知したと判定した場合には(ステップP15においてYes)、荷積み制御部42は、左側の下段センサ33からのレーザ光Lが当たった位置をパレット群3Wの左端位置P1として認識する(図11(c)参照)。その後、荷積み判定部41aは、右側の下段センサ34又は右側の外側上段センサ32が物体を検知したか否かを判定する(ステップP16)。すなわち、荷積み判定部41aは、右側の下段センサ34からのレーザ光L、又は右側の外側上段センサ32からのレーザ光Lが、パレット群3Wなどの物体に当たったか否かを判定する。また、ステップP15において、左側の下段センサ33が物体を検知することなく、フォーク13,13が右端限界位置に達したと荷積み判定部41aが判定した場合においても、ステップP16が実施される。
荷積み判定部41aが、右側の下段センサ34からのレーザ光L、又は右側の外側上段センサ32からのレーザ光Lがパレット群3Wなどの物体に当たったと判定した場合、すなわち、右側の下段センサ34又は右側の外側上段センサ32が物体を検知したと判定した場合には(ステップP16においてNo)、荷積み制御部42は、荷積み制御を停止させる。つまり、荷積み制御部42は、フォークリフト1の動作を異常停止させる。一方、荷積み判定部41aが、右側の下段センサ34からのレーザ光L、又は右側の外側上段センサ32のレーザ光Lがパレット群3Wなどの物体に当たっていないと判定した場合、すなわち、右側の下段センサ34又は右側の外側上段センサ32が物体を検知していないと判定した場合には(ステップP16においてYes)、荷積み制御部42は、フォーク13,13を再び左端限界位置に向かって左側にシフトさせる(ステップP17)。
次に、荷積み判定部41aは、フォーク13,13が左端限界位置に達するまでに、右側の下段センサ34が物体を検知したか否かを判定する(ステップP18)。すなわち、荷積み判定部41aは、右側の下段センサ34からのレーザ光Lがパレット群3Wに当たったか否かを判定する。荷積み判定部41aが、フォーク13,13が左端限界位置に達するまでに、右側の下段センサ34からのレーザ光Lがパレット群3Wに当たっていないと判定した場合、すなわち、右側の下段センサ34が物体を検知していないと判定した場合には(ステップP18においてNo)、ステップP17が再度繰り返される。
一方、荷積み判定部41aが、フォーク13,13が左端限界位置に達するまでに、右側の下段センサ34からのレーザ光Lがパレット群3Wに当たったと判定した場合、すなわち、右側の下段センサ34が物体を検知したと判定した場合には(ステップP18においてYes)、荷積み制御部42は、右側の下段センサ34からのレーザ光Lが当たった位置をパレット群3Wの右端位置P2として認識する(図12(a)参照)。その後、荷積み判定部41aは、左側の下段センサ33又は左側の外側上段センサ31が物体を検知したか否かを判定する(ステップP19)。すなわち、荷積み判定部41aは、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lがパレット群3Wに当たったか否かを判定する。なお、ステップP18において、右側の下段センサ34が物体を検知することなく、フォーク13,13が左端限界位置に達したと荷積み判定部41aが判定した場合においても、ステップP19が実施される。
荷積み判定部41aが、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lがパレット群3Wなどの物体に当たったと判定した場合、すなわち、左側の下段センサ33又は左側の外側上段センサ31が物体を検知したと判定した場合には(ステップP19においてNo)、荷積み制御部42は、荷積み制御を停止させる。つまり、荷積み制御部42は、フォークリフト1の動作を異常停止させる。一方、荷積み判定部41aが、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lがパレット群3Wなどの物体に当たっていないと判定した場合、すなわち、左側の下段センサ33又は左側の外側上段センサ31が物体を検知していないと判定した場合には(ステップP19においてYes)、荷積み制御部42は、パレット群3Wの中心位置を計算する(ステップP20)。この中心位置は、フォーク13,13へのパレット群3Wの荷積み動作を行うための荷積み開始位置として設定される。
荷積み制御部42は、ステップP15においてパレット群3Wの左端位置P1を認識し、且つ、ステップP18においてパレット群3Wの右端位置P2を認識した場合には、左端位置P1及び右端位置P2に基づいてパレット群3Wの中心位置を計算する。また、荷積み制御部42は、ステップP15においてパレット群3Wの左端位置P1を認識することなくフォーク13,13が右端限界位置に達し、且つ、ステップP18においてパレット群3Wの右端位置P2を認識した場合には、右端位置P2に所定のシフト量(例えば、38.5mm)ずらした位置をパレット群3Wの中心位置として計算する。また、荷積み制御部42は、ステップP15においてパレット群3Wの左端位置P1を認識し、且つ、ステップP18においてパレット群3Wの右端位置P2を認識することなくフォーク13,13が左端限界位置に達した場合には、左端位置P1に所定のシフト量(例えば、38.5mm)ずらした位置をパレット群3Wの中心位置として計算する。
次に、荷積み制御部42は、計算した中心位置にフォーク13,13をシフトさせる(ステップP21)。つまり、荷積み制御部42は、左右方向において、計算した中心位置とフォーク13,13の中心位置とを一致させる(図12(b)参照)。次に、荷積み制御部42は、フォーク13,13が中心位置にシフトしたか否かを判断する(ステップP22)。荷積み制御部42が、フォーク13,13が中心位置にシフトしていないと判断した場合には(ステップP22においてNo)、ステップP21が再度繰り返される。一方、荷積み制御部42が、フォーク13,13が中心位置にシフトしたと判断した場合(ステップP22においてYes)には、荷積み判定部41aは、フォーク13,13に対するパレット群3Wの左右の位置が許容範囲W1(図12(b)参照)内に収まっているか否かを判定する(ステップP23)。
ステップP23では、荷積み判定部41aは、左右の下段センサ33,34、及び左右の内側上段センサ35,36がパレット群3Wを検知したか否かを判定する。すなわち、荷積み判定部41aは、下段センサ33,34、及び内側上段センサ35,36からのレーザ光Lがパレット群3Wに当たっているか否かを判定する。荷積み判定部41aは、下段センサ33,34、及び内側上段センサ35,36からのレーザ光Lのいずれかがパレット群3Wに当たっていると判断した場合、すなわち、下段センサ33,34、及び内側上段センサ35,36のいずれかが物体を検知した場合には、パレット群3Wの左右の位置が許容範囲W1に収まっていないと判定する。つまり、左側の下段センサ33、右側の下段センサ34、左側の内側上段センサ35、又は右側の内側上段センサ36が物体を検知した場合に、パレット群3Wの左右の位置が許容範囲W1に収まっていないと判定する。荷積み判定部41aが、パレット群3Wが許容範囲W1に収まっていないと判定した場合には(ステップP23においてNo)、荷積み制御部42は、荷積み制御を停止させる。つまり、荷積み制御部42は、フォークリフト1の動作を異常停止させる。
一方、荷積み判定部41aは、下段センサ33,34、及び内側上段センサ35,36からのレーザ光Lがいずれもパレット群3Wに当たっていないと判定した場合、すなわち、下段センサ33,34、及び内側上段センサ35,36がいずれも物体を検知していないと判定した場合には、パレット群3Wの左右の位置が許容範囲W1に収まっていると判定する。図12(b)に示す例では、下段センサ33,34、及び内側上段センサ35,36がいずれも物体を検知していないので、荷積み判定部41aは、パレット群3Wが許容範囲W1に収まっていると判定する。荷積み判定部41aが、パレット群3Wが許容範囲W1に収まっていると判定した場合には(ステップP23においてYes)、荷積み制御部42は、フォーク13,13にパレット群3Wを荷積みする(ステップP24)。具体的には、荷積み制御部42は、パレット群3Wへフォークリフト1を前進させ、フォーク13,13をパレット群3Wの下に差し込ませる(図12(c)参照)。その後、荷積み制御部42は、フォーク13,13を上昇させ、パレット群3Wを持ち上げる。その後、荷積み制御部42は、フォーク13,13を通常位置に戻し、荷積み制御処理を正常終了する。
荷積み制御部42による荷積み制御処理が正常終了すると、走行制御部43は、フォークリフト1を荷置き場所へ移動させる走行制御処理を開始する。具体的には、走行制御部43は、フォーク13,13にパレット群3Wを積載した状態のフォークリフト1が荷置き空間Vの手前の位置(図16(a)参照)まで移動するように、走行装置2を制御する。図13は、走行時のフォークリフト1を示す概略平面図である。走行制御部43による走行制御処理が行われる間、走行判定部41bは、フォーク13,13に対するパレット群3Wの左右の位置が許容範囲W2に収まっているか否かを判定する。具体的には、走行判定部41bは、左右の外側上段センサ31,32からのレーザ光Lのいずれかがパレット群3Wに当たっているか否かを判定する。走行判定部41bは、左右の外側上段センサ31,32からのレーザ光Lのいずれかがパレット群3Wに当たっていると判定した場合、すなわち、左右の外側上段センサ31,32のいずれかが物体を検知したと判定した場合には、パレット群3Wの左右の位置が許容範囲W2に収まっていないと判定する。この場合、走行制御部43は、走行制御処理を停止させる。つまり、走行制御部43は、フォークリフト1の動作を異常停止させる。
一方、走行判定部41bは、外側上段センサ31,32からのレーザ光Lがいずれもパレット群3Wに当たっていないと判定した場合、すなわち、外側上段センサ31,32のいずれかも物体を検知していないと判定した場合には、パレット群3Wの左右の位置が許容範囲W2に収まっていると判定する。この場合、走行制御部43は、走行制御処理を継続する。そして、走行制御部43は、フォークリフト1が荷置き空間Vの手前の位置まで移動したときに、走行制御処理を正常終了する。なお、パレット群3Wが許容範囲W2に収まっているか否かの判定は、走行制御処理を開始してから終了するまでの間(すなわち、パレット群3Wがフォーク13,13に積載されてから荷置き空間Vの手前の位置に到達するまでの間)において連続的に行われてもよいし、所定の間隔で断続的に行われてもよいし、フォークリフト1が荷置き空間Vの手前の位置に達したときだけに行われてもよい。
図14は、荷置き制御部44により実行される荷置き制御処理の手順を示すフローチャートである。図15は、図14に続く荷置き制御処理の手順を示すフローチャートである。図16(a)~図16(c)は、荷置き制御処理による荷置き動作を示す概略平面図である。図17(a)~図17(c)は、図16(a)~図16(c)に続く荷置き動作を示す概略平面図である。各図では、走行時の路面の凹凸による揺れに起因して、上段のパレット3Bが下段のパレット3Aに対して左側にずれた状態を示している。この例では、左側の内側上段センサ35から照射されたレーザ光Lが上段のパレット3Bに常に当たっている状態となる。また、図16(a)~図16(c)、及び図17(a)~図17(c)の各図において、レーザ光Lがパレット群3Wなどの物体に当たっている状態のセンサ30aをハッチングで示している。走行制御部43による走行制御処理が正常終了すると、荷置き制御部44は、フォーク13,13から荷置き空間Vへパレット群3Wを荷置きさせる荷置き制御処理を開始する。
荷置き制御の開始前には、フォークリフト1は、コンテナ5内の荷置き空間Vの手前に停止している(図16(a)参照)。本実施形態では、コンテナ5の床面に、左右に2つのパレット群3Wが間隔を空けて既に置かれている場合を例示する。以下、これらの既存のパレット群3Wのうち、左側に置かれたパレット群3Wを「パレット群3W1」と呼び、右側に置かれたパレット群3Wを「パレット群3W2」と呼ぶことがある。コンテナ5内の荷置き空間Vは、これらパレット群3W1及びパレット群3W2の間に挟まれた空間である。荷置き空間Vの左右幅、すなわち、パレット群3W1及びパレット群3W2の間の左右の距離は、基準許容範囲WSに応じた大きさとなっている。
まず、荷置き制御部44は、フォーク13,13を、通常位置から左端限界位置に向かって左側にシフトさせる(ステップP31)。このとき、荷置き判定部41cは、フォーク13,13が左端限界位置に達するまでに、左側の下段センサ33が物体を検知したか否かを判定する(ステップP32)。すなわち、荷置き判定部41cは、左側の下段センサ33から照射されたレーザ光Lが既存のパレット群3W1に当たったか否かを判定する。フォーク13,13が左端位置に達するまでに、左側の下段センサ33からのレーザ光Lがパレット群3W1に当たっていないと荷置き判定部41cが判定した場合、すなわち、左側の下段センサ33が物体を検知していないと判定した場合には(ステップP32においてNo)、ステップP31が再度繰り返される。
一方、フォーク13,13が左端限界位置に達するまでに、左側の下段センサ33からのレーザ光Lがパレット群3W1に当たったと荷置き判定部41cが判定した場合、すなわち、左側の下段センサ33が物体を検知したと判定した場合には(ステップP32においてYes)、荷置き制御部44は、左側の下段センサ33からのレーザ光Lが当たった位置を荷置き空間Vの基準位置P0として認識する(図16(b)参照)。その後、荷置き判定部41cは、右側の外側上段センサ32及び右側の内側上段センサ36の双方、又は右側の下段センサ34が、物体を検知したか否かを判定する(ステップP33)。なお、ステップP32において、左側の下段センサ33が物体を検知することなくフォーク13,13が左端限界位置に達したと荷置き判定部41cが判定した場合においても、ステップP33が実施される。
ステップP33では、荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、及び右側の内側上段センサ36からのレーザ光Lの双方、又は右側の下段センサ34からのレーザ光Lが、既存のパレット群3W2などの物体に当たっているか否かを判定する(図16(b)参照)。荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、及び右側の内側上段センサ36からのレーザ光Lの双方、又は右側の下段センサ34からのレーザ光Lが、既存のパレット群3W2などの物体に当たっていると判定した場合、すなわち、右側の外側上段センサ32及び右側の内側上段センサ36の双方、又は右側の下段センサ34が物体を検知したと判定した場合には(ステップP33においてNo)、荷置き制御部44は、荷置き制御処理を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。
一方、荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、及び右側の内側上段センサ36からのレーザ光Lの双方、又は右側の下段センサ34からのレーザ光Lが、既存のパレット群3W2などの物体に当たっていないと判定した場合、すなわち、右側の外側上段センサ32及び右側の内側上段センサ36の双方、又は右側の下段センサ34が物体を検知していないと判定した場合には(ステップP33においてYes)、荷置き制御部44は、フォーク13,13を右端限界位置に向かって右側にシフトさせる(ステップP34)。
次に、荷置き判定部41cは、フォーク13,13が右端限界位置に達するまでに、右側の下段センサ34又は右側の外側上段センサ32が物体を検知したか否かを判定する(ステップP35)。すなわち、荷置き判定部41cは、右側の下段センサ34からのレーザ光L、又は右側の外側上段センサ32からのレーザ光Lが、パレット群3W2などの物体に当たったか否かを判定する。フォーク13,13が右端限界位置に達するまでに、右側の下段センサ34からのレーザ光L、又は右側の外側上段センサ32からのレーザ光Lが、パレット群3W2などの物体に当たっていないと荷置き判定部41cが判定した場合、すなわち、右側の下段センサ34又は右側の外側上段センサ32が物体を検知していないと判定した場合(ステップP35においてNo)、ステップP34が再度繰り返される。
一方、フォーク13,13が右端限界位置に達するまでに、右側の下段センサ34からのレーザ光L、又は右側の外側上段センサ32からのレーザ光Lが、パレット群3W2などの物体に当たっていると判定した場合、すなわち、右側の下段センサ34又は右側の外側上段センサ32が物体を検知したと荷置き判定部41cが判定した場合には(ステップP35においてYes)、荷置き制御部44は、レーザ光Lが当たった位置から荷置き空間Vの右端位置P3を認識する(図16(c)参照)。例えば、右側の下段センサ34が物体を検知したと荷置き判定部41cが判定した場合には、荷置き制御部44は、右側の下段センサ34からのレーザ光Lが当たった位置を荷置き空間Vの右端位置P3として認識する。一方、右側の外側上段センサ32が物体を検知したと荷置き判定部41cが判定した場合には、荷置き制御部44は、右側の外側上段センサ32からのレーザ光Lが当たった位置に対して所定のシフト量(例えば20mm)ずらした位置を、荷置き空間Vの右端位置P3として認識する。
次に、左側の外側上段センサ31及び左側の内側上段センサ35の双方、又は左側の下段センサ33が、物体を検知したか否かを判定する(ステップP36)。なお、ステップP35において、右側の下段センサ34が物体を検知することなくフォーク13,13が右端限界位置に達したと荷置き判定部41cが判定した場合においても、ステップP36が実施される。ステップP36では、荷置き判定部41cは、左側の外側上段センサ31からのレーザ光L、及び左側の内側上段センサ35からのレーザ光Lの双方、又は左側の下段センサ33からのレーザ光Lが、既存のパレット群3W1などの物体に当たったか否かを判定する。荷置き判定部41cが、左側の外側上段センサ31からのレーザ光L、及び左側の内側上段センサ35からのレーザ光Lの双方、又は左側の下段センサ33からのレーザ光Lが、既存のパレット群3W1などの物体に当たっていると判定した場合、すなわち、左側の外側上段センサ31及び左側の内側上段センサ35の双方、又は左側の下段センサ33が物体を検知したと判定した場合には(ステップP36においてNo)、荷置き制御部44は、荷置き制御処理を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。
一方、荷置き判定部41cが、左側の外側上段センサ31からのレーザ光L、及び左側の内側上段センサ35からのレーザ光Lの双方、又は左側の下段センサ33からのレーザ光Lが、既存のパレット群3W1などの物体に当たっていないと判定した場合、すなわち、左側の外側上段センサ31及び左側の内側上段センサ35の双方、又は左側の下段センサ33が物体を検知していないと判定した場合には(ステップP36においてYes)、荷置き制御部44は、フォーク13,13を再び左端限界位置に向かって左側にシフトさせる(ステップP37)。ステップP36において、図16(c)に示す例では、左側の内側上段センサ35からのレーザ光Lがパレット群3Wに当たった状態となっているが、左側の外側上段センサ31から照射されたレーザ光Lは、パレット群3W1に当たっておらず、左側の下段センサ33から照射されたレーザ光Lも既存のパレット群3W1に当たっていないため、荷置き判定部41cは、左側の外側上段センサ31及び左側の内側上段センサ35の双方、又は左側の下段センサ33が物体を検知していないと判定する。
次に、荷置き判定部41cは、フォーク13,13が左端限界位置に達するまでに、左側の下段センサ33又は左側の外側上段センサ31が物体を検知したか否かを判定する(ステップP38)。すなわち、荷置き判定部41cは、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lが、パレット群3W1に当たったか否かを判定する。荷置き判定部41cが、フォーク13,13が左端限界位置に達するまでに、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lが、パレット群3W1に当たっていないと判定した場合、すなわち、左側の下段センサ33又は左側の外側上段センサ31が物体を検知していないと判定した場合(ステップP38においてNo)、ステップP37が再度繰り返される。
一方、荷置き判定部41cが、フォーク13,13が左端限界位置に達するまでに、左側の下段センサ33からのレーザ光L、又は左側の外側上段センサ31からのレーザ光Lが、パレット群3Wに当たったと判定した場合、すなわち、左側の下段センサ33又は左側の外側上段センサ31が物体を検知したと判定した場合には(ステップP38においてYes)、荷置き制御部44は、レーザ光Lが当たった位置から荷置き空間Vの左端位置P4を認識する(図17(a)参照)。例えば、荷置き判定部41cが、左側の下段センサ33が物体を検知したと判定した場合には、荷置き制御部44は、左側の下段センサ33からのレーザ光Lが当たった位置を荷置き空間Vの左端位置P4として認識する。一方、荷置き判定部41cが、左側の外側上段センサ31が物体を検知したと判定した場合には、荷置き制御部44は、左側の外側上段センサ31からのレーザ光Lが当たった位置に対して所定のシフト量(例えば20mm)ずらした位置を、荷置き空間Vの左端位置P4として認識する。その後、荷置き判定部41cは、右側の外側上段センサ32及び右側の内側上段センサ36の双方、又は右側の下段センサ34が、物体を検知したか否かを判定する(ステップP39)。なお、ステップP38において、左側の下段センサ33が物体を検知することなくフォーク13,13が左端限界位置に達したと荷置き判定部41cが判定した場合においても、ステップP39が実施される。
ステップP39では、荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、及び右側の内側上段センサ36からのレーザ光Lの双方、又は右側の下段センサ34から照射されたレーザ光Lが、既存のパレット群3W2に当たっているか否かを判定する。荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、及び右側の内側上段センサ36からのレーザ光Lの双方、又は右側の下段センサ34から照射されたレーザ光Lが、既存のパレット群3W2に当たっていると判定した場合、すなわち、右側の外側上段センサ32及び右側の内側上段センサ36の双方、又は左側の下段センサ33が物体を検知したと判定した場合には(ステップP39においてNo)、荷置き制御部44は、荷置き制御処理を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。
一方、荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、及び右側の内側上段センサ36からのレーザ光Lの双方、又は右側の下段センサ34から照射されたレーザ光Lが、既存のパレット群3W2に当たっていないと判定した場合、すなわち、右側の外側上段センサ32及び右側の内側上段センサ36の双方、又は右側の下段センサ34が物体を検知していないと判定した場合には(ステップP39においてYes)、荷置き制御部44は、荷置き空間Vの中心位置を計算する(ステップP20)。荷置き空間Vの中心位置は、フォーク13,13から荷置き空間Vへのパレット群3Wの荷置き動作を行うための荷置き開始位置として設定される。
荷置き制御部44は、ステップP35において荷置き空間Vの右端位置P3を認識し、且つ、ステップP38において荷置き空間Vの左端位置P4を認識した場合には、右端位置P3及び左端位置P4に基づいて荷置き空間Vの中心位置を計算する。また、荷置き制御部44は、ステップP35において荷置き空間Vの右端位置P3を認識することなくフォーク13,13が右端限界位置に達し、且つ、ステップP38において荷置き空間Vの左端位置P4を認識した場合には、左端位置P4に所定のシフト量(例えば、38.5mm)ずらした位置を荷置き空間Vの中心位置として計算する。また、荷置き制御部44は、ステップP35において荷置き空間Vの右端位置P3を認識し、且つステップP38において荷置き空間Vの左端位置P4を認識することなくフォーク13,13が左端限界位置に達した場合には、右端位置P3に所定のシフト量(例えば、38.5mm)を加えた位置を荷置き空間Vの中心位置として計算する。
次に、荷置き制御部44は、計算した中心位置にフォーク13,13をシフトさせる(ステップP41)。つまり、荷置き制御部44は、左右方向において、計算した中心位置とフォーク13,13の中心位置とを一致させる(図17(b)参照)。次に、荷置き制御部44は、フォーク13,13が中心位置にシフトしたか否かを判断する(ステップP42)。荷置き制御部44が、フォーク13,13が中心位置にシフトしていないと判断した場合(ステップP42においてNo)には、ステップP41が再度繰り返される。一方、荷置き制御部44が、フォーク13,13が中心位置にシフトしたと判断した場合には(ステップP42においてYes)、荷置き判定部41cは、フォーク13,13に対するパレット群3Wの左右の位置が基準許容範囲WS内に収まっているか否かを判定する(ステップP43)。
ステップP43では、まず、荷置き判定部41cは、荷置き空間Vの左右幅が確保されているか否か(すなわち、基準許容範囲WSに応じた左右幅であるか否か)を判定するために、荷置き判定部41cは、左右の下段センサ33,34の双方が物体を検知したか否かを判定する。つまり、荷置き判定部41cは、左右の下段センサ33,34の双方から照射されたレーザ光Lが、荷置き空間Vの外側の既存のパレット群3W1,3W2などの物体に当たっているか否かを判定する。荷置き判定部41cは、左右の下段センサ33,34からのレーザ光Lがいずれも既存のパレット群3W1,3W2などの物体に当たっていると判定した場合、すなわち、左右の下段センサ33,34の双方が物体を検知したと判定した場合、基準許容範囲WSに応じた荷置き空間Vの左右幅が確保されていないと判定する。左右の下段センサ33,34は、基準許容範囲WSよりも狭い間隔で配置されているため、左右の下段センサ33,34の双方が物体を検知した場合には、荷置き空間Vの左右幅が基準許容範囲WSよりも狭いと判断できる。この場合、荷置き制御部44は、荷置き制御を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。
また、荷置き判定部41cは、基準許容範囲WSに応じた荷置き空間Vの左右幅が確保されているか否かを判定するために、左右の内側上段センサ35,36及び左右の外側上段センサ31,32の全てのセンサが物体を検知したか否かを判定する。つまり、荷置き判定部41cは、内側上段センサ35,36及び外側上段センサ31,32からの全てのレーザ光Lが荷置き空間Vの外側の既存のパレット群3W1,3W2などの物体に当たっているか否かを判定する。荷置き判定部41cは、内側上段センサ35,36及び外側上段センサ31,32からの全てのレーザ光Lが既存のパレット群3W1,3W2などの物体に当たっていると判定した場合、すなわち、内側上段センサ35,36及び外側上段センサ31,32の全てのセンサが物体を検知したと判定した場合には、基準許容範囲WSに応じた荷置き空間Vの左右幅が確保されていないと判定する。この場合、荷置き制御部44は、荷置き制御を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。
荷置き判定部41cは、左右の下段センサ33,34の双方が物体を検知しておらず、且つ左右の内側上段センサ35,36及び左右の外側上段センサ31,32がいずれも物体を検知していない場合には、基準許容範囲WSに応じた荷置き空間Vの左右幅が確保されていると判定する。この場合、荷置き判定部41cは、フォーク13,13に対するパレット群3Wの左右の位置が基準許容範囲WS内に収まっているか否かを判定する。図18(a)及び図18(b)は、ステップP43においてパレット群3Wが基準許容範囲WS内に収まっているか否かの判定方法を説明するための図である。図18(a)に示すように、走行時のフォークリフト1の揺れに起因して、左側の内側上段センサ35からのレーザ光Lに当たる位置まで、上段のパレット3Bが下段のパレット3Aに対して左側にずれることが想定される。この場合、左側の内側上段センサ35から照射されるレーザ光Lが常にパレット3Bに当たる状態となる。つまり、左側の内側上段センサ35が物体(パレット3B)を検知している状態となる。この状態において、左側の外側上段センサ31及び右側の下段センサ34によって画定される基準許容範囲WSにパレット群3Wが収まっていれば、左右の既存のパレット群3W1,3W2に接触させることなく、荷置き空間Vにパレット群3Wを荷置きすることができる。
そこで、荷置き判定部41cは、左側の内側上段センサ35からのレーザ光Lがパレット群3Wに当たっている状態において、左側の外側上段センサ31からのレーザ光L、又は右側の下段センサ34からのレーザ光Lが、既存のパレット群3W1,3W2などの物体当たっているか否かを判定する。荷置き判定部41cは、左側の外側上段センサ31からのレーザ光L、又は右側の下段センサ34からのレーザ光Lが物体に当たっていると判定した場合、すなわち、左側の外側上段センサ31又は右側の下段センサ34が物体を検知した場合には(ステップP43においてNo)、パレット群3Wの左右の位置が基準許容範囲WSに収まっていないと判定する。つまり、荷置き判定部41cは、左側の外側上段センサ31又は右側の下段センサ34、且つ左側の内側上段センサ35がパレット群3Wを検知した場合に、パレット群3Wの左右の位置が基準許容範囲WSに収まっていないと判定する。この場合、荷置き制御部44は、荷置き制御を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。一方、荷置き判定部41cは、左側の内側上段センサ35からのレーザ光Lがパレット群3Wに当たっている状態において、左側の外側上段センサ31からのレーザ光L、及び右側の下段センサ34からのレーザ光Lが、いずれも既存のパレット群3W1,3W2などの物体に当たっていないと判定した場合、すなわち、左側の外側上段センサ31及び右側の下段センサ34がいずれも物体を検知していない場合には、パレット群3Wの左右の位置が基準許容範囲WSに収まっていると判定する。
図18(b)に示すように、走行時のフォークリフト1の揺れに起因して、右側の内側上段センサ36からのレーザ光Lに当たる位置まで、上段のパレット3Bが下段のパレット3Aに対して右側にずれることも想定される。この場合、右側の内側上段センサ36からのレーザ光Lが常にパレット3Bに当たる状態となる。つまり、右側の内側上段センサ36が物体(パレット3B)を検知している状態となる。この状態において、右側の外側上段センサ32及び左側の下段センサ33によって画定される基準許容範囲WSにパレット群3Wが収まっていれば、左右の既存のパレット群3W1,3W2などの物体に接触させることなく、荷置き空間Vにパレット群3Wを荷置きすることができる。
そこで、荷置き判定部41cは、右側の内側上段センサ36からのレーザ光Lがパレット群3Wに当たっている状態において、右側の外側上段センサ32からのレーザ光L、又は左側の下段センサ33からのレーザ光Lが既存のパレット群3W1,3W2などの物体当たっているか否かを判定する。荷置き判定部41cは、右側の外側上段センサ32からのレーザ光L、又は左側の下段センサ33からのレーザ光Lが物体に当たっていると判定した場合、すなわち、右側の外側上段センサ32又は左側の下段センサ33が物体を検知した場合には(ステップP43においてNo)、パレット群3Wの左右の位置が基準許容範囲WSに収まっていないと判定する。つまり、荷置き判定部41cは、右側の外側上段センサ32又は左側の下段センサ33、且つ右側の内側上段センサ36がパレット群3Wを検知した場合に、パレット群3Wの左右の位置が基準許容範囲WSに収まっていないと判定する。この場合、荷置き制御部44は、荷置き制御を停止させる。つまり、荷置き制御部44は、フォークリフト1の動作を異常停止させる。一方、荷置き判定部41cは、右側の内側上段センサ36からのレーザ光Lがパレット群3Wに当たっている状態において、右側の外側上段センサ32からのレーザ光L、及び左側の下段センサ33からのレーザ光Lが、いずれも既存のパレット群3W1,3W2などの物体に当たっていないと判定した場合、すなわち、右側の外側上段センサ32及び左側の下段センサ33がいずれも物体を検知していない場合には、パレット群3Wの左右の位置が基準許容範囲WSに収まっていると判定する。
図17(b)に示す例では、左側の内側上段センサ35からのレーザ光Lがパレット群3Wに当たっている状態において、左側の外側上段センサ31からのレーザ光L、又は右側の下段センサ34からのレーザ光Lが既存のパレット群3W1,3W2などの物体当たっていないため、荷置き判定部41cは、パレット群3Wが基準許容範囲WSに収まっていると判定する。荷置き判定部41cが、パレット群3Wが基準許容範囲WSに収まっていると判定した場合には(ステップP43においてYes)、荷置き制御部44は、フォーク13,13から荷置き空間Vへパレット群3Wを荷置きする(ステップP44)。具体的には、荷置き制御部44は、荷置き空間Vへフォークリフト1を前進させてフォーク13,13を下降させることにより、コンテナ5の床面における既存のパレット群3W1,3W2の間にパレット群3Wを荷置きする(図17(c)参照)。その後、荷置き制御部44は、フォーク13,13を通常位置に戻し、荷置き制御処理を正常終了する。
以上に説明した荷積み制御処理及び荷置き制御処理は、最初にフォーク13,13を左側にシフトさせる場合を例示したが、最初にフォーク13,13を右側にシフトさせる場合についても行うことができる。この場合、上述した荷積み制御処理及び荷置き制御処理において、「左」と「右」とを適宜読み替えればよい。上述した荷積み制御処理及び荷置き制御処理は、上段のパレット3Bが下段のパレット3Aに対して左右にずれた状態のパレット群3Wに対して適用されているが、上段のパレット3Bが下段のパレット3Aに対して左右にずれていない状態のパレット群3Wに対しても同様に適用することができる。上述した荷置き制御処理は、既存のパレット群3W1,3W2の間にパレット群3Wを荷置きする場合に行われる例を示しているが、この例に限らず、例えば、コンテナ5の側壁5aに隣接した位置にパレット群3Wを荷置きする場合にも同様に行うことができる。この場合、荷置き制御処理における「物体」をコンテナ5の側壁5aに適宜読み替えればよい。
続いて、本実施形態に係るフォークリフト1によって奏される作用効果について、従来の課題と共に説明する。従来のフォークリフトにおいて、例えば、荷積み時及び走行時に、フォーク13,13に対するパレット群3Wの位置の許容範囲が同一の基準許容範囲WSに設定されることがある。このようなフォークリフトでは、荷積み時に、基準許容範囲WS内のぎりぎりの位置まで上段のパレット3Bが下段のパレット3Aに対して左右にずれた状態でパレット群3Wが荷積みされた場合、その後の走行時において、路面の凹凸などに起因する揺れによってパレット3Bがパレット3Aに対して少しでも左右にずれると、パレット群3Wの左右の位置が基準許容範囲WSを超えてしまう。この場合、フォークリフトを異常停止させて、パレット3Bのずれを修正する対応がとられる。このような走行時の揺れに起因するパレット3のずれは頻繁に起こりやすく、パレット3がずれる度にフォークリフトを異常停止させると、荷役作業に多大な時間を要してしまうことがある。
これに対し、本実施形態に係るフォークリフト1は、パレット群3Wをフォーク13,13に荷積みする際、パレット群3Wの左右の位置が基準許容範囲WSよりも狭い許容範囲W1内に収まっていると判定されたときに、フォーク13,13へのパレット群3Wの荷積みを行う。その後、フォークリフト1は、フォーク13,13に積載された状態のパレット群3Wの左右の位置が許容範囲W1よりも広い許容範囲W2内に収まっていると判定されたときに、荷置き空間Vに向かって走行する。つまり、荷積み時には、パレット群3Wの左右の位置に対する許容範囲を基準許容範囲WSよりも厳しい許容範囲W1とし、走行時には、パレット群3Wの左右の位置に対する許容範囲を許容範囲W1よりも緩い許容範囲W2とする。この場合、荷積み時及び走行時のパレット群3Wの許容範囲を互いに同一に設定した場合と比べて、走行時におけるパレット群3Wの中のパレット3のずれ(下段のパレット3Aに対する上段のパレット3Bのずれ)の許容量を大きくすることができる。これにより、走行時において、フォーク13,13に対するパレット群3Wの左右の位置が許容範囲を超えてしまう事態を抑制できる。その結果、パレット3のずれの発生に起因するフォークリフト1の異常停止の発生を抑制できる。更に、フォークリフト1は、パレット群3Wを荷置き空間Vに荷置きする際、荷置き空間Vの左右幅に対応する基準許容範囲WS内にパレット群3Wが収まっていると判定されたときに、パレット群3Wの荷置きを行う。このように、パレット群3Wが基準許容範囲WS内に収まっていることを確認してから、パレット群3Wの荷置きを行うことにより、荷置き空間Vの左右に置かれた既存の荷物などに接触させることなく、パレット群3Wを荷置き空間Vに正常に荷置きすることができる。従って、本実施形態に係るフォークリフト1によれば、パレット群3Wに対する荷役動作を行う際に、異常停止が発生する可能性を低減できる。その結果、荷役作業に多大な時間を要してしまうといった問題の発生を抑制できる。
本実施形態では、許容範囲W2は、基準許容範囲WSよりも左右に広い範囲に設定されている。これにより、走行時におけるパレット群3W中のパレット3のずれの許容量をより大きくすることができる。その結果、走行時において、フォーク13,13に対するパレット群3Wの左右の位置が許容範囲を超えてしまう事態をより確実に抑制でき、パレット3のずれの発生に起因するフォークリフト1の異常停止の発生をより確実に抑制できる。
本実施形態では、荷積み制御部42は、フォーク13,13に積載される前のパレット群3Wの位置が許容範囲W1内に収まっていないと荷積み判定部41aが判定したときに、荷積み制御を停止し、走行制御部43は、フォーク13,13に積載された状態のパレット群3Wの位置が許容範囲W2内に収まっていないと走行判定部41bが判定したときに、走行制御を停止し、荷置き制御部44は、フォーク13,13に積載された状態のパレット群3Wの位置が基準許容範囲WS内に収まっていないと荷置き判定部41cが判定したときに、荷置き制御を停止する。これにより、パレット群3Wが許容範囲内に収まっていない状態で、パレット群3Wに対する荷役動作が継続されてしまう事態を抑制できる。
本実施形態では、判定部41は、複数のセンサ30aから照射されたレーザ光Lがパレット群3Wに当たっているか否かを判断することによって、パレット群3Wの位置が許容範囲内に収まっているか否かを判定する。この場合、安価な一次元センサを用いて、パレット群3Wの左右の位置が許容範囲内に収まっているか否かの判定を容易に行うことができる。
本実施形態では、荷積み判定部41aは、下段センサ33,34及び内側上段センサ35,36からそれぞれ照射されたレーザ光Lがいずれもパレット群3Wに当たらないと判断した場合に、パレット群3Wの位置が許容範囲W1に収まっていると判定する。走行判定部41bは、外側上段センサ31,32からそれぞれ照射されたレーザ光Lがいずれもパレット群3Wに当たらないと判断した場合に、パレット群3Wの位置が許容範囲W2に収まっていると判定する。この場合、下段センサ33,34の左右の間隔、及び内側上段センサ35,36の左右の間隔によって許容範囲W1が画定され、外側上段センサ31,32の左右の間隔によって許容範囲W2が画定される。このように、許容範囲W1及び許容範囲W2をセンサ間隔によって規定することによって、パレット群3Wの左右の位置が許容範囲W1又は許容範囲W2に収まっているか否かの判定を簡易な構成で行うことができる。
本実施形態では、荷置き判定部41cは、右側の内側上段センサ36から照射されたレーザ光Lが、フォーク13,13に積載された状態のパレット群3Wに当たっている状態において、左側の下段センサ33及び右側の外側上段センサ32から照射されたレーザ光Lが、いずれも荷置き空間Vの外側の物体に当たらない場合、又は、左側の内側上段センサ35から照射されたレーザ光Lが、フォーク13,13に積載された状態のパレット群3Wに当たっている状態において、右側の下段センサ34及び左側の外側上段センサ31から照射されたレーザ光Lが、いずれも荷置き空間Vの外側の物体に当たらない場合、パレット群3Wの位置が基準許容範囲WSに収まっていると判定している。このように、左側の下段センサ33と右側の外側上段センサ32との左右の間隔、及び右側の下段センサ34と左側の外側上段センサ31との左右の間隔、を利用して基準許容範囲WSを規定することによって、パレット群3Wの左右の位置が基準許容範囲WSに収まっているか否かの判定を簡易な構成で行うことができる。
以上、本開示の一実施形態について説明したが、本開示は、上述した実施形態に限定されるものではない。産業車両としてのフォークリフトの構成は、上述した実施形態に限られない。例えば、フォークリフトの駆動方式及びボディー形状などは適宜変更可能である。フォークリフトは、カウンター式のフォークリフトに限られず、リーチ式のフォークリフトであってもよい。荷役装置は、フォークをマストに対して左右方向にシフトさせるサイドシフトシリンダを有していなくてもよい。この場合、荷関制御装置は、走行モータ及び転舵モータを制御してフォークリフト自体を移動させることにより、フォークを横方向(左右方向)に移動させてもよい。
センサの配置及び構成は、上述した実施形態に限られない。上述した実施形態では、センサがアルミフレームに取り付けられている場合を説明したが、センサは、アルミフレームを介さずに(すなわち、アルミフレーム無しで)バックレストに取り付けられてもよい。センサは、バックレスト以外の箇所に取り付けられてもよい。例えば、左右の下段センサは、リフトブラケットの左右両側に取り付けられてもよい。センサは、一方向へレーザ光を照射する一次元センサに限られず、上下方向又は左右方向へレーザ光を照射する二次元センサ(二次元のレーザ距離センサ)であってもよいし、上下方向及び左右方向へレーザ光を照射する三次元センサ(三次元のレーザ距離センサ)であってもよい。