(57)【特許請求の範囲】
【請求項１】
エンドエフェクタ、および前記エンドエフェクタを支持し複数の軸を支点として移動するアームを備えるロボットの制御装置であって、
ロボットの可動領域に目的点を設定する目的点設定手段と、
前記目的点設定手段で設定した目的点に対し、前記目的点と異なる第一位置から前記目的点に対し前記エンドエフェクタを移動させ、前記目的点に達したときの前記エンドエフェクタの座標を正エンドエフェクタ座標として、および複数の前記軸の回転角度を正回転角度として取得する正方向移動検出手段と、
前記エンドエフェクタの移動における固定軸と前記目的点とを結ぶ仮想直線を対称軸として前記第一位置と対称であり前記目的点、前記第一位置、前記仮想直線および前記対称軸を含む仮想平面と同一の平面上に位置する第二位置から前記目的点に対し前記エンドエフェクタを移動させ、前記目的点に達したときの前記エンドエフェクタの座標を負エンドエフェクタ座標として、および複数の前記軸の回転角度を負回転角度として取得する負方向移動検出手段と、
を備えることを特徴とするロボット制御装置。
【請求項２】
前記エンドエフェクタの前記第一位置から前記目的点までの移動と、前記第二位置から前記目的点までの移動とから前記エンドエフェクタの移動検出の一セットを構成し、
前記ロボットの可動領域に設定された各目的点に対し、前記エンドエフェクタの移動検出をｎセット（ｎ＞１）実施し、得られた前記正エンドエフェクト座標、前記正回転角度、前記負エンドエフェクト座標および前記負回転角度と、前記ロボットに予め設定されているＤＨパラメータとに基づいて、前記ロボットのキャリブレーションを実施することを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記ＤＨパラメータは、前記エンドエフェクタに加わる負荷、および前記エンドエフェクタの移動時における加速度に応じて複数設定され、
複数設定されている前記ＤＨパラメータから前記エンドエフェクタに適用される負荷および前記エンドエフェクタの加速度に応じて適した特定ＤＨパラメータを抽出するＤＨパラメータ抽出手段をさらに備えることを特徴とする請求項２記載のロボット制御装置。
【請求項４】
前記ＤＨパラメータ抽出手段で抽出された前記特定ＤＨパラメータは、前記ロボットにおいて一つのステップにおける動作が停止した後に切り換えられることを特徴とする請求項３記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置に関し、特にヒステリシスを考慮したパラメータを適用するロボット制御装置に関する。
【背景技術】
【０００２】
産業用ロボットのシステムにおいては、動作時における制御精度を高めるため、各種のパラメータを高精度に同定する必要がある。ロボットは、例えば駆動力を発生するアクチュエータ、アクチュエータの位置を検出するエンコーダ、アクチュエータの駆動力を伝達するリンク機構などを備えている。そのため、これらアクチュエータ、エンコーダおよびリンクなどに生じるわずかな誤差は、パラメータを利用して補正される（特許文献１参照）。
【特許文献１】特開平６−３０４８９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の場合、ロボットで想定される任意の動作領域から任意の数点を抽出し、この任意の点にエンドエフェクタを移動させている。特許文献１では、この任意の点へのエンドエフェクタの移動を複数回繰り返すことにより得られたデータに基づいてキャリブレーションを実行し、各種のパラメータを取得している。しかしながら、ロボットを構成するアクチュエータおよびリンク機構などには、ヒステリシスが存在する。そのため、エンドエフェクタの位置は、エンドエフェクタの動作方向、エンドエフェクタに加わる負荷、エンドエフェクタの移動速度、あるいはエンドエフェクタの加速度などによってわずかにずれが生じる。その結果、キャリブレーションの結果として得られるパラメータの精度が悪化し、制御精度の不十分になるおそれがある。
【０００４】
そこで、本発明は、上記の課題に鑑みてなされたものであり、その目的は、ヒステリシスの影響を低減し、パラメータの精度および制御の精度を向上するロボット制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の発明では、目的点設定手段で設定した目的点に対し、エンドエフェクタを正方向および負方向から移動させてエンドエフェクタ座標および軸の回転角度を取得している。すなわち、正方向移動検出手段は、エンドエフェクタを第一位置から目的点に対し移動させ、目的点に達したときのエンドエフェクタの正エンドエフェクタ座標および各軸の正回転角度を取得している。一方、負方向移動検出手段は、エンドエフェクタを目的点を挟んで第一位置とは反対側に位置する第二位置から目的点に対し移動させ、目的点に達したときのエンドエフェクタの負エンドエフェクタ座標および各自の負回転角度を取得している。このように、目的点に対しエンドエフェクタを第一位置から正方向へ、および第二位置から負方向へ移動させることにより、エンドエフェクタが異なる方向から移動しつつエンドエフェクタ座標および各軸の回転角度は取得される。そのため、移動方向の相違によって生じるヒステリシスの影響を相殺したキャリブレーションが実行される。したがって、ヒステリシスの影響を低減することができ、パラメータの精度および制御の精度を向上することができる。
【０００６】
請求項２記載の発明では、エンドエフェクタの第一位置から目的点までの正方向へ移動と、エンドエフェクタの第二位置から目的点までの負方向の移動とを複数の異なる目的点に対し繰り返して実行している。そして、繰り返して得られた各エンドエフェクタ座標および各軸の各回転角度、ならびにＤＨパラメータからキャリブレーションを実行している。そのため、移動ごとのわずかなずれの影響、およびヒステリシスの影響を低減することができ、パラメータの精度および制御の精度を向上することができる。
【０００７】
請求項３記載の発明では、ＤＨパラメータはエンドエフェクタに加わる負荷、およびエンドエフェクタの加速度に応じて複数設定されている。そのため、エンドエフェクタに加わる負荷やエンドエフェクタの加速度によってヒステリシスが異なる場合でも、エンドエフェクタに加わる負荷やエンドエフェクタの加速度に応じて適切な特定ＤＨパラメータが抽出される。したがって、負荷や加速度によって変化するヒステリシスの影響を低減することができ、パラメータの精度および制御の精度を向上することができる。
【０００８】
請求項４記載の発明では、ロボットの一つのステップにおける動作が停止した後、特定ＤＨパラメータによるロボットの制御を切り替える。ロボットは、動作の途中に負荷や加速度が変化することがある。この場合、条件の切り替えとともにＤＨパラメータを切り替えると、ロボットの動作にずれを招くおそれがある。そこで、ロボットにおいて一つのステップにおける動作が停止するまでＤＨパラメータの切り替えは行われない。したがって、ロボットの動作中における動作のずれを低減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明によるロボット制御装置の一実施形態を図面に基づいて説明する。
図１および図２は、本実施形態によるロボット制御装置を適用したロボットシステムを示す。図１は、ロボットシステムの構成を示すブロック図である。図２は、ロボットシステムの構成を示す概略図である。ロボットシステム１０は、ロボット１１および制御装置１２を備えている。ロボット１１は、例えば部品の組み立て用あるいは部品の検査用など、任意の構成のロボットである。制御装置１２は、周辺機器として操作ペンダントを構成するティーチィングペンダント１３およびプログラム入力用のパソコン１４などが接続されている。
【００１０】
ロボット１１は、例えば六軸の垂直多関節型のロボットとして構成されている。ロボット１１は、周知の通り、アクチュエータであるサーボモータ１５などからの駆動力で駆動されるアーム１６を有している。アーム１６は、先端にエンドエフェクタ１７を有している。例えばロボット１１で部品の運搬や組み立てなどを行う場合、エンドエフェクタ１７としてこれらの部品を保持するためのハンドが用いられる。また、例えばロボット１１で部品の検査などを行う場合、エンドエフェクタ１７として対象となる部品を撮影するカメラなどが用いられる。このように、エンドエフェクタ１７は、ロボット１１を適用する工程に応じて任意に選択することができる。サーボモータ１５からアーム１６の先端のエンドエフェクタ１７までの間には、図示しない減速機構やリンクなどの駆動力伝達機構が設けられている。これにより、アーム１６の先端に設けられているエンドエフェクタ１７は、サーボモータ１５からの駆動力によって駆動される。ロボット１１と制御装置１２との間は、接続ケーブル１８によって接続されている。これにより、ロボット１１の各軸を駆動するサーボモータ１５、および作業を実行するエンドエフェクタ１７は、制御装置１２によって制御される。
【００１１】
ティーチィングペンダント１３は、例えばユーザが携帯あるいは手に所持して操作可能な程度の大きさで構成されている。ティーチィングペンダント１３は、例えば薄型の略矩形箱状に形成されている。ティーチィングペンダント１３は、表面部の中央部に例えば液晶ディスプレイからなる表示部２１を有している。表示部２１には、各種の画面が表示される。表示部２１は、タッチパネルで構成されている。また、ティーチィングペンダント１３は、表示部２１の周囲に各種のキースイッチ２２が設けられている。タッチパネルおよびキースイッチ２２は、制御装置１２への種々の指示を入力するキー操作部２３を構成している。
【００１２】
ティーチィングペンダント１３の内部には、制御回路２４および図示しないインターフェイスなどが設けられている。制御回路２４は、マイクロコンピュータを主体として構成されている。ティーチィングペンダント１３は、インターフェイスを経由して制御装置１２との間で高速のデータ転送を実行する。ティーチィングペンダント１３は、ケーブル２５を経由して制御装置１２に接続している。ティーチィングペンダント１３のキー操作部２３から入力された操作信号などは、ケーブル２５を経由してティーチィングペンダント１３から制御装置１２へ送信される。また、制御装置１２は、ティーチィングペンダント１３へ制御信号や表示用の信号などとともに、駆動用の電力を供給する。
【００１３】
ユーザは、上記のティーチィングペンダント１３を用いてロボット１１の運転や設定などの各種の機能を実行可能である。具体的には、ユーザは、キー操作部２３を操作することにより、予め設定されているロボット１１のプログラムを呼び出して、ロボット１１の起動や各種のパラメータの設定などを実行することができる。また、ロボット１１をマニュアル操作により動作させて各種の教示作業を実行可能である。このとき、表示部２１には、例えばメニュー画面、設定入力画面、状況表示画面など必要に応じて所望の画面が表示される。
【００１４】
パソコン１４には、汎用のノートパソコンなどが適用される。パソコン１４でプログラミングソフトを実行させることにより、ユーザはアプリケーションに応じてロボット１１の動作手順などを記述したロボットプログラムを作成することができる。この場合、ユーザは、ロボット１１で実行するアプリケーションに応じて、パッケージ命令を組み合わせたり、修正を加えたりすることにより、比較的簡単にロボット１１の動作プログラムを作成することができる。このパソコン１４は、ケーブル２６を経由して制御装置１２に接続している。パソコン１４で作成されたロボット１１の動作プログラムは、ケーブル２６を経由してパソコン１４から制御装置１２へ入力される。
【００１５】
制御装置１２は、箱状のフレームの内部に制御部３１が組み込まれている。制御部３１は、ＣＰＵ、ＲＯＭおよびＲＡＭなどからマイクロコンピュータを主体として構成されている。制御部３１は、予め入力、記憶されたロボット１１の動作プログラムや、各種のデータおよびパラメータ、ティーチィングペンダント１３からの操作信号などに基づいて、サーボ制御部３２を経由してロボット１１の各軸のサーボモータ１５を駆動する。これにより、制御装置１２は、ロボット１１の動作を制御する。
【００１６】
制御装置１２は、上記の構成に加え、記憶部３４、目的点設定部３５、正方向移動検出部３６、負方向移動検出部３７およびＤＨパラメータ抽出部３８を有する。記憶部３４は、例えばＥＰＰＲＯＭなどの不揮発性の記憶素子やＨＤＤなどから構成されている。また、制御部３１を構成するＲＯＭおよびＲＡＭによって記憶部３４を構成してもよい。記憶部３４には、ロボット１１のＤＨパラメータが記憶されている。ＤＨパラメータは、ロボット１１に固有のデータとして予め記憶部３４に記憶する構成としてもよく、ロボット１１の経時的な精度の変化に応じて適宜取得して記憶部３４に記憶する構成としてもよい。ＤＨパラメータは、エンドエフェクタ１７に加わる負荷、あるいはエンドエフェクタ１７の移動時における加速度など、エンドエフェクタ１７の動作条件に応じて複数設定されている。ロボット１１の動作精度は、エンドエフェクタ１７に加わる負荷やエンドエフェクタ１７の移動加速度などによって変化する。そのため、ＤＨパラメータは、ロボット１１の動作として想定される各種の負荷や移動加速度などに応じて取得され、記憶部３４に記憶されている。
目的点設定部３５は、ロボット１１の可動領域内に設定されている目的点を設定する。この目的点とは、ロボット１１が動作したとき、エンドエフェクタ１７が移動の目的とする点である。すなわち、ロボット１１のエンドエフェクタ１７は、この目的点に向けて移動する。
【００１７】
正方向移動検出部３６は、ロボット１１を作動させて目的点設定部３５で設定した目的点にエンドエフェクタ１７を移動させたとき、この目的点におけるロボット１１の位置および姿勢などを取得する。具体的には、正方向移動検出部３６は、予め設定した第一位置から目的点に対してエンドエフェクタ１７を移動させる。この第一位置Ｐ１は、図３に示すように目的点Ｐｇと異なる位置に設定され、エンドエフェクタ１７が移動を開始する点である。正方向移動検出部３６は、この第一位置Ｐ１から目的点Ｐｇへエンドエフェクタ１７を移動させる。そして、正方向移動検出部３６は、エンドエフェクタ１７が目的点に達したとき、エンドエフェクタ１７の座標、およびロボット１１を構成する各軸の回転角度を取得する。正方向移動検出部３６は、第一位置Ｐ１から目的点Ｐｇへエンドエフェクタ１７を移動させたとき、目的点Ｐｇにおけるエンドエフェクタ１７の座標を正エンドエフェクタ座標として取得する。また、正方向移動検出部３６は、第一位置Ｐ１から目的点Ｐｇへエンドエフェクタ１７を移動させたとき、目的点Ｐｇにおけるロボット１１を構成する各軸の回転角度を正回転角度として取得する。本実施形態の場合、ロボット１１は、六軸型であるので、正方向移動検出部３６はこの六軸のすべての回転角度を検出する。正方向移動検出部３６によってエンドエフェクタ１７が移動する方向、すなわち第一位置Ｐ１から目的点Ｐｇへの移動方向は、エンドエフェクタ１７の移動方向において正方向とする。
【００１８】
負方向移動検出部３７は、ロボット１１を作動させて予め設定した第二位置から目的点Ｐｇに対してエンドエフェクタ１７を移動させたとき、この目的点Ｐｇにおけるロボット１１の位置および姿勢などを取得する。この第二位置Ｐ２は、図３に示すように目的点Ｐｇおよび第一位置Ｐ１とは異なる位置に設定され、エンドエフェクタ１７が移動を開始する点である。エンドエフェクタ１７は、ロボット１１の各軸に支持されて移動の中心となる固定軸Ｐｖを支点として回転移動する。第二位置Ｐ２は、この固定軸Ｐｖと目的点Ｐｇとを結ぶ仮想直線Ｌを対称軸として、目的点Ｐｇを挟んで第一位置Ｐ１と対称な位置に設けられている。
【００１９】
ロボット１１のエンドエフェクタ１７は、三次元へ移動可能である。一方、三次元へ移動可能なロボット１１であっても、その可動領域から目的点Ｐｇおよび第一位置Ｐ１の二点を抽出したとき、目的点Ｐｇおよび第一位置Ｐ１は同一の仮想平面上に位置する。そして、固定軸Ｐｖと目的点Ｐｇを結ぶ仮想直線Ｌもこの仮想平面上に位置する。したがって、第二位置Ｐ２も、目的点Ｐｇ、第一位置Ｐ１および仮想直線Ｌと同一の仮想平面上に位置する。
【００２０】
負方向移動検出部３７は、この第二位置Ｐ２から目的点Ｐｇへエンドエフェクタ１７を移動させる。そして、負方向移動検出部３７は、エンドエフェクタ１７が目的点Ｐｇに達したとき、エンドエフェクタ１７の座標、およびロボット１１を構成する各軸の回転角度を取得する。負方向移動検出部３７は、第二位置Ｐ２から目的点Ｐｇへエンドエフェクタ１７を移動させたとき、目的点Ｐｇにおけるエンドエフェクタ１７の座標を負エンドエフェクタ座標として取得する。また、負方向移動検出部３７は、第二位置Ｐ２から目的点Ｐｇへエンドエフェクタ１７を移動させたとき、目的点Ｐｇにおけるロボット１１を構成する各軸の回転角度を負回転角度として取得する。負方向移動検出部３７によってエンドエフェクタ１７が移動する方向、すなわち第二位置Ｐ２から目的点Ｐｇへの移動方向は、エンドエフェクタ１７の移動方向において負方向とする。
【００２１】
正方向移動検出部３６および負方向移動検出部３７は、ロボット１１のエンドエフェクタ１７の座標および各軸の回転角度を検出するためのパラメータとして、例えば次のパラメータを取得する。正方向移動検出部３６および負方向移動検出部３７は、例えばロボット１１の各軸を構成する回転軸ｉの回転角θｉ、回転軸ｉによって駆動されるリンクＬｉ、回転軸ｉと回転軸ｉ＋１との間のリンク長ａｉ、リンクＬｉのｚ軸からリンクＬｉ＋１のｚ軸までのｘｉ軸まわりの回転角αｉ、および回転角θｉのオフセット量Δθｉなどのうちの全部または一部をパラメータとして取得する。
【００２２】
制御部３１は、正方向移動検出部３６で取得した正エンドエフェクタ座標および正回転角度と、負方向移動検出部３７で取得した負エンドエフェクタ座標および負回転角度と、記憶部３４に記憶されているＤＨパラメータとに基づいてロボット１１のキャリブレーション実行する。ＤＨパラメータ抽出部３８は、記憶部３４に記憶されているＤＨパラメータから、エンドエフェクタ１７の負荷や移動加速度に応じて適したＤＨパラメータを特定ＤＨパラメータとして抽出する。ＤＨパラメータ抽出部３８は、例えばパソコン１４などから入力されたロボット１１の動作プログラムにしたがうロボットのアプリケーションに応じて、そのアプリケーションに適したＤＨパラメータを特定ＤＨパラメータとして抽出する。
【００２３】
次に、上記構成の制御装置１２によるキャリブレーションについて、図４に基づいて説明する。
目的点設定部３５は、ロボット１１のキャリブレーションを実行するための計測位置すなわち目的点Ｐｇを設定する（Ｓ１０１）。目的点Ｐｇは、ロボット１１の動作領域のすべてに適用可能なパラメータを取得可能な代表的な計測点である。目的点設定部３５は、少なくとも一点以上の目的点Ｐｇを設定する。なお、目的点設定部３５は、ロボット１１の動作領域のうち一部の領域における一部の動作についてのみ適用可能なパラメータを取得可能な計測点を目的点として設定してもよい。
【００２４】
目的点Ｐｇが設定されると、正方向移動検出部３６は、第一位置Ｐ１を設定し、エンドエフェクタ１７を第一位置Ｐ１へ動作させる（Ｓ１０２）。正方向移動検出部３６は、目的点Ｐｇと異なる第一位置Ｐ１を設定する。目的点Ｐｇと第一位置Ｐ１との間の距離は、予め一定の値として設定してもよく、目的点Ｐｇごとに任意に変化する値として設定してもよい。正方向移動検出部３６は、第一位置Ｐ１が設定されると、ロボット１１のエンドエフェクタ１７を第一位置Ｐ１へ動作させる。正方向移動検出部３６は、サーボ制御部３２を経由してサーボモータ１５へ駆動信号を出力し、ロボット１１を動作させる。ロボット１１は、サーボモータ１５の回転量に応じて動作し、アーム１６の先端に設けられたエンドエフェクタ１７が移動する。
【００２５】
エンドエフェクタ１７が第一位置Ｐ１へ移動すると、正方向移動検出部３６はエンドエフェクタ１７を第一位置Ｐ１から目的点Ｐｇへ動作させる（Ｓ１０３）。正方向移動検出部３６は、エンドエフェクタ１７を目的点Ｐｇへ移動させるための制御信号となる指令位置および姿勢もしくは指令角度を設定し、サーボ制御部３２からサーボモータ１５へ出力する。サーボモータ１５は、サーボ制御部３２から出力された指令位置および姿勢もしくは指令角度を含む制御信号に基づいて駆動される。これにより、エンドエフェクタ１７は、第一位置Ｐ１から目的点Ｐｇへ移動する。
【００２６】
エンドエフェクタ１７が第一位置Ｐ１から目的点Ｐｇへ移動すると、正方向移動検出部３６はエンドエフェクタ１７の実位置および実姿勢を取得する（Ｓ１０４）。エンドエフェクタ１７は、例えばレーザ計測器などの図示しない外部装置によって目的点Ｐｇに移動した際の実際の位置および姿勢が計測される。正方向移動検出部３６は、この外部装置によって計測されたエンドエフェクタ１７の位置および姿勢を、エンドエフェクタ１７の実位置および実姿勢として外部装置から取得する。
【００２７】
また、正方向移動検出部３６は、エンドエフェクタ１７を目的点Ｐｇへ動作させるために設定した指令位置および姿勢もしくは指令角度を取得する（Ｓ１０５）。指令位置および姿勢もしくは指令角度は、上述のステップＳ１０３においてエンドエフェクタ１７を第一位置Ｐ１から目的点Ｐｇへ動作させるときに設定される。そのため、正方向移動検出部３６は、ステップＳ１０３において設定した指令位置および姿勢もしくは指令角度を取得する。
【００２８】
正方向移動検出部３６は、ステップＳ１０４で外部装置から取得したエンドエフェクタ１７の実位置および実姿勢と、ステップＳ１０５で取得したエンドエフェクタ１７の指令位置および姿勢もしくは指令角度とから、エンドエフェクタ１７の座標を示す正エンドエフェクタ座標、およびロボット１１の各軸における回転角度を示す正回転角度を算出する。そして、正方向移動検出部３６は、算出した正エンドエフェクタ座標および正回転角度を正方向データとして記憶部３４に記憶する（Ｓ１０６）。
【００２９】
ステップＳ１０２からステップＳ１０６において正方向移動検出部３６によるエンドエフェクタ１７の正方向への移動時における正方向データの取得が完了すると、負方向移動検出部３７は、第二位置Ｐ２を設定し、エンドエフェクタ１７を第二位置Ｐ２へ動作させる（Ｓ１０７）。負方向移動検出部３７は、目的点Ｐｇおよび第一位置Ｐ１と異なる第二位置Ｐ２を設定する。第二位置Ｐ２は、上述のように図３に示す仮想直線Ｌを対称軸として第一位置Ｐ１と対称な位置に設定される。そのため、目的点Ｐｇから第二位置Ｐ２までの距離は、目的点Ｐｇから第一位置Ｐ１までの距離と同一である。負方向移動検出部３７は、第二位置Ｐ２が設定されると、ロボット１１のエンドエフェクタ１７を第二位置Ｐ２へ動作させる。負方向移動検出部３７は、サーボ制御部３２からサーボモータ１５へ駆動信号を出力し、ロボット１１を動作させる。ロボット１１は、サーボモータ１５の回転量に応じて動作し、アーム１６の先端に設けられたエンドエフェクタ１７が移動する。
【００３０】
エンドエフェクタ１７が第二位置Ｐ２へ移動すると、負方向移動検出部３７はエンドエフェクタ１７を第二位置Ｐ２から目的点Ｐｇへ動作させる（Ｓ１０８）。負方向移動検出部３７は、エンドエフェクタ１７を目的点Ｐｇへ移動させるための制御信号となる指令位置および姿勢もしくは指令角度を設定し、サーボ制御部３２からサーボモータ１５へ出力する。サーボモータ１５は、サーボ制御部３２から出力された指令位置および姿勢もしくは指令角度を含む制御信号に基づいて駆動される。これにより、エンドエフェクタ１７は、第二位置Ｐ２から目的点Ｐｇへ移動する。
【００３１】
エンドエフェクタ１７が第二位置Ｐ２から目的点Ｐｇへ移動すると、負方向移動検出部３７はエンドエフェクタ１７の実位置および実姿勢を取得する（Ｓ１０９）。エンドエフェクタ１７は、正方向への移動時と同様に図示しない外部装置によって目的点に移動した際の実際の位置および姿勢が計測される。負方向移動検出部３７は、この外部装置によって計測されたエンドエフェクタ１７の位置および姿勢を、エンドエフェクタ１７の実位置および実姿勢として外部装置から取得する。
【００３２】
また、負方向移動検出部３７は、エンドエフェクタ１７を目的点Ｐｇへ動作させるために設定した指令位置および姿勢もしくは指令角度を取得する（Ｓ１１０）。指令位置および姿勢もしくは指令角度は、上述のステップＳ１０８においてエンドエフェクタ１７を第二位置Ｐ２から目的点Ｐｇへ動作させるときに設定される。そのため、負方向移動検出部３７は、ステップＳ１０８において設定した指令位置および姿勢もしくは指令角度を取得する。
【００３３】
負方向移動検出部３７は、ステップＳ１０９で外部装置から取得したエンドエフェクタ１７の実位置および実姿勢と、ステップＳ１１０で取得したエンドエフェクタ１７の指令位置および姿勢もしくは指令角度とから、エンドエフェクタ１７の座標を示す負エンドエフェクタ座標、およびロボット１１の各軸における回転角度を示す負回転角度を算出する。そして、負方向移動検出部３７は、算出した負エンドエフェクタ座標および負回転角度を負方向データとして記憶部３４に記憶する。
【００３４】
制御部３１は、正方向移動検出部３６による正方向データの取得、および負方向移動検出部３７による負方向データの取得があらかじめ設定されたｎセット（ｎ≧１）実行されたか否かを判断する（Ｓ１１２）。エンドエフェクタ１７の動作は、ロボット１１のサーボモータ１５および駆動力伝達機構に生じるヒステリシスによって、正方向の移動と負方向の移動との間でずれが生じる。すなわち、第一位置Ｐ１から目的点Ｐｇへ正方向へ動作させたときに到達するエンドエフェクタ１７の座標と、第二位置Ｐ２から目的点Ｐｇへ負方向へ動作させたときに到達するエンドエフェクタ１７の座標との間には、ずれが生じる。このずれは、エンドエフェクタ１７の動作の方向に依存するだけでなく、動作を実行するごとにも生じる。すなわち、エンドエフェクタ１７の座標のずれは、同一方向の移動であっても、動作を行うごとにわずかに生じる。そこで、より精度の高いキャリブレーションを実行するために、制御部３１は正方向移動検出部３６による正方向データの取得、および負方向移動検出部３７による負方向データの取得をｎセット実行する。このとき、精度を十分に確保するためには、望ましくはｎ≧５０である。このｎは、ロボット１１およびエンドエフェクタ１７の座標に要求される精度に応じて、任意に設定することができる。すなわち、要求する精度が比較的低いときはｎを小さくし、要求する精度が高くなるにつれてｎを大きくすることができる。また、ロボット１１の形状精度や組み付け精度が高いとき、ｎは小さくしてもよい。
【００３５】
制御部３１は、ステップＳ１１２においてｎセットの正方向データの取得および負方向データの取得が完了してないと判断すると、ステップＳ１０２へリターンする。これにより、制御部３１は、正方向データおよび負方向データの取得がｎセットに到達するまでステップＳ１０２からステップＳ１１１までを繰り返して実行する。一方、制御部３１は、ステップＳ１１２においてｎセットの正方向データの取得および負方向データの取得が完了したと判断すると、目的点Ｐｇのすべてにおいて正方向データおよび負方向データの取得が完了したか否かを判断する（Ｓ１１３）。上述のように、目的点設定部３５は、ロボット１１の動作領域内に少なくとも一点以上の目的点Ｐｇを設定する。したがって、制御部３１は、設定した目的点Ｐｇのすべてについて正方向データおよび負方向データの取得が完了したか否かを判断する。
【００３６】
制御部３１は、ステップＳ１１３において目的点Ｐｇのすべてで正方向データおよび負方向データの取得が完了していないと判断すると、ステップＳ１０１へリターンする。これにより、制御部３１は、すべての目的点Ｐｇに対し正方向データおよび負方向データの取得が完了するまで、ステップＳ１０１からステップＳ１１２を繰り返して実行する。一方、制御部３１は、ステップＳ１１３において目的点のすべてで正方向データおよび負方向データの取得が完了したと判断すると、キャリブレーションデータを作成する（Ｓ１１４）。
【００３７】
制御部３１は、ステップＳ１０１からステップＳ１１３を実行することにより得られた正方向データおよび負方向データと、記憶部３４に記憶されているＤＨパラメータとからキャリブレーションデータを作成する。この正方向データには、正エンドエフェクト座標および正回転角度が含まれている。同様に負方向データには、負エンドエフェクト座標および負回転角度が含まれている。このとき、制御部３１は、ＤＨパラメータ抽出部３８によりキャリブレーションデータの作成に用いる特定ＤＨパラメータを抽出する。
【００３８】
制御部３１は、ステップＳ１１４におけるキャリブレーションデータの作成が完了すると、作成したキャリブレーションデータを記憶部３４に記憶する。そして、制御部３１は、ロボット１１を制御するとき、記憶部３４に記憶したキャリブレーションデータに基づいてサーボ制御部３２からサーボモータ１５へ出力する制御信号の指令値を補正する（Ｓ１１５）。すなわち、制御部３１は、ステップＳ１１４で作成したキャリブレーションデータを用いてロボット１１の制御を実行する。これにより、ロボット１１は、ヒステリシスの影響が低減されたキャリブレーションデータで補正された制御信号に基づいて制御される。
【００３９】
以上、説明したように本発明の一実施形態では、ロボット１１はキャリブレーションデータにより補正された制御信号によって制御される。このキャリブレーションデータは、第一位置Ｐ１から目的点Ｐｇへのロボット１１の動作による正方向データと、第一位置Ｐ１とは対称な第二位置Ｐ２から目的点Ｐｇへのロボット１１の動作による負方向データと、ロボット１１に設定されているＤＨパラメータとに基づいて作成される。正方向データおよび負方向データを用いてキャリブレーションデータを作成することにより、エンドエフェクタ１７の移動方向によるヒステリシスの影響は低減される。すなわち、対称な二つの方向からのエンドエフェクタ１７の移動によって取得した正方向データおよび負方向データを組み合わせることにより、ロボット１１に生じるヒステリシスがロボット１１の制御に与える影響は低減される。したがって、ロボット１１の制御精度を向上することができる。
【００４０】
また、本発明の一実施形態では、エンドエフェクタ１７の正方向の移動および負方向の移動を一セットとして正方向データおよび負方向データを取得し、これらのデータの取得をｎセット繰り返している。これにより、エンドエフェクタ１７の移動方向によるヒステリシスの影響だけでなく、ロボット１１の動作位置単位で異なる静的なずれが動作領域全体で低減される。したがって、キャリブレーションデータの精度を高めることができ、ロボット１１の制御精度を向上することができる。
【００４１】
さらに、本発明の一実施形態では、キャリブレーションデータの作成に用いるＤＨパラメータは、エンドエフェクタ１７に加わる負荷やエンドエフェクタ１７の移動加速度などに応じて複数設定している。そして、ＤＨパラメータ抽出部３８は、複数設定されているＤＨパラメータからロボット１１のアプリケーションに応じて、このアプリケーションに適した特定ＤＨパラメータを抽出する。これにより、エンドエフェクタ１７の移動方向だけでなく、アプリケーションの種類ごとに、最適なキャリブレーションデータが作成される。したがって、ロボット１１の動作にあわせてロボット１１の制御精度を向上することができる。
【００４２】
（その他の実施形態）
ロボット１１は、その動作によっては負荷や移動加速度の異なる二つ以上のアプリケーションが連続する場合がある。すなわち、ロボット１１は、適用されるＤＨパラメータが異なる動作が連続する場合がある。このとき、制御装置１２は、ロボット１１の動作すなわちアプリケーションが一つのステップを完了した後に、適用するＤＨパラメータを切り替える構成とすることが望ましい。すなわち、制御装置１２は、ロボット１１の複数のアプリケーションが一連して継続している途中で適用するＤＨパラメータを変更しない。連続する動作の途中にＤＨパラメータを変更すると、アプリケーションとアプリケーションとの間でロボット１１の制御精度にずれが生じるおそれがある。そこで、制御装置１２は、ロボット１１のアプリケーションが連続するとき、ロボット１１の動作が一つのステップを完了するまでＤＨパラメータをパラメータの切り替えを行わない。したがって、ロボット１１の動作中における動作のずれを低減することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態によるロボットシステムの概略構成を示すブロック図
【図２】本発明の一実施形態によるロボットシステムを示す概略図
【図３】本発明の一実施形態によるロボットシステムにおいて、目的点、第一位置および第二位置の位置関係を示す模式図
【図４】本発明の一実施形態によるロボットシステムの作動の流れを示す概略図
【符号の説明】
【００４４】
図面中、１１はロボット、１２は制御装置、１６はアーム、１７はエンドエフェクタ、３５は目的点設定部（目的点設定手段）、３６は正方向移動検出部（正方向移動検出手段）、３７は負方向移動検出部（負方向移動検出手段）、３８はパラメータ抽出部（パラメータ抽出手段）、Ｐｇは目的点、Ｐ１は第一位置、Ｐ２は第二位置、Ｐｖは固定軸、Ｌは仮想直線を示す。
【図１】
0005245384.tif 000002
【図２】
0005245384.tif 000003
【図３】
0005245384.tif 000004
【図４】
0005245384.tif 000005