(57)【要約】【課題】産業車両の運転状態の判定の精度を高めることができる、産業車両の制御装置、産業車両、及び産業車両の制御プログラムを提供する。【解決手段】運転状態判定部３１は、単に荷役装置が荷積み・荷降ろしを完了した状態、及び車両２が移動している状態のみならず、荷積みの準備及び荷降ろしの準備という、運転者の意思が含まれる荷積み準備状態Ｓ３及び荷降ろし状態Ｓ６を判定することができる。これによって、運転状態判定部３１は、運転者の意思を考慮して、運転状態をより詳細に判定することができる。従って、運転状態判定部３１は、車両２の進行状態から停止状態への変化に基づいて、運転状態が荷積み準備状態Ｓ３及び荷降ろし準備状態Ｓ６であると判定する。これにより、運転状態判定部３１は、精度良く荷積み状態を判定することができる。【選択図】図２
2019189435.tif 000002
【特許請求の範囲】
【請求項１】
車両、及び荷役装置を備える産業車両の制御装置であって、
前記産業車両の運転状態が分類された状態遷移モデルに基づき、前記産業車両の前記運転状態を判定する運転状態判定部を備え、
前記状態遷移モデルは、少なくとも、
前記荷役装置からの荷降ろしが完了した荷降ろし完了状態と、
前記荷役装置に荷を積載していない状態で、前記車両を前記荷の位置まで移動させる荷無移動状態と、
前記荷役装置へ前記荷を積載し、荷積みが完了した荷積み完了状態と、
前記荷無移動状態から前記荷積み完了状態へ遷移する間の状態であって、前記荷役装置を操作して前記荷役装置に前記荷を積載する準備をしている状態である荷積み準備状態と、を前記運転状態として分類し、
前記運転状態判定部は、前記車両の進行状態から停止状態への変化に基づいて、前記運転状態が前記荷積み準備状態であると判定する、産業車両の制御装置。
【請求項２】
車両、及び荷役装置を備える産業車両の制御装置であって、
前記産業車両の運転状態が分類された状態遷移モデルに基づき、前記産業車両の前記運転状態を判定する運転状態判定部を備え、
前記状態遷移モデルは、少なくとも、
前記荷役装置へ荷を積載し、荷積みが完了した荷積み完了状態と、
前記車両を前記荷の運搬先まで移動させる荷運搬状態と、
前記荷役装置からの荷降ろしが完了した荷降ろし完了状態と、
前記荷運搬状態から前記荷降ろし完了状態へ遷移する間の状態であって、前記荷役装置を操作して前記荷役装置から前記荷を前記運搬先へ荷降ろしする準備をしている状態である荷降ろし準備状態と、を運転状態として分類し、
前記運転状態判定部は、前記車両の進行状態から停止状態への変化に基づいて、運転状態が前記荷降ろし準備状態であると判定する、産業車両の制御装置。
【請求項３】
前記運転状態判定部は、アクセル開度に基づいて、前記車両の進行状態から停止状態への変化を検出する、請求項１又は２に記載の産業車両の制御装置。
【請求項４】
前記運転状態判定部は、
前記車両の走行駆動系への運転指令によって生成される走行駆動系指令と、
前記荷役装置の荷役駆動系への運転指令によって生成される荷役駆動系指令と、
前記荷役装置の油圧シリンダの油圧圧力と、を取得し、
前記走行駆動系指令の変化、前記荷役駆動系指令の変化、及び前記油圧圧力の変化に基づいて、前記運転状態を判定する、請求項１又は２に記載の産業車両の制御装置。
【請求項５】
前記運転状態判定部は、
前記走行駆動系への運転指令によって生成される走行モータに対する走行モータ回転数指令関数と、
前記荷役駆動系への運転指令によって生成される荷役モータに対する荷役モータ回転数指令関数と、を合成した合成関数を取得し、
前記合成関数の値に基づいて、前記運転状態を判定する、請求項４に記載の産業車両の制御装置。
【請求項６】
前記運転状態判定部は、前記走行モータ回転数指令関数及び前記荷役モータ回転数指令関数に対して重み付けをすることで合成された前記合成関数を取得する、請求項５に記載の産業車両の制御装置。
【請求項７】
前記運転状態判定部は、前記産業車両が左右の一方へ旋回して荷役することが定められた条件下において、ステアリング位置とアクセル開度との関係に基づいて、前記運転状態を判定する、請求項１〜６の何れか一項に記載の産業車両の制御装置。
【請求項８】
前記運転状態判定部は、
アクセル開度によって生成されるアクセル開度関数と、
全ての荷役レバーの操作によって生成される全荷役レバー操作量関数と、を取得し、
前記アクセル開度関数と前記全荷役レバー操作量関数とを合成した合成関数に基づいて前記運転状態を判定する、請求項１〜３の何れか一項に記載の産業車両の制御装置。
【請求項９】
前記運転状態判定部は、前記荷役装置へ前記荷が積載されていることの判定条件として、リーチ操作量関数とリフト操作量関数との合成関数を用いる、請求項１〜８の何れか一項に記載の産業車両の制御装置。
【請求項１０】
前記運転状態判定部は、前記荷役装置へ前記荷が積載されていないことの判定条件として、リフト操作量関数とリーチ・ティルト操作量関数との合成関数を用いる、請求項１〜９の何れか一項に記載の産業車両の制御装置。
【請求項１１】
荷役レバーの操作量を機械学習し、前記運転状態判定部が用いる判定条件を生成する学習部を更に備える、請求項９又は１０に記載の産業車両の制御装置。
【請求項１２】
請求項１〜１１の何れか一項に記載の産業車両の制御装置を備えた産業車両。
【請求項１３】
請求項１〜１１の何れか一項に記載の産業車両の制御装置を前記運転状態判定部として機能させる、産業車両の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業車両の制御装置、産業車両、及び産業車両の制御プログラムに関する。
【背景技術】
【０００２】
従来の産業車両の制御装置としては、例えば特許文献１に記載されている技術が知られている。特許文献１に記載の制御装置は、フォークリフトに搭載されたものである。この制御装置は、フォークリフトの荷役装置が荷取りを行うか荷降ろしを行うのかを判定することで、半自動で荷のリフトを行うものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３４４９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、産業車両の分野においては、制御装置の産業車両の運転状態を判定することで、当該判定結果を作業支援、運転者の個人差の把握、自律走行、その他の様々な形で有効に利用することができる。従って、制御装置によって産業車両の運転状態を判定するときの判定の精度を更に高めることが求められていた。
【０００５】
従って、本発明は、産業車両の運転状態の判定の精度を高めることができる、産業車両の制御装置、産業車両、及び産業車両の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る産業車両の制御装置は、車両、及び荷役装置を備える産業車両の制御装置であって、産業車両の運転状態が分類された状態遷移モデルに基づき、産業車両の運転状態を判定する運転状態判定部を備え、状態遷移モデルは、少なくとも、荷役装置からの荷降ろしが完了した荷降ろし完了状態と、荷役装置に荷を積載していない状態で、車両を荷の位置まで移動させる荷無移動状態と、荷役装置へ荷を積載し、荷積みが完了した荷積み完了状態と、荷無移動状態から荷積み完了状態へ遷移する間の状態であって、荷役装置を操作して荷役装置に荷を積載する準備をしている状態である荷積み準備状態と、を運転状態として分類し、運転状態判定部は、車両の進行状態から停止状態への変化に基づいて、運転状態が荷積み準備状態であると判定する。
【０００７】
本発明の一態様に係る産業車両の制御装置において、運転状態判定部は、産業車両の運転状態が分類された状態遷移モデルに基づき、産業車両の運転状態を判定する。このように、運転状態判定部が、状態遷移モデルに基づいた判定を行うことで、産業車両の運転状態の判定が行い易くなる。ここで、状態判定遷移モデルは、荷無移動状態から荷積み完了状態へ遷移する間の状態であって、荷役装置を操作して荷役装置に荷を積載する準備をしている状態である荷積み準備状態、を運転状態として分類している。すなわち、運転状態判定部は、単に荷役装置が荷積み・荷降ろしを完了した状態、及び車両が移動している状態のみならず、荷積みの準備という、運転者の意思が含まれる荷積み準備状態を判定することができる。これによって、運転状態判定部は、運転者の意思を考慮して、運転状態をより詳細に判定することができる。また、発明者らは、産業車両が荷積みの準備を行うときは、車両が進行状態から停止状態へ変化する点を鑑み、当該状態を考慮することで、運転状態の判定の精度を向上できることを見出した。従って、運転状態判定部は、車両の進行状態から停止状態への変化に基づいて、運転状態が荷積み準備状態であると判定する。これにより、運転状態判定部は、精度良く荷積み状態を判定することができる。以上により、産業車両の運転状態の判定の精度を高めることができる。
【０００８】
本発明の一態様に係る産業車両の制御装置は、車両、及び荷役装置を備える産業車両の制御装置であって、産業車両の運転状態が分類された状態遷移モデルに基づき、産業車両の運転状態を判定する運転状態判定部を備え、状態遷移モデルは、少なくとも、荷役装置へ荷を積載し、荷積みが完了した荷積み完了状態と、車両を荷の運搬先まで移動させる荷運搬状態と、荷役装置からの荷降ろしが完了した荷降ろし完了状態と、荷運搬状態から荷降ろし完了状態へ遷移する間の状態であって、荷役装置を操作して荷役装置から荷を運搬先へ荷降ろしする準備をしている状態である荷降ろし準備状態と、を運転状態として分類し、運転状態判定部は、車両の進行状態から停止状態への変化に基づいて、運転状態が荷降ろし準備状態であると判定する。
【０００９】
本発明の一態様に係る産業車両の制御装置において、運転状態判定部は、産業車両の運転状態が分類された状態遷移モデルに基づき、産業車両の運転状態を判定する。このように、運転状態判定部が、状態遷移モデルに基づいた判定を行うことで、産業車両の運転状態の判定が行い易くなる。ここで、状態判定遷移モデルは、荷運搬状態から荷降ろし完了状態へ遷移する間の状態であって、荷役装置を操作して荷役装置から荷を運搬先へ荷降ろしする準備をしている状態である荷降ろし準備状態、を運転状態として分類している。すなわち、運転状態判定部は、単に荷役装置が荷積み・荷降ろしを完了した状態、及び車両が移動している状態のみならず、荷降ろしの準備という、運転者の意思が含まれる荷降ろし準備状態を判定することができる。これによって、運転状態判定部は、運転者の意思を考慮して、運転状態をより詳細に判定することができる。また、発明者らは、産業車両が荷降ろしの準備を行うときは、車両が進行状態から停止状態へ変化する点を鑑み、当該状態を考慮することで、運転状態の判定の精度を向上できることを見出した。従って、運転状態判定部は、車両の進行状態から停止状態への変化に基づいて、運転状態が荷降ろし準備状態であると判定する。これにより、運転状態判定部は、精度良く荷降ろし状態を判定することができる。以上により、産業車両の運転状態の判定の精度を高めることができる。
【００１０】
産業車両の制御装置において、運転状態判定部は、アクセル開度に基づいて、車両の進行状態から停止状態への変化を検出してよい。アクセル開度は、運転者の荷積み又は荷降ろしの準備の意図を反映した判定パラメータである。従って、運転状態判定部は、アクセル開度に基づくことで、精度良く荷積み状態、又は荷降ろし状態を判定することができる。
【００１１】
産業車両の制御装置において、運転状態判定部は、車両の走行駆動系への運転指令によって生成される走行駆動系指令と、荷役装置の荷役駆動系への運転指令によって生成される荷役駆動系指令と、荷役装置の油圧シリンダの油圧圧力と、を取得し、走行駆動系指令の変化、荷役駆動系指令の変化、及び油圧圧力の変化に基づいて、運転状態を判定してよい。この場合、運転状態判定部は、特殊な判定パラメータを用いることなく、運転状態を判定することができる。
【００１２】
産業車両の制御装置において、運転状態判定部は、走行駆動系への運転指令によって生成される走行モータに対する走行モータ回転数指令関数と、荷役駆動系への運転指令によって生成される荷役モータに対する荷役モータ回転数指令関数と、を合成した合成関数を取得し、合成関数の値に基づいて、運転状態を判定してよい。この場合、運転状態判定部は、走行モータ回転数指令及び荷役モータ回転数指令という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。
【００１３】
産業車両の制御装置において、運転状態判定部は、走行モータ回転数指令関数及び荷役モータ回転数指令関数に対して重み付けをすることで合成された合成関数を取得してよい。この場合、運転者の癖や熟練度等を考慮して、重み付けを調整することで、運転状態判定部は、運転者にとってより適切な合成関数を用いて、運転状態を判定することができる。
【００１４】
産業車両の制御装置において、運転状態判定部は、産業車両が左右の一方へ旋回して荷役することが定められた条件下において、ステアリング位置とアクセル開度との関係に基づいて、運転状態を判定してよい。フォークリフトが旋回して荷役位置へ向かう場合、運転者の熟練度によって、旋回の動作態様は異なる。従って、運転状態判定部は、ステアリング位置とアクセル開度との関係に基づくことで、運転者の熟練度に応じて精度よく運転状態を判定できる。
【００１５】
産業車両の制御装置において、運転状態判定部は、アクセル開度によって生成されるアクセル開度関数と、全ての荷役レバーの操作によって生成される全荷役レバー操作量関数と、を取得し、アクセル開度関数と全荷役レバー操作量関数とを合成した合成関数に基づいて運転状態を判定してよい。この場合、運転状態判定部は、アクセル開度と全荷役レバー操作量という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。
【００１６】
産業車両の制御装置において、運転状態判定部は、荷役装置へ荷が積載されていることの判定条件として、リーチ操作量関数とリフト操作量関数との合成関数を用いてよい。この場合、運転状態判定部は、リーチ操作量とリフト操作量という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。
【００１７】
産業車両の制御装置において、運転状態判定部は、荷役装置へ荷が積載されていないことの判定条件として、リフト操作量関数とリーチ・ティルト操作量関数との合成関数を用いてよい。この場合、運転状態判定部は、リフト操作量とリーチ・ティルト操作量という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。
【００１８】
産業車両の制御装置は、荷役レバーの操作量を機械学習し、運転状態判定部が用いる判定条件を生成する学習部を更に備えてよい。この場合、学習部は、運転者の荷役レバーの操作量の傾向などを反映した判定条件を生成することができる。
【００１９】
本発明の一態様に係る産業車両は、上述の産業車両の制御装置を備えている。この産業車両は、上述の制御装置と同様な作用・効果を得ることができる。
【００２０】
本発明の一態様に係る産業車両の制御プログラムは、上述の産業車両の制御装置を運転状態判定部として機能させる。この産業車両の制御プログラムは、上述の制御装置と同様な作用・効果を得ることができる。
【発明の効果】
【００２１】
本発明によれば、産業車両の運転状態の判定の精度を高めることができる、産業車両の制御装置、産業車両、及び産業車両の制御プログラムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１実施形態に係る制御装置を備えるリーチ式フォークリフトの側面図である。
【図２】図１に示す制御装置及びそれに関わる構成要素を示すブロック構成図である。
【図３】状態遷移モデルを示す概念図である。
【図４】（ａ）は荷降ろし完了状態の様子を示し、（ｂ）は荷無移動状態の様子を示す図である。
【図５】（ａ）は荷積み準備状態の様子を示し、（ｂ）は荷積み完了状態の様子を示す図である。
【図６】（ａ）は荷運搬状態の様子を示し、（ｂ）は荷降ろし準備状態Ｓ６の様子を示す図である。
【図７】各判定パラメータの時間経過に伴う変化の態様を示すグラフである。
【図８】第１実施形態に係る制御装置の判定条件の具体例を示す表である。
【図９】判定結果と実際の運転状態とを比較したグラフである。
【図１０】制御装置の処理内容を示すフローチャートである。
【図１１】フォークリフトの稼動状態を模擬した、作業手順の様子を示す概略平面図である。
【図１２】フォークリフトの稼動状態を模擬した、作業手順の様子を示す概略平面図である。
【図１３】荷役モータ回転数指令関数と走行モータ回転数指令関数と、を合成した合成関数を説明するためのグラフを示す図である。
【図１４】第２実施形態に係る制御装置の判定条件の具体例を示す表である。
【図１５】第３実施形態に係る制御装置の判定条件の具体例を示す表である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００２４】
［第１実施形態］
図１は、第１実施形態に係る制御装置を備えるリーチ式フォークリフトの側面図である。なお、以降の説明においては「左」「右」を用いて説明するが、これらは後方から前方を見た時を基準としたときの「左」「右」に対応するものとする。図１に示すように、産業車両としてのリーチ式フォークリフト（以下、単にフォークリフトと称す）５０は、前二輪従動・後一輪駆動の３輪車タイプであり、車両（機台）２の前部に収容されたバッテリを電源として走行するバッテリ車である。フォークリフト５０は、車両２、及び荷役装置３を備える。
【００２５】
車両２は、前方へ延出する左右一対のリーチレグ４を備える。左右の前輪５は、左右のリーチレグ４にそれぞれ回転可能に支持されている。後輪６は、後一輪であって、操舵輪を兼ねた駆動輪である。車両２の後部は、立席タイプの運転席１２となっている。運転席１２の前側にあるインストルメントパネル９には、荷役操作のための荷役レバー１０、及び前後進操作のためのアクセルレバー１１が設けられている。また、インストルメントパネル９の上面にはステアリング１３が設けられている。
【００２６】
荷役装置３は、車両２の前側に設けられる。荷役レバー１０のうちのリーチレバー操作時には、リーチシリンダ２２（図２参照）が伸縮駆動することによって、荷役装置３がリーチレグ４に沿って所定ストローク範囲内で前後方向に移動する。また、荷役装置３は、２段式のマスト２３、リフトシリンダ２４、ティルトシリンダ２８（図２参照）及びフォーク２５を備える。荷役レバー１０のうちのリフトレバー操作時には、リフトシリンダ２４が伸縮駆動することによりマスト２３が上下方向にスライド伸縮し、これに連動してフォーク２５が昇降する。
【００２７】
次に、図２を参照して、本実施形態に係るフォークリフト５０の制御装置１００について更に詳細に説明する。図２は、本実施形態に係る制御装置１００及びそれに関わる構成要素を示すブロック構成図である。図２に示すように、制御装置１００は、ステアリング１３と、アクセルレバー１１と、荷役レバー１０と、に接続されており、これらの運転指令を受信する。なお、荷役レバー１０は、リフトレバー１０ａと、リーチレバー１０ｂと、ティルトレバー１０ｃと、を備える。リフトレバー１０ａは、フォーク２５を上下方向に移動させるリフト動作を操作するためのレバーである。リーチレバー１０ｂは、荷役装置３を前後方向に移動させるリーチ動作を操作するためのレバーである。ティルトレバー１０ｃは、荷役装置３を傾斜させるティルト動作を操作するためのレバーである。
【００２８】
制御装置１００は、荷役駆動系４０と、走行駆動系４５と接続されており、これらに制御信号を送信する。荷役駆動系４０は、荷役装置３を作動させるための駆動力を発生する駆動系である。走行駆動系４５は、車両２を走行させるための駆動力を発生する駆動系である。
【００２９】
荷役駆動系４０は、リーチシリンダ２２、リフトシリンダ２４、及びティルトシリンダ２８へ作動油を供給することで、各シリンダ２２，２４，２８を駆動させる。荷役駆動系４０は、荷役モータ４１と、バルブ部４２と、を備える。荷役モータ４１は、各シリンダ２２，２４，２８へ作動油を圧送するポンプ（不図示）を駆動させるためのモータである。バルブ部４２は、各シリンダ２２，２４，２８へ供給する作動油の供給先、及び供給量をコントロールするためのバルブ群である。例えば、運転者がリフトレバー１０ａを操作した場合、荷役モータ４１は、操作量に応じた回転数で回転し、バルブ部４２は、リフトシリンダ２４に対応するバルブを操作量に応じた開度で開く。このとき、バルブ部４２は、リーチシリンダ２２及びティルトシリンダ２８に対応するバルブは閉じておく。
【００３０】
走行駆動系４５は、走行モータ４６を備える。走行モータ４６は、後輪６（図１参照）へ回転力を伝達する。運転者がアクセルレバー１１を操作した場合、走行モータ４６は、アクセルレバー１１の操作方向に基づいた回転方向にて、アクセルレバー１１のアクセル開度に応じた回転数で回転する。なお、走行駆動系４５は、ステアリング１３の操作に基づいて、後輪６を操舵する操舵機構も備えている。
【００３１】
制御装置１００は、フォークリフト５０の運転制御を行うための装置である。制御装置１００は、各操作部１０，１１，１３の操作に基づいて、荷役駆動系４０及び走行駆動系４５を制御する。また、本実施形態に係る制御装置１００は、フォークリフト５０の運転状態を判定することができる。すなわち、制御装置１００は、フォークリフト５０の運転中において、当該フォークリフト５０がどのような運転状態にあるかをリアルタイムに判定することができる。運転状態とは、フォークリフト５０の運転者が行う荷役作業を、フォークリフト５０への操作に基づいて分類して定義した作業の状態である。制御装置１００は、フォークリフト５０の運転状態が分類された状態遷移モデルに基づいて、運転状態を判定する。ここでは、制御装置１００の具体的な構成を説明する前に、図３〜図６を参照して、状態遷移モデルについて説明する。
【００３２】
図３は、状態遷移モデルを示す概念図である。図３に示すように、状態遷移モデルは、荷降ろし完了状態Ｓ１と、荷無移動状態Ｓ２と、荷積み準備状態Ｓ３と、荷積み完了状態Ｓ４と、荷運搬状態Ｓ５と、荷降ろし準備状態Ｓ６と、を運転状態として分類している。状態遷移モデルは、状態Ｓ１〜Ｓ６の順で運転状態が遷移し、荷降ろし準備状態Ｓ６から荷降ろし完了状態Ｓ１へ遷移するというモデルを有する。図４（ａ）は、荷降ろし完了状態Ｓ１の様子を示し、図４（ｂ）は、荷無移動状態Ｓ２の様子を示す。図５（ａ）は、荷積み準備状態Ｓ３の様子を示し、図５（ｂ）は、荷積み完了状態Ｓ４の様子を示す。図６（ａ）は、荷運搬状態Ｓ５の様子を示し、図６（ｂ）は、荷降ろし準備状態Ｓ６の様子を示す。ただし、図４〜図６は、各運転状態におけるフォークリフト５０の動作の一例を示したものである。すなわち、各運転状態でのフォークリフト５０の動作は、以下の説明のような動作に限定される訳ではなく、運転者の癖や熟練度などによって適宜変更される。すなわち、各運転状態でのフォークリフト５０の動作態様は、判定条件をどのように設定するかによって定められるものである。
【００３３】
荷降ろし完了状態Ｓ１は、荷役装置３からの荷降ろしが完了した運転状態である。図４（ａ）に示すように、フォーク２５で支持していた荷Ｗを荷降ろし位置へ載置することで、運転状態は、荷降ろし準備状態Ｓ６から、荷降ろし完了状態Ｓ１となる。なお、荷役装置３がフォーク２５から荷Ｗを降ろした後、荷役装置３がフォーク２５を荷Ｗから外すために位置調整を行い、車両２が荷Ｗからフォーク２５を外すために後退する場合がある。このような状態も荷降ろし完了状態Ｓ１に含まれてもよい。
【００３４】
荷無移動状態Ｓ２は、荷役装置３に荷Ｗを積載していない状態で、車両２を荷Ｗの位置近くまで移動させる運転状態である。図４（ｂ）に示すように、荷降ろし完了状態Ｓ１にてフォーク２５に何も荷Ｗが積載されていない状態となった後、次の荷Ｗの位置へ向かって車両２が走行を開始することで、運転状態は荷降ろし完了状態Ｓ１から荷無移動状態Ｓ２となる。
【００３５】
荷積み準備状態Ｓ３は、荷無移動状態Ｓ２から荷積み完了状態Ｓ４へ遷移する間の状態であって、荷役装置３を操作して荷役装置３に荷Ｗを積載する準備をしている状態である。図５（ａ）に示すように、車両２は、荷無移動状態Ｓ２にて走行している走行状態から、次の荷Ｗの位置の近くまで近接すると、速度を低下させて、荷積みを行う位置にて停止状態となる。また、その際、荷役装置３は、フォーク２５で荷積みを行うことができるように、当該フォーク２５の位置調整を行う。このように、車両２及び荷役装置３に対して、荷積みを行うための操作が運転者によってなされることによって、運転状態は荷無移動状態Ｓ２から荷積み準備状態Ｓ３となる。
【００３６】
荷積み完了状態Ｓ４は、荷役装置３からの荷積みが完了した状態である。図５（ｂ）に示すように、フォーク２５に荷Ｗの荷重が作用していない状態から、フォーク２５が荷Ｗを持ち上げた状態となることで、運転状態は荷積み準備状態Ｓ３から荷積み完了状態Ｓ４となる。なお、荷役装置３がフォーク２５で荷Ｗを持ち上げた後、荷Ｗを載置面から離間させるためにフォーク２５の位置調整を行っている場合、当該状態も荷積み完了状態Ｓ４に含まれてもよい。
【００３７】
荷運搬状態Ｓ５は、車両２を荷Ｗの運搬先まで移動させる運転状態である。図６（ａ）に示すように、荷積み完了状態Ｓ４にてフォーク２５に荷Ｗが積載された状態となった後、荷Ｗの運搬先へ向かって車両２が走行を開始することで、運転状態は荷積み完了状態Ｓ４から荷運搬状態Ｓ５となる。
【００３８】
荷降ろし準備状態Ｓ６は、荷運搬状態Ｓ５から荷降ろし完了状態Ｓ１へ遷移する間の状態であって、荷役装置３を操作して荷役装置３から荷Ｗを運搬先へ荷降ろしする準備をしている状態である。図６（ｂ）に示すように、車両２は、荷運搬状態Ｓ５にて走行している走行状態から、荷Ｗの運搬先の近くまで近接すると、速度を低下させて、荷降ろしを行う位置にて停止状態となる。また、その際、荷役装置３は、フォーク２５から荷Ｗの荷降ろしを行うことができるように、当該フォーク２５の位置調整を行う。このように、車両２及び荷役装置３に対して、荷降ろしを行うための操作が運転者によってなされることによって、運転状態は荷運搬状態Ｓ５から荷降ろし準備状態Ｓ６となる。
【００３９】
次に、図２を再び参照し、制御装置１００の具体的な構成について説明する。制御装置１００は、装置を統括的に管理するＥＣＵ[ElectronicControl Unit]を備えている。ＥＣＵは、ＣＰＵ[Central  Processing  Unit]、ＲＯＭ[Read  Only  Memory]、ＲＡＭ[Random  Access  Memory]、ＣＡＮ［Controller  Area  Network］通信回路等を有する電子制御ユニットである。ＥＣＵでは、例えば、ＲＯＭに記憶されているプログラムをＲＡＭにロードし、ＲＡＭにロードされたプログラムをＣＰＵで実行することにより各種の機能を実現する。ＥＣＵは、複数の電子ユニットから構成されていてもよい。
【００４０】
図２に示すように、制御装置１００は、運転状態判定部３１と、演算部３２と、設定部３３と、学習部３４と、記憶部３５と、を備える。また、制御装置１００には制御プログラムが組み込まれている。この制御プログラムは、制御装置１００を運転状態判定部３１と、演算部３２と、設定部３３と、学習部３４と、記憶部３５として機能させる。
【００４１】
運転状態判定部３１は、上述の状態遷移モデルに基づき、フォークリフト５０の運転状態を判定する。すなわち、運転状態判定部３１は、運転中のフォークリフト５０の運転状態が、荷降ろし完了状態Ｓ１、荷無移動状態Ｓ２、荷積み準備状態Ｓ３、荷積み完了状態Ｓ４、荷運搬状態Ｓ５、及び荷降ろし準備状態Ｓ６の何れの状態であるかを判定する。運転状態判定部３１は、運転状態の判定を行うための判定パラメータを取得する。運転状態判定部３１は、取得した判定パラメータの変化に基づいて、フォークリフト５０の運転状態を判定する。また、運転状態判定部３１は、判定パラメータに対して予め設定された判定条件に基づいて、フォークリフト５０の運転状態を判定する。判定条件は、運転状態が他の運転状態へ遷移したことを判定するために設定された条件である。すなわち、運転状態判定部３１は、取得した判定パラメータが変化することによって判定条件を満たした場合、フォークリフト５０の運転状態が、ある運転状態から他の運転状態へ遷移したと判定する。
【００４２】
なお、運転状態判定部３１が一度運転状態を判定しても、当該判定が誤りである場合もある。このような誤りに基づく判定を正すために、運転状態判定部３１は、フィードバックのための判定条件に基づいて判定を行ってもよい。例えば、運転状態判定部３１が荷無移動状態Ｓ２から荷積み準備状態Ｓ３へ遷移したことを判定した後に、フィードバック用の判定条件が満たされる。この場合、運転状態判定部３１は、現在の運転状態は、荷積み準備状態Ｓ３ではなく、荷無移動状態Ｓ２であると判定する。
【００４３】
本実施形態において、運転状態判定部３１は、判定パラメータとして、少なくとも走行駆動系指令、荷役駆動系指令、及びリフトシリンダ（油圧シリンダ）２４の油圧圧力を取得する。運転状態判定部３１は、走行駆動系指令の変化、荷役駆動系指令の変化、及び油圧圧力の変化に基づいて、運転状態を判定する。
【００４４】
走行駆動系指令は、車両２の走行駆動系４５への運転指令によって生成される信号である。車両２の走行駆動系４５への運転指令は、アクセルレバー１１の操作がなされたときに、当該アクセルレバー１１から制御装置１００へ送信される。走行駆動系指令は、アクセルレバー１１からの運転指令に基づいて、演算部３２によって生成される。運転状態判定部３１は、演算部３２で生成された走行駆動系指令を取得する。運転状態判定部３１は、走行駆動系指令として、例えば、走行モータ４６の回転数を示す走行モータ回転数指令を用いる。走行モータ回転数指令は、アクセルレバー１１の操作量に対応する。走行モータ回転数指令の値は、アクセルレバー１１の操作量が大きいほど大きくなり、アクセルレバー１１の操作量が小さいほど小さくなる。また、走行モータ回転数指令は、アクセルレバー１１が前進側へ操作されたら前進側の値となり、アクセルレバー１１が後進側へ操作されたら後進側の値となる。
【００４５】
荷役駆動系指令は、荷役装置３の荷役駆動系４０への運転指令によって生成される信号である。荷役装置３の荷役駆動系４０への運転指令は、荷役レバー１０の操作がなされたときに、当該荷役レバー１０から制御装置１００へ送信される。荷役駆動系指令は、荷役レバー１０からの運転指令に基づいて、演算部３２によって生成される。運転状態判定部３１は、演算部３２で生成された荷役駆動系指令を取得する。運転状態判定部３１は、荷役駆動系指令として、例えば、荷役モータ４１の回転数を示す荷役モータ回転数指令を用いる。荷役モータ回転数指令は、荷役レバー１０の操作量に対応する。通常、荷役モータ回転数指令の値は、荷役レバー１０の操作量が大きいほど大きくなり、荷役レバー１０の操作量が小さいほど小さくなる。荷役モータ回転数指令の値は、荷役レバー１０を構成するリフトレバー１０ａやリーチレバー１０ｂ、ティルトレバー１０ｃの運転指令に応じて変更される。
【００４６】
リフトシリンダ２４の油圧圧力は、リフトシリンダ２４の作動油の油圧圧力である。当該油圧圧力は、バルブ部４２のうち、リフトシリンダ２４の作動油の流量を制御するバルブ付近に設けられた圧力センサ（図示せず）によって取得される。当該圧力センサによって取得された油圧圧力は、制御装置１００へ送信される。リフトシリンダ２４の油圧圧力は、リフトシリンダ２４がフォーク２５を上下動させている時は、上下動させていない場合と比べて高くなる。また、リフトシリンダ２４の油圧圧力は、フォーク２５を上下動させていない時であっても、当該フォークリフト５０が荷Ｗを支持しているときは、荷Ｗを支持していないときと比べて高くなる。
【００４７】
次に、図７を参照しながら、運転状態判定部３１が判定パラメータを用いて、各運転状態をどのように判定するかの概要について説明する。図７（ａ）は、走行モータ回転数指令及び荷役モータ回転数指令の時間経過に伴う変化の態様を概略的に示すグラフである。図７（ａ）の上段のグラフは、走行モータ回転数指令の時間経過に伴う変化を示すグラフである。図７（ａ）の下段のグラフは、荷役モータ回転数指令の時間経過に伴う変化を示すグラフである。図７（ｂ）は、荷役モータ回転数指令及び油圧圧力の時間経過に伴う変化を概略的に示すグラフである。図７（ｂ）の上段は、荷役モータ回転数指令の時間経過に伴う変化を示すグラフである。図７（ｂ）の下段は、リフトシリンダ２４の油圧圧力の時間経過に伴う変化を示すグラフである。ただし、図７に示すグラフは、説明を行うために示された一例に過ぎず、各パラメータの時間経過に伴う変化態様は、図７に限定されるものではない。なお、判定条件の具体的な内容については、図８を参照しながら後述する。
【００４８】
荷無移動状態Ｓ２においては、フォークリフト５０が荷Ｗのある場所まで移動するため、図７（ａ）のＰ１に示すように、走行モータ回転数指令が急速に立ち上がる。その一方、荷無移動状態Ｓ２においては、荷Ｗの積み降ろしが行われないため、荷役レバー１０の操作はなされず、荷役モータ回転数指令は０である。従って、運転状態判定部３１は、荷役レバー１０の操作がなされない状態で車両２の車速が大きくなることに基づいて、運転状態が荷無移動状態Ｓ２であると判定することができる。
【００４９】
荷Ｗの場所にフォークリフト５０が近付くと、車両２の状態は、高い車速で移動している進行状態から、車速が低下してゆき停止状態へ変化する。従って、図７（ａ）のＰ２に示すように、走行モータ回転数指令は、低下してゆき、停止状態となる。従って、運転状態判定部３１は、車両２の進行状態から停止状態への変化に基づいて、運転状態が荷積み準備状態Ｓ３であると判定することができる。一方、荷Ｗの場所にフォークリフト５０が近づくと、荷役装置３で荷積みを行うために、荷役レバー１０の操作がなされる。従って、図７（ａ）のＰ３で示すように、荷役モータ回転数指令が立ち上がる。従って、運転状態判定部３１は、運転状態が荷積み準備状態Ｓ３であると判定する際、荷役モータ回転数指令の立ち上がりを考慮してもよい。
【００５０】
荷役装置３に荷Ｗを積む前後においては、荷役レバー１０の操作が繰り返し行われるため、図７（ａ）のＰ４に示すように、荷役モータ回転数指令が繰り返し立ち上がる。なお、図７（ａ）の下段のグラフでは、一回荷役モータ回転数指令が立ち上がった後は荷役モータ回転数指令が高い状態で一定となっているように示されているが、実際は、荷役モータ回転数指令の増加と減少が繰り返し行われている。一方、荷積みを行う際、車両２は、位置の微調整などを除いては、停止した状態にある。従って、図７（ａ）に示すように、Ｐ４に対応する時間帯では、走行モータ回転数指令は０の位置で略一定となる。ここで、荷役装置３への荷Ｗの荷積みがなされた場合、荷役装置３が動いていない状態においても、リフトシリンダ２４の油圧圧力が高い状態となる。従って、図７（ｂ）の時間ｔ１の位置のように、荷役モータ回転数指令が０となっている状態で、油圧圧力が高くなっているときは、荷役装置３が荷Ｗを積んだ状態であるとみなすことができる。以上より、運転状態判定部３１は、車両２が停止状態にあるときに、荷役装置３が荷Ｗを積んだ状態となったことに基づいて、運転状態が荷積み完了状態Ｓ４であると判定することができる。
【００５１】
荷運搬状態Ｓ５においては、フォークリフト５０が荷Ｗを降ろす場所まで移動するため、図７（ａ）のＰ５に示すように、走行モータ回転数指令が急速に立ち上がる。その一方、荷運搬状態Ｓ５においては、荷Ｗの積み降ろしが行われないため、荷役レバー１０の操作はなされず、荷役モータ回転数指令は０である。従って、運転状態判定部３１は、荷Ｗが荷役装置３に積まれた状態にあるときに、荷役レバー１０の操作がなされない状態で車両２の車速が大きくなることに基づいて、運転状態が荷運搬状態Ｓ５であると判定することができる。
【００５２】
荷Ｗを降ろす場所にフォークリフト５０が近付くと、車両２は大きな車速で移動している進行状態から車速が低下してゆき、停止状態へ変化する。従って、図７（ａ）のＰ６に示すように、走行モータ回転数指令は、低下してゆき、停止状態となる。従って、運転状態判定部３１は、車両２の進行状態から停止状態への変化に基づいて、運転状態が荷降ろし準備状態Ｓ６であると判定することができる。一方、荷Ｗを降ろす場所にフォークリフト５０が近づくと、荷役装置３で荷降ろしを行うために、荷役レバー１０の操作がなされるため、図７（ａ）のＰ７で示すように、荷役モータ回転数指令が立ち上がる。従って、運転状態判定部３１は、運転状態が荷降ろし準備状態Ｓ６であると判定する際、荷役モータ回転数指令の立ち上がりを考慮してもよい。
【００５３】
荷役装置３から荷Ｗを降ろす前後においては、荷役レバー１０の操作が繰り返し行われるため、図７（ａ）のＰ８に示すように、荷役モータ回転数指令が繰り返し立ち上がる。一方、荷降ろしを行う際は、フォークリフト５０は、位置の微調整などを除いては、停止した状態にある。従って、図７（ａ）に示すように、Ｐ８に対応する時間帯では、走行モータ回転数指令は０の位置で略一定となる。ここで、荷役装置３への荷Ｗの荷降ろしがなされた場合、荷役装置３が動いていない状態でのリフトシリンダ２４の油圧圧力は、リフトシリンダ２４が動いている際の油圧圧力よりも低い状態となる。従って、図７（ｂ）の時間ｔ１での状態とは異なり、荷役モータ回転数指令が０となっている状態では、油圧圧力は低くなる。以上より、運転状態判定部３１は、車両２が停止状態にあるときに、荷役装置３が荷Ｗを積んでいない状態となったことに基づいて、運転状態が荷降ろし完了状態Ｓ１であると判定することができる。
【００５４】
以上の点を踏まえて、図８を参照しながら、運転状態が遷移したことを判定するための判定条件の具体例について詳細に説明する。図８の左端欄は遷移元の運転状態を示し、図８の上段は遷移先の運転状態を示す。例えば、遷移元が「Ｓ１」で遷移先が「Ｓ２」の欄には「条件Ａ１」という判定条件が設定されている。これは、運転状態が荷降ろし完了状態Ｓ１のときに「条件Ａ１」を満たせば、運転状態が荷無移動状態Ｓ２に遷移することを示している。なお、以降に示す判定条件は、一例にすぎず、趣旨を逸脱しない限り、適宜変更されてもよい。
【００５５】
図８に示すように、条件Ａ１は、荷降ろし完了状態Ｓ１から荷無移動状態Ｓ２へ遷移するための判定条件である。条件Ａ１は、『「車速≧停止速度閾値」ＡＮＤ「荷役操作有り＝Ｆａｌｓｅ」』という条件である。運転状態判定部３１は、走行モータ回転数指令の値から車速を把握する。停止速度閾値は、車両２が実質的に停止している場合の走行モータ回転数指令の値に設定される。荷役操作の有無の判定は、荷役モータ回転数指令が０の状態から変化したか否かによって判定される。以上より、荷降ろし完了状態Ｓ１となった後、荷役レバー１０の操作がなされない状態で、車速が立ち上がることで、走行モータ回転数指令が停止速度閾値以上となった場合、運転状態判定部３１は、運転状態が荷降ろし完了状態Ｓ１から荷無移動状態Ｓ２へ遷移したと判定する。
【００５６】
条件Ａ２は、荷降ろし完了状態Ｓ１から荷積み準備状態Ｓ３へ遷移するための判定条件である。条件Ａ２は、荷積み準備状態Ｓ３から荷降ろし完了状態Ｓ１へフィードバックされた後に、荷積み準備状態Ｓ３へ復帰するための判定条件である。条件Ａ２は、『「車速＜停止速度閾値」ＡＮＤ「Ｓ３からのフィードバック有り」』という条件である。「Ｓ３からのフィードバック有り」とは、遷移前の状態が「Ｓ３」であることを示す。すなわち、荷降ろし準備状態Ｓ６から荷降ろし完了状態Ｓ１へ遷移した場合、当該条件は満たさない。
【００５７】
また、条件Ａ３は、荷降ろし完了状態Ｓ１から荷降ろし準備状態Ｓ６へ遷移するための判定条件である。条件Ａ３は、一度、運転状態判定部３１が荷降ろし完了状態Ｓ１と誤って判定した場合に、運転状態を荷降ろし準備状態Ｓ６へフィードバックするための判定条件である。条件Ａ３は、『「車速は停止速度判定値域の範囲内」ＡＮＤ「荷役操作有り＝Ｔｒｕｅ」ＡＮＤ「Ｓ６からのフィードバック有り」ＡＮＤ「アクセル操作有り」』という条件である。停止速度判定値域は、車両２が停止速度の前後の車速で走行していることを判定するための値域である。停止速度判定値域の下限値は停止速度閾値より低い値に設定され、上限値は停止速度閾値より高い値に設定される。停止速度判定値域の下限値及び上限値の設定方法は特に限定されず、停止速度閾値に所定の値を減算・加算することで設定してもよく、所定の係数を掛け合わせることで設定してもよい。「Ｓ６からのフィードバック有り」とは、遷移前の状態が「Ｓ６」であることを示す。アクセル操作の有無は、走行モータ回転数指令が０の状態から変化したか否かによって判定される。
【００５８】
条件Ｂ１ａ，Ｂ１ｂは、荷無移動状態Ｓ２から荷積み準備状態Ｓ３へ遷移するための判定条件である。条件Ｂ１ａは、『「車速＜微速閾値」ＡＮＤ「走行モータ逆回転指令」ＡＮＤ「荷への近接フラグ＝Ｔｒｕｅ」』という条件である。微速閾値は、車両２が荷Ｗを積むために位置調整を行っていると判定できるような走行モータ回転数指令の値に設定され、例えば、車速が０．５ｋｍ／ｈの時の値である。走行モータ逆回転指令とは、進行方向に対する車速を低下させるような走行モータ回転数指令が入っている状態を示す。「荷への近接フラグ」は、荷Ｗへ接近したかどうかを判断するためのフラグであり、進行方向への走行中に、逆方向への走行モータ回転数指令がかかることで、車速が所定量低下した場合、「Ｔｒｕｅ」となる。荷無移動状態Ｓ２となった後、車速が継続的に低下している状態は、車両２が荷積みの準備を行うために、進行状態から停止状態へ向かって変化している状態と言える。従って、条件Ｂ１ａが満たされた場合、運転状態判定部３１は、運転状態が荷無移動状態Ｓ２から荷積み準備状態Ｓ３へ遷移したと判定する。条件Ｂ１ｂは、『「車速＜微速閾値」ＡＮＤ「走行モータ逆回転指令」ＡＮＤ「荷への近接フラグ＝Ｆａｌｓｅ」ＡＮＤ「荷役モータ指令有り  ＯＲ  Ｓ３からのフィードバック有り」』という条件である。荷無移動状態Ｓ２となった後、車速が微速閾値よりも低下し、車両２が荷積みの準備を行うために、荷役装置３を移動させる操作がなされた場合、運転状態判定部３１は、運転状態が荷無移動状態Ｓ２から荷積み準備状態Ｓ３へ遷移したと判定する。なお、荷積み準備状態Ｓ３からのフィードバックがあった場合、条件Ｂ１ｂが満たされることで、再び荷積み準備状態Ｓ３へ遷移する。運転状態判定部３１は、条件Ｂ３ａ，Ｂ３ｂの少なくとも一方の判定条件が満たされた場合に、荷積み準備状態Ｓ３への遷移を判定する。以降、同一箇所に複数の条件が設定されていた場合は、少なくとも１つの条件を満たせば遷移するものとする。
【００５９】
条件Ｂ２は、荷無移動状態Ｓ２から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｂ２は、一度、運転状態判定部３１が荷無移動状態Ｓ２と誤って判定した場合に、運転状態を荷降ろし完了状態Ｓ１へフィードバックするための判定条件である。条件Ｂ２は、『Ｎｏｔ（「車速＜微速閾値」ＡＮＤ「走行モータ逆回転指令」）ＡＮＤ「車速＜停止速度閾値」』という条件である。
【００６０】
条件Ｃ１は、荷積み準備状態Ｓ３から荷積み完了状態Ｓ４へ遷移するための判定条件である。条件Ｃ１は、『「荷役操作有り＝Ｔｒｕｅ」ＡＮＤ「荷有判断＝Ｔｒｕｅ」ＡＮＤ「車速＜停止速度閾値」ＡＮＤ「荷への近接フラグ＝Ｆａｌｓｅ」』という条件である。「荷有判断」は、荷役モータ回転数指令が予め定めた値となっているとき（例えば０などの低い値）に、油圧圧力が指定領域（荷Ｗが有ると判定できるような高い圧力）内にある場合、「Ｔｒｕｅ」となる。荷積み準備状態Ｓ３となった後、車両２が略停止状態にあり、荷役装置３を移動させる操作がなされ、荷役装置３に荷Ｗがある場合、運転状態判定部３１は、運転状態が荷積み準備状態Ｓ３から荷積み完了状態Ｓ４へ遷移したと判定する。
【００６１】
条件Ｃ２は、荷積み準備状態Ｓ３から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｃ２は、一度、運転状態判定部３１が荷積み準備状態Ｓ３と誤って判定した場合に、運転状態を荷降ろし完了状態Ｓ１へフィードバックするための判定条件である。条件Ｃ２は、『「荷役操作有り＝Ｆａｌｓｅ」ＡＮＤ「荷への近接フラグ＝Ｆａｌｓｅ」ＡＮＤ「車速＜停止速度閾値」』という条件である。
【００６２】
条件Ｃ３は、荷積み準備状態Ｓ３から荷無移動状態Ｓ２へ遷移するための判定条件である。条件Ｃ３は、一度、運転状態判定部３１が荷積み準備状態Ｓ３と誤って判定した場合に、運転状態を荷無移動状態Ｓ２へフィードバックするための判定条件である。条件Ｃ３は、『「荷役操作有り＝Ｆａｌｓｅ」ＡＮＤ「車速＞通常速度閾値」』という条件である。通常速度閾値は、車両２が通常の走行を行っていると判定できるような走行モータ回転数指令の値に設定され、例えば、車速が３．５ｋｍ／ｈの時の値である。
【００６３】
条件Ｄ１ａ，Ｄ１ｂは、荷積み完了状態Ｓ４から荷運搬状態Ｓ５へ遷移するための判定条件である。条件Ｄ１ａは、『「荷役操作有り＝Ｔｒｕｅ」ＡＮＤ「車速＞微速閾値」』という条件である。荷積み完了状態Ｓ４となった後、荷役装置３を移動させるための操作が有り、車速が微速閾値より大きくなるまで増加した場合、運転状態判定部３１は、運転状態が荷積み完了状態Ｓ４から荷運搬状態Ｓ５へ遷移したと判定する。条件Ｄ１ｂは、『「荷役操作有り＝Ｆａｌｓｅ」ＡＮＤ「車速≧停止速度閾値」』という条件である。荷積み完了状態Ｓ４となった後、荷役装置３を移動させるための操作が無く、車速が停止速度閾値より大きくなるまで増加した場合、運転状態判定部３１は、運転状態が荷積み完了状態Ｓ４から荷運搬状態Ｓ５へ遷移したと判定する。
【００６４】
条件Ｄ２ａ，Ｄ２ｂは、荷積み完了状態Ｓ４から荷降ろし準備状態Ｓ６へ遷移するための判定条件である。条件Ｄ２ａは、『「荷役操作有り＝Ｔｒｕｅ」ＡＮＤ「車速＜微速閾値」ＡＮＤ「Ｓ６からのフィードバック有り」』という条件である。条件Ｄ２ａは、荷降ろし準備状態Ｓ６から荷積み完了状態Ｓ４へフィードバックされた後に、荷降ろし準備状態Ｓ６へ復帰するための判定条件である。条件Ｄ２ｂは、『「荷役操作有り＝Ｆａｌｓｅ」ＡＮＤ「車速＜微速閾値」ＡＮＤ「荷役モータ回転数指令有り」』という条件である。
【００６５】
条件Ｅ１ａ，Ｅ１ｂ，Ｅ１ｃは、荷運搬状態Ｓ５から荷降ろし準備状態Ｓ６へ遷移するための判定条件である。条件Ｅ１ａは、『「車速＜微速閾値」ＡＮＤ「走行モータ逆回転指令」ＡＮＤ「荷への近接フラグ＝Ｔｒｕｅ」』という条件である。荷運搬状態Ｓ５となった後、車速が継続的に低下している状態は、車両２が荷降ろしの準備を行うために、進行状態から停止状態へ向かって変化している状態と言える。従って、条件Ｅ１ａが満たされた場合、運転状態判定部３１は、荷運搬状態Ｓ５から荷降ろし準備状態Ｓ６へ遷移したと判定する。条件Ｅ１ｂは、『「車速＜微速閾値」ＡＮＤ「走行モータ逆回転指令」ＡＮＤ「荷への接近フラグ＝Ｆａｌｓｅ」ＡＮＤ「Ｓ６からのフィードバック有り」』という条件である。条件Ｅ１ｂは、荷降ろし準備状態Ｓ６から荷運搬状態Ｓ５へフィードバックされた後に、荷降ろし準備状態Ｓ６へ復帰するための判定条件である。条件Ｅ１ｃは、『「Ｎｏｔ（「車速＜微速閾値」ＡＮＤ「走行モータ逆回転指令」）ＡＮＤ「荷役モータ指令有り」ＡＮＤ「車速＜微速閾値」』という条件である。荷運搬状態Ｓ５となった後、車速が微速閾値よりも低下し、車両２が荷降ろしの準備を行うために、荷役装置３を移動させる操作がなされた場合、運転状態判定部３１は、運転状態が荷運搬状態Ｓ５から荷降ろし準備状態Ｓ６へ遷移したと判定する。
【００６６】
条件Ｆ１は、荷降ろし準備状態Ｓ６から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｆ１は、『「荷役操作有り＝Ｔｒｕｅ」ＡＮＤ「荷無判断＝Ｔｒｕｅ」ＡＮＤ「車速＜停止速度閾値」ＡＮＤ「荷への近接フラグ＝Ｆａｌｓｅ」』という条件である。「荷無判断」は、荷役モータ回転数指令が予め定めた値となっているとき（例えば０などの低い値）に、油圧圧力が指定領域（荷Ｗが無いと判定できるような低い圧力）内にある場合、「Ｔｒｕｅ」となる。荷降ろし準備状態Ｓ６となった後、車両２が略停止状態にあり、荷役装置３を移動させる操作がなされ、荷役装置３に荷Ｗが無い場合、運転状態判定部３１は、運転状態が荷降ろし準備状態Ｓ６から荷降ろし完了状態Ｓ１へ遷移したと判定する。
【００６７】
条件Ｆ２は、荷降ろし準備状態Ｓ６から荷積み完了状態Ｓ４へ遷移するための判定条件である。条件Ｆ２は、『「荷役操作有り＝Ｆａｌｓｅ」ＡＮＤ「車速＜停止速度閾値」ＡＮＤ「荷への近接フラグ＝Ｆａｌｓｅ」』という条件である。条件Ｆ３は、荷降ろし準備状態Ｓ６から荷運搬状態Ｓ５へ遷移するための判定条件である。条件Ｆ３は、『「荷役操作有り＝Ｆａｌｓｅ」ＡＮＤ「車速≧微速閾値」ＡＮＤ「荷への近接フラグ＝Ｆａｌｓｅ」』という条件である。
【００６８】
図２へ戻り、演算部３２は、制御装置１００内の各種演算を行う。演算部３２は、アクセルレバー１１からの運転指令に基づいて、走行駆動系指令を生成する。演算部３２は、アクセルレバー１１の操作量及び操作方向に応じて、走行モータ回転数指令の値を演算する。演算部３２は、荷役レバー１０からの運転指令に基づいて、荷役駆動系指令を生成する。演算部３２は、荷役レバー１０の操作量に応じて、荷役モータ回転数指令の値を演算し、バルブ部４２への制御値を演算する。
【００６９】
設定部３３は、運転状態判定部３１が判定を行うための判定条件を設定する。例えば、記憶部３５に熟練度に応じた複数の判定条件のデータが格納されていた場合、設定部３３は、運転者の熟練度を把握し、適切な判定条件を設定することができる。
【００７０】
学習部３４は、運転者によってなされた操作、例えばアクセルレバー１１の操作量及び荷役レバー１０の操作量を機械学習し、運転状態判定部３１が用いる判定条件を生成する。特定の運転者によるフォークリフト５０の運転が終了した場合に、運転状態判定部３１による判定結果と、実際の運転状態の変化とを比較して評価する。例えば、図９に示す実線のグラフは、実際の運転状態の変化を示すグラフであり、破線のグラフは運転状態判定部３１の判定結果に基づくグラフである。なお、実際の運転状態の変化は、例えば、運転中のフォークリフト５０の様子を撮影しておき、映像に基づいて把握される。図９に示すように、運転状態判定部３１の判定結果と実際の運転状態に異なる部分が生じる場合、学習部３４は、学習によって得た情報を基にして、判定結果が実際の運転状態に近づくように、判定条件の調整を行う。これにより、学習部３４は、特定の運転者の癖や熟練度に応じて判定条件の調整を行うことができる。本実施形態では、学習部３４は、各判定条件の閾値などを運転者に合わせて調整してよい。
【００７１】
記憶部３５は、制御装置１００内で用いられる各種情報を格納する。記憶部３５は、運転状態判定部３１が判定に用いる判定条件を記憶する。記憶部３５は、複数の運転者の癖や熟練度に応じた複数の判定条件を格納してよい。また、記憶部３５は、学習部３４が学習した学習結果を格納する。
【００７２】
次に、図１０を参照して本実施形態に係る制御装置１００の処理内容について説明する。図１０は、制御装置１００の処理内容を示すフローチャートである。
【００７３】
図１０に示すように、設定部３３は、判定条件の設定を行う（ステップＳ１０）。例えば、記憶部３５が運転者に応じて複数の判定条件を格納している場合、設定部３３は、運転者に合わせて適切な判定条件を選択し、選択した判定条件を設定する。なお、設定部３３は、運転時の入力操作などによって、どのような運転者が運転を行うかを把握することができる。なお、Ｓ１０の処理は、記憶部３５が複数の判定条件を格納しており、どの判定条件を用いるか決定する必要がある場合になされる処理であるため、判定条件が一つのみである場合は、Ｓ１０は省略されてもよい。また、事前に設定された判定条件をそのまま用いるような場合などもＳ１０は省略されてもよい。
【００７４】
その後、運転状態判定部３１は、運転状態を判定するために必要な判定パラメータの取得を行う（ステップＳ２０）。運転状態判定部３１は、Ｓ２０で取得した判定パラメータとＳ１０で設定された判定条件とを比較することで、運転状態の遷移があるか否かを判定する（ステップＳ３０）。運転状態判定部３１は、Ｓ３０において運転状態の遷移がないと判定した場合、現在と同じ運転状態が継続していると判断し、Ｓ２０から処理を繰り返す。一方、運転状態判定部３１は、Ｓ３０において運転状態の遷移があると判定した場合、運転状態が新たな運転状態となったと判定する（ステップＳ４０）。運転状態判定部３１は、フォークリフト５０が運転可能な状態か否かによって、フォークリフト５０の運転が終了したか否かを判定する（ステップＳ５０）。運転状態判定部３１は、Ｓ５０において運転が終了していないと判定した場合は、Ｓ２０から再び処理を繰り返す。Ｓ５０において運転が終了したと判定された場合、図１０に示す処理が終了する。
【００７５】
例えば、現在の運転状態が荷無移動状態Ｓ２であった場合、Ｓ３０において、運転状態判定部３１は、条件Ｂ１ａ，Ｂ１ｂ，Ｂ２の何れかの判定条件が満たされているか否かを判定する。運転状態判定部３１は、Ｓ３０においていずれの判定条件も満たされていないと判定した場合は、荷無移動状態Ｓ２が継続していると判断し、Ｓ２０から再び処理を繰り返す。一方、運転状態判定部３１は、Ｓ３０において条件Ｂ１ａ，Ｂ１ｂのいずれかの判定条件がみたされていると判定した場合、Ｓ４０にて運転状態が荷積み準備状態Ｓ３となったことを判定する。あるいは、運転状態判定部３１は、Ｓ３０において条件Ｂ２の判定条件がみたされていると判定した場合、Ｓ４０にて運転状態が荷降ろし完了状態Ｓ１へフィードバックされたことを判定する。その後、運転状態判定部３１が、Ｓ３０において条件Ａ１の判定条件が満たされていると判定した場合、Ｓ４０において運転状態が荷無移動状態Ｓ２となったことを判定し、荷積み準備状態Ｓ３となるまで、同様の処理を繰り返す。
【００７６】
次に、図１１及び図１２を参照して、フォークリフト５０の動作と運転状態の対応関係の一例について説明する。図１１は、フォークリフト５０の稼動状態を模擬した、作業手順の手順前半の様子を示す概略平面図である。図１２は、フォークリフト５０の稼動状態を模擬した、作業手順の手順後半の様子を示す概略平面図である。図１１及び図１２では、床にＬ字状のテープ６１が貼られている。そのテープ６１で画成された領域の内側には、荷Ｗが設置される棚６４が設けられている。テープ６１の長辺部分に沿ってコーン６６が配置されている。また、テープ６１の短辺部分と離間して対向する位置には、停止線６２が設けられている。なお、図１１及び図１２に示すフォークリフト５０の軌道のうち、実線は「荷無前進」状態を示し、破線は「荷有前進」状態を示し、一点鎖線は「荷有後進」状態を示し、二点鎖線は「荷無後進」状態を示す。
【００７７】
まず、フォークリフト５０は、停止線６２の位置から軌道Ｌ１に沿って荷無前進を行う。これにより、フォークリフト５０は、停止線から直進して直角に曲がることで、棚６４の荷Ｗの位置へ近接する。この場合、運転状態判定部３１は、停止線６２から棚６４へ向かう途中の段階では、運転状態が荷無移動状態Ｓ２であると判定する。そして、運転状態判定部３１は、フォークリフト５０が棚６４へ近接して停止状態へ変化する間に、運転状態が荷積み準備状態Ｓ３であると判定する。フォークリフト５０は、棚６４の荷Ｗの手前にて停止し、荷役装置３で荷Ｗを上げる。このとき、運転状態判定部３１は、運転状態が荷積み完了状態Ｓ４であると判定する。その後、フォークリフト５０は、軌道Ｌ２に沿って、荷Ｗが棚６４から出るまで荷有後進を行う。そして、フォークリフト５０は一旦停止し、リフト高さが走行時荷役位置となるように荷役装置３を位置調整する。
【００７８】
フォークリフト５０は、車速を上げて、軌道Ｌ３に沿って荷有後進を行うことで、テープ６１の短辺部分の位置まで荷Ｗを運搬する。この間に、運転状態判定部３１は、運転状態が荷運搬状態Ｓ５であると判定する。フォークリフト５０は、荷Ｗの運搬先である設置位置ＷＰに近接するに従って車速を低下させて、荷Ｗが設置位置ＷＰに到達する位置にて停止状態となる。この間に、運転状態判定部３１は、運転状態が荷降ろし準備状態Ｓ６であると判定する。設置位置ＷＰは、荷Ｗを床に直置きする場所として設定されており、テープ６１の短辺部分に対応する位置に設けられる。フォークリフト５０は、設置位置ＷＰに荷Ｗを載置する。この時、運転状態判定部３１は、運転状態が荷降ろし完了状態Ｓ１であると判定する。フォークリフト５０は、設置位置ＷＰに荷Ｗを降ろしたら、荷役装置３を荷Ｗから取り外せる位置まで軌道Ｌ４に沿って荷無後進を行う。そして、フォークリフト５０は一旦停止し、リフト高さが走行時荷役位置となるように荷役装置３を位置調整する。フォークリフト５０は、車速を上げて、軌道Ｌ５に沿って荷無後進を行うことで、停止線延長線６３（停止線６２を延長させたライン）の位置まで移動する。この間に、運転状態判定部３１は、運転状態が荷無移動状態Ｓ２であると判定する。
【００７９】
次に、図１２に示すように、フォークリフト５０は、軌道Ｌ７に沿って荷無前進を行い、停止線６８（テープ６１の短辺部分を延長させたライン）で停止する。この期間中、運転状態判定部３１は、運転状態が荷無移動状態Ｓ２であると判定する。フォークリフト５０は、軌道Ｌ８に沿って荷無前進し、停止線６８から直進して二回直角に曲がることで、荷Ｗへ近接する。この場合、運転状態判定部３１は、停止線６２から荷Ｗへ向かう途中の段階では、運転状態が荷無移動状態Ｓ２で維持されていると判定する。そして、運転状態判定部３１は、フォークリフト５０が荷Ｗへ近接して停止状態へ変化する間に、運転状態が荷積み準備状態Ｓ３であると判定する。フォークリフト５０は、床に直置きされた荷Ｗの手前にて停止し、荷役装置３で荷Ｗを上げる。このとき、運転状態判定部３１は、運転状態が荷積み完了状態Ｓ４であると判定する。
【００８０】
その後、フォークリフト５０は、車速を上げて、軌道Ｌ９に沿って、荷有前進を行うことで、棚６４の設置位置ＷＰの位置へ近接する。この場合、運転状態判定部３１は、荷Ｗの位置から棚６４へ向かう途中の段階では、運転状態が荷運搬状態Ｓ５であると判定する。そして、運転状態判定部３１は、フォークリフト５０が設置位置ＷＰへ近接して停止状態へ変化する間に、運転状態が荷降ろし準備状態Ｓ６であると判定する。フォークリフト５０は、設置位置ＷＰに荷Ｗを載置する。この時、運転状態判定部３１は、運転状態が荷降ろし完了状態Ｓ１であると判定する。フォークリフト５０は、設置位置ＷＰに荷Ｗを降ろしたら、荷役装置３を荷Ｗから取り外せる位置まで軌道Ｌ１０に沿って荷無後進を行う。そして、フォークリフト５０は一旦停止し、リフト高さが走行時荷役位置となるように荷役装置３を位置調整する。フォークリフト５０は、車速を上げて、軌道Ｌ１１に沿って荷無後進を行うことで、停止線６２の位置まで移動する。この間に、運転状態判定部３１は、運転状態が荷無移動状態Ｓ２であると判定する。
【００８１】
次に、本実施形態に係る制御装置１００、フォークリフト５０、及び制御プログラムの作用・効果について説明する。
【００８２】
本実施形態に係るフォークリフト５０の制御装置１００において、運転状態判定部３１は、フォークリフト５０の運転状態が分類された状態遷移モデルに基づき、フォークリフト５０の運転状態を判定する。このように、運転状態判定部３１が、状態遷移モデルに基づいた判定を行うことで、フォークリフト５０の運転状態の判定が行い易くなる。ここで、状態判定遷移モデルは、荷無移動状態Ｓ２から荷積み完了状態Ｓ４へ遷移する間の状態であって、荷役装置３を操作して荷役装置３に荷を積載する準備をしている状態である荷積み準備状態Ｓ３、を運転状態として分類している。また、状態判定遷移モデルは、荷運搬状態Ｓ５から荷降ろし完了状態Ｓ１へ遷移する間の状態であって、荷役装置３を操作して荷役装置３から荷を運搬先へ荷降ろしする準備をしている状態である荷降ろし準備状態Ｓ６、を運転状態として分類している。すなわち、運転状態判定部３１は、単に荷役装置が荷積み・荷降ろしを完了した状態、及び車両２が移動している状態のみならず、荷積みの準備及び荷降ろしの準備という、運転者の意思が含まれる荷積み準備状態Ｓ３及び荷降ろし状態Ｓ６を判定することができる。これによって、運転状態判定部３１は、運転者の意思を考慮して、運転状態をより詳細に判定することができる。また、発明者らは、フォークリフト５０が荷積みの準備及び荷降ろしの準備を行うときは、車両２が進行状態から停止状態へ変化する点を鑑み、当該状態を考慮することで、運転状態の判定の精度を向上できることを見出した。従って、運転状態判定部３１は、車両２の進行状態から停止状態への変化に基づいて、運転状態が荷積み準備状態Ｓ３及び荷降ろし準備状態Ｓ６であると判定する。これにより、運転状態判定部３１は、精度良く荷積み状態及び荷降ろし状態を判定することができる。以上により、フォークリフト５０の運転状態の判定の精度を高めることができる。
【００８３】
また、本実施形態（及び後述の第２，３実施形態）では、運転状態判定部３１は、フォークリフト５０に既設された機器、センサ類のみに基づく判定パラメータを用いて、判定を行っている。すなわち、制御装置１００は、新たな機器やセンサを追加することなく、精度良く運転状態を判定することができる。
【００８４】
このように、精度良く判定されたフォークリフトの運転状態の判定結果は、様々な用途に有効に利用することができる。例えば、運転状態の判定結果は、運転状態に応じた運転支援を行うために用いられてよい。また、運転状態の判定結果は、状態遷移モデルに基づいてなされたものであるため、運転状態の遷移の仕方によって、運転者の個人差の把握や、スキルの評価に有効に利用することができる。また、このような判定結果は、機械学習用の教師データとして、作業データのラベリングに用いることができる。また、判定結果を自律走行の経路作成の強化学習に用いることができる。その他、判定結果に基づいて作業量の検出も可能となるため、判定結果を作業計画の見直しや作業の効率化など、作業現場の改善にも利用することができる。また、判定結果に基づいて連続した作業の遷移状態の検出も可能となるため、判定結果を遠隔操作時のトラブル対応など使い易い遠隔操作の技術開発支援にも利用することができる。また、遷移条件を利用した自律・自動走行経路計画の構築など、フルオートマティック作業支援の技術開発支援に判定結果を利用することもできる。
【００８５】
フォークリフト５０の制御装置１００において、運転状態判定部３１は、車両２の走行駆動系４５への運転指令によって生成される走行駆動系指令と、荷役装置３の荷役駆動系４０への運転指令によって生成される荷役駆動系指令と、荷役装置３のリフトシリンダ２４の油圧圧力と、を取得し、走行駆動系指令の変化、荷役駆動系指令の変化、及び油圧圧力の変化に基づいて、運転状態を判定する。この場合、運転状態判定部３１は、特殊な判定パラメータを用いることなく、運転状態を判定することができる。
【００８６】
フォークリフト５０は、上述の制御装置１００を備えている。このフォークリフト５０は、上述の制御装置１００と同様な作用・効果を得ることができる。
【００８７】
フォークリフト５０の制御プログラムは、上述の制御装置１００を運転状態判定部３１として機能させる。この制御プログラムは、上述の制御装置１００と同様な作用・効果を得ることができる。
【００８８】
［第２実施形態］
第２実施形態に係る制御装置１００は、合成関数を用いて運転状態の判定を行う点で、第１実施形態と主に異なる。演算部３２は、荷役駆動系４０への運転指令によって生成される荷役モータ４１に対する荷役モータ回転数指令関数Ｒ１を演算する。また、演算部３２は、走行駆動系４５への運転指令によって生成される走行モータ４６に対する走行モータ回転数指令関数Ｒ２を演算する。この場合、運転状態判定部３１は、走行モータ回転数指令及び荷役モータ回転数指令という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。
【００８９】
更に、演算部３２は、荷役モータ回転数指令関数Ｒ１と走行モータ回転数指令関数Ｒ２と、を合成した合成関数ＲＭを演算する。演算部３２は、荷役モータ回転数指令関数Ｒ１及び走行モータ回転数指令関数Ｒ２に対して重み付けをすることで、合成関数ＲＭを演算する。これにより、運転状態判定部３１は、演算部３２で演算された合成関数ＲＭを取得し、合成関数ＲＭの値に基づいて、運転状態を判定する。具体的には、運転状態判定部３１は、演算部３２で演算された合成関数ＲＭを取得し、合成関数ＲＭの値が負から正へ切り替わることに基づいて、運転状態を判定する。この場合、運転者の癖や熟練度等を考慮して、重み付けを調整することで、運転状態判定部３１は、運転者にとってより適切な合成関数ＲＭを用いて、運転状態を判定することができる。
【００９０】
例えば、荷役モータ回転数指令関数Ｒ１に対する重み付け係数をＷ１とし、走行モータ回転数指令関数Ｒ２に対する重み付け係数をＷ２とした場合、合成関数ＲＭは、以下の数式（１）のように表される。重み付け係数をＷ２として、負の値が採用される。これにより、図１３（ａ）に示すように、正側には荷役モータ回転数指令関数Ｒ１に対応するグラフが描かれ、負側には走行モータ回転数指令関数Ｒ２に対応するグラフが描かれる。そして、両関数が合成されることで、図１３（ｂ）に示すように、合成関数ＲＭに対応するグラフが描かれる。このような合成関数ＲＭのグラフのうち、値が負から正へ切り替わるポイントＣＰが、判定条件に用いられる。なお、各重み付け関数の大きさは、予め定められた値が用いられてもよく、運転者の熟練度などによって適宜調整されてもよい。すなわち、学習部３４は、学習結果に基づいて、各重み付け係数を最適化することができる。なお、運転状態判定部３１は、合成関数ＲＭの値が負から正へ切り替わることに基づいて運転状態を判定するものに限定されない。例えば、重み付け係数の設定次第では、運転状態判定部３１は、合成関数ＲＭの値が正から負へ切り替わることに基づいて運転状態を判定してもよい。
ＲＭ＝Ｗ１・｜Ｒ１｜  ＋  Ｗ２・｜Ｒ２｜  …（１）
【００９１】
また、第２実施形態に係る制御装置１００は、熟練度の高い運転者による運転状態を更に精度よく判定することができる。例えば、フォークリフト５０が図１１に示す軌道Ｌ１を移動する際、通常の熟練度の運転者は、上述のように、棚６４の手前で停止し、当該位置で荷役レバー１０を操作することが多い。しかしながら、熟練度の高い運転者は、軌道Ｌ１を高い車速で移動しながら、荷役レバー１０を操作する。例えば、荷無移動状態Ｓ２から荷積み準備状態Ｓ３の判定条件が荷役レバー１０の操作の有無を有している場合、運転状態判定部３１は、熟練度の高い運転者の運転状態を精度良く判定できない可能性がある。
【００９２】
従って、本実施形態に係る運転状態判定部３１は、フォークリフト５０が左右の一方（ここでは右側）へ旋回して荷役することが定められた条件下において、ステアリング位置とアクセル開度との関係に基づいて、運転状態を判定する。フォークリフト５０が旋回して荷役位置へ向かう場合、運転者の熟練度によって、旋回の動作態様は異なる。従って、運転状態判定部３１は、ステアリング位置とアクセル開度との関係に基づくことで、運転者の熟練度に応じて精度よく運転状態を判定できる。
【００９３】
このような判定を行う場合、制御装置１００は、フォークリフト５０のスタート位置ＳＰ及びゴール位置ＧＰを予め把握することで、フォークリフト５０が右側へ旋回することを予め把握している。そして、制御装置１００は、フォークリフト５０がスタート位置ＳＰからゴール位置ＧＰへ到達するまでの時間のうち、ある時刻でのステアリング位置及びアクセル開度が所定の範囲内に入っていれば、フォークリフト５０が旋回位置ＴＰで旋回を行うことを把握している。フォークリフト５０は、旋回位置ＴＰで旋回を行った後は速やかにゴール位置ＧＰの位置で停止する。従って、旋回位置ＴＰでの旋回動作は、荷積みの準備のための動作と見なすことができる。以上により、運転状態判定部３１は、ステアリング位置が予め指定された領域内に収まっており、且つアクセル開度が予め指定された領域内に収まっていることに基づいて、運転状態が荷積み準備状態Ｓ３となったことを判定できると推察される。従って、学習部３４は、熟練度の高い運転者の操作を学習することで、スタート位置ＳＰとゴール位置ＧＰとの間の走行軌跡を推定することができる。これにより、学習部３４は、熟練度の高い運転者のための判定条件（ここでは、ステアリング位置及びアクセル開度の範囲）を最適化することができる。なお、運転状態判定部３１は、荷降ろし状態Ｓ６も上述の同趣旨の方法で判定することができる。
【００９４】
次に、図１４を参照して、第２実施形態に係る制御装置１００で用いられる判定条件について説明する。図１４に示すように、条件Ｇ１は、荷降ろし完了状態Ｓ１から荷無移動状態Ｓ２へ遷移するための判定条件である。条件Ｇ１は、『車速＞微速閾値』という条件である。
【００９５】
条件Ｈ１ａ，Ｈ１ｂは、荷無移動状態Ｓ２から荷積み準備状態Ｓ３へ遷移するための判定条件である。条件Ｈ１ａは、『「車速＜微速閾値」ＡＮＤ「走行から荷積降判断＝Ｔｒｕｅ」』という条件である。荷積降判断とは、図１３を参照して上述したように、合成関数ＲＭが負から正となったときに、荷積降準備に遷移した（Ｔｒｕｅ）と判断することである。条件Ｈ１ｂは、『「車速≧微速閾値」ＡＮＤ「アクセル開度が指定領域内」ＡＮＤ「ステアリング位置が指定領域内」』という条件である。アクセル開度及びステアリング位置の条件とは、図１１を参照して上述したように、アクセル開度及びステアリング位置が運転者の熟練度に応じて設定された領域内に収まっている場合に、荷積みの準備がなされたと判断する条件である。
【００９６】
条件Ｈ２は、荷無移動状態Ｓ２から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｈ２は、一度、運転状態判定部３１が荷無移動状態Ｓ２と誤って判定した場合に、運転状態を荷降ろし完了状態Ｓ１へフィードバックするための判定条件である。条件Ｈ２は、『「車速＜微速閾値」ＡＮＤ（「Ｓ６で荷物無フラグ＝Ｔｒｕｅ」ＯＲ「荷役レバー操作有り」）』という条件である。「Ｓ６で荷物無フラグ＝Ｔｒｕｅ」とは、Ｓ６にて、「荷無判断＝Ｔｒｕｅ」となった状態である。なお、条件Ｈ２は、「荷役レバー操作有り」という条件を含んでいるが、荷役レバー１０の操作がなされても、合成関数ＲＭが負から正になっていないことを前提としている。
【００９７】
条件Ｋ１は、荷積み準備状態Ｓ３から荷積み完了状態Ｓ４へ遷移するための判定条件である。条件Ｋ１は、『「荷有判断＝Ｔｒｕｅ」ＡＮＤ「車速＜停止速度閾値」』という条件である。「荷有判断」は、荷役モータ回転数指令が予め定めた値となっているとき（例えば０などの低い値）に、油圧圧力が指定領域（荷Ｗが有ると判定できるような高い圧力）内にある場合、「Ｔｒｕｅ」となる。
【００９８】
条件Ｊ１は、荷積み完了状態Ｓ４から荷運搬状態Ｓ５へ遷移するための判定条件である。条件Ｊ１は、『車速＞微速閾値』という条件である。
【００９９】
条件Ｍ１ａ，Ｍ１ｂは、荷運搬状態Ｓ５から荷降ろし準備状態Ｓ６へ遷移するための判定条件である。条件Ｍ１ａは、『「車速＜微速閾値」ＡＮＤ「走行から荷積降判断＝Ｔｒｕｅ」』という条件である。条件Ｅ１ｂは、『「車速≧微速閾値」ＡＮＤ「アクセル開度が指定領域内」ＡＮＤ「ステアリング位置が指定領域内」』という条件である。
【０１００】
条件Ｍ２は、荷運搬状態Ｓ５から荷積み完了状態Ｓ４へ遷移するための判定条件である。条件Ｍ２は、一度、運転状態判定部３１が荷運搬状態Ｓ５と誤って判定した場合に、運転状態を荷積み完了状態Ｓ４へフィードバックするための判定条件である。条件Ｍ２は、『「車速＜微速閾値」ＡＮＤ（「Ｓ３で荷物有フラグ＝Ｔｒｕｅ」ＯＲ「荷役レバー操作有り」）』という条件である。「Ｓ３で荷物有フラグ＝Ｔｒｕｅ」とは、Ｓ３にて、「荷有判断＝Ｔｒｕｅ」となった状態である。なお、条件Ｍ２は、「荷役レバー操作有り」という条件を含んでいるが、荷役レバー１０の操作がなされても、合成関数ＲＭが負から正になっていないことを前提としている。
【０１０１】
条件Ｎ１は、荷降ろし準備状態Ｓ６から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｎ１は、『「荷無判断＝Ｔｒｕｅ」ＡＮＤ「車速＜停止速度閾値」』という条件である。「荷無判断」は、荷役モータ回転数指令が予め定めた値となっているとき（例えば０などの低い値）に、油圧圧力が指定領域（荷Ｗが無いと判定できるような低い圧力）内にある場合、「Ｔｒｕｅ」となる。
【０１０２】
［第３実施形態］
第３実施形態に係る制御装置１００は、運転者による操作入力を主たる判定パラメータとして運転状態の判定を行う点で、第１実施形態と主に異なる。例えば、判定パラメータとして、アクセルレバー１１の操作量に対応するアクセル開度が採用される。運転状態判定部３１は、アクセル開度に基づいて、車両２の進行状態から停止状態への変化を検出する。アクセル開度は、運転者の荷積み又は荷降ろしの準備の意図を反映した判定パラメータである。従って、運転状態判定部３１は、アクセル開度に基づくことで、精度良く荷積み状態、又は荷降ろし状態を判定することができる。
【０１０３】
また、判定パラメータとして、ある操作量の関数と他の操作量の関数とを合成した合成関数が用いられてもよい。例えば、運転状態判定部３１は、アクセル開度によって生成されるアクセル開度関数と、全ての荷役レバー１０（レバー１０ａ，１０ｂ，１０ｃの全て）の操作によって生成される全荷役レバー操作量関数と、を取得してよい。運転状態判定部３１は、アクセル開度関数と全荷役レバー操作量関数とを合成した合成関数に基づいて運転状態を判定する。この場合、運転状態判定部３１は、アクセル開度と全荷役レバー操作量という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。なお、当該合成関数は、上述の数式（１）を用いて合成関数ＲＭを作成した方法と同趣旨の方法によって作成されてよい。以下の合成関数について、全て同様である。
【０１０４】
運転状態判定部３１は、荷役装置３へ荷Ｗが積載されていることの判定条件として、リーチ操作量関数とリフト操作量関数との合成関数を用いる。リーチ操作量関数とは、リーチレバー１０ｂの操作量を示す関数である。リフト操作量関数とは、リフトシリンダ２４を動かすためのリフトレバー１０ａの操作量を示す関数である。ここでは、リフト操作量関数として、リフトシリンダ２４を微上昇させるための、リフトレバー１０ａの操作量を示すリフト上昇の操作量関数を採用してもよい。この場合、運転状態判定部３１は、リーチ操作量とリフト操作量という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。なお、リフト操作量関数として、リフト上昇の操作量関数を用いるか、リフト下降の操作量関数を用いるかなどは、運転者に応じて適宜変更されてもよい。
【０１０５】
また、運転状態判定部３１は、荷役装置３へ荷Ｗが積載されていないことの判定条件として、リフト操作量関数とリーチ・ティルト操作量関数との合成関数を用いる。ここでは、リフト操作量関数として、リフトシリンダ２４を微下降させるための、リフトレバー１０ａの操作量を示すリフト下降の操作量関数を採用してよい。リーチ・ティルト操作量関数とは、リーチレバー１０ｂの操作量とティルトレバー１０ｃの操作量との合計の操作量を示す関数である。この場合、運転状態判定部３１は、リフト操作量とリーチ・ティルト操作量という複数の判定パラメータを合成関数という一つの判定パラメータとして扱うことができる。なお、リフト操作量関数として、リフト上昇の操作量関数を用いるか、リフト下降の操作量関数を用いるかなどは、運転者に応じて適宜変更されてもよい。
【０１０６】
上述のような、荷役レバー１０の操作量に基づく判定パラメータを用いる場合、学習部３４は、運転者の荷役レバー１０の操作量を機械学習し、運転状態判定部３１が用いる判定条件を生成することが好ましい。この場合、学習部３４は、運転者の荷役レバー１０の操作量の傾向などを反映した判定条件を生成することができる。
【０１０７】
次に、図１５を参照して、第３実施形態に係る制御装置１００で用いられる判定条件について説明する。図１５に示すように、条件Ｐ１は、荷降ろし完了状態Ｓ１から荷無移動状態Ｓ２へ遷移するための判定条件である。条件Ｐ１は、『アクセル開度＞微速閾値』という条件である。
【０１０８】
条件Ｑ１ａ，Ｑ１ｂは、荷無移動状態Ｓ２から荷積み準備状態Ｓ３へ遷移するための判定条件である。条件Ｑ１ａは、『「アクセル開度＜微速閾値」ＡＮＤ「走行から荷積降判断＝Ｔｒｕｅ」』という条件である。荷積降判断とは、アクセル開度と荷役レバーの合成関数が負から正となったときに、荷積降準備に遷移した（Ｔｒｕｅ）と判断することである。条件Ｑ１ｂは、『「アクセル開度≧微速閾値」ＡＮＤ「アクセル開度が指定領域内」ＡＮＤ「ステアリング位置が指定領域内」』という条件である。アクセル開度及びステアリング位置の条件とは、第２実施形態において図１１を参照して上述したように、アクセル開度及びステアリング位置が運転者の熟練度に応じて設定された領域内に収まっている場合に、荷積みの準備がなされたと判断する条件である。
【０１０９】
条件Ｑ２は、荷無移動状態Ｓ２から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｑ２は、一度、運転状態判定部３１が荷無移動状態Ｓ２と誤って判定した場合に、運転状態を荷降ろし完了状態Ｓ１へフィードバックするための判定条件である。条件Ｑ２は、『「アクセル開度＜微速閾値」ＡＮＤ（「Ｓ６で荷物無フラグ＝Ｔｒｕｅ」ＯＲ「荷役レバー操作有り」）』という条件である。「Ｓ６で荷物無フラグ＝Ｔｒｕｅ」とは、Ｓ６にて、「荷無判断＝Ｔｒｕｅ」となった状態である。なお、条件Ｑ２は、「荷役レバー操作有り」という条件を含んでいるが、荷役レバー１０の操作がなされても、Ｑ１ａでの合成関数が負から正になっていないことを前提としている。
【０１１０】
条件Ｒ１は、荷積み準備状態Ｓ３から荷積み完了状態Ｓ４へ遷移するための判定条件である。条件Ｒ１は、『「荷有判断＝Ｔｒｕｅ」ＡＮＤ「アクセル開度＝０」』という条件である。「荷有判断」は、リーチ操作量関数とリフト上昇の操作量関数との合成関数の符号が負から正に変化した場合に、荷有と判定する（Ｔｒｕｅ）。
【０１１１】
条件Ｔ１は、荷積み完了状態Ｓ４から荷運搬状態Ｓ５へ遷移するための判定条件である。条件Ｔ１は、『アクセル開度＞０』という条件である。
【０１１２】
条件Ｕ１ａ，Ｕ１ｂは、荷運搬状態Ｓ５から荷降ろし準備状態Ｓ６へ遷移するための判定条件である。条件Ｕ１ａは、『「アクセル開度＝０」ＡＮＤ「走行から荷積降判断＝Ｔｒｕｅ」』という条件である。条件Ｅ１ｂは、『「アクセル開度＞０」ＡＮＤ「アクセル開度が指定領域内」ＡＮＤ「ステアリング位置が指定領域内」』という条件である。
【０１１３】
条件Ｕ２は、荷運搬状態Ｓ５から荷積み完了状態Ｓ４へ遷移するための判定条件である。条件Ｕ２は、一度、運転状態判定部３１が荷運搬状態Ｓ５と誤って判定した場合に、運転状態を荷積み完了状態Ｓ４へフィードバックするための判定条件である。条件Ｕ２は、『「アクセル開度＝０」ＡＮＤ（「Ｓ３で荷物有フラグ＝Ｔｒｕｅ」ＯＲ「荷役レバー操作有り」）』という条件である。「Ｓ３で荷物有フラグ＝Ｔｒｕｅ」とは、Ｓ３にて、「荷有判断＝Ｔｒｕｅ」となった状態である。なお、条件Ｕ２は、「荷役レバー操作有り」という条件を含んでいるが、荷役レバー１０の操作がなされても、Ｕ１ａでの合成関数が負から正になっていないことを前提としている。
【０１１４】
条件Ｖ１は、荷降ろし準備状態Ｓ６から荷降ろし完了状態Ｓ１へ遷移するための判定条件である。条件Ｖ１は、『「荷無判断＝Ｔｒｕｅ」ＡＮＤ「アクセル開度＝０」』という条件である。「荷無判断」は、リフト下降の操作量関数とリーチ・ティルト操作量関数との合成関数が負から正へ変化したときに、「Ｔｒｕｅ」となる。
【０１１５】
本発明は、上述の実施形態に限定されるものではない。
【０１１６】
例えば、上述の実施形態では、産業車両の一例としてリーチ式のフォークリフトを例示したが、カウンター式のフォークリフトといった、各種フォークリフトを採用してもよい。また、走行駆動系が走行モータを備えている場合を例示したが、走行駆動系がエンジンを備えている場合であってもよい。
【０１１７】
また、上述の実施形態では、各実施形態に対応する判定パラメータを例示したが、本発明の趣旨を逸脱しない範囲で、他の判定パラメータを採用してもよい。また、判定条件も一例にすぎず、適宜変更してもよい。
【０１１８】
実施形態では、リフトシリンダ２４の圧力を検出する圧力センサの位置を、リフトシリンダ２４の作動油の流量を制御するバルブ付近に設けた例を記載しているが、リフトシリンダ２４の圧力を検出できれば、そのような位置に限定されない。例えば、バルブとリフトシリンダ２４とを接続する油圧配管の圧力を測定してもよい。
【符号の説明】
【０１１９】
２…車両、３…荷役装置、１０…荷役レバー、１１…アクセルレバー、１３…ステアリング、３１…運転状態判定部、３４…学習部、４０…荷役駆動系、４１…荷役モータ、４５…走行駆動系、４６…走行モータ、５０…フォークリフト（産業車両）、１００…制御装置。
【図１】
2019189435.tif 000003
【図２】
2019189435.tif 000004
【図３】
2019189435.tif 000005
【図４】
2019189435.tif 000006
【図５】
2019189435.tif 000007
【図６】
2019189435.tif 000008
【図７】
2019189435.tif 000009
【図８】
2019189435.tif 000010
【図９】
2019189435.tif 000011
【図１０】
2019189435.tif 000012
【図１１】
2019189435.tif 000013
【図１２】
2019189435.tif 000014
【図１３】
2019189435.tif 000015
【図１４】
2019189435.tif 000016
【図１５】
2019189435.tif 000017