(57)【要約】      （修正有）【課題】安価で処理負荷が少ないロボットツールセンターポジションのずれ検出装置を提供すること。【解決手段】ロボットに取付けたツールの撮像画像からポイントクラウドデータを取得する第１取得部と、前記ツールのＣＡＤデータからポイントクラウドデータを取得する第２取得部と、前記第１取得部で取得したポイントクラウドデータから所定の部分を特定する第１特定部と、前記第２取得部で取得したポイントクラウドデータから所定の部分を特定する第２特定部と、前記第１特定部で特定した部分に基づいてツールセンターポジションを取得する第３取得部と、前記第２特定部で特定した部分に基づいてツールセンターポジションを取得する第４取得部と、前記第３取得部で取得したツールセンターポジションと、前記第４取得部で取得したツールセンターポジションとのずれを検出する検出部と、を備える。【選択図】図５
2020059064.tif 000002
【特許請求の範囲】
【請求項１】
ロボットツールセンターポジションのずれを検出する装置であって、
ロボットに取付けたツールの撮像画像から、前記ツールのポイントクラウドデータを取得する第１取得部と、
前記ツールのＣＡＤデータから、前記ツールのポイントクラウドデータを取得する第２取得部と、
前記第１取得部で取得したポイントクラウドデータから所定の部分を特定する第１特定部と、
前記第２取得部で取得したポイントクラウドデータから所定の部分を特定する第２特定部と、
前記第１特定部で特定した部分に基づいて、前記第１取得部で取得したポイントクラウドデータにおけるツールセンターポジションを取得する第３取得部と、
前記第２特定部で特定した部分に基づいて、前記第２取得部で取得したポイントクラウドデータにおけるツールセンターポジションを取得する第４取得部と、
前記第３取得部で取得したツールセンターポジションと、前記第４取得部で取得したツールセンターポジションとのずれを検出する検出部と、
を備える装置。
【請求項２】
前記第１特定部が特定する所定の部分は、前記第１取得部で取得したポイントクラウドデータにおける２つの平面と１つの直線であり、
前記第２特定部が特定する所定の部分は、前記第２取得部で取得したポイントクラウドデータにおける２つの平面と１つの直線である請求項１に記載の装置。
【請求項３】
前記３取得部は、前記第１取得部で取得したポイントクラウドデータと、前記第１特定部で特定した２つの平面及び１つの直線に基づいて、前記ツールセンターポジションを取得する請求項２に記載の装置。
【請求項４】
前記４取得部は、前記第２取得部で取得したポイントクラウドデータと、前記第２特定部で特定した２つの平面及び１つの直線に基づいて、前記ツールセンターポジションを取得する請求項２に記載の装置。
【請求項５】
前記第１取得部は、異なる姿勢の前記ツールの撮像画像から複数のポイントクラウドデータを取得し、前記第３取得部は、前記複数のポイントクラウドデータから複数の前記ツールセンターポジションを取得し、
前記第２取得部は、前記異なる姿勢の前記ツールのＣＡＤデータから複数のポイントクラウドデータを取得し、前記第４取得部は、前記ＣＡＤデータから取得した複数のポイントクラウドデータから複数の前記ツールセンターポジションを取得し、
前記検出部は、前記第３取得部で取得した前記複数のツールセンターポジションと前記第４取得部で取得した前記複数のツールセンターポジションとから複数のずれを求め、当該複数のずれの平均値を検出する請求項１〜４のいずれか１項に記載の装置。
【請求項６】
前記撮像画像は３次元画像であり、前記ＣＡＤデータは３次元ＣＡＤデータである請求項１〜５のいずれか１項に記載の装置。
【請求項７】
前記ロボットは多関節アームロボットであり、前記ツールは前記ロボットのアームの先端に取り付けられる請求項１〜６のいずれか１項に記載の装置。
【請求項８】
請求項１〜７のいずれか１項に記載の装置を用いて、ロボットツールセンターポジションのずれを検出する方法であって、
第１取得部により、ロボットに取付けたツールの撮像画像から、前記ツールのポイントクラウドデータを取得する第１取得ステップと、
第２取得部により、前記ツールのＣＡＤデータから、前記ツールのポイントクラウドデータを取得する第２取得ステップと、
第１特定部により、前記第１取得ステップで取得したポイントクラウドデータから所定の部分を特定する第１特定ステップと、
第２特定部により、前記第２取得ステップで取得したポイントクラウドデータから所定の部分を特定する第２特定ステップと、
第３取得部により、前記第１特定ステップで特定した部分に基づいて、前記第１取得ステップで取得したポイントクラウドデータにおけるツールセンターポジションを取得する第３取得ステップと、
第４取得部により、前記第２特定ステップで特定した部分に基づいて、前記第２取得ステップで取得したポイントクラウドデータにおけるツールセンターポジションを取得する第４取得ステップと、
検出部により、前記第３取得ステップで取得したツールセンターポジションと、前記第４取得ステップで取得したツールセンターポジションとのずれを検出する検出ステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのツールセンターポジションのずれを検出する装置及び方法に関する。
【背景技術】
【０００２】
ロボットのキャリブレーション装置として、特許文献１の技術が知られている。特許文献１のキャリブレーション装置は、ロボットの手先により作業が行われる作業エリア周辺の２次元画像を取得する２次元センサと、当該作業エリア周辺の３次元位置を取得する３次元センサと、を備える。さらにこのキャリブレーション装置は、３次元センサの座標系に対するロボットの座標系の相対的な位置関係のずれ量を推定する推定手段と、推定手段により推定されたずれ量を用いて、システム立ち上げ時に取得された２次元画像とシステム立ち上げ後に取得された２次元画像との一致度を計算する計算手段と、を備える。特許文献１のキャリブレーション装置では、上記相対的な位置関係のずれが発生し且つ上記一致度が閾値より小さい場合、２次元センサ及び３次元センサの計測データを用いてずれの補正を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２４０１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の装置では、複数のセンサが必要となるので、装置が高価になる。また、システムの立ち上げ時及び立ち上げ後に２次元画像を取得する処理や、当該２次元画像の一致度を計算する処理や、一致度と閾値とを比較する処理などが必要なので、キャリブレーションを終了するまでに長時間を要する。
【０００５】
本発明は、上記した課題を解決するものであり、本発明の１つの目的は、安価で処理負荷が少ない（短時間で処理を行うことができる）ロボットツールセンターポジションのずれ検出装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明の１つの態様によれば、ロボットツールセンターポジションのずれを検出する装置であって、ロボットに取付けたツールの撮像画像から、前記ツールのポイントクラウドデータを取得する第１取得部と、前記ツールのＣＡＤデータから、前記ツールのポイントクラウドデータを取得する第２取得部と、前記第１取得部で取得したポイントクラウドデータから所定の部分を特定する第１特定部と、前記第２取得部で取得したポイントクラウドデータから所定の部分を特定する第２特定部と、前記第１特定部で特定した部分に基づいて、前記第１取得部で取得したポイントクラウドデータにおけるツールセンターポジションを取得する第３取得部と、前記第２特定部で特定した部分に基づいて、前記第２取得部で取得したポイントクラウドデータにおけるツールセンターポジションを取得する第４取得部と、前記第３取得部で取得したツールセンターポジションと、前記第４取得部で取得したツールセンターポジションとのずれを検出する検出部と、を備える装置が提供される。
【発明の効果】
【０００７】
本発明の装置は、ロボットに取り付けたツールの撮像画像からポイントクラウドデータを取得する。また、本発明の装置は、ＣＡＤデータからポイントクラウドデータを取得する。そして、本発明の装置は、撮像画像のポイントクラウドデータとＣＡＤデータのポイントクラウドデータから所定の部分を特定する。その後、本発明の装置は、ＣＡＤデータにおけるツールセンターポジションと、撮像画像におけるツールセンターポジションとを取得し、２つのツールセンターポジションのずれを検出する。よって、ツールをロボットに取り付けた後に、２つのポイントクラウドデータを利用してツールセンターポジションのずれを検出することができる。このように、本発明によれば、ポイントクラウドデータを使ってツールセンターポジションのずれを検出するので、安価で処理負荷が少ない検出装置となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るロボットツールセンターポジション（ＴＣＰ）ずれ検出装置を含むシステムの概略図。
【図２Ａ】ロボットツールの斜視図。
【図２Ｂ】ロボットツールのＣＡＤデータを示す図。
【図３】図１のＴＣＰずれ検出装置の機能ブロック図。
【図４】図１のＴＣＰずれ検出装置のハードウェア構成図。
【図５】図１のＴＣＰずれ検出装置の処理を示すフローチャート。
【図６Ａ】撮像装置の撮像画像から作成したポイントクラウドを示す図。
【図６Ｂ】図６Ａのポイントクラウドをカメラ座標系で示した図。
【図７Ａ】ＣＡＤデータから生成したポイントクラウドを示す図。
【図７Ｂ】図７Ａのポイントクラウドをカメラ座標系で示した図。
【図８】図７Ｂのポイントクラウドから特定の形状を抽出する処理を説明する図。
【図９】図６Ｂのポイントクラウドから特定の形状を抽出する処理を説明する図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明を実施するための実施形態を詳細に説明する。以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置やシステムの構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。
【００１０】
（システムの概略）
図１は、本発明の実施形態に係るロボットのツールセンターポジションのずれを検出する装置（以下、「ＴＣＰずれ検出装置」と称する）１０を含む検出システム２０の概略図である。ＴＣＰはＴｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｓｉｔｉｏｎ（ツールセンターポジション）の略である。
検出システム２０は、ＴＣＰずれ検出装置１０と、撮像装置３０と、ＣＡＤデータソース４０とを有する。ＣＡＤはＣｏｍｐｕｔｅｒ−Ａｉｄｅｄ−Ｄｅｓｉｇｎの略である。
【００１１】
ＴＣＰずれ検出装置１０は、通信機能及び所定の処理機能を備えた装置であり、例えば、パーソナルコンピュータである。
撮像装置３０は、例えば、ステレオカメラであり、被写体の３次元画像を撮像することができる。本実施形態の被写体は、ロボット６０に取付けられるツール７０である。撮像装置３０は、図示しない指示部材（例えば、三脚）により床面７２に固定・支持されているとする。撮影装置３０は、撮像機能と通信機能を備える。
ＴＣＰずれ検出装置１０は、ネットワーク５０を介して、撮像装置３０及びＣＡＤデータソース４０と通信可能である。撮影装置３０は、ＴＣＰずれ検出装置１０からの指示に応じて、撮影画像をＴＣＰずれ検出装置１０に送信することができる。
【００１２】
ＣＡＤデータソース４０は、通信機能及びデータ記憶機能を備えた装置である。ＣＡＤデータソース４０には、ロボットに取付けられるツール７０のＣＡＤデータ（図２Ｂ）が記憶されているとする。ＣＡＤデータソース４０は、ＴＣＰずれ検出装置１０からの指示に応じて、ＣＡＤデータをＴＣＰずれ検出装置１０に送信することができる。尚、ＣＡＤデータソース４０は、ＣＡＤデータ作成機能を備えていてもよい。
ネットワーク５０は、例えば、無線ＬＡＮネットワークである。なお、ネットワーク５０は無線ＬＡＮネットワーク以外の無線ネットワークでもよいし、有線ネットワークでもよい。
【００１３】
本実施形態のＴＣＰずれ検出装置１０は、ロボット製造工場でキャリブレーションされたロボット６０が、例えば、客先に出荷されて組み立てられた後に、ロボット６０にツール（ハンド）７０を装着した際のツール７０のＴＣＰのずれを検出する装置である。
図１に示すように、本実施形態のロボット６０は多関節６軸アームロボットである。ロボット６０は、第１関節部６１、第２関節部６２、第３関節部６３、第４関節部６４、第５関節部６５及び第６関節部６６を有している。また、ロボット６０は、第１アーム６７及び第２アーム６８を有している。第６関節部６６の先端６６ａには、ツール７０が取付けられている。ロボット６０が出荷先で組み立てられた後に、第６関節部６６の先端６６ａにツール７０が取付けられる。尚、ツール７０が取り付けられる面には、反射防止部材が設けられてもよい。反射防止防止部材により、撮像画像に入るノイズを抑制することができる。先端６６ａはアーム先端と称してもよい。
【００１４】
ロボット６０は第１関節部６１の下方に基部６９を有している。また、床面７２には、レール７４が固定されている。ロボット６０の基部６９は床面７２上のレール７４に装着され、レール７４に沿って移動可能になっている。つまり、ロボット６０は、レール７４の長手方向（矢印Ｘ）に移動可能になっている。ロボット６０がレール７４に沿って移動できるので、撮影装置３０はレール７４上の複数の位置でツール７０を撮像することができ、ツール７０の複数の３次元画像を生成することができる。尚、図１のレール７４と垂直に交わる方向に延びる別のレール（図示せず）を床面７２に設け、ロボット６０がレール７４の長手方向に垂直な方向にも移動できるようにしてもよい。図１の符号７９は、ツール７０に貼り付けられたマーカである。
【００１５】
図２Ａは、ツール７０の斜視図である。ツール７０は、円板状の円板部材７５と、円板部材７５の下面に取付けられた逆Ｔ字状のツール本体７６とを有する。ツール本体７６は、所定の厚さを有する薄板部材からなる。ツール本体７６は、円板部材７５から下方に延びる縦長矩形状の第１矩形部７６ａと、第１矩形部７６ａの下端から水平方向両側に延びる横長矩形状の第２矩形部７６ｂとからなる。ツール本体７６の正面である面Ａにはマーカ７９が貼り付けられている。マーカ７９は、例えば、所定形状（本実施形態では矩形）を有するシールである。また、マーカ７９は所定の色（例えば、黄色や緑色）に着色されている。ツール本体７６の面Ａは図２Ａの紙面と同一の面である。ツール本体７６の第２矩形部７６ｂの上面を面Ｂと称する。面Ｂは、図２Ａの紙面に垂直な面であり、面Ａと直交する面である。図示されていないが、面Ｂにもマーカが貼り付けられている。尚、本実施形態では説明を簡単にするためにツール７０の形状を簡素な形状（逆Ｔ字形状）にしているが、ツールとしてハンドエフェクタ等を取付けてもよい。
図２Ｂは、ツール７０の３次元ＣＡＤデータ７０Ａの概略図である。ツール７０Ａの中央下部の二重〇は、ＣＡＤデータにおけるＴＣＰを示している。
【００１６】
図３は、ＴＣＰずれ検出装置１０の機能ブロック図である。ＴＣＰずれ検出装置１０は、第１取得部１１、第２取得部１２、第１特定部１３、第２特定部１４、第３取得部１５、第４取得部１６、ずれ算出部１７及び出力部１８を有する。
第１取得部１１は、撮影装置３０からツール７０の撮影画像を受け取り、当該撮像画像からツール７０のポイントクラウドデータを作成（取得）する。
第２取得部１２は、ＣＡＤデータソース４０からツール７０のＣＡＤデータを受け取り、当該ＣＡＤデータから、ツール７０のポイントクラウドデータを生成（取得）する。
第１特定部１３は、第１取得部１１で取得したポイントクラウドデータから所定の部分を特定する。第１特定部１３の処理については図９を用いて後述する。
【００１７】
第２特定部１４は、第２取得部１２で取得したポイントクラウドデータから所定の部分を特定する。第２特定部１４の処理については、図８を用いて後述する。
第３取得部１５は、第１特定部１３で特定した部分に基づいて、第１取得部１１で取得したポイントクラウドデータにおけるツールセンターポジションを取得する。
第４取得部１６は、第２特定部１４で特定した部分に基づいて、第２取得部１２で取得したポイントクラウドデータにおけるツールセンターポジションを取得する。
ずれ算出部１７は、第３取得部１５で取得したツールセンターポジションと、第４取得部１６で取得したツールセンターポジションとのずれを算出する。ずれ算出部１７は、当該算出により、２つのツールセンターポジションのずれを検出している。
出力部１８は、ずれ算出部１７から算出結果（２つのツールセンターポジションのずれ）を受け取り、例えば、当該算出結果をディスプレイに表示する。
【００１８】
図４は、ＴＣＰずれ検出装置１０のハードウェア構成を示す図である。
ＴＣＰずれ検出装置１０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、外部メモリ２４、操作部（入力部）２５、通信部（ネットワークインタフェースを含む）２６及び表示部（出力部）２７を有する。ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、外部メモリ２４、操作部２５、通信部２６及び表示部２７は、バス２８により相互接続されている。
ＣＰＵ２１は、ＴＣＰずれ検出装置１０を統括制御する制御部である。ＣＰＵ２１は、各構成部（２２〜２７）を制御する。ＣＰＵ２１は、例えば、１つまたは複数のプロセッサから構成される。
【００１９】
ＲＯＭ２２は、ＣＰＵ２１が処理を実行するために必要なプログラム等を記憶する。ＣＰＵ２１が、ＲＯＭ２２に記憶されたプログラムに基づき処理を実行することにより、ＴＣＰずれ検出装置１０の通信部２６や表示部２７の制御等が実現されてもよい。なお、当該プログラム等は、外部メモリ２４や着脱可能な記憶媒体（図示せず）に記憶されてもよい。
ＲＡＭ２３は、ＣＰＵ２１がＲＯＭ２２から読み出したプログラムを展開し、処理を実行するためのメモリである。また、ＲＡＭ２３は、一時記憶メモリとして各種処理の対象となるデータを一時記憶するための記憶領域としても使用される。
【００２０】
外部メモリ２４は、例えば、ＣＰＵ２１がプログラムを用いた処理を実行する際に必要な各種データや情報などを記憶する。また、外部メモリ２４には、ＣＰＵ２１がプログラムを用いた処理を実行することにより得られた各種データや情報などが記憶される。
操作部２５は、キーボード、スイッチ、電源ボタンやテンキーなどから構成される。ユーザは、操作部２５を介して撮像装置３０やＣＡＤデータソース４０に指示を与えることができる。操作部２５は、ユーザからの指示を入力するので入力部と称してもよい。
通信部２６はネットワークインタフェースを備え、ネットワーク５０（図１）を介して撮像画像３０及びＣＡＤデータソース４０と通信を行う回路である。例えば、ＴＣＰずれ検出装置１０は、通信部２６を介して撮像装置３０へ指示を送信し、撮像装置３０から撮像画像をＴＣＰずれ検出装置１０へ送信させることができる。
【００２１】
表示部２７は、画像を表示するディスプレイを含む。表示部２７は、動画及び静止画を表示することができる。表示部２７は音声出力部を含んでもよい。表示部２７は、タッチパネルとして使用することにより、ユーザインターフェースとして機能することもある。表示部２７は、画像を出力するので、出力部と称してもよい。    尚、ＴＣＰずれ検出装置１０は、図３及び図４に示した構成要素以外のハードウェア要素や機能部を備えていてもよい。また、図３及び図４に示した各部の構成は一例であり、複数の部が１つの部を構成するようにしてもよいし、いずれかの部が複数の機能を行う部に分かれてもよい。
【００２２】
図５は、ＴＣＰずれ検出装置１０の処理を示すフローチャートである。図５のフローチャートは、図４のＣＰＵ２１がＲＯＭ２２に記憶されたコンピュータプログラムを読み出して実行することにより行われる。図５のフローチャートは、例えば、ＴＣＰずれ検出装置１０の電源がオンにされると開始する。尚、図５のフローチャートは、ＴＣＰずれ検出装置１０のユーザから入力される指示に応じて開始してもよい。ＳはＳｔｅｐの略である。撮像装置３０は、図１の状態でツール７０を撮像し、ツール７０の撮像画像を保有しているとする。
【００２３】
Ｓ１において、ＴＣＰずれ検出装置１０は、公知の手法を用いて、ロボット座標系からカメラ座標系への変換式（座標変換行列）を求める。
Ｓ２において、ＴＣＰずれ検出装置１０は、撮像装置３０からツール７０の撮像画像を取得する。より詳しくは、例えば、ＴＣＰずれ検出装置１０は、ネットワーク５０を介して撮像装置３０に指示を送信し、当該指示を受信した撮像装置３０は、撮像装置３０が撮像したツール７０の撮像画像をＴＣＰずれ検出装置１０に送信する。ＴＣＰずれ検出装置１０は、当該撮像画像を受信し、ＲＡＭ２３または外部メモリ２４に記憶する。
【００２４】
Ｓ３において、ＴＣＰずれ検出装置１０は、ツール７０の撮像画像からポイントクラウドデータを取得する。このポイントクラウドデータは、ロボット座標系におけるツール７０のポーズを表すデータである。このポイントクラウドデータを以下の記載において、第１ポイントクラウドデータと称する。ポイントクラウドは点群であり、第１ポイントクラウドは、例えば、図６Ａのように逆Ｔ字状のポイントクラウドになる。尚、図６Ａでは、ツール７０の円板部材７５のポイントクラウドは省略されている。
Ｓ４において、ＴＣＰずれ検出装置１０は、Ｓ１で求めた変換式を用いて、第１ポイントクラウドデータをカメラ座標系に変換する。図６Ｂは、カメラ座標系で示した第１ポイントクラウドを示している。
【００２５】
Ｓ５において、ＴＣＰずれ検出装置１０は、ＣＡＤデータソース４０からツール７０の３次元ＣＡＤデータを取得する。より詳しくは、例えば、ＴＣＰずれ検出装置１０は、ネットワーク５０を介してＣＡＤデータソース４０に指示を送信し、当該指示を受信したＣＡＤデータソース４０は、ツール７０の３次元ＣＡＤデータをＴＣＰずれ検出装置１０に送信する。ＴＣＰずれ検出装置１０は、当該３次元ＣＡＤデータを受信し、ＲＡＭ２３または外部メモリ２４に記憶する。この３次元ＣＡＤデータはロボット座標系のデータであるとする。
【００２６】
Ｓ６において、ＴＣＰずれ検出装置１０は、３次元ＣＡＤデータからポイントクラウドデータを生成する。３次元ＣＡＤデータから得たポイントクラウドデータを、以下の記載において、第２ポイントクラウドデータと称する。図７Ａは第２ポイントクラウドを示している。
Ｓ７において、ＴＣＰずれ検出装置１０は、第２ポイントクラウドデータをカメラ座標系にポイントクラウドデータに変換する。図７Ｂは、カメラ座標系で示した第２ポイントクラウドを示している。
【００２７】
Ｓ８において、ＴＣＰずれ検出装置１０は、第１ポイントクラウドから特定の形状（本実施形態では、面と線）を抽出する。また、ＴＣＰずれ検出装置１０は、第２ポイントクラウドからも特定の形状を抽出する。尚、ポイントクラウドから特定の形状を抽出することを、セグメンテーションと称することもある。
Ｓ８で行う抽出処理を図８及び図９を用いて説明する。図８は、図７Ｂのポイントクラウドから特定の形状を抽出する処理を説明する図である。図９は、図６Ｂのポイントクラウドから特定の形状を抽出する処理を説明する図である。
【００２８】
まず、図８に基づいて、ＣＡＤデータから得られたポイントクラウド（第２ポイントクラウド）における特定形状の抽出処理を説明する。
ＴＣＰずれ検出装置１０は、第２ポイントクラウドにおいて、ツール本体７６のポイントクラウド７６Ｐ１の面Ａ１を特定する。図８の面Ａ１は図２Ａの面Ａに該当する。面Ａ１の特定は、第２ポイントクラウドの面Ａ１の点群に基づいて行う。また、ＴＣＰずれ検出装置１０は、ツール７０の円板部材７５のポイントクラウド７５Ｐ１の外周円８０を特定する。外周円８０の特定も、円板部材７５のポイントクラウド７５Ｐ１の点群に基づいて行う。そして、ＴＣＰずれ検出装置１０は、外周円８０の中心を通る線（法線）Ｌ１を求める。さらに、ＴＣＰずれ検出装置１０は、ツール本体７６の第２ポイントクラウドから面Ｂ１を特定する。図８の面Ｂ１は図２Ａの面Ｂに該当する。面Ｂ１の特定も、第２ポイントクラウドの面Ｂ１の点群に基づいて行う。面Ｂ１と面Ａ１の交線が線Ｌ２となる。このように、Ｓ８では、第２ポイントクラウドから面Ａ１、面Ｂ１、線Ｌ１及び線Ｌ２を抽出（特定）する。
【００２９】
次に、図９に基づいて、第１ポイントクラウドにおける特定形状の抽出処理を説明する。
ＴＣＰずれ検出装置１０は、第１ポイントクラウドにおいて、ツール本体７６のポイントクラウド７６Ｐ２の面Ａ２を特定する。図９の面Ａ２は図２Ａの面Ａに該当する。面Ａ２の特定は、ツール７０の面Ａに貼ったマーカ７９の撮像画像に基づいて行う。また、ＴＣＰずれ検出装置１０は、ツール７０の円板部材７５のポイントクラウドの外周円（図示せず）を特定する。外周円の特定も、円板部材７５の撮像画像に基づいて行う。そして、ＴＣＰずれ検出装置１０は、外周円の中心を通る線（法線）Ｌ１１を求める。さらに、ＴＣＰずれ検出装置１０は、ツール本体７６の第２ポイントクラウドから面Ｂ２を特定する。図９の面Ｂ２は図２Ａの面Ｂに該当する。面Ｂ２の特定も、ツール７０の面Ｂに貼ったマーカの撮像画像に基づいて行う。面Ｂ２と面Ａ２の交線が線Ｌ２２となる。
このように、Ｓ８では、図９の第１ポイントクラウドから面Ａ２、面Ｂ２、線Ｌ１１及び線Ｌ２２を抽出（特定）する。
【００３０】
Ｓ９において、ＴＣＰずれ検出装置１０は、図８の線Ｌ１と線Ｌ２の交点から所定距離（例えば、１０ｍｍ）下の線Ｌ１上の点を、第２ポイントクラウドのＴＣＰとして特定（取得）する。所定距離は、例えば、図２ＢのＣＡＤデータから予め求め、外部メモリ２４に記憶しておく。第２ポイントクラウドのＴＣＰを、以下、第２ＴＣＰと称する。第２ＴＣＰの座標（ｘ、ｙ、ｚ、ｒｚ、ｒｙ、ｒｘ）は、例えば、（４００ｍｍ、１７０ｍｍ、４５０ｍｍ、１８０度、０度、１８０度）である。
Ｓ１０において、ＴＣＰずれ検出装置１０は、図９の線Ｌ１１と線Ｌ２２の交点から所定距離（例えば、１０ｍｍ）下の点を、第１ポイントクラウドのＴＣＰとして特定する。第１ポイントクラウドのＴＣＰを、以下、第１ＴＣＰと称する。
Ｓ１１において、ＴＣＰずれ検出装置１０は、第１ＴＣＰの座標（ｘ、ｙ、ｚ、ｒｚ、ｒｙ、ｒｘ）と第２ＴＣＰの座標（ｘ、ｙ、ｚ、ｒｚ、ｒｙ、ｒｘ）を比較してずれを算出する。尚、Ｓ１１の後に、ＴＣＰずれ検出装置１０は、Ｓ１１で算出したずれを表示部２７に表示する。
【００３１】
（実施形態の効果）
本実施形態では、ロボット６０に取り付けたツール７０の撮像画像からポイントクラウドデータを取得する。また、ＣＡＤデータからポイントクラウドデータを取得する。そして、撮像画像のポイントクラウドデータとＣＡＤデータのポイントクラウドデータから所定の部分を特定する。その後、ＣＡＤデータにおけるＴＣＰと取得すると共に、撮像画像におけるＴＣＰを取得する。最後に２つのツールセンターポジションのずれを検出する。よって、ツール７０をロボット６０に取り付けた後に、２つのポイントクラウドデータを利用してツールセンターポジションのずれを検出することができる。本実施検出の検出装置は、特許文献１のように複数のセンサを使用せず、２つの２次元画像の一致度も算出・比較しないので、より安価で処理負荷が少ない（短時間で処理を行うことができる）装置となる。
【００３２】
３次元ＣＡＤのソフトウェアには種々のソフトウェアがあるので、使用するソフトウェアによっては、ポイントクラウドから直接、面Ａ１、面Ｂ１、線Ｌ１、線Ｌ２やＴＣＰを特定できるない場合がある。本実施形態では、まずポイントクラウドを生成し（ポイントクラドは、ソフトウェアにかかわらず生成することができる）、ポイントクラウドから面Ａ１、面Ｂ１、線Ｌ１、線Ｌ２を特定するので、ＣＡＤのソフトウェアの種類にかかわらず、ツール７０のＴＣＰを特定することができる。
【００３３】
本実施形態によれば、ポイントクラウドを用いてＴＣＰの位置を特定しているので、非接触でＴＣＰの位置を特定できることになる。ＴＣＰは、接触できない位置にあることもあるので、非接触でＴＣＰの位置を特定できると便利である。
また、ツールの形状が複雑な３次元形状の場合、ＴＣＰの位置を正確に特定することは難しい。本実施形態ではポイントクラウドを用いてＴＣＰの位置を特定するので、ツールの形状が複雑であってもＴＣＰの位置を簡易に特定することができる。
【００３４】
尚、図５のフローチャートは、Ｓ１〜Ｓ４を最初に実行したが、Ｓ５〜Ｓ７を実行した後にＳ１〜Ｓ４を実行してもよい。また、Ｓ１０はＳ９の前に実行してもよい。
また、上記した実施形態では、ＴＣＰずれ検出装置１０は、ＣＡＤデータソース４０からＣＡＤデータを取得したが、ＣＡＤデータは予めＴＣＰずれ検出装置１０のメモリ（例えば、外部メモリ２４）に記憶されていてもよい。
【００３５】
上記した実施形態では、図１の状態（姿勢、ポーズ）でツール７０を撮像して取得した１つの撮像画像を使用して１つのＴＣＰずれ値を検出したが、本実施形態はこれに限定されない。例えば、ロボット６０をレール７４に沿って移動し、図１の以外の状態でもツール７０を撮像し、複数の撮像画像を取得する。そして、複数の撮像画像と、これらに対応するＣＡＤデータとを使用して、複数の第１及び第２ポイントクラウドデータを取得し、複数の第１及び第２ＴＣＰを取得し、複数のＴＣＰずれ値を検出してもよい。この場合、例えば、ずれ算出部１７は、複数のＴＣＰずれ値の平均値を算出し、出力部１８は当該平均値をディスプレイに表示する。
【符号の説明】
【００３６】
１０…ＴＣＰずれ検出装置
２０…検出システム
３０…撮像装置
４０…ＣＡＤデータソース
６０…ロボット
７０…ツール
７９…マーカ
【図１】
2020059064.tif 000003
【図２Ａ】
2020059064.tif 000004
【図２Ｂ】
2020059064.tif 000005
【図３】
2020059064.tif 000006
【図４】
2020059064.tif 000007
【図５】
2020059064.tif 000008
【図６Ａ】
2020059064.tif 000009
【図６Ｂ】
2020059064.tif 000010
【図７Ａ】
2020059064.tif 000011
【図７Ｂ】
2020059064.tif 000012
【図８】
2020059064.tif 000013
【図９】
2020059064.tif 000014