(57)【要約】【課題】  移動しながら計測対象物の位置及び姿勢を正確に求めるための技術を提供すること。【解決手段】  第１の速度で移動する計測装置２によるパレット８の位置及び姿勢の計測の結果と、該計測中に取得したハンド４のロボット座標系１０１における位置及び姿勢と、に基づいてロボット座標系１０１におけるパレット８の位置及び姿勢を求める。第２の速度で移動する計測装置２が計測したパレット８及びワーク５の位置及び姿勢の計測結果と、ロボット座標系１０１におけるパレット８の位置及び姿勢と、に基づいて、ロボット座標系１０１におけるワーク５の位置及び姿勢を求める。【選択図】  図１
2018161700.tif 000002
【特許請求の範囲】
【請求項１】
第１の速度で移動するロボットに取り付けられたセンサによる静止物体の位置及び姿勢の計測の結果と、該計測中に取得した前記ロボットの基準座標系における位置及び姿勢と、に基づいて前記基準座標系における前記静止物体の位置及び姿勢を求める第１の算出手段と、
前記第１の速度より大きい第２の速度で移動する前記ロボットにおける前記センサが計測した前記静止物体及び対象物体の位置及び姿勢の計測結果と、前記第１の算出手段が求めた前記静止物体の位置及び姿勢と、に基づいて、前記基準座標系における前記対象物体の位置及び姿勢を求める第２の算出手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の算出手段は、前記第１の速度の前記ロボットにおける前記センサによる静止物体の位置及び姿勢の計測の結果に基づいて前記センサを基準とする座標系における前記静止物体の位置及び姿勢を求め、該求めた位置及び姿勢と、前記計測中に取得した前記ロボットの前記基準座標系における位置及び姿勢と、前記ロボットと前記センサとの間の相対的な位置姿勢関係と、に基づいて、前記静止物体の前記基準座標系における位置及び姿勢を求めることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の算出手段は、前記第２の速度の前記センサが計測した前記対象物体の計測結果に基づいて求めた前記座標系における前記対象物体の位置及び姿勢と、前記第２の速度の前記センサが計測した前記静止物体の計測結果に基づいて求めた前記座標系における前記静止物体の位置及び姿勢と、前記第１の算出手段が求めた位置及び姿勢と、に基づいて前記基準座標系における前記対象物体の位置及び姿勢を求めることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１の速度は０であることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記静止物体は、前記対象物体を収容する容器であることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記静止物体は、前記ロボットによる組み付けの対象であることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項７】
前記静止物体は、マーカであることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項８】
更に、
前記ロボットの移動が速度閾値よりも速いか遅いかを判断する判断手段を備え、
前記第２の算出手段は、前記ロボットの前記第２の速度が前記速度閾値よりも速い場合に動作することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
更に、
移動中の前記センサによる計測時の前記ロボットの位置及び姿勢の取得に成功したか否かを判断する手段を備え、
前記第１の算出手段及び前記第２の算出手段は、移動中の前記センサによる計測時の前記ロボットの位置及び姿勢の取得に失敗した場合に動作することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項１０】
前記第１の算出手段が求めた位置及び姿勢が変更されたか否かを判断する判断手段を備え、
前記第１の算出手段が求めた位置及び姿勢が変更された場合には、前記第１の算出手段による処理を再度、行うことを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項１１】
前記第１の速度は、前記ロボットに取り付けられたセンサによる計測タイミングにおける前記ロボットの基準座標系における位置及び姿勢が取得可能な速度である、ことを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
第１の速度で移動するセンサによる静止物体の位置及び姿勢の計測の結果と、該計測中に取得した前記センサの基準座標系における位置及び姿勢と、に基づいて前記静止物体の前記基準座標系における位置及び姿勢を求める第１の算出手段と、
前記第１の速度より大きい第２の速度で移動する前記センサが計測した前記静止物体及び対象物体の位置及び姿勢の計測結果と、前記第１の算出手段が求めた位置及び姿勢と、に基づいて、前記基準座標系における前記対象物体の位置及び姿勢を求める第２の算出手段と
を備えることを特徴とする情報処理装置。
【請求項１３】
請求項１乃至１２の何れか１項に記載の情報処理装置と、
前記情報処理装置による計測の結果に基づいて対象物体を保持して移動させるロボットと、を有するシステム。
【請求項１４】
物体の位置及び姿勢を計測するセンサを有する請求項１３に記載のシステム。
【請求項１５】
物体の位置及び姿勢を計測するセンサと、
請求項１乃至１２の何れか１項に記載の情報処理装置と、を有するシステム。
【請求項１６】
請求項１乃至１２の何れか１項に記載の情報処理装置を用いて対象物体を計測する工程と、
該計測の結果に基づいて対象物体を処理することにより物品を製造する工程と、を有することを特徴とする物品の製造方法。
【請求項１７】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の第１の算出手段が、第１の速度で移動するロボットに取り付けられたセンサによる静止物体の位置及び姿勢の計測の結果と、該計測中に取得した前記ロボットの基準座標系における位置及び姿勢と、に基づいて前記基準座標系における前記静止物体の位置及び姿勢を求める第１の算出工程と、
前記情報処理装置の第２の算出手段が、前記第１の速度より大きい第２の速度で移動する前記ロボットにおける前記センサが計測した前記静止物体及び対象物体の位置及び姿勢の計測結果と、前記第１の算出工程で求めた前記静止物体の位置及び姿勢と、に基づいて、前記基準座標系における前記対象物体の位置及び姿勢を求める第２の算出工程と
を備えることを特徴とする情報処理方法。
【請求項１８】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の第１の算出手段が、第１の速度で移動するセンサによる静止物体の位置及び姿勢の計測の結果と、該計測中に取得した前記センサの基準座標系における位置及び姿勢と、に基づいて前記静止物体の前記基準座標系における位置及び姿勢を求める第１の算出工程と、
前記情報処理装置の第２の算出手段が、前記第１の速度より大きい第２の速度で移動する前記センサが計測した前記静止物体及び対象物体の位置及び姿勢の計測結果と、前記第１の算出工程で求めた位置及び姿勢と、に基づいて、前記基準座標系における前記対象物体の位置及び姿勢を求める第２の算出工程と
を備えることを特徴とする情報処理方法。
【請求項１９】
コンピュータを、請求項１乃至１２の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測対象の位置姿勢を計測するための技術に関するものである。
【背景技術】
【０００２】
三次元形状計測装置の一種であるマシンビジョンは、特に製造業におけるコンピュータビジョンの応用を意味する。例えばマシンビジョンで部品を計測した結果に基づきロボットを動作させることで、把持や組付けなどの様々な工程を実現することが出来る。ロボットを計測対象に対して動作させる際には、ロボットの台座基準の座標系、すなわちロボット座標系における計測対象の位置姿勢を算出することが一般的である。よって、マシンビジョンで計測したビジョン座標系における計測対象の位置姿勢が正確に取得されることに加え、その計測時点におけるマシンビジョン、マシンビジョンとの相対位置姿勢が既知のハンド、ロボットフランジなどの位置姿勢を正確に得る必要がある。以下の説明では、これらの位置姿勢をロボット位置姿勢（ロボットの位置姿勢）と総称する。以下ではロボット位置姿勢はフランジなどのロボットが含む機構、あるいはそれからの相対位置姿勢が保証されたビジョンやハンドのロボット座標系における位置姿勢をも含むものとする。
【０００３】
マシンビジョンの使用形態として、マシンビジョンをロボットに搭載するオンハンドのマシンビジョンシステムが存在する。この方式においてはマシンビジョンを任意の場所に移動して計測することが出来るので、マシンビジョンをヤグラなどに固定設置して用いる方法に比べて計測範囲がフレキシブルであることや、システムに必要なスペースが省けるというメリットがある。更に、オンハンド方式のシステムにおいてロボットを駆動させながらマシンビジョンにより計測を行う方法が知られている。この技術は例えば特許文献１にも記されており、マシンビジョンシステムの重要な性能指標であるスループットの観点において、ロボットを静止させて計測を行うシステムに比べ明らかに優位である。
【０００４】
ここで、マシンビジョンの計測工程においては、撮像及び撮像された画像に対する処理を行うことで計測対象の位置姿勢を算出する。この撮像に要する時間は少なくともカメラの露光時間だけの時間幅を持つ。画像処理の特性を考えた場合、移動計測においては前述の計測時点とは露光中の中心時間を想定することが多い。例えば移動計測中に計測した計測対象の位置姿勢をもとにロボット座標系における計測対象の位置姿勢算出を行う場合、移動しているロボットに関し露光中の中心時間における位置姿勢を正確に取得することが重要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８３７１１６号公報
【特許文献２】特開２０１０−２０７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、前述の計測時点のロボット位置姿勢を取得することが出来ない、あるいは取得出来たとしても精度が得られない状況が存在する。例えば、ロボットが高速で移動している場合に、ロボットの位置姿勢が取得できないようなケースが確認されている。ロボットの位置姿勢は、例えばロボットコントローラが撮像時点においてトリガを受信することで取得される。しかし、上記のケースにおいてはロボットコントローラがトリガを受信した時点で取得した位置姿勢情報をメモリに書き終わるまでの間に次のトリガを受信したものだと推測される。この例に関わらず、移動速度、露光時間、コンピュータ性能など種々のパラメータを考えた場合に、確実にロボットの位置姿勢が取得出来るようにタイミング管理あるいは制御を行うことは非常に困難である。
【０００７】
また、仮にロボット位置姿勢が取得されたとしても、その位置姿勢の精度が課題となることが考えられる。例えばロボットコントローラ内部の処理時間を計測時の状況に依らず完全に制御することは困難であり、撮像時点とロボットコントローラからロボット位置姿勢を取得する時点にはタイムラグが生じる。すると、撮像時点におけるロボット位置姿勢の真値とロボットコントローラから取得されるロボット位置姿勢情報の間には誤差が存在することとなる。例えば、ロボットの移動速度を１ｍ／ＳＥＣとして、ロボットコントローラ内部の処理時間などによるタイムラグが２００μＳＥＣとすると、ロボット位置情報には２００μｍの誤差が生じることとなる。この量はそのまま把持や組立てなどの動作の際のロボット位置の誤差となり、マシンビジョンシステムの目的である各種動作が失敗する要因となりうる。
【０００８】
特許文献１には、撮像した瞬間の正確なロボット位置を取得するために、撮像時刻の前後それぞれの時刻におけるアーム先端部の位置を取得し、これと撮像時刻から撮像時刻におけるアーム先端部の位置を算出する技術が開示されている。しかし、上記の課題はその撮像時刻が取得できないあるいはできたとしても正確に取得出来ないことに伴う課題である。よって特許文献１に開示されている技術は、撮像時刻が正確に得られるケースでは有効であるが、上記の課題に対する対策とはならない。
【０００９】
また、ロボット位置姿勢を正確に得るという観点においては、特許文献２に開示されている技術も知られている。特許文献２では、ロボット装置の絶対位置精度が低いことに対して、以下のような技術を提案している。すなわち、絶対位置が既知の参照計測対象を計測して、参照計測対象を計測した時の計測装置の絶対位置を取得する。そして、計測対象を計測する際には、参照計測対象を計測した位置から移動後に計測対象を計測する位置までの計測装置の移動量と移動方向を取得し、移動後の計測装置の絶対位置を取得する。ここで、計測装置の移動量と移動方向は微小位置決め装置により取得されるものとしている。微小位置決め装置としては汎用ロボットやそれに取り付けられた微小位置決め装置が記されているが、これらにより高速に動くロボットの特定タイミングにおける計測装置の移動量と移動方向を高精度に取得することは極めて困難である。
【００１０】
本発明はこの様な問題に鑑みてなされたものであり、移動しながら計測対象物の位置及び姿勢を正確に求めるための技術を提供する。
【課題を解決するための手段】
【００１１】
本発明の一様態は、第１の速度で移動するロボットに取り付けられたセンサによる静止物体の位置及び姿勢の計測の結果と、該計測中に取得した前記ロボットの基準座標系における位置及び姿勢と、に基づいて前記基準座標系における前記静止物体の位置及び姿勢を求める第１の算出手段と、前記第１の速度より大きい第２の速度で移動する前記ロボットにおける前記センサが計測した前記静止物体及び対象物体の位置及び姿勢の計測結果と、前記第１の算出手段が求めた前記静止物体の位置及び姿勢と、に基づいて、前記基準座標系における前記対象物体の位置及び姿勢を求める第２の算出手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成によれば、移動しながら計測対象物の位置及び姿勢を正確に求めることができる。
【図面の簡単な説明】
【００１３】
【図１】マシンビジョンシステム１の構成例を示す図。
【図２】コンピュータ装置１９９のハードウェア構成例を示すブロック図。
【図３】情報処理装置６が行う処理のフローチャート。
【図４】マシンビジョンシステム１の構成例を示す図。
【図５】計測装置とロボットアームを含む制御システムを示す図。
【図６】マシンビジョンシステム１の構成例を示す図。
【図７】マシンビジョンシステム１の構成例を示す図。
【図８】情報処理装置６が行う処理のフローチャート。
【図９】情報処理装置６が行う処理のフローチャート。
【図１０】情報処理装置６が行う処理のフローチャート。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１５】
［第１の実施形態］
先ず、本実施形態に係るマシンビジョンシステム１の構成例について、図１を用いて説明する。図１に示す如く現実空間中（机の上など）には、その位置姿勢（位置及び姿勢）を変更しない静止物体（基準物体）としての容器の一例であるパレット８が載置されている。そして、このパレット８上には、ロボット（ロボットアーム）３が有するハンド４（ロボットアームの一部）による把持対象（対象物体）となる部品などのワーク５が配置（収容）されている。ワーク５は、例えばパレット８上にばら積み状態で配置されている。なお、ワーク５はパレット８上に配置することに限らず、理由は後述するが、計測装置（マシンビジョン）２の計測範囲にパレット８と共に収まるようにパレット８の近くに配置する。
【００１６】
計測装置２は、ロボット３に対してマウンタ等を介してリジッドに取り付けられている。計測装置２は三次元形状計測装置の一種であり、計測対象の三次元情報（三次元形状や三次元位置姿勢）を得るためのものである。三次元形状計測の方式としては多種の方式が存在するが、本実施形態では、パターン光投影方式の計測を採用したケースについて説明する。この方式では投影系（投影装置）により計測対象に対して所定の投影パターンの投影を行い、該投影パターンが投影された計測対象を撮像系（撮像装置）によって撮像し、該撮像によって得られる撮像画像から計測対象の三次元情報を求める。投影パターンに関しては様々な種類が存在する。本実施形態ではラインパターン上にドット部を配するパターンを用いた方式を採用しているものとする。本方式においては撮像画像から検出されたドットの座標情報から各ラインがマスクパターン上のどのラインに対応するかの指標が与えられるため、一回の撮像によって計測対象全体の三次元情報が取得可能であるという特徴を有している。計測装置２の投影系及び撮像系の制御は情報処理装置６（制御部２０１）によって行われる。
【００１７】
なお、計測装置２に対しては、計測装置２を基準とするビジョン座標系１０２が存在し、計測装置２による撮像画像に基づいて求めるワーク５の位置姿勢はビジョン座標系１０２における位置姿勢となる。ビジョン座標系１０２は、例えば、計測装置２の撮像系が有する光学系の焦点位置を原点とし、計測装置２の撮像方向をｚ軸とし、該ｚ軸と直交する２軸をそれぞれｘ軸、ｙ軸とする座標系である。
【００１８】
ロボット３の先端部には、ワーク５を把持するためのハンド４がリジッドに取り付けられている。ロボット３はワーク５をハンド４によって把持して所望の位置や姿勢でもって該ワーク５を移動させることで、例えば該把持したワーク５を別の物体に組み付けることができる。ロボット３の代表例として６軸の多関節ロボットが挙げられ、製造業における部品の仕分け工程や組立て工程などで広く用いられている。なお、ロボット３に対しては、ロボット３を基準とするロボット座標系１０１が存在する。ロボット座標系１０１は、例えば、ロボット３の台座における規定の位置を原点とし、該原点で互いに直交する３軸をそれぞれ、ｘ軸、ｙ軸、ｚ軸とする座標系である。なお、ロボット座標系１０１は、基準座標系として設けたものであるから、ロボット３との相対的な位置姿勢を有する座標系であれば、現実空間中の何れの箇所に設けても良い。また、ハンド４に対しては、ハンド４を基準とするハンド座標系１０３が存在する。ハンド座標系１０３は、例えば、ハンド４の根本部分の位置を原点とし、ハンド４が取り付けられているアームの方向をｚ軸とし、該ｚ軸と直交する２軸をそれぞれ、ｘ軸、ｙ軸とする座標系である。ロボット３には上記の通り計測装置２も固定して配置されているため、計測装置２（ビジョン座標系１０２）とハンド４（ハンド座標系１０３）との間の相対的な位置姿勢関係は固定されていることになる。計測装置２（ビジョン座標系１０２）とハンド４（ハンド座標系１０３）との間の相対的な位置姿勢関係はキャリブレーション時に求めて、情報処理装置６（データ記憶部２０３）に登録されているものとする。なお、ハンド座標系１０３は、ハンド４を基準とする座標系に限らず、例えば、ロボット３のアーム部の何れかの箇所に設定しても良い。
【００１９】
ロボット３の制御、例えば、ロボット３が有する各アームの位置姿勢を制御することでハンド４の位置姿勢を制御する制御動作はコントローラ７によって行われる。ここで、ハンド４にワーク５を把持させるためには、ロボット座標系１０１におけるワーク５の位置姿勢をコントローラ７に与える必要がある。本実施形態では、計測装置２による撮像画像から求めたビジョン座標系１０２におけるワーク５の位置姿勢から、該撮像画像の撮像時におけるワーク５のロボット座標系１０１における位置姿勢を正確に求めてコントローラ７に与える。本実施形態では、ロボット座標系１０１におけるワーク５の位置姿勢の算出及びコントローラ７への提供は情報処理装置６によって行われる。
【００２０】
次に、情報処理装置６について説明する。制御部２０１は、情報処理装置６全体の動作制御を行うためのものである。画像取得部２０２は、計測装置２（撮像装置）が撮像した撮像画像を取得する。データ記憶部２０３には、情報処理装置６が各種の処理を実行するために必要なデータが保存されている。三次元情報算出部２０４は、計測装置２による撮像画像に写っているワーク５の三次元情報を算出するための様々な処理を実行する。ロボット情報取得部２０５は、コントローラ７からロボット座標系１０１におけるハンド４の位置姿勢を取得する。
【００２１】
次に、ロボット３の各アームの位置姿勢を変更させながら計測装置２により撮像された撮像画像からロボット座標系１０１におけるワーク５の位置姿勢を正確に算出するために情報処理装置６が行う処理について、図３のフローチャートに従って説明する。なお、図３のフローチャートに従った処理の中ではパレット８は固定して配置されているものとし、例えば、ステップＳ１００２までの処理とステップＳ１００２以降の処理とでパレット８の位置や姿勢は変わらないものとする。
【００２２】
＜ステップＳ１０００＞
先ず、コントローラ７は、計測装置２による投影パターンの投影範囲及び撮像範囲内にパレット８が含まれるようにハンド４の位置姿勢を固定する（つまり、計測装置２の位置姿勢を固定する）。本ステップにおいては、パレット８上若しくは近傍にワーク５が配置されていなくても良い。そして、計測装置２からは投影パターンが投影されたパレット８の撮像画像が情報処理装置６に対して出力されるので、画像取得部２０２は、計測装置２から送出された撮像画像を取得して、データ記憶部２０３に格納する。
【００２３】
またロボット情報取得部２０５は、ハンド４（計測装置２）の位置姿勢を固定してパレット８を撮像している状態におけるハンド４のロボット座標系１０１における位置姿勢をコントローラ７から取得してデータ記憶部２０３に格納する。
【００２４】
＜ステップＳ１００１＞
三次元情報算出部２０４は、ステップＳ１０００においてデータ記憶部２０３に格納された撮像画像から、ビジョン座標系１０２におけるパレット８の位置姿勢を算出する。投影パターンが投影された計測対象の撮像画像から該計測対象の位置姿勢を算出するための技術は周知である。例えば、撮像画像中の各画素位置における距離情報を三角測量の原理に基づいて算出することで計測対象の三次元形状を計測し、該三次元形状に対して予めデータ記憶部２０３に記憶された計測対象のモデル情報との比較を行うことで計測対象の位置姿勢を求める。この様にして求めた、ビジョン座標系１０２におけるパレット８の位置姿勢を表す行列をＴｒＶＰ(stop)と表記する。
【００２５】
一方、ビジョン座標系１０２とハンド座標系１０３との相対的な位置姿勢関係、すなわち、ハンド座標系１０３を基準としたビジョン座標系１０２の位置姿勢（ハンド座標系１０３における計測装置２の位置姿勢）は予めキャリブレーション時に求めている。そしてこの予め求めた位置姿勢はデータ記憶部２０３に登録されている。ハンド座標系１０３を基準としたビジョン座標系１０２の位置姿勢（ハンド座標系１０３における計測装置２の位置姿勢）を表す行列をＴｒＨＶと表記する。
【００２６】
また、ステップＳ１０００でロボット情報取得部２０５がコントローラ７から取得した「ハンド４のロボット座標系１０１における位置姿勢」を表す行列をＴｒＲＨ(stop)と表記する。
【００２７】
このとき、三次元情報算出部２０４は、以下の式（１）に従って、ステップＳ１０００における撮像時のロボット座標系１０１におけるパレット８の位置姿勢を表す行列ＴｒＲＰを算出する。
【００２８】
ＴｒＲＰ＝ＴｒＲＨ(stop)・ＴｒＨＶ・ＴｒＶＰ(stop)      （１）
このように、ステップＳ１０００及びＳ１００１では、計測装置２の位置姿勢を固定した状態でパレット８の位置姿勢を計測している。この様な方法によれば、計測時におけるハンド４の位置姿勢を正確に取得することができるので、計測時におけるパレット８のロボット座標系１０１における位置姿勢ＴｒＲＰを正確に求めることができる。結果として、ＴｒＲＰは計測誤差や静止時のロボット３の位置決め誤差の範囲内で正確な値として得ることが出来る。そして三次元情報算出部２０４は、この様にして求めたＴｒＲＰをデータ記憶部２０３に格納する。
【００２９】
ステップＳ１０００及びステップＳ１００１による処理によって求めたＴｒＲＰは、ステップＳ１００２以降の処理において、ロボット座標系１０１におけるワーク５の位置姿勢を求めるために使用される。
【００３０】
＜ステップＳ１００２＞
ステップＳ１００２以降では、パレット８上若しくは近傍にはワーク５が配置され、ハンド４の位置や姿勢を変更させながら（ハンド４を移動させながら）ワーク５のロボット座標系１０１における位置姿勢を計測する。なお、「ハンド４を移動させる」ことは、計測装置２を移動させることも意味する。また、ハンド４がパレット８に干渉する場合やあるいは情報処理装置６がワーク５の位置姿勢を誤認識し、その結果に基づいて移動したためにワーク５に予期せぬ干渉をした場合、ハンド４のずれなどが発生すると生産ラインを止めることとなる。よって、一般的にマシンビジョンシステム１においてはそのような干渉が起きないように種々の機能が備えられていて、パレット８はイレギュラーな現象が発生しない限り、位置姿勢が不変だとみなすことが可能である。
【００３１】
上記の通り、ハンド４の位置姿勢の変更はコントローラ７が行う。コントローラ７は、計測装置２による投影パターンの投影範囲及び撮像範囲内にパレット８及びワーク５の両方が含まれるようにロボット３の各アームの位置姿勢を変更してハンド４の位置姿勢の変更を行う。ステップＳ１００２では、コントローラ７によるハンド４の位置姿勢の変更中において計測装置２は、パレット８及びワーク５の両方に対して投影パターンを投影すると共に、投影パターンが投影されたパレット８及びワーク５の両方を撮像する。この撮像により得られる撮像画像には、投影パターンが投影されたパレット８及びワーク５の両方が含まれている。そして画像取得部２０２は、このような撮像画像（投影パターンが投影されたパレット８及びワーク５の両方が含まれている撮像画像）を計測装置２から取得し、該取得した撮像画像をデータ記憶部２０３に格納する。
【００３２】
＜ステップＳ１００３＞
三次元情報算出部２０４は、ステップＳ１００２においてデータ記憶部２０３に格納された撮像画像から、ビジョン座標系１０２におけるパレット８の位置姿勢及びワーク５の位置姿勢を算出する。撮像画像からパレット８及びワーク５の位置姿勢を算出する方法は、上記のステップＳ１００１と同様である。
【００３３】
この様にして求めた、ビジョン座標系１０２におけるパレット８の位置姿勢を表す行列をＴｒＶＰ(run)、ビジョン座標系１０２におけるワーク５の位置姿勢を表す行列をＴｒＶＷ(run)、と表記する。
【００３４】
＜ステップＳ１００４＞
三次元情報算出部２０４は、ステップＳ１００１でデータ記憶部２０３に格納したＴｒＲＰ、ステップＳ１００３で求めたＴｒＶＰ(run)及びＴｒＶＷ(run)、を用いて以下の式（２）を計算する。これにより、ロボット座標系１０１におけるワーク５の位置姿勢ＴｒＲＷ(run)を求めることができる。
【００３５】
ＴｒＲＷ(run)＝ＴｒＲＰ・ＴｒＶＰ(run)−１・ＴｒＶＷ(run)      （２）
この式（２）は、パレット８を計測装置２の位置姿勢を変化させずに計測する時点と変化させながら計測する時点において位置姿勢が同一であるという前提のもと成り立つ式である。前述の通り、計測装置２の位置姿勢を変化させながら計測を行う際には、ロボット３の位置姿勢が取得できない若しくは取得できたとしても精度が悪いということが大きな課題となる。しかし、本実施形態によると、移動中のハンド４の位置姿勢の取得可否に関わらず、移動しながらワーク５のロボット座標系１０１における位置姿勢が取得可能である。これは、計測装置２を静止させた状態における計測ではハンド４の位置姿勢及びロボット座標系１０１におけるパレット８の位置姿勢が正しく計測出来ることに着目することで実現されたものである。また、パレット８が移動計測時に静止状態計測時から動かなければ、同視野内のワーク５を計測する際に静止状態の計測で得た結果を利用出来ることに着目することで実現されたものでもある。
【００３６】
三次元情報算出部２０４が求めたＴｒＲＷ(run)は、例えば、コントローラ７に対して送出される。コントローラ７は、ハンド４の位置姿勢が三次元情報算出部２０４から受けたＴｒＲＷ(run)が示す位置姿勢となるようにロボット３を制御して、ハンド４にワーク５を把持させたりすることで、作業を進める。
【００３７】
＜ステップＳ１００５＞
制御部２０１は、図３のフローチャートの終了条件が満たされたか否かを判断する。例えば、全てのワーク５の組み付けが完了した場合や、ユーザから不図示のユーザインターフェースを介して終了指示が入力された場合には、終了条件が満たされたと判断する。
【００３８】
終了条件が満たされたと制御部２０１が判断した場合には、図３のフローチャートに従った処理は終了する。一方、終了条件は満たされていないと制御部２０１が判断した場合には、処理はステップＳ１００２に進み、例えば、他のワーク５についてステップＳ１００２以降の処理を行う。
【００３９】
このような図３のフローチャートに従った処理を行うことで、ステップＳ１００２以降では、位置姿勢を変更中のハンド４の位置姿勢が正確に取得できなくても、ロボット座標系１０１におけるワーク５の位置姿勢を正確に導出することができる。また、ステップＳ１０００及びＳ１００１の処理を一度行っておけば、後はロボット３を停止させることなくロボット座標系１０１におけるワーク５の位置姿勢を正確に導出することができ、ワーク５の把持や組み付けを行うことができる。
【００４０】
当然ながら、計測装置２を静止させた状態の計測においてロボット座標系１０１におけるワーク５の位置姿勢を正確に得ることは可能である。しかし、バラ積み状態にある複数のワーク５を１個ずつ計測、把持を繰り返す生産工程においては、撮像、認識されるワーク５の個体が変化するだけではなく、把持する際の物理作用によりバラ積み状態に変化が生じることが考えられる。従来技術において計測装置２を移動させながら計測を行った場合、ロボット座標系１０１におけるワーク５の位置姿勢が得られないことがある。この観点に立てば、バラ積み状態の複数のワーク５を毎回確実に計測、把持するためには、把持前に毎回静止状態で計測を行わなければならない。しかし、本実施形態では、一度計測装置２を静止させた状態で計測を行えば、その後バラ積み状態のワーク５に対して計測、把持を繰り返す際に、常時計測装置２を移動させながら計測を行い正確に把持することが可能である。生産工程において、本実施形態に係るマシンビジョンシステム１によって計測及び把持を行った場合の生産効率の優位性は自明である。
【００４１】
［第２の実施形態］
本実施形態を含む以下の各実施形態では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。第１の実施形態では、計測装置２はロボット３に取り付けられていたが、計測装置２はその位置や姿勢を変更可能に設けられるのであれば、ロボット３に取り付けることに限らない。例えば、図４に示す如く、移動ステージや電動スライダ等の駆動機構９により計測装置２の位置や姿勢を変更するようにしても良い。
【００４２】
この様な場合、ステップＳ１０００では、駆動機構９により、計測装置２による投影パターンの投影範囲及び撮像範囲内にパレット８が含まれるように計測装置２の位置姿勢を固定する。そして第１の実施形態と同様にして計測装置２からは投影パターンが投影されたパレット８の撮像画像が情報処理装置６に対して出力されるので、画像取得部２０２は、計測装置２から送出された撮像画像を取得して、データ記憶部２０３に格納する。
【００４３】
ステップＳ１００１では、三次元情報算出部２０４は、第１の実施形態と同様にして、ビジョン座標系１０２におけるパレット８の位置姿勢を表す行列をＴｒＶＰ(stop)として求める。また、計測装置２のロボット座標系１０１における位置姿勢はキャリブレーション時に行列ＴｒＲＶとして予め求めている。このとき、三次元情報算出部２０４は、以下の式（３）に従って、ロボット座標系１０１におけるパレット８の位置姿勢を表す行列ＴｒＲＰを算出する。
【００４４】
ＴｒＲＰ＝ＴｒＲＶ・ＴｒＶＰ(stop)      （３）
以降は第１の実施形態と同様である。
【００４５】
［第３の実施形態］
第１の実施形態では、静止物体としてパレット８を用いたが、他の物体を静止物体として使用しても良い。例えば、図６に示す如く、位置姿勢を変化させない固定ワーク１１を静止物体として使用しても良い。固定ワーク１１はワーク５と同種のものを用いてもよいし、より認識精度の良い別種の物体を用いてもよい。例えば、ロボットの動作の目的として組付け工程を考えた場合、ワーク５を把持して組付け先のワーク、部品、筐体などに組付けることも考えられる。このような場合、ワーク５はバラ積みで固定されていないが、組付け先は固定されており、ロボット座標系において組付け工程の間不変であるようなケースも考えられる。この様なケースの場合、組付け先のワークや部品や筐体を固定ワーク１１として採用しても良い。さらに、固定ワーク１１として、実際に生産現場で把持や組立てなどの目的で計測される計測対象などではなく、別途設置された認識用のマーカを用いてもよい。マーカは計測装置２により計測が出来るものであれば様々な形態をとることが可能であるが、その位置姿勢が変化しないようにリジットに固定されているものや計測装置２による認識の精度が良好なものを選択することが望ましい。
【００４６】
［第４の実施形態］
第１の実施形態では、計測装置２を用いた計測対象の三次元情報の計測方法として、ラインパターン上にドット部を配した投影パターンを計測対象に投影し、該投影パターンが投影された計測対象を撮像して、撮像画像から三次元情報を得る計測方法を想定した。しかし、計測対象の三次元情報を計測可能な方法には様々な方法を適用することができる。例えば、計測装置２が１度の撮像により計測対象の三次元情報を得る、いわゆるワンショット方式の計測方法を採用しても良い。例えば、投影パターンの様態としてラインの識別のためライン幅を変化させたライン幅変調方式、ランダムに配置されたドットを投影するランダムドット方式を採用することも可能である。また、パターン投影方式以外でも、カメラ２台により計測対象を撮像し、視差を利用して三次元情報を得るいわゆるパッシブステレオ方式の計測方法を採用しても良い。このように、計測装置２には、計測対象の位置姿勢を計測するための様々なセンサを適用することができる。
【００４７】
［第５の実施形態］
ステップＳ１０００では、ハンド４や計測装置２の位置姿勢を固定して撮像していた。しかし、撮像時の近傍におけるハンド４の位置姿勢を取得することができるのであれば、ハンド４や計測装置２は全く停止させなくても良い。
【００４８】
例えば、ハンド４の移動速度に対してコントローラ７からの位置姿勢の出力間隔が短い場合、撮像のタイミング（計測タイミング）から遅れて取得したハンド４の位置姿勢であっても、撮像時のハンド４の位置姿勢の真値と大きくは変わらない場合がある。つまり、ハンド４を第１の移動速度で移動させても撮像時のハンド４の位置姿勢との差異が規定範囲内となるような位置姿勢が得られるのであれば、ハンド４を第１の移動速度で移動させながらステップＳ１０００及びＳ１００１を行っても良い。
【００４９】
これは計測装置２についても同様で、第２の実施形態においてもステップＳ１０００において計測装置２を固定しなくてもよい。つまり、計測装置２を第１の移動速度で移動させても撮像時の計測装置２の位置姿勢との差異が規定範囲内となるような位置姿勢が得られるのであれば、計測装置２を第１の移動速度で移動させながらステップＳ１０００及びＳ１００１を行っても良い。
【００５０】
［第６の実施形態］
本実施形態では、ロボット座標系１０１におけるワーク５の位置姿勢を第１の実施形態の構成を採用して求めるのか、それともロボット座標系１０１におけるパレット８の位置姿勢を求めずに、ハンド４を移動させながら計測するのか、を切り替える。計測装置２による撮像時におけるロボット３の位置姿勢を取得出来るか否かは、ハンド４の移動速度や計測装置２の露光時間、情報処理装置６の性能などの種々のパラメータに影響される。然るに経験的に又は取得タイミングの算出結果等により確実に撮像時におけるハンド４の位置姿勢を取得出来る状況では、スループット向上の観点でも、図３のフローチャートに従った処理を行うことなく、移動中の計測装置２による計測結果を採用すればよい。以下に、本実施形態の様々な変形例を説明する。
【００５１】
＜変形例１＞
変形例１では、ハンド４の移動速度の設定情報に応じて、上記の切り替えを行う。前述の通り、ハンド４の移動速度が速い状況では、ハンド４の位置姿勢が取得できないケースがあることがわかっている。その理由が、前述の通りコントローラ７が取得したハンド４の位置姿勢をメモリに書き終わるまでの間に次のトリガを受信したということであれば、ハンド４の移動速度が遅い場合はハンド４の位置姿勢が取得可能である。また、実験的にもハンド４の移動速度が一定速度より遅い場合はハンド４の位置姿勢が取得出来るケースが確認されている。よってハンド４の速度が一定速度より遅い場合の計測においては従来通りコントローラ７よりハンド４の位置姿勢を取得して計測を行い、速い場合には第１の実施形態に係る構成を採用して計測を行うという形態が考えられる。
【００５２】
本変形例に係るマシンビジョンシステム１の構成例を図７に示す。図７に示した構成は、図１に示した構成において、情報処理装置６に判定部２０６を加えたものとなっている。判定部２０６は、コントローラ７から得られる設定情報が示す「ハンド４の移動速度」と、データ記憶部２０３に予め格納されている速度閾値と、の比較を行う。
【００５３】
この比較の結果、ハンド４の移動速度が速度閾値よりも大きい（早い）と判定部２０６が判定した場合には、コントローラ７から撮像時におけるハンド４の位置姿勢を正確に取得できない可能性がある。そのため判定部２０６は、第１の実施形態で説明した計測を行うべく、コントローラ７に対し、図３のフローチャートに従った処理を実現するためのハンド４の位置姿勢の制御を行わせるための制御信号を送出する。
【００５４】
一方、この比較の結果、ハンド４の移動速度が速度閾値よりも小さい（遅い）と判定部２０６が判定した場合には、コントローラ７から撮像時におけるハンド４の位置姿勢を正確に取得できる。そのため判定部２０６は、コントローラ７に対してハンド４を移動させるための制御信号を送出する。画像取得部２０２は、移動中の計測装置２による撮像画像を取得し、三次元情報算出部２０４は、該撮像画像から、ビジョン座標系１０２におけるワーク５の位置姿勢を表す行列式ＴｒＶＷ(run)を算出する。また、ロボット情報取得部２０５は、コントローラ７からロボット座標系１０１におけるハンド４の位置姿勢を表す行列式ＴｒＲＨ(run)を取得する。そして三次元情報算出部２０４は、以下の式（４）を計算することで、ロボット座標系１０１におけるワーク５の位置姿勢を表す行列ＴｒＲＷ(run)を求める。
【００５５】
ＴｒＲＷ(run)＝ＴｒＲＨ(run)・ＴｒＨＶ・ＴｒＶＷ(run)      （４）
ＴｒＨＶは第１の実施形態で説明したとおり、ハンド座標系１０３を基準としたビジョン座標系１０２の位置姿勢（ハンド座標系１０３における計測装置２の位置姿勢）を表す行列であり、データ記憶部２０３に登録されている。
【００５６】
本変形例に係るマシンビジョンシステム１における情報処理装置６がロボット座標系１０１におけるワーク５の位置姿勢を求めるために行う処理について、図８のフローチャートに従って説明する。図８において図３と同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００５７】
＜ステップＳ２０００＞
判定部２０６は、コントローラ７から得られる設定情報が示す「ハンド４の移動速度」と、データ記憶部２０３に予め格納されている速度閾値と、の比較を行う。この比較の結果、ハンド４の移動速度が速度閾値よりも大きい（早い）と判定部２０６が判定した場合には、処理はステップＳ１０００に進む。一方、この比較の結果、ハンド４の移動速度が速度閾値よりも小さい（遅い）と判定部２０６が判定した場合には、処理はステップＳ３０００に進む。
【００５８】
＜ステップＳ３０００＞
コントローラ７によってハンド４は移動しているため、計測装置２もまた移動しながらワーク５を撮像している。然るに画像取得部２０２は、移動中の計測装置２によって撮像された撮像画像を取得する。
【００５９】
＜ステップＳ３００１＞
ロボット情報取得部２０５は、コントローラ７からハンド４のロボット座標系１０１における位置姿勢を表す行列式ＴｒＲＨ(run)を取得する。
【００６０】
＜ステップＳ３００２＞
三次元情報算出部２０４は、ステップＳ３０００で取得した撮像画像から、ビジョン座標系１０２におけるワーク５の位置姿勢を表す行列式ＴｒＶＷ(run)を算出する。そして三次元情報算出部２０４は、ＴｒＶＷ(run)、ステップＳ３００１で取得したＴｒＲＨ(run)、データ記憶部２０３から取得したＴｒＨＶを用いて上記の式（４）を計算する。これにより三次元情報算出部２０４は、ロボット座標系１０１におけるワーク５の位置姿勢を表す行列ＴｒＲＷ(run)を求める。
【００６１】
＜ステップＳ３００３＞
制御部２０１は、図８のフローチャートの終了条件が満たされたか否かを判断する。終了条件が満たされたと制御部２０１が判断した場合には、図８のフローチャートに従った処理は終了する。一方、終了条件は満たされていないと制御部２０１が判断した場合には、処理はステップＳ３０００に進み、例えば、他のワーク５についてステップＳ３０００以降の処理を行う。
【００６２】
ステップＳ２０００ではハンド４の移動速度に加えて又は代えて、計測装置２の露光時間、情報処理装置６の性能等も加味してステップＳ１０００〜Ｓ１００５の処理を行うのか、それともステップＳ３０００〜Ｓ３００３の処理を行うのかを判定しても良い。
【００６３】
また、ステップＳ２０００における判定は、ハンド４の移動速度が計測中に不変な場合には、図８のように計測対象の計測を行う前に行う。しかし、計測中にハンド４の移動速度が切り替わる場合には、リアルタイムでハンド４の移動速度を監視し、計測を行う毎にステップＳ２０００における判定を行うようにしても良い。
【００６４】
＜変形例２＞
本変形例でも、図７に例示した構成を有するマシンビジョンシステム１を使用する。本変形例に係るマシンビジョンシステム１における情報処理装置６がロボット座標系１０１におけるワーク５の位置姿勢を求めるために行う処理について、図９のフローチャートに従って説明する。図９において図３，８と同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る詳細な説明は省略し、処理の流れを重点的に説明する。
【００６５】
ステップＳ２００１では判定部２０６は、ステップＳ３０００で撮像画像を取得したタイミングでロボット情報取得部２０５がコントローラ７からハンド４の位置姿勢を表す行列式ＴｒＲＨ(run)を取得したか否かを判断する。この判断の結果、取得したと判定部２０６が判断した場合、成功と判断して処理はステップＳ３００２に進む。一方、取得していないと判定部２０６が判断した場合、失敗と判断して処理はステップＳ２００２に進む。
【００６６】
例えば、低速でハンド４を移動させて計測を行い、安定的にハンド４の位置姿勢がコントローラ７から取得出来る状況で計測を行っていたとする。その場合においても、コントローラ７の処理速度の変動や取得タイミングのずれなどにより、ある条件下でハンド４の位置姿勢が取得出来なくなることが考えられる。その際、ハンド４の位置姿勢が取得できなくなったことを判定材料として第１の実施形態の計測方法に移行すれば、最初から第１の実施形態を適用することに伴うスループット低下は必要なケースのみで抑えられ、把持、組立て等の各種動作を行うことが出来る。
【００６７】
ステップＳ２００２では、判定部２０６は、ステップＳ１０００及びＳ１００１の処理を既に行って、ロボット座標系１０１におけるパレット８の位置姿勢をデータ記憶部２０３に取得しているのか否かを判断する。この判断の結果、ステップＳ１０００及びＳ１００１の処理を既に行っていると判定部２０６が判断した場合には、処理はステップＳ１００２に進む。一方、ステップＳ１０００及びＳ１００１の処理を未だ行っていないと判定部２０６が判断した場合には、処理はステップＳ１０００に進む。
【００６８】
前述の通り、本変形例においてステップＳ２００１で失敗と判断したのはイレギュラーな結果であるという想定であり、次回以降ステップＳ２００１では成功と判断される場合が多い。仮に失敗になったとしても一度ステップＳ１０００及びＳ１００１を実行しておけば、後はロボット３を静止させて計測を行う必要はない。ステップＳ３００３でもステップＳ１００５でも、終了条件が満たされていない場合には、処理はステップＳ３０００に進む。
【００６９】
＜変形例３＞
本変形例においては、ハンド４の移動速度が速く、ハンド４の位置姿勢の取得を時折失敗するような状況を想定する。その場合、第１の実施形態に係る計測方法を採用することが望ましい。上述したように第１の実施形態では、静止物体としてのパレット８は、ロボット座標系１０１におけるパレット８の位置姿勢の計測、ロボット座標系１０１におけるワーク５の位置姿勢の計測、のそれぞれにおいて位置姿勢が変化しないことを条件としている。パレット８は基本的に計測中に物理的干渉を受けないようになっているのでこの前提は多くの状況で成立する。しかし、誤認識によるロボット３の動作やパレット８内のワーク５を把持した際の間接的な物理作用等が原因で、パレット８の位置姿勢が変化してしまう可能性も考えられる。そのようなケースが発生すると、第１の実施形態に係る計測方法を適用してワーク５の把持、組立てなどの各種動作を行うことは不可能となる。
【００７０】
よって、上記のようにパレット８の位置姿勢が変化した場合には再びパレット８を正確に計測できる計測条件に移行することが望ましい。そのような計測フローの切替を行うためにはパレット８の位置姿勢が変化したか否かを判定する必要がある。
【００７１】
本変形例でも、図７に例示した構成を有するマシンビジョンシステム１を使用する。第１の実施形態で説明したステップＳ１０００及びＳ１００１の処理によって、ロボット座標系１０１におけるパレット８の位置姿勢を表す行列ＴｒＲＰ(stop)がデータ記憶部２０３に取得されているとする。
【００７２】
また、ハンド４を移動させて計測装置２により計測したパレット８のビジョン座標系１０２における位置姿勢を表す行列ＴｒＶＰ(run)が得られているものとする。また、データ記憶部２０３に予め、ハンド座標系１０３を基準としたビジョン座標系１０２の位置姿勢（ハンド座標系１０３における計測装置２の位置姿勢）を表す行列ＴｒＨＶが登録されているものとする。また、計測装置２による計測時におけるハンド４のロボット座標系１０１における位置姿勢を表す行列ＴｒＲＨ(run)がコントローラ７からロボット情報取得部２０５によって取得されたとする。このとき、行列ＴｒＶＰ(run)、ＴｒＨＶ、ＴｒＲＨ(run)を用いて以下の式（５）を計算する。これにより、パレット８のロボット座標系１０１における位置姿勢を表す行列ＴｒＲＰ(run)を求めることができる。
【００７３】
ＴｒＲＰ(run)＝ＴｒＲＨ(run)・ＴｒＨＶ・ＴｒＶＰ(run)      （５）
この時点で、ロボット座標系１０１におけるパレット８の位置姿勢に関し、計測装置２を移動させないで計測を行った結果であるＴｒＲＰ(stop)と計測装置２を移動させながら計測を行った結果であるＴｒＲＰ(run)とが得られる。
【００７４】
ＴｒＲＰ(stop)とＴｒＲＰ(run)とに規定量以上の差がない場合、ロボット座標系１０１におけるハンド４の位置姿勢は正しく取得されており、パレット８の位置姿勢も変化していないと判定するのが妥当である。
【００７５】
一方、ＴｒＲＰ(stop)とＴｒＲＰ(run)とに一定量以上の差が存在する場合、２つの要因が考えられる。１つ目はＴｒＲＨ(run)が正しく取得出来ていないこと、２つ目はパレット８の位置姿勢が変化したことである。これらの要因の特定方法の一つとしてはＴｒＲＨ(run)の確度と物理的干渉が起きて位置姿勢が変化した際のパレット８の位置姿勢変動量を基に特定することが考えられる。移動時のハンド４の位置姿勢は、取得さえ出来ればせいぜい１００μmレベルのずれにしかならないことが経験的に分かっていた場合、それより大きな変化、例えば数mmレベルのずれが起きていれば、パレット８の位置姿勢変化によるものと考えることが出来る。また、別の要因の特定方法として、ずれの方向によって特定を行ってもよい。例えばハンド４の移動の軌跡が既知である場合、ＴｒＲＨ(run)の位置情報の取得誤差のベクトルは軌跡のベクトル方向と同じ方向である可能性が高い。よってずれの方向が軌跡方向と一致していればＴｒＲＨ(run)が正しく取得出来ていないと判定出来て、それらの差が所定の閾値より大きければパレット８の位置姿勢が変化したと判定出来る。この様な判定によりパレット８の位置姿勢に変化が生じたと判定された場合は、再度図３のフローチャートに従った処理を行う。
【００７６】
本変形例に係るマシンビジョンシステム１における情報処理装置６がロボット座標系１０１におけるワーク５の位置姿勢を求めるために行う処理について、図１０のフローチャートに従って説明する。図１０において図３，８，９と同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る詳細な説明は省略し、処理の流れを重点的に説明する。
【００７７】
ステップＳ２００１では判定部２０６は、ステップＳ１００２で撮像画像を取得したタイミングでロボット情報取得部２０５がコントローラ７からハンド４の位置姿勢を表す行列式ＴｒＲＨ(run)を取得したか否かを判断する。この判断の結果、取得したと判定部２０６が判断した場合、成功と判断して処理はステップＳ２００３に進む。一方、取得していないと判定部２０６が判断した場合、失敗と判断して処理はステップＳ１００３に進む。
【００７８】
ステップＳ２００３では、三次元情報算出部２０４は、ステップＳ１００２で取得した撮像画像に基づいて、ビジョン座標系１０２におけるパレット８の位置姿勢を求める。ステップＳ２００４では、三次元情報算出部２０４は、ステップＳ１０００における撮像時のロボット座標系１０１におけるパレット８の位置姿勢を上記の式（５）を用いて求める。
【００７９】
そしてステップＳ２００５では判定部２０６は、ステップＳ１００１で算出したロボット座標系１０１におけるパレット８の位置姿勢と、ステップＳ２００４で算出したロボット座標系１０１におけるパレット８の位置姿勢と、を比較する。上記の通り、この比較の結果、両者の差異が閾値以上であれば、判定部２０６は、パレット８の位置姿勢は変化したものと判断し、処理はステップＳ１０００に戻る。なお、両者の差異が閾値以上の場合に、必ずしもステップＳ１０００に進むことに限らない。例えば、ステップＳ２００１で取得されたハンド４の位置姿勢が確度の高いものであれば、ステップＳ２００４で求めたパレット８の位置姿勢を移動後のパレット８の位置姿勢と見なし、処理をステップＳ１００３に進めても良い。一方、この比較の結果、両者の差異が閾値未満であれば、判定部２０６は、パレット８の位置姿勢は変化していないものと判断し、処理はステップＳ１００３に進む。
【００８０】
また、本変形例では、ロボット座標系１０１におけるパレット８の位置姿勢に基づいて、パレット８の位置姿勢の変化の有無を判定した。しかし、他の方法を用いてパレット８の位置姿勢の変化の有無を判定しても良い。例えば、パレット８の位置姿勢が不変であると仮定した場合の、計測装置２の位置姿勢を変化させながら撮像した時点でのハンド４の位置姿勢を逆算しても良い。逆算したハンド４の位置姿勢がハンド４の軌道上確かなものか否かを判定することでも、パレット８の位置姿勢の変化の有無の判定が可能である。
【００８１】
なお、上記の各実施形態の一部若しくは全部を適宜組み合わせて使用しても良い。例えば、上述の実施形態においては、ハンド４の位置姿勢を変化させずに計測を行った後にハンド４の位置姿勢を変化させて計測を行ったが、この順序は可変である。つまり、位置姿勢が不変な基準物体のロボット座標系における位置姿勢を、正確に取得出来る状態と移動状態とで計測し、その計測結果を用いて移動状態における把持や組付け等の動作を行いたい計測対象のロボット座標系における位置姿勢を取得できれば良い。
【００８２】
また、上記の実施形態では、ロボット３にはハンド４が取り付けられているものとし、コントローラ７はハンド４のロボット座標系１０１における位置姿勢を取得するものとした。しかし、ロボット３にハンド４以外のユニットを取り付けた場合には、上記の処理では、ハンド４の位置姿勢の代わりにこのユニットの位置姿勢を用いることになる。また、この様なユニットではなく、ロボット３における任意の部位を対象としても良い。
【００８３】
［第７の実施形態］
図１，４，６，７に示した情報処理装置６を構成する各機能部はハードウェアで実装しても良いが、データ記憶部２０３を除く各機能部をソフトウェア（コンピュータプログラム）で実装しても良い。後者の場合、データ記憶部２０３として機能するメモリと、それ以外の機能部に対応するコンピュータプログラムを実行可能なプロセッサと、を有するコンピュータ装置であれば、上記の情報処理装置６に適用することができる。
【００８４】
情報処理装置６に適用可能なコンピュータ装置１９９のハードウェア構成例について、図２のブロック図を用いて説明する。尚、図２に示した構成は、情報処理装置６に適用可能なコンピュータ装置のハードウェア構成の一例であり、種々の変形／変更が可能である。
【００８５】
ＣＰＵ２１は、メインメモリ２２に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりＣＰＵ２１は、コンピュータ装置１９９全体の動作制御を行うと共に、情報処理装置６が行うものとして上述した各処理を実行若しくは制御する。
【００８６】
メインメモリ２２は、記憶部２３やＲＯＭ２４からロードされるコンピュータプログラムやデータ、汎用Ｉ／Ｆ２６を介して記録メディア３２からロードされるコンピュータプログラムやデータ、を格納するためのエリアを有する。更にメインメモリ２２は、ＣＰＵ２１が各種の処理を実行若しくは制御するために用いるワークエリアを有する。このようにメインメモリ２２は、各種のエリアを適宜提供することができる。
【００８７】
記憶部２３は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。記憶部２３には、ＯＳ（オペレーティングシステム）や、情報処理装置６が行うものとして上述した各処理をＣＰＵ２１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。記憶部２３に保存されているコンピュータプログラムには、図１，４，６，７においてデータ記憶部２０３以外の各機能部の機能をＣＰＵ２１に実行させるためのコンピュータプログラムが含まれている。また、記憶部２３に保存されているデータには、上記の説明において既知の情報として説明したもの、例えば、閾値や、行列ＴｒＨＶ、行列ＴｒＲＶ、などが含まれている。記憶部２３に保存されているコンピュータプログラムやデータは、ＣＰＵ２１による制御に従って適宜メインメモリ２２にロードされ、ＣＰＵ２１による処理対象となる。ＲＯＭ２４には、ブートプログラムや設定データなどが保存されている。
【００８８】
汎用Ｉ／Ｆ２６には、入力装置３１と記録メディア３２とが接続される。入力装置３１は、キーボードやマウスなどのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をＣＰＵ２１に対して入力することができる。記録メディア３２は、ＳＤカード、ＵＳＢ等のメモリ装置である。
【００８９】
ＶＣ（ビデオコントローラ）２７には表示装置３３が接続されている。表示装置３３はＶＣ２７による制御に従って、ＣＰＵ２１による処理結果を画像や文字などでもって表示することができる。入力装置３１と表示装置３３とを一体化させてタッチパネル画面を構成しても良い。ＣＰＵ２１、メインメモリ２２、記憶部２３、ＲＯＭ２４、汎用Ｉ／Ｆ２６、ＶＣ２７は何れもバス２５に接続されている。
【００９０】
［第８の実施形態］
上述の情報処理装置６及び計測装置２を含む計測装置は、ある支持部材に支持された状態で使用されうる。本実施形態では、一例として、図５のようにロボットアーム５３００（把持装置）に備え付けられて使用される制御システムについて説明する。計測装置５１００は、支持台５３５０に置かれた被検物５２１０にパターン光を投影して撮像し、画像を取得する。そして、計測装置５１００の制御部が、又は、計測装置５１００の制御部から画像データを取得した制御部５３１０が、被検物５２１０の位置および姿勢を求め、求められた位置および姿勢の情報を制御部５３１０が取得する。制御部５３１０は、その位置および姿勢の情報に基づいて、ロボットアーム５３００に駆動指令を送ってロボットアーム５３００を制御する。ロボットアーム５３００は先端のロボットハンドなど（把持部）で被検物５２１０を保持して、並進や回転などの移動をさせる。さらに、ロボットアーム５３００によって被検物５２１０を他の部品に組み付けることにより、複数の部品で構成された物品、例えば電子回路基板や機械などを製造することができる。また、移動された被検物５２１０を加工することにより、物品を製造することができる。制御部５３１０は、ＣＰＵなどの演算装置やメモリなどの記憶装置を有する。なお、ロボットを制御する制御部を制御部５３１０の外部に設けても良い。また、計測装置５１００により計測された計測データや得られた画像をディスプレイなどの表示部５３２０に表示してもよい。
【００９１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９２】
２：計測装置  ３：ロボット  ７：コントローラ  ６：情報処理装置
【図１】
2018161700.tif 000003
【図２】
2018161700.tif 000004
【図３】
2018161700.tif 000005
【図４】
2018161700.tif 000006
【図５】
2018161700.tif 000007
【図６】
2018161700.tif 000008
【図７】
2018161700.tif 000009
【図８】
2018161700.tif 000010
【図９】
2018161700.tif 000011
【図１０】
2018161700.tif 000012