(57)【要約】【課題】パレットの奥側から突出したフォーク先端部が他の対象物に接触することを防止する。【解決手段】差込制御装置（１）は、荷役対象物を載置するパレットの画像と、該パレットの種類または奥行きとの対応関係を教師データとして機械学習させた学習済みモデルを用いて、対象パレットを撮影した画像から当該対象パレットの奥行きを特定する奥行き特定部（１０４）と、奥行き特定部（１０４）が特定した上記奥行きに基づき、上記対象パレットに対して荷役作業を行うフォークリフトのフォークの先端部を、上記対象パレットから所定の長さ以上突出することなく差し込むための所定の処理を行う差込制御部（１０５）と、を備えている。【選択図】図１
2020045219.tif 000002
【特許請求の範囲】
【請求項１】
荷役対象物を載置するパレットの画像と、該パレットの種類または奥行きとの対応関係を教師データとして機械学習させた学習済みモデルを用いて、対象パレットを撮影した画像から当該対象パレットの奥行きを特定する奥行き特定部と、
上記奥行き特定部が特定した上記奥行きに基づき、上記対象パレットに対して荷役作業を行うフォークリフトのフォークの先端部を、上記対象パレットから所定の長さ以上突出することなく差し込むための所定の処理を行う差込制御部と、を備えていることを特徴とする差込制御装置。
【請求項２】
上記所定の処理は、上記フォークリフトに設定された基準位置から上記対象パレットまでの水平方向距離と、上記奥行き特定部が特定した奥行きと、上記所定の長さとの和から、上記基準位置から上記フォークの先端までの水平方向距離を引いた値を超えないように、上記フォークのリーチ量を制御する処理であることを特徴とする請求項１に記載の差込制御装置。
【請求項３】
上記所定の処理は、上記フォークリフトに設定された基準位置から上記対象パレットまでの水平方向距離と、上記奥行き特定部が特定した奥行きと、上記所定の長さとの和から、上記基準位置から上記フォークの先端までの水平方向距離を引いた値を超えないように、上記フォークリフトが上記対象パレットに向かって進む距離を制御する処理であることを特徴とする請求項１に記載の差込制御装置。
【請求項４】
上記所定の処理は、上記フォークの上記対象パレットへの差込量が、上記奥行き特定部が特定した奥行きと上記所定の長さとの和を超えないように、上記フォークリフトによる上記フォークの差し込み動作を制御する処理であることを特徴とする請求項１に記載の差込制御装置。
【請求項５】
上記奥行き特定部が特定した奥行きに基づき、上記対象パレットに対する荷役作業にて二段取りの要否を判定する二段取り要否判定部を備えていることを特徴とする請求項１から４の何れか１項に記載の差込制御装置。
【請求項６】
差込制御装置による差込制御方法であって、
荷役対象物を載置するパレットの画像と、該パレットの種類または奥行きとの対応関係を教師データとして機械学習させた学習済みモデルを用いて、対象パレットを撮影した画像から当該対象パレットの奥行きを特定する奥行き特定ステップと、
上記奥行き特定ステップにおいて特定された上記奥行きに基づき、上記対象パレットに対して荷役作業を行うフォークリフトのフォークの先端部を、上記対象パレットから所定の長さ以上突出することなく差し込むための所定の処理を行う差込制御ステップと、を含んでいることを特徴とする差込制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パレットに対してのフォークリフトのフォークの差し込みを制御する差込制御装置等に関する。
【背景技術】
【０００２】
フォークリフトを用いて荷役作業を行う場合、まず、該フォークリフトの運転者（作業者）は、荷物を積載したパレットのフォークポケットにフォークを挿入する（フォーク差込操作）。そして、パレットごと荷物を持ち上げて、その荷物を運搬するという一連の操作を行う。これら一連の操作のうち、フォーク差込操作の難易度が特に高い。このため、運転者によっては、差し込んだフォークの先端がパレットから突出し、突出した先端部が他の対象物（例：他の荷物または壁）に接触する可能性がある。
【０００３】
そこで、フォーク差込操作を容易にするための技術が要求されている。下記特許文献１には、そのような技術の一例が開示されている。具体的には、特許文献１には、フォークの水平部の下面に、フォーク差し込み位置確認用の凹部を設けた構成が開示されている。この構成によれば、高所の荷物を運搬する場合に、フォークポケットへのフォークの差し込み深さを、運転者が視認することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−３９６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
但し、特許文献１の技術では、上記凹部をフォークの水平部の下面に設けているため、高所の荷物の運搬時に限って、差し込み深さを運転者に視認させることができるに過ぎない。従って、低所の荷物の運搬時には、依然としてフォークの先端が他の対象物に接触するおそれがある。
【０００６】
加えて、特許文献１の技術では、上記凹部とフォークポケットの位置関係から、フォークがフォークポケット内にどの程度まで差し込まれているかを、運転者に認識させることができるに過ぎない。従って、運転者がパレットの奥行きがどの程度の長さであるかを認識していなければ、適切な差込量で荷役作業を行うことは難しい。パレットの奥行きは、該パレットの種類によって相違しうるためである。例えば、あるパレットに対してフォークを凹部の位置までパレットに差し込んでもフォークの先端部が突出しないが、他のパレットに対してフォークを凹部の位置まで差し込んだ場合には該先端部が突出することもあり得る。
【０００７】
本発明の一態様は、上述の問題点に鑑みてなされたものであり、フォークを差し込む対象のパレットの奥側から突出したフォークの先端部が他の対象物に接触することを防止することができる差込制御装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様に係る差込制御装置は、荷役対象物を載置するパレットの画像と、該パレットの種類または奥行きとの対応関係を教師データとして機械学習させた学習済みモデルを用いて、対象パレットを撮影した画像から当該対象パレットの奥行きを特定する奥行き特定部と、上記奥行き特定部が特定した上記奥行きに基づき、上記対象パレットに対して荷役作業を行うフォークリフトのフォークの先端部を、上記対象パレットから所定の長さ以上突出することなく差し込むための所定の処理を行う差込制御部と、を備えている。
【０００９】
また、上記の課題を解決するために、本発明の一態様に係る差込制御方法は、差込制御装置による差込制御方法であって、荷役対象物を載置するパレットの画像と、該パレットの種類または奥行きとの対応関係を教師データとして機械学習させた学習済みモデルを用いて、対象パレットを撮影した画像から当該対象パレットの奥行きを特定する奥行き特定ステップと、上記奥行き特定ステップにおいて特定された上記奥行きに基づき、上記対象パレットに対して荷役作業を行うフォークリフトのフォークの先端部を、上記対象パレットから所定の長さ以上突出することなく差し込むための所定の処理を行う差込制御ステップと、を含んでいる。
【発明の効果】
【００１０】
本発明の一態様によれば、対象パレットの奥側から突出したフォークの先端部が他の対象物に接触することを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態１に係る差込制御装置の要部構成の一例を示すブロック図である。
【図２】上記差込制御装置の処理の概要を説明するための図である。
【図３】上記差込制御装置が実行する処理の一例を示すフローチャートである。
【図４】本発明の実施形態２に係る差込制御装置の処理の概要を説明するための図である。
【図５】上記差込制御装置の要部構成の一例を示すブロック図である。
【図６】本発明の実施形態３に係る差込制御装置の処理の概要を説明するための図である。
【図７】上記差込制御装置が実行する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
〔実施形態１〕
（概要）
実施形態１の差込制御装置１による処理の概要を図２に基づいて説明する。図２は、差込制御装置１による処理の概要を説明するための図である。なお、図２において、紙面の縦方向は現実の高さ方向（上下方向、鉛直方向）を、紙面の横方向は現実の水平方向をそれぞれ表す。特に、図２の例では、紙面の横方向はパレット８００の奥行方向でもある。これらの点については、図４、６においても同様である。また、以下の説明において、単に「長さ」と記載した場合、「水平方向の長さ（奥行方向の長さ）」を意味する。
【００１３】
図２の例では、棚上に２つのパレット８００（パレット８００ａと８００ｂ）が載置されており、各パレット８００にはそれぞれ荷物（荷役対象物）９００が載置されている。本明細書では、図２のパレット８００ａのように、フォークリフト６による荷役作業の対象とされているパレットを対象パレットと称する。なお、パレット８００ａと８００ｂを区別する必要のないときには単に「パレット８００」と記載する。
【００１４】
パレット８００ａの側面のうち、フォークリフト６の前面と対向する面には、フォークリフト６が備える一対のフォーク６１に対応するように、一対のフォークポケットＦＰが開口している。フォークポケットＦＰは、水平方向にパレット８００ａを貫通しているので、フォークポケットＦＰの長さは、パレット８００ａの奥行き（図２の（ａ）の長さＸ）と等しい。
【００１５】
フォークリフト６は、荷役作業を行う作業用車両であり、前面に一対のフォーク６１を備えている。図２では、フォーク６１の長さ、より詳細にはフォーク６１の基部（以下、フォーク基部と呼ぶ）から先端部（以下、フォーク先端部と呼ぶ）までの距離を「Ｙ」としている。
【００１６】
図示のように、実施形態１では、フォークリフト６がリーチ車（リーチ式）である例を説明する。但し、本発明の一態様に係るフォークリフトは、リーチ車に限定されず、カウンタ車（カウンタ式）であってもよい。カウンタ車のフォークの差込制御を行う例については実施形態３で説明する。
【００１７】
また、フォークリフト６は、フォーク６１を支持するマスト６２を備えている。フォークリフト６は、リーチ車であるので、マスト６２およびこれに支持されるフォーク６１を水平方向前方に移動させることが可能である。以下では、フォークリフト６がマスト６２およびフォーク６１を水平方向前方に移動させる動作を「リーチ動作」と呼び、リーチ動作によりマスト６２およびフォーク６１が水平方向前方に移動した距離をリーチ量と呼ぶ。
【００１８】
なお、リーチ量は、図２の（ａ）に示すように、マスト６２およびフォーク６１が前出されていないリーチイン状態のフォークリフト６におけるマスト６２およびフォーク６１の位置を基準とした距離である。つまり、リーチイン状態ではリーチ量は０である。これに対し、図２の（ｂ）には、マスト６２およびフォーク６１が前出されたリーチアウト状態のフォークリフト６が示されている。図２の（ｂ）ではリーチ量は「ａ１」である。
【００１９】
差込制御装置１は、フォーク先端部をパレット８００ａから所定の長さ以上突出することなく差し込むための処理を行う装置である。この処理を行うにあたり、差込制御装置１は、パレット８００ａを撮影した画像から、パレット８００ａの奥行きを特定する。
【００２０】
撮影装置５は、上記画像、すなわちパレット８００ａが写った画像（図２の（ａ）の「ＩＭＧ１」）を撮影する装置である。図２の例では、撮影装置５は、２つのフォーク基部の中間の位置に取り付けられている。つまり、撮影装置５はフォーク６１と同じ高さに取り付けられている。また、撮影装置５は、撮影方向が水平方向となるように取り付けられている。この例のようにフォーク６１の昇降に合わせて昇降する位置に撮影装置５を設置することにより、パレット８００ａを正面あるいは正面に近い方向から撮影することができるので好ましい。
【００２１】
なお、撮影装置５はパレット８００ａが撮影できる位置に取り付ければよく、図示の例に限られない。例えば、運転者が荷役作業を行おうとする場合には、該運転者は、パレット８００ａを注視すると考えられる。そこで、運転者の頭部に装着可能なウェアラブルデバイス（例：眼鏡型のウェアラブルデバイス）に、撮影装置５を設けてもよい。
【００２２】
図２の（ａ）に示されるように、差込制御装置１は、撮影装置５からＩＭＧ１を取得する。そして、差込制御装置１は、ＩＭＧ１からパレット８００ａの奥行き「Ｘ」を特定する。差込制御装置１による奥行きの特定には、後述する学習済みモデル（学習済みモデルＡまたはＢ）が使用される。
【００２３】
そして、図２の（ｂ）に示されるように、差込制御装置１は、特定した奥行きに基づき、フォーク先端部を、パレット８００ａ（より具体的には、フォークポケットＦＰ）から所定の長さ以上突出することなく差し込むための処理（差込制御処理）を行う。
【００２４】
差込制御装置１によれば、学習済みモデルを用いることにより、奥行き「Ｘ」を高精度に特定することができる。その上で、差込制御処理により、フォーク先端部がパレット８００ａから所定の長さ以上突出しないようにする。これにより、パレット８００ａから突出したフォーク先端部が、パレット８００ｂ等の他の対象物に接触することを防止することができる。
【００２５】
なお、図２では、差込制御装置１が１台のフォークリフト６を制御する例を示しているが、差込制御装置１は複数のフォークリフト６を制御することもできる。この場合、差込制御装置１は、各フォークリフト６の対象パレットを撮影したＩＭＧ１を取得すればよい。また、図２では、差込制御装置１をフォークリフト６の外部に図示しているが、差込制御装置１はフォークリフト６に搭載または内蔵してもよい。
【００２６】
（差込制御装置の要部構成）
差込制御装置１の要部構成について図１に基づいて説明する。図１は、差込制御装置１の要部構成の一例を示すブロック図である。図示のように、差込制御装置１は、差込制御装置１の各部を統括して制御する制御部１０と、差込制御装置１が使用する各種データを記憶する記憶部２０と、差込制御装置１に対する入力操作を受け付ける入力部３０とを備えている。また、制御部１０には、撮影制御部１０１、入力データ生成部１０２、距離特定部１０３、奥行き特定部１０４、および差込制御部１０５が含まれている。
【００２７】
撮影制御部１０１は、撮影装置５を制御して上述のＩＭＧ１の撮影を行わせる。より詳細には、撮影制御部１０１は、フォーク６１の高さをフォークポケットＦＰの高さに合わせる作業（以下、高さ位置合わせ作業と呼ぶ）が開始されたことを検出し、この検出を契機として撮影装置５にＩＭＧ１の撮影を行わせる。本実施形態では、フォークリフト６の運転者がフォーク６１の昇降操作を行ったことが検出されたときに、高さ位置合わせ作業が開始されたとみなして撮影を行わせる例を説明する。フォーク６１の昇降操作が行われたことは、例えばフォークリフト６と通信する等により検出することができる。
【００２８】
なお、図２の例のように、フォーク６１の昇降に伴って撮影装置５の位置が変わる場合には、撮影制御部１０１は、昇降開始から終了までの期間において、撮影装置５に複数回撮影を行わせてもよい。この場合、差込制御装置１は、時系列で撮影された複数のＩＭＧ１からパレット８００ａの奥行きの特定を試みることになる。また、撮影制御部１０１は、複数回撮影を行う代わりに、撮影装置５に昇降開始から終了までの動画像を撮影させて、その動画像から抽出したフレーム画像をＩＭＧ１としてもよい。
【００２９】
無論、撮影の契機は上記の例に限定されず、例えば、撮影制御部１０１は、高さ位置合わせ作業の直後に行われることの多いフォーク６１のティルト操作が検出されたときに撮影を行わせてもよい。また、例えば、撮影制御部１０１は、フォークリフト６が低速で前進および後退を行いながら、進行方向の微調整を行っている等の荷役作業の開始時に特有の態様でフォークリフト６が運転されていることを検出したときに撮影を行わせてもよい。
【００３０】
以上の各例のように、適切なタイミングで撮影を行わせることにより、撮影装置５の撮影回数や撮影時間を必要最小限に抑えることができる。そして、これにより、撮影されたＩＭＧ１を用いた差込制御装置１の処理回数や処理時間も必要最小限に抑えることができるので、差込制御装置１の負荷を抑えた効率的な処理が実現される。
【００３１】
（入力データ生成部と入力データについて）
入力データ生成部１０２は、奥行き特定部１０４が使用する学習済みモデルに入力する入力データを生成する。より詳細には、入力データ生成部１０２は、撮影装置５からＩＭＧ１を取得して、ＩＭＧ１から入力データを生成する。本実施形態では、撮影装置５から取得したＩＭＧ１をそのまま入力データとする例を説明する。
【００３２】
ＩＭＧ１は、後述する機械学習用の教師データに用いた画像と同様の撮影条件で撮影した画像であることが好ましい。上記撮影条件には、例えば、撮影装置５と、被写体（特にパレット８００ａ）との位置関係、被写体の背景、および周囲の明るさ等が含まれる。撮影条件を揃えるため、例えば、教師データに用いた画像が、フォーク基部に固定した撮影装置で撮影された画像であれば、ＩＭＧ１も図２の例のようにフォーク基部に固定した撮影装置５で撮影されたものとすることが好ましい。
【００３３】
なお、入力データはパレット８００ａの特徴が表れたデータであればよく、必ずしもＩＭＧ１をそのまま入力データとする必要はない。例えば、入力データ生成部１０２は、ＩＭＧ１に対して所定の処理を施した画像を、入力データとしてもよい。上記所定の処理は、パレット８００ａの特徴を失わせることなく、該特徴と関係のない情報を減らすことができるものであればよい。例えば、ＩＭＧ１がカラー画像である場合、入力データ生成部１０２は、該ＩＭＧ１をグレースケール化したデータを入力データとしてもよい。あるいは、ＩＭＧ１が動画像である場合、入力データ生成部１０２は、該ＩＭＧ１を構成する一部のフレームを抽出し、該一部のフレームを入力データとしてもよい。
【００３４】
但し、入力データ生成部１０２は、入力データとして、教師データと同じ形式のデータを生成する必要がある。例えば、教師データがグレースケールの静止画像であれば、入力データ生成部１０２も入力データとしてグレースケールの静止画像を生成する必要がある。
【００３５】
（学習済みモデルＡと奥行き特定部について）
奥行き特定部１０４は、機械学習により生成された学習済みモデルＡを用いて、ＩＭＧ１からパレット８００ａの種類を特定する。つまり、学習済みモデルＡは、ＩＭＧ１に写るパレット８００ａの種類を特定するためのモデルである。そして、奥行き特定部１０４は、例えば記憶部２０等に予め記憶されている、パレットの種類毎の奥行きを示すデータ（例えば種類と奥行きとを対応付けたテーブル）に基づいて、パレット８００ａの奥行き（図２の「Ｘ」）を特定する。
【００３６】
学習済みモデルＡの生成には、例えば、パレット８００が写った画像から上記の入力データと同様にして生成した入力データと、該画像に写るパレット８００の種類を示す正解データとを対応付けた教師データを用いることができる。機械学習においては、フォークリフト６が荷役作業の対象とする可能性がある、できるだけ多くの種類のパレット８００について生成された教師データを用いることが好ましい。なお、学習済みモデルＡのベースとなるアルゴリズムは特に限定されないが、教師データが静止画像である場合、学習済みモデルＡには、高精度な種類特定が可能になるＣＮＮ（Convolutional Neural Network）を用いることが好ましい。
【００３７】
以上のようにして生成された学習済みモデルＡに対し、入力データ生成部１０２が生成した入力データを入力すると、学習済みモデルＡは、ＩＭＧ１に写るパレット８００ａが、学習済みの各種類に該当する確率をそれぞれ示す出力データを出力する。奥行き特定部１０４は、この出力データに基づいて、パレット８００ａの種類を特定する。例えば、学習済みモデルＡが、ｐ１、ｐ２、およびｐ３の３種類のパレット８００について学習したものであるとする。この場合、出力データは、ＩＭＧ１に写るパレット８００ａの種類がｐ１である確率、ｐ２である確率、およびｐ３である確率をそれぞれ示すものとなる。この例では、奥行き特定部１０４は、例えばｐ１〜ｐ３のうち最も高い確率の種類を、ＩＭＧ１に写るパレット８００ａの種類として特定してもよい。
【００３８】
（距離特定部と差込制御部について）
距離特定部１０３は、フォークリフト６に設定された基準位置からパレット８００ａまでの水平方向距離を特定する。より詳細には、距離特定部１０３は、リーチイン状態のフォーク基部の位置からパレット８００ａまでの距離（図２の（ａ）の「ｚ１」）を特定する。距離の特定の方法は特に限定されず、例えば距離特定部１０３は、ＩＭＧ１を解析することにより上記距離を特定してもよいし、フォークリフト６に距離センサを搭載して該センサの検出値を取得することにより上記距離を特定してもよい。なお、上記基準位置は、フォークリフト６における任意の位置に設定すればよく、リーチイン状態のフォーク基部の位置に限られない。
【００３９】
差込制御部１０５は、奥行き特定部１０４が特定したパレット８００ａの奥行きに基づいてフォーク先端部をパレット８００ａから所定の長さ（以下、突出許容量と呼ぶ）以上突出することなく差し込むための処理である差込制御処理を行う。これにより、パレット８００ａから突出したフォーク先端部がパレット８００ｂや壁などに接触することを防ぐことができる。これについて、再度図２を参照して説明する。
【００４０】
図２の（ａ）では、フォークリフト６をリーチイン状態でパレット８００ａの正面に停車している。この状態でフォークリフト６にリーチ動作を行わせて、同図の（ｂ）に示すようにフォークリフト６をリーチアウト状態とする。これにより、フォーク６１は、フォークポケットＦＰに差し込まれる。差込制御部１０５は、このリーチ動作におけるリーチ量の上限を以下のようにして決定する。
【００４１】
図２では、フォーク６１の長さを「Ｙ」としているから、図２の（ａ）の状態からリーチ動作を行った場合、フォーク６１の先端は、上述の基準位置から「Ｙ＋リーチ量」だけ水平方向前方の位置となる。よって、図２の（ｂ）のように、フォーク先端部がフォークポケットＦＰの奥側から突出するまでフォーク６１を挿入した状態において、フォーク６１の突出量が上述の突出許容量を超えないようにするためには、リーチ量「ａ１」が下記の数式（１）を満たすようにすればよい。
【００４２】
ａ１≦（ｚ１＋Ｘ＋Ｐｍａｘ）−Ｙ      …（１）
数式（１）において、「ｚ１」は、距離特定部１０３が特定した、上記基準位置からパレット８００ａまでの水平方向距離であり、「Ｘ」は、奥行き特定部１０４が特定したパレット８００ａの奥行きであり、「Ｐｍａｘ」は、突出許容量である。なお、突出許容量は０としてもよい（数式（１）において「Ｐｍａｘ」の項を削除してもよい）が、ある程度の突出が許容できる場合には突出許容量を正の値とすることが好ましい。
【００４３】
差込制御部１０５は、数式（１）の右辺と左辺の値が等しくなるときの「ａ１」の値を、リーチ量の上限として決定する。そして、差込制御部１０５は、この上限を超えないようにフォークリフト６のリーチ動作を制御する。この制御は、リーチ量が上限を超えないようにすることが可能なものであればよい。本実施形態では、差込制御部１０５が、リーチ量が上限に達した後は、リーチ動作を継続するように運転手による操作がなされていたとしても、リーチ動作を行わないようにフォークリフト６を制御する、つまりリーチ量が上限に達したときにリーチ動作を終了させる例を説明する。
【００４４】
リーチ量が上記の上限を超えないようにすることにより、パレット８００ａから突出したフォーク先端部がパレット８００ｂ等に接触することを防ぐことができる。なお、上述のとおり、差込制御部１０５の制御は、リーチ量が上限を超えないようにすることが可能なものであればよく、上述の例に限られない。例えば、差込制御部１０５は、リーチ量が上限に近付くにつれて、リーチ操作を行うための操作レバーから運転者の手にかかる反発力を大きくする制御を行ってもよい。このような制御によっても、リーチ量が上限を超えることを防ぐことができる。
【００４５】
また、差込制御部１０５は、フォークリフト６以外の機器を制御することにより、リーチ量が上限を超えないようにしてもよい。例えば、差込制御部１０５は、音声を出力する音声出力装置を制御して、リーチ量の上限を知らせるメッセージを出力させてもよいし、リーチ量が上限に近付いたときにその旨を知らせるメッセージを出力させてもよい。また、このようなメッセージは、上記のような音声による聴覚的な提示に加えて、あるいは聴覚的な提示の代わりに、表示装置に表示させることによって視覚的に提示してもよい。また、視覚的な提示は、警報ランプの点灯等によるものであってもよい。この他にも、例えばリーチ量が上限に近付いたときに振動体を振動させる等、リーチ量が上限に近付いたことを触覚的に運転者に認識させてもよい。なお、上記の音声出力装置、表示装置、および振動体等の装置は、差込制御装置１が備えていてもよいし、差込制御装置１の外部の装置であってもよい。
【００４６】
（処理の流れ）
差込制御装置１が実行する処理の流れを図３に基づいて説明する。図３は、差込制御装置１が実行する処理（差込制御方法）の一例を示すフローチャートである。
【００４７】
Ｓ１では、撮影制御部１０１は、フォーク６１の高さ位置合わせ作業が開始されたか否かを判定する。ここで高さ位置合わせ作業が開始されたと判定された場合（Ｓ１でＹＥＳ）、Ｓ２に進む。他方、高さ位置合わせ作業が開始されていないと判定された場合（Ｓ１でＮＯ）、Ｓ１に戻り、同様の処理を繰り返す。
【００４８】
Ｓ２では、撮影制御部１０１は、撮影装置５にＩＭＧ１を撮影させる。そして、入力データ生成部１０２は、撮影装置５からＩＭＧ１を取得し、入力データを生成する。実施形態１では、上述の通り、入力データ生成部１０２は、ＩＭＧ１をそのまま入力データとして用いる。
【００４９】
Ｓ３では、奥行き特定部１０４は、Ｓ２で生成された入力データを学習済みモデルＡに入力し、その出力データに基づいてパレット８００ａの種類を特定する。そして、Ｓ４（奥行き特定ステップ）では、奥行き特定部１０４は、Ｓ３で特定した種類に基づいてパレット８００ａの奥行き「Ｘ」を特定する。
【００５０】
Ｓ５では、距離特定部１０３は、リーチイン状態のフォークリフト６におけるフォーク基部の位置からパレット８００ａまでの距離「ｚ１」を特定する。そして、Ｓ６では、差込制御部１０５は、Ｓ４で特定された奥行き「Ｘ」と、Ｓ５で特定された距離「ｚ１」と、所定の突出許容量「Ｐｍａｘ」を上述の数式（１）に代入してリーチ量の上限を決定する。
【００５１】
最後に、Ｓ７（差込制御ステップ）において、差込制御部１０５は、Ｓ６で決定した上限を超えないようにフォークリフト６のリーチ動作を制御する。これにより、図３の処理は終了する。
【００５２】
（実施形態１のまとめ）
以上のように、奥行き特定部１０４は、学習済みモデルＡ（パレットの画像とパレットの種類との対応関係を教師データとして機械学習させた学習済みモデル）を用いて、ＩＭＧ１からパレット８００ａの奥行き「Ｘ」を特定する。そして、差込制御部１０５は、奥行き「Ｘ」に基づき、フォーク先端部を、パレット８００ａから突出許容量「Ｐｍａｘ」以上突出することなく差し込むための差込制御処理を行う。差込制御装置１は、学習済みモデルＡを用いるので、パレット８００ａの種類を高精度に特定して、正確な奥行き「Ｘ」を特定することができる。その上で、差込制御処理により、フォーク先端部の突出長さを突出許容量「Ｐｍａｘ」以下に制限する。このため、フォーク先端部が他の対象物に接触することを防止することができる。
【００５３】
より具体的には、実施形態１では、差込制御部１０５は、フォークリフト６に設定された基準位置からパレット８００ａまでの水平方向距離「ｚ１」と、奥行き「Ｘ」と、突出許容量「Ｐｍａｘ」との和から、上記基準位置からフォーク先端部までの距離（Ｙ）を引いた値を超えないように、リーチ量「ａ１」を制御する。つまり、実施形態１における上記差込制御処理は、上述の数式（１）を充足するリーチ量「ａ１」の上限を設定する処理である。これにより、リーチ動作によってフォーク先端部が他の対象物に接触することを防止できる。
【００５４】
〔学習済みモデルの他の例〕
上述した学習済みモデルＡ（パレット８００ａの種類を特定するためのモデル）の代わりに、別の学習済モデルを用いることも可能である。例えば、パレットの画像とパレットの奥行きとの対応関係を機械学習させた学習済みモデル（以下、学習済みモデルＢと呼ぶ）を用いてもよい。上記機械学習には、奥行きの異なる複数のパレットについて、そのパレットの画像に対し、そのパレットの奥行きを示す正解データを対応付けた教師データを用いることができる。
【００５５】
この場合、奥行き特定部１０４は、入力データ生成部１０２が生成した入力データを学習済みモデルＢに入力することにより、パレット８００ａの奥行き「Ｘ」を直接特定することができる。学習済みモデルＢを用いた場合にも、実施形態１と同様の効果を奏する。
【００５６】
〔実施形態２〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態１にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。実施形態３以降も同様である。
【００５７】
（概要）
図４は、実施形態２の差込制御装置２による処理の概要について説明するための図である。差込制御装置２は、実施形態１の差込制御装置１と同様の機能を備えていると共に、荷役作業において二段取りを行う必要があるか否かを判定する機能を備えている。二段取りとは、荷役作業において、パレットのフォークポケットにフォークを差し込み、パレットをフォークに引っ掛けるようにして手前に引き寄せた後、改めてパレットにフォークを差し込み直して荷役対象物を持ち上げることを指す。二段取りは、荷役対象物が奥まった位置にある等の事情により、フォークをフォークポケットの十分深くまで差し込むことができない場合に行われる。
【００５８】
ここで、図４の例では、棚上のやや奥まった位置（棚のフォークリフト６に面した端部から離れた位置）にパレット８００ａが配置されている。図４では、図２と同様に、リーチ式のフォークリフト６を例示している。このフォークリフトのリーチ量の最大値を「ａｍａｘ」とすると、図４に示すリーチイン状態から、フォーク６１は最大で「ａｍａｘ」だけフォークリフト６の前方に向けて水平移動する。
【００５９】
差込制御装置２は、リーチ量を「ａｍａｘ」としても、パレット８００ａへのフォーク６１の差込量が、パレット８００ａおよび荷物９００を持ち上げるのに十分ではない場合に、二段取りが必要であると判定する。二段取りが必要であると判定した差込制御装置２は、その旨をフォークリフト６の運転者に報知して、二段取りが必要であることを認識させることができる。これにより、二段取りが必要な状況において、無理に１回で荷役作業を行おうとして荷崩れを発生させる等の問題の発生を回避することができる。
【００６０】
なお、上記「差込量」とは、フォークリフト６に面するパレット８００ａの側面からフォーク先端部までの距離（フォーク先端部がフォークポケットＦＰに入った時点から水平方向に移動した距離）を指す。例えば、図２の（ａ）のように、フォーク先端部がフォークポケットＦＰ内に位置している場合、差込量「ｙ１」はフォークポケットＦＰ内にあるフォーク６１の長さに等しい。図４の例における差込量は「ｙ３」である。また、図２の（ｂ）のように、フォーク先端部がフォークポケットＦＰの外まで突き出している場合には、差込量「ｙ２」はフォークポケットＦＰの奥行きと、フォークポケットＦＰの奥側に突き出している部分のフォーク６１の長さとの和に等しい。なお、フォークポケットＦＰは、パレット８００ａを貫通しているから、フォークポケットＦＰの奥行き（長さ）は、パレット８００ａの奥行き「Ｘ」に等しい。
【００６１】
（差込制御装置の要部構成）
図５は、実施形態２の差込制御装置２の制御部１０の構成例を示すブロック図である。制御部１０以外の構成は図１の差込制御装置１と同様である。図５に示されるように、差込制御装置２の制御部１０には、二段取り要否判定部１２１が含まれている。二段取り要否判定部１２１は、奥行き特定部１０４が特定した奥行きに基づき、パレット８００ａに対する荷役作業にて二段取りが必要であるか否かを判定する。以下では、再度図４を参照して、二段取り要否判定部１２１の判定について説明する。
【００６２】
上述のように、二段取りは、パレット８００ａへのフォーク６１の差込量が十分ではないときに必要となるから、二段取り要否判定部１２１は、二段取りの要否を判定するにあたり、まず上述の差込量を算出する。
【００６３】
パレット８００ａとフォークリフト６との水平方向距離を算出するための、フォークリフト６上の基準位置を上記実施形態と同様にフォーク基部の位置とした場合、図４に示すようなリーチイン状態における差込量は下記の数式（２）で表すことができる。
【００６４】
ｙ３＝Ｙ−ｚ３        …数式（２）
数式（２）において「ｙ３」は差込量、「Ｙ」はフォーク６１の長さ、「ｚ３」はフォーク基部の位置からパレット８００ａまでの水平方向距離である。なお、「Ｙ」は予め測定しておけばよく、「ｚ３」は距離特定部１０３が特定する。
【００６５】
よって、リーチ量を最大の「ａｍａｘ」としたときの差込量「ｙｍａｘ」は、下記の数式（３）で表すことができる。
【００６６】
ｙｍａｘ＝ｙ３＋ａｍａｘ        …数式（３）
次に、二段取り要否判定部１２１は、上記のようにして算出した差込量「ｙｍａｘ」が、パレット８００ａの奥行き「Ｘ」に対して十分であるか否か、すなわち二段取りを行う必要があるか否かを判定する。この判定の基準は特に限定されず、例えば、二段取り要否判定部１２１は、奥行き「Ｘ」に対する差込量「ｙｍａｘ」の比が閾値未満であれば、二段取りを行う必要があると判定してもよい。例えば、二段取り要否判定部１２１は、（ｙｍａｘ／Ｘ）の値が０．８未満であれば二段取りを行う必要があると判定し、０．８以上であれば二段取りは不要と判定してもよい。
【００６７】
そして、二段取り要否判定部１２１は、二段取りを行う必要があると判定した場合には、その旨をフォークリフト６の運転者に報知する。報知の態様、報知に用いる装置等は特に限定されない。一方、二段取り要否判定部１２１が二段取りを行う必要がないと判定した場合には、実施形態１と同様に、差込制御部１０５による処理が行われる。
【００６８】
（実施形態２のまとめ）
以上のように、実施形態２の差込制御装置２は、奥行き「Ｘ」に基づき、パレット８００ａに対する荷役作業にて二段取りの要否を判定する二段取り要否判定部１２１を備えている。したがって、二段取り要否の判定結果を用いることにより、二段取りが必要な状況で一段取りがなされることを防止できる。その結果、例えば、無理な一段取りによって荷崩れが発生することを防止できるので、荷役作業の安全性を向上させることが可能となる。
【００６９】
（参考例）
差込制御装置２の制御部１０から差込制御部１０５を除いて、二段取りの要否を判定する二段取り要否判定装置を構成することもできる。二段取り要否判定装置は、パレット８００ａの奥行きを特定する奥行き特定部１０４と、特定された奥行きに基づき、パレット８００ａに対する荷役作業における二段取りの要否を判定する二段取り要否判定部１２１を少なくとも備えた装置である。この二段取り要否判定装置によれば、無理な一段取りによって荷崩れが発生することを防止できるので、荷役作業の安全性を向上させることが可能となる。
【００７０】
〔実施形態３〕
本実施形態では、差込制御装置３により、カウンタ車のフォークリフトの荷役作業における差込制御を行う例を図６および図７に基づいて説明する。図６は、実施形態３における処理の概要について説明するための図である。また、図７は、差込制御装置３が実行する処理（差込制御方法）の一例を示すフローチャートである。なお、差込制御装置３の構成は、実施形態１の差込制御装置１（図１参照）と同様である。
【００７１】
図６に示すフォークリフト６Ａは、カウンタ式のフォークリフト、すなわちカウンタ車である。フォークリフト６Ａの備えるマスト６２Ａは、図２のフォークリフト６が備えるマスト６２とは異なり、水平方向に非可動である。このため、フォークリフト６Ａによる荷役作業では、フォーク６１をフォークポケットＦＰに正対した状態とした上で、フォークリフト６Ａを前進させることにより、フォーク６１をフォークポケットＦＰに差し込む。
【００７２】
このため、差込制御装置３は、フォークリフト６Ａを前進させる距離を制御することにより、パレット８００ａから突出したフォーク先端部が他の荷物や壁など（図６の例ではパレット８００ｂ）に接触することを防ぐ。差込制御装置３は、リーチ量ではなく前進距離を制御する点で差込制御装置１と相違しているが、処理の内容は概ね同様である。
【００７３】
すなわち、図７に示すように、差込制御装置３においても、高さ位置合わせ開始時にパレット８００ａの画像を取得して入力データを生成する（Ｓ１、Ｓ２）。そして、差込制御装置３においても、上記入力データを学習済みモデルに入力してパレット８００ａの種類を特定すると共にその奥行きを特定し（Ｓ３、Ｓ４）、さらにパレット８００までの距離を特定する（Ｓ５）。なお、図６の（ａ）の例では、Ｓ４で特定される奥行きを「Ｘ」、Ｓ５で特定される距離を「ｚ１」としている。
【００７４】
図７のＳ１６では、差込制御部１０５は、Ｓ４で特定された奥行き「Ｘ」と、Ｓ５で特定された距離「ｚ１」と、所定の突出許容量「Ｐｍａｘ」を下記数式（４）に代入して前進距離「ｂ１」の上限を決定する。なお、数式（４）の右辺は数式（１）の右辺と同じであるから、数式（４）を用いて算出した「ｂ１」の上限は、実施形態１におけるリーチ量の上限と同じ値となる。
【００７５】
ｂ１≦（ｚ１＋Ｘ＋Ｐｍａｘ）−Ｙ        …（４）
フォークリフト６Ａの前進距離「ｂ１」（図６の（ｂ）参照）が上記の上限を超えなければ、パレット８００ａの奥側からフォーク先端部が突出許容量「Ｐｍａｘ」を超えて突出することはない。よって、パレット８００ａから突出したフォーク先端部がパレット８００ｂ等に接触することを防ぐことができる。
【００７６】
最後に、Ｓ１７（差込制御ステップ）において、差込制御部１０５は、Ｓ１６で決定した上限を超えないようにフォークリフト６の前進動作を制御する。これにより、図７の処理は終了する。
【００７７】
Ｓ１７の制御は、前進距離「ｂ１」が上限を超えないようにすることが可能なものであればよい。例えば、差込制御部１０５は、前進距離が上限に達した後は、運転手がフォークリフト６Ａを前進させる操作を継続していたとしても、前進を停止するようにフォークリフト６を制御してもよい。つまり、差込制御部１０５は、前進距離が上限に達した時点でフォークリフト６を停車させてもよい。なお、フォークリフト６Ａの前進距離の特定方法は特に限定されず、例えばフォークリフト６Ａが備える走行距離計から取得してもよいし、距離特定部１０３が特定する距離に基づいて特定してもよい。
【００７８】
この他にも、例えば、差込制御部１０５は、前進距離「ｂ１」が上限に近付くにつれて、アクセルペダルから運転者の足にかかる反発力を大きくする制御を行ってもよい。このような制御によっても、上限を超えてフォークリフト６Ａが前進することを防ぐことができる。また、実施形態１と同様に、差込制御部１０５は、フォークリフト６Ａ以外の機器を制御することにより、前進距離「ｂ１」が上限を超えないようにしてもよい。
【００７９】
（実施形態３のまとめ）
以上のように、差込制御装置１は、カウンタ車としてのフォークリフト６Ａに対しても、差込制御処理を行うことができる。より具体的には、実施形態１では、差込制御部１０５は、フォークリフト６に設定された基準位置からパレット８００ａまでの水平方向距離（ｚ１）と、Ｘと、Ｐｍａｘとの和から、上記基準位置からフォーク先端部までの距離（Ｙ）を引いた値を超えないように、前進距離を制御する。つまり、実施形態３の差込制御処理には、上述の数式（４）を充足する前進距離「ｂ１」の上限を設定する処理が含まれる。実施形態３の差込制御処理によっても、フォーク先端部の突出長さをＰｍａｘ以下に制限できるので、実施形態１と同様に、フォーク先端部が他の対象物に接触することを防止できる。
【００８０】
なお、リーチ車による荷役作業において、フォークをリーチアウト状態としてから、フォークリフトを前進させて、フォークをフォークポケットに差し込むこともある。このような場合には、本実施形態と同様に、リーチ量ではなく前進距離について制御を行えばよい。また、リーチ量と前進距離の合計が上限を超えないように制御してもよい。
【００８１】
（二段取りの要否判定について）
カウンタ式のフォークリフトについても、二段取り要否判定部１２１によって、実施形態２と同様にして二段取りの要否判定を行うことができる。以下、カウンタ式のフォークリフトにおける二段取りの要否判定について、再度図６を参照して説明する。
【００８２】
カウンタ式のフォークリフト６Ａではリーチ量を考慮する必要はないが、その代わりにフォークリフト６Ａが前進可能な距離を考慮して二段取りの要否判定を行う。具体的には、二段取り要否判定部１２１は、下記数式（５）により、図６の（ａ）の状態（フォークリフト６Ａを前進させる余地のある状態）における、フォーク６１の差込量を算出する。なお、下記数式における「Ｙ」はフォーク６１の長さであるから予め測定しておけばよく、「ｚ１」としては距離特定部１０３が特定した距離を用いればよい。
【００８３】
ｙ１＝Ｙ−ｚ１        …数式（５）
よって、上記状態からフォークリフト６Ａを前進させることが可能な距離の最大値を「ｂｍａｘ」とすると、差込量の最大値「ｙｍａｘ」は、下記の数式（６）で表すことができる。なお、「ｂｍａｘ」としては、例えばフォークリフト６Ａからフォークリフト６Ａの前方の障害物（フォークリフト６Ａの前進の妨げとなるもの。図６の例ではパレット８００が載置された棚）までの距離を用いればよい。この距離の特定方法は特に限定されず、例えば距離特定部１０３がパレット８００ａまでの距離を特定する方法と同様の方法で特定してもよい。
【００８４】
ｙｍａｘ＝ｙ１＋ｂｍａｘ        …数式（６）
この後の処理は実施形態２と同様であり、二段取り要否判定部１２１は、上記のようにして算出した差込量「ｙｍａｘ」が、パレット８００ａの奥行き「Ｘ」に対して十分であるか否か、すなわち二段取りを行う必要があるか否かを判定する。
【００８５】
〔変形例：差込量に基づく制御〕
実施形態１では、フォーク先端部がパレット８００ａから突出許容量を超えて突出しないようなリーチ量を算出する例を説明し、実施形態３ではフォーク先端部がパレット８００ａから突出許容量を超えて突出しないような前進距離を算出する例を説明した。ここでは、リーチ量または前進距離の上限を算出する代わりに、フォーク６１の差込量に基づいてフォーク先端部がパレット８００ａから突出許容量を超えて突出しないように制御する例を説明する。
【００８６】
上述のように、フォーク６１の差込量は、フォーク６１の長さから、フォーク基部からパレット８００ａの側面（フォークリフト６と対向する面）までの距離を引いた値となる（数式（２）、（５）参照）。よって、フォークの差込量を「ｙ」とし、突出許容量を「Ｐｍａｘ」とし、パレット８００ａの奥行きを「Ｘ」としたとき、差込量「ｙ」が、奥行き「Ｘ」と突出許容量「Ｐｍａｘ」との和を超えないようにするためには、差込量「ｙ」を下記の数式（７）を満たす範囲とすればよい。
【００８７】
ｙ≦Ｘ−Ｐｍａｘ        …（７）
ここで、フォーク６１の長さを「Ｙ」とし、フォーク基部からパレット８００ａの側面までの距離を「ｚ」とすると、ｙ＝Ｙ−ｚと表される。よって、上記数式（７）は下記数式（８）のように書き換えることができる。
【００８８】
ｚ≧Ｙ＋Ｐｍａｘ−Ｘ        …（８）
以上より、差込制御部１０５は、距離「ｚ」が数式（８）の右辺の値を超えないようにフォークリフト６または６Ａを制御することにより、フォーク先端部がパレット８００ａから突出許容量を超えて突出しないようにすることができる。
【００８９】
ここで、距離「ｚ」は、距離特定部１０３が算出する。このため、例えば差込制御部１０５は、距離特定部１０３が逐次算出する「ｚ」の値を監視してもよい。そして、差込制御部１０５は、距離「ｚ」の値が数式（８）の右辺の値と等しくなったときに、それ以上の差し込みが行われないようにフォークリフト６または６Ａを制御してもよい。
【００９０】
なお、この制御については、実施形態１、３の制御と同様である。また、差込制御部１０５が、フォークリフト６また６Ａ以外の機器を制御することにより、距離「ｚ」の値が数式（８）の右辺の値未満となるような差し込みが行われないようにしてもよいことも実施形態１、３と同様である。
【００９１】
また、差込制御部１０５は、実施形態１で挙げた例の他、レーザ光をフォーク６１のブレード表面に照射する等により、フォーク基部から（Ｙ＋Ｐｍａｘ−Ｘ）の距離の位置に、フォーク６１の差し込みの上限を示す目印を投影してもよい。このような態様であっても、フォーク６１を安全に差し込むことができる差込量の範囲を運転者に認識させることができる。
【００９２】
以上のように、本変形例における差込制御部１０５は、フォーク６１のパレット８００ａへの差込量が、奥行き特定部１０４が特定した奥行き「Ｘ」と突出許容量「Ｐｍａｘ」との和を超えないように、フォーク６１の差し込み動作を制御する。これにより、パレット８００ａから突出したフォーク先端部が他の荷物や壁などに接触することを防ぐことができる。
【００９３】
〔自動差し込み〕
上記各実施形態では、運転者が差し込み操作（リーチ動作またはフォークリフトを前進させる操作）を行う例を説明したが、本発明の一態様に係る差込制御装置は、運転者の操作によらず自動で差し込みを行ってもよい。例えば、実施形態１の差込制御装置１は、算出した上限までリーチ動作を行うようにフォークリフト６を制御してもよい。また、実施形態３の差込制御装置３は、算出した上限の距離だけフォークリフト６Ａを前進させてもよい。当該構成によれば、自動でフォークリフトにフォーク差込操作を行わせることができる。
【００９４】
〔分散処理について〕
上記各実施形態で説明した差込制御装置１〜３の実行する処理の一部は、差込制御装置１〜３と通信接続された１または複数の装置に実行させてもよい。例えば、奥行き特定部１０４の実行する処理の一部を、差込制御装置１〜３と通信接続されたＡＩサーバに実行させてもよい。この場合、差込制御装置１〜３は、入力データをＡＩサーバに送信し、該ＡＩサーバから出力データを受信して、パレット８００ａの奥行きを特定する。
【００９５】
〔ソフトウェアによる実現例〕
差込制御装置１〜３の制御ブロック（特に制御部１０に含まれる各部）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【００９６】
後者の場合、差込制御装置１〜３は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００９７】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【００９８】
１〜３  差込制御装置
６  フォークリフト（リーチ車）
６Ａ  フォークリフト（カウンタ車）
６１  フォーク
１０４  奥行き特定部
１０５  差込制御部
１２１  二段取り要否判定部
８００ａ  パレット（対象パレット）
９００  荷物（荷役対象物）
ＩＭＧ１  画像（対象パレットを撮影した画像）
【図１】
2020045219.tif 000003
【図２】
2020045219.tif 000004
【図３】
2020045219.tif 000005
【図４】
2020045219.tif 000006
【図５】
2020045219.tif 000007
【図６】
2020045219.tif 000008
【図７】
2020045219.tif 000009