(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
〈第1の実施形態〉
以下、実施形態について、図面を参照しながら説明する。
《油圧ショベル》
図1は、第1の実施形態に係る油圧ショベルの構成を示す斜視図である。第1の実施形態では、作業機械の一例として油圧ショベル100について説明する。なお、他の実施形態に係る作業機械は、必ずしも油圧ショベル100でなくてもよい。
油圧ショベル100は、油圧により作動する作業機110と、作業機110を支持する上部旋回体としての車体120と、車体120を支持する下部走行体としての走行装置130とを備える。
【0011】
作業機110は、ブーム111と、アーム112と、バケット113と、ブームシリンダ114と、アームシリンダ115と、バケットシリンダ116とを備える。
【0012】
ブーム111は、アーム112およびバケット113を支える支柱である。ブーム111の基端部は、車体120の前部にピンP1を介して取り付けられる。
アーム112は、ブーム111とバケット113とを連結する。アーム112の基端部は、ブーム111の先端部にピンP2を介して取り付けられる。
バケット113は、土砂などを掘削するための刃と掘削した土砂を搬送するための容器とを備える。バケット113は、刃の後端側に延長するバケット底面113Aを備える。バケット113の基端部は、アーム112の先端部にピンP3を介して取り付けられる。
【0013】
ブームシリンダ114は、ブーム111を作動させるための油圧シリンダである。ブームシリンダ114の基端部は、車体120に取り付けられる。ブームシリンダ114の先端部は、ブーム111に取り付けられる。
アームシリンダ115は、アーム112を駆動するための油圧シリンダである。アームシリンダ115の基端部は、ブーム111に取り付けられる。アームシリンダ115の先端部は、アーム112に取り付けられる。
バケットシリンダ116は、バケット113を駆動するための油圧シリンダである。バケットシリンダ116の基端部は、アーム112に取り付けられる。バケットシリンダ116の先端部は、バケット113に取り付けられる。
【0014】
車体120には、オペレータが搭乗する運転室121が備えられる。運転室121は、車体120の前方かつ作業機110の左側に備えられる。第1の実施形態においては、運転室121を基準として前後方向を+Y方向および−Y方向、左右方向を−X方向および+X方向、上下方向を+Z方向および−Z方向と定義する。運転室121の内部には、作業機110を操作するための操作装置1211が設けられる。操作装置1211の操作量に応じて、ブームシリンダ114、アームシリンダ115、およびバケットシリンダ116に作動油が供給される。
【0015】
《油圧ショベルの制御系》
図2は、第1の実施形態に係る油圧ショベルの制御系の構成を示す概略ブロック図である。
油圧ショベル100は、ストローク検出器117、操作装置1211、位置検出器122、方位演算器123、傾斜検出器124を備える。
【0016】
ストローク検出器117は、ブームシリンダ114、アームシリンダ115、およびバケットシリンダ116のそれぞれのストローク長を検出する。これにより、後述する制御装置126は、ブームシリンダ114、アームシリンダ115、およびバケットシリンダ116のそれぞれのストローク長に基づいて作業機110の姿勢角を検出することができる。つまり、第1の実施形態においてストローク検出器117は、作業機110の姿勢角を検出する手段の一例である。他方、他の実施形態においては、これに限られず、作業機110の姿勢角を検出する手段として、ストローク検出器117に代えて、またはストローク検出器117と併用して、ロータリーエンコーダや水平器等の角度検出器を用いてもよい。
【0017】
操作装置1211は、運転室121の右側に設けられる右側操作レバー1212と運転室121の左側に設けられる左側操作レバー1213とを備える。操作装置1211は、右側操作レバー1212の前後方向および左右方向の操作量、ならびに左側操作レバー1213の前後方向および左右方向の操作量を検出し、検出された操作量に応じた操作信号を制御装置126に出力する。第1の実施形態に係る操作装置1211による操作信号の生成方式は、PPC方式である。PPC方式とは、右側操作レバー1212および左側操作レバー1213の操作によって生成されるパイロット油圧を圧力センサにより検出し、操作信号を生成する方式である。
【0018】
具体的には、右側操作レバー1212の前方向の操作は、ブームシリンダ114の縮退、ブーム111の下げの動作の指令に対応する。右側操作レバー1212の後方向の操作は、ブームシリンダ114の伸長、ブーム111の上げの動作の指令に対応する。右側操作レバー1212の右方向の操作は、バケットシリンダ116の縮退、バケット113のダンプの指令に対応する。右側操作レバー1212の左方向の操作は、バケットシリンダ116の伸長、バケット113の掘削の指令に対応する。左側操作レバー1213の前方向の操作は、アームシリンダ115の伸長、アーム112の掘削の指令に対応する。左側操作レバー1213の後方向の操作は、アームシリンダ115の縮退、アーム112のダンプの指令に対応する。左側操作レバー1213の右方向の操作は、車体120の右旋回の指令に対応する。左側操作レバー1213の左方向の操作は、車体120の左旋回の指令に対応する。
【0019】
位置検出器122は、車体120の位置を検出する。位置検出器122は、GNSS(Global Navigation Satellite System)を構成する人工衛星から測位信号を受信する第1受信器1231を備える。位置検出器122は、第1受信器1231が受信した測位信号に基づいて、グローバル座標系における車体120の代表点の位置を検出する。グローバル座標系とは、地上の所定の点(例えば、施工現場に設けられたGNSS基準局の位置)を基準点とした座標系である。GNSSの例としては、GPS(Global Positioning System)が挙げられる。
【0020】
方位演算器123は、車体120が向く方位を演算する。方位演算器123は、GNSSを構成する人工衛星から測位信号を受信する第1受信器1231および第2受信器1232を備える。第1受信器1231および第2受信器1232は、それぞれ車体120の異なる位置に設置される。方位演算器123は、第1受信器1231が受信した測位信号と、第2受信器1232が受信した測位信号とを用いて、検出された第1受信器1231の設置位置に対する第2受信器1232の設置位置の関係として、車体120の方位を演算する。
【0021】
傾斜検出器124は、車体120の加速度および角速度を計測し、計測結果に基づいて車体120の傾き(例えば、X軸に対する回転を表すピッチ、Y軸に対する回転を表すヨー、およびZ軸に対する回転を表すロール)を検出する。傾斜検出器124は、例えば運転室121の下面に設置される。傾斜検出器124は、例えば、慣性計測装置としてのIMU(Inertial Measurement Unit)を用いることができる。
【0022】
油圧装置125は、作動油タンク、油圧ポンプ、流量制御弁、および電磁比例制御弁を備える。油圧ポンプは、図示しないエンジンの動力で駆動し、流量調整弁を介してブームシリンダ114、アームシリンダ115、およびバケットシリンダ116に作動油を供給する。電磁比例制御弁は、制御装置126から受信する制御指令に基づいて、操作装置1211から供給されるパイロット油圧を制限する。流量制御弁はロッド状のスプールを有し、スプールの位置によってブームシリンダ114、アームシリンダ115、およびバケットシリンダ116に供給する作動油の流量を調整する。スプールは、電磁比例制御弁にて調整されたパイロット油圧によって駆動される。バケットシリンダ116に接続する油路には、パイロット油圧を制限する電磁比例制御弁と並列に、油圧ポンプが供給する元圧を制限する電磁比例制御弁が設けられる。これにより、油圧ショベル100は、操作装置1211によって生成されるパイロット油圧より高い油圧に従ってバケットシリンダ116を駆動することができる。
【0023】
制御装置126は、プロセッサ910、メインメモリ920、ストレージ930、インタフェース940を備える。
【0024】
ストレージ930には、作業機110を制御するためのプログラムが記憶されている。ストレージ930の例としては、HDD(Hard Disk Drive)、不揮発性メモリ等が挙げられる。ストレージ930は、制御装置126のバスに直接接続された内部メディアであってもよいし、インタフェース940または通信回線を介して制御装置126に接続される外部メディアであってもよい。
【0025】
プロセッサ910は、ストレージ930からプログラムを読み出してメインメモリ920に展開し、プログラムに従って処理を実行する。またプロセッサ910は、プログラムに従ってメインメモリ920に記憶領域を確保する。インタフェース940は、ストローク検出器117、操作装置1211、位置検出器122、方位演算器123、傾斜検出器124、油圧装置125の電磁比例制御弁、およびその他の周辺機器と接続され、信号の授受を行う。
【0026】
プログラムは、制御装置126に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージ930に既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。
【0027】
制御装置126は、プログラムの実行により、位置検出器122が検出した位置、方位演算器123が検出した方位、傾斜検出器124が検出した車体120の傾斜角、およびストローク検出器117が検出したストローク長に基づいて、バケット113の位置を特定する。また、制御装置126は、特定したバケット113の位置および操作装置1211の操作量に基づいて、油圧装置125の電磁比例制御弁にブームシリンダ114の制御指令、およびバケットシリンダ116の制御指令を出力する。
【0028】
《作業機の姿勢》
図3は、作業機の姿勢の例を示す図である。
制御装置126は、作業機110の姿勢を算出し、その姿勢に基づいて作業機110の制御指令を生成する。具体的には、制御装置126は、作業機110の姿勢として、ブーム111の姿勢角α、アーム112の姿勢角β、バケット113の姿勢角γ、およびバケット113の輪郭点の位置を算出する。
【0029】
ブーム111の姿勢角αは、ピンP1から車体120の上方向(+Z方向)に伸びる半直線と、ピンP1からピンP2へ伸びる半直線とがなす角によって表される。なお、車体120の傾き(ピッチ角)θによって、車体120の上方向と鉛直上方向は必ずしも一致しない。
アーム112の姿勢角βは、ピンP1からピンP2へ伸びる半直線と、ピンP2からピンP3へ伸びる半直線とがなす角によって表される。
バケット113の姿勢角γは、ピンP2からピンP3へ伸びる半直線と、ピンP3からバケット113の刃先Eへ伸びる半直線とがなす角によって表される。
ここで、ブーム111の姿勢角α、アーム112の姿勢角β、およびバケット113の姿勢角γの和を、作業機110の姿勢角ηとよぶ。作業機110の姿勢角ηは、ピンP3から車体120の上方向(+Z方向)に伸びる半直線と、ピンP3からバケット113の刃先Eへ伸びる半直線とがなす角に等しい。
また、バケット底面113Aに直交し、上面側へ伸びるベクトルを底面法線ベクトルNbという。底面法線ベクトルNbの向きは、作業機110の姿勢角ηによって変化する。
【0030】
バケット113の輪郭点の位置は、ブーム111の寸法L1、アーム112の寸法L2、バケット113の寸法L3、ブーム111の姿勢角α、アーム112の姿勢角β、バケット113の姿勢角γ、バケット113の輪郭形状、車体120の代表点Oの位置、および代表点OとピンP1との位置関係から求められる。ブーム111の寸法L1は、ピンP1からピンP2までの距離である。アーム112の寸法L2は、ピンP2からピンP3までの距離である。バケット113の寸法L3は、ピンP3から刃先Eまでの距離である。代表点OとピンP1との位置関係は、例えば、代表点Oを基準としたピンP1のX座標位置、Y座標位置、およびZ座標位置によって表される。また代表点OとピンP1との位置関係は、例えば、代表点OからピンP1までの距離、代表点OからピンP1へ伸びる半直線のX軸方向の傾き、および代表点OからピンP1へ伸びる半直線のY軸方向の傾きによって表されてもよい。
【0031】
《油圧ショベルの制御装置》
図4は、第1の実施形態に係る油圧ショベルの制御装置の構成を示すブロック図である。
制御装置126は、作業機械情報記憶部200、操作量取得部201、検出情報取得部202、姿勢特定部203、目標施工データ記憶部204、目標施工線特定部205、距離特定部206、目標速度決定部207、作業機制御部208、バケット制御部209、目標角度記憶部210、制御指令出力部211を備える。
【0032】
作業機械情報記憶部200は、ブーム111の寸法L1、アーム112の寸法L2、バケット113の寸法L3、バケット113の輪郭形状、および車体120の代表点Oの位置とピンP1との位置関係を記憶する。
【0033】
操作量取得部201は、操作装置1211から操作量(パイロット油圧または電気レバーの角度)を示す操作信号を取得する。具体的には、操作量取得部201は、ブーム111に係る操作量、アーム112に係る操作量、バケット113に係る操作量、および旋回に係る操作量を取得する。
【0034】
検出情報取得部202は、位置検出器122、方位演算器123、傾斜検出器124、ストローク検出器117のそれぞれが検出した情報を取得する。具体的には、検出情報取得部202は、車体120のグローバル座標系における位置情報、車体120が向く方位、車体120の傾き、ブームシリンダ114のストローク長、アームシリンダ115のストローク長、およびバケットシリンダ116のストローク長を取得する。
【0035】
姿勢特定部203は、検出情報取得部202が取得した情報に基づいて、作業機110の姿勢角ηを特定する。具体的には、姿勢特定部203は、以下の手順で作業機110の姿勢角ηを特定する。姿勢特定部203は、ブームシリンダ114のストローク長から、ブーム111の姿勢角αを算出する。姿勢特定部203は、アームシリンダ115のストローク長から、アーム112の姿勢角βを算出する。姿勢特定部203は、バケットシリンダ116のストローク長から、バケット113の姿勢角γを算出する。
【0036】
また、姿勢特定部203は、算出した姿勢角に基づいて底面法線ベクトルNbを求める。具体的には、姿勢特定部203は、以下の手順で底面法線ベクトルNbを求める。姿勢特定部203は、姿勢角α、β、γの和で表される作業機110の姿勢角ηと作業機械情報記憶部200が記憶するバケット113の輪郭形状とに基づいて、バケット底面113A(底面の曲面部より刃先E側)の任意の3点(点A、点B、点C)の相対的な位置関係を特定する。このうち点Aおよび点Bは、バケット113の刃先の両端の点であるとよい。姿勢特定部203は、特定した3点から2つのベクトルを生成する。例えば、姿勢特定部203は、点Aから点Bへ向くベクトルと、点Aから点Cへ向くベクトルを生成する。姿勢特定部203は、生成した2つのベクトルの外積を、底面法線ベクトルNbとする。また、姿勢特定部203は、作業機110の姿勢角ηとバケット刃先角(ピンP3とバケット113の刃先Eとを結ぶ線分とバケット底面113Aとがなす角)とに基づいて特定されたバケット底面113Aの角度に基づいて底面法線ベクトルNbを求めてもよい。
姿勢特定部203は、バケット113の角度を特定するバケット姿勢特定部の一例である。
【0037】
また、姿勢特定部203は、算出した姿勢角と検出情報取得部202が取得した情報と作業機械情報記憶部200が記憶する情報とに基づいて、バケット113の複数の輪郭点についてグローバル座標系における位置を特定する。バケット113の輪郭点は、バケット113の刃先Eにおける幅方向(X方向)の複数の点、および底板における幅方向の複数の点を含む。具体的には、姿勢特定部203は、ブーム111の姿勢角α、アーム112の姿勢角β、バケット113の姿勢角γ、ブーム111の寸法L1、アーム112の寸法L2、バケット113の寸法L3、バケット113の輪郭形状、代表点OとピンP1との位置関係、車体120の代表点Oの位置、車体120が向く方位、および車体120の傾きθから、グローバル座標系におけるバケット113の輪郭点の位置を特定する。
【0038】
目標施工データ記憶部204は、施工現場における掘削対象の目標形状を表す目標施工データを記憶する。目標施工データは、グローバル座標系で表される三次元データであって、目標施工面を表す複数の三角形ポリゴンからなる立体地形データ等である。目標施工データを構成する三角形ポリゴンは、それぞれ隣接する他の三角形ポリゴンと共通の辺を有する。つまり、目標施工データは、複数の平面から構成される連続した平面を表す。目標施工データは、外部記憶媒体から読み込まれることで、またはネットワークを介して外部サーバから受信されることで、目標施工データ記憶部204に記憶される。
【0039】
目標施工線特定部205は、目標施工データ記憶部204が記憶する目標施工データと、姿勢特定部203が特定したバケット113の輪郭点の位置とに基づいて、目標施工線を特定する。目標施工線とは、バケット113の駆動面(バケット113を通りX軸に直交する面)と目標施工データとの交線によって表される。具体的には、目標施工線特定部205は、以下の手順で目標施工線を特定する。
【0040】
目標施工線特定部205は、バケット113の輪郭点のうち最も下方に位置するもの(高さが最も低いもの)を特定する。目標施工線特定部205は、目標施工データより特定した輪郭点の鉛直下方に位置する目標施工面を特定する。目標施工線特定部205により規定する目標施工面は、バケット113に対する最短距離に位置する目標施工面を特定する手法等でもよい。
【0041】
次に、目標施工線特定部205は、特定した輪郭点と目標施工面とを通るバケット113の駆動面と目標施工データとの交線を、目標施工線として算出する。目標施工データがバケット113の駆動面上に変曲点を有する場合、目標施工線は、複数の線分の組み合わせによって構成される。目標施工線特定部205で算出される目標施工線は、線分としてだけでなく幅を持つような地形形状で規定してもよい。
目標施工線特定部205は、作業機110の制御基準を特定する制御基準特定部の一例である。
【0042】
また、目標施工線特定部205は、バケット113の直下の目標施工面の法線ベクトル(施工面法線ベクトルNt)を特定する。施工面法線ベクトルNtは、X軸、Y軸およびZ軸で表される油圧ショベル100のローカル座標系で表される。施工面法線ベクトルNtは、目標施工面に直交し、地上側へ伸びるベクトルである。具体的には、目標施工線特定部205は、以下の手順で施工面法線ベクトルNtを求める。目標施工線特定部205は、バケット113の輪郭点のうち最も下方に位置するものを特定する。目標施工線特定部205は、特定した輪郭点の鉛直下方に位置する目標施工面を特定する。次に、目標施工線特定部205は、特定した目標施工面を表す三角形ポリゴンを、検出情報取得部202が取得した車体の傾きだけ回転させることで、目標施工面を表す三角形ポリゴンをローカル座標系に変換する。
【0043】
目標施工線特定部205は、ローカル座標系に変換された三角形ポリゴンの各頂点(点D、点E、点F)から2つのベクトルを生成する。例えば、姿勢特定部203は、点Dから点Eへ向くベクトルと、点Dから点Fへ向くベクトルを生成する。姿勢特定部203は、生成した2つのベクトルの外積を、施工面法線ベクトルNtとする。なお、他の実施形態においては、目標施工線特定部205は、目標施工線のうちバケット113の直下の線分を車体の傾きだけ回転させ、当該線分に直交し、地上側へ伸びるベクトルを、施工面法線ベクトルNtとしてもよい。
目標施工線特定部205は、作業機110による掘削対象の目標形状を示す施工面の角度を特定する施工面特定部の一例である。
【0044】
距離特定部206は、バケット113と目標施工線(掘削対象位置)との距離を特定する。
【0045】
目標速度決定部207は、操作量取得部201が取得した右側操作レバー1212の前後方向の操作量に基づいて、ブーム111の目標速度を決定する。目標速度決定部207は、操作量取得部201が取得した左側操作レバー1213の前後方向の操作量に基づいて、アーム112の目標速度を決定する。目標速度決定部207は、操作量取得部201が取得した右側操作レバー1212の左右方向の操作量に基づいて、バケット113の目標速度を決定する。
【0046】
作業機制御部208は、距離特定部206が特定した距離に基づいて、バケット113が目標施工線より下方に侵入しないように作業機110を制御する作業機制御を行う。第1の実施形態に係る作業機制御は、バケット113が目標施工線より下方に侵入しないようにブーム111の制限速度を決定し、ブーム111の制御指令を生成する制御である。具体的には、作業機制御部208は、バケット113と掘削対象位置との間の距離と作業機110の制限速度との関係を示す制限速度テーブルにより、ブーム111の垂直方向の制限速度を決定する。
【0047】
図5は、制限速度テーブルの一例を示す図である。
図5に示すように、制限速度テーブルによれば、バケット113と掘削対象位置との距離が0のときに作業機110の垂直方向成分の速度が0になる。制限速度テーブルにおいて、バケット113の最下点が目標施工線の上方に位置するときに、バケット113と掘削対象位置との距離は正の値として表される。他方、バケット113の最下点が目標施工線の下方に位置するときに、バケット113と掘削対象位置との距離は負の値として表される。また制限速度テーブルにおいて、バケット113を上方に移動させるときの速度は正の値として表される。バケット113と掘削対象位置との距離が正の値である作業機制御閾値th以下の場合にはバケット113と目標施工線との距離に基づき作業機110の制限速度が規定される。バケット113と掘削対象位置との距離が作業機制御閾値th以上であるとき、作業機110の制限速度の絶対値は作業機110の目標速度の最大値より大きい値となる。つまり、バケット113と掘削対象位置との距離が作業機制御閾値th以上である場合、作業機110の目標速度の絶対値は常に制限速度の絶対値より小さいため、ブーム111は、常に目標速度で駆動する。
【0048】
作業機制御部208は、ブーム111とアーム112とバケット113の目標速度の垂直方向成分の和の絶対値より制限速度の絶対値が小さい場合、制限速度からアーム112の目標速度の垂直方向成分とバケット113の目標速度の垂直方向成分とを減算することで、ブーム111の垂直方向の制限速度を算出する。作業機制御部208は、ブーム111の垂直方向の制限速度から、ブーム111の制限速度を算出する。
【0049】
バケット制御部209は、バケット制御開始条件が満たされたときに、バケット底面113Aと目標施工面の角度の差が一定角度になるようにバケット113を制御するバケット制御を開始する。バケット底面113Aと目標施工面の角度の差は、底面法線ベクトルNbと施工面法線ベクトルNtのなす角φに等しい。バケット制御部209は、バケット制御開始条件が満たされたときに、底面法線ベクトルNbと施工面法線ベクトルNtのなす角φを目標角度として目標角度記憶部210に記憶させる。バケット制御部209は、ブーム111およびアーム112の速度に基づいて、バケット113の制御速度を決定する。ブーム111およびアーム112の速度は、ストローク検出器117が検出した単位時間当たりのストローク長によって求められる。第1の実施形態に係るバケット制御開始条件は、バケット113と掘削対象位置との距離がバケット制御開始閾値未満であり、かつバケットに係る操作量が所定の閾値(操作装置1211の遊びに相当する程度の角度)未満であり、かつ作業機制御の実行中であるという条件である。
【0050】
バケット制御部209は、バケット制御終了条件が満たされたときに、バケット制御を終了する。第1の実施形態に係るバケット制御終了条件は、バケット113と掘削対象位置との距離がバケット制御終了閾値以上であり、またはバケットに係る操作量が所定の閾値以上であり、または作業機制御を実行していないという条件である。バケット制御開始閾値は、バケット制御終了閾値より小さい値である。バケット制御開始閾値は、作業機制御閾値th以下の値である。なお、オペレータの操作等により、作業機制御が行われない場合、バケット制御部209は、バケット制御を行わない。
【0051】
目標角度記憶部210は、底面法線ベクトルNbと施工面法線ベクトルNtのなす角φの目標角度を記憶する。
【0052】
制御指令出力部211は、作業機制御部208が生成したブーム111の制御指令を油圧装置125の電磁比例制御弁に出力する。制御指令出力部211は、バケット制御部209が生成したバケット113の制御指令を油圧装置125の電磁比例制御弁に出力する。
【0053】
《動作》
ここで、第1の実施形態に係る制御装置126による油圧ショベル100の制御方法について説明する。
図6は、第1の実施形態に係る制御装置の動作を示すフローチャートである。制御装置126は、所定の制御周期ごとに以下に示す制御を実行する。
操作量取得部201は、操作装置1211からブーム111に係る操作量、アーム112に係る操作量、バケット113に係る操作量、および旋回に係る操作量を取得する(ステップS1)。検出情報取得部202は、位置検出器122、方位演算器123、傾斜検出器124、ストローク検出器117のそれぞれが検出した情報を取得する(ステップS2)。
【0054】
姿勢特定部203は、各油圧シリンダのストローク長からブーム111の姿勢角α、アーム112の姿勢角β、およびバケット113の姿勢角γを算出する(ステップS3)。姿勢特定部203は、算出した姿勢角α、β、γと、作業機械情報記憶部200が記憶するアーム112の寸法L1、バケット113の寸法L2、ブーム111の寸法L3、ブーム111の形状と、検出情報取得部202が取得した車体120の位置、方位および傾きとに基づいて、グローバル座標系におけるバケット113の輪郭点の位置を算出する(ステップS4)。また、姿勢特定部203は、バケット113の輪郭点の位置に基づいて、底面法線ベクトルNbを算出する(ステップS5)。
【0055】
目標施工線特定部205は、バケット113の輪郭点のうち、グローバル座標系における位置が最も下方に位置するものを特定する(ステップS6)。目標施工線特定部205は、特定した輪郭点の鉛直下方に位置する目標施工面を特定する(ステップS7)。目標施工線特定部205は、特定した目標施工面の施工面法線ベクトルNtを算出する(ステップS8)。次に、目標施工線特定部205は、特定した輪郭点と目標施工面とを通るバケット113の駆動面と目標施工データとの交線を、目標施工線として算出する(ステップS9)。距離特定部206は、バケット113と掘削対象位置との距離を特定する(ステップS10)。目標速度決定部207は、ステップS1で操作量取得部201が取得した操作量に基づいて、ブーム111、アーム112およびバケット113の目標速度を算出する(ステップS11)。
【0056】
次に、作業機制御部208は、
図5に示すテーブルに従って、距離特定部206が特定したバケット113と掘削対象位置との距離に関連付けられた作業機110の制限速度を特定する(ステップS12)。次に、作業機制御部208は、アーム112およびバケット113の目標速度と作業機110の制限速度とに基づいてブーム111の制限速度を算出する(ステップS13)。作業機制御部208は、作業機制御部208が生成したブーム111の制限速度に基づいて、ブーム111の制御指令およびバケット113の制御指令を生成する(ステップS14)。
【0057】
作業機制御部208がブーム111の制御指令を生成すると、バケット制御部209は、以下に示すバケット制御処理を行う(ステップS15)。
図7は、第1の実施形態に係るバケット制御処理を示すフローチャートである。
バケット制御部209は、ステップS10で距離特定部206が特定した距離とステップS1で操作量取得部201が取得した操作量とに基づいて、油圧ショベル100の状態がバケット制御開始条件を満たさない状態から当該条件を満たす状態に遷移したか否かを判定する(ステップS31)。油圧ショベル100の状態がバケット制御開始条件を満たさない状態から当該条件を満たす状態に遷移した場合(ステップS31:YES)、バケット制御部209は、ステップS5で姿勢特定部203が特定した底面法線ベクトルNbと、ステップS8で目標施工線特定部205が特定した施工面法線ベクトルNtとがなす角φを目標角度として算出する(ステップS32)。バケット制御部209は、目標角度を目標角度記憶部210に記憶させる(ステップS33)。そしてバケット制御部209は、バケット制御を有効にする(ステップS34)。つまり、バケット制御部209は、バケット制御開始条件を満たしたとき以降、バケット底面113Aと目標施工線の角度との差が目標角度記憶部210が記憶する目標角度と一致するように、バケット113の制御速度を決定する。
【0058】
他方、油圧ショベル100の状態がバケット制御開始条件を満たさない状態である場合、または既に当該条件を満たしている場合(ステップS31:NO)、バケット制御部209は、油圧ショベル100の状態がバケット制御終了条件を満たさない状態から当該条件を満たす状態に遷移したか否かを判定する(ステップS35)。油圧ショベル100の状態がバケット制御終了条件を満たさない状態から当該条件を満たす状態に遷移した場合(ステップS35:YES)、バケット制御部209は、バケット制御を無効にする(ステップS36)。つまり、バケット制御部209は、バケット制御終了条件を満たしたとき以降、バケット113の制御速度を決定しなくなる。
【0059】
バケット制御を有効にした場合、バケット制御を無効にした場合、またはバケット制御開始条件の不足から充足への遷移およびバケット制御終了条件の不足から充足への遷移が無い場合(ステップS35:NO)、バケット制御部209は、バケット制御が有効であるか否かを判定する(ステップS37)。バケット制御が無効である場合(ステップS37:NO)、バケット制御部209は、バケット113の制御速度を算出せずにバケット制御処理を終了する。他方、バケット制御が有効である場合(ステップS37:YES)、バケット制御部209は、ブーム111およびアーム112の速度に基づいて、ブーム111の姿勢角の変化量Δαとアーム112の姿勢角の変化量Δβを算出する(ステップS38)。また、バケット制御部209は、ステップS5で姿勢特定部203が特定した底面法線ベクトルNbと、ステップS8で目標施工線特定部205が特定した施工面法線ベクトルNtとがなす角φを算出する(ステップS39)。次に、バケット制御部209は、目標角度記憶部210が記憶する目標角度から、ステップS38で算出した角φ、変化量Δαおよび変化量Δβを減算することで、バケット113の姿勢角の変化量Δγを算出する(ステップS40)。バケット制御部209は、変化量Δγを速度に変換することで、バケット113の制御速度を算出する(ステップS41)。そして、バケット制御部209は、バケット113の制御速度に基づいてバケット113の制御指令を生成し(ステップS42)、バケット制御処理を終了する。
【0060】
制御装置126がバケット制御処理を終了すると、制御指令出力部211は、作業機制御部208が生成したブーム111の制御指令、およびバケット制御部209が生成したバケット113の制御指令を、油圧装置125の電磁比例制御弁に出力する(ステップS16)。
【0061】
これにより、油圧装置125は、ブームシリンダ114、アームシリンダ115、およびバケットシリンダ116を駆動させる。なお、バケット制御が無効となる場合、バケット113の制御指令は電磁比例制御弁に出力されない。この場合、電磁比例制御弁は、パイロット油圧の通過を許容する開状態となり、油圧装置125は、操作装置1211が生成するパイロット油圧に基づいてバケットシリンダ116を駆動させる。
【0062】
《作用・効果》
図8は、第1の実施形態に係る油圧ショベルの挙動の例を示す図である。
図8に示す例では、時刻T1において、バケット113は目標施工面G1の上方に位置するものとする。その後、アーム112は掘削方向に駆動し、目標施工面G1と目標施工面G2とを接続する変曲点を越える。そして、時刻T2において、バケット113は目標施工面G2の上方まで移動するものとする。時刻T1では、制御装置126は、底面法線ベクトルNb(T1)と、目標施工面G1の施工面法線ベクトルNt(G1)とのなす角φ(T1)が目標角度になるように、バケット113の制御指令を生成する。その後、時刻T2では、制御装置126は、底面法線ベクトルNb(T2)と、目標施工面G2の施工面法線ベクトルNt(G2)とのなす角φ(T2)が目標角度になるように、バケット113の制御指令を生成する。
このように、第1の実施形態によれば、制御装置126は、バケット底面113Aの角度と目標施工面の角度との差が一定角度になるようにバケット113を制御する(バケット制御を行う)。これにより、バケット113が変曲点を越えることで目標施工面の角度が変化した場合にも、オペレータによる明示の操作なしに、バケット113と目標施工面との相対的な角度を一定に保つことができる。
【0063】
また、第1の実施形態によれば、制御装置126は、バケット113の角度と対象施工面の角度との差が、目標角度になるように、バケット113を制御する。第1の実施形態における目標角度は、油圧ショベル100の状態がバケット閾値開始条件を満たしたときにおけるバケット底面113Aの角度と目標施工面の角度との差である。これにより、制御装置126は、バケット底面113Aと目標施工面との相対的な角度をオペレータの意図に沿った角度に保つことができる。なお、他の実施形態に係る目標角度は、油圧ショベル100の状態がバケット制御開始条件を満たしたときにおけるバケット113の角度と目標施工面の角度との差でなくてよい。例えば、他の実施形態に係る制御装置126は、予めオペレータ等によって目標角度記憶部210に記憶された角度であってもよい。例えば、目標角度記憶部210に目標角度として0度を記憶させておくことで、制御装置126は、バケット底面113Aが目標施工面に沿うようにバケット113を制御することができる。
【0064】
また、第1の実施形態によれば、制御装置126は、バケット113と目標施工面との距離がバケット制御開始閾値未満である場合にバケット制御を行う。バケット113が目標施工面に十分に近い場合、オペレータは掘削対象の仕上げ掘削を意図している蓋然性が高い。したがって、制御装置126は、バケット113が目標施工面に十分に近い場合にバケット制御を行うことで、オペレータによる明示の操作なしに、掘削作業時にバケットの角度を一定に保つことができる。なお、他の実施形態においてバケット制御開始条件は、バケット113と目標施工面との距離に関する条件を含まなくてもよい。例えば、他の実施形態においてバケット制御開始条件は、図示しないバケット制御ボタンの押下であってもよい。
【0065】
また、第1の実施形態によれば、制御装置126は、バケット113と目標施工面との距離が作業機制御閾値th未満である場合に、バケット113が施工面より下方に侵入しないように作業機110を制御する作業機制御を行う。このとき、バケット制御閾値は、作業機制御閾値th以下である。つまり、作業機制御が実行されていない間、バケット制御も実行されない。作業機制御が実行されない範囲においては、オペレータが粗掘削を意図している可能性が高く、仕上げ掘削を意図している可能性は低い。したがって、バケット制御閾値が、作業機制御閾値thより小さいことで、制御装置126は、不要に作業機110の角度の制御がなされることを防ぐことができる。他方、他の実施形態に係る制御装置126は、作業機制御機能を有しないものであってもよい。また、他方、他の実施形態に係る油圧ショベル100においては、バケット制御閾値が作業機制御閾値thより大きいものであってもよい。
【0066】
また、第1の実施形態によれば、制御装置126は、バケット113の操作に係る操作量が所定の閾値未満であり、かつバケット113と掘削対象位置との距離がバケット制御閾値未満である場合に、バケット制御を実行することとしてもよい。操作装置1211によってバケット113の操作がなされている場合、オペレータは自らバケットを制御したいという意図を有する蓋然性が高い。したがって、制御装置126は、バケット113の操作に係る操作量が小さい場合にバケット制御を行うことで、不要にバケット113の角度の制御がなされることを防ぐことができる。
【0067】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
【0068】
第1の実施形態に係る操作装置1211による操作信号の生成方式は、PPC方式であるが、これに限られず、例えば電気レバー方式であってもよい。電気レバー方式とは、右側操作レバー1212および左側操作レバー1213の操作角度をポテンショメータにより検出し、操作信号を生成する方式である。この場合、制御装置126は、ブーム111、アーム112およびバケット113の目標速度、ならびにブーム111の制限速度およびバケット113の制御速度に基づいて、ブーム111、アーム112およびバケット113の制御指令をそれぞれ生成し、これにより電磁比例制御弁を制御する。
【0069】
第1の実施形態に係る制御装置126は、底面法線ベクトルNbと施工面法線ベクトルNtのなす角φによって、バケット底面113Aの角度と目標施工面の角度の差を特定するが、他の実施形態においてはこれに限られない。例えば、他の実施形態では、底面法線ベクトルNbに代えてバケット113とアーム112とを支持するピンからバケット113の刃先に伸びるベクトルを用いてもよい。また例えば、他の実施形態では、バケット底面113Aの傾きと施工面の傾きとをそれぞれ特定することで、バケット底面113Aの角度と目標施工面の角度の差を算出してもよい。
【0070】
第1の実施形態に係るバケット制御開始条件は、バケット113と掘削対象位置との距離がバケット制御開始閾値未満であることを含むが、これに限られず、バケット制御開始条件は、作業機110の状態と作業機の制御基準との関係が所定の関係を満たすことを含むものであればよい。例えば、他の実施形態に係るバケット制御開始条件は、バケット113と地表との距離がバケット制御開始閾値未満であることなどを含むものであってもよい。この場合、地表は制御基準の一例である。
【0071】
第1の実施形態に係る制御装置126は、ブーム111とアーム112の速度に基づいてバケット113の制御速度を算出するが、これに限られない。例えば、他の実施形態に係る制御装置126は、ブーム111とアーム112の目標速度およびブーム111の制限速度に基づいてバケット113の制御速度を算出してもよい。
【0072】
第1の実施形態に係る制御装置126は油圧ショベルに限らず作業機を備える作業機械であれば適用可能である。