(57)【要約】【課題】ロボットの特徴である高速性を失わずに作業対象物に接触するとともに接触位置検出し、エンコーダ分解能程度のサブミリ単位の高精度検出することで、高速高精度なロボットの作業座標系のキャリブレーション（校正）方法を提供する。【解決手段】弾性変形領域を持ったプローブを用いて、位置姿勢誤差発生前後において接触位置検出処理を所定回数繰り返すことで、ロボット座標に対する作業対象物の位置姿勢を算出し、位置姿勢誤差を計算し、位置誤差発生前の教示データを修正するという手順で処理する。【選択図】図１−Ｂ
2011230243.tif 000002
【特許請求の範囲】
【請求項１】
第１の教示時におけるロボットと作業対象物の相対的な位置及び姿勢を前提として与えられた、前記ロボットが行うべき作業対象物に対する作業手順を記憶する、作業手順記憶手段と、
前記ロボットに備えられた、前記ロボットと前記作業対象物との相対的な位置、及び／又は、姿勢の変化量を獲得する、位置・姿勢変化量獲得手段によって、
前記第１の教示の後に、
（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢、
（ｂ）前記ロボットの、少なくとも１つのアーム長、
（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置、
の少なくとも１つが変更された場合に、当該変更の存在に関わらず、前記作業対象物に対して同様の作業が行われるように、前記記憶された作業手順を修正する手段と、
を備え、
前記修正された作業手順が、前記位置・姿勢変化量獲得手段によって検出された、前記変更後の、前記作業対象物の位置及び姿勢をもとに得られる、ロボットを基準とした座標から作業対象物を基準とした座標への、同次変換行列を用いて、ロボットを基準とした座標での作業手順として与えられる、
ロボットの教示手順校正装置。
【請求項２】
作業対象物の位置及び姿勢を前提として与えられた、教示時における、前記ロボットが行うべき作業対象物に対する作業手順を記憶する、作業手順記憶手段と、
ロボットを基準とした作業対象物の位置及び姿勢を獲得可能な、ロボットに設置された位置・姿勢変化量獲得手段によって、第１の教示の後に、
（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢、
（ｂ）前記ロボットの、少なくとも１つのアーム長、
（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置、
の少なくとも１つが変更された場合に、前記ロボットからの、当該検出された情報を受け取る位置・姿勢変化量データ受領手段と、
前記受領された位置・姿勢変化量データを元に、前記変更の存在に関わらず、前記作業対象物に対して同様の作業が行われるように、前記記憶された作業手順を修正する手段と、
を備え、
前記修正された作業手順が、前記位置・姿勢変化量獲得手段によって検出された、前記変更後の、前記作業対象物の位置及び姿勢をもとに得られる、ロボットを基準とした座標から作業対象物を基準とした座標への、同次変換行列を用いて、ロボットを基準とした座標での作業手順として与えられる、
ロボットの教示手順校正装置。
【請求項３】
前記作業手順修正手段が、
（ａ）第１の教示時における第１の同次変換行列と、（ｂ）第２の教示時における、前記位置、及び／又は、姿勢の変化量に基づいて得られた、第２の同次変換行列と、
の差を用いて、前記作業手順を修正する、
請求項１ないし２に記載のロボットの教示手順校正装置。
【請求項４】
前記位置・姿勢変化量獲得手段が、作業対象物への接触状態を検出する接触状態検出手段を含み、当該接触状態検出手段が、前記ロボットの前記作業対象物への接近速度において、前記ロボット、及び、前記作業対象物に損傷を与えない程度の柔軟性を有する、位置・姿勢変化量獲得用接触状態検出部を有する、請求項１ないし３のいずれか１項に記載のロボットの教示手順校正装置。
【請求項５】
前記ロボットの、前記作業対象物への接触過程を時系列的に記憶する、接触過程記憶手段を更に備え、
前記作業対象物への接触過程を過去に遡って検証することによって、接触開始位置、及び／又は、接触開始時刻を得る、接触開始位置／接触開始時刻獲得手段を備える、
請求項４に記載のロボットの教示手順校正装置。
【請求項６】
前記第１の同次変換行列、及び、前記第２の同次変換行列は、
直交する二平面、もしくは互いに直交する三平面を有する作業対象物の各平面を所定回数位置検出し、検出した位置から計算されることを特徴とし、特に直交する二平面の場合には、前記直交する二平面上に位置する２つの点Ｐ１、Ｐ２と、当該平面と直交する別の平面上に位置する１つの点Ｐ３、のそれぞれについて、
【数１】
2011230243.tif 000013
（i=1,2,3:それぞれＰ１、Ｐ２、及び、Ｐ３に対応。）
に基づいて、Ｐ１、Ｐ２、及び、Ｐ３の位置を検出する手段であって、
Ｒ［ｘ１  ｙ１］、Ｒ［ｘ２  ｙ２］、Ｒ［ｘ３  ｙ３］が、それぞれ、Ｐ１、Ｐ２、及び、Ｐ３の、ロボットに基づく座標上の座標値であり、
Ｒ［ｘtcp  ｙtcp］が、ロボットに基づく座標上の前記接触検出部の先端部の位置であり、
［Ｒ  ０］、［−Ｒ  ０］、［０  Ｒ］、［０  −Ｒ］がそれぞれ、前記接触検出部の先端部の半径Ｒを用いて、前記Ｒ［ｘtcp  ｙtcp］を補正して、より正確な位置を求めるための行列である、前記手段と、
以下の、
【数２】
2011230243.tif 000014
及び、
【数３】
2011230243.tif 000015
に基づいて、
以下の、
【数４】
2011230243.tif 000016
で表される同次変換行列ＲＴＷを計算する手段、
によって得られる、
請求項４又は５に記載のロボットの教示手順校正装置。
【請求項７】
請求項１ないし６に記載のロボットの教示手順校正装置を用いて、ロボットを制御する方法であって、
第１の教示時における、前記同次変換行列、即ち、第３の同次変換行列を取得し、
第２の教示時における、前記同次変換行列、即ち、第４の同次変換行列を取得し、
前記第３の同次変換行列と、前記第４の同次変換行列の差を求め、
前記求められた同次変換行列の差を用いて、前記第１の教示時に用いた、ロボットの作業手順を修正して、第２の教示時に利用する、
ロボットの教示手順校正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、例えばロボットの教示手順校正装置および方法に関する。
【背景技術】
【０００２】
産業用ロボットを用いた組立・溶接等の生産ラインの事前レイアウト検討ではオフライン教示システムが導入されている。オフライン教示システムにおいて事前検討した教示データ（作業プログラム）を実際の生産ラインに適用するためには、オフライン教示システムと実ラインの作業対象物の配置誤差を修正するための、ロボット・作業対象物間の位置姿勢関係をキャリブレーション（校正）するという一般的な技術課題がある。
この一般的な技術課題を解決するために、実際の生産ラインにおいてロボットのツール先端を作業対象物、もしくは作業対象物を固定する治具の角に目視で合わせて位置検出を行い、検出した位置情報から作業座標系を作成する方法（例えば、特許文献１）や、作業対象物を数回タッチアップし、接触センサや、導通により電気的に接触を検出するセンサにより作業対象物の接触位置を求め、作業座標とロボット座標の位置関係を把握し修正する方法があった（例えば、特許文献２、特許文献３）。
また、組立ロボットに部品組付け位置を教示する方法として、ＣＡＤの幾何データに基づいてロボットのハンド先端位置を目標点近傍まで移動させ、作業対象物に対して組付けを行いながら接触型センサで得た位置情報に基づいて位置修正を行う方法があった（特許文献４）。
また、弾性部材を備えたタッチセンサを利用して接触位置を求め、接触位置に移動して溶接作業を開始する方法があった（特許文献５）。
図７は、前記した特許文献２の手法を説明する図である。ロボット（３０）を動作させて作業対象物（４０）上に接触し、手先効果器に装着したセンサ（３２）からロボット座標で測定した作業対象物の同一平面状に無い４点の接触位置と、これに対応するオフライン教示システムで設定された基準座標系における作業対象物の４点から、オフライン教示システムでの位置姿勢を作業プログラム上の位置姿勢に変換することが出来る。
このように、従来のロボットの作業座標系のキャリブレーション（校正）方法では、オフライン教示システムを用いて、あらかじめ設定した同一平面状に無い４点をタッチして作業座標とロボット座標の位置関係を算出し、作成した作業プログラムに対して修正するという手順がとられていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２６８４３５９号公報
【特許文献２】特開平０３−２５１３７８号公報
【特許文献３】特開平０４−３４０６０５号公報
【特許文献４】特許第３３０４２５１号公報
【特許文献５】特開２００７−０６９２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のロボットのツール先端を作業対象物、もしくは作業対象物を固定する治具の角に目視で合わせて位置検出を行い、検出した位置情報から作業座標系を作成する方法は目視位置合わせを行うため作業負荷が大きい。作業に慣れていない初心者ではキャリブレーション（校正）時間が大きくなり、精度も均一でない。
特許文献２のあらかじめ設定した同一平面状に無い４点をタッチして作業座標とロボット座標の位置関係を算出する方法は、ロボットの手先効果器に装着したセンサを接触させており、接触部は剛体であるため接触時のスピードを極低速にする必要がある（接触部を剛体としている点で特許文献３、特許文献４も同様の課題を抱えている）。また、近接スイッチや静電容量スイッチを用い、センサ情報を常時監視することによって接触した瞬間を検出し、その時点の接触部を記憶するという手法をとっているが、実際の接触では、センサで取得する情報は瞬間的な変化ではなく、一定の時間をかけて徐々に変化するため、正確な接触位置を求めることは出来なかった。
特許文献３の接触検出子をロボットの手先に設けて、作業対象物と接触検出子の接触状況を電気的に出力し、接触瞬間の接触検出子の位置データから検出対象物の位置を演算する方法は、接触検出子の接触動作は低速に限定され、また接触検出した瞬間に移動停止するためロボットの減速機に多大な負荷を与える。さらに、プラスチックや樹脂など通電しない材質に対して位置検出を行った場合には、接触検出信号が得られないため、接触検出処理としての汎用性を欠くものである。
特許文献５の弾性部材を備えたタッチセンサを利用して接触位置を求める方法は、タッチセンサはコイルスプリングを内在させたコイルスプリング伸縮方向の摺動装置と先端が端面のタッチピンで構成されているため、接触動作においてタッチピン端面と作業対象物の表面が平行になるようにロボットの姿勢は制限される。それ以外の姿勢で接触動作をさせた場合には接触位置が不正確となることや、タッチセンサに著しい損傷をもたらすことは自明である。また、接触検知方法に関して、接触検知信号を入信してから接触位置を計算する手順をとるため、接触から接触位置計算までの時間の遅延により、動作速度が速くなるにつれて、接触位置が不正確となる。さらに、位置検出した後の処理に関しても、タッチセンサで検出した位置へ装着した溶接具を移動させるという手順を取っているため、移動後の溶接具の姿勢決定方法を別途考慮する必要があり、作業教示手順の簡便さに課題がある。
従って、以上いずれの従来技術においても、オフライン教示時と、再生時の作業対象物の配置誤差を修正するために、オンライン教示時（実作業時の直前）において、人による誘導無く自動的に、しかも高速に、当該修正を行うことはできなかった。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本願発明は、次のような発明を提供する。
なお、本願出願時の明細書の記載を基礎として、特許請求の範囲の記載が補正され得ることは勿論であるが、その際に、以下の各「発明」の内容を訂正することは予定しない（以下の各「発明」は、本願明細書における開示の要点としての意味を持つ）。
【０００６】
［発明１］
第１の教示時におけるロボットと作業対象物の相対的な位置及び姿勢を前提として与えられた、前記ロボットが行うべき作業対象物に対する作業手順を記憶する、作業手順記憶手段と、
前記ロボットに備えられた、前記ロボットと前記作業対象物との相対的な位置、及び／又は、姿勢の変化量を獲得する、位置・姿勢変化量獲得手段によって、
前記第１の教示の後に、
（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢、
（ｂ）前記ロボットの、少なくとも１つのアーム長、
（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置、
の少なくとも１つが変更された場合に、当該変更の存在に関わらず、前記作業対象物に対して同様の作業が行われるように、前記記憶された作業手順を修正する手段と、
を備え、
前記修正された作業手順が、前記位置・姿勢変化量獲得手段によって得られた、前記変更後の、前記作業対象物の位置及び姿勢をもとに得られる、ロボットを基準とした座標から作業対象物を基準とした座標への、同次変換行列を用いて、ロボットを基準とした座標での作業手順として与えられる、
ロボットの教示手順校正装置。
【０００７】
このようにすることによって、ロボットと作業対象物の間の位置、及び／又は、姿勢に、何らかの原因により変化が生じた場合でも、獲得された当該変化の程度に基づいて、再生作業前に、以前に作成された作業手順を、修正することができる。
また、「前記作業手順を修正する手段が、前記位置・姿勢変化量獲得手段によって得られた、前記変更後の、前記作業対象物の位置及び姿勢をもとに得られる、ロボットを基準とした座標から作業対象物を基準とした座標への、同次変換行列を用いて、ロボットを基準とした座標での作業手順として与えられる」ように構成することによって、ロボット座標で作業を定義でき、ロボットに対する作業指示が容易となる。
「位置・姿勢変化量獲得手段」は、実施例の接触位置検出プローブ３によって検出した接触位置情報からロボットと作業対象物の相対的な位置及び姿勢を計算する手段に対応するが、これに限定されず、将来開発され得る、図８−１の通電方式、図８−２の接触センサ方式、図８−３の外乱オブザーバ方式も含まれる。（なお、図８−３のオブザーバ方式に限らず、位置、及び／又は、姿勢の変化を、システム内部の「状態」の変化と捉える、その他の「オブザーバ」や、ノイズの影響も考慮した「カルマン・フィルタ」も含まれる。）
また、図８−４に例示されるような、レーザ光線を用いたり、図８−５に例示されるような２次元的や３次元的な接触状態検出手段を用いたりするものも広く含まれる。また、
図８−４に例示されるようなレーザ光線を用いた場合は、非接触状態で、位置・姿勢を検出可能である。
図８−５に例示されるような２次元的な位置・姿勢変化量獲得手段を用いるものは、柔軟な２次元的な位置・姿勢変化量獲得手段を用いるものであり、作業対象物の所定の形状に「フィット」する状態を検知して、その検知に応じて、位置・姿勢を検出可能である。
「位置・姿勢変化量獲得手段」は、その下位概念である、「接触状態検出手段」を包含する。この「接触状態検出手段」には、例えば、図１−Ｂの接触位置検出プローブ３、図８−１の導電検出プローブ０１１、図８−２の剛体プローブ０２３、図８−３のカルマンフィルタを利用する手段、図８−５の柔軟性を有する接触状態検出手段等が含まれるが、図８−４のレーザ光を用いた検出手段は含まれない。
「作業手順記憶手段」は、実施例のステップＳ１３で教示された作業を記憶する手段（図１−Ｂのロボットコントローラ５の内部（不図示））に対応するがこれに限定されない。
「作業手順修正手段」は、実施例の［数５］から［数１０］を用いた処理に対応するがこれに限定されない。同次変換行列を用いる限り、本発明の範囲に含まれる。
「獲得」とは、計算によって得る場合も含むし、予めテーブルに記憶された値を読み出す場合も含む。
なお、「作業対象物」には、再生過程における、実際に作業を行う対象物（「被作業物」と呼ぶ。）のみならず、本発明の「位置・姿勢を検出」の目的のために、被作業物の一部に固定された物体、又は、被作業物と所定の位置・姿勢関係になることがロボットから見て既知である、本発明の「位置・姿勢を検出」の目的に利用可能な物体も含む。
また、「作業手順」とは、ロボットに時系列的に与えられる、例えば図１−Ｂのロボット１、手先効果器２に関する指示の双方を含む。
「位置・姿勢変化量獲得手段」、「作業手順記憶手段」、「作業手順修正手段」、「作業手順」については、以下同様である。つまり、以下において、以上の「位置・姿勢変化量獲得手段」、「作業手順記憶手段」、「作業手順修正手段」、「作業手順」の用語を用いる場合には、以上の各説明がそのまま妥当する。
「（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢」の変化、「（ｂ）前記ロボットの、少なくとも１つのアーム長」の変化、「（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置」の変化、の異同について説明する。「（ｂ）前記ロボットの、少なくとも１つのアーム長」の変化、「（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置」の変化の２つは、ロボット自体の構成が変化してしまった場合を意味するが、「（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢」の変化は、ロボット自体の構成は変化していないが、ロボットと作業対象物の間の相対的な位置・姿勢関係が、変化した場合が代表例である。以下同様。
本発明は、「相対的な」位置・姿勢を利用しているが、ロボット又は作業対象物のいずれかの「絶対的な」位置・姿勢が既知な場合（固定されている場合）の、当該「絶対的な」位置・姿勢を前提として、何らかの原因によって変動し得る、作業対象物又はロボットの絶対的位置・姿勢の「変化」を検出して、所望の作業を行うようにする態様も、本発明に含まれる。
本発明の「ロボット」は、本体自体は固定されて、例えば図１−Ｂのロボット１、手先効果器２を移動させることによって、作業対象物の位置等の変化に対応可能なものを含む。
【０００８】
［発明２］
作業対象物の位置及び姿勢を前提として与えられた、教示時における、前記ロボットが行うべき作業対象物に対する作業手順を記憶する、作業手順記憶手段と、
ロボットを基準とした作業対象物の位置及び姿勢を獲得可能な、ロボットに設置された位置・姿勢変化量獲得手段によって、第１の教示の後に、
（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢、
（ｂ）前記ロボットの、少なくとも１つのアーム長、
（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置、
の少なくとも１つが変更された場合に、前記ロボットからの、当該検出された情報を受け取る位置・姿勢変化量獲得データ受領手段と、
前記受領された位置・姿勢変化量データを元に、前記変更の存在に関わらず、前記作業対象物に対して同様の作業が行われるように、前記記憶された作業手順を修正する手段と、
を備え、
前記作業手順を修正する手段が、前記位置・姿勢変化量獲得手段によって検出された、前記変更後の、前記作業対象物の位置及び姿勢をもとに得られる、ロボットを基準とした座標から作業対象物を基準とした座標への、同次変換行列を用いて、ロボットを基準とした座標での作業手順として与えられる、
ロボットの教示手順校正装置。
【０００９】
このように構成することによって、ロボット本体から離れた位置に、位置・姿勢変化量獲得手段からのデータを受け取る「ロボットの教示手順校正装置」を設置することが可能となる。
このように構成することによって、ロボットと制御系を空間的に隔離でき、保守等が容易になる。
「受領」とは、リアルタイムに通信によって受信する場合や、データが取り外し可能記憶媒体に記憶されている場合、当該記憶媒体を、教示手順校正装置に挿入して、制御を行うような態様も含む。また、「位置・姿勢変化量データ受領」とは、実際の「位置・姿勢」自体を受領する場合も、以前の検出時点からの差分値を受領する場合等も含む。
【００１０】
［発明２’］  ロボットに設置され、ロボットを基準とした、作業対象物の位置及び姿勢を獲得可能な位置・姿勢変化量獲得手段と、
前記ロボットを制御する教示手順校正装置を備え、
前記教示手順校正装置が、
前記位置・姿勢変化量獲得手段からのデータを受け取る、位置・姿勢変化量データ受領手段と、
作業対象物の位置及び姿勢を前提として与えられた、教示時における前記ロボットが行うべき作業対象物に対する作業手順を記憶する、作業手順記憶手段と、
前記位置・姿勢変化量獲得手段によって、第１の教示の後に、
（ａ）前記ロボットと作業対象物の相対的な位置、及び／又は、姿勢、
（ｂ）前記ロボットの、少なくとも１つのアーム長、
（ｃ）前記ロボットの軸を駆動するモータと当該軸との連結関係の変更による駆動モータにおける機械的回転運動の原点位置、
の少なくとも１つが変更された場合に、前記ロボットからの、当該検出された情報を受け取る位置・姿勢変化量データ受領手段と、
前記受領された位置・姿勢変化量データを元に、前記変更の存在に関わらず、前記作業対象物に対して同様の作業が行われるように、前記記憶された作業手順を修正する手段と、
を備え、
前記作業手順を修正する手段が、前記位置・姿勢変化量獲得手段によって検出された、前記変更後の、前記作業対象物の位置及び姿勢をもとに得られる、ロボットを基準とした座標から作業対象物を基準とした座標への、同次変換行列を用いて、ロボットを基準とした座標での作業手順として与えられる、
ロボットの教示手順校正装置。
【００１１】
この発明は、上記発明１又は２における、「ロボット制御システム」が、ロボットと一体的に存在する態様である。
このように構成することによって、ロボットと制御系が一体化され、制御用の通信ラインや、通信回線が不要となる。
本願の審査過程、又は、特許後の訂正請求（訂正審判）において、本願請求項に係る発明の一部又は全てを、本発明のように、「ロボット制御システム」が、ロボットと一体的に存在する態様に修正する可能性を留保する。
【００１２】
［発明３］
前記作業手順修正手段が、
（ａ）第１の教示時における第１の同次変換行列と、（ｂ）第２の教示時における、前記位置、及び／又は、姿勢の変化量に基づいて得られた、第２の同次変換行列と、
の差を用いて、前記作業手順を修正する、
発明１ないし２’に記載のロボットの教示手順校正装置。
【００１３】
このように、同次変換行列の差を用いて、容易に作業手順を修正することができる。
【００１４】
［発明４］
前記位置・姿勢変化量獲得手段が、作業対象物への接触状態を検出する接触状態検出手段を含み、当該接触状態検出手段が、前記ロボットの前記作業対象物への接近速度において、前記ロボット、及び、前記作業対象物に損傷を与えない程度の柔軟性を有する、位置・姿勢変化量獲得用接触状態検出部を有する、発明１ないし３に記載のロボットの教示手順校正装置。
【００１５】
このように構成することによって、従来技術に比して、高速で、作業対象物に接近することが可能となる。
【００１６】
［発明５］
前記ロボットの、前記作業対象物への接触過程を時系列的に記憶する、接触過程記憶手段を更に備え、
前記作業対象物への接触過程を過去に遡って検証することによって、接触開始位置、及び／又は、接触開始時刻を得る、接触開始位置／接触開始時刻獲得手段を備える、
発明４に記載のロボットの教示手順校正装置。
【００１７】
このように構成することによって、接触開始位置、及び／又は、接触開始時刻を正確に把握できる。
【００１８】
［発明６］
前記第１の同次変換行列、及び、前記第２の同次変換行列は、
直交する二平面、もしくは互いに直交する三平面を有する作業対象物の各平面を所定回数位置検出し、検出した位置から計算されることを特徴とし、特に直交する二平面の場合には、前記直交する二平面上に位置する２つの点Ｐ１、Ｐ２と、当該平面と直交する別の平面上に位置する１つの点Ｐ３、のそれぞれについて、
【数１】
2011230243.tif 000003
（i=1,2,3:それぞれＰ１、Ｐ２、及び、Ｐ３に対応。）
に基づいて、Ｐ１、Ｐ２、及び、Ｐ３の位置を検出する手段であって、
Ｒ［ｘ１  ｙ１］、Ｒ［ｘ２  ｙ２］、Ｒ［ｘ３  ｙ３］が、それぞれ、Ｐ１、Ｐ２、及び、Ｐ３の、ロボットに基づく座標上の座標値であり、
Ｒ［ｘtcp  ｙtcp］が、ロボットに基づく座標上の前記接触検出部の先端部の位置であり、
［Ｒ  ０］、［−Ｒ  ０］、［０  Ｒ］、［０  −Ｒ］がそれぞれ、前記接触検出部の先端部の半径Ｒを用いて、前記Ｒ［ｘtcp  ｙtcp］を補正して、より正確な位置を求めるための行列である、前記手段と、
以下の、
【数２】
2011230243.tif 000004
及び、
【数３】
2011230243.tif 000005
に基づいて、
以下の、
【数４】
2011230243.tif 000006
で表される同次変換行列ＲＴＷを計算する手段、
によって得られる、
発明４又は５に記載のロボットの教示手順校正装置。
【００１９】
このように、作業対象物の形状を一定のものにすることで、画一的に作業対象物の位置及び姿勢を得ることができる。この「一定の形状」は，本発明では、矩形形状であるが、本発明の上位概念発明では、矩形に限定されず、例えば三角形や円形等の任意の（平面、立体）形状が採用可能であり、本願の審査過程又は特許後の訂正請求（訂正審判）において、本発明の上位概念に対応する請求項にそのような発明を含める可能性を留保する。
なお、本発明では「鉛直方向から見た作業対象物」を対象としているが、ロボットが一意的に認識可能であれば、ロボットから見て「所定の方向」の「作業対象物」の特定の形状を用いることも可能である。そのような発明の態様は、本発明より上位概念の発明に含まれるし、審査過程又は特許後の訂正請求（訂正審判）で、そのような発明を補正によって、特許請求の範囲に含める可能性も留保する。
【００２０】
［発明７］
発明１ないし６に記載のロボットの教示手順校正装置を用いて、ロボットを制御する方法であって、
第１の教示時における、前記同次変換行列、即ち、第３の同次変換行列を取得し、
第２の教示時における、前記同次変換行列、即ち、第４の同次変換行列を取得し、
前記第３の同次変換行列と、前記第４の同次変換行列の差を求め、
前記求められた同次変換行列の差を用いて、前記第１の教示時に用いた、ロボットの作業手順を修正して、第２の教示時に利用する、
ロボットの教示手順校正方法。
【００２１】
このようにすることによって、第１の教示に引き続いて、第２の教示が行われるよう場合に、直前の教示時の作業手順を容易に修正して、妥当な第２の教示データを求めることができる。
ここで、「第１の」、「第２の」とは、「最初の」、「２番目の」という意味に限定されるものではなく、任意のある時点の教示と、それに後続する「次の」教示過程の、という意味である。つまり、教示→第１の再生→第２の再生→・・・、というように、複数の再生作業が連続する場合、１つ前における再生（当該時点での相対的位置・姿勢を前提として与えられていた）を、今回の再生時点における相対的位置・姿勢と、前回の再生時の相対的位置・姿勢との「差」を元に修正することによって、連続的に再生作業を行うことが可能となる。
【００２２】
以下、本明細書で用いられる用語の意義について説明する。
・ロボット→人の代わりに何等かの作業を行う装置。本発明では、主に、ある程度自律的に連続した自動作業を行う、産業用ロボットが代表例だが、これに限定されない。将来開発される「ロボット（人の代わりに何等かの作業を行う装置）」であって、本願特許請求の範囲の技術的範囲に含まれる発明を利用可能な全ての「ロボット」が含まれる。
・レイアウト検討→産業用ロボットを用いた組立・溶接等の生産ラインの作業手順の検討のこと。
・教示→ロボットに作業を行わせるためにその作業を実現する動作を何らかの方法で教え込むことである。
・再生→ロボットが、記憶した情報によって指示された作業・動作を実行すること（playback）。
・教示データ（作業プログラム）→ロボットへの作業の教示に用いるデータ、及び／又は、コンピュータプログラムである。
・オンライン教示→ロボットが作業を行う環境にて、教示作業者が実際にロボットを動作させながら教示を行うこと。
・オフライン教示→オンライン教示と対の概念。実際のロボットを用いず、コンピュータ上のシミュレーションなどによって教示を行うこと。
・実ライン→ロボットによって作業が行われる一連の工程全体を意味する。
・生産ライン→実ラインと同義。ロボットによって作業が行われる一連の工程全体を意味する。
・ロボットのツール→ロボットの手先に取り付けられ、作業対象物に対して何らからの作業をするもの。物を掴むハンド（グリッパ）や、バリ取りを行うグラインダなど、具体的な構成は用途によって様々存在する。
・作業対象物→ロボットによって作業を行う対象物。ロボットによって、把持、運搬、溶接等が行われる対象物。
・治具→治具（jig）は、加工や組立ての際、部品や工具の作業位置を指示・誘導するために用いる器具の総称。
・位置検出→ロボットと、既知である空間上に位置に存在する物体との位置関係を測定・計算等することによって、ロボットが、現実に空間内のどの位置に存在するかを判断すること。
・作業座標系→ロボットのエンドエフェクタの先（手先部）に固定された直交座標系であり、ロボットの手先位置姿勢を変化させる際の基準として使う座標系である。作業座標系の軸方向は、エンドエフェクタの形状に合わせて、作業者が任意に決定する。（エンドエフェクタとは、ロボットの手先に取り付けられ、作業対象物に対して何らからの作業をするもの。物を掴むハンド（グリッパ）や、バリ取りを行うグラインダなど、具体的な構成は用途によって様々存在する。）
・タッチアップ→接触すること。
・ロボット座標系→ロボット本体に固定された直交座標系であり、ロボットを動作させる際の基準として使う座標系である。このロボット座標系は、通常ロボットの前後方向にＸ軸、左右方向にＹ軸、上下方向にＺ軸をとる。
・組付け→部品等を装置に据え付けること。組み立てと同義。
・タッチセンサ→接触を検出するセンサ。
・キャリブレーション（校正）→所定の位置・姿勢に移動せよ、というロボットに対する指令に係る当該位置・姿勢と、実際にロボットが移動した位置・姿勢が一致するよう、設計時のロボット座標系と実際のロボット座標系との間のズレやロボットの機械的な誤差を同定すること。
・作業プログラム→ロボットに対する指令（取るべき位置や姿勢を指示するもの）。時間の進展に従って、順次所定の位置や姿勢を取るように、シーケンシャルな指令となる場合が多い。
・接触安定→制御の不完全性等による手先効果器の振動等によって、手先効果器と作業対象物との接触が、不安定になることが無い状態のこと。
・タッチピン→被接触物と接触する棒状物。
・端面→平坦な面。
・（接触検知信号を）入信→位置検出を行う測定部に信号が入ってくること。
・パレタイジング→パレットなどの上に、物を一定の規則にしたがって並べることを
いう。ここで、パレットとは、当該並べられる物を置くために特に適した形状を持つ板状の土台、基盤、等を意味する。
・同次変換行列→座標系Σ２からΣ１に変換するための変換行列。例えば、上記ロボット座標系の座標値を表す行列に、この同次変換行列を乗算すると、上記作業座標系上の座標値を表す行列が得られる。
・オンライン作業→ロボットが、記憶した情報によって指示された作業・動作を実行する再生（playback）作業のこと。オフライン作業と対の概念。
・定盤（じょうばん）→金属加工の台。たたき定盤。
・アプローチ→実施例レベルでは、ロボット１や手先効果器２を、作業対象物８へ接近させること。上位概念的には、或る物を他の物に接近させること。
・順変換→順運動学とも呼ぶ。ロボット制御の場合は各軸を駆動するモータにエンコーダが設けられており、エンコーダで測定した各軸の位置（回転角度）と、ロボットの各リンクの長さ（既知）とからロボットの手先の位置・姿勢を求めることができる。このロボットの手先の位置・姿勢を求めることを順運動学（順変換）と言う。
・教示ペンダント（操作ペンダント）→ロボット教示手順校正装置と有線または無線で接続され、作業者が把持して操作する画面と複数のボタンを備えた装置。ロボットに所定の作業の動作を教示（ティーチング）したりロボットの状態を把握したり、教示した作業のスタート、一時停止、非常停止等を指令したりするのに利用する。ティーチングボックス、ティーチングペンダント、プログラミングペンダント等とも呼称する。
・手先効果器→「エンドエフェクタ」とも呼ぶ。ロボットの手先に取り付けられ、作業対象物に対して何らからの作業をするもの。物を掴むハンド（グリッパ）や、バリ取りを行うグラインダなど、具体的な構成は用途によって様々存在する。
・Ａ及び／又はＢ→Ａ及びＢの少なくとも一方の意味。つまり、Ａのみ、Ｂのみ、又は、Ａ及びＢの双方、のいずれか、の３つの態様を全て含む。
・外乱オブザーバ→所定のシステムへの入力信号値、所定のシステムからの出力信号値から、システム内部の状態を推定する手法又は装置のこと。図８−3の例では、例えば、「上位からの位置指令」、「トルク指令」、「位置ＦＢ（フィードバック）」という、システムの外から把握できる物理量から、システム内部（例えば「エンコーダ」）に加わった外乱としての、システム外の物体との接触状態を推定する手法又は装置を指す。
・カルマンフィルタ→外乱オブザーバでは、ノイズの影響を考慮できないが、ノイズの影響も更に考慮して、所定のシステムへの入力信号値、所定のシステムからの出力信号値から、システム内部の状態を推定する手法又は装置のこと。
・相対的：→「絶対的」と対となる概念。例えば「相対的位置が把握されている」というときは、例えば、ロボットから見た作業対象物までの距離・方向が、ロボットによって把握されていることを意味する。この場合、外部の人間から見た、作業対象物の絶対的な位置（例えば人間が設定したＸＹＺ座標上での座標値）を、ロボットが知らない場合であっても、「相対的位置が把握されている」といえる。
・備考：以上の各「発明」の説明及び用語の解説は、本願明細書のみに妥当するものであり、類似発明について同一発明者又は同一出願人によって、同日又は別の日に出願される特許出願に係る明細書にも同様に適用可能であるとは限らない。
【発明の効果】
【００２３】
本発明の実施例により、例えば、ロボットの特徴である高速性を失うことなく、速度や姿勢に依存せずに作業対象物に接触するとともに接触位置検出し、エンコーダ分解能程度のサブミリ単位の高精度検出することで、高速高精度なロボットの作業座標系のキャリブレーション（校正）方法を提供することができる。
【図面の簡単な説明】
【００２４】
【図１−Ａ】本発明の実施例の概念の説明図
【図１−Ｂ】本発明の実施例の技術を適用するキャリブレーション装置の構成図
【図２】本発明の実施例１の処理手順を示すフローチャート
【図３】本発明の実施例の説明図
【図４】本発明の実施例の説明図
【図５】本発明の実施例の説明図
【図６】本発明の実施例２の処理手順を示すフローチャート
【図７】従来技術の説明図
【図８−１】本発明の実施例で使用可能な作業対象物の相対的な位置・姿勢の検出方法の例
【図８−２】本発明の実施例で使用可能な作業対象物の相対的な位置・姿勢の検出方法の例
【図８−３】本発明の実施例で使用可能な作業対象物の相対的な位置・姿勢の検出方法の例
【図８−４】本発明の実施例で使用可能な作業対象物の相対的な位置・姿勢の検出方法の例
【図８−５】本発明の実施例で使用可能な作業対象物の相対的な位置・姿勢の検出方法の例
【発明を実施するための形態】
【００２５】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
まず、本発明の各実施例で用いられる基本的概念について、図１−Ａを参照して解説する。
以下の説明は、あくまで参考として、本願発明の理解を容易にするための「概念」の説明であって、以下の説明によって、本願発明の技術的範囲又は発明の要旨が限定されるべきではない。
【００２６】
図１−Ａでは、まず、教示過程（Ｋ：上半分）で、ロボット設置面に固定されたロボットに対して、作業対象物に対して行うべき作業（溶接、切断等）の手順（時系列的に、ロボットのエンドエフェクタをどこに移動させ、どのような作業を行うか、等の一連の指示）を、ロボット（の教示手順校正装置）に教示する（ここでは説明の簡略化のため二次元の図で説明するが、容易に三次元に拡張できる）。
一般的に、このような教示は、ロボットを導入する生産ライン構築の初期段階において、導入したロボット実機や生産ラインのシミュレーション環境に対して行われる。
しかし、このような教示を行った後、当該ロボットから、仕様が若干修正されたロボットに対して、同様の作業を行わせる場合がある。ここで、「仕様が若干修正」とは、例えば、ロボットのアームの長さ（Ｌ１）を若干変更したり（図１−ＡのＬ１→Ｌ１’）、駆動モータ（Ｍ１）の駆動形態の変更（図１−ＡのＭ１→Ｍ１’）により駆動モータにおける機械的回転運動の原点位置を変更したりする場合等をいう。また、作業対象物（Ｗ１）の位置・姿勢も、最初の教示時（Ｋ）からずれる可能性もある（図１−ＡのＷ１→Ｗ1’により「ずれ」Ｄisが発生する）。
本発明の実施例では、導入したロボット実機や生産ラインのシミュレーション環境に対して教示した最初の作業内容を、当該ロボット実機や生産ラインのシミュレーション環境以外の類似ロボットで、しかも、最初の作業環境とは異なった環境（作業対象物の「ずれ」等）において利用（流用）して、最初の教示手順の修正を行うことに関する。実際には、このような修正された教示手順を用いて、実際の作業（再生）が行われるが、本発明の実施例では、この再生段階については、詳述しない。
図１−Ａにおいて、まず、教示過程（Ｋ：上半分）では、ロボットに接続されているプローブにより、作業対象物表面の位置を所定回数検出する。これをもとに、作業対象物の位置・姿勢を表す同次変換行列Ｒ１ＴＷ１を求める。
教示手順の修正過程（Ｋ’：下半分）では、ロボットに対する作業対象物の（相対的）位置・姿勢がずれている。
そこで、まず、ロボットに接続されているプローブにより、作業対象物表面の位置を所定回数検出する。これをもとに、作業対象物がずれた状態での、作業対象物の位置・姿勢を表す同次変換行列Ｒ１Ｔ’Ｗ１を求める。次に、Ｒ１ＴＷ１−Ｒ１Ｔ’Ｗ１に基づいて、上記教示されている作業を修正する。
実際には、この当該修正済みの教示情報を用いて、再生作業を実行するが、上述のように、この段階については詳述しない。
【実施例１】
【００２７】
図１−Ｂは本発明の実施例の技術を説明するロボットと作業対象物の位置姿勢のキャリブレーション（校正）装置の構成図である。実施例１では、上述の導入したロボット実機や生産ラインのシミュレーション環境に対する教示を行った後、「仕様」は変更されず、作業対象物（Ｗ）の位置・姿勢が、最初の教示時（Ｋ）からずれる場合を想定する。
図１−Ｂにおいて、ロボット１は、少なくとも一つ以上のサーボモータ及びエンコーダにより駆動される。ロボット１の先端部には、手先効果器２が接続される。手先効果器２としては、例えば、溶接トーチ、もしくは溶接ガン、作業用グリッパなど（図１−Ｂにはグリッパを記載）が含まれるがこれに限定されない。手先効果器２には、接触位置検出プローブ３が接続されている。この接触位置検出プローブ３の取り付け位置や延在方向、その形態は、図１−Ｂに記載のものに限定されない。接触位置検出プローブ３は、取外し可能で、プローブ長手方向、または長手方向以外の２方向の曲げ、いずれか３方向に対して弾性変形領域を持つ。そして、位置検出動作に伴い作業対象物へ接触する際に手先効果器２もしくはロボット１自身と作業対象物８との干渉がない程度の長さを持ち、接触方向に制限を与えないために先端は球状である。（この「干渉」とは、ロボット１や手先効果器２が、作業対象物８に対して作業を行う際に、接触位置検出プローブ３が邪魔になる、という意味である）
また、接触位置検出プローブ３は、ロボットの作業性を損なわないように、プローブが必要な時のみ突き出す収納式でも良い。
【００２８】
ロボット１の先端部には、１方向以上の力を検出できる外力検出器４が設置されている。外力検出器４としては、接触状態を導通により電気的に検出するセンサ、接触センサ、薄型圧力センサ、トルク指令値と負荷トルクとの差で表される外乱トルクを用いた力検出器でも代用できる（本実施例では力センサを例にして説明する）。
ロボットコントローラ５は、ロボット１、手先効果器２の制御を行うと同時に、ロボット１に内在するエンコーダの位置情報や外力検出器４からの検出データを受信し、必要なデータ処理を行うものである。ロボットコントローラ５の内部には通常のロボットの位置制御を行う位置指令生成部（５１）、力センサ等の値を監視し接触判断を行う外力値監視部（５２）、エンコーダの値とプローブの設計寸法と取り付け位置と位置検出動作のアプローチ方向からプローブ先端位置を計算するプローブ先端位置計算部（５３）、位置検出動作中の力センサの値とプローブ先端位置を記録する記録装置（５４）、記録したプローブ先端位置から接触位置を計算する接触位置検出部（５５）、ロボット・作業対象物間の位置姿勢誤差発生前後のロボット座標系に対する作業対象物の位置姿勢から位置姿勢誤差の修正量を算出する位置姿勢誤差計算部（５６）が含まれる（なお、本明細書中では、場合によって、ロボット１と、手先効果器２、接触位置検出プローブ３、外力検出器４を区別する場合もあり、「ロボット」が、手先効果器２、接触位置検出プローブ３、外力検出器４を含むように説明する場合があるが、それぞれの場合の区分けは、当業者に容易に理解可能である。）
【００２９】
プローブ３の設計寸法と取り付け位置が正確に分からない場合は、別途キャリブレーション（校正）しても良く例えば次のような方法がある。ロボット座標系に対する作業対象物８の位置、及び、姿勢、並びに、ロボット１の手先位置、及び、姿勢が既知の条件下で、接触位置検出プローブ３を用いて、作業対象物８に接触し、接触時点での、ロボット１の手先位置・姿勢と、作業対象物８の位置・姿勢の「差（ベクトル）」を、接触位置検出プローブ３の設計寸法と取り付け位置とするのである。
オフライン教示システム６は、ロボットの作業教示を含む生産ラインのシミュレーション環境を備えた外部パソコンである。オフライン教示システム６において作成した教示データやロボット座標系に対する作業対象物の位置姿勢等のデータは外部メディアや通信ケーブルによりロボットコントローラに転送可能となる。
操作ペンダント７はロボットの作業教示、および再生、接触動作実行や力センサ値の検出閾値、プローブ寸法の設定変更に使用する。
【００３０】
図２は本発明の実施例の処理手順を示すフローチャートである。この図を用いて本発明の方法を順を追って説明する。実施例は図３を用いて２次元で記述するが、容易に３次元に拡張可能である。
まず、オフライン作業について説明する。ステップＳ１１において、オフライン教示システムで作業教示をする。つまり、オフライン教示システム６に備えられたシミュレーション環境におけるＧＵＩなどのロボット操作ツール（不図示）を教示作業者が操作しながら、シミュレーション環境内のロボット１、手先効果器２等が時系列的に為すべき、作業対象物の溶接、パレタイジング、ハンドリング、組立などの手順、手順の各段階におけるロボット１、手先効果器２等の位置・姿勢等を、オフライン教示システム６内のメモリに記憶させる。
ステップＳ１２では、オフライン教示システムにおいてロボット座標系における作業対象物８の位置姿勢情報を取得する。オフライン教示システム６に備えられたシミュレーション環境において、配置した作業対象物を含む全ての物体位置・寸法は数値データとして得ることが出来る。なお、作業対象物８の位置姿勢情報はロボット座標上での値としているが、実ラインで得ることの出来るものであれば生産ライン内のどこを基準としても良い（ロボット１との対応関係が把握可能である限り、ロボット１から離れた場所を座標系の原点としても良い）。本実施例のロボット座標系は、ロボットを設置する側のリンク端を原点とし、右手系の座標をとるものである。ロボットが複数存在する場合には、ΣＲ１、ΣＲ２、…のように複数のロボット座標系を設定する必要がある。また、複数の作業対象物が存在する場合には、ΣＷ１、ΣＷ２、…のように複数の作業座標系を設定する必要がある。ロボット座標系ΣＲ１に対する作業座対象物の位置姿勢情報とは、ΣＲ１からΣＷ１、ΣＷ２、…の同次変換行列Ｒ１ＴＷ１、Ｒ１ＴＷ２、…を取得することを意味する（図３）。
【００３１】
ステップＳ１３では、後のオンライン作業で使用する作業対象物の位置検出動作の教示を行う。つまり、このオフライン作業において、後のオンライン作業で接触位置検出プローブ３をどのように操作して、作業対象物の位置検出動作を行うべきかを、オフライン教示システム６に備えられたシミュレーション環境におけるＧＵＩなどのロボット操作ツールを用いて、予め教示しておく。教示された内容は、オフライン教示システム６のメモリ内に記憶される。
この位置検出動作の教示（ステップＳ１３）では、ロボット１や手先効果器２と作業対象物８の干渉が無いように、プローブ３先端を作業対象物８、もしくは作業対象物８を支える治具、定盤に押し込む位置を教示する（接触位置から押し込み位置までの距離はプローブの柔軟性により吸収される）。なお、本実施例では、この位置は、エンコーダで測定した各軸の位置（回転角度）として得られる（後述のステップＳ１６において、この、各軸の回転角度とロボットの各リンクの長さ（既知）とプローブ３の設計寸法と取り付け位置（既知）と位置検出動作のアプローチ方向から、順運動学計算によってロボットの手先の位置・姿勢を求める）。位置検出は図３に示すように、１つの作業対象物８に対して３回（位置Ｐ１、Ｐ２、Ｐ３に対してそれぞれ１回ずつ）繰り返し、当該位置検出動作により検出位置Ｐ１、Ｐ２、Ｐ３を得る。Ｐ１、Ｐ２は同一直線上にある点で、Ｐ３はＰ１、Ｐ２と直交する線上の点である（３次元的な位置姿勢を得る場合では、最低５点の位置を検出する必要があり、内３点は同一平面上の点で、他２点はそれぞれが直交する平面上の点とする）。検出の順番の制約は特に無く、例えば、Ｐ３、Ｐ１、Ｐ２としても良い。また、片面のみ２点を位置検出する必要が有るが、どちらの面でも良い。
【００３２】
ステップＳ１４では、オフライン教示データと、作業対象物の位置姿勢情報Ｒ１ＴＷ１、…を、ロボットコントローラ５に転送する。
ＲＴＷは、一般的に、ロボット座標上での作業対象物の位置姿勢を表す同次変換行列である。
Ｒ１ＴＷ１のＲ１は、第１のロボット座標系を意味し、Ｗ１は第１の作業座標系を示す。
【００３３】
次に、オンライン作業について説明する。
ステップＳ１５では、ステップＳ１３で教示した位置検出動作を実際の生産ラインにおいて再生して（ロボット１により実行させて）、下記［数８］に基づいて検出位置Ｐ１  Ｒ１ [ｘ１，ｙ１]、Ｐ２  Ｒ１ [ｘ２，ｙ２]、Ｐ３  Ｒ１ [ｘ３，ｙ３]を得、［数５］〜［数７］によりロボット座標上での作業対象物の位置姿勢を表す同次変換行列Ｒ１Ｔ’Ｗ１を計算する（ロボット、および作業対象物が複数ある場合には、同様の手法でＲ１Ｔ’Ｗ２、…、Ｒ２Ｔ’Ｗ１ 、Ｒ２Ｔ’Ｗ２…を求める）。
なお、Ｐ１  Ｒ１ [ｘ１，ｙ１]は、点Ｐ１のロボット座標系Ｒ１のＸ軸，Ｙ軸の座標値を意味する。また、Ｒ１Ｔ’Ｗ１における、Ｔ’は、前述の、Ｒ１ＴＷ１とはＴに「’」が追加されている点で異なるが、Ｔは、オフライン教示段階で得られた同次変換行列を意味し、Ｔ’は、オンライン作業中に得られた同次変換行列を意味する。両者が異なる可能性がある（往々にして異なる）理由は、例えば、オフライン教示時の作業対象物８の位置・姿勢もしくはロボットの据付位置・姿勢と、オンライン作業段階におけるそれが、往々にしてずれてしまうためや、ロボットの原点位置における各軸モータの角度、ロボットのリンク長さ、リンク間距離などの幾何学的パラメータがオフライン教示システムと実機で異なるためである。作業対象物８の位置・姿勢もしくはロボットの据付位置・姿勢がずれてしまうと、当該作業対象物８の位置において作業を行う場合の作業座標系の配置関係が、ロボット座標系からずれてしまい、ロボット座標系から作業座標系に変換するための変換行列である、同次変換行列も変化してしまうのである。
【００３４】
【数５】
2011230243.tif 000007
ただし、ｘ０，ｙ０は直線１、２の交点で［数６］より求める（直線１、２は、それぞれ作業対象物８の直交する二平面上に存在する直線である）。
【数６】
2011230243.tif 000008
ただし、直線１はｙ＝ａ１ｘ＋ｂ１、直線２はｙ＝ａ２ｘ＋ｂ２であり、ａ１，ｂ１，ａ２，ｂ２は［数７］より求める。
【数７】
2011230243.tif 000009
【数８】
2011230243.tif 000010
［数８］によれば、点Ｐ１に対してのｘ１、ｙ１が求められるが、点Ｐ２に対するｘ２,ｙ２、及び、点Ｐ３に対するｘ３,ｙ３も同様にして求められる。
【００３５】
プローブ先端位置はプローブ球の中心位置ＰＴＣＰ Ｒ１ [ｘｔｃｐ  ｙｔｃｐ]にプローブ半径Ｒを加算した位置であり、［数８］に示すように位置検出動作におけるプローブのアプローチ方向（４方向）に応じて求める。［数８］におけるＸ軸、Ｙ軸は、それぞれ、図３のＸ軸、Ｙ軸を意味する。
また、ＰＴＣＰ Ｒ１ [ｘｔｃｐ  ｙｔｃｐ]は、点ＰＴＣＰの、第１のロボット座標系における座標値（ｘｔｃｐ,  ｙｔｃｐ）を意味する。
「ｔｃｐ」は、Tool Center Point（工具中心点）を意味する。ここで言う工具とはプローブとなる。
【００３６】
［数８］はロボット座標系を基準とした動作でのアプローチ方向の場合分けで、当該場合分け以外の方向から動作した場合には、移動量の多い方向をアプローチ方向として計算しても精度に影響は無い。
例えば、アプローチ動作としてＸ軸負から正方向へ２００ｍｍ、Ｙ軸正から負方向へ１０ｍｍ動作した場合（I）のＸ軸負から正方向へアプローチする場合として計算する。
プローブ球の中心位置ＰＴＣＰ Ｒ１ [ｘｔｃｐ  ｙｔｃｐ] はロボットのエンコーダ値とプローブの設計寸法と取り付け位置から求める。ただし、プローブ半径Ｒが数百ミクロンであれば、プローブ球の中心位置をプローブ先端位置としても良い。
プローブ先端位置（プローブ球表面と作業対象物との物理的な接触点位置）とプローブ球中心位置を分けて、アプローチ方向に応じてプローブ球中心位置からプローブ先端位置を計算するが、それ以外の場合には特に使い分けをしない（プローブ先端位置はプローブ球中心位置と同じ値と考える）。
検出動作の間、外力監視部５２において、力センサの値が検出閾値を超えているかを一定の周期で監視する処理と、記録装置にプローブ先端位置と力センサ値を記録する処理を同時に行う。
外力監視部５２において、力センサの値が検出閾値を超えた場合には接触を検出したと判断し、接触位置検出信号が位置指令生成部５１へ送信され、同位置指令生成部の指令によりロボット１を減速停止させ、アプローチ開始地点へ撤退する動作を行う。
記録装置５４に記録した、（ａ）動作中の力センサで得られた検出力と、（ｂ）プローブ先端位置、から接触時の力センサ値の立上り時点を求め、立上り時点のプローブ位置を接触位置として算出する（図４）。つまり、過去に遡って、実際に接触が起こった時点及び位置を確定する。
また記録処理５４はメモリ（不図示）に一定のバッファ領域を設け、記録時に随時上書きする。
ステップＳ１６では、オフライン教示システムと実際の生産ラインのロボット座標に対する作業対象物の位置姿勢誤差を［数９］を用いて計算する。
【数９】
2011230243.tif 000011
ステップＳ１７では、位置姿勢誤差ΔＲ１ＴＷ１を用いてロボットの教示位置の修正を行う。つまり、ステップＳ１１の作業教示位置に修正量を左側から乗算することで作業プログラムの教示位置データの修正を行う。
【００３７】
即ち、ステップＳ１３における、各軸教示位置を、まず順変換して、ロボット座標系における手先教示位置Ｐｋ  Ｒ１ [ｘｋ，ｙｋ，ｒｚｋ]を得、[数１０]のようにＰｋの左側からΔＲ１ＴＷ１を掛けることで、修正した手先位置Ｐｓ  Ｒ１ [ｘｓ，ｙｓ，ｒｚｓ]を得るか、もしくは位置姿勢誤差ΔＲ１ＴＷ１を逆変換して各軸の角度を計算し、ステップＳ１３における各軸教示位置に加算するのである。
【数１０】
2011230243.tif 000012
なお、手先教示位置Ｐｋ  Ｒ１ [ｘｋ，ｙｋ，ｒｚｋ]は、ロボット座標系において、そのＸ座標がｘｋであり、Ｙ座標がｙｋであり、そのようなＸＹ座標で表される点を、Ｚ座標軸周りにｒｚｋ（rad）だけ回転させた位置を示す。
【００３８】
ロボット、および作業対象物が複数存在する場合には、図５のように、作業プログラムにおいて、対象となるロボット、および作業対象物に対する作業区間のみ教示位置データの修正を行えば良い。
例えば、ロボット１の作業対象物１に対する作業教示であればΔＲ１ＴＷ１を用い、ロボット２の作業対象物１に対する作業教示であればΔＲ２ＴＷ１を用い、という要領で、対象となるロボット、および作業対象物に対する作業区間のみ教示位置データの修正を行う。なお、図５で、ＳＦＴは、シフト命令を表し、ロボット手先位置を教示位置データからどれだけずらすか（位置姿勢誤差ΔＲｍＴＷｎ）を示す（ｍはロボットの番号、ｎは作業対象物の番号）。
ＭＯＶは移動命令であり、ＰＯＳ＿ｗ１＿０４は、対象物ｗ１（第１の作業対象物）に対して、04番目に教示した位置（ＰＯＳＩＴＩＯＮ）に移動するという指令内容を表す。
【００３９】
このように、実際の作業時（オフライン教示の後の、再生時の直前に行われる、教示手順の修正時）において接触位置検出処理を所定回数繰り返すことでロボット座標系に対する作業対象物の位置姿勢を算出し、オフライン教示時と実際の作業時のロボット座標系に対する作業対象物の位置姿勢誤差を計算し、オフライン教示データを修正することができ、高速高精度なロボットの作業座標系のキャリブレーション（校正）ができるのである。
【実施例２】
【００４０】
実施例２は、レイアウト（作業対象物の位置、及び／又は、姿勢）の変更や、ロボットを置き換える場合に、本発明を用いる場合の例である。（実施例１では、上述の導入したロボット実機や生産ラインのシミュレーション環境に対する教示を行った後、「仕様」は変更されず、作業対象物（Ｗ１）の位置・姿勢が最初の教示時（Ｋ）からずれる場合のみを想定したが、実施例２では、導入したロボット実機や生産ラインのシミュレーション環境のロボットから仕様が若干修正されたロボットに対する、教示手順の修正をも含む。）
実施例２は実施例１と同構成のキャリブレーション（校正）装置を用いる。
図６は本発明の実施例２の処理手順を示すフローチャートである。この図を用いて本発明の方法を順を追って説明する。
まず、レイアウト変更、もしくはロボット置換え前の処理について説明する。ステップＳ２１では、上記実施例１でのステップＳ１５と同様に、接触位置検出処理を所定回数繰り返し、ロボット座標における作業対象物の位置姿勢Ｒ１ＴＷ１を算出する（位置姿勢関係が既知の場合には必要ない）。
ロボット、および作業対象物が複数存在する場合には、実施例１と同様に、組み合わせの数だけ実施する。位置検出動作は教示作業者が教示ペンダントを用いて、手先効果器に搭載した柔軟なプローブを作業対象物に接触させ、さらに押し込んだ位置を教示するという手順で教示するか、もしくは、教示ペンダント７を用いずにＣＡＤ等のソフトウェア上でオフライン教示しても良い。
【００４１】
ステップＳ２２では、生産ラインのレイアウト変更（作業対象物の位置、及び／又は、姿勢の変更）、ロボットの置き換えを行う（位置姿勢誤差のため、従来の教示データでは正確な作業ができなくなる）。
ステップＳ２３では、ステップＳ２１と同様にして再度接触位置検出処理を所定回数繰り返し、ロボット座標に対する作業対象物の位置姿勢Ｒ１Ｔ’Ｗ１を算出する。位置検出動作はステップＳ２１と同様に、教示ペンダント７を用いて、接触した位置を教示するか、位置姿勢誤差が数十ｍｍ単位で既知であれば、ステップＳ２１の位置検出動作を既知量だけ修正しても良い。
また、位置姿勢誤差が数ｍｍ単位であれば、ステップＳ２１の位置検出動作をそのまま使用すれば良い（プローブの柔軟性により許容できる）。
ステップＳ２４では、レイアウト変更、もしくはロボット置換え前後のロボット座標に対する作業対象物の位置姿勢誤差を［数９］を用いて計算する。
ステップＳ２５では、位置姿勢誤差ΔＲ１ＴＷ１を用いてロボットの作業プログラムの教示位置の修正を行う。レイアウト変更、もしくはロボット置換え前の作業教示位置に修正量ΔＲ１ＴＷ１を左側から乗算することで教示位置データの修正を行う。
つまり、レイアウト変更、もしくはロボット置換え前の各軸教示位置を、まず順変換して、ロボット座標系における手先教示位置Ｐｋ  Ｒ１ [ｘｋ，ｙｋ，ｒｚｋ]を得、[数１０]のようにＰｋの左側からΔＲ１ＴＷ１を掛けることで、修正した手先位置Ｐｓ  Ｒ１ [ｘｓ，ｙｓ，ｒｚｓ]を得るか、もしくは位置姿勢誤差ΔＲ１ＴＷ１を逆変換して各軸の角度を計算し、レイアウト変更、もしくはロボット置換え前の各軸教示位置に加算するのである。
【００４２】
なお、手先教示位置Ｐｋ  Ｒ [ｘｋ，ｙｋ，ｒｚｋ]の意味等は、上述したものと同様である。
【００４３】
このように、産業用ロボットを稼動する生産ラインのレイアウト変更、もしくはロボットの置換え前後において接触位置検出処理を所定回数繰り返すことでロボット座標系に対する作業対象物の位置姿勢を算出し、レイアウト変更、もしくはロボット置換えに伴うロボット・作業対象物間の位置姿勢誤差を計算し、レイアウト変更前、もしくはロボット置換え前の教示データを修正することができ、高速高精度なロボットの作業座標系のキャリブレーション（校正）ができるのである。
【００４４】
上記あるいは特許請求の範囲に記載の発明において、各用語は、装置の具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えた装置を表わすためのものである。１つの構成要素が有する機能が２つ以上の物理的構成によって実現されてもよく、２つ以上の構成要素が有する機能が１つの物理的構成によって実現されてもよい。システムの発明は、それぞれの構成要素の有する機能が逐次的に実行される方法の発明として把握することもできるし、その逆も成り立つ。方法の発明においては、各ステップＳは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行され得る限りにおいて、自由な順序でそれを実行することができる。これらの発明は、所定のハードウェアと協働して所定の機能を実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。また本発明は、搬送波上に具現化されたコンピュータ・データ信号であって、そのプログラムのコードを備えたものとしても成立しうる。
本態様の他の実施形態は、対応するシステム、装置、デバイス、コンピュータプログラム製品、及びコンピュータ可読媒体を含む。
審査中の手続補正によって、及び、特許後の訂正審判又は訂正請求において、法的な制限の範囲内で、本発明は、以上の種々の態様に訂正され得る。
なお、特許後の訂正審判又は訂正請求における「実質上特許請求の範囲を変更」の判断は、特許時の請求項に新たな構成要素が追加されたか否か（即ち、いわゆる外的付加が為されたか否か）、又は、特許時の請求項の１つ又はそれより多いいずれかの構成要素を更に限定するものか（即ち、いわゆる内的付加が為されたか）によって判断されるべきでなく、訂正の前後の請求項に係る発明の効果が類似するか否かの観点から為されるべきである。
【００４５】
本明細書は、多数の特定のものを含むが、これらは、特許請求される又は特許請求されることができる範囲に対する制限として解釈されるべきではなく、特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の内容において、本明細書に説明される特定の特徴は、さらに、単一の実施形態において組み合わせて実施することができる。対照的に、単一の実施形態の内容において説明される種々の特徴は、さらに、多数の実施形態において、又はあらゆる好適な小結合において実施することができる。さらに、特徴は、特定の組み合わせにおいて作用するように上述され、さらに最初に、そのように特許請求されることがあるが、特許請求される組み合わせからの１つ又はそれ以上の特徴は、幾つかの場合においては、その組み合わせから実行されることができ、特許請求される組み合わせは、小結合又は様々な小結合に向けられることができる。
同様に、動作は、特定の順番で図示されるが、このことは、望ましい結果を実現するために、こうした動作が、示される特定の順番で又は逐次的な順番で実行され、又は、それらのすべての図示される動作が実行されることを必要とするように理解されるべきではない。
本明細書に説明される特定の実施形態が説明された。他の実施形態は、特許請求の範囲内にある。例えば、特許請求の範囲に挙げられた動作は、異なる順番で実行し、依然として望ましい結果を実現することができる。一例として、添付図面に示されるプロセスは、望ましい結果を実現するために、必ずしも、示される特定の順番又は逐次的な順番を必要とするものではない。
【符号の説明】
【００４６】
１  ロボット
２  手先効果器
３  接触位置検出プローブ
４  外力検出器
５  ロボットコントローラ
５１  位置指令生成部
５２  外力値監視部
５３  プローブ先端位置計算部
５４  記録装置
５５  接触位置検出部
５６  位置姿勢誤差計算部
６  オフライン教示システム
７  操作ペンダント
８  作業対象物
【図１−Ａ】
2011230243.tif 000017
【図８−１】
2011230243.tif 000018
【図８−２】
2011230243.tif 000019
【図８−４】
2011230243.tif 000020
【図８−５】
2011230243.tif 000021
【図１−Ｂ】
2011230243.tif 000022
【図２】
2011230243.tif 000023
【図３】
2011230243.tif 000024
【図４】
2011230243.tif 000025
【図５】
2011230243.tif 000026
【図６】
2011230243.tif 000027
【図７】
2011230243.tif 000028
【図８−３】
2011230243.tif 000029