説明

制御システム、制御方法およびプログラム

【課題】容易かつ短期間でロボットを制御する制御システムの誤差を解消し、ロボットを高い精度で制御すること。
【解決手段】制御システムは、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングさせるマーキング制御部と、マークがマーキングされているワークテーブルの画像を撮像装置に撮像させる撮像制御部と、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットハンドを制御する制御システム、制御方法およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、物体上に取り付けられたマーク上にレーザを照射し、照射されたレーザの輝点をツールセンタポイントとして、ロボットに取り付けられた視覚センサで検出することで、視覚センサをキャリブレーションする技術が開示されている。また、特許文献2には、ロボットを起点から移動させ、ターゲット上のマークの形状がロボットに取り付けられた受光デバイスの受光面上で所定の条件を満足したときの位置および姿勢を、ロボットの終点として記憶し、複数の終点でのロボットの位置および姿勢に基づいて、ロボットの機構パラメータの誤差を求め、機構パラメータをキャリブレーションする技術が開示されている。
【特許文献1】特開平8−272425号公報
【特許文献2】特開2008−12604号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、ロボットを制御する制御システムにおいては、複数の部分に誤差が生じている場合がある。このような場合、手間、時間をかけて、それぞれの誤差を解消させる必要がある。そこで、容易かつ短期間で制御システムの誤差を解消し、ロボットを高い精度で制御することができる制御システムが求められている。
【課題を解決するための手段】
【0004】
上記課題を解決するために、本発明の第1の態様の制御システムは、ワークテーブル上を移動するロボットハンドを制御する制御システムであって、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングさせるマーキング制御部と、マークがマーキングされているワークテーブルの画像を撮像装置に撮像させる撮像制御部と、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出部とを備える。
【0005】
上記制御システムにおいて、マーキング制御部は、マーキング装置をロボットハンドとともに移動させて、所定間隔ずつ離間した複数のマークを予め規定された手順および順序に従ってマーキングさせ、対応関係算出部は、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を移動させるために用いられていた複数の制御値、および画像における複数のマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドを移動させるための制御値との対応関係を算出してもよい。
【0006】
上記制御システムにおいて、マーキング制御部は、ロボットハンドの回転軸を中心としてロボットハンドおよびマーキング装置を回転移動させて、所定角度ずつ離間した複数のマークを円周上のすくなくとも一部分にマーキングさせ、対応関係算出部は、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を回転移動させるために用いられていた複数の制御値、および画像における複数のマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドを回転移動させるための制御値との対応関係を算出してもよい。
【0007】
上記制御システムにおいて、対応関係算出部によって算出された対応関係を格納する対応関係格納部と、撮像装置が撮像する画像における位置を特定する位置特定部と、特定された位置に対応付けられているロボットハンドの制御値を対応関係格納部から抽出する抽出部と、抽出されたロボットハンドの制御値を、ロボットハンドの位置を制御するロボットハンド装置へ出力する出力部とをさらに備えてもよい。
【0008】
上記制御システムにおいて、マーキング制御部は、ロボットハンドの位置を示すレーザを、ワークテーブルに照射させてもよい。
【0009】
本発明の第2の態様の制御方法は、ワークテーブル上を移動するロボットハンドを制御する制御方法であって、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングするマーキング工程と、マークがマーキングされているワークテーブルの画像を撮像する撮像工程と、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出工程とを備える。
【0010】
本発明の第3の態様のプログラムは、ワークテーブル上を移動するロボットハンドを制御する制御装置用のプログラムであって、コンピュータを、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングさせるマーキング制御部、マークがマーキングされているワークテーブルの画像を撮像装置に撮像させる撮像制御部、および複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出部として機能させる。
【0011】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【0012】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0013】
図1は、実施形態に係る制御システム10のシステム構成の一例を示す。制御システム10は、制御装置100、マーキング装置110、撮像装置120、ロボット130を備える。なお、本実施形態の制御システム10では、制御装置100および撮像装置120のそれぞれが物理的に他の装置から独立して設けられているが、これに限らず、たとえば、制御装置100と撮像装置120とが物理的に一体化されている装置を用いてもよい。
【0014】
ロボット130は、ワークテーブル140上に載置されている対象物に対する各種ワークをおこなう。たとえば、ロボット130は、対象物をつかむ、持ち上げる、移動させるなど、対象物に対する各種ワークをおこなう。
【0015】
ロボット130は、ロボットアーム132、およびロボットハンド134を有する。また、ロボット130は、ロボットハンド制御装置の一例としてのロボットコントローラ131を有する。ロボットコントローラ131は、制御装置100から送信された制御値に基づいて、ロボットアーム132を駆動することにより、ロボットハンド134を目的の位置へ移動させる。さらに、ロボットコントローラ131は、制御装置100から送信された制御値に基づいて、ロボットハンド134の動作を制御する。
【0016】
ロボットハンド134には、マーキング装置110が固定されている。これにより、マーキング装置110は、ロボットハンド134とともにワークテーブル上を移動する。マーキング装置110は、制御装置100の制御により、ロボットハンド134の位置を示すマーク112を、ワークテーブル140へマーキングする。たとえば、マーキング装置110は、ロボットハンド134の位置を示すレーザをマーク112として、ワークテーブル140へ照射する。
【0017】
マーキング装置110は、ロボットハンド134の重心位置を示すマーク112を、ワークテーブル140へマーキングしてもよい。マーキング装置110は、ロボットハンド134に把持されていてもよい。この場合、ロボットハンド134を回転させ、マーキング装置110が照射するレーザの輝点が移動するか否かを観察することによって、ロボットハンドの傾きとマーキング装置110が照射するレーザの傾きとが一致しているか否かを確認することができる。
【0018】
なお、マーキング装置110は、照射距離に応じて輝点の形状または大きさが変化するレーザを照射してもよい。たとえば、マーキング装置110は、照射距離に応じて輝点の径の大きさが変化するレーザを照射してもよい。この場合、ワークテーブル140に照射されたレーザの輝点の径の大きさに基づいて、ワークテーブル140とロボットハンド134との距離を測定することができる。また、ワークテーブル140に照射されたレーザの輝点の径が予め定められた範囲内の大きさを有しているか否かに基づいて、ワークテーブル140とロボットハンド134とが、予め定められた距離分離間しているか否かを確認することができる。また、ワークテーブル140に照射された複数のレーザの輝点のそれぞれの径の大きさに基づいて、ロボット130固有の座標系における平面と、ワークテーブル140とが平行しているか否かを確認することができる。この場合、マーキング装置110は、複数のレーザを同時に照射してもよい。なお、マーキング装置110は、ロボットハンド134の位置を示す塗料をマーク112として、ワークテーブルへ塗布してもよい。
【0019】
ワークテーブル140の上方には、撮像装置120が設けられている。撮像装置120は、制御装置100の制御により、ワークテーブル140の画像を撮像する。撮像装置120は、撮像されたワークテーブル140の画像を制御装置100へ送信する。撮像装置120は、静止画像を撮像してもよく、動画像を撮像してもよい。
【0020】
制御装置100は、マーキング装置110、撮像装置120、およびロボット130をそれぞれ制御する。たとえば、制御装置100は、撮像装置120によって撮像された画像の内容に基づいて、当該画像内におけるロボットハンド134を移動させるべき位置を示す第1座標値を特定する。第1座標値とは、撮像装置120が撮像する画像における位置を示す値の一例であって、制御装置100固有の座標系における座標値を示す。制御装置100は、特定した第1座標値に応じて、ロボットハンド134の位置を制御する。具体的には、制御装置100は、ロボットハンド134の位置を制御するための第2座標値を、ロボットコントローラ131へ送信することにより、ロボットハンド134の位置を制御する。第2座標値とは、ロボットハンド134の位置を制御するための制御値の一例であって、ロボット130固有の座標系における座標値を示す。
【0021】
撮像装置120が撮像する画像内の位置は、制御装置100固有の座標系における座標値である第1座標値によって示される。また、ロボットハンド134の位置は、ロボット130固有の座標系における座標値である第2座標値によって示される。制御装置100は、第1座標値と、第2座標値との対応関係を予め算出しておくことにより、制御装置100固有の座標系とロボット130固有の座標系との差異を吸収する。すなわち、制御装置100は、第1座標値と、第2座標値とを、キャリブレーションする。たとえば、制御装置100は、以下の手順により、キャリブレーションをおこなう。
【0022】
まず、ロボットコントローラ131が、ワークテーブル140上の複数の位置を示す複数の第2座標値を用いて、ロボットハンド134をワークテーブル140上の複数の位置のそれぞれへ移動させる。これにより、マーキング装置110は、複数のマーク112をワークテーブル140上にマーキングする。制御装置100は、マーク112がマーキングされるごとに、マーク112がマーキングされた位置を示す第2座標値を、ロボットコントローラ131から受け取る。制御装置100は、マーク112がマーキングされるごとに、マーク112がマーキングされているワークテーブル140の画像を、撮像装置120に撮像させ、撮像された画像を撮像装置120から受け取る。
【0023】
制御装置100は、撮像された画像における複数のマーク112の第1座標値と、ロボットコントローラ131から受け取った複数のマーク112の第2座標値とに基づいて、第1座標値と、第2座標値との対応関係を算出し、対応関係格納部212に格納する。
【0024】
ロボットコントローラ131は、ロボットハンド134をワークテーブル140上の複数の位置のそれぞれへ移動させるときに用いる複数の第2座標値を、自身が備える記録装置などから取得してもよく、制御装置100から取得してもよい。すなわち、制御装置100は、ロボットハンド134の移動位置を制御する機能を有してもよい。この場合、制御装置100は、上記複数の第2座標値を、予めロボットコントローラ131へ送信しておいてもよい。他の例として、制御装置100は、ロボットコントローラ131がロボットハンド134を移動させるごとに、一つの第2座標値をロボットコントローラ131へ送信してもよい。
【0025】
制御装置100は、対象物の種類ごと、あるいはワークテーブル140の垂直方向の位置ごとに、上記対応関係を算出し、対応関係格納部212に格納してもよい。なお、ワークテーブル140の垂直線とロボット130固有の座標系におけるZ軸とは一致していなくてもよい。また、制御装置100は、定期的に上記対応関係を算出し、対応関係格納部212に格納することで、時期が異なる複数の上記対応関係を対応関係格納部212に蓄積してもよい。
【0026】
制御装置100は、実際にロボットハンド134を移動させる場合、まず、画像内におけるロボットハンド134を移動すべき位置を示す第1座標値を特定する。そして、制御装置100は、特定された第1座標値に対応付けられている第2座標値を、対応関係格納部212から抽出する。さらに、制御装置100は、抽出された第2座標値をロボットコントローラ131へ出力することにより、ロボットハンド134を移動させる。これにより、制御装置100は、ロボットハンド134の位置を高精度で制御することができる。
【0027】
図2は、制御装置100の機能構成の一例を示す。制御装置100は、マーキング制御部204、撮像制御部206、対応関係算出部208、制御値格納部210、対応関係格納部212、位置特定部214、および抽出部216、出力部218を備える。
【0028】
マーキング制御部204は、マーキング装置110をロボットハンド134とともに移動させ、マーク112をワークテーブル140にマーキングさせる。マーキング制御部204は、マーキング装置110をロボットハンド134とともに移動させることにより、所定間隔ずつ離間した複数のマーク112を予め規定された手順および順序に従ってマーキングさせてもよい。たとえば、マーキング制御部204は、複数のマーク112を格子状にマーキングさせてもよい。マーキング制御部204は、複数のマーク112を格子状にマーキングさせなくてもよく、たとえば、複数のマーク112を直線状にマーキングさせてもよい。この場合、マーキング制御部204は、少なくとも2つのマーク112をマーキングさせればよい。
【0029】
ロボットハンド134の移動位置をロボットコントローラ131が制御する場合、マーキング制御部204は、ロボットコントローラ131に対してロボットハンド134の移動を指示するための信号を送信することで、ロボットコントローラ131の制御により、マーキング装置110をロボットハンド134とともに移動させ、マーク112をワークテーブル140にマーキングさせてもよい。一方、ロボットハンド134の移動位置を制御装置100が制御する場合、マーキング制御部204は、ロボットコントローラ131に対して第2座標値を直接送信することで、マーキング装置110をロボットハンド134とともに移動させてもよい。
【0030】
撮像制御部206は、マーク112がマーキングされているワークテーブル140の画像を撮像装置120に撮像させる。具体的には、撮像制御部206は、マーク112がマーキングされているワークテーブル140の画像を撮像させるための制御信号を、撮像装置120へ送信する。
【0031】
撮像制御部206は、マーク112がマーキングされるごとに、ワークテーブル140の画像を撮像装置120に撮像させる。撮像制御部206は、全てのマーク112がマーキングされた後に、ワークテーブル140の画像を撮像装置120に撮像させてもよい。撮像制御部206は、全てのマーク112がマーキングされるまで、ワークテーブル140の画像を撮像装置120に撮像させ続けてもよい。
【0032】
制御値格納部210は、複数のマーク112のそれぞれがマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2座標値を格納する。具体的には、制御値格納部210は、ロボットコントローラ131がロボットハンド134を複数回移動させるために用いた複数の第2座標値を格納する。また、制御値格納部210は、撮像装置120によって撮像された画像を格納する。
【0033】
制御値格納部210は、複数の第2座標値を予め取得しておいてもよく、ロボットコントローラ131がロボットハンド134を移動させるごとに、第2座標値を、ロボットコントローラ131から受け取ってもよい。ロボットコントローラ131が一定の間隔でロボットハンド134を移動させる場合、制御値格納部210は、起点の第2座標値および一定の間隔値に基づいて、複数の第2座標値を算出してもよい。この場合、制御値格納部210は、起点の第2座標値を、予め取得しておいてもよく、ロボットコントローラ131が起点の第2座標値を確定した後に、ロボットコントローラ131から受け取ってもよい。同様に、制御値格納部210は、一定の間隔を、予め取得しておいてもよく、ロボットコントローラ131が一定の間隔を確定した後に、ロボットコントローラ131から受け取ってもよい。
【0034】
対応関係算出部208は、複数のマーク112のそれぞれがマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2座標値、および撮像装置120によって撮像された画像における複数のマーク112の位置を示す複数の第1座標値に基づいて、第1座標値と第2座標値との対応関係を算出する。
【0035】
対応関係算出部208は、マーク112の第1座標値と、マーク112の第2座標値とを用いた非線形補間処理により、第1座標値に対応付ける、第2座標値を算出してもよい。
【0036】
たとえば、対応関係算出部208は、(I,I)を第1座標値とし、(C,C)を第2座標値とした場合、多項式の変換によって実行される対応付けをつぎの二つの式によって定義する。
【0037】
【数1】

