以下、本発明の実施の形態を図面を参照しつつ説明する。なお、本実施の形態では、作業機械の一例としてクローラ式の下部走行体と上部旋回体とで車体を構成する油圧ショベルを例示して説明するが、例えば、ホイール式油圧ショベルやクレーンのように旋回動作を行う上部旋回体を有する作業機械であれば、油圧駆動型や電動駆動型などの駆動方式によらず本発明の適用が可能である。
<第1の実施の形態>
本発明の第1の実施の形態を図1〜9図を参照しつつ説明する。
図1は本実施の形態に係る作業機械の一例である油圧ショベルの構成を模式的に示す側面図であり、図2は上面図である。
図1において、油圧ショベル1は、上部旋回体3と、前記上部旋回体3の前側に俯仰動可能に支持された多関節型のフロント作業機4と、上部旋回体3を旋回可能に支持する自走可能なクローラ式の下部走行体2とで構成されている。上部旋回体3と下部走行体2は、油圧ショベル1の車体を構成している。
上部旋回体3は、支持構造体をなす旋回フレーム5を有しており、旋回フレーム5の前側にはフロント作業機4の基端部が回動可能に支持されている。また、旋回フレーム5の後側には、フロント作業機4との重量バランスをとるためのカウンタウエイト10が取付けられている。旋回フレーム5の前方左側には、油圧ショベル1を操作するオペレータが乗り込むためのキャブ6が配設されている。
キャブ6内には、オペレータが着座する座席や、フロント作業機4の駆動操作、上部旋回体3の旋回操作、下部走行体2の走行操作などを行う操作装置(いずれも図示せず)のほか、座席に着座したオペレータが見やすい位置であってオペレータによる外部視野の妨げにならない位置に表示装置17が配置されている。
また、カウンタウエイト10の前側には、内部にエンジン、油圧ポンプ、熱交換装置等の搭載機器類(いずれも図示せず)を収容する建屋カバー7が配設されている。建屋カバー7は、旋回フレーム5の左右両側に位置して前後方向に延びた左右の側面板7Aと、各側面板7Aの上端部間を接続する水平方向に延びた上面板7Bとにより大略構成され、建屋カバー7の後側はカウンタウエイト10によって閉塞されている。建屋カバー7の上面板7B上には、建屋カバー7内に収容された搭載機器類を上方から覆うエンジンカバー8が設けられている。
上部旋回体3の前側におけるキャブ6の前側上部と、上部旋回体3の左右それぞれの上部(つまり、建屋カバー7の上面板7Bの左右端部)であって前後方向の中央付近と、カウンタウエイト10の左右中央位置とには、それぞれ、車体近傍を含む車体周囲が撮影範囲となるように配置されたカメラ11a〜11dが設置されている。
図3は、本実施の形態に係る作業機械の周囲表示装置を模式的に示す図である。
図3にいて周囲表示装置は、複数(例えば、本実施の形態では4台)のカメラ11a〜11dと、複数のカメラ11a〜11dによって撮影された映像を表示するモニタ(液晶モニタ)などの表示装置17と、周囲表示装置の全体の動作を制御する制御装置200としてのコントローラ12及びパソコン13とを備えている。なお、本実施の形態においては、コントローラ12及びパソコン13が互いに連携して周囲表示装置の制御装置200としての機能を果たす場合を例示して説明するが、コントローラ12とパソコン13のいずれか一方のみで制御装置200の機能を果たすように構成しても良い。
表示装置17には、各カメラ11a〜11dで撮影された映像や、これらの映像を鉛直上方から撮影したように(つまり、上方視点となるように)視点変換した映像、或いは、各カメラ11a〜11dで撮影した映像18a〜18dを合成処理することで車体の上空から車体と周囲の状況を俯瞰的に撮影した映像(以降、俯瞰映像18と称する)を映し出す画面15が設けられている。図3では、表示装置17の画面15に俯瞰映像18が表示されている場合を例示している。俯瞰映像18は、例えば、俯瞰映像18における自車の形状および大きさを概略的に示す自車アイコン16を中央に配置し、自車アイコン16の上下左右にカメラ11a,11c,11b,11dで撮影した映像を自車が中心となるような上方視点の映像18a,18c,18b,18dにそれぞれ変換して配置することで形成されている。また、コントローラ12には、画面15に映し出される映像の種類を切り替える映像切替スイッチ14が接続されている。
本願発明は上記のように構成した作業機械に適用されるものであり、本実施の形態に係る作業機械の周囲表示装置の制御装置200は、カメラ11a〜11dの映像から表示装置17に表示する映像を生成する映像合成部121と、カメラ11a〜11dに関するキャリブレーションを行うキャリブレーション部100とを有している。
図4は制御装置の映像合成部の処理機能を示す機能ブロック図である。
図4において、映像合成部121は、カメラ11a〜11dによって撮影された映像を記憶する映像記憶部122と、カメラ11a〜11dの取付位置および取付角度を記憶するカメラ取付位置記憶部125と、表示装置17に表示する映像を生成するための複数の生成方法を記憶する結合パターン記憶部123と、映像切替スイッチ14の操作に基づいて結合パターン記憶部123に記憶された複数の生成方法の1つを選択的に設定する結合パターン設定部124と、結合パターン設定部124で設定された生成方法とカメラ取付位置記憶部125に記憶された情報とに基づいて、映像記憶部122に記憶されたカメラ11a〜11dの映像から表示装置17に表示する映像を生成し、表示装置17に出力するカメラ映像結合部126とを有している。
結合パターン記憶部123に記憶されている生成方法としては、例えば、各カメラ11a〜11dの何れか1つの映像をそのまま出力する方法や、各カメラ11a〜11dの何れか1つの映像を上方視点に変換したものを出力する方法、各カメラ11a〜11dの映像を合成して車体の上空から車体と周囲の状況を俯瞰的に撮影した俯瞰映像18を生成し出力する方法などがある。
カメラ取付位置記憶部125には、キャリブレーション部100の補正値算出部111で演算された補正値が入力されており、カメラ取付位置記憶部125には、その補正値が反映されたカメラ11a〜11dの取付位置および取付角度が記憶されている。カメラ映像結合部126では、カメラ取付位置記憶部125に記憶されるカメラ11a〜11dの取付位置および取付角度を用いて表示装置17に表示する映像を生成するので、その精度が高いほど、カメラ映像結合部126で生成される映像の精度が高くなる。例えば、カメラ映像結合部126において、カメラ取付位置記憶部125に記憶されるカメラ11a〜11dの取付位置および取付角度を用いて複数のカメラ11a〜11dでそれぞれ撮影された画像を合成することにより俯瞰映像18を生成する場合には、カメラ取付位置記憶部125に記憶されるカメラ11a〜11dの取付位置および取付角度の精度が高いほど、俯瞰映像18における自車アイコン16の周囲に配置される各映像18a〜18b間のずれ(隣接する映像の境界に沿う方向の位置の誤差)やラップ(隣接する映像の境界に垂直な方向の位置の誤差)が小さくなり、より精度の良い俯瞰映像18となる。
図5Aは、制御装置のキャリブレーション部の処理機能を示す機能ブロック図である。
図5Aにおいて、キャリブレーション部100は、マーカ位置記憶部103、撮影角度算出部104、車体角度判定部105、ガイダンス部106、カメラ指定部107、撮影部108、映像切り出し部109、映像結合生成部110、及び、補正値算出部111の各機能部により構成されている。
キャリブレーション部100は、油圧ショベル1周囲の予め定めた位置に配置したキャリブレーションマーカがカメラ11a〜11dの撮影範囲の予め定めた範囲に入るよう旋回操作をオペレータにガイダンスするガイダンス処理と、撮影した映像中のキャリブレーションマーカを基準点にして各カメラの取付位置誤差や取付角度誤差に起因する各カメラ映像間のラップやずれを補正するための補正値を算出する補正値算出処理とを行い、その補正値を俯瞰映像の生成処理に適用することによってラップやずれを抑制する処理を行う。補正値算出処理では、上部旋回体3の旋回方向に隣接するカメラ11a〜11dの撮影範囲の重複する範囲(画像重複範囲)で撮影したキャリブレーションマーカ203の画像に基づいて各カメラ映像間のラップやずれを補正するための補正値を算出する。また、ガイダンス処理では、画像重複範囲でのキャリブレーションマーカ203の撮影のための旋回操作をオペレータにガイダンスする。
マーカ位置記憶部103は、車体の周囲に配置されたキャリブレーションマーカ203(後の図9等参照)の車体に対する位置を設定するマーカ位置指定部102で設定されたキャリブレーションマーカの位置を記憶している。キャリブレーションマーカ203は、カメラ取付位置記憶部125に記憶されるカメラ11a〜11dの取付位置および取付角度のキャリブレーションに用いられるものである。キャリブレーションマーカ203は、上部旋回体3の旋回方向に隣接するカメラ11a〜11dの撮影範囲の重複する範囲(画像重複範囲)の数(本実施の形態では4つ)よりも少ない数が配置される。本実施の形態では、1つのキャリブレーションマーカ203を配置する場合を例示している。マーカ位置指定部102は、例えば、映像切替スイッチ14とともに表示装置17の操作装置として設けられた他のスイッチやテンキーなどであり、車体に対して設定された座標系におけるキャリブレーションマーカ203の位置やキャリブレーションマーカ203間の距離を直接入力したり、或いは、複数の選択肢から選択的に設定したりするものである。
撮影角度算出部104は、マーカ位置記憶部103およびカメラ取付位置記憶部125に記憶された情報に基づいて、カメラ11a〜11dの撮影範囲の重複する範囲(画像重複範囲)のいずれかにキャリブレーションマーカ203が含まれる場合の上部旋回体3の下部走行体2に対する旋回角度、すなわち、カメラ11a〜11dによる撮影を行う旋回角度(撮影角度)を算出する。各画像重複範囲において少なくとも1回はキャリブレーションマーカ203の撮影が必要であるため、撮影範囲の重複する範囲(画像重複範囲)が複数ある場合には、それぞれについて旋回角度が算出される。本実施の形態においては、1つのキャリブレーションマーカ203を配置し、カメラ11a〜11dの撮影範囲の重複する範囲(画像重複範囲)の数が4つである場合を例示しており、撮影角度算出部104で算出される撮影角度の数は4つとなる。なお、本実施の形態における撮影角度算出部104では、画像重複範囲ごとに旋回角度(撮影角度)を1つの値(例えば、画像重複範囲の上部旋回体3における旋回方向中央にキャリブレーションマーカ203が位置するような旋回角度)として算出する場合を例示する。
車体角度判定部105は、下部走行体2に対する上部旋回体3の旋回角度を検出する旋回角度検出部101(例えば、旋回角度センサ)からの検出結果と撮影角度算出部104の算出結果とに基づいて、カメラ11a〜11dによる撮影を行う旋回角度であるかどうか、すなわち、いずれかの画像重複範囲の上部旋回体3における旋回方向中央にキャリブレーションマーカ203が位置する旋回角度であるかどうかを判定する。
旋回角度検出部101は、下部走行体2の基準方向(例えば、走行に係る油圧モータの位置を後方とした場合の前方)に対する上部旋回体3の基準方向(例えば、キャブ6の正面方向)の相対的な旋回角度を検出するものであり、例えば、角速度計やポテンショメータ等の旋回センサであって、検出結果は−180度以上かつ180度未満の範囲の値をとるものとする。すなわち、下部走行体2と上部旋回体3の基準方向が一致した状態の旋回角度を0(ゼロ)度とし、旋回角度検出部101の検出結果(旋回角度)が正の場合は下部走行体2に対して上部旋回体3が右方向に旋回した状態であり、負の場合は左方向に旋回した状態であるとする。
車体角度判定部105は、例えば、旋回角度検出部101の検出結果(旋回角度)から撮影角度算出部104の算出結果(撮影角度)を除することでその差分を算出し、その差分が予め定めた範囲(すなわち、旋回角度が撮影角度に一致したと判定する範囲)内である場合には、カメラ11a〜11dによる撮影を行う旋回角度であると判定し、その判定結果(旋回角度が撮影角度に一致したとする判定結果)を差分に係る情報(差分情報)とともにガイダンス部106およびカメラ指定部107に出力する。同様に、旋回角度と撮影角度の差分が予め定めた範囲(すなわち、旋回角度が撮影角度に一致したと判定する範囲)の外である場合には、その判定結果(旋回角度が撮影角度に一致していないとする判定結果)を差分情報とともにガイダンス部106およびカメラ指定部107に出力する。なお、旋回角度が撮影角度に一致したと判定する範囲を、画像重複範囲内にキャリブレーションマーカ203が位置する範囲を逸脱しない範囲で広げることによって、車体角度判定部105での判定に柔軟性を持たせることができる。
また、車体角度判定部105は、撮影角度算出部104の算出結果が複数ある場合には、後述する映像結合生成部110から残りの算出結果があるかどうかを確認する信号(問い合わせ信号)に基づいて各算出結果についての判定を順次行う。また、撮影角度算出部104の算出結果の全てにおいて判定が終了している場合には、映像結合生成部110からの問い合わせ信号に対してその旨を知らせる信号を出力する。
車体角度判定部105では、それぞれ、−180度以上かつ180度未満の範囲の値をとる旋回角度検出部101の検出結果(旋回角度)から撮影角度算出部104の算出結果(撮影角度)を除することで差分を算出しており、その差分が−180度以上かつ180度未満の範囲の値をとる場合には、その値をそのまま差分情報として出力する。また、旋回角度から撮影角度を除して得られた差分が−180度未満の場合には、その差分に360度を加算した値を差分情報として出力し、得られた差分が180度以上の場合には、その差分から360度を除した値を差分情報として出力する。すなわち、差分情報は、正(0(ゼロ)を含む)または負の値をとる。
ガイダンス部106は、車体角度判定部105の判定結果および差分情報に基づいた情報をガイダンス画面として表示装置17に表示し、油圧ショベル1のオペレータに上部旋回体3の旋回操作を指示するものである。
図6Aは、キャリブレーション部のガイダンス部の処理機能を示す機能ブロック図である。
図6Aにおいて、ガイダンス部106は、目標旋回方向判定部130、ガイダンス映像作成部131、及び、ガイダンスパターン記憶部132の各機能部により構成されている。
目標旋回方向判定部130は、車体角度判定部105から出力される差分情報が正の値である場合には目標旋回方向を左旋回操作と判定し、負の値である場合には目標旋回方向を右旋回操作と判定する。ガイダンス映像作成部131は、目標旋回方向判定部130の判定結果と、車体角度判定部105からの差分情報とに基づいて、ガイダンスパターン記憶部132に記憶されている文字列や図形等を読み出してガイダンス画面を生成し、表示装置17に出力する。
図8は、ガイダンス部の画面に表示されるガイダンス画面の一例を示す図である。
図8において、ガイダンス画面には、カメラ11a〜11dのキャリブレーションを行うキャリブレーションモードに入ったことを文字列等によってオペレータに報知するキャリブレーションモード表示部50と、上部旋回体3の旋回操作の旋回方向(目標旋回方向)や目標旋回角度(旋回角度と撮影角度が一致するのに必要な旋回の角度:差分情報の絶対値)などの指示内容を文字列等によってオペレータに報知する旋回操作指示表示部51が表示されている。また、図8には、旋回操作指示表示部51の指示内容を図形(例えば、矢印)や残り旋回角度(すなわち、目標旋回角度であって差分情報の絶対値)でオペレータに報知する旋回操作指示補助表示部51aが表示されている。図8の例では、オペレータに右方向への90°の旋回操作を指示している場合を例示している。例えば、この状態からオペレータが右旋回操作を行うと、旋回操作指示表示部51や旋回操作指示補助表示部51aに表示されている目標旋回角度が上部旋回体3の旋回に伴って減少し、旋回角度と撮影角度が一致した場合には目標旋回角度として0(ゼロ)度が表示される。
カメラ指定部107は、車体角度判定部105の判定結果(旋回角度が撮影角度に一致したかどうかの判定結果)と、マーカ位置記憶部103およびカメラ取付位置記憶部125の情報と、旋回角度検出部101の検出結果(旋回角度)とに基づいて、複数のカメラ11a〜11dのうち撮影を行うカメラを決定し、その情報(指定情報)を撮影部108に出力することによって撮影を行うカメラを撮影部108に対して指定する。カメラ指定部107は、車体角度判定部105における旋回角度と撮影角度が一致したとする判定結果(カメラ11a〜11dによる撮影を行う旋回角度であると判定した場合)を契機として、マーカ位置記憶部103の情報から車体に対するキャリブレーションマーカ203の位置を取得し、マーカ位置記憶部103およびカメラ取付位置記憶部125の情報からキャリブレーションマーカ203を撮影範囲に含んでいるカメラ(例えば、後の図9の例ではカメラ11c,11d)を特定し、撮影を行うカメラとして指定する。
撮影部108は、カメラ指定部107からの指定情報が送られてくると、カメラ指定部107により指定情報で指定されたカメラ11a〜11dを駆動して映像を撮影する。カメラ11a〜11dで撮影された映像は、映像切り出し部109に送られる。
映像切り出し部109は、マーカ位置記憶部103およびカメラ取付位置記憶部125の情報と、旋回角度検出部101の検出結果とに基づいて、撮影部108によりカメラ11a〜11dからの得られた映像から、キャリブレーションマーカ203が含まれる範囲(正確には、キャリブレーションマーカ203が含まれると推定される範囲)を切り出して、映像結合生成部110に出力する。映像切り出し部109は、マーカ位置記憶部103の情報から車体に対するキャリブレーションマーカ203の位置を取得し、マーカ位置記憶部103およびカメラ取付位置記憶部125の情報からキャリブレーションマーカ203を撮影範囲に含んでいるカメラ(例えば、後の図9の例ではカメラ11c,11d)を特定し、キャリブレーションマーカ203が含まれる範囲を推定して、その範囲を切り出す。なお、映像切り出し部109が切り出す範囲はキャリブレーションマーカ203が含まれる範囲であれば良く、例えば、カメラ11a〜11dで撮影される映像を左右中央で二分割した場合のいずれか一方を切り出す範囲としても良い。
映像結合生成部110は、映像切り出し部109で切り出した映像をカメラ11a〜11dごとに結合して補正値算出部111で用いるキャリブレーション映像110a〜110d(後の図10等参照)を生成する。映像結合生成部110は、映像切り出し部で切り出した映像の結合処理が終了すると、撮影角度算出部104の算出結果(撮影角度)の全てについて映像の結合処理が終了したかどうかを問い合わせる信号を車体角度判定部105に出力する。撮影角度算出部104の算出結果が複数あり、他の映像の結合処理が必要な場合には、車体角度判定部105は残りの他の算出結果について判定結果をカメラ指定部107に順次出力する。映像結合生成部110は、撮影角度算出部104の算出結果の全てについて判定が終了した旨の信号が車体角度判定部105から出力され、映像の結合処理が終了してキャリブレーション映像110a〜110dの生成処理が終了すると、生成したキャリブレーション映像110a〜110dを補正値算出部111に出力する。
補正値算出部111は、複数のカメラ11a〜11dの取付位置および取付角度の誤差を補正するための補正値をキャリブレーション映像110a〜110dに基づいて算出し、カメラ取付位置記憶部125に出力するものである。
図7Aは、キャリブレーション部の補正値算出部の処理機能を示す機能ブロック図である。
図7Aにおいて、補正値算出部111は、映像取得部112、マーカ位置設定部113、及び、取付誤差算出部114の各機能部により構成されている。
映像取得部112は、映像結合生成部110で生成されたキャリブレーション映像110a〜110dを取得する。マーカ位置設定部113は、映像取得部112で取得されたキャリブレーション映像110a〜110dにおけるキャリブレーションマーカ203の位置を設定する。キャリブレーションマーカ203の位置の設定には、種々の方法が考えられるが、例えば、オペレータがパソコン13の画面及び入力装置を用いてキャリブレーション映像110a〜110d上のキャリブレーションマーカ203の位置を指定したり、或いは、マーカ位置設定部113がキャリブレーション映像110a〜110dからキャリブレーションマーカ203の特徴を検出する機能を有し、その特徴の検出結果から設定したりする場合が考えられる。取付誤差算出部114は、マーカ位置設定部113によって設定されたキャリブレーション映像110a〜110d上のマーカの位置とカメラ取付位置記憶部125に記憶されているカメラ11a〜11dの取付位置および取付角度から取付誤差を算出し、補正値としてカメラ取付位置記憶部125に出力する。
ここで、本実施の形態におけるキャリブレーション映像の生成処理の流れについて説明する。本実施の形態では、上部旋回体3の前後左右にカメラ11a〜11dが配置され、車体の右後方に1つのキャリブレーションマーカ203が配置されている場合を例示している。すなわち、本実施の形態では、カメラ11a〜11dの撮影範囲の重複する範囲は4つとなる。
図9、図11、図13、及び、図15は、キャリブレーション映像の生成処理の流れの一例を示す図であり、上部旋回体の方向とキャリブレーションマーカの位置との関係をそれぞれ示す上面図である。また、図10、図12、図14、及び、図16は、それぞれ、図9、図11、図13、図15の場面におけるキャリブレーション映像を模式的に示す図である。図9、図11、図13、図15においては、上部旋回体3の旋回中心を通って車体の前後方向および左右方向に延びる補助線201,202を示し、車体の前方を方向A、左方向を方向B、後方を方向C、右方向を方向Dと定義する。
例えば、図9に示すように、上部旋回体3が車体の前方(方向A)を向き、車体の右後方(方向C,Dの間)に1つのキャリブレーションマーカ203が配置されている場合を初期状態とする。この場合、カメラ11cの撮影範囲の左側とカメラ11dの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ203が位置している。このとき、車体角度判定部105では、カメラ11c,11dにより撮影する旋回角度であると判定し、カメラ指定部107では、カメラ11c,11dを指定し、映像切り出し部109では、カメラ11cの映像の左側とカメラ11dの映像の右側においてキャリブレーションマーカ203を含む範囲を切り出す。なお、ガイダンス部106において、必要に応じてキャリブレーション映像の生成中であることを示す文字列を表示装置17に表示させるようにしても良い。
このとき、図10に示すように、映像結合生成部110は、映像切り出し部109で切り出した映像を上部旋回体3の後方を撮影するカメラ11cのキャリブレーション映像110cの左側映像110cL、および、上部旋回体3の右方向を撮影するカメラ11dのキャリブレーション映像110dの右側映像110dRとして結合する。
続いて、車体角度判定部105では、撮影角度算出部104の他の算出結果についてキャリブレーション映像110a〜110dの生成を継続する。例えば、図11に示すように、上部旋回体3が車体の左方向(方向B)を向いた状態、すなわち、カメラ11bの撮影範囲の左側とカメラ11cの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ203が位置している状態をキャリブレーション映像110a〜110dの生成を行う次の姿勢とする。このとき、車体角度判定部105では撮影する旋回角度ではないと判定し、ガイダンス部106は、左へ90°旋回するように(すなわち、図9の姿勢から図11の姿勢に旋回するように)オペレータに指示するガイダンス画面を表示装置17に表示する。
オペレータがガイダンス画面の指示に従って上部旋回体3を旋回させ、図11に示す姿勢となると、車体角度判定部105では、カメラ11b,11cにより撮影する旋回角度であると判定し、カメラ指定部107では、カメラ11b,11cを指定し、映像切り出し部109では、カメラ11bの映像の左側とカメラ11cの映像の右側においてキャリブレーションマーカ203を含む範囲を切り出す。なお、ガイダンス部106において、必要に応じてキャリブレーション映像の生成中であることを示す文字列を表示装置17に表示させるようにしても良い。
このとき、図12に示すように、映像結合生成部110は、映像切り出し部109で切り出した映像を上部旋回体3の左方向を撮影するカメラ11bのキャリブレーション映像110bの左側映像110bL、および、上部旋回体3の後方を撮影するカメラ11cのキャリブレーション映像110cの右側映像110cRとして結合する。
続いて、車体角度判定部105では、撮影角度算出部104のさらに他の算出結果についてキャリブレーション映像110a〜110dの生成を継続する。例えば、図13に示すように、上部旋回体3が車体の後方(方向C)を向いた状態、すなわち、カメラ11aの撮影範囲の左側とカメラ11bの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ203が位置している状態をキャリブレーション映像110a〜110dの生成を行う次の姿勢とする。このとき、車体角度判定部105では撮影する旋回角度ではないと判定し、ガイダンス部106は、左へ90°旋回するように(すなわち、図11の姿勢から図13の姿勢に旋回するように)オペレータに指示するガイダンス画面を表示装置17に表示する。
オペレータがガイダンス画面の指示に従って上部旋回体3を旋回させ、図13に示す姿勢となると、車体角度判定部105では、カメラ11a,11bにより撮影する旋回角度であると判定し、カメラ指定部107では、カメラ11a,11bを指定し、映像切り出し部109では、カメラ11aの映像の左側とカメラ11bの映像の右側においてキャリブレーションマーカ203を含む範囲を切り出す。なお、ガイダンス部106において、必要に応じてキャリブレーション映像の生成中であることを示す文字列を表示装置17に表示させるようにしても良い。
このとき、図14に示すように、映像結合生成部110は、映像切り出し部109で切り出した映像を上部旋回体3の前方を撮影するカメラ11aのキャリブレーション映像110aの左側映像110aL、および、上部旋回体3の左方向を撮影するカメラ11bのキャリブレーション映像110bの右側映像110bRとして結合する。
続いて、車体角度判定部105では、撮影角度算出部104のさらに他の算出結果についてキャリブレーション映像110a〜110dの生成を継続する。例えば、図15に示すように、上部旋回体3が車体の右方向(方向D)を向いた状態、すなわち、カメラ11dの撮影範囲の左側とカメラ11aの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ203が位置している状態をキャリブレーション映像110a〜110dの生成を行う次の姿勢とする。このとき、車体角度判定部105では撮影する旋回角度ではないと判定し、ガイダンス部106は、左へ90°旋回するように(すなわち、図13の姿勢から図15の姿勢に旋回するように)オペレータに指示するガイダンス画面を表示装置17に表示する。
オペレータがガイダンス画面の指示に従って上部旋回体3を旋回させ、図15に示す姿勢となると、車体角度判定部105では、カメラ11d,11aにより撮影する旋回角度であると判定し、カメラ指定部107では、カメラ11d,11aを指定し、映像切り出し部109では、カメラ11aの映像の左側とカメラ11aの映像の右側においてキャリブレーションマーカ203を含む範囲を切り出す。なお、ガイダンス部106において、必要に応じてキャリブレーション映像の生成中であることを示す文字列を表示装置17に表示させるようにしても良い。
このとき、図16に示すように、映像結合生成部110は、映像切り出し部109で切り出した映像を上部旋回体3の右方向を撮影するカメラ11dのキャリブレーション映像110dの左側映像110dL、および、上部旋回体3の前方を撮影するカメラ11aのキャリブレーション映像110aの右側映像110aRとして結合する。
以上のように構成した本実施の形態における周囲表示装置の処理の流れについて詳細に説明する。
図5Bはキャリブレーション部全体の処理を示すフローチャートであり、図6Bはガイダンス部のガイダンス処理を示すフローチャートであり、図7Bは補正値算出部の補正値算出処理を示すフローチャートである。
図5Bにおいて、キャリブレーション部100の撮影角度算出部104は、まず、マーカ位置記憶部103に記憶されたキャリブレーションマーカ203の位置に基づいて、画像重複範囲でのキャリブレーションマーカ203の撮影角度を算出する(ステップS100)。本実施の形態では、1つのキャリブレーションマーカ203を4つの画像重複範囲で撮影する場合を例示しており、したがって、撮影角度算出部104では4つの撮影角度が算出される(図9〜図16等参照)。
続いて、車体角度判定部105は、旋回角度検出部101から旋回角度を読み込み(ステップS110)、車体角度と撮影角度算出部104で算出された撮影角度とを比較して(ステップS120)、車体角度が撮影角度であるかどうかを判定する(ステップS130)。
ステップS130での判定結果がNOである場合には、旋回角度が撮影角度となるような旋回操作をオペレータに促すガイダンス処理を行う(ステップS200:図6B)。
図6Bに示すように、ガイダンス処理(ステップS200)において、ガイダンス部106の目標旋回方向判定部130は、車体角度判定部105からの算出結果、すなわち、撮影角度と旋回角度の差分を読み込み(ステップS210)、その差分の正負に基づいて目標旋回方向を判定する(ステップS220)。例えば、撮影角度と旋回角度との差分が90°(正の値)である場合には、目標旋回方向が右方向であると判定する。
続いて、ガイダンス部106のガイダンス映像作成部131は、ステップS220での判定結果に基づいて、ガイダンスパターン記憶部132からガイダンス画面の生成に用いる図形等(例えば、右旋回をオペレータに指示する矢印図形)を読み出し(ステップS230)、旋回方向や旋回角度をオペレータに指示するガイダンス映像(図8参照)を作成し(ステップS240)、作成したガイダンス映像を表示装置に出力する(ステップS250)。ガイダンス映像は、例えば、図8で示したように、右旋回を矢印図形で指示し、数値(ここでは、90°)で旋回角度を指示する。
また、ステップS130での判定結果がYESである場合、すなわち、車体角度判定部105で車体角度が撮影角度であると判定された場合には、カメラ指定部107は、複数のカメラ11a〜11dのうち、画像重複範囲にキャリブレーションマーカ203が含まれるカメラを撮影を行うカメラとして指定する(ステップS140)。本実施の形態においては、例えば、撮影するカメラの指定が初回の場合、図9で説明したようにカメラ11c,11dが指定される。続いて、撮影部108は、ステップS140においてカメラ指定部107で指定されたカメラ11c,11dで撮影を行い(ステップS150)、映像切り出し部109はカメラ11c,11dからの映像を取得して(ステップS160)、キャリブレーションマーカ203が含まれる範囲を切り出す(ステップS170)。
続いて、ステップS170において映像切り出し部109で切り出された画像は、図10で説明したように、キャリブレーション映像110cの左側映像110cL及びキャリブレーション映像110dの右側映像110dRとして結合される(ステップS180)。
ここで、映像結合生成部110は、撮影角度算出部104で算出された全ての撮影角度で撮影を行ったかどうかを判定し(ステップS190)、判定結果がNOの場合には、ステップS200の処理(ガイダンス処理)に戻り、全ての撮影角度での撮影が終了するまでステップS110〜S180の処理を繰り返す。すなわち、例えば、ステップS140でのカメラ指定部107による2回目のカメラの指定においては図11で説明したようにカメラ11b,11cが指定され、ステップS170,S180では図12で説明したように映像切り出し部109で切り出された画像がキャリブレーション映像110bの左側映像110bL及びキャリブレーション映像110cの右側映像110cRとして結合される。同様に、ステップS140でのカメラ指定部107による3回目のカメラの指定においては図13で説明したようにカメラ11a,11bが指定され、ステップS170,S180では図14で説明したように映像切り出し部109で切り出された画像がキャリブレーション映像110aの左側映像110aL及びキャリブレーション映像110bの右側映像110bRとして結合される。また、ステップS140でのカメラ指定部107による4回目のカメラの指定においては図15で説明したようにカメラ11a,11dが指定され、ステップS170,S180では図16で説明したように映像切り出し部109で切り出された画像がキャリブレーション映像110aの右側映像110aR及びキャリブレーション映像110dの左側映像110dLとして結合される。
ステップS190での判定結果がYESの場合、すなわち、撮影角度算出部104で算出された全ての撮影角度で撮影を行った場合には、補正値算出処理を行う(ステップS300:図7B)。
図7Bに示すように、補正値算出処理(ステップS300)において、補正値算出部111の映像取得部112は、映像結合生成部110で生成されたキャリブレーション映像110a〜110dを取得する(ステップS310)。続いて、マーカ位置設定部113は、キャリブレーション映像110a〜110d中のキャリブレーションマーカの位置を設定する(ステップS320)。続いて、取付誤差算出部114は、キャリブレーション映像110a〜110d上のマーカの位置とカメラ取付位置記憶部125に記憶されているカメラ11a〜11dの取付位置および取付角度から取付誤差を算出し(ステップS330)、算出した取付誤差を補正値としてカメラ取付位置記憶部125に出力する(ステップ)。
以上のように構成した本実施の形態における効果を説明する。
作業機械は屋外で使用されることが多く、また、キャリブレーションのマーカを設置するためにはある程度広いスペースが必要になるため、キャリブレーションの実施についても屋外で行われることが多い。しかしながら、屋外でのキャリブレーションを考える場合には、マーカに太陽光のような強い光が当たってカメラへの反射光が強くなると、映像が白飛びしてマーカを確認できなくなってしまう恐れがある。また、複数のマーカを用いる必要があるため、設置の作業工数に関するコストやマーカ自体の取得のためのコストも必要となる。
これに対して本実施の形態においては、1つのキャリブレーションマーカ203を用いてキャリブレーションを行う。また、キャリブレーションにおける一連の流れにおいては、キャリブレーションマーカ203の位置の変更等も行っていない。したがって、例えば、太陽光のような強い光が当たらないようなキャリブレーションマーカ203を配置しなければならない場合にも、1つのキャリブレーションマーカ203についてのみ設置する位置を調整すれば良いため設置が容易であり、設置に係る作業工数を抑制することができる。また、設置すべきキャリブレーションマーカ203が1つであるので、設置の作業工数に関するコストやマーカ自体の取得のためのコストも抑制することができる。すなわち、本実施の形態においては、キャリブレーションにおける耐環境性を向上し、コストを抑制することができる。
<第2の実施の形態>
本発明の第2の実施の形態を図17〜図20を参照しつつ説明する。本実施の形態では第1の実施の形態との相違点についてのみ説明するものとし、図面において第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
本実施の形態は、第1の実施の形態においてキャリブレーションマーカを2つ用いる場合を示すものである。
本実施の形態におけるキャリブレーション映像の生成処理の流れについて説明する。本実施の形態では、上部旋回体3の前後左右にカメラ11a〜11dが配置され、車体の左右後方に1つずつ(合計2つ)のキャリブレーションマーカ204,205がそれぞれ配置されている場合を例示している。すなわち、本実施の形態では、カメラ11a〜11dの撮影範囲の重複する範囲は4つとなる。
図17及び図19は、キャリブレーション映像の生成処理の流れの一例を示す図であり、上部旋回体の方向とキャリブレーションマーカの位置との関係をそれぞれ示す上面図である。また、図18及び図20は、それぞれ、図17及び図19の場面におけるキャリブレーション映像を模式的に示す図である。図17及び図19においては、上部旋回体3の旋回中心を通って車体の前後方向および左右方向に延びる補助線201,202を示し、車体の前方を方向A、左方向を方向B、後方を方向C、右方向を方向Dと定義する。
例えば、図17に示すように、上部旋回体3が車体の前方(方向A)を向き、車体の左右後方(方向B,Cの間、及び、方向C,Dの間)に1つずつのキャリブレーションマーカ204,205が配置されている場合を初期状態とする。この場合、カメラ11bの撮影範囲の左側とカメラ11cの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ204が位置し、また、カメラ11cの撮影範囲の左側とカメラ11dの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ205が位置している。このとき、車体角度判定部105では、カメラ11b,11c,11dにより撮影する旋回角度であると判定し、カメラ指定部107では、カメラ11b,11c,11dを指定し、映像切り出し部109では、カメラ11bの映像の左側とカメラ11cの映像の右側においてキャリブレーションマーカ204を含む範囲を切り出し、カメラ11cの映像の左側とカメラ11dの映像の右側においてキャリブレーションマーカ205を含む範囲を切り出す。なお、ガイダンス部106において、必要に応じてキャリブレーション映像の生成中であることを示す文字列を表示装置17に表示させるようにしても良い。
このとき、図18に示すように、映像結合生成部110は、映像切り出し部109で切り出した映像を上部旋回体3の左方向を撮影するカメラ11bのキャリブレーション映像110bの左側映像110bL、上部旋回体3の後方を撮影するカメラ11cのキャリブレーション映像110cの右側映像110cR、上部旋回体3の後方を撮影するカメラ11cのキャリブレーション映像110cの左側映像110cL、および、上部旋回体3の右方向を撮影するカメラ11dのキャリブレーション映像110dの右側映像110dRとして結合する。
続いて、車体角度判定部105では、撮影角度算出部104の他の算出結果についてキャリブレーション映像110a〜110dの生成を継続する。例えば、図19に示すように、上部旋回体3が車体の後方(方向C)を向いた状態、すなわち、カメラ11dの撮影範囲の左側とカメラ11aの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ204が位置し、また、カメラ11aの撮影範囲の左側とカメラ11bの撮影範囲の右側が重複し、かつ、その重複範囲にキャリブレーションマーカ205が位置している状態をキャリブレーション映像110a〜110dの生成を行う次の姿勢とする。このとき、車体角度判定部105では撮影する旋回角度ではないと判定し、ガイダンス部106は、左(又は右)へ180°旋回するように(すなわち、図17の姿勢から図19の姿勢に旋回するように)オペレータに指示するガイダンス画面を表示装置17に表示する。
オペレータがガイダンス画面の指示に従って上部旋回体3を旋回させ、図19に示す姿勢となると、車体角度判定部105では、カメラ11a,11b,11dにより撮影する旋回角度であると判定し、カメラ指定部107では、カメラ11a,11b,11dを指定し、撮影部108ではカメラ指定部107で指定されたカメラ11a,11b,11dを駆動して映像を撮影するとともに映像切り出し部109に出力し、映像切り出し部109では、カメラ11dの映像の左側とカメラ11aの映像の右側においてキャリブレーションマーカ204を含む範囲を切り出し、カメラ11aの映像の左側とカメラ11bの映像の右側においてキャリブレーションマーカ205を含む範囲を切り出す。なお、ガイダンス部106において、必要に応じてキャリブレーション映像の生成中であることを示す文字列を表示装置17に表示させるようにしても良い。
このとき、図20に示すように、映像結合生成部110は、映像切り出し部109で切り出した映像を上部旋回体3の右方向を撮影するカメラ11dのキャリブレーション映像110dの左側映像110dL、上部旋回体3の前方を撮影するカメラ11aのキャリブレーション映像110aの右側映像110aR、上部旋回体3の前方を撮影するカメラ11aのキャリブレーション映像110aの左側映像110aL、および、上部旋回体3の左方向を撮影するカメラ11bのキャリブレーション映像110bの右側映像110bRとして結合する。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても第1の実施の形態と同様の効果を得ることができる。
<第3の実施の形態>
本発明の第3の実施の形態を図21及び図22を参照しつつ説明する。本実施の形態では第1の実施の形態との相違点についてのみ説明するものとし、図面において第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
本実施の形態は、第1の実施の形態において、オペレータによる上部旋回体3の旋回操作をアシストする半自動制御を行うものである。
図21は、制御装置のキャリブレーション部の処理機能を示す機能ブロック図である。また、図22は、上部旋回体の旋回制御に係る処理機能を旋回制御部とともに抜き出して示す機能ブロック図である。
図21において、キャリブレーション部100Aは、マーカ位置記憶部103、撮影角度算出部104、車体角度判定部105、ガイダンス部106、カメラ指定部107、撮影部108、映像切り出し部109、映像結合生成部110、補正値算出部111、及び、旋回制御判定部140の各機能部により構成されている。
車体角度判定部105は、下部走行体2に対する上部旋回体3の旋回角度を検出する旋回角度検出部101からの検出結果と撮影角度算出部104の算出結果とに基づいて、カメラ11a〜11dによる撮影を行う旋回角度であるかどうか、すなわち、いずれかの画像重複範囲の上部旋回体3における旋回方向中央にキャリブレーションマーカ203が位置する旋回角度であるかどうかを判定する。
車体角度判定部105は、例えば、旋回角度検出部101の検出結果(旋回角度)から撮影角度算出部104の算出結果(撮影角度)を除することでその差分を算出し、その差分が予め定めた範囲(すなわち、旋回角度が撮影角度に一致したと判定する範囲)内である場合には、カメラ11a〜11dによる撮影を行う旋回角度であると判定し、その判定結果(旋回角度が撮影角度に一致したとする判定結果)を差分に係る情報(差分情報)とともにガイダンス部106、カメラ指定部107、及び、旋回制御判定部140に出力する。
旋回制御判定部140は、車体角度判定部105の判定結果に基づいて、オペレータによる上部旋回体3の旋回操作をアシストする半自動制御を行うものである。具体的には、旋回制御判定部140は、車体角度判定部105によってカメラ11a〜11dによる撮影を行う旋回角度であると判定された場合(すなわち、旋回角度が撮影角度に一致したと判定された場合)に、上部旋回体3の旋回動作を制限して停止させる状態であると判定し、旋回制御部141に上部旋回体3の旋回動作を制限して停止させる指示信号を出力する。これにより、車体角度判定部105で上部旋回体3の旋回角度が撮影角度の範囲内であると判定された場合に旋回制御部141を制御して、下部走行体2に対する上部旋回体3の旋回動作を制限して停止させる。
旋回制御部141は、下部走行体2に対する上部旋回体3の旋回動作を制御するものである。旋回制御部141には、操作系圧力生成部151(例えば、エンジンなどにより駆動されるパイロットポンプ)によって生成されたパイロット圧を元に旋回操作部152(例えば、キャブ6に配置された操作装置)で生成された旋回操作のパイロット圧(旋回操作信号)が入力される。また、上部旋回体3を旋回駆動する旋回動力部155(例えば、旋回油圧モータ)には、出力制御部154(例えば、コントロールバルブ)を介した動力系圧力生成部153(例えば、エンジンなどの原動機により駆動される油圧ポンプ)によって生成され作動油が供給されている。出力制御部154は、旋回制御部141を介して入力されるパイロット圧(旋回操作信号)に基づいて、動力系圧力生成部153から旋回動力部155に供給される作動油の流量および方向を制御する。旋回制御部141は、旋回制御判定部140からの指示信号に基づいて、旋回操作部152から出力制御部154に入力される旋回操作信号を制限することにより、上部旋回体3の旋回動作を制限(遮断)して停止させる。
なお、車体角度判定部105から得られる旋回角度検出部101の検出結果と撮影角度算出部104の算出結果の差分の大きさに応じて旋回動作の制限度合いを調整しても良い。例えば、算出結果の差分が小さくなるのに従って旋回動作の制限を強くしていき、差分が0(ゼロ)になった場合(或いは、予め定めた範囲となった場合)に旋回動作を停止させるようにしても良い。これにより、オペレータによる旋回操作での上部旋回体3の位置調整の負担を軽減することができる。
なお、本発明は上記の各実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内の様々な変形例や組み合わせが含まれる。
例えば、複数のカメラ11a〜11dからの映像からキャリブレーションマーカ203を検出するマーカ検出部を制御装置200に新たに備え、撮影角度算出部104がマーカ検出部の検出結果に基づいて、複数のカメラ11a〜11dの撮影範囲が重複する範囲に前記キャリブレーションマーカ203が入る上部旋回体3の旋回角度を算出するように構成してもよい。また、このとき、カメラ指定部107は、マーカ検出部の検出結果に基づいて、複数のカメラ11a〜11dのうち撮影を行うカメラを指定するように構成すれば良い。
また、補正値算出部111において、入力されるキャリブレーション映像におけるキャリブレーションマーカ203の撮影状態から補正値の算出が実行可能かどうかを判定し、判定結果をガイダンス部106等を介して表示装置17に表示し、キャリブレーションの可否をオペレータに報知する映像判定部を備えて構成しても良い。
次に上記の各実施の形態の特徴について説明する。
(1)上記の実施の形態では、下部走行体2と、前記下部走行体に対して旋回可能に設けられた上部旋回体3と、前記下部走行体に対する前記上部旋回体の旋回角度を検出する旋回角度検出部101と、前記上部旋回体に配置され、前記下部走行体と前記上部旋回体とにより構成された車体の周囲を撮影する複数のカメラ11a〜11dと、前記複数のカメラによって撮影された映像を表示する表示装置17と、前記複数のカメラの取付位置および取付角度を記憶するカメラ取付位置記憶部125、前記カメラ取付位置記憶部に記憶された前記複数のカメラの取付位置及び取付角度に基づいて、前記複数のカメラによってそれぞれ撮影された映像を合成して合成映像を生成し、前記表示装置に出力するカメラ映像結合部126、及び、前記複数のカメラの取付位置および取付角度の誤差を補正するための補正値を、前記複数のカメラによって撮影されたキャリブレーションマーカ203を含む映像に基づいて算出し、前記カメラ取付位置記憶部に出力する補正値算出部111を有する制御装置(例えば、コントローラ12及びパソコン13により構成された制御装置200)とを備えた作業機械(例えば、油圧ショベル1)において、前記制御装置は、前記キャリブレーションマーカの前記車体に対する予め設定された位置を記憶するマーカ位置記憶部103と、前記マーカ位置記憶部に記憶された前記キャリブレーションマーカの位置及び前記カメラ取付位置記憶部に記憶された前記複数のカメラの取付位置及び取付角度に基づいて、前記複数のカメラの撮影範囲の予め定めた範囲に前記キャリブレーションマーカが入るような前記上部旋回体の旋回角度の範囲である撮影角度を算出する撮影角度算出部104と、前記旋回角度算出部で検出した前記上部旋回体の旋回角度が前記撮影角度算出部で算出した前記撮影角度の範囲内であるかどうかを判定する車体角度判定部105と、前記車体角度判定部の判定結果に基づいた情報を前記表示装置に表示して前記作業機械の操作者に前記上部旋回体の旋回操作を指示するガイダンス部106と、前記車体角度判定部で前記上部旋回体の旋回角度が前記撮影角度の範囲内であると判定された場合に、前記複数のカメラのうち前記キャリブレーションマーカの撮影を行う前記カメラを決定し、その情報を指定情報として出力するカメラ指定部107と、前記カメラ指定部から前記指定情報が出力されると、前記指定情報で指定された前記カメラからの映像を取得する撮影部108とをさらに備えたものとした。
これにより、キャリブレーションにおける耐環境性を向上し、コストを抑制することができる。
(2)また、上記の実施の形態では、(1)の作業機械(例えば、油圧ショベル1)において、前記制御装置200は、前記複数のカメラ11a〜11dからの映像から前記キャリブレーションマーカ203を検出するマーカ検出部をさらに備え、前記撮影角度算出部104は、前記マーカ検出部によって前記キャリブレーションマーカが前記複数のカメラの撮影範囲の予め定めた範囲に入ったことを検知した場合に、その時の前記上部旋回体3の旋回角度に基づいて、前記撮影角度を算出しするものとした。
(3)また、上記の実施の形態では、(1)の作業機械(例えば、油圧ショベル1)において、前記制御装置200は、前記撮影部で取得した前記カメラ11a〜11dの映像から前記キャリブレーションマーカ203を含む所定の範囲を切り出す映像切り出し部109をさらに備え、前記カメラ映像結合部126は、前記映像切り出し部で切り出した映像を前記複数のカメラのそれぞれについて結合し、前記補正値算出部111で用いるキャリブレーション映像を前記複数のカメラのそれぞれについて生成する映像結合生成部110とを備え、前記補正値算出部は、前記映像結合生成部で生成された前記キャリブレーション映像を用いて前記補正値を算出するものとした。
(4)また、上記の実施の形態では、(1)の作業機械(例えば、油圧ショベル1)において、前記補正値算出部111は、前記キャリブレーションマーカ203の撮影状態から前記補正値の算出が実行可能かどうかを判定し、実行不可であると判定された場合に前記判定結果を前記表示装置17に表示して、オペレータに前記補正値の算出が出来ないことを報知する映像判定部を備えたものとした。
(5)また、上記の実施の形態では、(1)の作業機械(例えば、油圧ショベル1)において、前記下部走行体に対する前記上部旋回体の旋回動作を制御する旋回制御部141をさらに備え、前記制御装置200は、前記車体角度判定部で前記上部旋回体の旋回角度が前記撮影角度の範囲内であると判定された場合に前記旋回制御部を制御して、前記下部走行体2に対する前記上部旋回体の旋回動作を制限して停止させる旋回制御部141をさらに備えたものとした。
<付記>
なお、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内の様々な変形例や組み合わせが含まれる。また、本発明は、上記の実施の形態で説明した全ての構成を備えるものに限定されず、その構成の一部を削除したものも含まれる。また、上記の各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等により実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。