以下、本発明の実施の形態を図面を参照しつつ説明する。なお、本実施の形態では、作業機械の一例として、フロント作業機に作業具としてロータリーチルトバケットを搭載した油圧ショベルを例示して説明するが、ロータリー軸およびチルト軸を有する作業具を備える他の作業機械においても本発明を適用することも可能である。
<第1の実施の形態>
本発明の第1の実施の形態を図1~図17を参照しつつ説明する。
図1は、本実施の形態に係る作業機械の一例である油圧ショベルの外観を模式的に示す図である。
図1において、油圧ショベル1は、下部走行体10と、下部走行体10に旋回可能に設けられた上部旋回体11と、上部旋回体11に回動可能に設けられたフロント作業機12と、操作者(オペレータ)が搭乗する操作室22とから概略構成されている。
フロント作業機12は、垂直方向にそれぞれ回動する複数のフロント部材(ブーム13、アーム14、ロータリーチルトバケット(作業具)15)を連結して構成された多関節型であり、ブーム13の基端は上部旋回体11の前部に垂直方向に回動可能に支持されており、アーム14の一端はブーム13の基端とは異なる端部(先端)に垂直方向に回動可能に支持されており、アーム14の他端には作業具としてのロータリーチルトバケット15が垂直方向に回動可能に支持されている。
ブーム13、アーム14、及びロータリーチルトバケット15は、油圧アクチュエータ(回動アクチュエータ)であるブームシリンダ17、アームシリンダ18、及びバケットシリンダ19によりそれぞれ回動駆動される。また、上部旋回体11は、油圧アクチュエータ(旋回アクチュエータ)である旋回油圧モータ16により旋回駆動される。また、下部走行体10は、油圧アクチュエータ(走行アクチュエータ)である図示しない左右の走行油圧モータにより走行駆動される。
操作室22内には、操作装置である操作レバー24と、油圧ショベル1の全体の動作を制御する制御装置であるコントローラ23と、操作者への情報を表示するとともに、操作者の指示を入力する表示入力装置26とが配置されている。によって構成されている。
コントローラ23は中央演算装置(CPU)、メモリ、インタフェースによって構成され、メモリ内に予め保存されているプログラムを中央演算装置(CPU)で実行し、メモリ内に保存されている設定値とインタフェースから入力された信号に基づいて中央演算装置(CPU)が処理を行い、インタフェースから信号を出力する。
表示入力装置26は、例えば、タッチパネル等のポインティングデバイスであり、画面上に表示されるグラフィカルユーザインターフェース(GUI)により情報の表示と操作者からの指示を入力する構成となっている。
上部旋回体11、ブーム13、アーム14、及びロータリーチルトバケット15には、それぞれの姿勢に関する情報である姿勢情報を検出する姿勢情報検出装置(姿勢検出センサ)としての慣性計測装置(IMU: Inertial Measurement Unit)27,28,29,30がそれぞれ配置されている。以降、これらの慣性計測装置を区別する必要が有る場合は、それぞれ、車体慣性計測装置27、ブーム慣性計測装置28、アーム慣性計測装置29、及びバケット慣性計測装置30と称する。慣性計測装置27,28,29,30の各部材に対する相対的な取り付け位置は設計情報などから求められるので、慣性計測装置27,28,29,30の検出結果(角速度と加速度)に基づいて、上部旋回体11、ブーム13、アーム14、及びロータリーチルトバケット15の相対的な回動角度を推定することができる。
また、上部旋回体11の上部には、測位センサとしての2つのGNSS(Global Navigation Satellite System)アンテナ32a,32bが取り付けられている。GNSSアンテナ32a,32bは、人工衛星から受信した信号を演算することで位置情報を演算する位置演算機能を含んでおり、2つのGNSSアンテナ32a,32bでそれぞれ得られる位置情報の差分から上部旋回体11の方位(向き)を推定することができる。以降、2つのGNSSアンテナ32a,32bを区別する必要が無い場合は、あわせてGNSSアンテナ32と記載する。
図2は、ロータリーチルトバケットを拡大して示す図である。
図2において、ロータリーチルトバケット15は、フロント作業機12をフロント部材として構成するアーム14の先端に回動軸A4を中心に回動可能に設けられている。また、ロータリーチルトバケット15は、フロント作業機12に対する回動軸A4に垂直な2つの回動軸であって互いに垂直なロータリー回動軸A6とチルト回動軸A5を中心にそれぞれ回動可能に構成されている。ロータリーチルトバケット15は、ロータリーチルトバケット15を回動軸A6を中心に回動駆動するロータリーアクチュエータとしてのローテートモータ21と、回動軸A5を中心に回動駆動するチルトアクチュエータとしてのチルトシリンダ20a,20b(前述の図1では一方のみを図示し、他方については符号のみを括弧書きで示す)とを備えている。すなわち、ロータリーチルトバケット15は、バケットシリンダ19によってアーム14の先端の回動軸A4を中心に回動し、ロータリーチルトバケット15の連結部材においてチルトシリンダ20a,20bによって回動軸A4と直交する回動軸A5を中心に回動し、ロータリーチルトバケット15の連結部材においてローテートモータ21によって回動軸A4,A5と直交する回動軸A6を中心に回動するように構成されている。
ロータリーチルトバケット15には、ローテート角度計31が取り付けられており、ロータリーチルトバケット15の回動軸A6における回動角度(ロータリー角度)を検出することができる。また、バケット慣性計測装置30により、回動軸A4における回動角度に加え、回動軸A5における回動角度(チルト角度)を検出することができる。すなわち、バケット慣性計測装置30とローテート角度計31との検出結果に基づいて、ロータリーチルトバケット15の向きを算出することができる。
図3は、操作室に設けられた操作レバーを抜き出して概略的に示す図である。
図3に示すように、操作室22に配置された操作レバー24は、前後左右に揺動可能な2つの操作レバー24a,24bによって構成されている。操作レバー24a,24b上には、それぞれ、左右に揺動可能なスライダー24a1,24b1が設けられている。操作レバー24は、2つの操作レバー24a,24bのそれぞれについて、前後方向の揺動、左右方向の揺動、及びスライダー24a1,24b1の左右方向の揺動の計6軸の操作量を入力可能に構成されており、操作レバー24の操作により生成される操作信号に基づいてコントローラ23で駆動信号を生成することにより、操作レバー24における操作に対応して、旋回油圧モータ16、ブームシリンダ17、アームシリンダ18、バケットシリンダ19、チルトシリンダ20a,20b、及びローテートモータ21をそれぞれ駆動することができる。また、操作レバー24a,24b上には、オペレータによる押下により操作入力が可能な操作ボタン25(25a1,25a2,25a3,25a4,25a5,25b1,25b2,25b3,25b4,25b5)が設けられている。
図4は、油圧ショベルの駆動機構に係る油圧回路の要部を抜き出して示す図である。
図4において、油圧ショベル1の駆動機構は、例えば、ディーゼルエンジンなどの原動機41により駆動される油圧ポンプ39及びパイロットポンプ40と、油圧ポンプ39から油圧アクチュエータ16,17,18,19,20,21へ供給される圧油の供給量を制御するコントロールバルブ33,34,35,36,37,38と、油圧ポンプ39及びパイロットポンプ40への作動油の供給と油圧アクチュエータ16,17,18,19,20,21から排出された作動油を貯蔵するタンク42と、油圧ポンプ39から吐出された圧油の一部をタンク42へ排出するためのブリードオフユニット43とにより概略構成されている。
パイロットポンプ40は、コントロールバルブ33,34,35,36,37,38の駆動源となるパイロット圧を供給する。パイロットポンプ40から吐出された圧油は、コントロールバルブ33,34,35,36,37,38の電磁比例減圧弁33b,34b,35b,36b、37b,38b,33c,34c,35c,36c,37c,38cを介して方向制御弁33a,34a,35a,36a,37a,38aに導かれている。コントローラ23から出力される電流指令に基づいて電磁比例減圧弁33b,34b,35b,36b、37b,38b,33c,34c,35c,36c,37c,38cが制御されることによって、方向制御弁33a,34a,35a,36a,37a,38aの駆動が制御される。油圧ポンプ39から吐出された圧油は、方向制御弁33a,34a,35a,36a,37a,38aに供給され、電磁比例減圧弁33b,34b,35b,36b、37b,38b,33c,34c,35c,36c,37c,38cの動作に応じて、対応する油圧アクチュエータ16,17,18,19,20,21に分配される圧油の量が調整される。
油圧ポンプ39は、可変容量式であり、コントローラ23から出力される電流指令に基づいて可変容量ポンプ用電磁比例減圧弁39bが動作することにより油圧ポンプ39の容量が調整され、油圧ポンプ39の吐出流量が制御される。油圧ポンプ39から吐出された圧油の一部は、ブリードオフ弁43aがタンク42への油路を連通させることにより、タンク42へと排出される。ブリードオフ弁43aは、タンク42へ戻る圧油の流量を制御するものであり、コントローラ23から出力される電流指令に基づいてブリードオフ弁用電磁比例減圧弁43bが動作することによって調整されたパイロット圧により、タンク42へと排出される流量が制御される。
コントローラ23は、操作レバー24、操作ボタン25、表示入力装置26、慣性計測装置27,28,29,30、ローテート角度計31、及びGNSSアンテナ32と接続されており、それぞれからの入力信号に基づいて電磁比例減圧弁33b,34b,35b,36b,37b,38b,33c,34c,35c,36c,37c,38c,39b,43bを駆動する電流指令信号を出力し、油圧アクチュエータ16,17,18,19,20,21を駆動することで油圧ショベル1を駆動する。
図5は、コントローラの本実施の形態に係る機能部を示す機能ブロック図である。
本実施の形態において、コントローラ23内部のシステムはいくつかのプログラムの組み合わせとして実行され、インタフェースを介して操作レバー24、操作ボタン25、及び表示入力装置26の指示信号と、慣性計測装置27,28,29,30、ローテート角度系31、及びGNSSアンテナ32の検出信号とを入力し、中央演算装置(CPU)で処理を実施した後、インタフェースを介してコントロールバルブ33,34,35,36,37,38、油圧ポンプ39、及びブリードオフユニット43をそれぞれ駆動するための駆動信号を出力するように構成されている。
図5において、コントローラ23は、慣性計測装置27,28,29,30(姿勢検出センサ)、ローテート角度系31、及びGNSSアンテナ32(測位センサ)の出力に基づいて、姿勢を主とする油圧ショベル1の状態を演算する作業機械状態演算部50と、表示入力装置26に入力される操作者の指示内容に基づいて油圧ショベル1による作業対象の位置や形状に関する情報である作業目標を設定する作業目標設定部51と、表示入力装置26に入力される操作者の指示内容に基づいて作業具の移動方向を設定する作業具動作設定部52と、作業具動作設定部52が設定した1つ以上の作業具移動方向を記憶する作業具動作設定記憶部53と、操作ボタン25から出力される操作者の指示に対応した作業具動作設定記憶部53に記憶されている作業具移動方向を呼び出す作業具動作設定呼出し部54と、作業機械状態演算部50が演算した油圧ショベル1の状態と作業目標設定部51により設定された作業目標と作業具動作設定呼出し部54から出力される作業具移動方向に基づいて作業具を所定の移動方向に移動するための動作補正量を演算する作業具動作補正量演算部55と、操作レバー24により入力される操作者の操作指示と作業機械状態演算部50が出力する姿勢状態と作業具動作補正量演算部55が演算した動作補正量に基づいて油圧ショベル1の各油圧アクチュエータ16,17,18,19,20,21の制御量を演算し電流指令をコントロールバルブ33,34,35,36,37,38、油圧ポンプ39、及びブリードオフユニット43に出力する作業機制御量演算部56とから構成されている。
図6及び図7は、ロータリーチルトバケットを備えた油圧ショベルが行う作業の一例を概略的に示す図であり、図6は油圧ショベルによる法面整形作業を、図7は油圧ショベルによる敷均し作業をそれぞれ示す図である。
図6に示すような法面整形作業においては、油圧ショベル1は、作業対象3上に設定した目標面5を僅かに掘削し、面を平らに整形する作業を行う。
例えば、ロータリーチルトバケットを備えない油圧ショベルで法面整形作業を行う場合は、目標面5の前に油圧ショベル1を移動し、目標面5に正対するように上部旋回体を旋回した後に一列のみ掘削して整形し、再度目標面5の前で走行動作により移動する必要がある。しかしながら、このように移動と掘削を交互に繰り返すと作業に時間を要し作業効率が低下する。
一方、本実施の形態のようにロータリーチルトバケット15を備えた油圧ショベル1で法面整形作業を行う場合は、図6に示すように、上部旋回体11を目標面5に正対するように旋回させなくともロータリーチルトバケット15の各軸を調整することでロータリーチルトバケット15を目標面5に正対する姿勢を取ることができる。また、上部旋回体11の旋回量、フロント作業機12の動作量、及びロータリーチルトバケット15の動作量を適切に調整することで、ロータリーチルトバケット15が目標面5に正対する姿勢を取った状態のまま、図6に示す実線矢印の方向に掘削することが可能となる。
また、図6に示すような、目標面5の左端の作業対象3の他の面との境界線では、図6に破線矢印で示すように、目標面5に正対する方向と異なる方向に掘削する。この場合、ロータリーチルトバケット15を目標面5に正対する姿勢を取った状態のまま、目標面5に正対する方向と異なる方向、すなわち、破線矢印で示すような境界線に沿った方向へ掘削を行う。
また、図7に示すような敷均し作業においては、油圧ショベル1は、ロータリーチルトバケット15で掬った土砂4を作業対象3の上に僅かに落とし、作業対象3の上に均一に土砂4を撒く。このような敷均し作業においては、鉛直な壁面付近に対して均一に土砂を撒くために、壁面から適切な距離を取った位置に目標面5を設定し、目標面5に正対する向きになるようにロータリーチルトバケット15の姿勢を取った状態のまま、実践矢印で示すような目標面5に正対する方向と直角な方向へロータリーチルトバケット15を返しながら移動させる。
図6に示した法面整形作業や、図7に示した敷均し作業のように、ロータリーチルトバケット15の姿勢と移動方向は複数の組み合わせには種々のものがある。本願発明においては、作業対象や作業内容に応じてロータリーチルトバケット15の姿勢を適切に制御することにより、作業精度の向上を図る。
図8及び図9は、ロータリーチルトバケットを備えた油圧ショベルの姿勢演算について示す図であり、図8は油圧ショベルの全体を概略的に示す側面図、図9はロータリーチルトバケットを拡大して概略的に示す側面図である。
図8及び図9に定義する変数を用いることで、コントローラ23の作業機械状態演算部50は、油圧ショベル1の姿勢情報として、ロータリーチルトバケット15の先端位置を演算する。油圧ショベル1には、上部旋回体11の旋回軸と下部走行体10の下側に接する平面との交点をショベル座標系の原点Ogとして定義する。油圧ショベル1の外部に設定されたグローバル座標系におけるショベル座標系の原点Ogの位置は、GNSSアンテナ32で検出したGNSSアンテナ32のグローバル座標系における位置と、ショベル座標系の原点Ogに対するGNSSアンテナ32の取り付け高さLg1および前後方向取付け長さLg2から求めることができる。また、グローバル座標系に対するショベル座標系の向きは、ショベル座標系を水平面に鉛直な軸を中心に、GNSSアンテナ32で検出した油圧ショベル1のグローバル座標系の向き(方位角)に向けることで求めることができる。ここで、グローバル座標系からショベル座標系への同時変換行列をTshと定義する。
ショベル座標系の原点Ogに対するロータリーチルトバケット15の先端位置(爪先位置)Pbkは、上部旋回体11の旋回角度θsw、ブーム13の揺動角θbm、アーム14の揺動角θam、ロータリーチルトバケット15の回動軸A4における揺動角θbk、回動軸A5における揺動角θtlt、および回動軸A6における揺動角θrotと、各部材の長さLf1,Lf2,Lbm,Lam,Ltlt,Lrot,Lbk1,Lbk2とを用い、油圧ショベル1を6リンクから構成されるリンク構造としてD-H法(Denaviet-Hartenbergの記法)等を適用する、すなわち、リンク毎に定義される同時変換行列の積を取ることで得ることができる。
ここで、ロータリーチルトバケット15の先端位置Pbk=(Xbk,Ybk,Zbk)と、グローバル座標系とショベル座標系とのオイラー角(Yaw_bk,Pitch_bk,Roll_bk)と、各部材間の角度(θsw,θbm,θam,θbk,θtlt,θrot)との関係は、以下のベクトル式(式1)~(式3)で表すことができる。ただし、下記の(式1)及び(式2)におけるの「^T」は転置を表す。
r=[Xbk,Ybk,Zbk,Yaw_bk,Pitch_bk,Roll_bk]^T …(式1)
q=[θsw,θbm,θam,θbk,θtlt,θrot]^T …(式2)
r=F(q) …(式3)
図10は、作業目標上の目標面とロータリーチルトバケットの移動方向の設定内容との関係を模式的に示す図である。また、図11は、ロータリーチルトバケットの向きの定義を示す図である。
図10及び図11を用いて、作業目標設定部51が設定する目標面5の設定内容と、作業具動作設定部52が設定するロータリーチルトバケット15の移動方向の設定内容とについて説明する。
目標面5は1つの代表点と法線ベクトルで構成される単一平面として定義する。図10は、例えば、図6に示した作業対象3にロータリーチルトバケット15の移動方向を設定する場合を示しており、目標面5の代表点Ptとして目標面5の頂点Pt1,Pt2,Pt3,Pt4の重心を用いる。なお、代表点Ptは、平面上の任意の点を用いることが可能なので、目標面5の頂点Pt1,Pt2,Pt3,Pt4の何れかを代表点として用いても良い。また、目標面5の法線ベクトルn=[nx,ny,nz]^T(ただし、「^T」は転置)は、ベクトル(Pt3-Pt2)とベクトル(Pt1-Pt2)の外積を正規化することで得ることができる。
作業具動作設定部52では、ロータリーチルトバケット15の移動方向として、図11に示すバケット開口面の方向vdir_bk、目標面5に正対する方向vdir_n、目標面5に対する任意方向vdir_sの何れかを設定する。図11に示すように、バケット開口面の方向vdir_bkは、ロータリーチルトバケット15の先端(バケット先端)を原点とするローカル座標系のzbk軸の反対方向と定義することができるので、オイラー角(Yaw_bk,Pitch_bk,Roll_bk)で定義される回転行列Rbkを用いて下記の(式4)で算出できる。ただし、ローカル座標系は、ロータリーチルトバケット15の先端中央を原点とし、先端方向にxbk軸、横方向にybk軸、xbk軸とybk軸とに垂直であって開口方向と反対の方向にzbk軸を定義する。
vdir_bk=Rbk×[0,0,1]^T …(式4)
目標面5に正対する方向Vdir_nは、図10に示すように、法線ベクトルnの水平面への射影と定義することができるので、法線ベクトルnの成分を用いて下記の(式5)で算出することができる。
vdir_n=[nx,ny,0]^T …(式5)
任意方向ベクトルvdir_sは任意に定義可能である。本実施の形態においては、図10に示すように、目標面5の境界線である頂点Pt4と頂点Pt1を結ぶベクトル(Pt4-Pt1)をvdir_sとして定義する。
ここで、作業具動作設定部52の設定方法と、作業具動作設定記憶部53がロータリーチルトバケット15の移動方向と操作ボタン25の設定内容を対応付けて記憶する方法とについて説明する。
図12~図14は、ロータリーチルトバケットの移動方向に係る設定画面の一例を示すものであり、図12及び図13はバケットの移動方向の設定画面を、図14はロータリーチルトバケットの移動方向に対応する操作ボタンの割当設定画面をそれぞれ示している。
作業具動作設定部52は、図12に示すように、表示入力装置26上に移動方向設定表示90と選択内容表示92を表示し、移動方向としてバケット開口面の方向(矢印90a)、目標面5に正対する方向(矢印90b)、目標面5に対する任意方向(矢印90c)の選択状況を表示するようにGUIを構成する。また、選択ボタン93a,93b、決定ボタン94、キャンセルボタン95を表示入力装置26上に表示し、油圧ショベル1の操作者の指示入力を受付けるようにGUIを構成する。選択ボタン93a,93bを油圧ショベル1の操作者が押すと異なる移動方向の選択状況が表示される。図12においてはバケット開口面の方向(矢印90a)が選択されている状況を例示している。目標面5に対する任意方向(矢印90c)以外のいずれかの移動方向が選択された状況で決定ボタン94を油圧ショベル1の操作者が押すと現在表示されている移動方向を記憶して、図14に示した操作ボタン25の割当の設定画面へ遷移する。また、目標面5に対する任意方向(矢印90c)が選択された状況で決定ボタン94が操作されると、図13に示す移動方向の設定画面が表示され、操作者が任意の方向を入力して決定ボタン94を押すことで任意の方向が設定され、図14の操作ボタン25の割当の設定画面へ遷移する。なお、図12及び図13において、キャンセルボタン95が押された場合は設定内容を破棄して設定を終了する。
作業具動作設定部52は、図14に示すように、作業具移動方向の設定が完了すると、表示入力装置26上にボタン割当設定表示91を表示し、設定した移動方向を実行する操作レバー24上の操作ボタン25の位置を表示し、選択ボタン93、決定ボタン94、キャンセルボタン95を表示入力装置26上に表示し、油圧ショベル1の操作者の指示入力を受付けるようにGUIを構成する。移動方向の設定と同様に油圧ショベル1の操作者の各ボタンの押下状況に応じて設定の変更を行う。決定ボタン94が押された場合、作業具動作設定部52は、図12及び図13で設定されたロータリーチルトバケット15の移動方向と、図14で設定された操作ボタン25の位置とを作業具動作設定記憶部53に送信し、作業具動作設定記憶部53はそれぞれの設定を対応付けて記憶する。
図15は、コントローラによる作業具の移動方向制御処理を示すフローチャートである。また、図16は、作業具動作補正量演算部による作業具の移動方向の制御の開始について説明する図であり、図17は作業具動作補正量演算部による移動方向の制御量の演算について説明する図である。
なお、図15の全ての処理工程(ステップ)は、コントローラ23において予め定められたサンプリング時間毎に実行され、コントローラ23が起動している間は繰り返し実行される。また、コントローラ23内のメモリには、距離dh(後述のステップS101参照)が保存されており、前回に演算された値を比較できるように構成されている。
図15において、作業具動作補正量演算部55は、まず、作業目標設定部51から出力され、グローバル座標で表されている目標面5の代表点Ptと法線ベクトルnとを、グローバル座標系からショベル座標系への同時変換行列Tshを用いて、ショベル座標系に対する目標面5の代表点Pt’=(Tsh^-1)×Ptと法線ベクトルn’=(Tsh^-1)×(Pt+n)-Pt’に変換する(ステップS100)。
次に、ステップS100において変換した目標面5と、作業機械状態演算部50から出力されるロータリーチルトバケット15の先端位置Pbkの間の距離dhを以下の(式6)を用いて算出する(ステップS101)。なお、下記の(式6)中の「・」は、ベクトルの内積を示す。
dh=(Pbk-Pt’)・n …(式6)
続いて、ロータリーチルトバケット15の先端が法面に近づいているか否かを判定する(ステップS102)。すなわち、ステップS102では、図16に示すように、予め設定されている目標面5の上側に仮想的に設けた距離閾値Thより距離dhが小さいか否かを判定し、距離dhが距離閾値Th以上であり、ロータリーチルトバケット15の先端が目標面5より離れていると判定した場合、すなわち、判定結果がNOの場合には、ステップS113の処理に進む。また、ステップS102において、距離dhが距離閾値Thよりも小さく、ロータリーチルトバケット15の先端が目標面5に近いと判定した場合、すなわち、判定結果がYESの場合には、ステップS103の処理に進む。
ステップS102での判定結果がYESの場合には、目標面から離れた状態から近い状態に遷移したか否かを判定する(ステップS103)。すなわち、ステップS103では、前回の処理で算出した距離dhが距離閾値Thより大きかったか否かを判定し、距離dhが距離閾値Thより小さい場合、すなわち、判定結果がNOの場合には、ステップS106の処理に進む。また、距離dhが距離閾値Th以上である場合、すなわち、判定結果がYESの場合には、ステップS104の処理に進む。
ステップS103での判定結果がYESの場合には、現在の先端位置Pbkを制御開始位置Psとして保存する(ステップS104)。すなわち、ステップS104では、図16に示すように、一定サンプリング毎に行う処理において、初めてロータリーチルトバケット15の先端位置Pbkが距離閾値Thより目標面5に近づいた位置をPsとして記録する。
続いて、上記の(式4)を用いて、バケット開口面の方向vdir_bkを演算する(ステップS105)。
続いて、ステップS106において、作業具動作設定呼出し部54は、操作ボタン25の押下状況を判定し、作業具動作設定記憶部53に保存されている操作ボタン25の位置と作業具移動方向の対応に基づいて移動方向を作業具動作補正量演算部55に出力する(ステップS106)。ここでは、指示1、指示2、指示3が、操作ボタン25(25a1,25a2,25a3,25a4,25a5,25b1,25b2,25b3,25b4,25b5)のうちのそれぞれ異なる操作ボタン25に設定されている場合を考える。例えば、ロータリーチルトバケット15の移動方向として、指示1はバケット開口面の方向を指示し、指示2は目標面5に正対する方向を指示し、指示3は任意方向ベクトルで示される方向を指示するものである。
ステップS106において、操作ボタン25がバケット開口面の方向に対応する操作ボタン25が押された(指示1がなされた)場合には、移動方向ベクトルvdirにvdir_bkを設定し、設定したvdirを作業具動作補正量演算部55に出力する(ステップS107)。
また、ステップS106において、操作ボタン25が目標面5に正対する方向に対応する操作ボタン25が押された(指示2がなされた)場合は、移動方向ベクトルvdirにvdir_nを設定し、設定したvdirを作業具動作補正量演算部55に出力する(ステップS108)。
また、ステップS106において、操作ボタン25が任意方向ベクトルで示される方向に対応する操作ボタン25が押された(指示3がなされた)場合は、移動方向ベクトルvdirにvdir_sを設定し、設定したvdirを作業具動作補正量演算部55に出力する(ステップS109)。
また、ステップS106において、操作ボタン25による移動方向に対応する指示がない場合(例えば、移動方向が設定されていない操作ボタン25が押下された場合や、操作ボタン25が押下されない状態で操作レバー24が操作された場合など、指示なしの場合)は、ステップS113の処理に進む。
ステップS107,S108,S109のいずれかの処理が終了すると、続いて、作業具動作補正量演算部55は、移動修正方向vadjを算出し(ステップS110)、続いて、移動修正量dadjを算出する(ステップS111)。
図17に示すように、移動修正方向vadjは法線ベクトルn’と移動方向ベクトルvdirとに直交するベクトルであり、法線ベクトルn’と移動方向ベクトルvdirとの外積を取ることで算出することができる。
また、図17に示すように、移動修正量dadjは、Pst上でdadjは法線ベクトルn’と移動方向ベクトルvdirが成す平面とロータリーチルトバケット15の先端位置Pbkの距離であり、下記の(式7)を用いて算出することができる。
dadj=(((Pst-Pbk)・vadj)/|vadj|^2)×vadj …(式7)
続いて、作業具動作補正量演算部55は、爪先補正動作量として、油圧ショベル1の補正揺動角速度ωadjを算出し、作業機制御量演算部56に出力する(ステップS112)。
ステップS112の処理では、まず、予め定められているゲインKadjを用いて、ロータリーチルトバケット15の先端位置Pbkに対する移動修正速度vadj_bkを下記の(式8)を用いて算出する。
vadj_bk=Kadj×dadj …(式8)
続いて、移動修正速度vadj_bkを変換し油圧ショベル1の各揺動角速度を演算する。上記の(式3)の関係に対応する下記の(式9)に示すヤコビ行列Jを用いると、油圧ショベル1の補正揺動角速度ωadjはロータリーチルトバケット15の先端位置Pbkの速度vadj_bkを用いて、下記の(式10)のように表現することができる。
J(q)=∂F(q)/∂q …(式9)
ωadj=(J(q)^-1)×vadj_bk …(式10)
また、ステップS102での判定結果がNOの場合、又は、ステップS106において指示なしである場合には、爪先補正動作量を無しに設定する、すなわち、補正揺動角速度ωadjを全て0に設定し(ステップS113)、ステップS114の処理に進む。
ステップS112、又は、ステップS113の処理が終了すると、続いて、作業機制御量演算部56は、作業機械状態演算部50が出力する油圧ショベル1の姿勢、操作レバー24により指示される操作指示量、及び作業具動作補正量演算部55が出力する補正揺動角速度ωadjに基づいて、作業機制御量を算出して出力し(ステップS114)、処理を終了する。
ここで、作業機制御量とは、コントロールバルブ33,34,35,36,37,38、及び電磁比例減圧弁39b,43bを駆動する電流指令である。作業機制御量演算部56は、操作レバー24の操作量をその操作量に比例した油圧ショベル1の揺動角速度指令値ωopeに変換し、予め定められた揺動角速度と電流指令の変換マップKctrl(q)を用いた下記の(式11)によって電流指令Cctrlを算出する。
Cctrl=Kctrl(q)×(ωope+ωadj) …(式11)
コントローラ23は、ステップS100~S114までの処理を予め定められたサンプリング時間毎に実行し、ロータリーチルトバケット15の移動方向が設定された移動方向に動作するように制御を繰り返し行う。
以上のように構成した本実施の形態における効果を説明する。
例えば、油圧ショベルにより法面を整形する作業を行う場合、法面に正対する方向にロータリーチルトバケットを移動させる際、或いは、法面に正対する方向とは異なる方向にバケットを移動させる際には、法面にロータリーチルトバケットを正対させる必要がある。また、鉛直な壁状面の付近でバケットに掬った土砂を少しずつ落として土砂を均一に撒く敷均し作業を行う場合、壁状面側にバケットを向けたまま、バケットを壁面と平行に移動させる必要がある。
しかしながら、従来技術のように、アーム先端部の移動方向とロータリーチルトバケットの向きが1つの組み合わせに固定されてしまう場合には、作業精度が低下してしまう場合がある。例えば、法面を整形する作業を行う場合、法面に正対する方向とは異なる方向にバケットを移動させる際(例えば、隣接する設計面の境界付近を整形する際)には、法面にロータリーチルトバケットが正対しないため、境界に沿う方向への整形作業を行うことができない。また、鉛直な壁状面の付近で敷均し作業を行う場合には、バケットの移動方向である壁状面に沿う方向にバケットが向いてしまうため、敷均し作業を行うことができない。
これに対して、本実施の形態においては、下部走行体10と、下部走行体10に対して旋回可能に設けられた上部旋回体11と、上部旋回体11に取り付けられ、回動可能に連結された複数のフロント部材(例えば、ブーム13、アーム14、ロータリーチルトバケット15)からなる多関節型のフロント作業機12と、駆動信号に基づいて複数のフロント部材をそれぞれ駆動する複数の回動アクチュエータ(例えば、ブームシリンダ17、アームシリンダ18、バケットシリンダ19)と、駆動信号に基づいて上部旋回体11を旋回駆動する旋回アクチュエータ(例えば、旋回油圧モータ16)と、上部旋回体11及びフロント作業機12の姿勢に関する姿勢情報を検出する姿勢情報検出装置(例えば、慣性計測装置27,28,29,30)と、姿勢情報検出装置からの姿勢情報に基づいて、予め定めた作業目標面上および作業目標面に対する一方の領域内でフロント作業機12が動くように、複数の油圧アクチュエータの少なくとも1つに駆動信号を出力するか、又は複数の油圧アクチュエータの少なくとも1つに出力された駆動信号を補正する領域制限制御を実行する制御装置(例えば、コントローラ23)とを備えた作業機械(例えば、油圧ショベル1)において、制御装置は、フロント作業機12の先端にフロント部材の1つとして連結された作業具の作業目標面に沿う方向の移動方向であって予め定められた作業具移動方向に作業具が移動するように、回動アクチュエータ駆動用の駆動信号および旋回アクチュエータ駆動用の駆動信号を補正するように構成したので、ロータリーチルトバケットを備えた作業機械において、作業精度を向上することができる。すなわち、複数設定したロータリーチルトバケット15の移動方向を選択し、その移動方向となるように制御することで、油圧ショベル1の作業内容や作業対象に応じて適切なロータリーチルトバケット15の動作を実現でき、作業精度を向上することができる。
なお、本実施の形態においては、説明の簡略化のためにロータリーチルトバケット15の移動方向に関する補正方法のみを説明したが、その他の補正方法と併用可能である。すなわち、例えば、ステップS111と同様の方法を用い、距離dhに応じた目標面5の法線ベクトルn’方向の補正揺動角速度指令値を演算し、上記の(式11)に加算することで、ロータリーチルトバケット15を目標面5に沿った動作を実現でき、同様な方法でロータリーチルトバケット15の姿勢を補正するように制御可能である。
また、本実施の形態においては、ステップS103~S105の判定を用いて制御開始位置Psをロータリーチルトバケット15が目標面5に近づいたときの先端位置Pbkとしたが、例えば、ステップS106の操作ボタン25の操作判定時、すなわち、操作ボタン25の指示が出力された瞬間の先端位置Pbkを制御開始位置Psとして設定してもよく、また、目標面5上の任意点など異なる条件としても良い。
<第2の実施の形態>
本発明の第2の実施の形態を図18~図23を参照しつつ説明する。図中、第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
本実施の形態は、作業対象と作業具の位置関係に基づいて作業具の移動方向の設定を変更するものである。
図18は、本実施の形態に係るコントローラの本実施の形態に係る機能部を示す機能ブロック図である。
図18において、作業具動作設定部52は、作業目標設定部51の作業目標を入力するように構成され、コントローラ23は、作業具動作設定部52から出力される作業具移動方向と作業目標の位置関係を記憶する作業具動作範囲記憶部58と、作業機械状態演算部50の出力と作業目標設定部51の出力に基づいて作業具の作業目標上における位置を判定する作業具位置判定部57をさらに備え、作業具動作設定呼出し部54は作業具位置判定部57の出力に基づいて作業具動作範囲記憶部58が記憶している作業具の移動方向の設定を呼出し作業具動作補正量演算部55に出力されるように構成されている。
図19は、作業目標上の目標面とロータリーチルトバケットの移動方向の異なる設定内容を示す外観図である。また、図20及び図21は、ロータリーチルトバケットの移動方向の異なる設定画面を示す図であり、図20はバケット移動方向を適用する作業目標上の範囲の設定画面を、図21はバケット移動方向の設定画面をそれぞれ示している。
図19に示すように、作業具動作設定部は目標面5を頂点Pt5とPt6を用いて目標面5aと目標面5bの領域に分割し、それぞれに異なる移動方向vdirを設定する。頂点Pt2,Pt3,Pt6,Pt5で囲まれる範囲では、整形作業を効率よく行うため目標面5と正対する方向に移動方向を設定し、頂点Pt1,Pt4,Pt6,Pt5で囲まれる範囲では、目標面の境界線上に動作するように、頂点Pt4,Pt1で形成される線分の方向に移動方向を設定する。
作業具動作設定部52は、図20に示すように、表示入力装置26上に動作範囲設定表示96を表示し、目標面の形状と位置範囲の設定状況を表示するようにGUIを構成する。また、範囲選択ポインタ98を表示入力装置26上に表示し、油圧ショベル1の操作者の指示入力を受付けるようにGUIを構成する。範囲選択ポインタ98a,98bを油圧ショベル1の操作者が左右にドラッグすることで範囲を任意に変更でき、決定ボタン94を油圧ショベル1の操作者が押すと現在表示されている位置範囲を記憶して移動方向の設定画面へ遷移する。なお、キャンセルボタン95が押された場合は設定内容を破棄して設定を終了する。
作業具動作設定部52は、位置範囲の設定が完了すると、図21に示すように、表示入力装置26上に移動方向設定表示97を表示し、設定している移動方向を表示し、方向選択ポインタ99を表示入力装置26上に表示し、油圧ショベル1の操作者の指示入力を受付けるようにGUIを構成する。目標面5上の頂点と同一箇所にある方向選択ポインタ99a,99b,99c,99d,99e,99fのうちの2つの方向選択ポインタを油圧ショベル1の操作者が選択することで移動方向を設定する。決定ボタン94が押された場合、作業具動作設定部52は、図20で設定された位置範囲と図21で設定された移動方向とを作業具動作範囲記憶部58に送信し、作業具動作範囲記憶部58はそれぞれの設定を対応付けて記憶する。
図22は、本実施の形態に係るコントローラによる作業具の移動方向制御処理を示すフローチャートである。図中、第1の実施の形態(図15)と同様の処理ステップには同じ符号を付し、説明を適宜省略する。
図22において、作業具動作補正量演算部55は、まず、作業目標設定部51から出力され、グローバル座標で表されている目標面5の代表点Ptと法線ベクトルnとを、グローバル座標系からショベル座標系への同時変換行列Tshを用いて、ショベル座標系に対する目標面5の代表点Pt’=(Tsh^-1)×Ptと法線ベクトルn’=(Tsh^-1)×(Pt+n)-Pt’に変換する(ステップS100)。
次に、ステップS100において変換した目標面5と、作業機械状態演算部50から出力されるロータリーチルトバケット15の先端位置Pbkの間の距離dhを算出する(ステップS101)。
続いて、ロータリーチルトバケット15の先端が法面に近づいているか否かを判定する(ステップS102)。
ステップS102での判定結果がYESの場合には、目標面から離れた状態から近い状態に遷移したか否かを判定する(ステップS103)。
ステップS103での判定結果がYESの場合には、現在の先端位置Pbkを制御開始位置Psとして保存する(ステップS104)。
ステップS103での判定結果がNOの場合、又は、ステップS104の処理が終了した場合には、続いて、作業具動作設定呼出し部54は、作業具位置判定部57が出力する作業具の位置に基づいて、作業具動作範囲記憶部58が記憶している移動方向を作業具動作補正量演算部55に出力する(ステップS120)。ここでは、例えば、範囲1として図21の頂点99c,99d,99e,99fで囲まれる範囲が設定され、範囲2として図21の頂点99a,99b,99c,99dで囲まれる範囲が設定されている場合を考える。なお、範囲1は隣接する設計面の境界から離れた範囲であり、範囲2は隣接する設計面の境界付近の範囲である場合を例示する。
作業具位置判定部57は、ロータリーチルトバケット15の先端位置Pbkの目標面5に対する射影Pbk’を下記の(式12)で算出し、作業具動作設定呼出し部54に出力する。
Pbk’=(Pbk-((Pbk-Pt)・n’)/|n’|^2)×n’ …(式12)
ステップS120において、作業具動作設定呼出し部54は、射影Pbk’が作業具動作範囲記憶部58に記憶されている目標面5aに対応する範囲1の中に存在すると判定した場合は、移動方向ベクトルvdirにvdir_nに設定し、設定したvdirを作業具動作補正量演算部55に出力する(ステップS121)。
また、ステップS120において、射影Pbk’が作業具動作範囲記憶部58に記憶されている目標面5bに対応する範囲2の中に存在すると判定した場合は、移動方向ベクトルvdirにvdir_sに設定し、設定したvdirを作業具動作補正量演算部55に出力する(ステップS122)。
また、ステップS120において、射影Pbk’が作業具動作範囲記憶部58に記憶されているいずれかの目標面5の範囲に対応していないと判定した場合は、ステップS113の処理に進む。
ステップS121,S122のいずれかの処理が終了すると、作業具動作補正量演算部55は、移動修正方向vadjを算出し(ステップS110)、続いて、移動修正量dadjを算出する(ステップS111)。
続いて、作業具動作補正量演算部55は、爪先補正動作量として、油圧ショベル1の補正揺動角速度ωadjを算出し、作業機制御量演算部56に出力する(ステップS112)。
また、ステップS102での判定結果がNOの場合、又は、ステップS106において指示なしである場合には、爪先補正動作量を無しに設定する、すなわち、補正揺動角速度ωadjを全て0に設定し(ステップS113)、ステップS114の処理に進む。
ステップS112、又は、ステップS113の処理が終了すると、続いて、作業機制御量演算部56は、作業機械状態演算部50が出力する油圧ショベル1の姿勢、操作レバー24により指示される操作指示量、及び作業具動作補正量演算部55が出力する補正揺動角速度ωadjに基づいて、作業機制御量を算出して出力し(ステップS114)、処理を終了する。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても第1の実施の形態と同様の効果を得ることができる。
また、本実施の形態においては、作業具の位置と作業対象上の位置関係に応じて移動方向の設定を変更することで、操作者による移動方向の指定することなく適切なロータリーチルトバケット15の動作を実現できるので、移動方向の指定に要する時間を省略でき、作業効率を向上することができる。
<第3の実施の形態>
本発明の第3の実施の形態を図17を参照しつつ説明する。図中、第1及び第2の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
本実施の形態は、フロント作業機12の動作が補正されることを操作者に報知するものである。
図23は、油圧ショベルの操作室の内部の様子を模式的に示す図である。
図23において、操作室22の内部には、作業具動作補正量演算部55によって油圧ショベル1の動作が補正される方向を示す制御方向インジケータ44(44a,44b)が備えられている。例えば、左側に旋回することで動作が補正される場合には、図23に示すように、左側インジケータ44aが明滅することでオペレータに報知する。
その他の構成は第1及び第2の実施の形態と同様である。
以上のように構成した本実施の形態においても第1及び第2の実施の形態と同様の効果を得ることができる。
また、制御により補正されることを操作者に伝えることで、作業効率をさらに向上することができる。
<付記>
なお、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内の様々な変形例や実施の形態の組み合わせが含まれる。
例えば、第1及び第2の実施の形態の油圧ショベル1は、フロント作業機12に作業具として回動軸A4,A5,A6を中心に回動するロータリーチルトバケット15を有する場合を例示しているが、作業具の構成としてはこれに限らず、例えば、回動軸A4,A5のみを中心に回動するチルトバケットを作業具として設けても良い。
また、第1の実施の形態の図10や第2の実施の形態の図19で説明した、移動方向の設定においては、任意方向vdir_sとして目標面5の境界線上の方向のみを例示したが、任意方向vdir_sはどのような方向であってもよく、例えば、異なる境界線上の方向であったり、目標面の対角線の方向であったり、或いは、目標面の境界線の方向ではない他の任意の方向であったりしても良い。
また、作業機制御量演算部56において、電流指令Cctrlを揺動角速度と電流指令の変換マップKctrl(q)を用いて算出する場合を例示して説明したが、電流指令のCctrlの演算方法は異なる方法でもよく、例えば、油圧回路の圧力を用いたマップや、モデル予測制御等の制御則を用いて電流指令Cctrlを生成しても良い。
また、本発明は、上記の実施の形態で説明した全ての構成を備えるものに限定されず、その構成の一部を削除したものも含まれる。また、上記の各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等により実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。