【0038】
上記数式において、aijとbijは多項式係数である。nは多項式変換の次数である。たとえば、3次多項式の形式は次の通りとなる。
【0039】
【数2】

【0040】
次数nの多項式を指定すると、多項式変換の係数の数は(n+1)*(n+2)である。したがって、3次多項式の場合、変換を定義する係数の数は20となる。この場合、制御装置100は、マーク112を20の位置にマーキングする。制御装置100は、複数のマーク112の第1座標値と、複数のマーク112の第1座標値に対応する複数のマーク112の第2座標値とに基づいて、第1座標値に対応付ける、第2座標値を算出することができる。
【0041】
なお、対応関係算出部208は、複数のマーク112の第1座標値と、複数のマーク112の第1座標値に対応する複数のマーク112の第2座標値とに基づいて、座標空間の移動、回転、スケーリングなどの線形補間処理により、第1座標値に対応付ける、第2座標値を算出してもよい。たとえば、ロボットハンド134の一方向の動きについて、第1座標値との第2座標値との対応付けを重点的におこないたい場合、制御装置100は、線形補間処理により上記対応付けをおこなうことが好ましい。この場合、マーキング制御部204は、少なくとも2つのマーク112をマーキングさせればよい。
【0042】
対応関係格納部212は、対応関係算出部208によって算出された対応関係を格納する。具体的には、対応関係格納部212は、第1座標値と第2座標値とを対応付けて格納する。この場合、対応関係格納部212は、第2座標値の代わりに、第1座標値と第2座標値との差分、または第2座標値の算出式を格納してもよい。
【0043】
対応関係格納部212は、対応関係算出部208によって算出された対応関係を、制御装置100が有するハードディスクなどの記録装置に格納する。対応関係格納部212は、対応関係算出部208によって算出された対応関係を、外部の情報処理装置が有する記録装置に格納してもよい。
【0044】
位置特定部214は、第1座標値を特定する。たとえば、位置特定部214は、撮像装置120によって撮像された画像に対する画像認識処理によって第1座標値を特定する。
【0045】
抽出部216は、位置特定部214によって特定された第1座標値に対応付けられている、第2座標値を対応関係格納部212から抽出する。出力部218は、抽出部216によって抽出された第2座標値を、ロボットコントローラ131へ出力する。
【0046】
図3は、制御システム10による処理のフローの一例を示す。まず、ロボットコントローラ131が、第2座標値を用いて、ロボットハンド134を初期の位置に移動させる(S302)。つぎに、マーキング制御部204が、ワークテーブル上へのマーク112を、マーキング装置110にマーキングさせる(S304)。
【0047】
つぎに、制御値格納部210が、S302でロボットコントローラ131が用いた第2座標値を格納する(S306)。そして、撮像制御部206が、マーク112がマーキングされているワークテーブル140の画像を、撮像装置120に撮像させる(S308)。さらに、制御値格納部210が、S308で撮像された画像を格納する(S310)。
【0048】
つぎに、制御装置100は、予定されている全ての位置のマーク112の画像が撮像されたか否かを判断する(S312)。S310において、予定されている全ての位置のマーク112の画像が撮像されたと判断した場合(S312:Yes)は、制御システム10は、処理をS316へ進める。一方、S312において、予定されている全ての位置のマーク112の画像が撮像されていないと判断した場合(S312:No)は、ロボットコントローラ131が、第2座標値を用いて、ロボットハンド134を次の位置に移動させて(S314)、制御システム10は、処理をS304へ戻す。
【0049】
S316においては、対応関係算出部208が、S306で格納された物理制御値、S310で格納された画像に基づいて、第1座標値と第2座標値との対応関係を算出する。そして、対応関係格納部212が、S316で算出された対応関係を格納して(S318)、制御システム10は、処理を終了する。
【0050】
図4は、実施形態に係る制御システム10のシステム構成の他の一例を示す。図4に示す制御システム10は、さらに、ロボットハンド134を目的の位置へ回転移動させることができる点で、図1に示した制御システム10と異なる。以下、図1に示した制御システム10のシステム構成と異なる部分を説明する。
【0051】
制御装置100は、マーキング装置110、撮像装置120、およびロボット130をそれぞれ制御する。たとえば、制御装置100は、撮像装置120によって撮像された画像の内容に基づいて、当該画像内におけるロボットハンド134を移動させるべき位置を示す第1座標値を特定する。
【0052】
また、制御装置100は、撮像装置120によって撮像された画像の内容に基づいて、当該画像内におけるロボットハンド134を向かせるべき方向を示す第1角度を特定する。第1角度とは、撮像装置120が撮像する画像における方向を示す値の一例であって、制御装置100固有の座標系における角度を示す。
【0053】
制御装置100は、特定した第1座標値および第1角度に応じて、ロボットハンド134の位置および向きを制御する。具体的には、制御装置100は、ロボットハンド134の位置および向きを制御するための第2座標値および第2角度を、ロボットコントローラ131へ送信することにより、ロボットハンド134の位置および向きを制御する。第2角度とは、ロボットハンド134の向きを制御するための制御値の一例であって、ロボット130固有の座標系における角度を示す。
【0054】
撮像装置120が撮像する画像内の位置は、制御装置100固有の座標系における座標値である第1座標値によって示される。撮像装置120が撮像する画像内の向きは、制御装置100固有の座標系における角度である第1角度によって示される。一方、ロボットハンド134の位置は、ロボット130固有の座標系における座標値である第2座標値によって示される。また、ロボットハンド134の向きは、ロボット130固有の座標系における角度である第2角度によって示される。
【0055】
制御装置100は、第1座標値と、第1角度と、第2座標値と、第2角度との対応関係を予め算出しておくことにより、制御装置100固有の座標系とロボット130固有の座標系との差異を吸収する。すなわち、制御装置100は、第1座標値と、第1角度と、第2座標値と、第2角度とを、キャリブレーションする。たとえば、制御装置100は、以下の手順により、キャリブレーションをおこなう。
【0056】
まず、ロボットコントローラ131が、ワークテーブル140上の複数の位置を示す複数の第2座標値を用いて、ロボットハンド134をワークテーブル140上の複数の位置のそれぞれへ移動させる。これにより、マーキング装置110は、複数のマーク112をワークテーブル140上にマーキングする。制御装置100は、マーク112がマーキングされるごとに、第2座標値を、ロボットコントローラ131から受け取る。制御装置100は、マーク112がマーキングされるごとに、マーク112がマーキングされているワークテーブル140の画像を、撮像装置120に撮像させ、撮像された画像を撮像装置120から受け取る。
【0057】
つぎに、ロボットコントローラ131が、ワークテーブル140上の複数の方向を示す複数の第2角度を用いて、ロボットハンド134をワークテーブル140上の複数の位置のそれぞれへ回転移動させる。これにより、マーキング装置110は、複数のマーク112をワークテーブル140上にマーキングする。制御装置100は、マーク112がマーキングされるごとに、第2角度を、ロボットコントローラ131から受け取る。制御装置100は、マーク112がマーキングされるごとに、マーク112の第2座標値を、ロボットコントローラ131からさらに受け取ってもよい。制御装置100は、マーク112がマーキングされるごとに、マーク112がマーキングされているワークテーブル140の画像を、撮像装置120に撮像させ、撮像された画像を撮像装置120から受け取る。
【0058】
制御装置100は、撮像された画像における複数のマーク112の第1座標値と、ロボットコントローラ131から受け取った複数の第2角度とに基づいて、第1座標値と、第1角度と、第2座標値と、第2角度との対応関係を算出し、対応関係格納部212に格納する。
【0059】
ロボットコントローラ131は、ロボットハンド134をワークテーブル140上の複数の位置のそれぞれへ回転移動させるときに用いる複数の第2角度を、自身が備える記録装置などから取得してもよく、制御装置100から取得してもよい。すなわち、制御装置100は、ロボットハンド134の移動位置を制御する機能を有してもよい。この場合、制御装置100は、上記複数の第2角度を、予めロボットコントローラ131へ送信しておいてもよい。他の例として、制御装置100は、ロボットコントローラ131がロボットハンド134を移動させるごとに、一つの第2角度をロボットコントローラ131へ送信してもよい。ロボットコントローラ131は、ロボットハンド134を一度だけ回転移動させてもよい。この場合、制御装置100は、ロボットコントローラ131がロボットハンド134を一度だけ回転移動させたときに用いた第2角度に基づいて、第1座標値と、第1角度と、第2座標値と、第2角度との対応関係を算出してもよい。
【0060】
制御装置100は、実際にロボットハンド134を移動させる場合、まず、画像内におけるロボットハンド134を移動すべき位置を示す第1座標値を特定する。つぎに、画像内におけるロボットハンド134を向けさせるべき方向を示す第1角度を特定する。そして、制御装置100は、特定された第1座標値と第1角度との組みに対応付けられている第2座標値および第2角度を、対応関係格納部212から抽出する。さらに制御装置100は、抽出された第2座標値および第2角度を用いて、ロボットハンド134を移動させる。これにより、制御装置100は、ロボットハンド134の位置および向きを高精度で制御することができる。
【0061】
続いて、制御装置100の機能構成の他の一例を説明する。以下、図2に示した制御装置100の機能構成と異なる部分を説明する。
【0062】
マーキング制御部204は、さらに、ロボットハンド134の回転軸136を中心としてロボットハンド134およびマーキング装置110を回転移動させて、所定角度ずつ離間した複数のマーク112をマーキング装置110が描く円周上のすくなくとも一部分にマーキングさせる。
【0063】
ロボットハンド134の移動位置をロボットコントローラ131が制御する場合、マーキング制御部204は、ロボットコントローラ131に対してロボットハンド134の回転移動を指示するための信号を送信することで、ロボットコントローラ131の制御により、マーキング装置110をロボットハンド134とともに回転移動させ、マーク112をワークテーブル140にマーキングさせてもよい。一方、ロボットハンド134の移動位置を制御装置100が制御する場合、マーキング制御部204は、ロボットコントローラ131に対して第2角度を直接送信することで、マーキング装置110をロボットハンド134とともに回転移動させてもよい。
【0064】
制御値格納部210は、複数のマーク112のそれぞれがマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2角度を格納する。具体的には、制御値格納部210は、ロボットコントローラ131がロボットハンド134を複数回回転移動させるために用いた複数の第2角度を格納する。また、制御値格納部210は、撮像装置120によって撮像された画像を格納する。
【0065】
制御値格納部210は、複数の第2角度を予め取得しておいてもよく、ロボットコントローラ131がロボットハンド134を移動させるごとに、第2角度を、ロボットコントローラ131から受け取ってもよい。ロボットコントローラ131が一定の角度でロボットハンド134を回転移動させる場合、制御値格納部210は、起点の第2角度および一定の角度に基づいて、複数の第2角度を算出してもよい。この場合、制御値格納部210は、起点の第2角度を、予め取得しておいてもよく、ロボットコントローラ131が起点の第2角度を確定した後に、ロボットコントローラ131から受け取ってもよい。同様に、制御値格納部210は、一定の角度を、予め取得しておいてもよく、ロボットコントローラ131が一定の角度を確定した後に、ロボットコントローラ131から受け取ってもよい。
【0066】
対応関係算出部208は、複数のマーク112のそれぞれがマーキングされたときにロボットハンド134の位置を回転移動させるために用いられていた複数の第2角度、および撮像装置120によって撮像されたマーク112がマーキングされているワークテーブル140の画像における複数のマーク112の第1座標値に基づいて、第1座標値と、第1角度と、第2座標値と、第2角度との対応関係を算出する。
【0067】
対応関係格納部212は、対応関係算出部208によって算出された対応関係を格納する。具体的には、対応関係格納部212は、第1座標値と、第1角度と、第2座標値と、第2角度とを対応付けて格納する。対応関係格納部212は、第2座標値の代わりに、第2座標値と第1座標値との差分を、または第2座標値の算出式を格納してもよい。また、対応関係格納部212は、第2角度の代わりに、第2角度と第1角度との差分、または第2角度の算出式を格納してもよい。
【0068】
位置特定部214は、第1座標値および第1角度を特定する。抽出部216は、位置特定部214によって特定された第1座標値と第1角度との組みに対応付けられている、第2座標値および第2角度を、対応関係格納部212から抽出する。出力部218は、抽出部216によって抽出された第2座標値および第2角度を、ロボットコントローラ131へ出力する。
【0069】
図5は、制御システム10による処理のフローの他の一例を示す。まず、ロボットコントローラ131が、第2座標値を用いて、ロボットハンド134を初期の位置に移動させる(S502)。つぎに、マーキング制御部204が、ワークテーブル上へのマーク112を、マーキング装置110にマーキングさせる(S504)。
【0070】
つぎに、制御値格納部210が、S502でロボットコントローラ131が用いた第2座標値を格納する(S506)。そして、撮像制御部206が、マーク112がマーキングされているワークテーブル140の画像を、撮像装置120に撮像させる(S508)。さらに、制御値格納部210が、S508で撮像された画像を格納する(S510)。
【0071】
つぎに、制御装置100は、予定されている全ての位置のマーク112の画像が撮像されたか否かを判断する(S512)。S512において、予定されている全ての位置のマーク112の画像が撮像されたと判断した場合(S512:Yes)は、制御システム10は、処理をS516へ進める。一方、S512において、予定されている全ての位置のマーク112の画像が撮像されていないと判断した場合(S512:No)は、ロボットコントローラ131が、第2座標値を用いて、ロボットハンド134を次の位置に移動させて(S514)、制御装置100が、処理をS504へ戻す。
【0072】
S516においては、ロボットコントローラ131が、第2角度を用いて、ロボットハンド134を次の位置に回転移動させる(S516)。つぎに、マーキング制御部204が、ワークテーブル上へのマーク112を、マーキング装置110にマーキングさせる(S520)。つぎに、制御値格納部210が、S516でロボットコントローラ131が用いた第2角度を格納する(S520)。そして、撮像制御部206が、マーク112がマーキングされているワークテーブル140を、撮像装置120に撮像させる(S522)。さらに、制御値格納部210が、S522で撮像された画像を格納する(S532)。
【0073】
つぎに、制御装置100は、予定されている全ての角度のマーク112の画像が撮像されたか否かを判断する(S526)。S526において、予定されている全ての角度のマーク112の画像が撮像されたと判断した場合(S526:Yes)は、制御システム10は、処理をS528へ進める。一方、S526において、予定されている全ての角度のマーク112の画像が撮像されていないと判断した場合(S526:No)は、制御システム10は、処理をS516へ戻す。
【0074】
S528においては、対応関係算出部208が、S508およびS522で撮像された画像と、S506で格納された第2座標値と、S520で格納された第2角度とに基づいて、第1座標値と、第1角度と、第2座標値と、第2角度との対応関係を算出する。そして、対応関係格納部212が、S528で算出された対応関係を格納して(S530)、制御システム10は、処理を終了する。
【0075】
このように、本実施形態に係る制御システム10によれば、第1座標値と第2座標値との対応関係を算出する構成としたので、システム系のいずれかの部分に誤差が生じている場合であっても、この部分的な誤差を解消させることなく、容易かつ短期間で制御システム10の全体的な誤差を解消し、ワークテーブル140上におけるロボットハンドの位置を高い精度で制御することができる。
【0076】
また、本実施形態に係る制御システム10によれば、複数のマーク112をマーキングし、複数のマーク112の位置に基づいて、第1座標値と第2座標値との対応関係を算出する構成としたので、ワークテーブル140上における位置ごとに誤差を解消し、ワークテーブル140上のいずれにロボットハンド134を移動させる場合であっても、ロボットハンド134を高い精度で目的の位置に移動させることができる。
【0077】
また、本実施形態に係る制御システム10によれば、複数のマーク112を円周上の少なくとも一部分にマーキングし、複数のマーク112の位置に基づいて、第1座標値と、第1角度と、第2座標値と、第2角度との対応関係を算出する構成としたので、ワークテーブル140上における位置ごとおよび方向ごとに誤差を解消し、ワークテーブル140上のいずれにロボットハンド134を移動させる場合であっても、ロボットハンド134を高い精度で目的の位置に移動させることができるうえ、ワークテーブル140上のいずれの方向にロボットハンド134を向けさせる場合であっても、ロボットハンド134を高い精度で目的の方向に向けさせることができる。
【0078】
また、本実施形態に係る制御システム10によれば、マーキング装置110をロボットハンド134に取り付ける構成としたので、マーク112の位置からのロボットハンド134の位置を特定することが容易かつ確実であり、より高い精度で、制御システム10の全体的な誤差を解消することができる。
【0079】
また、本実施形態に係る制御システム10によれば、ロボットハンド134の位置を示すレーザをワークテーブル140に照射することで、ワークテーブル140上にマーク112をマーキングする構成としたので、物理的な接触によるマーク112の位置ズレを生じさせることがなく、より高い精度で、制御システム10の全体的な誤差を解消することができる。
【0080】
制御装置100は、対象物の斜面に対してロボットハンド134を平行に移動させながら、複数のマーク112を対象物の斜面にマーキングさせることにより、対象物の斜面の位置に関する第1座標値と第2座標値とを、キャリブレーションしてもよい。たとえば、マーキング制御部204が、ロボットハンド134と対象物の斜面との距離および角度を一定に保ちながら、複数のマーク112を対象物の斜面にマーキングさせる。そして、撮像制御部206が、複数のマーク112がマーキングされている対象物の斜面の画像を撮像装置120に撮像させる。さらに、制御値格納部210が、複数のマーク112のそれぞれが対象物の斜面にマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2座標値を格納する。そして、対応関係算出部208が、複数のマーク112のそれぞれが対象物の斜面にマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2座標値、および撮像装置120によって撮像された画像における複数のマーク112の位置を示す複数の第1座標値に基づいて、第1座標値と第2座標値との対応関係を算出する。これにより、制御システム10は、ロボットハンド134を対象物の斜面に対して平行に移動させる場合であっても、対象物の斜面に対するロボットハンド134の位置を高い精度で制御することができる。
【0081】
制御装置100は、複数のマーク112をワークテーブル140とは異なる第2の作業面にマーキングさせることにより、第2の作業面に関する第1座標値と第2座標値とを、キャリブレーションしてもよい。たとえば、マーキング制御部204が、複数のマーク112を第2の作業面にマーキングさせる。そして、撮像制御部206が、複数のマーク112がマーキングされている第2の作業面の画像を撮像装置120に撮像させる。さらに、制御値格納部210が、複数のマーク112のそれぞれが第2の作業面にマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2座標値を格納する。そして、対応関係算出部208が、複数のマーク112のそれぞれが第2の作業面にマーキングされたときにロボットハンド134の位置を制御するために用いられていた複数の第2座標値、および撮像装置120によって撮像された画像における複数のマーク112の位置を示す複数の第1座標値に基づいて、第1座標値と第2座標値との対応関係を算出する。これにより、制御システム10は、ロボットハンド134を第2の作業面に移動させる場合であっても、第2の作業面に対するロボットハンド134の位置を高い精度で制御することができる。なお、第2の作業面は、対象物の移動先の作業面であってもよく、斜面であってもよい。
【0082】
制御装置100が複数の撮像装置120を備える場合、撮像制御部206は、マーク112がマーキングされているワークテーブル140の画像を複数の撮像装置120のそれぞれに撮像させてもよい。この場合、制御装置100は、複数の撮像装置120のそれぞれによって撮像された、撮像方向が異なる複数のワークテーブル140の画像に基づいて、ワークテーブル140上における高さ方向の距離を求めてもよい。ロボットコントローラ131は、求められた高さ方向の距離、および自ら保有するワークテーブル140の高さ方向の座標値に基づいて、ロボットハンド134の高さ方向の位置を制御してもよい。
【0083】
図6は、制御装置100のハードウェア構成の一例を示す。制御装置100は、ホスト・コントローラ1582により相互に接続されるCPU1505、RAM1520、グラフィック・コントローラ1575、および表示デバイス1580を備える。また、制御装置100は、I/O(入出力)コントローラ1584によりホスト・コントローラ1582に接続される通信I/F1530、ROM1510、ハードディスクドライブ1540、および外部メモリドライブ1560を備える。
【0084】
CPU1505は、ROM1510、RAM1520、またはハードディスクドライブ1540に格納されたプログラムに基づいて動作して、各部を制御する。グラフィック・コントローラ1575は、RAM1520等から取得した画像データを、表示デバイス1580上に表示させる。
【0085】
I/O(入出力)コントローラ1584は、マウス、キーボードなどの入出力デバイスをさらに接続する。通信I/F1530は、ネットワークを介して外部から受け取ったプログラムまたはデータを、ROM1510、RAM1520、またはハードディスクドライブ1540に提供する。ROM1510は、制御装置100の起動時にCPU1505が実行するブート・プログラム、制御装置100のハードウェアに依存するプログラム等を格納する。
【0086】
ハードディスクドライブ1540は、CPU1505が使用するプログラムおよびデータを格納する。外部メモリドライブ1560は、外部メモリ1595から読み取ったプログラムまたはデータを、ROM1510、RAM1520、またはハードディスクドライブ1540に提供する。
【0087】
CPU1505は、ROM1510、RAM1520、またはハードディスクドライブ1540に格納されているプログラムを実行することにより、制御装置100を、マーキング制御部204、撮像制御部206、対応関係算出部208、制御値格納部210、対応関係格納部212、位置特定部214、抽出部216、および出力部218として機能させる。CPU1505により実行されるプログラムは、外部メモリ1595等の記録媒体に格納されて提供されてもよく、外部の情報処理装置からネットワークを介して提供されてもよい。
【0088】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【0089】
【図1】実施形態に係る制御システム10のシステム構成の一例を示す。
【図2】制御装置100の機能構成の一例を示す。
【図3】制御システム10による処理のフローの一例を示す。
【図4】実施形態に係る制御システム10のシステム構成の他の一例を示す。
【図5】制御システム10による処理のフローの他の一例を示す。
【図6】制御装置100のハードウェア構成の一例を示す。
【符号の説明】
【0090】
10 制御システム
100 制御装置
110 マーキング装置
112 マーク
120 撮像装置
130 ロボット
131 ロボットコントローラ
132 ロボットアーム
134 ロボットハンド
136 回転軸
140 ワークテーブル
204 マーキング制御部
206 撮像制御部
208 対応関係算出部
210 制御値格納部
212 対応関係格納部
214 位置特定部
216 抽出部
218 出力部
1505 CPU
1510 ROM
1520 RAM
1530 通信I/F
1540 ハードディスクドライブ
1560 外部メモリドライブ
1575 グラフィック・コントローラ
1580 表示デバイス
1582 ホスト・コントローラ
1584 I/Oコントローラ
1595 外部メモリ

