以下、本発明の実施の形態を図面を参照しつつ説明する。
なお、本実施の形態では、作業機械の一例として、作業装置(作業機)を備える油圧ショベルを例示して説明するが、例えば、ホイールローダなどのほか、ロードローラなどの道路機械やクレーンなどにも本発明を適用することが可能である。
<第1の実施の形態>
本発明の第1の実施の形態を図1~図10を参照しつつ詳細に説明する。
図1は、本実施の形態に係る作業機械の一例である油圧ショベルの外観を模式的に示す側面図である。
図1において、油圧ショベル1は、垂直方向にそれぞれ回動する複数の被駆動部材(ブーム13、アーム14、バケット(作業具)15)を連結して構成された多関節型のフロント作業機12と、車体を構成する上部旋回体11および下部走行体10とを備え、上部旋回体11は下部走行体10に対して旋回可能に設けられている。
フロント作業機12のブーム13の基端は上部旋回体11の前部に垂直方向に回動可能に支持されており、アーム14の一端はブーム13の先端に垂直方向に回動可能に支持されており、アーム14の他端にはバケットリンク15aを介してバケット15が垂直方向に回動可能に支持されている。
ブーム13、アーム14、バケット15、上部旋回体11、および下部走行体10は、油圧アクチュエータであるブームシリンダ16、アームシリンダ17、バケットシリンダ18、旋回油圧モータ19、および左右の走行油圧モータ10a,10bによりそれぞれ駆動される。なお、図1においては、左側の走行油圧モータ10aのみを図示し、右側の走行油圧モータ10bはその符号を括弧書きで示して図示を省略する。走行油圧モータ10a,10bは、左右一対のクローラをそれぞれ駆動することで移動装置として機能する。
上部旋回体11の前部のフロント作業機12の左側には、オペレータ(操作者)が搭乗する運転室20が配置されている。運転室20には、フロント作業機12の油圧アクチュエータ16~18及び上部旋回体11の旋回油圧モータ19を操作するための操作信号を出力する操作レバー22、下部走行体10の左右の走行油圧モータ10a,10bを操作するための操作信号を出力する走行レバー(図示せず)、オペレータに車体情報などの各種情報を伝達するための出力装置であるモニタ23、及び、ゲートロックレバー(図示せず)などが配置されている。
フロント作業機12のブーム13、アーム14、及びバケット15の回動軸には姿勢検出装置であるブーム角度センサ24、アーム角度センサ25、及びバケット角度センサ26がそれぞれ取り付けられている。ブーム角度センサ24、アーム角度センサ25、及びバケット角度センサ26は、例えば、ブーム13、アーム14、及びバケット15の回動軸における相対角度を検出するものである。ブーム角度センサ24、アーム角度センサ25、及びバケット角度センサ26の検出結果(相対角度)から、例えば、車体座標系におけるブーム13、アーム14、及びバケット15の回動角度を算出可能である。また、上部旋回体11には、上部旋回体11の旋回角速度を検出する旋回ジャイロスコープ27と、上部旋回体11の前後方向の傾斜角度を検出する傾斜センサ28とが設けられている。
なお、ブーム角度センサ24やアーム角度センサ25、バケット角度センサ26、旋回ジャイロスコープ27、傾斜センサ28には、慣性計測装置(IMU:Inertial Measurement Unit)を用いても良い。
ブームシリンダ16には、負荷検出装置として、ブームシリンダ16のボトム圧を検出するブームボトム圧センサ29と、ロッド圧を検出するブームロッド圧センサ30とが設けられている。同様に、アームシリンダ17には、負荷検出装置として、アームシリンダ17のボトム圧を検出するアームボトム圧センサ31と、ロッド圧を検出するアームロッド圧センサ32とが設けられている。
上部旋回体11には、上部旋回体11の前方を撮像する前方カメラ35、左側方を撮像する左側方カメラ36、右側方を撮像する右側方カメラ37、及び、後方を撮像する後方カメラ38が設けられている。
また、上部旋回体11には、油圧ショベル1の全体の動作を制御するコントローラ(制御装置)21が配置されている。コントローラ21は、図示を省略するが、ハードウェア構成として、入力部と、プロセッサである中央処理装置(CPU)と、記憶装置であるリードオンリーメモリ(ROM)及びランダムアクセスメモリ(RAM)と、出力部とを有している。入力部は、操作レバー22からの信号、角度センサ24~26や旋回ジャイロスコープ27、傾斜センサ28からの信号、各カメラ35~38からの信号などを入力し、A/D変換を行う。ROMは、後述する図4や図8A,図8Bなどのフローチャートを実行するための制御プログラムと、当該フローチャートの実行に必要な各種情報等が記憶された記録媒体であり、CPUは、ROMに記憶された制御プログラムに従って入力部及びメモリから取り入れた信号に対して所定の演算処理を行う。出力部は、CPUでの演算結果に応じた出力用の信号を作成し、その信号をモニタ23などに出力することで、車体周囲の障害物の位置情報や接触警報をモニタ23の表示画面上に表示させる。なお、コントローラ21は、記憶装置としてROM及びRAMという半導体メモリを例示したが、記憶装置であれば特に代替可能であり、例えばハードディスクドライブ等の磁気記憶装置を備えても良い。
図2は、コントローラの処理機能を示す機能ブロック図である。
図2において、コントローラ21は、センサ24~32の検出結果に基づいて、油圧ショベル1が行っている作業状況を判別する作業状況判別部50と、カメラ35~38で撮像された画像を取得して油圧ショベル1の周囲の障害物の有無を判別するとともにその位置を認識する周囲障害物認識部51と、作業状況判別部50の判別結果に基づいて周囲障害物認識部51の処理で用いる各種情報を設定あるいは変更する障害物認識処理変更部55と、作業状況判別部50の判別結果と周囲障害物認識部51の認識結果とに基づいて障害物との接触の可能性を判断するとともに警報を出力するか否か判定し、必要に応じて警報等を出力する警報出力部56とを有している。
周囲障害物認識部51は、カメラ35~38から出力される画像を取得し、予め設定された複数の範囲の画像を切り出す処理を行う画像取得部52と、画像取得部52で切り出された複数の画像のそれぞれに対して色や明るさの変化に関連する特徴量を抽出し、抽出した特徴量と予め定められたテンプレートとを比較して障害物の有無を判別する障害物判別部53と、障害物判別部53の判別結果に基づいて障害物の位置を認識する障害物位置認識部54とを有している。
図3は、油圧ショベルの作業状況の一例を示す概観図である。
図3においては、油圧ショベル1により溝成型作業を行う場合を例示している。溝成型作業では、油圧ショベル1は、地面を掘削してバケット15の内部に土砂を充填する掘削作業と、掘削作業後に上部旋回体11を旋回して集積土砂4の上にバケット15を移動する運搬作業と、運搬作業後にバケット15に充填された土砂を集積土砂4の上に放出する放土作業と、放土作業後に成型中の溝へバケット15を移動するリーチング作業との4種類の作業を一連のサイクルとして繰り返し、溝を成型する。このとき、油圧ショベル1の周囲には作業員5a,5bや構造物6等の障害物が存在することがあり、運搬作業やリーチング作業に伴う上部旋回体11の旋回動作時等に、カメラ35~38により周囲の障害物を常に監視し、接触の可能性がある場合に油圧ショベル1の操作者に対して警報を出力することで接触事故を防止している。
図4は、周囲障害物認識部の処理内容を示すフローチャートである。また、図5A~図5Fは、周囲障害物認識部の障害物判別部における障害物判別の一例として作業員判別の基本原理を説明する図である。
図4に示すステップS100~S112の処理は、コントローラ21において予め定められたサンプリング毎に実行される。また、ステップS100~S112の処理は、複数のカメラ36~38からの画像データに対してそれぞれ行われる。
図4において、コントローラ21の周囲障害物認識部51は、画像取得部52において複数のカメラ35~38のうちの1つのカメラ(例えば、カメラ35)からの画像データを取得し、予めコントローラ21に設定されている範囲の画像を切り出して出力する(ステップS100)。続いて、障害物判別部53において画像を切り出して複数のリサイズ画像を生成する(ステップS101)。カメラ35~38の撮像画像の上部は、油圧ショベル1の遠方や標高が高い物体が撮像されており、油圧ショベル1がこのような位置の障害物と接触する可能性は低いので、処理能力向上の観点から障害物認識の対象外として除外するために画像の切り出すリサイズ処理を行う。リサイズ処理では、元の画像に対して、例えば、1/1.1、1/1.2、1/1.4、・・・のように予め定められた倍率となるような画像を複数生成する。
続いて、リサイズ処理で生成された画像を順番に処理するため、複数のリサイズ画像から1つを選択し(ステップS102)、予め設定されている走査ウィンドウの大きさとなるように選択された画像の一部を切り出す(ステップS103)。なお、走査ウィンドウによる画像の切り出しは、選択された画像の端から端まで全ての範囲が対象となるように順番に行う。図5A及び図5Bは、図3に示した立位の作業員5aと歩行中の作業員5bとがそれぞれ写っている範囲に設定された走査ウィンドウで画像を切り出した様子を示している。
続いて、ステップS103で切り出された画像に対し、予め設定されている大きさのセルに画像を分割する(ステップS104)。図5C及び図5Dに示すように、走査ウィンドウにより切り出された画像に対し、網目のように画像をセルに分割する。
続いて、セルに分割された領域内のHOG(Histogram of Oriented Gradients)特徴量を算出する(ステップS105)。HOG特徴量は、セル内の画素における輝度の勾配方向のヒストグラムを算出し、周囲の予め定められた範囲の複数のセルであるブロック内で正規化したものである。図5E及び図5Fは、HOG特徴量を可視化したものであり、セルの輝度の勾配方向(角度)毎に線をプロットしており、線が太くなるほど度数が高いことを示している。図5E及び図5Fに示すように、HOG特徴量は大まかな輪郭を輝度の勾配方向(角度)の度数として数値化したものとみることができる。
続いて、ステップS105で算出されたHOG特徴量を用いて、障害物の識別を行う(ステップS106)。障害物の識別では、図5E及び図5Fに太枠で示したセルのように走査ウィンドウ内の予め設定されたセルのHOG特徴量を抽出し、障害物ごとに予め定められたテンプレートと比較することで、セルごとに障害物との適合度を算出する。そして、走査ウィンドウ内における適合度の合算を求める。
続いて、ステップS106で合算した適合度が、各障害物のテンプレートごとに予め定められた閾値より大きいか否かを判定する(ステップS107)。図5E及び図5Fに示すように、立位の作業員と歩行中の作業員とのHOG特徴量はどちらも同じような傾向を示しており、作業員についてのテンプレートとの適合度の合算はどちらも大きいものとなり、どちらの走査ウィンドウにおいても人が存在すると認識することができる。なお、図5A~図5Fにおいては、作業員5a,5bの識別方法を例示して説明しているが、識別する対象は作業員に限定されず、例えば、作業現場に存在する三角コーン等の道具等でもよく、その場合はステップS106及びステップS107において、識別対象に対して予め設定された複数のテンプレートとの比較を行えばよい。
ステップS107での判定結果がYESの場合、すなわち、障害物があると判定された場合には、障害物が識別されたとして、障害物の種別、適合度、走査ウィンドウの位置、リサイズされた画像の大きさを一時データとして蓄積し(ステップS108)、ステップS109の処理に進む。また、ステップS107での判定結果がNOの場合、すなわち、傷害物が無いと判定された場合には、そのままステップS109に進む。
続いて、ステップS109では、ステップS102で選択された、リサイズ画像に対し予め設定されている走査が全て完了しているか否かを判定し(ステップS109)、判定結果がNOの場合には、判定結果がYESになるまで、走査ウィンドウの位置をずらした後にステップS103~S108の処理を繰り返す。
また、ステップS109での判定結果がYESの場合、すなわち、走査が完了している場合には、続いて、リサイズ処理で生成された複数の画像の全てに対して処理が完了しているか否か判定し(ステップS110)、判定結果がNOの場合には、判定結果がYESになるまで、処理の終了していない他のリサイズ画像を選択してステップS102~S109の処理を繰り返す。
また、ステップS110での判定結果がYESの場合、すなわち、全てのリサイズ画像に対して処理が終了している場合には、ステップS108で蓄積された障害物の識別データを統合する(ステップS111)。ステップS104~S107における識別では、同一の障害物が異なる走査ウィンドウやリサイズ画像において識別される可能性がある。そこで、障害物の種別が等しく、かつ走査ウィンドウの位置が予め定められた距離以内で識別された結果が複数ある場合は、最も適合度が大きかった識別結果のみを残し、その他の識別結果は除去する。
続いて、障害物位置認識部54において、ステップS111で統合された障害物識別データから障害物の位置を抽出して出力する(ステップS112)。ステップS112では、障害物が識別された際の走査ウィンドウの位置に基づきカメラ35~38に対する障害物の方向を演算し、リサイズ画像の倍率に基づいてカメラ35~38に対する障害物の距離を演算し、方向と距離から障害物の位置を出力する。
ステップS112において、障害物の位置情報を推定した後は、処理をステップS100に戻し、再度画像の取得から障害物の識別を行い、油圧ショベル1の周囲の障害物の監視を続行する。
なお、図4及び図5では、画像により物体認識の手法としてHOG特徴量を用いた手法を例示して説明したが、他の手法であってもよく、例えば、顔認識等に用いられるHaar-like特徴量を用いた異なる認識手法を用いてもよい。
図6A~図6Cは、作業機械が作業を実施している最中のカメラ画像を模式的に示す図であり、図6Aは停止中、図6Bは掘削作業中、図6Cは運搬作業中やリーチング作業中におけるカメラ画像をそれぞれ示している。また、図7A及び図7Bは、作業中の作業機械に対する障害物の認識範囲の変更内容例を示す上面図であり、図7Aは掘削作業や報土作業における認識範囲の例を、図7Bは運搬作業やリーチング作業における認識範囲の例をそれぞれ示している。
図6Aに示すように、油圧ショベル1が停止中に撮像された場合は、撮像画像内の輪郭が明確であり、図4及び図5で示したHOG特徴量による障害物の識別が容易に行える。
一方で、図6Bに示すように、油圧ショベル1が掘削作業を行っている最中は、掘削による負荷の影響で油圧ショベル1が上下に振動し、カメラ35~38で撮像した画像は上下にぶれたような画像となることが考えられる。この場合、図4及び図5で示したHOG特徴量による障害物の識別において、画像に対して左右方向の輝度の変化が不明瞭になり、HOG特徴量のヒストグラムの度数が、停止時の撮像画像と比較し変化する。そのため、図4のステップS106,S107における障害物の識別が正しく実施できない可能性がある。
さらに、図6Cに示すように、油圧ショベル1が運搬作業やリーチング作業を行っている最中は、上部旋回体の旋回の影響でカメラ35~38が横方向に高速に移動し、カメラ35~38で撮像した画像は、左右にぶれたような画像となることが考えられる。この場合、図4及び図5で示したHOG特徴量による障害物の識別において、画像に対し上下方向の輝度の変化が不明瞭になり、HOG特徴量のヒストグラムの度数が、停止時の撮像画像と比較し変化する。そのため、図4のステップS106,S107における障害物の識別が正しく実施できない可能性がある。
図4のステップS107における障害物識別における適合度の合算に対する閾値を下げることにより、障害物の認識の見逃しを低減できる可能性があるが、閾値を下げることにより誤認識が増えてしまう可能性が増える。そこで、本願発明においては、図6Bのような場合は上下方向の輝度変化を主として用いたHOG特徴量による障害物の識別を行い、図6Cのような場合は左右方向の輝度変化を主として用いたHOG特徴量による障害物の識別を行うように切り替えることで、作業機械の作業状況毎に適した処理を実施することができ、自車両周囲の障害物を精度よく認識することができる。
図7A及び図7Bでは、油圧ショベル1と障害物の接触の可能性があると判定し、警報出力部56により警報を出力すべき接触判定領域を示している。
図7Aに示すように、油圧ショベル1が掘削作業、または放土作業を実施している場合、上部旋回体11は旋回しておらず、油圧ショベル1の操作者が旋回を指示する操作を実施してもフロント作業機12が直ちに左右へ移動しないので、接触の可能性があると判定すべき領域は、フロント作業機12の左右において認識範囲を大きくとり、その他の認識範囲は小さくとる。この場合、前方カメラ35における認識範囲を拡大し、カメラ36~38の認識範囲は通常の領域とする。
一方で、図7Bに示すように、油圧ショベル1が運搬作業、又はリーチング作業を実施している場合、上部旋回体11が旋回しており、警報が出力され直ちに旋回の停止を指示しても上部旋回体11の慣性のためにフロント作業機12は移動し続けてしまうので、接触の可能性があると判定すべき領域は、フロント作業機12の旋回方向において認識範囲を大きくとり、さらに、旋回方向の油圧ショベル1の側方の認識範囲も大きくとる。この場合、前方カメラ35における旋回方向の認識範囲を拡大し、さらに旋回方向にある左側方カメラ36の一部の認識範囲を拡大する。また、認識範囲を拡大した領域では、フロント作業機12と障害物の接触の可能性が高く、より早期に警報を出力する必要があるため、カメラ35~37の取得画像を高速に取得する。
図8A及び図8Bは、作業状況判別部、障害物認識処理変更部、及び、周囲障害物認識部の条件設定処理に係る処理内容を示すフローチャートである。また、図9は、作業状況の判別に用いる油圧ショベルの姿勢と負荷の関係の一例を示す図である。
作業状況判別部50は、油圧ショベル1の作業状況を判別し、障害物認識処理変更部55は、作業状況判別部50での判別結果に基づいて、周囲障害物認識部51(画像取得部52、障害物判別部53、障害物位置認識部54)の外界センサの環境情報の取り込み条件、自車周囲の障害物の有無の判別条件、及び障害物の位置の認識条件の少なくとも何れか1つの条件を設定又は変更する。
図8A及び図8Bに示すステップS200~S233の処理は、コントローラ21において予め定められたサンプリング毎に実行される。また、コントローラ21内のメモリには、油圧ショベル1の作業状況を示す変数が内部に保持されており、作業状況の初期状態(初期値)はリーチング作業である。
図8A及び図8Bにおいて、コントローラ21の作業状況判別部50は、まず、作業状況がリーチング作業であるか否かと、1サンプリング前のアームボトム圧センサ31の出力が予めメモリに設定されている掘削開始閾値Pthより小さいか否かと、現在のアームボトム圧センサ31の出力が掘削開始閾値Pthより大きいか否かとを判定する(ステップS200~S202)。油圧ショベル1はアームシリンダ17を押し出して掘削するため、図9に示すように、アームシリンダボトム圧は掘削している間に大きくなるので、アームボトム圧が掘削開始閾値Pthより上回った場合に掘削作業を開始したと判断することができる。
ステップS200~S202の判定結果の何れか1つでもNOの場合、すなわち、掘削作業の開始が判定されなかった場合には、ステップS207の処理に進む。また、ステップS200~202の判定結果が全てYESの場合、すなわち、掘削作業の開始が判定された場合には、作業状況判別部50は、作業状況が掘削作業である旨をメモリに記憶させるとともに、障害物認識処理変更部55に判定結果を出力し(ステップS203)、障害物認識処理変更部55は、画像取得部52に対して前方カメラ35の画像取得レートを最大化し(ステップS204)、前方カメラ35の認識範囲を最大化するように(ステップS205)、設定変更の指示を出力する。すなわち、図4のステップS100において、前方カメラ35の画像データ取得の頻度を高速化し、さらに画像の切り出し範囲を拡大する。
続いて、障害物判別部53に対して、障害物認識のテンプレートを掘削作業用に設定変更するように指示を出力する(ステップS206)。すなわち、図4のステップS106の障害物識別におけるHOG特徴量の比較テンプレートを上下方向の輝度変化を主体としたものに変更する。
続いて、作業状況判別部50はメモリに保持されている作業状況が掘削であるか否かと、1サンプリング前の旋回角速度センサ27の出力の絶対値が予めメモリに設定されている旋回開始閾値Vthより小さいか否かと、現在の旋回角速度センサ27の出力の絶対値が旋回開始閾値Vthより大きいか否かとを判定する(ステップS207~S209)。掘削作業が終了すると油圧ショベル1は旋回を開始するので、図9に示すように、旋回角速度が旋回開始閾値Vthより上回ったことを判定することで掘削作業が終了し、運搬作業が開始されたと判断することができる。
ステップS207~S209の判定結果の何れか1つでもNOの場合、すなわち、運搬作業の開始が判定されなかった場合には、図8BのステップS217の処理に進む。また、ステップS207~209の判定結果が全てYESの場合、すなわち、運搬作業の開始が判定された場合には、作業状況判別部50は、作業状況が運搬作業である旨をメモリに記憶するとともに、障害物認識処理変更部55に判定結果を出力し(ステップS210)、障害物認識処理変更部55は、障害物判別部53に対して、障害物認識のテンプレートを旋回用に設定変更するように指示を出力する(ステップS211)。すなわち、図4のステップS106の障害物識別におけるHOG特徴量の比較テンプレートを左右方向の輝度変化を主体としたものに変更する。
続いて、作業状況判別部50は、旋回角速度センサ28の正負から旋回方向が左方向であるか否か(すなわち、左右のどちらであるか)を判定する(ステップS212)。
ステップS212の判定結果がYESの場合、すなわち、旋回方向が左方向である場合には、障害物認識処理変更部55を介して、画像取得部52に対して、前方カメラ35と左側方カメラ36の画像取得レートを最大化するように設定変更の指示を出力し(ステップS213)、さらに、前方カメラ35の左半分と左側方カメラ36の右半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS214)。すなわち、図4のステップS100において、前方カメラ35と左側方カメラ36の画像データ取得の頻度を高速化し、さらに画像の切り出し範囲を変更する。
また、ステップS212の判定結果がNOの場合、すなわち、旋回方向が右方向である場合には、障害物認識処理変更部55を介して、画像取得部52に対して、前方カメラ35と右側方カメラ37の画像取得レートを最大化するように設定変更の指示を出力し(ステップS215)、さらに、前方カメラ35の右半分と右側方カメラ37の左半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS216)。すなわち、図4のステップS100において、前方カメラ35と右側方カメラ37の画像データ取得の頻度を高速化し、さらに画像の切り出し範囲を変更する。
続いて、コントローラ21の作業状況判別部50は、作業状況が運搬作業であるか否かと、1サンプリング前のバケット角度センサ26の出力が予めメモリに設定されている放土開始閾値θthより小さいか否かと、現在のバケット角度センサ26の出力が放土開始閾値θthより大きいか否かとを判定する(ステップS217~S219)。図9に示すように、油圧ショベル1は、放土作業時はバケット15内の土砂を放出するようアーム14とバケット15の間を広げるため、バケット角度が大きくなるので、バケット角度が放土開始閾値θthより上回ったことを判定することにより運搬作業を終了し、放土作業を開始したと判断することができる。
ステップS217~S219の判定結果の何れか1つでもNOの場合、すなわち、放土作業の開始が判定されなかった場合には、ステップS224の処理に進む。また、ステップS217~219の判定結果が全てYESの場合、すなわち、放土作業の開始が判定された場合には、作業状況判別部50は、作業状況が放土作業である旨をメモリに記憶するとともに、障害物認識処理変更部55に判定結果を出力し(ステップS220)、障害物認識処理変更部55は、画像取得部52に対して前方カメラ35の画像取得レートを最大化し(ステップS221)、前方カメラ35の認識範囲を最大化するように(ステップS222)、設定変更の指示を出力する。すなわち、図4のステップS100において、前方カメラ35の画像データ取得の頻度を高速化し、さらに画像の切り出し範囲を拡大する。
続いて、障害物判別部53に対して、障害物認識のテンプレートを停止用に設定変更するように指示を出力する(ステップS223)。すなわち、図4のステップS106の障害物識別におけるHOG特徴量の比較テンプレートを停止状態における通常のものに変更する。
続いて、作業状況判別部50はメモリに保持されている作業状況が放土であるか否かと、1サンプリング前の旋回角速度センサ27の出力の絶対値が予めメモリに設定されている旋回開始閾値Vthより小さいか否かと、現在の旋回角速度センサ27の出力の絶対値が旋回開始閾値Vthより大きいか否かとを判定する(ステップS224~S226)。放土作業が終了すると油圧ショベル1は旋回を開始するので、図9に示すように、旋回角速度が旋回開始閾値Vthより上回ったことを判定することで放土作業が終了し、リーチング作業が開始されたと判断することができる。
ステップS224~S226の判定結果の何れか1つでもNOの場合、すなわち、リーチング作業の開始が判定されなかった場合には、図8AのステップS200の処理に戻る。また、ステップS224~226の判定結果が全てYESの場合、すなわち、リーチング作業の開始が判定された場合には、作業状況判別部50は、作業状況がリーチング作業である旨をメモリに記憶するとともに、障害物認識処理変更部55に判定結果を出力し(ステップS227)、障害物認識処理変更部55は、障害物判別部53に対して、障害物認識のテンプレートを旋回用に設定変更するように指示を出力する(ステップS228)。すなわち、図4のステップS106の障害物識別におけるHOG特徴量の比較テンプレートを左右方向の輝度変化を主体としたものに変更する。
続いて、作業状況判別部50は、旋回角速度センサ28の正負から旋回方向が左方向であるか否か(すなわち、左右のどちらであるか)を判定する(ステップS229)。
ステップS229の判定結果がYESの場合、すなわち、旋回方向が左方向である場合には、障害物認識処理変更部55を介して、画像取得部52に対して、前方カメラ35と左側方カメラ36の画像取得レートを最大化するように設定変更の指示を出力し(ステップS230)、さらに、前方カメラ35の左半分と左側方カメラ36の右半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS231)。すなわち、図4のステップS100において、前方カメラ35と左側方カメラ36の画像データ取得の頻度を高速化し、さらに画像の切り出し範囲を変更する。
また、ステップS229の判定結果がNOの場合、すなわち、旋回方向が右方向である場合には、障害物認識処理変更部55を介して、画像取得部52に対して、前方カメラ35と右側方カメラ37の画像取得レートを最大化するように設定変更の指示を出力し(ステップS232)、さらに、前方カメラ35の右半分と右側方カメラ37の左半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS233)。すなわち、図4のステップS100において、前方カメラ35と右側方カメラ37の画像データ取得の頻度を高速化し、さらに画像の切り出し範囲を変更する。
図10は、出力装置の一例としてモニタの出力画面を概略的に示す図である。
警報出力部56は、周囲障害物認識部51から出力された障害物の位置情報に基づいて、図7に示す接触判定領域内に障害物があると判定した場合、モニタ23上部に警告メッセージ90を表示させる。また、モニタ23の左半分に油圧ショベル1の上面図に対する障害物位置91を表示させる。また、モニタ23は右半分に後方カメラ38の画像を表示させ、油圧ショベル1の操作者は警告と合わせて、後方カメラ38の画像を確認して、油圧ショベル1の動作を制御する。このように作業機械の作業状況に基づいて障害物認識方法を変更することで、作業状況によって異なる作業機械の挙動に適した方法で障害物の識別と位置を出力し、障害物を正確に認識することができる。また、作業状況に応じて認識範囲や処理を限定するように構成しているため、コントローラ21の処理負荷を軽減することができる。
<第2の実施の形態>
本発明の第2の実施の形態を図11~図15A,図15Bを参照しつつ説明する。本実施の形態では、第1の実施の形態との相違点についてのみ説明するものとし、本実施の形態で用いる図面において第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
本実施の形態は、第1の実施の形態におけるカメラ35~38に代えて、LIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)39~42を用いる場合を例示するものである。
図11は、本実施の形態に係るコントローラの処理機能を示す機能ブロック図である。
図11において、油圧ショベル1は、所定の位置(例えば、第1の実施の形態におけるカメラ35~38に相当する位置)にそれぞれ、前方LIDAR39、左側方LIDAR40、右側方LIDAR41、及び後方LIDAR42を備えている。
また、コントローラ21Aは、LIDAR39~42の検出結果に基づいて、油圧ショベル1が行っている作業状況を判別する作業状況判別部50と、カメラ35~38で撮像された画像を取得して油圧ショベル1の周囲の障害物の有無を判別するとともにその位置を認識する周囲障害物認識部51Aと、作業状況判別部50の判別結果に基づいて周囲障害物認識部51Aの処理で用いる各種情報を設定あるいは変更する障害物認識処理変更部55と、作業状況判別部50の判別結果と周囲障害物認識部51Aの認識結果とに基づいて障害物との接触の可能性を判断するとともに警報を出力するか否か判定し、必要に応じて警報等を出力する警報出力部56とを有している。
LIDAR39~42は、1つ以上のレーザーを走査し、レーザーが照射された地点までの距離を計測する。そして計測された複数の距離から位置に変換し、レーザー照射地点の位置の集合である点群を出力する。なお、第1の実施の形態におけるカメラ35~38に相当する位置に取り付けられたLIDAR39~42は、油圧ショベル1の前方方向をX、左側方方向をY、旋回中心をZ軸としたXYZ座標における、点群の位置を出力する。
周囲障害物認識部51Aは、LIDAR39~42から出力される点群の情報を取得し、取得した点群の情報から予め設定された複数の範囲を切り出す処理を行う点群取得部57と、点群取得部57で切り出された複数の範囲のそれぞれに対してグリッドを占有する点群を抽出し、抽出した点群と予め定められたテンプレートとを比較して障害物の有無を判別する障害物判別部53と、障害物判別部53の判別結果に基づいて障害物の位置を認識する障害物位置認識部54とを有している。
図12は、周囲障害物認識部の処理内容を示すフローチャートである。また、図13は、周囲障害物認識部の障害物判別部における障害物判別の一例として作業員判別の基本原理を説明する図である。
図12に示すステップS300~S309の処理は、コントローラ21Aにおいて予め定められたサンプリング毎に実行される。また、ステップS300~S309の処理は、複数のLIDAR39~42からの点群データに対してそれぞれ行われる。
図12において、コントローラ21の周囲障害物認識部51Aは、点群取得部57において、LIDAR39~42からの点群を取得し、予めコントローラ21に設定されている範囲の点群を切り出して出力する(ステップS300)。LIDAR39~42において油圧ショベル1の遠方を計測した点群は、障害物との接触の可能性が低く、処理能力の観点から障害物認識の対象外とする。
続いて、障害物判別部53は、図13に示すようなXY軸方向に予め定められた数で分割されているグリッドを用いて、ステップS150で出力された点群をグリッドと対応づける(ステップS301)。
続いて、障害物の認識処理を行う走査グリッドを選択し(ステップS302)、グリッド内に存在する点群を抽出する(ステップS303)。なお、走査グリッドによる点群の抽出では、点群が存在する範囲の端から端までの全てのグリッドで行うように、走査グリッドを順番に選択する。
続いて、グリッド内に存在するノイズ除去を行う(ステップS304)。図13に示すように、走査グリッド内において、点群間の距離を計測し、予め定められている距離に他の点群が存在しない場合は、その点群をノイズとして判別し、除去する。
続いて、グリッド内に存在する点群において、高さの絶対値が地面抽出閾値Gthより大きい点群が存在するか否かを判定する(ステップS305)。油圧ショベル1の周囲の点群を計測した場合、図13に示すように大部分の計測結果は一様な高さにある地面が計測され、障害物は地面に対しほぼ垂直方向に存在する点群として計測される。走査グリッド内の点群の高さの絶対値が地面抽出閾値Gthよりも小さい場合はそのグリッド内の点群は地面であると推定することができ、また、地面抽出閾値Gthよりも大きい場合には障害物があると推定することができるので、周囲障害物認識部51では地面抽出閾値Gthと点群の高さの絶対値とを比較することで障害物のみを抽出することができる。
ステップS305での判定結果がYESの場合、すなわち、障害物があると判定された場合には、走査グリッドの位置と走査グリッド内の点群を障害物判定点群として一時データに蓄積し(ステップS306)、ステップS307の処理に進む。また、ステップS305での判定結果がNOの場合、すなわち、障害物が無いと判定された場合には、そのままステップS307の処理に進む。
続いて、ステップS307では、取得した点群に対し予め設定されている走査が全て完了しているか否かを判定し(ステップS307)、判定結果がNOの場合には、判定結果がYESになるまで、走査グリッドの位置をずらした後にステップS302~ステップS306の処理を繰り返す。
また、ステップS307での判定結果がYESの場合、すなわち、走査が完了している場合には、続いて、ステップS306において蓄積された障害物の点群データを統合する(ステップS308)。ステップS303~S305における識別では、走査グリッド内に存在する障害物の一部のみを識別している可能性がある。そこで、隣接する走査グリッドに障害物として識別された点群がある場合は、1つの障害物の点群としてマージする。そして、マージされた点群に対して、予め障害物の輪郭や大きさが設定されている比較テンプレートと比較し、最も適合する比較テンプレートの種類に応じて障害物の種別を分類する。例えば、図13に示すように、障害物として判定された点群に対し最も適合する比較テンプレートが作業員識別用のものである場合には作業員が認識されたと判別する。
続いて、障害物位置認識部54において、ステップS308で統合された障害物識別データから障害物が識別された際の走査グリッドの位置を障害物の位置として抽出して出力する(ステップS309)。
ステップS309において障害物の位置情報を推定した後は、処理をステップS300に戻し、再度点群の取得から障害物の識別を行い、油圧ショベル1の周囲の障害物の監視を続行する。
なお、図12及び図13では、点群による物体認識の手法としてグリッドを用いた手法を例示して説明したが、点群による障害物の認識方法は他の手法を用いても良い。
図14A及び図14Bは、周囲障害物認識部の障害物判別部における障害物判別の一例として作業員判別の基本原理を説明する図であり、図14Aは掘削作業中、図14Bは運搬作業中やリーチング作業中の様子を示す図である。また、前述の図13は作業機械の停止中の様子を示す図である。
図14Aに示すように、油圧ショベル1の掘削作業中は、掘削による負荷の影響で油圧ショベル1が上下に振動しており、LIDAR39~42が走査した際のレーザーの向きが影響を受け、LIDAR39~42から取得した点群は上下にばらついた点群となることが考えられる。この場合、図12のステップS305で示した地面判定において、地面抽出閾値外にあるとされる点群が存在してしまうことが考えられる。そのため、ステップS305における障害物の識別が正しく行われず、不要に障害物があると認識してしまう可能性がある。また,点群のばらつきにより、障害物の一部(例えば作業員の肩に該当する部分)が比較テンプレート外にあるとされる点群が存在してしまうことがある。そのため、ステップS305における障害物の識別において、比較テンプレートが存在せず,障害物を正しく認識できない可能性がある。
さらに、図14Bに示すように、油圧ショベル1が運搬作業やリーチング作業を行っている最中は、上部旋回体11の旋回によりLIDAR39~42が横方向に移動しており、ある点群の位置を計測し次の点群を計測するまでにLIDAR39~42の位置が変化するので、LIDAR39~42から取得した点群は横方向に歪んだ点群となることが考えられる。この場合、図12のステップS159における障害物の識別において、比較テンプレートが存在せず、障害物を正しく認識できないことがある。
そこで、本願発明においては、図14Aのような場合は地面抽出閾値の拡大を行い、また、図14Bのような場合は横方向への歪み分を考慮した比較テンプレートを使用できるように切り替えることで、作業機械の作業状況毎に適した処理を実施することができ、自車両周囲の障害物を精度よく認識することができる。さらに、作業状況に応じて認識範囲を切り替えることでさらに精度よく自車両周囲の障害物を認識することができる。
図15A及び図15Bは、作業状況判別部、障害物認識処理変更部、及び、周囲生涯物認識部の条件設定処理に係る処理内容を示すフローチャートである。
作業状況判別部50は、油圧ショベル1の作業状況を判別し、障害物認識処理変更部55は、作業状況判別部50での判別結果に基づいて、周囲障害物認識部51A(点群取得部57、障害物判別部53、障害物位置認識部54)の外界センサの環境情報の取り込み条件、自車周囲の障害物の有無の判別条件、及び障害物の位置の認識条件の少なくとも何れか1つの条件を設定又は変更する。
図15A及び図15Bに示すステップS400~S428の処理は、コントローラ21Aにおいて予め定められたサンプリング毎に実行される。また、コントローラ21A内のメモリには、油圧ショベル1の作業状況を示す変数が内部に保持されており、作業状況の初期状態(初期値)はリーチング作業である。
図15A及び図15Bにおいて、コントローラ21Aの作業状況判別部50は、まず、作業状況がリーチング作業であるか否かと、1サンプリング前のアームボトム圧センサ31の出力が予めメモリに設定されている掘削開始閾値Pthより小さいか否かと、現在のアームボトム圧センサ31の出力が掘削開始閾値Pthより大きいか否かとを判定する(ステップS400~S402)。
ステップS400~S402の判定結果の何れか1つでもNOの場合、すなわち、掘削作業の開始が判定されなかった場合には、ステップS407の処理に進む。また、ステップS400~402の判定結果が全てYESの場合、すなわち、掘削作業の開始が判定された場合には、作業状況判別部50は、作業状況が掘削作業である旨をメモリに記憶させるとともに、障害物認識処理変更部55に判定結果を出力し(ステップS403)、障害物認識処理変更部55は、点群取得部57に対して前方LIDAR39の認識範囲を最大化するように、設定変更の指示を出力する(ステップS404)。すなわち、前方LIDAR39の点群の切り出し範囲を拡大する。
続いて、障害物認識処理変更部55は、障害物判別部53に対して地面抽出閾値Gthを通常よりも大きな値となるように設定変更する指示を出力し(ステップS405)、さらに、障害物認識のテンプレートを掘削作業用に設定変更するように指示を出力する(ステップS406)。すなわち、障害物識別における比較テンプレートを上下方向のばらつきを考慮したものに変更する。
続いて、作業状況判別部50はメモリに保持されている作業状況が掘削であるか否かと、1サンプリング前の旋回角速度センサ27の出力の絶対値が予めメモリに設定されている旋回開始閾値Vthより小さいか否かと、現在の旋回角速度センサ27の出力の絶対値が旋回開始閾値Vthより大きいか否かとを判定する(ステップS407~S409)。
ステップS407~S409の判定結果の何れか1つでもNOの場合、すなわち、運搬作業の開始が判定されなかった場合には、図15BのステップS415の処理に進む。また、ステップS407~409の判定結果が全てYESの場合、すなわち、運搬作業の開始が判定された場合には、作業状況判別部50は、作業状況が運搬作業である旨をメモリに記憶するとともに、障害物認識処理変更部55に判定結果を出力し(ステップS410)、障害物認識処理変更部55は、障害物判別部53に対して、障害物認識のテンプレートを旋回用に設定変更するように指示を出力する(ステップS411)。すなわち、障害物識別における比較テンプレートを左右方向の歪を考慮したものに変更する。
続いて、作業状況判別部50は、旋回角速度センサ28の正負から旋回方向が左方向であるか否か(すなわち、左右のどちらであるか)を判定する(ステップS412)。
ステップS412の判定結果がYESの場合、すなわち、旋回方向が左方向である場合には、障害物認識処理変更部55を介して、点群取得部57に対して、前方LIDAR39の左半分と左側方LIDAR40の右半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS414)。すなわち、前方LIDAR39と左側方LIDAR40からの点群データに対する切り出し範囲を変更する。
また、ステップS412の判定結果がNOの場合、すなわち、旋回方向が右方向である場合には、障害物認識処理変更部55を介して、点群取得部57に対して、前方LIDAR39の右半分と右側方LIDAR41の左半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS414)。すなわち、前方LIDAR39と右側方LIDAR41からの点群データに対する切り出し範囲を変更する。
続いて、コントローラ21Aの作業状況判別部50は、作業状況が運搬作業であるか否かと、1サンプリング前のバケット角度センサ26の出力が予めメモリに設定されている放土開始閾値θthより小さいか否かと、現在のバケット角度センサ26の出力が放土開始閾値θthより大きいか否かとを判定する(ステップS415~S417)。
ステップS415~S417の判定結果の何れか1つでもNOの場合、すなわち、放土作業の開始が判定されなかった場合には、ステップS421の処理に進む。また、ステップS415~417の判定結果が全てYESの場合、すなわち、放土作業の開始が判定された場合には、作業状況判別部50は、作業状況が放土作業である旨をメモリに記憶するとともに、障害物認識処理変更部55に判定結果を出力し(ステップS418)、障害物認識処理変更部55は、点群取得部57に対して前方LIDAR39の認識範囲を最大化するように、設定変更の指示を出力する(ステップS419)。すなわち、前方LIDAR39の点群の切り出し範囲を拡大する。
続いて、障害物認識処理変更部55は、障害物判別部53に対して、障害物認識のテンプレートを停止用に設定変更するように指示を出力する(ステップS420)。すなわち、障害物識別における比較テンプレートを停止状態における通常のものに変更する。
続いて、作業状況判別部50はメモリに保持されている作業状況が放土であるか否かと、1サンプリング前の旋回角速度センサ27の出力の絶対値が予めメモリに設定されている旋回開始閾値Vthより小さいか否かと、現在の旋回角速度センサ27の出力の絶対値が旋回開始閾値Vthより大きいか否かとを判定する(ステップS421~S423)。
ステップS421~S423の判定結果の何れか1つでもNOの場合、すなわち、リーチング作業の開始が判定されなかった場合には、図15AのステップS400の処理に戻る。また、ステップS421~423の判定結果が全てYESの場合、すなわち、リーチング作業の開始が判定された場合には、作業状況判別部50は、作業状況がリーチング作業である旨をメモリに記憶するとともに、障害物認識処理変更部55に判定結果を出力し(ステップS424)、障害物認識処理変更部55は、障害物判別部53に対して、障害物認識のテンプレートを旋回用に設定変更するように指示を出力する(ステップS425)。すなわち、障害物識別における比較テンプレートを左右方向の歪を考慮したものに変更する。
続いて、作業状況判別部50は、旋回角速度センサ28の正負から旋回方向が左方向であるか否か(すなわち、左右のどちらであるか)を判定する(ステップS426)。
ステップS426の判定結果がYESの場合、すなわち、旋回方向が左方向である場合には、障害物認識処理変更部55を介して、点群取得部57に対して、前方LIDAR39の左半分と左側方LIDAR40の右半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS427)。すなわち、前方LIDAR39と左側方LIDAR40からの点群データに対する切り出し範囲を変更する。
また、ステップS426の判定結果がNOの場合、すなわち、旋回方向が右方向である場合には、障害物認識処理変更部55を介して、点群取得部57に対して、前方LIDAR39の右半分と右側方LIDAR41の左半分の認識範囲を最大化するように設定変更の指示を出力する(ステップS428)。すなわち、前方LIDAR39と右側方LIDAR41からの点群データに対する切り出し範囲を変更する。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても第1の実施の形態と同様の効果を得ることができる。
<第3の実施の形態>
本発明の第3の実施の形態を図16を参照しつつ説明する。本実施の形態では、第1の実施の形態との相違点についてのみ説明するものとし、本実施の形態で用いる図面において第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
本実施の形態は、第1の実施の形態における周囲障害物認識部51の出力を油圧ショベル1の停止制御や位置情報の送信に用いる場合を例示するものである。
図16は、本実施の形態に係るコントローラの処理機能を示す機能ブロック図である。
図16において、コントローラ21Bは、作業状況判別部50の作業状況判別結果と周囲障害物認識部51の障害物認識結果に基づいて障害物との接触の可能性を判断し油圧ショベル1の停止信号を出力する停止制御部58と、周囲障害物認識部51の障害物認識結果に基づいて障害物の位置情報を出力する位置情報送信部59とを有している。コントローラ21Bは、停止制御部58からの停止信号を油圧ショベル1の動作を制御している油圧制御部43へ出力し、また位置情報送信部59からの障害物の位置情報を外部通信機44を介して、油圧ショベル1の外部に設けられた外部サーバ7に送信するように構成されている。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても第1の実施の形態と同様の効果を得ることができる。
また、停止制御部58によって油圧ショベル1を停止するように制御するので、油圧ショベル1の操作者が周囲障害物の認識に遅れてしまった場合も自動的に停止することができ、接触を回避することが出来る。また、位置情報送信部59によって認識した周囲障害物の位置情報を外部サーバ7に送信するように構成したので、障害物の位置を油圧ショベル1以外の機械と共有することができる。例えば、カメラ35~38を有さないダンプトラックやロードローラ等の走行する機械に外部サーバ7を介して位置情報を送信することで、接触の警報や停止制御を油圧ショベル1と同様に行うことが出来る。さらに、外部サーバ7に複数の機械が接続し位置情報を蓄積することで、障害物の位置に関する統計処理を行うことができ、現場の不安全行為の多発地帯可視化や施工計画における機械や作業員の配置計画に用いることができる。
<付記>
なお、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内の様々な変形例や組み合わせが含まれる。また、本発明は、上記の実施の形態で説明した全ての構成を備えるものに限定されず、その構成の一部を削除したものも含まれる。また、上記の各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等により実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
例えば、本実施例の説明に用いた油圧ショベル1は、上部旋回体11にブーム13、アーム14、及びバケット15から構成されるフロント作業機12を有する場合を例示して説明している、フロント作業機12の構成はこれに限らず、例えば、リフティングマグネット機のような異なる形態の作業具を用いても良い。
また、障害物の認識方法はカメラやLIDARを用いた方法に限定されるものではなく、距離を抽出できる手法であれば異なる方法であってもよく、例えば、ステレオカメラを用いた方法であってもよい。
また、作業状況の判別方法は本実施例の内容に限定されるものではなく、例えば操作レバー22の操作量に基づいて判断されてもよい。
また、作業状況の分類は掘削作業、運搬作業、放土作業、リーチング作業に限定されるものではない。図17A~図17Cは、油圧ショベル1の作業状況の他の例を示す外観図であり、図17Aは法面整形作業を、図17Bはバケット15を地面に叩きつけて地面の締固めを行う土羽打ち作業を、図17Cはワイヤー等により重量物を吊るし運搬する吊り荷作業をそれぞれ示している。
図17Aに示す法面整形作業における作業状況は、図3に示す溝成型作業と同様に掘削作業、運搬作業、放土作業、リーチング作業となるが、法面整形作業は仕上げ作業であり、掘削作業における掘削量が少ないため、掘削負荷による振動は小さい。そのため、計算負荷の低減等の観点から、例えば、法面整形作業において、図8AのステップS200~S202相当の処理で掘削作業と判断した場合は、図8AのステップS206で設定又は変更するテンプレートを掘削用ではなく放土作業と同様な停止用に設定する。また、同様に、図15AのステップS400~S402相当の処理で掘削作業と判断した場合は、図15AのステップS206で地面抽出閾値を変更しないように設定する。
図17Bに示す土羽打ちにおける作業状況は、ブーム13を上げてバケット15を持ち上げるか、ブーム13を下ろしてバケット15を地面に打ち付けるかの2パターンとなる。ブーム13を上げている最中は油圧ショベル1の振動はなく、また旋回動作もないため、図3に示す溝成型作業における放土作業と同じ処理となるように周囲障害物認識部51の処理を変更する。一方で、ブーム13を下ろしてバケット15を地面に打ち付ける際は、打ち付けた衝撃により油圧ショベル1が上下に振動するので、図3に示す溝成型作業における掘削作業と同じ処理となるように周囲障害物認識部51の処理を変更する。
図17Cに示す吊り荷作業では、吊るされた荷物の運搬作業において、上部旋回体11の慣性が大きくなる。そのため、警報出力部56から警報が出力され、油圧ショベル1の操作者が旋回停止操作をした後の旋回量が多くなることが予想されるため、図8AのステップS214,S216や図8BのステップS231,S233、図15AのステップS413,S414や図15BのステップS427,S428において、側方カメラ36,37や側方LIDAR40,41の認識範囲を通常より拡大するように周囲障害物認識部51の処理を変更する。
このように、油圧ショベル1が行う作業に応じて作業状況判別部50と障害物認識処理変更部55の処理内容を変更することで、多様な作業を行う作業機械において周囲の障害物をより高精度に認識できる。