本発明を実施するための形態(実施形態)につき、図面を参照しつつ詳細に説明する。
<油圧ショベルの全体構成>
図1は、実施形態に係る校正システムを備えた油圧ショベル100の斜視図である。図2は、実施形態に係る油圧ショベル100の運転席付近を斜視図である。図3は、実施形態に係る油圧ショベルが有する作業機2の寸法及び油圧ショベル100の座標系を示す図である。
作業機械である油圧ショベル100は、車体1及び作業機2を有する。車体1は、旋回体3、運転室4及び走行体5を有する。旋回体3は、走行体5に旋回可能に取り付けられている。旋回体3は、図示しない油圧ポンプ及びエンジン等の装置を収容している。運転室4は旋回体3の前部に配置されている。運転室4内には、図2に示される操作装置25が配置される。走行体5は履帯5a,5bを有しており、履帯5a,5bが回ることにより油圧ショベル100が走行する。
作業機2は、車体1の前部に取り付けられており、ブーム6、アーム7、作業具としてのバケット8、ブームシリンダ10、アームシリンダ11及びバケットシリンダ12を有する。実施形態において、車体1の前方は、図2に示される運転席4Sの背もたれ4SSから操作装置25に向かう方向側である。車体1の後方は、操作装置25から運転席4Sの背もたれ4SSに向かう方向側である。車体1の前部は、車体1の前方側の部分であり、車体1のカウンタウエイトWTとは反対側の部分である。操作装置25は、作業機2及び旋回体3を操作するための装置であり、右側レバー25R及び左側レバー25Lを有する。運転室4内には、運転席4Sの前方にモニタパネル26が設けられる。
ブーム6の基端部は、ブームピン13を介して車体1の前部に回動可能に取り付けられている。ブームピン13は、ブーム6の旋回体3に対する回動中心に相当する。アーム7の基端部は、アームピン14を介してブーム6の先端部に回動可能に取り付けられている。アームピン14は、アーム7のブーム6に対する回動中心に相当する。アーム7の先端部には、バケットピン15を介してバケット8が回動可能に取り付けられている。バケットピン15は、バケット8のアーム7に対する回動中心に相当する。
図3に示されるように、ブーム6の長さ、すなわちブームピン13とアームピン14との間の長さはL1である。アーム7の長さ、すなわち、アームピン14とバケットピン15との間の長さはL2である。バケット8の長さ、すなわち、バケットピン15とバケット8の刃9の先端である刃先P3との間の長さは、L3である。
図1に示されるブームシリンダ10、アームシリンダ11及びバケットシリンダ12は、それぞれ油圧によって駆動される油圧シリンダである。これらは、油圧ショベル100の車体1に備えられて、作業機2を動作させるアクチュエータである。ブームシリンダ10の基端部は、ブームシリンダフートピン10aを介して旋回体3に回動可能に取り付けられている。ブームシリンダ10の先端部は、ブームシリンダトップピン10bを介してブーム6に回動可能に取り付けられている。ブームシリンダ10は、油圧によって伸縮することによって、ブーム6を駆動する。
アームシリンダ11の基端部は、アームシリンダフートピン11aを介してブーム6に回動可能に取り付けられている。アームシリンダ11の先端部は、アームシリンダトップピン11bを介してアーム7に回動可能に取り付けられている。アームシリンダ11は、油圧によって伸縮することによって、アーム7を駆動する。
バケットシリンダ12の基端部は、バケットシリンダフートピン12aを介してアーム7に回動可能に取り付けられている。バケットシリンダ12の先端部は、バケットシリンダトップピン12bを介して第1リンク部材47の一端及び第2リンク部材48の一端に回動可能に取り付けられている。第1リンク部材47の他端は、第1リンクピン47aを介してアーム7の先端部に回動可能に取り付けられている。第2リンク部材48の他端は、第2リンクピン48aを介してバケット8に回動可能に取り付けられている。バケットシリンダ12は、油圧によって伸縮することによって、バケット8を駆動する。
図3に示されるように、ブーム6とアーム7とバケット8とには、それぞれ第1角度検出部18Aと、第2角度検出部18Bと、第3角度検出部18Cとが設けられている。第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cは、例えばストロークセンサである。これらは、それぞれが、ブームシリンダ10、アームシリンダ11及びバケットシリンダ12のストローク長さを検出することにより、車体1に対するブーム6の回動角と、ブーム6に対するアーム7の回動角と、アーム7に対するバケット8の回動角とを間接的に検出する。
実施形態では、第1角度検出部18Aは、ブームシリンダ10の動作量、すなわちストローク長さを検出する。後述する処理装置20は、第1角度検出部18Aが検出したブームシリンダ10のストローク長さから、図3に示される油圧ショベル100の座標系(Xm,Ym,Zm)のZm軸に対するブーム6の回動角δ1を演算する。以下において、油圧ショベル100の座標系を適宜、車体座標系と称する。図2に示されるように、車体座標系の原点は、ブームピン13の中心である。ブームピン13の中央とは、ブームピン13が伸びる方向と直交する平面でブームピン13を切ったときの断面の中心、かつブームピン13が伸びる方向における中心である。車体座標系は、実施形態の例には限定されず、例えば、旋回体3の旋回中心をZm軸とし、ブームピン13が延びる方向と平行な軸線をYm軸とし、Zm軸及びYm軸と直交する軸線をXm軸とするものであってもよい。
第2角度検出部18Bは、アームシリンダ11の動作量、すなわちストローク長さを検出する。処理装置20は、第2角度検出部18Bが検出したアームシリンダ11のストローク長さから、ブーム6に対するアーム7の回動角δ2を演算する。第3角度検出部18Cは、バケットシリンダ12の動作量、すなわちストローク長さを検出する。処理装置20は、第3角度検出部18Cが検出したバケットシリンダ12のストローク長さから、アーム7に対するバケット8の回動角δ3を演算する。
<撮像装置>
図2に示されるように、油圧ショベル100は、例えば、運転室4内に、複数の撮像装置30a,30b,30c,30dを有する。以下において、複数の撮像装置30a,30b,30c,30dを区別しない場合は適宜、撮像装置30と称する。撮像装置30の種類は限定されないが、実施形態では、例えば、CCD(Couple Charged Device)イメージセンサ又はCMOS(Complementary Metal Oxide Semiconductor)イメージセンサを備えた撮像装置が用いられる。
実施形態では複数(4個)の撮像装置30a,30b,30c,30dは、油圧ショベル100に取り付けられる。より詳細には、図2に示されるように、撮像装置30aと撮像装置30bとは所定の間隔をおいて同じ方向を向いて、例えば運転室4内に配置される。撮像装置30cと撮像装置30dとは所定の間隔をおいて同じ方向を向いて運転室4内に配置される。撮像装置30b及び撮像装置30dは、作業機2の方に若干向けて、すなわち、撮像装置30a及び撮像装置30c側の方に若干向けて配置されることもある。複数の撮像装置30a,30b,30c,30dは、2個が組み合わされてステレオカメラを構成する。実施形態では、撮像装置30a,30bの組合せと、撮像装置30c,30dの組合せとでステレオカメラが構成される。
実施形態において、油圧ショベル100は、4個の撮像装置30を有するが、油圧ショベル100が有する撮像装置30の数は少なくとも2個であればよく、4個に限定されない。油圧ショベル100は、少なくとも一対の撮像装置30でステレオカメラを構成して、対象をステレオ撮影するからである。
複数の撮像装置30a,30b,30c,30dは、運転室4内の前方かつ上方に配置される。上方とは、油圧ショベル100が有する履帯5a,5bの接地面と直交し、かつ接地面から離れる方向である。履帯5a,5bの接地面は、履帯5a,5bのうち少なくとも一方が接地する部分の、同一直線上には存在しない少なくとも3点で規定される平面である。複数の撮像装置30a,30b,30c,30dは、油圧ショベル100の車体1の前方に存在する対象をステレオ撮影する。対象は、例えば、作業機2が掘削する対象である。図1及び図2に示される処理装置20は、少なくとも一対の撮像装置30によるステレオ撮影の結果を用いて、対象を三次元計測する。すなわち、処理装置20は、少なくとも一対の撮像装置30が撮像した同一対象の画像にステレオ方式による画像処理を施して、前述した対象を三次元計測する。複数の撮像装置30a,30b,30c,30dが配置される場所は、運転室4内の前方かつ上方に限定されるものではない。
図4は、複数の撮像装置30a,30b,30c,30dが対象を撮像することによって得られた画像の一例を示す図である。図5は、複数の撮像装置30a,30b,30c,30dが撮像する対象OJの一例を示す図である。図4に示される画像PIa,PIb,PIc,PIdは、例えば、図5に示される複数の撮像装置30a,30b,30c,30dが対象OJを撮像することによって得られる。この例では、対象OJは、第1部分OJaと、第2部分OJbと、第3部分OJcとを有する。
画像PIaは撮像装置30aによって撮像されたものであり、画像PIbは撮像装置30bによって撮像されたものであり、画像PIcは撮像装置30cによって撮像されたものであり、画像PIdは撮像装置30dによって撮像されたものである。一対の撮像装置30a,30bは、油圧ショベル100の上方を向いて配置されているので、画像PIa,PIbには対象OJの上方が写っている。一対の撮像装置30c,30dは、油圧ショベル100の下方を向いて配置されているので、画像PIc,PIdには対象OJの下方が写っている。
図4から分かるように、一対の撮像装置30a,30bによって撮像された画像PIa,PIbと、一対の撮像装置30c,30dによって撮像された画像PIc,PIdとには、対象OJの領域の一部、この例では第2部分OJbが重複して写っている。すなわち、上方を向いている一対の撮像装置30a,30bの撮像領域と、下方を向いている一対の撮像装置30c,30dの撮像領域とは、重複する部分を有している。
処理装置20は、複数の撮像装置30a,30b,30c,30dが撮像した同一の対象OJの画像PIa,PIb,PIc,PIdにステレオ方式による画像処理を施す場合、一対の撮像装置30a,30bによって撮像された画像PIa,PIbから第1の視差画像を得る。また、処理装置20は、一対の撮像装置30c,30dによって撮像された画像PIc,PIdから第2の視差画像を得る。その後、処理装置20は、第1の視差画像と第2の視差画像とを合わせて、1つの視差画像を得る。処理装置20は、得られた視差画像を用いて対象を三次元計測する。このように、処理装置20及び複数の撮像装置30a,30b,30c,30dは、一回の撮像で対象OJの所定の領域全体を三次元計測する。
実施形態において、4個の複数の撮像装置30a,30b,30c,30dのうち、撮像装置30cを4個の撮像装置複数の撮像装置30a,30b,30c,30dの基準とする。撮像装置30cの座標系(Xs,Ys,Zs)を適宜、撮像装置座標系と称する。撮像装置座標系の原点は、撮像装置30cの中心である。撮像装置30a、撮像装置30b及び撮像装置30dのそれぞれの座標系の原点は、それぞれの撮像装置の中心である。
<校正システム>
図6は、実施形態に係る校正システム50を示す図である。校正システム50は、複数の撮像装置30a,30b,30c,30dと、処理装置20とを含む。これらは、図1及び図2に示されるように、油圧ショベル100の車体1に備えられている。複数の撮像装置30a,30b,30c,30dは、作業機械である油圧ショベル100に取り付けられて、対象を撮像し、撮像によって得られた対象の画像を処理装置20に出力する。
処理装置20は、処理部21と、記憶部22と、入出力部23とを有する。処理部21は、例えば、CPU(Central Processing Unit)のようなプロセッサ及びメモリによって実現される。処理装置20は、実施形態に係る校正方法を実現する。この場合、処理部21は、記憶部22に記憶されたコンピュータプログラムを読み込んで実行する。このコンピュータプログラムは、実施形態に係る校正方法を処理部21に実行させるためものである。
処理装置20は、実施形態に係る校正方法を実行する際に、少なくとも一対の撮像装置30によって撮像された一対の画像をステレオ方式における画像処理を実行することにより、対象の位置、具体的には三次元座標系における対象の座標を求める。このように、処理装置20は、同一の対象を少なくとも一対の撮像装置30で撮像することによって得られた一対の画像を用いて、対象を三次元計測することができる。すなわち、少なくとも一対の撮像装置30及び処理装置20は、ステレオ方式により対象を三次元計測するものである。実施形態において、少なくとも一対の撮像装置30及び処理装置20は、油圧ショベル100に備えられて、対象の位置を検出して出力する第1位置検出部に相当する。撮像装置30が、ステレオ方式による画像処理を実行して対象を三次元計測する機能を有している場合、少なくとも一対の撮像装置30が第1位置検出部に相当する。実施形態において、第1位置検出部は、第1の方法によって対象の位置を検出して出力する。第1の方法は、ステレオ方式により対象、例えば実施形態の作業機械である油圧ショベル100の所定の位置を三次元計測するものであるが、例えば、レーザ測長器によって油圧ショベル100の所定の位置を計測する方法であってもよく、ステレオ方式による三次元計測に限定されない。実施形態において、第1の方法で用いられる、油圧ショベル100の所定の位置は作業機2の所定の位置であるが、油圧ショベル100を構成する要素の所定の位置であれば、作業機2の所定の位置に限定されない。
記憶部22は、RAM(Random Access Memory)、ROM(Random Access Memory)、フラッシュメモリ、EPROM(Erasable Programmable Random Access Memory)、EEPROM(Electrically Erasable Programmable Random Access Memory)等の不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク及び光磁気ディスクのうち少なくとも1つが用いられる。記憶部22は、実施形態に係る校正方法を処理部21に実行させるためのコンピュータプログラムを記憶している。記憶部22は、処理部21が実施形態に係る校正方法を実行する際に使用される情報を記憶する。この情報は、例えば、各撮像装置30の内部校正データ、各撮像装置30の姿勢、撮像装置30同士の位置関係、作業機2等の既知の寸法、撮像装置30と油圧ショベル100に搭載された固定物との位置関係を示す既知の寸法、車体座標系の原点から各撮像装置30あるいはいずれかの撮像装置30までの位置関係を示す既知の寸法、及び作業機2の姿勢から作業機2の一部の位置を求めるために必要な情報を含む。
入出力部23は、処理装置20と機器類とを接続するためのインターフェース回路である。入出力部23には、ハブ51、入力装置52、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cが接続される。ハブ51は、複数の撮像装置30a,30b,30c,30dが接続されている。ハブ51を用いずに、撮像装置30と処理装置20とが接続されてもよい。撮像装置30a,30b,30c,30dの撮像した結果は、ハブ51を介して入出力部23に入力される。処理部21は、ハブ51及び入出力部23を介して、撮像装置30a,30b,30c,30dの撮像した結果を取得する。入力装置52は、処理部21が実施形態に係る校正方法を実行する際に必要な情報を入力するために用いられる。
入力装置52は、例えば、スイッチ及びタッチパネルが例示されるが、これらに限定されるものではない。実施形態において、入力装置52は、図2に示される運転室4内、より具体的には運転席4Sの近傍に設けられる。入力装置52は、操作装置25の右側レバー25R及び左側レバー25Lの少なくとも一方に取り付けられていてもよいし、運転室4内のモニタパネル26に設けられていてもよい。また、入力装置52は、入出力部23に取り外し可能であってもよいし、電波又は赤外線を用いた無線通信により入出力部23に情報を入力してもよい。
作業機2の各部の寸法及び第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cによって検出された情報である作業機2の回動角δ1,δ2,δ3から、車体座標系(Xm,Ym,Zm)における作業機2の所定の位置が求められる。作業機2の寸法及び回動角δ1,δ2,δ3から求められる作業機2の所定の位置は、例えば、作業機2が有するバケット8の刃9の先端の位置、バケットピン15の位置及び第1リンクピン47aの位置がある。第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cは、実施形態の作業機械である油圧ショベル100の位置、例えば作業機2の位置を検出する第2位置検出部に相当する。第2位置検出部は、第2の方法によって対象の位置を検出する。実施形態において、第2の方法は、実施形態の作業機械である油圧ショベル100の寸法及び姿勢から油圧ショベル100の所定の位置を求めるものであるが、第2の方法は第1の方法と異なるものであれば、実施形態の方法に限定されない。実施形態において、第2の方法で用いられる、油圧ショベル100の所定の位置は、第1の方法の計測対象となった油圧ショベル100の所定の位置と同一である。実施形態において、第2の方法で用いられる、油圧ショベル100の所定の位置は、作業機2の所定の位置であるが、油圧ショベル100を構成する要素の所定の位置であれば、作業機2の所定の位置に限定されない。
図7は、実施形態に係る校正方法を説明する図である。少なくとも一対の撮像装置30が撮像した対象の画像にステレオ方式による画像処理が施されることによって、対象の位置情報Ps(xs,ys,zs)が得られる。得られた位置情報Ps(xs,ys,zs)は、図7に示されるように、第1位置検出部の座標系である撮像装置座標系(Xs,Ys,Zs)から撮像装置座標系(Xs,Ys,Zs)とは異なる座標系の位置情報Pm(xm,ym,zm)に変換される。実施形態において、撮像装置座標系(Xs,Ys,Zs)とは異なる座標系は車体座標系(Xm,Ym,Zm)であるが、これに限定されるものではない。
少なくとも一対の撮像装置30から得られた位置情報Ps(xs,ys,zs)は、三次元の情報であり、実施形態では座標で表される。位置情報Ps(xs,ys,zs)を用いて、撮像装置30から対象までの距離が求められる。実施形態に係る校正方法は、少なくとも一対の撮像装置30から得られた位置情報Ps(xs,ys,zs)が、撮像装置座標系(Xs,Ys,Zs)から車体座標系(Xm,Ym,Zm)の位置情報Pm(xm,ym,zm)に変換される際に用いられる変換情報を求めるものである。すなわち、変換情報は、第1位置検出部である少なくとも一対の撮像装置30が検出した位置を、第1位置検出部の座標系から車体1の座標系に変換するために用いられる情報である。
撮像装置座標系の位置情報Psは、式(1)によって車体座標系の位置情報Pmに変換される。式(1)中のRは式(2)で表される回転行列、式(1)中のTは式(3)で表される並進ベクトルである。αは撮像装置座標系のXs軸周りの回転角度、βは撮像装置座標系のYs軸周りの回転角度、γは撮像装置座標系のZs軸周りの回転角度である。回転行列R及び並進ベクトルTが変換情報である。
Pm=R・Ps+T・・・(1)
処理部21は、実施形態に係る校正方法を実行するにあたり、前述した変換情報を求める。具体的には、処理部21は、少なくとも一対の撮像装置30によって検出された第1位置情報と、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cによって検出された第2位置情報とを用いて、変換情報を求めて出力する。実施形態において、少なくとも一対の撮像装置30は撮像装置30c、30dであるが、基準の撮像装置30cを含んでいればよい。第2位置情報は、各角度検出器18の検出値に加え、油圧ショベル100に搭載された、図1及び図2に示されるIMU(Inertial Measurement Unit:慣性計測装置)24の検出値も用いて求めてもよい。
第1位置情報は、第1位置検出部である少なくとも一対の撮像装置30及び処理装置20によって検出された作業機2の所定の位置、例えば、バケット8の刃9の位置の情報である。第2位置情報は、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cによって検出された、作業機2の所定の位置の情報である。第2位置情報は、第1位置検出部が所定の位置を検出したときの作業機2の姿勢で、第2位置検出部の一例である第1角度検出部18A等によって検出された情報である。第1位置情報及び第2位置情報は、いずれも作業機2が同一の姿勢であって、かつ作業機2の同一の位置の情報である。すなわち、第1位置情報及び第2位置情報は、作業機2が同一の姿勢の状態で作業機2の同一の位置が、異なる方法によって求められたものである。実施形態において、第1位置情報及び第2位置情報は、作業機2が動かされることにより作業機2が異なる姿勢となったときにそれぞれ得られた複数の情報であり、複数の状態で得られた複数の情報である。
第1位置情報及び第2位置情報は、作業機2の所定の位置を特定できる情報であればよい。例えば、第1位置情報及び第2位置情報は、作業機2自体の所定の位置の情報であってもよいし、作業機に取り付けられて作業機2との位置関係が既知である部材の位置の情報であってもよい。すなわち、第1位置情報及び第2位置情報は、作業機2自体の所定の位置の情報に限定されない。
処理装置20は、専用のハードウェアで実現されてもよいし、複数の処理回路が連携して処理装置20の機能を実現するものであってもよい。次に、処理装置20が実施形態に係る校正方法を実行する際の処理例を説明する。
<処理例>
図8は、実施形態に係る処理装置20が実施形態に係る校正方法を実行する際の処理例を示すフローチャートである。図9及び図10は、実施形態に係る処理装置20が実施形態に係る校正方法を実行する際に撮像装置30が撮像する対象を示す図である。図11から図13は、実施形態に係る処理装置20が実施形態に係る校正方法を実行する際に撮像装置30が撮像する対象の姿勢を示す図である。
実施形態に係る校正方法は、未知数である回転行列Rに含まれる角度α,β,γ及び並進ベクトルの成分x0,y0,z0を、少なくとも一対の撮像装置30によって得られた作業機2の所定の位置の情報である第1位置情報と、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cによって検出された第2位置情報とから求めるものである。処理装置20が実施形態に係る校正方法を実行するにあたり、処理部21は、ステップS101において、カウント数N,Mを0にする。
ステップS102において、処理部21は、一対の撮像装置30c、30dに対象を撮像させる。また、処理部21は、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cの検出値を取得する。
一対の撮像装置30c、30dが撮像する対象は、作業機2の所定の位置であり、実施形態では油圧ショベル100のバケット8、より具体的には刃9である。バケット8は、図9に示されるように、刃9にマークMKl,MKc,MKrが設けられている。マークMKlは向かって最も左側の刃9に設けられ、マークMKcは中央の刃9に設けられ、マークMKrは向かって最も右側の刃9に設けられる。以下において、マークMKl,MKc,MKrを区別しない場合、適宜、マークMKと称する。
ステップS102において、処理部21は、一対の撮像装置30c、30dがバケット8を撮像したときの作業機2の姿勢において、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cの検出値を取得する。このように、実施形態では、処理部21は、同じ作業機2の姿勢で、一対の撮像装置30c、30dによる撮像と、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cの検出値の取得とを実行する。処理部21は、撮像装置30による撮像の結果得られた画像と、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cの検出値とを、記憶部22に記憶させる。
実施形態において、マークMKl,MKc,MKrは、バケット8の幅方向W、すなわちバケットピン15が伸びる方向と平行な方向に並んでいる。実施形態において、バケット8の幅方向Wは、一対の撮像装置30c,30dが配列されている方向である。バケット8の幅方向Wにおける中央の刃9は、車体座標系において1つの平面、すなわちXm−Zm平面上しか移動しない。このため、中央の刃9のみ位置を求める場合、拘束条件が弱くなるため、一対の撮像装置30c、30dを用いたステレオ方式による位置の計測においては、車体座標系におけるYm軸方向の精度が低下する。
実施形態に係る校正方法は、バケット8の幅方向Wにおける複数の位置、具体的には3個の刃9の位置が計測され、第1位置情報とされる。このため、変換情報である回転行列R及び並進ベクトルTを求める際には、バケット8の幅方向Wに対して複数の平面の位置情報を利用できるので、回転行列R及び並進ベクトルTの精度低下が抑制される。実施形態に係る校正方法によって得られた回転行列R及び並進ベクトルTが、一対の撮像装置30c、30dを用いたステレオ方式による位置の計測に用いられることにより、車体座標系におけるYm軸方向の計測精度の低下が抑制される。
実施形態において、バケット8は、3個の刃9にマークMKl,MKc,MKrが設けられるが、マークMKの数、すなわち計測対象となる刃9の数は3個に限定されない。マークMKは、少なくとも1個の刃9に設けられてもよい。ただし、一対の撮像装置30c、30dを用いたステレオ方式による位置の計測の精度が低下することを抑制するため、実施形態に係る校正方法では、2個以上のマークMKがバケット8の幅方向Wに離れた位置に設けられて、2個以上の刃9が計測されることが、高い計測精度を得る上で好ましい。
図10は、刃9の位置の代わりに、作業機2に取り付けられた計測用ターゲット60が用いられる例を示している。この例において、少なくとも一対の撮像装置30及び処理部21は、作業機2に取り付けられた計測用ターゲット60の位置を計測し、実施形態に係る校正方法において第1位置情報として用いる。計測用ターゲット60は、マークMKa,MKbが設けられたターゲット部材63a,63bと、2個のターゲット部材63a,63bを連結する軸部材62と、軸部材62の一端部に取り付けられた固定用部材61とを有する。
ターゲット部材63a,63bは、軸部材62が延びる方向に並んで配置される。固定用部材61は磁石を有している。固定用部材61は、作業機2に吸着することにより、例えば、ターゲット部材63a,63b及び軸部材62を作業機2に取り付ける。このように、固定用部材61は、作業機2に取り付けることができ、かつ作業機2から取り外すことができる。実施形態では、固定用部材61がバケットピン15に吸着して、ターゲット部材63a,63b及び軸部材62を作業機2に固定している。バケットピン15に計測用ターゲット60が取り付けられると、ターゲット部材63a,63bがバケット8の幅方向Wに並んで配置される。
計測用ターゲット60が有するマークMKa,MKbの位置は計測用ターゲット60の寸法から予め求められる。計測用ターゲット60の固定用部材61が取り付けられる作業機2の部分と、刃9の位置とは、バケット8の寸法から予め求められる。したがって、計測用ターゲット60が有するマークMKa,MKbの位置が分かれば、バケット8の刃9の位置が分かる。計測用ターゲット60が有するマークMKa,MKbとバケット8の刃9との位置関係は、処理装置20の記憶部22に記憶されている。処理部21は、実施形態に係る校正方法を実行する場合、記憶部22からマークMKa,MKbとバケット8の刃9との位置関係を読み出して、第1位置情報又は第2位置情報を生成する際に用いる。
ステップS102において一対の撮像装置30c、30dによる撮像及び第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cの検出値を用いた所定の位置の計測が終了したら、処理はステップS103に進む。ステップS103において、処理部21は作業機2を動作させて、バケット8を地面から離れる方向、すなわち上方に移動させる。ステップS104において、処理部21は、カウント数Nに1を加えた値を新たなカウント数Nとする。
ステップS105において、処理部21は、現在のカウント数MがMc−1以下である場合、現在のカウント数Nとカウント数閾値Nc1とを比較する。現在のカウント数MがMcである場合、処理部21は、現在のカウント数Nとカウント数閾値Nc2とを比較する。実施形態において、カウント数閾値Nc1は2である。カウント数閾値Nc2はカウント数閾値Nc1よりも小さく、例えば1である。
ステップS105において、カウント数Nがカウント数閾値Nc1でない場合(ステップS105,No)、処理部21は、ステップS102からステップS105の処理を繰り返す。ステップS105において、カウント数Nがカウント数閾値Nc1である場合(ステップS105,Yes)、処理はステップS106に進む。
ステップS106において、処理部21は、作業機2を動作させてバケット8を奥行き方向、すなわち図1に示される旋回体3から遠ざかる方向に移動させる。ステップS107において、処理部21は、カウント数Mに1を加えた値を新たなカウント数Mとする。ステップS108において、処理部21は、現在のカウント数Mとカウント数閾値Mcとを比較する。実施形態において、カウント数閾値Mcは2である。
ステップS108において、カウント数Mがカウント数閾値Mcでない場合(ステップS108,No)、処理部21は、ステップS109において、カウント数Nを0にする。その後、処理部21は、ステップS102からステップS105の処理を実行する。
ステップS101からステップS105により、一対の撮像装置30c、30dは、複数の撮像装置30とバケット8との水平距離Lが等しい条件で、油圧ショベル100の上下方向にNc+1回、バケット8を撮像する。すなわち、一対の撮像装置30c,30dは、バケット8の上下方向の位置を異ならせて、Nc+1回撮像する。水平距離Lは、油圧ショベル100の接地面、すなわち図1に示される履帯5a,5bの接地面と平行、かつ図2に示されるブームピン13が伸びる方向と直交する方向における、旋回体3とバケット8との距離である。複数の撮像装置30は、ステップS106からステップS108を繰り返すことにより、油圧ショベル100の接地面と平行な旋回体3とバケット8との距離である水平距離LをMc+1回異ならせる。すなわち、一対の撮像装置30c,30dは、バケット8の水平距離Lを異ならせて、Nc+1回撮像する。
具体的には、図11に示されるように、一対の撮像装置30c、30dは、水平距離L=L1において、位置Aと、位置Aよりも高い位置Bと、位置Bよりも高い位置Cとの3箇所でバケット8を撮像する。このため、水平距離L1においては、異なる3段階の高さでマークMKl,MKc,MKrの位置の情報が得られる。位置A,B,Cは、図11中の矢印hで示す方向の方が、より高くなる。
図12に示されるように、一対の撮像装置30c、30dは、水平距離L=L2において、位置Dと、位置Dよりも高い位置Eと、位置Eよりも高い位置Fとの3箇所でバケット8を撮像する。このため、水平距離L2においても、異なる3段階の高さでマークMKl,MKc,MKrの位置の情報が得られる。水平距離L2は、水平距離L1よりも大きい。水平距離L2が水平距離L1よりも大きいことは、バケット8が、撮像装置30c及び撮像装置30dから遠い位置にあることを示す。位置D,E,Fは、図12中の矢印hで示す方向の方が、より高くなる。
図13に示されるように、一対の撮像装置30c、30dは、水平距離L=L3において、位置Gと、位置Gよりも高い位置Hとの2箇所でバケット8を撮像する。このため、水平距離L3においては、異なる2段階の高さでマークMKl,MKc,MKrの位置の情報が得られる。水平距離L3は、水平距離L2よりも大きい。水平距離L3が水平距離L2よりも大きいことは、バケット8が、撮像装置30c及び撮像装置30dからさらに遠い位置にあることを示す。位置G,Hは、図13中の矢印hで示す方向の方が、より高くなる。
実施形態において、水平距離が最も大きいL3である場合、一対の撮像装置30c、30dは上下方向の2箇所でバケット8を撮像するが、上下方向における撮像箇所は2箇所に限定されない。また、水平距離Lを一定として上下方向にバケットを移動させてバケット8が撮像される場合、上下方向における撮像箇所は実施形態のものには限定されない。
バケット8は、水平距離L1で3回、水平距離L2で3回、水平距離L3で2回の計8回、一対の撮像装置30c、30dによって撮像される。ステレオ方式による三次元計測において、計測の対象となる部分、実施形態ではマークMKl,MKc,MKrが、一対の撮像装置30c、30dによって撮像された画像の端にある方が拘束条件は強まるので、計測の精度が向上する。このため、処理部21は、同じ水平距離Lにおいては、高さを変更して複数箇所でバケット8、より具体的にはマークMKl,MKc,MKrを一対の撮像装置30c、30dに撮像させる。このようにすることで、複数の撮像装置30によって撮像された画像の両端、具体的には上下方向における両端にマークMKl,MKc,MKrが配置されるので、計測の精度が向上する。
実施形態において、水平距離Lは3段階に変化させ、高さ方向の撮像回数は3回又は2回としたが、これに限定されない。水平距離Lを変化させる回数は、カウント数閾値Mcを変更することにより変更される。高さ方向の撮像回数は、カウント数閾値Nc1及びカウント数閾値Nc2の少なくとも一方を変更することにより変更される。
ステレオ方式による三次元計測において、遠方に存在する対象を計測した方が、より広い範囲においてステレオ方式による三次元計測の精度は向上する。このため、処理部21は、バケット8の水平距離Lを変更してバケット8、より具体的にはマークMKl,MKc,MKrを一対の撮像装置30に撮像させる。このようにすることで、広い範囲で三次元計測の精度が向上する。
ステップS108に戻り、カウント数Mがカウント数閾値Mcである場合(ステップS108,Yes)、処理はステップS110に進む。ステップS110において、処理部21は、第1位置情報及び第2位置情報を求める。具体的には、処理部21は、一対の撮像装置30c,30dがバケット8を複数回(実施形態では8回)撮像することにより得られた複数対の画像(実施形態では8対の画像)を記憶部22から取得する。そして、処理部21は、取得した複数対の画像のうち、それぞれ対となる画像にステレオ方式による画像処理を施し、マークMKl,MKc,MKrの位置を三次元計測する。実施形態において、処理部21はマークMKl,MKc,MKrを画像処理により抽出する。例えば、処理部21は、マークMKl,MKc,MKrの形状の特徴に基づいて、これらを画像中から抽出することができる。後述するように、マークMKl,MKc,MKrは、図6に示される入力装置52をオペレータが操作することにより選択されてもよい。
三次元計測において、処理部21は、一対の撮像装置30c、30dから得られた一対の画像中に存在するマークMKl,MKc,MKrの位置を三角測量によって求める。このようにして求められたマークMKl,MKc,MKrの位置の情報が、第1位置情報である。処理部21は、ステップS101からステップS109で得られた8箇所での撮像の結果それぞれに対して、第1位置情報を求めて、例えば記憶部21に出力し、一時的に記憶させる。
1箇所での撮像より、異なる位置に設けられた3個のマークMKl,MKc,MKrが撮像されるので、1箇所での撮像で、3個の第1位置情報が得られる。前述したように、バケット8は8箇所で撮像されるので、計24個の第1位置情報が得られる。
ステップS110において、処理部21は、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cの検出値と作業機2の寸法とを取得する。第1角度検出部18A等の検出値は、作業機2の姿勢が一対の撮像装置30c、30dによってバケット8が撮像されたときの姿勢であるときに、第1角度検出部18A等が検出した値である。処理部21は、取得した検出値及び作業機2の寸法から、バケット8の刃9の位置、より具体的にはマークMKl,MKc,MKrの位置を求める。第1角度検出部18A等の検出値及び作業機2の寸法から求められたマークMKl,MKc,MKrの位置の情報が、第2位置情報である。処理部21は、ステップS101からステップS109で得られた8箇所での撮像の結果それぞれに対して、第2位置情報を求めて、例えば記憶部21に出力し、一時的に記憶させる。
1箇所での撮像に対して、3個の第2位置情報が得られる。前述したように、バケット8は8箇所で撮像されるので、計24個の第2位置情報が得られる。処理部21は、同じ作業機2の姿勢で得られた第1位置情報と第2位置情報とを対応付けて、記憶部22に一時的に記憶させる。第1位置情報と第2位置情報との組合せは、実施形態においては計24個である。
ステップS111において、処理部21は、第1位置情報と第2位置情報とを用いて、回転行列R及び並進ベクトルTを求める。より具体的には、処理部21は、第1位置情報と第2位置情報とを用いて、回転行列Rに含まれる角度α,β,γ及び並進ベクトルTの成分x0,y0,z0を求める。角度α,β,γ及び成分x0,y0,z0を求めるにあたり、24個の第1位置情報と第2位置情報との組合せが用いられるが、誤差が大きいものは除外されてもよい。このようにすることで、角度α,β,γ及び成分x0,y0,z0の精度低下が抑制される。
第1位置情報は車体座標系の座標なので(xm,ym,zm)で表される。第2位置情報は撮像装置座標系なので(xs,ys,zs)で表される。式(4)は、式(1)の左辺から右辺を減算し、2乗した値をJとしたものである。
J={Pmi−(R・Psi+T)}2・・・(4)
処理部21は、同じ作業機2の姿勢で得られた第1位置情報及び第2位置情報を記憶部22から読み出し、第1位置情報を式(4)の位置情報Pmに、第2位置情報を式(4)の位置情報Psに与える。すると、回転行列Rに含まれる角度α,β,γと並進ベクトルTの成分x0,y0,z0のいずれかを含む、3個の式が得られる。実施形態において、第1位置情報と第2位置情報との組合せは24個なので、処理部21は、24個の第1位置情報と第2位置情報との組合せを式(4)に与えることで、回転行列Rに含まれる角度α,β,γと並進ベクトルTの成分x0,y0,z0のいずれかを含む、計72個のJを得る。
計72個のJの総和JSは、式(5)で求められる。処理部21は、式(5)から、総和JSを求める。
JS=ΣJi=Σ{Pmi−(R・Psi+T)}2,{i:1から72}・・・(5)
次に、処理部21は、JSが最小になるようにする。このため、処理部21は、Σ{Pmi−(R・Psi+T)}2を、角度α、角度β、角度γ、成分x0、成分y0、成分z0それぞれで偏微分し、得られたものが0になるようにする。処理部21は、このようにして得られた6個の方程式を、例えばニュートンラプソン法で解くことにより、角度α,β,γ及び並進ベクトルTの成分x0,y0,z0を求める。処理部21は、求めた角度α,β,γ及び並進ベクトルTの成分x0,y0,z0から回転行列R及び並進ベクトルTを求める。このようにして得られた回転行列R及び並進ベクトルTが、第1位置検出部によって検出された対象の位置情報を、第1位置検出部以外の座標系、実施形態では車体座標系に変換するための変換情報である。
なお、処理部21は、第2位置検出部によって検出された対象の位置を、第2位置検出部の座標系とは異なる座標系、例えば、第1位置検出部の座標系に変換するための変換情報を求めてもよい。この場合、式(6)により、第2位置検出部が検出した、第2位置検出部の座標系における対象の位置を、第1位置検出部の座標系に変換することができる。この例において、第2位置検出部の座標系は車体座標系であり、第1位置検出部の座標系は撮像装置座標系である。
Ps=R−1・Pm−R−1・T・・・(6)
式(6)中のR−1は、前述した式(2)で表される回転行列の逆行列、式(6)中のTは前述した式(3)で表される並進ベクトルである。位置情報Pmは車体座標系における対象の位置であり、位置情報Psは撮像装置座標系における対象の位置である。逆行列R−1及び並進ベクトルTとR−1との積が変換情報である。このように、処理部21の処理及び実施形態の校正方法は、第2位置検出部が検出した位置を第2位置検出部の座標系から第2位置検出部の座標系とは異なる座標系に変換するために用いられる変換情報を求めて出力することも可能である。
実施形態において、第2位置検出部は、第1角度検出部18A、第2角度検出部18B及び第3角度検出部18Cであったが、これらに限定されない。例えば、油圧ショベル100がRTK−GNSS(Real Time Kinematic - Global Navigation Satellite Systems、GNSSは全地球航法衛星システムをいう)用のアンテナを備え、GNSSによってアンテナの位置を計測することにより自車の位置を検出する位置検出システムを備えているとする。この場合、前述した位置検出システムを第2位置検出部とし、GNSS用のアンテナの位置を作業機械の所定の位置とする。そして、GNSS用のアンテナの位置を変化させながら第1位置検出部及び第2位置検出部によってGNSS用のアンテナの位置を検出することで第1位置情報及び第2位置情報を得る。処理部21は、得られた第1位置情報及び第2位置情報を用いて、第1位置検出部によって検出された対象の位置情報を第1位置検出部以外の座標系、実施形態では車体座標系に変換するための変換情報を求める。また、処理部21は、得られた第1位置情報及び第2位置情報を用いて、第2位置検出部によって検出された対象の位置情報を、第2位置検出部以外の座標系に変換するための変換情報を求めることも可能である。
この他にも、取り外し可能なGNSS受信器を油圧ショベル1の所定の位置、例えば走行体5又は作業機2の所定の位置に取り付けて、GNSS受信器を第2位置検出部とすることで、前述した自車の位置を検出する位置検出システムを第2位置検出部とした場合と同様に変換情報が得られる。
実施形態に係る校正システム50及び校正方法は、油圧ショベル100が有する作業機2の姿勢が同一の状態で、対象の位置を検出する手段である第1位置検出部及び第1位置検出部とは異なる第2位置検出部を用いて作業機2の所定の位置を求める。そして、実施形態に係る校正システム50及び校正方法は、第1位置検出部によって求められた第1位置情報と、第2位置検出部によって求められた第2位置情報とを用いて、回転行列R及び並進ベクトルT求める。このような処理により、実施形態に係る校正システム50及び校正方法は、第1位置検出部によって検出された対象の位置情報を、第1位置検出部以外の座標系に変換するための変換情報を求めることができる。
複数の撮像装置30のうち少なくとも一対の撮像装置30が撮像した対象の画像にステレオ方式による画像処理が施されて、撮像装置座標系における対象の位置情報が得られる。実施形態に係る校正システム50及び校正方法によって変換情報が得られれば、撮像装置座標系における対象の位置情報を車体座標系における位置情報に変換できるので、油圧ショベル100は、変換後の対象の位置情報を用いて作業機2を制御したり、モニタに作業機2のガイダンス画面を表示させたりすることができる。
実施形態に係る校正システム50及び校正方法は、油圧ショベル100に備えられた処理装置20及び一対の撮像装置30c、30dを用いるので、回転行列R及び並進ベクトルTを求めるための外部の機器は不要である。このため、実施形態に係る校正システム50及び校正方法は、例えば、油圧ショベル100のユーザの使用先において、回転行列R及び並進ベクトルTを求めることができる。このように、実施形態に係る校正システム50及び校正方法は、回転行列R及び並進ベクトルTを求めるための外部の機器がない場所であっても、回転行列R及び並進ベクトルTを求めることができるという利点がある。
実施形態に係る校正システム50及び校正方法は、第1位置情報及び第2位置情報を、異なる姿勢の作業機2から検出した所定の位置の情報とすることにより、変換情報である回転行列R及び並進ベクトルTを求めるための情報量を多くすることができる。その結果、実施形態に係る校正システム50及び校正方法は、回転行列R及び並進ベクトルTを精度よく求めることができる。
実施形態において、第1位置検出部は少なくとも一対の撮像装置30で構成されるステレオカメラであるとしたが、これに限定されない。第1位置検出部は、例えばレーザスキャナ又は3Dスキャナであってもよい。作業機械は、少なくとも一対の撮像装置を備え、この一対の撮像装置を用いてステレオ方式で対象を三次元計測するものであれば油圧ショベル100に限定されない。作業機械は、作業機を有していればよく、例えばホイールローダー又はブルドーザのような作業機械であってもよい。
実施形態において、回転行列R及び並進ベクトルTを求める際に、刃9にマークMKl,MKc,MKrを設けたが、これらは必ずしも必要ではない。例えば、図6に示される入力装置52によって、撮像装置30によって撮像された対象の画像内に、処理部21が位置を求める部分、例えばバケット8の刃9の部分が指定されてもよい。この場合、処理部21は、指定された部分について、三次元計測を実行する。
以上、実施形態を説明したが、前述した内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。前述した構成要素は適宜組み合わせることが可能である。実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換及び変更のうち少なくとも1つを行うことができる。