以下,本発明の実施の形態を,図面を参照しつつ説明する。なお,本実施の形態では,作業機械の一例として,フロント装置(フロント作業装置)の先端に作業具としてバケットを備える油圧ショベルを例示して説明する。
図1は,本実施の形態に係る作業機械の一例である油圧ショベルの外観を模式的に示す図である。図1において,油圧ショベル100は,垂直方向にそれぞれ回動する複数のフロント部材(ブーム4,アーム5,バケット(作業具)6)を連結して構成された多関節型のフロント装置(フロント作業装置)1と,車体を構成する上部旋回体2及び下部走行体3とを備え,上部旋回体2は下部走行体3の上部に旋回可能に取り付けられている。下部走行体3はクローラ式の走行体であり,無限軌道とも呼ばれる。
フロント装置1のブーム4の基端は上部旋回体2の前部に垂直方向に回動可能に支持されており,アーム5の一端はブーム4の基端とは異なる端部(先端)に垂直方向に回動可能に支持されており,アーム5の他端にはバケット6が垂直方向に回動可能に支持されている。ブーム4,アーム5,バケット6,上部旋回体2,及び下部走行体3は,油圧アクチュエータであるブームシリンダ4a,アームシリンダ5a,バケットシリンダ6a,旋回モータ2a,及び左右の走行モータ3a(ただし,一方の走行モータのみ図示)によりそれぞれ駆動される。
ブーム4,アーム5及びバケット6は,フロント装置1を含む平面上で動作し,以下ではこの平面を動作平面と称することがある。つまり動作平面とは,ブーム4,アーム5及びバケット6の回動軸に直交する平面であり,ブーム4,アーム5及びバケット6の幅方向の中心に設定することができる。
オペレータが搭乗する運転室(キャブ)9には,オペレータから入力される操作に基づいて,油圧アクチュエータ2a~6aを操作するための操作信号,すなわちフロント装置1,上部旋回体2及び下部走行体3を操作するための操作信号を出力する操作レバー(操作装置)9a,9b,9c,9dが設けられている。
操作レバー9a,9bはそれぞれ前後左右に傾倒可能であり,操作レバー9a,9bの前後方向または左右方向には油圧アクチュエータ2a,4a,5a,6aの操作がそれぞれ割り当てられている。一方,操作レバー(走行レバー)9c,9はそれぞれ前後方向に傾倒可能であり,操作レバー9cの前後は左の走行モータ3の前後進に割り当てられており,操作レバー9dの前後は右の走行モータ3の前後進に割り当てられている。また操作レバー9a,9b,9c,9dは,レバーの傾倒方向及び傾倒量,すなわちレバー操作方向及び操作量を電気的に検知するセンサ(図示せず)をそれぞれ含んでおり,これらのセンサが検出したレバー操作方向及び操作量を操作信号として制御装置であるコントローラ16に電気配線を介して出力している。
以降,これら操作レバー9a,9b,9c,9dのレバー操作方向及び操作量を検知するセンサや,キャブ内9に設置されたコンソールパネル等の入力装置に対するオペレータの操作内容を検出するセンサ等のオペレータの操作を検出するセンサを操作検出装置C05と総称する。
ブームシリンダ4a,アームシリンダ5a,バケットシリンダ6a,旋回モータ2a及び左右の走行モータ3aの動作制御は,エンジンや電動モータなどの原動機によって駆動される油圧ポンプ装置7から各油圧アクチュエータ2a~6aに供給される作動油の方向及び流量をコントロールバルブ8で制御することにより行う。コントロールバルブ8は,図示しないパイロットポンプから電磁比例弁を介して出力される駆動信号(パイロット圧)により行われる。操作レバー9a,9bからの操作信号に基づいてコントローラ16で電磁比例弁を制御することにより,各油圧アクチュエータ2a~6aの動作が制御される。
なお,操作レバー9a,9b,9c,9dは油圧パイロット方式であってもよく,それぞれオペレータにより操作される操作レバー9a,9b,9c,9dの操作方向及び操作量に応じたパイロット圧をコントロールバルブ8に駆動信号として供給し,各油圧アクチュエータ2a~6aを駆動するように構成しても良い。
上部旋回体2には,所定の平面(例えば水平面)に対する上部旋回体2の傾斜角を検出する姿勢センサである慣性計測装置(IMU)12と,図2に示した2本のGNSSアンテナ13,14が取り付けられている。
慣性計測装置12は,角速度及び加速度を計測するものである。例えば慣性計測装置12が取り付けられた上部旋回体2が静止している場合を考えると,慣性計測装置12に設定されたIMU座標系における重力加速度の方向(つまり,鉛直下向き方向)と,慣性計測装置12の取り付け状態(つまり,慣性計測装置12と上部旋回体2との相対的な位置関係)とに基づいて,上部旋回体2の前後方向への傾き(ピッチ角)を検出することができる。
フロント装置1の構成部材であるブーム4,アーム5,バケット6にはそれぞれの姿勢を計測するための姿勢センサとして,ポテンショメータ,慣性計測装置及びシリンダストロークセンサのいずれかが適切な位置に設置されている。以降,これらフロント装置1の姿勢を計測,演算するセンサを姿勢計測装置C02と総称する。
図2は,図1の油圧ショベル100を側面から見た概略図であり,本図の通り,上部旋回体2上に2本のGNSSアンテナ13,14が取り付けられている。なお,説明の都合上,GNSSアンテナ13をメインアンテナ(第1アンテナ),GNSSアンテナ14をサブアンテナ(第2アンテナ)と呼ぶことがある。
GNSSアンテナ13,14それぞれで受信した衛星信号(好ましくは4基以上の衛星からの信号)に基づいて,運転室9または上部旋回体2の構造内に搭載された測位端末(位置計測装置)15は2つのアンテナ13,14の測位計算を行う。測位端末15は,処理装置(例えばCPU)と,2つのアンテナ13,14が受信した衛星信号から処理装置が2つのアンテナ13,14の位置を測定するためのプログラムが格納された記憶装置を有する測位用のコントローラである。測位端末15はそれぞれのGNSSアンテナ13,14の緯度,経度,ジオイド高さを含むNMEAフォーマットなどで2本のアンテナ13,14の測位結果を出力する。1つの測位端末で2つのアンテナ位置の測位を行っても良いし,アンテナごとに測位端末を備えていても良い。以降,簡単のため,2本のGNSSアンテナ13,14と測位端末15から構成される測位システムをまとめて位置計測装置C01と呼ぶ。
運転室9または上部旋回体2の構造内には,測位端末15と同様に,コントローラ16が配置されている。コントローラ16は,処理装置(例えばCPU)と,その処理装置が実行するプログラムが格納された記憶装置(例えばROM,RAM等の半導体メモリ)を有する。本実施形態のコントローラ16は各種センサ(慣性計測装置12,姿勢計測装置C02及び操作検出装置C05)や位置計測装置C01内の測位端末15から信号を受信して,ショベル100の動作に関する各種演算を行っている。
図3は本発明の実施形態に関わるコントローラ16の処理機能の概略を示した機能ブロック図である。コントローラ16には,GNSSアンテナ13,14及び測位端末15を含む位置計測装置C01,慣性計測装置12,姿勢計測装置C02,操作検出装置C05が検出した結果が入力されている。これらの情報に基づいて,コントローラ16は,運転室9内に備えられたディスプレイなどの表示装置C03に指示を表示するマシンガイダンス機能と,フロント装置1の動きを制御するためにコントロールバルブ8や各油圧アクチュエータ2a~6aを駆動する油圧制御装置C04を制御するマシンコントロール機能を実装している。なお,コントローラ16にはショベル100を制御するための様々な機能が実装されているが,本発明に直接関係のない機能については説明を省略している。
図3のコントローラ16内の各部の具体的な演算内容を説明する。コントローラ16は,上部旋回体角度演算部C10と,相対角度演算部C11と,フロント姿勢演算部C12と,操作判断部C20,車体姿勢演算部C13と,操作指示演算部C14と,作業支援演算部C15を備えている。
上部旋回体角度演算部C10は,位置計測装置C01と慣性計測装置12の検出値に従って,上部旋回体2における旋回中心座標とフロント装置1の向きを算出する。具体的には図4のように,測位端末15が演算するメインアンテナ13とサブアンテナ14の各座標より平面座標における2本のGNSSアンテナ13,14の位置を通過する直線の角度を演算し,さらに,各アンテナ13,14とフロント作業装置1の幾何学的な関係からフロント装置1の角度θを算出する。
なお,油圧ショベル100が旋回動作を行っている場合には,上述のGNSSアンテナ13,14の位置から求めた角度θ0を起点として,慣性計測装置12で検出した角速度ωを積分することでフロント角度θを(3)式に従って算出しても良い。
相対角演算部C11は上部旋回体2と下部走行体3が成す相対角αを演算する。相対角αの演算には,位置計測装置C01の検出値(下部走行体3による走行動作の前後におけるメインアンテナ13とサブアンテナ14の位置)が利用される。慣性計測装置12の検出値や操作判断部C20の出力を利用することもできる。相対角演算部C11の演算内容が本実施形態の主な特徴となるため,その詳細な内容は後述する。
フロント姿勢演算部C12は,姿勢計測装置C02の検出値に基づいてフロント装置1の姿勢を演算する。フロント装置1の姿勢には各フロント部材4,5,6の姿勢の他,フロント装置1の先端であるバケット6のツメ先位置も含まれる。たとえば,図5のようにブーム4の回動中心であるブームフートピンを原点とする座標系(xb,yb,zb)において,ブーム4,アーム5,バケット6(正確には,ブーム長さLbm,アーム長さLam,及びバケット長さLbkの向き)の角度(姿勢角度)をそれぞれθbm,θam,θbkとすると,バケット6のツメ先位置を次の式(4)及び式(5)から求めることができる。
なお,姿勢計測装置C02としてポテンショメータを利用する場合は各姿勢角θbm,θam,θbkは直接的に取得できるが,慣性計測装置やシリンダストロークセンサを利用する場合には検出値を姿勢角θbm,θam,θbkに変換する演算も必要になる。
車体姿勢演算部C13は上部旋回体角度演算部C10,相対角演算部C11,フロント姿勢演算部C12の演算結果に基づいて,油圧ショベル100の姿勢に関する情報を統合する。より具体的には,上部旋回体角度演算部C10で演算した旋回中心座標,フロント装置1の向き,および,油圧ショベル100の寸法情報に従って,世界座標系におけるブームフートピンの座標を演算できる。その後,ブームフートピンの座標を原点として,フロント姿勢演算部C12で演算したバケットツメ先位置を統合すると,世界座標系におけるバケットツメ先位置が演算できる。また,上部旋回体角度演算部C10で演算した旋回中心座標を基準にして,相対角演算部C11で演算した上部旋回体2と下部走行体3の相対角αを利用することで,下部走行体3の向き(絶対角度)を演算することが出来る。
操作支援演算部C14は,車体姿勢演算部C13の演算結果,および,操作判断部C20で判断された操作内容に基づいて,オペレータの操作を支援するマシンガイダンスに関する演算を行い,指示内容を表示装置C03へと出力する。支援内容としては,所定の目標面とバケットの位置関係を表示することや,その目標面の下方にバケット6の先端部が潜り込まないように車体姿勢演算部C13で演算したバケットの座標に応じてブーム上げレバー操作を促す表示をすることや,図18に示した作業のために下部走行体の向きを作業面に合わせるように走行レバー操作を促す表示をすること,などが挙げられる。なお,操作指示演算部C14には,他の作業に関するガイダンス機能を備えていても良いが,本実施形態と直接の関係が無いため説明は省略する。
作業支援演算部C15は,車体姿勢演算部C13の演算結果と,操作判断部C20で判断された操作内容とに基づいて,油圧ショベル100の動作を自動または半自動的に制御するマシンコントロールに関する演算を行い,この動作を実行するための指令値を油圧制御装置C04へと出力する。油圧制御装置C04は入力した指令値に基づいてフロント装置1を含む油圧ショベル100の動作を制御する。油圧ショベル100の動作の半自動制御の例としては,操作装置9a,9bの操作時にフロント装置1(より具体的にはバケット6のツメ先)が目標面上またはその上方に位置するようにフロント装置1が目標面に近づく速度を所定の制限速度以下に制限するものがある。
次に相対角演算部C11の構成について図面を用いて詳細に説明する。
<第1実施形態>
図6は,相対角演算部C11の実施形態の一例である。図6では,相対角演算部C11の入力として,位置計測装置C01の検出値のみを利用する場合を考える。なお,説明の都合上,時刻t1(第1時刻)において位置計測装置C01が演算したメインアンテナ13の座標(位置)を座標13a,同サブアンテナ14の座標(位置)を座標14a,時刻t2(第2時刻)において位置計測装置C01が演算したメインアンテナ13の座標(位置)を座標13b,同サブアンテナ14の座標(位置)を座標14bと呼ぶ。
図6の相対角演算部C11は,第1位置情報記憶部A01と,第2位置情報記憶部A02と,第1車体角度演算部A03と,第2車体角度演算部A04と,走行変位角度演算部A05と,逸脱角度演算部A06と,走行変位角度補正部A07と,相対角度演算部A08とを備えている。
第1位置情報記憶部A01と第2位置情報記憶部A02は,コントローラ16内の記憶装置の記憶領域内に構成されている。
第1位置情報記憶部A01は,時刻t1(第1時刻)におけるメインアンテナ位置13aとサブアンテナ位置14aを記憶する。第1位置情報記憶部A01は,測位端末15から出力されるDOP(Dilution Of Precision)や位置特定品質などの測位精度に関する情報を参照し,以降の演算に必要な精度で測位が行われているときの位置情報を記憶する。例えば,RTKを利用している場合には,位置特定品質が「RTK-FIX」になっていること,つまり,GNSSの標準フォーマットであるNMEAメッセージ中の「GGA」のクオリティが4になっていること,を確認して位置情報を記憶することで測位結果の誤差をおよそ2cm程度にできる。なお,時刻t1以降から上記の位置情報の記憶が行われるまでの間はショベル100を動作させないことが望ましい。
第2位置情報記憶部A02は,時刻t2(第2時刻)におけるメインアンテナ位置13bとサブアンテナ位置14bを記憶する。第1位置情報記憶部A02も第1位置情報記憶部A01と同様に所望の測位精度が保証されたときの位置情報を記憶する。同様に位置情報の記憶が行われるまでの間,ショベル100を動作させないことが望ましい。
以上の時刻t1,時刻t2の関係を図7のタイムチャートを用いて説明する。
まず,時刻t1より前ではショベル100の動作に何ら制限を与えない。時刻t1にて位置計測装置C01から出力される位置情報の記憶を開始し,所望の精度(たとえば,RTK-FIXの2cm)が保証される時刻taまで間はショベル100を停止させる。そして時刻taにて位置情報の記憶を終了する。
時刻taにて位置情報の記憶を終了した以降は,再びショベル100の動作を許可する。ただし,後述の通り,時刻ta以降から時刻t2までは走行以外の操作を行わないことが望ましい。
時刻t2にて再び位置計測装置C01から出力される位置情報の記憶を開始すると,位置精度が保証される時刻tbまでショベル100の動作を停止する。同様に時刻tbにて位置情報の記憶を終了する。
以上のような動作を実行することで,GNSSによる測位誤差に起因する下部走行体3と上部旋回体2の相対角αの演算誤差を抑制できる。なお,以下では簡単のため時刻t1,t2でも「RTK-FIX」の精度が保証されているものとして説明する。
第1車体角度演算部A03は,第1位置情報記憶部A01に格納されている時刻t1におけるメインアンテナ座標13aとサブアンテナ座標14aに基づいて,時刻t1における上部旋回体の向き(角度)である第1車体角度θ1を演算する。具体的な演算は図4に準ずるが,ここでは説明を簡単にするため,十分に平滑な平面(高さ方向zへの変位がない)上に油圧ショベル100が配置されていると仮定する。そして,時刻t1のメインアンテナ13の平面座標13aを(x1,y1),サブアンテナ14の平面座標14aを(x2,y2)とすると,時刻t1において各アンテナ13,14を通過する直線が所定の基準線(図8,9では水平線)となす角度θ1を次の(6)式で与えることが出来る。
第2車体角度演算部A04は,第2位置情報記憶部A02に格納されている時刻t2におけるメインアンテナ座標13bとサブアンテナ座標14bに基づいて,時刻t2における上部旋回体の向き(角度)である第2車体角度θ2を演算する。時刻t2のメインアンテナ13の平面座標13bを(x3,y3),サブアンテナ14の平面座標14bを(x4,y4)とすると,時刻t2において各アンテナ13,14を通過する直線が所定の基準線(図8,9では水平線)となす角度θ2(図8,9参照)を次の(7)式で与えることが出来る。
走行変位角度演算部A05は,第1位置情報記憶部A01と第2位置情報記憶部A02に記憶された時刻t1,t2における2つのアンテナ13,14の位置のうち一方のアンテナの位置に基づいて,時刻t1及び時刻t2におけるその一方のアンテナの位置を通る直線が所定の基準線となす角である走行変位角度ψ(φ)を演算する。走行変位角度ψ(φ)は時刻t1以降の時刻taから時刻t2の間に行われた下部走行体3の走行動作によって生じるGNSSアンテナの角度である。
ここでは時刻t1,t2におけるメインアンテナ13の位置から走行変位角度ψを計算する。図7の時刻taから時刻t2の間に作業者が走行レバー操作のみを実施したとすると,走行前のメインアンテナ座標13aと走行後のメインアンテナ座標13bを通過する直線のなす角度ψを次の(8)式で計算する。
上記の演算の一例を図8に示す。下部走行体3の軌跡が完全にまっすぐであれば,走行前後のメインアンテナ座標13a,13bのx座標は同一であるため,図8に示すように走行変位角度ψ=0となる。また,θ1=θ2も成立する。
また,図8とは下部走行体3と上部旋回体2の相対角αが異なる姿勢の例を図9に示す。図8と同様に,下部走行体3の軌跡が完全にまっすぐであれば,θ1=θ2が成立する。
図8,9からも分かるように(8)式で演算している角度ψは下部走行体3の絶対角に等しい。ただし,これは,走行動作中の下部走行体3の軌跡が完全に真っ直ぐである場合に限定されることに注意が必要である。つまり,通常はスリップ等で蛇行するので下部走行体3の軌跡は直線にならない。
逸脱角度演算部A06は,第1位置情報記憶部A01及び第2位置情報記憶部A02に記憶された情報と,第1車体角度演算部A03の演算結果とに基づいて,下部走行体3の走行動作中の蛇行によって生じる角度である逸脱角δφの演算を行う。
ここで,逸脱角δφが生じた場合のGNSSアンテナの座標の変化例を図10に示す。説明を簡単にするため,第1位置情報記憶部A01に記憶された時刻t1におけるメインアンテナ13とサブアンテナ14の座標13a,14aがX’座標上に乗っている場合を考える(二点13a,14aを結ぶようにX’軸を取ったものとして考えても良い)。図10以降は説明を簡単にするため,下部走行体3の走行変位角度は先述のψではなくX’軸を0度としたφを用いて説明する。図8.9のψとφには「ψ+φ=90度」の関係が成り立つため,容易に変換することができる。
まず,下部走行体3の初期角度(t1における下部走行体3の角度)φ’に沿って下部走行体3が真っ直ぐに走行できたと仮定すると,時刻t2における各アンテナ13,14の座標は図10中の13c,14cとなる。真っ直ぐに走行できたのならば,メインアンテナ座標13cとサブアンテナ座標14cを結ぶベクトルは,X’軸(13aと14aの2座標を結ぶベクトル)と平行になることに注意されたい。
しかしながら,実際の走行動作においては,クローラ式の下部走行体3の履体と地面の間に滑りが生じて蛇行するため,第2位置情報記憶部A02に記憶される時刻t2における各アンテナ13,14の座標は例えば13b,14bとなる。このような場合,13b,14bの座標を利用して(8)式の計算を行うことで得られる角度φは,下部走行体3の初期角度(図10中のφ’)と異なる値になってしまう。このように生じる角度の差を本願では逸脱角δφと呼ぶ。図10から明らかなように,逸脱角δφは,時刻t1において下部走行体3が所定の基準線(X’軸)となす角φ’と走行変位角度φとの差(δφ=φ’-φ)でもある。
(1)角度θcによる逸脱角δφの近似1
逸脱角δφの演算方法の一例を図11a,11bに従って説明する。この例は逸脱角δφが十分に小さい場合に精度が良い。
まず,図11aに示した通り,時刻t1から時刻t2の間におけるメインアンテナ13の移動距離をl1,同様に時刻t1から時刻t2の間におけるサブアンテナ14の移動距離をl2,メインアンテナ13とサブアンテナ14間の距離をHとすると,それぞれの値は時刻t1,t2における2本のアンテナ13,14の座標値を利用して次の(9)(10)(11)式で計算できる。
なお,(11)式では第1位置情報記憶部A01に記憶された時刻t1におけるメインアンテナ座標13aとサブアンテナ座標14aを利用しているが,第2位置情報記憶部A02に記憶された時刻t2における各座標13b,14bを使っても良い。
ここで,履体と地面の滑りによる軌道変化は遠点COを中心とした回転運動として近似できることに注目すると,メインアンテナ13の移動距離l1は半径(H+R)の円の外周の一部,サブアンテナ14の移動距離l2は半径Rの円の外周の一部とみなすことが出来る。このとき,それぞれの移動距離l1,l2を次式で近似できる。
(12),(13)において未知変数はRとθcの2変数なので,(12),(13)を連立することによって,数値的にRとθcを演算することが出来る。すなわち,本例では,2本のアンテナ13,14の移動距離l1,l2が,それぞれ,中心が同じで逸脱角δφを中心角θcとして有する扇形の円弧(但し半径はR+HとR)であるとみなして逸脱角δφを演算する。
なお,第1位置情報記憶部A01と第2位置情報記憶部A02に記憶された時刻t1,t2におけるサブアンテナ座標14a,14bと遠点COを頂点とする三角形を考え,余弦定理より求まる下記(14)式を追加しても良い。
ただし,(14)式はサブアンテナ座標を利用する場合の式であるが,代わりにメインアンテナ座標13a,13bを用いても良い。
(2)角度θcによる逸脱角δφの近似2
さらに,第1位置情報記憶部A01に記憶された時刻t1におけるメインアンテナ13とサブアンテナ14の座標13a,14aを結ぶようにX’-Y’座標系を取った場合(図10)を考えると,図11bのように,時刻t2におけるメインアンテナ13とサブアンテナ14の座標13b,14bを通過する直線がX軸となす角度がθcとなるので,次の(15)式で規定される逆正接関数でθcを求めることも出来る。
なお,上記の(15)式における(x3’,y3’),(x4’,y4’)はX’-Y’座標系における第2位置情報記憶部A02に記憶された時刻t2におけるメインアンテナ座標13bおよびサブアンテナ座標14bである。
(3)角度θdによる逸脱角δφの近似
逸脱角δφが十分に小さい場合にはδφ=θcとみなすことも出来るが,そうでない場合には近似精度が高くないことがある。次にθcで近似する場合よりも近似精度を上げる方法の一例を図12に従って説明する。
まず,図12aのように,(8)式で計算されるメインアンテナ13の移動前後の角度φを利用して,第2時刻t2における仮想的なサブアンテナの座標14dを演算する。この座標14dは,時刻t1以降の時刻taから時刻t2の間に行われた走行動作により下部走行体3が走行変位角度φに沿って真っ直ぐ走行できたと仮定した場合の時刻t2におけるサブアンテナ14の仮想位置を示す。この仮想的なサブアンテナ14の座標14dを(xp,yp)とすると,具体的には次の(16)(17)式で与えることが出来る。
すなわち,xp,ypは,時刻t1から時刻t2の間におけるメインアンテナ13の移動距離l1と,時刻t1におけるサブアンテナ14の座標14a(x2,y2)と,走行変位角度φに基づいて規定できる。
また,同一時刻におけるメインアンテナ13とサブアンテナ14の距離は一定(距離は(11)式のHで与えられる)であるので,第2位置情報記憶部A02に記憶された時刻t2におけるサブアンテナ座標14bと,時刻t2における仮想サブアンテナ座標14dとは,第2位置情報記憶部A02に記憶された時刻t2におけるメインアンテナ座標13bを中心とした半径Hの円周上に配置される。この様子を図12bに示す。
本例では,時刻t1におけるサブアンテナ座標14aと時刻t2における仮想サブアンテナ座標14dとを通過する直線と,時刻t2におけるサブアンテナ座標14bと時刻t2における仮想サブアンテナ座標14dとを通過する直線とがなす角θdで逸脱角δφを近似する。θdは,3つの座標14a,14b,14dを頂点に有し,図12bに示したa,b,cの3辺から成る三角形に余弦定理を利用することよって計算することが出来る。辺aは2つの頂点14a,14bを接続する辺で,辺bは2つの頂点14a,14dを接続する辺で,辺cは2つの頂点14d,14bを接続する辺である。
なお,逸脱角δφが小さいときは,図12bにおいて,サブアンテナ座標14bが円周上に沿って,仮想サブアンテナ座標14dへと接近することで,θdは徐々に0へと近づいていく。同じく,サブアンテナ座標14bが円周上に沿って,仮想サブアンテナ座標14dへと接近することで,上述のθcも0へと近づいていくことが確認できる。これが,上述の「逸脱角が十分に小さい場合には,δφ=θcとみなすことも出来る」理由になっている。
ところで,図21に逸脱角δφとその近似計算値のθc,θdの関係を示す。
まず,θcは,(15)式に示した通り,実際に測定可能な時刻t2における2点13b,14bの座標値を利用してX’軸まわりの回転角度として演算される。
一方,θdは,(18)~(21)式に示した通り,実際に測定可能な時刻t1,t2における2点14a,14bの座標値と,演算によって求まる仮想的な測位点14dの座標値,すなわち3点の座標値を利用して,14a-14d,14b-14dの2直線が成す角度として演算される。
ここで直線14d-14bを延長して,X’軸との交点座標を14eと定義する。下部走行体3による走行距離が十分に長いと,直線14a-14cと直線14d-14eは近似的に平行な関係になる。この平行関係を利用すると,θdとδφが一致することが確認できる。これが,θdによって,δφを精度よく近似できる理由である。
なお,図21の各点の幾何学的な関係に着目すると,逸脱角δφとθcの間に明確な関係性が無いようにもみえる。ただし,図12bに示した通り,下部走行体3の逸脱(逸脱角δφ)が小さくなると(すなわち14bと14dが近くなると)にθcとθdの値が徐々に近づく。θcとθdのこの関係が,逸脱角δφの演算にθcを利用することに相当の妥当性があることの理由である。ただし,θcは「δφの近似値であるθd」の近似値を求めているに過ぎず,精度の点ではθdに劣る場合が多いことに注意が必要である。
走行変位角度補正部A07は,走行変位角度演算部A05と逸脱角度演算部A06の演算結果に基づいて,走行で生じた逸脱角を考慮して走行変位角度φを補正することで,補正後の走行変位角度φ’を演算する。
より具体的には,次式によって補正を行う。すなわち走行変位角度φに逸脱角δφを加算した値を補正後の走行変位角度φ’とする。補正後の走行変位角度φ’は走行動作前(例えば時刻t1)における下部走行体3の角度(向き)である。
なお,図8,図9に示したように,下部走行体の移動が完全にまっすぐ行われた場合には逸脱角δφ=0が成り立つため,φ’=φとなる。
相対角度演算部A08は,第1車体角度演算部A03と走行変位角度補正部A07の演算結果に基づいて,上部旋回体2と下部走行体3が成す相対角度αを演算する。具体的には「α=θ1-φ’」に従った計算すれば良い。すなわち,第1車体角度θ1から補正後の走行変位角度φ’を減じた値が時刻t1における上部旋回体2と下部走行体3の相対角度αとなる。
以上のように,クローラ式の下部走行体3を備えた作業機械では,例えば走行前の時刻t1で下部走行体3の角度がφ’(図10)で,その状態のまま下部走行体3を直進させる操作を入力しても,走行中の滑り等で下部走行体3が蛇行してしまい,走行後の時刻t2での下部走行体3の角度は走行前の角度と異なる値φ(図10)となってしまう。そのため上部旋回体2に設置された2本のGNSSアンテナ13,14のいずれかの走行前後の位置の変化から移動方向φを演算しても,走行前の下部走行体3の角度φ’を正確に演算することは困難であった。
しかし,本実施形態の作業機械は,上記の演算を実行する相対角度演算部C11を有するコントローラ16を備えているため,走行動作中に下部走行体3が蛇行した結果生じた逸脱角δφ(δφ=φ’-φ)を他の角度θc,θdで精度良く近似することで,時刻t1における下部走行体3の角度φ’を演算できる。これにより時刻t1における上部旋回体2と下部走行体3の相対角αを演算できるので,これ以降は上部旋回体2の旋回角を積算していけば所望の時刻における上部旋回体2と下部走行体3の相対角αを演算できる。特に本実施形態では2本のGNSSアンテナ13,14の測位結果のみから一連の角度θc,θd,αを演算できる点がメリットとなる。GNSSの測位結果を利用する方法は,特許文献2で示される旋回軸に回転角度センサを備える構成と異なり,GNSS(位置計測装置C01)に万が一故障が生じたとしても交換や修理が非常に容易である。近年は情報化施工の進展によりGNSSアンテナを2本備える油圧ショベルが増えており,そのような油圧ショベルへの適用については専用の回転角度センサを備える構成と比較してイニシャルコストの点でも優位性がある。
また,上記のように演算した相対角αを例えば運転室9内の表示装置C03に表示すれば,フロント装置1による作業中にオペレータが下部走行体3の向きを失念してしまっても表示装置C03を参照すればいつでも上部旋回体2と下部走行体3の相対角度を把握できるため,フロント装置1による作業の終了後に走行動作を開始する際に誤った方向に前進することを防止できる。相対角αの用途はこれだけに限られず,マシンガイダンス機能やマシンコントロール機能において種々の形態での利用が可能である。
<第2実施形態>
図13は第2実施形態における相対角演算部C11の機能ブロック図である。本実施形態の相対角演算部C11は,逸脱角演算部D06に慣性計測装置(IMU)12の出力を入力しており,それを逸脱角度演算部D06における演算内容に利用している点に特徴がある。以下に説明する内容を除き,その他の第1実施形態と同じ名称の部分については第1実施形態と同じ処理を実行するものとし説明は省略する。
慣性計測装置12では上部旋回体2の角速度ωuと下部走行体3の角速度ωbの和(ω=ωu+ωb)を検出することが出来る。ここで,時刻t1から時刻t2の間は上部旋回体2を回転させない(ωu=0)という条件を課せば,慣性計測装置12の検出値は下部走行体の角速度ω=ωbになる。したがって,この角速度を利用すれば,上述の角度θcを次の(23)式で計算できる。(23)式における積分区間は例えば時刻t1から時刻t2に設定できる。
すなわち本実施形態の逸脱角演算部D06は,慣性計測装置12により検出された角速度の時刻t1から時刻t2までの積分値を逸脱角δφとして演算している。このように逸脱角δφを演算しても上部旋回体2と下部走行体3の相対角αを演算することができる。ただし,本実施形態のように下部走行体3の角速度ωbの検出に高精度な慣性計測装置(IMU)12を利用した場合,GNSSの測位結果と(14),(15)式に基づいてθcを計算する第1実施形態の方法よりも正確な値を得ることが出来る。また,近年は情報化施工の進展により,上部旋回体2の傾斜角度を検出するために慣性計測装置(IMU)12を備える油圧ショベルが増えており,そのような油圧ショベルに本実施形態を適用する場合には専用の回転角度センサを備える構成と比較してイニシャルコストの点で優位性がある。
なお,本実施形態では上部旋回体2に取り付けた慣性計測装置12で下部走行体の角速度ωbを取得したが,下部走行体3の角速度ωbを取得できるセンサであれば他の角速度検出センサを利用しても構わない。また,下部走行体3に慣性計測装置12を取り付けて角速度ωbを検出しても構わない。
<第3実施形態>
図14は第3実施形態における相対角演算部C11の機能ブロック図である。本実施形態では第2実施形態の構成に加えて,操作判断部C20の出力を相対角度演算部C11に入力し,逸脱角度演算部E06と走行変位角度演算部E05での演算に利用している。以下に説明する内容を除き,その他の第2実施形態と同じ名称の部分については第2実施形態と同じ処理を実行するものとし説明は省略する。
操作判断部C20は,操作検出装置C05から出力される信号を入力して,例えば操作レバー9a,9b,9c,9dの操作方向や操作量を監視し,オペレータがショベル100に対してどのような操作を入力したかを判断する。また,操作判断部C20は操作レバー9a,9b,9c,9dのみでなく,キャブ内9にあるコンソールパネルを含む入力装置から出力される信号も入力しており,これらの入力装置へ操作内容(入力内容)も取得できるように構成されている。
逸脱角度演算部E06は,第2実施形態の逸脱角度演算部D06が行っていた演算に加えて,操作判断部C20の出力を利用した演算を行う。例えば下部走行体3の走行動作中に旋回操作が実施された場合は上部旋回体2が回転する(ωu≠0)ため,(19)式でθcを計算することが出来なくなる。このため,逸脱角度演算部E06は,操作判断部C20にて旋回操作が実施されていると判断された場合には,(19)式によるθcの計算を停止する。
走行変位角度演算部E05も,先に説明した内容の演算だけでなく,操作判断部C20の出力を利用した演算を行っている。逸脱角δφが十分に小さいとすれば,次の(24)式で示すように,慣性計測装置(角速度検出センサ)12で検出した角速度の積分値は上部旋回体2の角度変化Δθと一致する。
(24)式のΔθを利用すれば,時刻t1(第1時刻)と時刻t2(第2時刻)の間の走行動作中に旋回操作が実施された場合でも,走行変位角度φを演算することが出来る。具体的には,図15に示したように右旋回操作が行われると第2車体角度演算部A04で演算される角度θ2が第1車体角度演算部A03で演算される角度θ1よりもΔθの変化が生じる。そのため,時刻t2のメインアンテナ座標とサブアンテナ座標をそれぞれ旋回中心に対してΔθ分,旋回操作と逆方向(すなわち左旋回方向)に回転操作(座標変換)を行う。回転操作後に得られた時刻t2のメインアンテナ座標とサブアンテナ座標をそれぞれ(x3c,y3c),(x4c,y4c)と置き,これらの座標を第1実施形態の座標13b,14bとみなして第1実施形態と同様の演算を行えば相対角αを演算できる。
なお,上記の演算は「逸脱角δφが十分に小さい」ということを前提としているため,旋回操作を実施した場合は,相対角αの演算精度の低下が起き易い。このため,オペレータが旋回操作を行わないように,相対角αの演算中(下部走行体3による走行動作中)は表示装置C03に旋回動作を行わない旨をオペレータに注意勧告する表示を出力することが望ましい。
上記のように構成された相対角演算部C11を備える本実施形態のコントローラ16の演算フローの一例について図16を用いて説明する。なお,第1,2実施形態のコントローラ16の演算フローでは,操作判断部C20及び慣性計測装置12が関連する処理(S01,S02,S07,S08a,S08b)を省略すれば良い。
電源をOFF状態からON状態に設定されるとコントローラ16は図16の処理を開始する。まず,S1にて,操作判断部C20は,オペレータが上部旋回体2と下部走行体3の相対角の較正を行う意思があるかを,運転室9内のコンソールの操作内容に基づいて判断する。コンソール上には,オペレータからの入力に基づいて,上部旋回体2と下部走行体3の相対角度の較正をコントローラ16に指示するための較正指示を出力する較正開始ボタン(入力装置)が設けられており,この較正開始ボタンがオペレータに押下されると,コントローラ16(操作判断部C20)に対して較正指示が出力される。この較正指示が入力されると,操作判断部C20はオペレータに相対角の較正を行う意思があると判断する。
較正開始ボタンが押下されず,S01で相対角の較正が必要とされていないと操作判断部C20が判断した場合は処理をS02に遷移して通常動作を行う。通常動作とは,例えば,掘削動作を実施するのに必要なガイダンスや制御(マシンコントロール)の演算を行うことを意味する。
較正開始ボタンが押下され,S01で相対角の較正が必要とされていると操作判断部C20が判断した場合は処理をS03に遷移する。S03では,操作指示演算部C14は,現在「較正モード」が選択されていることを表示装置C03に表示する。なお,較正モードの選択時には,操作指示演算部C14によって,例えば「旋回操作は行わないでください。」というメッセージを表示装置C03に表示し続けることで,オペレータが旋回操作を行わないように促して較正精度の確保を図ることが望ましい。
次にS04では,相対角演算部C11は,測位端末15によるメインアンテナ13及びサブアンテナ14それぞれの測位結果が十分な精度で実施されたか否かについて,位置特定品質が「RTK-FIX」になっているか否かで判断する。この判断は上述の通りDOPの値等で判断しても良い。精度が不十分である場合,操作指示演算部C14は,精度の良い測位が行われるまで非操作で待機する旨を表示装置C03に表示する。なお,GNSSの受信環境が悪く所定の時間を経過しても,所望の精度で測位が実施できない場合には,較正場所を変える(走行動作で別の場所に移動する)こと促すメッセージや図形を表示装置C03に表示しても良い。なお,S04は省略可能である。
S04で高精度な測位が行われたことが確認されたら処理をS05に遷移させる。S05では,相対角演算部C11は,測位結果を時刻t1(第1時刻)の2本のアンテナ13,14の位置情報として,第1位置情報記憶部A01に記憶する(第1位置記憶処理)。時刻t1における2本のアンテナ13,14の位置情報の記憶が行われたらS06に遷移する。
S06では,操作指示演算部C14は,例えば「直進操作を入力してください。」というメッセージを表示装置C03に表示し,オペレータに操作レバー9c,9dを介した下部走行体3に対する直進操作(具体的には2本の操作レバー9c,9dを同じ方向に同じ量だけ傾倒する)の入力を促す。この際,先述のθc,θdの近似精度を上げて相対角演算の精度を向上させる目的で,較正に適した最低走行距離を表示したり,直進操作入力後の走行距離を表示したりしても良い。下部走行体3の走行距離は,例えばGNSSの測位結果の変化から演算できる。また,走行油圧モータ3aや履帯の駆動輪の回転数をセンサで検出することで演算しても良い。
次に,S07では,操作判断部C20にて,直進操作中にオペレータによって旋回操作が行われたか否かを判断する。旋回操作が行われなかったと判断した場合には処理をS09に遷移する。旋回操作が行われたと判断した場合にはS08aとS08bの処理を実行する。
S08aでは,走行変位角度演算部E05は,旋回操作時の角度変化Δθを計算するために,旋回操作中に慣性計測装置12で検出した角速度ωを時間で積分する。ここで演算したΔθは,後述のS12において,時刻t2のメインアンテナ座標とサブアンテナ座標をそれぞれ旋回中心に対してΔθ分,旋回操作と逆方向に回転操作(座標変換)を行うために利用される。図15を用いて説明したように,回転操作後に得られた時刻t2のメインアンテナ座標とサブアンテナ座標をそれぞれ(x3c,y3c),(x4c,y4c)と置き,これらの座標を第1実施形態の座標13b,14bとみなして第1実施形態と同様の演算を行えば相対角αを演算できる。
S08bでは,操作指示演算部C14は,例えば「走行中に旋回操作が行われたため相対角が低精度のおそれがあります。」というメッセージを表示装置C03に表示する。これにより,下部走行体3の走行動作中に旋回操作が行われたため相対角の演算結果が低精度になる可能性があることをオペレータに報知する。この種のメッセージに代えて,再度較正開始ボタンを押下して較正操作を再実施することをオペレータに促すメッセージを表示装置C03に表示しても良い。
次にS09では,操作指示演算部C14は,S06から表示装置C03に表示していた直進走行指示を非表示にし,オペレータに操作レバー9a,9bによる走行操作を止めることを促す。これに代えて,直進操作を止めることを指示する表示を表示装置C03に表示しても良い。なお,θc,θdの近似精度を向上する目的で,S06の後にS09を実行する条件として,走行操作の入力開始から所定時間が経過したことを設定しても良いし,GNSSの測位結果が所定距離以上変化したことを設定しても良い。これにより十分な走行距離が確保できるためθc,θdの近似精度が向上し,結果的に相対角αの精度も向上する。
走行操作が停止したら,S10にて,S04と同様にGNSSの測位精度の判断を行う。十分な精度の測位が実施されたことを確認したらS11へと遷移する。
S11では,相対角演算部C11は,測位結果を時刻t2(第2時刻)の2本のアンテナ13,14の位置情報として,第2位置情報記憶部A02に記憶する(第2位置記憶処理)。時刻t2における2本のアンテナ13,14の位置情報の記憶が行われたらS12に遷移する。S11まで到達すると,図14の相対角度演算部C11の入力がすべて揃うため,S12の「相対角度演算」の処理に遷移して,相対角度αの演算を実施する。相対角度αの演算については先述の通りなので説明は省略する。
以上のように,本実施形態では,運転室9内に設けた較正開始ボタンの押下をトリガーにして較正モードに入り,相対角αの演算のために相対角度演算部C11で順次行われる処理の中で,走行操作が必要となるタイミングで走行操作の開始を指示する表示と(S06),その後走行操作が不要になったタイミングで走行操作の終了を指示する表示(S09)をすることとした。これにより,これらの表示をみたオペレータによって適切なタイミングで走行操作の開始と終了がなされることが促進されるので,スムーズな較正が可能になるとともに較正精度の向上が期待できる。
また,本実施形態のコントローラ16では,運転室9内のコンソール上の較正開始ボタンを介して較正指示が入力されたときに測位端末15が演算したメインアンテナ13とサブアンテナ14の位置を時刻t1におけるメインアンテナ13とサブアンテナ14の位置13a,14aとして第1位置情報記憶部A01に記憶し(S01),較正指示の入力後に操作装置9c,9dを介して走行操作が入力され,その後に走行操作の入力が停止したときに測位端末15が演算したメインアンテナ13とサブアンテナ14の位置を時刻t2におけるメインアンテナ13とサブアンテナ14の位置13b,14bとして第2位置情報記憶部A02に記憶している(S11)。これにより下部走行体3による走行動作の開始前と終了後の適切なタイミングにおいて,相対角の演算に必要なメインアンテナ13とサブアンテナ14の位置情報を自動的に取得できる。
なお,2本のアンテナ13,14の位置をコントローラ16に記憶するタイミングは,図16のフローのS04,S10で判断したように位置特定品質が「RTK-FIX」のとき,すなわち,測位端末15による測位結果のばらつきが所定の値以下になったときとすることが好ましい。このようにコントローラ16を構成すれば相対角αの精度を向上できる。
また本実施形態のコントローラ16では,較正開始ボタンによる較正指示の入力後(S03)から操作レバー9c,9dによる走行操作の入力が停止するまで(S09)の間,操作レバー9a,9b,9c,9dを利用した操作指示の表示としては,走行操作レバー9c,9dを介した走行操作指示のみを表示することとした(S06)。すなわち表示による操作許可は走行操作のみとした。これにより走行動作中にその他の操作である旋回操作が入力されて相対角αの近似精度が低下することを防止できる。なお,同期間中(S03-S09)に旋回操作を入力しないことを促すメッセージを表示装置C03に表示すれば,較正動作中(走行動作中も含む)に旋回操作がされることを抑制でき相対角の較正精度の確保が促進される。但しこの表示をするのは走行動作が要求されるS06-S09の期間に限っても良い。
<その他>
なお,上記の図10では,時刻t2のショベル(上部旋回体2)の姿勢が,時刻t1の姿勢と比較して右回転している場合(すなわち,走行中に右方向に蛇行した場合)を例示したが,左回転している場合(すなわち,左方向に蛇行する場合)があることはいうまでもなく,この場合も上記と同様の方法で相対角φを演算できる。
本発明は,上記の実施の形態に限定されるものではなく,その要旨を逸脱しない範囲内の様々な変形例が含まれる。例えば,本発明は,上記の実施の形態で説明した全ての構成を備えるものに限定されず,その構成の一部を削除したものも含まれる。また,ある実施の形態に係る構成の一部を,他の実施の形態に係る構成に追加又は置換することが可能である。
上記のコントローラ16に係る各構成や当該各構成の機能及び実行処理等は,それらの一部又は全部をハードウェア(例えば各機能を実行するロジックを集積回路で設計する等)で実現しても良い。また,上記のコントローラ16に係る構成は,演算処理装置(例えばCPU)によって読み出し・実行されることで当該コントローラ16の構成に係る各機能が実現されるプログラム(ソフトウェア)としてもよい。当該プログラムに係る情報は,例えば,半導体メモリ(フラッシュメモリ,SSD等),磁気記憶装置(ハードディスクドライブ等)及び記録媒体(磁気ディスク,光ディスク等)等に記憶することができる。