(57)【要約】【課題】ロストモーションやバックラッシを考慮して、駆動力を伝達する伝達部の補正値を決定する。【解決手段】ロボットは、第１駆動部によって第１伝達部を介して駆動される第１可動部を備える。この制御装置は：第１可動部の位置精度を向上させるためのパラメーターを導出する第１処理を指示する信号を受け付ける受付部と；受付部が信号を受け付けたことに起因して、第１駆動部を制御して、第１可動部に第１特定動作を行わせる制御部と、を備える。第１特定動作は、第１可動部を第１位置から第２位置へ動作させる第１動作要素と、第１動作要素とは逆向きに第１可動部を動作させる第２動作要素と、を含む。制御部は、第１動作要素と第２動作要素とが実行されているときに：第１入力位置検出部を使用して、第１伝達部の入力側の動作位置を検出させ；第１出力位置検出部を使用して、第１伝達部の出力側の動作位置を検出させる。【選択図】図１
2019000948.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを制御する制御装置であって、
前記ロボットは、駆動力を発生させる第１駆動部によって第１伝達部を介して駆動される第１可動部を備え、
前記制御装置は、
前記第１可動部の位置精度を向上させるためのパラメーターを導出する第１処理を指示する信号を受け付ける受付部と、
前記受付部が前記信号を受け付けたことに起因して、前記第１駆動部を制御して、前記第１可動部に第１特定動作を行わせる制御部と、を備え、
前記第１特定動作は、前記第１可動部を第１位置から第２位置へ動作させる第１動作要素と、前記第１動作要素とは逆向きに前記第１可動部を動作させる第２動作要素と、を含み、
前記制御部は、前記第１動作要素と前記第２動作要素とが実行されているときに、
前記第１伝達部の入力側の動作位置を検出する第１入力位置検出部を使用して、前記第１伝達部の前記入力側の動作位置を検出させ、
前記第１伝達部の出力側の動作位置を検出する第１出力位置検出部を使用して、前記第１伝達部の前記出力側の動作位置を検出させる、制御装置。
【請求項２】
請求項１記載の制御装置であって、
前記第１動作要素と前記第２動作要素は、回転であり、
前記第１伝達部の前記入力側の前記動作位置は、角度位置であり、
前記第１伝達部の前記出力側の前記動作位置は、角度位置である、制御装置。
【請求項３】
請求項２記載の制御装置であって、
前記第１動作要素と前記第２動作要素の移動速度は、いずれも１００°／秒以下である、制御装置。
【請求項４】
請求項２または３記載の制御装置であって、
前記第１伝達部は、前記第１駆動部からの継続的な一定の入力に対して周期的な伝達誤差を発生させ、
前記第１位置と前記第２位置との間の角度範囲は、１周期分の前記伝達誤差を生じさせる角度範囲を含む、制御装置。
【請求項５】
請求項２から４のいずれか１項に記載の制御装置であって、
前記第１伝達部は、回転入力を、前記回転入力の回転速度よりも低い回転速度を有する回転出力に変換する減速機を含む、制御装置。
【請求項６】
請求項２から５のいずれか１項に記載の制御装置であって、
前記第１出力位置検出部は、前記第１伝達部の出力軸の動作位置を検出することができる、制御装置。
【請求項７】
請求項１から５のいずれか１項に記載の制御装置であって、
前記第１出力位置検出部は、前記第１可動部の角速度および加速度の少なくとも一方を検出することができる慣性センサーである、制御装置。
【請求項８】
請求項１から７のいずれか１項に記載の制御装置であって、
前記パラメーターは、前記第１伝達部の伝達誤差を低減する補正値を含む、制御装置。
【請求項９】
請求項１から７のいずれか１項に記載の制御装置であって、
前記パラメーターは、前記第１伝達部の伝達誤差を低減する補正値を導出するためのパラメーターを含む、制御装置。
【請求項１０】
請求項１から９のいずれか１項に記載の制御装置であって、
前記第２動作要素は、前記第１可動部を前記第２位置から前記第１位置へ動作させる動作である、制御装置。
【請求項１１】
請求項１０記載の制御装置であって、
前記第１特定動作は、前記第１動作要素と前記第２動作要素との組み合わせを複数、含む、制御装置。
【請求項１２】
請求項１から１１のいずれか１項に記載の制御装置であって、
前記受付部は、前記第１処理を指示する信号として、前記第１処理を実行すべき旨のコマンドを表す信号を受け付けることができる、制御装置。
【請求項１３】
請求項１から１２のいずれか１項に記載の制御装置であって、
前記ロボットは、それぞれ駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を２個以上備え、
前記第１処理を指示する信号は、前記２個以上の可動部のうち前記第１可動部としての１の可動部の前記関節の指定を表す情報を含む、制御装置。
【請求項１４】
請求項１から１２のいずれか１項に記載の制御装置であって、
前記ロボットは、さらに、駆動力を発生させる第２駆動部によって第２伝達部を介して駆動される第２可動部を備え、
前記受付部は、前記第１可動部の位置精度を向上させるための前記パラメーターを導出し、前記第２可動部の位置精度を向上させるためのパラメーターを導出する第２処理を指示する信号を受け付けることができ、
前記制御装置は、
前記受付部が前記第２処理を指示する信号を受け付けたことに起因して、前記第１駆動部を制御して前記第１可動部に前記第１特定動作を行わせ、前記第２駆動部を制御して、前記第１特定動作と少なくとも一部、並行して、前記第２可動部に第２特定動作を行わせ、
前記第２特定動作は、前記第２可動部を第３位置から第４位置へ動作させる第３動作要素と、前記第３動作要素とは逆向きに前記第２可動部を動作させる第４動作要素と、を含み、
前記制御部は、
前記第１動作要素と前記第２動作要素とが実行されているときに、前記第１入力位置検出部を使用して、前記第１伝達部の前記入力側の動作位置を検出させ、前記第１出力位置検出部を使用して、前記第１伝達部の前記出力側の動作位置を検出させ、
前記第３動作要素と前記第４動作要素とが実行されているときに、
前記第２伝達部の入力側の動作位置を検出する第２入力位置検出部を使用して、前記第２伝達部の前記入力側の動作位置を検出させ、
前記第２伝達部の出力側の動作位置を検出する第２出力位置検出部を使用して、前記第２伝達部の前記出力側の動作位置を検出させる、制御装置。
【請求項１５】
請求項１４記載の制御装置であって、
前記第１動作要素から第４動作要素は、回転であり、
前記第１伝達部の前記入力側の前記動作位置、前記第１伝達部の前記出力側の前記動作位置、前記第２伝達部の前記入力側の前記動作位置、および前記第２伝達部の前記出力側の前記動作位置は、いずれも角度位置であり、
前記第１可動部の回転軸と前記第２可動部の回転軸とは、互いに垂直である、制御装置。
【請求項１６】
請求項１４または１５記載の制御装置であって、
前記ロボットは、駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を３個以上備え、
前記第２処理を指示する信号は、前記３個以上の可動部のうち、前記第１可動部としての１の可動部の前記関節の指定と、前記第２可動部としての他の１の可動部の前記関節の指定と、を表す情報を含む、制御装置。
【請求項１７】
請求項１から１６のいずれか１項に記載の制御装置によって制御されるロボット。
【請求項１８】
請求項１から１６のいずれか１項に記載の制御装置と、
前記制御装置によって制御される前記ロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットにおいて動作精度を高める技術に関する。
【背景技術】
【０００２】
従来、ロボットの技術分野において、減速機として、波動歯車減速機が使用されている。波動歯車減速機は、その原理上、角度伝達誤差を含む。特許文献１は、波動歯車減速機の角度伝達誤差を低減する制御方法を提案している。特許文献１の技術においては、制御対象として、モーターと減速機が一体となっている装置が想定されている。そのような装置を制御対象とする場合は、以下のような方法で、その装置の角度伝達誤差を低減できる。すなわち、装置の完成後に装置の入力と出力の測定を同時に行って、伝達誤差を算出する。そして、その伝達誤差に基づいて装置用の補正値を決定し、その補正値を使用してその装置を制御する。
【０００３】
しかし、ロボットのように複数組のモーターと減速機が使用される装置においては、装置が完成し工場などに設置された後、メンテナンスの際に一部の減速機が交換されることがある。そのような場合には、装置の完成後に設定された補正値を使用した制御を行っても、装置全体として角度伝達誤差を低減できなくなる。
【０００４】
そのような装置において、一部の減速機が交換された場合には、交換後に新たに装置の入力と出力の測定を行って、その装置用の新たな補正値を決定することができる。しかし、装置が設置された環境によっては、減速機を含む装置の周囲に、その装置が処理する部材を供給する供給装置、減速機を含む装置が処理した部材を次の工程に搬送する搬送装置、他の加工装置などが設けられている場合がある。そのような場合には、新たな減速機用の補正値を決定するための測定は、それら周囲の装置と干渉しないように行われなければならない。そのような場合には、測定の際の装置の動作範囲が小さくなるため、十分な精度で補正値を決定できない場合がある。
【０００５】
また、測定の際の装置の動作範囲を十分に確保するため、減速機を含む装置を周囲に干渉物がない環境に移動させてから、新たな減速機用の補正値を決定するための測定を行うこともできる。しかし、そのような場合には、移設を行わない場合に比べて、その装置が行っている生産が中断する時間が長くなってしまう。
【０００６】
そのような問題を解決するための技術として、特許文献２においては、トルク指令、モーター角度、手先位置から、ロボット全体ではなく、ロボットの各関節における角度伝達誤差の補正値を求める技術が提案されている。特許文献２の技術においては、補正パラメーターを決定するために、ロボットに水平面上での一方向の直線動作をさせて測定を行っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−９０６９２号公報
【特許文献２】特開２０１１−２１２８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献２においては、角度伝達誤差を測定する際に補正値の測定精度を高めることができる動作については、考慮されていない。たとえば、特許文献２において実施されている水平面上での直線動作においては、補正値を決定しようとしている減速機が設けられている関節以外の関節も同時に駆動される。このため、測定値には、他の関節に起因する誤差が含まれる。また、特許文献２の技術においては、関節を一方向に動かして測定を行っている。このため、特許文献２の技術においては、減速機のロストモーション（静止摩擦力や、軸の弾性的なねじれに起因する、動作の向きに関して非対称の位置の誤差）やバックラッシ（駆動力を伝達する構成要素同士の隙間に起因する位置の誤差）が考慮されていない。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【００１０】
（１）本開示の一形態によれば、ロボットを制御する制御装置が提供される。前記ロボットは、駆動力を発生させる第１駆動部によって第１伝達部を介して駆動される第１可動部を備える。この制御装置は：前記第１可動部の位置精度を向上させるためのパラメーターを導出する第１処理を指示する信号を受け付ける受付部と；前記受付部が前記信号を受け付けたことに起因して、前記第１駆動部を制御して、前記第１可動部に第１特定動作を行わせる制御部と、を備える。前記第１特定動作は、前記第１可動部を第１位置から第２位置へ動作させる第１動作要素と、前記第１動作要素とは逆向きに前記第１可動部を動作させる第２動作要素と、を含む。前記制御部は、前記第１動作要素と前記第２動作要素とが実行されているときに：前記第１伝達部の入力側の動作位置を検出する第１入力位置検出部を使用して、前記第１伝達部の前記入力側の動作位置を検出させ；前記第１伝達部の出力側の動作位置を検出する第１出力位置検出部を使用して、前記第１伝達部の前記出力側の動作位置を検出させる。
このような態様とすれば、第１動作要素の際の第１伝達部の入力側の動作位置と出力側の動作位置とを検出することができる。そして、第１動作要素とは逆向きの第２動作要素の際の第１伝達部の入力側の動作位置と出力側の動作位置とを検出することができる。そのため、入力側の動作位置から理論的に計算される出力側の理想的な動作位置と、測定された出力側の動作位置とのズレを、逆向きの二つの移動を行った場合について入手することができる。よって、それらの測定値に基づいて、ロストモーションやバックラッシを考慮して、第１可動部の位置精度を向上させるためのパラメーターを決定することができる。
【００１１】
（２）上記形態の制御装置であって、前記第１動作要素と前記第２動作要素は、回転であり、前記第１伝達部の前記入力側の前記動作位置は、角度位置であり、前記第１伝達部の前記出力側の前記動作位置は、角度位置である、態様とすることもできる。このような態様とすれば、回転運動を伝達する第１伝達部の角度伝達誤差を解消するための補正値を高精度に決定することができる。
【００１２】
（３）上記形態の制御装置であって、前記第１動作要素と前記第２動作要素の移動速度は、いずれも１００°／秒以下である、態様とすることができる。このような態様とすれば、第１動作要素と第２動作要素の移動速度が１００°／秒より大きい態様に比べて、第１可動部の慣性に起因する振動等が第１伝達部の出力側および入力側の動作位置に与える影響を低減して、測定を行うことができる。
【００１３】
（４）上記形態の制御装置であって、前記第１伝達部は、前記第１駆動部からの継続的な一定の入力に対して周期的な伝達誤差を発生させ、前記第１位置と前記第２位置との間の角度範囲は、１周期分の前記伝達誤差を生じさせる角度範囲を含む、態様とすることができる。このような態様とすれば、第１位置と前記第２位置との間の角度範囲が、１周期分の伝達誤差を生じさせる角度範囲よりも小さい態様に比べて、より高い精度で第１伝達部の角度伝達誤差を測定することができる。
【００１４】
（５）上記形態の制御装置であって、前記第１伝達部は、回転入力を、前記回転入力の回転速度よりも低い回転速度を有する回転出力に変換する減速機を含む、態様とすることができる。
【００１５】
（６）上記形態の制御装置であって、前記第１出力位置検出部は、前記第１伝達部の出力軸の動作位置を検出することができる、態様とすることができる。このような態様とすれば、第１伝達部の出力によって駆動される下流の構成の動作位置を測定する態様に比べて、第１伝達部の出力位置を正確に検出することができる。
【００１６】
（７）上記形態の制御装置であって、前記第１出力位置検出部は、前記第１可動部の角速度および加速度の少なくとも一方を検出することができる慣性センサーである、態様とすることができる。このような態様とすれば、第１可動部の角速度を検出するための慣性センサーが第１可動部に設けられている場合には、その慣性センサーを有効に活用して、第１伝達部の出力位置を検出することができる。
【００１７】
（８）上記形態の制御装置であって、前記パラメーターは、前記第１伝達部の伝達誤差を低減する補正値を含む、態様とすることができる。このような態様とすれば、第１動作要素と第２動作要素の際に得られた測定値に基づいて、ロストモーションやバックラッシを考慮して、第１伝達部の伝達誤差を低減するための補正値を決定することができる。
【００１８】
（９）上記形態の制御装置であって、前記パラメーターは、前記第１伝達部の伝達誤差を低減する補正値を導出するためのパラメーターを含む、態様とすることができる。このような態様とすれば、第１動作要素と第２動作要素の際に得られた測定値に基づいて、ロストモーションやバックラッシを考慮して、第１伝達部の伝達誤差を低減するためのパラメーターを決定することができる。
【００１９】
（１０）上記形態の制御装置であって、前記第２動作要素は、前記第１可動部を前記第２位置から前記第１位置へ動作させる動作である、態様とすることができる。このような態様とすれば、逆方向の二つの移動について、同程度の精度で、第１可動部の位置精度を向上させるためのパラメーターを決定することができる。
【００２０】
（１１）上記形態の制御装置であって、前記第１特定動作は、前記第１動作要素と前記第２動作要素との組み合わせを複数、含む、態様とすることができる。このような態様とすれば、第１特定動作として第１動作要素と第２動作要素との組み合わせを１回だけ行う態様に比べて、逆方向の二つの移動について、より高精度に、第１可動部の位置精度を向上させるためのパラメーターを決定することができる。
【００２１】
（１２）上記形態の制御装置であって、前記受付部は、前記受付部は、前記第１処理を指示する信号として、前記第１処理を実行すべき旨のコマンドを表す信号を受け付けることができる、態様とすることができる。このような態様とすれば、ユーザーは、コマンドを使って、自ら望む内容を詳細に指定して、関節の減速機の入力側の動作位置および出力側の動作位置を検出させることができる。
【００２２】
（１３）上記形態の制御装置であって、前記ロボットは、それぞれ駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を２個以上備え、前記第１処理を指示する信号は、前記２個以上の可動部のうち前記第１可動部としての１の可動部の前記関節の指定を表す情報を含む、態様とすることができる。このような態様とすれば、ユーザーの意思を反映して、指定された関節に対応する可動部について、第１処理を行って、その第１伝達部の入力側の動作位置および出力側の動作位置を検出することができる。
【００２３】
（１４）上記形態の制御装置であって、前記ロボットは、さらに、駆動力を発生させる第２駆動部によって第２伝達部を介して駆動される第２可動部を備え；前記受付部は、前記第１可動部の位置精度を向上させるための前記パラメーターを導出し、前記第２可動部の位置精度を向上させるためのパラメーターを導出する第２処理を指示する信号を受け付けることができ；前記制御装置は：前記受付部が前記第２処理を指示する信号を受け付けたことに起因して、前記第１駆動部を制御して前記第１可動部に前記第１特定動作を行わせ、前記第２駆動部を制御して、前記第１特定動作と少なくとも一部、並行して、前記第２可動部に第２特定動作を行わせ；前記第２特定動作は、前記第２可動部を第３位置から第４位置へ動作させる第３動作要素と、前記第３動作要素とは逆向きに前記第２可動部を動作させる第４動作要素と、を含み；前記制御部は：前記第１動作要素と前記第２動作要素とが実行されているときに、前記第１入力位置検出部を使用して、前記第１伝達部の前記入力側の動作位置を検出させ、前記第１出力位置検出部を使用して、前記第１伝達部の前記出力側の動作位置を検出させ；前記第３動作要素と前記第４動作要素とが実行されているときに：前記第２伝達部の入力側の動作位置を検出する第２入力位置検出部を使用して、前記第２伝達部の前記入力側の動作位置を検出させ；前記第２伝達部の出力側の動作位置を検出する第２出力位置検出部を使用して、前記第２伝達部の前記出力側の動作位置を検出させる、態様とすることができる。
このような態様とすれば、第１伝達部についての測定と第２伝達部についての測定を前後して行う態様に比べて、第１可動部と第２可動部の位置精度を向上させるためのパラメーターを、短時間で決定することができる。
【００２４】
（１５）上記形態の制御装置であって、前記第１動作要素から第４動作要素は、回転であり；前記第１伝達部の前記入力側の前記動作位置、前記第１伝達部の前記出力側の前記動作位置、前記第２伝達部の前記入力側の前記動作位置、および前記第２伝達部の前記出力側の前記動作位置は、いずれも角度位置であり；前記第１可動部の回転軸と前記第２可動部の回転軸とは、互いに垂直である、態様とすることができる。このような対応とすれば、互いに影響を与えることなく、第１特定動作と第２特定動作による測定結果を得ることができる。
【００２５】
（１６）上記形態の制御装置であって、前記ロボットは、駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を３個以上備え；前記第２処理を指示する信号は、前記３個以上の可動部のうち、前記第１可動部としての１の可動部の前記関節の指定と、前記第２可動部としての他の１の可動部の前記関節の指定と、を表す情報を含む、態様とすることができる。このような対応とすれば、二つの可動部について第２処理を行って、それらの伝達部の入力側の動作位置および出力側の動作位置を検出すべき旨の指示を、ユーザーは容易に行うことができる。
【００２６】
（１７）本開示の他の形態によれば、上記形態のいずれかの制御装置によって制御されるロボットが提供される。
【００２７】
（１８）本開示の他の形態によれば、上記形態のいずれかの制御装置と；前記制御装置によって制御される前記ロボットと；を備えるロボットシステムが提供される。
【００２８】
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部又は全部を上述した本開示の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本開示の独立した一形態とすることも可能である。
【図面の簡単な説明】
【００２９】
【図１】第１実施形態のロボットシステム１を示す説明図である。
【図２】ロボット制御装置３００の制御部３０９の構成要素と、ロボット１００が備えるサーボモーター４１０およびモーター角度センサー４２０、減速機５１０、ならびに出力側角度センサー５２０と、の関係を示すブロック図である。
【図３Ａ】サーボモーター４１０の出力軸４１０ｏが一定の速度で回転した場合の、減速機５１０の入力軸５１０ｉの角度位置Ｄｉ０を示す。
【図３Ｂ】サーボモーター４１０の出力軸４１０ｏから継続的な一定の速度の入力があった場合の、減速機５１０の出力軸５１０ｏの角度位置の一例Ｄｏ０を示す。
【図４Ａ】減速機５１０の出力軸５１０ｏから継続的な一定の速度の出力を行おうとする場合の、減速機５１０の入力軸５１０ｉの角度位置の一例Ｄｉ１を示す。
【図４Ｂ】減速機５１０の出力軸５１０ｏから継続的な一定の速度の出力を行おうとする場合の、減速機５１０の出力軸５１０ｏの角度位置Ｄｏ１を示す。
【図５】アーム１１０の位置精度を向上させるためのパラメーターを導出するの設定の手順を示すフローチャートである。
【図６】ある向きにアーム１１０を動作させたときの角度位置の誤差を示すグラフである。
【図７】第２実施形態のロボット１００ｂを示す説明図である。
【図８】第２実施形態において、図５のステップＳ１００で、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスＵＩ０１を示す図である。
【図９】図５のステップＳ２００が実行されている際に、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスＵＩ０２を示す図である。
【図１０】図５のステップＳ４００においてＲＯＭ３０２に格納される補正値表を示す図である。
【図１１】第３実施形態において、図５のステップＳ１００で、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスＵＩ０３を示す図である。
【図１２】図５のステップＳ２００において、関節Ｊ１に角度範囲１０°で特定動作を行わせるためのコマンドおよび付属パラメーターを示す図である。
【図１３】図５のステップＳ２００において、関節Ｊ１，Ｊ２にそれぞれ角度範囲１０°で特定動作を行わせるための複数のコマンドおよび付属パラメーターを示す図である。
【発明を実施するための形態】
【００３０】
Ａ．第１実施形態：
Ａ１．ロボットシステムの構成：
図１は、第１実施形態のロボットシステム１を示す説明図である。本実施形態のロボットシステム１は、ロボット１００と、ロボット制御装置３００と、設定装置６００と、を備える。
【００３１】
ロボット１００は、回転関節Ｘ１１を備えたアーム１１０を有する１軸ロボットである。関節Ｘ１１は、ねじり関節である。ロボット１００は、関節Ｘ１１を回転させることにより、アーム１１０を、３次元空間中の指定された位置に配することができる。なお、第１実施形態では、技術の理解を容易にするために、回転関節Ｘ１１を一つだけ備えたロボットを例として示す。しかし、本開示は、複数の関節を備えた多軸ロボットに適用可能である。
【００３２】
ロボット１００は、さらに、サーボモーター４１０と、減速機５１０と、モーター角度センサー４２０と、出力側角度センサー５２０と、フレームＦ１００と、を備える。アーム１１０と、サーボモーター４１０と、減速機５１０と、モーター角度センサー４２０と、出力側角度センサー５２０とは、フレームＦ１００に取りつけられている。
【００３３】
サーボモーター４１０は、ロボット制御装置３００から電流を供給されて駆動力を発生させる。より具体的には、サーボモーター４１０は、電流を供給されて、その出力軸４１０ｏを回転させる。モーター角度センサー４２０は、出力軸４１０ｏの角度位置を検出する。モーター角度センサー４２０が検出した出力軸４１０ｏの角度位置は、ロボット制御装置３００に送信される。
【００３４】
減速機５１０は、入力軸５１０ｉと出力軸５１０ｏを備える。減速機５１０は、入力軸５１０ｉに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸５１０ｏから出力する。減速機５１０は、具体的には、波動歯車減速機である。
【００３５】
減速機５１０の入力軸５１０ｉは、サーボモーター４１０の出力軸４１０ｏに接続されている。そして、入力軸５１０ｉの角度位置は、サーボモーター４１０の出力軸４１０ｏの角度位置と等しい。このため、サーボモーター４１０の出力軸４１０ｏの角度位置を検出することができるモーター角度センサー４２０は、減速機５１０の入力軸５１０ｉの角度位置を検出していることとなる。
【００３６】
サーボモーター４１０の出力軸４１０ｏからの継続的な一定の入力に対して、減速機５１０は、周期的な伝達誤差を発生させる。すなわち、サーボモーター４１０の出力軸４１０ｏからの継続的な一定速度の回転入力に対して、減速機５１０の出力軸５１０ｏの回転速度および角度位置は、周期的なずれを含む。
【００３７】
アーム１１０は、減速機５１０の出力軸５１０ｏに固定されている。その結果、アーム１１０は、出力軸５１０ｏの回転によって、減速機５１０を介して、関節Ｘ１１において回転される。
【００３８】
出力側角度センサー５２０は、アーム１１０を挟んで減速機５１０とは逆の側に配されている。減速機５１０の出力軸５１０ｏは、アーム１１０を貫通している。出力側角度センサー５２０は、減速機５１０の出力軸５１０ｏの角度位置を検出する。すなわち、モーター角度センサー４２０が、減速機５１０の入力側の動作位置を検出しているのに対して、出力側角度センサー５２０は、減速機５１０の出力側の動作位置を検出している。
【００３９】
なお、本明細書においては、駆動力を伝達する伝達部（本実施形態において減速機５１０）において、入力される駆動力を受ける部材（本実施形態において入力軸５１０ｉ）の動作位置を、「入力側の動作位置」と記載する。駆動力を伝達する伝達部において、出力される駆動力を他の構成に伝達する部材（本実施形態において出力軸５１０ｏ）の動作位置を、「出力側の動作位置」と記載する。
【００４０】
出力側角度センサー５２０は、具体的には、光学式のロータリーエンコーダーである。ただし、出力側角度センサー５２０は、絶対的な角度位置を検出することができるエンコーダーである。減速機５１０の出力軸５１０ｏの角度位置を検出するロータリーエンコーダーを設けることにより、減速機５１０の出力によって駆動されるより下流の構成（たとえば、エンドエフェクタ）の動作位置を測定する態様に比べて、減速機５１０の出力位置を正確に検出することができる。出力側角度センサー５２０が検出した出力軸５１０ｏの角度位置は、ロボット制御装置３００に送信される。
【００４１】
ロボット制御装置３００は、ロボット１００を制御する制御装置である。ロボット制御装置３００は、ロボット１００に接続されている。ロボット制御装置３００は、ＲＡＭ３０１，ＲＯＭ３０２，ＣＰＵ３０３を備えるコンピューターである。ＣＰＵ３０３は、ＲＯＭ３０２に記憶されたコンピュータープログラムをＲＡＭ３０１にロードして実行することによって、後述する様々な機能を実現する。
【００４２】
設定装置６００は、ロボット制御装置３００に対して、ロボット１００の動作の際に使用されるパラメーターを設定する。設定装置６００は、出力装置として機能するディスプレイ６０２と、入力装置として機能するキーボード６０４およびマウス６０５と、を備えたコンピューターである。設定装置６００は、さらに、ＣＰＵ６１０とＲＯＭ６３０とＲＡＭ６４０とを備えている。ＣＰＵ６１０は、ＲＯＭ６３０に記憶されたコンピュータープログラムをＲＡＭ６４０にロードして実行することによって、後述する様々な機能を実現する。
【００４３】
設定装置６００は、ロボット制御装置３００に接続されている。設定装置６００は、ロボット制御装置３００（具体的には、モーター角度センサー４２０と、出力側角度センサー５２０など）からの出力に基づいて、ロボット１００の動作の際に使用されるパラメーターを決定する。そして、設定装置６００は、ロボット制御装置３００のＲＯＭ３０２に、そのパラメーターを記憶させる。ロボット制御装置３００は、そのパラメーターを使用してロボット１００に出力する制御信号を生成する。それらのパラメーターに基づいて制御信号を生成し、ロボット１００を制御するＣＰＵ３０３の機能部を、「制御部３０９」として図１に示す。
【００４４】
図２は、ロボット制御装置３００の制御部３０９の構成要素と、ロボット１００が備えるサーボモーター４１０およびモーター角度センサー４２０、減速機５１０、ならびに出力側角度センサー５２０と、の関係を示すブロック図である。ロボット制御装置３００の制御部３０９は、制御信号生成部３１０と、位置制御部３２０と、速度制御部３３０と、補正部３６５と、を備える。
【００４５】
制御信号生成部３１０は、アーム１１０が位置すべき目標位置を表す位置制御信号を生成し、位置制御部３２０に出力する。
【００４６】
位置制御部３２０は、制御信号生成部３１０から位置制御信号を受信する。位置制御部３２０は、位置フィードバックとして、ロボット１００のモーター角度センサー４２０から、サーボモーター４１０の角度位置を受信する。位置制御部３２０は、それらの情報に基づいて、ロボット１００のサーボモーター４１０の速度制御信号を生成し、速度制御部３３０に出力する。
【００４７】
速度制御部３３０は、位置制御部３２０から速度制御信号を受信する。また、速度制御部３３０は、速度フィードバックとして、モーター角度センサー４２０から出力されたサーボモーター４１０の角度位置を微分して得られる信号、すなわち回転速度の信号を受信する。図２において、角度位置の微分を表すブロックを「Ｓ」を付したブロックで示す。速度制御部３３０は、位置制御部３２０からの速度制御信号と、サーボモーター４１０の回転速度と、に基づいて、トルク制御信号を生成し、出力する。その後、トルク制御信号に基づいて、サーボモーター４１０に供給する電流量が決定され、決定された電流量の電流がサーボモーター４１０に供給される。
【００４８】
補正部３６５は、モーター角度センサー４２０から、出力軸４１０ｏの角度位置（減速機５１０の入力軸５１０ｉの角度位置に等しい）の信号を受信する。補正部３６５は、出力軸４１０ｏの最新の角度位置の信号と、直前の角度位置の信号と、からサーボモーター４１０の回転の向きを決定し、回転の向きおよび最新の角度位置に応じて、補正信号を生成する。そして、補正部３６５は、補正信号を位置制御部３２０に出力する。その結果、位置制御部３２０は、モーター角度センサー４２０からのサーボモーター４１０の角度位置と、補正部３６５からの補正信号と、が加算された信号を受信する。
【００４９】
さらに、補正部３６５は、補正信号を微分して得られる信号を速度制御部３３０に出力する。その結果、速度制御部３３０は、サーボモーター４１０の角度位置を微分して得られる速度信号と、補正部３６５からの補正信号を微分して得られる信号と、が加算された信号を受信する。
【００５０】
図３Ａは、サーボモーター４１０の出力軸４１０ｏが一定の速度で回転した場合の、サーボモーター４１０の出力軸４１０ｏ（すなわち、減速機５１０の入力軸５１０ｉ）の角度位置Ｄｉ０を示す。図３Ｂは、サーボモーター４１０の出力軸４１０ｏから継続的な一定の速度の入力があった場合の、減速機５１０の出力軸５１０ｏの角度位置の一例Ｄｏ０を示す。ただし、図３Ｂに示す出力軸５１０ｏの角度位置Ｄｏ０のスケールと、図３Ａに示す入力軸５１０ｉの角度位置Ｄｉ０のスケールとは異なる。図３Ａおよび図３Ｂは、それぞれ、補正部３６５が補正値を出力しないと仮定した場合の入力軸５１０ｉの角度位置Ｄｉ０と、出力軸５１０ｏの角度位置Ｄｏ０と、を示す。
【００５１】
前述のように、サーボモーター４１０の出力軸４１０ｏからの継続的な一定の入力に対して、減速機５１０は、周期的な伝達誤差を発生させる。このため、減速機５１０の入力軸５１０ｉの角度位置Ｄｉ０が時間に比例して増大するのに対して、減速機５１０の出力軸５１０ｏの角度位置Ｄｏ０は、時間に対する比例値（破線で示す）に対して、周期的なずれを含む。
【００５２】
図４Ａは、本実施形態において、減速機５１０の出力軸５１０ｏから継続的な一定の速度の出力を行おうとする場合の、減速機５１０の入力軸５１０ｉの角度位置の一例Ｄｉ１を示す。図４Ｂは、本実施形態において、減速機５１０の出力軸５１０ｏから継続的な一定の速度の出力を行おうとする場合の、減速機５１０の出力軸５１０ｏの角度位置Ｄｏ１を示す。ただし、図４Ｂに示す出力軸５１０ｏの角度位置Ｄｏ１のスケールと、図４Ａに示す入力軸５１０ｉの角度位置Ｄｉ１のスケールとは異なる。図４Ａおよび図４Ｂは、補正部３６５を機能させて、減速機５１０の出力軸５１０ｏにおいて継続的な一定の速度の出力を行おうとする場合の、望ましい入力軸５１０ｉの角度位置Ｄｉ１と、出力軸５１０ｏの角度位置Ｄｏ１と、を示す。なお、参考のために、図３Ａに示した入力軸５１０ｉの角度位置Ｄｉ１を図４Ａにおいて破線で示す。
【００５３】
前述のように、位置制御部３２０は、位置フィードバックとして、モーター角度センサー４２０からのサーボモーター４１０の角度位置と、補正部３６５からの補正信号と、が加算された信号を受信する（図２参照）。速度制御部３３０は、速度フィードバックとして、サーボモーター４１０の角度位置を微分して得られる速度信号と、補正部３６５からの補正信号を微分して得られる信号と、が加算された信号を受信する。位置制御部３２０がそのような位置フィードバックに基づいて速度制御信号を生成し、速度制御部３３０がそのような速度フィードバックに基づいてトルク制御信号を生成すると、サーボモーター４１０の出力軸４１０ｏの角度位置、すなわち、減速機５１０の入力軸５１０ｉの角度位置Ｄｉ１は、図４Ａに示すように、時間に対して比例する値（図４Ａの破線参照）に対して周期的なずれを有することとなる。
【００５４】
図４Ａに示す角度位置Ｄｉ１を実現する入力を入力軸５１０ｉに対して受けると、出力軸５１０ｏの角度位置Ｄｏ１は、図４Ｂに示すように、時間に対して比例する直線となる。補正部３６５は、このような原理に基づいて、出力軸５１０ｏの角度位置Ｄｏ１の精度を高める機能を奏する（図２参照）。
【００５５】
補正部３６５から位置制御部３２０に出力されるべき周期的な補正信号が、サイン（ｓｉｎ）に、位置に応じた所定の係数を乗じた値であると仮定すると、補正部３６５から速度制御部３３０に出力される補正信号の微分値は、コサイン（ｃｏｓ）に、速度に応じた所定の係数を乗じた値となる（図２参照）。補正信号の微分値としては、１回前に取得したサーボモーター４１０の角度位置に基づいた補正信号と、最新の角度位置に基づいた補正信号との差分により算出される値よりも、数式的にコサイン（ｃｏｓ）に速度に応じた係数を乗じて算出される値のほうが、時間遅延が少なくなる。このため、本実施形態によれば、め精度のよい補正ができる。
【００５６】
Ａ２．位置精度を向上させるためのパラメーターの設定：
図５は、アーム１１０の位置精度を向上させるためのパラメーターを導出するための設定の手順を示すフローチャートである。図５の処理は、設定装置６００、ロボット制御装置３００およびロボット１００によって実行される。
【００５７】
ステップＳ１００では、ユーザーが、アーム１１０の位置精度を向上させるためのパラメーターを導出する処理の開始を指示する。具体的には、ユーザーは、キーボード６０４およびマウス６０５を介して、設定装置６００に処理の開始時を指示する（図１参照）。設定装置６００は、指示が入力されると、アーム１１０の位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳを、ロボット制御装置３００に送信する。このような信号を生成する設定装置６００のＣＰＵ６１０の機能部を、図１において「命令生成部６１２」として示す。また、ロボット制御装置３００においてこの信号を受け付ける機能を奏する機能部を、図１において「受付部３０７」として示す。
【００５８】
図５のステップＳ２００においては、アーム１１０の位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳを受付部３０７が受け付けたことに起因して、ロボット制御装置３００の制御部３０９は、ロボット１００のサーボモーター４１０を駆動して、アーム１１０に特定動作を行わせる。
【００５９】
具体的には、ステップＳ２２０において、制御部３０９は、あらかじめ定められた角度位置である第１位置Ｐ１（図１参照）から、同様に、あらかじめ定められた角度位置である第２位置Ｐ２に、アーム１１０を回転運動させる。その際の移動速度は、１００°／秒以下である。この動作を、本明細書において、「第１動作要素Ｍｅ１」または「往動」と呼ぶ。
【００６０】
第１位置Ｐ１と第２位置Ｐ２との間の角度範囲は、本実施形態においては、周期的な伝達誤差を発生させる減速機５１０が１周期分の伝達誤差の変化を生じさせ、４周期分以上の伝達誤差の変化を生じさせない角度範囲である。減速機５１０は波動歯車減速機であるため、入力軸５１０ｉが半回転するたびに、入力軸５１０ｉと出力軸５１０ｏとの間の角度伝達誤差は、１周期分の変化を起こす。このため、第１位置Ｐ１と前記第２位置Ｐ２との間の角度範囲は、入力軸５１０ｉの角度範囲において半周分より大きく２周分より小さい角度範囲である。
【００６１】
第１動作要素Ｍｅ１が実行されている間に、ロボット制御装置３００の制御部３０９は、モーター角度センサー４２０を使用して、減速機５１０の入力側の動作位置、すなわち、入力軸５１０ｉの角度位置を検出させる（図１参照）。また、第１動作要素Ｍｅ１が実行されている間に、ロボット制御装置３００の制御部３０９は、出力側角度センサー５２０を使用して、減速機５１０の出力側の動作位置、すなわち、出力軸５１０ｏの角度位置を検出させる。検出されたそれぞれの角度位置は、ロボット制御装置３００に送信され、ロボット制御装置３００を介して、設定装置６００に送信される。
【００６２】
ステップＳ２４０において、制御部３０９は、第２位置Ｐ２から第１位置Ｐ１に、アーム１１０を回転運動させる。すなわち、この動作において、アーム１１０は、第１動作要素Ｍｅ１とは逆向きに動作する。その際の移動速度も、１００°／秒以下である。この動作を、本明細書において、「第２動作要素Ｍｅ２」または「復動」と呼ぶ。
【００６３】
第１動作要素Ｍｅ１および第２動作要素Ｍｅ２の移動速度を上記のような比較的低い値とすることにより、アーム１１０の慣性に起因する振動（アーム１１０の移動中の振動および停止指示後のアーム１１０の残留振動を含む）が、減速機５１０の出力側および入力側の動作位置に与える影響を低減することができる。
【００６４】
第２動作要素Ｍｅ２が実行されている間に、ロボット制御装置３００の制御部３０９は、出力側角度センサー５２０を使用して、減速機５１０の入力側の動作位置、すなわち、入力軸５１０ｉの角度位置を検出させる。また、第２動作要素Ｍｅ２が実行されている間に、ロボット制御装置３００の制御部３０９は、出力側角度センサー５２０を使用して、減速機５１０の出力側の動作位置、すなわち、出力軸５１０ｏの角度位置を検出させる。検出されたそれぞれの角度位置は、ロボット制御装置３００に送信され、ロボット制御装置３００を介して、設定装置６００にも送信される。
【００６５】
このような処理を行うことにより、第１動作要素Ｍｅ１の際の減速機５１０の入力側の動作位置と出力側の動作位置とを検出することができる（図５のＳ２２０参照）。そして、第１動作要素Ｍｅ１とは逆向きの第２動作要素Ｍｅ２の際の減速機５１０の入力側の動作位置と出力側の動作位置とを検出することができる（図５のＳ２４０参照）。そのため、入力側の動作位置から理論的に計算される出力側の理想的な動作位置と、測定された出力側の動作位置とのズレを、逆向きの二つの移動を行った場合について入手することができる（図３Ｂ参照）。よって、設定装置６００は、それらの測定値に基づいて、ロストモーションやバックラッシが考慮された、アーム１１０の位置精度を向上させるためのパラメーターを決定することができる。
【００６６】
ステップＳ２００においては、ステップＳ２２０，Ｓ２４０の処理が、複数回、繰り返し行われる。すなわち、ステップＳ２００においては、第１動作要素Ｍｅ１と第２動作要素Ｍｅ２との組み合わせを複数、含む特定動作が実行される。
【００６７】
このような処理を行うことにより、アーム１１０を大きく動作させることなく、高精度な補正用のパラメーターが得られる。よって、ロボット１００を工場に設置した後、ロボット１００の減速機５１０が交換された場合にも、ロボット１００をその設置場所から移動させることなく、かつ、周囲の構造物に干渉することなく、高精度な補正用のパラメーターが得られる。
【００６８】
図５のステップＳ３００において、設定装置６００のＣＰＵ６１０は、ステップＳ２００で得られたそれぞれの動作要素におけるアーム１１０の角度位置の測定結果に基づいて、補正パラメーターの値を計算する。設定装置６００のＣＰＵ６１０は、より具体的には、入力側の動作位置から理論的に計算される出力側の理想的な動作位置と、測定された出力側の動作位置とのずれを、それぞれの動作要素について計算する。そして、それぞれの動作要素についてのずれを打ち消すことができるように、補正値を計算する。このような設定装置６００のＣＰＵ６１０の機能部を、パラメーター決定部６１４として図１に示す。
【００６９】
パラメーター決定部６１４は、まず、第１動作要素Ｍｅ１における、入力軸５１０ｉの角度位置から得られる理想的な出力軸５１０ｏの角度位置に対する、実際の出力軸５１０ｏの角度位置のずれ、すなわち角度伝達誤差の入力軸５１０ｉの角度位置に沿った変化を得る。そして、その角度伝達誤差を正弦波で近似する。その近似式を式（１）で示す。
【００７０】
α＝Ａ×ｓｉｎ（ｎ×θ＋φ）    ・・・  （１）
α：角度伝達誤差
θ：減速機５１０の入力軸５１０ｉの角度位置
Ａ：振幅（第１の設定パラメーター）
ｎ：角度伝達誤差の周期に対応する係数
φ：位相補正量（第２の設定パラメーター）
【００７１】
ここで、ｎは、減速機の入力軸が１回転する間に、入力軸と出力軸との間の角度伝達誤差が起こす変化の周期の数である。ｎの値は、減速機５１０の構成によって決まる。本実施形態において減速機５１０は波動歯車減速機であるため、入力軸５１０ｉが半回転するたびに、入力軸５１０ｉと出力軸５１０ｏとの間の角度伝達誤差は１周期分の変化を起こす。すなわち、本実施形態において、ｎは、２およびその倍数である。
【００７２】
ステップＳ２２０において得られた第１動作要素Ｍｅ１におけるアーム１１０の角度位置の複数組の測定結果に基づいて、パラメーター決定部６１４は、重回帰分析により、上記式（１）の振幅Ａと、位相補正量φを計算する。振幅Ａを「第１の補正パラメーター」とも呼ぶ。位相補正量φを「第２の補正パラメーター」とも呼ぶ。第１の補正パラメーターおよび第２の補正パラメーターは、減速機５１０の伝達誤差を低減する補正値を導出するためのパラメーターである。第１動作要素Ｍｅ１に対応する振幅Ａと、位相補正量φを、それぞれ振幅Ａ１と、位相補正量φ１とする。
【００７３】
同様の処理により、ステップＳ２４０において得られた第２動作要素Ｍｅ２におけるアーム１１０の角度位置の複数組の測定結果に基づいて、パラメーター決定部６１４は、上記式（１）の振幅Ａと、位相補正量φを計算する。第２動作要素Ｍｅ２に対応する振幅Ａと、位相補正量φを、それぞれ振幅Ａ２と、位相補正量φ２とする。
【００７４】
図５のステップＳ４００では、設定装置６００のパラメーター決定部６１４は、振幅Ａ１と位相補正量φ１の組み合わせと、振幅Ａ２と位相補正量φ２の組み合わせとを、それぞれ第１動作要素Ｍｅ１の向きおよび第２動作要素Ｍｅ２の向きと対応づけて、ロボット制御装置３００のＲＯＭ３０２に記憶させる。また、それらのパラメーターは、設定装置６００のディスプレイ６０２に表示される。
【００７５】
ロボット１００を運用する際には、制御部３０９の補正部３６５は、サーボモーター４１０が第１動作要素Ｍｅ１の向きと同じ向きに回転している場合には、補正パラメーターとして、振幅Ａ１と位相補正量φ１とを使用して、式（１）に基づいて、減速機５１０の入力軸５１０ｉの角度位置θに応じた角度伝達誤差αを計算する。そして、得られた角度伝達誤差αを打ち消す補正量「−α」を位置制御部３２０への位置フィードバックに加算する（図２参照）。また、その補正量「−α」の微分値を、速度制御部３３０への速度フィードバックに加算する。このような処理を行うことにより、入力側の任意の動作位置に対して、適切な補正値を決定することができる。
【００７６】
サーボモーター４１０が第２動作要素Ｍｅ２の向きと同じ向き（第１動作要素Ｍｅ１の向きとは逆の向き）に回転している場合には、制御部３０９の補正部３６５は、補正パラメーターとして、振幅Ａ２と位相補正量φ２とを使用して、式（１）に基づいて、減速機５１０の入力軸５１０ｉの角度位置θに応じた角度伝達誤差αを計算する。そして、得られた角度伝達誤差αを打ち消す補正量「−α」を位置制御部３２０への位置フィードバックに加算する（図２参照）。また、その補正量「−α」の微分値を、速度制御部３３０への速度フィードバックに加算する。このような処理を行うことにより、入力側の任意の動作位置に対して、適切な補正値を決定することができる。
【００７７】
また、上記のように、動作方向に応じて処理を切り換えることにより、減速機のロストモーションやバックラッシを打ち消すような、高精度な角度伝達誤差の補正を行うことができる（図３Ａ〜図４Ｂ参照）。
【００７８】
図６は、ある向きにアーム１１０を動作させたときの角度位置の誤差を示すグラフである。グラフＧ０は、補正部３６５の機能を停止させてアーム１１０を動作させたときの角度位置の誤差を示すグラフである。グラフＧ１は、補正部３６５を機能させてアーム１１０を動作させたときの角度位置の誤差を示すグラフである。図６から分かるように、上記のような処理によって決定された補正値で補正を行うことにより、アーム１１０の位置精度が有意に向上したことが分かる。
【００７９】
なお、本実施形態におけるサーボモーター４１０は、「第１駆動部」とも呼ばれる。減速機５１０は、「第１伝達部」とも呼ばれる。アーム１１０は、「第１可動部」とも呼ばれる。ロボット制御装置３００は、「制御装置」とも呼ばれる。モーター角度センサー４２０は、「第１入力位置検出部」とも呼ばれる。出力側角度センサー５２０は、「第１出力位置検出部」とも呼ばれる。関節Ｘ１１についての図５のステップＳ２００〜Ｓ４００が、「第１可動部の位置精度を向上させるためのパラメーターを導出する第１処理」として機能する。
【００８０】
Ｂ．第２実施形態：
図７は、第２実施形態のロボット１００ｂのアーム１１０ａを示す説明図である。第２実施形態においては、ロボット１００ｂの構成が第１実施形態のロボット１００とは異なる。また、第２実施形態においては、第１実施形態において数式（１）のパラメーターであった第１の補正パラメーターＡおよび第２の補正パラメーターφに代えて、入力軸の角度位置に応じた補正値自体が、あらかじめ記憶される。そして、ロボット１００を運用する際には、その補正値を使用して補正が行われる。第２実施形態の他の点は、第１実施形態と同じである。
【００８１】
ロボット１００ｂは、６個の回転関節Ｊ１〜Ｊ６を備えたアーム１１０ａを有する６軸ロボットである。すなわち、ロボット１００ｂは、それぞれサーボモーターによって減速機を介して回転関節において駆動される６個の要素アーム１１０ｂ〜１１０ｇで構成されたアーム１１０ａを備える。関節Ｊ１，Ｊ４，Ｊ６は、ねじり関節である。関節Ｊ２，Ｊ３，Ｊ５は、曲げ関節である。ロボット１００ｂは、６個の関節Ｊ１〜Ｊ６をそれぞれサーボモーターで回転させることにより、アーム１１０ａの先端部に取りつけられたエンドエフェクターを、３次元空間中の指定された位置に指定された姿勢で配することができる。なお、技術の理解を容易にするため、図７において、エンドエフェクターの図示は省略している。
【００８２】
ロボット１００ｂは、各関節について、第１実施形態のロボット１００と同様に、関節を駆動するサーボモーターと、サーボモーターの回転出力を減速する減速機と、サーボモーターの出力軸の角度位置を検出するモーター角度センサーと、を備える（図１参照）。なお、ロボット１００ｂは、各関節について、減速機の出力軸の角度位置を検出するエンコーダー（図１の出力側角度センサー５２０）を備えない。
【００８３】
図７においては、技術の理解を容易にするため、関節Ｊ１に備えられるサーボモーター４１０ｂ、モーター角度センサー４２０ｂ、および減速機５１０ｂと、関節Ｊ３に備えられるサーボモーター４１０ｃ、モーター角度センサー４２０ｃ、および減速機５１０ｃと、を示す。関節Ｊ１の回転軸と、関節Ｊ２およびＪ３の回転軸とは、互いに垂直である。
【００８４】
ロボット１００ｂは、各要素アーム１１０ｂ〜１１０ｇに慣性センサーを備える。図７においては、技術の理解を容易にするため、関節Ｊ１と関節Ｊ２の間の要素アーム１１０ｂに備えられる慣性センサー７１０と、関節Ｊ３と関節Ｊ４の間の要素アーム１１０ｄに備えられる慣性センサー７２０と、を示す。
【００８５】
慣性センサー７１０，７２０は、Ｘ軸、Ｙ軸、Ｚ軸方向を回転軸とする角速度を計測し、出力することができる。慣性センサー７１０，７２０による測定値は、ロボット制御装置３００に送信され、ロボット制御装置３００を介して、設定装置６００にも送信される。
【００８６】
第２実施形態のロボットシステムにおいても、図５の処理にしたがって補正パラメーターの設定が行われる。
【００８７】
図８は、第２実施形態において、図５のステップＳ１００で、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスＵＩ０１を示す図である。ユーザーインターフェイスＵＩ０１は、入力窓ＵＩ９１，ＵＩ９２、処理開始ボタンＵＩ１２、ならびに設定角度表示ＵＩ１３を備える。
【００８８】
入力窓ＵＩ９１は、位置精度を向上させるためのパラメーターを導出する処理の対象となる関節を選択するための入力窓である。入力窓ＵＩ９１は、関節Ｊ１〜Ｊ６のうちの一つを、選択的に入力されることができる。図８においては、入力窓ＵＩ９１において、関節Ｊ１が指定されている。
【００８９】
入力窓ＵＩ９２は、特定動作における振幅（すなわち、動作要素の両端を規定する第１位置と第２位置との間の角度範囲の１／２）の大きさを入力するための入力窓である。入力窓ＵＩ９１は、デフォルトであらかじめ数値が入力されている。ユーザーは、その数値を変更したい場合に、マウス６０５およびキーボード６０４を介して、入力窓ＵＩ９２に数値を入力する。図８においては、入力窓ＵＩ９２において、「１０°」が指定されている。
【００９０】
第２実施形態のロボット１００ｂの各関節の減速機にとって、「１０°」は、１周期分の伝達誤差の変化を生じさせるのに十分な角度範囲である。第２実施形態において、各関節の減速機の減速比は、１／８０である。このため、入力軸が１８０°回転（半回転）する間に、出力軸は２．２５°（＝１８０°／８０）回転する。よって、振幅１０°の回転運動、すなわち、両端の間が２０°の回転運動は、入力軸の半回転を８回（２０°／２．２５°）分含む。言い換えれば、振幅１０°の動作要素において、減速機の伝達誤差は、８周期以上の変化を生じる。
【００９１】
設定角度表示ＵＩ１３は、各関節Ｊ１〜Ｊ６について、ロボット１００ｂの現在の姿勢における角度位置、第１位置、第２位置を、それぞれ絶対的な角度位置で表示する表である。
【００９２】
図８の例において、関節Ｊ１は、現在、１０°の角度位置にあり（ＵＩ１３参照）、関節Ｊ１において特定動作（図５のＳ２００参照）を行う際の振幅は、１０°が指定されている（ＵＩ９２参照）。このため、関節Ｊ１において、第１位置Ｐ１１と第２位置Ｐ１２とは、それぞれ２０°（［現在位置１０°］＋［振幅１０°］）と０°（［現在位置１０°］−［振幅１０°］）の角度位置である（ＵＩ１３参照）。その結果、第１位置Ｐ１１と第２位置Ｐ１２との間の角度範囲は、２０°である。なお、ユーザーが入力窓ＵＩ９２の角度範囲を変更した場合には、ユーザーが入力した角度範囲と、現在位置とに基づいて、第１位置および第２位置が変更される。
【００９３】
それぞれの関節の特定動作における振幅、ならびに第１位置および第２位置は、以下の条件を満たすように決定される。すなわち、対象となる関節が、現在の位置を中心とする第１位置と第２位置との間の任意の角度位置をとっても、周囲の構造物と干渉しないように、振幅ならびに第１位置および第２位置は定められる。
【００９４】
本実施形態においては、現在の角度位置を中心にして特定動作の角度範囲が決められる。このため、ユーザーは、ロボット１００ｂの周囲の構造と干渉しない特定動作を、容易に決定することができる。
【００９５】
図７において、代表例として、関節Ｊ１で回転する要素アーム１１０ｂの第１位置Ｐ１１と第２位置Ｐ１２、ならびに関節Ｊ３で回転する要素アーム１１０ｄの第１位置Ｐ２１と第２位置Ｐ２２を、模式的に示す。図７においては、技術の理解を容易にするため、第１位置Ｐ１１と第２位置Ｐ１２を、第１動作要素Ｍｅ１１と第２動作要素Ｍｅ１２とをそれぞれ示す異なる矢印上に、示している。関節Ｊ３で回転する要素アーム１１０ｄの第１位置Ｐ２１と第２位置Ｐ２２についても、同様である。
【００９６】
図８の処理開始ボタンＵＩ１２は、図５のステップＳ２００以下の処理を、設定装置６００、ロボット制御装置３００、およびロボット１００ｂに行わせるためのボタンである。処理開始ボタンＵＩ１２がＯＮされると、位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳが、設定装置６００の命令生成部６１２によって生成され、設定装置６００からロボット制御装置３００に送信される。処理を指示する信号ＳＳは、関節Ｊ１〜Ｊ６のうち測定対象としての関節の指定を表す情報を含む。
【００９７】
本実施形態において、各要素アームは、対応するサーボモーターによって減速機を介して関節において駆動される。すなわち、一つの関節の回転は、基部がその関節に接続されている一つの要素アームを回転移動させる。このため、位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳは、実質的に、複数の要素アーム１１０ｂ〜１１０ｇのうち測定対象としての一つの要素アームの指定を表す情報を含んでいる。なお、本明細書において、要素アームの「基部」とは、アームに沿って見たとき、要素アームの両端のうち、アーム全体の固定端ＡＢに近い側の端である。
【００９８】
第２実施形態においては、図５のステップＳ１００で、図８に示すユーザーインターフェイスＵＩ０１が設定装置６００のディスプレイ６０２に表示される。ユーザーは、入力窓ＵＩ９１を介して、関節Ｊ１〜Ｊ６のうちの一つを、位置精度を向上させるためのパラメーターを導出する処理対象として、入力する。そして、ユーザーは、入力窓ＵＩ９２を介して、特定動作の振幅の大きさを入力する。そして、処理開始ボタンＵＩ１２を押して、入力した設定内容に沿って、図５のステップＳ２００以下の処理を行わせる。
【００９９】
このような処理を行うことにより、たとえば、ロボット１００ｂのいずれかの関節の減速機が交換された場合には、ユーザーは、交換された減速機を介して駆動される関節を指定することができる（図８のＵＩ９１参照）。その結果、その関節に一端を接続された要素アームの位置精度を向上させるためのパラメーターを導出する処理を、簡単な操作で行わせることができる。
【０１００】
図９は、図５のステップＳ２００が実行されている際に、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスＵＩ０２を示す図である。ユーザーインターフェイスＵＩ０２は、進捗表示ＵＩ４４と、キャンセルボタンＵＩ４５を備える。
【０１０１】
進捗表示ＵＩ４４は、ステップＳ２００の処理の進捗を示す棒グラフである。ステップＳ２００の処理が進むにつれて、棒グラフは、左から右に伸びる。棒グラフの先頭には、進捗率が数字で示される。図９において、進捗率は３０％である。
【０１０２】
キャンセルボタンＵＩ４５は、ユーザーインターフェイスＵＩ０１（図８参照）を通じて行われる処理を、強制的に終了させるためのボタンである。
【０１０３】
図５のステップＳ２００においては、ステップＳ２２０，Ｓ２４０の処理が、複数回、繰り返し行われる。このため、処理の完了までに比較的長い時間を要する場合がある。ステップＳ２００において、ユーザーインターフェイスＵＩ０２（図９参照）を表示することにより、ユーザーは、処理の進捗を把握することができる。また、処理の終了を待てない場合には、ユーザーは、マウス６０５を介してキャンセルボタンＵＩ４５を押すことにより、処理を強制的に終了させることができる。その結果、処理の終了を待たされることに起因するユーザーのいらだちを軽減することができる。
【０１０４】
第２実施形態においては、図５のステップＳ３００において、第１動作要素中に計測されたＸ軸、Ｙ軸、Ｚ軸方向を回転軸とする角速度に基づいて、制御部３０９が、第１動作要素中の、指定された関節を中心とする慣性センサーの角度位置を計算する。そして、制御部３０９は、第１動作要素中の慣性センサーの角度位置に基づいて、指定された関節を中心とする要素アームの角度位置（減速機の出力軸の角度位置に等しい）を計算する。すなわち、慣性センサーは、要素アームの角度位置を直接検出するものではないが、要素アームの角度位置と同等の情報を取得しうる。よって、広義には、要素アームの出力側の動作位置は、慣性センサーによって検出されるといえる。
【０１０５】
慣性センサーの検出値に基づいて得られた第１動作要素中の要素アームの角度位置（減速機の出力軸の角度位置に等しい）と、減速機の入力軸の角度位置である第１動作要素中のモーター角度センサーによる測定値と、に基づいて、設定装置６００のパラメーター決定部６１４は、近似式（１）の第１および第２の補正パラメーターＡ，φを計算する。
【０１０６】
第２実施形態においては、その後、さらに、パラメーター決定部６１４は、第１および第２の補正パラメーターＡ１，φ１を近似式（１）に設定し、減速機の入力軸の複数の角度位置θ（たとえば、１度間隔の３６０個の角度位置）について、角度伝達誤差αを計算する。そして、パラメーター決定部６１４は、角度伝達誤差αに基づいて、それぞれの角度位置θに応じた補正値を計算する。
【０１０７】
同様の処理が、第２動作要素中の慣性センサーおよびモーター角度センサーの測定値に基づいて、行われる。
【０１０８】
図１０は、図５のステップＳ４００において、パラメーター決定部６１４によってＲＯＭ３０２に格納される補正値表を示す図である。ステップＳ４００においては、ステップＳ３００で計算された、減速機の伝達誤差を打ち消す補正値が、それぞれの角度位置と対応づけられて、表としてＲＯＭ３０２に記憶される。第１動作要素Ｍｅ１の向きと対応づけられる補正値Ａ１〜Ａ３６０の表Ｔ１１と、第２動作要素Ｍｅ２の向きと対応づけられる補正値の表Ｔ１２の２種類の表が作成され、ＲＯＭ３０２に保存される。
【０１０９】
ロボット１００を運用する際には、制御部３０９の補正部３６５は、サーボモーター４１０が第１動作要素Ｍｅ１の向きと同じ向きに回転している場合には、補正パラメーターとして、表Ｔ１１を参照して得られる補正値を位置制御部３２０への位置フィードバックに加算する（図２参照）。より詳細には、補正値は、表Ｔ１１に格納されている、入力軸５１０ｉの角度位置最も近い二つの角度位置に対応する二つの補正値を使用して、補完処理を行って、決定される。また、補正部３６５は、その補正値の微分値を、速度制御部３３０への速度フィードバックに加算する。
【０１１０】
サーボモーター４１０が第２動作要素Ｍｅ２の向きと同じ向きに回転している場合には、制御部３０９の補正部３６５は、補正パラメーターとして、表Ｔ１２を参照して得られる補正値を位置制御部３２０への位置フィードバックに加算する（図２参照）。また、補正部３６５は、その補正値の微分値を、速度制御部３３０への速度フィードバックに加算する。
【０１１１】
このような処理を行うことにより、ロボット１００を運用する際に、式（１）に基づいて補正値を計算する態様に比べて、小さい負荷で、減速機のロストモーションやバックラッシを打ち消すような、高精度の角度伝達誤差の補正を行うことができる（図３Ａ〜図４Ｂ参照）。
【０１１２】
なお、本実施形態における関節Ｊ１のサーボモーター４１０ｂは、「第１駆動部」とも呼ばれる。減速機５１０ｂは、「第１伝達部」とも呼ばれる。要素アーム１１０ｂは、「第１可動部」とも呼ばれる。モーター角度センサー４２０ｂは、「第１入力位置検出部」とも呼ばれる。要素アーム１１０ｂの慣性センサー７１０は、「第１出力位置検出部」とも呼ばれる。関節Ｊ１についての図５のステップＳ２００〜Ｓ４００が、「第１可動部の位置精度を向上させるためのパラメーターを導出する第１処理」として機能する。
【０１１３】
本実施形態における各要素アーム１１０ｂ〜１１０ｇは、「可動部」とも呼ばれる。各要素アーム１１０ｂ〜１１０ｇを駆動するサーボモーターは、「駆動部」とも呼ばれる。各要素アーム１１０ｂ〜１１０ｇに接続される減速機は、「伝達部」とも呼ばれる。
【０１１４】
Ｃ．第３実施形態：
第３実施形態においては、図５のステップＳ１００で、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスが第２実施形態とは異なる。そして、第３実施形態においては、回転軸の方向が互いに垂直な複数の関節について、同時に特定動作が実施される。第３実施形態の他の点は、第２実施形態と同じである。
【０１１５】
図１１は、第３実施形態において、図５のステップＳ１００で、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスＵＩ０３を示す図である。ユーザーインターフェイスＵＩ０３は、入力部ＵＩ９１ａ〜ＵＩ９１ｆ、入力窓ＵＩ９２ａ〜ＵＩ９２ｆ、ならびに処理開始ボタンＵＩ１２を備える。
【０１１６】
入力部ＵＩ９１ａ〜ＵＩ９１ｆは、位置精度を向上させるためのパラメーターを導出する処理の対象である１以上の関節を、選択するためのチェックボックスである。入力部ＵＩ９１ａ〜ＵＩ９１ｆは、関節Ｊ１〜Ｊ６のうちの一つ以上の指定を入力されることができる。図１１の例においては、入力部ＵＩ９１ａ〜ＵＩ９１ｆにおいて、関節Ｊ１〜Ｊ３が指定されている。
【０１１７】
このような処理を行うことにより、２以上の関節について、特定動作および特定動作中の動作位置の測定を行って、それらの関節の減速機の入力側の動作位置および出力側の動作位置を検出すべき旨の指示を、ユーザーは容易に行うことができる。
【０１１８】
入力窓ＵＩ９２ａ〜ＵＩ９２ｆは、特定動作における振幅（第１位置と第２位置との間の角度範囲の１／２）の大きさを入力するための入力窓である。ユーザーは、角度範囲の数値を入力する場合には、マウス６０５およびキーボード６０４を介して、入力窓ＵＩ９２ａ〜ＵＩ９２ｆに数値を入力する。ユーザーが入力窓ＵＩ９２の角度範囲を変更した場合には、ユーザーが入力した角度範囲と、関節（減速機の出力軸）の現在位置とに基づいて、第１位置および第２位置が変更される。図１１においては、入力部ＵＩ９１ａ〜ＵＩ９２ｃにおいて、「１０°」が指定されている。
【０１１９】
処理開始ボタンＵＩ１２の機能は、図５のステップＳ２００以下の処理を、設定装置６００、ロボット制御装置３００、およびロボット１００ｂに行わせるためのボタンである。処理開始ボタンＵＩ１２がＯＮされると、位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳが生成され、設定装置６００からロボット制御装置３００に送信される（図２参照）。
【０１２０】
位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳは、設定装置６００の命令生成部６１２によって、生成される。より具体的には、命令生成部６１２は、以下の処理を行う。命令生成部６１２は、ユーザーインターフェイスＵＩ０３を介して指定された関節のうち、回転軸が互いに垂直な関節を選択する。そして、命令生成部６１２は、それらの関節の情報と、それぞれの関節について第１位置および第２位置と、の情報を含む、処理を開始すべき旨の信号ＳＳを生成する。
【０１２１】
そのように生成された信号ＳＳは、次のような処理を指示する信号である。すなわち、その処理は、指定された関節のうちの一つに接続されている要素アーム（たとえば、関節Ｊ１に基部が接続されている要素アーム１１０ｂ）の位置精度を向上させるためのパラメーターを導出するとともに、その処理と並行して、指定された関節のうちの他の一つに接続されている要素アーム（たとえば、関節Ｊ３に基部が接続されている要素アーム１１０ｄ）の位置精度を向上させるためのパラメーターを導出する処理である。このような処理を指示する信号ＳＳは、前述のように、ロボット１００ｂが備える３個以上の要素アームのうち、測定対象の１の要素アームの関節の指定と、測定対象としての他の１の要素アームの関節の指定と、を表す情報を含む。このような複数の関節についての並行する処理を指示する信号ＳＳを、特に「信号ＳＳ２」と表記する。
【０１２２】
命令生成部６１２は、その後、ユーザーインターフェイスＵＩ０３を介して指定された関節のうち、まだ選択されていない関節から、回転軸が互いに垂直な関節を選択する。そして、それらの関節の情報と、それぞれの関節についてあらかじめ定められている第１位置および第２位置と、の情報を含む、処理を開始すべき旨の信号ＳＳを生成する。
【０１２３】
なお、ユーザーインターフェイスＵＩ０３を介して指定された関節のうち、まだ選択されていない関節の中に、回転軸が互いに垂直な複数の関節が存在しない場合には、命令生成部６１２は、一つの関節を選択する。
【０１２４】
このような処理を繰り返し行うことによって、命令生成部６１２は、ユーザーインターフェイスＵＩ０３を介して指定されたすべての関節について、位置精度を向上させるためのパラメーターを導出する処理を開始すべき旨の信号ＳＳを生成する。それらの信号は、設定装置６００から順次、送信され、ロボット制御装置３００の受付部３０７によって受け付けられる。
【０１２５】
一つの要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳを受付部３０７が受け付けた場合の処理は、第２実施形態と同様である。
【０１２６】
複数の要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳ２を受付部３０７が受け付けた場合には、ロボット制御装置３００の制御部３０９は、信号ＳＳ２を受け付けたことに起因して、図５のステップＳ２００において、以下の処理を行う。
【０１２７】
すなわち、制御部３０９は、ロボット１００ｂのサーボモーターを制御して、指定された関節のうちの一つに接続された要素アームに特定動作（以下、「第１特定動作」とも呼ぶ）を行わせるとともに、第１特定動作と並行して、指定された関節のうちの他の一つに接続された要素アームにも特定動作（以下、「第２特定動作」とも呼ぶ）を行わせる。ここでは、制御部３０９は、関節Ｊ１で動作するサーボモーター４１０ｂを制御して要素アーム１１０ｂに第１特定動作を行わせ、関節Ｊ３で動作するサーボモーター４１０ｃを制御して要素アーム１１０ｄに第２特定動作を行わせる。
【０１２８】
特定動作の内容については、第１実施形態で説明したとおりである。なお、関節Ｊ１における第１特定動作の回転軸と、関節Ｊ３における第２特定動作の回転軸とは、互いに垂直である。そして、関節Ｊ１における第１特定動作において、第１動作要素Ｍｅ１１および第２動作要素Ｍｅ１２の振幅は、１０°である（図１１参照）。関節Ｊ３における第２特定動作において、第１動作要素Ｍｅ２１および第２動作要素Ｍｅ２２の振幅は、１０°である（図１１参照）。
【０１２９】
複数の要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳ２を受付部３０７が受け付けた場合には、以上のようにして、複数の関節について、同時に特定動作が実行され、各関節の減速機の入力側の動作位置と、出力側の動作位置が、往動と復動について測定される。
【０１３０】
このような処理を行うことにより、各関節の減速機についての測定を前後して順に行う態様に比べて、各関節に接続された要素アームの位置精度を向上させるためのパラメーターを、短時間で決定することができる。
【０１３１】
また、本実施形態において、並行して特定動作および誤差の測定が行われる関節の回転軸は、互いに垂直である。このため、互いの測定結果に影響を与えることなく、第１特定動作と第２特定動作による正確な測定結果を得ることができる。
【０１３２】
本実施形態においては、あらかじめ指定された複数の関節について、特定動作が自動的に実行される。このため、ユーザーは、複数の関節について特定動作を行わせ、測定を行わせるために、ロボットシステム１に対して複数回、実行指示（図１１のＵＩ１２）をする必要がない。
【０１３３】
なお、本実施形態における関節Ｊ１のサーボモーター４１０ｂは、「第１駆動部」とも呼ばれる。減速機５１０ｂは、「第１伝達部」とも呼ばれる。要素アーム１１０ｂは、「第１可動部」とも呼ばれる。モーター角度センサー４２０ｂは、「第１入力位置検出部」とも呼ばれる。要素アーム１１０ｂの慣性センサー７１０は、「第１出力位置検出部」とも呼ばれる。関節Ｊ１についての図５のステップＳ２００〜Ｓ４００が、「第１可動部の位置精度を向上させるためのパラメーターを導出する第１処理」として機能する。
【０１３４】
なお、本実施形態における関節Ｊ３のサーボモーター４１０ｃは、「第２駆動部」とも呼ばれる。減速機５１０ｃは、「第２伝達部」とも呼ばれる。要素アーム１１０ｄは、「第２可動部」とも呼ばれる。モーター角度センサー４２０ｃは、「第２入力位置検出部」とも呼ばれる。要素アーム１１０ｄの慣性センサー７２０は、「第２出力位置検出部」とも呼ばれる。関節Ｊ３についての図５のステップＳ２００〜Ｓ４００が、「第２可動部の位置精度を向上させるためのパラメーターを導出する第２処理」として機能する。
【０１３５】
関節Ｊ３で回転する要素アーム１１０ｄの第１位置Ｐ２１は、同時に駆動される要素アーム１１０ｂの第１位置と区別するために、「第３位置」とも呼ばれる。要素アーム１１０ｄの第２位置Ｐ２２は、同時に駆動される要素アーム１１０ｂの第２位置と区別するために、「第４位置」とも呼ばれる。
【０１３６】
関節Ｊ３について、要素アーム１１０ｄを第１位置Ｐ２１から第２位置Ｐ２２に移動させる第１動作要素Ｍｅ２１は、同時に駆動される要素アーム１１０ｂの第１動作要素と区別するために、「第３動作要素」とも呼ばれる。関節Ｊ３について、要素アーム１１０ｄを第２位置Ｐ２２から第１位置Ｐ２１に移動させる第２動作要素Ｍｅ２２は、同時に駆動される要素アーム１１０ｂの第２動作要素と区別するために、「第４動作要素」とも呼ばれる。
【０１３７】
Ｄ．第４実施形態：
上記実施形態では、設定装置６００のディスプレイ６０２を介してユーザーが入力を行い、その入力に応じて命令生成部６１２がロボット制御装置３００に対する命令を生成する。しかし、ユーザーが直接コマンドを入力して、ロボット制御装置３００の制御部３０９に特定動作を行わせることもできる。第４実施形態においては、要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号ＳＳの生成のさせ方が、第２実施形態とは異なる。第４実施形態の他の点は、第２実施形態と同じである。
【０１３８】
図１２は、図５のステップＳ２００において、関節Ｊ１に角度範囲１０°で特定動作を行わせるためのコマンドおよび付属パラメーターを示す図である。「Measure」というコマンドによって、特定動作（図５のＳ２００参照）の実施が指示される。コマンド「Measure」の後ろの最初のパラメーター「Ｊ１」によって、特定動作において動かされる関節が指定される。ここでは、関節「Ｊ１」が指定されている（図７参照）。コマンド「Measure」の後ろの二つ目のパラメーター「１０」によって、特定動作で関節が動かされる際の振幅が指定される。ここでは、「１０°」が指定されている（図８のＵＩ９２参照）。なお、図１２に示したコマンドおよびパラメーターの例は、図８に示したユーザーインターフェイスＵＩ０１の例と同じ内容を指定している（図８のＵＩ９１およびＵＩ９２参照）。
【０１３９】
このようなコマンドは、キーボード６０４を介して、設定装置６００に入力される。設定装置６００の命令生成部６１２は、入力されたコマンドに基づいて、図５のステップＳ２００以下の処理を開始すべき旨の信号ＳＳを作成し、ロボット制御装置３００に送信する。ロボット制御装置３００の受付部３０７は、パラメーターを導出する処理を開始すべき旨のコマンドを表す信号ＳＳを、受け付ける。
【０１４０】
このような態様とすれば、ユーザーは、コマンドを使って、自ら望む処理内容を詳細に指定して、関節の減速機の入力側の動作位置および出力側の動作位置を検出させることができる。
【０１４１】
図１３は、図５のステップＳ２００において、関節Ｊ１，Ｊ２にそれぞれ角度範囲１０°で特定動作を行わせるための複数のコマンドおよび付属パラメーターを示す図である。「Go」というコマンドによって、ロボット１００ｂが特定の姿勢をとることが指示される。コマンド「Go」の後ろのパラメーター「P1d」によって、特定の姿勢が指定される。ロボット１００ｂが「P1d」で特定された姿勢をとった後、そのときの関節Ｊ１の角度位置を中心として、コマンド「Measure (J1, 10)」によって、関節Ｊ１について１０°の振幅で特定動作が実行される。
【０１４２】
その後、同様に、「Go P2d」というコマンドによって、ロボット１００ｂが「P2d」で特定された姿勢をとった後、そのときの関節Ｊ２の角度位置を中心として、コマンド「Measure (J2, 10)」によって、関節Ｊ２について１０°の振幅で特定動作が実行される。
【０１４３】
図１３に示す複数のコマンドも、キーボード６０４を介して、設定装置６００に入力される。設定装置６００のＣＰＵ６１０の機能部である命令生成部６１２は、入力された複数のコマンドに基づいて信号ＳＳを作成し、ロボット制御装置３００に送信する。ロボット制御装置３００の受付部３０７は、パラメーターを導出する処理を開始すべき旨のコマンドを表す信号ＳＳを、受け付ける。
【０１４４】
このような態様とすれば、ユーザーは、指定した関節について、自ら望んだ順序で、それらの関節の減速機の入力側の動作位置および出力側の動作位置を検出させることができる。
【０１４５】
たとえば、パラメーター「P1d」によって指定される特定の姿勢において、関節Ｊ１を振幅１０°で動かしても、ロボット１００ｂは他の機器と干渉しないが、パラメーター「P1d」によって指定される特定の姿勢において、関節Ｊ２を振幅１０°で動かすと、他の機器と干渉する場合がある。本実施形態によれば、ユーザーは、コマンドを使用して、それぞれの関節について、特定動作によって他の機器と干渉しない動作位置にロボットの姿勢を変化させて、特定動作を行わせることができる。
【０１４６】
Ｅ．他の実施形態：
Ｅ１．他の実施形態１：
（１）上記第１実施形態においては、サーボモーター４１０の出力軸４１０ｏに減速機５１０の入力軸５１０ｉが接続されており、サーボモーター４１０の出力軸４１０ｏの角度位置と、減速機５１０の入力軸５１０ｉの角度位置とは等しい（図１の４１０ｏ，５１０ｉ参照）。しかし、駆動力を発生させる駆動部と伝達部の間には、他の歯車機構や、ベルトとプーリーなど、回転速度を変化させる機構が設けられていてもよい。そのような機構の減速比Ｎｐとし、駆動部の出力軸の角度位置をθoとすると、減速機の入力軸の角度位置θは、θ＝Ｎｐ×θoで得られる。
【０１４７】
（２）上記第１実施形態においては、第１入力位置検出部としてのモーター角度センサー４２０は、第１駆動部としてのサーボモーター４１０の出力軸４１０ｏの角度位置を検出する（図１参照）。しかし、第１伝達部の入力側の動作位置を検出する第１入力位置検出部は、第１伝達部の入力を測定してもよい。
【０１４８】
（３）上記第１実施形態においては、ロボット制御装置３００は、ロボット１００とは別個の構成として設けられている（図１参照）。しかし、制御装置は、ロボットと一体の形態で設けられることもできる。また、制御装置は、ロボットとは別に設けられ、有線または無線でロボットと接続される態様とすることもできる。
【０１４９】
上記第１実施形態においては、設定装置６００は、ロボット制御装置３００およびロボット１００とは別個の構成として設けられている（図１参照）。しかし、設定装置は、制御装置および／またはロボットと一体の形態で設けられることもできる。また、設定装置は、制御装置とは別に設けられ、有線または無線で制御装置と接続される態様とすることもできる。
また、ロボット制御装置３００もしくは設定装置６００の一部の機能部を別の装置が備えてもよい。例えば、上記第１実施形態において設定装置６００が備えているパラメーター決定部６１４などの一部または全部の機能を、ロボット制御装置３００が備えてもよい。
【０１５０】
また、上記実施形態において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。たとえば、上記実施形態においては、制御部３０９としてのＣＰＵがコンピュータープログラムを読み出して実行することにより、様々な機能を実現する。しかし、制御部が実現する機能の一部または全部はハードウェア回路により実現されてもよい。制御部は、何らかの処理を実現するプロセッサーとして構成されることができる。
【０１５１】
Ｅ２．他の実施形態２：
上記第１実施形態においては、第１動作要素Ｍｅ１および第２動作要素Ｍｅ２は、回転である（図１参照）。しかし、第１動作要素Ｍｅ１および第２動作要素Ｍｅ２は、直線的な移動であってもよい。また、上記第１実施形態においては、第１位置Ｐ１および第２位置Ｐ２は、角度位置である。しかし、第１位置および第２位置は、直線上の位置であってもよい。
【０１５２】
駆動部は、たとえば、出力が回転運動であるモーターとすることができる。また、駆動部は、出力が直線運動であるリニアモーターやシリンダーであってもよい。
【０１５３】
Ｅ３．他の実施形態３：
上記第１実施形態においては、第１動作要素Ｍｅ１と第２動作要素Ｍｅ２の移動速度は、いずれも１００°／秒以下である。しかし、第１動作要素と第２動作要素の移動速度は、１５０°／秒、３００°／秒など、１００°／秒より大きくてもよい。
【０１５４】
Ｅ４．他の実施形態４：
上記第１実施形態においては、第１位置と第２位置とによって定められる角度範囲は、減速機５１０が１周期分以上の伝達誤差の変化を生じさせ、４周期分以上の伝達誤差の変化を生じさせない角度範囲である。また、上記第２実施形態においては、第１位置と第２位置とによって定められる角度範囲は、減速機の伝達誤差が８周期以上の変化を生じる角度範囲である。
【０１５５】
しかし、第１位置と前記第２位置とによって定められる角度範囲は、他の角度範囲とすることもできる。たとえば、第１位置と前記第２位置とによって定められる角度範囲は、１周期分の伝達誤差を生じさせる角度範囲より短い角度範囲（たとえば、半周期を含む角度範囲）とすることもできる。そのような態様においても、得られた測定値に基づいて、１周期の伝達誤差を推定することができる。
【０１５６】
Ｅ５他の実施形態５：
上記第１実施形態においては、駆動力を伝達する伝達部は、減速機５１０である。しかし、伝達誤差を低減させる対象である伝達部は、回転入力をより回転速度が高い回転出力に変換する構成であってもよいし、回転入力と回転出力がほぼ一致する構成であってもよい。
【０１５７】
伝達部は、より具体的には、ベルトおよびプーリー、歯車機構、または継ぎ手とすることができる。ベルトおよびプーリー、ならびに歯車機構は、回転入力をより回転速度が高い回転出力に変換する構成であってもよいし、回転入力をより回転速度が低い回転出力に変換する構成であってもよいし、回転入力と回転出力がほぼ一致する構成であってもよい。
【０１５８】
Ｅ６他の実施形態６：
上記第１実施形態においては、出力側角度センサー５２０は、第１伝達部としての減速機５１０の出力軸５１０ｏの角度位置を検出する。しかし、第１伝達部の出力側の動作位置を検出する第１出力位置検出部は、第１伝達部の出力を測定してもよいし、第１伝達部の出力によって駆動される下流の構成の動作位置を測定してもよい。第１伝達部の出力によって駆動される下流の構成の動作位置を測定する構成としては、たとえば、第２実施形態の慣性センサー７１０，７２０がある。また、たとえば、関節Ｊ３を固定して関節Ｊ２について特定動作を行い、関節Ｊ２に接続された要素アーム１１０ｃよりも下流の要素アーム１１０ｄに備えられる慣性センサー７２０を使用して測定値を得て、関節Ｊ２の補正値を決定することもできる。
また、アーム全体の固定端（図７のＡＢ参照）に近い関節の動作位置の誤差がアームの先端のエンドエフェクタの位置に与える影響は、固定端ＡＢから遠い（すなわち、アームの先端に近い）関節の動作位置の誤差がエンドエフェクタの位置に与える影響に比べて、大きい。アーム全体の固定端に近い関節については、その回転軸からアームの先端までの距離が長くなるためである。このため、ロボットが備えるすべての関節のうち、アーム全体の固定端に近い一部の関節のみについて、動作位置の誤差を測定しこれを補正するための慣性センサーを備える態様としてもよい。たとえば、第２実施形態のロボット１００ｂにおいて、関節Ｊ１〜Ｊ６のうち、関節Ｊ１〜Ｊ３のみを補正する態様においては、第２実施形態のロボット１００ｂにおいて各要素アーム１１０ｂ〜１１０ｇに設けられている慣性センサーのうち、要素アーム１１０ｂ，１１０ｄに設けられる慣性センサー７１０，７２０のみを備える形態でもよい。
【０１５９】
Ｅ７他の実施形態７：
上記第２実施形態においては、慣性センサーとして、ジャイロセンサーが使用される（図７の７１０，７２０参照）。しかし、伝達部の出力側の動作位置を検出する出力位置検出部としては、他の様々なセンサーを使用することができる。たとえば、出力位置検出部としては、Ｘ，Ｙ，Ｚ軸方向の加速度と角速度を検出することができるＩＭＵ（Inertial Measurement Unit）を採用することができる。また、出力位置検出部としては、Ｘ，Ｙ，Ｚ軸方向のうち１以上の方向の加速度を検出することができる加速度センサーを採用することができる。さらに、出力位置検出部としては、Ｘ，Ｙ，Ｚ軸方向の１以上の方向の加速度と、Ｘ，Ｙ，Ｚ軸方向の１以上の方向の角速度と、を検出することができる慣性センサーを採用することができる。すなわち、第１出力位置検出部は、第１可動部の角速度および加速度の少なくとも一方を検出することができる慣性センサーとすることができる。また、出力位置検出部としては、伝達部の出力側の動作位置を検出することができるレーザー変位計や、カメラ等を採用することができる。測定時に測定対象に取りつけられるセンサーは、あらかじめ装置に組み込まれているセンサーであってもよいし、測定のために装置に取りつけられるセンサーであってもよい。
【０１６０】
Ｅ８他の実施形態８：
上記第２実施形態においては、１度間隔の３６０個の角度位置について、補正値が計算され、表Ｔ１１，Ｔ１２として記憶される（図１０参照）。しかし、あらかじめ記憶される補正値は、入力側の他の動作位置に対応するものであってもよい。また、あらかじめ記憶される補正値は、互いに等間隔ではない複数の動作位置に対応する補正値であってもよい。
【０１６１】
Ｅ９．他の実施形態９：
上記第１実施形態においては、補正値を決定するための式（１）が含む補正パラメーターＡ，φが、あらかじめ記憶される。しかし、あらかじめ記憶されるパラメーターは、補正値を決定するための他の式の係数であってもよいし、あらかじめ用意された補正値群を適切に選択するためのパラメーターであってもよい。
【０１６２】
Ｅ１０．他の実施形態１０：
上記第１実施形態においては、第１動作要素は、第１位置Ｐ１から第２位置Ｐ２にアーム１１０を動かす動作であり、第２動作要素は、第２位置Ｐ２から第１位置Ｐ１にアーム１１０を動かす動作である。このため、第１動作要素と第２動作要素の動作区間は等しい。しかし、第１動作要素と第２動作要素とは、異なる動作区間において実行される動作とすることもできる。また、第１動作要素の動作区間と第２動作要素の動作区間とは、一部が重複する動作区間であってもよい。たとえば、第１動作要素と第２動作要素とは、角度範囲と位相との少なくとも一方が異なっている態様とすることができる。
【０１６３】
Ｅ１１．他の実施形態１１：
（１）上記実施形態においては、複数組の測定値は、式（１）を決定するために行われる重回帰分析において使用される。しかし、複数組の測定値は、他の方法で、補正値の決定に使用されることができる。たとえば、特定動作によって得られた複数組の測定値から、平均値が計算されることができる。そして、その平均値に基づいて、補正値を決定するための式の係数が決定されることができる。
【０１６４】
（２）上記実施形態においては、図５のステップＳ２２０，Ｓ２４０の処理は、複数回行われる。しかし、伝達部の入力側の動作位置と出力側の動作位置を測定するための処理は、１回だけ行われることもできる。
【０１６５】
Ｅ１２．他の実施形態１２：
上記第４実施形態においては、一つの関節についての特定動作を指示するコマンドについて説明した（図１２および図１３参照）。しかし、複数の関節についての特定動作を少なくとも一部重複する時間区間において実行することを指示するコマンドを、採用することもできる。
【０１６６】
Ｅ１３．他の実施形態１３：
上記第２実施形態においては、本開示を６軸ロボットを例として説明した。しかし、本開示は、４軸ロボットや他の数の関節を備えるロボットに適用することもできる。ただし、本開示は、関節を２個以上有する装置に適用することが好ましく、関節を３個以上有する装置に適用することがより好ましい。
【０１６７】
Ｅ１４．他の実施形態１４：
（１）上記第２実施形態においては、関節Ｊ１についての測定処理と、関節Ｊ１に垂直な回転軸を有する関節Ｊ３についての測定処理とが、並行して行われる。しかし、複数の関節についての測定は、一部または全部が異なる時間区間において実行されることができる。ただし、少なくとも一部が重複する時間区間において異なる関節についての測定が行われることが好ましい。
【０１６８】
（２）また、並行して伝達誤差の測定が行われる関節は、互いに動作軸が垂直な関節でなくてもよい。たとえば、互いの動作軸がねじれの位置にある複数の関節について、少なくとも一部が重複する時間区間において、伝達誤差の測定を行うこともできる。また、動作軸が平行な複数の関節であっても、運用時に常に同期して動かすことが想定されている関節については、少なくとも一部が重複する時間区間において、伝達誤差の測定を行うことができる。
【０１６９】
Ｅ１５．他の実施形態１５：
上記第２実施形態においては、ねじり関節Ｊ１についての測定処理と、ねじり関節Ｊ３についての測定処理とが、並行して行われる。しかし、並行して伝達誤差の測定が行われる関節は、回転関節に限らず、直進関節であってもよい。
【０１７０】
Ｅ１６．他の実施形態１６：
上記第３実施形態においては、設定装置６００の命令生成部６１２が、同時に伝達誤差の測定を行う関節を、ユーザーからの入力に応じて決定する（図１１参照）。しかし、同時に伝達誤差の測定を行う関節の組み合わせがあらかじめ定められ、ＲＯＭ等の記憶部に記憶されており、ユーザーがユーザーインターフェイスを通じてあらかじめ記憶されている関節の組み合わせの中から、１以上の組み合わせを選択する態様とすることもできる。
【０１７１】
Ｅ１７．他の実施形態１７：
（１）上記実施形態においては、ロボットを例に本開示を説明した。しかし、本明細書で開示した技術は、ロボットに限らず、プリンター、プロジェクターど、駆動力を伝達する伝達部を介して制御が行われて物理的な状態が変化する様々な機械に適用することができる。たとえば、本明細書で開示した技術をプリンターの印刷ヘッドの動作や印刷媒体の搬送動作に適用することにより、ヘッドと印刷媒体との相対位置の精度を高めることができる。
【０１７２】
（２）本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【０１７３】
１００，１００ｂ…ロボット；１１０，１１０ａ…アーム；１１０ｂ〜１１０ｇ…要素アーム；３００…ロボット制御装置；３０１…ＲＡＭ；３０２…ＲＯＭ；３０３…ＣＰＵ；３０７…受付部；３０９…制御部；３１０…制御信号生成部；３２０…位置制御部；３３０…速度制御部；３６５…補正部；４１０，４１０ｂ，４１０ｃ…サーボモーター；４１０ｏ…出力軸；４２０，４２０ｂ，４２０ｃ…モーター角度センサー；５１０，５１０ｂ，５１０ｃ…減速機；５１０ｉ…入力軸；５１０ｏ…出力軸；５２０…出力側角度センサー；６００…設定装置；６０２…ディスプレイ；６０４…キーボード；６０５…マウス；６１０…ＣＰＵ；６１４…パラメーター決定部；６１２…命令生成部；６３０…ＲＯＭ；６４０…ＲＡＭ；７１０，７２０…慣性センサー；Ｄｉ０…減速機５１０の入力軸５１０ｉの角度位置；Ｄｉ１…減速機５１０の入力軸５１０ｉの角度位置；Ｄｏ０…減速機５１０の出力軸５１０ｏの角度位置；Ｄｏ１…減速機５１０の出力軸５１０ｏの角度位置；Ａ１〜Ａ３６０…補正値；ＡＢ…アーム１１０ａ全体の固定端；Ｆ１００…フレーム；Ｇ０…補正部３６５の機能を停止させてアーム１１０を動作させたときの角度位置の誤差を示すグラフ；Ｇ１…補正部３６５を機能させてアーム１１０を動作させたときの角度位置の誤差を示すグラフ；Ｊ１〜Ｊ６，Ｘ１１…関節；Ｍｅ１，Ｍｅ１１…第１動作要素；Ｍｅ２，Ｍｅ１２…第２動作要素；Ｍｅ２１…第１動作要素（第３動作要素）；Ｍｅ２２…第２動作要素（第４動作要素）；Ｐ１，Ｐ１１…第１位置；Ｐ２，Ｐ１２…第２位置；Ｐ２１…第１位置（第３位置）；Ｐ２２…第２位置（第４位置）；ＳＳ…パラメーター導出処理を指示する信号；ＳＳ２…複数の関節のパラメーター導出処理を指示する信号；Ｔ１１…第１動作要素Ｍｅ１の向きと対応づけられる補正値の表；Ｔ１２…第２動作要素Ｍｅ２の向きと対応づけられる補正値の表；ＵＩ０１…ユーザーインターフェイス；ＵＩ０２…ユーザーインターフェイス；ＵＩ０３…ユーザーインターフェイス；ＵＩ１２…処理開始ボタン；ＵＩ１３…設定角度表示；ＵＩ４４…進捗表示；ＵＩ４５…キャンセルボタン；ＵＩ９１…入力窓；ＵＩ９１ａ〜ＵＩ９１ｆ…入力部；ＵＩ９２…入力窓；ＵＩ９２ａ〜ＵＩ９２ｆ…入力窓
【図１】
2019000948.tif 000003
【図２】
2019000948.tif 000004
【図３Ａ】
2019000948.tif 000005
【図３Ｂ】
2019000948.tif 000006
【図４Ａ】
2019000948.tif 000007
【図４Ｂ】
2019000948.tif 000008
【図５】
2019000948.tif 000009
【図６】
2019000948.tif 000010
【図７】
2019000948.tif 000011
【図８】
2019000948.tif 000012
【図９】
2019000948.tif 000013
【図１０】
2019000948.tif 000014
【図１１】
2019000948.tif 000015
【図１２】
2019000948.tif 000016
【図１３】
2019000948.tif 000017