(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-11-25
(45)【発行日】2022-12-05
(54)【発明の名称】マーカ検出装置及びロボット教示システム
(51)【国際特許分類】
B25J 13/08 20060101AFI20221128BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2021181167
(22)【出願日】2021-11-05
【審査請求日】2022-10-17
【早期審査対象出願】
(73)【特許権者】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】池口 誠人
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開2021-62463(JP,A)
【文献】特開2013-131171(JP,A)
【文献】国際公開第2014/147863(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
2Dカメラによって取得された画像データに、当該2Dカメラと同一視点から撮影される3Dカメラによって取得された点群データを重畳して合成画像を生成する画像生成部と、
前記合成画像のうち画像データに基づいて、マーカを検出するとともに当該マーカの位置を算出するマーカ位置算出部と、
前記合成画像のうち点群データに基づいて、平面を検出する平面検出部と、
前記マーカ位置算出部によって算出されたマーカの位置から検出された前記マーカの領域内に含まれる点群データと、前記平面検出部によって検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定するマーカ平面判定部と、
前記マーカ位置算出部によって算出された前記マーカの位置を、前記マーカ平面に射影することにより当該マーカの位置を補正するマーカ位置補正部と、を備える、
マーカ検出装置。
【請求項2】
前記マーカ平面判定部は、前記合成画像において検出された前記マーカの領域内の点群データのうち所定割合以上の点群データが、前記平面検出部によって検出された平面に含まれる場合、当該平面を前記マーカ平面と判定する、
請求項1に記載のマーカ検出装置。
【請求項3】
前記マーカ平面判定部は、前記合成画像において検出された前記マーカの領域内の点群データのうち所定割合以上の点群データが、前記平面検出部によって検出された平面に含まれない場合、当該マーカの領域内の点群データによって構成される仮想平面を前記マーカ平面と判定する、
請求項1又は2に記載のマーカ検出装置。
【請求項4】
前記マーカ平面判定部は、
前記マーカがワークに設定されている場合、前記平面検出部によって検出された平面を前記マーカ平面と判定し、
前記マーカがマニピュレータに設定されている場合、前記合成画像において検出された前記マーカの領域内の点群データによって構成される仮想平面を前記マーカ平面と判定する、
請求項1に記載のマーカ検出装置。
【請求項5】
ワークとマーカとを含む画像を撮影する2Dカメラ及び当該2Dカメラと同一視点から撮影する3Dカメラを有する撮影部と、
前記2Dカメラによって取得された画像データに、前記3Dカメラによって取得された点群データを重畳して合成画像を生成する画像生成部と、
前記合成画像のうち画像データに基づいて、前記マーカを検出するとともに当該マーカの位置を算出するマーカ位置算出部と、
前記合成画像のうち点群データに基づいて、平面を検出する平面検出部と、
前記マーカ位置算出部によって算出されたマーカの位置から検出された前記マーカの領域内に含まれる点群データと、前記平面検出部によって検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定するマーカ平面判定部と、
前記マーカ位置算出部によって算出された前記マーカの位置を、前記マーカ平面に射影することにより当該マーカの位置を補正するマーカ位置補正部と、
前記補正されたマーカの位置に基づいてカメラ座標系を設定するカメラ座標系設定部と、
前記カメラ座標系におけるマニピュレータの動作経路をロボット制御装置に設定されているロボット座標系に変換しつつ、当該マニピュレータを動作させるための作業プログラムを生成するプログラム生成部と、を備える、
ロボット教示システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マーカ検出装置及びロボット教示システムに関する。
【背景技術】
【0002】
近年、産業界において、多くのロボットが普及している。当該ロボットは、例えば、電子部品及び機械部品の組み立て、溶接及び搬送等に用いられ、工場の生産ラインの効率化及び自動化が図られている。
【0003】
例えば、溶接ロボットでは、所望の動作をさせるためのプログラムを作成して、所謂教示データとして予め記憶させておく必要がある。当該教示データは、操作者がティーチングペンダントを用いて、ロボット制御装置と連携し、実際のロボットを操作することによって、その動作を記録させて生成される。
【0004】
操作者がティーチングペンダントを用いて実際にロボットを動作させながら教示データを作成するには、操作者のスキルへの依存度が大きく、長時間を要する場合があるため、操作者への負担を軽減するために、ARデバイス及びマーカを用いてロボットの位置を認識するロボットシステムが開示されている(例えば、特許文献1)。
【0005】
特許文献1に開示された技術では、ARデバイスによって2つの基準用マーカを同時に検出し、さらにロボット座標系特定用マーカとの位置関係を認識することによって、ARグラフィックの表示位置ずれを抑えつつロボットの位置や向きを認識している。このようなロボットシステムでは、ワーク及びロボットの位置や向きを精度良く認識するために、基準となるマーカを適切に検出する必要がある。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示された技術では、マーカの検出において、例えば、2次元カメラを用いた場合、画像処理での輪郭判定時等でマーカの輪郭位置がずれたり、そもそもレンズの歪み等によって視野角位置に応じてマーカ画像が歪んだりして、実際のマーカの位置とは誤差が生じるおそれがある。
【0008】
そこで、本発明は、マーカの位置を高精度に検出可能なマーカ検出装置及びそれを用いたロボット教示システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の一態様に係るマーカ検出装置は、2Dカメラによって取得された画像データに、当該2Dカメラと同一視点から撮影される3Dカメラによって取得された点群データを重畳して合成画像を生成する画像生成部と、合成画像のうち画像データに基づいて、マーカを検出するとともに当該マーカの位置を算出するマーカ位置算出部と、合成画像のうち点群データに基づいて、平面を検出する平面検出部と、マーカ位置算出部によって算出されたマーカの位置から検出されたマーカの領域内に含まれる点群データと、平面検出部によって検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定するマーカ平面判定部と、マーカ位置算出部によって算出されたマーカの位置を、マーカ平面に射影することにより当該マーカの位置を補正するマーカ位置補正部と、を備える。
【0010】
この態様によれば、マーカ位置算出部は、画像生成部によって生成された画像データと点群データとの合成画像のうち画像データに基づいて、マーカを検出するとともに当該マーカの位置を算出し、平面検出部は、合成画像のうち点群データに基づいて、平面を検出する。そして、マーカ平面判定部は、マーカ位置算出部によって算出されたマーカの位置から検出されたマーカの領域内に含まれる点群データと、平面検出部によって検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定し、マーカ位置補正部は、マーカ位置算出部によって算出されたマーカの位置を、マーカ平面に射影することにより当該マーカの位置を補正する。これにより、高精度にマーカの位置を検出することができる。なお、単に、距離カメラ等を用いてマーカの位置を認識することも考えられるが、点群データで形成される画像の解像度が低いため、当該画像上でマーカの位置を認識できない、又は認識できたとしても検出する位置の精度が低くなってしまう。それに比べて、本発明の一態様に係るマーカ検出装置では、画像データと点群データとを用いるため、高精度にマーカの位置を検出することができる。
【0011】
上記態様において、マーカ平面判定部は、合成画像において検出されたマーカの領域内の点群データのうち所定割合以上の点群データが、平面検出部によって検出された平面に含まれる場合、当該平面をマーカ平面と判定してもよい。
【0012】
この態様によれば、マーカ平面判定部は、点群データを用いてマーカが存在する平面を判定するため、平面検出部によって検出された平面にマーカが存在するか否かを、適切に判定することができる。その結果、平面検出部によって検出された平面にマーカが存在する場合には、平面検出部によって検出された平面をマーカ平面と判定し、マーカ位置補正部は、マーカ位置算出部によって算出されたマーカの位置を、当該マーカ平面に射影することにより当該マーカの位置を補正する。これにより、適切に、高精度にマーカの位置を検出することができる。
【0013】
上記態様において、マーカ平面判定部は、合成画像において検出されたマーカの領域内の点群データのうち所定割合以上の点群データが、平面検出部によって検出された平面に含まれない場合、当該マーカの領域内の点群データによって構成される仮想平面をマーカ平面と判定してもよい。
【0014】
この態様によれば、マーカ平面判定部は、点群データを用いてマーカが存在する平面を判定するため、平面検出部によって検出された平面にマーカが存在するか否かを、適切に判定することができる。その結果、平面検出部によって検出された平面にマーカが存在しない場合には、当該マーカの領域内の点群データによって構成される仮想平面をマーカ平面と判定し、マーカ位置補正部は、マーカ位置算出部によって算出されたマーカの位置を、当該マーカ平面に射影することにより当該マーカの位置を補正する。これにより、適切に、高精度にマーカの位置を検出することができる。
【0015】
上記態様において、マーカ平面判定部は、マーカがワークに設定されている場合、平面検出部によって検出された平面をマーカ平面と判定し、マーカがマニピュレータに設定されている場合、合成画像において検出されたマーカの領域内の点群データによって構成される仮想平面をマーカ平面と判定してもよい。
【0016】
この態様によれば、マーカ平面判定部は、マーカがワークに設定されている場合、平面検出部によって検出された平面をマーカ平面と判定し、マーカがマニピュレータに設定されている場合、当該マーカの領域内の点群データによって構成される仮想平面をマーカ平面と判定する。すなわち、マーカ平面判定部は、マーカの設定位置に応じて、適切にマーカ平面を判定することができる。その結果、マーカ位置補正部は、マーカ位置算出部によって算出されたマーカの位置を、マーカ平面判定部によって判定されたマーカ平面に射影することにより当該マーカの位置を適切に補正することができる。
【0017】
本発明の一態様に係るロボット教示システムは、ワークとマーカとを含む画像を撮影する2Dカメラ及び当該2Dカメラと同一視点から撮影する3Dカメラを有する撮影部と、2Dカメラによって取得された画像データに、3Dカメラによって取得された点群データを重畳して合成画像を生成する画像生成部と、合成画像のうち画像データに基づいて、マーカを検出するとともに当該マーカの位置を算出するマーカ位置算出部と、合成画像のうち点群データに基づいて、平面を検出する平面検出部と、マーカ位置算出部によって算出されたマーカの位置から検出されたマーカの領域内に含まれる点群データと、平面検出部によって検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定するマーカ平面判定部と、マーカ位置算出部によって算出されたマーカの位置を、マーカ平面に射影することにより当該マーカの位置を補正するマーカ位置補正部と、補正されたマーカの位置に基づいてカメラ座標系を設定するカメラ座標系設定部と、カメラ座標系におけるマニピュレータの動作経路をロボット制御装置に設定されているロボット座標系に変換しつつ、当該マニピュレータを動作させるための作業プログラムを生成するプログラム生成部と、を備える。
【0018】
この態様によれば、撮影部は、2Dカメラ及び当該2Dカメラと同一視点から撮影する3Dカメラを有し、マーカ位置算出部は、画像生成部によって生成された画像データと点群データとの合成画像のうち画像データに基づいて、マーカを検出するとともに当該マーカの位置を算出し、平面検出部は、合成画像のうち点群データに基づいて、平面を検出する。そして、マーカ平面判定部は、マーカ位置算出部によって算出されたマーカの位置から検出されたマーカの領域内に含まれる点群データと、平面検出部によって検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定し、マーカ位置補正部は、マーカ位置算出部によって算出されたマーカの位置を、マーカ平面に射影することにより当該マーカの位置を補正する。カメラ座標系設定部は、マーカ位置補正部によって補正されたマーカの位置に基づいてカメラ座標系を設定し、プログラム生成部は、カメラ座標系におけるマニピュレータの動作経路をロボット制御装置に設定されているロボット座標系に変換しつつ、マニピュレータを動作させるための作業プログラムを生成する。その結果、より高精度に検出されたマーカの位置に基づいてカメラ座標系が設定され、作業プログラムが生成されるため、より高精度に、適切にマニピュレータを動作させることができる。
【発明の効果】
【0019】
本発明によれば、マーカの位置を高精度に検出可能なマーカ検出装置及びそれを用いたロボット教示システムを提供することができる。
【図面の簡単な説明】
【0020】
【
図1】本発明の第1実施形態に係るロボット教示システムを含む溶接ロボットシステム100の構成を例示する図である。
【
図2】本発明の第1実施形態に係るロボット教示システム200の機能的な構成を例示する図である。
【
図3】マーカMが溶接対象であるワークWに設定されており、当該マーカMの位置を原点Oとしてカメラ座標系が設定される様子を示す図である。
【
図4】ワークWに設定されたマーカMの位置を検出するマーカ検出装置220における具体的な処理の様子を模式的に示す図である。
【
図5】マーカMがマニピュレータ3に設定されており、当該マーカMの位置を原点Oとしてカメラ座標系が設定される様子を示す図である。
【
図6】マニピュレータ3に設定されたマーカMの位置を検出するマーカ検出装置220における具体的な処理の様子を模式的に示す図である。
【
図7】本発明の第1及び第2実施形態に係るマーカ検出装置220が実行するマーカ検出方法M100の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施形態は、あくまで、本発明を実施するための具体的な一例を挙げるものであって、本発明を限定的に解釈させるものではない。また、説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する場合がある。
【0022】
<第1実施形態>
[溶接ロボットシステムの基本構成]
図1は、本発明の第1実施形態に係るロボット教示システムを含む溶接ロボットシステム100の構成を例示する図である。
図1に示されるように、溶接ロボットシステム100は、例えば、撮影端末1と、ロボット制御装置2と、マニピュレータ3とを備える。撮影端末1とロボット制御装置2とは、例えばネットワークNを介して接続され、ロボット制御装置2とマニピュレータ3とは、例えば通信ケーブルCを介して接続される。ネットワークNは、有線(通信ケーブルを含む)であっても無線であってもよい。なお、溶接ロボットシステム100に、ティーチングペンダントを含めてもよい。ティーチングペンダントは、作業者がマニピュレータ3の動作を教示する操作装置である。
【0023】
マニピュレータ3は、ロボット制御装置2において設定される施工条件に従ってアーク溶接を行う溶接ロボット(産業用ロボット)である。マニピュレータ3は、例えば、工場の床面等に固定されるベース部材上に設けられる多関節アーム31と、多関節アーム31の先端に連結される溶接トーチ32(エンドエフェクタ)とを有する。
【0024】
ロボット制御装置2は、マニピュレータ3の動作を制御する制御ユニットであり、例えば、制御部21、記憶部22、通信部23及び溶接電源部24を含む。
【0025】
制御部21は、例えば、記憶部22に記憶されている作業プログラムをプロセッサが実行することで、マニピュレータ3及び溶接電源部24を制御する。
【0026】
通信部23は、ネットワークNを介して接続される撮影端末1との通信を制御することや、通信ケーブルCを介して接続されるマニピュレータ3との通信を制御する。
【0027】
溶接電源部24は、例えば、溶接ワイヤの先端とワークとの間にアークを発生させるために、予め定められた溶接の施工条件に従って、溶接電流及び溶接電圧等をマニピュレータ3に供給する。溶接の施工条件には、例えば、溶接条件、溶接開始位置、溶接終了位置、アーク放電の時間、溶接距離、溶接トーチの姿勢及び溶接トーチの移動速度等のデータ項目が含まれる。溶接電源部24は、ロボット制御装置2と別個に備えることとしてもよい。
【0028】
撮影端末1は、例えば、デジタルカメラ(2Dカメラ)であるが、デジタルカメラ付きの可搬型端末であってもよい。可搬型端末には、例えば、タブレット端末、スマートフォン、携帯情報端末(PDA)、ノートPC(パーソナルコンピュータ)等の持ち運び可能な端末が含まれる。撮影端末1は、例えば、制御部11、撮影部12、通信部13、表示部14を含む。
【0029】
制御部11は、メモリに格納された所定のプログラムをプロセッサが実行することにより、撮影端末1の各部を制御する。
【0030】
撮影部12は、例えば、レンズ及び撮像素子(イメージセンサ)を含み、レンズで受光した被写体の光を電気信号(デジタル画像データ)に変換する。
【0031】
通信部13は、ネットワークNを介して接続されるロボット制御装置2との通信を制御する。
【0032】
表示部14は、例えば、タッチパネルを有するディスプレイであり、撮影部12による被写体の映像を表示するとともに、作業者による操作指示等の入力を受け付ける。表示部14は、例えばタッチパネルを有するディスプレイ装置として、撮影端末1とは別個に備えることとしてもよい。
【0033】
さらに、撮影端末1は、3Dカメラとしての機能も有しており、例えば、LiDAR(Light Detection and Ranging)センサ、ミリ波センサ、超音波センサ等の距離計測センサを含んでもよい。典型的には、距離計測センサは、計測対象に対してレーザ光を照射し、その反射光に基づいて当該計測対象の形状を把握するものであって、所謂3Dスキャンしたデータを点群データとして取得する。なお、点群データには、例えば、3次元座標値(X,Y,Z)で示される位置(距離)情報、及び(R,G,B)で示される色情報が含まれてもよい。
【0034】
なお、上述した画像データを取得する2Dカメラと、点群データを取得する3Dカメラとは、両機能が含まれるように1つの撮影端末として構成されていても構わないし、それぞれの機能を構成する別々の撮影端末として構成されていても構わない。
【0035】
[ロボット教示システムの構成]
図2は、本発明の第1実施形態に係るロボット教示システム200の機能的な構成を例示する図である。
図2に示されるように、ロボット教示システム200は、機能的な構成として、例えば、撮影部211と、カメラ座標系設定部212と、プログラム生成部213とを有し、さらに、カメラ座標系を設定するための基準となるマーカを検出するためのマーカ検出装置220を含む。なお、マーカ検出装置220は、画像生成部221と、マーカ位置算出部222と、平面検出部223と、マーカ平面判定部224と、マーカ位置補正部225とを含む。
【0036】
これらの機能のうち、撮影部211は、撮影端末1が有する機能である。他方、カメラ座標系設定部212、プログラム生成部213、及びマーカ検出装置220における各部は、撮影端末1及びロボット制御装置2のどちらかが全てを備えてもよいし、撮影端末1及びロボット制御装置2に各機能を分散して備えてもよい。また、撮影端末1及びロボット制御装置2以外の他の装置が、上記機能の一部又は全部を備えてもよい。
【0037】
撮影部211は、撮影端末1の撮影部12と同じであり、2Dカメラの機能として、画像データを取得する。さらに、撮影部211は、3Dカメラの機能として、点群データを取得する。なお、撮影部211は、少なくともマーカ及び溶接対象となるワークが含まれる画像を取得する。
【0038】
カメラ座標系設定部212は、撮影部211によって撮影された画像に含まれるマーカに基づいてカメラ座標系を設定する。例えば、カメラ座標系設定部212は、撮影部211によって撮影された画像において、マーカの位置を原点として、当該原点で互いに直交するX軸、Y軸及びZ軸による三次元の直交座標系をカメラ座標系として設定する。
【0039】
図3は、マーカMが溶接対象であるワークWに設定されており、当該マーカMの位置を原点Oとしてカメラ座標系が設定される様子を示す図である。
図3に示されるように、マーカMは、ワークWの底板に設定されており、カメラ座標系設定部212は、撮影部211によって撮影された画像に含まれるマーカMの位置を原点Oとして、当該原点Oで互いに直交するX軸、Y軸及びZ軸による三次元の直交座標系をカメラ座標系として設定している。なお、原点Oは、マーカMのうち任意の点を設定する。例えば、原点Oとして、マーカMのうち、予め決められた一点、中心点、又は選択された一点等が設定されればよい。
【0040】
ここで、撮影部211によって撮影された画像からマーカMを検出する際、当該マーカMの位置は、2Dカメラによって取得された画像データと3Dカメラによって取得された点群データとに基づいて、マーカ検出装置220によって適切に検出される。
【0041】
マーカMは、空間内に置かれていることを撮影部211に認識させることができる識別子であればよい。マーカとして、例えばARマーカを用いることが好ましい。ARマーカを用いることで、空間内に置かれたARマーカを認識したときに、そのARマーカを原点とするユーザ座標系を、実際の映像に重ね合わせて表示させることが簡易に実現できるようになる。なお、マーカMを検出するマーカ検出装置220の処理についての詳細は後述する。
【0042】
カメラ座標系設定部212によって設定されたカメラ座標系において、撮影部211によって撮影された画像に含まれるワークWの溶接位置L1,L2,L3に基づいてマニピュレータ3の動作経路を設定する。例えば、撮影部211によって撮影された画像において、マニピュレータ3の先端に取り付けられた溶接トーチ32がワークWの溶接位置L1,L2,L3に沿って動作するように、マニピュレータ3(溶接トーチ32)の動作経路をユーザが手動で選択したり、当該溶接位置L1,L2,L3と溶接トーチ32との距離を算出して自動的に設定したりする。
【0043】
一方、ロボット制御装置2は、当該ロボット制御装置2が制御するマニピュレータ3の各軸の角度に関する情報等から当該マニピュレータ3の位置姿勢を把握する(ロボット座標系)。そして、マーカMの設置位置と、当該マーカMの設置位置に対するマニピュレータ3の位置姿勢(設置位置)とに基づいて、カメラ座標系とロボット座標系とを一致させるためのキャリブレーションを行うことができる。当該キャリブレーションは、例えば、マーカMの設置位置にマニピュレータ3(溶接トーチ32)の先端を合わせることにより行えばよい。
【0044】
プログラム生成部213は、カメラ座標系において設定されたマニピュレータ3の動作経路を、カメラ座標系からロボット制御装置2に設定されているロボット座標系に変換しつつ、マニピュレータ3を動作させるための作業プログラムを生成する。
【0045】
このように、ロボット教示システム200では、撮影部211で撮影した画像からマーカMを検出してカメラ座標系を設定し、当該カメラ座標系における溶接位置L1,L2,L3及びマニピュレータ3の動作経路をロボット座標系に変換しつつ、マニピュレータ3が適切に溶接位置L1,L2,L3に溶接する作業プログラムを生成している。そして、当該作業プログラムは、ロボット制御装置2における記憶部に記憶され、当該ロボット制御装置2は、作業プログラムに基づいてマニピュレータ3の動作を制御し、これにより、溶接ロボットシステムとして、ワークWの溶接位置L1,L2,L3に適切に溶接することができる。
【0046】
[マーカ検出装置220における処理の詳細]
上述したように、マーカMの位置を原点Oとしてカメラ座標系が設定されることから、当該マーカMの位置を適切に検出することが重要となる。以下、マーカMの位置を検出するマーカ検出装置220の処理について詳しく説明する。
【0047】
図4は、ワークWに設定されたマーカMの位置を検出するマーカ検出装置220における具体的な処理の様子を模式的に示す図である。
図4に示されるように、マーカ検出装置220は、2Dカメラによって取得された画像データと3Dカメラによって取得された点群データとに基づいて、マーカMの位置を検出している。
【0048】
画像生成部221は、2Dカメラによって取得された画像データに、3Dカメラによって取得された点群データを重畳して合成画像を生成する(
図4(a))。例えば、デジタルカメラによって溶接対象であるワークW及びマーカMが含まれるように撮影され、当該撮影された画像が2Dカメラによって取得された画像データとして保存される。距離計測センサによって溶接対象であるワークW及びマーカMに対応する位置(距離)情報が計測され、当該位置(距離)情報が、3次元座標値(X,Y,Z)で示される点群データとして取得される。そして、画像生成部221は、2Dカメラによって取得された画像データに、点群データを重畳することによって合成画像を生成する。具体的には、3Dカメラによって取得された点群データの一点一点に対応する3次元座標値(X,Y,Z)及びRGB値に、2Dカメラによって取得された画像データにおいて合致するピクセル(XY座標値)情報を付加するようにすればよい。このように、2Dカメラによって取得された画像データに基づく所定の描画範囲と、3Dカメラによって取得された点群データを構成する各プロットの位置とがそれぞれ対応するように記録される。
【0049】
なお、画像生成部221は、2Dカメラによって取得された画像データに、3Dカメラによって取得された点群データを重畳するため、2Dカメラと3Dカメラとの相対位置姿勢を把握しているとよい。2Dカメラによって取得された画像データと3Dカメラによって取得された点群データとは、典型的には、同一視点から撮影されたものである。
【0050】
マーカ位置算出部222は、画像生成部221によって生成された合成画像のうち画像データに基づいて、マーカMを検出するとともに当該マーカMの位置を算出する(
図4(b))。例えば、マーカ位置算出部222は、画像生成部221によって生成された合成画像のうち画像データから、所定の画像処理等を用いて、予め設定されたマーカMの画像パターンを検出してもよい。そして、マーカ位置算出部222は、当該画像データから検出したマーカMについて、画像データにおける座標から空間における座標に変換して3次元位置を算出する。ここで、マーカMの位置とは、当該マーカMの輪郭範囲位置であってもよいし、当該マーカMの4隅の点の位置であってもよい。
【0051】
マーカ位置算出部222は、例えば、カメラの位置、視線方向、レンズ歪み、ズーム、解像度、及びその他設定値等を含む、予め設定されているカメラパラメータ等に基づいて、画像データから検出されたマーカMの3次元位置を算出すればよい。また、マーカ位置算出部222は、算出したマーカMの3次元位置から当該マーカMの領域内に含まれる点群データDmを把握する。
【0052】
ここで、マーカ位置算出部222によって算出されるマーカMの3次元位置は、2Dカメラによって取得された画像データに基づいて算出されているため、実際のマーカMの位置とは誤差が生じている場合がある(
図4(c))。
【0053】
平面検出部223は、画像生成部221によって生成された合成画像のうち点群データに基づいて、平面を検出する(
図4(d))。例えば、ここでは、平面検出部223は、所定の面積以上の平面として、ワークWの底板である平面Wa及び背板である平面Wbを検出している。
【0054】
マーカ平面判定部224は、合成画像において検出されたマーカMの領域内に含まれる点群データDmと、平面検出部223によって検出された平面Wa及びWbとに基づいて、当該マーカMが存在するマーカ平面を判定する(
図4(e))。例えば、ここでは、マーカ平面判定部224は、マーカMの領域内に含まれる点群データDmが、平面Wa(Wb)を構成する点群データに含まれるか否かを判定する。具体的には、マーカMの領域内に含まれる点群データDmのうち、所定割合(例えば、20%~80%)以上の点群データが平面Waを構成する点群データに含まれていれば、マーカ平面判定部224は、マーカMは、平面Wa上に存在するとして、平面Waをマーカ平面と判定してもよい。
【0055】
一方で、
図4に示されるように、マーカMの領域内に含まれる点群データDmは、平面Wbを構成する点群データに含まれていないため、マーカ平面判定部224は、平面Wbをマーカ平面と判定しない。
【0056】
マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によって判定されたマーカ平面に射影することにより当該マーカMの位置を補正する(
図4(f))。例えば、マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によってマーカ平面として判定された平面Waに対して垂直方向に射影する。すなわち、マーカ位置算出部222によって算出されたマーカMの位置から検出される当該マーカMの輪郭範囲位置を、平面Waを基準とした垂直方向に移動させて、平面Waと交差した位置にマーカMが置かれていると判定する。そして、当該平面Waに射影されたマーカMの位置を、当該マーカMが設置されている位置とする。
【0057】
このように、マーカ検出装置220は、2Dカメラによって取得された画像データに基づいて算出されたマーカMの位置を、3Dカメラによって取得された点群データに基づいて当該マーカMが存在するマーカ平面(ここでは、平面Wa)に射影することにより補正するため、高精度にマーカMの位置を検出している。
【0058】
以上のように、本発明の第1実施形態に係るマーカ検出装置220によれば、マーカ位置算出部222は、画像生成部221によって生成された画像データと点群データとの合成画像のうち画像データに基づいて、マーカMを検出するとともに当該マーカMの位置を算出する。平面検出部223は、当該合成画像のうち点群データに基づいて、平面Wa及びWbを検出する。そして、マーカ平面判定部224は、マーカ位置算出部222によって検出されたマーカMの領域内に含まれる点群データDmと、平面検出部223によって検出された平面Wa及びWbとに基づいて、当該マーカMが存在するマーカ平面(本実施形態では平面Wa)を判定し、マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面に射影することにより当該マーカMの位置を補正する。これにより、高精度にマーカMの位置を検出することができる。
【0059】
さらに、本発明の第1実施形態に係るマーカ検出装置220を用いたロボット教示システム200によれば、当該マーカ検出装置220によって高精度に検出されたマーカMの位置に基づいて、カメラ座標系設定部212は、当該マーカMの位置を原点Oとしてカメラ座標系を設定する。プログラム生成部213は、マーカMの設置位置に基づいて、カメラ座標系において設定されたマニピュレータ3の動作経路を、カメラ座標系からロボット制御装置2に設定されているロボット座標系に変換しつつ、マニピュレータ3を動作させるための作業プログラムを生成する。これにより、適切な溶接位置に、より高精度に溶接することができる。
【0060】
なお、本実施形態では、マーカMの領域内に含まれる点群データDmと平面Waを構成する点群データとに基づいて、マーカMは、平面Wa上に存在するとして、マーカ平面判定部224は、平面Waをマーカ平面と判定したが、平面Waをマーカ平面として判定する方法はこれに限定されるものではない。例えば、マーカMが存在する平面をユーザが選択し、当該選択された平面をマーカ平面として判定しても構わないし、マーカMがワークWに設定されている場合には、平面検出部223によって検出された平面のいずれかをマーカ平面と判定したり、当該平面からユーザがいずれかを選択することによりマーカ平面を判定したりしても構わない。
【0061】
また、本実施形態では、マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によって判定されたマーカ平面に射影することにより当該マーカMの位置を補正していたが、例えば、補正前後におけるマーカMの位置が大きく異なる場合、実際には、マーカMは、マーカ平面判定部224によって判定されたマーカ平面に存在しない可能性が考えられる。このため、補正前後におけるマーカMの位置の差が所定の閾値を超える場合には、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によって判定されたマーカ平面(本実施形態では、平面Wa)に射影せずに、当該マーカ位置算出部222によって算出されたマーカMの位置を、マーカMの位置としても構わない。
【0062】
<第2実施形態>
次に、本発明の第2実施形態では、マーカMがマニピュレータ3に設定されている場合において、当該マーカMの位置を適切に検出する様子について説明する。なお、ロボット教示システム及びマーカ検出装置は、
図1及び
図2を用いて説明したロボット教示システム200及びマーカ検出装置220と同一の構成であるため、同一の処理及び機能については、詳しい説明を省略する場合があり、本実施形態では、主に、第1実施形態と異なる点について詳しく説明する。
【0063】
図5は、マーカMがマニピュレータ3に設定されており、当該マーカMの位置を原点Oとしてカメラ座標系が設定される様子を示す図である。
図5に示されるように、マーカMは、マニピュレータ3に設定されており、カメラ座標系設定部212は、撮影部211によって撮影された画像に含まれるマーカMの位置を原点Oとして、当該原点Oで互いに直交するX軸、Y軸及びZ軸による三次元の直交座標系をカメラ座標系として設定している。そして、撮影部211によって撮影された画像からマーカMを検出する際、当該マーカMの位置は、2Dカメラによって取得されて画像データと3Dカメラによって取得された点群データとに基づいて、マーカ検出装置220によって適切に検出される。
【0064】
[マーカ検出装置220における処理の詳細]
以下、本実施形態におけるマーカMの位置を検出するマーカ検出装置220の処理について詳しく説明する。
【0065】
図6は、マニピュレータ3に設定されたマーカMの位置を検出するマーカ検出装置220における具体的な処理の様子を模式的に示す図である。
図6に示されるように、マーカ検出装置220は、2Dカメラによって取得された画像データと3Dカメラによって取得された点群データとに基づいて、マーカMの位置を検出している。
【0066】
画像生成部221は、2Dカメラによって取得された画像データに、3Dカメラによって取得された点群データを重畳して合成画像を生成し(
図6(a))、マーカ位置算出部222は、画像生成部221によって生成された合成画像のうち画像データに基づいて、マーカMを検出するとともに当該マーカMの位置を算出する(
図6(b))。また、マーカ位置算出部222は、算出したマーカMの3次元位置から当該マーカMの領域内に含まれる点群データDmを把握する。これらは、第1実施形態の
図4(a)(b)を用いて説明した処理と同様である。
【0067】
また、マーカ位置算出部222は、第1実施形態の
図4(c)と同様に、マーカ位置算出部222によって算出されるマーカMの3次元位置は、2Dカメラによって取得された画像データに基づいて算出されているため、実際のマーカMの位置とは誤差が生じている場合がある(
図6(c))。
【0068】
平面検出部223は、画像生成部221によって生成された合成画像のうち点群データに基づいて、平面を検出する(
図6(d))。例えば、ここでは、平面検出部223は、所定の面積以上の平面として、ワークWの底板である平面Wa及び背板である平面Wbを検出している。
【0069】
マーカ平面判定部224は、合成画像において検出されたマーカMの領域内に含まれる点群データDmと、平面検出部223によって検出された平面Wa及びWbとに基づいて、当該マーカMが存在するマーカ平面を判定する(
図6(e))。本実施形態では、
図5に示したように、マーカMは、ワークWを構成する平面Wa及びWbのいずれにも設定されておらず、マニピュレータ3に設定されている。このため、マーカ平面判定部224は、マーカMの領域内に含まれる点群データDmのうち、所定割合(例えば、20%~80%)以上の点群データが平面Wa及びWbを構成する点群データに含まれておらず、マーカMは、平面Wa及びWb上に存在しないと判定する。この場合、当該マーカMの領域内に含まれる点群データDmに基づいて、当該点群データDmによって構成される仮想平面BPを生成し、当該仮想平面BPを、マーカMが存在するマーカ平面と判定する(
図6(e))。
【0070】
マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によって判定されたマーカ平面に射影することにより当該マーカMの位置を補正する(
図6(f))。例えば、マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によってマーカ平面として判定された仮想平面BPに対して垂直方向に射影する。そして、当該仮想平面BPに射影されたマーカMの位置を、当該マーカMが設置されている位置とする。
【0071】
このように、マーカ検出装置220は、3Dカメラによって取得された点群データに基づいて当該マーカMが仮想的に存在する仮想平面BPを生成し、当該仮想平面BPをマーカ平面として、2Dカメラによって取得された画像データに基づいて算出されたマーカMの位置を、マーカ平面(ここでは、仮想平面BP)に射影することにより補正するため、高精度にマーカMの位置を検出している。
【0072】
以上のように、本発明の第2実施形態に係るマーカ検出装置220によれば、実際には、マーカMがワークWを構成する平面上に設定されていない場合であっても、マーカ平面判定部224は、マーカMの領域内に含まれる点群データDmに基づいて仮想平面BPをマーカMが存在するマーカ平面と判定する。そして、マーカ位置補正部225は、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面に射影することにより当該マーカMの位置を補正する。これにより、高精度にマーカMの位置を検出することができる。
【0073】
なお、本実施形態では、マーカMの領域内に含まれる点群データDmと平面Wa及びWbを構成する点群データとに基づいて、マーカMは、平面Wa及びWb上に存在しないと判定したが、例えば、マーカMがマニピュレータ3に設定されていることにより、マーカMは、平面上に存在しないと判定しても構わないし、ユーザが選択することにより平面上に存在しないと判定しても構わない。
【0074】
また、本実施形態では、マーカ平面判定部224は、仮想平面BPを生成して当該仮想平面BPをマーカ平面として判定していたが、仮想平面BPを生成するためのマーカMの領域内に含まれる点群データDmが極端に少ない場合やバラツキが大きい場合には、当該仮想平面が適切に生成できない可能性が考えられる。このため、補正前後におけるマーカMの位置の差が所定の閾値を超える場合には、マーカ位置算出部222によって算出されたマーカMの位置を、マーカ平面判定部224によって判定されたマーカ平面(本実施形態では、仮想平面BP)に射影せずに、当該マーカ位置算出部222によって算出されたマーカMの位置を、マーカMの位置としても構わない。
【0075】
[マーカ検出方法]
次に、本発明の第1及び第2実施形態に係るマーカ検出装置220がマーカを検出する方法について、具体的に詳しく説明する。
【0076】
図7は、本発明の第1及び第2実施形態に係るマーカ検出装置220が実行するマーカ検出方法M100の処理の流れを示すフローチャートである。
図7に示されるように、マーカ検出方法M100は、ステップS110~S170を含み、各ステップは、マーカ検出装置220に含まれるプロセッサによって実行される。
【0077】
ステップS110では、マーカ検出装置220は、2Dカメラによって取得された画像データに、3Dカメラによって取得された点群データを重畳して合成画像を生成する(合成画像生成ステップ)。具体例としては、マーカ検出装置220における画像生成部221は、ワークW及びマーカMが同時に含まれるようにデジタルカメラで撮影された画像データ及び距離計測センサで計測された点群データに基づいて合成画像を生成する。
【0078】
ステップS120では、マーカ検出装置220は、ステップS110で生成された合成画像のうち画像データに基づいて、マーカを検出するとともに当該マーカの位置を算出する(マーカ位置算出部)。具体例としては、マーカ検出装置220におけるマーカ位置算出部222は、画像データから、予め設定されたマーカMの画像パターンを検出し、カメラパラメータ等に基づいてマーカMの3次元位置を算出する。
【0079】
ステップS130では、マーカ検出装置220は、ステップS110で生成された合成画像のうち点群データに基づいて、平面を検出する(平面検出ステップ)。具体例としては、マーカ検出装置220における平面検出部223は、所定の面積以上の平面として、ワークWを構成する平面Wa及びWb等を検出する。
【0080】
ステップS140では、マーカ検出装置220は、ステップS120で検出されたマーカの領域内に含まれる点群データと、ステップS130で検出された平面とに基づいて、当該マーカが存在するマーカ平面を判定する(マーカ平面判定ステップ)。具体例としては、マーカ検出装置220におけるマーカ平面判定部224は、マーカMの領域内に含まれる点群データDmのうち所定割合以上の点群データがステップS130で検出された平面Wa(Wb)を構成する点群データに含まれているか否かを判定する。
【0081】
マーカ平面判定部224は、点群データDmのうち所定割合以上の点群データが平面Wa(Wb)を構成する点群データに含まれている場合(マーカMが平面Waに存在する場合)、ステップS130で検出された平面Waをマーカ平面と判定する(ステップS150)。
【0082】
一方、マーカ平面判定部224は、点群データDmのうち所定割合以上の点群データが平面Wa(Wb)を構成する点群データに含まれていない場合(マーカMが平面Wa(Wb)に存在しない場合)、点群データDmによって構成される仮想平面BPをマーカ平面と判定する(ステップS160)。
【0083】
ステップS170では、マーカ検出装置220は、ステップS120で算出されたマーカの位置を、ステップS150又はステップS160で判定されたマーカ平面に射影することにより当該マーカの位置を補正する(マーカ位置補正ステップ)。具体例としては、マーカ検出装置220におけるマーカ位置補正部225は、ステップS120で算出されたマーカMの位置を、平面Wa又は仮想平面BPに射影することにより当該マーカMの位置を補正する。
【0084】
以上のように、マーカ検出方法M100によれば、マーカMが平面Wa等の平面に存在する場合であっても、マニピュレータ3等に設定されて平面に存在しない場合であっても、ステップS140でマーカMの状態を把握することにより、ステップS150で平面Waをマーカ平面として判定し、又はステップS160で仮想平面BPをマーカ平面として判定する。そして、ステップS170でマーカMの位置をマーカ平面(平面Wa又は仮想平面BP)に射影することにより当該マーカMの位置を補正する。これにより、マーカMが平面Wa等の平面に存在する場合であっても、マニピュレータ3等に設定されて平面に存在しない場合であっても高精度にマーカMの位置を検出することができる。
【0085】
また、上述した各実施形態では、溶接ロボットシステム100のロボット教示システム200に用いられるマーカ検出装置220を一例に挙げて説明したが、マーカ検出装置220が用いられる産業用ロボットは、溶接ロボットシステム100に限定されるものではない。例えば、電子部品及び機械部品の組み立てや搬送等を行う組み立てロボットシステムや搬送ロボットシステム等に、マーカ検出装置220を適用することもできる。
【0086】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【0087】
1…撮影端末、2…ロボット制御装置、3…マニピュレータ、11…制御部、12…撮影部、13…通信部、14…表示部、21…制御部、22…記憶部、23…通信部、24…溶接電源部、31…多関節アーム、32…溶接トーチ、100…溶接ロボットシステム、200…ロボット教示システム、211…撮影部、212…カメラ座標系設定部、213…プログラム生成部、220…マーカ検出装置、221…画像生成部、222…マーカ位置算出部、223…平面検出部、224…マーカ平面判定部、225…マーカ位置補正部、C…通信ケーブル、N…ネットワーク、M…マーカ、W…ワーク、L1~L3…溶接位置、Dm…点群データ、Wa,Wb…平面、BP…仮想平面、M100…マーカ検出方法、S110~S170…マーカ検出方法M100の各ステップ
【要約】
【課題】マーカの位置を高精度に検出可能なマーカ検出装置及びそれを用いたロボット教示システムを提供することである。
【解決手段】マーカ検出装置220は、2Dカメラによって取得された画像データに、当該2Dカメラと同一視点から撮影される3Dカメラによって取得された点群データを重畳して合成画像を生成する画像生成部221と、画像データに基づいてマーカを検出して位置を算出するマーカ位置算出部222と、点群データに基づいて平面を検出する平面検出部223と、マーカ位置算出部222によって算出されたマーカの位置に基づくマーカの領域内の点群データと、平面検出部223によって検出された平面とに基づいてマーカ平面を判定するマーカ平面判定部224と、マーカ位置算出部222によって算出されたマーカの位置を、マーカ平面に射影することによりマーカの位置を補正するマーカ位置補正部225と、を備える。
【選択図】
図2