【特許請求の範囲】
【請求項1】
ワークテーブル上を移動するロボットハンドを制御する制御システムであって、
前記ワークテーブルにマーキングするマーキング装置を前記ロボットハンドとともに移動させ、前記ロボットハンドの位置を示すマークを前記ワークテーブルにマーキングさせるマーキング制御部と、
前記マークがマーキングされている前記ワークテーブルの画像を撮像装置に撮像させる撮像制御部と、
複数の前記マークのそれぞれがマーキングされたときに前記ロボットハンドの位置を制御するために用いられていた複数の制御値、および前記画像における前記マークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドの前記制御値との対応関係を算出する対応関係算出部と
を備える制御システム。
【請求項2】
前記マーキング制御部は、前記マーキング装置を前記ロボットハンドとともに移動させて、所定間隔ずつ離間した前記複数のマークを予め規定された手順および順序に従ってマーキングさせ、
前記対応関係算出部は、前記複数のマークのそれぞれがマーキングされたときに前記ロボットハンドの位置を移動させるために用いられていた前記複数の制御値、および前記画像における前記複数のマークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドを移動させるための前記制御値との対応関係を算出する
請求項1に記載の制御システム。
【請求項3】
前記マーキング制御部は、前記ロボットハンドの回転軸を中心として前記ロボットハンドおよび前記マーキング装置を回転移動させて、所定角度ずつ離間した前記複数のマークを円周上のすくなくとも一部分にマーキングさせ、
前記対応関係算出部は、前記複数のマークのそれぞれがマーキングされたときに前記ロボットハンドの位置を回転移動させるために用いられていた前記複数の制御値、および前記画像における前記複数のマークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドを回転移動させるための前記制御値との対応関係を算出する
請求項1または2に記載の制御システム。
【請求項4】
前記対応関係算出部によって算出された前記対応関係を格納する対応関係格納部と、
前記撮像装置が撮像する画像における位置を特定する位置特定部と、
特定された前記位置に対応付けられている前記ロボットハンドの前記制御値を前記対応関係格納部から抽出する抽出部と、
抽出された前記ロボットハンドの前記制御値を、前記ロボットハンドの位置を制御するロボットハンド制御装置へ出力する出力部と
をさらに備える請求項1乃至請求項3のいずれかに記載の制御システム。
【請求項5】
前記マーキング制御部は、前記ロボットハンドの位置を示すレーザを、前記ワークテーブルに照射させる
請求項1乃至請求項4のいずれかに記載の制御システム。
【請求項6】
ワークテーブル上を移動するロボットハンドを制御する制御方法であって、
前記ワークテーブルにマーキングするマーキング装置を前記ロボットハンドとともに移動させ、前記ロボットハンドの位置を示すマークを前記ワークテーブルにマーキングするマーキング工程と、
前記マークがマーキングされている前記ワークテーブルの画像を撮像する撮像工程と、
複数の前記マークのそれぞれがマーキングされたときに前記ロボットハンドの位置を制御するために用いられていた複数の制御値、および前記画像における前記マークの位置に基づいて、前記撮像工程で撮像する画像内の位置と前記ロボットハンドの前記制御値との対応関係を算出する対応関係算出工程と
を備える制御方法。
【請求項7】
ワークテーブル上を移動するロボットハンドを制御する制御装置用のプログラムであって、コンピュータを、
前記ワークテーブルにマーキングするマーキング装置を前記ロボットハンドとともに移動させ、前記ロボットハンドの位置を示すマークを前記ワークテーブルにマーキングさせるマーキング制御部、
前記マークがマーキングされている前記ワークテーブルの画像を撮像装置に撮像させる撮像制御部、および
複数の前記マークのそれぞれがマーキングされたときに前記ロボットハンドの位置を制御するために用いられていた複数の制御値、および前記画像における前記マークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドの前記制御値との対応関係を算出する対応関係算出部
として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−64200(P2010−64200A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−233676(P2008−233676)
【出願日】平成20年9月11日(2008.9.11)
【出願人】(504382671)コグネックス・コーポレイション (16)
【Fターム(参考)】