以下、本発明の実施形態について図面を用いて説明する。なお、以下では、作業機の先端のアタッチメントとしてバケット10を備える油圧ショベルを例示するが、バケット以外のアタッチメントを備える油圧ショベルで本発明を適用しても構わない。さらに、複数の被駆動部材(アタッチメント、アーム、ブーム等)を連結して構成され、所定の動作平面上で動作する多関節型の作業機を有するものであれば油圧ショベル以外の作業機械への適用も可能である。
また、本稿では、或る形状を示す用語(例えば、目標面、制御対象面等)とともに用いられる「上」、「上方」又は「下方」という語の意味に関し、「上」は当該或る形状の「表面」を意味し、「上方」は当該或る形状の「表面より高い位置」を意味し、「下方」は当該或る形状の「表面より低い位置」を意味することとする。また、以下の説明では、同一の構成要素が複数存在する場合、符号(数字)の末尾にアルファベットを付すことがあるが、当該アルファベットを省略して当該複数の構成要素をまとめて表記することがある。例えば、3つのポンプ300a、300b、300cが存在するとき、これらをまとめてポンプ300と表記することがある。
<第1実施形態>
図1は本発明の第1の実施形態に係る油圧ショベルの構成図であり、図2は本発明の第1の実施形態に係る油圧ショベルの制御コントローラを油圧駆動装置と共に示す図であり、図3は図2中のフロント制御用油圧ユニット160の詳細図である。
図1において、油圧ショベル1は、多関節型のフロント作業機1Aと車体1Bで構成されている。車体1Bは、左右の走行モータ3a,3bにより走行する下部走行体11と、下部走行体11の上に旋回可能に取り付けられた上部旋回体12とからなる。フロント作業機1Aは、垂直方向にそれぞれ回動する複数の被駆動部材(ブーム8、アーム9及びバケット10)を連結して構成されており、フロント作業機1Aのブーム8の基端は上部旋回体12の前部に支持されている。
上部旋回体12に搭載された原動機であるエンジン18は、油圧ポンプ2とパイロットポンプ48を駆動する。油圧ポンプ2はレギュレータ2aによって容量が制御される可変容量型ポンプであり、パイロットポンプ48は固定容量型ポンプである。本実施形態においては、パイロットライン144,145,146,147,148,149の途中にシャトルブロック162が設けられている。操作装置45,46,47から出力された油圧信号が、このシャトルブロック162を介してレギュレータ2aにも入力される。シャトルブロック162の詳細構成は省略するが、油圧信号がシャトルブロック162を介してレギュレータ2aに入力されており、油圧ポンプ2の吐出流量が当該油圧信号に応じて制御される。
パイロットポンプ48の吐出配管であるポンプライン148aはロック弁39を通った後、複数に分岐して操作装置45,46,47及びフロント制御用油圧ユニット160内の各弁に接続している。ロック弁39は本例では電磁切換弁であり、その電磁駆動部は運転室(図1)に配置されたゲートロックレバー(不図示)の位置検出器と電気的に接続している。ゲートロックレバーのポジションは位置検出器で検出され、その位置検出器からロック弁39に対してゲートロックレバーのポジションに応じた信号が入力される。ゲートロックレバーのポジションがロック位置にあればロック弁39が閉じてポンプライン148aが遮断され、ロック解除位置にあればロック弁39が開いてポンプライン148aが開通する。つまり、ポンプライン148aが遮断された状態では操作装置45,46,47による操作が無効化され、旋回や掘削等の動作が禁止される。
ブーム8、アーム9、バケット10及び上部旋回体12はブームシリンダ5、アームシリンダ6、バケットシリンダ7及び旋回油圧モータ4(油圧アクチュエータ)によりそれぞれ駆動される被駆動部材を構成する。これら被駆動部材8,9,10,12への動作指示は、上部旋回体12上の運転室内に搭載された走行右レバー23a、走行左レバー23b、操作右レバー1aおよび操作左レバー1b(これらを操作レバー1、23と総称することがある)のオペレータによる操作に応じて出力される。
運転室内には、走行右レバー23aを有する操作装置47aと、走行左レバー23bを有する操作装置47bと、操作右レバー1aを共有する操作装置45a、46aと、操作左レバー1bを共有する操作装置45b、46bが設置されている。操作装置45,46,47は、油圧パイロット方式であり、パイロットポンプから吐出される圧油をもとに、それぞれオペレータにより操作される操作レバー1、23の操作量(例えば、レバーストローク)と操作方向に応じたパイロット圧(操作圧と称することがある)を発生する。このように発生したパイロット圧は、コントロールバルブユニット20内の対応する流量制御弁15a〜15f(図2参照)の油圧駆動部150a〜155bにパイロットライン144a〜149b(図2参照)を介して供給され、これら流量制御弁15a〜15fを駆動する制御信号として利用される。
油圧ポンプ2から吐出された圧油は、流量制御弁15a、15b、15c、15d、15e、15f(図2参照)を介して走行右油圧モータ3a、走行左油圧モータ3b、旋回油圧モータ4、ブームシリンダ5、アームシリンダ6、バケットシリンダ7に供給される。供給された圧油によってブームシリンダ5、アームシリンダ6、バケットシリンダ7が伸縮することで、ブーム8、アーム9、バケット10がそれぞれ回動し、バケット10の位置及び姿勢が変化する。また、供給された圧油によって旋回油圧モータ4が回転することで、下部走行体11に対して上部旋回体12が旋回する。さらに、供給された圧油によって走行右油圧モータ3a、走行左油圧モータ3bが回転することで、下部走行体11が走行する。
一方、ブーム8、アーム9、バケット10の回動角度α、β、γ(図5参照)を測定可能なように、ブームピンにブーム角度センサ30、アームピンにアーム角度センサ31、バケットリンク13にバケット角度センサ32が取付けられ、上部旋回体12には基準面(例えば水平面)に対する上部旋回体12(車体1B)の前後方向の傾斜角θ(図5参照)を検出する車体傾斜角センサ33が取付けられている。
運転室の前方上端部には、油圧ショベル1の周辺地形を測定する地形計測装置96(図1及び図8参照)が取り付けられている。地形計測装置96としては3次元レーザースキャナが利用できる。3次元レーザースキャナは、レーザー光線の照射角度と、そのレーザー光線が返ってくるまでの時間を出力し、その時間を変換して得られる距離と照射角度を基に地表面上の各点の位置情報(3次元座標)が算出される。当該各点の位置情報は油圧ショベル周辺の地形情報として制御コントローラ40で利用される。なお、地形計測装置96としては、測定対象までの距離が把握できれば良いので、例えば、2台のカメラの視差を利用したステレオカメラや、電波を用いるミリ波スキャナ等も利用可能である。また、地形計測装置96の設置位置は運転室の前方上端部に限らず周辺地形の測定が可能な位置であれば適宜変更可能である。
本実施形態の油圧ショベルには、オペレータの掘削操作を補助する制御システムが備えられている。具体的には、操作装置45b,46aを介して掘削操作(具体的には、アームクラウド、バケットクラウド及びバケットダンプの少なくとも1つの指示)が入力された場合、目標面60(図5参照)と作業機1Aの先端(本実施形態ではバケット10の爪先とする)の位置関係を基に、作業機1Aの先端の位置が目標面60上及びその上方の領域内に保持されるように油圧アクチュエータ5,6,7のうち少なくとも1つを強制的に動作させる制御信号(例えば、ブームシリンダ5を伸ばして強制的にブーム上げ動作を行う)を該当する流量制御弁15a,15b,15cに出力する掘削制御システムが備えられている。本稿ではこの制御を「領域制限制御」または「マシンコントロール」と称することがある。この制御によりバケット10の爪先が目標面60を越えることが防止されるので、オペレータの技量の程度に関わらず目標面60に沿った掘削が可能となる。本実施形態では、領域制限制御に係る制御点を、油圧ショベルのバケット10の爪先(作業機1Aの先端)に設定している。制御点は作業機1Aの先端部分の点であればバケット爪先以外にも変更可能である。例えば、バケット10の底面や、バケットリンク13の最外部も選択可能である。
本稿では、流量制御弁15a〜15cに対する制御信号のうち、操作装置45a,45b,46aの操作によって発生したパイロット圧を「第1制御信号」と称し、制御コントローラ40で電磁比例弁54b,55a,55b,56a,56bを駆動して第1制御信号を補正(低減)して生成したパイロット圧と、制御コントローラ40で電磁比例弁54b,55a,55b,56a,56bを駆動して第1制御信号とは別に新たに生成したパイロット圧を「第2制御信号」と称することがある。
領域制限制御の実行が可能な掘削制御システムは、運転室内の操作パネルの上方などオペレータの視界を遮らない位置に設置され領域制限制御の有効無効を切り替えるマシンコントロールON/OFFスイッチ17と、領域制限制御が実行可能なコンピュータである制御コントローラ(制御装置)40とを備えている。
図3に示すように、フロント制御用油圧ユニット160は、ブーム8用の操作装置45aのパイロットライン144a、144bに設けられ、操作レバー1aの操作量としてパイロット圧(第1制御信号)を検出する圧力センサ70a、70b(図3参照)と、一次ポート側がポンプライン148aを介してパイロットポンプ48に接続されパイロットポンプ48からのパイロット圧を減圧して出力する電磁比例弁54a(図3参照)と、ブーム8用の操作装置45aのパイロットライン144aと電磁比例弁54aの二次ポート側に接続され、パイロットライン144a内のパイロット圧と電磁比例弁54aから出力される制御圧(第2制御信号)の高圧側を選択し、流量制御弁15aの油圧駆動部150aに導くシャトル弁82a(図3参照)と、ブーム8用の操作装置45aのパイロットライン144bに設置され、制御コントローラ40からの制御信号を基にパイロットライン144b内のパイロット圧(第1制御信号)を低減して出力する電磁比例弁54b(図3参照)と、一次ポート側がパイロットポンプ48に接続されパイロットポンプ48からのパイロット圧を減圧して出力する電磁比例弁54c(図3参照)と、パイロットライン144b内のパイロット圧と電磁比例弁54cから出力される制御圧の高圧側を選択し、流量制御弁15aの油圧駆動部150bに導くシャトル弁82b(図3参照)を備えている。
また、フロント制御用油圧ユニット160は、アーム9用のパイロットライン145a、145bに設置され、操作レバー1bの操作量としてパイロット圧(第1制御信号)を検出して制御コントローラ40に出力する圧力センサ71a、71b(図3参照)と、パイロットライン145bに設置され、制御コントローラ40からの制御信号を基にパイロット圧(第1制御信号)を低減して出力する電磁比例弁55b(図3参照)と、パイロットライン145aに設置され、制御コントローラ40からの制御信号を基にパイロットライン145a内のパイロット圧(第1制御信号)を低減して出力する電磁比例弁55a(図3参照)と、一次ポート側がパイロットポンプ48に接続されパイロットポンプ48からのパイロット圧を減圧して出力する電磁比例弁55c(図3参照)と、パイロットライン145a内のパイロット圧と電磁比例弁55cから出力される制御圧の高圧側を選択し、流量制御弁15bの油圧駆動部151aに導くシャトル弁84a(図3参照)が設けられている。
また、フロント制御用油圧ユニット160は、バケット10用のパイロットライン146a、146bには、操作レバー1aの操作量としてパイロット圧(第1制御信号)を検出して制御コントローラ40に出力する圧力センサ72a、72b(図3参照)と、制御コントローラ40からの制御信号を基にパイロット圧(第1制御信号)を低減して出力する電磁比例弁56a、56b(図3参照)と、一次ポート側がパイロットポンプ48に接続されパイロットポンプ48からのパイロット圧を減圧して出力する電磁比例弁56c,56d(図3参照)と、パイロットライン146a、146b内のパイロット圧と電磁比例弁56c,56dから出力される制御圧の高圧側を選択し、流量制御弁15cの油圧駆動部152a,152bに導くシャトル弁83a,83b(図3参照)とがそれぞれ設けられている。なお、図3では、圧力センサ70、71、72と制御コントローラ40との接続線は紙面の都合上省略している。
上記のように構成されるフロント制御用油圧ユニット160において、制御コントローラ40から制御信号を出力して電磁比例弁54a,54c,55c,56c,56dを駆動すると、操作装置45a,45b,46aのオペレータ操作が無い場合にもパイロット圧(第2制御信号)を発生できるので、ブーム上げ動作、ブーム下げ動作、アームクラウド動作、バケットクラウド動作又はバケットダンプ動作を強制的に発生できる。また、これと同様に制御コントローラ40により電磁比例弁54b,55a,55b,56a,56bを駆動すると、操作装置45a,45b,46aのオペレータ操作により発生したパイロット圧(第1制御信号)を減じたパイロット圧(第2制御信号)を発生することができ、ブーム下げ動作、アームクラウド/ダンプ動作、バケットクラウド/ダンプ動作の速度をオペレータ操作よりも強制的に低減できる。
制御コントローラ40には、後述のROM93又はRAM94に記憶された目標面60の形状情報と位置情報、角度センサ30〜32と傾斜角センサ33の検出信号、および圧力センサ70〜72の検出信号、が入力される。また制御コントローラ40は領域制限制御を行うための制御信号(パイロット圧)の補正を行う電気信号を電磁比例弁54〜56に出力する。
図4に、制御コントローラ40のハードウェア構成を示す。制御コントローラ40は、入力部91と、プロセッサである中央処理装置(CPU)92と、記憶装置であるリードオンリーメモリ(ROM)93及びランダムアクセスメモリ(RAM)94と、出力部95とを有している。入力部91は、作業機姿勢検出装置50である角度センサ30〜32及び傾斜角センサ33からの信号と、目標面60を設定するための装置である目標面設定装置51からの信号と、マシンコントロールON/OFFスイッチ17からの信号と、操作装置45a,45b,46aからの操作量を検出する圧力センサ(圧力センサ70,71,72を含む)であるオペレータ操作検出装置52aからの信号を入力し、A/D変換を行う。ROM93は、後述するフローチャートに係る処理を含め領域制限制御を実行するための制御プログラムと、当該フローチャートの実行に必要な各種情報等が記憶された記録媒体であり、CPU92は、ROM93に記憶された制御プログラムに従って入力部91及びメモリ93、94から取り入れた信号に対して所定の演算処理を行う。出力部95は、CPU92での演算結果に応じた出力用の信号を作成し、その信号を電磁比例弁54〜56または報知装置53に出力することで、油圧アクチュエータ5〜7を駆動・制御したり、車体1B、バケット10及び目標面60等の画像を報知装置53であるモニタの表示画面上に表示させたりする。
報知装置53は、オペレータに目標面60と作業機1Aの位置関係を表示するディスプレイ(表示装置)、あるいは目標面60と作業機1Aの位置関係を音(音声も含む)により通達するスピーカの少なくとも一つから構成される。
なお、図4の制御コントローラ40は、記憶装置としてROM93及びRAM94という半導体メモリを備えているが、記憶装置であれば特に代替可能であり、例えばハードディスクドライブ等の磁気記憶装置を備えても良い。
図6は、本発明の実施形態に係る制御コントローラ40の機能ブロック図である。制御コントローラ40は、領域制限制御部43と、電磁比例弁制御部44を備えている。
本実施形態の領域制限制御部43は、操作装置45bから出力されたアーム8のクラウド動作を指示する制御信号(第1制御信号)によりバケット10の爪先が目標面60に接近している場合、バケット10の爪先が目標面60に沿って移動するようにブームシリンダ5(流量制御弁15a)の制御信号(第2制御信号)を強制的に生成し、当該生成した制御信号を流量制御弁15aに出力することで作業機1Aをマシンコントロールする処理を実行する。
領域制限制御部43には、作業機姿勢検出装置50、目標面設定装置51及びマシンコントロールON/OFFスイッチ17が接続されている。
作業機姿勢検出装置50は、ブーム角度センサ30、アーム角度センサ31、バケット角度センサ32、車体傾斜角センサ33、から構成される。
目標面設定装置51は、目標面60に関する情報(各目標面の位置情報や傾斜角度情報を含む)を入力可能なインターフェースである。目標面設定装置51を介した目標面の入力は、オペレータが手動で行っても、ネットワーク等を介して外部から取り込んでも良い。また、目標面設定装置51にはGNSS受信機等の衛星通信アンテナ(図示せず)が接続されている。グローバル座標系(絶対座標系)上に規定された目標面の3次元データを格納した外部端末とショベルがデータ通信可能な場合には、当該衛星通信アンテナにより特定したショベルのグローバル座標を基にショベル位置に対応する目標面を当該外部端末の3次元データ内で探索して取り込むことができる。
オペレータ操作検出装置52aは、オペレータによる操作レバー1a、1b(操作装置45a,45b,46a)の操作によってパイロットライン144,145,146に生じる操作圧を取得する圧力センサ70a,70b,71a,71b,72a,72bから構成される。すなわち、作業機1Aに係る油圧シリンダ5,6,7に対する操作を検出している。
図7は図6中の領域制限制御部43の機能ブロック図である。領域制限制御部43は、操作量演算部43aと、姿勢演算部43bと、目標面演算部43cと、地形演算部43mと、アーム角度別ブームパイロット圧演算部43nと、掘削操作判定部43oと、目標パイロット圧演算部43hと、補正値演算部43iと、補正値記憶部43jを備えている。
操作量演算部43aは、オペレータ操作検出装置52aからの入力を基に操作装置45a,45b,46a(操作レバー1a,1b)の操作量を算出する。圧力センサ70,71,72の検出値から操作装置45a,45b,46aの操作量が算出できる。
なお、圧力センサ70,71,72による操作量の算出は一例に過ぎず、例えば各操作装置45a,45b,46aの操作レバーの回転変位を検出する位置センサ(例えば、ロータリーエンコーダ)で当該操作レバーの操作量を検出しても良い。また、操作量から動作速度を算出する構成に代えて、各油圧シリンダ5,6,7の伸縮量を検出するストロークセンサを取り付け、検出した伸縮量の時間変化を基に各シリンダの動作速度を算出する構成も適用可能である。
姿勢演算部43bは作業機姿勢検出装置50からの情報に基づき、作業機1Aの姿勢およびバケット10の爪先の位置を演算する。作業機1Aの姿勢は図5のショベル座標系上に定義できる。図5のショベル座標系は、上部旋回体12に設定された座標系であり、上部旋回体12に回動可能に支持されているブーム8の基底部を原点とし、上部旋回体12における垂直方向にZ軸、水平方向にX軸を設定した。X軸に対するブーム8の傾斜角をブーム角α、ブーム8に対するアーム9の傾斜角をアーム角β、アームに対するバケット爪先の傾斜角をバケット角γとした。水平面(基準面)に対する車体1B(上部旋回体12)の傾斜角を傾斜角θとした。ブーム角αはブーム角度センサ30により、アーム角βはアーム角度センサ31により、バケット角γはバケット角度センサ32により、傾斜角θは車体傾斜角センサ33により検出される。図5中に規定したようにブーム8、アーム9、バケット10の長さをそれぞれL1,L2,L3とすると、ショベル座標系におけるバケット爪先位置の座標および作業機1Aの姿勢はL1,L2,L3,α,β,γで表現できる。
目標面演算部43cは、目標面設定装置51からの情報に基づき目標面60の位置情報を演算し、これをROM93内に記憶する。本実施形態では、図5に示すように、3次元の目標面を作業機1Aが移動する平面(作業機の動作平面)で切断した断面形状を目標面60(2次元の目標面)として利用する。
地形演算部43mは、地形計測装置96から入力される複数の照射角度及び距離の情報に基づき、地表面上の各点の位置情報(座標)を演算し、これを地形情報としてROM93内に記憶する。つまり、地形演算部43mは、第2制御信号を基にマシンコントロールされた作業機1Aにより形成された地形(以下、「出来形」と称することがある)の位置情報を地形計測装置96から入力される地形情報を基に算出する。
掘削操作判定部43oは、操作量演算部43aから入力される操作量を基に、掘削操作(本実施形態では、アームクラウド操作、つまりアームシリンダ6の伸び操作)が操作装置45bを介して入力されているかどうかを判定し、その判定結果を目標パイロット圧演算部43hに出力する。
アーム角度別ブームパイロット圧演算部43nは、その時(処理実行時)の作業機1Aの姿勢において所定のパイロット圧(例えば操作レバー1bの操作量が最大のときのパイロット圧)のアームクラウド操作が入力されたと仮定し、そのアームクラウド操作に対してマシンコントロールによるブームの強制動作を介入させて目標面60に沿ったバケット爪先の移動を実現するために、各アーム角度βで出力すべきブームパイロット圧(第2制御信号)の一連の値を算出する部分である。算出結果はROM93内に記憶される。なお、アーム角度ごとのブームパイロット圧の算出に代えて、ブームパイロット圧をアーム角度の関数で表した式を導出し、それをROM93に記憶しても良い。
図9を用いてアーム角度別ブームパイロット圧演算部43nによる処理の具体例の1つを説明する。なお、ここでは説明を簡略化するためバケット10は動作しないものとする。
まず、アーム角度別ブームパイロット圧演算部43nは、姿勢演算部43bで算出された作業機1Aの姿勢情報及びバケット10の爪先の位置情報と、目標面演算部43cで演算された目標面60の位置情報とを基に、その時のバケット爪先と目標面60の位置関係と作業機1Aの姿勢を把握する。これにより、処理開始時に、バケット爪先(P1)、アーム回動中心(Ca1)および目標面60が図9に示した位置関係に在ると把握できたとする。アーム角度別ブームパイロット圧演算部43nは、この状態からパイロット圧が所定値(例えば操作レバー1bの操作量が最大のときのパイロット圧力値)のアームクラウド操作が入力されたと仮定し、そのときのバケット爪先の軌跡である円弧Tr1を算出する。次に円弧Tr1と目標面60の交点を算出する。図9の場合、両者の交点としてP2が存在するので、その交点P2以降のアーム角度について、所定値のパイロット圧によるアームクラウド動作に対してマシンコントロールによるブーム制御(マシンコントロール)を加えてバケット爪先10が目標面に沿って移動させること(すなわち、図9の直線TL上を移動させること)を想定し、その場合にマシンコントロールにより出力すべきブームパイロット圧をアーム角度ごとに算出する。なお、爪先の軌跡(円弧)と目標面60が交差しない場合は、すべてのアーム角度についてブームパイロット圧を0とし、マシンコントロールは行わないものとする。
また、アーム角度別ブームパイロット圧演算部43nは、交点(P2)以降のアーム角度について、アーム動作に起因するバケット爪先の速度ベクトル(爪先が位置する点での円弧の接線方向のベクトル)の目標面60に垂直な成分(図中の下向きを負、上向きを正とする)が負から正に変化する点を探索し、P2からその点まではブーム上げのパイロット圧を算出し、その点以降はブーム下げのパイロット圧を算出する。図9の場合、当該速度ベクトルの垂直成分は点P3で負から正に変わるので、点P2から点P3までは電磁比例弁54aにより発生させるブーム上げのパイロット圧を、点P3から点P4までは電磁比例弁54cにより発生させるブーム下げのパイロット圧を算出する。なお、図9中のTr2は点P3での円弧であり、Tr3は点p4での円弧である。
図10は、アーム角度別ブームパイロット圧演算部43nによる図9の場合のアーム角度ごとのブームパイロット圧の算出結果を示した図である。図10では、図9の点P2、P3、P4におけるアーム角度をそれぞれβ2、β3、β4としている。この図に示すように点P2でブーム上げパイロット圧が発生し、点P3で一旦ゼロになった後は、点P4までブーム下げパイロット圧が発生している。これにより、図9に示すように、点P2でCa1に在ったアーム回動中心はブーム上げによって上方に移動して点P3でCa2に達し、その後、ブーム下げによって下方に移動して点P4でCa3に達する。
補正値演算部43iは、マシンコントロール発動時のブームパイロット圧(第2制御信号)の補正値を算出する部分である。補正値演算部43iは、目標面演算部43cの目標面60の情報と地形演算部43mの地形情報を基に、目標面60と出来形の上下関係を同じ座標系上で把握し(すなわちショベル座標系又はグローバル座標系で把握し、必要があれば適宜座標変換を行う(以下の同様の処理でも同様とする))、目標面60と出来形の距離に応じて補正値を演算する。図11に目標面60と出来形97の一例を示す。目標面60と出来形97の距離は、目標面60の垂直方向における目標面60と出来形97の距離とし、目標面60の位置を基準(ゼロ)とする。目標面60より下方を正、上方を負とする。したがって図11の場合は正となる。通常、出来形97は目標面60からの垂直距離の異なる複数の点から形成されるため、本実施の形態では出来形97を形成する複数の点のそれぞれについて目標面60との距離を算出し、その算出した複数の距離の平均値を目標面60と出来形97の距離とする。ただし、目標面60と出来形97の「距離」の算出はこの方法に限らず、例えば、出来形97を形成する複数の点から任意に選択した点と目標面60との距離を「距離」として利用しても良いし、出来形97を目標面60に平行な直線に近似し、当該直線と目標面の距離を「距離」として利用しても良い。
補正値演算部43iは、算出した目標面60と出来形97の距離と、図12及び図13を利用してブーム上げとブーム下げ双方のパイロット圧(第2制御信号)の補正値を算出し、算出した2つの補正値を補正値記憶部43jに記憶する。図12は目標面60と出来形97の距離とブーム上げパイロット圧の補正値との相関図であり、ブーム上げパイロット圧の補正値は、目標面60と出来形97の距離が増加するほど増加するように設定されている。図13は目標面60と出来形97の距離とブーム下げパイロット圧の補正値との相関図であり、ブーム下げパイロット圧の補正値は、目標面60と出来形97の距離が増加するほど減少するように設定されている。
補正値記憶部43jは、補正値演算部43iによる演算結果を記憶する部分である。記憶された補正値は、補正値演算部43iによる補正値演算の度に上書きされ、マシンコントロールが発動するタイミングで目標パイロット圧演算部43hに参照される。
目標パイロット圧演算部43hは、アームクラウド操作がされている場合、所定のアームクラウドパイロット圧を流量制御弁15bの目標パイロット圧として電磁比例弁制御部44に出力し、アーム角度別ブームパイロット圧演算部43nの演算結果を基に決定したブームパイロット圧を流量制御弁15aの目標パイロット圧として電磁比例弁制御部44に出力する。
具体的には、目標パイロット圧演算部43hは、掘削操作判定部43oからアームクラウド操作がされているという判定結果が入力されたら、その判定結果が入力されている間、操作装置45bによるアームクラウドの操作量に関わらず一定値をアームクラウドパイロット圧として電磁比例弁制御部44に出力する。そして、アーム角度別ブームパイロット圧演算部43nで算出したアーム角度別のブームパイロット圧(第2制御信号)と、姿勢演算部43bで算出したアーム角度とを基に、そのときのアーム角度におけるブームパイロット圧を決定する。さらに、当該決定したブームパイロット圧(第2制御信号)がゼロでない場合(すなわち、マシンコントロールが発動される場合)には、補正値記憶部43jに記憶された補正値を参照し、当該決定したブームパイロット圧の値に当該補正値を加えた値をブームパイロット圧として電磁比例弁制御部44に出力する。
なお、目標パイロット圧演算部43hは、アームクラウド操作がされていないという判定結果が掘削操作判定部43oから入力された場合には、操作量演算部43aの演算結果に基づいてオペレータ操作に従ったパイロット圧を対応する流量制御弁15に出力するように構成されている。
電磁比例弁制御部44は、目標パイロット圧演算部43hで算出された各流量制御弁15a,15bへの目標パイロット圧を基に、各電磁比例弁55c,54a,54cへの指令を演算する。
<動作>
次に上記のように構成される油圧ショベルの動作について図14のフローチャートを用いて説明する。制御コントローラ40は所定の制御周期で図14のフローチャートを実行する。
まず、S110で、アーム角度別ブームパイロット圧演算部43nは、作業機姿勢検出装置50からの情報に基づき姿勢演算部43bで演算された作業機1Aの姿勢およびバケット10の爪先の位置と、目標面設定装置51からの情報に基づき目標面演算部43cで演算された目標面60の位置を入力する。
S120では、アーム角度別ブームパイロット圧演算部43nは、S110で入力した情報を基に、所定のアームパイロット圧(例えば、操作レバー1bの操作量が最大のときのパイロット圧力値)でアームクラウドしたときに目標面60に沿ってバケット10の爪先が移動するように、アーム角度ごとのブームパイロット圧を算出する。なお、アームクラウドしても目標面60にバケット爪先が到達しない場合(アームクラウド時の爪先の軌跡が目標面60と交差しない場合)にはマシンコントロールを発動する必要がないので、全てのアーム角度についてブームパイロット圧を0に設定する。
S130では、掘削操作判定部43oは、操作量演算部43aから入力した操作量を基にアームクラウド操作が操作装置45bを介して入力されているかどうかの判定を行う。ここでアームクラウド操作が入力されていると判定された場合にはS140に進み、アームクラウド操作は入力されていないと判定された場合にはS220に進む。
S220では、目標パイロット圧演算部43hは、操作量演算部43aから入力した操作量に即した各油圧シリンダの目標パイロット圧を演算し、電磁比例弁制御部44に出力する。これにより操作装置45,46に対する入力操作に即して作業機1Aが動作する。
S140では、アーム角度別ブームパイロット圧演算部43nは、姿勢演算部43bからその時のアーム角βを入力し、S120で算出したアーム角度ごとのブームパイロット圧を基に、入力したアーム角度βに応じたブームパイロット圧を算出し、S150に進む。
S150では、目標パイロット圧演算部43hは、S140で算出されたブームパイロット圧が0かどうかを判定する。S150でブームパイロット圧が0でないと判定された場合(すなわちマシンコントロールが発動する場合)にはS160に進む。
S160では、目標パイロット圧演算部43hは、S140で算出されたブームパイロット圧がブーム上げのものかブーム下げのものかを判定する。そして、補正値記憶部43jに記憶されたブーム上げの補正値とブーム下げの補正値のうち判定結果に対応する補正値を取得し、その補正値をS140で算出したブームパイロット圧に加算し、S170に進む。
一方、S150でブームパイロット圧が0と判定された場合には、マシンコントロールによるブーム制御が行われないため、S160で補正値を加算することなくS170に進む。
S170では、目標パイロット圧演算部43hは、S120のアームパイロット圧を発生させる指令(本実施形態では、電磁比例弁55cが全開する指令)を電磁比例弁制御部44に出力する。また、S160を経由した場合(つまりマシンコントロールが発動した場合)はS160のブームパイロット圧を、S160を経由しなかった場合(つまりマシンコントロールが発動しなかった場合)はブームパイロット圧としてゼロを電磁比例弁制御部44に出力する。
これにより、電磁比例弁55cが全開してアームクラウド操作量が最大時に相当するパイロット圧が流量制御弁15bの駆動部151aに作用し、アームクラウド動作が行われる。そして、S160を経由した場合には、電磁比例弁54aまたは54cが開いてS160のブームパイロット圧が発生しマシンコントロールによるブーム動作が行われる。そしてこのブーム動作とアームクラウド動作が組み合わさることで目標面60に沿ったバケット爪先の水平引きが実現され、オペレータの技量の程度に依らず目標面60に沿った正確な掘削が実現される。一方、S160を経由しなかった場合にはブームパイロット圧は0なので、アームクラウド動作のみが行われることになる。
S180では、掘削操作判定部43oは、操作量演算部43aから入力した操作量を基にアームクラウド操作が入力されているかどうかの判定を行う。ここでアームクラウド操作が入力されている(すなわちアームクラウド操作は継続している)と判定された場合にはS140に戻りマシンコントロールを継続する。一方、アームクラウド操作は入力されていない(すなわちアームクラウド操作が終了した)と判定された場合にはS190に進む。
S190では、補正値演算部43iは、バケット10による地形の掘削があったか否かの判定を行う。この判定の方法としては、アームクラウド操作の前後で地形の変化の有無を地形計測装置96の測定結果を基に比較するものがある。また、マシンコントロールが発動した場合(すなわち、S160を経由して電磁比例弁制御部44にブームパイロット圧が出力された場合)には地形の掘削があったとみなす方法を採用しても良い。S190で掘削が有ったと判定された場合には、S200で地形演算部43mが演算した地形情報(地形データ)を入力してS210に進む。一方、S190で掘削が無かったと判定された場合には、次回の制御周期を待ってS110以降の処理を繰り返す。
S210では、補正値演算部43iは、まず、目標面演算部43cの目標面60の情報と地形演算部43mの地形情報を基に、出来形97を形成する複数の点のそれぞれについて目標面60との距離を算出する。そして、その算出した複数の距離の平均値を目標面60と出来形97の距離とする。次に補正値演算部43iは、算出した目標面60と出来形97の距離と、図12及び図13で定義された距離とブームパイロット圧(第2制御信号)の相関関係を基に、出来形が目標面60に近づくようにブーム上げ時とブーム下げ時の両方のパイロット圧の補正値を演算し、その演算結果を補正値記憶部43jに記憶する。
例えば、目標面60と出来形97の距離が正の場合は、目標面60の下方に出来形97が位置するいわゆる掘り過ぎの場面であるが、この場合には、ブーム上げでパイロット圧を増加し、ブーム下げでパイロット圧を減少する補正値が補正値演算部43iにより算出される。このような補正値でS140のブームパイロット圧を補正すると、次回のS170の処理時に補正前よりも爪先の描く軌跡が上方に移動して掘り過ぎが防止されるので、出来形を目標面60に近づけることができる。一方、目標面60と出来形97の距離が負の場合は、目標面60の上方に出来形97が位置するいわゆる掘り残しが存在する場面であるが、この場合には、ブーム上げでパイロット圧を減少し、ブーム下げでパイロット圧を増加する補正値が補正値演算部43iにより算出される。このような補正値でブームパイロット圧を補正すると補正前よりも爪先の描く軌跡が下方に移動して掘り残しの発生が防止されるので、出来形を目標面60に近づけることができる。
S210の処理が終了したら、次回の制御周期を待ってS110以降の処理を繰り返す。
<効果>
次の本実施形態の効果を説明する。上記の実施形態では、ブーム8、アーム9及びバケット10を含む多関節型の作業機1Aと、ブーム8、アーム9及びバケット10をそれぞれ駆動するブームシリンダ5、アームシリンダ6及びバケットシリンダ7と、これら油圧シリンダ5,6,7の流量制御弁15a,15b,15cの少なくとも1つにオペレータの操作に応じた制御信号(第1制御信号)を出力する操作装置45a,45b,46aと、操作装置45a,45b,46aから出力された制御信号(第1制御信号)により作業機1Aの先端(バケット爪先)が目標面60に接近している場合、作業機1Aの先端が目標面60に沿って移動するようにブームシリンダ5を動作させる制御信号(第2制御信号)を新たに生成する目標パイロット圧演算部(制御信号演算部)43hを有し、第1制御信号又は第2制御信号に基づいてブームシリンダ5、アームシリンダ6及びバケットシリンダ7の流量制御弁15a,15b,15cを制御する制御コントローラ40を備える油圧ショベル1において、制御コントローラ40は、第2制御信号を基に駆動された作業機1Aによって形成された出来形97の位置情報を、油圧ショベル1の周辺地形を測定する地形計測装置96から入力される地形情報を基に算出する地形演算部43mをさらに有し、目標パイロット圧演算部43hは、出来形97の位置情報に基づいて出来形97が目標面60に近づくように第2制御信号を補正することとした。そして、この第2制御信号の補正に際して、本実施形態では、目標パイロット圧演算部43hが、出来形97の位置情報と目標面60の位置情報の差が小さくなるように第2制御信号を補正することとした。
このように構成した油圧ショベルによれば、掘削の都度、出来形97が目標面60に近づくようにブームシリンダ5(流量制御弁15a)の制御信号(第2制御信号)が補正され、出来形97と目標面60の位置情報の差が小さくなるので、角度センサ30,31,32の検出精度が充分でない場合や、個体差・経年変化等により作業機先端の制御精度が充分でない場合等にも、バケット10の爪先を目標面60に沿わせながら掘削できる。その結果、目標面60の施工精度を高めることができる。
<付記>
なお、上記では、アームクラウド動作中にバケット爪先が目標面60に接近した場合、マシンコントロールによりバケット爪先が目標面60に沿って移動するようにブームシリンダ5の制御信号(第2制御信号)を生成する場合について説明したが、マシンコントールに際して生成する制御信号(第2制御信号)はブームシリンダ5のものに限らず、アームシリンダ6及びバケットシリンダ7の制御信号(第2制御信号)を生成しても良い。すなわち、バケット爪先が目標面60に沿って移動するものであれば、ブームシリンダ5、アームシリンダ6及びバケットシリンダ7の少なくとも1つの制御信号を生成して作業機1Aを制御しても良い。この場合、補正値を算出するのは、マシンコントロールの実現のために制御信号を生成した油圧シリンダ(すなわち油圧シリンダ5,6,7の少なくとも1つ)に係る制御信号であることは言うまでも無い。
上記では、マシンコントロールの発動の条件を、オペレータによるアームクラウド操作と、バケット爪先の軌跡と目標面の交差としたが、これにオペレータによるブーム下げ操作を加えても良い。この場合、マシンコントロールによるブーム上げが必要になったときには、オペレータ操作によるブーム下げパイロット圧は制御コントローラ40により電磁比例弁54bを閉じてキャンセルし、必要なブームパイロット圧を電磁比例弁54aで発生すれば良い。また、マシンコントロールによるブーム下げが必要になったときには、例えば、オペレータ操作によるブーム下げパイロット圧を同様にキャンセルするとともに電磁比例弁54cでマシンコントロールに必要なパイロット圧を発生させるようにすれば良いし、マシンコントロールに必要なブーム下げパイロット圧がオペレータ操作によるパイロット圧より小さければ、電磁比例弁54bの開度を適宜低減してその必要なパイロット圧を発生させても良い。
上記では、マシンコントロールによる掘削に際して、ブームの上げと下げの双方を実施する例を説明したが、ブームの上げと下げのうち一方を行うように油圧ショベルを構成しても良い。
<第2実施形態>
続いて本発明の第2の実施形態について説明する。本実施形態は、図1−4及び図6に示した第1の実施形態と同じハードウェア構成を備えており、主に制御コントローラ40の機能が第1の実施形態と異なる。以下では第1実施形態と異なる部分について主に説明する。
図15は本実施形態に係る領域制限制御部43の機能ブロック図である。領域制限制御部43は、操作量演算部43aと、姿勢演算部43bと、目標面演算部43cと、シリンダ速度演算部43dと、バケット先端速度演算部43eと、目標バケット先端速度演算部43fと、目標シリンダ速度演算部43gと、目標パイロット圧演算部43hと、地形演算部43mと、補正値演算部43iと、補正値記憶部43jを備えている。このうち、操作量演算部43a、姿勢演算部43b、目標面演算部43c、地形演算部43m及び補正値記憶部43jについては第1実施形態と同じなので説明は省略する。
シリンダ速度演算部43dは、操作量演算部43aで演算された操作量(第1制御信号)を基に各油圧シリンダ5,6,7の動作速度(シリンダ速度)を演算する。各油圧シリンダ5,6,7の動作速度は、操作量演算部43aで演算された操作量と、流量制御弁15a,15b,15cの特性と、各油圧シリンダ5,6,7の断面積と、油圧ポンプ2の容量(傾転角)と回転数を乗じて得られるポンプ流量(吐出量)等から算出できる。
バケット先端速度演算部43eは、シリンダ速度演算部43dで演算された各油圧シリンダ5,6,7の動作速度と、姿勢演算部43bで演算された作業機1Aの姿勢とを基に、オペレータ操作(第1制御信号)によるバケット先端(爪先)の速度ベクトルBを演算する。バケット先端の速度ベクトルBは、目標面演算部43cから入力される目標面60の情報を基に、目標面60に水平な成分bxと垂直な成分byに分解できる。
目標バケット先端速度演算部43fは、バケット先端(爪先)の目標速度ベクトルTを演算する。そのために、目標バケット先端速度演算部43fは、まず、バケット先端から制御対象の目標面60までの距離D(図5参照)と図16のグラフを基にバケット先端の速度ベクトルの目標面60に垂直な成分の制限値ayを算出する。制限値ayの計算は、図16に示すような制限値ayと距離Dとの関係を定義した関数又はテーブル等の形式で制御コントローラ40のROM93に記憶しておき、この関係を適宜読み出して行う。距離Dは、姿勢演算部43bで演算したバケット10の爪先の位置(座標)と、ROM93に記憶された目標面60を含む直線の距離から算出できる。なお、制限値ayと距離Dとの関係は、距離Dの増加とともに制限値ayが単調減少する特性を有することが好ましいが、図16に示したものに限らない。例えば、距離Dが正の所定値以上または負の所定値以下で制限値ayが個別の所定値に保持されるようにしても良いし、制限値ayと距離Dの関係を曲線で定義しても良い。
次に目標バケット先端速度演算部43fは、バケット先端の速度ベクトルBの目標面60に垂直な成分byを取得し、この垂直成分byと制限値ayの正負と絶対値の大小関係を基に、マシンコントロールによるブーム8の動作で発生すべきバケット先端の速度ベクトルCの目標面60に垂直な成分cyを算出するために必要な式を選択する(式の選択過程については図19を用いて後述する)。そして、その選択した式から垂直成分cyを算出し、その垂直成分cyを発生する際にブームに許容される動作から水平成分cxを算出するとともに、速度ベクトルB,Cと制限値ayから目標速度ベクトルTを算出する。以下では、目標速度ベクトルTにおいて目標面60に垂直な成分をty、水平な成分をtxとし、目標ベクトルTの導出過程についても図19を用いて後述する。
目標シリンダ速度演算部43gは、目標バケット先端速度演算部43fで算出された目標速度ベクトルT(tx,ty)を基に各油圧シリンダ5,6,7の目標速度を演算する。本実施形態では、目標速度ベクトルTを、オペレータ操作による速度ベクトルBと、マシンコントロールによる速度ベクトルCの和で定義しているので、ブームシリンダ5の目標速度は速度ベクトルCから演算できる。これにより、バケット先端の目標速度ベクトルTは、各油圧シリンダ5,6,7を目標速度で動作させたときにバケット先端に表れる速度ベクトルの合成値となる。なお、マシンコントロールによる速度ベクトルCの垂直成分cyがゼロの場合、目標シリンダ速度演算部43gは、バケット先端速度演算部43eで算出したバケット先端の速度ベクトルBを基に各油圧シリンダ5,6,7の目標速度を算出する。
マシンコントロールON/OFFスイッチ17の切り換え位置が領域制限制御の有効を示すON位置の場合には、目標シリンダ速度演算部43gは上記の演算結果を目標パイロット圧演算部43hに出力する。しかし、マシンコントロールON/OFFスイッチ17の切り換え位置が領域制限制御の無効を示すOFF位置の場合には、目標シリンダ速度演算部43gは、シリンダ速度演算部43dの演算結果を目標パイロット圧演算部43hに出力する。
補正値演算部43iは、第1実施形態と同様に、マシンコントロール発動時のブームパイロット圧(第2制御信号)の補正値を算出する部分である。ただし、本実施形態の補正値演算部43iは、マシンコントロールにより作業機1Aの先端(バケット爪先)が移動した軌跡の位置情報(この位置情報は姿勢演算部43bから入力する)と、地形演算部43mの地形情報とを基に、軌跡と出来形97の上下関係を同一座標系上で把握し、当該軌跡と出来形97の距離に応じて補正値を演算する。なお、ここでいう「軌跡」とは、姿勢演算部43bから入力したバケット爪先の軌跡であり、例えば3次元レーザースキャナ等によりショベル座標系と独立した座標系上で爪先の軌跡を計測したもの等ではなく、あくまで制御コントローラ40が把握している爪先の位置情報の集合である。
図17にバケット爪先の軌跡98と出来形97の一例を示す。図17の例は、制御コントローラ40内の演算では目標面60に沿った軌跡98で掘削を行っているつもりであるが、センサ精度や制御精度の低下等の影響により結果的に目標面60の下方に出来形97が形成された場合を模式的に示している。軌跡98と出来形97の距離は、目標面60の垂直方向における軌跡98と出来形97の距離とし、軌跡98の位置を基準(ゼロ)とする。軌跡98より下方を正、上方を負とする。したがって図17の場合は正となる。通常、軌跡98及び出来形97は目標面60からの垂直距離の異なる複数の点から形成されるため、本実施の形態では軌跡98及び出来形97を形成する複数の点のそれぞれについて目標面60との距離を算出し、その算出した複数の距離の平均値から軌跡98と出来形97の位置を特定し、その位置から軌跡98と出来形97の距離を算出する。ただし、目標面60と出来形97の「距離」の算出はこの方法に限らず、例えば、出来形97を形成する複数の点から任意に選択した点と軌跡98を形成する複数の点から任意に選択した点との距離を「距離」として利用しても良いし、軌跡98及び出来形97を目標面60に平行な直線に近似し、当該2本の近似直線の距離を「距離」として利用しても良い。
ところで、後述する図19のフローチャートによる処理の関係上、本実施形態ではマシンコントロールによりブーム上げのみが行われ、ブーム下げは行われない。そこで、本実施形態の補正値演算部43iは、算出した軌跡98と出来形97の距離と、図12を利用してブーム上げのパイロット圧の補正値を算出し、算出した補正値を補正値記憶部43jに記憶する。
目標パイロット圧演算部43hは、目標シリンダ速度演算部43gで算出された各シリンダ5,6,7の目標速度を基に各油圧シリンダ5,6,7の流量制御弁15a,15b,15cへの目標パイロット圧を演算する。このうちアームシリンダ6及びバケットシリンダ7の目標パイロット圧はそのまま電磁比例弁制御部44に出力する。残りのブームシリンダ5の目標パイロット圧については、その値がゼロでない場合(すなわち、マシンコントロールが発動される場合)には、補正値記憶部43jに記憶された補正値を参照し、当該決定したブームパイロット圧の値に当該補正値を加えた値をブームパイロット圧として電磁比例弁制御部44に出力する。
電磁比例弁制御部44は、目標パイロット圧演算部43hで算出された各流量制御弁15a,15b,15cへの目標パイロット圧を基に、各電磁比例弁54〜56への指令を演算する。なお、オペレータ操作に基づくパイロット圧(第1制御信号)と、目標パイロット圧演算部43hで算出された目標パイロット圧が一致する場合には、該当する電磁比例弁54〜56への電流値(指令値)はゼロとなり、該当する電磁比例弁54〜56の動作は行われない。
<動作>
次に上記のように構成される油圧ショベルの動作について図18及び図19のフローチャートを用いて説明する。
図18は補正値演算部43iで実行される処理のフローチャートである。このフローチャートは操作量演算部43aでアームクラウド操作が検出されたら開始される。
S310では、補正値演算部43iは、操作量演算部43aからの入力値を基にアームクラウド操作が終了したか否かを判定する。アームクラウド操作が終了したと判定した場合にはS320に進み、地形演算部43mが演算した地形情報と、目標面演算部43cが演算した目標面60の情報とを入力してS330に進む。一方、S310でアームクラウド操作が継続していると判定した場合にはS310の処理を繰り返す。
S330では、補正値演算部43iは、S320で入力した地形情報と目標面60の情報を基に出来形97が目標面60の下方に位置するか否かを同一の座標系上で判定する。なお、出来形97の位置は、先述の軌跡98と出来形97の距離の演算に利用するものと同じ方法で特定できる。
S330で出来形97が目標面60の下方に位置すると判定された場合にはS340に進み、出来形97が目標面60の上方に位置すると判定された場合には処理を終了して次回の開始タイミングまで待機する。なお、ここで、出来形97が目標面60の上方に位置する場合に補正値を算出しないのは、バケット10の大きさや掘削力等の関係で1回の掘削動作で目標面60まで掘れるとは限らず、出来形97が目標面60の上方に位置する場合には精度の良し悪しの判断がつかないという考え方に基づくものである。
S340では、補正値演算部43iは、フローチャートの開始からS310でYESと判定されるまでの間にバケット10の爪先が移動した位置データの集合を姿勢演算部43bから取得し、その位置データの集合を掘削作業に際してのバケット10の爪先の軌跡(軌跡情報)とする。
S350では、補正値演算部43iは、まず、目標面演算部43cの目標面60の情報と地形演算部43mの地形情報と姿勢演算部43bの軌跡情報とを基に、出来形97及び軌跡98を形成する複数の点のそれぞれについて目標面60との距離を同一座標系上で算出する。そして、その算出した複数の距離の平均値から出来形97と軌跡98の位置を特定し、軌跡98から出来形97までの距離を算出する。次に補正値演算部43iは、算出した軌跡98と出来形97の距離と、図12で定義された距離とブームパイロット圧の相関関係とを基に、ブーム上げ時のパイロット圧の補正値を演算し、その演算結果を補正値記憶部43jに記憶する。
例えば、軌跡98と出来形97の距離の距離が正の場合は、軌跡98の下方に出来形97が位置するいわゆる掘り過ぎの場面であるが、この場合には、ブーム上げでパイロット圧を増加し、ブーム下げでパイロット圧を減少する補正値が補正値演算部43iにより算出される。
補正値記憶部43jへの補正値の記録処理が完了したら図18の一連の処理を終了し、次にアームクラウド操作が検出されるまで補正値演算部43iは待機する。
図19は制御コントローラ40で実行される処理のフローチャートである。制御コントローラ40は操作量演算部43aによりオペレータによる操作が検出されたら図19のフローチャートを開始する。
S410では、シリンダ速度演算部43dは、操作量演算部43aで演算された操作量を基に各油圧シリンダ5,6,7の動作速度(シリンダ速度)を演算する。
S420では、バケット先端速度演算部43eは、シリンダ速度演算部43dで演算された各油圧シリンダ5,6,7の動作速度と、姿勢演算部43bで演算された作業機1Aの姿勢とを基に、オペレータ操作によるバケット先端(爪先)の速度ベクトルBを演算する。
S430では、バケット先端速度演算部43eは、姿勢演算部43bで演算したバケット10の爪先の位置(座標)と、ROM93に記憶された目標面60を含む直線の距離から、バケット先端から制御対象の目標面60までの距離D(図5参照)を算出する。そして、距離Dと図16のグラフを基にバケット先端の速度ベクトルの目標面60に垂直な成分の制限値ayを算出する。
S440では、バケット先端速度演算部43eは、S420で算出したオペレータ操作によるバケット先端の速度ベクトルBにおいて、目標面60に垂直な成分byを取得する。
S450では、目標バケット先端速度演算部43fは、S430で算出した制限値ayが0以上か否かを判定する。なお、図19の右上に示したようにxy座標を設定する。当該xy座標では、x軸は目標面60と平行で図中右方向を正とし、y軸は目標面60に垂直で図中上方向を正とする。図19中の凡例では垂直成分by及び制限値ayは負であり、水平成分bx及び水平成分cx及び垂直成分cyは正である。そして、図16から明らかであるが、制限値ayが0のときは距離Dが0、すなわち爪先が目標面60上に位置する場合であり、制限値ayが正のときは距離Dが負、すなわち爪先が目標面60より下方に位置する場合であり、制限値ayが負のときは距離Dが正、すなわち爪先が目標面60より上に位置する場合である。S450で制限値ayが0以上と判定された場合(すなわち、爪先が目標面60上またはその下方に位置する場合)にはS460に進み、制限値ayが0未満の場合にはS480に進む。
S460では、目標バケット先端速度演算部43fは、オペレータ操作による爪先の速度ベクトルBの垂直成分byが0以上か否かを判定する。byが正の場合は速度ベクトルBの垂直成分byが上向きであることを示し、byが負の場合は速度ベクトルBの垂直成分byが下向きであることを示す。S460で垂直成分byが0以上と判定された場合(すなわち、垂直成分byが上向きの場合)にはS470に進み、垂直成分byが0未満の場合にはS500に進む。
S470では、目標バケット先端速度演算部43fは、制限値ayと垂直成分byの絶対値を比較し、制限値ayの絶対値が垂直成分byの絶対値以上の場合にはS500に進む。一方、制限値ayの絶対値が垂直成分byの絶対値未満の場合にはS530に進む。
S500では、目標バケット先端速度演算部43fは、マシンコントロールによるブーム8の動作で発生すべきバケット先端の速度ベクトルCの目標面60に垂直な成分cyを算出する式として「cy=ay−by」を選択し、その式とS430の制限値ayとS440の垂直成分byを基に垂直成分cyを算出する。そして、算出した垂直成分cyを出力可能な速度ベクトルCを算出し、その水平成分をcxとする(S510)。
S520では、目標速度ベクトルTを算出する。目標速度ベクトルTの目標面60に垂直な成分をty、水平な成分txとすると、それぞれ「ty=by+cy、tx=bx+cx」と表すことができる。これにS500の式(cy=ay−by)を代入すると目標速度ベクトルTは結局「ty=ay、tx=bx+cx」となる。つまり、S520に至った場合の目標速度ベクトルの垂直成分tyは制限値ayに制限され、マシンコントロールによる強制ブーム上げが発動される。
S480では、目標バケット先端速度演算部43fは、オペレータ操作による爪先の速度ベクトルBの垂直成分byが0以上か否かを判定する。S480で垂直成分byが0以上と判定された場合(すなわち、垂直成分byが上向きの場合)にはS530に進み、垂直成分byが0未満の場合にはS490に進む。
S490では、目標バケット先端速度演算部43fは、制限値ayと垂直成分byの絶対値を比較し、制限値ayの絶対値が垂直成分byの絶対値以上の場合にはS530に進む。一方、制限値ayの絶対値が垂直成分byの絶対値未満の場合にはS500に進む。
S530に至った場合、マシンコントロールでブーム8を動作させる必要が無いので、目標バケット先端速度演算部43fは、速度ベクトルCをゼロとする。この場合、目標速度ベクトルTは、S520で利用した式(ty=by+cy、tx=bx+cx)に基づくと「ty=by、tx=bx」となり、オペレータ操作による速度ベクトルBと一致する(S540)。
ここでは、図20に示した(1)−(4)の4つの場合に上記のS450からS540の処理を適用したときの目標速度ベクトルT(ty,tx)について説明する。
(1)の場合、目標面60の下方にバケット先端が在るため、距離Dが負になり制限値ayは図16より上向き((+)方向)となる。そして、演算部43eで演算された速度ベクトルBの垂直成分byは下向き((−)方向)である。そのため、S450、S460、S500というルートを通るので、目標速度ベクトルTは「ty=ay、tx=bx+cx」となる。
(2)の場合、目標面60の下方にバケット先端が在るため、距離Dが負になり制限値ayは図16より上向き((+)方向)となる。そして、垂直成分byは上向き((+)方向)である。そのため、S450、S460、S470を通る。したがって、S4470で制限値ayと垂直成分byの絶対値を比較し、制限値ayの方が大きい場合には、目標速度ベクトルTは「ty=ay、tx=bx+cx」となり(S500,510,520)、垂直成分byの方が大きい場合には「ty=by、tx=bx」となる(S530,540)。つまり、目標ベクトルTの垂直成分tyとしては、制限値ayと垂直成分byのうち絶対値が大きい方が選択される。
(3)の場合、目標面60の上方にバケット先端が在るため、距離Dが正になり制限値ayは図16より下向き((−)方向)となる。そして、垂直成分byは下向き((−)方向)である。そのため、S450、S480、S490を通る。したがって、S4490で制限値ayと垂直成分byの絶対値を比較し、制限値ayの方が大きい場合には、目標速度ベクトルTは「ty=by、tx=bx」となり(S530,540、垂直成分byの方が大きい場合には「ty=ay、tx=bx+cx」となる)(S500,510,520)。つまり、目標ベクトルTの垂直成分tyとしては、制限値ayと垂直成分byのうち絶対値が小さい方が選択される。
(4)の場合、目標面60の上方にバケット先端が在るため、距離Dが正になり制限値ayは図16より下向き((−)方向)となる。そして、垂直成分byは上向き((+)方向)である。そのため、S450、S480、S530を通るので、目標速度ベクトルTは「ty=by、tx=bx」となる。なお、ここでは説明を簡略化するために、S480でYESの場合にS530に進むように構成したが、S530に代えてS500に進むように構成を変更しても良い。このように構成すると、アームクラウド操作中に先の図9の点P3に相当する点を超えたところでマシンコントロールによる強制ブーム下げが発動し目標面60に沿った掘削が行われることになるので、目標面60に沿った掘削距離を長くできる。なお、このようにマシンコントロールによりブーム下げを行う場合に補正が必要になったときには、第1実施形態と同様に図13を利用して算出した補正値を利用することは言うまでも無い。
図19の説明に戻る。S550では、目標シリンダ速度演算部43gは、S520またはS540で決定した目標速度ベクトルT(ty,tx)を基に各油圧シリンダ5,6,7の目標速度を演算する。
S560では、目標パイロット圧演算部43hは、S550で算出された各シリンダ5,6,7の目標速度を基に各油圧シリンダ5,6,7の流量制御弁15a,15b,15cへの目標パイロット圧を演算する。
S570では、目標パイロット圧演算部43hは、マシンコントロールによるブーム8の動作で発生すべきバケット先端の速度ベクトルCがゼロか否かの判定を行う。速度ベクトルCがゼロでない場合(すなわちマシンコントロールが発動する場合)にはS580に進み、速度ベクトルCがゼロの場合(すなわちマシンコントロールが発動しない場合)にはS580で補正値を加えることなくS590に進む。
S580では、目標パイロット圧演算部43hは、補正値記憶部43jに記憶されたブーム上げの補正値を取得し、その補正値をブームシリンダ5の流量制御弁15aへの目標パイロット圧に加算してS590に進む。
S590では、目標パイロット圧演算部43hは、各油圧シリンダ5,6,7の流量制御弁15a,15b,15cへの目標パイロット圧を電磁比例弁制御部44に出力する。電磁比例弁制御部44は、各油圧シリンダ5,6,7の流量制御弁15a,15b,15cに目標パイロット圧が作用するように電磁比例弁54,55,56を制御し、これにより作業機1Aによる掘削が行われる。例えば、前回の掘削時に軌跡98と出来形97の距離が正の値だった場合(すなわち、軌跡98の下方に出来形97が位置するいわゆる掘り過ぎの場合)には、補正値演算部43iが、図18のフローチャートに基づいて、ブーム上げでパイロット圧を増加させ、ブーム下げでパイロット圧を減少させる補正値を算出する。このように算出された補正値でもってS560で算出したブームパイロット圧を補正してマシンコントロールを発動させると、S590の処理時に前回の掘削時よりも爪先の描く軌跡が上方に移動して掘り過ぎが防止されるので、出来形を目標面60に近づけることができる。
S590の処理が終了したら、操作量演算部43aでオペレータによるレバー操作が検出されるまで待機する。
<効果>
次の本実施形態の効果を説明する。上記の実施形態では、ブーム8、アーム9及びバケット10を含む多関節型の作業機1Aと、ブーム8、アーム9及びバケット10をそれぞれ駆動するブームシリンダ5、アームシリンダ6及びバケットシリンダ7と、これら油圧シリンダ5,6,7の流量制御弁15a,15b,15cの少なくとも1つにオペレータの操作に応じた制御信号(第1制御信号)を出力する操作装置45a,45b,46aと、操作装置45a,45b,46aから出力された制御信号により作業機1Aの先端(バケット爪先)が目標面60に接近している場合、作業機1Aの先端が目標面60に沿って移動するようにブームシリンダ5を動作させる制御信号(第2制御信号)を新たに生成する目標パイロット圧演算部(制御信号演算部)43hを有し、第1制御信号又は第2制御信号に基づいてブームシリンダ5、アームシリンダ6及びバケットシリンダ7の流量制御弁15a,15b,15cを制御する制御コントローラ40を備える油圧ショベル1において、制御コントローラ40は、第2制御信号を基に駆動された作業機1Aによって形成された出来形97の位置情報を、油圧ショベル1の周辺地形を測定する地形計測装置96から入力される地形情報を基に算出する地形演算部43mと、第2制御信号を基に駆動された作業機1Aの先端が移動した軌跡98の位置情報を算出する姿勢演算部43bをさらに備え、目標パイロット圧演算部43hは、出来形97の位置情報と軌跡98の位置情報の差が小さくなるように第2制御信号を補正することとした。
このように構成した油圧ショベルによれば、掘削の都度、出来形97が軌跡98に近づくようにブームシリンダ5の制御信号(パイロット圧)が補正され、出来形97と軌跡98の位置情報の差が小さくなるので、角度センサ30,31,32の検出精度が充分でない場合や、個体差・経年変化等により作業機先端の制御精度が充分でない場合等にも、バケット10の爪先を目標面60に沿わせながら掘削できる。その結果、目標面60の施工精度を高めることができる。
<付記>
なお、図15の構成を有する領域制限制御部43を備える油圧ショベルにおいても、第1実施形態のように出来形97と目標面60の距離に基づいて第2制御信号の補正を行っても良い。
また、上記の第2実施形態では、出来形97が目標面60近傍の軌跡98に近づくようにパイロット圧を補正する例について説明した。ここで、軌跡98と出来形97にズレが生じるということは、制御コントローラ40が爪先(作業機1A)の制御に利用している座標系(ショベル座標系)が地上に設定した座標系(グローバル座標系)とズレていることを意味する。そこで、軌跡98が出来形97に近づくようにショベル座標系を校正することで補正を行っても良い。
また、上記の2つの実施形態では、地形計測装置96は、図1に示すように車体1B(油圧ショベル1)に取り付けても良いし、図21に示すように車体1Bの外部に独立して設置しても良いし、図22に示すようにドローン等の飛行体99に搭載しても良い。図21や図22のように車体1Bに取り付けない場合には、地形情報は無線または有線で車体1B上の制御コントローラ40に入力できる。図1のように建設機械に地形計測装置96を取り付けると、地形計測装置96と制御コントローラ40の通信接続構成が簡便である。一方、図21及び図22のように地形計測装置96を建設機械から独立させると、同一の地形計測装置96から複数台の建設機械に対して地形情報を出力することができる。
また、図12及び図13に示したように距離と補正値が比例する場合を説明したが、距離がゼロに近い場合には補正値を算出せず、ゼロから正側と負側に所定の閾値値をそれぞれ設定し、当該閾値を越えた場合に補正値を算出するようにしても良い。また、距離を複数の区間に分割し、各区間で一定の補正値をとるようにし、階段状に補正値が増加又は減少するように構成しても良い。また、距離が所定の閾値を越えた場合には、当該閾値との偏差の大小に関わらず所定の補正値を算出し、その算出した補正値をそれまでの補正値の合計に加算するという構成を採用しても良い。この場合、例えば、目標面60の下方に閾値を超えた位置に出来形がある場合、「所定の補正値」のブーム上げパイロット圧補正値として1MPaを加算し、ブーム下げパイロット圧補正値として1MPaを減算する。このように構成すると前回の制御との乖離を少なくできるので制御を安定化できる。
さらに、上記では、ブーム制御(マシンコントロール)の補正としてパイロット圧を増減する方法を説明したが、例えば、第2実施形態のように目標シリンダ速度から目標パイロット圧を算出しており、その算出に際して目標シリンダ速度から目標パイロット圧への変換テーブルを利用している場合には、当該変換テーブルの特性を変更することでパイロット圧を増減する方法と同等の補正を行っても良い。
また、目標面演算部43cで演算される目標面の位置情報と、地形演算部43mで演算される地表面上の各点の位置情報は、ショベル座標系及びグローバル座標系のいずれで取得しても良い。
また、上記では、操作装置45,46,47は油圧パイロット方式であったが、各油圧シリンダ5,6,7の流量制御弁15a,15b,15cを制御する制御信号を電気信号とする電気パイロット方式を利用しても良い。
上記では、掘削の都度、補正値を演算するように構成したが、補正値を演算するタイミングに特に限定はない。したがって、例えば、1日の作業開始前や作業終了後に補正値を演算したり、所定の周期で演算したり、目標面付近を掘削する仕上げ作業中(すなわち掘削中)に演算したりする運用をしても良い。
また、上記では、作業機1Aの制御の基準(制御点)としてバケット10の爪先を選択したが、バケット10上の点及びバケット近傍の作業機1A上の点であれば代替可能である。
また、上記では制御コントローラ40内の領域制限制御部43を油圧ショベル1に搭載する場合について説明したが、領域制限制御部43は油圧ショベル1から切り離し、オペレータ操作検出装置52a等からの入力データを無線・有線で入力し、当該入力データから演算した結果(各油圧シリンダ5,6,7の目標パイロット圧)を電磁比例弁制御部44に無線・有線で出力するように構成しても良い。この場合、領域制限制御部43は単独のコンピュータで構成しても良いし、複数のコンピュータで構成しても良い。
なお、本発明は、上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内の様々な変形例が含まれる。例えば、本発明は、上記の実施の形態で説明した全ての構成を備えるものに限定されず、その構成の一部を削除したものも含まれる。また、ある実施の形態に係る構成の一部を、他の実施の形態に係る構成に追加又は置換することが可能である。
上記の制御コントローラ40に係る各構成や当該各構成の機能及び実行処理等は、それらの一部又は全部をハードウェア(例えば各機能を実行するロジックを集積回路で設計する等)で実現しても良い。また、上記の制御コントローラ40に係る構成は、演算処理装置(例えばCPU)によって読み出し・実行されることで当該制御コントローラ40の構成に係る各機能が実現されるプログラム(ソフトウェア)としてもよい。当該プログラムに係る情報は、例えば、半導体メモリ(フラッシュメモリ、SSD等)、磁気記憶装置(ハードディスクドライブ等)及び記録媒体(磁気ディスク、光ディスク等)等に記憶することができる。