(57)【要約】【課題】ロボットのギア減速機のギアの回転角度伝達誤差に基づいてキャリブレーションを行うことにより、より正確なキャリブレーションを可能にすること。【解決手段】アームと、前記アームに付設された関節と、前記関節に設けられたモータと、前記モータと前記関節の間に設けられたギア減速機とを有するロボットのキャリブレーション装置であって、所定の３次元空間内で、前記アームの先端の目標移動位置を設定する設定部と、前記目標移動位置に前記アームの先端を移動した際の前記関節の角度を取得する取得部と、前記ギア減速機のギアの回転角度伝達誤差に基づいて、前記取得部で取得した角度を調節する調節部と、前記調節部で調節した角度を用いて、前記ロボットのＤＨ（Ｄｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇ）パラメータを修正する修正部と、を備える。【選択図】図３
2020093363.tif 000002
【特許請求の範囲】
【請求項１】
アームと、前記アームに付設された関節と、前記関節に設けられたモータと、前記モータと前記関節の間に設けられたギア減速機とを有するロボットのキャリブレーション装置であって、
所定の３次元空間内で、前記アームの先端の目標移動位置を設定する設定部と、
前記目標移動位置に前記アームの先端を移動した際の前記関節の角度を取得する取得部と、
前記ギア減速機のギアの回転角度伝達誤差に基づいて、前記取得部で取得した角度を調節する調節部と、
前記調節部で調節した角度を用いて、前記ロボットのＤＨ（Ｄｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇ）パラメータを修正する修正部と、
を備えるキャリブレーション装置。
【請求項２】
前記調節部は、前記モータの回転角度が所定角度にあるときの前記ギアの回転角度伝達誤差に基づいて、前記調節を行う請求項１に記載のキャリブレーション装置。
【請求項３】
前記所定角度は、１８０度の倍数である請求項２に記載のキャリブレーション装置。
【請求項４】
前記設定部が設定する目標移動位置の数は、前記ＤＨパラメータを修正する際に用いる方程式の数に応じて決められる請求項１〜３のいずれか１項に記載のキャリブレーション装置。
【請求項５】
前記設定部が設定した目標移動位置のうち、前記アームの先端が到達できない目標移動位置を除外する除外部をさらに備える請求項１〜４のいずれか１項に記載のキャリブレーション装置。
【請求項６】
前記到達できない目標移動位置を除外した後の前記目標移動位置の数が５０以上である請求項５に記載のキャリブレーション装置。
【請求項７】
アームと、前記アームに付設された関節と、前記関節に設けられたモータと、前記モータと前記関節の間に設けられたギア減速機とを有するロボットのキャリブレーション方法であって、
所定の３次元空間内で、前記アームの先端の目標移動位置を設定する設定ステップと、
前記目標移動位置に前記アームの先端を移動した際の前記関節の角度を取得する取得ステップと、
前記ギア減速機のギアの回転角度伝達誤差に基づいて、前記取得ステップで取得した角度を調節する調節ステップと、
前記調節ステップで調節した角度を用いて、前記ロボットのＤＨパラメータを修正する修正ステップと、
を備えるキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャリブレーション装置及びキャリブレーション方法に関する。
【背景技術】
【０００２】
産業用の多関節ロボットとして６軸ロボットが知られている。ロボットが工場等で組み立てられる場合、組立作業者が設計値通りにロボットを組み立てることは困難であり、組み立て後において、組立誤差を含むロボットができてしまう。通常、組立誤差を少なくするためにキャリブレーションが行われる。特許文献１には、ロボットの較正装置（キャリブレーション装置）が開示されている。特許文献１では、ロボットの組立誤差を較正する際に、ロボットの調整を１自由度に限定することにより、較正作業を効率化している。  
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１０１３０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットの関節部にはモータが設けられており、モータと関節部の間には減速機が設けられている。減速機がギア（歯車）を使用している場合、ギアには回転角度伝達誤差があるために、ロボットの組立誤差には、当該回転角度伝達誤差に起因する誤差が含まれる。ギアの回転角度伝達誤差とは、２つのギアがかみ合って回転を伝達する際に生ずる誤差である。
しかしながら、特許文献１では、減速機のギアの回転角度伝達誤差に起因する誤差を小さくすることについての教示は無い。
本発明の１つの目的は、ロボットのギア減速機のギアの回転角度伝達誤差に基づいてキャリブレーションを行うことにより、より正確なキャリブレーションを可能にすることである。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の１つの態様によるキャリブレーション装置は、アームと、前記アームに付設された関節と、前記関節に設けられたモータと、前記モータと前記関節の間に設けられたギア減速機とを有するロボットのキャリブレーション装置であって、所定の３次元空間内で、前記アームの先端の目標移動位置を設定する設定部と、前記目標移動位置に前記アームの先端を移動した際の前記関節の角度を取得する取得部と、前記ギア減速機のギアの回転角度伝達誤差に基づいて、前記取得部で取得した角度を調節する調節部と、前記調節部で調節した角度を用いて、前記ロボットのＤＨ（Ｄｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇ）パラメータを修正する修正部と、を備える。
【発明の効果】
【０００６】
本発明によれば、ロボットのギア減速機のギアの回転角度伝達誤差に基づいてキャリブレーションを行うことにより、より正確なキャリブレーションが可能になる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係るロボットの斜視図。
【図２】図１に示したロボットの左側面図。
【図３】ＤＨパラメータを説明する図。
【図４】キャリブレーシ装置の機能ブロック図。
【図５】キャリブレーシ装置のハードウェア構成例を示すブロック図。
【図６】キャリブレーションのフローチャート。
【図７】計測ポイントを説明する図。
【図８】減速機のギアが回転する際の回転角度伝達誤差を説明するための図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための実施形態を詳細に説明する。以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置やシステムの構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されない。
【０００９】
＜ロボットの構成＞
図１は、本発明の実施形態にかかるキャリブレーション装置によりキャリブレーションされるロボット１の斜視図である。説明の便宜上、図１の上方向をＺ方向と称し、右方向をＹ方向と称し、手前方向をＸ方向と称する。Ｚ方向は、ロボット１の高さ方向である。また、Ｚ方向と反対の方向を下方と称し、Ｚ方向と同じ方向を上方と称する。図２は、図１に示すロボット１の左側面図である。
【００１０】
ロボット１は、所定の製品の組立や製造等に用いることができる６軸ロボットである。図１及び図２に示すように、ロボット１は、６個の回転関節部２Ａ〜２Ｆと２個のアーム３Ａ、３Ｂとを備えている。以下の記載において、６個の回転関節部２Ａ〜２Ｆは、ロボット設置面４側から、第１回転関節部２Ａ、第２回転関節部２Ｂ、第３回転関節部２Ｃ、第４回転関節部２Ｄ、第５回転関節部２Ｅおよび第６回転関節部２Ｆと称する。また、２本のアーム３Ａ、３Ｂは、ロボット設置面４側から、第１アーム３Ａおよび第２アーム３Ｂと称する。尚、関節部は関節と称することもある。
【００１１】
ロボット１は、ロボット１の基端部分を構成する支持部材５を備えている。支持部材５は設置面４に固定される。第１回転関節部２Ａは、支持部材５に相対回動可能に連結されている。
第１アーム３Ａ及び第２アーム３Ｂは、細長い円筒状に形成されている。
第１回転関節部２Ａと第２回転関節部２Ｂは相対回動可能に連結され、第２回転関節部２Ｂと第１アーム３Ａの基端（下端）は固定されている。第１アーム３Ａの先端と第３回転関節部２Ｃは固定され、第３回転関節部２Ｃと第４回転関節部２Ｄは相対回動可能に連結されている。第４回転関節部２Ｄと第２アーム３Ｂの下端は相対回動可能に連結され、第２アーム３Ｂの先端と第５回転関節部２Ｅは固定されている。第５回転関節部２Ｅと第６回転関節部２Ｆは相対回動可能に連結されている。第６回転関節部２Ｆには、エンドエフェクタ等（図示せず）を相対回動可能に取り付け可能な取付部７が設けられている。
【００１２】
＜回転関節部の構成＞
第１回転関節部２Ａ〜第６回転関節部２Ｆのそれぞれには、モータ（図示せず）と、モータに連結される減速機（図示せず）と、モータの回転位置を検出するための位置検出機構（図示せず）と、モータおよび位置検出機構が電気的に接続される回路基板（図示せず）と、モータと減速機と位置検出機構と回路基板とが収容されるケース体６Ａ〜６Ｆとが設けられいる。各モータは、モータを制御するコントローラ（図示せず）に無線または有線で接続されいる。減速機は所定数のギアを有する。減速機はギアを有するので、ギア減速機と称することもある。減速機は、モータと関節部との間に設けられ、モータの（出力軸の）回転を所定の減速比で関節部に伝達する。モータが回転すると、関節部も回転する。関節部を回転させることにより、ロボットのアーム先端を移動させることができる。
【００１３】
＜回転関節部とアームの連結構造＞
支持部材５と第１回転関節部２Ａとは、第１回転関節部２Ａの出力側部材（図示せず）が支持部材５に固定されることで連結されている。第１回転関節部２Ａの中心軸J１と支持部材５の中心軸とが一致するように支持部材５と第１回転関節部２Ａとが連結されている。
第１回転関節部２Ａと第２回転関節部２Ｂとは、第１回転関節部２Ａの中心軸Ｊ１と第２回転関節部２Ｂの中心軸Ｊ２とが直交するように連結されている。また、第１回転関節部２Ａのケース体６Ａと第２回転関節部２Ｂのフランジ部１１Ｂとが直接固定されている。このように、第１回転関節部２Ａの中心軸Ｊ１と第２回転関節部２Ｂの中心軸Ｊ２とが直交するように、第１回転関節部２Ａと第２回転関節部２Ｂのフランジ部１１Ｂとが直接固定される。また、支持部材５に対して、第１回転関節部２Ａの中心軸Ｊ１を回動軸として、第１回転関節部２Ａと第２回転関節部２Ｂが回動できる。
【００１４】
第２回転関節部２Ｂと第１アーム３Ａとは、第２回転関節部２Ｂの中心軸Ｊ２と第１アーム３Ａの長手方向の中心軸とが直交するように連結されている。また、第２回転関節部２Ｂのケース体６Ｂに第１アーム３Ａの下端が固定されている。  
第１アーム３Ａと第３回転関節部２Ｃとは、第１アーム３Ａの長手方向の中心軸と第３回転関節部２Ｃの中心軸Ｊ３とが直交するように連結されている。また、第３回転関節部２Ｃのケース体６Ｃに第１アーム３Ａの先端が固定されている。中心軸Ｊ３は、中心軸Ｊ２に平行である。
第３回転関節部２Ｃと第４回転関節部２Ｄとは、第３回転関節部２Ｃの中心軸Ｊ３と第４回転関節部２Ｄの中心軸Ｊ４とが直交するように連結されている。また、第４回転関節部２Ｄのケース体６Ｄの取付面９Ｄと第３回転関節部２Ｃのフランジ部１１Ｃとが、第３回転関節部２Ｃの中心軸Ｊ３に所定の厚さ（長さ）を有する連結部材１２を介して固定されている。中心軸Ｊ４と中心軸Ｊ１は同軸上にある。
【００１５】
第４回転関節部２Ｄと第２アーム３Ｂとは、第４回転関節部２Ｄの中心軸Ｊ４と第２アーム３Ｂの長手方向の中心軸とが一致するように連結されている。また、第４回転関節部２Ｄのフランジ部１１Ｄに第２アーム３Ｂの下端が固定されている。
よって、第１アーム３Ａに対して、第３回転関節部２Ｃの中心軸Ｊ３を回動軸として第２アーム３Ｂが回動できる。
第２アーム３Ｂと第５回転関節部２Ｅとは、第２アーム３Ｂの長手方向の中心軸と第５回転関節部２Ｅの中心軸Ｊ５とが直交するように連結されている。また、第５回転関節部２Ｅのケース体６Ｅに第２アーム３Ｂの先端が固定されている。中心軸Ｊ５は、中心軸Ｊ２と中心軸Ｊ３に平行である。
【００１６】
第５回転関節部２Ｅと第６回転関節部２Ｆとは、第５回転関節部２Ｅの中心軸Ｊ５と第６回転関節部２Ｆの中心軸Ｊ６とが直交するように連結されている。また、第６回転関節部２Ｆのケース体６Ｆの取付面９Ｆと第５回転関節部２Ｅのフランジ部１１Ｅとが直接固定されている。
よって、第１アーム３Ａに対して第３回転関節部２Ｃの中心軸Ｊ３を回動軸とする相対回動が可能となっている第２アーム３Ｂは、第１回転関節部２Ａの中心軸Ｊ１を含む平面上で回動し得る。また、第２アーム３Ｂは、中心軸Ｊ３を中心として回動する際に、第１回転関節部２Ａと第５回転関節部２Ｅとが干渉しないように、第１アーム３Ａよりも短くなっている。
【００１７】
尚、本実施形態では、ロボットアーム先端位置は、図２の点Ｍであるとする。本実施形態では、点Ｍの位置を計測する計測器としてレーザトラッカを使用する。レーザトラッカから発せられるレーザを反射するミラー（図示せず）は、エンドエフェクタ取付部７上の位置Ｍに取り付けられている。レーザトラッカは、計測値をキャリブレーション装置に送信するように設定されているとする。
【００１８】
＜ロボットの組立誤差＞
ロボットは、工場等で組立作業者により組み立てられる。一般的に、組立作業者がロボットを設計値通りに組み立てることは困難であり、組立誤差を含むロボットができてしまう。本実施形態において、ロボットの組立誤差は、ロボットアームに移動指示を出した場合の、指示位置と実際のロボットアーム先端の移動位置との差であり、以下の式（１）で表わされるとする。つまり、ロボットの組立誤差は、設計時のＤＨパラメータに含まれる誤差に起因する誤差である「ＤＨパラメータの誤差」と、モータの回転を関節部に伝達する際に減速機のギアの回転角度伝達誤差に起因して生ずる誤差と、からなると考える。本実施形態では、当該組立誤差を最小にすることをキャリブレーションと称する。ＤＨはＤｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇの略である。
組立誤差＝ＤＨパラメータの誤差＋減速機のギアの回転角度伝達誤差に起因する誤差
…(1)
【００１９】
図３はＤＨパラメータを説明する図である。ｄはＺ軸方向の移動量（ｍｍ）、θはＺ軸回りの回転量（度）、ａはＸ軸方向の移動量（ｍｍ）、αはＸ軸回りの回転量（度）を示している。ＤＨパラメータは、４つのパラメータ（ｄ、θ、ａ、α）を含む。本実施形態では、軸Ｊ１〜Ｊ６の各θをθ１〜θ６と表記し、関節角度と称する。図３に示したＤＨパラメータは、設計時のＤＨパラメータ（公称値、仕様値）の一例である。なお、図３に示した数値は単なる例であり、ＤＨパラメータはこれら値以外の値も取り得る。設計時のＤＨパラメータは公称ＤＨパラメータと称されることもある。
【００２０】
本実施形態では、式（１）の「減速機のギアの回転角度伝達誤差に起因する誤差」を最小化する関節角度を求め、求めた関節角度で生ずる組立誤差（ＤＨパラメータの誤差）を無くする（または最小にする）キャリブレーシを行う。
【００２１】
＜キャリブレーション装置＞
図４は、本実施形態のキャリブレーション装置２０の機能ブロック図である。
キャリブレーシ装置２０は、目標移動位置設定部３１、関節角度計算部３２、キネマティクス計算部３３、到達不可能点除外部３４、関節角度調節部３５、アーム先端位置計算部３６及びＤＨパラメータ修正部３７を有する。
【００２２】
目標移動位置設定部３１は、所定の３次元空間で、ロボットアームの先端の目標移動位置を設定する。所定の３次元空間は、ロボットワークスペース（作業空間）であり、例えば、キャリブレーション装置２０のユーザによりキャリブレーション装置２０に入力された値に基づいて、目標移動位置設定部３１が設定する。目標移動位置設定部３１は、上記の３次元空間内で、ロボットアームの先端の目標移動位置を複数設定する。ロボットワークスペースと目標移動位置の設定については、図７を用いて後述する。
【００２３】
関節角度計算部３２は、設定された各目標移動位置について（設定された各目標移動位置に対応する）、ロボット１の関節角度を計算する。つまり、関節角度計算部３２は、設定された各目標移動位置に、ロボット１のアームの先端を移動した際の関節角度を計算・取得する。具体的には、関節角度計算部３２は、設計時のＤＨパラメータを用いて逆キネマティクス（ＩＫ：Inverse Kinematics）演算を行うことにより、目標移動位置に対応するロボット関節角度を計算することにより、当該関節角度を取得する。
キネマティクス計算部３３は、関節角度計算部３２がロボット１の関節角度を計算する際の逆キネマティクス演算を行う。また、キネマティクス計算部３３は、アーム先端位置計算部３６がロボットアームの先端位置を計算する際に、順キネマティクス（ＦＫ：Forward Kinematics）演算を行う。
【００２４】
到達不可能点除外部３４は、設定された目標移動位置の中にロボットアーム先端が到達できない位置（到達不可能点）がある場合、当該到達不可能点を目標移動位置から除外する。
関節角度調節部３５は、ギア減速機のギアの回転角度伝達誤差に基づいて、関節角度計算部３２が計算した関節角度を調節する。関節角度の調節については、図６及び図８を用いて後述する。
【００２５】
アーム先端位置計算部３６は、調節した関節角度と、設計時のＤＨパラメータとを用いて、順キネマティクス演算を行うことにより、ロボットアーム先端位置を計算・取得する。
ＤＨパラメータ修正部３７は、関節角度調節部３５で取得した関節角度（調節後の関節角度）を用いて、設計時のＤＨパラメータを修正する。
【００２６】
図５は、キャリブレーション装置２０のハードウェアブロック図である。
キャリブレーシ装置２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、外部メモリ２４、操作部（入力部）２５、通信部（ネットワークインタフェースを含む）２６及び表示部（出力部）２７を有する。ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、外部メモリ２４、操作部２５、通信部２６及び表示部２７は、バス２８により相互接続されている。
ＣＰＵ２１は、キャリブレーシ装置２０を統括制御する制御部である。ＣＰＵ２１は、各構成部（２２〜２７）を制御する。ＣＰＵ２１は、例えば、１つまたは複数のプロセッサから構成される。
【００２７】
ＲＯＭ２２は、ＣＰＵ２１が処理を実行するために必要なプログラム等を記憶する。ＣＰＵ２１が、ＲＯＭ２２に記憶されたプログラムに基づき処理を実行することにより、後述するフローチャート（図６）の処理が実行される。また、ＣＰＵ２１が、ＲＯＭ２２に記憶されたプログラムに基づき処理を実行することにより、キャリブレーシ装置２０の通信部２６や表示部２７の制御等が実現されてもよい。なお、当該プログラム等は、外部メモリ２４や着脱可能な記憶媒体（図示せず）に記憶されてもよい。  ＲＡＭ２３は、ＣＰＵ２１がＲＯＭ２２から読み出したプログラムを展開し、処理を実行するためのメモリである。また、ＲＡＭ２３は、一時記憶メモリとして各種処理の対象となるデータを一時記憶するための記憶領域としても使用される。ＲＡＭ２３には、設計時のＤＨパラメータが記憶されているとする。
【００２８】
外部メモリ２４は、例えば、ＣＰＵ２１がプログラムを用いた処理を実行する際に必要な各種データや情報などを記憶する。また、外部メモリ２４には、ＣＰＵ２１がプログラムを用いた処理を実行することにより得られた各種データや情報などが記憶される。
操作部２５は、キーボード、スイッチ、電源ボタンやテンキーなどから構成される。ユーザは、操作部２５を介して所望のデータや数値をキャリブレーション装置２０に入力することができる。また、ユーザは、操作部２５を介して、レーザトラッカに指示を与えることもできる。操作部２５は、ユーザからの指示を入力するので入力部と称してもよい。
通信部２６はネットワークインタフェースを備え、ネットワーク（図示せず）を介してレーザトラッカ等と通信を行う回路である。例えば、キャリブレーシ装置２０は、通信部２６を介してレーザトラッカへ指示を送信し、レーザトラッカから計測値をキャリブレーシ装置２０へ送信させることができる。
【００２９】
表示部２７は、画像を表示するディスプレイを含む。表示部２７は、動画及び静止画を表示することができる。表示部２７は音声出力部を含んでもよい。表示部２７は、タッチパネルとして使用することにより、ユーザインターフェースとして機能することもある。表示部２７は、画像を出力するので、出力部と称してもよい。    尚、キャリブレーシ装置２０は、図４及び図５に示した構成要素以外のハードウェア要素や機能部を備えていてもよい。また、図４及び図５に示した各部の構成は一例であり、複数の部が１つの部を構成するようにしてもよいし、いずれかの部が複数の機能を行う部に分かれてもよい。
【００３０】
＜キャリブレーション＞
図６は、本実施形態のキャリブレーションを説明するためのフローチャートである。このフローチャートは、キャリブレーション装置２０のＣＰＵ２１がＲＯＭ２２等に記憶されるプログラムを実行することにより処理される。図６のフローチャートは、例えば、キャリブレーション装置２０の電源がＯＮにされた場合に開始するか、キャリブレーション装置２０のユーザからの開始指示に応じて開始する。
＜ステップ１＞
ステップ１において、キャリブレーション装置２０は、まず、ロボットワークスペース（作業空間）を設定して、ロボットアーム先端の目標移動位置を設定（決定）する。
【００３１】
図７は、キャリブレーション装置２０が、ロボットワークスペースＲＷを設定し、ロボットアーム先端の目標移動位置を決定する処理を説明する図である。図７に示すように、キャリブレーション装置２０は、まず、ロボットワークスペースＲＷとして、ＸＹＺ座標系における範囲を決定する。本実施形態では、ロボットワークスペースＲＷのＸ軸方向の範囲は３００ｍｍ〜７００ｍｍに設定し、Ｙ軸方向の範囲は−７００ｍｍ〜７００ｍｍに設定し、Ｚ軸方向の範囲は２００ｍｍ〜５００ｍｍに設定する。そして、キャリブレーション装置２０は、ロボットワークスペースＲＷ内に、Ｙ軸とＺ軸で規定される面に平行な４つの面Ｓ１〜面Ｓ４を設定する。面Ｓ１〜面Ｓ４はＸ軸方向に１００ｍｍの間隔で設定される。ロボットワークスペースＲＷは、所定の３次元空間である。
上記したロボットワークスペースの範囲の数値は、キャリブレーション装置２０のユーザが操作部２５を介してキャリブレーション装置２０に入力し、当該入力された値に基づいて、目標移動位置設定部３１が設定する。
【００３２】
その後、キャリブレーション装置２０は、面Ｓ１〜面Ｓ４の各々において、所定数の目標移動位置（Ｐ１〜Ｐ４４）を所定間隔（等間隔）で設定する。この所定間隔（例えば、Ｐ１からＰ２までの距離）は、例えば、５０ｍｍ〜１００ｍｍであり、図７の例では、１００ｍｍである。図７に示すように、面Ｓ１の左上の点を、最初の目標移動位置Ｐ１とし、目標移動位置Ｐ１からＹ軸に沿って１０個の目標移動位置Ｐ２、Ｐ３、…Ｐ１１を１００ｍｍ間隔で設定する。目標移動位置Ｐ１から目標移動位置Ｐ１１で規定される線をラインＬ１と称する。ラインＬ１は、面Ｓ１の長方形の上辺に沿ったラインである。
面Ｓ１〜Ｓ４の位置及び目標移動位置Ｐ１〜Ｐ４４の位置は、キャリブレーション装置２０のユーザが操作部２５を介してキャリブレーション装置２０に入力した数値（座標値、間隔等）に基づいて、目標移動位置設定部３１が設定する。
【００３３】
次に、ラインＬ１の下に、目標移動位置Ｐ１２から目標移動位置Ｐ２２で規定される線であるラインＬ２を設定する。ラインＬ２はラインＬ１と平行で、Ｚ軸方向下方に１００ｍｍ隔てられた位置に延びるラインである。目標移動位置Ｐ１２は目標移動位置Ｐ１１の直下の位置であり、目標移動位置Ｐ２２は目標移動位置Ｐ１の直下の位置である。さらに、ラインＬ２の下に、目標移動位置Ｐ２３から目標移動位置Ｐ３３で規定される線であるラインＬ３を設定し、ラインＬ３の下に、目標移動位置Ｐ３４から目標移動位置Ｐ４４で規定される線であるラインＬ４を設定する。ラインＬ１〜Ｌ４は４本の平行なラインであり、各ラインには１１個の目標移動位置が設定される。尚、以下の説明において、目標移動位置Ｐ１〜Ｐ４４を総称して「目標移動位置Ｐ」と記することもある。
【００３４】
面Ｓ２〜面Ｓ４の各々にも、面１と同様な４つのラインＬ１〜Ｌ４が設定され、面Ｓ２〜面Ｓ４の各ライン上に目標移動位置Ｐ１〜Ｐ４４が設定される。面Ｓ４の目標移動位置Ｐ１の座標（Ｘ，Ｙ，Ｚ）は、（３００ｍｍ，−５００ｍｍ，５００ｍｍ）である。
尚、１つの面に設定される目標移動位置Ｐの数は、４４個に限定されない。また、目標移動位置Ｐ１１の次の目標移動位置Ｐ１２を、目標移動位置Ｐ１１の直下の位置にしたのは、アーム先端移動位置を測定する際のギアバックラッシュに起因する誤差の均一性を担保するためである。
【００３５】
次に、ステップ１において、キャリブレーション装置２０は、面Ｓ１の目標移動位置Ｐ１から目標移動位置Ｐ４４について、ロボット１の関節角度を計算・取得する。つまり、キャリブレーション装置２０は、各目標移動位置に対応する関節角度を計算・取得する。具体的には、キャリブレーション装置２０は、各目標移動位置Ｐ１〜Ｐ４４の座標値と設計時のＤＨパラメータとを用いて逆キネマティクス演算を行うことにより、各目標移動位置Ｐ１〜Ｐ４４のロボット関節角度を計算・取得する。
【００３６】
面Ｓ１の目標移動位置Ｐ１〜Ｐ４４に対応するロボット関節角度が取得できたならば、キャリブレーション装置２０は、面Ｓ２、面Ｓ３及び面Ｓ４の目標移動位置Ｐ１〜Ｐ４４についても、ロボットの関節角度を計算する。このような処理により、面Ｓ１〜面Ｓ４の目標移動位置Ｐ１〜Ｐ４４について、ロボットの関節角度を取得することができる。例えば、面Ｓ４の目標移動位置Ｐ１のロボット関節角度（θ１，θ２，θ３，θ４，θ５，θ６，θ７）は、（−１５８．９１１，−２６．５９８，−４５．７３１，−１８０．０，１０７．６７０，１１１．０８８）である。関節角度の単位は度（deg）である。
尚、面Ｓ１〜面Ｓ４の目標移動位置Ｐの中にロボットアーム先端が到達できない位置（到達不可能点）がある場合、当該到達不可能点を面Ｓ１〜面Ｓ４の目標移動位置Ｐから除外する処理をステップ１において行う。これは、到達不可能点が、キャリブレーションプロセスで使用されないようにするためである。目標移動位置が到達可能点であるか到達不可能点であるかは、逆キネマティクス演算の結果に基づいて、到達不可能点除外部３４が判断する。
【００３７】
＜ステップ２＞
ステップ１の後、ステップ２に進む。ステップ２おいて、キャリブレーション装置２０は、減速機のギアの回転角度伝達誤差に起因する誤差を最小にするために、ステップ１で取得した関節角度（joint angle）を調節する。具体的には、まず、ステップ１で取得した関節角度を１８０度の最も近い倍数（整数）にする（四捨五入する）。関節角度を１８０度の最も近い倍数にする際に使用する計算式は、以下の式（２）及び式（３）である。
joint_angle_motor_side=joint_angle*gear_ratio        …（２）
rotation_180deg=round(joint_angle_motor_side/180.0)  …（３）
【００３８】
ロボットの軸Ｊ１〜Ｊ６を回転させるモータは、所定の減速比（ギア比：gear ratio）を有するギアを介して、モータの回転をロボットの軸Ｊ１〜Ｊ６に伝達する。ギア比は、例えば、１００：１であるとする。
まず、式（２）によりモータ側の関節角度（joint_angle_motor_side）を計算する。モータ側の関節角度は、実際の関節角度（ステップ１で取得した関節角度）にギア比である１００を掛けた値である。次に、式（３）により、モータ側の関節角度を１８０度の倍数（整数倍）にする。式（３）の右辺でモータ側の関節角度を１８０で割っているのは、モータの１８０度の回転角度位置における関節角度の値が、ギアの回転角度伝達誤差の影響を最も受けない値であるからである。１８０度での関節角度の値が、ギアの回転角度伝達誤差の影響を最も受けない値であることは、本発明の発明者が実験により得た知見である（図８を用いて後述する）。
【００３９】
図８は、ギアの回転角度伝達誤差の影響を説明するためのグラフである。図８は、モータの出力軸を時計回りに回転した場合のグラフである。図８のグラフの縦軸は回転角度誤差（分）を示し、横軸はモータの出力軸回転角度（度）を示している。図８のグラフは、本出願の発明者が実験で得たデータを示している。図８に示すように、１８０度近辺において、回転角度誤差の変動が最も小さいことが分かる。また、誤差変動は１８０度の周期で現れることも、発明者の実験により確認された。図中、ＣＷはＣｌｏｃｋｗｉｓｅの略である。
【００４０】
次に、式（４）を用いて、キャリブレーション装置２０は、調節した関節角度（joint angle after correction）を計算する。
joint_angle_after_correction=rotation_180deg*180*gear_ratio-1    …（４）
具体的には、キャリブレーション装置２０は、式（３）で得られた角度に１８０と1/100（ギア比の逆数）を掛けることにより、調節した関節角度を得る。例えば、面Ｓ４の目標移動位置Ｐ１の調節後のロボット関節角度（θ１，θ２，θ３，θ４，θ５，θ６，θ７）は、（−１５８．４，−２７，−４５，−１８０．０，１０８，１１１．６）である。
その後、ステップ２において、キャリブレーション装置２０は、調節した関節角度と、設計時のＤＨパラメータとを用いて、順キネマティクス演算を行うことにより、ロボットアーム先端位置を計算・取得する。
ステップ２における「調節した関節角度の取得」は、関節角度調節部３５が行う。この「調節した関節角度の取得」は、ギア減速機のギアの回転角度伝達誤差に基づいて、関節角度取得部３２で取得した角度を調節する処理である。
【００４１】
＜ステップ３＞
ステップ３において、キャリブレーション装置２０は、ステップ２で取得したロボットアーム先端位置についての関節角度を、設計時のＤＨパラメータを用いて逆キネマティクス演算により計算する。これは、ステップ２の関節角度調節の後における到達不可能な目標移動位置（到達不可能点）を除外するためである。到達不可能点除外部３４は、ステップ３で計算した関節角度に基づいて、目標移動位置Ｐから到達不可能点を除外する。
ステップ３の終了時において、面Ｓ１〜Ｓ４の目標移動位置Ｐ１〜Ｐ４４の合計個数は５０以上であることが好ましい。これは、ＤＨパラメータを計算する際に５０個の方程式を解くからである。尚、目標移動位置Ｐが多すぎると計算に要する時間が長くなったり計算結果にバラつきが生ずることがあるので、目標移動位置Ｐの個数は、例えば、５９個以下であることが好ましい。
【００４２】
＜ステップ４＞
ステップ４において、キャリブレーション装置２０は、ステップ２で取得した関節角度を用いて、設計時のＤＨパラメータを修正する。ステップ２で取得した関節角度は、減速機のギアの回転角度伝達誤差の影響が最も小さい状態における関節角度である。式（１）において、右辺の第２項である「減速機のギアの回転角度伝達誤差に起因する誤差」が最小の状態においてＤＨパラメータを修正すれば、ＤＨパラメータを高精度に修正できることになる。
【００４３】
ＤＨパラメータの修正は、ステップ２で取得した関節角度における、ロボットアーム先端の目標移動位置と実際の移動位置との差がゼロになるように（あるいは最小になるように）行う。この場合、キャリブレーション装置２０は、ロボット１に、ロボットアーム先端が目標移動位置に移動するように指示を送信する。ロボットアーム先端の実際の移動位置は、レーザトラッカが計測する。レーザトラッカは、計測値をキャリブレーション装置２０に送信する。キャリブレーション装置２０は、レーザトラッカから計測値を受信することにより、ロボットアーム先端の実際の移動位置を取得する。キャリブレーション装置２０は、実際の移動位置と、指示値との差がゼロになるように、ＤＨパラメータを修正する。上記したＤＨパラメータの修正は、ＤＨパラメータ修正部３７が行う。
【００４４】
＜実施形態の効果＞
本実施形態によれば、減速機のギアの回転角度伝達誤差に起因する誤差を除去または最小にした後にＤＨパラメータの修正を行うので、ＤＨパラメータの計算が発散してしまう可能性が無くなる（または低減する）。従来、ＤＨパラメータを修正する場合、減速機のギアの回転角度伝達誤差に起因する誤差を含んだ状態で修正を行っていたので、ＤＨパラメータの計算が収束せずに発散してしまう可能性があった。本実施形態によれば、そのような可能性が低減される。
【００４５】
本実施形態によれば、減速機のギアの回転角度伝達誤差に起因する誤差を除去または最小にした後にＤＨパラメータの修正を行うので、ＤＨパラメータの修正を適切に行うことができる。ＤＨパラメータの修正を行う際に、減速機のギアの回転角度伝達誤差に起因する誤差を含んだまま行うと、ＤＨパラメータを正確に修正することができない。本実施形態では、ＤＨパラメータの修正をより正確に行うことができる。つまり、本実施によれば、減速機のギアの回転角度伝達誤差に起因する誤差を除去または最小にした後、ＤＨパラメータの誤差をゼロにしているので、正確なキャリブレーションを行うことができる。
また、ステップ３の終了時点において面Ｓ１〜Ｓ４の目標移動位置の合計が５０以上になるようにしたので、ＤＨパラメータの計算を発散することなく行うことができる。
【００４６】
尚、上記した本実施形態では６軸ロボットを用いてキャリブレーションを行う例を説明したが、本実施形態の適用は６軸ロボットに限定されない。関節を有するロボットであれば、本実施形態を適用することができる。また、目標移動位置Ｐの数は、ＤＨパラメータの計算に用いる方程式の数に応じて増減してよい。つまり、目標移動位置Ｐの数は、ＤＨパラメータの計算に用いる方程式が収束し、所定時間内に計算が終了するならば、任意の数にしてよい。
【符号の説明】
【００４７】
１…ロボット
２０…キャリブレーション装置
３１…目標移動位置設定部
３２…関節角度計算部
３３…キネマティクス計算部
３４…到達不可能点除外部
３５…関節角度調節部
３６…アーム先端位置計算部
３７…ＤＨパラメータ修正部
【図１】
2020093363.tif 000003
【図２】
2020093363.tif 000004
【図３】
2020093363.tif 000005
【図４】
2020093363.tif 000006
【図５】
2020093363.tif 000007
【図６】
2020093363.tif 000008
【図７】
2020093363.tif 000009
【図８】
2020093363.tif 000010