(57)【要約】【課題】ロボットのキャリブレーション精度を簡易に評価できる方法を提供すること。【解決手段】キャリブレーション精度の評価方法は、複数の格子点を有する３次元格子構造を設定する設定ステップと、前記３次元格子構造の１つの格子点から所定距離離れた他の格子点へ、キャリブレーションされているロボットのアーム先端を移動させる移動指示ステップと、前記ロボットに出された移動指示値と、実際に前記ロボットのアーム先端が移動した距離との差を算出する算出ステップと、前記移動指示ステップと前記算出ステップを、前記１つの格子点と前記他の格子点の格子点ペア以外の格子点ペアを用いて所定回数繰り返す繰り返し制御ステップと、前記繰り返し制御ステップにより取得された複数の前記差を提示する提示ステップと、を有する。【選択図】図３
2019177450.tif 000002
【特許請求の範囲】
【請求項１】
キャリブレーションの精度を評価する方法であって、
複数の格子点を有する３次元格子構造を設定する設定ステップと、
前記３次元格子構造の１つの格子点から所定距離離れた他の格子点へ、キャリブレーションされているロボットのアーム先端を移動させる移動指示ステップと、
前記ロボットに出された移動指示値と、実際に前記ロボットのアーム先端が移動した距離との差を算出する算出ステップと、
前記移動指示ステップと前記算出ステップを、前記１つの格子点と前記他の格子点の格子点ペア以外の格子点ペアを用いて所定回数繰り返す繰り返し制御ステップと、
前記繰り返し制御ステップにより取得された複数の前記差を提示する提示ステップと、
を有する方法。
【請求項２】
前記繰り返し制御ステップは、前記３次元格子構造の全ての格子点ペアを用いて実行される請求項１に記載の方法。
【請求項３】
前記実際にロボットのアーム先端が移動した距離を、レーザトラッカを使用して取得する取得ステップをさらに有する請求項１または２に記載の方法。
【請求項４】
前記移動指示ステップから前記提示ステップは、前記所定距離を変更して、少なくとも１回繰り返し実行される請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記ロボットは６軸ロボットである請求項１〜４のいずれか１項に記載の方法。
【請求項６】
キャリブレーションの精度を評価する装置であって、
複数の格子点を有する３次元格子構造を設定する設定部と、
前記３次元格子構造の１つの格子点から所定距離離れた他の格子点へ、キャリブレーションされているロボットのアーム先端を移動させる移動指示部と、
前記移動指示部から前記ロボットに出された移動指示値と、実際に前記ロボットのアーム先端が移動した距離との差を算出する算出部と、
前記移動指示部による移動と前記算出部による算出を、前記１つの格子点と前記他の格子点の格子点ペア以外の格子点ペアを用いて所定回数繰り返す繰り返し制御部と、
前記所定回数の繰り返しにより取得された複数の前記差を提示する提示部と、
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャリブレーション精度の評価方法及び評価装置に関する。
【背景技術】
【０００２】
多関節ロボットとして６軸ロボットが知られている。６軸ロボットを工場等で組み立てる場合、ロボットを設計値通りに組み立てることは困難であり、組み立て後のロボットは組立誤差を有することが多い。組立誤差を小さくするために、通常、キャリブレーションが行われる。特許文献１には、６軸ロボットの軸間オフセットのずれ量を計測して、当該ずれ量を補正する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−３９６４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１には、６軸ロボットの軸間オフセットのずれ量を計測して、当該ずれ量を補正する方法が開示されているが、オフセットの補正（キャリブレーション）が正しく行われたか否かを評価する方法は開示されていない。
本発明の目的は、ロボットのキャリブレーション精度を簡易に評価できる方法を提供することである。
【課題を解決するための手段】
【０００５】
本発明の１つの態様によるキャリブレーション精度の評価方法は、複数の格子点を有する３次元格子構造を設定する設定ステップと、前記３次元格子構造の１つの格子点から所定距離離れた他の格子点へ、キャリブレーションされているロボットのアーム先端を移動させる移動指示ステップと、前記ロボットに出された移動指示値と、実際に前記ロボットのアーム先端が移動した距離との差を算出する算出ステップと、前記移動指示ステップと前記算出ステップを、前記１つの格子点と前記他の格子点の格子点ペア以外の格子点ペアを用いて所定回数繰り返す繰り返し制御ステップと、前記繰り返し制御ステップにより取得された複数の前記差を提示する提示ステップと、を有する。
【発明の効果】
【０００６】
本発明によれば、ロボットのキャリブレーション精度を簡易に評価することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係る６軸ロボットの斜視図。
【図２】図１に示した６軸ロボットの左側面図。
【図３】実施形態で使用する３次元格子構造の部分斜視図。
【図４】実施形態で使用する３次元格子構造の全体斜視図。
【図５】キャリブレーション精度を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための実施形態を詳細に説明する。以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置やシステムの構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されない。
【０００９】
（ロボットの構成）
図１は、本発明の実施形態にかかるロボット１の斜視図である。説明の便宜上、図１の上方向をＺ方向と称し、左方向をＹ方向と称し、手前方向をＸ方向と称する。Ｚ方向は、ロボット１の高さ方向である。また、Ｚ方向と反対の方向を下方と称し、Ｚ方向と同じ方向を上方と称する。図２は、図１に示すロボット１の左側面図である。
本実施形態のロボット１は、所定の製品の組立や製造等に用いることができる６軸ロボットであり、例えば、組立ラインや製造ラインに設置されて使用される。図１及び図２に示すように、ロボット１は、６個の回転関節部２Ａ〜２Ｆと２個のアーム３Ａ、３Ｂとを備えている。以下の記載において、６個の回転関節部２Ａ〜２Ｆは、ロボット設置面４側から、第１回転関節部２Ａ、第２回転関節部２Ｂ、第３回転関節部２Ｃ、第４回転関節部２Ｄ、第５回転関節部２Ｅおよび第６回転関節部２Ｆと称する。また、２本のアーム３Ａ、３Ｂは、ロボット設置面４側から、第１アーム３Ａおよび第２アーム３Ｂと称する。図１は、ロボット１がロボット設置面４に略垂直な方向に起立している状態を示している。
【００１０】
ロボット１は、ロボット１の基端部分を構成する支持部材５を備えている。支持部材５は設置面４に固定される。第１回転関節部２Ａは、支持部材５に相対回動可能に連結されている。
第１アーム３Ａ及び第２アーム３Ｂは、細長い円筒状に形成されている。第２アーム３Ｂの外径は、第１アーム３Ａの外径よりも小さい。また、第２アーム３Ｂの長さは、第１アーム３Ａの長さよりも短い。
第１回転関節部２Ａと第２回転関節部２Ｂは相対回動可能に連結され、第２回転関節部２Ｂと第１アーム３Ａの基端（下端）は固定されている。第１アーム３Ａの先端と第３回転関節部２Ｃは固定され、第３回転関節部２Ｃと第４回転関節部２Ｄは相対回動可能に連結されている。第４回転関節部２Ｄと第２アーム３Ｂの下端は相対回動可能に連結され、第２アーム３Ｂの先端と第５回転関節部２Ｅは固定されている。第５回転関節部２Ｅと第６回転関節部２Ｆは相対回動可能に連結されている。第６回転関節部２Ｆには、エンドエフェクタ等（図示せず）が相対回動可能に取り付け可能な取付部７が設けられている。
【００１１】
（回転関節部の構成）
第１回転関節部２Ａ〜第６回転関節部２Ｆのそれぞれは、モータ（図示せず）と、モータに連結される減速機（図示せず）と、モータの回転位置を検出するための位置検出機構（図示せず）と、モータおよび位置検出機構が電気的に接続される回路基板（図示せず）と、モータと減速機と位置検出機構と回路基板とが収容されるケース体６Ａ〜６Ｆとを備えている。各モータは、モータを制御するコントローラ（図示せず）に無線または有線で接続されいる。
【００１２】
（回転関節部とアームの連結構造）
支持部材５と第１回転関節部２Ａとは、第１回転関節部２Ａの出力側部材（図示せず）が支持部材５に固定されることで連結されている。第１回転関節部２Ａの中心軸１０Ａと支持部材５の中心軸とが一致するように支持部材５と第１回転関節部２Ａとが連結されている。
第１回転関節部２Ａと第２回転関節部２Ｂとは、第１回転関節部２Ａの中心軸１０Ａと第２回転関節部２Ｂの中心軸１０Ｂとが直交するように連結されている。また、第１回転関節部２Ａのケース体６Ａと第２回転関節部２Ｂのフランジ部１１Ｂとが直接固定されている。このように、第１回転関節部２Ａの中心軸１０Ａと第２回転関節部２Ｂの中心軸１０Ｂとが直交するように、第１回転関節部２Ａと第２回転関節部２Ｂのフランジ部１１Ｂとが直接固定される。また、支持部材５に対して、第１回転関節部２Ａの中心軸１０Ａを回動軸として、第１回転関節部２Ａと第２回転関節部２Ｂが回動できる。
【００１３】
第２回転関節部２Ｂと第１アーム３Ａとは、第２回転関節部２Ｂの中心軸１０Ｂと第１アーム３Ａの長手方向の中心軸とが直交するように連結されている。また、第２回転関節部２Ｂのケース体６Ｂに第１アーム３Ａの下端が固定されている。
第１アーム３Ａと第３回転関節部２Ｃとは、第１アーム３Ａの長手方向の中心軸と第３回転関節部２Ｃの中心軸１０Ｃとが直交するように連結されている。また、第３回転関節部２Ｃのケース体６Ｃに第１アーム３Ａの先端が固定されている。中心軸１０Ｃは、中心軸１０Ｂに平行である。
【００１４】
第３回転関節部２Ｃと第４回転関節部２Ｄとは、第３回転関節部２Ｃの中心軸１０Ｃと第４回転関節部２Ｄの中心軸１０Ｄとが直交するように連結されている。また、第４回転関節部２Ｄのケース体６Ｄの取付面９Ｄと第３回転関節部２Ｃのフランジ部１１Ｃとが、第３回転関節部２Ｃの中心軸１０Ｃに所定の厚さ（長さ）を有する連結部材１２を介して固定されている。中心軸１０Ｄと中心軸１０Ａは同軸上にある。
【００１５】
第４回転関節部２Ｄと第２アーム３Ｂとは、第４回転関節部２Ｄの中心軸１０Ｄと第２アーム３Ｂの長手方向の中心軸とが一致するように連結されている。また、第４回転関節部２Ｄのフランジ部１１Ｄに第２アーム３Ｂの下端が固定されている。
よって、第１アーム３Ａに対して、第３回転関節部２Ｃの中心軸１０Ｃを回動軸として第２アーム３Ｂが回動できる。
【００１６】
第２アーム３Ｂと第５回転関節部２Ｅとは、第２アーム３Ｂの長手方向の中心軸と第５回転関節部２Ｅの中心軸１０Ｅとが直交するように連結されている。また、第５回転関節部２Ｅのケース体６Ｅに第２アーム３Ｂの先端が固定されている。中心軸１０Ｅは、中心軸１０Ｂと中心軸１０Ｃに平行である。
第５回転関節部２Ｅと第６回転関節部２Ｆとは、第５回転関節部２Ｅの中心軸１０Ｅと第６回転関節部２Ｆの中心軸１０Ｆとが直交するように連結されている。また、第６回転関節部２Ｆのケース体６Ｆの取付面９Ｆと第５回転関節部２Ｅのフランジ部１１Ｅとが直接固定されている。
【００１７】
よって、第１アーム３Ａに対して第３回転関節部２Ｃの中心軸１０Ｃを回動軸とする相対回動が可能となっている第２アーム３Ｂは、第１回転関節部２Ａの中心軸１０Ａを含む平面上で回動し得る。また、第２アーム３Ｂは、中心軸１０Ｃを中心として回動する際に、第１回転関節部２Ａと第５回転関節部２Ｅとが干渉しないように、第１アーム３Ａよりも短くなっている。
【００１８】
（キャリブレーション）
ロボットが工場等で組み立てられる場合、設計値通りに作業者がロボットを組み立てることは困難であり、組み立て後において、組立誤差を含むロボットができてしまう。通常、組立誤差を少なくするためにキャリブレーションが行われる。図１及び図２に示したロボットは、キャリブレーションが行われた後のロボットであるとする。キャリブレーションは種々の手法が公知であるので、本明細書では詳述しない。
【００１９】
（キャリブレーションの評価方法）
本実施形態では、以下に、キャリブレーションが所望の精度で行われたかを評価する方法を説明する。
ロボット１のエンドエフェクタ取付部７が、ロボット１に出された移動指示の通りに移動したかによって、キャリブレーションの精度を評価する。本実施形態では、エンドエフェクタ取付部７の位置を計測する計測器としてレーザトラッカを使用する。レーザトラッカから発せられるレーザを反射するミラーは、エンドエフェクタ取付部７上の位置Ｍに取り付けられているとする。位置Ｍは、ロボットのアーム先端の位置またはツールセンターポジションと称することができる。
【００２０】
本実施形態では、まず、図３に示すような複数の格子点（点０１〜点１８）を有する３次元格子構造ＪＧを設定する。
点１０から見た場合、点０１は点１０からＺ＋方向に１００ｍｍ離れた所にある。点０２は点０１からＸ＋方向に１５０ｍｍ離れた所にある。点０３は点０２からＸ＋方向に１５０ｍｍ離れた所にある。点０４は点０３からＹ＋方向に１５０ｍｍ離れた所にある。点０５は点０４からＸ−方向に１５０ｍｍ離れた所にある。点０６は点０５からＸ−方向に１５０ｍｍ離れた所にある。点０７は点０６からＹ＋方向に１５０ｍｍ離れた所にある。点０８は点０７からＸ＋方向に１５０ｍｍ離れた所にある。点０９は点０８からＸ＋方向に１５０ｍｍ離れた所にある。点１０〜点１８は点０１〜点０９からそれぞれＺ−方向に１００ｍｍ離れた所にある。
なお、実際のキャリブレーション評価に使用する３次元格子構造（図４）は図３に示した格子点よりも多くの格子点を有して構成されているが、図３では説明の都合上、１８個の格子点のみを示している。
【００２１】
３次元格子構造ＪＧを設定した後、ロボット１のエンドエフェクタ取付部７（より具体的には、位置Ｍに取付けられたミラー。つまり、ロボットアーム先端）を点０１に移動し、点０１の位置をレーザトラッカで計測する。その後、ロボットアーム先端をＸ＋方向に１５０．００ｍｍ移動させる。このとき、コントローラからロボット１に「Ｘ＋方向に１５０．００ｍｍ移動」という移動指示が送信される（移動指示値は１５０．００ｍｍ）。当該移動指示に基づいて、ロボットアーム先端（位置Ｍ）は点０１から点０２に移動する。そして点０２に移動したロボットアーム先端の位置をレーザトラッカで計測する。その後、点０１の位置と、点０２に移動したロボットアーム先端の位置との距離を算出する。つまり、ロボット１のアーム先端が実際に移動した距離を算出する。当該算出は、例えば、レーザトラッカが行う。図３の例では、点０１から点０２への実際のアーム先端移動距離は１５０．１３３ｍｍである。ロボット１に出された移動指示値（１５０．００ｍｍ）と実際にアーム先端が移動した距離との差を算出すると、当該差は０．１３３ｍｍとなる。つまり、キャリブレーション後のロボット１の移動精度（つまりキャリブレーション精度）は０．１３３ｍｍとなる。キャリブレーション精度「０．１３３ｍｍ」は「１５０．００ｍｍ移動指示に対する精度」である。キャリブレーション精度「０．１３３ｍｍ」は、２つの格子点（点０１と点０２）の格子点ペアにより求めたキャリブレーション精度である。
【００２２】
次に、ロボットアーム先端を点０２から点０３に移動させる。このとき、コントローラからロボット１に「Ｘ＋方向に１５０．００ｍｍ移動」という移動指示が送信される。当該移動指示に基づいて、ロボットアーム先端は点０２から点０３に移動する。そして点０３に移動したロボットアーム先端の位置をレーザトラッカで計測する。その後、点０２の位置と、点０３に移動したロボットアーム先端の位置との距離を算出する。図３の例では、点０２から点０３への実際のアーム先端移動距離は１５０．１３８ｍｍである。よって、キャリブレーション精度は０．１３８ｍｍとなる。このキャリブレーション精度「０．１３８ｍｍ」も「１５０．００ｍｍ移動指示に対する精度」である。キャリブレーション精度「０．１３８ｍｍ」は、最初の格子点ペア（点０１と点０２）以外の格子点ペア（点０２と点０３）により求めたキャリブレーション精度である。
【００２３】
次に、ロボットアーム先端を点０３から点０４に移動させる。このとき、コントローラからロボット１に「Ｙ＋方向に１５０．００ｍｍ移動」という移動指示が送信される。当該移動指示に基づいて、ロボットアーム先端は点０３から点０４に移動する。そして点０４に移動したロボットアーム先端の位置をレーザトラッカで計測する。その後、点０３の位置と、点０４に移動したロボットアーム先端の位置との距離を算出する。図３の例では、点０３から点０４への実際のアーム先端移動距離は１５０．１１１ｍｍである。よって、キャリブレーション精度は０．１１１ｍｍとなる。このキャリブレーション精度「０．１１１ｍｍ」も「１５０．００ｍｍ移動指示に対する精度」である。
【００２４】
同様の手順により、ロボットアーム先端を点０４から点０９まで順次移動させて、キャリブレーション精度を算出する。図３の例では、点０４から点０５へのアーム先端移動により得られるキャリブレーション精度は０．１３５ｍｍである。点０５から点０６へのアーム先端移動により得られるキャリブレーション精度は０．０７７ｍｍである。点０６から点０７へのアーム先端移動により得られるキャリブレーション精度は０．００６ｍｍである。点０７から点０８へのアーム先端移動により得られるキャリブレーション精度は０．０５４ｍｍである。点０８から点０９へのアーム先端移動により得られるキャリブレーション精度は０．０７３ｍｍである。
このようにして、８個の格子点ペアを用いて、ロボットに出された移動指示値と、実際にロボット１のアーム先端が移動した距離との差を繰り返し算出することによって、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」の値が８個取得できる。
【００２５】
さらに、同様の手順により、ロボットアーム先端を点０９から点０４へ移動させ、キャリブレーション精度を算出する。図３の例では、点０９から点０４へのアーム先端移動により得られるキャリブレーション精度は０．０５８ｍｍである。また、ロボットアーム先端を点０８から点０５へ移動させ、キャリブレーション精度を算出する。点０８から点０５へのアーム先端移動により得られるキャリブレーション精度は０．０２３ｍｍである。また、ロボットアーム先端を点０５から点０２へ移動させ、キャリブレーション精度を算出する。点０５から点０２へのアーム先端移動により得られるキャリブレーション精度は０．０８８ｍｍである。また、ロボットアーム先端を点０６から点０１へ移動させ、キャリブレーション精度を算出する。点０６から点０１へのアーム先端移動により得られるキャリブレーション精度は０．０６９ｍｍである。このようにして、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」の値が４個得られる。
よって、点０１−点０３−点０９−点０７−点０１の平面において、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」の値が合計で１２個取得できる。
【００２６】
次に、ロボットアーム先端を点１０に移動し、点１０から点１８まで順次移動させて、キャリブレーション精度を算出する。図３の例では、点１０から点１１へのアーム先端移動により得られるキャリブレーション精度は０．１９３ｍｍである。点１１から点１２へのアーム先端移動により得られるキャリブレーション精度は０．１８０ｍｍである。点１２から点１３へのアーム先端移動により得られるキャリブレーション精度は０．１２６ｍｍである。点１３から点１４へのアーム先端移動により得られるキャリブレーション精度は０．１４８ｍｍである。点１４から点１５へのアーム先端移動により得られるキャリブレーション精度は０．０９２ｍｍである。点１５から点１６へのアーム先端移動により得られるキャリブレーション精度は０．０１０ｍｍである。点１６から点１７へのアーム先端移動により得られるキャリブレーション精度は０．０８８ｍｍである。点１７から点１８へのアーム先端移動により得られるキャリブレーション精度は０．０７１ｍｍである。さらに、点１８から点１３への移動、点１７から点１４への移動、点１４から点１１への移動、点１５から点１０への移動により、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」を取得する。よって、点１０−点１２−点１８−点１６−点１０の平面において、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」の値が合計で１２個取得できる。
このようにして、図３に示した３次元格子構造を用いると、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」の２４個の値を取得できる。
【００２７】
次に、ロボットアーム先端を点０１に移動し、点０１の位置をレーザトラッカで計測する。その後、ロボットアーム先端をＺ−方向に１００．００ｍｍ移動させる。このとき、コントローラからロボット１に「Ｚ−方向に１００．００ｍｍ移動」という移動指示が送信される。当該移動指示に基づいて、ロボットアーム先端は点０１から点１０に移動する。そして点１０に移動したロボットアーム先端の位置をレーザトラッカで計測する。その後、点０１の位置と、点１０に移動したロボットアーム先端の位置との距離を算出する。つまり、ロボットアーム先端が実際に移動した距離を算出する。図３の例では、点０１から点１０への実際のアーム先端移動距離は１００．２４３ｍｍである。よって、キャリブレーション後のロボット１の移動精度（つまりキャリブレーション精度）は０．２４３ｍｍとなる。キャリブレーション精度「０．２４３ｍｍ」は「１００．００ｍｍ移動指示に対する精度」である。
【００２８】
次に、ロボットアーム先端を点０２に移動し、点０２の位置をレーザトラッカで計測する。その後、ロボットアーム先端を点０２から点１１に移動させる。このとき、コントローラからロボット１に「Ｚ−方向に１００．００ｍｍ移動」という移動指示が送信される。当該移動指示に基づいて、ロボットアーム先端は点０２から点１１に移動する。そして点１１に移動したロボットアーム先端の位置をレーザトラッカで計測する。その後、点０２の位置と、点１１に移動したロボットアーム先端の位置との距離を算出する。図３の例では、点０２から点１１への実際のアーム先端移動距離は１００．２３２ｍｍである。よって、キャリブレーション精度は０．２３２ｍｍとなる。このキャリブレーション精度「０．２３２ｍｍ」も「１００．００ｍｍ移動指示に対する精度」である。
【００２９】
次に、ロボットアーム先端を点０３に移動し、点０３の位置をレーザトラッカで計測する。その後、ロボットアーム先端を点０３から点１２に移動させる。このとき、コントローラからロボット１に「Ｚ−方向に１００．００ｍｍ移動」という移動指示が送信される。当該移動指示に基づいて、ロボットアーム先端は点０３から点１２に移動する。そして点１２に移動したロボットアーム先端の位置をレーザトラッカで計測する。その後、点０３の位置と、点１２に移動したロボットアーム先端の位置との距離を算出する。図３の例では、点０３から点１２への実際のアーム先端移動距離は１００．１３３ｍｍである。よって、キャリブレーション精度は０．１３３ｍｍとなる。このキャリブレーション精度「０．１３３ｍｍ」も「１００．００ｍｍ移動指示に対する精度」である。
【００３０】
同様の手順により、ロボットアーム先端を点０４から点１３まで順次移動させて、キャリブレーション精度を算出する。図３の例では、点０４から点１３へのアーム先端移動により得られるキャリブレーション精度は０．１３９ｍｍである。点０５から点１４へのアーム先端移動により得られるキャリブレーション精度は０．１９１ｍｍである。点０６から点１５へのアーム先端移動により得られるキャリブレーション精度は０．１７３ｍｍである。点０７から点１６へのアーム先端移動により得られるキャリブレーション精度は０．１７８ｍｍである。点０８から点１７へのアーム先端移動により得られるキャリブレーション精度は０．１９５ｍｍである。点０９から点１８へのアーム先端移動により得られるキャリブレーション精度は０．０４６ｍｍである。
このようにして、「１００．００ｍｍ移動指示に対するキャリブレーション精度」の値が９個取得できる。
【００３１】
なお、図３の３次元格子構造ＪＧにおいて、ロボットアーム先端を点０１から点０３まで移動させると、「３００．００ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。ロボットアーム先端を点０１から点０５まで移動させると、「２１２．１３ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。ロボットアーム先端を点０１から点１５まで移動させると、「１８０．２８ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。ロボットアーム先端を点０１から点１４まで移動させると、「２３４．５２ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。
【００３２】
上述したように、本実施形態のキャリブレーション評価で使用する３次元格子構造ＪＧは図３に示した格子点よりも多くの格子点を有している。よって、図３に示していない格子点を用いることにより、「１５０．００ｍｍ移動指示に対するキャリブレーション精度」の値は上記した数より多く取得することができる。また、「１００．００ｍｍ移動指示に対するキャリブレーション精度」の値も、上記した数より多く取得することができる。例えば、３次元格子構造ＪＧは、Ｘ軸＋方向において点１８の１５０．００ｍｍ右横に１つの格子点を有する。また、Ｙ軸−方向において点１０の奥に８個の格子点を有する。Ｚ軸＋方向において点０７の上に２つの格子点を有する。このような３次元格子構造ＪＧが図４に示されている。図３の点０１−点１０−点１６−点０７−点０１で規定される平面が、図４の面Ｓ１である。図３の点０２−点１１−点１７−点０８−点０２で規定される平面が、図４の面Ｓ２である。図３の点０３−点１２−点１８−点０９−点０３で規定される平面が、図４の面Ｓ３である。面Ｓ４は面Ｓ３と同様な面であり、Ｘ軸＋方向に面Ｓ３から１５０ｍｍ離れている。図４の３次元格子構造ＪＧを用いると、「１００．００ｍｍ移動指示に対するキャリブレーション精度」の値は、３３個×４＝１３２個取得できる（面Ｓ１〜面Ｓ４の各面から３３個取得）。
【００３３】
図４の３次元格子構造ＪＧにおいて、ロボットアーム先端を点１６から点Ｐ１（点１８の右横の点）まで移動させると、「４５０．００ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。ロボットアーム先端を点１６から点Ｐ２（点０７の上の点）まで移動させると、「２００．００ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。ロボットアーム先端を点１６から点Ｐ３（点Ｐ２の上の点）まで移動させると、「３００．００ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。ロボットアーム先端を点１５から点Ｐ２まで移動させると、「２５０．００ｍｍ移動指示に対するキャリブレーション精度」の値を取得できる。よって、３次元格子構造ＪＧの格子点のうち、所定距離だけ離れた２つの格子点（格子点ペア）を用いると、当該所定距離を移動指示値とするキャリブレーション精度を取得することができる。なお、３次元格子構造ＪＧに含まれている多数の格子点の全てを用いてキャリブレーション精度を取得する必要はない。キャリブレーション精度の良否を判定するのに十分な数のキャリブレーション精度の値が取得できればよい。
【００３４】
（キャリブレーション精度の提示）
図４の３次元格子構造ＪＧを用いて取得したキャリブレーション精度をグラフに表すと図５のようになる。図５の縦軸は、移動指示値と実際にアーム先端が移動した距離との差を示す。図５の横軸は、移動指示値である。図５の◇は、図４の３次元格子構造ＪＧを用いて取得したキャリブレーション精度の値（移動指示値と実際にアーム先端が移動した距離との差）をプロットしたものである。図５では、一例として、移動指示値が１００ｍｍ、１５０ｍｍ、１８０．２８ｍｍ、２００ｍｍ、２３４．５２ｍｍ、２５０ｍｍ及び３００ｍｍの場合のキャリブレーション精度を◇でプロットしている。
このように本実施形態では、複数の格子点ペアを用いて、ロボットに出された移動指示値と、実際にロボットアーム先端が移動した距離との差を繰り返し算出し、当該差を図５のように提示する。当該提示は、例えば、コントローラの表示部に図５のグラフを表示することにより行う。
【００３５】
（キャリブレーション精度の評価）
ロボットアーム先端をある点から別の点に移動させた場合の移動誤差の許容値が０．１ｍｍである場合、図５の縦軸の「差」の値が＋０．１ｍｍから−０．１ｍｍの範囲内にあるかを見る。図５に示した「差」が＋０．１ｍｍから−０．１ｍｍの範囲内にあれば、キャリブレーションの精度は十分高いという評価をすることができる。そうでなければ、キャリブレーションの精度は十分でない評価をする。この場合、再度、キャリブレーションを行う（図５に示した「差」が＋０．１ｍｍから−０．１ｍｍの範囲内になるまでキャリブレーションを行う）。
【００３６】
例えば、パレットに複数の部品が１５０ｍｍ間隔で置かれているとする。複数の部品が置かれた位置を第１位置、第２位置、第３位置、…と称する。また、ロボットの１５０ｍｍ移動のキャリブレーション精度は０．１ｍｍ以下になっているとする。この場合、まず、第１位置をロボットにティーチングする。そして、ロボットに第１位置の部品をピックアップさせる。その後、ロボットに第２位置の部品をピックアップさせる場合、第２位置をロボットにティーチングする必要はない。ロボットには、第１位置から１５０ｍｍ移動して部品をピックアップするという指示を出せばよい。キャリブレーション精度が０．１ｍｍ以下になっていれば、ロボットは第２位置の部品を正確にピックアップすることができる。
【００３７】
図５に示されているように、移動指示値が１００．００ｍｍから２００．００ｍｍの範囲では、キャリブレーション精度は０．１ｍｍ以下であるが、移動指示値が２３４．５２ｍｍから３００．００ｍｍの範囲では、キャリブレーション精度は０．１ｍｍを越えている。よって、キャリブレーション精度を算出した時点では、ロボット１はアーム先端移動距離が２００ｍｍ以内であれば、正確に部品を移送することができると言える（移動距離の許容値が０．１ｍｍの場合）。もしロボット１のアーム先端移動距離を２５０ｍｍ以上にしてロボット１を使用したい場合には、現時点でのキャリブレーション精度では移動指示値に対して０．１ｍｍ以上ずれる可能性があると言えるので、移動指示値に対してロボットのアーム先端の位置がずれていることをティーチングする。このように、キャリブレーションの評価結果に基づいて、ロボット１のアームが高精度で移動できる範囲（高精度移動範囲）が分かる。ロボット１に出される移動指示値が高精度移動範囲内ならば、ロボット１にティーチングをする必要がないので、余分なティーチング作業を行う必要がなくなる。
【００３８】
（実施形態の効果）
本実施形態によれば、ロボットのアーム先端の移動距離を計測することによって、ロボットのキャリブレーション精度を評価することができる。つまり、本実施形態では、キャリブレーション精度を評価する際に、所謂絶対精度を用いず、相対精度を用いている。絶対精度を用いる場合、ロボットが有する座標と位置測定機器（レーザトラッカ）の座標とを合わせる必要があるが、ロボットが有する座標と位置測定機器の座標とを合わせることは非常に困難である。例えば、ロボット座標とレーザトラッカ座標との間の変換行列は、レーザの位置、ロボットの位置、計算誤差などの多くのパラメータを含むので、正確な変換ができない場合がある。本実施形態では、３次元格子構造の１つの格子点から所定距離離れた他の格子点へ、ロボットのアーム先端を移動させたときの移動距離のみに基づいてキャリブレーション精度を評価する。つまり、絶対精度を用いずに、相対精度を用いてキャリブレーション精度を評価する。従って、本実施形態によれば、容易にキャリブレーション精度を評価することができる。移動距離に基づいてキャリブレーション精度を評価すると、ロボットの座標系の精度は問題にならない。
【００３９】
（変形例）
図３において点０１から点０９までロボットアーム先端を順次移動させてキャリブレーション精度を取得した後、ロボットアーム先端を点０９から点０１に逆方向に順次移動させてキャリブレーション精度を取得してもよい。これは、例えば、点０１から点０２にロボットアーム先端を移動させて取得するキャリブレーション精度と、点０２から点０１にロボットアーム先端を移動させて取得するキャリブレーション精度とが、同一にならないことも想定されるからである。
上記した本実施形態では６軸ロボットを用いてキャリブレーション精度を算出し提示したが、本実施形態の適用は６軸ロボットに限定されない。アームを有するロボットであれば、本実施形態を適用することができる。
【００４０】
また、位置計測器としてレーザトラッカを使用したが、その他の位置計測器を使用してもよい。
上記した実施形態では、点０１から点０９まで、ロボットアーム先端を順次移動させてキャリブレーション精度を取得したが、ロボットアーム先端の移動順序はこのような移動順序に限定されない。例えば、ロボットアーム先端をまず点０１から点０６に移動させてキャリブレーション精度を取得してもよい。この場合、例えば、ロボットアーム先端は、点０１から点０６へ移動させた後、点０７、点０８、点０５、点０２、点０３、点０４、点０９に移動させる。
【００４１】
上記した実施形態では、３次元格子構造ＪＧの格子点同士の間隔を、Ｘ軸方向及びＹ軸方向では１５０．００ｍｍとしＺ軸方向では１００．００ｍｍとしたが、これは単なる一例である。例えば、Ｘ軸方向、Ｙ軸方向及びＺ軸方向の格子点間隔を全て１００．００ｍｍにしてもよい。この場合、３次元格子構造ＪＧは立方体形状になる。また、３次元格子構造ＪＧの格子点間隔は、キャリブレーションの精度を評価するロボットのサイズに合わせて調整してもよい。例えば、動作領域が広い大型ロボットの場合、３次元格子構造ＪＧの格子点間隔は数ｃｍ単位になる。一方で、動作領域が狭い小型ロボットの場合、３次元格子構造ＪＧの格子点間隔は数ｍｍ単位となる。
【符号の説明】
【００４２】
１…６軸ロボット、Ｍ…ミラー位置（アーム先端位置）、ＪＧ…３次元格子構造、点０１〜点１８…格子点
【図１】
2019177450.tif 000003
【図２】
2019177450.tif 000004
【図３】
2019177450.tif 000005
【図４】
2019177450.tif 000006
【図５】
2019177450.tif 000007