(57)【特許請求の範囲】
【請求項１】
可動のアームを備えたロボットと、
前記アームの先端部、および前記ロボットの外部の定位置のうちの一方に設けられた視覚的な特徴部位と、
前記アームの前記先端部、および前記ロボットの外部の前記定位置のうちの他方に設けられ、前記特徴部位を撮像する複数の視覚センサと、
前記複数の視覚センサにより撮像して得た画像上での、前記特徴部位の位置、姿勢、及び大きさのうちの少なくとも１つを含む特徴量を検出する特徴量検出部と、
前記アームの前記先端部を所定の指令位置に位置決めした状態で、前記特徴量検出部により検出された特徴量を、第一の特徴量として記憶する目標データ記憶部と、
前記第一の特徴量を検出したときとは異なる時刻において、前記アームの前記先端部を前記所定の指令位置または該指令位置の近傍に位置決めしている状態で、前記複数の視覚センサにより前記特徴部位を撮像して、前記特徴量検出部により検出した第二の特徴量と、前記目標データ記憶部に記憶された前記第一の特徴量との差異に基づいて、前記複数の視覚センサのすべてにおいて前記第二の特徴量を前記第一の特徴量に一致させるための、ロボットの第一の指令移動量を算出するロボット移動量計算部と、
前記ロボットの機械的特性により定められるパラメータと前記第一の指令移動量に基づいて、第二の指令移動量を算出する指令移動量調整部と、
該第二の指令移動量に基づいて、前記アームの前記先端部を移動させる移動指令部と、を備え、
前記指令移動量調整部及び前記移動指令部は、前記第一の指令移動量が所定の閾値以下になるまで、前記第二の指令移動量の算出と、前記第二の指令移動量に基づく前記アームの前記先端部の移動とを繰り返すように構成されている、位置決め装置。
【請求項２】
前記指令移動量調整部は、前記第一の指令移動量が前記ロボットの機械的特性により定められるパラメータ以上である場合は、前記第一の指令移動量をそのまま前記第二の指令移動量とし、前記第一の指令移動量が前記ロボットの機械的特性により定められるパラメータより小さい場合は、前記第一の指令移動量に１より小さい係数を掛けた値を前記第二の指令移動量とする、請求項１に記載の位置決め装置。
【請求項３】
前記指令移動量調整部は、前記第一の指令移動量によって前記ロボットを移動することで生ずる前記ロボットの各可動部の動作量を算出し、該各可動部の動作量に基づいて、前記第二の指令移動量を算出する、請求項１に記載の位置決め装置。
【請求項４】
前記指令移動量調整部は、前記ロボットの稼働状況から経年変化による性能低下を見積もり、該見積もりに基づいて前記ロボットの機械的特性により定められるパラメータを修正し、該修正したパラメータと前記第一の指令移動量に基づいて、前記第二の指令移動量を算出する、請求項１に記載の位置決め装置。
【請求項５】
一つの前記特徴部位と複数の前記視覚センサとを備え、前記複数の視覚センサが前記一つの特徴部位を撮像する、請求項１から４のいずれか一項に記載の位置決め装置。
【請求項６】
複数の前記特徴部位と複数の前記視覚センサとを備え、前記複数の視覚センサが前記複数の特徴部位をそれぞれ撮像する、請求項１から４のいずれか一項に記載の位置決め装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いた位置決め装置に関し、特には、視覚センサを用いたビジュアルフィードバックを利用して、ロボットを高精度な位置決め装置として使用する技術に関する。
【背景技術】
【０００２】
一般的な産業用ロボットは、ティーチングプレイバックと呼ばれる方式に基づいており、教示された動きを正確に繰り返すことができる。そのため、ロボットで対象物を把持して所定の位置に供給するような使い方をした場合、ロボットを一種の位置決め装置とみなすことができる。
【０００３】
これに関する従来技術として、例えば特許文献１には、ロボットを位置決め装置として使用する際に、ロボットハンドによる対象物に対する把持位置がずれても、視覚センサを用いて把持ずれを計測・補正することで、対象物を正確に位置決めする機能を備えたロボットハンドリング装置が記載されている。
【０００４】
また特許文献２には、平面上の第１の対象物位置に置かれた対象物に対して、所定の作業を行うプログラムによって制御されるロボットと、第１の対象物位置に対して、所定の相対的位置関係にあるアーム先端部の位置を記憶する第１のロボット位置記憶部と、カメラの画像上での対象物の特徴量を記憶する目標到達状態データ記憶部と、第２の対象物位置に置かれた対象物の特徴量を目標到達状態データの特徴量と一致させるための、任意の初期位置からの移動量を求めるロボット移動量計算部と、アーム先端部を移動量に基づいて移動させた際における第２のロボット位置と、第１のロボット位置との差異に基づいてプログラムの補正データを計算する補正データ計算部と、を備えるロボットシステムが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３７０２２５７号公報
【特許文献２】特開２０１５−１５０６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に、ロボットは金属などで構成された構造物であるため、環境温度の変化によりアームや減速機が熱膨張・収縮し、寸法に変化が発生する。また、減速機にはバックラッシがあるため、目標位置までの経路の違いによって停止位置に誤差が発生する可能性がある。さらに、バックラッシ量は摩耗などの経年変化により一定ではない。また、ロボットで弾性体を変形させながら位置決めする場合には、弾性体である対象物から外力を受けることで、位置決めした位置が本来意図する位置とは異なるものとなる可能性がある。
【０００７】
従来の位置決め装置または位置決め方法は、上述のような熱変形、バックラッシ、経年変化、外力などに起因する誤差を考慮していないものが多い。一方で、そのような誤差のないロボットを作ることは困難であるし、そのような誤差を解析的に解いて完全に補正することも困難である。
【０００８】
例えば特許文献１では、ロボットを位置決め治具として使用してはいるが、熱変形などの誤差要因を排除した高精度な位置決めまでは企図していない。一方、特許文献２では、作業者がロボットの座標系を考慮・認識せずとも、ビジュアルフィードバックを利用して簡単に、複雑な経路の作業を実行可能とすることを目的としており、ロボットを位置決め治具としては使用していない。
【０００９】
そこで本発明は、熱変形やバックラッシ等のロボットの誤差要因を排除し、本来ロボットが備えている位置決め精度よりも高い精度でのロボットの位置決めを可能にする位置決め装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本願第１の発明は、可動のアームを備えたロボットと、前記アームの先端部、および前記ロボットの外部の定位置のうちの一方に設けられた視覚的な特徴部位と、前記アームの前記先端部、および前記ロボットの外部の前記定位置のうちの他方に設けられ、前記特徴部位を撮像する複数の視覚センサと、前記複数の視覚センサにより撮像して得た画像上での、前記特徴部位の位置、姿勢、及び大きさのうちの少なくとも１つを含む特徴量を検出する特徴量検出部と、前記アームの前記先端部を所定の指令位置に位置決めした状態で、前記特徴量検出部により検出された特徴量を、第一の特徴量として記憶する目標データ記憶部と、前記第一の特徴量を検出したときとは異なる時刻において、前記アームの前記先端部を前記所定の指令位置または該指令位置の近傍に位置決めしている状態で、前記複数の視覚センサにより前記特徴部位を撮像して、前記特徴量検出部により検出した第二の特徴量と、前記目標データ記憶部に記憶された前記第一の特徴量との差異に基づいて、前記複数の視覚センサのすべてにおいて前記第二の特徴量を前記第一の特徴量に一致させるための、ロボットの第一の指令移動量を算出するロボット移動量計算部と、前記ロボットの機械的特性により定められるパラメータと前記第一の指令移動量に基づいて、第二の指令移動量を算出する指令移動量調整部と、該第二の指令移動量に基づいて、前記アームの前記先端部を移動させる移動指令部と、を備え、前記指令移動量調整部及び前記移動指令部は、前記第一の指令移動量が所定の閾値以下になるまで、前記第二の指令移動量の算出と、前記第二の指令移動量に基づく前記アームの前記先端部の移動とを繰り返すように構成されている、位置決め装置を提供する。
【００１１】
第２の発明は、第１の発明において、前記指令移動量調整部は、前記第一の指令移動量が前記ロボットの機械的特性により定められるパラメータ以上である場合は、前記第一の指令移動量をそのまま前記第二の指令移動量とし、前記第一の指令移動量が前記ロボットの機械的特性により定められるパラメータより小さい場合は、前記第一の指令移動量に１より小さい係数を掛けた値を前記第二の指令移動量とする、位置決め装置を提供する。
【００１２】
第３の発明は、第１の発明において、前記指令移動量調整部は、前記第一の指令移動量によって前記ロボットを移動することで生ずる前記ロボットの各可動部の動作量を算出し、該各可動部の動作量に基づいて、前記第二の指令移動量を算出する、位置決め装置を提供する。
【００１３】
第４の発明は、第１の発明において、前記指令移動量調整部は、前記ロボットの稼働状況から経年変化による性能低下を見積もり、該見積もりに基づいて前記ロボットの機械的特性により定められるパラメータを修正し、該修正したパラメータと前記第一の指令移動量に基づいて、前記第二の指令移動量を算出する、位置決め装置を提供する。
【００１４】
第５の発明は、第１から第４のいずれか一つの発明において、一つの前記特徴部位と複数の前記視覚センサとを備え、前記複数の視覚センサが前記一つの特徴部位を撮像する、位置決め装置を提供する。
【００１５】
第６の発明は、第１から第４のいずれか一つの発明において、複数の前記特徴部位と複数の前記視覚センサとを備え、前記複数の視覚センサが前記複数の特徴部位をそれぞれ撮像する、位置決め装置を提供する。
【発明の効果】
【００１６】
本発明によれば、ビジュアルフィードバックを利用し、さらにロボットの機械的特性により定められるパラメータに基づいたロボット移動量の調整を行うことにより、キャリブレーションの有無に関わらず、作業者が補正という概念を意識せずに、気温変化による熱変形、バックラッシの影響、外力による位置ずれ、および磨耗による経年変化などのロボットの誤差要因を排除し、本来ロボットが備えている位置決め精度以上の精度を持つ位置決め装置としてロボットを使用することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係る位置決め装置の概略構成を示す図である。
【図２】図１の位置決め装置に含まれるロボットのハンドと、該ハンドに把持される対象物とを例示する図である。
【図３】図１の位置決め装置の機能ブロック図である。
【図４】図１の位置決め装置における、システム立ち上げ時の処理の一例を示すフローチャートである。
【図５】図１の位置決め装置における、システム稼働時の処理の一例を示すフローチャートである。
【図６】同一の特徴部位について、目標データ記憶時の画像を破線で示し、現在の画像を実線で示した例を示す図である。
【図７】バックラッシによる誤差範囲がある場合に、指令移動量を計算する例を説明する図である。
【図８】本発明の第２の実施形態に係る位置決め装置の概略構成を示す図である。
【発明を実施するための形態】
【００１８】
図１は、本発明の第１の実施形態に係る位置決め装置（ロボットシステム）５の概略構成を示す図である。位置決め装置５は、可動のアーム６を備えたロボット１０と、アーム４の先端部（図示例ではハンド１１）に設けられた視覚的な特徴部位と、ロボット１０の外部の定位置に設けられ、特徴部位を撮像する複数（図示例では２つ）の視覚センサ１２ａ、１２ｂとを有する。ロボット１０は、例えば６軸多関節ロボットであり、ロボット１０自体は周知のものでよい。
【００１９】
また図２に示すように、ロボット１０のハンド１１は、特徴部位１３ａ、１３ｂが形成された対象物１３を把持するように構成されており、第一の視覚センサ１２ａおよび第二の視覚センサ１２ｂは、それぞれ特徴部位１３ａ、１３ｂを撮像するように配置・構成されている。但しこれは一例であり、例えば、ハンド１１に直接、特徴部位１３ａ、１３ｂを形成してもよい。また特徴部位の形状は、視覚センサで撮像した特徴部位の画像の画像処理に適したものであればどのようなものでもよいが、図示例のような内部に十字線を有する円形等、画像処理によって位置、姿勢（回転角度）および大きさ（視覚センサと特徴部位との距離に反比例）が検出できるものが好ましい。
【００２０】
ロボット１０は、ロボット１０を制御するロボット制御装置１５に接続され、ロボット制御装置１５により指令された任意の位置へ動作するように数値制御可能となっている。また視覚センサ１２ａ、１２ｂは例えば、画像（上述の特徴部位）を撮像する機能を持つ受光デバイスであり、視覚センサ１２ａ、１２ｂが撮像した画像は、視覚センサ１２ａ、１２ｂに接続された画像処理装置１４に送られる。
【００２１】
図３は、位置決め装置５の機能ブロック図である。画像処理装置１４は、視覚センサ１２ａ、１２ｂで撮像したそれぞれの画像から、特徴部位１３ａ、１３ｂを検出し、それぞれの画像上での、特徴部位１３ａ、１３ｂの位置、姿勢、及び大きさのうちの少なくとも１つを含む特徴量を検出する特徴量検出部１６を有する。また画像処理装置１４は、通信ケーブルまたは無線通信などによってロボット制御装置１５と接続され、ロボット制御装置１５から指令を受け取ったり、画像処理の結果をロボット制御装置１５に送ったりすることができる。なお図１および図３では、画像処理装置１４はロボット制御装置１５とは別の装置として記載されているが、ロボット制御装置１５に内蔵されてもよい。
【００２２】
なお本実施形態では、視覚センサ１２ａ、１２ｂは、後述する処理を行う前に、自らの座標系（センサ座標系）とロボット１０の座標系（ロボット座標系）との位置合わせ、すなわちキャリブレーションを行っていなくてもよい。無論、キャリブレーションを行っておいてもよいが、その場合でも、センサ座標系に対するロボット座標系の方向とスケールだけが分かるような簡易的なものでよい。
【００２３】
図３に示すように、ロボット制御装置１５は、ハンド１１を所定の指令位置に位置決めした状態で、特徴量検出部１６により検出された特徴量を、第一の特徴量（目標データ）として記憶する目標データ記憶部１７と、第一の特徴量を検出したときとは異なる時刻において、ハンド１１を上記所定の指令位置または該指令位置の近傍に位置決めしている状態で、視覚センサ１２ａ、１２ｂにより特徴部位１３ａ、１３ｂをそれぞれ撮像して、特徴量検出部１６により検出した第二の特徴量と、目標データ記憶部１７に記憶された第一の特徴量（目標データ）との差異に基づいて、複数の視覚センサのすべてにおいて第二の特徴量を第一の特徴量に一致させるための、ロボット１０の第一の指令移動量を算出するロボット移動量計算部１８と、ロボット１０の機械的特性により定められるパラメータ（後述）と第一の指令移動量に基づいて、第二の指令移動量を算出する指令移動量調整部１９と、該第二の指令移動量に基づいて、ロボット１０（ハンド１１）を移動させる移動指令部２０と、を備える。また指令移動量調整部１９および移動指令部２０は、第一の指令移動量が所定の閾値以下になるまで、第二の指令移動量の算出と、第二の指令移動量に基づくハンド１１の移動とを繰り返すように構成されている。
【００２４】
以下、位置決め装置５における処理の流れについて、図４および図５のフローチャートを参照しつつ説明する。
【００２５】
図４は、位置決め装置５を含むロボットシステム立ち上げ時の流れを説明するフローチャートである。先ず、ロボット１０を所定の指令位置（位置決め位置）に移動する（Ｓ１０１）。次に、ハンド１１、またはハンド１１に把持された対象物１３に設けられた特徴部位１３ａ、１３ｂが、それぞれ視覚センサ１２ａ、１２ｂの視野に写るように視覚センサ１２ａ、１２ｂを設置する（Ｓ１０２）。ここで、各視覚センサは、該視覚センサの光軸が、撮像対象の特徴部位の面に対しておおよそ垂直になるような位置・姿勢に配置されることが好ましいが、これに限定されるものではない。また、特徴部位１３ａ、１３ｂは、それぞれ視覚センサ１２ａ、１２ｂの視野のおおよそ中心に写る位置とすることが好ましいが、これに限定されるものではない。
【００２６】
次に、視覚センサ１２ａ、１２ｂで特徴部位１３ａ、１３ｂの画像をそれぞれ撮像し、特徴部位１３ａ、１３ｂの画像をモデルデータとして教示する（Ｓ１０３）。ここで、どのような情報をモデルデータとして記憶するかは、画像から特徴部位１３ａ、１３ｂを検出するのに用いる画像処理のアルゴリズムに依存する。本実施形態では、どのような画像処理アルゴリズムを用いても構わないが、たとえば、正規化相関を用いたテンプレートマッチングや、エッジ情報を用いた一般化ハフ変換などの周知の手法を用いることができる。正規化相関によるテンプレートマッチングの場合は、テンプレートがモデルデータに相当する。
【００２７】
最後に、教示したモデルデータを用いて、画像から特徴部位１３ａ、１３ｂを検出し、検出したそれぞれの特徴部位の、画像上での位置、姿勢、大きさのうちの少なくとも１つを含む第一の特徴量を、目標データとして目標データ記憶部１７に記憶する（Ｓ１０４）。例えば、画像処理アルゴリズムとしてテンプレートマッチングを採用した場合、最も一致度が高いテンプレートの中心位置、回転角度、拡大・縮小した割合を、目標データとして記憶する。このようにして、目標データ記憶部１７は、特徴部位１３ａ、１３ｂの双方について第一の特徴量が記憶される。また、ロボット制御装置１５は、この目標データ記憶時のロボット１０の制御上の位置を、指令位置１として適当なメモリ等に記憶する。
【００２８】
次に図５は、位置決め装置５を含むロボットシステム稼働時の流れを説明するフローチャートである。先ず、ロボット１０を、図４のＳ１０４において目標データを記憶したとき（第一の特徴量を検出したとき）とは異なる時刻において、上述の指令位置１と同じ位置、または指令位置１の近傍へ移動させる（Ｓ２０１）。ここで、「指令位置１の近傍」とは、指令位置１とは厳密には異なるが、特徴部位１３ａ、１３ｂがそれぞれ視覚センサ１２ａ、１２ｂの視野に入り、かつ、ロボット１０の姿勢が目標データ記憶時のロボットの姿勢と同じである指令位置を意味する。
【００２９】
ここで、制御上は正確に、目標データを記憶したときの指令位置１またはその近傍へロボット１０が移動したとしても、ロボット１０の各部における、気温変化による熱変形、バックラッシの影響、磨耗による経年変化、外力による影響（弾性体の対象物を変形させながら位置決めする場合には、該対象物から外力を受ける）などの誤差要因により、実際には正確には、指令位置１に対応する位置（位置決め位置１）にロボット１０が移動できていない場合がある。
【００３０】
次に、視覚センサ１２ａ、１２ｂで特徴部位１３ａ、１３ｂの画像をそれぞれ撮像し、得られた画像から特徴部位１３ａ、１３ｂを検出する（Ｓ２０２）。画像処理アルゴリズムには、先のＳ１０４と同じ手法を用い、各特徴部位の画像上での位置、姿勢、大きさうちの少なくとも１つを含む第二の特徴量（現在の特徴量）を算出する。
【００３１】
次に、Ｓ２０２で算出した第二の（現在の）特徴量が、目標データとして記憶されている第一の特徴量と一致するような位置へロボット１０を移動させるための、ロボットの第一の指令移動量を算出する（Ｓ２０３）。ステップＳ２０３における処理の具体例については後述する。
【００３２】
次に、現在のロボット位置が所定の位置決め位置１に到達したか否かを判断する（Ｓ２０４）。具体的には、Ｓ２０３で算出した第一の指令移動量の大きさを、あらかじめ設定しておいた閾値と比較し、第一の指令移動量が該閾値以下であれば、ロボット１０が位置決め位置１に到達したと判断することができる。例えば、閾値が０．５ｍｍに設定されている場合、計算されたロボットの指令移動量が０．５ｍｍ未満であれば、ロボット１０が所定の位置決め位置１に到達したと判断することができる。なお閾値は、本来ロボットが備えている位置決め精度よりも高い精度で目標位置へロボットを位置決めすることができる程度の値として設定されることが好ましい。
【００３３】
ロボット１０が所定の位置決め位置１に到達していない場合は、Ｓ２０３で算出したロボットの第一の指令移動量を調整して第二の指令移動量を算出し（Ｓ２０５）、第二の指令移動量に基づいてロボット１０を移動させる（Ｓ２０６）。その後、ステップＳ２０２へ戻り、同じ処理を再度行う。なおステップＳ２０６における処理の具体例についても後述する。
【００３４】
一方、ステップＳ２０４においてロボット１０が所定の位置決め位置１に到達したと判断された場合は、ロボット１０が正確に位置決めされたものと判断できるので、一連の処理・動作を終了する。
【００３５】
以下、上述のステップＳ２０３において、画像から得られた現在の（第二の）特徴量と、目標位置記憶部１７に目標データとして記憶されている第一の特徴量に基づいて、ロボット１０を所定の位置決め位置１に一致させるための第一の指令移動量の算出方法の具体例を、２つ説明する。なおここでは視覚センサ１２ａについて説明するが、視覚センサ１２ｂについても同様なので説明は省略する。
【００３６】
１つ目の具体例は、ロボット座標系と視覚センサ座標系との位置合わせ（キャリブレーション）を行う方法である。視覚センサのキャリブレーション方法の詳細を記した文献の例として、「Roger Y. Tsai, “An efficient and accurate camera calibration technique for 3d machine vision”, Proc. Computer Vision and Pattern Recognition ’86, pp.368-374, 1986」が挙げられる。
【００３７】
図６は、ステップＳ２０３において、目標データ記憶時（ステップＳ１０４）の特徴部位１３ａの像を破線２１で示し、現在（ステップＳ２０２）の特徴部位１３ａの像を実線２２で示した例を示す図である。ここで、視覚センサ座標系での位置を（ｕ，ｖ）で表すと、Δｕが画像の縦方向の位置の差分となり、Δｖが画像の横方向の位置の差分となる。上記文献に記載されているような方法で視覚センサ１２ａのキャリブレーションを行うことによって、視覚センサ１２ａの座標系での位置（ｕ，ｖ）をロボット１０の座標系での位置（ｘ，ｙ，ｚ）に変換することができるようになる。
【００３８】
詳細には、現在の特徴部位１３ａの画像上での位置（ｕ，ｖ）と、目標データとして記憶している特徴部位１３ａの画像上での位置（ｕ０，ｖ０）を、ロボット１０の座標系での位置（ｘ，ｙ，ｚ）と（ｘ０，ｙ０，ｚ０）に変換する。ここで、求めるべきロボットの指令移動量を（Δｘ，Δｙ，Δｚ）とすると、Δｘ、Δｙ、およびΔｚは、それぞれ式（１）〜（３）で定義される。
【００３９】
【数１】
0006430986.tif 000002
【数２】
0006430986.tif 000003
【数３】
0006430986.tif 000004
【００４０】
上式（１）〜（３）により、ロボット１０を所定の位置決め位置１に一致させるためのロボットの指令移動量（Δｘ，Δｙ，Δｚ）を求めることができる。
【００４１】
２つ目の具体例は、ヤコビアン行列を用いた方法である。ここでは、所定の位置決め位置１に一致させるためのロボットの指令移動量を、検出された特徴部位１３ａの第二の特徴量と、目標データとして記憶されている第一の特徴量との差分に基づいて算出する。例えば図６では、前述のように、視覚センサの座標系での位置を（ｕ，ｖ）で表すと、Δｕが画像の縦方向の位置の差分となり、Δｖが画像の横方向の位置の差分となる。
【００４２】
ここでは、画像上での見た目の大きさに関する特徴量をｓとする。例えば、テンプレートマッチングの場合は、テンプレートの大きさを１００％（＝１．０）として、テンプレートより大きく見えていれば、ｓは１．０より大きな値とし、小さく見えていれば、ｓは１．０よりも小さな値で表現することができる。
【００４３】
次に、目標データとして記憶している第一の特徴量を（ｕ０，ｖ０，ｓ０）とし、ステップＳ２０２で得られた第二の特徴量を（ｕ１，ｖ１，ｓ１）とすると、特徴量の差分は次の式（４）〜（６）で表すことができる。なお、画像上での見た目の大きさに関する特徴量ｓは、特徴部位１３ａが設置されている対象物１３の上面から視覚センサ１２ａまでの距離に反比例するため、割合のままではなく、距離に比例した値になるように逆数を用いる。
【００４４】
【数４】
0006430986.tif 000005
【数５】
0006430986.tif 000006
【数６】
0006430986.tif 000007
【００４５】
次に、求めるべきロボットの指令移動量を（Δｘ，Δｙ，Δｚ）とすると、ヤコビアン行列Ｊは次式（７）で定義される。
【００４６】
【数７】
0006430986.tif 000008
【００４７】
続いて、ヤコビアン行列Ｊを求める方法を説明する。先ず、特徴部位１３ａが画像中心付近に写る状態をロボットの原位置として、ロボット１０が原位置に位置決めされている状態で、視覚センサ１２ａが撮像した画像から特徴部位１３ａを検出し、得られた特徴量を（ｕ０，ｖ０，ｓ０）とする。次に、ロボット１０を原位置から、図１に示すような直交座標系のＸ軸方向に距離ｍだけ移動し、その位置において視覚センサ１２ａが撮像した画像から特徴部位１３ａを検出し、得られた特徴量を（ｕＸ，ｖＸ，ｓＸ）とする。同様に、ロボットを原位置から該直交座標系のＹ軸方向（紙面に垂直な方向）に距離ｍだけ移動した位置、Ｚ軸方向に距離ｍだけ移動した位置で、それぞれ特徴部位１３ａを検出し、それぞれの特徴量を（ｕＹ，ｖＹ，ｓＹ）、（ｕＺ，ｖＺ，ｓＺ）とする。但し、ロボットの指令移動量を表す座標系は、図１に記載のものに限られず、他の座標系を使用することもできる。
【００４８】
上述のようにＸ軸、Ｙ軸、Ｚ軸方向にロボットを移動したときの特徴部位１３ａの検出結果と、原位置での特徴部位１３ａの検出結果とから、Δｕ，Δｖ，Δｓは以下の式（８）〜（１６）を用いて求めることができる。
【００４９】
【数８】
0006430986.tif 000009
【数９】
0006430986.tif 000010
【数１０】
0006430986.tif 000011
【数１１】
0006430986.tif 000012
【数１２】
0006430986.tif 000013
【数１３】
0006430986.tif 000014
【数１４】
0006430986.tif 000015
【数１５】
0006430986.tif 000016
【数１６】
0006430986.tif 000017
【００５０】
式（８）〜（１６）を式（７）に代入することにより、ヤコビアン行列Ｊを求める式（１７）、（１８）が得られる。
【００５１】
【数１７】
0006430986.tif 000018
【数１８】
0006430986.tif 000019
【００５２】
一旦ヤコビアン行列Ｊが求まれば、任意の特徴部位１３ａの特徴量（ｕ，ｖ，ｓ）に対して、それらを式（７）に代入することで、ロボット１０を所定の位置決め位置１に一致させるためのロボットの指令移動量（Δｘ，Δｙ，Δｚ）を求めることができる。なお、ロボット１０は所定の位置決め位置１に向けて漸近的に近付いていくので、算出される指令移動量は厳密な値でなくてもよい。従って本実施例に対して、ヤコビアン行列Ｊを使用した方法は好適に使用可能である。
【００５３】
次に、図５に示したステップＳ２０５において、ステップＳ２０３で得られた第一の指令移動量を、ロボット１０の機械的特性により定められるパラメータに基づいて調整して、第二の指令移動量を算出する方法の一例を以下に説明する。なおここでは、バックラッシをロボット１０の機械的特性とした場合を説明する。
【００５４】
バックラッシは、ロボット１０の各可動部に存在し、また、ロボット１０にかかる重力によっても変化するので、バックラッシが最終的にロボット１０のアーム先端部（ハンド１１）に与える誤差を、幾何学的な計算により求めることは困難である。そこで、ロボット１０の各可動部のそれぞれの状態とロボット１０そのものの姿勢を考慮し、まずは複合的に、バックラッシによりロボット１０のアーム先端部の位置の誤差の範囲を求める。ここで求められた誤差の範囲こそが、ロボットの機械的特性により定められるパラメータとなる。ここでは、このパラメータを第一のパラメータと称する。
【００５５】
次に、上述の第一のパラメータと、ステップＳ２０３で求められた第一の指令移動量とに基づいて、指令移動量調整部１９が第二の指令移動量を算出する（ステップＳ２０５）。具体的には、第一の指令移動量がアーム先端部の誤差範囲以上である場合は、第一の指令移動量をそのまま前記第二の指令移動量とする。一方、第一の指令移動量がアーム先端部の誤差範囲より小さい場合は、第一の指令移動量に１より小さい係数を掛けた値を第二の指令移動量とし、ロボット１０のアーム先端部の移動量を制限しつつ移動させていく。以下、その具体例を図７を参照しつつ説明する。
【００５６】
図７は、バックラッシによる誤差範囲がある場合に、第二の指令移動量を計算する例を説明する図である。一般に。ロボット１０を動かすということは、各可動部に設けられた複数の歯車を噛み合わせて、指定移動量に相当する量（角度）だけ歯車を回転させることを意味する。例えば、図７に示すように、ロボット１０のある可動部において、歯車Ａおよび歯車Ｂが互いに係合しており、歯車Ａを時計回りに回転（駆動）させることで、歯車Ｂを反時計回りに回転（従動）させる場合を考える。
【００５７】
ここで、第一の指令移動量が第一のパラメータより大きくなる場合（例えば、第一の指令移動量が、歯車Ｂを現在位置Ｂ１から位置Ｂ３まで回転させるものである場合）には、歯車Ａと歯車Ｂを完全に噛み合わせて指令移動量分回転させてよく、第一の指令移動量をそのまま第二の指令移動量とすることができる。
【００５８】
一方、第一の指令移動量が、第一のパラメータより小さくなる場合（例えば、第一の指令移動量が、歯車Ｂを現在位置Ｂ１から、比較的Ｂ１に近い位置Ｂ２まで回転させるものである場合）には、歯車Ａと歯車Ｂを完全に噛み合わせて指令移動量分回転させてしまうと、オーバーシュートして位置Ｂ２を通り過ぎてしまうこととなり、正確に所定の位置決め位置１に収束させることができない。そこで、このような場合には、第一の指令移動量に１より小さい係数を掛けた値を第二の指令移動量とすることにより、より少量ずつ歯車Ｂを動かして、オーバーシュートすることなく位置Ｂ１から位置Ｂ２に回転移動させることができる。
【００５９】
このような方法でロボット１０のアーム先端部を移動させていくことにより、ロボット位置を効率的に所定の位置決め位置１に収束させていくことが可能となる。
【００６０】
また図７を参照して説明した例ではバックラッシを扱ったが、バックラッシを扱うことは必須ではない。例えば、ロストモーションなど機械的な遊びを補正するシステムに対し、本実施形態に係る位置決め装置を同じように適用することができる。
【００６１】
なおステップＳ２０５における他の処理として、指令移動量調整部１９は、第一の指令移動量によってロボット１０を移動することで生ずるロボット１０の各可動部の動作量を算出し、該各可動部の動作量に基づいて、第二の指令移動量を算出してもよい。より具体的には、ロボット１０のアーム先端部での差異（ステップＳ２０２）から各可動部での動作量（回転量）を求め、その値に必要な係数を掛けた後、逆変換することでアーム先端部の第二の指令移動量を算出してもよい。
【００６２】
或いは、ステップＳ２０５におけるさらなる他の処理として、指令移動量調整部１９は、ロボット１０の稼働状況から経年変化による性能低下を見積もり、該見積もりに基づいてロボット１０の機械的特性により定められるパラメータを修正し、該修正したパラメータと第一の指令移動量に基づいて、第二の指令移動量を算出してもよい。より具体的には、定期的に記録されたデータなどから経年劣化によるバックラッシの増加量を推測し、その推測値から第一のパラメータを変更して、変更された第一のパラメータと第一の指令移動量とから、第二の指令移動量を算出してもよい。
【００６３】
本実施形態では、特徴部位１３ａの特徴量として何を用いるかにより、位置決めの対象が異なる。画像上の位置を用いれば、特徴部位１３ａが設置された平面上での位置を特定できる。画像上の姿勢を特徴量として用いれば、同平面上での回転位置を特定できる。また、画像上の大きさを特徴量として用いれば、同平面からの法線方向の高さを特定することができる。
【００６４】
上述のようなステップＳ２０３およびＳ２０５における処理は、視覚センサ１２ｂについても、視覚センサ１２ａと同様に行うことができる。そして、目標データ記憶部１７に記憶した特徴部位１３ａ、１３ｂの２組の（第一の）特徴量と、特徴部位１３ａ、１３ｂの２組の現在の（第二の）特徴量とをそれぞれ比較し、それらの差異から、ロボット１０の第一の指令移動量が算出される。
【００６５】
ロボット１０の第一の指令移動量（Δｘ，Δｙ，Δｚ）は、上述の算出方法等で算出した、特徴部位１３ａの特徴量から求められた第一の指令移動量を（Δｘａ，Δｙａ，Δｚａ）とし、特徴部位１３ｂの特徴量から求められた第一の指令移動量を（Δｘｂ，Δｙｂ，Δｚｂ）とすると、式（１９）〜（２１）の通りとなる。
【００６６】
【数１９】
0006430986.tif 000020
【数２０】
0006430986.tif 000021
【数２１】
0006430986.tif 000022
【００６７】
上式（１９）〜（２１）は、図１のように視覚センサ１２ａ、１２ｂが設置された場合の第一の指令移動量の算出方法に対応するものであり、すなわち、視覚センサ１２ａと特徴部位１３ａを用いてロボット１０のＸＹ方向の位置決めを行い、視覚センサ１２ｂと特徴部位１３ｂを用いてロボット１０のＺ方向の位置決めを行うことを意味している。
【００６８】
図１の例では、視覚センサ１２ａは直交座標系のＸＹ平面に垂直なので、Ｘ方向およびＹ方向について高感度での計測が可能となる。また視覚センサ１２ｂはＹＺ平面に垂直なので、Ｙ方向およびＺ方向について高感度の計測が可能となる。このように、複数の視覚センサの利用によって、ＸＹＺの全ての方向について高感度の測定が可能となる。但しこれは一例であり、複数の視覚センサを他の向きや位置に配置し、全ての方向について高感度の測定を行うことも可能である。
【００６９】
図８は、本発明の第２の実施形態における位置決め装置（ロボットシステム）の全体構成を示す図である。第２の実施形態は、基本的な構成は第１の実施形態と同じであるが、視覚センサ１２ａ、１２ｂがロボット１０のハンド１１に設置され、特徴部位１３ａ、１３ｂがロボット１０の外部の定位置に設けられている点で異なる。
【００７０】
第２の実施形態では、ロボットシステム立ち上げ時の処理（図４）のステップＳ１０２において、視覚センサ１２ａ、１２ｂを設置するのではなく、視覚センサ１２ａ、１２ｂで撮像できる位置に特徴部位１３ａ、１３ｂの方を設置する点が異なる。その他の処理については、第２の実施形態は第１の実施形態と同様でよいので、詳細な説明は省略する。
【００７１】
なお上記実施形態ではいずれも、複数の特徴部位を複数の視覚センサでそれぞれ撮像しているが、複数の視覚センサで一つの特徴部位を異なる位置又は角度から撮像することも可能である。具体的には、２つの視覚センサをステレオカメラとして使用して、一つの特徴部位を計測する場合が挙げられる。
【００７２】
上記実施形態では、ロボットのアーム先端部に視覚的な特徴部位を設け、ロボットの外部の定位置に設置された複数の視覚センサで該特徴部位を計測する。或いは、ロボットのアーム先端部に複数の視覚センサを設け、ロボットの外部の定位置に設置された視覚的な特徴部位を該視覚センサで計測する。次に、ロボットが所定の位置に位置決めされた状態で、視覚センサのそれぞれの画像に写る特徴部位の画像上での位置を目標データとして記憶しておく。現在の視覚センサの画像に写る特徴部位の画像上での位置が、目標データとして記憶されている位置と同じであれば、ロボットが物理的に所定の位置に位置決めされていると言える。したがって、視覚センサの画像に写る特徴部位の画像上での位置が目標データとして記憶されている位置と同じになるようにロボットを制御することによって、ロボットのアーム先端部を所定の位置に位置決めすることができる。
【００７３】
ロボットのアームは減速機などを介して駆動されるが、減速機にはバックラッシがあるため、視覚センサの画像に写る特徴部位の画像上での位置を、目標データとして記憶されている位置と同じになるような正確なロボットの指令移動量を算出できたとしても、ロボットのアーム先端部は物理的には指令通りの量を移動するとは限らない。そこで、その指令通りの移動量でそのままアーム先端部を移動させるのではなく、例えばバックラッシの幅などのロボットの機械的特性によって定められるパラメータに基づき指令移動量の調整を行うことで、より精度よくアーム先端部を所定の位置に位置決めすることができる。
【００７４】
また、視覚センサによって検出した現在の特徴部位の画像上の位置を目標データとして記憶している位置と同じにさせるようにロボットのアーム先端部の移動量を算出し、それをロボットの機械的特性によるパラメータに基づいて調整して、実際に移動させるという制御を、算出される指令移動量が所定の閾値以下になるまで繰り返すことで、ロボットのアーム先端部を所定の位置に漸近的に近付けていくことができる。ロボットは所定の位置に漸近的に近付くので、算出される指令移動量は高精度な値でなくてもよい。これは、視覚センサが厳密にキャリブレーションされていなくても、ロボットが本来持つ位置決めの精度以上で、所定の位置に位置決めすることが可能になることを意味するとともに、自らの様々な誤差要因に依らず、ロボットを高精度な位置決め装置として用いることが可能なことを意味する。
【符号の説明】
【００７５】
５    位置決めシステム
６    ロボットアーム
１０    ロボット
１１    ロボットハンド
１２ａ、１２ｂ    視覚センサ
１３    対象物
１３ａ、１３ｂ    特徴部位
１４    画像処理装置
１５    ロボット制御装置
１６    特徴量検出部
１７    目標データ記憶部
１８    ロボット移動量計算部
１９    指令移動量調整部
２０    移動指令部
【図１】
0006430986.tif 000023
【図２】
0006430986.tif 000024
【図３】
0006430986.tif 000025
【図４】
0006430986.tif 000026
【図５】
0006430986.tif 000027
【図６】
0006430986.tif 000028
【図７】
0006430986.tif 000029
【図８】
0006430986.tif 000030