(57)【要約】【課題】作業機の位置を求める。【解決手段】作業機械本体と、作業機械本体に取り付けられた作業機と、作業機を操作するための操作部材と、コンピュータ１０２Ａとを備える、作業機械を含むシステムが提供される。コンピュータ１０２Ａは、作業機のうち位置推定対象部の位置を求めるための、学習済みの位置推定モデル８０Ｂを有している。コンピュータ１０２Ａは、操作部材の操作によって作業機を動作させる操作指令値を取得し、学習済みの位置推定モデル８０Ｂを用いて操作指令値から位置推定対象部の基準位置からの変位量を推定し、基準位置および変位量から位置推定対象部の位置を推定した推定位置を出力する。【選択図】図６
2020122283.tif 000002
【特許請求の範囲】
【請求項１】
作業機械本体と、
前記作業機械本体に取り付けられた作業機と、
前記作業機を操作するための操作部材と、
コンピュータとを備え、
前記コンピュータは、前記作業機のうち、位置を推定する対象の部位である位置推定対象部の位置を求めるための、学習済み位置推定モデルを有し、
前記コンピュータは、前記操作部材の操作によって前記作業機を動作させる操作指令値を取得し、前記学習済み位置推定モデルを用いて前記操作指令値から前記位置推定対象部の基準位置からの変位量を推定し、前記基準位置および前記変位量から前記位置推定対象部の位置を推定した第１推定位置を出力する、作業機械を含むシステム。
【請求項２】
前記学習済み位置推定モデルは、前記操作指令値が入力されると、前記位置推定対象部の前記基準位置からの前記変位量を推定して、前記基準位置および前記変位量から前記位置推定対象部の位置を推定した前記第１推定位置を出力するように、学習用データセットを用いた学習処理がなされている、請求項１に記載のシステム。
【請求項３】
前記学習済み位置推定モデルは、学習用データセットを用いた学習処理により生成され、前記学習用データセットは、前記操作指令値に対して、前記位置推定対象部の前記基準位置からの前記変位量をラベル付けした学習用データを複数含む、請求項１に記載のシステム。
【請求項４】
前記コンピュータは、前記学習済み位置推定モデルを用いて、前記作業機のうち前記位置推定対象部以外の部位の位置をさらに推定する、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記コンピュータは、前記操作指令値から、前記位置推定対象部以外の部位の位置をさらに推定する、請求項４に記載のシステム。
【請求項６】
前記作業機は、前記作業機械本体に連結されたブームと、前記ブームに連結されたアームと、前記アームに連結されたバケットとを有し、
前記位置推定対象部は、前記バケットであり、
前記位置推定対象部以外の部位は、前記アームまたは前記ブームである、請求項４または５に記載のシステム。
【請求項７】
前記システムは、前記作業機を撮像する撮像装置をさらに備え、
前記コンピュータは、前記位置推定対象部の位置を求めるための他の学習済み位置推定モデルをさらに有し、前記撮像装置によって撮像される前記作業機の撮像画像を取得し、前記他の学習済み位置推定モデルを用いて前記撮像画像から前記位置推定対象部の位置を推定した第２推定位置を出力するものであり、
前記コンピュータは、前記他の学習済み位置推定モデルを用いて前記撮像画像から前記第２推定位置を求める推定の精度を検出し、その精度が所定値よりも低いとき、前記学習済み位置推定モデルを用いて前記操作指令値から前記第１推定位置を推定する、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記基準位置は、前記撮像画像から前記第２推定位置を求める推定の精度が所定値よりも低下する直前の前記位置推定対象部の前記第２推定位置である、請求項７に記載のシステム。
【請求項９】
前記コンピュータは、前記他の学習済み位置推定モデルを用いて、前記撮像画像から、前記作業機のうち前記位置推定対象部以外の部位の位置をさらに推定する、請求項７または８に記載のシステム。
【請求項１０】
前記作業機を動作させる油圧シリンダをさらに備え、
前記コンピュータは、前記油圧シリンダのストロークエンドで前記変位量を較正する、請求項１〜９のいずれか１項に記載のシステム。
【請求項１１】
前記作業機の位置は、前記作業機械本体に対する前記作業機の相対位置である、請求項１〜１０のいずれか１項に記載のシステム。
【請求項１２】
コンピュータによって実行される方法であって、
作業機械本体に設けられた作業機を動作させる操作指令値を取得する工程と、
前記作業機の位置を求めるための学習済み位置推定モデルを用いて前記操作指令値から前記作業機の位置を推定した推定位置を求める工程と、
を備える方法。
【請求項１３】
学習済みの位置推定モデルの製造方法であって、
作業機械本体に取り付けられた作業機を動作させる操作指令値と、前記操作指令値を検出したときの前記作業機の基準位置からの変位量とを含む学習用データを取得することと、
前記学習用データにより前記位置推定モデルを学習させることと、を備える、製造方法。
【請求項１４】
前記学習させることは、
前記位置推定モデルを用いて、前記操作指令値から、前記作業機が前記基準位置から変位した量を推定した推定変位量を求めることと、
前記変位量に対する前記推定変位量の誤差を算出することと、
前記誤差に基づいて前記位置推定モデルを更新することとを含む、請求項１３に記載の製造方法。
【請求項１５】
作業機の位置を求める位置推定モデルを学習させるための学習用データであって、
作業機械本体に取り付けられた作業機を動作させる操作指令値と、
前記操作指令値を検出したときの前記作業機の基準位置からの変位量とを備える、学習用データ。
【請求項１６】
前記変位量は、前記作業機のうち位置を推定する対象の部位である位置推定対象部の前記基準位置からの変位量を含む、請求項１５に記載の学習用データ。
【請求項１７】
前記変位量は、前記作業機のうち前記位置推定対象部以外の部位の前記基準位置からの変位量をさらに含む、請求項１６に記載の学習用データ。
【請求項１８】
学習済みの位置推定モデルの製造方法であって、
作業機械本体に取り付けられた作業機を動作させる操作指令値を取得することと、
学習済みの位置推定モデルを用いて前記操作指令値から前記作業機の位置を推定した推定位置を求めることと、
前記操作指令値と前記推定位置とを含む学習用データにより、前記位置推定モデルとは別の位置推定モデルを学習させることと、を備える、製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、作業機械を含むシステム、コンピュータによって実行される方法、学習済みの位置推定モデルの製造方法、および学習用データに関する。
【背景技術】
【０００２】
油圧ショベルに関し、特許文献１には、ブームピンにブーム角度センサを取り付け、アームピンにアーム角度センサを取り付け、バケットリンクにバケット角度センサを取り付け、これら角度センサで検出した値に基づいてバケットの爪先の位置を算出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−７１９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記文献に記載の構成では、作業機の姿勢を取得するためにブーム、アームおよびバケットの各々の軸に角度センサを取り付ける必要があり、部品点数が増加する。
【０００５】
本開示では、作業機の位置を求めるための、作業機械を含むシステム、コンピュータによって実行される方法、学習済みの位置推定モデルの製造方法、および学習用データが提供される。
【課題を解決するための手段】
【０００６】
本開示のある局面に従うと、作業機械本体と、作業機械本体に取り付けられた作業機と、作業機を操作するための操作部材と、コンピュータとを備える、作業機械を含むシステムが提供される。コンピュータは、作業機のうち、位置を推定する対象の部位である位置推定対象部の位置を求めるための、学習済み位置推定モデルを有している。コンピュータは、操作部材の操作によって作業機を動作させる操作指令値を取得し、学習済み位置推定モデルを用いて操作指令値から位置推定対象部の基準位置からの変位量を推定し、基準位置および変位量から位置推定対象部の位置を推定した第１推定位置を出力する。
【０００７】
本開示のある局面に従うと、コンピュータによって実行される方法が提供される。当該方法は、以下の処理を含んでいる。第１の処理は、作業機械本体に設けられた作業機を動作させる操作指令値を取得することである。第２の処理は、作業機の位置を求めるための学習済み位置推定モデルを用いて、操作指令値から作業機の位置を推定した推定位置を求めることである。
【０００８】
本開示のある局面に従うと、学習済みの位置推定モデルの製造方法が提供される。製造方法は、以下の処理を含んでいる。第１の処理は、学習用データを取得することである。学習用データは、作業機械本体に取り付けられた作業機を動作させる操作指令値と、操作指令値を検出したときの作業機の基準位置からの変位量とを含んでいる。第２の処理は、学習用データにより位置推定モデルを学習させることである。
【０００９】
本開示のある局面に従うと、作業機の位置を求める位置推定モデルを学習させるための学習用データが提供される。学習用データは、作業機械本体に取り付けられた作業機を動作させる操作指令値と、操作指令値を検出したときの作業機の基準位置からの変位量とを備えている。
【００１０】
本開示のある局面に従うと、学習済みの位置推定モデルの製造方法が提供される。製造方法は、以下の処理を備えている。第１の処理は、作業機械本体に取り付けられた作業機を動作させる操作指令値を取得することである。第２の処理は、学習済みの位置推定モデルを用いて、操作指令値から作業機の位置を推定した推定位置を求めることである。第３の処理は、操作指令値と推定位置とを含む学習用データにより、別の位置推定モデルを学習させることである。
【発明の効果】
【００１１】
本開示に従えば、作業機の位置を精度良く取得することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に基づく油圧ショベルの外観図である。
【図２】ブーム角度、アーム角度およびバケット角度について説明する、作業機の側面図である。
【図３】図１に示す油圧ショベルの模式的平面図である。
【図４】油圧ショベルを含むシステムの概略構成を示すブロック図である。
【図５】コンピュータの構成を示す模式図である。
【図６】出荷前のコンピュータの内部構成の概略を示す機能ブロック図である。
【図７】学習済みの第１の位置推定モデルの製造方法を示すフローチャートである。
【図８】第１の位置推定モデルを学習させるための処理を示す概略図である。
【図９】学習済みの第２の位置推定モデルの製造方法を示すフローチャートである。
【図１０】第２の位置推定モデルを学習させるための処理を示す概略図である。
【図１１】工場出荷されるコンピュータの内部構成の概略を示す機能ブロック図である。
【図１２】工場出荷後に作業機の相対位置を推定するためにコンピュータによって実行される処理を示すフローチャートである。
【図１３】学習済みの位置推定モデルを用いた、撮像画像から作業機の相対位置を推定する処理を示す模式図である。
【図１４】学習済みの位置推定モデルを用いた、撮像画像および操作指令値から作業機の相対位置を推定する処理を示す模式図である。
【図１５】位置推定モデルの学習に関する変形例を示す概略図である。
【図１６】蒸留モデルを生成するための処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、実施形態について図に基づいて説明する。以下の説明では、同一部品には、同一の符号を付している。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１４】
実施形態においては、まず、本開示の思想を適用可能な作業機械の一例である油圧ショベルの構成について説明する。図１は、実施形態に基づく油圧ショベル１００の外観図である。
【００１５】
図１に示されるように、油圧ショベル１００は、本体１と、油圧により作動する作業機２とを有している。本体１は、旋回体３と、走行装置５とを有している。走行装置５は、一対の履帯５Ｃｒを有している。油圧ショベル１００は、履帯５Ｃｒの回転により走行可能である。なお、走行装置５が車輪（タイヤ）を有していてもよい。
【００１６】
旋回体３は、走行装置５の上に配置され、かつ走行装置５により支持されている。旋回体３は、旋回軸ＲＸを中心として走行装置５に対して旋回可能である。旋回体３は、キャブ４を有している。油圧ショベル１００の乗員（オペレータ）は、このキャブ４に搭乗して、油圧ショベル１００を操縦する。キャブ４には、オペレータが着座する運転席４Ｓが設けられている。オペレータは、キャブ４内において油圧ショベル１００を操作可能である。オペレータは、キャブ４内において、作業機２の操作が可能であり、走行装置５に対する旋回体３の旋回操作が可能であり、また走行装置５による油圧ショベル１００の走行操作が可能である。
【００１７】
旋回体３は、エンジンが収容されるエンジンルーム９と、旋回体３の後部に設けられるカウンタウェイトとを有している。エンジンルーム９には、図示しないエンジンおよび油圧ポンプなどが配置されている。
【００１８】
旋回体３において、エンジンルーム９の前方に手すり２９が設けられている。手すり２９には、アンテナ２１が設けられている。アンテナ２１は、たとえばＧＮＳＳ（Global  Navigation  Satellite  Systems：全地球航法衛星システム）用のアンテナである。アンテナ２１は、車幅方向に互いに離れるように旋回体３に設けられた第１アンテナ２１Ａおよび第２アンテナ２１Ｂを有している。
【００１９】
作業機２は、旋回体３に支持されている。作業機２は、ブーム６と、アーム７と、バケット８とを有している。ブーム６は、旋回体３に回動可能に連結されている。アーム７はブーム６に回動可能に連結されている。バケット８は、アーム７に回動可能に連結されている。バケット８は、複数の刃を有している。バケット８の先端部を、刃先８ａと称する。
【００２０】
ブーム６の基端部は、ブームピン１３を介して旋回体３に連結されている。アーム７の基端部は、アームピン１４を介してブーム６の先端部に連結されている。バケット８は、バケットピン１５を介してアーム７の先端部に連結されている。バケット８は、作業機２の先端に着脱可能に装着されたアタッチメントの一例である。作業の種類に応じて、アタッチメントが、ブレーカ、グラップル、またはリフティングマグネットなどに付け替えられる。
【００２１】
なお本実施形態においては、作業機２を基準として、油圧ショベル１００の各部の位置関係について説明する。
【００２２】
作業機２のブーム６は、旋回体３に対して、ブーム６の基端部に設けられたブームピン１３を中心に回動する。旋回体３に対して回動するブーム６の特定の部分、たとえばブーム６の先端部が移動する軌跡は円弧状である。その円弧を含む平面が、図１に示す動作平面Ｐとして特定される。油圧ショベル１００を平面視した場合に、動作平面Ｐは直線として表される。この直線の延びる方向が、油圧ショベル１００の本体１の前後方向、または旋回体３の前後方向であり、以下では単に前後方向ともいう。油圧ショベル１００の本体１の左右方向（車幅方向）、または旋回体３の左右方向とは、平面視において前後方向と直交する方向であり、以下では単に左右方向ともいう。
【００２３】
前後方向において、油圧ショベル１００の本体１から作業機２が突き出している側が前方向であり、前方向と反対方向が後方向である。前方向を視て左右方向の右側、左側がそれぞれ右方向、左方向である。
【００２４】
前後方向とは、キャブ４内の運転席に着座したオペレータの前後方向である。運転席に着座したオペレータに正対する方向が前方向であり、運転席に着座したオペレータの背後方向が後方向である。左右方向とは、運転席に着座したオペレータの左右方向である。運転席に着座したオペレータが正面に正対したときの右側、左側がそれぞれ右方向、左方向である。
【００２５】
ブーム６は、ブームピン１３を中心に回動可能である。アーム７は、アームピン１４を中心に回動可能である。バケット８は、バケットピン１５を中心に回動可能である。アーム７およびバケット８のそれぞれは、ブーム６の先端側で移動可能な可動部材である。ブームピン１３、アームピン１４およびバケットピン１５は、動作平面Ｐと直交する方向、すなわち左右方向に延びている。動作平面Ｐは、ブーム６、アーム７およびバケット８の各々の回動中心となる軸線の、少なくとも一つ（実施形態の場合、三つ全て）と直交している。
【００２６】
上述した通り、ブーム６は動作平面Ｐ上で旋回体３に対して回動動作する。同様に、アーム７は動作平面Ｐ上でブーム６に対して回動動作し、バケット８は動作平面Ｐ上でアーム７に対して回動動作する。実施形態の作業機２は、その全体が動作平面Ｐ上で動作する。バケット８の刃先８ａは、動作平面Ｐ上を移動する。動作平面Ｐは、作業機２の可動範囲を含む垂直な平面である。動作平面Ｐは、ブーム６、アーム７およびバケット８の各々と交差している。動作平面Ｐは、ブーム６、アーム７およびバケット８の左右方向の中心に設定することができる。
【００２７】
図１に示すように、本明細書において、動作平面Ｐ上における水平な方向にＸ軸を設定し、動作平面Ｐ上における垂直上向き方向にＹ軸を設定する。Ｘ軸とＹ軸とは、互いに直交している。
【００２８】
作業機２は、ブームシリンダ１０と、アームシリンダ１１と、バケットシリンダ１２とを有している。ブームシリンダ１０は、ブーム６を駆動する。アームシリンダ１１は、アーム７を駆動する。バケットシリンダ１２は、バケット８を駆動する。ブームシリンダ１０、アームシリンダ１１、およびバケットシリンダ１２のそれぞれは、作動油によって駆動される油圧シリンダである。
【００２９】
作業機２は、バケットリンクを有している。バケットリンクは、第１リンク部材１６と、第２リンク部材１７とを有している。第１リンク部材１６の先端と第２リンク部材１７の先端とは、バケットシリンダトップピン１９を介して、相対回転可能に連結されている。バケットシリンダトップピン１９は、バケットシリンダ１２の先端に連結されている。したがって第１リンク部材１６および第２リンク部材１７は、バケットシリンダ１２にピン連結されている。
【００３０】
第１リンク部材１６の基端は、アーム７の先端部のバケットピン１５の近傍において、第１リンクピン１８を介してアーム７に回転可能に連結されている。第１リンク部材１６は、アーム７にピン連結されている。第２リンク部材１７の基端は、第２リンクピン２０を介して、バケット８の根元部分のブラケットに回転可能に連結されている。第２リンク部材１７は、バケット８にピン連結されている。
【００３１】
油圧ショベル１００は、撮像装置５０を有している。実施形態の撮像装置５０は、単眼カメラである。
【００３２】
撮像装置５０は、旋回体３に取り付けられている。撮像装置５０は、キャブ４に取り付けられている。撮像装置５０は、キャブ４の内部に取り付けられている。撮像装置５０は、キャブ４の左フロントピラーの上端付近に取り付けられている。撮像装置５０は、キャブ４の内部空間における、左右方向において作業機２からより離れる位置である左フロントピラーの近傍に配置されている。撮像装置５０は、左右方向において、作業機２の動作平面Ｐから離れて配置されている。撮像装置５０は、動作平面Ｐよりも左方に配置されている。
【００３３】
図２は、ブーム角度θｂ、アーム角度θａ、およびバケット角度θｋについて説明する、作業機２の側面図である。
【００３４】
図２に示すように、側方視において、ブームピン１３とアームピン１４とを通る直線と、上下方向に延びる直線との成す角度を、ブーム角度θｂとする。ブーム角度θｂは、旋回体３に対するブーム６の角度を表す。
【００３５】
側方視において、ブームピン１３とアームピン１４とを通る直線と、アームピン１４とバケットピン１５とを通る直線との成す角度を、アーム角度θａとする。アーム角度θａは、ブーム６に対するアーム７の角度を表す。
【００３６】
側方視において、アームピン１４とバケットピン１５とを通る直線と、バケットピン１５と刃先８ａとを通る直線との成す角度を、バケット角度θｋとする。バケット角度θｋは、アーム７に対するバケット８の角度を表す。
【００３７】
動作平面Ｐ上における作業機２の姿勢は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの組み合わせで決まる。たとえば、アーム７の先端部の第１リンクピン１８の動作平面Ｐ上の位置、すなわちＸＹ座標は、ブーム角度θｂおよびアーム角度θａの組み合わせで決まる。バケット８の動作に追随して変位するバケットシリンダトップピン１９の動作平面Ｐ上の位置、すなわちＸＹ座標は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの組み合わせで決まる。
【００３８】
図３は、図１に示す油圧ショベル１００の模式的平面図である。図３には、図１を参照して説明した作業機２、旋回体３、キャブ４、および撮像装置５０が、模式的に図示されている。動作平面Ｐは、図３においては、図中の上下方向に延びる直線であり、二点鎖線で図示されている。図３に一点鎖線で図示されている光軸ＡＸは、撮像装置５０の光軸である。光軸ＡＸの延びる方向と、動作平面Ｐの延びる方向とは、非平行である。光軸ＡＸの延びる方向は、動作平面Ｐの延びる方向に対して傾斜している。光軸ＡＸは、動作平面Ｐに交差している。
【００３９】
撮像装置５０は、作業機２の動作平面を斜め方向から見る位置に装着されている。撮像装置５０は、動作平面Ｐに対して０°より大きい角度で、作業機２を撮像する。作業機２と撮像装置５０との両方が旋回体３に取り付けられているために、油圧ショベル１００が走行または旋回しても、動作平面Ｐに対する撮像装置５０の位置関係は変化しない。動作平面Ｐに対する撮像装置５０の取付位置は、油圧ショベル１００の機種毎に予め決定されている。
【００４０】
撮像装置５０は、作業機２を撮像する。撮像装置５０は、作業機２の動作平面Ｐを撮像する。撮像装置５０は、動作平面Ｐ上を移動する作業機２を撮像する。撮像装置５０による撮像画像は、作業機２の少なくとも一部を含んでいる。
【００４１】
図４は、油圧ショベル１００を含むシステムの概略構成を示すブロック図である。実施形態に係るシステムは、作業機械本体（本体１）に対する作業機２の相対位置を求めるためのシステムである。実施形態に係るシステムは、図１〜３を参照して説明した作業機械の一例としての油圧ショベル１００と、図４に示される制御装置２００とを含んでいる。制御装置２００は、油圧ショベル１００に搭載されていてもよい。
【００４２】
制御装置２００は、アンテナ２１と、グローバル座標演算部２３と、ＩＭＵ（Inertial  Measurement  Unit）２４と、操作装置２５と、方向制御弁３４と、圧力センサ３６と、コンピュータ１０２Ａとを有している。
【００４３】
アンテナ２１は、受信した電波（ＧＮＳＳ電波）に応じた信号をグローバル座標演算部２３に出力する。グローバル座標演算部２３は、グローバル座標系におけるアンテナ２１の設置位置を検出する。グローバル座標系は、作業エリアに設置した基準位置を元にした３次元座標系である。基準位置は、作業エリアに設定された基準杭の先端の位置であってもよい。
【００４４】
ＩＭＵ２４は、旋回体３に設けられている。本例においては、ＩＭＵ２４は、キャブ４の下部に配置されている。旋回体３において、キャブ４の下部に高剛性のフレームが配置されている。ＩＭＵ２４は、そのフレーム上に配置されている。なお、ＩＭＵ２４は、旋回体３の旋回軸ＲＸの側方（右側又は左側）に配置されてもよい。ＩＭＵ２４は、前後方向、左右方向および上下方向における旋回体３の加速度と、前後方向、左右方向および上下方向まわりの旋回体３の角速度とを計測する。
【００４５】
操作装置２５は、キャブ４内に配置されている。オペレータにより操作装置２５が操作される。操作装置２５は、作業機２を駆動するオペレータ操作を受け付ける。また操作装置２５は、旋回体３を旋回させるオペレータ操作を受け付ける。操作装置２５は、オペレータ操作に応じた操作信号を出力する。本例においては、操作装置２５は、パイロット油圧方式の操作装置である。
【００４６】
制御装置２００は、油圧ポンプ３３がエンジン３１によって駆動され、油圧ポンプ３３から吐出された作動油が、オペレータによる操作装置２５の操作に対応して、方向制御弁３４を介して各種の油圧アクチュエータ４０に供給されるように、構成されている。油圧アクチュエータ４０への油圧の供給および排出が制御されることにより、作業機２の動作、旋回体３の旋回、および走行装置５の走行動作が制御される。油圧アクチュエータ４０は、図１に示されるブームシリンダ１０、アームシリンダ１１、バケットシリンダ１２および図示しない旋回モータとを含んでいる。
【００４７】
エンジン３１は、ディーゼルエンジンである。エンジン３１への燃料の噴射量がコンピュータ１０２Ａによって制御されることにより、エンジン３１の出力が制御される。
【００４８】
油圧ポンプ３３は、エンジン３１に連結されている。エンジン３１の回転駆動力が油圧ポンプ３３に伝達されることにより、油圧ポンプ３３が駆動される。油圧ポンプ３３は、斜板を有し、斜板の傾転角が変更されることにより吐出容量を変化させる可変容量型の油圧ポンプである。油圧ポンプ３３から吐出された作動油は、減圧弁によって一定の圧力に減圧されて、方向制御弁３４に供給される。
【００４９】
方向制御弁３４は、ロッド状のスプールを動かして作動油が流れる方向を切り換えるスプール方式の弁である。スプールが軸方向に移動することにより、油圧アクチュエータ４０に対する作動油の供給量が調整される。方向制御弁３４には、スプールの移動距離（スプールストローク）を検出するスプールストロークセンサが設けられる。
【００５０】
なお、本例においては、油圧アクチュエータ４０を作動するために、その油圧アクチュエータ４０に供給される油は作動油と称される。また、方向制御弁３４を作動するためにその方向制御弁３４に供給される油はパイロット油と称される。また、パイロット油の圧力はパイロット油圧と称される。
【００５１】
油圧ポンプ３３は、作動油とパイロット油との両方を送出してもよい。例えば、油圧ポンプ３３から送出された作動油の一部が減圧弁で減圧され、その減圧された作動油がパイロット油として使用されてもよい。また、油圧ポンプ３３は、作動油を送出する油圧ポンプ（メイン油圧ポンプ）と、パイロット油を送出する油圧ポンプ（パイロット油圧ポンプ）を別々に有してもよい。
【００５２】
操作装置２５は、第１操作レバー２５Ｒと、第２操作レバー２５Ｌとを有している。第１操作レバー２５Ｒは、たとえば運転席４Ｓの右側に配置されている。第２操作レバー２５Ｌは、たとえば運転席４Ｓの左側に配置されている。第１操作レバー２５Ｒ及び第２操作レバー２５Ｌでは、前後左右の動作が２軸の動作に対応する。
【００５３】
第１操作レバー２５Ｒにより、ブーム６及びバケット８が操作される。第１操作レバー２５Ｒの前後方向の操作は、ブーム６の操作に対応し、前後方向の操作に応じてブーム６が上昇する動作及び下降する動作が実行される。第１操作レバー２５Ｒの左右方向の操作は、バケット８の操作に対応し、左右方向の操作に応じてバケット８の上下方向への動作が実行される。
【００５４】
第２操作レバー２５Ｌにより、アーム７及び旋回体３が操作される。第２操作レバー２５Ｌの前後方向の操作は、アーム７の操作に対応し、前後方向の操作に応じてアーム７の上下方向への動作が実行される。第２操作レバー２５Ｌの左右方向の操作は、旋回体３の旋回に対応し、左右方向の操作に応じて旋回体３の右旋回動作及び左旋回動作が実行される。
【００５５】
本例においては、ブーム６が上昇する動作は上げ動作、下降する動作は下げ動作とも称する。また、アーム７の上下方向への動作は、それぞれダンプ動作、掘削動作とも称する。バケット８の上下方向への動作は、それぞれダンプ動作、掘削動作とも称する。
【００５６】
なお、第１操作レバー２５Ｒの左右方向の操作がブーム６の操作に対応し、前後方向の操作がバケット８の操作に対応してもよい。なお、第２操作レバー２５Ｌの前後方向が旋回体３の操作に対応し、左右方向の操作がアーム７の操作に対応してもよい。
【００５７】
第１操作レバー２５Ｒおよび第２操作レバー２５Ｌは、実施形態の操作部材に相当する。
【００５８】
油圧ポンプ３３から送出され、減圧弁によって減圧されたパイロット油が、操作装置２５に供給される。
【００５９】
操作装置２５と方向制御弁３４とは、パイロット油路４５０を介して接続されている。操作装置２５の操作内容に基づいて、パイロット油圧が調整される。操作装置２５が操作されると、操作装置２５の操作内容に対応したパイロット油圧が、パイロット油路４５０を介して方向制御弁３４に供給される。これにより、方向制御弁３４が調整されて、ブームシリンダ１０、アームシリンダ１１、およびバケットシリンダ１２に供給される作動油の流れ方向および流量が調整され、ブーム６、アーム７、バケット８の上下方向への動作が実行される。
【００６０】
パイロット油路４５０には、圧力センサ３６が配置されている。圧力センサ３６は、パイロット油圧を検出する。圧力センサ３６の検出結果は、コンピュータ１０２Ａに出力される。操作装置２５の操作によって調整され、圧力センサ３６によって検出されるパイロット油圧（ＰＰＣ圧）は、実施形態における操作指令値に相当する。
【００６１】
図４では簡略化されて図示されているが、第１操作レバー２５Ｒおよび第２操作レバー２５Ｌの前後左右各方向への操作に対応する複数のパイロット油路４５０が、操作装置２５と方向制御弁３４とを接続するように設けられている。複数のパイロット油路４５０の各々に、圧力センサ３６が配置されている。たとえばバケット８を動作する場合、バケット８をダンプ動作するときにパイロット油圧の増加を検出する圧力センサ３６と、バケット８を掘削動作するときにパイロット油圧の増加を検出する圧力センサ３６とは異なる。パイロット油圧の増加量は、操作レバーを中立位置から傾倒させる角度によって異なる。このようにして、各圧力センサ３６によるパイロット油圧の検出結果によって、操作装置２５の操作内容を判断することができる。
【００６２】
図５は、コンピュータ１０２Ａの構成を示す模式図である。コンピュータ１０２Ａは、実施形態に係るシステム用に専用に設計されたものであってもよく、または汎用のＰＣ（Personal  Computer）であってもよい。コンピュータ１０２Ａは、プロセッサ１０３と、記憶装置１０４と、通信インタフェース１０５と、Ｉ／Ｏインタフェース１０６とを有している。プロセッサ１０３は、たとえばＣＰＵ（Central  Processing  Unit）である。
【００６３】
記憶装置１０４は、記憶されたプログラムおよびデータなどの情報をプロセッサ１０３が読み取り可能なように記憶する媒体を含んでいる。記憶装置１０４は、ＲＡＭ（Random  Access  Memory）、またはＲＯＭ（Read  Only  Memory）などのシステムメモリと、補助記憶装置とを含んでいる。補助記憶装置は、たとえばハードディスクなどの磁気的記録媒体、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）などの光学的記録媒体、またはフラッシュメモリなどの半導体メモリであってもよい。記憶装置１０４は、コンピュータ１０２Ａに内蔵されてもよい。記憶装置１０４は、コンピュータ１０２Ａに着脱可能に接続される外部記録媒体１０９を含んでもよい。外部記録媒体１０９は、ＣＤ−ＲＯＭであってもよい。
【００６４】
通信インタフェース１０５は、たとえば有線ＬＡＮ（Local  Area  Network）モジュール、または無線ＬＡＮモジュールなどであり、通信ネットワークを介した通信を行うためのインタフェースである。Ｉ／Ｏインタフェース１０６は、たとえばＵＳＢ（Universal  Serial  Bus）ポートなどであり、外部装置と接続するためのインタフェースである。
【００６５】
コンピュータ１０２Ａは、Ｉ／Ｏインタフェース１０６を介して、入力装置１０７、および出力装置１０８と接続される。入力装置１０７は、ユーザがコンピュータ１０２Ａへの入力を行うための装置である。入力装置１０７は、たとえば、マウス、またはトラックボールなどのポインティングデバイスを含んでいる。入力装置１０７は、キーボードなどの文字入力のための装置を含んでもよい。出力装置１０８は、たとえば、ディスプレイを含んでいる。
【００６６】
図６は、出荷前のコンピュータ１０２Ａの内部構成の概略を示す機能ブロック図である。図６に示されるプロセッサ１０３および記憶装置１０４は、図５に示されるコンピュータ１０２Ａの一部構成をなすものである。
【００６７】
プロセッサ１０３は、画像処理部６１と、作業機位置推定部６５とを有している。
画像処理部６１は、撮像装置（カメラ）５０から、撮像装置５０により撮像された撮像画像の入力を受ける。画像処理部６１は、入力された撮像画像を画像処理する。
【００６８】
記憶装置１０４には、学習済みの位置推定モデル８０Ａ（第１の位置推定モデル）と、学習済みの位置推定モデル８０Ｂ（第２の位置推定モデル）とが保存されている。位置推定モデル８０Ａ，８０Ｂは、本体１に対する作業機２の相対位置を求めるための人工知能モデルである。コンピュータ１０２Ａは、人工知能の位置推定モデルを用いることで、作業機２の相対位置を推定する。位置推定モデル８０Ａ，８０Ｂは、ニューラルネットワークを含んでいる。位置推定モデル８０Ａ，８０Ｂはたとえば、畳み込みニューラルネットワーク（ＣＮＮ）などのディープニューラルネットワークを含んでいる。
【００６９】
実施形態におけるモデルは、ハードウェア、ハードウェア上で実行可能なソフトウェア、ファームウェア、またそれらの組合せに実装されていてもよい。モデルは、プロセッサ１０３によって実行されるプログラム、アルゴリズム、およびデータを含んでもよい。モデルの機能は、単一のモジュールによって実行されてもよく、または複数のモジュールに分散して実行されてもよい。モデルは、複数のコンピュータに分散して配置されてもよい。
【００７０】
位置推定モデル８０Ａは、撮像画像から作業機２の相対位置を求めるように構成されている。作業機位置推定部６５は、位置推定モデル８０Ａを用いて、撮像画像から作業機２の相対位置を推定した推定位置を求める。より具体的には、作業機位置推定部６５は、記憶装置１０４から位置推定モデル８０Ａを読み出し、位置推定モデル８０Ａに撮像画像を入力することで、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの推定結果の出力を得る。撮像画像から得られる作業機２の推定位置は、実施形態における第２推定位置に相当する。
【００７１】
作業機位置推定部６５はまた、撮像画像に基づけば現在のブーム角度θｂ、アーム角度θａおよびバケット角度θｋを何％の確率で推定できる、とする推定結果の精度を出力する。撮像画像が鮮明であり、撮像画像内にブーム６、アーム７およびバケット８が明瞭に写っていれば、推定結果の精度は高くなる。作業機２の一部が土に隠れている、逆光で撮像された、または、キャブ４の窓が汚れている、などの外乱が存在し、撮像画像内にブーム６、アーム７およびバケット８のいずれかが明瞭に写っていない場合には、その不明瞭な部位の推定位置の精度が低下することになる。
【００７２】
プロセッサ１０３は、作業機変位量推定部７１と、作業機位置推定部７５とをさらに有している。
【００７３】
作業機変位量推定部７１は、圧力センサ３６から、圧力センサ３６によって検出されたパイロット油圧の入力を受ける。位置推定モデル８０Ｂは、パイロット油圧から作業機２の変位量を求めるように構成されている。作業機変位量推定部７１は、位置推定モデル８０Ｂを用いて、入力されたパイロット油圧から、操作装置２５の操作内容を求める。
【００７４】
より具体的には、作業機変位量推定部７１は、記憶装置１０４から位置推定モデル８０Ｂを読み出し、位置推定モデル８０Ｂにパイロット油圧を入力することで、操作装置２５の操作内容を求める。作業機変位量推定部７１は、操作装置２５の操作内容を求める処理を前回実行したときからの経過時間と、前回の処理および今回の処理で求められた操作装置２５の操作内容とに基づいて、前回の処理の時点から現時点までに該当の作業機２がどれだけ移動したのかを示す作業機２の変位量を推定した推定変位量の出力を得る。
【００７５】
作業機位置推定部７５は、作業機２の現在位置を推定する。具体的には、作業機位置推定部７５は、作業機２の基準位置と、作業機２が基準位置にあることを推定した時刻とを、記憶装置１０４から読み出す。作業機位置推定部７５は、作業機変位量推定部７１で出力された作業機２の変位量の推定結果を、作業機２が基準位置にあることを推定した時刻から加算することで、作業機２の基準位置からの変位量を推定する。そして作業機位置推定部７５は、作業機２の基準位置および作業機２の基準位置からの変位量から、作業機２の現在位置を推定した推定位置の出力を得る。作業機２の基準位置および作業機２の基準位置からの変位量から得られる作業機２の推定位置は、実施形態における第１推定位置に相当する。
【００７６】
作業機２の基準位置は、たとえば、撮像画像から位置推定モデル８０Ａを用いて作業機２の推定位置を求める推定の精度が所定値よりも低下する直前の、位置推定モデル８０Ａによる作業機２の推定位置とすることができる。
【００７７】
作業機２を構成するブーム６、アーム７およびバケット８のうち、位置推定モデル８０Ｂを用いて位置を推定する対象とされる部位は、位置推定対象部と称される。たとえば作業機２が土砂を掘削する作業を実行しており、バケット８の刃先８ａが土砂に隠されて撮像画像に含まれなくなったとき、コンピュータ１０２Ａは、バケット８を位置推定対象部と設定する。
【００７８】
位置推定対象部がバケット８の場合、作業機変位量推定部７１は、パイロット油圧から、バケット８をダンプ動作または掘削動作させるための第１操作レバー２５Ｒの中立位置から右方向または左方向への傾倒角度を求める。作業機変位量推定部７１は、第１操作レバー２５Ｒの傾倒角度を求める処理を前回実行したときからの経過時間と、前回の処理および今回の処理で求められた第１操作レバー２５Ｒの傾倒角度とに基づいて、前回の処理の時点から現時点までのバケット角度θｋの変化量の推定結果の出力を得る。作業機位置推定部７５は、基準位置におけるバケット角度θｋからのバケット角度θｋの変化量を、基準位置におけるバケット角度θｋに加算することにより、現在のバケット８の位置を示すバケット角度θｋを推定した推定位置を出力する。
【００７９】
位置推定対象部がバケット８の場合に、作業機２のうち位置推定対象部以外の部位の位置（この場合、ブーム６およびアーム７の位置）を示すブーム角度θｂおよびアーム角度θａを、撮像画像から位置推定モデル８０Ａを用いて精度高く推定できるのであれば、位置推定モデル８０Ａにより推定されたブーム角度θｂおよびアームθａと、位置推定モデル８０Ｂにより推定されたバケット角度θｋとにより、作業機２の推定位置を求めることができる。
【００８０】
位置推定対象部がバケット８の場合に、作業機２のうち位置推定対象部以外の部位の位置（この場合、ブーム６およびアーム７の位置）を示すブーム角度θｂおよびアーム角度θａをさらに、位置推定モデル８０Ｂを用いて推定してもよい。
【００８１】
出荷前の油圧ショベル１００は、エンコーダ５１をさらに備えている。エンコーダ５１は、ブームピン１３に取り付けられるブーム角度センサ、アームピンに取り付けられるアーム角度センサ、およびバケットリンクに取り付けられるバケット角度センサの総称である。エンコーダ５１に替えて、作業機２にポテンショメータを装着して角度を計測してもよい。また、油圧シリンダのストロークを検出するストロークセンサを装着して、油圧シリンダの移動量を角度に変換してもよい。
【００８２】
プロセッサ１０３は、角度変換部６２を有している。角度変換部６２は、エンコーダ５１から電気信号の入力を受け、この電気信号を、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋに変換する。エンコーダ５１は、撮像装置５０が撮像画像を撮像した時刻に電気信号を取得して、角度変換部６２に出力する。角度変換部６２は、撮像装置５０が撮像画像を撮像した時刻に計測されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、撮像画像に対応付けて取得する。
【００８３】
プロセッサ１０３は、誤差検出部６６を有している。誤差検出部６６は、作業機位置推定部６５によって推定されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋの推定結果と、角度変換部６２で取得されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋの計測結果とを比較する。誤差検出部６６は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの真値に対する推定結果の誤差を算出する。
【００８４】
プロセッサ１０３は、位置推定モデル更新部６７を有している。位置推定モデル更新部６７は、誤差検出部６６が算出したブーム角度θｂ、アーム角度θａおよびバケット角度θｋの誤差に基づいて、位置推定モデル８０Ａを更新する。このようにして、位置推定モデル８０Ａが学習される。撮像装置５０が撮像した作業機２の撮像画像と、角度変換部６２で算出される、撮像画像を撮像した時点のブーム角度θｂ、アーム角度θａおよびバケット角度θｋとは、位置推定モデル８０Ａを学習させるための学習用データを構成している。位置推定モデル８０Ａの学習は、油圧ショベル１００の出荷前に、工場で行なわれる。
【００８５】
プロセッサ１０３は、角度変化量算出部７２を有している。角度変化量算出部７２は、角度変換部６２で取得されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋと、角度変換部６２で角度を取得した時刻とに基づいて、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの変化量を取得する。角度変化量算出部７２は、作業機２の基準位置におけるブーム角度θｂ、アーム角度θａおよびバケット角度θｋと、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの変化量とから、作業機２の現在位置を取得する。
【００８６】
プロセッサ１０３は、誤差検出部７６を有している。誤差検出部７６は、作業機位置推定部７５によって推定された作業機２の位置の推定結果と、角度変化量算出部７２で取得された作業機２の現在位置とを比較する。誤差検出部７６は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの真値に対する推定結果の誤差を算出する。
【００８７】
プロセッサ１０３は、位置推定モデル更新部７７を有している。位置推定モデル更新部７７は、誤差検出部６６が算出したブーム角度θｂ、アーム角度θａおよびバケット角度θｋの誤差に基づいて、位置推定モデル８０Ｂを更新する。このようにして、位置推定モデル８０Ｂが学習される。圧力センサ３６によって検出されるパイロット油圧に代表される、操作装置２５の操作に基づき作業機を動作させる操作指令値と、角度変化量算出部７２で算出される、操作指令値を検出したときの作業機２の基準位置からの変位量とは、位置推定モデル８０Ｂを学習させるための学習用データを構成している。位置推定モデル８０Ｂの学習は、油圧ショベル１００の出荷前に、工場で行なわれる。
【００８８】
図７は、学習済みの第１の位置推定モデルの製造方法を示すフローチャートである。図８は、第１の位置推定モデルを学習させるための処理を示す概略図である。図６について説明した内容と一部重複もあるが、図７および図８を参照して、本体１に対する作業機２の相対位置を推定する位置推定モデル８０Ａ（第１の位置推定モデル）を学習させるための処理について、以下に説明する。
【００８９】
図７に示されるように、まずステップＳ１０１において、撮像画像を取得する。コンピュータ１０２Ａ、より詳しくは画像処理部６１は、撮像装置（カメラ）５０により撮像された撮像画像を、撮像装置５０から取得する。撮像画像にはタイムスタンプが付与されており、撮像した時刻を判別できるように設定されている。画像処理部６１は、撮像装置５０が撮像した撮像画像をリアルタイムに取得してもよい。画像処理部６１は、撮像装置５０から撮像画像を所定時刻に、または所定時間毎に取得してもよい。画像処理部６１は、撮像画像を画像処理して、記憶装置１０４に保存する。
【００９０】
次にステップＳ１０２において、角度計測データを取得する。コンピュータ１０２Ａ、より詳しくは角度変換部６２は、エンコーダ５１によって検出されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、エンコーダ５１から取得する。このようにして取得された角度のデータは、撮像画像に割り当てられたものとされる。ある時刻に撮像された撮像画像に対して、その時刻に検出された計測データが対応付け（ラベル付け）される。図８に示すように、撮像画像と、その撮像画像を撮像した時点における作業機２の角度とを含む学習用データ６１Ａ，６１Ｂ，６１Ｃ，…，が作成される。学習用データ６１Ａ，６１Ｂ，６１Ｃ，…，は、位置推定モデル８０Ａの学習のための学習用データセットを構成している。
【００９１】
学習用データは、図８に示されるような、作業機２の姿勢が異なる複数の撮像画像を含んでいる。学習用データは、同じ姿勢の作業機２を、たとえば日中、逆光時、夜間などの異なる環境下で撮像した複数の撮像画像を含んでいてもよい。
【００９２】
次にステップＳ１０３において、作業機２の相対位置を出力する。コンピュータ１０２Ａ、より詳しくは作業機位置推定部６５は、記憶装置１０４から位置推定モデル８０Ａを読み出す。位置推定モデル８０Ａは、図８に示すニューラルネットワークを含んでいる。ニューラルネットワークは、入力層８１Ａと、中間層（隠れ層）８２Ａと、出力層８３Ａとを含んでいる。各層８１Ａ，８２Ａ，８３Ａは、１または複数のニューロンを有している。各層８１Ａ，８２Ａ，８３Ａのニューロンの数は、適宜設定することができる。
【００９３】
互いに隣接する層のニューロン同士は結合されており、各結合には重み（結合荷重）が設定されている。ニューロンの結合数は、適宜設定されてよい。各ニューロンには閾値が設定されており、各ニューロンへの入力値と重みとの積の和が閾値を超えているか否かによって、各ニューロンの出力値が決定される。
【００９４】
位置推定モデル８０Ａは、撮像画像から作業機２の相対位置を求めるように学習される。学習によって得られた位置推定モデル８０Ａのパラメータは、記憶装置１０４に記憶されている。位置推定モデル８０Ａのパラメータは、たとえば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロン間の結合の重み、および各ニューロンの閾値を含んでいる。
【００９５】
作業機位置推定部６５は、撮像装置５０が撮像した撮像画像を、入力層８１Ａに入力する。出力層８３Ａから、本体１に対する作業機２の相対位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す出力値が出力される。たとえば、コンピュータ１０２Ａは、撮像画像を入力層８１Ａの入力として用いて、位置推定モデル８０Ａのニューラルネットワークの順方向伝播の演算処理を行う。これにより、コンピュータ１０２Ａは、ニューラルネットワークの出力層８３Ａから出力される出力値として、作業機２の相対位置を推定した推定位置を得る。
【００９６】
ステップＳ１０２の処理とステップＳ１０３の処理とは、ステップＳ１０２の処理の後にステップＳ１０３の処理が行なわれなくてもよい。ステップＳ１０２の処理とステップＳ１０３の処理とが同時に行なわれてもよく、ステップＳ１０３の処理の後にステップＳ１０２の処理が行なわれてもよい。
【００９７】
次にステップＳ１０４において、ステップＳ１０３で出力された作業機２の推定位置と、ステップＳ１０２で取得された作業機２の角度の計測データとの差を算出する。コンピュータ１０２Ａ、より詳しくは誤差検出部６６は、位置推定モデル８０Ａの出力層８３Ａから出力された、撮像画像から作業機２の相対位置を推定した推定位置と、角度変換部６２で得られた作業機２の相対位置の計測位置とを比較して、作業機２の相対位置の真値に対する推定値の誤差を算出する。
【００９８】
コンピュータ１０２Ａは、撮像画像を入力データとし、撮像画像を撮像した時点に作業機２の相対位置を計測した計測位置を教師データとして、位置推定モデル８０Ａの学習を行う。コンピュータ１０２Ａは、算出した出力値の誤差から、バックプロパゲーションにより、各ニューロン間の結合の重み、および、各ニューロンの閾値のそれぞれの誤差を算出する。
【００９９】
次にステップＳ１０５において、位置推定モデル８０Ａを更新する。コンピュータ１０２Ａ、より詳しくは位置推定モデル更新部６７は、誤差検出部６６で算出された作業機２の相対位置の真値に対する推定値の誤差に基づいて、各ニューロン間の結合の重み、および各ニューロンの閾値などの、位置推定モデル８０Ａのパラメータを更新する。そして、同じ撮像画像が入力層８１Ａに入力されたならば真値により近い出力値を出力できるようにする。更新された位置推定モデル８０Ａのパラメータは、記憶装置１０４に記憶される。
【０１００】
次回に作業機２の相対位置を推定するときには、更新された位置推定モデル８０Ａに撮像画像を入力して、作業機２の相対位置の推定結果の出力を得る。コンピュータ１０２Ａは、位置推定モデル８０Ａが出力する作業機２の相対位置の推定結果が作業機２の相対位置を計測した計測位置と一致するようになるまで、ステップＳ１０１からステップＳ１０５までの処理を繰り返す。このようにして、位置推定モデル８０Ａのパラメータが最適化され、位置推定モデル８０Ａの学習が行なわれる。
【０１０１】
位置推定モデル８０Ａが十分に学習を積み重ねた結果、十分に精度の高い推定結果の出力が得られるようになると、コンピュータ１０２Ａは位置推定モデル８０Ａの学習を終える。このようにして、学習済みの位置推定モデル８０Ａが作成される。そして、処理を終了する（エンド）。
【０１０２】
図９は、学習済みの第２の位置推定モデルの製造方法を示すフローチャートである。図１０は、第２の位置推定モデルを学習させるための処理を示す概略図である。図６について説明した内容と一部重複もあるが、図９および図１０を参照して、本体１に対する作業機２の相対位置を推定する位置推定モデル８０Ｂ（第２の位置推定モデル）を学習させるための処理について、以下に説明する。
【０１０３】
図９に示されるように、まずステップＳ１１１において、作業機２の基準位置を設定する。コンピュータ１０２Ａは、位置推定モデル８０Ａを用いて撮像画像からブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す出力値を得るときに、撮像画像に基づけば現在のブーム角度θｂ、アーム角度θａおよびバケット角度θｋを何％の確率で推定できる、とする推定結果の精度をも得る。作業機２の基準位置は、たとえば、撮像画像から位置推定モデル８０Ａを用いて作業機２の推定位置を求める推定の精度が所定値よりも低下する直前の、位置推定モデル８０Ａによる作業機２の推定位置とすることができる。
【０１０４】
作業機２の基準位置を設定する際の、位置推定モデル８０Ａによる推定の精度の閾値は、７０％以上、たとえば７５％以上、８０％以上、８５％以上、または９０％以上と設定することができる。
【０１０５】
次にステップＳ１１２において、パイロット油圧データを取得する。コンピュータ１０２Ａは、圧力センサ３６により検出されたパイロット油圧の検出値を、圧力センサ３６から取得する。コンピュータ１０２Ａは、圧力センサ３６が検出したパイロット油圧をリアルタイムに取得してもよい。コンピュータ１０２Ａは、圧力センサ３６からパイロット油圧を所定時刻に、または所定時間毎に取得してもよい。コンピュータ１０２Ａは、取得されたパイロット油圧を記憶装置１０４に保存する。
【０１０６】
次にステップＳ１１３において、角度計測データを取得する。コンピュータ１０２Ａ、より詳しくは角度変換部６２は、エンコーダ５１によって検出されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、エンコーダ５１から取得する。このようにして取得された角度のデータは、パイロット油圧に割り当てられたものとされる。ある時刻に所得されたパイロット油圧に対して、その時刻に取得された角度計測データが対応付け（ラベル付け）される。
【０１０７】
図１０に示すように、圧力センサ３６によって検出された作業機２の動作の方向（たとえば、バケット８のダンプ動作または掘削動作）およびパイロット油圧と、パイロット油圧を検出した時点における作業機２の位置（たとえば、バケット角度θｋ）と、を含む学習用データ７１Ａ，７１Ｂ，７１Ｃ，…，が作成される。学習用データ７１Ａ，７１Ｂ，７１Ｃ，…，は、位置推定モデル８０Ｂの学習のための学習用データセットを構成している。
【０１０８】
次にステップＳ１１４において、作業機２の角度の変化量が算出される。コンピュータ１０２Ａ、より詳しくは角度変化量算出部７２は、異なる時刻に作成された２つの学習用データ７１Ａ，７１Ｂ，７１Ｃ，…から、作業機２の変位量（たとえば、バケット角度θｋの変化量）を算出する。コンピュータ１０２Ａはまた、そのときのパイロット油圧の変動を求める。
【０１０９】
次にステップＳ１１５において、作業機２の変位量を推定する。コンピュータ１０２Ａ、より詳しくは作業機変位量推定部７１は、記憶装置１０４から位置推定モデル８０Ｂを読み出す。位置推定モデル８０Ｂは、図１０に示すニューラルネットワークを含んでいる。ニューラルネットワークは、入力層８１Ｂと、中間層（隠れ層）８２Ｂと、出力層８３Ｂとを含んでいる。各層８１Ｂ，８２Ｂ，８３Ｂは、１または複数のニューロンを有している。各層８１Ｂ，８２Ｂ，８３Ｂのニューロンの数は、適宜設定することができる。
【０１１０】
互いに隣接する層のニューロン同士は結合されており、各結合には重み（結合荷重）が設定されている。ニューロンの結合数は、適宜設定されてよい。各ニューロンには閾値が設定されており、各ニューロンへの入力値と重みとの積の和が閾値を超えているか否かによって、各ニューロンの出力値が決定される。
【０１１１】
位置推定モデル８０Ｂは、パイロット油圧から作業機２の変位量を求めるように学習される。学習によって得られた位置推定モデル８０Ｂのパラメータは、記憶装置１０４に記憶されている。位置推定モデル８０Ｂのパラメータは、たとえば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロン間の結合の重み、および各ニューロンの閾値を含んでいる。
【０１１２】
作業機変位量推定部７１は、圧力センサ３６が検出したパイロット油圧を、入力層８１Ｂに入力する。出力層８３Ｂから、作業機２の変位量、具体的にはバケット角度θｋの変化量を示す出力値が出力される。たとえば、コンピュータ１０２Ａは、パイロット油圧を入力層８１Ｂの入力として用いて、位置推定モデル８０Ｂのニューラルネットワークの順方向伝播の演算処理を行う。これにより、コンピュータ１０２Ａは、ニューラルネットワークの出力層８３Ｂから出力される出力値として、作業機２の変位量を推定した推定変位量を得る。
【０１１３】
バケット８のダンプ動作または掘削動作を検出するパイロット油圧に加えて、ブーム６の上げ動作または下げ動作を検出するパイロット油圧、およびアーム７のダンプ動作または掘削動作を検出するパイロット油圧を、入力層８１Ｂへ入力してもよい。出力層８３Ｂから出力させる出力値は、バケット角度θｋの変化量に加えて、ブーム角度θｂおよびアーム角度θａの変化量を含んでもよい。入力層８１Ｂへ入力されるデータは、パイロット油圧に加えて、エンジン３１の回転数、油圧ポンプ３３の容量などを含んでもよく、これら追加の入力データによって作業機２の変位量の推定の精度を向上できる。
【０１１４】
次にステップＳ１１６において、作業機２の位置を推定する。コンピュータ１０２Ａ、より詳しくは作業機位置推定部７５は、ステップＳ１１１で設定された作業機２の基準位置に、基準位置を設定した時刻から現在時刻までの作業機２の変位量の推定結果を加算することで、作業機２の現在位置を推定した推定位置の出力を得る。
【０１１５】
ステップＳ１１３，Ｓ１１４の処理とステップＳ１１５，Ｓ１１６の処理とは、ステップＳ１１３，Ｓ１１４の処理の後にステップＳ１１５，Ｓ１１６の処理が行なわれなくてもよい。ステップＳ１１３，Ｓ１１４の処理とステップＳ１１５，Ｓ１１６の処理とが同時に行なわれてもよく、Ｓ１１５，Ｓ１１６の処理の後にステップＳ１１３，Ｓ１１４の処理が行なわれてもよい。
【０１１６】
次にステップＳ１１７において、ステップＳ１１４で算出された作業機２の変位量と、ステップＳ１１５で出力された作業機２の推定変位量との差を算出する。コンピュータ１０２Ａ、より詳しくは誤差検出部７６は、位置推定モデル８０Ｂの出力層８３Ｂから出力された、パイロット油圧などから作業機２の変位量を推定した推定変位量と、角度変化量算出部７２で得られた作業機２の角度の変化量とを比較して、作業機２の変位量の真値に対する推定値の誤差を算出する。
【０１１７】
コンピュータ１０２Ａは、パイロット油圧などを入力データとし、基準位置を設定した時刻からパイロット油圧を検出した時刻までに作業機２の位置が変化した変位量を教師データとして、位置推定モデル８０Ｂの学習を行う。コンピュータ１０２Ａは、算出した出力値の誤差から、バックプロパゲーションにより、各ニューロン間の結合の重み、および、各ニューロンの閾値のそれぞれの誤差を算出する。
【０１１８】
次にステップＳ１１８において、位置推定モデル８０Ｂを更新する。コンピュータ１０２Ａ、より詳しくは位置推定モデル更新部７７は、誤差検出部７６で算出された作業機２の変位量の真値に対する推定値の誤差に基づいて、各ニューロン間の結合の重み、および各ニューロンの閾値などの、位置推定モデル８０Ｂのパラメータを更新する。そして、同じ撮像画像が入力層８１Ｂに入力されたならば真値により近い出力値を出力できるようにする。更新された位置推定モデル８０Ｂのパラメータは、記憶装置１０４に記憶される。
【０１１９】
次回に作業機２の変位量を推定するときには、更新された位置推定モデル８０Ｂにパイロット油圧を入力して、作業機２の変位量の推定結果の出力を得る。コンピュータ１０２Ａは、位置推定モデル８０Ｂが出力する作業機２の変位量の推定結果が作業機２の変位量の計測結果と一致するようになるまで、ステップＳ１１１からステップＳ１１８までの処理を繰り返す。このようにして、位置推定モデル８０Ｂのパラメータが最適化され、位置推定モデル８０Ｂの学習が行なわれる。
【０１２０】
位置推定モデル８０Ｂが十分に学習を積み重ねた結果、十分に精度の高い推定結果の出力が得られるようになると、コンピュータ１０２Ａは位置推定モデル８０Ｂの学習を終える。このようにして、学習済みの位置推定モデル８０Ｂが作成される。そして、処理を終了する（エンド）。
【０１２１】
なお、位置推定モデル８０Ａ，８０Ｂの各種のパラメータの初期値は、テンプレートにより与えられてもよい。またはパラメータの初期値は、人間の入力により手動で与えられてもよい。位置推定モデル８０Ａ，８０Ｂの再学習を行うときには、コンピュータ１０２Ａは、再学習を行う対象となる位置推定モデル８０Ａ，８０Ｂのパラメータとして記憶装置１０４に記憶されている値に基づいて、パラメータの初期値を用意してもよい。
【０１２２】
図１１は、工場出荷されるコンピュータ１０２Ｂの内部構成の概略を示すブロック図である。エンコーダ５１は、出荷前に位置推定モデル８０Ａ，８０Ｂを学習させる目的で作業機２に仮取り付けされ、位置推定モデル８０Ａ，８０Ｂの学習が完了すると作業機２から取り外される。工場出荷される油圧ショベル１００は、エンコーダ５１を備えていない。工場出荷される油圧ショベル１００は、図６に示すシステム構成のうち、撮像装置５０、圧力センサ３６およびコンピュータ１０２Ｂ（プロセッサ１０３、および記憶装置１０４）のみを備えている。
【０１２３】
図１２は、工場出荷後に作業機２の相対位置を推定するためにコンピュータ１０２Ｂによって実行される処理を示すフローチャートである。図１３は、撮像画像から作業機２の相対位置を求めるように学習済みの位置推定モデル８０Ａを用いた、撮像画像から作業機２の相対位置を推定する処理を示す模式図である。図１４は、学習済みの位置推定モデル８０Ａ、およびパイロット油圧から作業機２の相対位置を求めるように学習済みの位置推定モデル８０Ｂを用いた、撮像画像および操作指令値から作業機２の相対位置を推定する処理を示す模式図である。図１１〜１４を参照して、工場出荷後に作業現場で取得した撮像画像およびパイロット油圧から作業機２の相対位置を推定する処理について、以下に説明する。
【０１２４】
まずステップＳ２０１において、撮像画像を取得する。コンピュータ１０２Ｂ、より詳しくは画像処理部６１は、撮像装置（カメラ）５０により撮像された撮像画像６３（図１３）を、撮像装置５０から取得する。
【０１２５】
次にステップＳ２０２において、作業機２の相対位置を出力する。コンピュータ１０２Ｂ、より詳しくは作業機位置推定部６５は、位置推定モデル８０Ａおよび学習済みのパラメータの最適値を記憶装置１０４から読み出すことで、学習済みの位置推定モデル８０Ａを取得する。作業機位置推定部６５は、撮像装置５０が撮像した撮像画像６３を、学習済みの位置推定モデル８０Ａへの入力データとして用いる。作業機位置推定部６５は、撮像画像６３を、学習済みの位置推定モデル８０Ａの入力層８１Ａに含まれる各ニューロンに入力する。学習済みの位置推定モデル８０Ａの出力層８３Ａから、本体１に対する作業機２の相対位置を推定した推定位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す角度出力値７８（図１３）が出力される。
【０１２６】
次に、ステップＳ２０３において、ステップＳ２０２で出力されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋの精度が、閾値以上であるか否かが判断される。ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの精度がいずれも閾値以上であり、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの全部が高精度に推定されたと判断された場合には、ステップＳ２０２で出力されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋが、現時点における本体１に対する作業機２の相対位置を定めるものとして決定される。
【０１２７】
図１３の撮像画像６３に示されるように、作業機２のうち、ブーム６、アーム７およびバケット８の全部が撮像画像６３に明瞭に写っている場合、位置推定モデル８０Ａを用いて、精度の高い角度出力値７８の出力を得ることができる。この場合、ステップＳ２０３の判断においてＹＥＳと判断され、ステップＳ２０４に進み、基準位置の更新が行なわれる。コンピュータ１０２Ｂは、ステップＳ２０２で出力された角度出力値７８を後の処理に用いられる基準位置として更新し、更新した基準位置と、ステップＳ２０２で角度出力値７８を出力した時刻とを、記憶装置１０４に記憶する。
【０１２８】
一方、図１４に示されるように、作業機２を用いて掘削作業を行なっている場合など、バケット８が土中に隠れて撮像画像６３に明瞭に写らない場合がある。角度出力仮値７８Ｔのように、ブーム角度θｂおよびアーム角度θａは精度高く推定されたと判断される一方、バケット角度θｋについては、精度が低く閾値未満である場合がある。このような場合、位置推定モデル８０Ａを用いて推定したバケット角度θｋをそのまま用いるのは必ずしも適切でない。
【０１２９】
図１２の処理フローにおいて、位置推定モデル８０Ａから出力されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋのいずれか１つ以上の精度が閾値未満である場合には、ステップＳ２０３の判断においてＮＯと判断される。この場合には、ステップＳ２０５に進み、パイロット油圧データが取得される。コンピュータ１０２Ｂは、圧力センサ３６により検出されたパイロット油圧データ７３（図１４）を、圧力センサ３６から取得する。パイロット油圧データ７３は、図１４に示されるように、位置推定対象部（本例の場合、バケット８）の動作方向と、動作方向に対応する圧力センサ３６によって検出されたパイロット油圧とを含んでいる。
【０１３０】
次にステップＳ２０６において、作業機２の変位量を推定する。コンピュータ１０２Ｂ、より詳しくは作業機変位量推定部７１は、位置推定モデル８０Ｂおよび学習済みのパラメータの最適値を記憶装置１０４から読み出すことで、学習済みの位置推定モデル８０Ｂを取得する。作業機変位量推定部７１は、パイロット油圧データ７３を、学習済みの位置推定モデル８０Ｂの入力層８１Ｂに含まれる各ニューロンに入力する。学習済みの位置推定モデル８０Ｂの出力層８３Ｂから、作業機２の変位量を推定した推定変位量、具体的には位置推定対象部であるバケット８の角度の変化量（バケット角度θｋの変化量）が出力される。
【０１３１】
次にステップＳ２０７において、作業機２の位置を推定する。コンピュータ１０２Ｂ、より詳しくは作業機位置推定部７５は、作業機２の基準位置を記憶装置１０４から読み出す。作業機位置推定部７５は、作業機２の基準位置に、ステップＳ２０４で基準位置を更新した時刻からの作業機２の変位量を加算することにより、作業機２の現在位置を推定する。このようにして位置推定対象部（本例の場合、バケット８）の位置（バケット角度θｋ）が推定される。そして、図１４に示されるように、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋを含む角度出力値７８が出力される。
【０１３２】
最後に、ステップＳ２０８において、コンピュータ１０２Ｂは、本体１に対する作業機２の相対位置を含む管理データを生成する。コンピュータ１０２Ｂは、管理データを記憶装置１０４に記録する。そして、処理を終了する（エンド）。
【０１３３】
以上説明したように、実施形態に係るシステムでは、コンピュータ１０２Ｂは、位置推定対象部の位置を求めるための学習済みの位置推定モデル８０Ｂを有している。図１２，１４に示されるように、コンピュータ１０２Ｂは、第１操作レバー２５Ｒおよび第２操作レバー２５Ｌの操作に基づき作業機２を動作させる操作指令値として、パイロット油圧データ７３を取得する。コンピュータ１０２Ｂは、学習済みの位置推定モデル８０Ｂを用いて、パイロット油圧データ７３から作業機２の変位量を推定する。コンピュータ１０２Ｂはさらに、作業機２の基準位置と、基準位置からの変位量とから、位置推定対象部の位置を推定した推定位置を出力する。
【０１３４】
したがって、本体１に対する作業機２の相対位置の推定に適した人工知能の位置推定モデル８０Ｂを利用して、作業機２の姿勢を推定することができる。これにより、人工知能を用いて、作業機２の姿勢をコンピュータ１０２Ｂによって容易かつ精度よく判定することができる。
【０１３５】
パイロット油圧データ７３から作業機２の姿勢を推定できるので、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋを検出するためのセンサを不要にできる。角度センサの耐久性が油圧ショベル１００の作業に影響を及ぼすこともない、したがって、簡易で安価かつ信頼性の高い構成で、従前の油圧ショベル１００と同様に作業機２の現在の姿勢を取得することができる。
【０１３６】
図１５は、位置推定モデル８０Ａ，８０Ｂの学習に関する変形例を示す概略図である。図６〜１０の説明においては、油圧ショベル１００の工場出荷前に位置推定モデル８０Ａ，８０Ｂを学習させる例について説明した。位置推定モデル８０Ａ，８０Ｂを学習させるための学習用データは、複数の油圧ショベル１００から収集されてもよい。
【０１３７】
図１５に示される、第１の油圧ショベル１００（油圧ショベル１００Ａ）と、第２の油圧ショベル１００（油圧ショベル１００Ｂ）と、第３の油圧ショベル１００（油圧ショベル１００Ｃ）と、第４の油圧ショベル１００（油圧ショベル１００Ｄ）とは、同じ機種である。油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、撮像装置５０とエンコーダ５１とを備えている。油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、工場出荷後であり、作業現場にある。
【０１３８】
コンピュータ１０２Ａは、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから、撮像装置５０が撮像した撮像画像を取得する。コンピュータ１０２Ａはまた、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから、撮像画像を撮像した時点に計測したブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、撮像画像に対応付けて取得する。コンピュータ１０２Ａは、同時刻に取得した撮像画像と作業機２の角度とを用いて、撮像画像から作業機２の相対位置を推定した推定位置を求めることができるように、位置推定モデル８０Ａを学習させる。
【０１３９】
コンピュータ１０２Ａは、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから、圧力センサ３６が検出したパイロット油圧を取得する。コンピュータ１０２Ａはまた、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから、パイロット油圧を検出した時点に計測したブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、パイロット油圧に対応付けて取得する。コンピュータ１０２Ａは、同時刻に取得したパイロット油圧と作業機２の角度とを用いて、パイロット油圧から作業機２の相対位置を推定した推定位置を求めることができるように、位置推定モデル８０Ｂを学習させる。
【０１４０】
コンピュータ１０２Ａは、通信インタフェース１０５（図５）を介して、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから撮像画像と作業機２の角度の計測データとを取得してもよい。またはコンピュータ１０２Ａは、外部記録媒体１０９を介して、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから撮像画像と作業機２の角度の計測データとを取得してもよい。
【０１４１】
コンピュータ１０２Ａは、油圧ショベル１００Ａ，１００Ｂ，１００Ｃと同じ作業現場に配置されていてもよい。またはコンピュータ１０２Ａは、作業現場から離れた遠隔地、たとえば管理センターに配置されていてもよい。油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、同じ作業現場にあってもよく、別々の作業現場にあってもよい。
【０１４２】
学習済みの位置推定モデル８０Ａ，８０Ｂは、通信インタフェース１０５または外部記録媒体１０９などを介して、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃへ提供される。このようにして、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、学習済みの位置推定モデル８０Ａ，８０Ｂを備えるものとされる。
【０１４３】
各油圧ショベル１００Ａ，１００Ｂ，１００Ｃに既に位置推定モデル８０Ａ，８０Ｂが保存されている場合には、保存されている位置推定モデル８０Ａ，８０Ｂが書き換えられる。上述した学習用データの収集と位置推定モデル８０Ａ，８０Ｂの学習とを定期的に実行することで、位置推定モデル８０Ａ，８０Ｂの書き換えが定期的に行なわれるようにしてもよい。位置推定モデル８０Ａ，８０Ｂのパラメータの最新の更新値は、記憶装置１０４にその都度記憶されている。
【０１４４】
学習済みの位置推定モデル８０Ａ，８０Ｂは、油圧ショベル１００Ｄにも提供される。学習用データを提供する油圧ショベル１００Ａ，１００Ｂ，１００Ｃと、学習用データを提供しない油圧ショベル１００Ｄとの両方に、位置推定モデル８０Ａ，８０Ｂが提供される。油圧ショベル１００Ｄは、油圧ショベル１００Ａ，１００Ｂ，１００Ｃのいずれかと同じ作業現場にあってもよく、油圧ショベル１００Ａ，１００Ｂ，１００Ｃとは異なる作業現場にあってもよい。油圧ショベル１００Ｄは、工場出荷前であってもよい。
【０１４５】
上述した位置推定モデル８０Ａ，８０Ｂは、学習用データ６１Ａ，６１Ｂ，６１Ｃ，…，および学習用データ７１Ａ，７１Ｂ，７１Ｃ，…，を用いて機械学習により学習したモデルに限られず、当該学習したモデルを利用して生成されたモデルであってもよい。たとえば位置推定モデル８０Ａ，８０Ｂは、学習済みモデルにデータの入出力を繰り返すことで得られる結果を基に学習させた別の学習済みモデル（蒸留モデル）であってもよい。図１６は、蒸留モデルを生成するための処理を示すフローチャートである。
【０１４６】
図１６に示されるように、まずステップＳ３０１において、撮像画像およびパイロット油圧データを取得する。コンピュータ１０２Ａ、より詳しくは画像処理部６１は、撮像装置（カメラ）５０により撮像された撮像画像６３（図１３）を、撮像装置５０から取得する。コンピュータ１０２Ａは、圧力センサ３６により検出されたパイロット油圧データ７３（図１４）を、圧力センサ３６から取得する。
【０１４７】
次にステップＳ３０２において、コンピュータ１０２Ａは、学習済みの位置推定モデル８０Ａ，８０Ｂを用いて、本体１に対する作業機２の相対位置を推定した推定位置を求める。ステップＳ３０３において、コンピュータ１０２Ａは、推定された作業機２の相対位置を出力する。
【０１４８】
コンピュータ１０２Ａ、より詳しくは作業機位置推定部６５は、記憶装置１０４から学習済みの位置推定モデル８０Ａを読み出す。作業機位置推定部６５は、撮像装置５０が撮像した撮像画像６３を、学習済みの位置推定モデル８０Ａの入力層８１Ａに入力する。学習済みの位置推定モデル８０Ａの出力層８３Ａから、本体１に対する作業機２の相対位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す角度出力値７８（図１１）の推定結果が出力される。
【０１４９】
コンピュータ１０２Ａ、より詳しくは作業機変位量推定部７１は、記憶装置１０４から学習済みの位置推定モデル８０Ｂを読み出す。作業機変位量推定部７１は、圧力センサ３６が検出したパイロット油圧を、学習済みの位置推定モデル８０Ｂの入力層８１Ｂに入力する。学習済みの位置推定モデル８０Ｂの出力層８３Ｂから、作業機２の変位量、具体的には位置推定対象部（たとえばバケット８）の変位量（たとえばバケット角度θｋの変化量）の推定結果が出力される。
【０１５０】
次にステップＳ３０４において、コンピュータ１０２Ａは、ステップＳ３０１で取得した撮像画像およびパイロット油圧と、ステップＳ３０３で出力した作業機２の相対位置の推定結果とを、学習データとして記憶装置１０４に保存する。
【０１５１】
次にステップＳ３０５において、コンピュータ１０２Ａは、学習モデルによって別の位置推定モデルの学習を行う。コンピュータ１０２Ａは、撮像画像およびパイロット油圧をこの別の位置推定モデルの入力層に入力する。コンピュータ１０２Ａは、この別の位置推定モデルの出力層から、本体１に対する作業機２の相対位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋの推定結果を示す出力値を出力する。この別の位置推定モデルから出力された作業機２の相対位置と、ステップＳ３０３で出力した、学習済みの位置推定モデル８０Ａ，８０Ｂから出力された作業機２の相対位置との差を算出する。この差に基づいて、コンピュータ１０２Ａは、この別の位置推定モデルのパラメータを更新する。このようにして、この別の位置推定モデルの学習が行なわれる。
【０１５２】
最後にステップＳ３０６において、更新された別の位置推定モデルのパラメータを学習済みパラメータとして記憶装置１０４に保存する。そして、処理を終了する（エンド）。
【０１５３】
以上のように、作業機２の撮像画像およびパイロット油圧と学習済みの位置推定モデルを用いて作業機２の相対位置を推定した推定位置とを学習用データとして、別の位置推定モデル（蒸留モデル）を学習させることで、コンピュータ１０２Ａは、学習済みの位置推定モデルよりもシンプルな別の位置推定モデルを用いて、本体１に対する作業機２の相対位置を推定することができる。これにより、作業機２の相対位置を推定するためのコンピュータ１０２Ａの負荷を軽減することができる。なおコンピュータ１０２Ａは、他のコンピュータによって生成された学習データによって、別の位置推定モデルの学習を行なってもよい。
【０１５４】
上記実施形態では、位置推定モデル８０Ａ，８０Ｂはニューラルネットワークを含んでいる。これに限られず、位置推定モデル８０Ａ，８０Ｂは、たとえばサポートベクターマシンなど、機械学習を用いて作業機２の撮像画像から本体１に対する作業機２の相対位置を精度よく推定できるモデルであってもよい。
【０１５５】
上記実施形態では、ブーム６およびアーム７の位置を撮像画像から学習済みの位置推定モデル８０Ａを用いて推定し、バケット８の位置を学習済みの位置推定モデル８０Ｂを用いてパイロット油圧から推定する例を説明した。バケット８以外のアタッチメントの位置を推定する場合に、学習済みの位置推定モデル８０Ｂを同様に適用することも可能である。バケット８が撮像画像中に明瞭に写り、バケット８の位置を撮像画像から精度よく推定可能であるが、バケット８以外の作業機２の部位であるブーム６またはアーム７が撮像画像中で不鮮明である場合に、ブーム６またはアーム７の位置をパイロット油圧から推定してもよい。
【０１５６】
作業機２の基準位置からの変位量は、油圧シリンダのストロークエンドで較正されてもよい。たとえば位置推定対象部がバケット８の場合に、バケットシリンダ１２のストローク長が最大の時および最小のときのバケット角度θｋを予め記憶装置１０４に記憶させておくことができる。バケットシリンダ１２がストロークエンドに達するまで移動したときに、推定されるバケット角度θｋと、記憶装置１０４に記憶されているバケット角度θｋとを比較することで、推定されるバケット角度θｋを較正して、作業機２の変位量の推定の精度を向上することができる。
【０１５７】
上記実施形態では、操作装置２５はパイロット油圧方式の操作装置である例を説明したが、操作装置２５は、電気方式の操作装置でもよい。たとえば、操作装置２５が、電気レバーのような操作部材と、操作部材の傾倒量を電気的に検出するポテンショメータ傾斜計のような作動量センサとを有してもよい。作動量センサの検出データが、コンピュータ１０２Ａに出力される。操作装置２５を経由することなく油圧ポンプ３３と方向制御弁３４とを接続するパイロット油路４５０が設けられ、パイロット油路４５０にパイロット油圧を制御するための制御弁が配置される。コンピュータ１０２Ａは、作動量センサの検出データに基づいて、この制御弁を駆動するための制御信号を出力する。制御弁によって調整されたパイロット油圧に基づいて方向制御弁３４が制御され、これにより油圧アクチュエータ４０に対する作動油の供給量が調整される。この場合、作動量センサの検出データが、操作部材の操作に基づき作業機２を動作させる操作指令値に相当する。
【０１５８】
本開示の思想を適用可能な作業機械は、油圧ショベルに限られず、ブルドーザ、モータグレーダ、またはホイールローダなどの作業機を有する作業機械であってもよい。
【０１５９】
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６０】
１  本体、２  作業機、３  旋回体、４  キャブ、４Ｓ  運転席、５  走行装置、６  ブーム、７  アーム、８  バケット、８ａ  刃先、１０  ブームシリンダ、１１  アームシリンダ、１２  バケットシリンダ、１３  ブームピン、１４  アームピン、１５  バケットピン、１６  第１リンク部材、１７  第２リンク部材、１８  第１リンクピン、１９  バケットシリンダトップピン、２０  第２リンクピン、２１  アンテナ、２３  グローバル座標演算部、２５  操作装置、２５Ｌ  第２操作レバー、２５Ｒ  第１操作レバー、３１  エンジン、３３  油圧ポンプ、３４  方向制御弁、３６  圧力センサ、４０  油圧アクチュエータ、５０  撮像装置、５１  エンコーダ、６１  画像処理部、６１Ａ，６１Ｂ，６１Ｃ，７１Ａ，７１Ｂ，７１Ｃ  学習用データ、６２  角度変換部、６３  撮像画像、６５，７５  作業機位置推定部、６６，７６  誤差検出部、６７，７７  位置推定モデル更新部、７１  作業機変位量推定部、７２  角度変化量算出部、７３  パイロット油圧データ、７８  角度出力値、７８Ｔ  角度出力仮値、８０Ａ，８０Ｂ  位置推定モデル、８１Ａ，８１Ｂ  入力層、８２Ａ，８２Ｂ  中間層、８３Ａ，８３Ｂ  出力層、１００，１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ  油圧ショベル、１０２Ａ，１０２Ｂ  コンピュータ、１０３  プロセッサ、１０４  記憶装置、１０５  通信インタフェース、１０６  Ｉ／Ｏインタフェース、１０７  入力装置、１０８  出力装置、１０９  外部記録媒体、２００  制御装置、４５０  パイロット油路。
【図１】
2020122283.tif 000003
【図２】
2020122283.tif 000004
【図３】
2020122283.tif 000005
【図４】
2020122283.tif 000006
【図５】
2020122283.tif 000007
【図６】
2020122283.tif 000008
【図７】
2020122283.tif 000009
【図８】
2020122283.tif 000010
【図９】
2020122283.tif 000011
【図１０】
2020122283.tif 000012
【図１１】
2020122283.tif 000013
【図１２】
2020122283.tif 000014
【図１３】
2020122283.tif 000015
【図１４】
2020122283.tif 000016
【図１５】
2020122283.tif 000017
【図１６】
2020122283.tif 000018