以下、本発明の具体的実施例を図面に基づいて詳細に説明する。
図1および図2は、本発明のロボット制御装置の一実施例を示す図であり、図1は使用状態1を示す模式図、図2は概略ブロック図である。本実施例のロボット制御装置1は、対象物2を関節3の変位により移動先へ移動させるロボット4の制御装置である。
ロボット4は、工場などの現場で用いられる産業用ロボットとされ、土台に回転自在に設けられるアーム5と、アーム5に設けられる手先部6とを有して構成される。アーム5は、複数のリンク棒7と、隣接するリンク棒7,7同士を互いに回転自在に接続する関節3とを有する。本実施例のアーム5は、三本のリンク棒7を有し、隣接するリンク棒7,7同士が関節3を介して互いに回転自在に接続される。図1に示されるように、アーム5は、基端部が関節3を介して土台に回転自在に接続されて外方へ延出され、先端に対象物2を把持する手先部6が設けられる。各関節3には、モータ8が設けられており、このモータ8を駆動させることで、関節3を回転させることができ、ひいてはリンク棒7を回転させることができる。なお、図1に示される座標系XYZは、三次元のロボット座標系とされる。
ロボット4により運ばれる対象物2には、予め基準点9が設定されている。一方、対象物2の移動先には、予め、基準点9の移動先としての目標点10が設定されている。これら基準点9および目標点10は、移動先での対象物2の位置および姿勢を決定するために設定されている。なお、基準点9および目標点10としては、色マーカや二次元バーコードなどが用いられる。
図2に示されるように、本実施例のロボット制御装置1は、基準点9および目標点10を撮像する撮像手段11と、ロボット4の関節3の変位を制御する制御手段12とを主要部として備える。その他、ロボット制御装置1は、ロボット4の関節3の変位量を検出する変位量検出手段13を備える。
撮像手段11は、対象物2および対象物2の移動先の画像を取得する手段であり、本実施例ではカメラとされる。本実施例では、カメラ11は二台用いられ、それらのカメラ11は、像面IM1,IM2同士が互いに交差するように配置される。典型的には、一方のカメラ11は、ロボット座標系のYZ平面を撮影できるように配置され、他方のカメラ11は、ロボット座標系のZX平面を撮影できるように配置される。なお、図1に示されるように、一方のカメラ11には、互いに直交するU1軸、V1軸およびW1軸からなる三次元のカメラ座標系が設けられ、他方のカメラ11には、互いに直交するU2軸、V2軸およびW2軸からなる三次元のカメラ座標系が設けられる。各カメラ11は、前述したように像面IM1,IM2同士が互いに交差するように配置され、対象物2とその移動先とを撮影することができる。
制御手段12は、基準点9が目標点10へ移動するよう関節3の変位を制御する手段である。この制御手段12は、撮像手段11により得られた撮像結果に基づき、関節3の変位を制御する。具体的には、本実施例では、撮像手段11およびロボット4などは、制御手段12に接続されており、その制御手段12により後述するロボットの制御が可能とされる。この際、カメラ11およびロボット4のキャリブレーションは、行われない。
制御手段12にはさらに、変位量検出手段13が接続される。この変位量検出手段13は、本実施例ではエンコーダとされ、各関節3に設けられる。本実施例のエンコーダ13は、モータ8の回転位置を検出し、この検出結果から現在のロボット4の手先部6の位置、ひいては手先部6で把持された対象物2の位置を求めることができる。
次に、本実施例のロボット制御装置1を用いたロボット制御方法について説明する。図3は、本発明のロボット制御方法の一実施例を示すフローチャートである。また、図4は、本実施例のロボット制御装置の使用状態1を示す模式図であり、図1の状態から対象物を移動させた状態を示している。
図3に示されるように、本実施例では、設定工程S1、撮像工程S2、検出工程S3、偏差算出工程S4、位置設定工程S5および制御工程S6が順次に実行される。なお、ロボット制御方法は、これに限定されるものではなく、撮像された画像に基づきロボット4を制御する従来公知の方法であって、カメラ11およびロボット4のキャリブレーションを不要とする方法であればよい。
まず、対象物2に基準点9が設定される一方、対象物2の移動先に目標点10が設定される(ステップS1)。この設定は、前述したように、対象物2および対象物2の移動先に目印となるものを取り付けることでなされる。そして、設定された基準点9および目標点10が撮像される(ステップS2)。これは、二台のカメラ11によりなされる。次に、ロボット4のアーム5が計測されて、ロボット4の手先部6の位置、ひいては対象物2の基準点9の位置が求められる(ステップS3)。これは、関節3に設けられたエンコーダ13によりなされる。この際、ロボット4の手先部6は、移動前の位置にある対象物2を挟んだ状態とされる。
そして、カメラ11にて撮像された基準点9とカメラ11にて撮像された目標点10との間の位置偏差が算出され、この位置偏差がカメラ座標系からロボット座標系へ変換される(ステップS4)。カメラ座標系からロボット座標系へ変換された位置偏差を、エンコーダ13にて求められた基準点9の位置に加えることで、対象物2の仮想目標点が設定される(ステップS5)。設定された仮想目標点へ基準点9が移動するように、アーム5が制御される(ステップS6)。具体的には、以下に示すようにして、各工程が順次に実行される。
ここでは、対象物2が第一領域14を有する一方、対象物2の移動先が第二領域15を有する場合について説明する。なお、第二領域15は、その外形が第一領域14の外形と同一形状に形成されている。この場合、対象物2を移動させて第一領域14の縁部を第二領域15の縁部に外形が合うよう接触させる制御とされる。この制御では、対象物2に基準点9が複数設定される。
複数の基準点9は、対象物2の第一領域14の縁部に設定される。この場合、たとえば、複数の基準点9の内、複数の基準点9が同一直線上に設定され、残りの基準点9が前記同一直線上から外れた位置に設定される。なお、目標点10は、基準点9の移動先であり、移動先での対象物2の位置および姿勢が決定できるように、移動先での基準点9に対応する位置に設定される。
典型的には、図1および図4に示す例とされる。この例では、対象物2が下面を第一領域14とする直方体とされ、第二領域15が直方体の下面と同一形状の平面部とされる。ここでは、対象物2の下側の三つの頂点、すなわち対象物2の下面の三つの角部に基準点a,b,cが設定され、平面状の第二領域15の三つの角部に前記接触時に基準点a,b,cに対応する目標点ad,bd,cdが設定される。そして、二台のカメラ11により三つの基準点a,b,cおよび三つの目標点ad,bd,cdが撮像され、その撮像結果に基づき、三つの基準点a,b,cがそれぞれ対応する目標点ad,bd,cdへ移動するようロボット4の関節3の変位が制御される。すなわち、基準点aが目標点adへ、基準点bが目標点bdへ、および基準点cが目標点cdへ移動するようにロボット4が制御される。この際、二台のカメラ11のどちらかは、基準点a,b,cおよび目標点ad,bd,cdを撮像可能な位置に配置される。
三つの基準点a,b,cの内、基準点bが目標点bdへ移動する場合について説明する。YZ平面を撮影するカメラ(カメラC1とする)11側から見た場合、基準点bはb=(b1y,b1z)とされ、目標点bdはbd=(b1dy,b1dz)とされる。また、ZX平面を撮影するカメラ(カメラC2とする)11側からみた場合、基準点bはb=(b2x,b2z)とされ、目標点bdはbd=(b2dx,b2dz)とされる。なお、座標の数字1および2はそれぞれ、カメラC1およびC2からみたことを示している。
従って、基準点bと目標点bdとの間のX軸方向の偏差、Y軸方向の位置偏差およびZ軸方向の位置偏差はそれぞれ、以下の式で表される。なお、Z軸方向に関しては、カメラC1およびカメラC2からみることができるので、下記のように、カメラC1から見た場合またはカメラC2からみた場合のどちらかが用いられる。
これが基準点bと目標点bdとの間の位置偏差とされ、この位置偏差に基づき、ロボット4の関節3の変位が制御される。具体的には、基準点9および目標点10が一点の場合には、以下に示すように制御される。
制御手段12によって、カメラ11で撮影された対象物2の基準点9とカメラ11で撮影された目標点10との間の位置偏差が算出され、この位置偏差がカメラ座標系からロボット座標系へ変換される。また、制御手段12によって、対象物2の基準点9の真の位置とカメラ11で撮影された基準点9の位置との基準誤差が算出される。制御手段12は、二台のカメラ11に接続されており、これらのカメラ11から対象物2の基準点9の位置情報を取得することができる。この取得した基準点9の位置と、対象物2の基準点9の真の位置との誤差である基準誤差を、制御手段12により算出することができる。ここで、基準誤差について説明する。カメラ11から対象物2の基準点9をとらえたときには、カメラ11のひずみなどが原因で、基準点9の実際の位置である真の位置との間に誤差が生じることになり、これが基準誤差とされる。
また、制御手段12によって、対象物2の移動先に設定される目標点10の真の位置と、カメラ11で撮影された目標点10の位置との目標誤差を算出することができる。制御手段12は、前述したようにカメラ11に接続されており、これらのカメラ11からの目標点10の位置と、目標点10の真の位置との誤差である目標誤差を算出できる。この目標誤差は、カメラ11のひずみなどの原因により、カメラ11から目標点10をとらえたときに、目標点10の実際の位置である真の位置との間に生じる誤差である。
基準点9の真の位置をx=(x,y,z)、目標点10の真の位置をxd=(xd,yd,zd)、カメラ11で撮影された基準点9の位置をxc=(xc,yc,zc)、カメラ11で撮影された目標点10の位置をxcd=(xcd,ycd,zcd)とする。カメラ11で撮影された基準点9の位置およびカメラ11で撮影された目標点10の位置は、キャリブレーション誤差を含んでいる。このとき、カメラ11のキャリブレーションによる誤差Δxc、すなわち真値からのずれである基準誤差および目標誤差は、以下の式で表される。なお、以下の式において、左肩に設けられた「w」は、基準となるワールド座標系からみたことを示している。本実施例では、ロボット座標系をワールド座標系としている。また、左肩に設けられた「c」は、カメラ座標系からみたことを示している。
ここで、チルダは誤差を含んだ値を示しており、その他は以下のとおりである。
数2、数3および数4においては、基準誤差および目標誤差は、カメラ座標系からロボット座標系に変換されている。一方、エンコーダ13で計測された基準点9の現在の位置をxm=(xm,ym,zm)とすると、ロボット4のキャリブレーションによる誤差Δxm、すなわち真値からのずれは、以下の式で表される。
ここで、f(q)は、各関節角度から基準点9の位置へ変換する関数を示している。なお、ロボット4の幾何情報が正確、かつ各リンク棒7が十分な剛性を有する場合には、Δxmはゼロに近づくことになる。同様に、エンコーダ13で計測された目標点10の位置をxmd=(xmd,ymd,zmd)として、目標点10の位置の近傍における誤差、すなわち真値からのずれは、以下の式で定義される。
このように、エンコーダ13で計測された基準点9の位置およびエンコーダ13で計測された目標点10の位置と、それぞれの真値との間には、リンク棒7の歪みや弛みなどが原因とされる誤差が生じる。
次に、対象物2の位置および姿勢の制御時に生じる誤差は、以下の式で定義される。これは、静止摩擦や重力などの影響による誤差とされる。
ここでは、以下のとおりである。
数9で示される誤差は、静止摩擦などの影響が小さく、ロボット4の各関節角が目標点10に正確に制御可能であるとき、Δxm2=0となる。ここでは、産業用ロボットを対象とするため、この値はゼロとする。ただし、式の展開中では記述することとする。これにより、後述の目標点を与えた際、制御後の対象物2の位置は、数9より以下のようになる。
また、制御手段12は、エンコーダ13により検出された基準点9の位置に、前述したように座標系が変換された位置偏差を加えることで、対象物2の移動先に仮想目標点を設定することができる。制御手段12は、エンコーダ13に接続されており、このエンコーダ13からの基準点9の位置情報を取得することができる。そして、エンコーダ13からの基準点9の位置に前述した位置偏差を加えることで、基準点9の移動先としての仮想目標点を設定することができる。
具体的には、次のとおりである。仮想目標点xvdを以下のように設定し、数2、数3および数5により、仮想目標点xvdは以下のようになる。
さらに、制御手段12によって、設定された仮想目標点へ基準点9が移動するように、ロボット4の関節3の変位が制御される。制御手段12は、モータ8と接続されており、このモータ8を制御することで、関節3ひいてはリンク棒7を回転させて、基準点9を設定された仮想目標点へ到達させることができる。
このようにして、三点の基準点9および三点の目標点10の内、一点の基準点9が一点の目標点10へ移動するようロボット4が制御される。残りの二点については、上述した制御と同様に制御すればよい。これにより、基準点a,b,cをそれぞれ対応する目標点ad,bd,cdへ到達させることができる。
本実施例の場合、前述したように、直方体の対象物2の下面の三つの角部に基準点9が設定されている。すなわち、三つの基準点9の内、二点が同一直線上に設定され、残りの一点が前記同一直線上から外れた位置に設定されている。たとえば、基準点aおよびbが同一直線上に配置されているとすると、基準点cがその同一直線上から外れた位置とされる。従って、本実施例によれば、簡易な設定で、第一領域14の縁部を第二領域15の縁部に外形が合うよう正確に接触させて、移動先において対象物2を所定の位置に所定の向きで配置することができる。
ところで、本実施例では、基準点9と目標点10との間の位置偏差に基づき制御したが、基準点9と目標点10との間の姿勢角偏差に基づき制御することも可能である。具体的には、次のとおりである。
ここでは、三つの基準点a,b,cの内、基準点bが目標点bdへ移動する場合について説明する。YZ平面を撮影するカメラ(カメラC1とする)11側から見た場合、基準点aはa=(a1y,a1z)および基準点bはb=(b1y,b1z)とされ、目標点adはad=(a1dy,a1dz)および目標点bdはbd=(b1dy,b1dz)とされる。また、ZX平面を撮影するカメラ(カメラC2とする)11側からみた場合、基準点bはb=(b2x,b2z)および基準点cはc=(c2x,c2z)とされ、目標点bdはbd=(b2dx,b2dz)および目標点cdはcd=(c2dx,c2dz)とされる。
ところで、前述したように、二台のカメラ11のどちらかが基準点a,b,cおよび目標点ad,bd,cdを撮像できる位置に配置されているので、上記に加えて、基準点cはc=(c1y,c1z)および目標点cdはcd=(c1dy,c1dz)とされるか、または基準点aはa=(a2x,a2z)および目標点adはad=(a2dx,a2dz)とされる。なお、座標の数字1および2はそれぞれ、カメラC1およびC2からみたことを示している。
従って、基準点bと目標点bdとの間の姿勢角偏差は、以下の三つの式で表される。なお、Δγdに関しては、カメラC1が基準点a,b,cおよび目標点ad,bd,cdを撮像できる位置に配置される場合か、またはカメラC2が基準点a,b,cおよび目標点ad,bd,cdを撮像できる位置に配置される場合で異なるので、どちらかを用いればよい。
ここで、−π/4<θ<π/4の場合、θ≒tanθとなるので、数13は以下に示す式で表される。
この姿勢角偏差に基づき、ロボット4の関節3の変位が制御される。具体的には、基準点9および目標点10が一点の場合には、以下に示すように制御される。
対象物2の基準点9の真の姿勢角をR、対象物2の移動先の目標点10の真の姿勢角をRd、カメラ11で撮像された基準点9の姿勢角をRca、カメラ11で撮像された目標点10の姿勢角をRcdとする。カメラ11で撮像された基準点9の姿勢角およびカメラ11で撮像された目標点10の姿勢角は、キャリブレーション誤差を含んでいる。このとき、カメラ11のキャリブレーションによる誤差ΔRc、すなわち真値からのずれは、以下の式で表される。なお、以下の式において、右肩に設けられた「T」は、これの付された行列の転置行列を表している。
ここで、チルダは誤差を含んだ値を示しており、その他は以下のとおりである。
数15、数16および数17においては、各誤差は、カメラ座標系からロボット座標系に変換されている。一方、エンコーダ13で計測された基準点9の現在の姿勢角をRmとすると、ロボット4のキャリブレーションによる誤差ΔRm、すなわち真値からのずれは、以下の式で表される。
ここで、g(q)は、各関節角度から対象物2の姿勢角へ変換する関数を示している。なお、ロボット4の幾何情報が正確、かつ各リンク棒7が十分な剛性を有する場合には、ΔRmはIに近づくことになる。同様に、エンコーダ13で計測された目標点10の姿勢角をRmdとして、目標姿勢近傍における誤差、すなわち真値からのずれは、以下の式で定義される。
このように、エンコーダ13で計測された基準点9の姿勢角およびエンコーダ13で計測された目標点10の姿勢角と、それぞれの真値との間には、リンク棒7の歪みや弛みなどが原因とされる誤差が生じる。
次に、対象物2の位置および姿勢の制御時に生じる誤差は、以下の式で定義される。これは、静止摩擦や重力などの影響による誤差とされる。
ここでは、以下のとおりである。
数22で示される誤差は、静止摩擦などの影響が小さく、ロボット4の各関節角が目標姿勢に正確に制御可能であるとき、ΔRm2=Iとなる。ここでは、産業用ロボットを対象とするため、この値はIとする。ただし、式の展開中では記述することとする。
そして、仮想目標姿勢角Rvdを以下のように設定する。この仮想目標姿勢角Rvdとなるように関節3の変位を制御する。
本実施例によれば、各工程を順次に1回実行した場合の最終的な誤差Δxfpは、以下のようになる。
ここで、Δxm2=0を考慮すれば、誤差Δxfpは、以下のようになる。
このように、本実施例では、キャリブレーション誤差は、制御前の誤差と制御後の誤差との差分として影響している。これは、制御前と制御後のそれぞれの位置における誤差量が近ければ近いほど、最終的な誤差Δxfpが小さくなることを示す。
これに対し、従来では、ある目標位置を与えた場合の1回の実行による誤差が、本実施例とは異なる。具体的には、次のとおりである。従来では、対象物2の誤差は、Δxcd+Δxm2となる。従来における最終的な誤差をΔxfとおくと、目標値はカメラ11で計測した目標位置を用いるので、以下のとおりとなる。
ここで、数3を用いることで、Δxfは以下のとおりとなる。
さらに、Δxm2=0を考慮すれば、Δxfは以下のとおりとなる。
これは、カメラ11およびロボット4のキャリブレーション誤差の双方が、そのままの形で残っていることを示す。すなわち、カメラ11およびロボット4のキャリブレーション誤差が、最終的な誤差に直接影響している。従って、ロボット4およびカメラ11のキャリブレーションを高精度に行わなければならなかった。しかしながら、本実施例では、前述した数26のような式で表されるため、カメラ11およびロボット4のキャリブレーション誤差が直接影響することがなく、カメラ11およびロボット4のキャリブレーションにかかる時間やコストを低減することができる。
また、本実施例によれば、姿勢角制御では、位置制御の場合と同様に、その姿勢角制御を1回実行した場合の最終的な誤差ΔRfpは、以下のようになる。
ここで、ΔRm2=Iとすれば、誤差ΔRfpは以下のとおりとなる。
このように、姿勢角の誤差についても位置の場合と同様に、実行前後の誤差同士の相体量が最終的な誤差として残っていることが分かる。
これに対し、従来では、最終的な誤差ΔRfが以下のとおりとなる。
ここで、位置制御の場合と同様に、ΔRm2=Iとすれば、以下のとおりとなる。
このように、従来では、位置制御の場合と同様に、カメラ11およびロボット4のキャリブレーション誤差がそのまま残っている。
また、本実施例によれば、設定工程S1を除く各工程を順次に繰り返し実行することができる。すなわち、制御工程S6終了後、その状態において再び撮像工程S2を行い、そして残りの各工程を順次に実行する。この繰り返し回数は、適宜に変更可能とされる。具体的には、以下の条件を満たす場合において繰り返し実行する。ここで、ロボット4の実行前の対象物2の位置をxα、ロボット4の実行後の対象物2の位置をxβとすると、条件は以下のとおりである。
この条件を満たす場合において繰り返し実行することで、より高精度な制御を行うことができる。すなわち、設定工程S1を除く各工程を繰り返すごとに、真の目標位置に近付くことになり、精度を向上させることができる。これは、ロボット4の実行前の対象物2の位置と目標位置との距離が、場所によるカメラ11やエンコーダ13などのセンサの計測誤差に比べて大きい場合を示す。つまり、繰り返し実行することで、センサの計測誤差の非線形成分と同等の精度を実現することが可能となるということが分かる。さらに、非線形成分についても、制御前と制御後との位置が近いほど誤差量は減少し、繰り返すごとに精度を高めることができる。
また、本実施例によれば、姿勢角制御は、位置制御の場合と同様に、その姿勢角制御を繰り返し実行することができる。具体的には、ロボット4の実行前の対象物2の姿勢角をRα、実行後の対象物2の姿勢をRβとすると、繰り返し実行することで誤差が減少し、目標値に収束するための条件は、以下のとおりになる。
この条件を満たす場合に、繰り返し実行することで、目標値へ収束させることができる。この条件の性質は、位置制御の場合の収束条件である数34と同様である。
さらに、本実施例によれば、上述した制御によりロボット4を制御できるため、既存の産業用ロボットに実装されているコントローラ(制御手段)に、ソフトウェアの変更箇所を抑制しつつ、容易に適用することができる。すなわち、工場などで稼動している既存のロボット4に、ハードウェアやソフトウェアの変更箇所を抑制しつつ、直接適用することができ、利用範囲を広げることができる。
図5および図6は、図1のロボット制御装置の使用状態2を示す図であり、図5は模式図、図6は図5の状態から対象物をその移動先へ移動させた状態を示す模式図である。ここでのロボット制御装置1は、基本的には前述した例と同様である。そこで、以下では、両者の異なる点を中心に説明し、対応する箇所には同一の符号を付して説明する。
前述した例では、複数の基準点9が第一領域14の縁部に設定されたが、ここでは、複数の基準点9の内、少なくとも一の基準点9が第一領域14の縁部に設定され、残りの基準点9が対象物2に第一領域14の縁部以外の箇所に設定される。たとえば、複数の基準点9の内、少なくとも一の基準点9が第一領域14の縁部に設定され、残りの基準点9が一点とされて、対象物2において第一領域14の縁部以外の箇所に設定される場合が考えられる。この場合、対象物2の移動先は、軸方向一端面に第二領域15を有する角柱体16を有している。
前記少なくとも一の基準点9が複数の場合、その内の一の基準点9と残りの基準点9とを結ぶ基準線分が以下となるように、残りの基準点9が対象物2に設定される。基準線分は、第一領域14の縁部と第二領域15の縁部との接触時において、角柱体16の軸方向一端面に対して垂直となる。一方、第一領域14の縁部と第二領域15の縁部との接触時において、第一領域14の縁部に設定される基準点9と対応する位置に、目標点10が設定される。また、角柱体16の軸方向一端面と軸方向他端面との間の辺部の内、一の辺部17上に互いに離隔して二つの他の目標点18,18が設定される。
この例では、制御手段12によって、第一領域14の縁部に設定される基準点9が目標点10へ移動するよう関節3の変位が制御されると共に、二つの他の目標点18,18間を結ぶ目標線分の方向と基準線分の方向とが同一となるよう関節3の変位が制御される。なお、第一領域14の縁部に設定される基準点9の目標点10への移動は、前述した場合と同様に制御される。
典型的には、図5および図6に示す例とされる。この例では、前述した基準線分の一端でありかつ第一領域14に設定される基準点9に対応する目標点10と、その目標点10から前記目標線分と同一方向へ延出する延出線19上に設定される別の目標点20とを結ぶ線分が以下となるように、別の目標点20が設定される。目標点10と別の目標点20とを結ぶ線分は、その長さが基準線分の長さと同一となる。
この場合、制御手段12は、基準線分の方向と目標線分の方向とが同一となるようにするために、前述した残りの基準点9が別の目標点20へ移動するようにロボット4が制御される。すなわち、制御手段12によって、第一領域14の縁部に設定された基準点9が目標点10へ移動するよう関節3の変位が制御されると共に、残りの基準点9が別の目標点20へ移動するよう関節3の変位が制御される。
図示例では、対象物2は、四角形の薄板状に形成されており、下面が第一領域14とされる。対象物2の下面は、板材の板面ではなく、板材の厚み部分であり、長方形状とされる。第二領域15は、四角柱状の角柱体16の軸方向一端面である上面に形成される平面部であり、第一領域14と同一形状に形成されている。ここでは、対象物2に三つの基準点d,e,fが設定される。三つの基準点d,e,fの内、二つの基準点d,eが対象物2の下側の二つの頂点、すなわち対象物2の下面の一方の長辺部の両端に対応する二つの角部に設定される。残りの基準点fは、対象物2の上側の頂点であり、基準点eが設定された頂点と上下方向に対応する頂点に設定される。従って、基準点eと基準点fとを結ぶ基準線分は、板状の対象物2の上下方向へ沿う辺部とされる。前述したように対象物2の下面が角柱体16の上面に当接するよう対象物2が制御されるので、当接時において基準線分が角柱体16の上面に対して垂直とされる。
一方、第二領域15の二つの角部に前記接触時に基準点d,eに対応する目標点dd,edが設定される。具体的には、目標点dd,edは、長方形の平面状に形成された第二領域15の一方の長辺部の両端に対応する二つの角部に設定される。また、四角柱状の角柱体16の軸方向に沿う四つの辺部の内、一の辺部17上には、上下方向へ互いに離隔して二つの他の目標点g,hが設定される。前記一の辺部17は、角柱体16の辺部であるので、角柱体16の上面に対して垂直とされる。従って、二つの他の目標点g,h間を結ぶ目標線分は、角柱体16の上面に対して垂直とされる。
そして、二台のカメラ11により、三つの基準点d,e,f、二つの目標点dd,edおよび二つの他の目標点g,hが撮像され、その撮像結果に基づき、ロボット4が制御される。具体的には、まず、目標点edから目標線分と同一方向へ延出する延出線19がひかれる。ここで、目標点edは、基準線分の下端であり、第一領域14に設定される基準点eに対応する目標点である。延出線19の形成後、延出線19上には別の目標点fdが設定される。別の目標点fdは、それと目標点edとを結ぶ線分の長さが基準線分の長さと同一となるように設定される。そして、基準点d,eがそれぞれ目標点dd,edへ移動するよう関節3の変位が制御されると共に、基準点fが別の目標点fdへ移動するよう制御される。なお、各基準点の目標点への移動は、前述した場合と同様にしてなされる。これにより、薄板状の対象物2を移動させて、対象物2の下面である第一領域14を角柱体16の第二領域15に正確に当接させることができる。この際、第一領域14の縁部と第二領域15の縁部とが外形が合うように当接される。
図7から図9は、図1のロボット制御装置の使用状態3を示す図であり、図7は模式図、図8は図7の状態から対象物をその移動先へ移動させる途中を示す模式図、図9は図7の状態から図8の状態を介して対象物をその移動先へ移動させた状態を示す模式図である。ここでのロボット制御装置1は、基本的には図5および図6に示す例と同様である。そこで、以下では、両者の異なる点を中心に説明し、対応する箇所には同一の符号を付して説明する。
図5および図6に示す例では、基準線分の方向と目標線分の方向とが同一となるようにするために、残りの基準点9が別の目標点20へ移動するよう関節3の変位が制御されたが、ここでは、延出線19に対して残りの基準点9から垂直にひかれる線分の長さに相当するずれである偏差ベクトルに基づき、ロボット4の関節3の変位が制御される。図示例では、対象物2とそれに形成される第一領域14、および角柱体16とそれに形成される第二領域15は、図5および図6の場合と同様である。また、図5および図6の場合と同様にして、三つの基準点d,e,f、二つの目標点dd,edおよび二つの他の目標点g,hが設定される。
そして、二台のカメラ11により、三つの基準点d,e,f、二つの目標点dd,edおよび二つの他の目標点g,hが撮像され、その撮像結果に基づき、ロボット4が制御される。具体的には、まず、目標点edから前述した延出線19がひかれる。延出線19の形成後、基準点d,eがそれぞれ目標点dd,edへ移動するよう関節3の変位が制御されると共に、基準点fから延出線19に対して垂直にひかれる垂線である偏差ベクトルに基づき関節3の変位が制御される。ここで、偏差ベクトルに基づきロボット4を制御する方法は、従来公知の方法が用いられる。なお、基準点d,eの目標点dd,edへの移動は、前述した場合と同様にしてなされる。これにより、薄板状の対象物2を移動させて、対象物2の下面である第一領域14を角柱体16の第二領域15に互いの縁部が合うように正確に当接させることができる。
図10および図11は、図1のロボット制御装置の使用状態4を示す図であり、図10は模式図、図11は図10の状態から対象物を移動させた状態を示す模式図である。ここでのロボット制御装置1は、基本的には図5および図6に示す例と同様である。そこで、以下では、両者の異なる点を中心に説明し、対応する箇所には同一の符号を付して説明する。
図5および図6に示す例では、前記少なくとも一の基準点9が複数とされたが、ここでは、前記少なくとも一の基準点9が一点とされる。すなわち、一点の基準点9が第一領域14の縁部に設定され、一点の残りの基準点9が対象物2に対して第一領域14以外の箇所に設定される。この際、一点の基準点9と一点の残りの基準点9とを結ぶ基準線分が第一領域14と第二領域15との接触時に角柱体16の軸方向一端面に対して垂直となるように一点の残りの基準点9が設定される。
典型的には、図10および図11に示す例とされる。すなわち、図5および図6に示す例では、対象物2が四角形の薄板状に形成されていたが、ここでは、円柱状に形成されている。円柱状の対象物2は、円形状の下面が第一領域14とされる。一方、第二領域15は、四角柱状の角柱体16の軸方向一端面である上面に形成される円形状の平面部であり、第一領域14と同一形状に形成されている。
ここでは、対象物2に二つの基準点i,jが設定される。二つの基準点i,jの内、基準点iが対象物2の下面の外縁部に設定され、残りの基準点jが円柱状の対象物2の外壁面に設定される。この際、残りの基準点jは、基準点iから対象物2の下面に対して垂直にひかれる垂線21上に設定される。従って、基準点iと基準点jとを結ぶ基準線分は、前述したように対象物2の下面が角柱体16の上面に当接するよう対象物2が制御されるので、当接時において基準線分が角柱体16の上面に対して垂直とされる。一方、円形状の第二領域15の外縁部には、前記接触時に基準点iに対応する目標点idが設定される。また、前述したように、四角柱状の角柱体16の軸方向に沿う四つの辺部の内、一の辺部17上には、上下方向へ互いに離隔して二つの他の目標点g,hが設定される。
そして、二台のカメラ11により、二つの基準点i,j、目標点idおよび二つの他の目標点g,hが撮像され、その撮像結果に基づき、ロボット4が制御される。具体的には、まず、目標点idから二つの他の目標点g,h間を結ぶ目標線分と同一方向へ延出する延出線19がひかれる。ここで、目標点idは、基準線分の下端であり、第一領域14に設定される基準点iに対応する目標点である。延出線19の形成後、延出線19上には別の目標点jdが設定される。別の目標点jdは、それと目標点idとを結ぶ線分の長さが基準線分の長さと同一となるように設定される。そして、基準点iが目標点idへ移動するよう関節3の変位が制御されると共に、基準点jが別の目標点jdへ移動するよう制御される。なお、各基準点の目標点への移動は、前述した場合と同様にしてなされる。これにより、円柱状の対象物2を移動させて、対象物2の下面である第一領域14を角柱体16の第二領域15に互いに縁部が合うように正確に当接させることができる。
図12から図14は、図1のロボット制御装置の使用状態5を示す図であり、図12は模式図、図13は図12の状態から対象物を移動させる途中を示す模式図、図14は図12の状態から図13の状態を介して対象物を移動させた状態を示す模式図である。ここでのロボット制御装置1は、基本的には図7から図9に示す例と同様である。そこで、以下では、両者の異なる点を中心に説明し、対応する箇所には同一の符号を付して説明する。
図7から図9に示す例では、対象物2が四角形の薄板状に形成されていたが、ここでは、円柱状に形成されている。円柱状の対象物2は、円形状の下面が第一領域14とされる。一方、第二領域15は、四角柱状の角柱体16の軸方向一端面である上面に形成される円形状の平面部であり、第一領域14と同一形状に形成されている。
ここでは、対象物2に二つの基準点i,jが設定される。二つの基準点i,jの内、基準点iが対象物2の下面の外縁部に設定され、残りの基準点jが円柱状の対象物2の外壁面に設定される。この際、残りの基準点jは、基準点iから対象物2の下面に対して垂直にひかれる垂線21上に設定される。従って、基準点iと基準点jとを結ぶ基準線分は、前述したように対象物2の下面が角柱体16の上面に当接するよう対象物2が制御されるので、当接時において基準線分が角柱体16の上面に対して垂直とされる。一方、円形状の第二領域15の外縁部には、前記接触時に基準点iに対応する目標点idが設定される。また、前述したように、四角柱状の角柱体16の軸方向に沿う四つの辺部の内、一の辺部17上には、上下方向へ互いに離隔して二つの他の目標点g,hが設定される。前記一の辺部17は、角柱体16の辺部であるので、角柱体16の上面に対して垂直とされる。従って、二つの他の目標点g,h間を結ぶ目標線分は、角柱体16の上面に対して垂直とされる。
そして、二台のカメラ11により、二つの基準点i,j、目標点idおよび二つの他の目標点g,hが撮像され、その撮像結果に基づき、ロボット4が制御される。具体的には、まず、目標点idから目標線分と同一方向へ延出する延出線19がひかれる。ここで、目標点idは、基準線分の下端であり、第一領域14に設定される基準点iに対応する目標点である。延出線19の形成後、基準点iが目標点idへ移動するよう関節3の変位が制御されると共に、基準点jから延出線19に対して垂直にひかれる垂線である偏差ベクトルに基づき関節3の変位が制御される。ここで、偏差ベクトルに基づきロボット4を制御する方法は、従来公知の方法が用いられる。なお、基準点iの目標点idへの移動は、前述した場合と同様にしてなされる。これにより、円柱状の対象物2を移動させて、対象物2の下面である第一領域14を角柱体16の第二領域15に互いの縁部が合うように正確に当接させることができる。
図15から図17は、図1のロボット制御装置の使用状態6を示す図であり、図15は模式図、図16は図15の状態から対象物を移動させる途中を示す模式図、図17は図15の状態から図16の状態を介して対象物を移動させた状態を示す模式図である。ここでのロボット制御装置1は、基本的には図1および図4に示す例と同様である。そこで、以下では、両者の異なる点を中心に説明し、対応する箇所には同一の符号を付して説明する。すなわち、図1および図4に示す例では、対象物2の第一領域14の縁部を対象物2の移動先の第二領域15の縁部に外形が合うよう接触させたが、ここでは、対象物2が対象物2の移動先に差し込まれる。
対象物2は、第一領域14を先端に有する差込部22を有している。一方、対象物2の移動先は、第二領域15を有しており、この第二領域15が対象物2の差込部22が差し込まれる被差込部とされている。この場合、対象物2を移動させて、対象物2の第一領域14の縁部を第二領域15の縁部に外形が合うよう接触させた後、対象物2の差込部22を被差込部15に差し込む制御とされる。この制御では、対象物2に基準点9が複数設定される。
複数の基準点9は、対象物2の第一領域14の縁部に設定される。一方、目標点10は、基準点9の移動先であり、移動先での対象物2の位置および姿勢が決定できるように、移動先での基準点9に対応する位置に設定される。ここでは、対象物2に基準点9とは異なる位置に他の基準点23がさらに設定される。他の基準点23は、第一領域14に設定された基準点9よりも基端側において対象物2の差込部22に、差込部22の被差込部15への差込後に第二領域15に設定される目標点10に対応する位置に設定される。そして、制御手段12によって、対象物2の第一領域14の縁部と第二領域15の縁部との接触後、他の基準点23が第二領域15に設定される目標点10に移動するよう関節3の変位が制御される。なお、第一領域14の縁部と第二領域15の縁部との接触は、前述した場合と同様にしてなされる。
典型的には、図15から図17に示す例とされる。この例では、対象物2は、前述したように下面を第一領域14とする直方体とされ、下半分が差込部22とされる。一方、第二領域15は、上方へ開口する凹部とされ、角柱体16の上面に形成されている。なお、凹部は、対象物2の下半分を差し込むことができる形状に形成されている。ここでは、前述したように、対象物2の下側の三つの頂点、すなわち対象物2の下面の三つの角部に基準点a,b,cが設定され、平面状の第二領域15の三つの角部に前記接触時に基準点a,b,cに対応する目標点ad,bd,cdが設定される。
また、対象物2の差込部22には、基準点a,b,cの基端側、すなわち差込部22の上端部に、他の基準点k,l,mが設定される。具体的には、他の基準点kは、基準点aが設定される頂点とその上側の頂点とを結ぶ辺部の中央部に設定される。他の基準点lは、基準点bが設定される頂点とその上側の頂点とを結ぶ辺部の中央部に設定される。他の基準点mは、基準点cが設定される頂点とその上側の頂点とを結ぶ辺部の中央部に設定される。
そして、二台のカメラ11により三つの基準点a,b,c、他の三つの基準点k,l,m、および三つの目標点ad,bd,cdが撮像され、その撮像結果に基づきロボット4が制御される。具体的には、三つの基準点a,b,cがそれぞれ対応する目標点ad,bd,cdへ移動するようロボット4の関節3の変位が制御された後、他の三つの基準点k,l,mが目標点ad,bd,cdへ移動するよう関節3の変位が制御される。これにより、対象物2の下半分を対象物2の移動先の凹部へ正確に差し込むことができる。なお、三つの基準点a,b,cの目標点ad,bd,cdへの移動は、前述した場合と同様にしてなされ、他の三つの基準点k,l,mの目標点ad,bd,cdへの移動は、三つの基準点a,b,cの目標点ad,bd,cdへの移動と同様にしてなされる。
本発明のロボット制御装置およびロボット制御方法は、前記図示例の構成に限らず、適宜変更可能である。たとえば、前記図示例では、撮像手段11による撮像前に予め基準点9および目標点10などが対応する箇所に設定されたが、撮像手段11により撮像された画像上において、それら各点を設定してもよい。図18は、本発明のロボット制御装置の別の実施例を示す概略ブロック図である。ここでは、ロボット制御装置1は、後述する撮像手段11、設定手段24および制御手段12を備える。その他の構成は、前記図示例と同様であるので、説明は省略する。
撮像手段11は、対象物2と対象物2の移動先とを撮像する手段であり、本実施例ではカメラとされる。本実施例では、前述したようにカメラ11が二台配置される。なお、カメラ11により撮影される対象物2とその移動先には、基準点9および目標点10などは設定されていない。
設定手段24は、撮像手段11により得られた画像上において、対象物2に基準点9などを設定すると共に、対象物2の移動先に目標点10などを設定する手段である。基準点9および目標点10などを設定する際、それら各点は、移動先での対象物2の位置および姿勢を決定できるように設定される。典型的には、基準点9および目標点10などは、画像上において、前述した各図示例に示す位置に設定される。なお、画像上に各点を設定する方法は、従来公知の方法が用いられる。たとえば、制御手段12などに予め記憶されているテンプレート画像に基づき、基準点9および目標点10などが画像上に設定される。
制御手段12は、基準点9が目標点10へ移動するよう関節3の変位を制御する手段である。この制御手段12は、設定手段24により基準点9および目標点10などが所定の箇所に設定された画像に基づき、関節3の変位を制御する。なお、本実施例では、制御手段12は、前述した設定手段24を有している。
次に、本実施例のロボット制御装置1を用いたロボット制御方法について説明する。本実施例では、撮像工程、設定工程、および制御工程が順次に実行される。
まず、対象物2とその移動先が撮像される。これは、二台のカメラ11によりなされる。そして、撮像された画像上において、対象物2に基準点9が設定される一方、対象物2の移動先に目標点10が設定される。そして、基準点9および目標点10などが設定された画像に基づき、ロボット4が制御される。この制御は、画像に基づきロボット4を制御する従来公知の制御方法が用いられる。
また、図1および図4に示す例では、三つの基準点9および三つの目標点10が設定されたが、これに限定されるものではなく、四つの基準点9および四つの目標点10を所定の箇所に設定してもよい。図19は、図1のロボット制御装置の別の使用状態を示す模式図である。
ここでは、対象物2の下面の一方の長辺部に二つの基準点9,9が設定されると共に、対象物2の下面の一方の短辺部に二つの基準点9,9が設定される。一方、第二領域15には、前記接触時に四つの基準点9それぞれに対応する四つの目標点10が設定される。そして、制御手段12によって、四つの基準点9がそれぞれ対応する四つの目標点10へ移動するようロボット4の関節3の変位が制御される。
また、制御方法は、前述した方法に限定されるものではなく、たとえば、国際公開番号WO2013/176212号に開示される方法であってもよい。さらに、対象物2、第一領域14および第二領域15の形状は、前記図示例に限定されるものではなく、適宜に変更可能である。この際、基準点9および目標点10の位置および数は、適宜に設定される。