(57)【特許請求の範囲】
【請求項１】
ロボットの外部軸である、ロボットに作業されるワークを把持するポジショナの回転軸または直動軸の該ロボットに対する相対的な位置姿勢を計測するロボットの外部軸の計測方法であって、
ポジショナの回転軸または直動軸に対する所定の位置に定義された計測点にロボットの基準点が手動によって位置合わせされた状態の該ロボットの姿勢を、基準点が計測点に位置合わせされた状態を維持しつつ計測姿勢に変更し、
ロボットの計測姿勢として、
（１）各関節における、ポジショナが把持するワークに対して作業を実行するときの作業姿勢時の関節値と計測姿勢時の関節値との間の差分値と、
（２）各関節に対して予め定義されている重み値とに基づいて、
作業姿勢に対する類似の程度が高い姿勢を決定し、
計測姿勢の状態のロボットにおける基準点の位置を算出することによりポジショナの計測点の位置を算出し、
算出したポジショナの計測点の位置に基づいて、ポジショナの回転軸または直動軸の位置姿勢を算出するロボットの外部軸の計測方法。
【請求項２】
基準点を計測点に位置合わせ可能なロボットの複数とおりの計測姿勢それぞれに対して、
（１）各関節について、作業姿勢時の関節値と計測姿勢時の関節値との差分値として第１の値を算出し、
（２）各関節について、第１の値の二乗値に重み値をかけ算して第２の値を算出し、
（３）各関節の第２の値を合計して第３の値を算出し、
第３の値が最小な計測姿勢を決定する請求項１に記載のロボットの外部軸の計測方法。
【請求項３】
関節値が変化したときにロボットの基準点を大きく変位させる関節ほど、重み値が、大きい値に設定されている請求項１または２に記載するロボットの外部軸の計測方法。
【請求項４】
回転軸または直動軸を基準としてワークを回転させるまたは平行移動させるポジショナが把持する該ワークに対して作業を実行する多関節型のロボットの教示データを作成するロボットの教示データ作成方法であって、
請求項１から３のいずれか一項に記載のロボットの外部軸の計測方法によって算出されたポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を使用し、ポジショナが把持するワークに対して作業を実行するための教示データを作成するロボットの教示データ作成方法。
【請求項５】
回転軸または直動軸を基準としてワークを回転させるまたは平行移動させるポジショナが把持する該ワークに対して作業を実行する多関節型のロボットのコントローラであって、
ワークに対して作業を実行するときのロボットの作業姿勢に対応する作業姿勢データを取得する作業姿勢データ取得手段と、
作業者の操作により、ポジショナの回転軸または直動軸に対する所定の位置に定義されている計測点にロボットの基準点を位置合わせするためのロボット操作手段と、
作業姿勢データ取得手段が取得した作業姿勢データに基づいて、基準点が計測点に位置合わせされた状態のロボットの計測姿勢を算出する計測姿勢決定手段と、
計測姿勢決定手段によって算出された計測姿勢の状態でポジショナの計測点の位置を算出する計測点位置算出手段とを有し、
計測姿勢決定手段が、計測姿勢として、
（１）各関節における、作業姿勢データの関節値と計測姿勢時の関節値との間の差分値と、
（２）各関節に対して予め定義されている重み値とに基づいて、
作業姿勢に対する類似の程度が高い姿勢を決定するロボットのコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットが作業するワークを把持するポジショナの回転軸または直動軸の該ロボットに対する相対的な位置姿勢を計測するロボットの外部軸の計測方法、ポジショナと協働するロボットの教示データ作成方法、およびロボットのコントローラに関する。
【背景技術】
【０００２】
従来より、ポジショナが把持するワークに対して、多関節型のロボットに溶接や塗装などの作業を実行させることが行われている。ポジショナは、ワークを回転させるまたは平行移動させる装置である。このようなポジショナと協働することにより、ロボットは、様々な方向からワークの様々な部分に対して作業を実行することができる。
【０００３】
ところで、ポジショナが把持するワークに対してロボットが高精度に作業を実行するためには、ポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を正確に計測する必要がある。例えば、特許文献１には、ポジショナの回転軸や直動軸についてロボットに対する相対的な位置姿勢を計測する方法が開示されている。なお、ポジショナの回転軸や直動軸は、「ロボットの外部軸」と呼ばれている。
【０００４】
例えば、特許文献１に開示されている回転軸を有するポジショナでは、ポジショナの回転軸のロボットに対する相対的な位置姿勢を求めるために、回転軸に対する所定の位置（回転軸を中心として回転することにより変位するポジショナの部分）に計測点が定義されている。
【０００５】
特許文献１おいて、ポジショナの回転軸の位置姿勢の計測は、回転軸を中心として所定の角度ずつ複数回回転させることによって計測点を複数回変位させ、計測点を所定の角度回転させる度に、ロボットの先端に取り付けられた計測用ツールの先端点（エンドエフェクタ中心点）を計測点に手動で位置合わせする。計測点に位置合わせされた状態の先端点の位置（座標）に基づいて該計測点の位置（座標）を算出する。そして、算出された計測点の複数の位置に基づいて、ポジショナの回転軸のロボットに対する相対的な位置姿勢を算出する。なお、この方法は、ロボット（ロボットのコントローラ）が、そのときの姿勢（各関節の関節角度）に基づいて、計測用ツールの先端点の位置を算出する機能を備えることが前提である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−１２９４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、特許文献１に記載する方法によって算出されたポジショナの回転軸のロボットに対する相対的な位置姿勢に基づいて、ポジショナが把持するワークに対してロボットが作業を実行すると、高精度に作業できないことがある。その理由は、ロボットの「誤差」を十分に考慮していないからである。
【０００８】
例えば、ある目標点に計測用ツールの先端点を位置決めするために、目標点に計測用ツールの先端点が配置される姿勢を実現する姿勢制御値（各関節の関節角度）をコンピュータなどによって算出し、その算出した姿勢制御値に基づいてロボットの姿勢を制御した場合（いわゆるオフライン教示を実行した場合）、計測用ツールの先端点は、目標点からずれた位置に位置決めされる。すなわち、位置決め誤差である。この位置決め誤差は、関節を駆動するモータの軸のねじれやリンクのたわみ、エンコーダの検出誤差などの、先端点の位置に影響を与えるあらゆる原因を考慮して姿勢制御値を算出していないために生じる。
【０００９】
また、例えば、ある目標点の位置（座標値）を計測するために、作業者がティーチングペンダントを操作することによって手動で計測用ツールの先端点を目標点に位置合わせした場合、そのときにロボットが算出するツールの先端点の位置（座標値）は、目標点の実際の位置とずれている。すなわち、位置計測誤差である。この位置計測誤差は、計測用ツールの先端点の位置を算出するときに、関節を駆動するモータの軸のねじれ、リンクのたわみ、エンコーダの検出誤差などの、先端点の位置に影響を与えるあらゆる原因を考慮せず、各関節の関節角度に基づいて算出しているために生じる。
【００１０】
しかしながら、計測用ツールの先端点の位置に影響を与えるあらゆる原因を考慮することは、実質的に不可能である。
【００１１】
したがって、ポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を該ロボットによって計測し、その計測結果に基づいてポジショナが把持するワークに対して高精度に作業をロボットが実行する場合、位置決め誤差と位置計測誤差との両方を十分に考慮する必要がある。
【００１２】
そこで、本発明は、ポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を該ロボットによって計測し、その計測結果に基づいてポジショナが把持するワークに対してロボットが作業を実行する場合において、ロボットの位置決め誤差と位置計測誤差との両方を十分に考慮することにより、ロボットによるワークに対する高精度な作業を実現することを課題とする。
【課題を解決するための手段】
【００１３】
上述の課題を解決するために、本発明の第１の態様によれば、
ロボットの外部軸である、ロボットに作業されるワークを把持するポジショナの回転軸または直動軸の該ロボットに対する相対的な位置姿勢を計測するロボットの外部軸の計測方法であって、
ポジショナの回転軸または直動軸に対する所定の位置に定義された計測点にロボットの基準点が手動によって位置合わせされた状態の該ロボットの姿勢を、基準点が計測点に位置合わせされた状態を維持しつつ計測姿勢に変更し、
ロボットの計測姿勢として、
（１）各関節における、ポジショナが把持するワークに対して作業を実行するときの作業姿勢時の関節値と計測姿勢時の関節値との間の差分値と、
（２）各関節に対して予め定義されている重み値とに基づいて、
作業姿勢に対する類似の程度が高い姿勢を決定し、
計測姿勢の状態のロボットにおける基準点の位置を算出することによりポジショナの計測点の位置を算出し、
算出したポジショナの計測点の位置に基づいて、ポジショナの回転軸または直動軸の位置姿勢を算出する、ロボットの外部軸の計測方法が提供される。
【００１４】
本発明の第２の態様によれば、
基準点を計測点に位置合わせ可能なロボットの複数とおりの計測姿勢それぞれに対して、
（１）各関節について、作業姿勢時の関節値と計測姿勢時の関節値との差分値として第１の値を算出し、
（２）各関節について、第１の値の二乗値に重み値をかけ算して第２の値を算出し、
（３）各関節の第２の値を合計して第３の値を算出し、
第３の値が最小な計測姿勢を決定する、第１の態様に記載のロボットの外部軸の計測方法が提供される。
【００１５】
本発明の第３の態様によれば、
関節値が変化したときにロボットの基準点を大きく変位させる関節ほど、重み値が、大きい値に設定されている、第１または第２の態様に記載のロボットの外部軸の計測方法が提供される。
【００１６】
本発明の第４の態様によれば、
回転軸または直動軸を基準としてワークを回転させるまたは平行移動させるポジショナが把持する該ワークに対して作業を実行する多関節型のロボットの教示データを作成するロボットの教示データ作成方法であって、
第１から第３の態様のいずれか一つに記載のロボットの外部軸の計測方法によって算出されたポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を使用し、ポジショナが把持するワークに対して作業を実行するための教示データを作成する、ロボットの教示データ作成方法が提供される。
【００１７】
本発明の第５の態様によれば、
回転軸または直動軸を基準としてワークを回転させるまたは平行移動させるポジショナが把持する該ワークに対して作業を実行する多関節型のロボットのコントローラであって、
ワークに対して作業を実行するときのロボットの作業姿勢に対応する作業姿勢データを取得する作業姿勢データ取得手段と、
作業者の操作により、ポジショナの回転軸または直動軸に対する所定の位置に定義されている計測点にロボットの基準点を位置合わせするためのロボット操作手段と、
作業姿勢データ取得手段が取得した作業姿勢データに基づいて、基準点が計測点に位置合わせされた状態のロボットの計測姿勢を算出する計測姿勢決定手段と、
計測姿勢決定手段によって算出された計測姿勢の状態でポジショナの計測点の位置を算出する計測点位置算出手段とを有し、
計測姿勢決定手段が、計測姿勢として、
（１）各関節における、作業姿勢データの関節値と計測姿勢時の関節値との間の差分値と、
（２）各関節に対して予め定義されている重み値とに基づいて、
作業姿勢に対する類似の程度が高い姿勢を決定する、ロボットのコントローラが提供される。
【発明の効果】
【００１８】
本発明によれば、ポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を計測するときの該ロボットの計測姿勢が、ポジショナが把持するワークに対して作業を実行するときの作業姿勢と類似する姿勢であるため、ロボットの位置計測誤差と位置決め誤差を十分に相殺することができる。その結果、ロボットは、ポジショナが把持するワークに対して高精度に作業を実行することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係るロボット設備を概略的に示す図
【図２】姿勢と位置計測誤差との関係を説明するための図
【図３】位置計測誤差と位置決め誤差との関係を説明するための図
【図４】本発明の実施の形態に係るロボットのコントローラの構成を示す図
【図５】ポジショナの計測点の位置を算出する流れを示す図
【発明を実施するための形態】
【００２０】
まず、本発明をよりよく理解するために、本発明に係るポジショナの位置姿勢の計測方法の概念を説明する。
【００２１】
図１は、本発明の実施の形態に係るロボット設備を概略的に示している。また、図１は、ロボット１０によってポジショナ１２の回転軸（回転中心線）Ａｒの位置姿勢を計測する様子を示している。
【００２２】
図１に示すロボット１０は、関節１０ａ〜１０ｆを有する多関節型のロボットであって、その先端のフランジ１０ｇにスプレーガンや溶接トーチなどの作業用ツールを取り付けることにより、塗装作業や溶接作業などの作業をワークＷに対して実行する。ここでは、計測用ツール１４がフランジ１０ｇに取り付けられている。なお、関節１０ａ、１０ｄ、１０ｆはねじり関節であり、関節１０ｂ、１０ｃ、１０ｅは曲げ関節である。
【００２３】
ロボット１０はまた、その姿勢をコントローラ１６によって制御される。具体的には、コントローラ１６は、ロボット１０の関節１０ａ〜１０ｆを駆動する（関節角度を調整する）モータ（図示せず）を制御することにより、ロボット１０の姿勢を制御する。
【００２４】
コントローラ１６はまた、計測用ツール１４の先端点Ｐｔの位置、具体的には、例えばロボット１０のベースＢに予め定義されているベース座標系ΣＢにおける先端点Ｐｔの座標を算出する機能を備えている。なお、本明細書において、「位置」や「姿勢」は、ベース座標系ΣＢにおける位置や姿勢を言う。
【００２５】
コントローラ１６は、ロボット１０の姿勢に基づいて、すなわち関節１０ａ〜１０ｆそれぞれの関節角度（曲げ角度、ねじり角度）に基づいて、エンドエフェクタ中心点として、計測用ツール１４の先端点（特許請求の範囲の「基準点」に対応）Ｐｔの位置を算出する。そのために、関節１０ａ〜１０ｆそれぞれに関節角度を検出するエンコーダ（図示せず）が設けられている。また、コントローラ１６の記憶装置（図示せず）に、先端点Ｐｔの位置の算出に必要な、リンク１０ｈ〜１０ｍそれぞれのリンク長、計測用ツール１４の先端点Ｐｔからフランジ１０ｇまでの距離などのデータが記憶されている。
【００２６】
ポジショナ１２は、回転軸Ａｒを中心として回転する作業テーブル１８を有する。作業テーブル１８には、ロボット１０によって作業されるワークＷが治具（図示せず）を介して固定される。ここでは、ポジショナ１２の回転軸Ａｒの位置姿勢（ロボット１０に対する相対的な位置や姿勢）を計測するためのマーカー２０が取り付けられている。マーカー２０の先端の計測点Ｐｍから回転軸Ａｒまでの距離は、既知であり、ロボット１０のコントローラ１６の記憶装置に記憶されている。
【００２７】
なお、計測点Ｐｍは、マーカー２０を介して回転軸Ａｒに対する所定の位置に定義することに限らない。例えば、回転軸Ａｒを中心として回転する作業テーブル１８に直接定義してもよい。
【００２８】
ポジショナ１２の回転軸Ａｒの位置姿勢の計測は、作業者がティーチングペンダント（図示せず）を介してロボット１０を手動で操作し、計測用ツール１４の先端点Ｐｔをマーカー２０の計測点Ｐｍに位置合わせすることにより行われる。計測点Ｐｍと位置合わせされた状態の先端点Ｐｔの位置を算出することにより、計測点Ｐｍの位置を算出することができる。そして、この算出した計測点Ｐｍの位置に基づいて、回転軸Ａｒの位置姿勢を算出することができる。
【００２９】
具体的には、回転軸Ａｒを中心として作業テーブル１８を回転させることにより、作業テーブル１８に異なる複数の姿勢をとらせ、作業テーブル１８の異なる姿勢毎に、マーカー２０の計測点Ｐｍに計測用ツール１４の先端点Ｐｔを位置合わせする。そして、作業テーブル１８の異なる姿勢毎に、計測点Ｐｍの位置を算出する。算出された複数の異なる計測点Ｐｍの位置それぞれから回転軸Ａｒまでの距離は同一であることから、幾何学的に回転軸Ａｒの位置姿勢を算出することができる。ポジショナ１２の回転軸Ａｒのロボット１０に対する位置姿勢が算出されることにより、ポジショナ１２によって姿勢が変更されるワークＷに対して、ロボット１０は作業を実行することができる。
【００３０】
以上のことを踏まえた上で、ここからは、本発明の特徴について説明する。
【００３１】
上述したように、ポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢を計測するためには、計測用ツール１４の先端点Ｐｔの位置の算出が必要である。ところが、コントローラ１６が算出する計測用ツール１４の先端点Ｐｔの位置は、先端点Ｐｔの実際の位置と異なる。
【００３２】
この理由は、例えば、関節を駆動するモータの回転軸のねじれ、リンクのたわみ、周囲の温度、エンコーダの検出誤差などの、先端点Ｐｔの位置に影響を与えるあらゆる原因を完全に考慮して、先端点Ｐｔの位置を算出できないからである。そのため、上述した先端点Ｐｔの位置に基づく方法によって算出された回転軸Ａｒのロボット１０に対する相対的な位置姿勢は、実際の位置姿勢と異なる、すなわち位置計測誤差を含んでいる。
【００３３】
したがって、ポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢を該ロボット１０によって計測し、その計測結果に基づいてポジショナ１２が把持するワークＷに対してロボット１０が作業を高精度に実行する場合、ロボット１０の位置計測誤差を十分に考慮する必要がある。
【００３４】
本発明においては、ロボット１０の位置計測誤差を考慮して、ロボット１０の計測時の姿勢（以下、「計測姿勢」と称する。）を明確に規定する。その理由は、ロボット１０を用いてポジショナ１２の回転軸Ａｒの該ロボット１０に対する相対的な位置姿勢を計測する場合、ロボット１０の計測姿勢によって位置計測誤差が異なるからである。
【００３５】
例えば、図１のロボット設備を概略的に表現した図２に示すように、計測姿勢が異なると、ロボット１０のコントローラ１６は、異なる位置計測誤差でポジショナ１２の回転軸Ａｒの位置姿勢を算出する。
【００３６】
図２（Ａ）は、計測用ツール１４が鉛直方向（Ｚ軸負方向）に向いた状態（関節１０ｅから先の部分が鉛直方向に延びる状態）でその先端点Ｐｔがマーカー２０の計測点Ｐｍに位置合わせされる計測姿勢を示している。一方、図２（Ｂ）は、計測用ツール１４が水平方向（Ｘ軸正方向）に向いた状態（関節１０ｅから先の部分が水平方向に延びる状態）でその先端点Ｐｔが計測点Ｐｍに位置合わせされる計測姿勢を示している。なお、図中において実線は、実際のロボット１０とポジショナ１２とを示している。一方、二点差線は、計算上のロボット１０とポジショナ１２とを示している。
【００３７】
図２（Ａ）に示す計測姿勢の場合、コントローラ１６によって算出されるポジショナ１２の回転軸（計算上の回転軸）Ａｒｃ１は、実際の回転軸Ａｒからロボット１０のベースＢ側の方向（Ｘ軸負方向）にずれる。
【００３８】
その理由を説明すると、作業者がティーチングペンダントを介してロボット１０を手動操作することによって計測用ツール１４の先端点Ｐｔをマーカー２０の計測点Ｐｍに位置合わせした場合、二点鎖線によって示すように、コントローラ１６が算出する計測点（計算上の計測点）Ｐｍｃ１の位置は、実際の計測点Ｐｍの位置からロボット１０のベースＢ側の方向にずれる傾向がある。その結果、ずれた計測点Ｐｍｃ１の位置に基づいて算出された回転軸Ａｒｃ１は、実際の回転軸Ａｒからロボット１０のベースＢ側の方向にずれる。すなわち、実際の回転軸Ａｒからロボット１０のベースＢ側の方向の位置計測誤差が発生する。
【００３９】
これに対して、図２（Ｂ）に示す計測姿勢の場合、コントローラ１６によって算出されるポジショナ１２の回転軸（計算上の回転軸）Ａｒｃ２は、実際の回転軸Ａｒからロボット１０のベースＢ側の方向と反対方向（Ｘ軸正方向）にずれる。
【００４０】
その理由を説明すると、作業者がティーチングペンダントを介してロボット１０を操作することによって計測用ツール１４の先端点Ｐｔをマーカー２０の計測点Ｐｍに位置合わせした場合、二点鎖線によって示すように、コントローラ１６が算出する計測点（計算上の計測点）Ｐｍｃ２の位置は、実際の計測点Ｐｍの位置からロボット１０のベースＢ側の方向と反対方向にずれる傾向がある。その結果、ずれた計測点Ｐｍｃ２の位置に基づいて算出された回転軸Ａｒｃ２は、実際の回転軸Ａｒからロボット１０のベースＢ側の方向と反対方向にずれる。すなわち、実際の回転軸Ａｒからロボット１０のベースＢ側の方向と反対方向の位置計測誤差が発生する。
【００４１】
このように、計測姿勢が異なると、ロボット１０のコントローラ１６は、異なる位置計測誤差でポジショナ１２の回転軸Ａｒの位置姿勢を算出することになる。
【００４２】
計測姿勢が異なると位置計測誤差も異なることを考慮して、本発明では、計測姿勢を、ワークに対して作業するときの作業姿勢と類似する姿勢に決定する。
【００４３】
図３（Ａ）は、図２（Ａ）に示す計測姿勢（関節１０ｅから先の部分が鉛直方向に延びる状態）のロボット１０によって計測されたポジショナ１２の回転軸（計算上の回転軸）Ａｒｃ１に基づいて、ワークＷに対して作業を実行するロボット１０の様子を示している。一方、図３（Ｂ）は、図２（Ｂ）に示す計測姿勢（関節１０ｅから先の部分が水平方向に延びる状態）のロボット１０によって計測されたポジショナ１２の回転軸（計算上の回転軸）Ａｒｃ２に基づいて、ワークＷに対して作業を実行するロボット１０の様子を示している。
【００４４】
ワークＷに対して作業を実行するときのロボット１０の作業姿勢は、図２（Ａ）に示す計測姿勢と類似する姿勢、すなわち関節１０ｅから先の部分が鉛直方向に延びる状態の姿勢である。
【００４５】
図３（Ａ）および図３（Ｂ）に示す作業姿勢はまた、作業用ツールの先端点Ｐｔ’をワークＷの作業開始点Ｐｗに位置合わせする姿勢である。例えば、作業用ツールが溶接トーチである場合、先端点Ｐｔ’は溶接棒の先端であり、作業開始点Ｐｗは溶接開始箇所である。なお、作業開始点Ｐｗの回転軸Ａｒに対する位置は既知であり、コントローラ１６の記憶装置に記憶されている。
【００４６】
図３（Ａ）に示すように、計算上の回転軸Ａｒｃ１に基づいて、コントローラ１６がロボット１０を作業姿勢に制御した場合、作業用ツールの先端点Ｐｔ’は、ワークＷの作業開始点Ｐｗにほぼ位置決めされる。これは、計測姿勢と作業姿勢とが、図２（Ａ）と図３（Ａ）とに示すように、関節１０ｅから先の部分が鉛直方向に延びる状態の姿勢であって類似するからである。
【００４７】
具体的に説明すると、図３（Ａ）に示すように、計算上の回転軸Ａｒｃ１は、実際の回転軸Ａｒからロボット１０のベースＢ側の方向（Ｘ軸負方向）にずれている。この計算上の回転軸Ａｒｃ１に基づいてコントローラ１６がロボット１０を制御すると、先端点Ｐｔ’は、計算上の回転軸Ａｒｃ１からロボット１０のベースＢ側方向と反対方向の位置に位置決めされる。これは、コントローラ１６によって姿勢が制御されたロボット１０においてモータの軸のねじれやリンクのたわみなどが生じ、先端点Ｐｔ’がロボット１０のベースＢ側の方向と反対方向にずれる位置決め誤差が発生したことによる。その結果、誤差の方向が正反対の位置決め誤差と位置計測誤差とがほぼ相殺され、図３（Ａ）に示すように、作業用ツールの先端点Ｐｔ’が、ワークＷの作業開始点Ｐｗにほぼ位置決めされる。
【００４８】
これに対して、図３（Ｂ）に示すように、計算上の回転軸Ａｒｃ２に基づいて、コントローラ１６がロボット１０を作業姿勢に制御した場合、作業用ツールの先端点Ｐｔ’は、ワークＷの作業開始点Ｐｗから離れた位置に位置決めされる。これは、図２（Ｂ）と図３（Ｂ）とに示すように計測姿勢と作業姿勢とが異なり、類似していないからである。
【００４９】
具体的に説明すると、図３（Ｂ）に示すように、計算上の回転軸Ａｒｃ２は、実際の回転軸Ａｒからロボット１０のベースＢ側の方向と反対方向（Ｘ軸正方向）にずれている。この計算上の回転軸Ａｒｃ２に基づいてコントローラ１６がロボット１０を制御すると、先端点Ｐｔ’は、計算上の回転軸Ａｒｃ２からロボット１０のベースＢ側の方向と反対方向にずれる。これは、コントローラ１６によって姿勢が制御されたロボット１０においてモータの軸のねじれやリンクのたわみなどが生じ、先端点Ｐｔ’がロボット１０のベースＢ側の方向と反対方向にずれる位置決め誤差が発生したことによる。その結果、誤差の方向が同一であるために位置決め誤差と位置計測誤差とが相殺されず、図３（Ｂ）に示すように、作業用ツールの先端点Ｐｔ’が、ワークＷの作業開始点Ｐｗから、ロボット１０のベースＢ側の方向と反対方向に大きくずれて位置決めされる。
【００５０】
作業姿勢に類似する計測姿勢を決定するために、本発明では、複数とおりの計測姿勢それぞれについて、作業姿勢に対する類似の程度（類似度）を算出し、算出した類似度が良好な姿勢を計測姿勢と決定する。なお、「複数とおりの計測姿勢」は、図１を例に挙げて説明すると、計測用ツール１４の先端点Ｐｔがマーカー２０の計測点Ｐｍに位置合わせ可能な複数の姿勢、すなわち計測点Ｐｍの位置を計測可能な姿勢をいう。
【００５１】
数式１は、作業姿勢Ｊｓに対する計測可能姿勢Ｊｉの類似度Ｄ（Ｊｉ，Ｊｓ）（特許請求の範囲の「第３の値」に対応）を算出するための式である。この類似度Ｄ（Ｊｉ，Ｊｓ）の値が小さいほど、計測可能姿勢Ｊｉが、作業姿勢Ｊｓに類似する、すなわち、計測姿勢に適することを意味する。
【数１】
0005667437.tif 000002
【００５２】
数式１において、パラメータｋは、関節番号を示す。ｋ＝１は関節１０ａに対応し、ｋ＝２は関節１０ｂに、ｋ＝３は関節１０ｃに、ｋ＝４は関節１０ｄに、ｋ＝５は関節１０ｅに、そしてｋ＝６は関節１０ｆに対応する。パラメータｗｋは、関節番号ｋの関節に対する重み値である。パラメータｑｉ，ｋは、計測可能姿勢Ｊｉ時における関節番号ｋの関節の関節角度である。パラメータｑｓ，ｋは、作業姿勢Ｊｓ時における関節番号ｋの関節の関節角度である。
【００５３】
関節１０ａ〜１０ｆそれぞれに定義される重み値ｗｋは、例えば、ロボット１０の先端に近い関節ほど小さい値に設定されている。具体的に言えば、関節角度が変化したときに計測用ツール１４の先端点Ｐｔを大きく変位させる関節ほど、重み値ｗｋは大きい値に設定されている。
【００５４】
このような重み値ｗｋにより、複数の計測可能姿勢Ｊｉの中において類似度Ｄ（Ｊｉ，Ｊｓ）が最小な計測可能姿勢Ｊｉ（すなわち計測姿勢に決定される計測可能姿勢Ｊｉ）は、計測用ツール１４の先端点Ｐｔの変位に比較的大きく寄与する関節ではその関節角度が作業姿勢Ｊｓの関節角度とほぼ一致し、計測用ツール１４の先端点Ｐｔの変位に比較的小さく寄与する関節では関節角度が作業姿勢Ｊｓの関節角度と異なるような姿勢にされる。
【００５５】
この理由を説明すると、位置決め誤差も位置計測誤差も、その誤差の方向や誤差の量はロボット１０の先端の位置に大きく寄与する関節の影響が大きい。そのため、このような関節の関節角度が作業姿勢と計測姿勢との間で大きく異なると、誤差の方向や誤差の量が大きく異なり、位置決め誤差と位置計測誤差とが十分に相殺できなくなる。したがって、作業姿勢Ｊｓ時の位置決め誤差を十分に相殺できる位置計測誤差が生じる計測姿勢が決定されるように、計測用ツール１４の先端点Ｐｔの変位への寄与が大きい関節ほど、重み値ｗｋは大きい値に設定されている。
【００５６】
重み値ｗｋの具体的な数値として、例えばヤコビ行列の逆行列の固有値を用いることが可能である。数式２は、ヤコビ行列を用いた運動方程式である。
【数２】
0005667437.tif 000003
【００５７】
先端点の速度ベクトルは、ロボットの先端点（例えば、ロボット１０の先端のフランジ１０ｇの中心点）の速度ベクトルである。
【００５８】
数式２の両辺にヤコビ行列の逆行列をかけると、数式３が得られる。
【数３】
0005667437.tif 000004
【００５９】
ヤコビ行列の逆行列の固有値は関節速度ベクトルを決定付ける各関節の配分に相当する。すなわち、大きい固有値に対応する関節は大きく動き、小さい固有値に対応する関節は小さく動く解を得ることができる。大きい固有値に対応する関節は、すなわち大きく動く関節はロボットの先端点の速度ベクトルに対して大きく寄与すると解釈できるため、ヤコビ行列の逆行列の固有値を重み値として使用することができる。
【００６０】
ここまでは、本発明を概念的に説明してきた。以下、本発明に係る実施の形態について説明する。
【００６１】
図４は、ロボット１０のコントローラ１６の概略的構成図である。
【００６２】
ロボット１０のコントローラ１６は、ロボット１０の姿勢を制御する姿勢制御部５０と、計測用ツール１４の先端点の位置を算出する先端点位置算出部５２と、ワークＷに対して作業するときのロボット１０の作業姿勢データを取得する作業姿勢データ取得部５４と、マーカー２０の計測点を計測するときの計測姿勢を算出する計測姿勢算出部５６と、ポジショナ１２に対して外部信号（制御信号）を出力する外部信号出力部５８と、ポジショナ１２の回転軸Ａｒ（外部軸）の位置姿勢を算出する外部軸位置姿勢算出部６０と、記憶部６２とを有する。
【００６３】
コントローラ１６はまた、作業者がロボット１０を手動操作するためのティーチングペンダント６４を有する。
【００６４】
姿勢制御部５０は、ロボット１０の関節１０ａ〜１０ｆを駆動するモータ７０ａ〜７０ｆを制御することによって関節１０ａ〜１０ｆそれぞれの関節角度を変更し、ロボット１０の姿勢を制御する。
【００６５】
先端点位置算出部５２は、ロボットの関節１０ａ〜１０ｆの関節角度を検出するエンコーダ７２ａ〜７２ｆの検出値に基づいて、計測用ツール１４の先端点Ｐｔの位置を算出する。先端点Ｐｔの位置に算出に必要な、リンク１０ｈ〜１０ｍのリンク長や計測用ツール１４の先端点Ｐｔからフランジ１０ｇまでの距離などは記憶部６２に記憶されている。
【００６６】
作業姿勢データ取得部５４は、例えばオフライン教示ツールによって作成された作業姿勢データを取得するように構成されている。オフライン教示ツールは、例えばロボット１０、ポジショナ１２、およびワークＷそれぞれのＣＡＤデータを使用して、コンピュータ上で、ポジショナ１２が把持するワークＷに対して作業を実行するロボット１０の教示データ（動作プログラム）を作成するツールである。コントローラ１６は、オフライン教示ツールによって作成された教示データに基づいてロボット１０を制御できるように構成されている。作業姿勢データ取得部５４は、例えば記憶媒体に対して読み書きできる装置であって、記憶媒体に記憶されている教示データを読み取ることによって作業姿勢データとして教示データを受け取る。
【００６７】
それに加えてまたはその代わりに、作業姿勢データ取得部５４は、オンライン教示によって作業姿勢データを取得してもよい。作業者がティーチングペンダント６４を介してロボット１０を作業姿勢になるように手動操作し、手動操作によって作業姿勢状態のロボット１０におけるエンコーダ７２ａ〜７２ｆの検出値に基づいて、作業姿勢データを取得する。
【００６８】
なお、ワークＷに対して作業するときのロボット１０の教示データ（動作プログラム）が既に存在する場合、作業姿勢データ取得部５４は、その教示データから作業姿勢データを取得してもよい。
【００６９】
計測姿勢算出部５６は、作業姿勢データ取得部５４が取得した作業姿勢データに基づいて、ポジショナ１２のマーカー２０の計測点Ｐｍの位置を計測するロボット１０の計測姿勢を算出するように構成されている。上述したように、作業姿勢データに対応する作業姿勢に類似する計測姿勢を算出する。
【００７０】
外部信号出力部５８は、ポジショナ１２に対して外部信号を出力するように構成されている。具体的には、作業テーブル１８を回転軸Ａｒを中心として回転させるための制御信号を出力する。詳細については後述する。
【００７１】
外部軸位置姿勢算出部６０は、ポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢を算出するように構成されている。詳細は後述する。
【００７２】
次に、コントローラ１６によってポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢を算出する方法の流れについて、図５を参照しながら説明する。
【００７３】
まず、図５に示すように、最初の工程（ステップＳ１）として、ロボット１０の先端のフランジ１０ｇに計測用ツール１４を取り付ける。また、ポジショナ１２の作業テーブル１８にマーカー２０を取り付ける（図１参照）。
【００７４】
次に、ステップＳ２において、作業者のティーチングペンダント６４を介する手動操作により、ロボット１０のフランジ１０ｇに取り付けられた計測用ツール１４の先端点Ｐｔを、ポジショナ１２の作業テーブル１８に取り付けられたマーカー２０の計測点Ｐｍに位置合わせする。なお、このときの位置合わせ状態の姿勢は、後のステップにおいて変更されるので、どのような姿勢であってもよい。例えば、図２（Ｂ）に示すような、関節１０ｅから先の部分が水平方向に延びる状態の姿勢であってもよい。
【００７５】
続くステップＳ３において、作業姿勢データ取得部５４が作業姿勢データを取得する。
【００７６】
ステップＳ４において、計測姿勢算出部５６が、作業姿勢データ取得部５４が取得した作業姿勢データに基づいて、マーカー２０の計測点Ｐｍの位置を算出するときの計測姿勢を算出する。具体的には、まず、上述したように、計測用ツール１４の先端点Ｐｔがマーカー２０の計測点Ｐｍに位置合わせされた状態の複数の姿勢（計測可能姿勢Ｊｉ）それぞれについて、作業姿勢データに対応する作業姿勢Ｊｓに対する数式１に示す類似度Ｄ（Ｊｉ，Ｊｓ）を算出する。そして、算出した類似度Ｄ（Ｊｉ，Ｊｓ）の値が最小の計測可能姿勢Ｊｉを計測姿勢として決定する。
【００７７】
ステップＳ５において、コントローラ１６は、ステップ４で計測姿勢算出部５６が算出した計測姿勢に、姿勢制御部５０を介して変更する。このとき、計測用ツール１４の先端点Ｐｔがマーカー２０の計測点Ｐｍに位置合わせされた状態を維持しつつ、関節１０ａ〜１０ｆの関節角度が調整されることにより、ステップ２で位置合わせしたときの姿勢が、計測姿勢に変更される。例えば、図２（Ａ）に示す計測姿勢にされる。
【００７８】
ステップＳ６において、コントローラ１６は、ステップ５で計測姿勢にされた状態のロボット１０に取り付けられている計測用ツール１４の先端点Ｐｔの位置を、先端点位置算出部５２を介して算出する。
【００７９】
ステップＳ７において、コントローラ１６は、ステップ６で算出された計測用ツール１４の先端点Ｐｔの位置に基づいて、マーカー２０の計測点Ｐｍを算出する。
【００８０】
図５に示すステップＳ２〜Ｓ７を、コントローラ１６は、異なる作業テーブル１８の姿勢毎に実行する。そのために、コントローラ１６は、ステップＳ２〜Ｓ７が終了する度に、外部信号出力部５８を介してポジショナ１２の作業テーブル１８を回転軸Ａｒを中心として所定量回転させる。そして、コントローラ１６は、例えばティーチングペンダント６４を介して、作業者に対して、計測用ツール１４の先端点Ｐｔをマーカー２０の計測点Ｐｍに位置合わせするようにアナウンスする。
【００８１】
異なる作業テーブル１８の姿勢毎にステップＳ２〜Ｓ７が実行されると、異なる複数の計測点Ｐｍの位置が算出される。計測点Ｐｍから回転軸Ａｒまでの距離は一定であって既知である（記憶部６２に記憶されている）ため、コントローラ１６の外部軸位置姿勢算出部６０は、異なる複数の計測点Ｐｍの位置に基づいて、ポジショナ１２の回転軸Ａｒの位置姿勢を算出する。
【００８２】
このような流れによって算出されたポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢は、例えば相対位置姿勢データとしてコントローラ１６の外部に出力（提供）される。例えば、オフライン教示ツールに提供される。これにより、オフライン教示ツールは、提供されたポジショナ１２の回転軸Ａｒの相対位置姿勢データに基づいて、ポジショナ１２が把持するワークＷに対してロボット１０に高精度に作業させるための教示データを作成することができる。その結果、オフライン教示ツールから教示データを受け取ったコントローラ１６は、ロボット１０に高精度な作業を実行させることができる。
【００８３】
また、ポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢を定期的に、例えば、ワークＷに対する作業を開始する前に算出し、その算出結果に基づいて、ワークＷに対する作業をロボット１０に実行させる、コントローラ１６の記憶部６２に記憶されている教示データを更新することも可能である。これにより、コントローラ１６は、記憶部６２に記憶されている教示データに基づいて、ロボット１０に高精度な作業を実行させることができる。
【００８４】
本実施の形態によれば、ポジショナ１２の回転軸Ａｒのロボット１０に対する相対的な位置姿勢を計測するときの該ロボット１０の計測姿勢が、ポジショナ１２が把持するワークＷに対して作業を実行するときの作業姿勢と類似する姿勢であるため、ロボット１０の位置計測誤差と位置決め誤差を十分に相殺することができる。その結果、ロボット１０は、ポジショナ１２が把持するワークＷに対して高精度に作業を実行することができる。
【００８５】
以上、上述の実施の形態を挙げて本発明を説明したが、本発明は上述の実施の形態に限定されない。
【００８６】
例えば、上述の実施の形態の場合、ポジショナ１２はワークＷを回転軸Ａｒを中心として回転させることによって該ワークＷの姿勢を変更するものであるが、本発明はこれに限らない。
【００８７】
例えば、ポジショナは、直動軸に沿ってワークＷを平行移動させるものであってもよい。この場合、直動軸に対して所定の位置に計測点を定義する。例えば、直動軸に沿って平行移動する作業テーブルにマーカーを取り付けることにより、計測点を定義する。
【００８８】
直動軸に沿って計測点の位置を複数回移動させ、計測点を移動させる度に該計測点の位置を、上述の実施の形態と同様に算出すれば、直動軸のロボットに対する相対的な位置姿勢を算出することができる。
【００８９】
また、上述の実施の形態の場合、作業姿勢に対する計測可能姿勢の類似度は、数式１に示す式によって算出されるが、これに限らない。数式１においては、計測可能姿勢Ｊｉの関節角度ｑｉ，ｋと作業姿勢Ｊｓの関節角度ｑｓ，ｋとの差分（特許請求の範囲に記載の「第１の値」に対応）は、全ての関節（ｋ＝１〜ｎ）において２乗されるが、これに限らない。例えば、計測用ツール１４の先端点Ｐｔの変位に大きく寄与する関節では、計測可能姿勢Ｊｉの関節角度ｑｉ，ｋと作業姿勢Ｊｓの関節角度ｑｓ，ｋとの差分を３乗してもよい。
【００９０】
さらに、上述の実施の形態の場合、ロボットの計測姿勢やポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢は、コントローラが算出しているが、これに限らない。例えば、コントローラに接続されたコンピュータが、ロボットの計測姿勢やポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を算出してもよい。
【００９１】
例えば、コンピュータは、ロボットおよびポジショナのＣＡＤデータとロボットの作業姿勢データ（作業姿勢を教示する教示データ）とを取得し、これらのデータを用いて、上述のように、計測姿勢（計測姿勢を教示する教示データ）を算出する。そして、コンピュータは、算出した教示データをコントローラに出力する。
【００９２】
コントローラは、予め作業者の手動操作によって計測用ツールの先端点がマーカーの計測点に位置合わせされている状態のロボットを、コンピュータから受け取った教示データに基づいて作業姿勢に制御する。作業姿勢に制御した後、コントローラは、計測用ツールの先端点の位置を算出し、さらに計測用ツールの先端点の位置に基づいてマーカーの計測点の位置を算出する。そして、算出した計測点の位置データをコンピュータに出力する。そして、コンピュータは、コントローラから受け取った計測点の位置データに基づいて、ポジショナの回転軸または直動軸のロボットに対する相対的な位置姿勢を算出する。
【００９３】
最後に、補足すると、上述の実施の形態の場合、図１に示すように、ロボット１０は、ねじり関節１０ａ、１０ｄ、１０ｆと曲げ関節１０ｂ、１０ｃ、１０ｅとを備えるものであるが、直動関節を備えるロボットであっても本発明は適用可能であるのは明らかである。
【００９４】
また、本発明においては、「類似」には「同一」も含まれる。すなわち、計測点Ｐｍの位置を計測するときの計測姿勢が、ワークＷに対する作業姿勢と同一の姿勢であってもよい。上述の実施の形態を例に挙げて説明すると、ポジショナ１２の回転軸Ａｒに対する、マーカー２０の計測点Ｐｍの位置とワークＷの作業開始点Ｐｗとが同一の場合、計測姿勢が作業姿勢と同一の姿勢になる。
【産業上の利用可能性】
【００９５】
本発明は、回転軸または直動軸を基準としてワークを回転させるまたは平行移動させるポジショナのロボットに対する相対的な位置姿勢を計測するものであるが、ワークが位置や姿勢が変更不可能に治具に固定されている場合、ワーク上の任意の点の位置を、ワークに対して作業を実行するロボットによって計測する場合にも適用可能である。
【符号の説明】
【００９６】
１０            ロボット
１０ａ〜１０ｆ  関節
１２            ポジショナ
Ａｒ            回転軸
Ｐｔ            基準点（先端点）
Ｐｍ            計測点
Ｗ              ワーク
【図１】
0005667437.tif 000005
【図２】
0005667437.tif 000006
【図３】
0005667437.tif 000007
【図４】
0005667437.tif 000008
【図５】
0005667437.tif 000009