(57)【要約】【課題】一対のマニピュレータの先端を連結してその姿勢を変更することにより、３次元測定機、変位検出器、ハンドカメラ等の装置を使用することなくキャリブレーションを行うことができるロボットのキャリブレーション方法及びキャリブレーション装置を提供する。【解決手段】一対のマニピュレータ１０Ａ，１０Ｂを先端で連結した状態で複数の姿勢を取らせ、各姿勢変更時のマニピュレータ１０Ａ，１０Ｂのリンクを駆動する各サーボモータに設けられたロータリエンコーダの検出信号に基づいて各姿勢変更時の各リンク間のジョイント座標を取得し、マスターロボットの設置点ＷＡを基準としてスレーブロボットの設置点ＷＢの前記姿勢変更時の位置姿勢を、該姿勢変更時に取得したジョイント座標に基づいて順運動学的に算出する。設置点ＷＢの実測値と算出値の姿勢変更毎の誤差ベクトルを算出し、誤差ベクトルから両マニピュレータのロボット定数を同定する。【選択図】図４
2013184236.tif 000002
【特許請求の範囲】
【請求項１】
一対のマニピュレータの先端を相互に連結し、一方のマニピュレータをマスターロボットとし、他方のマニピュレータをスレーブロボットとし、前記マスターロボットのリンクを駆動するアクチュエータに対して制御装置から指令を出力して、前記マスターロボット及びスレーブロボットを連結した状態で複数の姿勢を取らせ、各姿勢変更時のマスターロボット及びスレーブロボットのリンクを駆動する各アクチュエータに設けられた位置検出器の位置検出信号に基づいて各姿勢変更時の各リンク間のジョイントの座標を取得し、
前記マスターロボットの設置点を基準として、スレーブロボットの設置点の前記姿勢変更時の位置姿勢を、該姿勢変更時に取得した前記ジョイントの座標に基づいて順運動学的に算出し、
前記スレーブロボットの設置点の実際の座標と、前記算出したスレーブロボットの設置点の姿勢変更毎の誤差を算出し、
該誤差から、前記一対のマニピュレータのロボット定数を同定することを特徴とするロボットのキャリブレーション方法。
【請求項２】
複数のリンクと、前記リンク毎に設けられたアクチュエータと、前記各リンクの関節軸の位置検出を行う位置検出器を備えた一対のマニピュレータと、一方のマニピュレータをマスターロボットとし、他方のマニピュレータをスレーブロボットとして、前記一対のマニピュレータの先端を連結状態で、前記マスターロボットの前記アクチュエータに対して指令を出力して、複数の姿勢を取らせる制御部と、各姿勢変更時のマスターロボット及びスレーブロボットのリンクを駆動する各アクチュエータに設けられて位置検出信号を出力する位置検出器と、前記マスターロボットの設置点を基準として、スレーブロボットの設置点の前記姿勢変更時の各リンク間のジョイントの座標を前記位置検出信号に基づいて取得するとともに、スレーブロボットの設置点の前記姿勢変更時の位置姿勢を、前記ジョイントの座標に基づいて順運動学的に算出する演算部と、前記スレーブロボットの設置点の実際の座標と、前記算出したスレーブロボットの設置点の算出値である座標により姿勢変更毎の誤差を算出する誤差演算部と、該誤差から、前記一対のマニピュレータのロボット定数を同定する同定部を備えることを特徴とするロボットのキャリブレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのキャリブレーション方法及びキャリブレーション装置に関する。
【背景技術】
【０００２】
ロボットの機構パラメータ等のロボットのキャリブレーション方法は、特許文献１、特許文献２等の方法が公知である。特許文献１では、ハンドカメラとロボットのキャリブレーションを一括して同時に行う方法により、ロボットのキャリブレーションを行うようにしている。
【０００３】
特許文献２では、ロボットのアームの先端に３次元測定機の先端を結合して、ロボットのアーム先端部の位置・姿勢を計測し、ロボットの位置・姿勢を変えて複数の教示点を計測することにより、ロボットの機構パラメータ（ロボット定数ともいう）を求めてキャリブレーションを行うようにしている。
【０００４】
また、特許文献３には、ロボット先端を変位検出器に係合させた状態で、ロボット先端の姿勢を変えて、各関節の関節角のデータと前記変位検出器のデータに基づいて較正を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２７２４１号公報
【特許文献２】特開２００１−５０７４１号公報
【特許文献３】特公平４−４５８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１乃至特許文献３は、ハンドカメラ、３次元測定機或いは変位検出器が必要となり、コスト高となる問題がある。
本発明の目的は、一対のマニピュレータの先端を連結してその姿勢を変更することにより、３次元測定機、変位検出器、ハンドカメラ等の装置を使用することなくキャリブレーションを行うことができるロボットのキャリブレーション方法及びキャリブレーション装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記問題点を解決するために、請求項１の発明は、一対のマニピュレータの先端を相互に連結し、一方のマニピュレータをマスターロボットとし、他方のマニピュレータをスレーブロボットとし、前記マスターロボットのリンクを駆動するアクチュエータに対して制御装置から指令を出力して、前記マスターロボット及びスレーブロボットを連結した状態で複数の姿勢を取らせ、各姿勢変更時のマスターロボット及びスレーブロボットのリンクを駆動する各アクチュエータに設けられた位置検出器の位置検出信号に基づいて各姿勢変更時の各リンク間のジョイントの座標を取得し、前記マスターロボットの設置点を基準として、スレーブロボットの設置点の前記姿勢変更時の位置姿勢を、該姿勢変更時に取得した前記ジョイントの座標に基づいて順運動学的に算出し、前記スレーブロボットの設置点の実際の座標と、前記算出したスレーブロボットの設置点の姿勢変更毎の誤差を算出し、
該誤差から、前記一対のマニピュレータのロボット定数を同定することを特徴とするロボットのキャリブレーション方法を要旨としている。
【０００８】
請求項２の発明は、複数のリンクと、前記リンク毎に設けられたアクチュエータと、前記各リンクの関節軸の位置検出を行う位置検出器を備えた一対のマニピュレータと、一方のマニピュレータをマスターロボットとし、他方のマニピュレータをスレーブロボットとして、前記一対のマニピュレータの先端を連結状態で、前記マスターロボットの前記アクチュエータに対して指令を出力して、複数の姿勢を取らせる制御部と、各姿勢変更時のマスターロボット及びスレーブロボットのリンクを駆動する各アクチュエータに設けられて位置検出信号を出力する位置検出器と、前記マスターロボットの設置点を基準として、スレーブロボットの設置点の前記姿勢変更時の各リンク間のジョイントの座標を前記位置検出信号に基づいて取得するとともに、レーブロボットの設置点の前記姿勢変更時の位置姿勢を、前記ジョイントの座標に基づいて順運動学的に算出する演算部と、前記スレーブロボットの設置点の実際の座標と、前記算出したスレーブロボットの設置点の算出値である座標により姿勢変更毎の誤差を算出する誤差演算部と、該誤差から、前記一対のマニピュレータのロボット定数を同定する同定部を備えることを特徴とするロボットのキャリブレーション装置を要旨としている。
【発明の効果】
【０００９】
請求項１の発明によれば、３次元測定機、変位検出器、ハンドカメラ等の装置を使用することなくキャリブレーションを行うことができるロボットのキャリブレーション方法を提供できる。
【００１０】
請求項２の発明によれば、３次元測定機、変位検出器、ハンドカメラ等の装置を使用することなくキャリブレーションを行うことができるロボットのキャリブレーション装置を提供できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態のマニピュレータのスケルトン図。
【図２】一実施形態のマニピュレータの概略構成図。
【図３】一実施形態のロボットのキャリブレーション装置の概略構成図。
【図４】一実施形態のロボットのキャリブレーション方法の概略説明図。
【図５】一実施形態のキャリブレーション方法のフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明を具体化した一実施形態のロボットのキャリブレーション方法及びキャリブレーション装置を図１〜図５を参照して説明する。
まず、本実施形態の一対のマニピュレータ１０Ａ，１０Ｂについて説明する。両マニピュレータ１０Ａ、１０Ｂは、その先端同士が連結可能の範囲に設置されている。本実施形態では、両マニピュレータ１０Ａ，１０Ｂは、同一構成であるため、一方のマニピュレータ１０Ａについて説明し、他方のマニピュレータ１０Ｂの構成については、マニピュレータ１０Ａの各構成に付した符号を付して、その説明を省略する。
【００１３】
図１に示すように、マニピュレータ１０Ａは、８個のリンク１１〜１８が７個の関節２１〜２７により直列に連結されて形成されている。多関節ロボットであるマニピュレータ１０Ａは、７個の関節２１〜２７においてリンク１２〜１８が旋回することのできる７自由度（自由度ｎ＝７）を有するロボットである。
【００１４】
第１リンク１１は一端が床面ＦＬに固定され、他端が第１関節２１の一側に接続されている。第１関節２１の他側には、第２リンク１２の一端が接続され、第２リンク１２の他端には第２関節２２の一側が接続されている。以下同様に、第３リンク１３、第４リンク１４、第５リンク１５、第６リンク１６、第７リンク１７及び第８リンク１８が、それぞれ第３関節２３、第４関節２４、第５関節２５、第６関節２６及び第７関節２７を介して順に連結されている。
【００１５】
図１に示すように第１関節２１の他側は一側に対して、矢印３１に示すように、図１において上下方向に延びる軸を中心に回転可能とされており、これにより、第２リンク１２は隣接する第１リンク１１に対して、第１関節２１の回転軸（Ｊ１軸）を中心に矢印３１方向に旋回可能である。
【００１６】
また、第２関節２２の他側は一側に対して、矢印３２に示すように、図１において紙面に垂直な方向に延びる軸（Ｊ２軸）を中心に回転可能とされている。これにより、第３リンク１３は隣接する第２リンク１２に対して、第２関節２２の回転軸を中心に矢印３２方向に回転可能である。
【００１７】
以下、第３関節２３、第４関節２４、第５関節２５、第６関節２６及び第７関節２７についてもそれぞれ、回転可能とされており、第４リンク１４、第５リンク１５、第６リンク１６、第７リンク１７及び第８リンク１８も、それぞれ関節２３〜２７の回転軸（Ｊ３軸〜Ｊ７軸）を中心に、矢印３３〜３７方向に旋回可能である。尚、本願の全体にわたって、関節２１〜２７を介して連結されているリンク１１〜１８同士を、互いに隣接するリンク１１〜１８という。また、Ｊ１軸〜Ｊ７軸は、関節軸に相当する。
【００１８】
図２は、図１よりも簡略したスケルトン図で、マニピュレータ１０Ａが示されている。同図に示すように、第１関節２１には第１サーボモータ４１が取り付けられており、電力が供給されることにより、第２リンク１２を第１リンク１１に対して旋回させる。
【００１９】
また、第２関節２２には第２サーボモータ４２が取り付けられており、電力が供給されることにより、第３リンク１３を第２リンク１２に対して旋回させる。以下、同様に、第３関節２３、第４関節２４、第５関節２５、第６関節２６及び第７関節２７にはそれぞれサーボモータ４３〜４７が取り付けられており、電力が供給されることにより、各々リンク１４〜１８を旋回させる。
【００２０】
なお、各モータは、各関節内に設けられるが、図２では、説明の便宜上、関節とは分離して図示している。また、本実施形態ではアクチュエータとしてサーボモータであるＡＣモータが使用されているが、限定されるものではない。
【００２１】
第８リンク１８の先端には、ツール４９が取り付けられている。ツール４９は第８リンク１８とともに、第７関節２７の回転軸（Ｊ７軸）を中心に図１に示すように矢印３７方向に旋回可能とされている。ツール４９は、例えば、ワーク等を把持可能なハンドである。なお、ツール４９の種類は、本発明とは関係しないため、限定されるものではない。
【００２２】
上述したようにマニピュレータ１０Ａは、第１サーボモータ４１〜第７サーボモータ４７を駆動して第２リンク１２〜第８リンク１８を旋回させることにより、第２リンク１２〜第８リンク１８の回転角度が累積して先端部にあるツール４９に働くため、ツール４９の先端の位置および姿勢を、その作業内容に応じた目標位置および目標姿勢に一致させることが可能である。
【００２３】
次に、図３を参照して、前記マニピュレータ１０Ａ，１０Ｂを制御する制御部及び制御装置としてのコントローラーＲＣを中心とした多関節ロボットの電気的な構成を説明する。
【００２４】
コントローラーＲＣは、コンピュータ９０と、コンピュータ９０に電気的に接続されたマニピュレータ１０Ａ用のＰＷＭジェネレータ５１〜５７と、マニピュレータ１０Ａ用のＰＷＭジェネレータ５１〜５７に電気的に接続されたサーボアンプ６１〜６７を備えるモータ駆動部５０Ａを有する。また、コントローラーＲＣは、モータ駆動部５０Ａと同様にコンピュータ９０に電気的に接続されたマニピュレータ１０Ｂ用の複数のＰＷＭジェネレータ（図示しない）と、前記ＰＷＭジェネレータ（図示しない）に電気的に接続されたサーボアンプ（図示しない）を備えるモータ駆動部５０Ｂを有する。
【００２５】
モータ駆動部５０Ａの各サーボアンプ６１〜６７はそれぞれマニピュレータ１０Ａの第１サーボモータ４１〜第７サーボモータ４７に電気的に接続されている。また、モータ駆動部５０Ｂの各サーボアンプ（図示しない）はそれぞれマニピュレータ１０Ｂの第１サーボモータ４１〜第７サーボモータ４７に電気的に接続されている。
【００２６】
コンピュータ９０は、関節位置指令値を、モータ駆動部５０Ａ，５０ＢのＰＷＭジェネレータ５１〜５７に出力し、ＰＷＭジェネレータ５１〜５７は、当該指令値に基づいてＰＷＭ信号をサーボアンプ６１〜６７に出力する。サーボアンプ６１〜６７は、その出力に応じてサーボモータ４１〜４７を作動させることにより、各リンク１２〜１８を旋回させる。
【００２７】
前記サーボモータ４１〜４７にはロータリエンコーダ７１〜７７が内蔵されており、インターフェイス８０を介してコンピュータ９０と接続されている。ロータリエンコーダ７１〜７７は、各々のサーボモータ４１〜４７の回動角度を検出することにより、すなわちリンク１２〜１８のそれぞれが隣接するリンク１１〜１７に対する回転角度を検出して、回転角度の検出信号、すなわち位置検出信号をコントローラーＲＣに送信する。ロータリエンコーダ７１〜７７は、位置検出器に相当する。なお、位置検出器としては、ロータリエンコーダに限定するものではなく、レゾルバ、或いは、ポテンショメータであってもよい。
【００２８】
なお、第１サーボモータ４１〜第７サーボモータ４７に対してロータリエンコーダ７１〜７７を設ける代わりに、リンク１２〜１８または第１関節２１〜第７関節２７に、リンク１２〜１８の回転角度を直接に検出可能なセンサを取り付けてもよい。
【００２９】
前記コンピュータ９０は、ＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、及びハードディスク等の不揮発性の記憶部９４、及びインターフェイス９５等を備え、バス９６を介して電気的に接続されている。
【００３０】
記憶部９４には、各種データ、ロボットに各種作業を行わせるための作業プログラム、キャリブレーションプログラム、各種パラメータ等が記憶されている。ＲＯＭ９２は、システム全体のシステムプログラムが記憶されている。ＲＡＭ９３は、ＣＰＵ９１の作業用のメモリであって、各種演算等が実行されるときに一時的にデータが格納される。ＣＰＵ９１は、演算部、誤差演算部、及び同定部に相当する。
【００３１】
コントローラーＲＣには入力装置８２が前記インターフェイス９５を介して接続されている。入力装置８２は、図示しないモニター画面及び各種入力キー等を有する操作盤であり、作業者が各種のデータを入力操作可能とされている。入力装置８２は、多関節ロボットの電源スイッチが設けられるとともに、コンピュータ９０に対して、マニピュレータ１０Ａ，１０Ｂの先端部にあるツール４９の先端の最終目標位置および最終目標姿勢、ツール４９の先端の補間点における位置および姿勢の入力、並びに、マニピュレータ１０Ａ，１０Ｂの姿勢変更のためのジョグ操作等による入力が可能となっている。
【００３２】
なお、本実施形態では、前記サーボモータに対するフレーキ作用は、サーボモータに対するサーボ制御によるもの（サーボブレーキ）と、図示しないメカブレーキによって行うものとが可能となっている。サーボモータに対するメカブレーキによるブレーキの作用は、サーボ制御によるブレーキとは、入力装置８２の操作により独立してオンオフ制御することが可能になっている。
【００３３】
本実施形態では、第１リンク１１〜第８リンク１８、第１サーボモータ４１〜第７サーボモータ４７、ロータリエンコーダ７１〜７７を備えた一対のマニピュレータ１０Ａ，１０Ｂ、コントローラーＲＣと、コントローラーＲＣのＣＰＵ９１により、キャリブレーション装置が構成されている。
【００３４】
（実施形態の作用）
次に、本実施形態による多関節ロボットのキャリブレーション方法及びキャリブレーション装置の作用について説明する。
【００３５】
ロボットのキャリブレーション方法の概略説明図であり、図５は、キャリブレーション方法のフローチャートである。なお、マニピュレータ１０Ａの設置点ＷＡ、及びマニピュレータ１０Ｂの設置点ＷＢの座標は、予め作業者が測定治具等によりワールド座標系で測定されていて、入力装置８２を介して記憶部９４に格納されている。予め作業者が測定治具等によりワールド座標系で測定されたマニピュレータ１０Ｂの設置点ＷＢの座標を以下では、実測値という。なお、ここでワールド座標系は、実空間におけるある場所を原点とした場合の３次元座標系である。本実施形態では、マニピュレータ１０Ａの第１リンク１１と床面ＦＬとの設置点ＷＡを原点とした３次元座標系としている。
【００３６】
（ステップ１０）
まず、ステップ１０（以下、ステップをＳという）マニピュレータ１０Ａ，１０Ｂの先端同士を、すなわち、ツール４９同士を、ロボットの電源を切った状態で作業者が連結する。ツール４９同士の連結方法は、限定するものではないが、例えば、ボルトとナット等のネジ締結により行う。
【００３７】
（Ｓ２０）
次に、作業者は、ロボットの図示しない電源をオンにし、入力装置８２を使用して、スレーブロボットとなるマニピュレータ１０Ｂの図示しないメカブレーキを解除して、マニピュレータ１０Ａに追従可能な状態にしておく。作業者は、この状態でマニピュレータ１０Ａを入力装置８２のジョグ操作により、マニピュレータ１０Ａの姿勢をｋ回変更する。この姿勢変更により、マニピュレータ１０Ｂも姿勢変更する。そして、姿勢をそれぞれ変更する毎に作業者は入力装置８２を操作して、姿勢変更時の、各関節の回転角度をＣＰＵ９１はロータリエンコーダ７１〜７７から取得し、記憶部９４に記憶する。
【００３８】
ここで、姿勢変更の回数ｋが、「６ｋ≧両マニピュレータのロボット定数の合計値」となるように、姿勢変更を行う。「６」は、設置点ＷＢの設置点座標Ｘ（ｘ，ｙ，ｚ，ａ，ｂ，ｃ，）の個数である。ｘ，ｙ，ｚは、ワールド座標系の３次元座標値であり、ａ，ｂ，ｃはそれぞれ三次元の各軸まわりの回転角度（ヨー角、ピッチ角、ロール角）を表している。なお、本明細書では設置点座標とは、上記のように３次元座標及び三次元の各軸回りの回転角度を含む趣旨である。
【００３９】
（Ｓ３０）
Ｓ３０では、作業者は、入力装置８２を入力操作してキャリブレーションプログラムを起動させる。
【００４０】
このプログラムが起動されると、ＣＰＵ９１は、Ｓ２０において姿勢変更毎に取得された各関節の回転角度に基づいて、姿勢変更毎のマニピュレータ１０Ａ，マニピュレータ１０Ｂの各関節のジョイント座標θ１〜θｍ（本実施形態では、ｍ＝１４）を演算し、それらの算出結果を記憶部９４に格納する。
【００４１】
各関節のジョイント座標とは、各リンクが隣接するリンクの関節の座標値であり、例えば、第１リンク１１と第２リンク１２との間のジョイントである第１関節２１のワールド座標系の座標値である。ＣＰＵ９１は、第１関節２１を始めとする第２関節２２〜第７関節２７のそれぞれのワールド座標系のジョイント座標を、両マニピュレータのロータリエンコーダ７１〜７７から取得した各回転角度に基づいて算出し、その算出結果を記憶部９４に格納する。
【００４２】
（Ｓ４０）
Ｓ４０では、ＣＰＵ９１は、ロボット定数を算出する。
ロボット定数は、ロボット固有の定数であり、代表的にはリンク長、隣接するリンク間の位置ずれ（オフセット）、ねじれ、或いは関節軸のエンコーダのオフセット値、或いは、各リンクの撓み等を含む。図１には、ロボット定数として、ｐ１〜ｐ４が例示として図示されている。ｐ１は例えば第１リンク１１のリンク長であり、ｐ２は第１関節２１と第２関節２２とのオフセットであり、ｐ３は第２リンク１２のリンク長であり、ｐ４は第３リンク１３の第２関節２２を通過する基準面からの角度である。これらは例示であり、限定されるものではない。キャリブレーション前のロボット定数は、予め記憶部９４にデフォルトとして記憶されている。
【００４３】
ロボット定数で算出する以下の式では、下記のように定義する。
ジョイント座標は、θ（θ１、θ２、……，θｍ）で表す。ロボット定数は、ｐ（ｐ１，ｐ２，…，ｐｎ）で表す、なお、ｎは、２台のマニピュレータのロボット定数の合計個数を表す。
【００４４】
マニピュレータ１０Ｂの設置点ＷＢの設置点座標Ｘは、式（１）のように表すことができる。
【００４５】
【数１】
2013184236.tif 000003
これを全微分すると、式（２）のように表すことができる。
【００４６】
【数２】
2013184236.tif 000004
上記ｄｘは、ロータリエンコーダから取得した回転角度から計算されるｘ座標と実際の座標の差を表している。ｄｙ，ｄｚ，ｄａ，ｄｂ，ｄｃについても同様である。
【００４７】
具体的には、ＣＰＵ９１は、姿勢変更毎の設置点ＷＢの設置点座標Ｘを順運動学的に算出し（以下、これらの値を算出値という）、その算出値と、既知であるマニピュレータ１０Ｂの設置点ＷＢの座標（実測値）との差を演算することにより、ｄｘ，ｄｙ，ｄｚ，ｄａ，ｄｂ，ｄｃを求める。
【００４８】
ここで、ｋ個の姿勢変更を行うことにより、これらを測定すれば６ｋ個のデータが得られる。
そして、マニピュレータ１０ＢのｄＸは、式（３）、式（４）で表すことができる。
【００４９】
【数３】
2013184236.tif 000005
【００５０】
【数４】
2013184236.tif 000006
なお、式（３）中、ｄｘ，ｄｃに付されている「θ＝θｋ」（ｋ＝１〜１４）は、マニピュレータ１０Ａの第１関節２１〜第７関節２７と、マニピュレータ１０Ｂの第１関節２１〜第７関節２７のジョイント座標に関するものであることを示している。
【００５１】
式（３）、式（４）において、Ｊはヤコビ行列、ｄｐはロボット定数の誤差ベクトルである。
このため、ｄｐは式（５）で表すことができる。
【００５２】
【数５】
2013184236.tif 000007
ＣＰＵ９１は、ロボット定数の数以上を上述したデータ数に基づき、最小２乗法を適用して、誤差ベクトルｄｐを求める。すなわち、ＣＰＵ９１は、求めたロボット定数の誤差ベクトルから、ロボット定数を更新し、これを設置点ＷＢの誤差が予め定められた閾値以下になるまで、繰り返して収束計算して、ロボット定数を同定する。
【００５３】
本実施形態では、下記の特徴を有する。
（１）  本実施形態のキャリブレーション方法は、一対のマニピュレータ１０Ａ，１０Ｂの先端を相互に連結し、一方のマニピュレータ１０Ａをマスターロボットとし、他方のマニピュレータ１０Ｂをスレーブロボットとし、マスターロボットのリンクを駆動するサーボモータ４１〜４７（アクチュエータ）に対してコントローラーＲＣ（制御装置）から指令を出力して、マスターロボット及びスレーブロボットを連結した状態で複数の姿勢を取らせる。そして、各姿勢変更時のマスターロボット及びスレーブロボットのリンクを駆動する各サーボモータ（アクチュエータ）に設けられたロータリエンコーダ７１〜７７（位置検出器）の回転角度（位置検出信号）に基づいて各姿勢変更時の各リンク間のジョイント座標を取得する。そして、マスターロボットの設置点ＷＡを基準として、スレーブロボットの設置点ＷＢの前記姿勢変更時の位置姿勢を、該姿勢変更時に取得したジョイント座標に基づいて順運動学的に算出する。さらに、スレーブロボットの設置点ＷＢの実際の座標（実測値）と、算出したスレーブロボットの設置点ＷＢの算出値の姿勢変更毎の誤差ベクトルｄｐ（誤差）を算出する。さらに、誤差ベクトルｄｐから、一対のマニピュレータのロボット定数を同定する。この結果、本実施形態によれば、３次元測定機、変位検出器、ハンドカメラ等の装置を使用することなくキャリブレーションを行うことができる。さらに、一対のマニピュレータのロボット定数を共に同定することができる。
【００５４】
（２）  本実施形態のキャリブレーション装置は、複数のリンク１１〜１８と、各リンク毎に設けられたサーボモータ４１〜４７（アクチュエータ）と、各リンクのＪ１軸〜Ｊ７軸（関節軸）の位置検出を行うロータリエンコーダ７１〜７７（位置検出器）を備えた一対のマニピュレータ１０Ａ，１０Ｂを備える。また、キャリブレーション装置は、一方のマニピュレータ１０Ａをマスターロボットとし、他方のマニピュレータ１０Ｂをスレーブロボットとして、一対のマニピュレータ１０Ａ，１０Ｂの先端を連結状態で、マスターロボットのサーボモータ４１〜４７（アクチュエータ）に対して指令を出力して、複数の姿勢を取らせるコントローラーＲＣ（制御部）を備える。
【００５５】
また、キャリブレーション装置のＣＰＵ９１は、各姿勢変更時のマスターロボット及びスレーブロボットのリンクを駆動する各サーボモータ（アクチュエータ）に設けられたロータリエンコーダ７１〜７７（位置検出器）と、マスターロボットの設置点ＷＡを基準として、スレーブロボットの設置点ＷＢの姿勢変更時の位置姿勢を、該姿勢変更時に取得したジョイントの座標（ジョイント座標）に基づいて順運動学的に算出する演算部と、スレーブロボットの設置点ＷＢの実際の座標（実測値）と、スレーブロボットの設置点の算出値の座標の姿勢変更毎の誤差を算出する誤差演算部として機能する。そして、キャリブレーション装置のＣＰＵ９１は、該誤差から、一対のマニピュレータ１０Ａ，１０Ｂのロボット定数を同定する同定部として機能する。この結果、本実施形態によれば、３次元測定機、変位検出器、ハンドカメラ等の装置を使用することなくキャリブレーションを行うことができるロボットのキャリブレーション装置を提供できるとともに、一対のマニピュレータのロボット定数を共に同定することができるキャリブレーション装置を提供できる。
【００５６】
なお、本発明の実施形態は前記実施形態に限定されるものではなく、下記のように変更しても良い。
前記実施形態では、アクチュエータをサーボモータとしてのＡＣモータを使用したが、ＤＣモータでもよく、ステッピングモータ等を使用してもよい。
【００５７】
・  前記各実施形態では各リンクを回転させるようにしたが、隣接するリンクに対して当該リンクを直線移動させる、アクチュエータとしてのシリンダ、ソレノイドを使用してもよい。この場合、位置検出器としては、リンクの直線移動量を検出するリニアポテンショメータ、静電容量型、或いは渦電流型等のギャップセンサ等を使用すればよい。
【００５８】
・  前記実施形態では、７軸の多関節ロボットに具体化したが、７軸に限定するものではなく、６軸以下のロボット、或いは、８軸以上のマニピュレータを使用してもよく、或いは一対のマニピュレータ同士は、必ずしも、同じ軸を備えるマニピュレータに限定されるものではなく、異なる軸数を備えるマニピュレータを組み合わせても良い。
【符号の説明】
【００５９】
ＲＣ…コントローラー（制御装置、制御部）、
ＷＡ…マニピュレータ１０Ａの設置点、
ＷＢ…マニピュレータ１０Ｂの設置点、
１０Ａ…一方のマニピュレータ（マスターロボット）、
１０Ｂ…他方のマニピュレータ（スレーブロボット）、
１２〜１８…リンク、
４１〜４７…サーボモータ（アクチュエータ）、
７１〜７７…ロータリエンコーダ（位置検出器）、
９１…ＣＰＵ（演算部、誤差演算部、同定部）。
【図１】
2013184236.tif 000008
【図２】
2013184236.tif 000009
【図３】
2013184236.tif 000010
【図４】
2013184236.tif 000011
【図５】
2013184236.tif 000012