以下、本実施形態について説明する。なお、以下で説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.本実施形態の手法
ここでは、図1に示すように、ロボットのハンドHDにより把持された組付け対象物WK1を、被組付け対象物WK2に組み付ける組付け作業を行う場合について説明する。なお、ロボットのハンドHDは、ロボットのアームAMの先端に設けられている。
まず、本実施形態の比較例である、前述した参照画像を用いたビジュアルサーボにより、図1に示すような組付け作業を行う場合には、カメラ(撮像部)CMにより撮像された撮像画像と、あらかじめ用意しておいた参照画像とに基づいて、ロボットを制御する。具体的には、参照画像に映る組付け対象物WK1Rの位置に向かって、組付け対象物WK1を、矢印YJのように移動させて、被組付け対象物WK2に組み付ける。
ここで、この時に用いる参照画像RIMを図2(A)に、参照画像RIMに映る被組付け対象物WK2の実空間(3次元空間)上での位置を図2(B)に示す。図2(A)の参照画像RIMには、被組付け対象物WK2と組付け状態(又は組み付けられる直前の状態)の組付け対象物WK1R(図1のWK1Rに相当する)が映っている。前述した参照画像RIMを用いたビジュアルサーボでは、参照画像RIMに映る組付け状態の組付け対象物WK1Kの位置姿勢に、撮像画像に映る組付け対象物WK1の位置姿勢が一致するように、組付け対象物WK1を移動させる。
しかし、前述したように、実際に組付け作業を行う場合には、被組付け対象物WK2の位置姿勢が変わることがある。例えば、図2(B)に示すように、図2(A)の参照画像RIMに映る被組付け対象物WK2の重心位置が、実空間上ではGC1であるとする。これに対し、実際の被組付け対象物WK2がずれて置かれており、実際の被組付け対象物WK2の重心位置はGC2であることがある。この場合には、参照画像RIMに映る組付け対象物WK1Rの位置姿勢と一致するように、実際の組付け対象物WK1を移動させても、実際の被組付け対象物WK2との組付け状態にはならないため、正確に組付け作業を行うことができない。被組付け対象物WK2の位置姿勢が変わった場合には、被組付け対象物WK2と組付け状態となる組付け対象物WK1の位置姿勢も変わるためである。
そこで、本実施形態のロボット制御システム100等は、被組付け対象物の位置姿勢が変わる場合でも、正確に組付け作業を行うことができるようにする。
具体的に、本実施形態のロボット制御システム100の構成例を図3に示す。本実施形態のロボット制御システム100は、撮像部200から撮像画像を取得する撮像画像取得部110と、撮像画像に基づいてロボット300を制御する制御部120と、を含む。また、ロボット300は、エンドエフェクター(ハンド)310と、アーム320と、を有する。なお、撮像部200及びロボット300の構成については、後に詳述する。
まず、撮像画像取得部110は、組付け作業における組付け対象物と被組付け対象物のうち、少なくとも被組付け対象物が映る撮像画像を取得する。
そして、制御部120は、撮像画像に基づいて、被組付け対象物の特徴量検出処理を行い、被組付け対象物の特徴量に基づいて、組付け対象物を移動させる。なお、組付け対象物を移動させることには、ロボット300の制御情報(制御信号)を出力する処理なども含むものとする。また、制御部120の機能は、各種プロセッサー(CPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。
このように、前述した参照画像を用いたビジュアルサーボ(比較例)では、参照画像の組付け対象物の特徴量に基づいて、組付け対象物を移動させるのに対して、本実施形態では、撮像画像に映る被組付け対象物の特徴量に基づいて、組付け対象物を移動させる。例えば図4に示すように、カメラCMにより撮像された撮像画像において、被組付け対象物であるワークWK2の特徴量を検出し、検出したワークWK2の特徴量に基づいて、矢印YJのように組付け対象物であるワークWK1を移動させる。
ここで、カメラCMにより撮像された撮像画像には、現時点(撮像した時点)での被組付け対象物WK2が映っている。そのため、現時点での被組付け対象物WK2の位置に向かって、組付け対象物WK1を移動させることができる。よって、前述した参照画像を用いたビジュアルサーボの失敗例(図1で説明した比較例の問題点)のように、現時点では組付け状態にすることができない位置に向かって、組付け対象物WK1を移動させてしまうことを防ぐことができる。また、組付け作業を行う度に、撮像画像からビジュアルサーボの新しい目標位置を設定するため、被組付け対象物WK2の位置姿勢が変わった場合でも、正しい目標位置を設定することができる。
以上のように、被組付け対象物の位置姿勢が変わる場合でも、正確に組付け作業を行うことが可能となる。さらに、本実施形態では、あらかじめ参照画像を用意しておく必要もなく、ビジュアルサーボの準備コストを低減することが可能となる。
また、このように、制御部120は、撮像画像に基づくビジュアルサーボを行うことにより、ロボットを制御する。
これにより、現在の作業状況に基づいて、ロボットをフィードバック制御すること等が可能となる。
なお、ロボット制御システム100は、図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。また、本実施形態のロボット制御システム100は、後述する図19(B)に示すように、ロボット300に含まれており、ロボット300と一体に構成されていてもよい。さらに、後述する図20に示すように、ロボット制御システム100の機能は、サーバー500と、各ロボット300が有する端末装置330とにより、実現されてもよい。
また、例えばロボット制御システム100と撮像部200が、有線及び無線の少なくとも一方を含むネットワークにより接続されている場合には、撮像画像取得部110は、撮像部200と通信を行う通信部(インターフェース部)であってもよい。さらに、ロボット制御システム100が撮像部200を含む場合には、撮像画像取得部110は、撮像部200そのものであってもよい。
ここで、撮像画像とは、撮像部200によって撮像することにより得られる画像のことをいう。また、撮像画像は、外部の記憶部に記憶された画像や、ネットワークを介して取得される画像であってもよい。撮像画像は、例えば後述する図5に示す画像PIMなどである。
また、組付け作業とは、複数の作業対象物を組み付ける作業のことであり、具体的には、組付け対象物を被組付け対象物に組み付ける作業のことである。組付け作業は、例えば、ワークWK1をワークWK2の上(又は隣)に置く作業であったり、ワークWK1をワークWK2に嵌め込む(嵌め合わせる)作業(嵌入作業、嵌合作業)であったり、ワークWK1とワークWK2を接着したり、接続したり、組み立てたり、融着したりする作業(接着作業、接続作業、組立作業、融着作業)などである。
さらに、組付け対象物とは、組付け作業において、被組付け対象物に対して組み付けを行う物である。例えば、図4の例では、ワークWK1である。
一方で、被組付け対象物とは、組付け作業において、組付け対象物を組み付けられる物である。例えば図4の例では、ワークWK2である。
2.処理の詳細
次に、本実施形態の処理の詳細について説明する。
2.1. 被組付け対象物の特徴量に基づくビジュアルサーボ
本実施形態の撮像画像取得部110は、組付け対象物及び被組付け対象物が映る1又は複数の撮像画像を取得する。そして、制御部120は、取得された1又は複数の撮像画像に基づいて、組付け対象物及び被組付け対象物の特徴量検出処理を行う。さらに、制御部120は、組付け対象物の特徴量及び被組付け対象物の特徴量に基づいて、組付け対象物と被組付け対象物との相対位置姿勢関係が、目標相対位置姿勢関係になるように、組付け対象物を移動させる。
ここで、目標相対位置姿勢関係とは、ビジュアルサーボにより組付け作業を行う際に目標とする、組付け対象物と被組付け対象物との相対位置姿勢関係のことをいう。例えば、図4の例では、ワークWK2の三角形の穴HLに、ワークWK1が接触(隣接)した時の相対位置姿勢関係が、目標相対位置姿勢となる。
これにより、撮像画像から検出した組付け対象物の特徴量と、被組付け対象物の特徴量とに基づいて、組付け作業を行うこと等が可能となる。なお、撮像画像取得部110が取得する1又は複数の撮像画像については、後段にて詳細に説明する。
また、多くの組付け作業では、組付け対象物のうち、被組付け対象物に組付ける部分(組付け部分)と、被組付け対象物のうち、組付け対象物が組み付けられる部分(被組付け部分)が決まっていること多い。例えば、図4の例において、組付け対象物のうちの組付け部分とは、ワークWK1の底面BAであり、被組付け対象物の被組付け部分とは、ワークWK2の三角形の穴HLである。図4の組付け作業の例では、被組付け部分の穴HLに組付け部分BAをはめ込むのであって、例えば穴HLにワークWK1の側面SAを組み付けても意味がない。したがって、組付け対象物における組付け部分と、被組付け対象物における被組付け部分とを設定しておくことが望ましい。
そこで、制御部120は、被組付け対象物の特徴量のうち、ゴール特徴量として設定された特徴量と、組付け対象物の特徴量のうち、注目特徴量として設定された特徴量とに基づいて、組付け対象物と被組付け対象物との相対位置姿勢関係が、目標相対位置姿勢関係になるように、組付け対象物を移動させる。
ここで、特徴量とは、例えば画像の特徴点や、画像中に映る検出対象物(組付け対象物及び被組付け対象物など)の輪郭線などのことを指す。そして、特徴量検出処理とは、画像中の特徴量を検出する処理のことであり、例えば特徴点検出処理や、輪郭線検出処理などのことを指す。
以下では、特徴量として特徴点を検出する場合について説明する。特徴点とは、画像中から際立って観測できる点のことをいう。例えば、図5に示す撮像画像PIM11では、被組付け対象物であるワークWK2の特徴点として、特徴点P1〜特徴点P10が検出されており、組付け対象物であるワークWK1の特徴点として、特徴点Q1〜特徴点Q5が検出されている。なお、図5の例では、図示及び説明の都合上、P1〜P10及びQ1〜Q5の特徴点だけが検出された様子を図示しているが、実際の撮像画像ではより多数の特徴点が検出される。しかし、より多数の特徴点が検出される場合でも、以下で説明する処理の内容に変わりはない。
また、本実施形態では、特徴点の検出方法(特徴点検出処理)として、コーナー検出法等を用いるが、その他の一般的なコーナー部検出方法(固有値、FAST特徴検出)を用いても良いし、SIFT(Scale Invariant Feature Transform)に代表される局所特徴量記述子やSURF(Speeded Up Robust Feature)等を用いても良い。
そして、本実施形態では、被組付け対象物の特徴量のうち、ゴール特徴量として設定された特徴量と、組付け対象物の特徴量のうち、注目特徴量として設定された特徴量とに基づいて、ビジュアルサーボを行う。
具体的に図5の例では、ワークWK2の特徴点P1〜特徴点P10のうち、ゴール特徴量としてゴール特徴点P9及びゴール特徴点P10が設定されているものとする。一方で、ワークWK1の特徴点Q1〜特徴点Q5のうち、注目特徴量として注目特徴点Q4及び注目特徴点Q5が設定されているものとする。
そして、制御部120は、被組付け対象物のゴール特徴点と組付け対象物の注目特徴点とが一致するように又は近付くように、組付け対象物を移動させる。
すなわち、注目特徴点Q4がゴール特徴点P9に近付き、注目特徴点Q5がゴール特徴点P10に近付くように、組付け対象物WK1を矢印YJで示すように移動させる。
ここで、ゴール特徴量とは、被組付け対象物を表す特徴量のうち、ビジュアルサーボにより組付け対象物を移動させる際に、目標とする特徴量のことをいう。言い換えれば、ゴール特徴量は、被組付け対象物の被組付け部分の特徴量である。また、ゴール特徴点とは、特徴点検出処理が行われる場合に、ゴール特徴量として設定される特徴点のことをいう。前述したように図5の例では、ワークWK2の三角形の穴HLに対応する特徴点P9及び特徴点P10が、ゴール特徴点として設定されている。
一方、注目特徴量とは、組付け対象物又は被組付け対象物を表す特徴量のうち、ゴール特徴量に対応する実空間上のポイント(図5の例では、ワークWK2の三角形の穴HL)に向かって移動させる、実空間上のポイント(図5の例では、ワークWK1の底面)を表す特徴量のことをいう。言い換えれば、注目特徴量は、組付け対象物の組付け部分の特徴量である。また、注目特徴点とは、特徴点検出処理が行われる場合に、注目特徴量として設定される特徴点のことをいう。前述したように図5の例では、ワークWK1の底面に対応する特徴点Q4及び特徴点Q5が、注目特徴点として設定されている。
また、ゴール特徴量(ゴール特徴点)及び注目特徴量(注目特徴点)は、予め教示者(ユーザー)が設定しておくものであってもよいし、所与のアルゴリズムに従って設定される特徴量(特徴点)であってもよい。例えば、検出される特徴点のバラつきとゴール特徴点との相対位置関係に基づいて、ゴール特徴点を設定してもよい。具体的に図5の例では、撮像画像PIM11において、ワークWK2を表す特徴点P1〜特徴点P10のバラつきの中心付近に位置する特徴点P9及び特徴点P10を、ゴール特徴点として設定してもよい。また、他にも被組付け対象物を表すCAD(Computer Aided Design)データにおいて、ゴール特徴点に対応するポイントを予め設定しておき、撮像画像においてCADデータとCADマッチングを行い、被組付け対象物の特徴点の中から、ゴール特徴点として設定された特徴点を、CADマッチングの結果に基づき特定(検出)してもよい。注目特徴量(注目特徴点)についても、同様である。
なお、本実施形態では、制御部120は、被組付け対象物のゴール特徴点と、組付け対象物の注目特徴点とが、一致するように又は近付くように、組付け対象物を移動させるが、被組付け対象物と組付け対象物は有体物であるため、実際にゴール特徴点と注目特徴点とが同じポイントにおいて検出されることはない。つまり、一致するように組付け対象物を移動させる、とは、あくまで注目特徴点が検出されるポイントを、ゴール特徴点が検出されるポイントに向かって移動させることを意味する。
これにより、設定された組付け対象物の組付け部分と、設定された被組付け対象物の被組付け部分の相対位置姿勢関係が、目標相対位置姿勢関係となるように、組付け対象物を移動させること等が可能になる。
そして、組付け対象物の組付け部分を、被組付け対象物の被組付け部分に組付けること等が可能になる。例えば、図6に示すように、ワークWK1の組付け部分である底面BAを、ワークWK2の被組付け部分である穴HLに嵌め込むことができる。
次に、本実施形態の処理の流れを図7のフローチャートを用いて説明する。
まず、撮像画像取得部110が、例えば図5に示すような撮像画像PIM11を取得する(S101)。この撮像画像PIM11には、組付け対象物WK1と被組付け対象物WK2の両方が映っている。
次に、制御部120が、取得した撮像画像PIM11に基づいて、特徴量検出処理を行って、被組付け対象物WK2のゴール特徴量FBと、組付け対象物WK1の注目特徴量FAを検出する(S102、S103)。
そして、前述したように、制御部120が、検出した注目特徴量FAとゴール特徴量FBとに基づいて、組付け対象物WK1を移動させ(S104)、組付け対象物WK1と被組付け対象物WK2との相対位置姿勢関係が、目標相対位置姿勢関係になったか否かを判定する(S105)。
最後に、組付け対象物WK1と被組付け対象物WK2との相対位置姿勢関係が、図6のように、目標相対位置姿勢関係になったと判定した場合には、処理を終了し、組付け対象物WK1と被組付け対象物WK2との相対位置姿勢関係が、目標相対位置姿勢関係になっていないと判定した場合には、ステップS101に戻り、処理を繰り返す。以上が、本実施形態の処理の流れである。
また、撮像画像取得部110は、複数枚の撮像画像を取得してもよい。この場合には、撮像画像取得部110は、組付け対象物と被組付け対象物の両方が映っている撮像画像を複数枚取得してもよいし、組付け対象物だけが映っている撮像画像と、被組付け対象物だけが映っている撮像画像とを取得してもよい。
ここで、後者の組付け対象物と被組付け対象物とが別々に映っている複数の撮像画像を取得する場合の処理の流れを、図8のフローチャートに示す。
まず、撮像画像取得部110が、少なくとも被組付け対象物WK2が映っている撮像画像PIM11を取得する(S201)。なお、この撮像画像PIM11には、組付け対象物WK1が映っていてもよい。そして、制御部120が、撮像画像PIM11から被組付け対象物WK2のゴール特徴量FBを検出する(S202)。
次に、撮像画像取得部110が、少なくとも組付け対象物WK1が映っている撮像画像PIM12を取得する(S203)。なお、ステップS201と同様に、この撮像画像PIM12には、被組付け対象物WK2が映っていてもよい。そして、制御部120が、撮像画像PIM12に基づいて、組付け対象物WK1の注目特徴量FAを検出する(S204)。
そして、以降は図7で説明した処理の流れと同様に、制御部120が、検出した注目特徴量FAとゴール特徴量FBとに基づいて、組付け対象物WK1を移動させ(S205)、組付け対象物WK1と被組付け対象物WK2との相対位置姿勢関係が、目標相対位置姿勢関係になったか否かを判定する(S206)。
最後に、組付け対象物WK1と被組付け対象物WK2との相対位置姿勢関係が、図6のように、目標相対位置姿勢関係になったと判定した場合には、処理を終了し、組付け対象物WK1と被組付け対象物WK2との相対位置姿勢関係が、目標相対位置姿勢関係になっていないと判定した場合には、ステップS203に戻り、処理を繰り返す。以上が、組付け対象物と被組付け対象物とが別々に映っている複数の撮像画像を取得する場合の処理の流れである。
また、前述した例では、ビジュアルサーボにより、組付け対象物を被組付け対象物に実際に組付けていたが、本発明はそれに限定されず、ビジュアルサーボにより、組付け対象物を被組付け対象物に組付ける直前の状態にしてもよい。
すなわち、制御部120は、被組付け対象物の特徴量(特徴点)に基づいて、被組付け対象物と所与の位置関係にある画像領域を特定し、特定した画像領域と、組付け対象物の注目特徴点とが、一致するように又は近付くように、組付け対象物を移動させてもよい。言い換えれば、制御部120は、被組付け対象物の特徴量に基づいて、被組付け対象物と所与の位置関係にある実空間上のポイントを特定し、特定したポイントに向かって、組付け対象物を移動させてもよい。
例えば、図9に示す撮像画像PIMにおいて、被組付け対象物WK2の被組付け部分である三角形の穴HLを表す特徴点として、特徴点P8〜特徴点P10が検出されているとする。この場合に、撮像画像PIMにおいて、特徴点P8〜特徴点P10と所与の位置関係にある画像領域R1〜画像領域R3を特定する。そして、組付け対象物WK1の注目特徴点Q4を、画像領域R2に一致させ(近付け)、組付け対象物の注目特徴点Q5を、画像領域R3に一致させ(近付け)るように、組付け対象物WK1を移動させる。
これにより、例えば組付け作業の直前の状態にすること等が可能になる。
また、前述した例のように組付け対象物の特徴量を検出する処理は、必ずしも必要ではない。例えば、被組付け対象物の特徴量を検出し、検出した被組付け対象物の特徴量に基づいて、ロボットとの相対的な被組付け対象物の位置姿勢を推定し、推定した被組付け対象物の位置に、組付け対象物を把持したハンドを近付けるように、ロボットを制御する等してもよい。
2.2. 2種類のビジュアルサーボによる組付け作業
次に、参照画像を用いたビジュアルサーボ(第1のビジュアルサーボ)と、被組付け対象物の特徴量を用いて組付け対象物を移動させるビジュアルサーボ(第2のビジュアルサーボ)の、二つのビジュアルサーボを続けて行う場合の処理について説明する。
例えば、図10において、位置GC1から位置GC2への組付け対象物WK1の移動(矢印YJ1に示す移動)は、参照画像を用いた第1のビジュアルサーボにより行い、位置GC2から位置GC3への組付け対象物WK1の移動(矢印YJ2に示す移動)は、被組付け対象物WK2の特徴量を用いた第2のビジュアルサーボにより行う。なお、位置GC1〜位置GC3は、組付け対象物WK1の重心位置であるものとする。
このような処理を行う場合には、本実施形態のロボット制御システム100は、図3に示すように、参照画像記憶部130をさらに含む。参照画像記憶部130は、目標位置姿勢をとる組付け対象物を表す参照画像を記憶する。参照画像は、例えば後述する図12(A)に示すような画像RIMである。なお、参照画像記憶部130の機能は、RAM(Random Access Memory)等のメモリーやHDD(Hard Disk Drive)などにより実現できる。
そして、制御部120は、前述した図10の矢印YJ1のような第1のビジュアルサーボとして、少なくとも組付け対象物が映る第1の撮像画像と、参照画像とに基づいて、目標位置姿勢に組付け対象物を移動させる。
さらに、制御部120は、前述した第1のビジュアルサーボ後に、図10の矢印YJ2のような第2のビジュアルサーボを行う。つまり、制御部120は、組付け対象物を移動させた後に、少なくとも被組付け対象物が映る第2の撮像画像に基づいて、被組付け対象物の特徴量検出処理を行い、被組付け対象物の特徴量に基づいて、組付け対象物を移動させる。
ここで、より具体的な処理の流れを図11のフローチャートと、図12(A)〜図12(D)を用いて説明する。
まず、第1のビジュアルサーボの準備として、ロボットのハンドHDに組付け対象物WK1を把持させて、目標位置姿勢に移動させ(S301)、撮像部200(図10のカメラCM)により目標位置姿勢での組付け対象物WK1を撮像し、図12(A)に示すような参照画像(ゴール画像)RIMを取得する(S302)。そして、取得した参照画像RIMから組付け対象物WK1の特徴量F0を検出する(S303)。
ここで、目標位置姿勢とは、第1のビジュアルサーボにおいて目標となる、組付け対象物WK1の位置姿勢のことをいう。例えば、図10では、位置GC2が目標位置姿勢であり、図12(A)の参照画像RIMでは、その目標位置姿勢GC2に組付け対象物WK1が位置している様子が映されている。この目標位置姿勢は、参照画像を生成する際に、教示者(ユーザー)が設定するものである。
また、参照画像とは、例えば図12(A)の参照画像RIMのように、第1のビジュアルサーボにおける移動対象である組付け対象物WK1が、前述した目標位置姿勢で映る画像のことをいう。なお、図12(A)の参照画像RIMには、被組付け対象物WK2も映っているが、被組付け対象物WK2は必ずしも映っている必要はない。また、参照画像は、外部の記憶部に記憶された画像や、ネットワークを介して取得される画像、CADモデルデータから生成される画像等であってもよい。
次に、第1のビジュアルサーボを行う。まず、撮像画像取得部110が、図12(B)に示すような第1の撮像画像PIM101を取得する(S304)。
ここで、本例における第1の撮像画像は、例えば図12(B)の撮像画像PIM101のように、組付け作業における組付け対象物WK1と被組付け対象物WK2とのうち、少なくとも組付け対象物WK1が映る撮像画像のことをいう。
そして、制御部120が、第1の撮像画像PIM101から組付け対象物WK1の特徴量F1を検出し(S305)、前述した特徴量F0と特徴量F1とに基づいて、図10の矢印YJ1のように組付け対象物WK1を移動させる(S306)。
そして、制御部120は、組付け対象物WK1が目標位置姿勢GC2にあるか否かを判定し(S306)、組付け対象物WK1が目標位置姿勢GC2にあると判定した場合には、第2のビジュアルサーボに移行する。一方で、組付け対象物WK1が目標位置姿勢GC2にないと判定した場合には、ステップS304に戻り、第1のビジュアルサーボを繰り返す。
このように、第1のビジュアルサーボでは、参照画像RIMと第1の撮像画像PIM101とにおける、組付け対象物WK1の特徴量同士を比較しながら、ロボットを制御する。
次に、第2のビジュアルサーボを行う。第2のビジュアルサーボでは、まず撮像画像取得部110が、図12(C)に示すような第2の撮像画像PIM21を取得する(S308)。ここで、第2の撮像画像とは、第2のビジュアルサーボに用いる撮像画像のことをいう。なお、本例における第2の撮像画像PIM21には、組付け対象物WK1と、被組付け対象物WK2の両方が映っているものとする。
そして、制御部120が、第2の撮像画像PIM21から、被組付け対象物WK2のゴール特徴量FBを検出する(S309)。例えば本例では、ゴール特徴量FBとして、図12(C)に示すように、ゴール特徴点GP1及びゴール特徴点GP2を検出したものとする。
同様にして、制御部120は、第2の撮像画像PIM21から、組付け対象物WK1の注目特徴量FAを検出する(S310)。例えば本例では、注目特徴量FAとして、図12(C)に示すように、注目特徴点IP1及び注目特徴点IP2を検出したものとする。
次に、制御部120が、注目特徴量FAとゴール特徴量FBに基づいて、組付け対象物WK1を移動させる(S312)。つまり、前段において図5を用いて説明した例と同様に、注目特徴点IP1をゴール特徴点GP1に近付け、注目特徴点IP2をゴール特徴点GP2に近付けるように、組付け対象物WK1を移動させる。
そして、制御部120が、組付け対象物WK1と被組付け対象物WK2とが目標相対位置姿勢関係にあるか否かを判定する(S312)。例えば図12(D)に示す撮像画像PIMEでは、注目特徴点IP1がゴール特徴点GP1に隣接し、注目特徴点IP2がゴール特徴点GP2に隣接しているため、組付け対象物WK1と被組付け対象物WK2とが目標相対位置姿勢関係にあると判定し、処理を終了する。
一方で、組付け対象物WK1と被組付け対象物WK2とが目標相対位置姿勢関係になっていないと判定した場合には、ステップS308に戻り、第2のビジュアルサーボを繰り返す。
これにより、同一の組付け作業を繰り返す度に、同一の参照画像を用いて、組付け対象物を被組付け対象物の近くに移動させ、その後に、実際の被組付け対象物の詳細な位置姿勢に合わせて、組付け作業を行うこと等が可能となる。つまり、参照画像を生成した際の被組付け対象物の位置姿勢と、実際の組付け作業時の被組付け対象物の位置姿勢がずれている(異なる)場合でも、第2のビジュアルサーボにおいて、被組付け対象物の位置ずれに対応するため、第1のビジュアルサーボでは、異なる参照画像を用いる必要はなく、毎回同じ参照画像を用いることができる。その結果、参照画像の準備コストを抑制すること等が可能となる。
なお、前述したステップS310では、第2の撮像画像PIM21から組付け対象物WK1の注目特徴量FAを検出していたが、必ずしも第2の撮像画像PIM21から検出しなければならない訳ではない。例えば第2の撮像画像PIM21に、組付け対象物WK1が映っていない場合などには、組付け対象物が映る他の第2の撮像画像PIM22から、組付け対象物WK1の特徴量を検出するなどしてもよい。
2.3. 3つのワークの組付け作業
次に、図13(A)及び図13(B)に示すように、3つのワーク(WK1〜WK3)の組付け作業を行う場合の処理について説明する。
本組付け作業では、図13(A)に示すように、ロボットの第1のハンドHD1で把持した組付け対象物WK1(ワークWK1、例えばドライバー)を、ロボットの第2のハンドHD2で把持した第1の被組付け対象物WK2(ワークWK2、例えばネジ)に組み付け、作業台の上の第2の被組付け対象物WK3(ワークWK3、例えばネジ穴)に、ワークWK1と組付け状態のワークWK2を組み付ける。そして、組付け作業後には、図13(B)に示すような組付け状態になる。
具体的にこのような処理を行う場合には、制御部120は、図14(A)に示すように、少なくとも、組付け作業における第1の被組付け対象物WK2が映る第1の撮像画像PIM31に基づいて、第1の被組付け対象物WK2の特徴量検出処理を行う。本例における第1の撮像画像とは、組付け対象物WK1と第1の被組付け対象物WK2との組付け作業を行う際に用いる撮像画像のことをいう。
そして、制御部120は、第1の被組付け対象物WK2の特徴量に基づいて、図13(A)の矢印YJ1のように、組付け対象物WK1を移動させる。
次に、制御部120は、図14(B)に示すように、組付け対象物WK1を移動させた後に、少なくとも第2の被組付け対象物WK3が映る第2の撮像画像PIM41に基づいて、第2の被組付け対象物WK3の特徴量検出処理を行う。本例における第2の撮像画像とは、第1の被組付け対象物WK2と第2の被組付け対象物WK3との組付け作業を行う際に用いる撮像画像のことをいう。
そして、制御部120は、第2の被組付け対象物WK3の特徴量に基づいて、組付け対象物WK1及び第1の被組付け対象物WK2を、図13(A)の矢印YJ2のように移動させる。
これにより、組付け作業を行う度に、第1の被組付け対象物WK2や第2の被組付け対象物WK3の位置がずれてしまう場合でも、組付け対象物と、第1の被組付け対象物と、第2の被組付け対象物との組付け作業を行うこと等が可能となる。
次に、図13(A)及び図13(B)に示す3つのワークの組付け作業における処理の流れを、図15のフローチャートを用いて詳細に説明する。
まず、撮像画像取得部110が、少なくとも、組付け作業における組付け対象物WK1及び第1の被組付け対象物WK2が映る、1又は複数の第1の撮像画像を取得する。そして、制御部120は、第1の撮像画像に基づいて、組付け対象物WK1及び第1の被組付け対象物WK2の特徴量検出処理を行う。
本例では、まず撮像画像取得部110が、第1の被組付け対象物WK2が映る第1の撮像画像PIM31を取得する(S401)。そして、制御部120が、第1の撮像画像PIM31に基づいて、第1の被組付け対象物WK2の特徴量検出処理を行い、第1のゴール特徴量FB1を検出する(S402)。ここでは、第1のゴール特徴量FB1として、図14(A)に示すようなゴール特徴点GP1とゴール特徴点GP2とを検出するものとする。
次に、撮像画像取得部110が、組付け対象物WK1が映る第1の撮像画像PIM32を取得する(S403)。そして、制御部120が、第1の撮像画像PIM32に基づいて、組付け対象物WK1の特徴量検出処理を行い、第1の注目特徴量FAを検出する(S404)。ここでは、第1の注目特徴量FAとして、注目特徴点IP1と注目特徴点IP2とを検出するものとする。
なお、ステップS401〜ステップS404では、組付け対象物WK1と第1の被組付け対象物WK2とが別々に映っている複数の第1の撮像画像(PIM31及びPIM32)を取得する例を説明したが、図14(A)に示すように、組付け対象物WK1と第1の被組付け対象物WK2とが同じ第1の撮像画像PIM31に映っている場合には、第1の撮像画像PIM31から、組付け対象物WK1と第1の被組付け対象物WK2の両方の特徴量を検出してもよい。
次に、制御部120は、組付け対象物WK1の特徴量(第1の注目特徴量FA)及び第1の被組付け対象物WK2の特徴量(第1のゴール特徴量FB1)に基づいて、組付け対象物WK1と第1の被組付け対象物WK2との相対位置姿勢関係が、第1の目標相対位置姿勢関係になるように、組付け対象物WK1を移動させる(S405)。具体的には、撮像画像において、注目特徴点IP1がゴール特徴点GP1に近付き、注目特徴点IP2がゴール特徴点GP2に近付くように、組付け対象物WK1を移動させる。なお、この移動は、図13(A)の矢印YJ1の移動に相当する。
そして、制御部120は、組付け対象物WK1と第1の被組付け対象物WK2とが、第1の目標相対位置姿勢関係にあるか否かを判定する(S406)。組付け対象物WK1と第1の被組付け対象物WK2とが第1の目標相対位置姿勢関係にないと判定した場合には、ステップS403に戻り、処理をやり直す。
一方、組付け対象物WK1と第1の被組付け対象物WK2とが第1の目標相対位置姿勢関係にあると判定した場合には、第1の撮像画像PIM32から第1の被組付け対象物WK2の第2の注目特徴量FB2を検出する(S407)。具体的には、制御部120は、後述する図14(B)に示すように、第2の注目特徴量FB2として、注目特徴点IP3と注目特徴点IP4とを検出する。
次に、撮像画像取得部110が、図14(B)に示すような、少なくとも第2の被組付け対象物WK3が映る第2の撮像画像PIM41を取得する(S408)。
そして、制御部120が、第2の撮像画像PIM41に基づいて、第2の被組付け対象物WK3の特徴量検出処理を行って、第2のゴール特徴量FCを検出する(S409)。具体的に、制御部120は、図14(B)に示すように、第2のゴール特徴量FCとして、ゴール特徴点GP3とゴール特徴点GP4とを検出する。
次に、制御部120が、第1の被組付け対象物WK2の特徴量(第2の注目特徴量FB2)と、第2の被組付け対象物WK3の特徴量(第2のゴール特徴量FC)とに基づいて、第1の被組付け対象物WK2と第2の被組付け対象物WK3との相対位置姿勢関係が、第2の目標相対位置姿勢関係になるように、組付け対象物WK1と第1の被組付け対象物WK2とを移動させる(S410)。
具体的には、撮像画像において、注目特徴点IP3がゴール特徴点GP3に近付き、注目特徴点IP4がゴール特徴点GP4に近付くように、組付け対象物WK1と第1の被組付け対象物WK2とを移動させる。なお、この移動は、図13(A)の矢印YJ2の移動に相当する。
そして、制御部120は、第1の被組付け対象物WK2と第2の被組付け対象物WK3とが第2の目標相対位置姿勢関係にあるか否かを判定する(S411)。第1の被組付け対象物WK2と第2の被組付け対象物WK3とが第2の目標相対位置姿勢関係にないと判定した場合には、ステップS408に戻り、処理をやり直す。
一方、図14(C)に示す撮像画像PIMEのように、第1の被組付け対象物WK2と第2の被組付け対象物WK3とが組み付け状態にある、すなわち第2の目標相対位置姿勢関係にあると判定した場合には、処理を終了する。
このように、組付け対象物WK1の注目特徴点(IP1及びIP2)を、第1の被組付け対象物WK2のゴール特徴点(GP1及びGP2)に近づけ、第1の被組付け対象物WK2の注目特徴点(IP3及びIP4)を、第2の被組付け対象物WK3のゴール特徴点(GP3及びGP4)に近づけるように、ビジュアルサーボを行うこと等が可能となる。
また、図15のフローチャートのように、組付け対象物WK1と、第1の被組付け対象物WK2とを順番に組み付けていくのではなく、図16(A)〜図16(C)に示すように、3つのワークを同時に組み付けてもよい。
この時の処理の流れを図17のフローチャートに示す。まず、撮像画像取得部110が、組付け作業における、組付け対象物WK1、第1の被組付け対象物WK2及び第2の被組付け対象物WK3が映る1又は複数の撮像画像を取得する(S501)。本例では、図16(A)に示す撮像画像PIM51を取得したものとする。
次に、制御部120が、1又は複数の撮像画像に基づいて、組付け対象物WK1、第1の被組付け対象物WK2及び第2の被組付け対象物WK3の特徴量検出処理を行う(S502〜S054)。
本例では、図16(A)に示すように、第2の被組付け対象物WK3の特徴量として、ゴール特徴点GP3及びゴール特徴点GP4を検出する(S502)。そして、第1の被組付け対象物WK2の特徴量として、ゴール特徴点GP1及びゴール特徴点GP2と、注目特徴点IP3及び注目特徴点IP4を検出する(S503)。さらに、組付け対象物WK1の特徴量として、注目特徴点IP1及び注目特徴点IP2を検出する(S504)。なお、3つのワークが別々の撮像画像に映っている場合には、それぞれ別の撮像画像で特徴量検出処理を行っても良い。
次に、制御部120は、組付け対象物WK1の特徴量及び第1の被組付け対象物WK2の特徴量に基づいて、組付け対象物WK1と第1の被組付け対象物WK2との相対位置姿勢関係が、第1の目標相対位置姿勢関係になるように、組付け対象物WK1を移動させながら、第1の被組付け対象物WK2の特徴量及び第2の被組付け対象物WK3の特徴量に基づいて、第1の被組付け対象物WK2と第2の被組付け対象物WK3との相対位置姿勢関係が、第2の目標相対位置姿勢関係になるように、第1の被組付け対象物WK2を移動させる(S505)。
つまり、注目特徴点IP1がゴール特徴点GP1に近付き、注目特徴点IP2がゴール特徴点GP2に近付き、注目特徴点IP3がゴール特徴点GP3に近付き、注目特徴点IP4がゴール特徴点GP4に近付くように、組付け対象物WK1と第1の被組付け対象物WK2とを同時に移動させる。
そして、撮像画像取得部110が、撮像画像を新たに取得し(S506)、制御部120が、新たに取得した撮像画像に基づいて、組付け対象物WK1と、第1の被組付け対象物WK2と、第2の被組付け対象物WK3との3つのワークが、目標相対位置姿勢関係にあるか否かを判定する(S507)。
例えば、ステップS506において取得した撮像画像が、図16(B)に示すような撮像画像PIM52であり、3つのワークが、まだ目標相対位置姿勢関係にないと判定した場合には、ステップS503に戻り、処理を繰り返す。なお、ステップS503以降の処理は、新たに取得した撮像画像PIM52に基づいて行う。
一方で、ステップS506において取得した撮像画像が、図16(C)に示すような撮像画像PIMEである場合には、3つのワークが目標相対位置姿勢関係にあると判定し、処理を終了する。
これにより、3つのワークの同時組付け作業を行うこと等が可能となる。その結果、3つのワークの組付け作業の作業時間を短縮すること等が可能となる。
さらに、3つのワークの組付け作業を行う際には、図15のフローチャートに示す組付け順とは逆の順番で、組付け作業を行ってもよい。つまり、図18(A)〜図18(C)に示すように、第1の被組付け対象物WK2を第2の被組付け対象物WK3に組み付けた後に、組付け対象物WK1を第1の被組付け対象物WK2に組み付けてもよい。
この場合には、制御部120は、図18(A)に示すように、少なくとも、組付け作業における第2の被組付け対象物WK3が映る第1の撮像画像PIM61に基づいて、第2の被組付け対象物WK3の特徴量検出処理を行い、第2の被組付け対象物WK3の特徴量に基づいて、第1の被組付け対象物WK2を移動させる。なお、特徴量検出処理の詳細は、図16(A)を用いて説明した例と同様であるので、説明を省略する。
次に、制御部120は、図18(B)に示すように、少なくとも移動後の第1の被組付け対象物WK2が映る第2の撮像画像PIM71に基づいて、第1の被組付け対象物WK2の特徴量検出処理を行い、第1の被組付け対象物WK2の特徴量に基づいて、図18(C)のような組付け状態になるように、組付け対象物WK1を移動させる。
これにより、組付け対象物WK1と、第1の被組付け対象物WK2とを同時に移動させる必要がなくなり、ロボットの制御をより容易にすること等が可能となる。また、多腕のロボットではなく、単腕のロボットでも、3つのワークの組付け作業を行うこと等が可能になる。
また、以上の本実施形態で用いる撮像部(カメラ)200は、例えばCCD(charge-coupled device)等の撮像素子と光学系とを含む。撮像部200は、例えば天井や作業台の上などに、ビジュアルサーボにおける検出対象(組付け対象物、被組付け対象物又はロボット300のエンドエフェクター310等)が、撮像部200の画角内に入るような角度で配置される。そして、撮像部200は、撮像画像の情報をロボット制御システム100等に出力する。ただし、本実施形態においては、撮像画像の情報をそのままロボット制御システム100に出力するものとするが、これに限定されるものではない。例えば、撮像部200は、画像処理用等に用いられるデバイス(プロセッサー)を含むことができる。
3.ロボット
次に、図19(A)及び図19(B)に、本実施形態のロボット制御システム100が適用されるロボット300の構成例を示す。図19(A)及び図19(B)のどちらの場合にも、ロボット300は、エンドエフェクター310を有する。
エンドエフェクター310とは、ワーク(作業対象物)を把持したり、持ち上げたり、吊り上げたり、吸着させたり、ワークに加工を施したりするために、アームのエンドポイントに取り付ける部品のことをいう。エンドエフェクター310は、例えばハンド(把持部)であってもよいし、フックであってもよいし、吸盤等であってもよい。さらに、1本のアームに対して、複数のエンドエフェクターを設けても良い。なお、アームとは、ロボット300のパーツであって、一つ以上の関節を含む可動パーツのことをいう。
例えば、図19(A)のロボットは、ロボット本体300(ロボット)とロボット制御システム100とが別体に構成されている。この場合には、ロボット制御システム100の一部又は全部の機能は、例えばPC(Personal Computer)により実現される。
また、本実施形態のロボットは図19(A)の構成に限定されず、図19(B)のようにロボット本体300とロボット制御システム100とが一体に構成されていてもよい。すなわち、ロボット300は、ロボット制御システム100を含んでいても良い。具体的には図19(B)に示したように、ロボット300は、ロボット本体(アーム及びエンドエフェクター310を有する)及びロボット本体を支えるベースユニット部を有し、当該ベースユニット部にロボット制御システム100が格納されるものであってもよい。図19(B)のロボット300には、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、図19(A)は単腕型の例であるが、ロボット300は図19(B)に示すように双腕型等の多腕型のロボットであってもよい。また、ロボット300は、人手により移動させられるものであってもよいし、車輪を駆動させるモーターを設け、当該モーターをロボット制御システム100により制御することにより、移動させられるものであってもよい。また、ロボット制御システム100は、図19(B)のようにロボット300の下に設けられたベースユニット部に設けられるとは限られない。
また、図20に示すように、ロボット制御システム100の機能は、有線及び無線の少なくとも一方を含むネットワーク400を介して、ロボット300と通信接続されたサーバー500により実現されてもよい。
或いは本実施形態では、本発明のロボット制御システムの処理の一部を、サーバー500側のロボット制御システムが行ってもよい。この場合には、ロボット300側に設けられたロボット制御システムとの分散処理により、当該処理を実現する。なお、ロボット300側のロボット制御システムは、例えばロボット300に設置される端末装置330(制御部)により実現される。
そして、この場合に、サーバー500側のロボット制御システムは、本発明のロボット制御システムにおける各処理のうち、サーバー500のロボット制御システムに割り当てられた処理を行う。一方、ロボット300に設けられたロボット制御システムは、本発明のロボット制御システムの各処理のうち、ロボット300のロボット制御システムに割り当てられた処理を行う。なお、本発明のロボット制御システムの各処理は、サーバー500側に割り当てられた処理であってもよいし、ロボット300側に割り当てられた処理であってもよい。
これにより、例えば端末装置330よりも処理能力の高いサーバー500が、処理量の多い処理を行うこと等が可能になる。さらに、例えばサーバー500が各ロボット300の動作を一括して制御することができ、複数のロボット300に協調動作をさせること等が容易になる。
また近年は、多品種少数の部品を製造することが増えてきている。そして、製造する部品の種類を変更する場合には、ロボットが行う動作を変更する必要がある。図20に示すような構成であれば、複数のロボット300の各ロボットへ教示作業をし直さなくても、サーバー500が一括して、ロボット300が行う動作を変更すること等が可能になる。
さらに、図20に示すような構成であれば、各ロボット300に対して一つのロボット制御システム100を設ける場合に比べて、ロボット制御システム100のソフトウェアアップデートを行う際の手間を大幅に減らすこと等が可能になる。
なお、本実施形態のロボット制御システム及びロボット等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム及びロボット等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボット及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。