(57)【要約】【課題】一時停止せずに、ワークを撮像した瞬間の正確なロボット位置を取得する。【解決手段】ロボットシステム（10）は、視覚センサ（13）に対するワークの位置情報を算出する処理部（32）と、ロボット制御部（31）および処理部が現在時刻を参照する時計（35）と、所定周期の第一の時刻と、第一の時刻におけるアーム先端部の位置情報とを組にして順次記憶する第一記憶部（33）と、視覚センサがワークを計測する第二の時刻を記憶する第二記憶部（34）と、第一の時刻のうち、第二の時刻よりも前および後の少なくとも二つの第一の時刻と、該第一の時刻のそれぞれに対応するアーム先端部の位置情報とに基づいて、視覚センサがワークを計測したときのアーム先端部の位置情報を算出するアーム先端部位置算出部（41）と、アーム先端部およびワークの位置情報とに基づいて、アーム先端部に対する把持されたワークの位置情報を算出するワーク位置算出部（42）とを含む。【選択図】図３
2011201007.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、該ロボットを制御するロボット制御部と、ワークを視覚的に計測する視覚センサと、前記ワークまたは前記視覚センサのうちの一方が前記ロボットのアーム先端部に把持されるかまたは固定されつつ、前記ロボットのアームの動作によって移動可能であると共に、前記ワークまたは前記視覚センサのうちの他方が前記ロボットから離れた位置に置かれている、ロボットシステムにおいて、
前記視覚センサを制御すると共に、該視覚センサにより計測された前記ワークの情報に基づいて、前記視覚センサに対する前記ワークの位置情報を算出する視覚センサ情報処理部と、
前記ロボット制御部および前記視覚センサ情報処理部が現在時刻を参照する時計と、
一定周期または不定周期の第一の時刻と、該第一の時刻における前記アーム先端部の位置情報とを組にして順次記憶するロボット位置時刻用記憶部と、
前記視覚センサが前記ワークを計測する第二の時刻を記憶する画像撮像時刻用記憶部と、
前記ロボット位置時刻用記憶部に記憶された第一の時刻のうち、前記画像撮像時刻用記憶部に記憶された前記第二の時刻よりも前および後のそれぞれにおける少なくとも二つの第一の時刻と、これら第一の時刻のそれぞれに対応する前記アーム先端部の位置情報とに基づいて、前記視覚センサが前記ワークを計測したときの前記アーム先端部の位置情報を算出するアーム先端部位置算出部と、
該アーム先端部位置算出部により算出された前記アーム先端部の位置情報と前記視覚センサ情報処理部により算出された前記ワークの位置情報とに基づいて、前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報を算出するワーク位置算出部と、を具備するロボットシステム。
【請求項２】
前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときに前記ワークを計測する、請求項１に記載のロボットシステム。
【請求項３】
さらに、前記ワーク位置算出部により算出された、前記ロボットの前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報に基づいて、前記ロボットの動作を補正する補正部を具備する請求項１または２に記載のロボットシステム。
【請求項４】
前記ワークまたは前記視覚センサのうちの一方が、前記ロボットのアーム先端部に把持されるかまたは固定されつつ前記ロボットのアームの動作によって移動可能であり、
前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときに該アーム先端部が互いに異なる位置にいる時点で前記ワークを複数回撮像してステレオ計測を行い、
前記ワーク位置算出部は、前記視覚センサの前記ステレオ計測の結果に基づいて、前記アーム先端部に対する前記把持されたワークの三次元位置または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する三次元位置を算出するようにした、請求項１に記載のロボットシステム。
【請求項５】
さらに、前記視覚センサに取付けられたレーザスリット投光器を具備し、
前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときにレーザが投光されている前記ワークの一部分の三次元位置を異なる位置で複数回撮像することにより距離画像を取得し、
前記ワーク位置算出部は、前記距離画像に基づいてワークの三次元形状または／および三次元位置を算出するようにした、請求項１に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は視覚センサによって検出したワークの位置情報を用いてロボットを作業させるロボットシステムに関する。
【背景技術】
【０００２】
ロボットを用いてワークのハンドリングまたは加工などの作業を正確に行うには、ワークが置かれている位置およびロボットが把持しているワークの把持ずれを正確に認識することが必要になる。このため、近年では、視覚センサを用いてワークの位置およびワークの把持ずれを視覚的に認識することが行われている。
【０００３】
カメラがロボットアーム先端部に取付けられていて、テーブルなどに配置されたワークの位置を計測する場合に、ワークの位置の認識が実施される。また、ワークの把持ずれの認識は、ロボットが把持しているワークの位置を固定カメラで計測する場合に実施される。
【０００４】
このようにカメラまたはワークのうちの一方がロボットの動作によって移動可能な状態でワークの位置を計算する場合には、画像を撮像した瞬間のロボットの位置情報が必要となる。その理由は、同じ位置にあるワークを撮像した場合であっても、カメラが取付けられたロボットまたはワークを把持しているロボットの位置が変化すると、画像内でのワークの位置が変化するためである。
【０００５】
特許文献１には、撮像時のロボットの位置情報を用いて、画像内でのワークの位置を計算する方法が開示されている。しかしながら、特許文献１に開示される技術を実際に適用する際には、撮像した瞬間の正確なロボットの位置情報を得るために、ワークの撮像時にロボットを一時静止させる必要があった。
【０００６】
ワークの撮像時にロボットを一時静止する場合には、ロボットの減速時間、撮像とロボット位置取得とのための静止時間、再加速時間などを必要とし、タクトタイムが増加するという問題点があった。このような問題を解決するために、ロボットを静止させることなしにワークの画像を撮像し、ワークを撮像した瞬間のロボット位置を取得することが望まれている。
【０００７】
ここで、撮像した時刻とロボット位置を取得した時刻との間のずれが問題となりうる。例えば、ロボットが２０００ｍｍ／ｓｅｃで移動していて、撮像した時刻とロボット位置を取得した時刻とが１ｍｓｅｃずれた場合には、ロボットはこれら時刻の間で２ｍｍ移動することになる。従って、ワークの画像に含まれるワークの位置情報は、ロボットが上記のように移動した誤差を生じさせることになる。
【０００８】
また、カメラとワークとの間の距離が１ｍとすると、撮像した時刻とロボット位置を取得した時刻との間の１ｍｓｅｃにおいてロボットの姿勢が０．１度変化した場合には、さらに１０００ｍｍ×ｔａｎ（０．１）＝１．７５ｍｍの計測誤差が発生する。そして、その計測誤差もワークの位置情報に含まれることになる。
【０００９】
一般的にロボット制御装置は一定周期、例えばサーボモータの制御周期で該サーボモータのエンコーダの角度情報などを読取って、ロボットの位置情報を認識している。従って、視覚センサにより計測されたワークの位置情報の精度は、この更新周期に依存することになる。
【００１０】
特許文献２には、ロボットに取付けられたカメラによってロボットの移動中にワークを撮像し、ワークの位置を補正するシステムが開示されている。しかしながら、特許文献２には、撮像した瞬間の正確なロボット位置を取得する具体的な方法は開示されていない。
【００１１】
さらに、特許文献３には、ロボットがワークを搬送しているときに、ワークを撮像して把持誤差を補正する方法が開示されている。しかしながら、ロボット位置の更新周期に起因するロボット位置の誤差については考慮されていない。
【００１２】
特許文献４には、より短い周期でロボットの位置情報を更新しているサーボモータの制御系に対して、撮像した瞬間にトリガ信号を送り、該制御系が保持しているロボット位置情報を取得する方法が開示されている。そのような場合であっても、ロボット位置情報の精度はサーボモータの制御系の制御周期に依存する。また、特許文献４に開示される方法は専用のトリガ信号線とトリガ入出力部を必要とするという問題も含んでいる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第２８８９０１１号
【特許文献２】ＷＯ  ２００９／０７７１１８  Ａ１
【特許文献３】特許第４１７４３４２号
【特許文献４】特開２００８−１８３６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明はこのような事情に鑑みてなされたものであり、ロボットを一時停止することなしに、および専用のハードウェアを用いることなしに、撮像した瞬間の正確なロボット位置を取得することのできるロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
前述した目的を達成するために１番目の発明によれば、ロボットと、該ロボットを制御するロボット制御部と、ワークを視覚的に計測する視覚センサと、前記ワークまたは前記視覚センサのうちの一方が前記ロボットのアーム先端部に把持されるかまたは固定されつつ、前記ロボットのアームの動作によって移動可能であると共に、前記ワークまたは前記視覚センサのうちの他方が前記ロボットから離れた位置に置かれている、ロボットシステムにおいて、前記視覚センサを制御すると共に、該視覚センサにより計測された前記ワークの情報に基づいて、前記視覚センサに対する前記ワークの位置情報を算出する視覚センサ情報処理部と、前記ロボット制御部および前記視覚センサ情報処理部が現在時刻を参照する時計と、一定周期または不定周期の第一の時刻と、該第一の時刻における前記アーム先端部の位置情報とを組にして順次記憶するロボット位置時刻用記憶部と、前記視覚センサが前記ワークを計測する第二の時刻を記憶する画像撮像時刻用記憶部と、前記ロボット位置時刻用記憶部に記憶された第一の時刻のうち、前記画像撮像時刻用記憶部に記憶された前記第二の時刻よりも前および後のそれぞれにおける少なくとも二つの第一の時刻と、これら第一の時刻のそれぞれに対応する前記アーム先端部の位置情報とに基づいて、前記視覚センサが前記ワークを計測したときの前記アーム先端部の位置情報を算出するアーム先端部位置算出部と、該アーム先端部位置算出部により算出された前記アーム先端部の位置情報と前記視覚センサ情報処理部により算出された前記ワークの位置情報とに基づいて、前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報を算出するワーク位置算出部と、を具備するロボットシステムが提供される。
２番目の発明によれば、１番目の発明において、前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときに前記ワークを計測する。
３番目の発明によれば、１番目または２番目の発明において、さらに、前記ワーク位置算出部により算出された、前記ロボットの前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報に基づいて、前記ロボットの動作を補正する補正部を具備する。
４番目の発明によれば、１番目の発明において、前記ワークまたは前記視覚センサのうちの一方が、前記ロボットのアーム先端部に把持されるかまたは固定されつつ前記ロボットのアームの動作によって移動可能であり、前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときに該アーム先端部が互いに異なる位置にいる時点で前記ワークを複数回撮像してステレオ計測を行い、前記ワーク位置算出部は、前記視覚センサの前記ステレオ計測の結果に基づいて、前記アーム先端部に対する前記把持されたワークの三次元位置または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する三次元位置を算出する。
５番目の発明によれば、１番目の発明において、さらに、前記視覚センサに取付けられたレーザスリット投光器を具備し、前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときにレーザが投光されている前記ワークの一部分の三次元位置を異なる位置で複数回撮像することにより距離画像を取得し、前記ワーク位置算出部は、前記距離画像に基づいてワークの三次元形状または／および三次元位置を算出する。
【発明の効果】
【００１６】
すなわち１番目の発明においては、撮影時刻よりも前後のそれぞれの時刻におけるアーム先端部の位置を利用してワークの位置を算出している。従って、一定周期または不定周期ごとに認識されるアーム先端部の位置情報よりも高い精度で、視覚センサが画像を撮像した瞬間におけるロボットの位置情報を取得でき、その結果、従来技術よりも高精度でワークの位置を算出できる。このことは、２番目の発明のように、ロボットが動作している場合に特に有利である。
【００１７】
また、ロボットが静止しているときにおいてもロボット制御装置はサーボモータの制御を行っているため、ロボットのアーム先端部の位置姿勢はわずかながら変化する。このため、ロボットが静止している状態で視覚センサがワークを撮像した場合においても、従来方法よりも正確にロボットの位置情報を取得でき、視覚センサによるワークの位置計測精度を向上させられる。
【００１８】
さらに、１番目の発明においては、専用のトリガ信号線やトリガ入出力部を使用することなしに、撮像した瞬間のロボット位置情報を取得できる。つまり、専用のトリガ信号線やトリガ入出力部などを追加する費用を排除すると共に、これらの故障リスクを低減することもできる。また、これは利用者にとって利用が簡便なシステムを提供することにもなる。
すなわち３番目の発明においては、視覚センサによって認識したワークの位置に応じてロボットをより適切な目的位置に動作させられる。
すなわち４番目の発明においては、ステレオ計測により、ロボットに把持されたワークの該ロボットのアーム先端部に対する三次元位置またはロボットから離れた位置に置かれたワークの該ロボットに対する三次元位置をより正確に求めることができる。
すなわち５番目の発明においては、距離画像を用いてワークの三次元形状または／および三次元位置をより正確に求めることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第一の実施形態におけるロボットシステムの全体構成を示す図である。
【図２】本発明の第二の実施形態におけるロボットシステムの全体構成を示す図である。
【図３】第一の実施形態におけるロボットシステムの機能ブロック図である。
【図４】本発明のロボットシステムに含まれるロボット制御部および画像処理部の動作を示すフローチャートである。
【図５】ステレオ計測を実施する実施形態におけるロボットシステムの全体構成を示す図である。
【図６】レーザスリット投光器を備えた実施形態におけるロボットシステムの全体構成を示す図である。
【図７】他の実施形態におけるロボットシステムの機能ブロック図である。
【図８】さらに他の実施形態におけるロボットシステムの機能ブロック図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
図１は本発明の第一の実施形態におけるロボットシステムの全体構成を示す図である。図１に示されるロボットシステム１０は、ロボット１１と、このロボット１１を制御するロボット制御装置１２とを主に含んでいる。ロボット１１のアーム先端部にはハンド１４が搭載されており、このハンド１４は、テーブル１６上のワーク１５を把持する。なお、テーブル１６上に載置されたワーク１５は位置決めされておらず、ワーク１５の位置は不定である。
【００２１】
図１に示されるように、ロボット１１のアーム先端部には、腕木１８を介してカメラ１３が搭載されている。テーブル１６上に載置されたワーク１５の位置Ｗ１は、視覚センサとしてのカメラ１３を用いて計測される。計測されたワーク１５の位置情報に基づいて、ロボット１１はワーク１５が把持されるべき位置まで移動する。
【００２２】
ロボット１１は、公知の典型的なロボットマニピュレータ（以下、ロボット）であり、作業を行う位置姿勢に到達可能であればその機構に制限はない。ロボット１１のアームのアーム先端部に取付けられているハンド１４は、ワーク１５の形状・材質・重量等に応じて選択される。従って、ハンド１４は、吸引式およびチャック式でありうる。なお、図１には、例としてチャック方式のハンド１４が示されている。
【００２３】
図１において矢印Ｘ１で示されるように、ロボット１１は、動作開始位置Ｐ１から撮像位置Ｑ１を経てワーク把持位置Ｐ２まで移動し、次いでワーク把持位置Ｐ２においてワーク１５を把持するようプログラムされている。前述したようにワーク１５の位置Ｗ１は不定であるので、ロボット１１は、カメラ１３を用いて求められたワーク１５の位置Ｗ１’に基づいて、位置Ｗ１’に対応するワーク把持位置Ｐ２’まで移動し、ワーク把持位置Ｐ２’においてワーク１５を把持する。
【００２４】
ここで、ワーク１５の位置Ｗ１、Ｗ１’とロボット１１のワーク把持位置Ｐ２、Ｐ２’との間には、以下の式（１）で示される関係がある。なお位置Ｗ１、Ｐ２等の本願明細書において使用される、位置を表す記号は４×４の同次変換行列である。
【数１】
2011201007.tif 000003
【００２５】
ロボット１１は矢印Ｘ１における撮像位置Ｑ１で一時停止してもよいが、第一の実施形態においては、ロボット１１が矢印Ｘ１で示される軌道を停止することなく移動する場合を説明する。
【００２６】
ロボット１１に教示されたプログラムは撮像位置Ｑ１で撮像を行おうとするが、ソフトウェアの処理遅れなどがある場合には、撮像位置Ｑ１から少しずれた撮像位置Ｑ１’で撮像される。撮像位置Ｑ１’は元の撮像位置Ｑ１に完全に一致している必要はない。ただし、撮像位置Ｑ１、Ｑ１’の両方において、ワーク１５がカメラ１３の視野内に入っている必要がある。その理由は、撮像位置Ｑ１が撮像位置Ｑ１’までずれた場合であっても、後述する手法により撮像した瞬間におけるロボット１１の位置情報Ｑ１’が求められ、この位置情報Ｑ１’に基づいてワーク１５の位置Ｗ１’を正確に求めることができるためである。
【００２７】
画像処理を行って求めた検出データをロボットの座標系に変換するためのキャリブレーションデータは、撮像位置Ｑ１におけるキャリブレーションにより予め求められていて、ロボット制御装置１２内に記憶されているものとする。従って、後述するワーク位置算出部４２は、撮像位置Ｑ１’で撮像した画像と撮像位置Ｑ１’の位置情報とに基づいて、ロボット座標系におけるワークの位置Ｗ１’を算出することができる。
【００２８】
その算出手法は、特許第２８８９０１１号に開示されており、公知である。従って、算出方法の詳細な説明を省略するが、以下に簡潔に記載する。まず、撮像位置Ｑ１’において撮像した画像に対して所定の画像処理を行い、画像内のワーク１５を検出し、その検出データを求める。次いで、求めた検出データと予め求めたキャリブレーションデータとに基づいて仮のワークの位置を求める。その後、仮のワークの位置と視覚センサ１３の移動量、すなわちキャリブレーションを行った位置Ｑ１から撮像が行われた位置Ｑ１’への移動量とに基づいてワーク１５の正確な位置Ｗ１’を求める。
【００２９】
そして、ロボット１１が把持を行うべきワーク把持位置Ｐ２’は、以下の式（２）に基づいて求められる。
【数２】
2011201007.tif 000004
【００３０】
ここで、図３は第一の実施形態におけるロボットシステムの機能ブロック図である。ロボット制御装置１２はデジタルコンピュータであり、ロボット制御部３１と、画像処理部３２と、ロボット位置および時刻用記憶部３３と、画像撮像時刻用記憶部３４と、時計３５とを含んでおり、これらはバスにより互いに接続されている。なお、図３に示されるように、ロボット制御部３１はロボット１１に接続されており、画像処理部３２はカメラ１３に接続されている。
【００３１】
ロボット制御部３１および画像処理部３２の両方は時計３５にアクセスして、時刻を取得することができる。ロボット位置および時刻用記憶部３３は、ロボット１１の位置と、この位置を取得したときに時計３５から得られる時刻とを組にしてロボット位置更新周期で順次記憶する。さらに、画像撮像時刻用記憶部３４は、カメラ１３が撮像した瞬間の時刻と、そのときの画像とを組にして記憶する。ロボット位置および時刻用記憶部３３および画像撮像時刻用記憶部３４は、最新の複数の組の情報のみを記憶するように設定されていてもよく、また、ロボット１１の動作時における全ての組の情報を記憶してもよい。
【００３２】
さらに、図３に示されるように、ロボット制御部３１は、ロボット位置および時刻用記憶部３３に記憶された時刻のうち、画像撮像時刻用記憶部３４に記憶された時刻よりも前および後のそれぞれにおける少なくとも一つの時刻と、これら時刻のそれぞれに対応するロボット１１のアーム先端部の位置とに基づいて、カメラ１３がワーク１５を計測したときのアーム先端部の位置情報を算出するアーム先端部位置算出部４１を含んでいる。
【００３３】
さらに、ロボット制御部３１は、アーム先端部位置算出部４１により算出されたアーム先端部の位置情報と画像処理部３２により算出されたワーク１５の位置情報とに基づいて、アーム先端部に対する把持されたワーク１５の位置情報、またはロボット１１から離れた位置に置かれたワーク１５のロボット１１に対する位置情報を算出するワーク位置算出部４２とを含んでいる。
【００３４】
さらに、ロボット制御部３１に含まれる補正部４３は、ワーク位置算出部４２により算出された、ロボット１１のアーム先端部に対する把持されたワーク１５の位置情報、またはロボット１１から離れた位置に置かれたワーク１５のロボット１１に対する位置情報に基づいて、ロボット１１の動作を補正する。この目的のために、補正部４３は前述した位置情報に基づいて、ロボット１１のプログラムを補正できる。
【００３５】
図４は本発明のロボットシステムに含まれるロボット制御部３１および画像処理部３２の動作を示すフローチャートである。以下、図３および図４に基づいて、撮像した瞬間のロボットの位置Ｑ１’を求める方法を説明する。
【００３６】
はじめに、ステップＳ１において、ロボット制御部３１は、時計３５から取得した時刻と、この時刻に対応するロボット１１のアーム先端部の位置とを組にして、ロボット位置更新周期でロボット位置および時刻用記憶部３３に順次記憶する。なお、ロボット１１のアーム先端部の位置を単に「ロボット位置」と呼ぶ場合がある。
【００３７】
例えば、ロボット１１が垂直六軸多関節ロボットの場合、ロボット位置情報としてロボットの各軸の角度（Ｊ１〜Ｊ６）を記憶することができる。以下、説明を容易にする目的で、記憶した時刻とロボット位置をそれぞれＴｘ、Ｐｘ＝（Ｊｘ１〜Ｊｘ６）とする。なお、ロボット位置更新周期は一定周期でも、不定周期でもよい。
【００３８】
次いで、ステップＳ２において、ロボット制御部３１は、ロボット１１が、その動作プログラムに予め記載された撮像位置Ｑ１に到達しているか否かを確認する。ロボット１１が到達している場合にはステップＳ３に進む。未だ到達していない場合には、一定時間待機した後にステップＳ１に戻り、ロボット１１が撮像位置Ｑ１に到達するまで処理を繰返す。
【００３９】
図４に示される実施例においては、ロボット１１が撮像位置Ｑ１に到達しているかの確認はロボット制御部３１がロボット１１の位置を監視することで行っている。しかしながら、ロボット１１が動作を開始してから撮像位置Ｑ１に到達するのに要する所要時間を予め計測し、ロボット１１が動作を開始してからの時刻（時計３５から取得できる）と、所要時間とを比較して、ロボット１１が撮像位置Ｑ１に到達しているかを判断してもよい。あるいは、ロボット１１が動作を開始してから上記所要時間が経過した場合に、ステップＳ３に自動的に進んでもよい。
【００４０】
次いで、ステップＳ３においては、ロボット制御部３１は、画像処理部３２に対して画像処理開始命令を出力する。画像処理開始命令が出力されると、画像処理部３２の処理が始まる。
【００４１】
ステップＳ４においては、画像処理部３２は、撮像指令をカメラ１３に送ると共に、時計３５から取得した時刻を撮像時刻Ｔｓとして画像撮像時刻用記憶部３４に記憶する。次いで、ステップＳ５において、カメラ１３によるワーク１５の撮像が完了するのを待った後で、撮像した画像をステップＳ４で既に記憶した撮像時刻Ｔｓと組にして画像撮像時刻用記憶部３４に記憶する。
次いで、ステップＳ６において、画像処理部３２はステップＳ５で撮像した画像に対して所定の画像処理を行い、画像に映っているワーク１５を検出し、その検出データを求め、さらに求めた検出データと予め求めてあるキャリブレーションデータとに基づいて仮のワークの位置情報を求める。
【００４２】
ロボット制御部３１はステップＳ３が完了した後にステップＳ７に進む。ステップＳ７においては、ロボット制御部３１は次のロボット位置更新周期において、新たな時刻とロボット位置とを組にしてロボット位置および時刻用記憶部３３に同様に記憶する。説明を容易にする目的で、ステップＳ７において記憶した時刻とロボット位置をそれぞれＴｙ、Ｐｙ＝（Ｊｙ１〜Ｊｙ６）とする。
次いで、ステップＳ８において、ロボット制御部３１は、撮像時刻が画像撮像時刻用記憶部３４に記憶されているかを確認する。撮像時刻が記憶されている場合にはステップＳ９に進む。未だ記憶されていない場合には、一定時間待機した後にステップＳ７に戻り、撮像時刻が記憶されるまでこの確認処理を繰返す。
【００４３】
次いで、ステップＳ９において、ロボット制御部３１のアーム先端部位置算出部４１は、画像撮像時刻用記憶部３４に記憶された撮像時刻Ｔｓと、ロボット位置および時刻用記憶部３３に記憶されたロボットの位置と時刻との組Ｔｘ、Ｐｘ、Ｔｙ、Ｐｙとに基づいて、撮像した瞬間のロボット位置Ｑ１’＝（Ｊｓ１〜Ｊｓ６）を算出する。ここで、ＴｘはＴｓよりも早い時刻であり、ＴｙはＴｓよりも遅い時刻であることに留意されたい。
【００４４】
アーム先端部位置算出部４１は、例えば一次補間を用いて以下の式（３）に基づいて撮像した瞬間のロボット位置Ｑ１’を算出する。
【数３】
2011201007.tif 000005
なお、撮像した瞬間のロボット位置Ｑ１’＝（Ｊｓ１〜Ｊｓ６）は各軸位置であるが、これを順変換すれば直交位置を求めることができる。
【００４５】
第一の実施形態においては、ロボットの各軸位置を一次式で内挿補間することにより、撮像した瞬間のロボット位置Ｑ１’を算出したが、他の手法によりロボット位置Ｑ１’を算出してもよい。例えば外挿補間により、補間計算を行ってもよい。さらに、前述したようにロボット１１の各軸位置で補間を行うことも、直交位置に変換してから補間を行うことも可能である。なお、第一の実施形態のような一次補間を採用した場合には、二組のロボット位置および時刻があれば足りる。
【００４６】
どの補間式を採用するかは、ロボット１１の制御系の特性に応じて選択できる。例えば、二次式を用いた補間を行う場合には、ロボット１１の速度変化があるときの近似誤差を小さくすることができる。ただし、二次補間を採用する場合には、三組のロボット位置および時刻が必要となる。その場合には、撮像時刻Ｔｓよりも前の二つのＴｘと撮像時刻Ｔｓよりも後の一つのＴｙとを使用してもよく、また撮像時刻Ｔｓよりも前の一つのＴｘと撮像時刻Ｔｓよりも後の二つのＴｙとを使用してもよい。
【００４７】
その後、前述したようにワーク位置算出部４２は、前述したようにアーム先端部位置算出部４１により算出されたアーム先端部の位置情報と画像処理部３２により算出されたワーク１５の仮の位置情報とに基づいて、ロボット１１から離れた位置に置かれたワーク１５のロボット１１に対する位置情報を算出する。
【００４８】
ところで、図２は本発明の第二の実施形態におけるロボットシステムの全体構成を示す図である。図２においては、カメラ１３は二つのテーブル１６、１７の間の所定の位置に固定されている。言い換えれば、カメラ１３はロボット１１から離れた遠方の位置に配置されている。第二の実施形態においては、ロボット１１はワーク１５を一方のテーブル１６から他方のテーブル１７まで搬送する。
【００４９】
前述したように、テーブル１６におけるワーク１５の位置は不定であるので、ロボット１１はワーク１５をずれを含んで把持する可能性がある。第二の実施形態においては、カメラ１３は、ワーク１５を搬送する途中で把持ずれ量を計測するのに使用される。
【００５０】
図２に矢印Ｘ２で示されるように、ロボット１１はテーブル１６上の動作開始位置Ｐ１でワーク１５を把持し、撮像位置Ｑ１を経て、テーブル１７上の位置Ｐ２まで移動し、ワーク１５をテーブル１７上に載置するようにプログラムされている。前述したようにロボット１１に教示されたプログラムは撮像位置Ｑ１で撮像を行おうとするが、ソフトウェアの処理遅れなどがある場合には、撮像位置Ｑ１から少しずれた撮像位置Ｑ１’で撮像されることになる。
【００５１】
第二の実施形態では、ハンド１４によるワーク１５の掴みずれを補正するために、ロボット１１のアーム先端部に対するワーク１５の相対位置を計測する。ロボット１１が位置Ｑ１’にいるときに計測されたワールド座標系におけるワーク１５の位置をＷ１’とすると、ワーク位置算出部４２は、ロボット１１のアーム先端部に対するワーク１５の相対的な位置Ｖ１’を以下の式（４）に基づいて算出する。
【数４】
2011201007.tif 000006
【００５２】
そして、位置Ｐ２を教示したときに把持されていたワーク１５について、ロボット１１のアーム先端部に対するワーク１５の相対的な位置をＶ１とすると、ワーク位置算出部４２は、位置Ｑ１’で撮像したワーク１５を解放すべき位置Ｐ２’を以下の式（５）に基づいて算出する。
【数５】
2011201007.tif 000007
【００５３】
前述した実施形態においては、一つの二次元のカメラ１３を視覚センサとして使用している。しかしながら、三次元センサを使用して、ワーク１５の三次元位置姿勢を求めるようにしてもよい。三次元センサおよび三次元センサを構成するカメラは、カラーカメラでもモノクロカメラでもよい。以下、視覚センサとして、三次元センサを用いた実施例について説明する。
【００５４】
或る実施例においては、複数のカメラ１３を用いたステレオ方式の三次元視覚センサを使用することができる。また、図５は、ステレオ計測を実施する実施形態におけるロボットシステムの全体構成を示す図である。ロボット１１の動作時に撮像した瞬間のロボット位置を求める前記手法を用いた場合には、図５に示されるように、単一のカメラ１３を用いてロボット動作中に連続してワーク１５を撮像して得た異なる位置（Ｑ１、…、Ｑｎ）から撮像したワーク１５の複数画像に基づいて、ステレオ計測を実施してもよい。図５に示すような計測を行った場合には、ロボット１１のアーム先端部に対する把持されたワーク１５の三次元位置が求められる。また図示はしていないが、図１に示す構成で、異なる位置（Ｑ１、…、Ｑｎ）から撮像したワーク１５の複数画像に基づいてステレオ計測を行うと、ロボット１１に対するワーク１５の三次元位置が求められることになる。
【００５５】
図６は、レーザスリット投光器を備えた実施形態におけるロボットシステムの全体構成を示す図である。図６においては、カメラ１３と、腕木１８によりカメラ１３に取付けられたレーザスリット投光器１９とからなる三次元視覚センサが用いられる。この三次元視覚センサはレーザが投光されている箇所の三次元位置の計測と、幾何学的に定まっている形状のワークについての位置姿勢の計測が可能である。このような三次元視覚センサは公知のものでありここでは詳細に触れない。このセンサで計測を行うためには、通常のカメラ画像とレーザ画像を取得する必要がある。また、ロボット動作中に複数枚の画像を取得する場合には、各画像を撮像したロボット位置が異なるため、それらのロボット位置を考慮して計算を行う必要がある。
【００５６】
レーザが投光されている箇所の三次元位置を求めることを連続して行い、取得した複数回分の三次元位置情報を一般に距離画像と呼ばれる形に集約し、距離画像に基づいてワーク１５の三次元形状を得ることも可能である。この場合においても前述した手法を用いてレーザが投光された画像を撮像した瞬間のロボット位置を用いて三次元位置情報を計算する。このようにして得られたワーク１５の三次元形状からワーク１５の三次元位置姿勢を求めることが可能となる。
【００５７】
図７は、他の実施形態におけるロボットシステムの機能ブロック図である。図７においては、ロボット１１に接続されたロボット制御装置１２ａと、カメラ１３（視覚センサ）に接続された画像処理装置１２ｂとが主に示されている。図７に示されるように、ロボット制御装置１２ａには、互いに接続されたロボット制御部３１とロボット位置および時刻用記憶部３３と時計３５ａとが含まれている。
【００５８】
同様に、画像処理装置１２ｂには、互いに接続された画像処理部３２と画像撮像時刻用記憶部３４と時計３５ｂとが含まれている。これら時計３５ａ、３５ｂは互いに同期されていることに留意されたい。従って、ロボット制御装置１２ａおよび画像処理装置１２ｂが時計３５ａ、３５ｂのそれぞれから独自に取得した時刻は互いに等しい。
【００５９】
図示されるように、ロボット制御装置１２ａおよび画像処理装置１２ｂは、通信インターフェース３６、例えば有線ＬＡＮまたは無線ＬＡＮ等により互いに接続されている。ここで、通信インターフェース３６の処理に遅延が生じる可能性がある。しかしながら、画像撮像時刻用記憶部３４においては、時刻と関連付けて、画像を記憶できるので、画像撮像時刻用記憶部３４に記憶された時刻に近い二つ以上の時刻をロボット位置および時刻用記憶部３３から探索し、その時刻に基づいて必要なロボット位置を求めることができる。
【００６０】
図８は、さらに他の実施形態におけるロボットシステムの機能ブロック図である。図８においては、ロボット１１に接続されたロボット制御装置１２と、画像処理部３２を含んだカメラ１３とが主に示されている。図８に示されるように、ロボット制御装置１２ａには、互いに接続されたロボット制御部３１とロボット位置および時刻用記憶部３３と時計３５ａとが含まれている。
【００６１】
カメラ１３には、互いに接続された画像処理部３２と画像撮像時刻用記憶部３４と時計３５ｂとが含まれている。同様に時計３５ａ、３５ｂは互いに同期されており、またロボット制御装置１２およびカメラ１３は通信インターフェース３６により互いに接続されている。これら図５から図８に示される実施形態においても、前述したのと同様な効果が得られるのは明らかであろう。
【符号の説明】
【００６２】
１０    ロボットシステム
１１    ロボット
１２、１２ａ    ロボット制御装置
１２ｂ    画像処理装置
１３    カメラ（視覚センサ）
１４    ハンド
１５    ワーク
１６、１７    テーブル
１８    腕木
１９    レーザスリット投光器
３１    ロボット制御部
３２    画像処理部（視覚センサ情報処理部）
３３    ロボット位置および時刻用記憶部（ロボット位置時刻用記憶部）
３４    画像撮像時刻用記憶部
３５、３５ａ、３５ｂ    時計
３６    通信インターフェース
４１    アーム先端部位置算出部
４２    ワーク位置算出部
４３    補正部
【図１】
2011201007.tif 000008
【図２】
2011201007.tif 000009
【図３】
2011201007.tif 000010
【図４】
2011201007.tif 000011
【図５】
2011201007.tif 000012
【図６】
2011201007.tif 000013
【図７】
2011201007.tif 000014
【図８】
2011201007.tif 000015
【手続補正書】
【提出日】平成23年8月15日(2011.8.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
前述した目的を達成するために１番目の発明によれば、ロボットと、該ロボットを制御するロボット制御部と、ワークを視覚的に計測する視覚センサと、前記ワークまたは前記視覚センサのうちの一方が前記ロボットのアーム先端部に把持されるかまたは固定されつつ、前記ロボットのアームの動作によって移動可能であると共に、前記ワークまたは前記視覚センサのうちの他方が前記ロボットから離れた位置に置かれており、前記アーム先端部が移動している最中に前記ワークを計測するロボットシステムにおいて、前記視覚センサは、画像処理した結果を前記ロボットの座標系での値に変換するキャリブレーションデータが予め求められているものであり、前記視覚センサを制御すると共に、該視覚センサにより撮像された前記ワークの画像の情報に基づいて、前記画像上の前記ワークの位置情報を算出する画像処理部と、前記ロボット制御部および前記画像処理部が現在時刻を参照する時計と、一定周期または不定周期の第一の時刻と、該第一の時刻における前記アーム先端部の位置情報とを組にして順次記憶するロボット位置時刻用記憶部と、前記視覚センサが前記ワークを撮像する、前記第一の時刻とは別の任意の時刻である第二の時刻を記憶する画像撮像時刻用記憶部と、前記ロボット位置時刻用記憶部に記憶された第一の時刻のうち、前記画像撮像時刻用記憶部に記憶された前記第二の時刻よりも前および後のそれぞれにおける少なくとも二つの第一の時刻と、これら第一の時刻のそれぞれに対応する前記アーム先端部の位置情報とに基づいて、前記視覚センサが前記ワークを撮像した第二の時刻における前記アーム先端部の位置情報を算出するアーム先端部位置算出部と、該アーム先端部位置算出部により算出された第二の時刻における前記アーム先端部の位置情報と前記画像処理部により算出された、前記第二の時刻における前記画像上の前記ワークの位置情報と、前記キャリブレーションデータに基づいて、前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報を算出するワーク位置算出部と、を具備するロボットシステムが提供される。
２番目の発明によれば、１番目の発明において、さらに、前記ワーク位置算出部により算出された、前記ロボットの前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報に基づいて、前記ロボットの動作を補正する補正部を具備する。
３番目の発明によれば、１番目の発明において、前記ワークまたは前記視覚センサのうちの一方が、前記ロボットのアーム先端部に把持されるかまたは固定されつつ前記ロボットのアームの動作によって移動可能であり、前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときに該アーム先端部が互いに異なる位置にいる時点で前記ワークを複数回撮像してステレオ計測を行い、前記ワーク位置算出部は、前記視覚センサの前記ステレオ計測の結果に基づいて、前記アーム先端部に対する前記把持されたワークの三次元位置または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する三次元位置を算出する。
４番目の発明によれば、１番目の発明において、さらに、前記視覚センサに取付けられたレーザスリット投光器を具備し、前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときにレーザが投光されている前記ワークの一部分の三次元位置を異なる位置で複数回撮像することにより距離画像を取得し、前記ワーク位置算出部は、前記距離画像に基づいてワークの三次元形状または／および三次元位置を算出する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
すなわち１番目の発明においては、撮影時刻よりも前後のそれぞれの時刻におけるアーム先端部の位置を利用してワークの位置を算出している。従って、一定周期または不定周期ごとに認識されるアーム先端部の位置情報よりも高い精度で、視覚センサが画像を撮像した瞬間におけるロボットの位置情報を取得でき、その結果、従来技術よりも高精度でワークの位置を算出できる。このことは、ロボットが動作している場合に特に有利である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
さらに、１番目の発明においては、専用のトリガ信号線やトリガ入出力部を使用することなしに、撮像した瞬間のロボット位置情報を取得できる。つまり、専用のトリガ信号線やトリガ入出力部などを追加する費用を排除すると共に、これらの故障リスクを低減することもできる。また、これは利用者にとって利用が簡便なシステムを提供することにもなる。
すなわち２番目の発明においては、視覚センサによって認識したワークの位置に応じてロボットをより適切な目的位置に動作させられる。
すなわち３番目の発明においては、ステレオ計測により、ロボットに把持されたワークの該ロボットのアーム先端部に対する三次元位置またはロボットから離れた位置に置かれたワークの該ロボットに対する三次元位置をより正確に求めることができる。
すなわち４番目の発明においては、距離画像を用いてワークの三次元形状または／および三次元位置をより正確に求めることができる。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットと、該ロボットを制御するロボット制御部と、ワークを視覚的に計測する視覚センサと、前記ワークまたは前記視覚センサのうちの一方が前記ロボットのアーム先端部に把持されるかまたは固定されつつ、前記ロボットのアームの動作によって移動可能であると共に、前記ワークまたは前記視覚センサのうちの他方が前記ロボットから離れた位置に置かれており、前記アーム先端部が移動している最中に前記ワークを計測するロボットシステムにおいて、
前記視覚センサは、画像処理した結果を前記ロボットの座標系での値に変換するキャリブレーションデータが予め求められているものであり、
前記視覚センサを制御すると共に、該視覚センサにより撮像された前記ワークの画像の情報に基づいて、前記画像上の前記ワークの位置情報を算出する画像処理部と、
前記ロボット制御部および前記画像処理部が現在時刻を参照する時計と、
一定周期または不定周期の第一の時刻と、該第一の時刻における前記アーム先端部の位置情報とを組にして順次記憶するロボット位置時刻用記憶部と、
前記視覚センサが前記ワークを撮像する、前記第一の時刻とは別の任意の時刻である第二の時刻を記憶する画像撮像時刻用記憶部と、
前記ロボット位置時刻用記憶部に記憶された第一の時刻のうち、前記画像撮像時刻用記憶部に記憶された前記第二の時刻よりも前および後のそれぞれにおける少なくとも二つの第一の時刻と、これら第一の時刻のそれぞれに対応する前記アーム先端部の位置情報とに基づいて、前記視覚センサが前記ワークを撮像した第二の時刻における前記アーム先端部の位置情報を算出するアーム先端部位置算出部と、
該アーム先端部位置算出部により算出された第二の時刻における前記アーム先端部の位置情報と前記画像処理部により算出された、前記第二の時刻における前記画像上の前記ワークの位置情報と、前記キャリブレーションデータに基づいて、前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報を算出するワーク位置算出部と、を具備するロボットシステム。
【請求項２】
さらに、前記ワーク位置算出部により算出された、前記ロボットの前記アーム先端部に対する前記把持されたワークの位置情報、または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する位置情報に基づいて、前記ロボットの動作を補正する補正部を具備する請求項１に記載のロボットシステム。
【請求項３】
前記ワークまたは前記視覚センサのうちの一方が、前記ロボットのアーム先端部に把持されるかまたは固定されつつ前記ロボットのアームの動作によって移動可能であり、
前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときに該アーム先端部が互いに異なる位置にいる時点で前記ワークを複数回撮像してステレオ計測を行い、
前記ワーク位置算出部は、前記視覚センサの前記ステレオ計測の結果に基づいて、前記アーム先端部に対する前記把持されたワークの三次元位置または前記ロボットから離れた位置に置かれたワークの前記ロボットに対する三次元位置を算出するようにした、請求項１に記載のロボットシステム。
【請求項４】
さらに、前記視覚センサに取付けられたレーザスリット投光器を具備し、
前記視覚センサは、前記ロボットの前記アーム先端部が移動しているときにレーザが投光されている前記ワークの一部分の三次元位置を異なる位置で複数回撮像することにより距離画像を取得し、
前記ワーク位置算出部は、前記距離画像に基づいてワークの三次元形状または／および三次元位置を算出するようにした、請求項１に記載のロボットシステム。