以下、本発明の実施形態について図面を参照して説明する。図1は、本発明の実施形態によるフォークリフト100を示す斜視図である。荷役車両であるフォークリフト100は、車両本体101の前方に、車両本体101の幅方向の端に1つずつ、前方へ延びる1対のストラドルアーム102が設けられる。1対のストラドルアーム102には、車両本体101の上方へ延びるマスト103が設けられている。マスト103には、荷役対象物(以下、荷物という)を支持して昇降するフォーク104が取り付けられており、当該マスト103によってフォーク104の昇降動作が案内される。フォークリフト100では、前輪115がストラドルアーム102に設けられ、後輪116が車両本体101に設けられる。
フォーク104は、マスト103に沿って昇降する。フォーク104をマスト103に沿って昇降させる制御を、リフト制御という。また、フォーク104の基部を回動させてフォーク104の先端部を上下方向に傾ける制御をチルト制御という。マスト103は、フォーク104と共にストラドルアーム102に沿って進退する。マスト103及びフォーク104をストラドルアーム102に沿って進退させる制御を、リーチ制御という。
なお、マスト103及びフォーク104は、油圧回路によって作動する。
また、車両本体101には、運転者2が搭乗する運転席117が設けられる。運転席117には、リフトレバー106、チルトレバー107、リーチレバー108、アクセルレバー109、ブレーキペダル110、ステアリングハンドル111、ディスプレイ114が設けられる。
アクセルレバー109は、モータを駆動させて車両本体101を前進または後退させる際に、運転者2によって操作される。ブレーキペダル110は、車両本体101が前進または後退している場合に走行の速度を低下させたり、車両本体101を停止させたりする際に運転者2によって操作される。ステアリングハンドル111は、車両本体101の走行方向を変更する際に、運転者2によって操作される。リフトレバー106、チルトレバー107、リーチレバー108は、それぞれ、リフト制御、チルト制御、リーチ制御の際に、運転者2によって操作されるレバーである。
ディスプレイ114は、フォークリフト100の走行速度、走行距離、荷重センサ112が検出するフォーク104の負荷などの情報を表示する他、運転状態が、無人運転状態であるか有人運転状態であるかを示す情報や、有人運転から無人運転に切り替わる際、または、無人運転から有人運転に切り替わる際に、切り替わることを事前に運転者2に知らせる情報を表示する。切り替わることを事前に運転者2に知らせる情報としては、例えば、ディスプレイ114の一部に点滅させるマークを表示する報知情報であってもよいし、スピーカーが内蔵されていれば音で通知するといった報知情報であってもよいし、ディスプレイ114に切り替わるまでの時間を示してカウントダウンさせていくような情報であってもよい。
車両制御装置105は、車両本体101に内蔵され、フォークリフト100の走行の制御、フォーク104の制御、有人運転と無人運転との切り替えの制御などを行う。荷重センサ112は、フォーク104の負荷、すなわちフォーク104によって持ち上げられる荷物の重量を検出する。カメラ113は、例えば、CCD(Charge Coupled Device)などの光学的撮像手段である。カメラ113は、走行経路の路面に敷設され、無人運転の際にフォークリフト100の進行を誘導する誘導ライン、及び誘導ライン上の一定の距離間隔または誘導ラインが交差する箇所に設けられる位置を示す位置マーク400を予め定められる所定頻度(例えば、30回/秒)で逐次撮影し、撮影した画像の情報を車両制御装置105に出力する。
図2は、本実施形態による荷役車両システム1の構成を示すブロック図である。荷役車両システム1は、フォークリフト100、生体情報検出装置200、管理装置300、位置マーク400を備える。フォークリフト100において、以下、図1で説明した構成以外の構成について説明する。フォークリフト100の車両制御装置105は、送受信部501、作業状況管理部502、自動運転制御部503、運転切替スイッチ部504、疲労度算出部505、疲労度判定部506、運転時間判定部507、走行制御部508、荷役制御部509、積載検出部510、位置検出部511、記憶部512を備える。
送受信部501は、例えば、WiFi(登録商標)などの無線通信手段であり、生体情報検出装置200と管理装置300との間で情報の送受信を行う。作業状況管理部502は、走行制御部508、荷役制御部509、積載検出部510、位置検出部511が出力する情報に基づいて、作業状況を示す情報を検出する。ここで、作業状況を示す情報とは、例えば、作業中の状態であるか、作業が完了している状態であるか等を示す情報である。また、作業状況管理部502は、作業が完了した場合、作業の完了を通知するため、当該作業を示す作業特定情報を管理装置300に送信する。
疲労度算出部505は、運転者2に装着される生体情報検出装置200が出力する生体情報を送受信部501を通じて受信し、受信した生体情報に基づいて疲労度の算出を行う。疲労度判定部506は、疲労度算出部505が算出した疲労度に基づいて、運転者2が疲労しているか否か、また、運転者2が疲労から回復したか否かを判定する。
運転切替スイッチ部504は、有人運転と無人運転とを切り替えるスイッチであり、疲労度判定部506が判定した結果に基づいて、運転状態の切り替えを行う。また、運転切替スイッチ部504は、506が運転者2が疲労していると判定した場合、その時点での運転状態が有人運転状態であるとき、無人運転に切り替える。また、運転切替スイッチ部504は、疲労度判定部506が運転者2が疲労から回復したと判定した場合、その時点での運転状態が無人運転状態であるとき、有人運転に切り替える。また、運転切替スイッチ部504は、作業状況を示す情報が、作業中を示している場合、運転状態を切り替えずに、作業が完了するまで待機し、作業状況を示す情報が、作業の完了を示している場合に運転状態の切り替えを行う。また、運転切替スイッチ部504は、切替後の運転状態、すなわち現時点での運転状態を示す情報を記憶部512の運転状態情報512Bに書き込んで記憶させる。
荷役制御部509は、有人運転状態の場合、運転者2によるリフトレバー106、チルトレバー107、及びリーチレバー108の操作を受けて、油圧回路を駆動させて、フォーク104に対してリフト制御、チルト制御、及びリーチ制御を行う。また、荷役制御部509は、無人運転状態の場合、自動運転制御部503からの制御指示情報を受けて、油圧回路を駆動させて、フォーク104に対してリフト制御、チルト制御、及びリーチ制御を行う。また、荷役制御部509は、油圧回路を駆動させて行っている制御の種類を示す情報を出力する。例えば、荷役制御部509は、リフト制御であれば、フォーク104を上昇させて荷物を持ち上げているのか、フォーク104を下降させて荷物を降ろしているのか等を示す情報を出力する。なお、以下では、フォーク104を上昇させて荷物を持ち上げることを、リフトアップといい、フォーク104を下降させて荷物を降ろすことを、リフトダウンという。
走行制御部508は、有人運転状態の場合、運転者2によるアクセルレバー109、ブレーキペダル110、ステアリングハンドル111の操作を受けて、モータを駆動させて前輪115と後輪116を動かしてフォークリフト100を走行させる。また、走行制御部508は、無人運転状態の場合、自動運転制御部503からの制御指示情報を受けて、モータを駆動させて前輪115と後輪116を動かしてフォークリフト100を走行させる。また、走行制御部508は、走行速度を示す情報を逐次出力する。
積載検出部510は、荷重センサ112が逐次出力する、フォーク104によって持ち上げられている荷物の重量の値に基づいて、荷物が積載されているか否かを示す情報を逐次出力する。位置検出部511は、カメラ113が逐次撮影する誘導ラインや位置マーク400の画像を解析して誘導ラインからのずれを示す情報や位置を示す情報を逐次出力する。
自動運転制御部503は、無人運転の状態に切り替えられた場合に、管理装置300から送信される計画された作業を示す作業特定情報を受信する。また、自動運転制御部503は、受信した作業特定情報に基づいて、走行制御部508、荷役制御部509に制御指示情報を出力して、荷物が荷置きされている場所に向かってフォークリフト100を走行させ、荷物をフォーク104で持ち上げさせ、荷物の移送先まで走行させ、当該移送先において荷物を降ろさせる処理を行う。また、自動運転制御部503は、位置検出部511が出力する誘導ラインからのずれや、位置を示す情報に基づいて、誘導ラインに沿って走行するように走行制御部508に制御指示情報を出力する。
記憶部512は、図3に示す判定基準値512A、運転状態情報512B、作業状況テーブル512C、最低運転時間512Dの情報を記憶する。判定基準値512Aは、作業前に生体情報検出装置200によって計測される運転者2の平常時の生体情報であり、例えば、生体情報として脈拍数を検出する場合、当該運転者2の平常時の1分間の脈拍数の値が予め計測されて記憶される。運転状態情報512Bは、前述したように運転切替スイッチ部504によって書き込まれる、運転状態を示す情報である。作業状況テーブル512Cは、「リフトアップ位置」、「リフトダウン位置」、「完了状態」の項目を有するテーブルであり、作業状況管理部502によって、作業が行われるごとにレコードが生成され、各々の項目に、荷物をリフトアップした位置を示す情報、荷物をリフトダウンした位置を示す情報、作業の完了状態を示す情報のそれぞれが書き込まれる。最低運転時間512Dは、運転者2が最低限フォークリフト100による作業を継続する必要がある運転時間である。最低運転時間512Dとしては、例えば1時間が設定される。
運転時間判定部507は、フォークリフト100の無人運転が終了した時刻からの経過時間が、記憶部512が記憶する最低運転時間512D以上であるか否かを判定する。つまり、運転時間判定部507は、運転者2による継続運転時間が最低運転時間512Dに達したか否かを判定する。
生体情報検出装置200は、例えば、特開2015−154868号公報に示されるようなリストバンド型のウェアラブル端末装置が適用され、運転者2に装着され、運転者2の生体情報を予め定められる間隔で繰り返し検出する。本実施形態では、例えば、15秒間の運転者2の脈拍数を繰り返し検出する。また、生体情報検出装置200は、検出した生体情報を無線通信手段によりフォークリフト100の車両制御装置105の送受信部501に送信する。
管理装置300は、作業計画情報記憶部301、作業計画情報選択部302、作業済情報書込部303、送受信部304を備える。送受信部304は、フォークリフト100の車両制御装置105の送受信部501との間で無線通信手段により情報の送受信を行う。作業計画情報記憶部301は、図4に示す作業計画情報テーブル310を記憶する。作業計画情報テーブル310は、作業計画情報を構成する「荷物ID(Identification)」、「荷置き位置ID」、「移送先位置ID」、「完了状態」の項目を有する。「荷物ID」の項目には、荷物ごとに予め付与される識別番号が書き込まれる。「荷置き位置ID」の項目には、移送前に荷物が荷置きされている位置を示す識別番号が書き込まれる。「移送先位置ID」の項目には、荷物の移送先の位置を示す識別番号が書き込まれる。「完了状態」の項目には、荷物の移送が完了した場合、「完了」が書き込まれ、荷物の移送が完了していない場合、「未完了」が書き込まれる。移送される荷物が新たに荷置きされた場合、例えば、管理装置300の操作者の操作により、当該荷物に対応づけられている「荷物ID」、「荷置き位置ID」、「移送先位置ID」のそれぞれの識別番号が書き込まれ、「完了状態」の項目には初期情報として「未完了」が書き込まれる。なお、上述した作業特定情報は、「荷置き位置ID」の項目に書き込まれている荷物が荷置きされている位置を示す識別番号と、「移送先位置ID」の項目に書き込まれている荷物の移送先の位置を示す識別番号とを含む情報である。
作業計画情報選択部302は、作業計画情報記憶部301に記憶されている作業計画情報テーブル310に含まれる情報のうち、「完了状態」の項目が「未完了」となっている作業計画情報を読み出す。作業計画情報選択部302は、読みだした作業計画情報から「荷置き位置ID」の項目の位置を示す識別番号と、「移送先位置ID」の項目の位置を示す識別番号とを含む情報、すなわち作業特定情報を選択して送受信部304を通じてフォークリフト100の車両制御装置105に送信する。作業済情報書込部303は、フォークリフト100の車両制御装置105から、完了した作業を示す作業特定情報を送受信部304を通じて受信すると、当該作業特定情報に含まれる識別番号の組み合わせに対応する作業計画情報テーブル310の情報を検出し、当該情報の「完了状態」の項目を「未完了」から「完了」に書き換える。
位置マーク400は、走行経路の路面に複数設けられる。位置マーク400は、例えば、無人運転が行われる際に、フォークリフト100を誘導するために用いられる誘導ラインの一部に印刷、または貼付される特開2013−171368号公報に示されるようなカウント用マークや固有マークである。本実施形態では、位置マーク400は、例えば、位置を示すバーコードや二次元コードのような識別情報が示されているものとする。この識別情報が、カメラ113によって撮影され、撮影された画像が位置検出部511によって解析されることにより位置を示す識別番号が出力される。
(作業状況の管理処理)
図5は、フォークリフト100と管理装置300とにおいて作業の進行状況に応じてそれぞれ、作業状況テーブル512Cと作業計画情報テーブル310とを更新していく処理を示すフローチャートである。当該フローチャートの処理は、フォークリフト100が、有人運転状態であるか無人運転状態であるかに関わらず継続して行われる処理である。
フォークリフト100の車両制御装置105の作業状況管理部502が、荷役制御部509が出力する制御の種類を示す情報に基づいて、フォーク104を昇降させるリフト制御が開始されたことを検出する(ステップSa1)。作業状況管理部502は、モータを駆動する走行制御部508が出力する走行速度を示す情報に基づいて、フォークリフト100が走行中であるか停止中であるかを判定する(ステップSa2)。
走行中と判定した場合(ステップSa2:走行中)、荷置き位置や移送先の位置において、荷物を持ち上げたり、降ろしたりしている状態ではないと想定されるため、作業状況管理部502は、ステップSa1からの処理を繰り返す。停止中と判定した場合(ステップSa2:停止中)、作業状況管理部502は、カメラ113によって逐次撮影される位置マーク400の画像に基づいて、位置検出部511が解析して出力する位置を示す識別番号を位置検出部511から取得する(ステップSa3)。作業状況管理部502は、荷役制御部509によるリフト制御の終了を検出すると、行われたリフト制御がリフトアップであるかリフトダウンであるかを判定する(ステップSa4)。
行われたリフト制御が、リフトアップであると判定した場合(ステップSa4:リフトアップ)、作業状況管理部502は、積載検出部510が出力するフォーク104に積載されている荷物の重量を示す情報に基づいて、積載物が存在するか否かを判定する(ステップSa5)。例えば、重量を示す情報が0[kg]を示していれば、積載物が存在しないと判定し、重量を示す情報が0[kg]より大きな値を示していれば、積載物が存在すると判定する。積載物が存在すると判定した場合(ステップSa5:積載物有)、荷物をフォーク104で持ち上げた状態であると想定される。そのため、作業状況管理部502は、記憶部512の作業状況テーブル512Cにおいて「リフトアップ位置」、「リフトダウン位置」、「完了状態」の項目からなるレコードを1つ生成して、「リフトアップ位置」の項目にステップSa3で位置検出部511から取得した位置を示す識別番号を書き込む。また、作業状況管理部502は、「完了状態」の項目に、作業途中であることを示す「作業中」を書き込み、ステップSa1からの処理を繰り返す(ステップSa6)。一方、ステップSa5において、積載物が存在しないと判定した場合(ステップSa5:積載物無)、単に、フォーク104を上昇させただけの動きと想定されるため、ステップSa1からの処理を繰り返す。
ステップSa4において、行われたリフト制御が、リフトダウンであると判定した場合(ステップSa4:リフトダウン)、作業状況管理部502は、積載検出部510が出力するフォーク104に積載されている荷物の重量を示す情報に基づいて、積載物が存在するか否かを判定する(ステップSa7)。積載物が存在しないと判定した場合(ステップSa7:積載物無)、荷物を降ろした状態であると想定される。そのため、作業状況管理部502は、記憶部512の作業状況テーブル512Cにおいて「完了状態」の項目が「作業中」となっている「リフトアップ位置」の項目から位置を示す識別番号を読み出す。作業状況管理部502は、読みだしたリフトアップの位置を示す識別番号と、ステップSa3で位置検出部511から取得したリフトダウンの位置を示す識別番号とを含む作業特定情報を、送受信部501を通じて管理装置300に送信する(ステップSa8)。
作業状況管理部502は、記憶部512の作業状況テーブル512Cにおいて「完了状態」の項目が「作業中」となっている情報において、空欄になっている「リフトダウン位置」の項目に位置検出部511から取得した位置を示す識別番号を書き込む。また、作業状況管理部502は、「完了状態」の項目に、作業が完了したことを示す「完了」を書き込み、ステップSa1からの処理を繰り返す(ステップSa9)。一方、ステップSa7において、積載物が存在すると判定した場合(ステップSa7:積載物有)、単に、荷物を積載したままフォーク104を下降させただけの動きと想定されるため、ステップSa1からの処理を繰り返す。
管理装置300の作業済情報書込部303は、送受信部304を通じてステップSa8の処理により作業状況管理部502が送信した作業特定情報を受信する。作業済情報書込部303は、受信した作業特定情報に含まれるリフトアップの位置を示す識別番号と、リフトダウンの位置を示す識別番号との組み合わせに一致する作業計画情報を作業計画情報記憶部301の作業計画情報テーブル310から検出する。作業済情報書込部303は、検出した作業計画情報の「完了状態」の項目を「未完了」から「完了」に書き換える。
これにより、管理装置300において、作業計画情報テーブル310に記憶される作業計画情報の「完了状態」の項目を参照することで、完了している作業と、未完了の作業とを検出することができる。また、車両制御装置105の記憶部512に記憶されている作業状況テーブル512Cの「完了状態」の項目を参照することで、車両制御装置105側においても、作業中の状態であるか、作業が完了している状態であるかという作業状況を示す情報を検出することができる。
(有人運転と無人運転との切り替え処理)
図6は、フォークリフト100の車両制御装置105による運転者2の疲労の度合いにより有人運転と無人運転とを切り替える処理を示すフローチャートである。運転者2に装着された生体情報検出装置200が、運転者2の生体情報を検出する。ここで、生体情報検出装置200が検出する生体情報は、前述したように、例えば、15秒間計測した運転者2の脈拍数であるとする。生体情報検出装置200は、検出した15秒間の脈拍数の情報を送信する。フォークリフト100の車両制御装置105の疲労度算出部505は、送受信部501を通じて生体情報検出装置200が出力する生体情報、すなわち15秒間の脈拍数の情報を受信する(ステップSb1)。
疲労度算出部505は、受信した生体情報から疲労度の算出を行う。例えば、疲労度算出部505は、受信した15秒間の脈拍数を4倍して1分間の脈拍数を算出し、算出した値を疲労度を示す情報として疲労度判定部506に出力する(ステップSb2)。疲労度判定部506は、疲労度算出部505からの疲労度を示す情報を受けると、記憶部512の運転状態情報512Bを参照して現在の運転状態が有人運転状態であるか無人運転状態であるかを判定する(ステップSb3)。
疲労度判定部506は、有人運転状態であると判定した場合(ステップSb3:有人運転状態)、記憶部512に記憶されている判定基準値512Aを読み出す。ここでは、判定基準値512Aとして予め記憶されている運転者2の平常時の1分間の脈拍数の値を読み出すものとする。疲労度判定部506は、平常時の1分間の脈拍数に予め定められる第1の所定値を加算して、第1の閾値を算出する。例えば、一般的に脈拍が5拍から10拍上昇すると疲労しているといわれており、ここでは、第1の所定値として10拍を加算するものとする。疲労度判定部506は、疲労度算出部505が算出した運転者2の1分間の脈拍数が、第1の閾値以上であるか否かを判定する(ステップSb4)。なお、第1の所定値は、記憶部512に予め記憶させておいてもよいし、疲労度判定部506の内部の記憶領域に予め記憶させるようにしてもよい。
疲労度判定部506が、疲労度算出部505が算出した運転者2の1分間の脈拍数が、第1の閾値以上でないと判定した場合(ステップSb4:No)、ステップSb1からの処理が繰り返される。なお、ステップSb4の処理の繰り返しの周期は、最低運転時間512Dより十分短い時間(例えば、1分)である。一方、疲労度判定部506が、疲労度算出部505が算出した運転者2の1分間の脈拍数が、第1の閾値以上であると判定した場合(ステップSb4:Yes)、次に、運転時間判定部507は、フォークリフト100の無人運転が終了した時刻からの経過時間(継続運転時間)が、記憶部512が記憶する最低運転時間512D以上であるか否かを判定する(ステップSb5)。運転時間判定部507は、無人運転が終了した時刻からの経過時間が最低運転時間512D未満であると判定した場合(ステップSb5:No)、ステップSb5の処理が繰り返される。つまり、無人運転が終了した時刻からの経過時間が最低運転時間512Dに達するまで有人運転が継続される。なお、ステップSb5の処理の繰り返しの周期は、最低運転時間512Dより十分短い時間(例えば、1分)である。他方、運転時間判定部507は、無人運転が終了した時刻からの経過時間が最低運転時間512D以上であると判定した場合(ステップSb5:Yes)、当該判定結果を受けて運転切替スイッチ部504は、現在の作業が完了しているか否かを判定する(ステップSb6)。
運転切替スイッチ部504は、記憶部512の作業状況テーブル512Cを参照して、作業状況を示す情報、すなわち、「完了状態」の項目が「作業中」となっている情報が存在する場合、現在の作業は完了していないと判定する。現在の作業が完了していないと判定した場合(ステップSb6:No)、運転切替スイッチ部504は、ディスプレイ114に、現在の作業が完了すると、有人運転から無人運転に切り替えることを知らせるメッセージを表示して、ステップSb6の処理を繰り返す(ステップSb7)。一方、全ての「完了状態」の項目が「完了」となっている場合(ステップSb6:Yes)、作業状況を示す情報が作業の完了を示しているとして、運転切替スイッチ部504は、現在の作業は完了していると判定し、記憶部512の運転状態情報512Bを無人運転状態を示す情報に書き換える(ステップSb8)。運転状態情報512Bに記憶される情報の書き換えにより、ディスプレイ114に表示される運転状態も無人運転状態に変更される。また、運転切替スイッチ部504は、有人運転から無人運転への切り替えを行い、後述する図7の無人運転の処理を開始するとともに、ステップSb1の処理に戻る(ステップSb9)。
一方、ステップSb3において、無人運転状態であると判定した場合(ステップSb3:無人運転状態)、疲労度判定部506は、記憶部512に記憶されている判定基準値512A、すなわち運転者2の平常時の1分間の脈拍数の値を読み出す。疲労度判定部506は、平常時の1分間の脈拍数に予め定められる第2の所定値を加算して、第2の閾値を算出する。ここで、第2の所定値を第1の所定値と同程度の値にしてしまうと、有人運転から無人運転に切り替わった後、運転者2の疲労が少し回復しただけで、すぐに、無人運転から有人運転に切り替わることになるため、第1の所定値よりも充分に小さな値、例えば第1の所定値が前述のように10拍とした場合、例えば、0拍〜5拍程度を第2の所定値とする必要がある。疲労度判定部506は、疲労度算出部505が算出した運転者2の1分間の脈拍数が、第2の閾値以下であるか否かを判定する(ステップSb10)。なお、第2の所定値は、記憶部512に予め記憶させておいてもよいし、疲労度判定部506の内部の記憶領域に予め記憶させるようにしてもよい。
疲労度判定部506が、疲労度算出部505が算出した運転者2の1分間の脈拍数が、第2の閾値以下でないと判定した場合(ステップSb10:No)、ステップSb1からの処理が繰り返される。一方、疲労度判定部506が、疲労度算出部505が算出した運転者2の1分間の脈拍数が、第2の閾値以下であると判定した場合(ステップSb10:Yes)、当該判定結果を受けて運転切替スイッチ部504は、自動運転制御部503に対して無人運転の停止を要求する無人運転停止指示情報を出力する(ステップSb11)。運転切替スイッチ部504は、自動運転制御部503が無人運転停止通知を出力しているか否かに基づいて、無人運転が終了したか否かを判定する(ステップSb12)。
自動運転制御部503が無人運転停止通知を出力しておらず、無人運転が終了していないと判定した場合(ステップSb12:No)、運転切替スイッチ部504は、ディスプレイ114に、現在の作業が完了すると、無人運転から有人運転に切り替えることを知らせるメッセージを表示して、ステップSb12の処理を繰り返す(ステップSb13)。一方、無人運転が終了していると判定した場合(ステップSb12:Yes)、運転切替スイッチ部504は、記憶部512の運転状態情報512Bを有人運転状態に書き換える(ステップSb14)。運転状態情報512Bに記憶される情報の書き換えにより、ディスプレイ114に表示される運転状態も有人運転状態に変更される。また、運転切替スイッチ部504は、運転者2のリフトレバー106、チルトレバー107、リーチレバー108の操作による荷役制御部509の制御を解除し、運転者2のアクセルレバー109、ブレーキペダル110、ステアリングハンドル111の操作による走行制御部508の制御を解除して、運転状態を有人運転状態とし、ステップSb1の処理に戻る(ステップSb15)。
(無人運転の処理)
図7は、ステップSb9において無人運転が開始された際の処理を示すフローチャートである。運転切替スイッチ部504は、自動運転制御部503を起動して、自動運転の処理を開始させる(ステップSc1)。運転切替スイッチ部504は、運転者2のリフトレバー106、チルトレバー107、リーチレバー108の操作による荷役制御部509の制御を停止し、荷役制御部509が、自動運転制御部503からの制御指示情報によって動作するように切り替える(ステップSc2)。運転切替スイッチ部504は、運転者2のアクセルレバー109、ブレーキペダル110、ステアリングハンドル111の操作による走行制御部508の制御を停止し、走行制御部508が、自動運転制御部503からの制御指示情報によって動作するように切り替える(ステップSc3)。
自動運転制御部503は、運転切替スイッチ部504によって起動されると、運転切替スイッチ部504から無人運転停止指示情報を受けているか否かを判定する(ステップSc4)。運転切替スイッチ部504から無人運転停止指示情報を受けていないと判定した場合(ステップSc4:No)、自動運転制御部503は、送受信部501を通じて管理装置300の作業計画情報選択部302に作業特定情報を要求することを示す情報を送信する(ステップSc5)。
作業計画情報選択部302は、作業計画情報記憶部301の作業計画情報テーブル310の中から「完了状態」の項目が「未完了」の作業計画情報を読み出す。作業計画情報選択部302は、読みだした作業計画情報から荷置き位置を示す識別番号と、移送先位置を示す識別番号とを含む作業特定情報を選択して送受信部304を通じて自動運転制御部503に送信する。例えば、図4の例では、荷物IDが「002」のレコードの「完了状態」が「未完了」であるため、荷置き位置ID「204」と、移送先位置ID「340」を読み出して送信する。
自動運転制御部503は、送受信部501を通じて、作業特定情報を受信する(ステップSc6)。自動運転制御部503は、受信した作業特定情報に基づいて、走行制御部508を動作させて、作業特定情報に示される荷置き位置にフォークリフト100を進ませて、荷役制御部509を動作させて、荷物を持ち上げ、作業特定情報に示される移送先の位置まで当該荷物を運んで荷下しを行う(ステップSc7)。自動運転制御部503は、ステップSc4からの処理を繰り返す。
ステップSc4において、運転切替スイッチ部504から無人運転停止指示情報を受けていると判定した場合(ステップSc4:Yes)、自動運転制御部503は、無人運転停止通知を運転切替スイッチ部504に出力して処理を終了する(ステップSc8)。このとき、運転時間判定部507は、現在時刻からの経過時間、すなわち運転者2による継続運転時間の計測を開始する。
なお、図5、図6、図7は、それぞれ車両制御装置105が備える各機能部が並列に行う処理である。図7は、前述の通り、図6におけるステップSb8の処理を契機に開始される処理となっており、図7の処理が開始されても、生体情報検出装置200が逐次出力する生体情報を車両制御装置105で受信して、ステップSb1からの処理が繰り返し行われる。
上記の実施形態の構成により、車両制御装置105の疲労度算出部505が、運転者2の疲労度を算出し、算出した疲労度に基づいて疲労度判定部506が、運転者2が疲労しているか否かを判定し、運転時間判定部507が運転者2の継続運転時間が最低運転時間512Dに達しているか否かを判定する。疲労度判定部506が運転者2が疲労していると判定し、かつ運転時間判定部507が継続運転時間が最低運転時間512Dに達していると判定した場合、運転切替スイッチ部504が、有人運転から無人運転に切り替える。また、疲労度判定部506が、運転者2が疲労から回復したと判定した場合、運転切替スイッチ部504が、無人運転から有人運転に切り替える。これにより、運転者が自ら疲労に気が付かない場合であっても、疲労の度合いに応じて無人運転と有人運転とを切り替えることが可能となる。さらに、これにより、フォークリフト100を運転する運転者2が複数存在する場合に、各運転者2の疲労の蓄積に差があるとしても、各運転者2の有人運転の時間の差、および休憩回数の差を小さくすることができる。
また、作業状況管理部502が、位置検出部511が出力する位置を示す識別番号により、リフトアップして荷物を持ち上げた位置と、リフトダウンして荷物を降ろした位置を取得して、記憶部512の作業状況テーブル512Cに書き込んでいく。これにより、車両制御装置105において、作業状況テーブル512Cの「完了状態」の項目を参照することで、作業状況を検出することができるため、運転切替スイッチ部504は、現在の作業が完了してから、有人運転から無人運転への切り替えを行うことが可能となる。また、無人運転から有人運転に切り替える場合も、運転切替スイッチ部504が、自動運転制御部503に無人運転停止指示情報を出力することで、無人運転において行われている作業が完了するまで、切り替えを待機して、作業が完了してから無人運転から有人運転への切り替えを行うことが可能となる。
また、作業状況管理部502が、リフトアップした位置を示す情報と、リフトダウンした位置を示す情報を含む作業特定情報を、管理装置300に送信して、管理装置300の作業済情報書込部303が、当該作業特定情報を受信する。作業済情報書込部303は、受信した作業特定情報に対応する作業計画情報を作業計画情報記憶部301の作業計画情報テーブル310から検出し、検出した作業計画情報の「完了状態」の項目を「未完了」から「完了」に書き換える。これにより、有人運転から無人運転に切り替わり、自動運転制御部503が、無人運転の場合に行う作業を示す作業特定情報の要求をした場合、作業計画情報選択部302は、作業計画情報の中から「完了状態」の項目が「未完了」のレコードを選択し、当該レコードの作業特定情報を読み出して自動運転制御部503に送信する。これにより、フォークリフト100において、無人運転の状態でも、荷物を移送する処理を継続して行うことが可能となる。
なお、上記の実施形態では、運転切替スイッチ部504が有人運転から無人運転に切り替えた場合、作業の完了を待って切り替えを行っているため、フォークリフト100が停止している状態で運転状態の切り替えが行われる構成となっているが、本発明の実施の形態は当該構成に限られない。例えば、図6のステップSb7において、運転切替スイッチ部504が、ディスプレイ114に作業が完了すると有人運転から無人運転に切り替えることを知らせる情報を表示するとともに、走行制御部508と荷役制御部509に速度を低下させる制御指示情報を出力するようにしてもよい。これにより、例えば、走行制御部508が走行速度を、無人運転状態において予め定められている走行速度になるまで段階的に減少させることができ、また、荷役制御部509が、無人運転状態において予め定められているフォーク104の昇降速度になるまで段階的に減少させることができる。これにより、仮に、作業が完了してから、自動運転制御部503が起動して無人運転が開始されるまでの間に、運転者2が、フォークリフト100を走行させたり、フォーク104を昇降させたりしていたとしても、緩やかな速度変化によって有人運転から無人運転に切り替えることが可能となる。
なお、上記の実施形態では、運転切替スイッチ部504が有人運転から無人運転に切り替えた場合、作業の完了を待って切り替えを行っているが、本発明の実施の形態は当該構成に限られない。作業の完了を待たずに即座に無人運転の切り替えを行ってもよく、その場合、車両制御装置105の自動運転制御部503が、現在の位置を検出するとともに、記憶部512の作業状況テーブル512Cを参照して、「完了状態」が「作業中」となっている情報がある場合、当該作業について、管理装置300から受信した最新の作業特定情報を参照して作業を継続するようにしてもよい。なお、この場合、作業が間違わずに継続されるために、最新の作業特定情報における荷置き位置IDの位置を示す識別番号と、作業状況テーブル512Cのリフトアップ位置の位置を示す識別番号とが一致していることも判定しておく必要がある。
また、上記の実施形態では、図7のステップSc4〜Sc7処理により、無人運転での作業が完了するまで、有人運転に切り替わらないようにしているが、本発明の実施の形態は当該構成に限られない。運転切替スイッチ部504が、運転者2の操作によって手動で切り替えられるように構成されていれば、図6のステップSb13において、作業が完了すると無人運転から有人運転に切り替えることを知らせるメッセージがでた際に、運転切替スイッチ部504を手動で運転者2が切り替えて続きの作業を行うようにしてもよい。
また、上記の実施形態によれば、運転時間判定部507は、疲労度判定部506が運転者2が疲労していると判定した場合に、運転者2の継続運転時間が最低運転時間512Dに達しているか否かを判定するが、本発明の実施の形態は当該構成に限られない。
疲労度判定部506は、運転時間判定部507が運転者2の継続運転時間が最低運転時間512Dに達したと判定した場合に、運転者2が疲労しているか否かを判定してもよい。
また、上記の実施形態では、荷役車両システム1において、管理装置300を備える構成としているが、本発明の構成は、当該実施の形態に限られない。荷役車両システム1は、生体情報検出装置200と、フォークリフト100と、位置マーク400を備え、管理装置300を備えない構成としてもよい。この場合、フォークリフト100の車両制御装置105ごとの作業計画情報を記憶した作業計画情報テーブル310を記憶部512に記憶させ、車両制御装置105が、作業済情報書込部303、作業計画情報選択部302を備えるようにする。これにより、管理装置300がなくても、疲労度に基づいて有人運転から無人運転に切り替えて、記憶部512に記憶されている作業計画情報に基づいて無人運転において作業を継続することができる。なお、管理装置300がない場合、生体情報検出装置200と、車両制御装置105の通信は、Bluetooth(登録商標)のような近距離通信手段を適用するようにしてもよい。
また、上記の実施形態では、フォークリフト100のカメラ113が、位置マーク400を撮影し、撮影によって得られた画像を位置検出部511が解析して、位置を示す情報を出力するようにしているが、本発明の構成は、当該実施の形態に限られない。位置マーク400や、カメラ113を備えず、GPS(Global Positioning System)の装置を車両制御装置105に備えておき、当該GPSから位置を示す情報を位置検出部511が取得するようにしてもよい。また、フォークリフト100がカメラ113に代えて磁気センサを備え、走行経路上には誘導ラインおよび位置マーク400に代えて発磁体が設けられてもよい。この場合、位置検出部511は、磁気センサが発磁体から検出した信号を解析して、位置を示す情報を出力する。
また、上記の実施形態では、車両制御装置105の記憶部512が作業状況テーブル512Cを記憶しており、作業状況管理部502が、作業の進行に応じて、「完了状態」の項目を「作業中」から「完了」に書き換える。運転切替スイッチ部504は、この「完了状態」の項目を参照して、ステップSb6において、現在の作業が完了しているか否かを判定しているが、本発明の構成は当該実施の形態に限られない。
例えば、荷重センサ112が出力する重量値に基づいて荷物が積載されているか否かを出力する積載検出部510の出力情報を作業状況管理部502が取得して、荷物を積載している場合、「作業中」を示している作業状況を示す情報として出力し、荷物が積載されていない場合、「完了」を示している作業状況を示す情報として出力し、運転切替スイッチ部504が、当該作業状況を示す情報に基づいて、有人運転から無人運転に切り替えるようにしてもよい。
また、荷役制御部509が出力するリフト制御の種類であるリフトアップとリフトダウンを示す情報を作業状況管理部502が取得して作業状況を示す情報とし、リフトアップした場合、「作業中」を示しているものとして出力し、リフトダウンした場合、「完了」を示しているものとして出力し、運転切替スイッチ部504が、当該作業状況を示す情報に基づいて、有人運転から無人運転に切り替えるようにしてもよい。
また、図5の処理において、リフトアップしながら走行する場合や、リフトダウンしながら走行するような場合が想定される場合、ステップSa2の走行状態の判定をしない構成であってもよい。
また、上記の実施形態では、生体情報検出装置200が検出する生体情報として、15秒間の脈拍数としているが、本発明の構成は、当該実施の形態に限られない。例えば、脈拍数に代えて心拍数、発汗量、血圧、呼吸数、酸素飽和度、体温などの生体情報を検出してもよい。また例えば、疲労度算出部505または生体情報検出装置200は、1種類または複数種類の生体情報を所定の関数に代入することで疲労度を算出するようにしてもよい。
また、上記の実施形態では、生体情報検出装置200が検出する運転者2の15秒間の脈拍数を4倍し、予め計測してある平常時の1分間の脈拍数を参照して疲労しているか否かを判定しているが、本発明の構成は、当該実施の形態に限られない。
例えば、生体情報検出装置200が検出した15秒間の脈拍数の標準偏差を繰り返し算出し、標準偏差値が、予め定められる値を超える場合に、疲労していると判定するようにしてもよい。
また、平常時における15秒間の脈拍数を計測しておき、生体情報検出装置200が検出した15秒間の脈拍数から平常時の脈拍数を減算し、その差を繰り返し加算していき、加算した値が、予め定められる値を超える場合に疲労していると判定するようにしてもよい。
また、平常時における15秒間の脈拍数に、予め定められる値を加えた値を基準値とし、15秒ごとに計測される脈拍数が、当該基準値を連続して予め定められる回数超える場合に、疲労していると判定するようにしてもよい。
また、上記の実施形態では、生体情報に基づく疲労度の算出を車両制御装置105の疲労度算出部505が算出しているが、本発明の構成は、当該実施の形態に限られず、生体情報検出装置200が、疲労度算出部505を備え、生体情報検出装置200において疲労度を算出するようにしてもよい。また、疲労度算出部505を備えず、生体情報検出装置200が検出する生体情報をそのまま疲労度を示す情報として、運転者2が疲労しているか否かを判定するようにしてもよい。
また、上記の実施形態では、図6のステップSb4とステップSb10において用いられる、第1の所定値と第2の所定値とを異なる値とし、第1の閾値と第2の閾値が異なる値となるようにしているが、本発明の構成は、当該実施の形態に限られず、第1の所定値と第2の所定値が同じ値であってもよい。
また、上記の実施形態では、図6のステップSb4における運転者2が疲労しているか否かの判定に用いられる第1の閾値と、ステップSb10における運転者2が疲労から回復しているか否かの判定に用いられる第2の閾値として、第1の閾値を第2の閾値よりも大きな値とすることで、運転者2が疲労から充分回復してから無人運転から有人運転に切り替える構成としているが、本発明の構成は、当該実施の形態に限られない。例えば、疲労度として、疲労の高まりとともに値が小さくなる生体情報を適用するような場合、第2の閾値を第1の閾値よりも大きな値として定めておく必要がある。
また、上記の実施形態において、図6のステップSb15において、例えば、運転切替スイッチ部504が、無人運転から有人運転に切り替わった際に、無人運転状態で行われた作業を作業状況テーブル512Cに記憶されている情報に基づいてディスプレイ114に出力するようにしてもよい。
ディスプレイ114に無人運転状態で行われた作業を表示する構成は、例えば、以下のような構成で実現することができる。記憶部512の作業状況テーブル512Cにおいて、「運転状態」の項目を更に設けて、作業状況管理部502が、有人運転状態で行われた作業であるか、または、無人運転状態で行われた作業であるかを示す情報を、レコードを生成する際、または、「完了状態」の項目に「完了」を書き込む際に、運転状態情報512Bを参照して書き込むようにしておく。そして、運転切替スイッチ部504は、無人運転から有人運転に切り替えた場合に、「運転状態」の項目が無人運転状態を示しているレコードを作業状況テーブル512Cから選択してディスプレイ114に出力する。
このような構成にすることにより、無人運転状態の間、運転者2が運転席117に乗車していない場合、有人運転に変わった際に、無人運転状態の間に行われた作業を確認することができる。
また、上記の実施形態において、図7の無人運転の処理において、ステップSc5において自動運転制御部503が、作業特定情報を管理装置300に要求して、作業特定情報を管理装置300から受信するようにしているが、本発明の構成は、当該実施の形態に限られない。例えば、無人運転状態であるか有人運転状態であるかに関わらず、管理装置300の作業計画情報選択部302が、作業済情報書込部303が「完了状態」の項目に「完了」を書き込むごとに、「完了状態」の項目が「未完了」となっている作業計画情報を読み出し、読みだした作業計画情報に含まれる作業特定情報を車両制御装置105に送信する。車両制御装置105では、当該作業特定情報を受信すると、ディスプレイ114に表示して、有人運転状態の場合、運転者2がディスプレイ114に表示される作業特定情報を参照して作業を行う。このように、管理装置300から継続して作業特定情報が送信される構成にした場合、無人運転状態において、ステップSc5のような作業特定情報の要求の処理を行わなくてもよい。
また、上記の実施形態では、図6のステップSb4の判定において、第1の閾値以上であるか否かに基づいて判定を行っており、ステップSb10の判定において、第2の閾値以下であるか否かに基づいて判定を行っているが、本発明の構成は、当該実施の形態に限られない。これらの判定手法は、一例であり、例えば、ステップSb4において、第1の閾値を超えているか否かに基づいて判定を行ってもよいし、ステップSb10の判定において、第2の閾値未満であるか否かに基づいて判定を行ってもよい。
上述した実施形態における車両制御装置105をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。