(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024004776
(43)【公開日】2024-01-17
(54)【発明の名称】作業機械
(51)【国際特許分類】
E02F 9/26 20060101AFI20240110BHJP
G06T 7/70 20170101ALI20240110BHJP
G06T 7/60 20170101ALI20240110BHJP
【FI】
E02F9/26 B
G06T7/70 A
G06T7/60 180B
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022104598
(22)【出願日】2022-06-29
(71)【出願人】
【識別番号】000005522
【氏名又は名称】日立建機株式会社
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】小谷 匡士
(72)【発明者】
【氏名】齋藤 哲平
(72)【発明者】
【氏名】成川 理優
(72)【発明者】
【氏名】伊東 英明
(72)【発明者】
【氏名】石本 英史
(72)【発明者】
【氏名】佐藤 慧
【テーマコード(参考)】
2D015
5L096
【Fターム(参考)】
2D015HA03
2D015HB04
2D015HB05
5L096AA06
5L096AA09
5L096BA08
5L096BA18
5L096DA01
5L096DA02
5L096FA64
5L096FA66
5L096FA67
5L096GA51
5L096MA07
(57)【要約】
【課題】データのない運搬車両であっても精度良くそのトレイの位置を検出する。
【解決手段】運搬車両のトレイに運搬物を積み込む作業機械において、走行体と、前記走行体の上部に旋回可能に設けられた旋回体と、前記旋回体に取り付けられたフロント作業機と、前記作業機械の周囲の物体を計測して当該計測結果を示す点群を出力する計測装置と、前記計測装置が出力する前記点群から前記トレイの検出処理を実行する処理装置とを備え、前記処理装置は、前記計測装置が出力する前記点群から水平方向に対向する2面を抽出し、抽出した前記2面の面間距離が既定の設定距離より長いか否かを判定し、前記面間距離が前記設定距離より長いと判定した場合に、前記2面を左右の壁面とする前記トレイを検出し、前記トレイを検出した場合に前記トレイの位置を出力することを特徴とする作業機械を提供する。
【選択図】
図14
【特許請求の範囲】
【請求項1】
運搬車両のトレイに運搬物を積み込む作業機械において、
走行体と、
前記走行体の上部に旋回可能に設けられた旋回体と、
前記旋回体に取り付けられたフロント作業機と、
前記作業機械の周囲の物体を計測して当該計測結果を示す点群を出力する計測装置と、
前記計測装置が出力する前記点群から前記トレイの検出処理を実行する処理装置とを備え、
前記処理装置は、
前記計測装置が出力する前記点群から水平方向に対向する2面を抽出し、
抽出した前記2面の面間距離が既定の設定距離より長いか否かを判定し、
前記面間距離が前記設定距離より長いと判定した場合に、前記2面を左右の壁面とする前記トレイを検出し、前記トレイを検出した場合に前記トレイの位置を出力する
ことを特徴とする作業機械。
【請求項2】
請求項1に記載の作業機械において、
前記設定距離は、前記フロント作業機のバケットの幅より大きく設定されていることを特徴とする作業機械。
【請求項3】
請求項1に記載の作業機械において、
前記処理装置は、
前記計測装置が出力する点群から、予め設定された大きさ以上の物体、又は走行輪に相当する円形を含む物体を前記運搬車両として検出し、
前記運搬車両の点群から水平方向に対向する2面を抽出する
ことを特徴とする作業機械。
【請求項4】
請求項1に記載の作業機械において、
前記処理装置は、前記計測装置から点群が入力されない場合、及び前記運搬車両が検出されない場合、前記トレイの検出処理を中断することを特徴とする作業機械。
【請求項5】
請求項1に記載の作業機械において、
前記走行体に対する前記旋回体の角度を検出する旋回角度センサを備え、
前記計測装置は、前記旋回体に設置されており、
前記処理装置は、前記旋回角度センサの出力に基づき、前記旋回体が旋回中であると判定される場合、前記トレイの検出処理を中断する
ことを特徴とする作業機械。
【請求項6】
請求項1に記載の作業機械において、
前記走行体の走行を検知する走行センサを備え、
前記処理装置は、前記走行センサの出力に基づき、前記作業機械が走行中であると判定される場合、前記トレイの検出処理を中断する
ことを特徴とする作業機械。
【請求項7】
請求項1に記載の作業機械において、
前記処理装置は、
前記トレイの検出処理で得られた前記トレイの最新の検出データを保持し、
前記トレイが検出されなくなった場合でも、前記運搬車両が検出されている間、前記最新の検出データを出力する
ことを特徴とする作業機械。
【請求項8】
請求項1に記載の作業機械において、
前記処理装置は、
抽出した前記2面の長手方向の長さを比較し、
前記2面の長手方向の長さが異なる場合、長い方の面の検出データに合わせて短い方の面の検出データを補正する
ことを特徴とする作業機械。
【請求項9】
請求項1に記載の作業機械において、
前記処理装置は、
前記トレイの長手方向の長さとして予め設定した閾値を記憶し、
検出した前記トレイの長手方向の長さを前記閾値と比較し、
検出した前記トレイの長さが前記閾値より短い場合、予め定めた設定トレイ長に前記トレイの長さを補正する
ことを特徴とする作業機械。
【請求項10】
請求項9に記載の作業機械において、
前記処理装置は、検出した前記トレイの長さを前記運搬車両の前方に延ばして補正することを特徴とする作業機械。
【請求項11】
請求項1に記載の作業機械において、
前記計測装置は、前記旋回体に設置されていることを特徴とする作業機械。
【請求項12】
請求項1に記載の作業機械において、
運転室に配置されたモニタを備え、
前記処理装置は、前記トレイの検出データを前記計測装置からの点群と重ねて前記モニタに表示させる
ことを特徴とする作業機械。
【請求項13】
請求項1に記載の作業機械において、
前記運搬車両の位置データを受信する通信装置を備え、
前記処理装置は、前記通信装置で受信した前記運搬車両の位置データに基づき、予め設定されたエリアに前記運搬車両が位置すると判断される場合にのみ、前記トレイの検出処理を実行する
ことを特徴とする作業機械。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、油圧ショベル等の作業機械に関する。
【背景技術】
【0002】
多関節型のフロント作業機を持つ油圧ショベル等の作業機械が知られている。この種の作業機械は、掘削した土砂等の運搬物をダンプトラック等の運搬車両に積み込む積込作業に用いられる場合も多い。積込作業には、走行体に対して旋回体を旋回させてダンプトラック等の運搬車両まで運搬する運搬動作と、バケットをクラウドさせて運搬した運搬物を運搬車両に放出する放出動作(例えば放土動作)とが含まれる。
【0003】
積込作業を行う際、フロント作業機の高さ(例えばバケットの先端の高さ)が運搬車両のトレイより低い状態で旋回体が旋回すると、運搬動作の過程でフロント作業機が運搬車両に干渉する可能性がある。そこで、積込作業の際にオペレータによる作業機械の操作を支援する機能や、作業機械が積込作業を自動で行う技術が求められている。作業機械の積込作業を自動又は半自動で行うためには、作業機械に対する運搬車両の位置や角度を正確に検出して検出する必要がある。
【0004】
作業機械の積込作業の積込対象となる運搬車両を検出する従来技術として、例えば特許文献1に記載された技術がある。特許文献1には、運搬車両が写る画像から運搬車両を含む領域を特定し、運搬車両を含む領域から運搬車両の少なくとも一つの面を特定する画像処理システムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載された画像認識システムでは機械学習が用いられており、機械学習により得られたデータに基づき、作業機械に取り付けたカメラによる撮影画像から運搬車両の位置と角度が検出される。しかし、機械学習を用いるシステムは、現場や運搬車両が未学習のものである場合、運搬車両の位置や角度の検出結果の精度や妥当性が低下する。そのため、新たな現場で運搬車両を検出する場合や新たな運搬車両を検出する場合、検出結果の妥当性や精度を確保するためには、それら新たな現場や運搬車両の学習データを収集しなければならない。
【0007】
本発明の目的は、データのない運搬車両であっても精度良くそのトレイの位置を検出することができる作業機械を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明は、運搬車両のトレイに運搬物を積み込む作業機械において、走行体と、前記走行体の上部に旋回可能に設けられた旋回体と、前記旋回体に取り付けられたフロント作業機と、前記作業機械の周囲の物体を計測して当該計測結果を示す点群を出力する計測装置と、前記計測装置が出力する前記点群から前記トレイの検出処理を実行する処理装置とを備え、前記処理装置は、前記計測装置が出力する前記点群から水平方向に対向する2面を抽出し、抽出した前記2面の面間距離が既定の設定距離より長いか否かを判定し、前記面間距離が前記設定距離より長いと判定した場合に、前記2面を左右の壁面とする前記トレイを検出し、前記トレイを検出した場合に前記トレイの位置を出力することを特徴とする作業機械を提供する。
【発明の効果】
【0009】
本発明によれば、データのない運搬車両であっても精度良くそのトレイの位置を検出することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明に係る作業機械の一例である油圧ショベルの側面図
【
図2】
図1に示した油圧ショベルに備わった油圧システム及び制御システムの要部を関連構成と共に抜き出して示すブロック図
【
図6】本発明の第1実施形態に係る作業機械の側面図と共に基準座標系を示す側面図
【
図7】発明の第1実施形態に係る作業機械の側面図と共に基準座標系を示す平面図
【
図8】本発明の第1実施形態に係る作業機械に備わった処理装置による運搬車両のトレイの検出処理に関する機能ブロック図
【
図11】本発明の第1実施形態に係る作業機械のトレイ検出処理を含めた一連の動作の一例を示すフローチャート
【
図12】状況判定処理(
図8)の手順の一例を示すフローチャート
【
図13】運搬車両検出処理(
図8)の手順の一例を示すフローチャート
【
図14】トレイ検出処理の手順の一例を示すフローチャート
【
図19】検出結果補正処理(
図8)の手順の一例を示すフローチャート
【
図24】本発明の第2実施形態に係る作業機械に備わった処理装置による運搬車両のトレイの検出処理に関する機能ブロック
【発明を実施するための形態】
【0011】
以下に図面を用いて本発明の実施の形態を説明する。
【0012】
(第1実施形態)
1.作業機械
図1は本発明に係る作業機械の一例である油圧ショベルの側面図、
図2は
図1に示した油圧ショベルに備わった油圧システム及び制御システムの要部を関連構成と共に抜き出して示すブロック図である。本願明細書において、
図1中の左方向を油圧ショベル(厳密には旋回体7)の前方とする。また、
図1では大型の油圧ショベルを例示的に図示してあるが、中型以下の油圧ショベル、或いはフロント作業機を有する他種の作業機械にも本発明は適用可能である。
【0013】
図1において、油圧ショベル1(作業機械)は、作業現場において、地面等の掘削対象面を掘削する掘削作業、掘削した土砂等の運搬物をダンプトラック(後述)等の運搬車両に積み込む積込作業等を行うものである。積込作業には、バケット10(後述)にすくい込んだ運搬物を走行体5(後述)に対して旋回体7(後述)の旋回により運搬車両まで運搬する運搬動作と、バケット10から運搬車両に運搬物を放出する放出動作とが含まれる。油圧ショベル1は、車体3と、この車体3に搭載された多関節型のフロント作業機2(作業腕)とを備えている。
【0014】
車体3は、走行体5と旋回体7とを含んで構成されている。走行体5は、油圧ショベル1の下部構造体であり、走行モータ4(油圧モータ)により駆動されるクローラ式の左右の走行装置5aを備えている。旋回体7は、旋回装置(不図示)を介して走行体5のフレームの上部に旋回可能に取り付けられており、旋回装置の旋回モータ6(油圧モータ)により駆動されて走行体5に対して旋回する。旋回体7には、原動機等を含め、油圧ショベル1の駆動システムや運転室20が備わっている。
【0015】
フロント作業機2は、多関節型の作業装置であり、旋回体7の前部に取り付けられており、旋回体7と共に走行体5に対して旋回する。このフロント作業機2は、ブーム8と、アーム9と、バケット10とを備える。ブーム8は、ブームピン8a(
図6)を介して旋回体7の前部に回動可能に連結され、ブームシリンダ11により上下方向に駆動される。アーム9は、アームピン9aを介してブーム8の先端部に回動可能に連結され、アームシリンダ12によりクラウド方向及びダンプ方向に駆動される。バケット10は、バケットピン10a及びバケットリンク16を介してアーム9の先端部に回動可能に連結され、バケットシリンダ13によりクラウド方向及びダンプ方向に駆動される。
【0016】
ブームピン8aには、旋回体7に対するブーム8の角度を検出するブーム角度センサ14(
図6)が取り付けられている。アームピン9aには、ブーム8に対するアーム9の角度を検出するアーム角度センサ15が取り付けられている。バケットリンク16には、アーム9に対するバケット10の角度を検出するバケット角度センサ17が取り付けられている。なお、ブーム8、アーム9及びバケット10のそれぞれの角度は、基準面(例えば水平面)に対するブーム8、アーム9及びバケット10の各角度を慣性計測装置(IMU)により検出し、これら検出値から換算して取得されるようにしてもよい。また、ブームシリンダ11、アームシリンダ12及びバケットシリンダ13の各ストロークをストロークセンサで検出し、これら検出値から換算してブーム8、アーム9及びバケット10のそれぞれの角度が取得される構成とすることもできる。
【0017】
この他、旋回体7には、水平面等の基準面に対する車体3の傾斜角を検出する傾斜角センサ(不図示)が取り付けられている。走行体5と旋回体7とを連結する旋回装置には、走行体5に対する旋回体7の相対的な角度である旋回角度を検出する旋回角度センサ19が取り付けられている。また、旋回体7には、旋回体7の角速度を検出する角速度センサ(不図示)が取り付けられている。
【0018】
本実施形態では、ブーム角度センサ14、アーム角度センサ15、バケット角度センサ17、傾斜角センサ(不図示)、旋回角度センサ19及び角速度センサ(不図示)を総称して、姿勢検出センサ53(
図2)と記載する。
【0019】
また、旋回体7に設けられた運転室20の内部には、走行体5、旋回体7及びフロント作業機2の動作を指示する操作装置が配置されている(
図2)。操作装置には、例えば、右走行レバー23a、左走行レバー23b、右操作レバー22a、左操作レバー22bが含まれる。右走行レバー23aは、右側の走行装置の走行モータ4の操作に用いられる。左走行レバー23bは、左側の走行モータ4の操作に用いられる。右操作レバー22aは、ブームシリンダ11及びバケットシリンダ13の操作に共用される。左操作レバー22bは、アームシリンダ12及び旋回モータ6の操作に共用される。本願明細書において、添え字を省略して操作レバー22と記載する場合には、右操作レバー22a及び左操作レバー22bを意味する。同じく、操作レバー23と記載する場合には、右走行レバー23a及び左走行レバー23bを意味する。操作レバー22,23は、電気レバー方式であり、オペレータによるレバーの操作量及び操作方向をそのセンサ52a~52f(例えばロータリエンコーダ、ポテンショメータ)で検出し、操作量及び操作方向に応じた操作信号を出力する。
【0020】
また、旋回体7には、油圧ショベル1の周囲の物体を計測し点群を出力する計測装置70が設置されている。この計測装置70は、油圧ショベル1の周辺に存在する物体までの距離(深度)を計測する外界計測装置である。計測装置70は、点群データを出力することができるものであれば良く、例えば、LiDAR(Light Detection And Ranging)やステレオカメラを用いることができる。油圧ショベル1には、計測装置70が1つ又は複数取り付けられている。計測装置70の好適な配置については後述する。
【0021】
2.制御システム
図2に示した通り、油圧ショベル1の駆動システムには、原動機103、油圧ポンプ102、パイロットポンプ104、制御装置40、電磁比例弁47a~47l、流量制御弁101、処理装置(情報処理装置)54等が備わっている。
【0022】
原動機103は、例えばエンジン(電動モータでも良い)であり、油圧ポンプ102とパイロットポンプ104とを駆動する。制御装置40は、操作レバー22,23から入力される操作信号に応じ、フロント作業機2、走行体5、旋回体7の動作を制御する。具体的には、制御装置40は、オペレータによる操作レバー22,23の操作に応じてセンサ52a~52fから入力される操作信号に基づき、指令信号を演算し電磁比例弁47a~47lに出力する。電磁比例弁47a~47lは、制御装置40からの指令信号に応じて作動し、パイロットライン100を介してパイロットポンプ104から供給される圧油を減圧して流量制御弁101にパイロット圧を出力する。
【0023】
なお、電磁比例弁47a,47bは、旋回モータ6の操作に係るパイロット圧を出力する。電磁比例弁47c,47dは、アームシリンダ12の操作に係るパイロット圧を出力する。電磁比例弁47e,47fは、ブームシリンダ11の操作に係るパイロット圧を出力する。電磁比例弁47g,47hは、バケットシリンダ13の操作に係るパイロット圧を出力する。電磁比例弁47i,47jは、右側の走行モータ4の操作に係るパイロット圧を出力する。電磁比例弁47k,47lは、左側の走行モータ4の操作に係るパイロット圧を出力する。
【0024】
流量制御弁101には、旋回モータ6、アームシリンダ12、ブームシリンダ11、バケットシリンダ13、左右の走行モータ4に対応する方向制御弁(不図示)が備わっている。各方向制御弁は、電磁比例弁47a~47lのうち対応する弁から入力されるパイロット圧を受圧室に受けて作動し、油圧ポンプ102から供給される圧油の方向及び流量を制御して、対応する油圧アクチュエータに供給する。これにより、旋回モータ6、アームシリンダ12、ブームシリンダ11、バケットシリンダ13、左右の走行モータ4が、オペレータによる操作レバー22,23の操作に応じて動作する。これにより、バケット10の位置及び角度が変化したり、旋回体7が旋回したり、走行体5が走行したりする。
【0025】
処理装置54は、コンピュータであり、計測装置70が出力する点群に基づきトレイ検出処理(後述)を実行する機能を備えている。処理装置54には、ROM(Read Only Memory)71、RAM(Random Access Memory)72、CPU(Central Processing Unit)73、外部I/F(Interface)74等が備わっている。ROM71、RAM72、CPU73、外部I/F74は、バス75を介して接続されている。また、処理装置54には、制御装置40、モニタ55、計測装置70、姿勢検出センサ53、記憶装置57(例えばハードディスクドライブや大容量フラッシュメモリ)が、外部I/F74を介して接続される。モニタ55は、運転室20の内部において運転席に座ったオペレータから見易い位置に配置されている。処理装置54の機能については後述する。
【0026】
3.作業例
図3及び
図4は油圧ショベル1の一作業例を示す平面図及び側面図である。
図3及び
図4では、油圧ショベル1で土砂を掘削し、掘削した土砂を運搬して運搬車両200のトレイTに積み込む積込作業の様子を表している。例えば、油圧ショベル1が運搬物を積込可能な位置(例えば旋回体7の旋回中心線120から最大旋回半径以内で旋回体7の後端旋回半径以上のエリア内の位置)に、運搬車両200が停車する。その際、油圧ショベル1では、計測装置70の出力に基づき、処理装置54によって運搬車両200のトレイTの位置及び角度を検出するトレイ検出処理が実行される。このトレイ検出処理の結果に基づき、油圧ショベル1の制御装置40は、例えば運搬車両200に対する運搬物の積込作業時にフロント作業機2等がトレイTに衝突しないように、油圧ショベル1(例えばフロント作業機2)の動作を制御する。なお、トレイ検出処理による結果は、積込作業時に限らず広くトレイTとフロント作業機2との干渉防止制御に適用でき、例えば、積込作業後に次の掘削地点に油圧ショベル1を移動させる際のトレイTと油圧ショベル1との干渉回避にも適用できる。
【0027】
4.計測装置のレイアウト
図3及び
図4に例示した作業形態が想定される場合、例えば掘削時に旋回体7の左側のエリアの点群を取得できるように計測装置70を設置することが一好適例である。但し、計測装置70の設置位置はこの例に限らず、例えば、旋回体7の前方が計測できる位置に計測装置70を取り付けることもできる。
【0028】
また、トレイ検出処理では、計測装置70から得られた点群データに基づき、運搬車両200のトレイTの左右両側の2面を抽出する。一般的に、運搬車両200のトレイTは左右両側の内壁面が平面又は滑らかな曲面で形成されているため、これら2面を抽出することによってトレイTを検出することができる。この場合、運搬車両200のトレイTの内壁面が計測できるように計測装置70を設置する必要がある。本実施形態では、油圧ショベル1の側方の所定位置に停車する運搬車両200に計測装置70を向けた状態で、計測装置70が運搬車両200の車幅の延長上(運搬車両200後方へのトレイTの射影上)に位置する。
【0029】
また、
図3及び
図4の例のように油圧ショベル1に対して運搬車両200が低位置に停車する場合、運搬車両200を斜めに俯瞰して計測できるように計測装置70を設置することが望ましい。本実施形態において、計測装置70は、運転室20の上部における左端部に、旋回体7の左方領域に存在する物体を測距するように光軸を斜め下に向けて設置されている。
図3及び
図4中のθshは計測装置70の測定範囲の水平方向の角度、θsvの計測装置70の測定範囲の鉛直方向の角度、Lsrは計測装置70の測定範囲の油圧ショベル1からの距離を表している。
【0030】
5.状況データテーブル
図5は状況データテーブルの一例である。同図に示した状況データテーブル800は、トレイ検出処理に係る現在の状況(遷移状態)と、状況毎の処理内容をまとめたデータテーブルであり、予め規定されて例えばROM71に格納されている。本実施形態では、トレイ検出処理に係る状況を、「点群未取得」、「運搬車両未検知」、「運搬車両検出」、「トレイ検出」、「旋回中」、「走行中」の6つに区分する。これら状態毎に、「該当条件」、「検出処理実行可否」、「検出結果出力可否」、「検出結果管理方法」が規定されている。状況データテーブル800における現在の状況は、後述するように処理装置54による運搬車両検出処理83及び状況判定処理84で判定され、例えばRAM72の所定の記憶領域に一時的に保存される。各状況について説明する。
【0031】
5-1.「点群未取得」
点群未取得は、通信状態等によって計測装置70の点群データが処理装置54に一定期間以上入力されない状況である。点群未取得としては、例えば、ネットワークや機器の不具合等で点群データが取得できないケースが想定される。この状況下では、処理装置54によるトレイ検出処理は実行されない。この間、処理装置54から制御装置40へのトレイの検出結果の出力も行われない。また、トレイの検出結果が制御装置40に出力されることがないように、処理装置54は、トレイ検出処理に関してバッファ(例えばRAM72)に保持されているデータを消去する。
【0032】
5-2.「運搬車両未検知」
運搬車両未検出は、計測装置70からの点群データは入力されるものの、油圧ショベル1の周囲にそれら点群から物体(地面を除く)と推定されるものが処理装置54により検出されない状況である。この状況下では、処理装置54によるトレイ検出処理は継続的に実行される。しかし、物体が検出されないため、処理装置54から制御装置40へのトレイの検出結果の出力は行われない(又はトレイが検出されない旨の検出結果が出力されても良い)。また、点群未検出の状況下と同じく、処理装置54は、トレイ検出処理に関してバッファ(例えばRAM72)に保持されているデータを消去する。
【0033】
5-3.「運搬車両検出」
運搬車両検出は、計測装置70からの点群データに基づき油圧ショベル1の周囲に運搬車両200に相当するサイズの物体が処理装置54により検出されているものの、トレイTが検出されていない状況である。運搬車両検出として、典型的には、運搬車両200は継続的に検出されているものの、運搬車両200への運搬物の積込の進捗に伴ってトレイTが運搬物に隠れてしまい、トレイTの左右少なくともいずれかの内壁面の形状が検出されなくなった状況が想定される。この状況下(つまり運搬物の積込作業中)では、処理装置54はトレイ検出処理を継続して実行すると共に、運搬車両200は停車したままであってトレイTが動いていないため、最新のトレイ検出結果を依然有効なデータとして制御装置40に出力する。つまり、「運搬車両検出」の状況下でトレイTは検出されないが、例えば運搬車両検出の状況に遷移する直前に「トレイ検出」の状況下で得られて保持されている最新のトレイ検出結果が制御装置40に出力される。また、運搬車両検出の状況下では、バッファ(例えばRAM72)に保持されている最新のトレイ検出結果が継続して保持される。
【0034】
5-4.「トレイ検出」
トレイ検出は、計測装置70からの点群データに基づき油圧ショベル1の周囲に運搬車両200に相当するサイズの物体が処理装置54により検出されており、なおかつトレイTが検出されている状況である。この状況下では、処理装置54はトレイ検出処理を継続して実行すると共に、リアルタイムに得られる最新のトレイ検出結果を制御装置40に逐次出力する。また、トレイ検出の状況下では、トレイ検出結果が逐次更新され、常時最新のトレイ検出結果がRAM72に保持される。
【0035】
5-5.「旋回中」
旋回中は、油圧ショベル1の旋回体7が予め設定された設定速度(例えば1~5deg/sec)以上の旋回速度で旋回している状況である。旋回速度は、例えば旋回体7に設けた角速度センサで計測される。本実施形態では計測装置70を旋回体7に設置しているため、旋回体7の旋回中は点群データの旋回方向の座標変換精度の低下に伴ってトレイ検出結果の精度が低下する可能性がある。そのため、運搬車両200が検出されているか否かに関わらず、処理装置54によるトレイ検出処理は実行されない。但し、運搬車両200に対する運搬物の積込作業中、旋回体7の旋回の前後で運搬車両200の位置は変化しないため、処理装置54は、運搬車両検出の状況下と同じく、最新のトレイ検出結果を有効なデータとして制御装置40に出力する。運搬物の積込作業中以外であれば、トレイ検出結果についてRAM72のデータは消去されているため、旋回中に制御装置40に出力されることはない。また、旋回中もRAM72に保持されている最新のトレイ検出結果が継続して保持される。
【0036】
5-6.「走行中」
走行中は、油圧ショベル1が移動している状況である。本実施形態においては、油圧ショベル1の移動中は、運搬車両200への運搬物の積込は行わないため、本実施形態では、処理装置54によるトレイ検出処理は実行されない。また、油圧ショベル1が移動すると、油圧ショベル1と運搬車両200との相対位置が変化するため、直前のトレイ検出結果を制御装置40に通知しない。また、点群未検出の状況下と同じく、処理装置54は、トレイ検出処理に関してRAM72に保持されているデータを消去する。
【0037】
なお、油圧ショベル1の走行動作は、センサ52e,52fで検出される右走行レバー23a及び左走行レバー23bの操作量が予め設定した設定値以上であるかで判定される。但し、油圧ショベル1の走行動作の検出方法はこれに限らず種々の方法が提要可能であり、例えば速度計で油圧ショベル1の車速を計測したり回転数センサで走行モータ4の回転数を計測したりすることでも検出可能である。
【0038】
6.処理装置
6-1.概説
処理装置54は、計測装置70が出力する点群から運搬車両200のトレイTを検出するトレイ検出処理を実行する。トレイ検出処理において、処理装置54は、まず計測装置70が出力する点群から水平方向に対向する2面を抽出し、抽出した2面の面間距離が既定の設定距離より長いかどうかを判定する。その結果、2面の面間距離が設定距離より長い場合に、処理装置54は、抽出した2面がトレイTの左右の壁面であると判定し、抽出した2面を左右の壁面とするトレイTを検出し、そのトレイTの現在位置を制御装置40に出力する。抽出される2面の面間距離と比較する設定距離は、少なくともフロント作業機2のバケット10の左右方向の幅よりも大きく、例えば運搬車両200として想定される車両の一般的な車幅かそれよりも若干小さく設定される。
【0039】
このトレイ検出処理は、好ましくは、運搬車両200が検出されていることを前提として実行されるようにすることができる。この場合、処理装置54は、トレイ検出処理に先行して、計測装置70が出力する点群から、予め設定された運搬車両相当サイズ以上の物体、又は走行輪に相当する円形を含んで検出された物体の検出処理を実行し、該当する物体が検出された場合にその物体を運搬車両200として検出する。抽出される物体と比較する運搬車両相当サイズとしては、例えば現場が鉱山である場合、運搬車両200に用いられるダンプカーの車幅が一般に小さいもので7m程度であるため、それよりも若干小さい値(例えば5~6m)が想定される。処理装置54は、このように運搬車両200を検出した上で、この運搬車両200として検出した物体の点群から、トレイ検出処理の一環として水平方向に対向する上記の2面を抽出する。
【0040】
計測装置70から点群が入力されない場合、及び運搬車両200が検出されない場合、処理装置54によるトレイ検出処理は中断される(実行されない)。この他にも、好ましくは、運搬車両200が検出されているか否かに関わらず所定の場合には処理装置54によるトレイ検出処理が中断される(実行されない)ようにすることができる。本実施形態の場合、左記に
図5で説明した通り、旋回中や走行中は処理装置54によるトレイ検出処理は実行されない。例えば、処理装置54は、角速度センサの出力に基づき、旋回体7が旋回中であると判定される場合(例えば旋回速度が1deg/sec以上である場合)、トレイ検出処理を実行しないようにプログラムされる。また、処理装置54は、走行センサ(例えばセンサ52e,52f)の出力に基づき油圧ショベル1が走行中であると判定される場合にはトレイ検出処理を実行しないようにプログラムされる。
【0041】
処理装置54は、所定の場合(例えば
図5の運搬車両検出、トレイ検出、旋回中の各状況)には、トレイ検出処理で得られたトレイTの最新の検出データを保持しておく。処理装置54は、トレイTが検出されなくなった場合でも、運搬車両200が検出されている間(例えば
図5の運搬車両検出、旋回中の各状況)には、保持した最新の検出データを、リアルタイムに検出されるデータと同等であるとして制御装置40に出力する。
【0042】
また、好ましくは、処理装置54は、トレイ検出処理の際、所定の場合にはトレイ検出結果を補正する。一例として、トレイ検出処理の際に抽出した2面の長手方向の長さを比較し、2面の長手方向の長さが異なる場合、長い方の面の検出データ(長さ)に合わせて短い方の面の検出データ(長さ)が補正されるように、処理装置54をプログラムすることができる。他の例として、処理装置54は、トレイ検出処理で検出したトレイTの長手方向の長さを閾値と比較し、検出したトレイTの長さが閾値より短い場合、予め定めた設定トレイ長(例えば閾値よりも若干長く設定した値)にトレイTの長さが補正されるように、プログラムされる。この場合の閾値は、運搬車両200のトレイTの前後長として一般に想定される値又はそれよりも若干短く予め設定した値であり、例えばROM71に記憶しておくことができる。トレイTの前後長を設定トレイ長に合わせる際、検出したトレイTの長さを、運搬車両200の検出結果を基に運搬車両200の前方に延ばして補正するように処理装置54をプログラムすることが望ましい。
【0043】
また、処理装置54は、トレイの検出データを計測装置70からの点群と重ねてモニタ55に表示させる。また、処理装置54は、トレイTの現在位置の制御装置40への出力を停止している間、トレイTの現在位置が検出されていない旨をモニタ55に表示させる。
【0044】
6-2.具体例
処理装置54の機能について具体的に説明する。
【0045】
図6は基準座標系を油圧ショベルと共に示す側面図、
図7はその平面図である。まず、処理装置54の例えばROM71には、油圧ショベル1の構成要素の位置や角度を特定する基準座標系として、走行体5を基準とする車体3のローカル座標系である予め設定された車体座標系400(
図6及び
図7)が記憶されている。本実施形態において、車体座標系400は、例えば旋回体7の回転軸である旋回中心線120と走行体5の接地面(地面Gと接する底面)との交点を原点とするXYZ右手直交座標系として定義される。車体座標系400は、走行体5の前進方向をX軸の正方向、旋回中心線120に沿って走行体5から旋回体7に向かう方向をZ軸の正方向、走行体5の左方をY軸の正方向とする。車体座標系400において、旋回体7の旋回角度θsw(
図7)は、フロント作業機2がX軸方向の正を向き、かつフロント作業機2の中心線(
図7中の一点鎖線)が車体座標系400のX軸と平行な状態を0度とする。
【0046】
また、計測装置70を基準とする予め設定されたxyz右手直交座標系がセンサ座標系300として、作業現場の基準となる予め設定されたX’Y’Z’右手直交座標系が現場座標系500として、ROM71に記憶されている。なお、
図6中のLbmはブーム8の長さ(ブームピン8aとアームピン9aの中心間距離)、Lamはアーム9の長さ(アームピン9aとバケットピン10aの中心間距離)、Lbkはバケット10の長さ(バケットピン10aの中心とバケット先端の距離)である。
【0047】
図8は処理装置54によるトレイ検出処理に関する機能ブロック図である。
図8に示したように、処理装置54は、トレイ検出処理に関し、姿勢演算処理81、座標変換処理82、運搬車両検出処理83、状況判定処理84、検出結果補正処理85を実行する。以下に各処理の内容を順次説明していく。
【0048】
-姿勢演算-
姿勢演算処理81は、姿勢検出センサ53の検出信号に基づき、車体座標系400における油圧ショベル1の構成要素の位置や角度を演算する処理装置54の処理である。
【0049】
例えば、ブーム角度センサ14から出力されるブーム8の回動角度の検出信号を基に、X軸に対するブーム8の回動角度θbm(
図6)が演算される。また、アーム角度センサ15から出力されるアーム9の回動角度の検出信号を基に、ブーム8に対するアーム9の回動角度θam(
図6)が演算される。バケット角度センサ17から出力されるバケット10の回動角度の検出信号を基に、アーム9に対するバケット10の回動角度θbk(
図6)が演算される。旋回角度センサ19から出力される旋回体7の旋回角度の検出信号を基に、走行体5に対する旋回体7の旋回角度θsw(
図7)が演算される。
【0050】
更に、傾斜角センサ(不図示)から出力される車体3の傾斜角の検出信号を基に、基準面DP(
図6)に対する車体3(走行体5)の傾斜角θg(
図6)が演算される。基準面DPは、例えば重力方向に直交する水平面である。傾斜角θgには、Y軸周りの回転角θp(不図示)、及びX軸周りの回転角θr(不図示)を成分として含む。また、姿勢検出センサ53の検出信号を基に、旋回体7の旋回角速度ωswが演算される。
【0051】
-座標変換-
座標変換処理82は、姿勢演算処理81で演算された車体各部の位置や角度のデータを用い、計測装置70の出力点群をセンサ座標系300の値から車体座標系400の値に座標変換する処理である。計測装置70が出力する点群は、センサ座標系300で示される3次元の点データPs(Xps,Yps,Zps)の集合である。センサ座標系300における点データ(Xps,Yps,Zps)は、次の(式1)~(式3)を用いて車体座標系400における点データPv(Xpv,Ypv,Zpv)に変換される。
【0052】
【0053】
【0054】
【0055】
ここで、Rsvは、センサ座標系300の座標を車体座標系400の座標に変換する回転行列であり、回転行列Rsvにおけるαs,βs,γsは車体座標系400における計測装置70のxyz各軸に対する傾斜角度である。計測装置70が油圧ショベル1に固定されている場合、αs,βs,γsは、例えば、計測装置70の位置や角度を車体座標系400で測定することで取得し、ROM71又は記憶装置57に事前に保存しておくことができる。
【0056】
θswは、旋回体7の旋回角度であり、姿勢演算処理81で演算される。
【0057】
Tsvは、車体座標系400の原点を始端としセンサ座標系300の原点を終端とする並進ベクトルである。Tsvの成分Lsx,Lsy,Lszは、車体座標系400におけるセンサ座標系300の原点座標に等しい。計測装置70が固定式である場合、車体座標系400におけるセンサ座標系300の原点位置は不動であるため、Tsv(Lsx,Lsy,Lsz)は事前に測定してROM71又は記憶装置57に事前に保存しておくことができる。
【0058】
-運搬車両検出-
運搬車両検出処理83は、座標変換処理82で車体座標系400の値に変換された計測装置70の出力点群から、運搬車両200のトレイTの位置及び角度であるPdumpを算出する処理である。この運搬車両検出処理83では、「点群未取得」、「運転車両未検出」、「運搬車両検出」、「トレイ検出」のいずれかに該当するか否かも併せて判定される。運搬車両検出処理83のフローについては、
図1図13を用いて後述する。運搬車両検出処理83において、運搬車両200の位置及び角度は、具体的には次の原理で取得される。
【0059】
図9は運搬車両の基準座標系を示す側面図、
図10は平面図である。
図9及び
図10に示す通り、運搬車両200の後輪の中心軸上の車幅中心の点を原点するX”Y”Z”右手直交座標系を、運搬車両200の車体座標系600とする。X”軸は原点から車両の前方に向かう方向を正方向、Y”軸は原点から車輪軸に沿って左に向かう方向を正方向、Z”軸はX”Y”軸に直交し原点から車両の上方に向かう方向を正方向とする。本実施形態において、運搬車両200のトレイTの位置及び角度は、平面視で運搬車両200のトレイTの四隅に位置する4つ点Pd1,Pd2,Pd3,Pd4に基づき特定される。運搬車両検出処理83では、油圧ショベル1の車体座標系400に変換された計測装置70の出力点群から点Pd1~Pd4が抽出され、これら点Pd1~Pd4の座標が運搬車両200のトレイTの位置及び角度のデータ(Pdump)として得られる。運搬車両検出処理83は、所定の周期(例えば100ms~1sec程度)で実行される。
【0060】
-状況判定-
状況判定処理84は、制御装置40を介して取得されるレバー操作信号、姿勢演算処理81で演算される各部の位置及び角度、旋回体7の旋回速度を基に、「走行中」及び「旋回中」のいずれかに該当するか否かを判定する処理である。状況判定処理84のフローについては、
図12を用いて後述する。
【0061】
-検出結果補正-
検出結果補正処理85は、状況判定処理84で判定された状況により必要に応じて、運搬車両検出処理83で取得されたトレイTの検出結果のデータを補正する処理である。検出結果補正処理85を経て得られた最終的なトレイTの検出結果のデータは、制御装置40及びモニタ55に出力され、制御装置40による機体制御の基礎データとして用いられ、またモニタ55に表示されてオペレータに通知される。検出結果補正処理85の具体例は後述する。
【0062】
7.動作
7-1.一連の動作
図11はトレイ検出処理を含めた油圧ショベルの一連の動作の一例を示すフローチャートである。
図11では、積込作業時の油圧ショベル1の動作フローを例示している。
【0063】
(ステップS101)
まず、油圧ショベル1において、運搬物を積込可能な位置に運搬車両200が停車しているかを確認する。この運搬車両200の停車は、例えば作業現場で使用されるFMS(Fleet Management System)のような運搬車両200の配車管理システムから運搬車両停車通知信号を受信することにより、油圧ショベル1の例えば処理装置54により確認することができる。この場合には、配車管理システムのサーバとの無線通信をするための通信装置(不図示)が、油圧ショベル1に搭載されている。この他、運搬物を積込可能な位置に運搬車両200が停車したことをオペレータが目視確認し、運搬車両200が停車したことをオペレータが処理装置54に手動で入力するようにしても良い。つまり、オペレータの入力による入力信号により、運搬物を積込可能な位置に運搬車両200が停車しているかを処理装置54により確認することができる。
【0064】
(ステップS102)
運搬物を積込可能な位置に運搬車両200が停車したことを確認したら、油圧ショベル1は、積込作業の開始を検出する。積込作業の開始は、例えばセンサ52e,52fの出力に基づき、処理装置54により操作レバー22,23の操作を検出することで検出することができる。なお、積込作業の開始は、この方法に限らず、例えばFMS等の管制から掘削開始指令を受信することで検出することもできる。また、例えば積込作業の開始時には、運搬車両200に向かって旋回体7が旋回する等、積込作業の開始に伴う油圧ショベル1の動作を予め深層学習して得たデータに基づき、このデータに基づき操作レバー22,23の操作から積込作業の開始を検出する構成とすることもできる。
【0065】
(ステップS103)
積込作業の開始を検出したら、油圧ショベル1は、処理装置54により、運搬物を積み込む運搬車両200のトレイTの位置及び角度の現在のデータを取得し、制御装置40に出力する。ステップS103のトレイTの位置及び角度のデータの取得手順については後述する。
【0066】
(ステップS104)
トレイTの位置及び角度のデータを取得したら、油圧ショベル1は、制御装置40によりトレイTのデータに応じた積込制御を実行する。積込制御では、ステップS103で取得したトレイTの位置及び角度のデータに基づき、旋回体7及びフロント作業機2(ブーム8やアーム9)の少なくとも一方の動作が制御される。一例として、旋回操作信号が入力された場合、ブーム上げ操作がされていなくても(又は操作量が適正より小さくても)旋回のみならず旋回速度に応じたブーブ上げが自動又は半自動で指令される。この積込制御により、トレイTと衝突することなくフロント作業機2(特にバケット10)が掘削位置及び放出位置(放土位置)の間を移動する。
【0067】
(ステップS105)
油圧ショベル1は、積込制御とは別途に、現在傍らに停車している運搬車両200に対する積込作業の終了判定を行う。例えば、オペレータは、トレイTに対する運搬物の積込状態等を目視確認し、そのトレイTに対する積込作業を終える場合、操作レバー22,23又はモニタ55等で特定の操作を行って積込作業の終了を処理装置54に入力する。これに伴って入力される信号に基づき、処理装置54は積込作業の終了を判定することができる。なお、フロント作業機2のバケット積載量を例えばブームシリンダ11の圧力等で計測し、運搬車両200への累積積込量が規定値に達したら処理装置54が積込作業の終了を判定する構成とすることもできる。その他、運搬車両200に搭載された積載重量の計測器(例えばロードセル)の計測データを運搬車両200から受信し、計測データが規定値に達したら処理装置54が積込作業の終了を判定する構成とすることもできる。停車中の運搬車両200に対する積込作業が終了していないと処理装置54で判定されたら、油圧ショベル1はステップS105からステップS102に手順を戻し、現在停車中の運搬車両200に対する積込作業に係る一連の処理を繰り返す。
【0068】
(ステップS106)
停車中の運搬車両200に対する積込作業が終了したと処理装置54で判定されたら、油圧ショベル1は運転終了の判定を行う。運転終了の判定は、例えば、オペレータ(無人機の場合は管理者)が油圧ショベル1の原動機103を停止させる操作をした際に入力(又は入力停止)される信号により、処理装置54で判定される。運転終了の操作がなく運転継続中であると判定される場合、油圧ショベル1は、ステップS101に手順を戻し、次の運搬車両200が運搬物を積込可能な位置に停車するまで待機する。運転終了の操作がされた場合、油圧ショベル1は、処理装置54及び制御装置40の終了処理(遅延処理)を実行し、
図11のフローを終える。
【0069】
7-2.トレイ位置取得
前述したトレイTの位置及び角度のデータの取得手順(S103)について説明する。トレイTの位置及び角度のデータを取得する手順では、処理装置54により
図12~
図14及び
図19のフローが実行される。
図12及び
図13は状況判定のフローであり、
図14はトレイ検出処理のフロー、
図19は検出結果補正処理のフローである。具体的には、
図12のフローは、状況判定(
図8)の処理手順を表しており、計測装置70の変位によるトレイ検出処理の実行可否(つまり
図5の「旋回中」、「走行中」の状況に該当するか否か)が判定される。
図13のフローは、運搬車両検出処理83(
図8)の手順を表しており、「点群未取得」、「運搬車両未検出」、「運搬車両検出」、「トレイ検出」の状況に該当するか否かが、処理装置54により判定される。トレイ検出処理は、「トレイ検出」及び「運搬車両検出」のいずれの状況であるかを判定する過程で実行され、その手順が
図14で別に説明される。また、
図19のフローは、検出結果補正処理85(
図8)の手順を表している。トレイTの位置及び角度のデータの取得手順(S103)で実行されるこれらの処理について、次に順次説明する。
【0070】
7-2.状況判定処理84(
図8)の手順
図12は状況判定処理(
図8)の手順の一例を示すフローチャートである。
【0071】
(ステップS201)
状況判定処理84において、処理装置54は、まずオペレータによる操作レバー22,23の操作に伴ってセンサ52a~52f(
図2)から入力される操作信号を取得する。
【0072】
(ステップS202)
処理装置54は、入力された操作信号に基づき油圧ショベル1が走行中であるかを判定する。本実施形態では、センサ52e,52fから入力される走行操作信号が予め設定された閾値Vth以上であるか否かで、走行中であるか否かが判定される。
【0073】
(ステップS203)
ステップS202において走行操作信号が閾値Vth以上であると判定された場合、処理装置54は、油圧ショベル1が「走行中」であると状況判定し、現在の状況が「走行中」であることを示すデータをRAM72に格納し、状況データテーブル800に規定された処理を適宜実行して
図12の状況判定処理84のフローを終了する。
【0074】
(ステップS204)
一方、ステップS202において走行操作信号が閾値Vth未満であると判定された場合、処理装置54は、油圧ショベル1は走行中ではない(走行体5が地面に対して静止している)と判定し、姿勢演算処理81で演算した現在の旋回速度をRAM72から読み込む。
【0075】
(ステップS205)
ステップS204において現在の旋回速度を取得したら、処理装置54は、現在の旋回速度に基づき油圧ショベル1(旋回体7)が旋回中であるかを判定する。本実施形態では、現在の旋回速度が予め設定された閾値Ωth以上であるか否かで、旋回中であるか否かが判定される。
【0076】
(ステップS206)
ステップS205において旋回速度が閾値Ωth以上であると判定された場合、処理装置54は、油圧ショベル1が旋回体7の「旋回中」であると状況判定し、現在の状況が「旋回中」であることを示すデータをRAM72に格納し、状況データテーブル800に規定された処理を適宜実行して
図12の状況判定処理84のフローを終了する。
【0077】
(ステップS207)
一方、ステップS205において旋回速度が閾値Ωth未満であると判定された場合、処理装置54は、油圧ショベル1は旋回中ではない(走行体5に対して旋回体7が静止している)と判定し、運搬車両検出処理83(
図13)で取得される現在の検出結果を取得する。
【0078】
(ステップS208)
ステップS207において運搬車両検出処理83(
図13)による検出結果を取得したら、処理装置54は、取得した検出結果でRAM72に記憶されている状況判定のデータを更新し、
図12の状況判定処理84を終了する。
【0079】
7-3.運搬車両検出処理83(
図8)の手順
図13は運搬車両検出処理(
図8)の手順の一例を示すフローチャートである。このフローは、
図12の運搬車両検出処理83とは別個に(例えば並行して)処理装置54により実行される。或いは、
図12の状況判定処理84において「走行中」とも「旋回中」とも判定されない場合に、検出結果取得の処理(S207)として実行されるようにしても良い。この場合、
図13のステップS304,S305の処理(後述)は不要である。
【0080】
(ステップS301)
運搬車両検出処理83において、処理装置54は、まず計測装置70で計測された最新の点群データを取得する。例えば、処理装置54は、計測装置70が出力した点群データを座標変換処理82(
図8)でセンサ座標系300から車体座標系400の値に変換してRAM72に一時記憶しておき、
図11のステップS103の処理開始時点で最新のデータを読み出す。
【0081】
(ステップS302)
次に、処理装置54は、ステップS301で取得した最新の点群データの出力時刻(計測装置70から出力された時刻)を現在時刻と比較し、点群データの出力時刻から現在時刻までの経過時間が予め設定された設定時間ΔT(例えば1~3sec)以下であるか否かを判定する。点群データの出力時刻には、例えば、計測装置70から点群データが入力された際に処理装置54で付与されるタイムスタンプを用いることができる。また、現在時刻には、処理装置54の計時するリアルタイムの時刻が用いられる。
【0082】
(ステップS303)
ステップS302において経過時刻が設定時間ΔT以上であると判定された場合、処理装置54は、計測装置70から一定時間(つまり設定時間ΔT以上)点群データが入力されていない「点群未取得」であると状況判定する。そして、処理装置54は、現在の状況が「点群未取得」であることを示すデータをRAM72に格納し、状況データテーブル800に規定された処理を適宜実行して
図13の運搬車両検出処理83を終了する。
【0083】
(ステップS304)
ステップS302において経過時間が設定時間ΔTに満たないと判定された場合、つまりリアルタイムに点群データが取得されている状況である場合、処理装置54は、状況判定処理84(
図12)で判定された現在の状況のデータを取得する。ここでは、具体的には、「走行中」又は「旋回中」であるか否かのデータが、処理装置54によりRAM72から読み込まれる。
【0084】
(ステップS305)
状況判定処理84(
図12)の判定を読み込んだら、処理装置54は、運搬車両200やトレイTの検出処理の実行可否を状況データテーブル800(
図5)に基づき判定する。現在が「走行中」又は「旋回中」の状況であれば、検出処理の実行は不可であり、処理装置54は
図13の運搬車両検出処理83を終了する。反対に、ステップS305の判定は「点群未取得」の状況ではないことを条件に実行されるため、「走行中」でも「旋回中」でもなければ、処理装置54は検出処理に手順を移す。
【0085】
(ステップS306)
ステップS305において「走行中」でも「旋回中」でもないと判定されて検出処理に手順を移した場合、処理装置54は、ステップS301で取得した点群データから、油圧ショベル1の周囲の物体を検出する。例えば、処理装置54は、点群データについて各点の距離を計算し、隣接する点との距離が所定距離以下の点の集合(クラスタ)を抽出し、所定値よりも点数の多いクラスタを周囲物体として検出する。その際、ステップS301で取得された点群データから、地面を測距した点と推定される点を除去し、残りのデータを周囲物体の検出に用いる。例えば、点群データから地面に相当する平面を抽出し、抽出した平面に含まれる点群を、地面を測距した点と推定して除去することができる。そして、地面を測距した点を除去して残った各点について隣接点との間の距離(2点間距離)を算出し、2点間距離が所定値よりも小さい点の集合を、同一物体を捕らえた点群クラスタとして抽出する。物体として検出する点群クラスタの抽出には、例えば、Euclidean Cluster Extraction アルゴリズムを適用することができる。また、地面の抽出には、例えば、RANSAC(RANdom SAmple Consensus)アルゴリズムを適用することができる。
【0086】
(ステップS307)
周囲物体の検出処理を終えたら、処理装置54は、検出した周囲物体に運搬車両200が含まれているか否かを判定する。例えば、ステップS306の処理で検出される点群のクラスタを囲む最小の立方体を計算し、その立方体の一辺が予め設定された大きさ(例えば5m)以上である場合に、その立方体で囲まれた点群クラスタが運搬車両200を検出するデータであると判定することができる。なお、砂埃を計測した点群グラスタを運搬車両200として誤検出することを防止するも望まれる。その場合、例えば、点群のクラスタを囲む立方体の一辺が運搬車両の想定寸法の最大値又はそれよりも大きめに見積もった値(例えば10m)より大きい場合は、設定の大きさ以上の点群クラスタであっても運搬車両200として検出されないように処理装置54をプログラムすることができる。
【0087】
なお、前述した通り、運搬車両200の判定は、点群クラスタの大きさによる判定に限らず、運搬車両200の特徴的な幾何形状(例えばタイヤの円形)が抽出されるか否かで判定することもできる。
【0088】
(ステップS308)
ステップS307において運搬車両200が検出されていないと判定された場合、処理装置54は、「運搬車両未検出」であると状況判定し、現在の状況が「運搬車両未検出」であることを示すデータをRAM72に格納し、状況データテーブル800に規定された処理を適宜実行して
図13の運搬車両検出処理83を終了する。
【0089】
(ステップS309)
ステップS307において運搬車両200が検出されたと判定された場合、処理装置54は、トレイ検出処理を実行する。このトレイ検出処理では、運搬車両200と推定される点群クラスタについて、先に
図9及び
図10で説明したPdump(Pd1~Pd4)が算出される。トレイ検出処理(ステップS309)については、
図14を用いて後で説明する。
【0090】
(ステップS310)
トレイ検出処理を実行したら、処理装置54は、トレイ検出結果の成否を判定する。トレイ検出結果の妥当性は、トレイ検出処理で得られたPdumpに対して、幅方向の長さ(つまり左右の2面の面間距離)を算出し、それが所定の大きさ以上であるかで判定することができる。この時の所定の大きさは、例えば、運搬車両200の幅相当とする。また、計測装置70の計測範囲に油圧ショベル1のバケットが入り込む可能性がある場合、バケットの側面を運搬車両の側面と誤検出する可能性があるため、少なくともバケット幅以上とすることが望ましい。
【0091】
(ステップS311)
ステップS310においてトレイTが検出されたと判定された場合、処理装置54は、「トレイ検出」であると状況判定し、現在の状況が「トレイ検出」であることを示すデータ、及び運搬車両200やトレイTの検出結果のデータをRAM72に格納し、状況データテーブル800に規定された処理を適宜実行して
図13の運搬車両検出処理83を終了する。
【0092】
(ステップS312)
ステップS310においてトレイTが検出されないと判定された場合、処理装置54は、「運搬車両検出」であると状況判定し、現在の状況が「運搬車両検出」であることを示すデータをRAM72に格納し、状況データテーブル800に規定された処理を適宜実行して
図13の運搬車両検出処理83を終了する。
【0093】
7-4.トレイ検出処理
図14はトレイ検出処理の手順の一例を示すフローチャートである。トレイ検出処理では、次のように、運搬車両200のトレイTの左右の2面(例えばトレイTの左右の内壁面)が抽出され、トレイTの特徴点としてPdumpが出力される。
【0094】
(ステップS401)
トレイ検出処理を開始すると、処理装置54は、まず運搬車両200として抽出された点群クラスタのデータを取得する。
【0095】
(ステップS402)
運搬車両200として抽出された点群クラスタのデータを取得したら、処理装置54は、点群クラスタの各点の法線ベクトルを算出する。各点の法線ベクトルは、一般的手法で求めることができ、例えば最小二乗法により、局所的な点群に平面を当てはめ、その平面に直交するベクトルを法線ベクトルとして求めることができる。
【0096】
(ステップS403)
各点の法線ベクトルを算出したら、処理装置54は、隣接する点との距離が所定値以下で、かつ隣接する点と法線ベクトルが等しい(又は法線ベクトルの差異が所定値以下の)点群クラスタを抽出する(グルーピング処理)。法線を用いたグルーピング処理には、例えば、Region Growing アルゴリズムを適用することができる。
【0097】
(ステップS404)
グルーピング処理を実行したら、処理装置54は、グルーピングした点群クラスタ毎に近似平面を算出し、各点群クラスタの近似平面の法線ベクトルを算出する。近似平面の算出には、例えば、RANSACアルゴリズムを適用することができる。
【0098】
(ステップS405)
近似平面を算出したら、処理装置54は、不要な点群クラスタ、具体的にはステップS404で算出した法線ベクトルが重力方向ベクトルと平行な点群クラスタを除去する。例えば、法線ベクトルと車体座標系400のZ軸方向ベクトルとの内積を算出し、算出された内積が予め設定された閾値以上であるか否かで、法線ベクトルが重力方向ベクトルと平行であるか否かが判定される。運搬車両200のピッチ角θpitch(
図9)、ロール角θroll(
図9)及びヨー角θyaw(
図10)を取得できる場合、それらピッチ角及びロール角を加味して内積を計算しても良い。
【0099】
(ステップS406)
不要な点群クラスタを除去したら、処理装置54は、ステップS404で算出された近似平面を構成する点群クラスタから、トレイTの左右の内壁面としてペアをなす(例えば近似平面が平行な)点群クラスタの有無を判定する。例えば、ステップS404で抽出された各点群クラスタについて、各々の近似平面の法線ベクトルの内積の絶対値が予め設定した閾値以上で、かつ内積が最大の組み合わせが、トレイTの左右の2面として算出される。
【0100】
なお、運搬車両200のトレイには様々な形状がある。
図15~
図18は、運搬車両のトレイTを車幅方向に延びる鉛直面で切断した断面の模式図である。
図16のトレイTは左右の側面が平面でかつ平行な例であるが、トレイTによっては、
図15のように左右の側面は平面であるものの、面間距離が上方ほど広がっており、左右の側面が平行でない場合もある。また、
図17や
図18に示したように、トレイTの左右の側面の一部又は全部が曲面で形成されている場合もある。この場合には、点群クラスタから算出した近似平面の法線を比較する代わりに、例えば、車体座標系400におけるXY平面への近似平面の法線ベクトルの射影ベクトルを比較し、トレイTの左右の2面を構成するペアを抽出することができる。
【0101】
(ステップS407)
ステップS406においてペアをなす2面が抽出されていないと判定された場合(例えば内積の絶対値が閾値以上の近似平面のペアが存在しない場合)、処理装置54は、ステップS402(
図13)に手順を移す(
図14のトレイ検出を終了する)。
【0102】
(ステップS408)
ステップS406においてペアをなす2面が抽出されたと判定された場合、処理装置54は、トレイTの四隅の頂点(
図10の点Pd1~Pd4)を算出する。例えば、点群の構成する各点群クラスタの上端面をなす2つの点群(線状に並ぶ点群)を抽出し、これら2つの点群の両端(始点及び終点)を点Pd1~Pd4として抽出する。その際、運搬車両200が検出済みであるため、処理装置54は、トレイTの前後を検出することができる。
【0103】
(ステップS409)
トレイTの四隅の点Pd1~Pd4を算出したら、処理装置54は、ステップS401(
図13)に手順を移す(
図14のトレイ検出を終了する)。
【0104】
7-5.検出結果補正の処理手順
図19は検出結果補正処理(
図8)の手順の一例を示すフローチャートである。運搬車両検出処理83によるトレイTの検出結果は、以下に説明するように所定の場合に補正処理される。
【0105】
(ステップS501)
運搬車両検出処理83及び状況判定処理84を終えたら、処理装置54は、運搬車両検出処理83及び状況判定処理84で得られた状況判定やトレイ検出結果のデータを、RAM72から読み込む。
【0106】
(ステップS502)
次に、処理装置54は、状況データテーブル800に基づき、検出結果の出力可否を判定する。つまり、現在の状況が「運搬車両検出」、「トレイ検出」又は「旋回中」であるか、それ以外の状況であるかを判定する。
【0107】
(ステップS503)
現在の状況が「運搬車両検出」、「トレイ検出」又は「旋回中」である場合、処理装置54は、運搬車両検出処理83で検出されたPdumpの点Pd1~Pd4の座標を補正する。
【0108】
図20及び
図21はトレイ検出データの補正の一例の説明図である。トレイTは上から見て一般に矩形である。しかし、例えばトレイTに積み込まれた土砂等の運搬物が干渉してトレイTの四隅が計測装置70で測距されない場合、計測装置70から出力される点群の偏りが影響する場合等、検出されたトレイTが
図20及び
図21のように台形になることがある。そこで、現実のトレイTが矩形であることを前提として、台形状に検出されたトレイTの点Pd1~Pd4を矩形の頂点となるように補正する。なお、
図20及び
図21において、ステップS503の補正前のトレイTの頂点を点Pd1,Pd2,Pd3,Pd4、補正後のトレイTの頂点を点Pd1’,Pd2’,Pd3’,Pd4’と表示する。
【0109】
点Pd1~Pd4の補正は、例えば次の(式4)~(式8)を用いて処理装置54により実行される。
図20及び
図21の例では、線分Pd3-Pd4と線分Pd1-Pd2が平行であるが、長さが異なる。同例では、短い方の線分Pd1-Pd2の長さを長い方の線分Pd3-Pd4の長さに合わせ、点Pd1’~Pd4’が矩形をなすように点Pd1,Pd2を点Pd1’,Pd2’に補正する場合を例示している。
図20において点Pd1が点Pd1’に補正され、更に
図21において点Pd2が点Pd2’に補正されている。
【0110】
【0111】
【0112】
【0113】
【0114】
【0115】
(ステップS504)
頂点を矩形に補正したら、処理装置54は、補正後の点Pd1’~Pd4’で仮想されるトレイTの前後長として検出トレイ長Lrecgを算出する。Lrecgは補正後のPdumpにおけるベクトルA(
図20)及びベクトルD(
図21)の長さに等しい。
【0116】
(ステップS505)
検出トレイ長Lrecgを算出したら、処理装置54は、Lrecgが予め設定された閾値Lth未満であるかを判定する。
【0117】
(ステップS506)
LdumpがLth未満である場合、処理装置54は、Ldumpが予め設定された設定トレイ長Ldumpになるように点Pd1~Pd4の座標を補正する。
【0118】
図22はトレイ長の補正の一例の説明図である。検出トレイ長Lrecgは、同図が示すように運搬車両200の進行方向(前方)に延長される。具体的には、点Pd2’,Pd3’の座標が(式9)を用いて点Pd2”,Pd3”に補正される。
【0119】
【0120】
(ステップS507)
トレイ長の長さを補正したら、又はステップS505でLdump≧Lthであった場合、処理装置54は、補正されたトレイTの位置及び角度のデータ(Pdump)を制御装置40及びモニタ55に出力し、検出結果補正処理85に関する
図19の手順を終了する。
【0121】
8.表示例
図23はトレイTの検出結果の表示例を示す図である。同図の例では、処理装置54によって検出された運搬車両200の位置及び角度のデータ(Pdump)として、線分Pd1-Pd2及び線分Pd3-Pd4が、計測装置70で測定された点群に重ねて表示されている。これにより、点群からトレイTの側面の上端面が検出されていることをオペレータに知らせることができる。油圧ショベル1に搭乗するオペレータは、この表示から処理装置54によるトレイTの検出状態を目視確認することができ、例えば積込制御の作動タイミングの参考にすることができる。
【0122】
また、好ましくは、計測装置70で測定される点群のうち、運搬車両検出処理83においてトレイTの左右の側面として抽出された点群は、同図に示したように色又は濃度を変更する等して他の部分と区別して表示される。トレイの側面平面を適切に検出しているか目視で確認することができる。
【0123】
また、同図の例では、状況データテーブル800で定義された状況に応じて表示色を変更した枠Fが表示される。例えば処理装置54がトレイTを検出している間、例えば枠Fを青や緑で表示することで、トレイTが検出されていることをオペレータが直感的に確認できる。また、砂埃等で運搬車両200が検出されない場合、例えば枠Fを赤色で表示することで、運搬車両200が検出されていないことをオペレータが直感的に確認できる。このようにトレイ検出状況をオペレータに知らせることで、オペレータが油圧ショベル1の操作について自動制御を適用して良いか否かを適切に判断できる。また、同図のように「トレイ検出中」等のテキスト情報Iで状況を具体的に知らせることもできる。
【0124】
また、状況データテーブル800に応じて処理装置54による検出の状況を表示する場合、トレイTの現在位置の出力が停止している間(例えば「点群未取得」、「運搬車両未検出」、「走行中」)、トレイTの現在位置が検出されていない旨をモニタ55に表示させることもできる。
【0125】
9.効果
(1)計測装置70が出力する点群から水平方向に対向する2面を抽出し、抽出した2面の面間距離が既定の設定距離より長いかを判定し、面間距離が設定距離より長い場合に、2面を左右の壁面とするトレイTを検出する。このように運搬車両200に共通する特徴に基づいてトレイTを検出することにより、機械学習に頼ることなく、トレイTを検出することができる。データのない運搬車両であっても精度良くそのトレイTの位置を検出することができる。勿論、新たな作業現場においても運搬車両200のトレイTを検出することができる。新たな機械学習が不要であるため、作業現場において処理装置54の調整時間も短縮することができる。トレイTの検出データを油圧ショベル1による積込動作の制御に適用することで、土砂運搬作業の生産性も向上する。
【0126】
(2)抽出した2面の面間距離と比較する設定距離を、少なくともフロント作業機2のバケット10の幅より大きく設定することで、計測装置70でバケット10が測定されて周囲物体として誤検出されることを抑制することができる。
【0127】
(3)また、本実施形態においては、計測装置70が出力する点群から、予め設定された大きさ以上の物体、又は走行輪に相当する円形を含んで検出された物体を運搬車両200として検出し、この運搬車両200の点群から水平方向に対向する2面を抽出する。このように運搬車両200が検出されることを前提としてトレイTを検出することにより、運搬車両200の構成要素であるトレイTを合理的に検出することができる。
【0128】
(4)計測装置70から点群が入力されない場合や、運搬車両200が検出されない場合、トレイ検出処理に実効性が確保されない場合には、トレイ検出処理を中断することで、処理装置54の負荷を軽減することができる。
【0129】
(5)旋回中や走行中でもトレイ検出処理自体は実行可能であるが、旋回中や走行中は計測装置70が変位するため、その間の点群の座標演算精度が低下する。そこで、本実施形態のように油圧ショベル1が旋回中又は走行中である場合にトレイ検出処理を中断することで、精度を欠く検出結果の出力を抑制すると共に、処理装置54の演算負荷を抑えることができる。
【0130】
(6)状況データテーブル800に規定された状況毎のアルゴリズムが規定されているため、例えば運搬物の積込に伴ってトレイTが検出されなくなった場合でも、運搬車両200が検出されている間、最新の検出データが制御装置40やモニタ55に出力される。このように、トレイ検出処理の実行可否や検出結果の管理方法を予め規定しておくことで、状況に応じて精度良くトレイTを検出したり処理装置54の負荷を抑えたり柔軟な対応を取ることができる。また、「運搬車両検出」や「旋回中」は、トレイTこそ検出されないものの有効なトレイ検出データを保持しておくことができ、有効なトレイ検出データが出力される機会が増加して生産性が向上する。
【0131】
(7)トレイ検出処理の際に抽出した2面の長手方向の長さが異なる場合、長い方の面に合わせて短い方の面の検出データが補正される。例えば運搬物が邪魔して計測装置70で検出される部位の割合にトレイTの左右の2面で差が生じる場合でも、トレイTの左右の2面が現に左右対称であることから、トレイTの検出部位を合理的に拡大することができる。
【0132】
(8)また、鉱山現場における運搬車両200のトレイTは、積み込んだ土砂が前方に寄るように、
図9の模式図に示したように底に前方に下る傾斜がついている場合が多い。この場合、トレイTへの土砂の積込の進捗に伴い、トレイTの左右の内壁面における前側の部分が計測装置70で計測できなくなり、ステップS504においてLrecgがトレイTの現実の長さよりも大分短く算出される場合がある。
【0133】
そこで、本実施形態では、検出されたトレイTの長さ、すなわち検出トレイ長Lrecgが閾値Lthより短い場合、検出トレイ長Lrecgを設定トレイ長Ldumpに補正する。その際、上記のようにトレイTが前部の方が検出され難い事情を反映して、検出トレイ長Lrecgを前方に延ばして補正することで、トレイTの全体を合理的に検出することができる。
【0134】
(9)計測装置70が旋回体7、特に本実施形態の場合は運転室20の上部に設置されているので、運搬車両200を計測装置70で合理的に測定することができる。
【0135】
(10)トレイTの検出データを計測装置70からの点群と重ねてモニタ55に表示ことで、点群からトレイTの側面の上端面が検出されていることをオペレータに知らせることができる。油圧ショベル1に搭乗するオペレータは、この表示から処理装置54によるトレイTの検出状態を目視確認することができ、例えば積込制御の作動タイミングの参考にすることができる。
【0136】
(11)計測装置70で測定される点群のうち、運搬車両検出処理83においてトレイTの左右の側面として抽出された点群が、色や濃度等で強調して表示される。これにより、オペレータは、強調表示された点群の形状等から、処理装置54がトレイTを適切に検出しているかを視覚的に確認することができる。モニタ55に状況に応じて表示色を変更する枠Fや、具体的に状況を説明するテキスト情報Iの表示も、オペレータに状況を効果的に知らせることができる。
【0137】
(第2実施形態)
図24は本発明の第2実施形態に係る作業機械に備わった処理装置によるトレイ検出処理に関する機能ブロックである。同図において、第1実施形態と同一の又は対応する要素については、既出図面と同符号を付して説明を省略する。
【0138】
本実施形態に係る作業機械には、運搬車両200の位置データを受信する通信装置60が備わっている。処理装置54は、通信装置60を介して配車管理システム(例えばFMS)から油圧ショベル1の周囲の運搬車両200の位置データを受信する。本実施形態の処理装置54は、この通信装置60で受信した運搬車両200の位置データに基づき、予め設定されたエリアに運搬車両200が位置すると判断される場合にのみ、トレイ検出処理を実行する。第1実施形態では、運搬車両200の存否に関わらずトレイ検出処理(
図11のステップS103のトレイ位置取得の手順)が周期的に実行される。それに対し、本実施形態の処理装置54は、通信装置60を介する受信データに基づき、設定エリアに運搬車両200が入ってから出ていくまでの間にのみ、トレイ検出処理(
図11のステップS103のトレイ位置取得の手順)を実行する。その他の点について、本実施形態は第1実施形態と同様である。
【0139】
本実施形態によれば、第1実施形態と同様の効果に加え、トレイ検出処理が需実行される機会を油圧ショベル1の周囲に運搬車両200が位置しているときのみに限定することで、第1実施形態と比べて処理装置54の処理負荷が軽減される効果が得られる。また、通信装置60を介して受信する配車データに基づき、運搬車両200が現実に油圧ショベル1の傍らに位置する状況でトレイ検出処理が実行されるので、トレイTの検出精度も向上する。
【0140】
(変形例)
なお、本発明の実施形態は以上に限定されず、発明の要旨を逸脱しない範囲内の様々な変形例や組み合わせを含む。例えば、前述した本質的な効果(1)を得るための構成(アルゴリズムを含む)を除き、その他の構成については、適宜省略又は変更しても構わない。幾つか例を挙げると、例えば、油圧ショベル1は運転室20に搭乗するオペレータが操作する構成としたが、効果(1)を得る限りにおいて油圧ショベル1は有人機であっても無人機であっても構わない。無人機の場合、処理装置54には、搭乗したオペレータの操作に伴う操作信号ではなく、例えば管制局等から無線通信で受信される操作信号が入力されるように設計変更される。また、計測装置70として、光軸をスイングさせて物体をスキャンするタイプを適用することもできる。この場合には、センサ座標系300から車体座標系400に座標変換する回転行列Rsvとして、光軸の動きに応じてダイナミックに変化する行列を適用する。また、トレイ長の補正で検出トレイ長Lrecgと比較される閾値Lthや補正目標である設定トレイ長Ldumpは、固定値でなくても良く、例えば過去のトレイ検出処理のトレイ検出結果のログデータに基づき設定される値であっても良い。
【符号の説明】
【0141】
1…油圧ショベル(作業機械)、2…フロント作業機、5…走行体、7…旋回体、10…バケット、19…旋回角度センサ、20…運転室、52e,52f…センサ(走行センサ)、54…処理装置、55…モニタ、60…通信装置、70…計測装置、200…運搬車両、Ldump…設定トレイ長、Lth…閾値、T…トレイ