(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022025540
(43)【公開日】2022-02-10
(54)【発明の名称】キャリブレーションシステムおよびキャリブレーション方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20220203BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2020128423
(22)【出願日】2020-07-29
(71)【出願人】
【識別番号】000006220
【氏名又は名称】ミツミ電機株式会社
(74)【代理人】
【識別番号】100091627
【弁理士】
【氏名又は名称】朝比 一夫
(74)【代理人】
【識別番号】100173691
【弁理士】
【氏名又は名称】高橋 康久
(74)【代理人】
【識別番号】100091292
【弁理士】
【氏名又は名称】増田 達哉
(74)【代理人】
【識別番号】100137095
【弁理士】
【氏名又は名称】江部 武史
(72)【発明者】
【氏名】図斉 賢治
(72)【発明者】
【氏名】森本 一幸
(72)【発明者】
【氏名】福冨 健智
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707AS13
3C707BS03
3C707KS03
3C707KT01
3C707KT05
3C707KT09
(57)【要約】
【課題】ロボットの可動部のキャリブレーションを実行するためのキャリブレーションシステムおよびキャリブレーション方法を提供する。
【解決手段】キャリブレーションシステム100は、ワークテーブル11と、ワークテーブル11上に載置されたワークに対する作業を実行するための作業部12と、ワークと作業部12との相対位置を変化させるための可動部13とを備えるロボット1と、ワークテーブル11の上方に設けられたカメラ2と、ロボット1の可動部13およびカメラ2を制御するための制御装置4と、を含む。制御装置4は、可動部13を目標量だけ駆動させるよう可動部13を駆動した後、カメラ2を駆動し、ワークテーブル11を含むカメラ画像を取得し、さらに、取得したカメラ画像から可動部13の実際の駆動量を算出し、実際の駆動量と目標量との差に基づいて、可動部13のキャリブレーションを実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ワークテーブルと、前記ワークテーブル上に載置されたワークに対する作業を実行するための作業部と、前記ワークと前記作業部との相対位置を変化させるための可動部と、を備えるロボットと、
前記ワークテーブルの上方に設けられたカメラと、
前記ロボットの前記可動部および前記カメラを制御するための制御装置と、を含み、
前記制御装置は、前記可動部を目標量だけ駆動させるよう前記可動部を駆動した後、前記カメラを駆動し、前記ワークテーブルを含むカメラ画像を取得し、さらに、前記取得したカメラ画像から、前記可動部の実際の駆動量を算出し、前記実際の駆動量と前記目標量との差に基づいて、前記可動部の位置制御のキャリブレーションを実行するよう構成されていることを特徴とするキャリブレーションシステム。
【請求項2】
前記ワークテーブルの作業面をXY平面としたとき、前記可動部は、X軸方向に移動可能なX軸可動部と、Y軸方向に移動可能なY軸可動部と、を含んでおり、
前記作業部および前記カメラは、前記X軸可動部によって前記X軸方向に移動可能に設けられており、
前記ワークテーブルは、前記Y軸可動部によって前記Y軸方向に移動可能に設けられている請求項1に記載のキャリブレーションシステム。
【請求項3】
前記可動部は、Z軸方向に移動可能なZ軸可動部をさらに含んでおり、
前記Z軸可動部は、前記X軸可動部に取り付けられており、
前記作業部および前記カメラは、前記Z軸可動部に取り付けられ、これにより、前記X軸方向および前記Z軸方向に移動可能である請求項2に記載のキャリブレーションシステム。
【請求項4】
前記カメラは、前記カメラの視野内に、前記ワークに対する作業を実行する前記作業部の先端部が位置するような向きおよび位置で、前記ワークテーブルの上方に設けられている請求項1ないし3のいずれかに記載のキャリブレーションシステム。
【請求項5】
前記制御装置が前記可動部の前記キャリブレーションを実行する際、前記ワークテーブル上にはキャリブレーションチャートが載置されており、
前記制御装置は、前記可動部を前記目標量だけ駆動させるよう前記可動部を制御する前に、前記カメラを駆動し、前記ワークテーブル上に載置された前記キャリブレーションチャートを撮影し、カメラキャリブレーションを実行するよう構成されている請求項1ないし4のいずれかに記載のキャリブレーションシステム。
【請求項6】
前記キャリブレーションチャートは、少なくとも1つのマーカーを含んでおり、
前記カメラが取得した前記カメラ画像は、前記マーカーを含んでおり、
前記制御装置は、前記取得したカメラ画像における前記マーカーの位置から、前記可動部の前記実際の駆動量と前記目標量との前記差を算出する請求項5に記載のキャリブレーションシステム。
【請求項7】
前記制御装置は、前記目標量をランダムに変更して、前記可動部の前記実際の駆動量と前記目標量との前記差を算出する工程を複数回繰り返し、複数回の前記工程によって取得された複数の前記差に基づいて、前記可動部の前記キャリブレーションを実行するよう構成されている請求項1ないし6のいずれかに記載のキャリブレーションシステム。
【請求項8】
ワークテーブルと、前記ワークテーブル上に載置されたワークに対する作業を実行するための作業部と、前記ワークと前記作業部との相対位置を変化させるための可動部と、を備えるロボットのためのキャリブレーション方法であって、
前記可動部を目標量だけ駆動させるよう前記可動部を制御する工程と、
前記ワークテーブルの上方に設けられたカメラを用いて、前記ワークテーブルを含むカメラ画像を取得する工程と、
前記取得したカメラ画像から、前記可動部の実際の駆動量を算出する工程と、
前記実際の駆動量と前記目標量との差に基づいて、前記可動部の位置制御のキャリブレーションを実行する工程と、を含むことを特徴とするキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ロボットの可動部の位置制御のキャリブレーションを実行するためのキャリブレーションシステムおよびキャリブレーション方法に関し、より具体的には、カメラを用いてロボットの可動部の駆動の目標量と実際の駆動量との差を直接算出し、ロボットの可動部の位置制御のキャリブレーションを実行するためのキャリブレーションシステムおよびキャリブレーション方法に関する。
【背景技術】
【0002】
近年、工場の生産ラインにおいて、作業の自動化・無人化を図るため、組立や加工用の産業用ロボットが広く用いられている。産業用ロボットは、工場の生産ラインにおいて、作業対象物(これを「ワーク」という)に対する所定の作業、例えば、部品の取り付け、液体材料の塗布や切削等の加工、導電検査等を行う。このような産業用ロボットは、ロボットアームや可動ステージ等の可動部と、ワークに対する所定の作業を実行するための作業部(例えば、ピックアップハンド、ノズル、コンタクトプローブ)とを備えており、可動部によって作業部とワークとの相対位置を制御することにより、ワークに対する所定の作業を実現する。
【0003】
ワークに対する所定の作業を実行するためには、産業用ロボットの可動部の正確な位置制御が必要である。産業用ロボットの可動部の正確な位置制御を実現するため、産業用ロボットの可動部を稼働させるためのモーターにエンコーダー装置を設けることが広く行われている(特許文献1参照)。エンコーダー装置によってモーターの回転量を測定した後、測定したモーターの回転量から、駆動される産業用ロボットの可動部の駆動量を算出し、算出した駆動量に基づいて、産業用ロボットの可動部の位置制御が実行される。このような構成により、産業用ロボットの可動部の駆動量を制御することができ、ワークに対する所定の作業を実行することができる。
【0004】
しかしながら、エンコーダー装置を用いた可動部の制御では、産業用ロボットの可動部の駆動量を、モーターの回転量から間接的に取得しているため、モーターと産業用ロボットの可動部との間に介在する全ての部品の寸法誤差、治具熱膨張、軸ずれの影響を考慮することができない。そのため、産業用ロボットの可動部の実際の駆動量と、間接的に算出された産業用ロボットの可動部の駆動量との間に差が生じてしまう。また、産業用ロボットの可動部に加重がかかったり、動作スピードが変化したり、環境温度が変化したりする等、産業用ロボットの使用環境が変化した際には、エンコーダー装置によって測定されたモーターの回転量が同じであっても、産業用ロボットの可動部の駆動量が変化してしまう場合がある。そのため、エンコーダー装置を用いて、ロボットの可動部の位置制御を正確に実行することは非常に困難であるという問題があった。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上記従来の問題点を鑑みたものであり、その目的は、カメラを用いてロボットの可動部の駆動の目標量と実際の駆動量との差を直接算出して、ロボットの可動部の位置制御のキャリブレーションを実行することが可能なキャリブレーションシステムおよびキャリブレーション方法を提供することにある。
【課題を解決するための手段】
【0007】
このような目的は、以下の(1)~(8)の本発明により達成される。
(1)ワークテーブルと、前記ワークテーブル上に載置されたワークに対する作業を実行するための作業部と、前記ワークと前記作業部との相対位置を変化させるための可動部と、を備えるロボットと、
前記ワークテーブルの上方に設けられたカメラと、
前記ロボットの前記可動部および前記カメラを制御するための制御装置と、を含み、
前記制御装置は、前記可動部を目標量だけ駆動させるよう前記可動部を駆動した後、前記カメラを駆動し、前記ワークテーブルを含むカメラ画像を取得し、さらに、前記取得したカメラ画像から、前記可動部の実際の駆動量を算出し、前記実際の駆動量と前記目標量との差に基づいて、前記可動部の位置制御のキャリブレーションを実行するよう構成されていることを特徴とするキャリブレーションシステム。
【0008】
(2)前記ワークテーブルの作業面をXY平面としたとき、前記可動部は、X軸方向に移動可能なX軸可動部と、Y軸方向に移動可能なY軸可動部と、を含んでおり、
前記作業部および前記カメラは、前記X軸可動部によって前記X軸方向に移動可能に設けられており、
前記ワークテーブルは、前記Y軸可動部によって前記Y軸方向に移動可能に設けられている上記(1)に記載のキャリブレーションシステム。
【0009】
(3)前記可動部は、Z軸方向に移動可能なZ軸可動部をさらに含んでおり、
前記Z軸可動部は、前記X軸可動部に取り付けられており、
前記作業部および前記カメラは、前記Z軸可動部に取り付けられ、これにより、前記X軸方向および前記Z軸方向に移動可能である上記(2)に記載のキャリブレーションシステム。
【0010】
(4)前記カメラは、前記カメラの視野内に、前記ワークに対する作業を実行する前記作業部の先端部が位置するような向きおよび位置で、前記ワークテーブルの上方に設けられている上記(1)ないし(3)のいずれかに記載のキャリブレーションシステム。
【0011】
(5)前記制御装置が前記可動部の前記キャリブレーションを実行する際、前記ワークテーブル上にはキャリブレーションチャートが載置されており、
前記制御装置は、前記可動部を前記目標量だけ駆動させるよう前記可動部を制御する前に、前記カメラを駆動し、前記ワークテーブル上に載置された前記キャリブレーションチャートを撮影し、カメラキャリブレーションを実行するよう構成されている上記(1)ないし(4)のいずれかに記載のキャリブレーションシステム。
【0012】
(6)前記キャリブレーションチャートは、少なくとも1つのマーカーを含んでおり、
前記カメラが取得した前記カメラ画像は、前記マーカーを含んでおり、
前記制御装置は、前記取得したカメラ画像における前記マーカーの位置から、前記可動部の前記実際の駆動量と前記目標量との前記差を算出する上記(5)に記載のキャリブレーションシステム。
【0013】
(7)前記制御装置は、前記目標量をランダムに変更して、前記可動部の前記実際の駆動量と前記目標量との前記差を算出する工程を複数回繰り返し、複数回の前記工程によって取得された複数の前記差に基づいて、前記可動部の前記キャリブレーションを実行するよう構成されている上記(1)ないし(6)のいずれかに記載のキャリブレーションシステム。
【0014】
(8)ワークテーブルと、前記ワークテーブル上に載置されたワークに対する作業を実行するための作業部と、前記ワークと前記作業部との相対位置を変化させるための可動部と、を備えるロボットのためのキャリブレーション方法であって、
前記可動部を目標量だけ駆動させるよう前記可動部を制御する工程と、
前記ワークテーブルの上方に設けられたカメラを用いて、前記ワークテーブルを含むカメラ画像を取得する工程と、
前記取得したカメラ画像から、前記可動部の実際の駆動量を算出する工程と、
前記実際の駆動量と前記目標量との差に基づいて、前記可動部の位置制御のキャリブレーションを実行する工程と、を含むことを特徴とするキャリブレーション方法。
【発明の効果】
【0015】
本発明によれば、カメラを用いてロボットの可動部の駆動の目標量と実際の駆動量との差を直接算出することができるので、ロボットの可動部の位置制御のキャリブレーションを正確に実行することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明のキャリブレーションシステムを概略的に示すブロック図である。
【
図2】
図1に示すロボット、カメラ、およびキャリブレーションチャートを示す斜視図である。
【
図4】
図1に示すキャリブレーションチャートの平面図である。
【
図5】
図1に示す制御装置を概略的に示すブロック図である。
【
図6】カメラ画像の画像座標、カメラワールド座標、およびロボット制御軸の関係を示すための図である。
【
図7】参照マーカーの目標位置と実際の移動後位置の差を説明するための図である。
【
図8】本発明のキャリブレーション方法を示すフローチャートである。
【
図9】
図8に示す可動部のキャリブレーション処理をより詳細に示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明のキャリブレーションシステムおよびキャリブレーション方法を、添付図面に示す好適な実施形態に基づいて、説明する。なお、以下で参照する各図は、本発明の説明のために用意された模式的な図である。図面に示された各構成要素の寸法(長さ、幅、厚さ等)は、必ずしも実際の寸法を反映したものではない。また、各図において、同一または対応する要素には、同じ参照番号が付されている。以下の説明において、各図のZ軸の正方向を「上側」といい、Z軸の負方向を「下側」ということがある。
【0018】
最初に、
図1~
図7を参照して、本発明の実施形態に係るキャリブレーションシステムを詳述する。
図1は、本発明のキャリブレーションシステムを概略的に示すブロック図である。
図2は、
図1に示すロボット、カメラ、およびキャリブレーションチャートを示す斜視図である。
図3は、
図2中のカメラの周辺領域の拡大図である。
図4は、
図1に示すキャリブレーションチャートの平面図である。
図5は、
図1に示す制御装置を概略的に示すブロック図である。
図6は、カメラ画像の画像座標、カメラワールド座標、およびロボット制御軸の関係を示すための図である。
図7は、参照マーカーの目標位置と実際の移動後位置の差を説明するための図である。なお、
図2中では、図面の簡略化のため、ロボットの各コンポーネントおよびカメラと制御装置とを接続する配線は省略されていることに留意されたい。
【0019】
<キャリブレーションシステム100>
図1に概略的に示されているキャリブレーションシステム100は、ロボット1の可動部13の位置制御のキャリブレーション(較正)を実行するために用いられる。キャリブレーションシステム100は、ロボット1と、カメラ2と、ロボット1のワークテーブル11上に載置されたキャリブレーションチャート3と、ロボット1およびカメラ2の制御を行うための制御装置4と、を含んでいる。
【0020】
ロボット1は、ワークテーブル11上に載置されたワーク(図示せず)に対して、部品の取り付け、塗布や切削等の加工、導電検査等の所定の作業を行う機能を有している。典型的には、ロボット1は、ワーク(例えば、回路基板や精密部品)に対して精密作業を行い、プロダクトまたは仕掛品を得るための産業用ロボットである。ロボット1は、ワークテーブル11と、ワークテーブル11上に載置されるワークに対する作業を実行するための作業部12と、ワークテーブル11と作業部12との相対位置を変化させるための可動部13と、を備えている。
【0021】
図2に示されているように、ワークテーブル11は、平板状の部材であり、その上に作業部12によって作業が施されるワークが載置される。作業部12は、ワークテーブル11上に載置されたワークに対して所定の作業を実行するために用いられる。ワークに対して実行すべき作業の内容に応じて、様々なツールを、作業部12として用いることができる。例えば、ワークに対して熱硬化性樹脂等の接着剤の塗布を行う場合には、ノズルを作業部12として用いることができ、ワークに対して部品の組み付けを行う場合には、ピックアップハンドを作業部12として用いることができ、ワークに対して導電検査を行う場合には、コンタクトプローブを作業部12として用いることができる。
【0022】
作業部12は、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、所定の動作を実行する。例えば、作業部12がノズルである場合には、作業部12は、制御装置4からの制御に応じて、ノズル内部に充填された液体材料(例えば、熱硬化性樹脂等の接着剤)をワークに対して塗布する動作を実行する。以下、作業部12は、制御装置4からの制御に応じて、液滴をワークのワークポイント(作業対象点)に対して塗布するためのノズルであるとして説明を提供するが、上述のように作業部12はノズルに限られない点に留意されたい。制御装置4からの制御に応じて、可動部13が駆動され、作業部12とワークテーブル11上に載置されたワークとの相対位置が調整された後、制御装置4は、作業部12に対して制御信号を送信し、ワークに対して自身の内部に充填された液体材料をワークのワークポイントに対して吐出する。
【0023】
可動部13は、ロボット1の土台として機能するベース131と、ベース131の上方にベース131の上面とは離間して設けられたX軸可動部13Xと、ベース131の上面上に設けられたY軸可動部13Yと、X軸可動部13Xに取り付けられたZ軸可動部13Zと、を備えている。
【0024】
X軸可動部13Xは、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、X軸ステージ133Xを、
図2中のX軸方向に沿ってスライド移動させる機能を有している。X軸可動部13Xは、ベース131のX軸方向の両端側にそれぞれ立設するよう設けられた一対の脚部131Xと、ベース131の上面から離間し、一対の脚部131Xの間を架橋するよう設けられ、図中のX軸に沿って延伸するX軸レール132Xと、X軸レール132X上をスライド移動可能に設けられた箱形のX軸ステージ133Xと、X軸ステージ133Xをスライド移動させるためのステッピングモーター等のX軸アクチュエーター(図示せず)と、を備えている。制御装置4からX軸アクチュエーターに制御信号が送信されると、X軸アクチュエーターが制御信号に応じて駆動し、X軸ステージ133Xを、X軸レール132X上でスライド移動させる。
【0025】
Y軸可動部13Yは、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、Y軸ステージ132Yを、
図2中のY軸方向に沿ってスライド移動させる機能を有している。Y軸可動部13Yは、ベース131の上面上に設けられ、図中のY軸に沿って延伸するY軸レール131Yと、Y軸レール131Y上をスライド移動可能に設けられた平板状のY軸ステージ132Yと、Y軸ステージ132Yをスライド移動させるためのステッピングモーター等のY軸アクチュエーター(図示せず)と、を備えている。制御装置4からY軸アクチュエーターに制御信号が送信されると、Y軸アクチュエーターが制御信号に応じて駆動し、Y軸ステージ132YをY軸レール131Y上でスライド移動させる。また、
図2に示されているように、Y軸ステージ132Yの面は、図中のXY平面と一致している。また、ロボット1のワークテーブル11が、Y軸ステージ132Y上に固定されている。
【0026】
Z軸可動部13Zは、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、Z軸ステージ131Zを、
図2中のZ軸方向に沿ってスライド移動させる機能を有している。Z軸可動部13Zは、X軸可動部13XのX軸ステージ133X上に設けられた平板状のZ軸ステージ131Zと、Z軸ステージ131Zをスライド移動させるためのステッピングモーター等のZ軸アクチュエーター(図示せず)と、を備えている。制御装置4からZ軸アクチュエーターに制御信号が送信されると、Z軸アクチュエーターが制御信号に応じて駆動し、Z軸ステージ131ZをX軸ステージ133X上で、Z軸方向に沿ってスライド移動させる。また、
図2に示されているように、Z軸ステージ131Zの面方向は、図中のXZ平面と一致している。また、作業部12およびカメラ2が、固定具によって、Z軸ステージ131Zの面上に固定されている。
【0027】
このように図示の形態では、ワークテーブル11は、Y軸可動部13YのY軸ステージ132Y上に取り付けられている。一方、Z軸可動部13ZのZ軸ステージ131Zは、X軸可動部13XのX軸ステージ133Xに取り付けられており、さらに、作業部12およびカメラ2が、Z軸ステージ131Zに取り付けられている。したがって、制御装置4は、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zを駆動することにより、作業部12とワークテーブル11上に載置されたワークとの相対位置を変更することができる。
【0028】
なお、本明細書において、用語「駆動量」および「駆動の目標量」は、それぞれ、制御装置4からの制御によって駆動され、スライド移動された可動部13の各ステージの「移動量」および「移動の目標量」を指す。例えば、「X軸可動部13Xの駆動量」といった場合、制御装置4からの制御によって駆動されたX軸アクチュエーターによってスライド移動されたX軸ステージ133Xの移動量を指し、「可動部13の駆動量」といった場合、制御装置4からの制御によって駆動されたX軸アクチュエーター、Y軸アクチュエーター、およびZ軸アクチュエーターによってそれぞれスライド移動されたX軸ステージ133X、Y軸ステージ132Y、およびZ軸ステージ131Zの移動ベクトルの和を指す。
【0029】
カメラ2は、ワークテーブル11の上方において、作業部12とワークテーブル11を撮影可能に設けられた任意の撮像デバイスである。
図2に示されているように、カメラ2は、可動部13のZ軸可動部13ZのZ軸ステージ131Zに取り付けられている。カメラ2は、図示しない配線によって制御装置4に接続されており、作業部12とワークテーブル11を含むカメラ画像をリアルタイムで取得し、取得したカメラ画像を制御装置4に送信する。制御装置4は、カメラ2から送信されたカメラ画像を参照することにより、作業部12とワークテーブル11上に載置されたワークとの相対位置をリアルタイムで確認することができる。したがって、カメラ2は、作業部12とワークテーブル11上に載置されたワークとの相対位置を観察するための視覚センサーとして機能する。
【0030】
図3は、
図2中のカメラ2の周辺領域の拡大図を示している。なお、
図3中においてカメラ2の先端から下方に向けて放射状に延伸する点線は、カメラ2の視野を表現している。
図3に示されているように、カメラ2は、カメラ2の視野内に常に、ワークに対する作業を実行する作業部12の先端部121が位置するような向きおよび位置で、Z軸ステージ131Zに取り付けられている。このように、カメラ2および作業部12の双方がZ軸ステージ131Zに取り付けられているため、カメラ2と作業部12との相対位置は常に一定である。また、作業部12の先端部121は、作業部12がノズルである場合には、液滴を吐出するノズル先端であり、作業部12がピックアップハンドである場合には、ワークを把持するハンド先端部であり、作業部12がコンタクトプローブである場合には、プローブ先端である。
【0031】
このような構成により、ロボット1がワークに対する作業を実行する際にカメラ2によってリアルタイムで取得されるカメラ画像は、作業部12の先端部121とワークテーブル11上のワークを常に含んでいる。そのため、制御装置4は、カメラ画像を参照することにより、作業部12とワークテーブル11上に載置されたワークとの相対位置をリアルタイムで直接確認することができ、作業部12とワークテーブル11上に載置されたワークとの相対位置の制御をより正確に実行することができる。なお、後述するように、カメラ2によって取得されるカメラ画像は、ロボット1の可動部13の位置制御のキャリブレーションにも利用される。
【0032】
図4には、本発明のキャリブレーションシステム100において用いられるキャリブレーションチャート3が示されている。キャリブレーションチャート3は、平板状の部材であり、その上面に、インク等の着色料によって、少なくとも1つのマーカー31が形成されている。図示の形態では、キャリブレーションチャート3は、等間隔で格子状に配置された複数のマーカー31を含んでいる。キャリブレーションチャート3は、本発明のキャリブレーションシステム100を用いてロボット1の可動部13の位置制御のキャリブレーションを実行する際に、キャリブレーションシステム100の管理者や使用者等によって、少なくとも1つのマーカー31がカメラ2の視野内に位置するよう、ロボット1のワークテーブル11上に配置される。
【0033】
図5には、制御装置4のブロック図が示されている。制御装置4は、ロボット1の各コンポーネント(具体的には、作業部12および可動部13)およびカメラ2に接続されている。制御装置4は、ロボット1の各コンポーネントおよびカメラ2を制御する機能を有している。制御装置4は、単体のデバイスとして実施されていてもよいし、デスクトップコンピューター、ラップトップコンピューター、ノートパソコン、ワークステーション、タブレット型コンピューター、携帯電話、スマートフォン、PDA、ウェアラブル端末、サーバー等の任意の演算デバイス内において実施されていてもよい。
【0034】
図5に示されているように、制御装置4は、制御装置4の動作を実行するための1つ以上のプロセッサー41と、制御装置4への入力および制御装置4からの出力を実行するためのI/O(インプット/アウトプット)インターフェース42と、制御装置4の処理を実行するために用いられるデータ44およびモジュール45を保存している1つ以上のメモリー43と、を備えている。
【0035】
1つ以上のプロセッサー41は、1つ以上のマイクロプロセッサー、マイクロコンピューター、マイクロコントローラー、デジタル信号プロセッサー(DSP)、中央演算処理装置(CPU)、メモリーコントロールユニット(MCU)、画像処理用演算処理装置(GPU)、状態機械、論理回路、特定用途向け集積回路(ASIC)、またはこれらの組み合わせ等のコンピューター可読命令に基づいて信号操作等の演算処理を実行する演算ユニットである。特に、プロセッサー41は、メモリー43内に保存されているコンピューター可読命令(例えば、データ、プログラム、モジュール等)をフェッチし、演算、信号操作および制御を実行するよう構成されている。
【0036】
I/Oインターフェース42は、ウェブインターフェース、グラフィカルユーザーインターフェース(GUI)等の様々なソフトウェアインターフェースおよびハードウェアインターフェースを含む。例えば、I/Oインターフェース42は、キーボード、マウス、タッチパネルディスプレイ、外部メモリー、プリンター、ディスプレイのような周辺デバイスのためのインターフェースである。I/Oインターフェース42は、キーボード、マウス、タッチパネルディスプレイのような入力デバイスを用いた制御装置4への入力およびディスプレイ、プリンター、外部メモリーへの制御装置4からの出力を可能とする。また、I/Oインターフェース42は、制御装置4が、インターネット等のネットワークを介して、外部に設けられたウェブサーバーやデータサーバーのような任意の外部デバイスと通信を行うことを可能としてもよい。
【0037】
メモリー43は、揮発性記憶媒体(例えば、RAM、SRAM、DRAM)、不揮発性記憶媒体(例えば、ROM、EPROM、EEPROM、フラッシュメモリー、ハードディスク、ソリッドステートドライブ、SDカード、光ディスク、CD-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスク、磁気カセット、磁気テープ、磁気ディスク)、またはこれらの組み合わせを含むコンピューター可読媒体である。
【0038】
メモリー43は、プロセッサー41と通信可能に接続されており、プロセッサー41により実行可能な複数のモジュール45、および、複数のモジュール45による処理に必要なデータ44を保存している。また、メモリー43は、複数のモジュール45の1つ以上によって受信、処理、生成されたデータや、複数のモジュール45による処理を実行するために必要なデータを一時保存する機能を備えている。
【0039】
データ44は、カメラ2が取得したカメラ画像に対する歪み補正等の画像処理およびカメラ2のカメラキャリブレーションを実行するために必要なカメラパラメーター441と、ロボット1の可動部13の位置制御のキャリブレーション用の駆動補正パラメーター442と、制御装置4の処理を実行するために必要な任意の数のその他データ443と、を含んでいる。
【0040】
カメラパラメーター441は、カメラ2のレンズの焦点距離、収差特性、カメラ2の画像センサーのセンサー特性等のカメラ2のレンズおよび画像センサーに関するパラメーターである。カメラパラメーター441は、キャリブレーションシステム100の構築前に事前に取得または測定され、メモリー43内に保存されている。
【0041】
駆動補正パラメーター442は、制御装置4から可動部13に出力される出力値を補正するためのパラメーターである。制御装置4が、可動部13(X軸可動部13X、Y軸可動部13Y、および/またはZ軸可動部13Z)を所定の目標量だけ駆動させるために、可動部13に対して、目標量に対応する出力値を可動部13に出力したとしても、可動部13の部品の寸法誤差、治具熱膨張、軸ずれ等の影響により、駆動の目標量と、実際の駆動量との間に差が生じてしまう。駆動補正パラメーター442は、このような可動部13の駆動の目標量と実際の駆動量との差を最小化するために用いられる。可動部13の駆動の目標量と実際の駆動量との間の相関関係は、典型的には、高次の多項式で表され、駆動補正パラメーター442は、該高次の多項式の各項の係数である。このような駆動補正パラメーター442は、後述する本発明のキャリブレーション方法によって任意のタイミング(ロボット1の稼働開始時、半日に1回、日に1回、月に1回等)で取得され、メモリー43内に保存される。なお、一度も本発明のキャリブレーション方法が実行されていない場合には、駆動補正パラメーター442は、全てゼロである。この場合、駆動補正パラメーター442を用いても、制御装置4から可動部13への出力値は補正されない。
【0042】
モジュール45は、ルーティーン、アプリケーション、プログラム、アルゴリズム、ライブラリー、オブジェクト、コンポーネント、データ構造、またはこれらの組み合わせ等のプロセッサー41により実行可能なコンピューター可読命令である。
【0043】
モジュール45は、カメラ2を制御するためのカメラ制御モジュール451と、カメラ2に対するカメラキャリブレーションを実行するためのカメラキャリブレーションモジュール452と、ロボット1を制御するためのロボット制御モジュール453と、カメラ2が取得したカメラ画像内におけるロボット制御軸(すなわち、ロボット1の可動部13の可動方向であるX軸およびY軸)を特定するためのロボット制御軸特定モジュール454と、ロボット1の可動部13の位置制御のキャリブレーションを実行するための可動部キャリブレーションモジュール455と、制御装置4が提供する機能を補うための任意の数のその他モジュール456と、を含んでいる。
【0044】
プロセッサー41は、メモリー43内に保存されている各種モジュールを用いることにより、所望の機能を提供することができる。例えば、プロセッサー41は、可動部キャリブレーションモジュール455を用いることにより、ロボット1の可動部13の位置制御のキャリブレーションのための処理を実行することができる。また、各モジュールは、他のモジュールを使用することも可能である。
【0045】
カメラ制御モジュール451は、カメラ2を駆動し、カメラ画像を取得する機能と、カメラ2によって取得されたカメラ画像に対して補正を施す機能と、を有している。カメラ制御モジュール451は、カメラ2からリアルタイムで送信されるカメラ画像に対して、メモリー43内に保存されているカメラパラメーター441を用いて歪み補正等の画像処理を施す。カメラ制御モジュール451によって取得および補正されたカメラ画像は、メモリー43内に一時的に保存され、制御装置4の各モジュールによって用いられる。
【0046】
カメラキャリブレーションモジュール452は、カメラ2のカメラキャリブレーションを実行する機能を有している。カメラキャリブレーションは、「camera resectioning」とも称され、カメラ2が取得したカメラ画像の画像座標系と、カメラ2のカメラワールド座標系と、現実世界の3次元ワールド座標系との間の投影関係を特定するための処理である。
【0047】
前述のように、本発明のキャリブレーションシステム100によるロボット1の可動部13の位置制御のキャリブレーションが実行される際には、キャリブレーションチャート3がロボット1のワークテーブル11に載置される。そのため、カメラ2によって取得されるカメラ画像は、キャリブレーションチャート3を含んでいる。カメラキャリブレーションモジュール452は、キャリブレーションチャート3を含むカメラ画像およびメモリー43内に保存されているカメラパラメーター441を用いて、カメラ2のカメラキャリブレーションを実行する。
【0048】
図6には、カメラキャリブレーションによって特定された、カメラ画像におけるカメラワールド座標系の一例が示されている。
図6中の点線で示されている軸が、カメラ2のカメラワールド座標軸である。このように、ワークテーブル11上のキャリブレーションチャート3に対するカメラ2の位置、回転、および傾きによって、カメラ2のカメラワールド座標系の座標軸とカメラ画像の画像座標系の座標軸は一致しない。そのため、カメラキャリブレーションによって、カメラ画像の画像座標系と、カメラ2のカメラワールド座標系との投影関係を特定する必要がある。カメラキャリブレーションにより、カメラ画像におけるキャリブレーションチャート3の3次元ワールド座標が確認可能となり、カメラ画像内のマーカー31の位置が変化した際に、カメラ画像内でのマーカー31の位置の変化から、現実でのマーカー31の位置の変化を、現実世界の単位(例えば、mm)で計測できるようになる。カメラキャリブレーションモジュール452によるカメラキャリブレーションは、幾何光学の分野においてよく知られた任意の方法(例えば、カメラの内部パラメーターと外部パラメーターを用いた座標変換方法)を用いて実行することができる。
【0049】
ロボット制御モジュール453は、ロボット1を制御する機能を有している。より具体的には、ロボット制御モジュール453は、ロボット1の可動部13を駆動させ、ロボット1の作業部12とワークテーブル11上のワークとの相対位置を変化させる機能と、作業部12を駆動させ、ワークに対して所定の作業を実行する機能と、を有している。
【0050】
ロボット制御モジュール453は、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zをそれぞれ独立に駆動させることができる。なお、ロボット制御モジュール453がロボット1のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zを駆動していない初期状態の作業部12の位置を初期位置という。ロボット制御モジュール453は、ロボット1の作業部12とワークテーブル11上のワークとの相対位置を変化させるために、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれの駆動の目標量を決定し、X軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれ用の出力値を決定する。なお、作業部12が初期位置にある場合、作業部12の先端部121とワークのワークポイントとの間のZ軸方向の離間距離は、実行される作業に応じて略一定であるので、可動部13のZ軸可動部13Zの駆動の目標量は、事前に設定された固定値である。
【0051】
X軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれ用の出力値を決定した後、ロボット制御モジュール453は、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zの位置制御の精度を高めるため、メモリー43内に保存されている駆動補正パラメーター442を参照し、X軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれ用の出力値を補正する。
【0052】
その後、ロボット制御モジュール453は、X軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zに対して、補正した出力値を出力し、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zをそれぞれ独立に駆動させ、作業部12とワークとの相対位置を、ワークに対する作業を実行するために適切な所定の状態とする。
【0053】
より具体的には、ロボット制御モジュール453は、最初に、X軸可動部13XおよびY軸可動部13Yを駆動し、作業部12の先端部121とワークのワークポイントとの相対位置がアプローチ条件を満たすようにする。なお、ここでいう「アプローチ条件」とは、作業部12の先端部121とワークのワークポイントとのXY平面上での相対位置が、ロボット制御モジュール453がZ軸可動部13Zを駆動し、作業部12の先端部121をワークのワークポイントに向かってアプローチさせるために適した条件にあるか否かを判断するための条件である。例えば、アプローチ条件は、カメラ画像内における作業部12の先端部121とワークのワークポイントとの離間距離、ワークのワークポイントに対する作業部12の先端部121の角度等である。アプローチ条件は、作業部12の形状、作業部12が行う作業の種類、ワークの形状、大きさ等に応じて事前に設定されている。このように、ロボット制御モジュール453は、X軸可動部13XおよびY軸可動部13Yを駆動し、作業部12の先端部121とワークのワークポイントとの相対位置がアプローチ条件を満たすようにする。
【0054】
また、前述のように、カメラ2は、カメラ2の視野内に常に、ワークに対する作業を行う作業部12の先端部121が位置するような向きおよび位置で、可動部13のZ軸可動部13ZのZ軸ステージ131Zに取り付けられている。カメラ2によって取得されるカメラ画像は、作業部12の先端部121とワークテーブル11上のワークが含まれている。ロボット制御モジュール453は、カメラ2が取得したカメラ画像を参照することにより、作業部12の先端部121とワークのワークポイントとの相対位置をリアルタイムで確認することができる。そのため、ロボット制御モジュール453は、カメラ画像を参照し、作業部12の先端部121とワークのワークポイントとの相対位置がアプローチ条件を満たすか否かを確認する。作業部12の先端部121とワークのワークポイントとの相対位置がアプローチ条件を満たさない場合には、ロボット制御モジュール453は、X軸可動部13XおよびY軸可動部13Yを再度駆動し、作業部12の先端部121とワークのワークポイントとの相対位置を、アプローチ条件が満たされるよう、修正する。
【0055】
その後、ロボット制御モジュール453は、Z軸可動部13Zを駆動し、作業部12の先端部121をワークのワークポイントに対してアプローチさせ、作業部12の先端部121を、ワークのワークポイントに接触または近接させる。その後、ロボット制御モジュール453は、作業部12を駆動し、ワークに対して所定の作業を行う。なお、ワークに対する所定の作業が終了した後、ロボット制御モジュール453は、X軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zをそれぞれ駆動し、作業部12を初期位置に戻してもよいし、ワーク上の別のワークポイントに対する作業を実行するために、可動部13および作業部12を駆動してもよい。
【0056】
なお、上述のようにカメラ2によって取得されるカメラ画像は、作業部12の先端部121を含んでいるので、ロボット制御モジュール453は、カメラ画像を参照することにより、作業部12の先端部121の汚れ、変形、または破損を検出することができる。ロボット1の可動部13の位置制御のキャリブレーション時に作業部12の先端部121の汚れ、変形、または破損が検出された場合には、ロボット制御モジュール453は、I/Oインターフェース42を用いて、ディスプレイ等の出力装置にエラーメッセージを表示させる。これにより、キャリブレーションシステム100の管理者や使用者等は、作業部12の清掃や交換等の適切な処置を取ることができる。
【0057】
図5に戻り、ロボット制御軸特定モジュール454は、カメラ2によって取得されるカメラ画像の画像座標系と、ロボット1のロボット制御軸、すなわち、可動部13の駆動方向であるX軸およびY軸との投影関係を特定するためのロボット制御軸特定処理を実行する機能を有している。具体的には、ロボット制御軸特定モジュール454は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第1のカメラ画像(移動前カメラ画像)を取得する。次に、ロボット制御軸特定モジュール454は、ロボット制御モジュール453を用いて、可動部13のX軸可動部13XおよびY軸可動部13Yをそれぞれ所定量だけ駆動させる。次に、ロボット制御軸特定モジュール454は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第2のカメラ画像(移動後カメラ画像)を取得する。次に、ロボット制御軸特定モジュール454は、第1のカメラ画像中の任意のマーカー31の位置と、第2のカメラ画像中の対応するマーカー31の位置とを比較し、カメラ2が取得したカメラ画像において、可動部13の駆動方向であるX軸およびY軸が、カメラ画像中のどの方向に対応するのかを特定する。
【0058】
図6には、カメラ画像のカメラ座標と、ロボット1のロボット制御軸、すなわち、可動部13の駆動方向であるX軸およびY軸との関係の一例が示されている。このようなロボット制御軸特定処理を実行することにより、可動部13のX軸可動部13XおよびY軸可動部13Yのそれぞれを駆動した際に、カメラ画像内において、マーカー31がどの方向に移動するのかを特定することができる。
【0059】
図5に戻り、可動部キャリブレーションモジュール455は、メモリー43内に保存されている駆動補正パラメーター442を更新、すなわち、可動部13の位置制御のキャリブレーションを実行する機能を有している。具体的には、可動部キャリブレーションモジュール455は、最初に、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第1のカメラ画像(移動前カメラ画像)を取得する。次に、可動部キャリブレーションモジュール455は、第1のカメラ画像内に含まれるマーカー31の1つを参照マーカーとして特定する。さらに、可動部キャリブレーションモジュール455は、可動部13のX軸可動部13XおよびY軸可動部13Yの駆動の目標量を決定する。この際、X軸可動部13XおよびY軸可動部13Yの駆動の目標量は、カメラ2によって取得されるカメラ画像から参照マーカーが外れない範囲で、ランダムに設定される。
【0060】
次に、可動部キャリブレーションモジュール455は、可動部13のX軸可動部13XおよびY軸可動部13Yを目標量だけ駆動した場合に、カメラ画像内において参照マーカーが位置すると予想される目標位置を算出する。次に、可動部キャリブレーションモジュール455は、ロボット制御モジュール453を用いて、X軸可動部13XおよびY軸可動部13Yのそれぞれに対して、駆動の目標量に対応する出力値を出力し、X軸可動部13XおよびY軸可動部13Yのそれぞれを駆動する。
【0061】
X軸可動部13XおよびY軸可動部13Yが駆動された後、可動部キャリブレーションモジュール455は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第2のカメラ画像(移動後カメラ画像)を取得する。次に、可動部キャリブレーションモジュール455は、第2のカメラ画像における参照マーカーの実際の移動後位置を特定する。
図7に示されているように、X軸可動部13XおよびY軸可動部13Yの駆動の目標量と、実際の駆動量との間に差が存在する場合、第2のカメラ画像中における参照マーカーの目標位置と実際の移動後位置は一致しない。可動部キャリブレーションモジュール455は、第2のカメラ画像中における参照マーカーの目標位置と実際の移動後位置の差を算出し、メモリー43内に一時保存する。なお、第2のカメラ画像中における参照マーカーの目標位置と実際の移動後位置の差は、X軸可動部13XおよびY軸可動部13Yの駆動の実際の駆動量と目標量との差に対応する。したがって、可動部キャリブレーションモジュール455は、第2のカメラ画像における参照マーカーの目標位置と実際の移動後位置から、X軸可動部13XおよびY軸可動部13Yの駆動の実際の駆動量と目標量との差を算出する。
【0062】
可動部キャリブレーションモジュール455は、X軸可動部13XおよびY軸可動部13Yの駆動の目標量をランダムに変更して、上述したX軸可動部13XおよびY軸可動部13Yの駆動の実際の駆動量と目標量との差を算出する工程を、可動部13のX軸可動部13XおよびY軸可動部13Yのそれぞれの駆動の目標量と実際の駆動量との間の相関関係を表す近似式(高次の多項式)を算出するのに必要な回数(例えば、500回)だけ繰り返す。その後、可動部キャリブレーションモジュール455は、メモリー43内に一時保存されている複数の差を用いて、可動部13のX軸可動部13XおよびY軸可動部13Yのそれぞれの駆動の目標量と実際の駆動量との間の相関関係を表す近似式(高次の多項式)を算出し、得られた近似式のパラメーターを用いて、メモリー43内の駆動補正パラメーター442を更新する。
【0063】
このような工程を実行することにより、可動部キャリブレーションモジュール455は、ロボット1の可動部13のX軸方向およびY軸方向の位置制御のキャリブレーションを実行することができる。なお、上述の説明では、可動部キャリブレーションモジュール455は、可動部13のX軸可動部13XおよびY軸可動部13Yを駆動し、Z軸可動部13Zを駆動していないが、本発明はこれに限られない。可動部キャリブレーションモジュール455は、X軸可動部13XおよびY軸可動部13Yに加えて、Z軸可動部13Zを駆動し、可動部13のX軸方向、Y軸方向、およびZ軸方向の位置制御のキャリブレーションを実行してもよい。ただし、一般的に、ロボット1のような産業用ロボットでは、Z軸方向の位置制御に要求される精度は、X軸方向およびY軸方向の位置制御に要求される精度よりも大幅に低い。例えば、精密部品の加工では、Z軸方向の位置制御に要求される精度はmm単位であるのに対し、X軸方向およびY軸方向の位置制御に要求される精度はμm以下の単位である。そのため、Z軸方向の位置制御のキャリブレーションの重要度は、X軸方向およびY軸方向の位置制御のキャリブレーションの重要度よりも低い。
【0064】
このように、本発明のキャリブレーションシステム100においては、カメラ2が取得したカメラ画像(第1のカメラ画像および第2のカメラ画像)に基づいて、ロボット1の可動部13の駆動の目標量と実際の駆動量との差を算出し、算出した差に基づいて、ロボット1の可動部13の位置制御のキャリブレーションを実行することができる。カメラ画像に基づいて算出される可動部13の駆動の目標量と実際の駆動量との差は、可動部13の部品の寸法誤差、治具熱膨張、軸ずれ等の影響を全て含んだものであるので、本発明のキャリブレーションシステム100によれば、正確に可動部13の位置制御のキャリブレーションを実行することができる。そのため、本発明のキャリブレーションシステム100によれば、ロボット1を用いたワークに対する作業の精度を向上させることができる。
【0065】
さらに、本発明のキャリブレーションシステム100においては、カメラ2が取得したカメラ画像から、作業部12の先端部121とワークのワークポイントとの相対位置がアプローチ条件を満たしているか否かが確認され、作業部12の先端部121とワークのワークポイントとの相対位置がアプローチ条件を満たしていない場合には、作業部12の先端部121とワークのワークポイントとの相対位置が修正される。そのため、カメラ2が取得したカメラ画像による作業部12の先端部121とワークのワークポイントとの相対位置の修正によって、ロボット1を用いたワークに対する作業の精度をさらに向上させることができる。
【0066】
<キャリブレーション方法S100>
上述したキャリブレーションシステム100を用いて本発明のキャリブレーション方法が実行される。以下、
図8および
図9を参照して、本発明のキャリブレーション方法を詳述する。
図8は、本発明のキャリブレーション方法を示すフローチャートである。
図9は、
図8に示す可動部のキャリブレーション処理をより詳細に示すフローチャートである。
【0067】
本発明のキャリブレーション方法S100は、キャリブレーションシステム100の管理者や使用者等によって任意のタイミング(例えば、ロボット1の稼働開始時、半日に1回、日に1回、月に1回等)で実行される。最初に、工程S110において、キャリブレーションシステム100の管理者や使用者等は、キャリブレーションチャート3を、ロボット1のワークテーブル11上に載置する。この際、キャリブレーションチャート3は、マーカー31がカメラ2の視野内に位置するように配置される。その後、キャリブレーションシステム100の管理者や使用者等は、制御装置4に対して、以下に詳述する工程を開始するための所定の操作を実行する。
【0068】
キャリブレーションシステム100の管理者や使用者等が、制御装置4に対して所定の操作を実行すると、工程S120において、制御装置4のプロセッサー41は、カメラキャリブレーションモジュール452を用いて、カメラ2のカメラキャリブレーションを実行する。具体的には、カメラキャリブレーションモジュール452は、最初に、カメラ制御モジュール451を用いてカメラ2を駆動し、ワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、キャリブレーションチャート3を含むカメラ画像を取得する。次に、カメラキャリブレーションモジュール452は、キャリブレーションチャート3を含むカメラ画像およびメモリー43内に保存されているカメラパラメーター441を用いて、カメラ2のカメラキャリブレーションを実行する。
【0069】
次に、工程S130において、制御装置4のプロセッサー41は、ロボット制御軸特定モジュール454を用いて、カメラ2が取得したカメラ画像の画像座標と、ロボット1のロボット制御軸、すなわち、可動部13の駆動方向であるX軸およびY軸との投影関係を特定するためのロボット制御軸特定処理を実行する。具体的には、ロボット制御軸特定モジュール454は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第1のカメラ画像(移動前カメラ画像)を取得する。次に、ロボット制御軸特定モジュール454は、ロボット制御モジュール453を用いて、可動部13のX軸可動部13XおよびY軸可動部13Yをそれぞれ所定量だけ駆動させる。次に、ロボット制御軸特定モジュール454は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第2のカメラ画像(移動後カメラ画像)を取得する。第2のカメラ画像が取得された後、ロボット制御軸特定モジュール454は、ロボット制御モジュール453を用いて、ロボット1の作業部12を初期位置に戻す。
【0070】
次に、ロボット制御軸特定モジュール454は、第1のカメラ画像中の任意のマーカー31の位置と、第2のカメラ画像中の対応するマーカー31の位置とを比較し、カメラ2が取得したカメラ画像中において、可動部13の駆動方向であるX軸およびY軸はどの方向に対応するのかを特定する。なお、上述の説明では、ロボット制御軸特定モジュール454は、第1のカメラ画像を取得したが、工程S120において取得されたカメラ画像を、第1のカメラ画像として利用してもよい。この場合、第1のカメラ画像を取得するための処理が省略される。
【0071】
次に、工程S140において、制御装置4のプロセッサー41は、可動部キャリブレーションモジュール455を用いて、可動部13の位置制御のキャリブレーションを実行する。
図9は、工程S140において実行される可動部13の位置制御のキャリブレーション処理をより詳細に示している。工程S141において、可動部キャリブレーションモジュール455は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第1のカメラ画像(移動前カメラ画像)を取得する。次に、工程S142において、可動部キャリブレーションモジュール455は、第1のカメラ画像内に含まれるマーカー31の1つを参照マーカーとして特定する。さらに、可動部キャリブレーションモジュール455は、可動部13のX軸可動部13XおよびY軸可動部13Yの駆動の目標量を決定する。この際、X軸可動部13XおよびY軸可動部13Yの駆動の目標量は、カメラ2によって取得されるカメラ画像から参照マーカーが外れない範囲で、ランダムに設定される。
【0072】
次に、工程S143において、可動部キャリブレーションモジュール455は、可動部13のX軸可動部13XおよびY軸可動部13Yを目標量だけ駆動した場合に、カメラ画像内において参照マーカーが位置すると予想される目標位置を算出する。工程S144において、可動部キャリブレーションモジュール455は、ロボット制御モジュール453を用いて、X軸可動部13XおよびY軸可動部13Yのそれぞれに対して、駆動の目標量に対応する出力値を出力し、X軸可動部13XおよびY軸可動部13Yのそれぞれを駆動する。
【0073】
工程S145において、可動部キャリブレーションモジュール455は、カメラ制御モジュール451を用いて、ロボット1のワークテーブル11上に載置されているキャリブレーションチャート3を撮影し、第2のカメラ画像(移動後カメラ画像)を取得する。工程S146において、可動部キャリブレーションモジュール455は、第2のカメラ画像における参照マーカーの実際の移動後位置を特定する。さらに、可動部キャリブレーションモジュール455は、第2のカメラ画像中における参照マーカーの目標位置と実際の移動後位置の差を算出し、X軸可動部13XおよびY軸可動部13Yの駆動の実際の駆動量と目標量との差として、メモリー43内に一時保存する。その後、制御装置4のプロセッサー41は、ロボット制御モジュール453を用いて、ロボット1の可動部13を駆動し、ロボット1の作業部12を初期位置に戻してもよい。このように、工程S141~工程S146において、X軸可動部13XおよびY軸可動部13Yの駆動の実際の駆動量と目標量との差の測定が実行される。
【0074】
工程S147において、制御装置4のプロセッサー41は、工程S141~工程S146が、可動部13のX軸可動部13XおよびY軸可動部13Yのそれぞれの駆動の目標量と実際の駆動量との間の相関関係を表す近似式(高次の多項式)を算出するのに必要な回数(例えば、500回)だけ実行されたか否かを判別する。工程S141~工程S146が必要な回数だけ実行されていないと判別された場合には、処理は、工程S141に戻る。一方、工程S141~工程S146が必要な回数だけ実行されていると判別された場合には、処理は、工程S148に進む。
【0075】
工程S148において、制御装置4のプロセッサー41は、可動部キャリブレーションモジュール455を用いて、メモリー43内に一時保存されている複数の差から、可動部13のX軸可動部13XおよびY軸可動部13Yのそれぞれの駆動の目標量と実際の駆動量との間の相関関係を表す近似式(高次の多項式)を算出し、得られた近似式のパラメーターを用いて、メモリー43内の駆動補正パラメーター442を更新する。工程S148が終了すると、工程S140の処理が完了し、キャリブレーション方法S100も終了する。
【0076】
以上、本発明のキャリブレーションシステムおよびキャリブレーション方法を図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではない。本発明の各コンポーネントの構成は、同様の機能を発揮し得る任意のものと置換することができ、あるいは、本発明の構成に任意の構成のものを付加することができる。
【0077】
本発明の属する分野および技術における当業者であれば、本発明の原理、考え方、および範囲から有意に逸脱することなく、記述された本発明のキャリブレーションシステムおよびキャリブレーション方法の構成の変更を実行可能であろうし、変更された構成を有するキャリブレーションシステムおよびキャリブレーション方法もまた、本発明の範囲内である。
【0078】
例えば、
図1~
図7を参照して詳述されたキャリブレーションシステムのコンポーネントの数や種類は、説明のための例示にすぎず、本発明は必ずしもこれに限られない。本発明の原理および意図から逸脱しない範囲において、任意のコンポーネントが追加若しくは組み合わされ、または任意のコンポーネントが削除された態様も、本発明の範囲内である。また、キャリブレーションシステムの各コンポーネントは、ハードウェア的に実現されていてもよいし、ソフトウェア的に実現されていてもよいし、これらの組み合わせによって実現されていてもよい。
【0079】
また、
図8および
図9に示されたキャリブレーション方法の工程の数や種類は、説明のための例示にすぎず、本発明は必ずしもこれに限られない。本発明の原理および意図から逸脱しない範囲において、任意の工程が、任意の目的で追加若しくは組み合わされ、または、任意の工程が削除される態様も、本発明の範囲内である。
【符号の説明】
【0080】
1…ロボット 11…ワークテーブル 12…作業部 121…先端部 13…可動部 131…ベース 13X…X軸可動部 131X…脚部 132X…X軸レール 133X…X軸ステージ 13Y…Y軸可動部 131Y…Y軸レール 132Y…Y軸ステージ 13Z…Z軸可動部 131Z…Z軸ステージ 2…カメラ 3…キャリブレーションチャート 31…マーカー 4…制御装置 41…プロセッサー 42…I/Oインターフェース 43…メモリー 44…データ 441…カメラパラメーター 442…駆動補正パラメーター 443…その他データ 45…モジュール 451…カメラ制御モジュール 452…カメラキャリブレーションモジュール 453…ロボット制御モジュール 454…ロボット制御軸特定モジュール 455…可動部キャリブレーションモジュール 456…その他モジュール 100…キャリブレーションシステム S100…キャリブレーション方法 S110、S120、S130、S140…工程 S141~S148…工程