(57)【要約】【課題】容易かつ短期間でロボットを制御する制御システムの誤差を解消し、ロボットを高い精度で制御すること。【解決手段】制御システムは、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングさせるマーキング制御部と、マークがマーキングされているワークテーブルの画像を撮像装置に撮像させる撮像制御部と、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出部とを備える。【選択図】図２
2010064200.tif 000002
【特許請求の範囲】
【請求項１】
ワークテーブル上を移動するロボットハンドを制御する制御システムであって、
前記ワークテーブルにマーキングするマーキング装置を前記ロボットハンドとともに移動させ、前記ロボットハンドの位置を示すマークを前記ワークテーブルにマーキングさせるマーキング制御部と、
前記マークがマーキングされている前記ワークテーブルの画像を撮像装置に撮像させる撮像制御部と、
複数の前記マークのそれぞれがマーキングされたときに前記ロボットハンドの位置を制御するために用いられていた複数の制御値、および前記画像における前記マークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドの前記制御値との対応関係を算出する対応関係算出部と
を備える制御システム。
【請求項２】
前記マーキング制御部は、前記マーキング装置を前記ロボットハンドとともに移動させて、所定間隔ずつ離間した前記複数のマークを予め規定された手順および順序に従ってマーキングさせ、
前記対応関係算出部は、前記複数のマークのそれぞれがマーキングされたときに前記ロボットハンドの位置を移動させるために用いられていた前記複数の制御値、および前記画像における前記複数のマークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドを移動させるための前記制御値との対応関係を算出する
請求項１に記載の制御システム。
【請求項３】
前記マーキング制御部は、前記ロボットハンドの回転軸を中心として前記ロボットハンドおよび前記マーキング装置を回転移動させて、所定角度ずつ離間した前記複数のマークを円周上のすくなくとも一部分にマーキングさせ、
前記対応関係算出部は、前記複数のマークのそれぞれがマーキングされたときに前記ロボットハンドの位置を回転移動させるために用いられていた前記複数の制御値、および前記画像における前記複数のマークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドを回転移動させるための前記制御値との対応関係を算出する
請求項１または２に記載の制御システム。
【請求項４】
前記対応関係算出部によって算出された前記対応関係を格納する対応関係格納部と、
前記撮像装置が撮像する画像における位置を特定する位置特定部と、
特定された前記位置に対応付けられている前記ロボットハンドの前記制御値を前記対応関係格納部から抽出する抽出部と、
抽出された前記ロボットハンドの前記制御値を、前記ロボットハンドの位置を制御するロボットハンド制御装置へ出力する出力部と
をさらに備える請求項１乃至請求項３のいずれかに記載の制御システム。
【請求項５】
前記マーキング制御部は、前記ロボットハンドの位置を示すレーザを、前記ワークテーブルに照射させる
請求項１乃至請求項４のいずれかに記載の制御システム。
【請求項６】
ワークテーブル上を移動するロボットハンドを制御する制御方法であって、
前記ワークテーブルにマーキングするマーキング装置を前記ロボットハンドとともに移動させ、前記ロボットハンドの位置を示すマークを前記ワークテーブルにマーキングするマーキング工程と、
前記マークがマーキングされている前記ワークテーブルの画像を撮像する撮像工程と、
複数の前記マークのそれぞれがマーキングされたときに前記ロボットハンドの位置を制御するために用いられていた複数の制御値、および前記画像における前記マークの位置に基づいて、前記撮像工程で撮像する画像内の位置と前記ロボットハンドの前記制御値との対応関係を算出する対応関係算出工程と
を備える制御方法。
【請求項７】
ワークテーブル上を移動するロボットハンドを制御する制御装置用のプログラムであって、コンピュータを、
前記ワークテーブルにマーキングするマーキング装置を前記ロボットハンドとともに移動させ、前記ロボットハンドの位置を示すマークを前記ワークテーブルにマーキングさせるマーキング制御部、
前記マークがマーキングされている前記ワークテーブルの画像を撮像装置に撮像させる撮像制御部、および
複数の前記マークのそれぞれがマーキングされたときに前記ロボットハンドの位置を制御するために用いられていた複数の制御値、および前記画像における前記マークの位置に基づいて、前記撮像装置が撮像する画像内の位置と前記ロボットハンドの前記制御値との対応関係を算出する対応関係算出部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットハンドを制御する制御システム、制御方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、物体上に取り付けられたマーク上にレーザを照射し、照射されたレーザの輝点をツールセンタポイントとして、ロボットに取り付けられた視覚センサで検出することで、視覚センサをキャリブレーションする技術が開示されている。また、特許文献２には、ロボットを起点から移動させ、ターゲット上のマークの形状がロボットに取り付けられた受光デバイスの受光面上で所定の条件を満足したときの位置および姿勢を、ロボットの終点として記憶し、複数の終点でのロボットの位置および姿勢に基づいて、ロボットの機構パラメータの誤差を求め、機構パラメータをキャリブレーションする技術が開示されている。
【特許文献１】特開平８−２７２４２５号公報
【特許文献２】特開２００８−１２６０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ロボットを制御する制御システムにおいては、複数の部分に誤差が生じている場合がある。このような場合、手間、時間をかけて、それぞれの誤差を解消させる必要がある。そこで、容易かつ短期間で制御システムの誤差を解消し、ロボットを高い精度で制御することができる制御システムが求められている。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の第１の態様の制御システムは、ワークテーブル上を移動するロボットハンドを制御する制御システムであって、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングさせるマーキング制御部と、マークがマーキングされているワークテーブルの画像を撮像装置に撮像させる撮像制御部と、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出部とを備える。
【０００５】
上記制御システムにおいて、マーキング制御部は、マーキング装置をロボットハンドとともに移動させて、所定間隔ずつ離間した複数のマークを予め規定された手順および順序に従ってマーキングさせ、対応関係算出部は、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を移動させるために用いられていた複数の制御値、および画像における複数のマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドを移動させるための制御値との対応関係を算出してもよい。
【０００６】
上記制御システムにおいて、マーキング制御部は、ロボットハンドの回転軸を中心としてロボットハンドおよびマーキング装置を回転移動させて、所定角度ずつ離間した複数のマークを円周上のすくなくとも一部分にマーキングさせ、対応関係算出部は、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を回転移動させるために用いられていた複数の制御値、および画像における複数のマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドを回転移動させるための制御値との対応関係を算出してもよい。
【０００７】
上記制御システムにおいて、対応関係算出部によって算出された対応関係を格納する対応関係格納部と、撮像装置が撮像する画像における位置を特定する位置特定部と、特定された位置に対応付けられているロボットハンドの制御値を対応関係格納部から抽出する抽出部と、抽出されたロボットハンドの制御値を、ロボットハンドの位置を制御するロボットハンド装置へ出力する出力部とをさらに備えてもよい。
【０００８】
上記制御システムにおいて、マーキング制御部は、ロボットハンドの位置を示すレーザを、ワークテーブルに照射させてもよい。
【０００９】
本発明の第２の態様の制御方法は、ワークテーブル上を移動するロボットハンドを制御する制御方法であって、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングするマーキング工程と、マークがマーキングされているワークテーブルの画像を撮像する撮像工程と、複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出工程とを備える。
【００１０】
本発明の第３の態様のプログラムは、ワークテーブル上を移動するロボットハンドを制御する制御装置用のプログラムであって、コンピュータを、ワークテーブルにマーキングするマーキング装置をロボットハンドとともに移動させ、ロボットハンドの位置を示すマークをワークテーブルにマーキングさせるマーキング制御部、マークがマーキングされているワークテーブルの画像を撮像装置に撮像させる撮像制御部、および複数のマークのそれぞれがマーキングされたときにロボットハンドの位置を制御するために用いられていた複数の制御値、および画像におけるマークの位置に基づいて、撮像装置が撮像する画像内の位置とロボットハンドの制御値との対応関係を算出する対応関係算出部として機能させる。
【００１１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、実施形態に係る制御システム１０のシステム構成の一例を示す。制御システム１０は、制御装置１００、マーキング装置１１０、撮像装置１２０、ロボット１３０を備える。なお、本実施形態の制御システム１０では、制御装置１００および撮像装置１２０のそれぞれが物理的に他の装置から独立して設けられているが、これに限らず、たとえば、制御装置１００と撮像装置１２０とが物理的に一体化されている装置を用いてもよい。
【００１４】
ロボット１３０は、ワークテーブル１４０上に載置されている対象物に対する各種ワークをおこなう。たとえば、ロボット１３０は、対象物をつかむ、持ち上げる、移動させるなど、対象物に対する各種ワークをおこなう。
【００１５】
ロボット１３０は、ロボットアーム１３２、およびロボットハンド１３４を有する。また、ロボット１３０は、ロボットハンド制御装置の一例としてのロボットコントローラ１３１を有する。ロボットコントローラ１３１は、制御装置１００から送信された制御値に基づいて、ロボットアーム１３２を駆動することにより、ロボットハンド１３４を目的の位置へ移動させる。さらに、ロボットコントローラ１３１は、制御装置１００から送信された制御値に基づいて、ロボットハンド１３４の動作を制御する。
【００１６】
ロボットハンド１３４には、マーキング装置１１０が固定されている。これにより、マーキング装置１１０は、ロボットハンド１３４とともにワークテーブル上を移動する。マーキング装置１１０は、制御装置１００の制御により、ロボットハンド１３４の位置を示すマーク１１２を、ワークテーブル１４０へマーキングする。たとえば、マーキング装置１１０は、ロボットハンド１３４の位置を示すレーザをマーク１１２として、ワークテーブル１４０へ照射する。
【００１７】
マーキング装置１１０は、ロボットハンド１３４の重心位置を示すマーク１１２を、ワークテーブル１４０へマーキングしてもよい。マーキング装置１１０は、ロボットハンド１３４に把持されていてもよい。この場合、ロボットハンド１３４を回転させ、マーキング装置１１０が照射するレーザの輝点が移動するか否かを観察することによって、ロボットハンドの傾きとマーキング装置１１０が照射するレーザの傾きとが一致しているか否かを確認することができる。
【００１８】
なお、マーキング装置１１０は、照射距離に応じて輝点の形状または大きさが変化するレーザを照射してもよい。たとえば、マーキング装置１１０は、照射距離に応じて輝点の径の大きさが変化するレーザを照射してもよい。この場合、ワークテーブル１４０に照射されたレーザの輝点の径の大きさに基づいて、ワークテーブル１４０とロボットハンド１３４との距離を測定することができる。また、ワークテーブル１４０に照射されたレーザの輝点の径が予め定められた範囲内の大きさを有しているか否かに基づいて、ワークテーブル１４０とロボットハンド１３４とが、予め定められた距離分離間しているか否かを確認することができる。また、ワークテーブル１４０に照射された複数のレーザの輝点のそれぞれの径の大きさに基づいて、ロボット１３０固有の座標系における平面と、ワークテーブル１４０とが平行しているか否かを確認することができる。この場合、マーキング装置１１０は、複数のレーザを同時に照射してもよい。なお、マーキング装置１１０は、ロボットハンド１３４の位置を示す塗料をマーク１１２として、ワークテーブルへ塗布してもよい。
【００１９】
ワークテーブル１４０の上方には、撮像装置１２０が設けられている。撮像装置１２０は、制御装置１００の制御により、ワークテーブル１４０の画像を撮像する。撮像装置１２０は、撮像されたワークテーブル１４０の画像を制御装置１００へ送信する。撮像装置１２０は、静止画像を撮像してもよく、動画像を撮像してもよい。
【００２０】
制御装置１００は、マーキング装置１１０、撮像装置１２０、およびロボット１３０をそれぞれ制御する。たとえば、制御装置１００は、撮像装置１２０によって撮像された画像の内容に基づいて、当該画像内におけるロボットハンド１３４を移動させるべき位置を示す第１座標値を特定する。第１座標値とは、撮像装置１２０が撮像する画像における位置を示す値の一例であって、制御装置１００固有の座標系における座標値を示す。制御装置１００は、特定した第１座標値に応じて、ロボットハンド１３４の位置を制御する。具体的には、制御装置１００は、ロボットハンド１３４の位置を制御するための第２座標値を、ロボットコントローラ１３１へ送信することにより、ロボットハンド１３４の位置を制御する。第２座標値とは、ロボットハンド１３４の位置を制御するための制御値の一例であって、ロボット１３０固有の座標系における座標値を示す。
【００２１】
撮像装置１２０が撮像する画像内の位置は、制御装置１００固有の座標系における座標値である第１座標値によって示される。また、ロボットハンド１３４の位置は、ロボット１３０固有の座標系における座標値である第２座標値によって示される。制御装置１００は、第１座標値と、第２座標値との対応関係を予め算出しておくことにより、制御装置１００固有の座標系とロボット１３０固有の座標系との差異を吸収する。すなわち、制御装置１００は、第１座標値と、第２座標値とを、キャリブレーションする。たとえば、制御装置１００は、以下の手順により、キャリブレーションをおこなう。
【００２２】
まず、ロボットコントローラ１３１が、ワークテーブル１４０上の複数の位置を示す複数の第２座標値を用いて、ロボットハンド１３４をワークテーブル１４０上の複数の位置のそれぞれへ移動させる。これにより、マーキング装置１１０は、複数のマーク１１２をワークテーブル１４０上にマーキングする。制御装置１００は、マーク１１２がマーキングされるごとに、マーク１１２がマーキングされた位置を示す第２座標値を、ロボットコントローラ１３１から受け取る。制御装置１００は、マーク１１２がマーキングされるごとに、マーク１１２がマーキングされているワークテーブル１４０の画像を、撮像装置１２０に撮像させ、撮像された画像を撮像装置１２０から受け取る。
【００２３】
制御装置１００は、撮像された画像における複数のマーク１１２の第１座標値と、ロボットコントローラ１３１から受け取った複数のマーク１１２の第２座標値とに基づいて、第１座標値と、第２座標値との対応関係を算出し、対応関係格納部２１２に格納する。
【００２４】
ロボットコントローラ１３１は、ロボットハンド１３４をワークテーブル１４０上の複数の位置のそれぞれへ移動させるときに用いる複数の第２座標値を、自身が備える記録装置などから取得してもよく、制御装置１００から取得してもよい。すなわち、制御装置１００は、ロボットハンド１３４の移動位置を制御する機能を有してもよい。この場合、制御装置１００は、上記複数の第２座標値を、予めロボットコントローラ１３１へ送信しておいてもよい。他の例として、制御装置１００は、ロボットコントローラ１３１がロボットハンド１３４を移動させるごとに、一つの第２座標値をロボットコントローラ１３１へ送信してもよい。
【００２５】
制御装置１００は、対象物の種類ごと、あるいはワークテーブル１４０の垂直方向の位置ごとに、上記対応関係を算出し、対応関係格納部２１２に格納してもよい。なお、ワークテーブル１４０の垂直線とロボット１３０固有の座標系におけるＺ軸とは一致していなくてもよい。また、制御装置１００は、定期的に上記対応関係を算出し、対応関係格納部２１２に格納することで、時期が異なる複数の上記対応関係を対応関係格納部２１２に蓄積してもよい。
【００２６】
制御装置１００は、実際にロボットハンド１３４を移動させる場合、まず、画像内におけるロボットハンド１３４を移動すべき位置を示す第１座標値を特定する。そして、制御装置１００は、特定された第１座標値に対応付けられている第２座標値を、対応関係格納部２１２から抽出する。さらに、制御装置１００は、抽出された第２座標値をロボットコントローラ１３１へ出力することにより、ロボットハンド１３４を移動させる。これにより、制御装置１００は、ロボットハンド１３４の位置を高精度で制御することができる。
【００２７】
図２は、制御装置１００の機能構成の一例を示す。制御装置１００は、マーキング制御部２０４、撮像制御部２０６、対応関係算出部２０８、制御値格納部２１０、対応関係格納部２１２、位置特定部２１４、および抽出部２１６、出力部２１８を備える。
【００２８】
マーキング制御部２０４は、マーキング装置１１０をロボットハンド１３４とともに移動させ、マーク１１２をワークテーブル１４０にマーキングさせる。マーキング制御部２０４は、マーキング装置１１０をロボットハンド１３４とともに移動させることにより、所定間隔ずつ離間した複数のマーク１１２を予め規定された手順および順序に従ってマーキングさせてもよい。たとえば、マーキング制御部２０４は、複数のマーク１１２を格子状にマーキングさせてもよい。マーキング制御部２０４は、複数のマーク１１２を格子状にマーキングさせなくてもよく、たとえば、複数のマーク１１２を直線状にマーキングさせてもよい。この場合、マーキング制御部２０４は、少なくとも２つのマーク１１２をマーキングさせればよい。
【００２９】
ロボットハンド１３４の移動位置をロボットコントローラ１３１が制御する場合、マーキング制御部２０４は、ロボットコントローラ１３１に対してロボットハンド１３４の移動を指示するための信号を送信することで、ロボットコントローラ１３１の制御により、マーキング装置１１０をロボットハンド１３４とともに移動させ、マーク１１２をワークテーブル１４０にマーキングさせてもよい。一方、ロボットハンド１３４の移動位置を制御装置１００が制御する場合、マーキング制御部２０４は、ロボットコントローラ１３１に対して第２座標値を直接送信することで、マーキング装置１１０をロボットハンド１３４とともに移動させてもよい。
【００３０】
撮像制御部２０６は、マーク１１２がマーキングされているワークテーブル１４０の画像を撮像装置１２０に撮像させる。具体的には、撮像制御部２０６は、マーク１１２がマーキングされているワークテーブル１４０の画像を撮像させるための制御信号を、撮像装置１２０へ送信する。
【００３１】
撮像制御部２０６は、マーク１１２がマーキングされるごとに、ワークテーブル１４０の画像を撮像装置１２０に撮像させる。撮像制御部２０６は、全てのマーク１１２がマーキングされた後に、ワークテーブル１４０の画像を撮像装置１２０に撮像させてもよい。撮像制御部２０６は、全てのマーク１１２がマーキングされるまで、ワークテーブル１４０の画像を撮像装置１２０に撮像させ続けてもよい。
【００３２】
制御値格納部２１０は、複数のマーク１１２のそれぞれがマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２座標値を格納する。具体的には、制御値格納部２１０は、ロボットコントローラ１３１がロボットハンド１３４を複数回移動させるために用いた複数の第２座標値を格納する。また、制御値格納部２１０は、撮像装置１２０によって撮像された画像を格納する。
【００３３】
制御値格納部２１０は、複数の第２座標値を予め取得しておいてもよく、ロボットコントローラ１３１がロボットハンド１３４を移動させるごとに、第２座標値を、ロボットコントローラ１３１から受け取ってもよい。ロボットコントローラ１３１が一定の間隔でロボットハンド１３４を移動させる場合、制御値格納部２１０は、起点の第２座標値および一定の間隔値に基づいて、複数の第２座標値を算出してもよい。この場合、制御値格納部２１０は、起点の第２座標値を、予め取得しておいてもよく、ロボットコントローラ１３１が起点の第２座標値を確定した後に、ロボットコントローラ１３１から受け取ってもよい。同様に、制御値格納部２１０は、一定の間隔を、予め取得しておいてもよく、ロボットコントローラ１３１が一定の間隔を確定した後に、ロボットコントローラ１３１から受け取ってもよい。
【００３４】
対応関係算出部２０８は、複数のマーク１１２のそれぞれがマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２座標値、および撮像装置１２０によって撮像された画像における複数のマーク１１２の位置を示す複数の第１座標値に基づいて、第１座標値と第２座標値との対応関係を算出する。
【００３５】
対応関係算出部２０８は、マーク１１２の第１座標値と、マーク１１２の第２座標値とを用いた非線形補間処理により、第１座標値に対応付ける、第２座標値を算出してもよい。
【００３６】
たとえば、対応関係算出部２０８は、（Ｉｘ，Ｉｙ）を第１座標値とし、（Ｃｘ，Ｃｙ）を第２座標値とした場合、多項式の変換によって実行される対応付けをつぎの二つの式によって定義する。
【００３７】
【数１】
2010064200.tif 000003
【００３８】
上記数式において、ａｉｊとｂｉｊは多項式係数である。ｎは多項式変換の次数である。たとえば、３次多項式の形式は次の通りとなる。
【００３９】
【数２】
2010064200.tif 000004
【００４０】
次数ｎの多項式を指定すると、多項式変換の係数の数は（ｎ＋１）＊（ｎ＋２）である。したがって、３次多項式の場合、変換を定義する係数の数は２０となる。この場合、制御装置１００は、マーク１１２を２０の位置にマーキングする。制御装置１００は、複数のマーク１１２の第１座標値と、複数のマーク１１２の第１座標値に対応する複数のマーク１１２の第２座標値とに基づいて、第１座標値に対応付ける、第２座標値を算出することができる。
【００４１】
なお、対応関係算出部２０８は、複数のマーク１１２の第１座標値と、複数のマーク１１２の第１座標値に対応する複数のマーク１１２の第２座標値とに基づいて、座標空間の移動、回転、スケーリングなどの線形補間処理により、第１座標値に対応付ける、第２座標値を算出してもよい。たとえば、ロボットハンド１３４の一方向の動きについて、第１座標値との第２座標値との対応付けを重点的におこないたい場合、制御装置１００は、線形補間処理により上記対応付けをおこなうことが好ましい。この場合、マーキング制御部２０４は、少なくとも２つのマーク１１２をマーキングさせればよい。
【００４２】
対応関係格納部２１２は、対応関係算出部２０８によって算出された対応関係を格納する。具体的には、対応関係格納部２１２は、第１座標値と第２座標値とを対応付けて格納する。この場合、対応関係格納部２１２は、第２座標値の代わりに、第１座標値と第２座標値との差分、または第２座標値の算出式を格納してもよい。
【００４３】
対応関係格納部２１２は、対応関係算出部２０８によって算出された対応関係を、制御装置１００が有するハードディスクなどの記録装置に格納する。対応関係格納部２１２は、対応関係算出部２０８によって算出された対応関係を、外部の情報処理装置が有する記録装置に格納してもよい。
【００４４】
位置特定部２１４は、第１座標値を特定する。たとえば、位置特定部２１４は、撮像装置１２０によって撮像された画像に対する画像認識処理によって第１座標値を特定する。
【００４５】
抽出部２１６は、位置特定部２１４によって特定された第１座標値に対応付けられている、第２座標値を対応関係格納部２１２から抽出する。出力部２１８は、抽出部２１６によって抽出された第２座標値を、ロボットコントローラ１３１へ出力する。
【００４６】
図３は、制御システム１０による処理のフローの一例を示す。まず、ロボットコントローラ１３１が、第２座標値を用いて、ロボットハンド１３４を初期の位置に移動させる（Ｓ３０２）。つぎに、マーキング制御部２０４が、ワークテーブル上へのマーク１１２を、マーキング装置１１０にマーキングさせる（Ｓ３０４）。
【００４７】
つぎに、制御値格納部２１０が、Ｓ３０２でロボットコントローラ１３１が用いた第２座標値を格納する（Ｓ３０６）。そして、撮像制御部２０６が、マーク１１２がマーキングされているワークテーブル１４０の画像を、撮像装置１２０に撮像させる（Ｓ３０８）。さらに、制御値格納部２１０が、Ｓ３０８で撮像された画像を格納する（Ｓ３１０）。
【００４８】
つぎに、制御装置１００は、予定されている全ての位置のマーク１１２の画像が撮像されたか否かを判断する（Ｓ３１２）。Ｓ３１０において、予定されている全ての位置のマーク１１２の画像が撮像されたと判断した場合（Ｓ３１２：Ｙｅｓ）は、制御システム１０は、処理をＳ３１６へ進める。一方、Ｓ３１２において、予定されている全ての位置のマーク１１２の画像が撮像されていないと判断した場合（Ｓ３１２：Ｎｏ）は、ロボットコントローラ１３１が、第２座標値を用いて、ロボットハンド１３４を次の位置に移動させて（Ｓ３１４）、制御システム１０は、処理をＳ３０４へ戻す。
【００４９】
Ｓ３１６においては、対応関係算出部２０８が、Ｓ３０６で格納された物理制御値、Ｓ３１０で格納された画像に基づいて、第１座標値と第２座標値との対応関係を算出する。そして、対応関係格納部２１２が、Ｓ３１６で算出された対応関係を格納して（Ｓ３１８）、制御システム１０は、処理を終了する。
【００５０】
図４は、実施形態に係る制御システム１０のシステム構成の他の一例を示す。図４に示す制御システム１０は、さらに、ロボットハンド１３４を目的の位置へ回転移動させることができる点で、図１に示した制御システム１０と異なる。以下、図１に示した制御システム１０のシステム構成と異なる部分を説明する。
【００５１】
制御装置１００は、マーキング装置１１０、撮像装置１２０、およびロボット１３０をそれぞれ制御する。たとえば、制御装置１００は、撮像装置１２０によって撮像された画像の内容に基づいて、当該画像内におけるロボットハンド１３４を移動させるべき位置を示す第１座標値を特定する。
【００５２】
また、制御装置１００は、撮像装置１２０によって撮像された画像の内容に基づいて、当該画像内におけるロボットハンド１３４を向かせるべき方向を示す第１角度を特定する。第１角度とは、撮像装置１２０が撮像する画像における方向を示す値の一例であって、制御装置１００固有の座標系における角度を示す。
【００５３】
制御装置１００は、特定した第１座標値および第１角度に応じて、ロボットハンド１３４の位置および向きを制御する。具体的には、制御装置１００は、ロボットハンド１３４の位置および向きを制御するための第２座標値および第２角度を、ロボットコントローラ１３１へ送信することにより、ロボットハンド１３４の位置および向きを制御する。第２角度とは、ロボットハンド１３４の向きを制御するための制御値の一例であって、ロボット１３０固有の座標系における角度を示す。
【００５４】
撮像装置１２０が撮像する画像内の位置は、制御装置１００固有の座標系における座標値である第１座標値によって示される。撮像装置１２０が撮像する画像内の向きは、制御装置１００固有の座標系における角度である第１角度によって示される。一方、ロボットハンド１３４の位置は、ロボット１３０固有の座標系における座標値である第２座標値によって示される。また、ロボットハンド１３４の向きは、ロボット１３０固有の座標系における角度である第２角度によって示される。
【００５５】
制御装置１００は、第１座標値と、第１角度と、第２座標値と、第２角度との対応関係を予め算出しておくことにより、制御装置１００固有の座標系とロボット１３０固有の座標系との差異を吸収する。すなわち、制御装置１００は、第１座標値と、第１角度と、第２座標値と、第２角度とを、キャリブレーションする。たとえば、制御装置１００は、以下の手順により、キャリブレーションをおこなう。
【００５６】
まず、ロボットコントローラ１３１が、ワークテーブル１４０上の複数の位置を示す複数の第２座標値を用いて、ロボットハンド１３４をワークテーブル１４０上の複数の位置のそれぞれへ移動させる。これにより、マーキング装置１１０は、複数のマーク１１２をワークテーブル１４０上にマーキングする。制御装置１００は、マーク１１２がマーキングされるごとに、第２座標値を、ロボットコントローラ１３１から受け取る。制御装置１００は、マーク１１２がマーキングされるごとに、マーク１１２がマーキングされているワークテーブル１４０の画像を、撮像装置１２０に撮像させ、撮像された画像を撮像装置１２０から受け取る。
【００５７】
つぎに、ロボットコントローラ１３１が、ワークテーブル１４０上の複数の方向を示す複数の第２角度を用いて、ロボットハンド１３４をワークテーブル１４０上の複数の位置のそれぞれへ回転移動させる。これにより、マーキング装置１１０は、複数のマーク１１２をワークテーブル１４０上にマーキングする。制御装置１００は、マーク１１２がマーキングされるごとに、第２角度を、ロボットコントローラ１３１から受け取る。制御装置１００は、マーク１１２がマーキングされるごとに、マーク１１２の第２座標値を、ロボットコントローラ１３１からさらに受け取ってもよい。制御装置１００は、マーク１１２がマーキングされるごとに、マーク１１２がマーキングされているワークテーブル１４０の画像を、撮像装置１２０に撮像させ、撮像された画像を撮像装置１２０から受け取る。
【００５８】
制御装置１００は、撮像された画像における複数のマーク１１２の第１座標値と、ロボットコントローラ１３１から受け取った複数の第２角度とに基づいて、第１座標値と、第１角度と、第２座標値と、第２角度との対応関係を算出し、対応関係格納部２１２に格納する。
【００５９】
ロボットコントローラ１３１は、ロボットハンド１３４をワークテーブル１４０上の複数の位置のそれぞれへ回転移動させるときに用いる複数の第２角度を、自身が備える記録装置などから取得してもよく、制御装置１００から取得してもよい。すなわち、制御装置１００は、ロボットハンド１３４の移動位置を制御する機能を有してもよい。この場合、制御装置１００は、上記複数の第２角度を、予めロボットコントローラ１３１へ送信しておいてもよい。他の例として、制御装置１００は、ロボットコントローラ１３１がロボットハンド１３４を移動させるごとに、一つの第２角度をロボットコントローラ１３１へ送信してもよい。ロボットコントローラ１３１は、ロボットハンド１３４を一度だけ回転移動させてもよい。この場合、制御装置１００は、ロボットコントローラ１３１がロボットハンド１３４を一度だけ回転移動させたときに用いた第２角度に基づいて、第１座標値と、第１角度と、第２座標値と、第２角度との対応関係を算出してもよい。
【００６０】
制御装置１００は、実際にロボットハンド１３４を移動させる場合、まず、画像内におけるロボットハンド１３４を移動すべき位置を示す第１座標値を特定する。つぎに、画像内におけるロボットハンド１３４を向けさせるべき方向を示す第１角度を特定する。そして、制御装置１００は、特定された第１座標値と第１角度との組みに対応付けられている第２座標値および第２角度を、対応関係格納部２１２から抽出する。さらに制御装置１００は、抽出された第２座標値および第２角度を用いて、ロボットハンド１３４を移動させる。これにより、制御装置１００は、ロボットハンド１３４の位置および向きを高精度で制御することができる。
【００６１】
続いて、制御装置１００の機能構成の他の一例を説明する。以下、図２に示した制御装置１００の機能構成と異なる部分を説明する。
【００６２】
マーキング制御部２０４は、さらに、ロボットハンド１３４の回転軸１３６を中心としてロボットハンド１３４およびマーキング装置１１０を回転移動させて、所定角度ずつ離間した複数のマーク１１２をマーキング装置１１０が描く円周上のすくなくとも一部分にマーキングさせる。
【００６３】
ロボットハンド１３４の移動位置をロボットコントローラ１３１が制御する場合、マーキング制御部２０４は、ロボットコントローラ１３１に対してロボットハンド１３４の回転移動を指示するための信号を送信することで、ロボットコントローラ１３１の制御により、マーキング装置１１０をロボットハンド１３４とともに回転移動させ、マーク１１２をワークテーブル１４０にマーキングさせてもよい。一方、ロボットハンド１３４の移動位置を制御装置１００が制御する場合、マーキング制御部２０４は、ロボットコントローラ１３１に対して第２角度を直接送信することで、マーキング装置１１０をロボットハンド１３４とともに回転移動させてもよい。
【００６４】
制御値格納部２１０は、複数のマーク１１２のそれぞれがマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２角度を格納する。具体的には、制御値格納部２１０は、ロボットコントローラ１３１がロボットハンド１３４を複数回回転移動させるために用いた複数の第２角度を格納する。また、制御値格納部２１０は、撮像装置１２０によって撮像された画像を格納する。
【００６５】
制御値格納部２１０は、複数の第２角度を予め取得しておいてもよく、ロボットコントローラ１３１がロボットハンド１３４を移動させるごとに、第２角度を、ロボットコントローラ１３１から受け取ってもよい。ロボットコントローラ１３１が一定の角度でロボットハンド１３４を回転移動させる場合、制御値格納部２１０は、起点の第２角度および一定の角度に基づいて、複数の第２角度を算出してもよい。この場合、制御値格納部２１０は、起点の第２角度を、予め取得しておいてもよく、ロボットコントローラ１３１が起点の第２角度を確定した後に、ロボットコントローラ１３１から受け取ってもよい。同様に、制御値格納部２１０は、一定の角度を、予め取得しておいてもよく、ロボットコントローラ１３１が一定の角度を確定した後に、ロボットコントローラ１３１から受け取ってもよい。
【００６６】
対応関係算出部２０８は、複数のマーク１１２のそれぞれがマーキングされたときにロボットハンド１３４の位置を回転移動させるために用いられていた複数の第２角度、および撮像装置１２０によって撮像されたマーク１１２がマーキングされているワークテーブル１４０の画像における複数のマーク１１２の第１座標値に基づいて、第１座標値と、第１角度と、第２座標値と、第２角度との対応関係を算出する。
【００６７】
対応関係格納部２１２は、対応関係算出部２０８によって算出された対応関係を格納する。具体的には、対応関係格納部２１２は、第１座標値と、第１角度と、第２座標値と、第２角度とを対応付けて格納する。対応関係格納部２１２は、第２座標値の代わりに、第２座標値と第１座標値との差分を、または第２座標値の算出式を格納してもよい。また、対応関係格納部２１２は、第２角度の代わりに、第２角度と第１角度との差分、または第２角度の算出式を格納してもよい。
【００６８】
位置特定部２１４は、第１座標値および第１角度を特定する。抽出部２１６は、位置特定部２１４によって特定された第１座標値と第１角度との組みに対応付けられている、第２座標値および第２角度を、対応関係格納部２１２から抽出する。出力部２１８は、抽出部２１６によって抽出された第２座標値および第２角度を、ロボットコントローラ１３１へ出力する。
【００６９】
図５は、制御システム１０による処理のフローの他の一例を示す。まず、ロボットコントローラ１３１が、第２座標値を用いて、ロボットハンド１３４を初期の位置に移動させる（Ｓ５０２）。つぎに、マーキング制御部２０４が、ワークテーブル上へのマーク１１２を、マーキング装置１１０にマーキングさせる（Ｓ５０４）。
【００７０】
つぎに、制御値格納部２１０が、Ｓ５０２でロボットコントローラ１３１が用いた第２座標値を格納する（Ｓ５０６）。そして、撮像制御部２０６が、マーク１１２がマーキングされているワークテーブル１４０の画像を、撮像装置１２０に撮像させる（Ｓ５０８）。さらに、制御値格納部２１０が、Ｓ５０８で撮像された画像を格納する（Ｓ５１０）。
【００７１】
つぎに、制御装置１００は、予定されている全ての位置のマーク１１２の画像が撮像されたか否かを判断する（Ｓ５１２）。Ｓ５１２において、予定されている全ての位置のマーク１１２の画像が撮像されたと判断した場合（Ｓ５１２：Ｙｅｓ）は、制御システム１０は、処理をＳ５１６へ進める。一方、Ｓ５１２において、予定されている全ての位置のマーク１１２の画像が撮像されていないと判断した場合（Ｓ５１２：Ｎｏ）は、ロボットコントローラ１３１が、第２座標値を用いて、ロボットハンド１３４を次の位置に移動させて（Ｓ５１４）、制御装置１００が、処理をＳ５０４へ戻す。
【００７２】
Ｓ５１６においては、ロボットコントローラ１３１が、第２角度を用いて、ロボットハンド１３４を次の位置に回転移動させる（Ｓ５１６）。つぎに、マーキング制御部２０４が、ワークテーブル上へのマーク１１２を、マーキング装置１１０にマーキングさせる（Ｓ５２０）。つぎに、制御値格納部２１０が、Ｓ５１６でロボットコントローラ１３１が用いた第２角度を格納する（Ｓ５２０）。そして、撮像制御部２０６が、マーク１１２がマーキングされているワークテーブル１４０を、撮像装置１２０に撮像させる（Ｓ５２２）。さらに、制御値格納部２１０が、Ｓ５２２で撮像された画像を格納する（Ｓ５３２）。
【００７３】
つぎに、制御装置１００は、予定されている全ての角度のマーク１１２の画像が撮像されたか否かを判断する（Ｓ５２６）。Ｓ５２６において、予定されている全ての角度のマーク１１２の画像が撮像されたと判断した場合（Ｓ５２６：Ｙｅｓ）は、制御システム１０は、処理をＳ５２８へ進める。一方、Ｓ５２６において、予定されている全ての角度のマーク１１２の画像が撮像されていないと判断した場合（Ｓ５２６：Ｎｏ）は、制御システム１０は、処理をＳ５１６へ戻す。
【００７４】
Ｓ５２８においては、対応関係算出部２０８が、Ｓ５０８およびＳ５２２で撮像された画像と、Ｓ５０６で格納された第２座標値と、Ｓ５２０で格納された第２角度とに基づいて、第１座標値と、第１角度と、第２座標値と、第２角度との対応関係を算出する。そして、対応関係格納部２１２が、Ｓ５２８で算出された対応関係を格納して（Ｓ５３０）、制御システム１０は、処理を終了する。
【００７５】
このように、本実施形態に係る制御システム１０によれば、第１座標値と第２座標値との対応関係を算出する構成としたので、システム系のいずれかの部分に誤差が生じている場合であっても、この部分的な誤差を解消させることなく、容易かつ短期間で制御システム１０の全体的な誤差を解消し、ワークテーブル１４０上におけるロボットハンドの位置を高い精度で制御することができる。
【００７６】
また、本実施形態に係る制御システム１０によれば、複数のマーク１１２をマーキングし、複数のマーク１１２の位置に基づいて、第１座標値と第２座標値との対応関係を算出する構成としたので、ワークテーブル１４０上における位置ごとに誤差を解消し、ワークテーブル１４０上のいずれにロボットハンド１３４を移動させる場合であっても、ロボットハンド１３４を高い精度で目的の位置に移動させることができる。
【００７７】
また、本実施形態に係る制御システム１０によれば、複数のマーク１１２を円周上の少なくとも一部分にマーキングし、複数のマーク１１２の位置に基づいて、第１座標値と、第１角度と、第２座標値と、第２角度との対応関係を算出する構成としたので、ワークテーブル１４０上における位置ごとおよび方向ごとに誤差を解消し、ワークテーブル１４０上のいずれにロボットハンド１３４を移動させる場合であっても、ロボットハンド１３４を高い精度で目的の位置に移動させることができるうえ、ワークテーブル１４０上のいずれの方向にロボットハンド１３４を向けさせる場合であっても、ロボットハンド１３４を高い精度で目的の方向に向けさせることができる。
【００７８】
また、本実施形態に係る制御システム１０によれば、マーキング装置１１０をロボットハンド１３４に取り付ける構成としたので、マーク１１２の位置からのロボットハンド１３４の位置を特定することが容易かつ確実であり、より高い精度で、制御システム１０の全体的な誤差を解消することができる。
【００７９】
また、本実施形態に係る制御システム１０によれば、ロボットハンド１３４の位置を示すレーザをワークテーブル１４０に照射することで、ワークテーブル１４０上にマーク１１２をマーキングする構成としたので、物理的な接触によるマーク１１２の位置ズレを生じさせることがなく、より高い精度で、制御システム１０の全体的な誤差を解消することができる。
【００８０】
制御装置１００は、対象物の斜面に対してロボットハンド１３４を平行に移動させながら、複数のマーク１１２を対象物の斜面にマーキングさせることにより、対象物の斜面の位置に関する第１座標値と第２座標値とを、キャリブレーションしてもよい。たとえば、マーキング制御部２０４が、ロボットハンド１３４と対象物の斜面との距離および角度を一定に保ちながら、複数のマーク１１２を対象物の斜面にマーキングさせる。そして、撮像制御部２０６が、複数のマーク１１２がマーキングされている対象物の斜面の画像を撮像装置１２０に撮像させる。さらに、制御値格納部２１０が、複数のマーク１１２のそれぞれが対象物の斜面にマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２座標値を格納する。そして、対応関係算出部２０８が、複数のマーク１１２のそれぞれが対象物の斜面にマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２座標値、および撮像装置１２０によって撮像された画像における複数のマーク１１２の位置を示す複数の第１座標値に基づいて、第１座標値と第２座標値との対応関係を算出する。これにより、制御システム１０は、ロボットハンド１３４を対象物の斜面に対して平行に移動させる場合であっても、対象物の斜面に対するロボットハンド１３４の位置を高い精度で制御することができる。
【００８１】
制御装置１００は、複数のマーク１１２をワークテーブル１４０とは異なる第２の作業面にマーキングさせることにより、第２の作業面に関する第１座標値と第２座標値とを、キャリブレーションしてもよい。たとえば、マーキング制御部２０４が、複数のマーク１１２を第２の作業面にマーキングさせる。そして、撮像制御部２０６が、複数のマーク１１２がマーキングされている第２の作業面の画像を撮像装置１２０に撮像させる。さらに、制御値格納部２１０が、複数のマーク１１２のそれぞれが第２の作業面にマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２座標値を格納する。そして、対応関係算出部２０８が、複数のマーク１１２のそれぞれが第２の作業面にマーキングされたときにロボットハンド１３４の位置を制御するために用いられていた複数の第２座標値、および撮像装置１２０によって撮像された画像における複数のマーク１１２の位置を示す複数の第１座標値に基づいて、第１座標値と第２座標値との対応関係を算出する。これにより、制御システム１０は、ロボットハンド１３４を第２の作業面に移動させる場合であっても、第２の作業面に対するロボットハンド１３４の位置を高い精度で制御することができる。なお、第２の作業面は、対象物の移動先の作業面であってもよく、斜面であってもよい。
【００８２】
制御装置１００が複数の撮像装置１２０を備える場合、撮像制御部２０６は、マーク１１２がマーキングされているワークテーブル１４０の画像を複数の撮像装置１２０のそれぞれに撮像させてもよい。この場合、制御装置１００は、複数の撮像装置１２０のそれぞれによって撮像された、撮像方向が異なる複数のワークテーブル１４０の画像に基づいて、ワークテーブル１４０上における高さ方向の距離を求めてもよい。ロボットコントローラ１３１は、求められた高さ方向の距離、および自ら保有するワークテーブル１４０の高さ方向の座標値に基づいて、ロボットハンド１３４の高さ方向の位置を制御してもよい。
【００８３】
図６は、制御装置１００のハードウェア構成の一例を示す。制御装置１００は、ホスト・コントローラ１５８２により相互に接続されるＣＰＵ１５０５、ＲＡＭ１５２０、グラフィック・コントローラ１５７５、および表示デバイス１５８０を備える。また、制御装置１００は、Ｉ／Ｏ（入出力）コントローラ１５８４によりホスト・コントローラ１５８２に接続される通信Ｉ／Ｆ１５３０、ＲＯＭ１５１０、ハードディスクドライブ１５４０、および外部メモリドライブ１５６０を備える。
【００８４】
ＣＰＵ１５０５は、ＲＯＭ１５１０、ＲＡＭ１５２０、またはハードディスクドライブ１５４０に格納されたプログラムに基づいて動作して、各部を制御する。グラフィック・コントローラ１５７５は、ＲＡＭ１５２０等から取得した画像データを、表示デバイス１５８０上に表示させる。
【００８５】
Ｉ／Ｏ（入出力）コントローラ１５８４は、マウス、キーボードなどの入出力デバイスをさらに接続する。通信Ｉ／Ｆ１５３０は、ネットワークを介して外部から受け取ったプログラムまたはデータを、ＲＯＭ１５１０、ＲＡＭ１５２０、またはハードディスクドライブ１５４０に提供する。ＲＯＭ１５１０は、制御装置１００の起動時にＣＰＵ１５０５が実行するブート・プログラム、制御装置１００のハードウェアに依存するプログラム等を格納する。
【００８６】
ハードディスクドライブ１５４０は、ＣＰＵ１５０５が使用するプログラムおよびデータを格納する。外部メモリドライブ１５６０は、外部メモリ１５９５から読み取ったプログラムまたはデータを、ＲＯＭ１５１０、ＲＡＭ１５２０、またはハードディスクドライブ１５４０に提供する。
【００８７】
ＣＰＵ１５０５は、ＲＯＭ１５１０、ＲＡＭ１５２０、またはハードディスクドライブ１５４０に格納されているプログラムを実行することにより、制御装置１００を、マーキング制御部２０４、撮像制御部２０６、対応関係算出部２０８、制御値格納部２１０、対応関係格納部２１２、位置特定部２１４、抽出部２１６、および出力部２１８として機能させる。ＣＰＵ１５０５により実行されるプログラムは、外部メモリ１５９５等の記録媒体に格納されて提供されてもよく、外部の情報処理装置からネットワークを介して提供されてもよい。
【００８８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００８９】
【図１】実施形態に係る制御システム１０のシステム構成の一例を示す。
【図２】制御装置１００の機能構成の一例を示す。
【図３】制御システム１０による処理のフローの一例を示す。
【図４】実施形態に係る制御システム１０のシステム構成の他の一例を示す。
【図５】制御システム１０による処理のフローの他の一例を示す。
【図６】制御装置１００のハードウェア構成の一例を示す。
【符号の説明】
【００９０】
１０  制御システム
１００  制御装置
１１０  マーキング装置
１１２  マーク
１２０  撮像装置
１３０  ロボット
１３１  ロボットコントローラ
１３２  ロボットアーム
１３４  ロボットハンド
１３６  回転軸
１４０  ワークテーブル
２０４  マーキング制御部
２０６  撮像制御部
２０８  対応関係算出部
２１０  制御値格納部
２１２  対応関係格納部
２１４  位置特定部
２１６  抽出部
２１８  出力部
１５０５  ＣＰＵ
１５１０  ＲＯＭ
１５２０  ＲＡＭ
１５３０  通信Ｉ／Ｆ
１５４０  ハードディスクドライブ
１５６０  外部メモリドライブ
１５７５  グラフィック・コントローラ
１５８０  表示デバイス
１５８２  ホスト・コントローラ
１５８４  Ｉ／Ｏコントローラ
１５９５  外部メモリ
【図１】
2010064200.tif 000005
【図２】
2010064200.tif 000006
【図３】
2010064200.tif 000007
【図４】
2010064200.tif 000008
【図５】
2010064200.tif 000009
【図６】
2010064200.tif 000010