(57)【特許請求の範囲】
【請求項１】
車体と、
前記車体に取付けられているフォークと、
前記車体の位置及び向きを調整する制御部と、
前記フォークの前方に設定された空間内に存在する物体までの距離データを計測するレーザセンサと、
前記レーザセンサで計測された距離データに荷取り対象となる荷又はパレットが含まれる場合に、当該距離データから前記車体を当該荷又はパレットの荷取り位置まで移動させる軌道データを生成し、その生成した軌道データを用いて前記制御部に指令を与える制御指令部と、を備え、
前記レーザセンサは、レーザ光を第１の方向に走査することで走査平面内の物体との距離を計測するレーザセンサであり、
前記レーザセンサは、前記フォークに取付けられており、前記フォークを前記第１の方向とは異なる方向に移動させることで、前記フォークの前方に設定された空間内に存在する物体までの３次元距離データを計測し、
前記制御指令部は、前記３次元距離データに荷取り対象となる荷又はパレットが含まれる場合に、前記３次元距離データから当該荷又はパレットの位置及び向きを特定し、それら特定した荷又はパレットの位置及び向きに基づいて算出される荷取り位置まで前記車体を移動させるための前記軌道データを生成する、フォークリフト。
【請求項２】
前記フォークを前記車体に対して昇降させる昇降機構をさらに備えており、
前記レーザセンサは、前記フォークが昇降運動することで、前記フォークの前方に設定された空間内に存在する物体までの３次元距離データを計測する、請求項１に記載のフォークリフト。
【請求項３】
前記フォークを前記車体に対して傾斜させるティルト機構をさらに備えており、
前記レーザセンサは、前記フォークが傾斜運動することで、前記フォークの前方に設定された空間内に存在する物体までの３次元距離データを計測する、請求項１に記載のフォークリフト。
【請求項４】
前記レーザセンサは、前記フォークの下面よりも上方に配置されている、請求項１〜３のいずれか一項に記載のフォークリフト。
【請求項５】
前記レーザセンサは、当該レーザセンサから照射されるレーザ光が斜め下方に照射されるように、水平方向に対して俯角を付けて前記フォークに取付けられている、請求項４に記載のフォークリフト。
【請求項６】
前記制御指令部は、前記レーザセンサで計測された３次元距離データに荷取り対象となる荷又はパレットが含まれる場合であって、当該３次元距離データから前記車体を当該荷又はパレットの荷取り位置まで移動させる間、前記レーザセンサから照射されるレーザ光が当該荷又はパレットの前面の高さの中央に照射されるように前記フォークの運動を制御する、請求項１〜５のいずれかに記載のフォークリフト。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示の技術は、フォークリフトに関する。
【背景技術】
【０００２】
フォークリフトによる荷取り作業の際、フォークと荷取り対象となる荷又はパレットとの干渉を避ける必要がある。特許文献１に開示のフォークリフトでは、反射型光センサによって、パレットの開口の上端および下端を検出する。そして、フォークの上面とパレットの開口の上端とのクリアランス、および、フォークの下面とパレットの開口の下端とのクリアランスを算出し、これらクリアランスが適切な値となるようにフォークの位置を調整している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−８９０１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フォークリフトに正確な荷取り作業を行うためには、フォークリフトを荷取り対象となる荷又はパレットの荷取り位置まで正確に移動させなければならない。しかし、従来の技術では、荷取り対象となる荷又はパレットの荷取り位置に正確に位置決めできない場合があった。例えば、特許文献１の技術では、パレットの高さ方向のずれを検出できるものの、横方向のずれや、パレットの向きに関するずれを検出することはできない。このため、フォークリフトをパレットの荷取り位置に正確に位置決めすることができない場合があった。
【０００５】
本明細書は、正確な荷取り作業が可能となるフォークリフトを開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示するフォークリフトは、車体と、車体に取付けられているフォークと、車体の位置及び向きを調整する制御部と、フォークの前方に設定された空間内に存在する物体までの距離データを計測するレーザセンサと、レーザセンサで計測された距離データに荷取り対象となる荷又はパレットが含まれる場合に、当該距離データから車体を当該荷又はパレットの荷取り位置まで移動させる軌道データを生成し、その生成した軌道データを用いて制御部に指令を与える制御指令部とを備える。
【０００７】
上記のフォークリフトは、フォークの前方に設定された空間内に存在する物体までの距離データを計測するレーザセンサを備えている。したがって、荷取り対象となる荷又はパレットの高さ方向のずれに加えて、横方向のずれや、荷又はパレットの向きに関するずれまで検出することができる。そして、レーザセンサで計測された距離データに荷取り対象となる荷又はパレットが含まれる場合には、その距離データから車体を当該荷又はパレットの荷取り位置まで移動させる軌道データを生成し、その生成した軌道データを用いて車体を移動させる。このため、フォークリフトを荷又はパレットの荷取り位置に正確に位置決めすることができる。
【図面の簡単な説明】
【０００８】
【図１】実施例に係るフォークリフトの概略構成を示す斜視図。
【図２】実施例に係るフォークリフトによりレーザ光を走査している状態を模式的に示す図。
【図３】実施例に係るフォークリフトの制御構成を示すブロック図。
【図４】初期位置において、レーザセンサによりパレットの高さデータを取得する処理の手順を示すフローチャート。
【図５】レーザセンサによりパレットまでの距離データを取得している状態を示す図。
【図６】取得した距離データから抽出された直線を構成する点群の長さ及び中心位置を算出する方法を説明するための図。
【図７】パレットの開口を検出する方法を説明するための図。
【図８】初期位置から荷取り位置までフォークリフトが移動する際に、レーザセンサにより取得した距離データからパレット前面の中心の位置及び方向を特定する処理の手順を示すフローチャート。
【図９】パレットの前面にレーザ光を照射させるためにフォークの高さを制御している状態を模式的に示す図。
【図１０】フォークリフトを荷取り位置まで移動させるときのフォークリフトの移動制御の処理手順を示すフローチャート。
【図１１】フォークリフトを荷取り位置まで移動する処理を行う際におけるフォークリフトの移動状態を模式的に示す図。
【図１２】フォークをティルトさせるティルト機構を利用してレーザ光を走査している状態を模式的に示す図。
【図１３】パレットの高さを検出するための方法を説明するための図。
【発明を実施するための形態】
【０００９】
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に記載する技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。
【００１０】
（特徴１）  本明細書に開示するフォークリフトにおいて、制御指令部は、レーザセンサで計測された距離データにパレットが含まれる場合に、当該距離データから当該パレットの位置及び向きを特定し、それら特定したパレットの位置及び向きに基づいて軌道データを生成してもよい。このような構成によると、生成された軌道データに基づいて、車体を荷取り位置まで、正確に移動させることができる。
【００１１】
（特徴２）  本明細書に開示するフォークリフトにおいて、レーザセンサは、レーザ光を第１の方向に走査することで走査平面内の物体との距離を計測するレーザセンサであってもよい。また、レーザセンサはフォークに取付けられており、フォークを第１の方向とは異なる方向に移動させることで、レーザセンサは、フォークの前方に設定された空間内に存在する物体までの３次元距離データを計測してもよい。このような構成によると、１次元走査型のレーザセンサであっても２次元走査が可能となり、フォークリフト周辺の物体の３次元距離データを得ることができる。
【００１２】
（特徴３）  本明細書に開示するフォークリフトは、フォークを車体に対して昇降させる昇降機構をさらに備えており、レーザセンサは、フォークが昇降運動することで、フォークの前方に設定された空間内に存在する物体までの３次元距離データを計測してもよい。このような構成によると、フォークを上下方向に昇降させる昇降機構を利用して、レーザセンサから照射されるレーザ光を第１の方向と交差する上下方向に走査することができる。このため、レーザセンサから照射されるレーザ光を２次元に走査することができ、フォークリフト周辺の物体の３次元距離データを得ることができる。
【００１３】
（特徴４）  本明細書に開示するフォークリフトは、フォークを車体に対して傾斜させるティルト機構をさらに備えており、レーザセンサは、フォークが傾斜運動することで、フォークの前方に設定された空間内に存在する物体までの３次元距離データを計測してもよい。このような構成によると、フォークを傾動させるティルト機構を利用して、レーザセンサから照射されるレーザ光を上下方向に走査することができる。このため、レーザセンサから照射されるレーザ光を２次元（例えば、水平方向及び上下方向の２次元）に走査することができ、周辺の物体の３次元距離データを得ることができる。
【００１４】
（特徴５）  本明細書に開示するフォークリフトにおいて、レーザセンサは、フォークの下面よりも上方に配置されていてもよい。このような構成によると、フォークが床や地面に接触しても、レーザセンサが破損することを防止できる。
【００１５】
（特徴６）  本明細書に開示するフォークリフトにおいて、レーザセンサは、当該レーザセンサから照射されるレーザ光が斜め下方に照射されるように、水平方向に対して俯角を付けてフォークに取付けられていてもよい。このような構成によると、レーザセンサがフォークの上方に取付けられる場合でも、床に置かれたパレット等を認識することができる。
【００１６】
（特徴７）  本明細書に開示するフォークリフトにおいて、制御指令部は、レーザセンサで計測された３次元距離データに荷取り対象となる荷又はパレットが含まれる場合であって、当該３次元距離データから車体を当該荷又はパレットの荷取り位置まで移動させる間、レーザセンサから照射されるレーザ光が当該荷又はパレットの前面の中央に照射されるようにフォークの運動を制御してもよい。このような構成によると、車体移動中に常に荷又はパレットの観測を行うことができ、フォークリフトを荷取り位置まで正確に移動させることができる。
【実施例１】
【００１７】
本実施例のフォークリフト１０について、図面を参照しながら説明する。図１に示すように、フォークリフト１０は、無人フォークリフトであり、車体３０と、マスト２４と、フォーク２２と、リフトチェーン２６と、レーザセンサ２０と、制御装置７０とを備えている。
【００１８】
車体３０は、その両側面のそれぞれに前輪２８Ｆ及び後輪２８Ｒを備えている。後輪２８Ｒの一方は、図示しない駆動機構を介して駆動輪モータ９０（図３に図示）に接続されており、駆動輪モータ９０によって回転駆動されるようになっている。また、駆動輪モータ９０に接続された後輪２８Ｒは、操舵装置９４（図３に図示）にも接続されており、操舵装置９４によって車輪の向きが調整される。後輪２８Ｒの他方は、キャスタ輪であり、車体３０の走行に追従して回転及び操舵する。制御装置７０が駆動輪モータ９０及び操舵装置９４を制御することより、車体３０は路面を走行すると共に、車体３０の進行方向を変えることができる。
【００１９】
マスト２４は、車体３０の前面に取付けられている支柱であり、その軸線は上下方向に伸びている。フォーク２２は、マスト２４に上下方向に移動可能に取付けられている。また、フォーク２２は、図示しないティルト機構によって、マスト２４に対して揺動可能となっている。フォーク２２は、一対のツメ２２ａ，２２ｂを有している。ツメ２２ａ，２２ｂは、車体３０の左右方向に互いに離間した位置に配置されており、マスト２４側から車体１２の前方に向かって伸びている。リフトチェーン２６は、マスト２４に設置されており、フォーク２２と係合している。リフトチェーン２６がフォーク昇降装置４８（図３に図示）により駆動されると、それによってフォーク２２が昇降される。フォーク２２の上下方向の位置は、フォーク昇降装置４８の駆動量によって特定可能となっている。
【００２０】
レーザセンサ２０は、フォーク２２に取付けられ、フォーク２２と一体となって上下方向に昇降する。レーザセンサ２０が取付けられる位置は、ツメ２２ａ、２２ｂの間であって、フォーク２２のバックレスト面より奥側（車体１２側）に配置されている。レーザセンサ２０は、ツメ２２ａ、２２ｂの下面よりも上方に配置されている。レーザセンサ２０は、照射されるレーザ光が斜め下方に照射されるように、水平方向に対して俯角を付けてフォーク２２に取付けられている。レーザセンサ２０は、１方向（本実施例では水平方向）にレーザ光を走査する１次元走査型のレーザセンサである。レーザセンサ２０は、レーザ光を照射するとともにその照射したレーザ光の反射光から周辺物体までの距離を計測する。フォーク２２が昇降すると、レーザセンサ２０も昇降するため、レーザセンサ２０から照射されるレーザ光の高さ方向の位置も変化する。本実施例では、図２に示すように、レーザセンサ２０は、上下方向に昇降しながら、フォークリフト１０の前方の所定の角度範囲の領域５０（図１参照）にレーザ光を照射する。これにより、レーザセンサ２０から照射されるレーザ光は水平方向及び高さ方向（２次元）に走査され、フォークリフト１０の前方の距離データ８０が取得される。レーザセンサ２０で取得される３次元距離データは、制御装置７０（図３に図示）に入力される。
【００２１】
なお、レーザセンサ２０としては、例えば、北陽電機製のＵＴＭ−３０ＬＸやＳＩＣＫ社製ＬＭＳ１００等を用いることができる。
【００２２】
制御装置７０は、ＣＰＵ等を備えたマイクロプロセッサによって構成されている。制御装置７０は、車体３０に搭載されている。制御装置７０は、上述したレーザセンサ２０と、一方の後輪２８Ｒを駆動する駆動輪モータ９０と、一方の後輪２８Ｒの操舵角を調整する操舵装置９４と、フォーク２２の昇降を行うフォーク昇降装置４８等に接続されており、これらの動作を制御する。
【００２３】
すなわち、制御装置７０は、駆動輪モータ９０及び操舵装置９４を駆動することで、フォークリフト１０の進行方向及び走行速度を制御する。すなわち、制御装置７０は、駆動輪モータ９０及び操舵装置９４に制御指令値を出力することで、一方の後輪２８Ｒを駆動する。これによって、フォークリフト１０の進行方向、走行速度及び走行経路等が制御される。制御装置７０は、一方の後輪２８Ｒの、操舵装置９４による操舵角と、駆動輪モータ９０からの信号に基づく回転速度から、フォークリフト１０の実際の位置及び速度を特定することができる。なお、制御装置７０によるフォークリフト１０の進行方向及び走行速度の制御については、従来公知の方法で行うことができるため、ここではその詳細な説明は省略する。
【００２４】
また、制御装置７０は、メモリに記憶されているプログラムを実行することで、レーザセンサ２０によりパレット１００を認識し、その認識したパレット１００を荷取るための位置にフォークリフト１０を移動させる処理を実行する。具体的には、荷取り対象となるパレット１００の初期観測時においては、制御装置７０は、まず、レーザセンサ２０の高さ方向の位置を検出しながらレーザセンサ２０を下降させると共に、レーザセンサ２０により取得される距離データに基づいて、パレット１００の前面の中央の高さを特定する処理を実行する。次に、制御装置７０は、特定したパレット１００の前面の中央の高さ付近を観測した距離データに基づいて、パレット１００の位置及び方向を特定する。次いで、特定したパレット１００の位置及び方向に基づいて車体が走行すべき軌道データを生成する処理を実行する。次いで、生成した軌道データと、パレット１００の位置及び方向に基づいて駆動・操舵データを生成する処理を実行し、最後に、生成した駆動・操舵データに基づいて車体を駆動する処理を実行する。すなわち、制御装置７０は、図３に示すように、パレット認識部３６、軌道・速度計画部３８、駆動・操舵指令部４０、駆動輪・操舵制御部４２、センサ移動制御部４４及びセンサ位置検出部４６として機能する。制御装置７０が上述した各部３２〜４６として機能することで、パレット１００の位置、方向及び幅が特定され、特定されたパレット１００の位置及び方向に基づいて車体３０が荷取り位置まで移動する。各部３２〜４６の詳細については、以下で説明する制御装置７０で行われる処理とともに説明する。
【００２５】
次に、制御装置７０によって、パレット１００の荷取り位置までフォークリフト１０を移動させる処理について説明する。まず、荷取り対象となるパレット１００の距離データ８０を取得し、その距離データからパレット１００の高さ及び幅を認識する処理について説明する。距離データの取得は、荷取り対象となるパレット１００の近傍にフォークリフト１０が停止した状態で実行される。すなわち、図４に示すように、制御装置７０は、まず、車体３０の前方にパレット１００が位置するように、一方の後輪２８Ｒを駆動して、パレット１００に対してフォークリフト１０を接近させる。すなわち、パレット１００をレーザセンサ２０によって観測するために、フォークリフト１０をパレット前方の初期位置へ移動させる（Ｓ１０）。例えば、工場内で荷物を運搬するフォークリフト１０では、荷物（パレット１００）が載置される位置は予め定められている。このため、フォークリフト１０を停止させる初期位置は、パレット１００が載置される位置から予め定められている。このため、制御装置７０は、予め設定された初期位置まで、駆動輪モータ９０及び操舵装置９４を駆動してフォークリフト１０を自動で移動させる。なお、フォークリフト１０が運転者によって運転される場合は、運転者によってフォークリフト１０が初期位置まで移動され、その後、フォークリフト１０の運転者のスイッチ操作により距離データ生成処理が開始されてもよい。
【００２６】
次に、制御装置７０は、フォーク昇降装置４８を駆動して、レーザセンサ２０を、観測対象領域６０（図５に図示）の上限にレーザ光が照射されるように移動させる（Ｓ１２）。観測対象領域６０とは、パレット１００が存在する可能性のある領域である。例えば、図５に示すように、荷物１３０はパレット１００上に載置され、パレット１００は台座１２０上に載置される場合であれば、パレット１００が存在する可能性のある領域（高さ、幅）は、台座１２０とパレット１００の寸法によって決まる。ステップＳ１２では、パレット１００が存在する可能性のある領域の上限までレーザセンサ２０を移動させ、パレット１００が確実に検出されるようにする。
【００２７】
次に、制御装置７０は、フォーク昇降装置４８を駆動して、フォーク２２を下降させながら、レーザセンサ２０でスキャンデータを取得する（Ｓ１４）。すなわち、レーザセンサ２０は、レーザ光を水平方向に走査しながら照射するとともにその照射したレーザ光の反射光を検出する。一方、フォーク昇降装置４８がフォーク２２を下降させるため、レーザセンサ２０は下方向に移動する。このため、レーザセンサ２０から照射されるレーザ光は、垂直方向にも走査される。したがって、ステップＳ１４の処理によって、レーザセンサ２０からのレーザ光は、水平方向及び垂直方向に走査され、その反射光を検出することで、観測対象領域６０の観測点群を取得することができる。なお、上記のステップＳ１２及びＳ１４のフォークを昇降させる処理によって実現される制御装置７０の機能が、図３に示すセンサ移動制御部４４に相当する。
【００２８】
次に、制御装置７０は、レーザセンサ２０で取得した観測点群に対して、逐次的にステップＳ１６の処理をする。具体的には、制御装置７０は、まず、観測点群から直線が抽出できるか否かを判断する。図５に示すように、パレット１００の前面から反射される反射光による観測点群は同一平面上に位置する。このため、パレット１００の前面から反射される反射光による観測点群は、直線を構成する。なお、直線の抽出には、例えば、ＲＡＮＳＡＣのようなロバスト推定と呼ばれる公知のアルゴリズムを用いることができる。
【００２９】
次に、制御装置７０は、抽出された直線を構成する点群の長さが、パレット１００の幅に概ね等しいか否かを判断する。ここで、パレット１００の規格は既知であることが通常である。したがって、直線を構成する点群の長さと設定値（パレット１００の規格から定められる値）を比較することによって、パレット１００の前面の直線が抽出されているか否かを判断することができる。直線を構成する点群の長さＷｐは、例えば、図６に示すように、点群のｘ方向の最大値及び最小値ｐｘｍａｘ，ｐｘｍiｎ、ｙ方向の最大値及び最小値ｐｙｍａｘ，ｐｙｍiｎを持つ観測点を用いることによって、下式により求めることができる。
【００３０】
【数１】
0006469506.tif 000002
【００３１】
制御装置７０は、式（１）により求められた長さをパレット１００の幅（設定値）と照らし合わせることによって、パレット１００の幅に等しいか否かを判断する。
【００３２】
次に、制御装置７０は、抽出された直線が３本の線分で構成されているか否かを判断する。詳細には、抽出された直線をユークリッド距離でクラスタリングする。すなわち、図５，７に示すように、パレット１００の前面には２つの開口部１１０（フォーク２２のツメ２２ａ，２２ｂが挿し込まれる孔）が形成されている。このため、パレット１００の前面から抽出される直線は、パレット１００の前面の開口部１１０によって分断される。したがって、レーザセンサ２０による計測高さが、パレット開口部１１０の範囲に存在するとき、抽出された直線は３本の線分でクラスタリングされる（すなわち、クラスタ数が３となる（図７でＹＥＳと示された線分）。なお、クラスタリングには、例えば、ｋ−ｍｅａｎｓ法やｋｄ−ｔｒｅｅ法のような公知の方法を用いることができる。
【００３３】
ここで、制御装置７０は、フォーク昇降装置４８を制御してフォーク２２を昇降するため、フォーク２２の上下方向の位置を知ることができる。レーザセンサ２０は、フォーク２２に取付けられているため、制御装置７０（図３に示すセンサ位置検出部４６）は、レーザセンサ２０の高さ方向の位置を知ることができる。このため、上述したステップＳ１６の処理における条件を全て満たす場合（Ｓ１６でＹＥＳ）、制御装置７０は、現在のレーザセンサ２０の計測高さをパレット開口部１１０の開始高さ（ｈＡ）と判断し、現在の計測高さを記録する（Ｓ１８）。ステップＳ１６において、少なくともいずれか一つの条件を満たさない場合（Ｓ１６でＮＯ）は、制御装置７０はステップＳ１４の処理へ戻る。
【００３４】
次に、制御装置７０は、再びフォーク昇降装置４８を駆動して、フォーク２２を下降させながら、レーザセンサ２０でスキャンデータを取得する（Ｓ２０）。次いで、制御装置７０は、レーザセンサ２０で取得した観測点群に対して、逐次的にステップＳ２２の処理をする。ステップＳ２２の処理については、ステップＳ１６の処理と同様であるため、詳細な説明は省略する。ステップＳ２２の処理において、少なくともいずれか一つの条件を満たさない場合（Ｓ２２でＮＯ）、制御装置７０は、現在のレーザセンサ２０の計測高さはパレット１００の開口部１１０の終了高さ（ｈＢ）であると判断し、現在の計測高さを記録する（Ｓ２４）。ステップＳ２２の処理において条件を全て満たす場合（Ｓ２２でＹＥＳ）、レーザ光が走査される位置はパレット１００の開口部１１０の位置であるとし、制御装置７０はステップＳ２０の処理へ戻る。なお、上記のステップＳ１６及びＳ２２の処理のうち、レーザセンサ２０の高さを認識する制御装置７０の機能が、図３に示すセンサ位置検出部４６に相当する。
【００３５】
次に、制御装置７０は、上述したステップＳ１６及びＳ２２の処理を行うことによって得られたｈＡ及びｈＢから、下式（２）及び（３）により、パレット１００の中心の高さｈＰ及びパレット開口部１１０の上下方向の幅ＨＰ（パレット高さデータ６２）を求める（Ｓ２６）。なお、上記のステップＳ１０〜Ｓ２４の処理によって実現される制御装置７０の機能が、図３に示すパレット認識部３６に相当する。
【００３６】
【数２】
0006469506.tif 000003
【００３７】
次に、フォークリフト１０を初期位置から荷取り位置まで移動させる際に、制御装置７０によって実行される処理について説明する。フォークリフト１０を初期位置から荷取り位置まで移動させる際、制御装置７０は、図８に示すパレット１００の前面の中心位置を検出する処理と、図１０に示すフォークリフト１０の走行制御処理を実行する。すなわち、制御装置７０は、レーザセンサ２０によってパレット１００の前面の中心位置を検出しながら、その検出結果を用いて駆動輪モータ９０及び操舵装置９４を制御することで、フォークリフト１０を荷取り位置まで移動させる。まず、制御装置７０によるパレット１００の前面の中心位置を検出する処理について説明する。図８に示すように、まず、制御装置７０は、車体３０が初期位置から荷取り位置まで移動する間、レーザセンサ２０で観測されるパレット高さデータ６２に基づいて、レーザセンサ２０のレーザ光が、常にパレット１００の前面の高さの中央に照射されるように、フォーク昇降装置４８により、フォーク２２の高さを調整する（Ｓ３０、図９に示す状態）。
【００３８】
【数３】
0006469506.tif 000004
【００３９】
図９に示すように、レーザセンサ２０とパレット１００との距離Ｌ及びパレット高Ｈｐは、センサ位置検出部４６及びパレット高さデータ６２から算出することができる。また、レーザセンサ２０に設けられた俯角φは既知である。したがって、レーザセンサ２０とパレット１００との距離Ｌ、パレット高Ｈｐ及び俯角φから、センサ高Ｈｓを求め、上式（４）を満足するようにフォーク２２の高さを制御する。これにより、車両の揺れや観測誤差が生じた場合でも、レーザ光がパレット１００から外れることがなく、正確な追従制御ができる。
【００４０】
次に、制御装置７０は、センサ高Ｈｓにおいて、レーザセンサ２０で取得した観測対象領域６０内に存在する観測点群から、パレット前面に相当する直線を抽出する（Ｓ３２）。直線の抽出には、例えば、ＲＡＮＳＡＣのような公知のアルゴリズムを用いることができる。
【００４１】
次に、制御装置７０は、抽出された直線に対し、ステップＳ３４の処理を行う。具体的には、制御装置７０は、まず、ステップＳ３２で抽出された直線を構成する点群の長さが、パレット１００の幅に概ね等しいか否かを判断する（Ｓ３４）。直線を構成する点群の長さは、例えば、点群のｘ方向の最大値及び最小値、ｙ方向の最大値及び最小値を持つ観測点を用いることによって、上述した式（１）により求めることができる。制御装置７０は、式（１）により求められた長さをパレット１００の幅（設定値）と照らし合わせることによって、パレット１００の幅に等しいか否かを判断する。
【００４２】
次に、制御装置７０は、抽出された直線が３本の線分で構成されているか否かを判断する（Ｓ３４）。具体的には、上述したステップＳ１６における処理と同様であるため、ここではその詳細な説明は省略する。
【００４３】
上述したステップＳ３４の処理において、少なくともいずれか一つの条件を満たさない場合（Ｓ３４でＮＯ）、制御装置７０は、ステップＳ３０に戻り処理を繰り返す。
【００４４】
上述したステップＳ３４の処理において条件を全て満たす場合（Ｓ３４でＹＥＳ）、制御装置７０は、レーザセンサ２０により取得した観測点群のｘ方向の最大値及び最小値、ｙ方向の最大値及び最小値を用いてパレット１００前面のｘ方向及びｙ方向の中心位置Ｐｃ（Ｃｐｘ，Ｃｐｙ）を検出する（Ｓ３６、図６を参照）。パレット１００の前面のｘ方向及びｙ方向の中心位置Ｐｃの検出は、例えば、下式（５）及び（６）により求めることができる。
【００４５】
【数４】
0006469506.tif 000005
【００４６】
次に、制御装置７０は、パレット１００の方向を決定する（Ｓ３８）。パレット１００の方向の決定は、例えば、パレット認識部３６及びセンサ位置検出部４６によって、抽出された直線の方向をパレット１００の側面の法線ベクトル、当該直線に直交する方向をパレット１００前面の法線ベクトルとすることで、パレットの方向を求めることができる。これによって、パレット１００の位置及び方向を特定することができ、パレット１００の位置及び方向を特定したパレット位置・方向データ８４が得られる。なお、上記のステップＳ３０〜Ｓ３８の処理によって実現される制御装置７０の機能が、図３に示すパレット認識部３６に相当する。
【００４７】
次に、制御装置７０によるフォークリフト１０の走行制御処理を図１０を用いて説明する。図１０に示すように、制御装置７０は、図４に示す処理を実行することで取得したパレット位置・方向データ８４に基づいて、パレット１００の荷取り位置（最終目標位置及び最終目標方向）に車体３０を移動するための軌道計画を作成し、作成した軌道計画に基づいて、現在位置（初期位置）から荷取り位置まで移動する間の各時刻における目標位置及び目標方位を算出する（Ｓ５０）。具体的には、まず、制御装置７０は、パレット位置・方向データ８４からパレット１００の荷取り位置（フォークリフト１０の最終目標位置及び最終目標方位）と、現在の位置から荷取り位置まで移動する際に要する時間を決定し、これらから軌道計画及び速度計画を作成する。次いで、制御装置７０は、作成した軌道計画と速度計画に基づいて、現時点から荷取り位置まで移動する間の各時刻での目標位置及び目標方位（軌道データ８６）を算出する。軌道計画と速度計画には、例えば、直線補間やスプライン曲線による補間のような従来公知の方法を用いることができる。なお、上記の処理によって実現される制御装置７０の機能が、図３に示す軌道・速度計画部３８に相当する。
【００４８】
次に、制御装置７０は、決定した軌道データ８６（各時刻における目標位置及び目標方位）と、図８に示す処理によって取得されるパレット位置・方向データ８４から特定されるフォークリフト１０の現在の位置とに基づいて、荷取り位置（最終目標位置及び最終目標方向）まで車体３０を移動するための制御指令値を生成する。すなわち、本実施例では、フォークリフト１０が初期位置から荷取り位置まで移動する間も、レーザセンサ２０によるパレット１００の観測（図８の処理）が実行される。このため、レーザセンサ２０により取得されるパレット位置・方向データ８４から、現在のフォークリフトの位置（パレット１００に対する相対的位置）及び方位を算出することができる。このため、まず、制御装置７０は、式（７）に示すように、軌道データ８６に基づく現在時刻での車体３０の目標位置・方位ｘｒｅｆ，ｙｒｅｆ，θｒｅｆと、パレット位置・方向データ８４から算出される車体３０の現在位置・方位ｘｖｅｈ，ｙｖｅｈ，θｖｅｈとから偏差ｘｅ，ｙｅ，θｅを算出し、その算出した偏差ｘｅ，ｙｅ，θｅを車両座標系に変換する（Ｓ５２）。
【００４９】
【数５】
0006469506.tif 000006
【００５０】
次に、制御装置７０は、上記の式（７）より得られた偏差にフィードバックゲインＫｘ，Ｋｙ，Ｋθを乗じて、車体３０が出すべき実際の目標並進速度及び目標角速度ｖｏｕｔ，ωｏｕｔ（駆動・操舵データ８８）を算出する（Ｓ５４）。なお、車体３０の目標並進速度及び目標角速度ｖｏｕｔ，ωｏｕｔ（すなわち、車両座標系での並進速度及び角速度）は、下記に示す式（８）及び（９）を用いて算出することができる。そして、図１１に示すように、駆動・操舵データ８８に基づいてフォークリフト１０が移動することで、フォークリフト１０は、パレット１００に対して適切な位置及び向きとなるように調整される。なお、上記の処理によって実現される制御装置７０の機能が、図３に示す駆動・操舵指令部４０に相当する。
【００５１】
【数６】
0006469506.tif 000007
【００５２】
次に、制御装置７０は、得られた並進速度及び角速度ｖｏｕｔ，ωｏｕｔを元に、駆動輪の速度及び操舵角を制御する（Ｓ５６）。すなわち、制御装置７０は、制御指令値（ｖｏｕｔ，ωｏｕｔ）に基づき、これを実現する駆動輪速度指令値と操舵角度指令値を幾何学的計算により求め、それぞれを駆動輪モータ９０と操舵装置９４へ出力する。なお、上記の処理によって実現される制御装置７０の機能が、図３に示す駆動輪・操舵制御部４２に相当する。
【００５３】
次に、制御装置７０は、フォークリフト１０が荷取り位置（最終目標位置及び最終目標方向）まで移動したかを判断する（Ｓ５８）。フォークリフト１０が荷取り位置まで移動していないと判断した場合（Ｓ５８でＮＯ）は、制御装置７０は、ステップＳ５２〜Ｓ５８を繰り返す。これによって、フォークリフト１０が荷取り位置まで移動する。一方、フォークリフト１０が荷取り位置まで移動したと判断した場合（Ｓ５８でＹＥＳ）は、図１０に示す処理を終了する。
【００５４】
上述した実施例のフォークリフト１０では、レーザセンサ２０がフォーク２２に取付けられている。このため、フォーク２２が昇降すると、それに応じてレーザセンサ２０も昇降する。したがって、フォーク２２を昇降しながら、レーザセンサ２０が水平方向にレーザ光を走査するだけで、パレット１００の前面の形状を計測することができる。また、パレット１００の前面の観測点群から、パレット１００の位置、方向及び幅を特定するため、パレット１００の横方向の位置ずれや、回転に関するずれを検出することができる。
【００５５】
また、上述した実施例のフォークリフト１０では、レーザセンサ２０で得られたパレット１００の計測データに基づいて、車体３０をパレット１００の荷取り位置まで移動させる軌道データを生成し、その生成した軌道データを用いて車体３０を移動させる。このため、フォークリフト１０をパレット１００の荷取り位置に正確に位置決めすることができる。
【００５６】
最後に、上述した実施例と請求項との対応関係を説明しておく。駆動輪・操舵制御部４２が「制御部」の一例であり、演算部３４、パレット認識部３６、軌道・速度計画部３８及び駆動・操舵指令部４０が請求項でいう「誘導計画部」の一例であり、センサ移動制御部４４が「昇降機構」の一例である。
【００５７】
以上、本実施例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
【００５８】
例えば、本実施例では、フォークを上下方向に昇降させることでレーザ光を上下方向に走査したが、本明細書に開示する技術は、このような構成に限られない。例えば、図１２に示すように、フォークの先端を基端に対して傾動させるティルト機構を利用して、レーザセンサ２０から照射されるレーザ光を上下方向に走査してもよい。
【００５９】
また、本実施例では、レーザセンサ２０で得られた観測点群から水平方向に伸びる直線を抽出し、その線分の長さと線分の数（クラスタ数）を、パレット１００の開口部１１０の特徴として捉え、これをもとにパレット１００の高さを検出したが、本明細書に開示する技術は、レーザセンサ２０から照射されるレーザ光のビーム長の変化を捉えてパレット１００の高さを検出してもよい。例えば、レーザセンサ２０から照射されるレーザ光を観測対象領域６０の上限から下限まで走査すると、図１３に示すように、レーザセンサ２０から照射されるレーザ光のビーム長は、開口部１１０によって大きく変化する。このため、パレット１００の高さ（開口部１１０の高さ方向の位置）は、レーザ光のビーム長の変化によって検出することができる。具体的には、ビーム長が顕著に大きくなった箇所をパレット開口部１１０の上端とし、ビーム長が顕著に短くなった箇所をパレット開口部１１０の下端とすることができる。より詳細には、観測対象領域６０の上限から下方に向かってレーザスキャンを行うと、まず、レーザ光は、パレット１００の上端を捉える。さらにレーザスキャンを続けていくと、照射されるレーザ光の高さが、開口部１１０に達したとき、照射されるレーザ光は開口部１１０内を通過し、レーザ光のビーム長が極端に長くなる位置が現れる。したがって、その高さを開口部１１０の上端と認識することができる。その後、レーザスキャンをさらに続け、照射されるレーザ光の高さが、開口部１１０の下端に達すると、レーザ光はパレット１００の前面に照射され、レーザ光のビーム長が極端に短くなる。したがって、その高さを開口部１１０の下端と認識することができる。なお、パレットの仕様（開口部１１０の大きさ）が既知の場合、開口部１１０の上端又は下端の位置を検出できれば、パレット開口部１１０の中央部の高さを求めることができる。この場合、レーザ光を観測対象領域６０の下限までレーザ光を走査する必要がなくなるため、リードタイムの低減が可能となる。なお、パレット１００の高さの検出は、観測対象領域６０の下限から上方に向かってレーザスキャンを行ってもよい。
【００６０】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書又は図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６１】
１０：フォークリフト
２０：レーザセンサ
２２：フォーク
２２ａ、２２ｂ：ツメ
２４：マスト
２６：リフトチェーン
２８Ｆ：前輪
２８Ｒ：後輪
３０：車体
３６：パレット認識部
３８：軌道・速度計画部
４０：駆動・操舵指令部
４２：駆動輪・操舵制御部
４４：センサ移動制御部
４６：センサ位置検出部
４８：フォーク昇降装置
６０：観測対象領域
６２：パレット高さデータ
７０：制御装置
８０：距離データ
８４：パレット位置・方向データ
８６：軌道データ
８８：駆動・操舵データ
９０：駆動輪モータ
９４：操舵装置
１００：パレット
１１０：開口部
１２０：台座
１３０：荷物
【図１】
0006469506.tif 000008
【図２】
0006469506.tif 000009
【図３】
0006469506.tif 000010
【図４】
0006469506.tif 000011
【図５】
0006469506.tif 000012
【図６】
0006469506.tif 000013
【図７】
0006469506.tif 000014
【図８】
0006469506.tif 000015
【図９】
0006469506.tif 000016
【図１０】
0006469506.tif 000017
【図１１】
0006469506.tif 000018
【図１２】
0006469506.tif 000019
【図１３】
0006469506.tif 000020