本発明を実施するための形態(実施形態)につき、図面を参照しつつ詳細に説明する。
<作業機械の全体構成>
図1は、実施形態に係る作業機械の斜視図である。図2は、油圧ショベル100の制御システム200及び油圧システム300の構成を示すブロック図である。作業機械としての油圧ショベル100は、本体部としての車両本体1と作業機2とを有する。車両本体1は、旋回体である上部旋回体3と走行体としての走行装置5とを有する。上部旋回体3は、機械室3EGの内部に、動力発生装置であるエンジン及び油圧ポンプ等の装置を収容している。
実施形態において、油圧ショベル100は、動力発生装置であるエンジンに、例えばディーゼルエンジン等の内燃機関が用いられるが、動力発生装置は内燃機関に限定されない。油圧ショベル100の動力発生装置は、例えば、内燃機関と発電電動機と蓄電装置とを組み合わせた、いわゆるハイブリッド方式の装置であってもよい。また、油圧ショベル100の動力発生装置は、内燃機関を有さず、蓄電装置と発電電動機とを組み合わせた装置であってもよい。
上部旋回体3は、運転室4を有する。運転室4は、上部旋回体3の他端側に設置されている。すなわち、運転室4は、機械室3EGが配置されている側とは反対側に設置されている。運転室4内には、図2に示す、表示部29及び操作装置25が配置される。上部旋回体3の上方には、手すり9が取り付けられている。
走行装置5の上には、上部旋回体3が搭載されている。走行装置5は、履帯5a、5bを有している。走行装置5は、左右に設けられた油圧モータ5cの一方又は両方によって駆動される。走行装置5の履帯5a、5bが回転することにより、油圧ショベル100を走行させる。作業機2は、上部旋回体3の運転室4の側方側に取り付けられている。
油圧ショベル100は、履帯5a、5bの代わりにタイヤを備え、エンジンの駆動力を、トランスミッションを介してタイヤへ伝達して走行が可能な走行装置を備えたものであってもよい。このような形態の油圧ショベル100としては、例えば、ホイール式油圧ショベルがある。
上部旋回体3は、作業機2及び運転室4が配置されている側が前であり、機械室3EGが配置されている側が後である。上部旋回体3の前後方向がx方向である。前に向かって左側が上部旋回体3の左であり、前に向かって右側が上部旋回体3の右である。上部旋回体3の左右方向は、幅方向又はy方向ともいう。油圧ショベル100又は車両本体1は、上部旋回体3を基準として走行装置5側が下であり、走行装置5を基準として上部旋回体3側が上である。上部旋回体3の上下方向がz方向である。油圧ショベル100が水平面に設置されている場合、下は鉛直方向、すなわち重力の作用方向側であり、上は鉛直方向とは反対側である。
作業機2は、ブーム6とアーム7と作業具であるバケット8とブームシリンダ10とアームシリンダ11とバケットシリンダ12とを有する。ブーム6の基端部は、ブームピン13を介して車両本体1の前部に回動可能に取り付けられている。アーム7の基端部は、アームピン14を介してブーム6の先端部に回動可能に取り付けられている。アーム7の先端部には、バケットピン15を介してバケット8が取り付けられている。バケット8は、バケットピン15を中心として回動する。バケット8は、バケットピン15とは反対側に複数の刃8Bが取り付けられている。刃先8Tは、刃8Bの先端である。
バケット8は、複数の刃8Bを有していなくてもよい。つまり、図1に示すような刃8Bを有しておらず、刃先が鋼板によってストレート形状に形成されたようなバケットであってもよい。作業機2は、例えば、単数の刃を有するチルトバケットを備えていてもよい。チルトバケットとは、バケットチルトシリンダを備え、バケットが左右にチルト傾斜することで油圧ショベル100が傾斜地にあっても、斜面、平地を自由な形に成形したり、整地したりすることができ、底板プレートによる転圧作業もできるバケットである。この他にも、作業機2は、バケット8の代わりに、法面バケット又は削岩用のチップを備えた削岩用のアタッチメント等を作業具として備えていてもよい。
図1に示すブームシリンダ10とアームシリンダ11とバケットシリンダ12とは、それぞれ作動油の圧力によって駆動される油圧シリンダである。以下において、作動油の圧力を、適宜油圧と称する。ブームシリンダ10はブーム6を駆動して、昇降させる。アームシリンダ11は、アーム7を駆動して、アームピン14の周りを回動させる。バケットシリンダ12は、バケット8を駆動して、バケットピン15の周りを回動させる。
ブームシリンダ10、アームシリンダ11及びバケットシリンダ12等の油圧シリンダと図2に示される油圧ポンプ36、37との間には、図2に示される方向制御弁64が設けられている。方向制御弁64は、油圧ポンプ36、37からブームシリンダ10、アームシリンダ11及びバケットシリンダ12等に供給される作動油の流量を制御するとともに、作動油が流れる方向を切り替える。方向制御弁64は、油圧モータ5cを駆動するための走行用方向制御弁と、ブームシリンダ10、アームシリンダ11及びバケットシリンダ12並びに上部旋回体3を旋回させる旋回モータ38を制御するための作業機用方向制御弁とを含む。
操作装置25から供給される、所定のパイロット圧力に調整された作動油が方向制御弁64のスプールを動作させると、方向制御弁64から流出する作動油の流量が調整されて、油圧ポンプ36、37からブームシリンダ10、アームシリンダ11、バケットシリンダ12、旋回モータ38又は油圧モータ5cに供給される作動油の流量が制御される。その結果、ブームシリンダ10、アームシリンダ11及びバケットシリンダ12等の動作が制御される。
また、図2に示される作業機コントローラ26が、図2に示される制御弁27を制御することにより、操作装置25から方向制御弁64に供給される作動油のパイロット圧が制御されるので、方向制御弁64からブームシリンダ10、アームシリンダ11、バケットシリンダ12又は旋回モータ38に供給される作動油の流量が制御される。その結果、作業機コントローラ26は、ブームシリンダ10、アームシリンダ11、バケットシリンダ12及び上部旋回体3の動作を制御することができる。
上部旋回体3の上部には、アンテナ21、22が取り付けられている。アンテナ21、22は、油圧ショベル100の現在位置を検出するために用いられる。アンテナ21、22は、図2に示されるグローバル座標演算装置23と電気的に接続されている。グローバル座標演算装置23は、油圧ショベル100の位置を検出する位置検出装置である。グローバル座標演算装置23は、RTK−GNSS(Real Time Kinematic - Global Navigation Satellite Systems、GNSSは全地球航法衛星システムをいう)を利用して油圧ショベル100の現在位置を検出する。以下の説明において、アンテナ21、22を、適宜GNSSアンテナ21、22と称する。GNSSアンテナ21、22が受信したGNSS電波に応じた信号は、グローバル座標演算装置23に入力される。グローバル座標演算装置23は、グローバル座標系におけるGNSSアンテナ21、22の設置位置を求める。全地球航法衛星システムの一例としては、GPS(Global Positioning System)が挙げられるが、全地球航法衛星システムは、これに限定されるものではない。
GNSSアンテナ21、22は、図1に示すように、上部旋回体3の上であって、油圧ショベル100の左右方向、すなわち幅方向に離れた両端位置に設置されることが好ましい。実施形態において、GNSSアンテナ21、22は、上部旋回体3の幅方向両側にそれぞれ取り付けられた手すり9に取り付けられる。GNSSアンテナ21、22が上部旋回体3に取り付けられる位置は手すり9に限定されるものではないが、GNSSアンテナ21、22は、可能な限り離れた位置に設置される方が、油圧ショベル100の現在位置の検出精度は向上するので好ましい。また、GNSSアンテナ21、22は、オペレータの視界を極力妨げない位置に設置されることが好ましい。したがって、例えば、GNSSアンテナ21、22は、機械室3EGの後方に配置されたカウンタウェイトの上に配置されてもよい。
図2に示すように、油圧ショベル100の油圧システム300は、エンジン35と、油圧ポンプ36、37とを備える。油圧ポンプ36、37は、エンジン35によって駆動され、作動油を吐出する。油圧ポンプ36、37から吐出された作動油は、ブームシリンダ10とアームシリンダ11とバケットシリンダ12とに供給される。また、油圧ショベル100は、旋回モータ38を備える。旋回モータ38は、油圧モータであり、油圧ポンプ36、37から吐出された作動油によって駆動される。旋回モータ38は、上部旋回体3を旋回させる。なお、図2では、2つの油圧ポンプ36、37が図示されているが、油圧ポンプは1つでもよい。旋回モータ38は、油圧モータに限らず、電気モータであってもよい。
作業機械の制御システムである制御システム200は、グローバル座標演算装置23と、角速度及び加速度を検出する状態検出装置であるIMU(Inertial Measurement Unit:慣性計測装置)24と、操作装置25と、作業機制御部としての作業機コントローラ26と、位置情報生成部としてのセンサコントローラ39と、目標値生成部としての表示コントローラ28と、表示部29とを含む。操作装置25は、図1に示す作業機2、上部旋回体3及び走行装置5の少なくとも1つを操作するための装置である。操作装置25は、作業機2等を駆動させるためにオペレータによる操作を受け付けて、操作量に応じたパイロット油圧を出力する。
操作装置25は、オペレータの左側に設置される左操作レバー25Lと、オペレータの右側に配置される右操作レバー25Rと、を有する。左操作レバー25L及び右操作レバー25Rは、前後左右の動作が2軸の動作に対応されている。例えば、右操作レバー25Rの前後方向の操作は、ブーム6の操作に対応されている。右操作レバー25Rの左右方向の操作は、バケット8の操作に対応されている。左操作レバー25Lの前後方向の操作は、アーム7の操作に対応している。左操作レバー25Lの左右方向の操作は、上部旋回体3の旋回に対応している。
実施形態において、操作装置25は、パイロット油圧方式が用いられる。操作装置25には、油圧ポンプ36から、図示しない減圧弁によって所定のパイロット圧力に減圧された作動油がブーム操作、バケット操作、アーム操作、旋回操作及び走行操作に基づいて供給される。
右操作レバー25Rの前後方向の操作に応じて、パイロット油路450へパイロット油圧が供給可能とされて、オペレータによるブーム6の操作が受け付けられる。右操作レバー25Rの操作量に応じて右操作レバー25Rが備える弁装置が開き、パイロット油路450へ作動油が供給される。また、圧力センサ66は、そのときのパイロット油路450内における作動油の圧力をパイロット圧として検出する。圧力センサ66は、検出したパイロット圧を、ブーム操作信号MBとして作業機コントローラ26へ送信する。
操作装置25とブームシリンダ10との間のパイロット油路450には、圧力センサ68、制御弁(以下、適宜介入弁と称する)27C及びシャトル弁51が設けられる。右操作レバー25Rの左右方向の操作に応じて、パイロット油路450へパイロット油圧が供給可能とされて、オペレータによるバケット8の操作が受け付けられる。右操作レバー25Rの操作量に応じて右操作レバー25Rが備える弁装置が開き、パイロット油路450に作動油が供給される。また、圧力センサ66は、そのときのパイロット油路450内における作動油の圧力をパイロット圧として検出する。圧力センサ66は、検出したパイロット圧を、バケット操作信号MTとして作業機コントローラ26へ送信する。
左操作レバー25Lの前後方向の操作に応じて、パイロット油路450へパイロット油圧が供給可能とされて、オペレータによるアーム7の操作が受け付けられる。左操作レバー25Lの操作量に応じて左操作レバー25Lが備える弁装置が開き、パイロット油路450へ作動油が供給される。また、圧力センサ66は、そのときのパイロット油路450内における作動油の圧力をパイロット圧として検出する。圧力センサ66は、検出したパイロット圧を、アーム操作信号MAとして作業機コントローラ26へ送信する。
左操作レバー25Lの左右方向の操作に応じて、パイロット油路450へパイロット油圧が供給可能とされて、オペレータによる上部旋回体3の旋回操作が受け付けられる。左操作レバー25Lの操作量に応じて左操作レバー25Lが備える弁装置が開き、パイロット油路450へ作動油が供給される。また、圧力センサ66は、そのときのパイロット油路450内における作動油の圧力をパイロット圧として検出する。圧力センサ66は、検出したパイロット圧を、旋回操作信号MRとして作業機コントローラ26へ送信する。
右操作レバー25Rが操作されることにより、操作装置25は、右操作レバー25Rの操作量に応じた大きさのパイロット油圧を方向制御弁64に供給する。左操作レバー25Lが操作されることにより、操作装置25は、左操作レバー25Lの操作量に応じた大きさのパイロット油圧を制御弁27に供給する。このパイロット油圧によって、方向制御弁64のスプールが移動する。
パイロット油路450には、制御弁27が設けられている。右操作レバー25R及び左操作レバー25Lの操作量は、パイロット油路450に設置される圧力センサ66によって検出される。圧力センサ66が検出したパイロット油圧は、作業機コントローラ26に入力される。作業機コントローラ26は、入力されたパイロット油圧に応じた、パイロット油路450の制御信号Nを制御弁27に出力して、パイロット油路450を開閉する。
操作装置25は、走行用レバー25FL、25FRを有する。実施形態において、操作装置25は、パイロット油圧方式が用いられるので、油圧ポンプ36から、減圧された作動油が方向制御弁64に供給され、パイロット油路450内の作動油の圧力に基づき方向制御弁64のスプールが駆動される。すると、油圧ショベル100の走行装置5が備える油圧モータ5c、5cに、油圧ポンプ36、37から作動油が供給され、走行可能となる。パイロット油路450内の作動油の圧力、すなわちパイロット圧は、圧力センサ27PCによって検出される。
油圧ショベル100のオペレータが走行装置5を動作させる場合、オペレータは走行用レバー25FL、25FRを操作する。オペレータによる走行用レバー25FL、25FRの操作量は圧力センサ27PCで検出されて、作業機コントローラ26へ操作信号MDとして出力される。
左操作レバー25L及び右操作レバー25Rの操作量が、例えば、ポテンショメータ及びホールIC等によって検出され、作業機コントローラ26は、これらの検出値に基づいて方向制御弁64及び制御弁27を制御することによって、作業機2を制御してもよい。このように、左操作レバー25L及び右操作レバー25Rは、電気方式であってもよい。
制御システム200は、第1ストロークセンサ16と第2ストロークセンサ17と第3ストロークセンサ18とを有する。例えば、第1ストロークセンサ16はブームシリンダ10に、第2ストロークセンサ17はアームシリンダ11に、第3ストロークセンサ18はバケットシリンダ12に、それぞれ設けられる。第1ストロークセンサ16は、ブームシリンダ10の伸長に対応する変位量を検出して、センサコントローラ39に出力する。第2ストロークセンサ17は、アームシリンダ11の伸長に対応する変位量を検出して、センサコントローラ39に出力する。第3ストロークセンサ18は、バケットシリンダ12の伸長に対応する変位量を検出して、センサコントローラ39に出力する。
作業機コントローラ26は、CPU(Central Processing Unit)等のプロセッサである処理部26Pと、RAM(Random Access Memory)及びROM(Read Only Memory)等の記憶装置である記憶部26Mとを有する。作業機コントローラ26は、図2に示される圧力センサ66の検出値に基づいて、制御弁27及び介入弁27Cを制御する。
図2に示される方向制御弁64は、例えば比例制御弁であり、操作装置25から供給される作動油によって制御される。方向制御弁64は、ブームシリンダ10、アームシリンダ11、バケットシリンダ12及び旋回モータ38等の油圧アクチュエータと、油圧ポンプ36、37との間に配置される。方向制御弁64は、油圧ポンプ36、37からブームシリンダ10、アームシリンダ11、バケットシリンダ12及び旋回モータ38に供給される作動油の流量を制御する。
GNSSアンテナ21は、自身の位置を示す基準位置データP1を測位衛星から受信する。GNSSアンテナ22は、自身の位置を示す基準位置データP2を測位衛星から受信する。GNSSアンテナ21、22は、所定の周期で基準位置データP1、P2を受信する。基準位置データP1、P2は、GNSSアンテナが設置されている位置の情報である。GNSSアンテナ21、22で受信されたGNSS電波に応じた信号は、グローバル座標演算装置23に入力される。GNSSアンテナ21、22は、基準位置データP1、P2を受信する毎に、グローバル座標演算装置23に出力する。
グローバル座標演算装置23は、グローバル座標系で表される2つの基準位置データP1、P2(複数の基準位置データ)を取得する。グローバル座標演算装置23は、2つの基準位置データP1、P2に基づいて、上部旋回体3の配置を示す旋回体配置データを生成する。実施形態において、旋回体配置データには、2つの基準位置データP1、P2の少なくとも一方の基準位置データPと、2つの基準位置データP1、P2に基づいて生成された旋回体方位データQとが含まれる。これら2個のGNSSアンテナ21、22によりGPSコンパスを構成し、旋回体方位データQを得るようにしてもよい。つまり、両方のGNSSアンテナ21、22の基準位置データは出力せず、2つのGNSSアンテナの相対位置から方位角を算出し、その方位角を旋回体方位データQとしてもよい。
実施形態において、旋回体方位データQは、GNSSアンテナ21、22が取得した基準位置データPから決定される方位が、グローバル座標の基準方位(例えば北)に対してなす角、すなわち方位角である。方位角は、油圧ショベル100のヨー角でもある。旋回体方位データQは、上部旋回体3、すなわち作業機2が向いている方位を示している。
グローバル座標演算装置23は、CPU等のプロセッサである処理部と、RAM及びROM等の記憶装置である記憶部とを有する。グローバル座標演算装置23は、所定の周期でGNSSアンテナ21、22から2つの基準位置データP1、P2を取得する。グローバル座標演算装置23は、取得した2つの基準位置データP1、P2から、旋回体方位データQである油圧ショベル100の方位角、より具体的には上部旋回体3の方位角を求める。グローバル座標演算装置23は、2つの基準位置データP1、P2を取得する毎に、旋回体配置データ、すなわち基準位置データPと旋回体方位データQとを更新して、センサコントローラ39に出力する。
表示コントローラ28は、CPU等のプロセッサである処理部28Pと、RAM(Random Access Memory)及びROM等の記憶装置である記憶部28Mとを有する。表示コントローラ28は、表示部29に、例えば、後述するガイダンス画面等の画像を表示する他、センサコントローラ39から得られる油圧ショベル100の位置情報IPLを用いて、バケット8の刃先8Tの3次元位置である刃先位置を示すバケット刃先位置データSを生成する。表示部29は、例えば、液晶表示装置等であるが、これに限定されるものではない。表示部29は、例えば入力部と表示部を一体化したタッチパネルを用いることができる。実施形態においては、表示部29に隣接して、スイッチ29Sが設置されている。スイッチ29Sは、後述する掘削制御を実行させたり、実行中の掘削制御を停止させたりするための入力装置である。表示部29にタッチパネルを用いる場合、スイッチ29Sはタッチパネルの入力部に組み込まれてもよい。
表示コントローラ28は、作業機2が掘削する対象の目標施工面の画像と、バケット刃先位置データSを用いて生成したバケット8の画像とをガイダンス画面として表示部29に表示させることができる。表示コントローラ28は、ガイダンス画面により、目標施工面とバケット8との位置関係を油圧ショベル100のオペレータに認識させ、情報化施工を行う際のオペレータの負担を軽減することができる。
IMU24は、油圧ショベル100の動作を示す動作情報MIを検出する状態検出装置である。油圧ショベル100の動作は、上部旋回体3の動作及び走行装置5の動作の少なくとも一方を含む。実施形態において、動作情報MIは、油圧ショベル100の姿勢を示す情報を含んでいてもよい。油圧ショベル100の姿勢を示す情報は、油圧ショベル100のロール角、ピッチ角及び方位角が例示される。
実施形態において、IMU24は、油圧ショベル100の角速度及び加速度を検出する。油圧ショベル100の動作にともない、油圧ショベル100には、走行時に発生する加速度、旋回時に発生する角加速度及び重力加速度といった様々な加速度が生じるが、IMU24は少なくとも重力加速度を含む加速度を検出し、各加速度の種類を区別することなく検出した加速度を出力する。ここで、重力加速度は、重力に対する抗力に対応した加速度である。IMU24は、図1に示されるローカル座標系(x、y、z)において、x軸方向、y軸方向及びz軸方向の加速度と、x軸、y軸及びz軸周りの角速度(回転角速度)とを検出する。これらが動作情報MIとなる。ローカル座標系とは、油圧ショベル100を基準とした、(x、y、z)で示される3次元座標系である。
IMU24が検出する動作情報MIには、上部旋回体3の回転中心軸となるz軸を中心として上部旋回体3が旋回する回転角速度、すなわち旋回角速度ωが含まれる。旋回角速度ωは、GNSSアンテナ21、22の位置を示す情報から取得された上部旋回体3の旋回角度を時間で微分することにより求められてもよい。旋回角速度ωを時間で積分することにより、旋回角度を求めることができる。
IMU24は、上部旋回体3に取り付けられている。IMU24は、より高い精度で加速度等を検出するために、例えば、油圧ショベル100の上部旋回体3の旋回中心軸上に設けられることが望ましいが、IMU24は運転室4の下部に設置されてもよい。
センサコントローラ39は、CPU(Central Processing Unit)等のプロセッサである処理部39Pと、RAM(Random Access Memory)及びROM(Read Only Memory)等の記憶装置である記憶部39Mとを有する。センサコントローラ39には、グローバル座標演算装置23の検出値、IMU24の検出値、圧力センサ27PC、66、68の検出値、第1ストロークセンサ16の検出値、第2ストロークセンサ17の検出値及び第3ストロークセンサ18の検出値が入力される。センサコントローラ39は、グローバル座標演算装置23の検出値及びIMU24の検出値から、油圧ショベル100の位置に関連する位置情報IPLを求めて表示コントローラ28及び作業機コントローラ26に出力する。
図3は、油圧ショベル100の側面図である。図4は、油圧ショベル100の背面図である。車両本体1の左右方向、すなわち幅方向に対する傾斜角θ4は油圧ショベル100のロール角であり、車両本体1の前後方向に対する傾斜角θ5は油圧ショベル100のピッチ角であり、z軸周りにおける上部旋回体3の角度は油圧ショベル100の方位角である。ロール角はIMU24によって検出されたx軸周りの角速度を時間で積分することにより、ピッチ角はIMU24によって検出されたy軸周りの角速度を時間で積分することにより、方位角はIMU24によって検出されたz軸周りの角速度を時間で積分することにより求められる。z軸周りの角速度は、油圧ショベル100の旋回角速度ωである。すなわち、旋回角速度ωを時間で積分することにより油圧ショベル100、より具体的には上部旋回体3の方位角が得られる。
IMU24は、所定の周期で油圧ショベル100の加速度及び角速度を更新する。IMU24の更新周期は、グローバル座標演算装置23における更新周期よりも短いことが好ましい。IMU24が検出した加速度及び角速度は、動作情報MIとしてセンサコントローラ39又は作業機コントローラ26に出力される。センサコントローラ39は、IMU24から取得した動作情報MIにフィルタ処理及び積分といった処理を施して、ロール角である傾斜角θ4、ピッチ角である傾斜角θ5及び方位角を求める。センサコントローラ39は、求めた傾斜角θ4、傾斜角θ5及び方位角を、油圧ショベル100の位置に関連する位置情報IPLとして、表示コントローラ28に出力する。
表示コントローラ28は、グローバル座標演算装置23から基準位置データP及び旋回方位データQを取得する。旋回方位データQは、油圧ショベル100の方位を示す情報であり、実施形態においては、上部旋回体3の方位を示す情報である。具体的には、旋回方位データQは、上部旋回体3の方位角である。実施形態において、表示コントローラ28は、作業機位置データとして、バケット刃先位置データSを生成する。バケット刃先位置データSは、センサコントローラ39又は作業機コントローラ26によって生成されてもよい。そして、表示コントローラ28は、バケット刃先位置データSと、目標施工情報Tとを用いて、掘削対象の目標形状を示す目標掘削地形データUを生成する。目標施工情報Tは、表示コントローラ28の記憶部28M(目標施工情報格納部28C)に記憶されている。目標施工情報Tは、油圧ショベル100が備える作業機2の掘削対象の掘削後における仕上がりの目標となる情報であり、設計データから得られる目標施工面の情報を含む。目標掘削地形データUは、ローカル座標系において刃先8Tの現時点における刃先位置を通る垂線と、目標施工面との交点を掘削対象位置としたとき、掘削対象位置の前後における単数又は複数の変曲点の位置を示す情報とその前後の線の角度情報である。
センサコントローラ39は、第1ストロークセンサ16が検出したブームシリンダ長から、ローカル座標系における水平面と直交する方向(z軸方向)に対するブーム6の傾斜角θ1(図3参照)を算出する。センサコントローラ39は、第2ストロークセンサ17が検出したアームシリンダ長から、ブーム6に対するに対するアーム7の傾斜角θ2(図3参照)を算出する。センサコントローラ39は、第3ストロークセンサ18が検出したバケットシリンダ長から、アーム7に対するバケット8の傾斜角θ3を算出する。センサコントローラ39は、算出した傾斜角θ1、θ2、θ3を、作業機コントローラ26に出力する。また、IMU24は、旋回角速度ωを作業機コントローラ26に出力する。
作業機コントローラ26は、前述したように、図1に示されるz軸を中心として上部旋回体3が旋回するときにおける上部旋回体3の旋回角速度ωを、IMU24から取得する。また、作業機コントローラ26は、圧力センサ66からブーム操作信号MB、バケット操作信号MT、アーム操作信号MA及び旋回操作信号MRを取得する。さらに、作業機コントローラ26は、センサコントローラ39からブーム6の傾斜角θ1、アーム7の傾斜角θ2及びバケット8の傾斜角θ3を取得する。
作業機コントローラ26は、表示コントローラ28から、目標掘削地形データUを取得する。作業機コントローラ26は、センサコントローラ39から取得した作業機2の角度(θ1、θ2、θ3)からバケット8の刃先8Tの位置(以下、適宜刃先位置と称する)を算出する。作業機コントローラ26の記憶部26Mは、作業機2のデータ(以下、適宜作業機データという)を記憶している。作業機データは、ブーム6の長さL1、アーム7の長さL2及びバケット8の長さL3といった設計寸法を含む。図3に示されるように、ブーム6の長さL1は、ブームピン13からアームピン14までの長さに相当する。アーム7の長さL2は、アームピン14からバケットピン15までの長さに相当する。バケット8の長さL3は、バケットピン15からバケット8の刃先8Tまでの長さに相当する。刃先8Tは、図1に示す刃8Bの先端である。また、作業機データは、ローカル座標系の原点位置PLに対するブームピン13までの位置の情報を含む。作業機コントローラ26は、長さL1、L2、L3、傾斜角θ1、θ2、θ3及び原点位置PLを用いて、原点位置PLに対する刃先位置を求めることができる。
作業機コントローラ26は、目標掘削地形データUに沿ってバケット8の刃先8Tが移動するように、操作装置25から入力されたブーム操作信号MB、バケット操作信号MT及びアーム操作信号MAを、目標掘削地形データUとバケット8の刃先8Tとの距離及びバケット8の刃先8Tの速度に基づき調整する。作業機コントローラ26は、目標掘削地形データUに沿ってバケット8の刃先8Tが移動するように作業機2を制御するための制御信号Nを生成して、図2に示される制御弁27に出力する。このような処理により、作業機2が目標掘削地形データUに近づく速度は、目標掘削地形データUに対する距離に応じて制限される。
作業機コントローラ26からの制御信号Nに応じて、ブームシリンダ10、アームシリンダ11及びバケットシリンダ12のそれぞれに対して2個ずつ設けられた制御弁27が開閉する。左操作レバー25L又は右操作レバー25Rの操作と制御弁27の開閉指令とに基づき、方向制御弁64のスプールが動作して、ブームシリンダ10、アームシリンダ11及びバケットシリンダ12へ作動油が供給される。
グローバル座標演算装置23は、グローバル座標系におけるGNSSアンテナ21、22の基準位置データP1、P2を検出する。グローバル座標系は、油圧ショベル100の作業エリアGAに設置された基準となる、例えば基準杭60の基準位置PGを基準とした、(X、Y、Z)で示される3次元座標系である。図3に示されるように、基準位置PGは、例えば、作業エリアGAに設置された基準杭60の先端60Tに位置する。実施形態において、グローバル座標系とは、例えば、GNSSにおける座標系である。
図2に示される表示コントローラ28は、グローバル座標演算装置23による検出結果に基づいて、グローバル座標系でのローカル座標系の位置を算出する。実施形態において、例えば、ローカル座標系の原点位置PLは、旋回体の回転中心軸であるz軸と走行装置5が接地する面に相当する面との交点である。実施形態において、原点位置PLの座標は、ローカル座標系において、(0、0、0)となる。走行装置5が接地する面は、履帯5a、5bが接する作業エリアGAの表面GDである。走行装置5が接地する面に相当する面は、作業エリアGAの表面GDであってもよいし、履帯5a、5bが接地する部分によって規定される平面CPであってもよい。履帯5a、5bが接地する部分によって規定される平面CPは、ローカル座標系(x、y、z)において、油圧ショベル100の設計寸法から一義的に決定される。
原点位置PLは、z軸と平面CPとの交点に限定されるものではない。実施形態において、後述する疑似不動点の位置は、原点位置PLと一致していてもよいし、一致していなくてもよい。ローカル座標系の原点位置PLは、他の場所であってもよく、例えば、ブームピン13の軸方向の長さの中心点を原点位置PLとしてもよい。原点位置PLは、z軸上、かつ上部旋回体3が旋回するためのスイングサークル上に位置していてもよい。前述したように、作業機コントローラ26は、原点位置PLに対する刃先位置、すなわちローカル座標系での刃先位置を求めるので、グローバル座標系での原点位置PLの座標が得られれば、ローカル座標系での刃先位置の座標を、グローバル座標系での刃先位置の座標に変換することができる。
作業機コントローラ26は、バケット8が目標掘削地形を侵食することを抑制するために、作業機2が掘削対象に接近する方向の速度が制限速度以下になるように制御する。この制御を、適宜掘削制御という。掘削制御は、表示コントローラ28から取得された目標掘削地形データUとバケット刃先位置データSとに基づいて、作業機2と掘削対象との相対位置を演算しながら作業機2が掘削対象に接近する方向の速度を制限速度以下になるようにする制御である。このような制御を実行することで、掘削対象を目標形状(目標施工情報Tが示す形状)に施工することができる。次に、制御システム200について、より詳細に説明する。
<制御システム200>
図5は、実施形態に係る制御システム200の制御ブロック図である。図6及び図7は、油圧ショベル100の姿勢を示す平面図である。実施形態において、制御システム200の作業機コントローラ26と、表示コントローラ28と、センサコントローラ39とは、信号線を介して互いに情報をやり取りすることができる。また、センサコントローラ39は、グローバル座標演算装置23から信号線を介して情報を取得することができる。制御システム200内で情報を伝達する信号線は、CAN(Controller Area Network)のような車内信号線が例示される。実施形態において、制御システム200は、作業機コントローラ26と、表示コントローラ28とが別個の装置であるが、両者は1つの装置で実現されてもよい。
表示コントローラ28は、刃先位置算出部28Aと、目標掘削地形データ生成部28Bと、目標施工情報格納部28Cとを有する。刃先位置算出部28A及び目標掘削地形データ生成部28Bは、記憶部28Mに記憶されたコンピュータプログラムを処理部28Pが実行することにより実現される。目標施工情報格納部28Cは、記憶部28Mの記憶領域の一部によって実現される。
刃先位置算出部28Aは、センサコントローラ39から取得する位置情報IPLに基づいて、上部旋回体3の旋回中心軸となるz軸を通る、油圧ショベル100の旋回中心の位置を示す旋回中心位置データXRを生成する。刃先位置算出部28Aがセンサコントローラ39から取得する位置情報IPLは、基準位置データP1、P2に基づく基準位置データP1c、P2c及び方位角θdである。刃先位置算出部28Aは、旋回中心位置データXRと作業機2の傾斜角θ1、θ2、θ3と、ブーム6の長さL1、アーム7の長さL2及びバケット8の長さL3とに基づいて、バケット8の刃先8Tの現在位置を示すバケット刃先位置データSを生成し、目標掘削地形データ生成部28Bに出力する。バケット刃先位置データSは、作業機2の位置を示す情報である。実施形態において、作業機2の位置は、刃先位置、すなわちバケット8の刃先8Tの3次元位置に限定されるものではなく、作業機2の特定の部分の位置であればよい。例えば、作業機2の位置は、バケット8の尻の部分の位置であってもよいし、法面バケットの底の部分の位置であってもよいし、作業機2のアタッチメントを取り付ける部分の位置であってもよい。
目標掘削地形データ生成部28Bは、目標施工情報格納部28Cに格納された目標施工情報Tと、刃先位置算出部28Aからのバケット刃先位置データSと、を取得する。目標掘削地形データ生成部28Bは、ローカル座標系において刃先8Tの現時点における刃先位置を通る垂線と目標施工面との交点を掘削対象位置として設定する。目標掘削地形データ生成部28Bは、目標施工情報Tとバケット刃先位置データSとに基づいて、目標掘削地形データUを生成し、作業機コントローラ26に出力する。
センサコントローラ39の処理部39Pは、姿勢角演算部39Aと、位置情報演算部39Bとを有する。姿勢角演算部39A及び位置情報演算部39Bは、記憶部39Mに記憶されたコンピュータプログラムを処理部39Pが実行することにより実現される。姿勢角演算部39Aには、IMU24の検出値である加速度a(ax、ay、az)及び角速度ω(ωx、ωy、ωz)、すなわち動作情報MIと、グローバル座標演算装置23の検出値である旋回体方位データQ(方位角θda)とが入力される。また、処理部39Pの姿勢角演算部39A及び位置情報演算部39Bには、圧力センサ66、27PCの検出値が入力される。
グローバル座標演算装置23は、グローバル座標演算装置23が電波を受信できなくなった場合又はセンサコントローラ39との通信に不良が発生した場合にエラー情報Errを生成し、センサコントローラ39の処理部39P及び表示コントローラ28の処理部28Pに出力する。つまり、グローバル座標演算装置23は、RTK−GNSSによる測位に不具合が発生したか否かを判断する測位状態判断装置である。センサコントローラ39は、エラー情報Errを取得すると、RTK−GNSSによる測位をバックアップする処理を実行する。この処理については後述する。表示コントローラ28は、エラー情報Errを取得すると、図2に示される表示部29に、RTK−GNSSによる測位に異常が発生したことを表示する。
姿勢角演算部39Aは、IMU24の検出値から、油圧ショベル100のロール角である傾斜角θ4と、油圧ショベル100のピッチ角である傾斜角θ5とを求めて、位置情報演算部39B及び表示コントローラ28の刃先位置算出部28Aに出力する。姿勢角演算部39Aは、IMU24が検出したz軸周りの旋回角速度ωを積分して方位角θdiを求める。姿勢角演算部39Aは、位置検出装置であるグローバル座標演算装置23の状態に応じて、自身が求めた方位角θdi又はグローバル座標演算装置23から取得した方位角θdaを切り替えて、表示コントローラ28の刃先位置算出部28A又は位置情報演算部39Bに方位角θdcとして出力する。つまり、RTK−GNSSによる測位が正常である場合には、グローバル座標演算装置23から取得した方位角θdaを用いてバケット刃先位置データSが求められ、RTK−GNSSによる測位が異常である場合には、IMU24が検出したz軸周りの旋回角速度ωを積分して求めた方位角θdiを用いてバケット刃先位置データSが求められる。また、姿勢角演算部39Aから表示コントローラ28に送られる傾斜角θ4、傾斜角θ5及び方位角θdcは、油圧ショベル100の位置に関連する位置情報IPLである。以下において、傾斜角θ4を適宜ロール角θ4と称し、傾斜角θ5を適宜ピッチ角θ5と称する。
実施形態において、位置情報IPLは、前述したように、作業機械である油圧ショベル100の位置に関連する情報である。位置情報IPLには、油圧ショベル100の位置そのものの情報の他、油圧ショベル100の位置を求めるために必要な情報も含む。油圧ショベル100の位置そのものの情報は、基準位置データP1、P2及びバケット刃先位置データSが例示され、油圧ショベル100の位置を求めるために必要な情報は、傾斜角θ4、傾斜角θ5及び方位角θd(θdi、θda又はθdc)が例示される。
位置情報演算部39Bは、グローバル座標演算装置23から取得した基準位置データP1、P2と、位置情報演算部39Bが求めた基準位置データP1i、P2iとを切り替えて、表示コントローラ28の刃先位置算出部28Aに基準位置データP1c、P2cとして出力する。基準位置データP1i、P2iは、グローバル座標演算装置23の状態が異常となる前における原点位置PL及びIMU24によって検出された動作情報MIの両方を用いて位置情報演算部39Bが求めた位置の情報である。
基準位置データP1i、P2iは、次のようにして求められる。基準位置データP1i、P2iは、IMU24の検出値である加速度a(ax、ay、az)及び角速度ω(ωx、ωy、ωz)から姿勢角演算部39Aが求めたロール角θ4及びピッチ角θ5と、姿勢角演算部39Aから出力される方位角θdcとによって求められる。この方位角θdcは、グローバル座標演算装置23の状態が異常となる前に、姿勢角演算部39Aがグローバル座標演算装置23から取得した方位角θda又は方位角θdaに旋回角速度ωの積分によって得られた方位角を加算した方位角である。
センサコントローラ39は、油圧ショベル100の位置情報IPLを表示コントローラ28に出力するにあたって、第1モードと、第2モードと、第3モードとの3モードのうち、いずれか1つのモードで動作する。第1のモードは、センサコントローラ39が、グローバル座標演算装置23によって検出された位置の情報を油圧ショベル100の位置情報IPLとして出力するモードである。第2のモードは、センサコントローラ39が、グローバル座標演算装置23による測位が異常となる前における油圧ショベル100の原点位置PL及びIMU24によって検出された動作情報MIの両方を用いて求めた位置の情報を位置情報IPLとして出力するモードである。第3のモードは、センサコントローラ39が、位置情報IPLを出力しないモードである。姿勢角演算部39A及び位置情報演算部39B、すなわち処理部39Pは、圧力センサ66、27PCからの検出値に基づいて油圧ショベル100の静定状態を判定し、判定結果に基づいて第1のモード、第2のモード又は第3のモードのうちいずれか1つを実行する。
センサコントローラ39は、グローバル座標演算装置23による測位が正常である場合は第1のモードで動作し、グローバル座標演算装置23による測位が異常かつ油圧ショベル100が走行せずに停止している場合には第2のモードで動作し、グローバル座標演算装置23による測位が異常かつ油圧ショベル100が走行している場合には第3のモードで動作する。第2のモードにおいて、油圧ショベル100が走行せず停止している場合とは、上部旋回体3が旋回して停止している状態と旋回せずに停止している状態との両方を含む。実施形態において、静定状態は、油圧ショベル100が走行せず、かつ上部旋回体3が旋回して停止している状態又は旋回せずに停止している状態である。実施形態において、非静定状態とは、油圧ショベル100が走行している状態である。グローバル座標演算装置23による測位が異常になることには、グローバル座標演算装置23が出力する基準位置データP1、P2の座標値が異常値を示す場合、グローバル座標演算装置23とセンサコントローラ39との間で通信エラーが発生した場合及びRTK−GNSSによる測位に不具合が発生した場合が含まれる。GNSSアンテナ21、22が測位衛星からの電波を受信できなくなる又は電波を受信し難くなることにより、RTK−GNSSによる測位に不具合が発生する。
油圧ショベル100の制御システム200は、RTK−GNSSによって絶対位置、実施形態ではグローバル座標での位置を測位する。このため、何らかの理由でRTK−GNSSによる測位に不具合が発生、すなわちグローバル座標演算装置23による測位が異常になった場合、絶対位置の測位精度が低下する。RTK−GNSSによる測位の不具合が短時間であれば、RTK−GNSSによる測位以外の方法で、RTK−GNSSによる測位をバックアップできる。制御システム200は、後述する疑似不動点を用いてRTK−GNSSによる測位をバックアップする。制御システム200は、測位のバックアップを実行することで、RTK−GNSSによる測位の不具合が発生した場合でも、掘削制御及びガイダンス画面の表示を継続し、情報化施工を的確に継続することができる。
油圧ショベル100の作業中において絶対位置が変化しない不動点が油圧ショベル100に存在すれば、制御システム200は不動点の絶対位置を保持し、不動点から車両本体1の任意の点までの相対位置を加えることにより、RTK−GNSSによる測位の不具合が発生し、RTK−GNSSによる測位が実現できていなくても、油圧ショベル100の任意の点の絶対位置を算出することができる。実際には油圧ショベル100のエンジンEG35が稼働している限り、作業機2の動作等により振動が発生するため、不動点は存在しないので、不動点と見なせる近似的な位置を疑似不動点として選定し、制御システム200は、選定した疑似不動点を、前述した不動点と同様に取り扱うことで、疑似不動点を用いてRTK−GNSSによる測位をバックアップすることができる。疑似不動点を不動点と見なすことができるのは、油圧ショベル100が移動していない場合、すなわち図1に示される履帯5a、5bが動いていない場合である。
次に、疑似不動点について説明する。実施形態において、疑似不動点は、図3及び図4に示される油圧ショベル100の原点位置PLである。なお、前述のようにローカル座標系の原点として原点位置PLを定めているが、他の位置にローカル座標系の原点を定めてもよい。したがって、疑似不動点は、以下の説明において特定点と称することもある。作業中の油圧ショベル100に回転が生ずるような動きがあった場合、その回転の支点は動かないので、疑似不動点がその支点にあれば、制御システム200によって求められる位置、例えば、作業機2の特定の部分の位置又はバケットの8刃先8Tの位置を含む作業機2の位置の誤差が最も小さくなる。疑似不動点を回転の支点とすることができない場合でも、疑似不動点をできるだけ支点の近くに設定すれば、制御システム200によって求められる位置(作業機2の位置)の誤差を小さくできる。上部旋回体3が旋回する際の支点は旋回中心軸、すなわち軸zであるので、疑似不動点を軸z上にする。ロール角θ4の方向及びピッチ角θ5の方向における回転の支点は一定点ではないが、必ず油圧ショベル100が接地する面上にあると考えられる。実施形態において、前述したように、原点位置PLは、旋回体の回転中心軸であるz軸と走行装置5が接地する面に相当する面との交点である。実施形態では、疑似不動点である原点位置PLを、油圧ショベル100が接地する面上とすることで、RTK−GNSSによる測位の不具合が発生した際において、制御システム200によって求められる位置、より具体的にはGNSSアンテナ21、22の絶対位置の誤差を小さくできる。
油圧ショベル100は様々な作業を行うことができるが、法面の施工等の場合、走行装置5は停止したまま、作業機2又は上部旋回体3の操作だけで掘削や均しが行われることがある。情報化施工を可能とする油圧ショベル100を用いて、このような法面施工等の施工を行う場合、疑似不動点を用いてRTK−GNSSによる測位をバックアップすることで、掘削制御及びガイダンス画面の表示を継続し、情報化施工を的確に継続することができる。
油圧ショベル100の制御システム200は、GNSSアンテナ21、22の絶対位置を測位している。このため、制御システム200は、RTK−GNSSによる測位の不具合が発生した場合に、次に説明するようにGNSSアンテナ21、22の絶対位置を演算して求めることにより、RTK−GNSSによる測位をバックアップできる。
式(1)は、ローカル座標系における原点位置PLの位置ベクトルとGNSSアンテナ21、22の位置ベクトルとの差分を、グローバル座標系における原点位置PLの位置ベクトルとGNSSアンテナ21、22の位置ベクトルとの差分に変換する式である。式(1)から、式(2)が得られる。式(3)は、式(1)のグローバル座標系におけるGNSSアンテナ21、22の位置ベクトルの測定値Ralを、グローバル座標系におけるGNSSアンテナ21、22の位置ベクトルの計算値Ralcに置き換えて、計算値Ralcを求める式として表したものである。
Rfl−Ral=Clb(Rfb−Rab)・・・(1)
Rfl=Clb(Rfb−Rab)+Ral・・・(2)
Ralc=Clb(Rab−Rfb)+Rfl・・・(3)
ここで、
Rfb:ローカル座標系における原点位置PLの位置ベクトルの校正値
Rab:ローカル座標系におけるGNSSアンテナ21、22の位置ベクトルの校正値
Rfl:グローバル座標系における原点位置PLの位置ベクトルの計算値
Ral:グローバル座標系におけるGNSSアンテナ21、22の位置ベクトルの測定値
Ralc:グローバル座標系におけるGNSSアンテナ21、22の位置ベクトルの計算値
Clb:ローカル座標系からグローバル座標系への座標回転行列
校正値とは、油圧ショベル100の各位置及び寸法を計測することによって得られた、原点位置PL及びGNSSアンテナ21、22の位置の値であり、作業機コントローラ26の記憶部26M及びセンサコントローラ39の記憶部39Mに記憶されている。校正値は、油圧ショベル100の設計寸法に基づくものでもよいが、油圧ショベル100毎にバラツキが生じるため、前述のように計測(キャリブレーション)に基づく校正値を得るほうが好ましい。座標回転行列Clbは、ロール角θ4、ピッチ角θ5及びヨー角、すなわち方位角θdiを用いて式(4)のように表現される。ロール角θ4、ピッチ角θ5及び方位角θdiは、IMU24によって検出されたx軸周りの角速度ωx、y軸周りの角速度ωy及びz軸周りの角速度ωzを姿勢角演算部39Aが時間で積分されることによって求められる。式(4)中のsxはsinθ4、syはsinθ5、szはsinθdi、cxはcosθ4、cyはcosθ5、czはcosθdiである。
制御システム200は、式(2)を用いることにより、疑似不動点である特定点(実施形態では原点位置PL)を求めることができる。また、制御システム200は、式(3)を用いることにより、疑似不動点である特定点を用いて、GNSSアンテナ21、22の絶対位置を求めることができる。制御システム200は、式(2)及び式(3)を用いることによって、RTK−GNSSによる測位の不具合が発生した場合に、GNSSアンテナ21、22の絶対位置を求めることができる。
具体的には、RTK−GNSSによる測位が正常である場合、制御システム200のセンサコントローラ39が備える姿勢角演算部39Aは、ロール角θ4、ピッチ角θ5及び方位角θdiを求め、表示コントローラ28の刃先位置算出部28Aに出力する。この場合、姿勢角演算部39Aは、グローバル座標演算装置23から取得した基準位置データP1、P2を用いてグローバル座標系における方位角θdc(ここでは方位角θda)を取得する。基準位置データP1、P2によって旋回体方位データQが得られるため、ローカル座標系について求められた作業機2の位置をグローバル座標系における作業機2の位置として求めることができる。姿勢角演算部39Aは、取得した方位角θdaを、正常時の方位角、すなわちRTK−GNSSによる測位に不具合が発生する前の方位角θdibとして記憶部39Mに記憶させる。図6に示される例において、方位角θdiは、グローバル座標系(X、Y、Z)のY軸に対する上部旋回体3の前後軸であるx軸の傾きを表す。方位角θdiによって油圧ショベル100の方位D1が定まる。
位置情報演算部39Bは、姿勢角演算部39Aによって求められたロール角θ4、ピッチ角θ5及び方位角θdiから座標回転行列Clbを求める。また、位置情報演算部39Bは、RTK−GNSSによる測位が正常である状態でグローバル座標演算装置23から取得した基準位置データP1、P2からグローバル座標系におけるGNSSアンテナ21、22の位置ベクトルの測定値Ralを求める。そして、位置情報演算部39Bは、求めた座標回転行列Clbと位置ベクトルの測定値Ralとを式(2)に与えて、グローバル座標系における原点位置PLの位置ベクトルの計算値Rflを求める。以下において、計算値Rflを、適宜正常時原点位置Rflと称する。位置情報演算部39Bは、求めた正常時原点位置Rflを記憶部39Mに記憶させる。そして、位置情報演算部39Bは、グローバル座標演算装置23から取得した基準位置データP1、P2を、表示コントローラ28の刃先位置算出部28Aに基準位置データP1c、P2cとして出力する。
RTK−GNSSによる測位に不具合が発生した場合又は油圧ショベル100が静定状態でなくなった場合(以下、適宜、測位不具合等が発生した場合と称する)、姿勢角演算部39Aは、IMU24の検出値を用いてロール角θ4、ピッチ角θ5及び方位角θdiを求める。姿勢角演算部39Aは、記憶部39Mに記憶されている、RTK−GNSSによる測位に不具合が発生する前の方位角θdibと、測位不具合等が発生してから、z軸周りの角速度ωzを時間で積分することによって得られた方位角θdiaとの和を、方位角θdiとして求める。姿勢角演算部39Aは、求めたロール角θ4、ピッチ角θ5、さらに方位角θdiを、方位角θdcとして表示コントローラ28の刃先位置算出部28Aに出力する。
位置情報演算部39Bは、姿勢角演算部39Aから取得した、測位不具合等が発生した場合の後のロール角θ4、ピッチ角θ5及び方位角θdiを用いて、座標回転行列Clbを生成する。位置情報演算部39Bは、記憶部39Mに記憶されている、測位不具合等が発生した場合の前の正常時原点位置Rflを読み出す。そして、位置情報演算部39Bは、読み出した正常時原点位置Rfl及び生成した座標回転行列Clbを式(3)に与え、グローバル座標系におけるGNSSアンテナ21、22の位置ベクトルの計算値Ralcを求める。位置情報演算部39Bは、位置ベクトルの計算値Ralcから、GNSSアンテナ21、22の基準位置データP1i、P2iを求め、表示コントローラ28の刃先位置算出部28Aに基準位置データP1c、P2cとして出力する。基準位置データP1c、P2cによって旋回体方位データQが得られるため、ローカル座標系について求められた作業機2の位置をグローバル座標系における作業機2の位置として求めることができる。測位不具合等が発生した場合における制御システム200のセンサコントローラ39の動作は、前述した第2のモードに相当する。
上部旋回体3が旋回している場合、位置情報演算部39Bは、旋回中の方位角θdiを次のようにして求める。図7に示す例において、方位D1の状態から油圧ショベル100の上部旋回体3が矢印RTで示される方向に旋回を開始したとする。旋回開始時における方位角はθdibであり、センサコントローラ39の記憶部39Mに記憶されている。姿勢角演算部39Aは、方位D1から旋回を開始した上部旋回体3の旋回角速度ωを時間で積分することにより、方位D1からの方位角θdia(方位角変化量)を求め、位置情報演算部39Bに出力する。位置情報演算部39Bは、方位D1からの方位角θdiaと、記憶部39Mから読み出した旋回開始時における方位角θdibとを加算し、得られた値を旋回中の方位角θdiとする。方位角θdiによって、旋回中における油圧ショベル100の方位D2が定まる。
測位の不具合等が発生した場合、制御システム200は、測位不具合等が発生する前において正常に測位された基準位置データP1、P2を用いて得られた原点位置PLを用いて基準位置データP1i、P2iを求める。このようにすることで、制御システム200は、測位不具合等が発生した場合でも、GNSSアンテナ21、22の絶対位置を求めることができる。結果として、制御システム200を備える油圧ショベル100は、測位不具合等が発生した場合でも、GNSSアンテナ21、22の絶対位置を利用した掘削制御等を継続できる。次に、実施形態に係る制御システム200が位置情報IPLを生成する処理を説明する。
<位置情報IPLを生成する処理>
図8は、実施形態に係る制御システム200が位置情報IPLを生成する処理の一例を示すフローチャートである。ステップS101において、センサコントローラ39の処理部39Pは、グローバル座標演算装置23による測位が正常かつ油圧ショベル100が静定状態であるか否かを判定する。グローバル座標演算装置23による測位が正常であるか否かは、次のように判定される。
(1)グローバル座標演算装置23の測位に関するいずれかのエラーが発生している場合又はGNSSアンテナ21、22のZ方向における座標データの値が閾値を超えている場合には、グローバル座標演算装置23による測位が異常である。GNSSアンテナ21、22のZ方向における座標データの値が閾値以下である場合には、グローバル座標演算装置23による測位が異常であるとしてもよい。
(2)グローバル座標演算装置23の測位に関するエラーが発生していない場合かつGNSSアンテナ21、22のZ方向における座標データの値が閾値を下回っている場合には、グローバル座標演算装置23による測位が正常である。GNSSアンテナ21、22のZ方向における座標データの値が閾値を超えている場合には、グローバル座標演算装置23による測位が正常であるとしてもよい。
油圧ショベル100が静定状態であるか否かは、次のように判定される。以下の説明において、操作装置25の操作レバーがONとは、操作レバーが操作され中立状態でないことを示し、操作装置25の操作レバーがOFFとは、操作レバーが操作されず中立状態であること示す。
(1)左操作レバー25Lが左右のいずれかに操作されて左操作レバー25LがONである場合、又は走行用レバー25FL及び走行用レバー25FRの少なくとも一方がONである場合、又は旋回角速度ωの絶対値が旋回角速度閾値ωc以上となる状態が第1時間ta継続した場合には、油圧ショベル100が非静定状態、すなわち動的状態である。旋回角速度閾値ωcは限定されるものではないが、実施形態では1度/秒である。第1時間taは限定されるものではないが、例えば0.03秒である。旋回角速度ωの絶対値が旋回角速度閾値ωc以上となる状態が第1時間ta継続した場合を非静定状態であることを判断条件の一つに入れた理由は、次の事由による。オペレータが、上部旋回体3を旋回させるために左操作レバー25Lを操作している状態から旋回を止めるために左操作レバー25Lから手を放したとする。このとき、左操作レバー25Lは中立位置になり、左操作レバー25LはOFFとなる。しかし、この時点では、上部旋回体3が、慣性力により、ある程度の時間、旋回している状態が想定される。つまり、この状態は、油圧ショベル100は動的状態と言える。したがって、各操作レバーのON/OFFだけでなく、旋回角加速度ωの絶対値が、所定の閾値以上となる状態が所定の時間継続した場合を非静定であることを判断条件の一つに入れている。
(2)左操作レバー25Lが左右のいずれにも操作されず左操作レバー25LがOFFであって、かつ走行用レバー25FL及び走行用レバー25FRの両方がOFFであり、さらに旋回角速度ωの絶対値が旋回角速度閾値ωc未満となる状態が第2時間tb継続した場合には、油圧ショベル100が静定状態、すなわち静的状態である。第2時間tbは限定されるものではないが、第1時間taよりも大きく、例えば4秒である。
実施形態において、静定状態か否かは、図2に示される左操作レバー25L及び右操作レバー25Rのパイロット圧を検出する圧力センサ66の検出値STr及び走行用レバー25FL及び走行用レバー25FRのパイロット圧を検出する圧力センサ27PCの検出値STdに基づいて判定される。圧力センサ66、27PCの検出値STr、STdが、パイロット圧の第1閾値を超えた場合、センサコントローラ39の処理部39Pは、非静定状態であると判定する。圧力センサ66、27PCの検出値STr、STdが、パイロット圧の第1閾値よりも小さい第2閾値を下回った場合、センサコントローラ39の処理部39Pは、静定状態であると判定する。
センサコントローラ39の処理部39Pは、圧力センサ66、27PCの検出値STr、STdを用いて油圧ショベル100の静定状態と非静定状態とを判定したが、静定状態と非静定状態との判定は、圧力センサ66、27PCの検出値を用いる方法に限定されない。左操作レバー25L、右操作レバー25R、走行用レバー25FL及び走行用レバー25FRの操作量が、ポテンショメータ又はホールIC等によって検出される電気方式の操作装置25である場合、センサコントローラ39の処理部39Pは、ポテンショメータ又はホールICの出力値を用いて油圧ショベル100の静定状態と非静定状態とを判定してもよい。さらに、センサコントローラ39の処理部39Pは、IMU24の検出値を用いて、油圧ショベル100の静定状態と非静定状態とを判定してもよい。例えば、IMU24が旋回角速度ωを検出したり、x軸方向、y軸方向及びz軸方向の少なくとも一方向の加速度を検出したりした場合に、センサコントローラ39の処理部39Pは、油圧ショベル100が非静定状態であると判定することができる。
グローバル座標演算装置23による測位が正常かつ油圧ショベル100が静定状態である場合(ステップS101、Yes)、センサコントローラ39の姿勢角演算部39Aは、ステップS102において、IMU24から動作情報MIを取得する。姿勢角演算部39Aは、取得した動作情報MIから位置情報IPLであるロール角θ4、ピッチ角θ5及び方位角θdiを求めて、ロール角θ4、ピッチ角θ5及び方位角θdcとして位置情報演算部39Bに出力する。
ステップS103において、位置情報演算部39Bは、取得したロール角θ4、ピッチ角θ5及び方位角θdi(θdc)から座標回転行列Clbを求める。ステップS104において、位置情報演算部39Bは、座標回転行列Clbと、グローバル座標演算装置23から取得した基準位置データP1、P2に基づくGNSSアンテナ21、22の位置ベクトルの測定値Ralとを式(2)に与えて、特定点(実施形態においては原点位置PL)の位置を求める。ステップS105において、位置情報演算部39Bは、求めた原点位置PLを記憶部39Mに記憶させる。
ステップS106において、位置情報演算部39Bは、グローバル座標系における基準位置データP1c、P2cを求め、ステップS107において表示コントローラ28の刃先位置算出部28Aに位置情報IPLとして出力する。前述したように、刃先位置算出部28Aに出力される基準位置データP1c、P2cは、グローバル座標演算装置23から取得した基準位置データP1、P2である。ステップS107は、第1のモードに相当する。ステップS107が終了したら、センサコントローラ39の処理部39Pは、ステップS101に戻り、以後の処理を実行する。
ステップS101に戻り、グローバル座標演算装置23による測位が異常かつ油圧ショベル100が非静定状態である場合(ステップS101、No)、位置情報演算部39Bは、ステップS108において姿勢角演算部39Aから取得したロール角θ4、ピッチ角θ5及び旋回角速度ωを積分して得られた方位角θdiaと、記憶部39Mに記憶されている方位角θdibと、から座標回転行列Clbを求める。位置情報演算部39Bが座標回転行列Clbを求める際に用いる方位角θdiは、ステップS101でNoと判定される時点よりも所定時間前に記憶部39Mに記憶された方位角θdibが読み出され、前述のように、方位角θdibと方位角θdiaとの和を方位角θdiとして求められる。さらに、求められた方位角θdiと式(4)とを用いて座標回転行列Clbが求められる。ここでの所定時間とは、グローバル座標演算装置23とセンサコントローラ39との間の通信時間及びセンサコントローラ39の演算時間によって定められるため特定の値に限定されないが、例えば0.3秒としている。
ステップS109において、位置情報演算部39Bは、センサコントローラ39の記憶部39Mに記憶されている特定点(実施形態では原点位置PL)の位置を読み出す。実施形態において、センサコントローラ39は、ステップS101でNoと判定される時点よりも前の原点位置PLを記憶部39Mに記憶している。ステップS109において、位置情報演算部39Bは、ステップS101でNoと判定される時点よりも所定時間前に記憶部39Mに記憶された原点位置PLを読み出す。ステップS109での所定時間は、ステップS108の所定時間と同様である。
ステップS108とステップS109とでは、ステップS101でNoと判定される時点よりも所定時間前に記憶部39Mに記憶された方位角θdiと原点位置PLとを用いる。このため、位置情報演算部39Bは、グローバル座標演算装置23による測位が確実に正常であるときの方位角θdi及び原点位置PLを用いることができる。
ステップS110において、位置情報演算部39Bは、ステップS108で求めた座標回転行列ClbとステップS109で読み出した原点位置PLとを式(3)に与えて、グローバル座標系における基準位置データP1i、P2iを求める。次に、ステップS111において、センサコントローラ39の処理部39Pは、グローバル座標演算装置23による測位が異常であるか否かを判定する。この判定については、前述した通りである。
グローバル座標演算装置23による測位が異常である場合(ステップS111、Yes)、ステップS112において、センサコントローラ39の処理部39Pは、油圧ショベル100が走行しているか否かを判定する。走行用レバー25FL及び走行用レバー25FRの少なくとも一方がONである場合、処理部39Pは、油圧ショベル100が走行していると判定し、走行用レバー25FL及び走行用レバー25FRの両方がOFFである場合、油圧ショベル100が走行していない、すなわち停止していると判定する。
油圧ショベル100が走行している場合(ステップS112、Yes)、ステップS113に進み、センサコントローラ39の位置情報演算部39B及び姿勢角演算部39Aは、位置情報IPLを表示コントローラ28の刃先位置算出部28Aに出力しない。油圧ショベル100が走行している場合、特定点(実施形態では原点位置PL)の位置も油圧ショベル100とともに移動するため、移動後における原点位置PLは、ステップS101でNoと判定される時点よりも所定時間前に記憶部39Mに記憶された原点位置PLとは異なる。したがって、油圧ショベル100が走行している場合に、ステップS101でNoと判定される時点よりも前の原点位置PLを用いて求めたグローバル座標系における基準位置データP1i、P2iは、走行している油圧ショベル100の実際の基準位置データP1、P2とは異なる。
位置情報演算部39B及び姿勢角演算部39Aは、油圧ショベル100が走行している場合、位置情報IPLを表示コントローラ28の刃先位置算出部28Aに出力しない。このような処理により、表示コントローラ28の刃先位置算出部28Aはバケット刃先位置データSを生成しないので、目標掘削地形データ生成部28Bも、目標掘削地形データUを生成しない。目標掘削地形データUが存在しないので、作業機コントローラ26及び表示コントローラ28は、目標掘削地形データUを用いた処理、例えば掘削制御又は表示部29に対して掘削補助のガイダンス画面の表示を実行しない。このように、制御システム200は、油圧ショベル100が走行している場合、実際の位置とは異なる位置に基づく掘削制御又は掘削補助のガイダンス画面の表示を実行しない。
ステップS113は、第3のモードに相当する。ステップS113が終了したら、センサコントローラ39の処理部39Pは、ステップS101に戻り、以後の処理を実行する。
ステップS111に戻り、グローバル座標演算装置23による測位が異常でない、すなわち正常である場合(ステップS111、No)、センサコントローラ39の処理部39Pは、ステップS114において、ステップS108で得られた方位角θdi及びステップS110で求められた基準位置データP1i、P2iをセンサコントローラ39の記憶部39Mに記憶する。ステップS114が終了したら、センサコントローラ39の処理部39Pは、ステップS101に戻り、以後の処理を実行する。
ステップS111においてグローバル座標演算装置23による測位が正常である場合、ステップS114において、センサコントローラ39の処理部39Pは、ステップS101でNoと判定される時点よりも前の原点位置PLを用いてグローバル座標系における基準位置データP1i、P2iを求めるのみである。ステップS114において、処理部39Pは、グローバル座標演算装置23から取得した基準位置データP1、P2を基準位置データP1c、P2cとして、表示コントローラ28の刃先位置算出部28Aに出力する。
次に、ステップS112に戻り、油圧ショベル100が走行していない場合(ステップS112、No)、ステップS115において、センサコントローラ39の位置情報演算部39B及び姿勢角演算部39Aは、ステップS108で得られたロール角θ4、ピッチ角θ5、方位角θdi(θdc)及びステップS110で求められた基準位置データP1i、P2iを位置情報IPLとして表示コントローラ28の刃先位置算出部28Aに出力する。ステップS115は、第2のモードに相当する。
次に、ステップS116に進み、センサコントローラ39の処理部39Pは、第3のモードに遷移するか否かを判定する。第3のモードに遷移するための条件が成立した場合(ステップS116、Yes)、ステップS113に進み、センサコントローラ39の位置情報演算部39B及び姿勢角演算部39Aは、位置情報IPLを表示コントローラ28の刃先位置算出部28Aに出力しない。第3のモードに遷移するための条件が成立しない場合(ステップS116、No)、センサコントローラ39の処理部39Pは、ステップS101に戻り、以後の処理を実行する。次に、センサコントローラ39の動作が、第1のモードと、第2のモードと、第3のモードとを遷移することについて説明する。
<センサコントローラ39の動作の遷移について>
図9は、センサコントローラ39が動作するモードの遷移を示す図である。グローバル座標演算装置23による測位が正常かつ油圧ショベル100が静定状態である場合に、センサコントローラ39は第1のモードAで動作する。グローバル座標演算装置23による測位が異常かつ油圧ショベル100が非静定状態、より具体的には走行状態であるときに、センサコントローラ39は、第1のモードAでの動作から第3のモードCでの動作に遷移(II)する。グローバル座標演算装置23による測位が異常かつ油圧ショベル100が非走行状態であるときに、センサコントローラ39は、第1のモードAでの動作から第2のモードBでの動作に遷移(III)する。グローバル座標演算装置23による測位が正常かつ油圧ショベル100が非旋回状態であるときに、センサコントローラ39は、第2のモードBでの動作から第1のモードAでの動作に遷移する(IV)。センサコントローラ39は、第2のモードBでの動作中、第3のモードに遷移する条件が成立したら、第3のモードCでの動作に遷移する(V)。センサコントローラ39は、第3のモードCでの動作中、グローバル座標演算装置23による測位が正常になると、第1のモードAでの動作に遷移する(I)。
第3のモードに遷移する条件について詳細に説明する。
(1)第2のモードBで動作した時間tc2が閾値を超えた場合(第1条件)又は油圧ショベル100が走行した場合(第2条件)又は油圧ショベル100のセンサに異常があった場合(第3条件)に、第2のモードBから第3のモードCに遷移(V)する条件が成立する。閾値は限定されるものではないが、例えば、60秒である。例えば、表示部29の図示しない入力装置によって、この閾値の大きさを任意に変更できるようにしてもよい。このように第2のモードBから第3のモードCに遷移する条件に、第2のモードBで動作した時間tc2が閾値を超えたかどうかを入れている理由については後述する。実施形態において、油圧ショベル100のセンサの異常とは、油圧ショベル100の動作を検出する機器及び油圧ショベル100の位置を求める機器の少なくとも一方に関する異常である。油圧ショベル100の動作を検出する機器は、IMU24、圧力センサ66、27PC、68、第1ストロークセンサ16、第2ストロークセンサ17、第3ストロークセンサ18及びセンサコントローラ39が例示されるが、これらに限定されるものではない。油圧ショベル100の位置を求める機器は、GNSSアンテナ21、22、グローバル座標演算装置23、センサコントローラ39、第1ストロークセンサ16、第2ストロークセンサ17、第3ストロークセンサ18が例示されるが、これらに限定されるものではない。油圧ショベル100の動作を検出する機器と油圧ショベル100の位置を求める機器とは、共通する機器が両方の機能を実現してもよい。
(2)第2のモードBで動作中、上部旋回体3が同一方向に旋回角度の閾値(例えば、特定角度として250度)よりも大きく旋回した場合(第4条件)に、第2のモードBから第3のモードCに遷移(V)する条件が成立する。特定角度は、旋回角度の閾値に対応する。例えば、表示部29の図示しない入力装置によって、この閾値の大きさを任意に変更できるようにしてもよい。このように第2のモードBから第3のモードCに遷移する条件に、同一方向に旋回角度の閾値よりも大きく旋回したかどうかを入れている理由については後述する。以上のように、第2のモードBから第3のモードCに遷移(V)する条件である、第1条件から第4条件について説明したが、第1条件から第4条件のいずれかが成立した場合に、第2のモードBから第3のモードCに遷移(V)する。
図10及び図11は、第3のモードに遷移する条件を説明するための図である。図10に示される原点位置PLa(Xa、Ya、Za)、PLb(Xb、Yb、Zb)は、いずれもグローバル座標系で表されている。図10の原点位置PLaは、油圧ショベル100が静止しているときの位置である。原点位置PLaがセンサコントローラ39の記憶部39Mに記憶されており、センサコントローラ39は、グローバル座標演算装置23による測位が異常である場合に原点位置PLaを用いて位置情報IPLを生成しているとする。この状態で油圧ショベル100が原点位置PLaから移動して原点位置PLbになったとする。実際の油圧ショベル100の原点位置PLは、原点位置PLbであるが、グローバル座標演算装置23による測位が異常である場合、センサコントローラ39は、実際の原点位置PLbとは異なる原点位置PLaを用いて位置情報IPLを生成することになる。このため、センサコントローラ39は、第2のモードで動作しているときに油圧ショベル100が走行した場合、第3のモードに遷移することで、実際とは異なる原点位置PLaを用いて位置情報IPLを生成することを回避する。
図11の方位DSは、センサコントローラ39が第2のモードで動作を開始したときの方位を示し、方位DEは、第2のモードで動作を開始した後、上部旋回体3が同一方向に180度よりも大きく旋回したときの方位を示している。矢印RTaは、上部旋回体3が同一方向に180度よりも大きく旋回したときの旋回方向を示している。矢印RTbは、矢印RTaとは反対方向に上部旋回体3が旋回して方位DEとなる場合の旋回方向を示している。
第2のモードにおいて、センサコントローラ39の姿勢角演算部39Aは、旋回角速度ωを時間で積分することによって方位角θdiを求める。このため、上部旋回体3が同一の方向の旋回する量が大きくなると、IMU24の特性に起因する誤差、すなわち旋回角速度ωの積分による誤差が蓄積して、方位角θdiの精度が低下する可能性がある。また、上部旋回体3を方位DSの状態から方位DEとする場合、上部旋回体3の旋回方向は2通り存在する。油圧ショベル100のオペレータは、通常は、上部旋回体3の旋回する量が180度未満となる旋回方向を採用する。つまり、図11に示される例において、上部旋回体3が方位DSから方位DEに旋回する場合、オペレータは、通常矢印RTbで示される旋回方向を選択する。このため、第2のモードBで動作中に上部旋回体3が同一方向に大きな旋回角度(特定角度)であって、例えば250度を超えて旋回した場合、通常は実行されない動作であることから、センサコントローラ39は、第3のモードCに遷移する。このような処理により、センサコントローラ39は、方位角θdiの誤差を低減できる。
また、IMU24は、種類によっては、上部旋回体3が旋回していない場合において旋回角速度ωの検出誤差が時間の経過とともに大きくなる可能性がある。このため、センサコントローラ39は、第2のモードBで動作した時間tc2が閾値を超えた場合に、第3のモードに遷移する。このような処理により、センサコントローラ39は、方位角θdiの誤差を低減できる。
前述したように、センサコントローラ39が第2のモードで動作中、油圧ショベル100のセンサに異常が発生した場合には、第3のモードに遷移する。第3のモードに遷移するためのセンサの異常は、IMU24とセンサコントローラ39との間の通信異常、センサコントローラ39と他のコントローラ(表示コントローラ28、作業機コントローラ26及びポンプコントローラ等)との通信異常、IMU24の異常、圧力センサ66、27PCの異常が挙げられる。
図12は、上部旋回体3の旋回時においてセンサコントローラ39が実行する処理のタイミングチャートである。実施形態において、上部旋回体3が旋回を開始したときにおける、第1のモードAから第2のモードBへの遷移について説明する。センサコントローラ39は、上部旋回体3の旋回が開始されると(旋回ON)、油圧ショベル100が非静定状態となる前の原点位置PL及び方位角θdibを用いてグローバル座標系における基準位置データP1i、P2iを求める。しかし、センサコントローラ39は、グローバル座標演算装置23による測位が正常である場合(測位OK)は、第2のモードBには遷移せず、第1のモードAで動作する。
図12に示されるタイミングチャートでは、時間tがt1のときに、上部旋回体3の旋回が開始されたことを示しが、このタイミング(t=t1)では、センサコントローラ39は、油圧ショベル100が非静定状態となる前の時間t=t0の原点位置PL及び方位角θdibを用いてグローバル座標系における基準位置データP1i、P2iを求め、記憶部39Mに記憶させるのみである。t1からt0の時間は、前述した所定時間に相当し、例えば0.3秒である。つまり、センサコントローラ39は、時間t0の時点で基準位置データP1i、P2iを記憶部39Mに記憶させている。上部旋回体3が旋回中かつグローバル座標演算装置23による測位が正常である場合、センサコントローラ39は、グローバル座標演算装置23から取得した基準位置データP1、P2及びIMU24によって検出された旋回角速度ωから求められた方位角θdiを出力する。すなわち、センサコントローラ39は、第1のモードAで動作し、第2のモードBはOFFとなる。
時間t=t2のタイミングで、上部旋回体3が旋回中に、グローバル座標演算装置23による測位が異常(測位NG)になったとする。すると、センサコントローラ39は、第1のモードAでの動作から第2のモードBでの動作(第2のモードBがON)に遷移させる。時間t=t3において上部旋回体3の旋回が終了すると(旋回OFF)、グローバル座標演算装置23による測位の状態及び油圧ショベル100の状態によってセンサコントローラ39の動作が決定される。図12に示される例では、時間t=t4で、例えば、前述のように第2のモードBで動作した時間tc2が閾値(例えば、60秒)を経過し、第3のモードCに遷移する条件が成立し、時間t=t4以後において、センサコントローラ39は第3のモードCで動作する。
次に、上部旋回体3の旋回中にグローバル座標演算装置23による測位が異常になったため第2のモードBに遷移し、その後、第2のモードBで動作中に上部旋回体3が旋回を終了せず、上部旋回体3の旋回中に測位が正常になった場合を説明する。グローバル座標演算装置23とセンサコントローラ39との間には通信の遅れが存在する。また、グローバル座標演算装置23及びセンサコントローラ39は、情報を処理するために時間を要する。このため、センサコントローラ39は、上部旋回体3の旋回中に測位が正常になると同時に第1のモードAに遷移しても、グローバル座標演算装置23の検出値に基づく位置情報IPLを表示コントローラ28へ直ちに送信することはできない。このため、実施形態において、センサコントローラ39は、上部旋回体3の旋回中、かつ第2のモードBで動作中にグローバル座標演算装置23による測位が正常になった場合、少なくとも上部旋回体3の旋回が終了するまで、第2のモードBでの動作を継続する。このようにすることで、センサコントローラ39から表示コントローラ28へ出力される基準位置データP1c、P2cの急変に基づく、作業機2の掘削制御及びガイダンス画面の表示の不具合等を抑制できる。
このように、第2のモードBから第1のモードAへ遷移する判断条件として、上部旋回体3が旋回状態であるか旋回終了状態(非旋回状態)であるかを判断条件としている。この判断は以下のようにして行われる。左操作レバー25LがONであるか、旋回角速度ωの絶対値が旋回角速度閾値ωd以上となる状態が第3時間tc3継続した場合には、上部旋回体3が旋回状態である。旋回角速度閾値ωdは限定されるものではないが、実施形態では、3度/秒である。第3時間tcは限定されるものではないが、例えば0.03秒である。左操作レバー25LがOFFであって、かつ旋回角速度ωの絶対値が旋回角速度閾値ωd未満となる状態が、第4時間tc4継続した場合には、上部旋回体3が旋回終了状態である。第4時間tdは限定されるものではないが、例えば1.5秒である。
制御システム200は、RTK−GNSSによる測位の結果を用いて位置情報IPLを求める第1のモードと、RTK−GNSSによる測位が正常であるときの原点位置PL及び方位角θdを用いて位置情報IPLを求める第2のモードと、位置情報IPLを出力しない第3のモードとで動作する。制御システム200は、RTK−GNSSによる測位に異常が発生した場合は第2のモードによりバックアップを実現できる。また、油圧ショベル100の動作を検出する機器及び油圧ショベル100の位置を求める機器の少なくとも一方に関する異常がある状態又は油圧ショベル100が走行する状態等によって、制御システム200が求めた位置と油圧ショベル100の実際の位置との差が大きくなる可能性がある場合には、制御システム200は、第3のモードにより位置情報IPLを出力しない。このため、作業機コントローラ26は目標掘削地形データUを用いた掘削制御を実行せず、表示コントローラ28は掘削補助のガイダンス画面の表示を実行しない。その結果、制御システム200は、油圧ショベル100の位置を測位した結果に基づいて情報化施工を行うにあたって、情報化施工が行われている際に作業機2を的確に継続して制御すること及び作業のガイダンス画面に適正な情報を表示することのうち少なくとも1つを実現することが可能となる。
制御システム200は、RTK−GNSSによる測位が正常である場合に、IMU24が出力するヨー角を記憶しておくのではなく、2つのGNSSアンテナ21、22による測定値からグローバル座標系における方位角(絶対方位角)θdを求めて記憶している。上部旋回体3は旋回角速度ωが速いため、IMU24が出力する方位角θdiは誤差を含んでしまう。このため、RTK−GNSSによる測位が正常である場合にグローバル座標演算装置23によって得られた基準位置データP1、P2から方位角θdを求めている。このような処理により、制御システム200は、上部旋回体3が旋回している際において、第2のモードで求めた基準位置データP1i、P2iの精度の低下を抑制できる。
油圧ショベル100が、GNSSアンテナ21、22及びグローバル座標演算装置23の他に、グローバル座標系における方位角θdを求める装置を有していれば、制御システム200は、その装置によって得られたグローバル座標系における方位角θdを用いて、RTK−GNSSによる測位が異常になった後等の基準位置データP1i、P2iを求めてもよい。ローバル座標系における方位角θdを求める装置としては、地磁気センサが例示される。このようにすれば、センサコントローラ39は、RTK−GNSSによる測位が正常である場合に得られた基準位置データP1、P2を用いて得られた方位角θdibを記憶部39Mに記憶する必要はないので、処理の負荷を抑制し、記憶部39Mが方位角θdibを記憶する分の記憶容量を低減できる。
実施形態において、制御システム200の表示コントローラ28は、図2に示される表示部29に、センサコントローラ39の動作の状態を表示させてもよい。例えば、表示コントローラ28は、センサコントローラ39の動作が第1のモードであること、第2のモードであること又は第3のモードであることのいずれかを表示部29に表示させる。このような処理により、油圧ショベル100のオペレータは、現在どのようなモードであるかを把握することができる。
実施形態において、制御システム200のセンサコントローラ39は、RTK−GNSSによる測位は正常であるが、油圧ショベル100が非静定状態になったときは、それよりも前の原点位置PL及び方位角θdaを用いて位置情報IPLの計算のみを実行し、RTK−GNSSによって測位された基準位置データP1、P2を位置情報IPLとして表示コントローラ28に出力する。このセンサコントローラ39の動作を第4のモードと称する。表示コントローラ28は、第1のモードから第3のモードのいずれかを表示部29に表示させることに加え、センサコントローラ39の動作が第4のモードであることを表示部29に表示させてもよい。このような処理により、油圧ショベル100のオペレータは、現在どのモードであるかをより詳細に把握することができる。
実施形態において、制御システム200は、油圧ショベル100の外部に設けられた管理装置のサーバーと通信する通信装置を備え、管理装置サーバーとの間で情報をやり取りしてもよい。制御システム200と管理装置のサーバーとの間でやり取りされる情報は、油圧ショベル100の状態に関する情報及び管理装置のサーバーから制御システム200に送信されて制御システム200を動作させる各種の命令等を含む。制御システム200が管理装置サーバーと通信する通信装置を備える場合、RTK−GNSSによる測位の状態、第1のモードから第4のモードが実行された回数、実行された時間及び実行された時刻といった情報を管理装置のサーバーに送信してもよい。このような処理により、管理装置を用いて油圧ショベル100を管理する管理者は、油圧ショベル100の状態を詳細に把握しやすくなる。
以上、実施形態を説明したが、前述した内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換及び変更のうち少なくとも1つを行うことができる。例えば、センサコントローラ39が実行する各処理は、作業機コントローラ26、表示コントローラ28、ポンプコントローラ又はこれら以外のコントローラが実行してもよい。作業機械は油圧ショベル100に限定されず、ホイールローダー又はブルドーザのような他の作業機械であってもよい。図5に示される姿勢角演算部39Aと位置情報演算部39Bとは、センサコントローラ39に備えられるが、いずれか一方又は両方が表示コントローラ28に備えられてもよいし、表示コントローラ28以外のコントローラに備えられてもよい。