(57)【特許請求の範囲】
【請求項１】
ロボット本体の先端の関節をフランジによって構成し、そのフランジの先端面にハンドを取り付けた多関節型のロボット本体にあって、前記フランジに設定された固定の２つのベクトルの向きが前記ロボット本体の基準座標上で同じ向きを保つように関節を動かすことにより、前記フランジがその先端面を作業台表面と平行にした姿勢を保ったまま、当該フランジを作業台表面に真っ直ぐに降ろすロボット作業をティーチングする方法において、
前記ハンドの先端部分を、前記作業台表面のうち、前記ロボット本体が作業を行う部位の周りに存在する互いに離れた少なくとも３つの測定点に当接させ、
これらの各測定点での前記フランジの先端の位置を前記基準座標上の座標で検出し、
この検出された少なくとも前記３位置の座標に基づいて前記基準座標に対する前記作業台表面の傾きを演算によって求め、
この求められた傾きに応じて前記フランジの先端面と前記作業台の表面とが平行な状態となるように前記フランジの姿勢を補正し、
前記補正された姿勢を保ったまま前記フランジを前記作業台表面に真っ直ぐに降ろすロボット作業をティーチングすることを特徴とするロボットのティーチング方法。
【請求項２】
前記ロボット本体が作業を行う部位が前記作業台表面で複数ある場合、前記ハンドの先端部分を当接させる前記作業台表面の少なくとも３つの測定点は、前記各作業部位についてであることを特徴とする請求項１記載のロボットのティーチング方法。
【請求項３】
ロボット本体の先端の関節をフランジによって構成し、そのフランジの先端面にハンドを取り付けた多関節型のロボット本体にあって、前記フランジに設定された固定の２つのベクトルの向きが前記ロボット本体の基準座標上で同じ向きを保つように関節を動かすことにより、前記フランジがその先端面を作業台表面と平行にした姿勢を保ったまま、当該フランジを作業台表面に真っ直ぐに降ろすロボット作業をティーチングするティーチング装置において、
前記ロボット本体の基準座標に対する作業台の表面の傾きを検出してその傾きに応じて前記フランジの先端面と前記作業台の表面とが平行な状態となるように前記フランジの姿勢を補正し、前記補正された姿勢を保ったまま前記フランジを作業台表面に真っ直ぐに降ろすように前記ロボット本体の関節の動きを制御する制御装置を備え、
前記制御装置は、
前記ハンドの先端部分を、前記作業台表面のうち、前記ロボット本体が作業を行う部位の周りに存在する互いに離れた少なくとも３つの測定点に当接させたとき、各測定点での前記フランジの先端の位置を前記基準座標上の座標で検出する座標位置検出手段と、
この座標位置検出手段によって検出された少なくとも前記３位置の座標に基づいて前記基準座標に対する前記作業台表面の傾きを演算によって求める演算手段とを具備してなるロボットのティーチング装置。
【請求項４】
前記演算手段は、前記座標位置検出手段により検出された前記少なくとも３位置の座標に基づいて、少なくとも２つのベクトルの組を求め、その２つのベクトルの外積を演算することにより、前記作業台表面の傾きを該作業台表面の法線の傾きとして求めることを特徴とする請求項３記載のロボットのティーチング装置。
【請求項５】
前記ロボット本体が作業を行う部位が前記作業台表面で複数ある場合、前記ハンドの先端部分を当接させる前記作業台表面の少なくとも３つの測定点は、前記各作業部位についてであることを特徴とする請求項３または４記載のロボットのティーチング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボット本体の基準座標に対する作業台表面の傾きを測定してティーチングするロボットのティーチング方法およびその装置に関する。
【０００２】
【発明が解決しようとする課題】
ロボットの姿勢、すなわちロボットアームの先端のハンド部分の姿勢は、例えば、手首の先端に設けられているフランジの端面の中心から垂直方向に延びるアプローチベクトルと、同じくフランジの端面の中心から上記アプローチベクトルと直交する方向に延びるオリエントベクトルとを設定し、これら両ベクトルをその交点がロボットの基準座標の原点に一致するように平行移動させたとき、アプローチベクトルとオリエントベクトルとがそれぞれロボットの基準座標上でどの方向を向いているかによって示されるようになっている。
【０００３】
ロボットに作業をティーチングする場合、作業の内容によっては、フランジの端面を作業台の表面と平行となるようにティーチングすることが必要となることがある。その一例を図７に示すが、これは、ロボット本体の先端であるフランジＦの先端面ｆを作業台Ｄと平行に保持したまま、ハンドＨをフランジＦの先端面ｆの法線（鉛直線）に沿って真っ直ぐ下方に降ろして、該ハンドＨに把持したワークＷ1 を作業台Ｄ上のワークＷ2 に組み付けるという作業を示している。
【０００４】
ところが、作業台Ｄの表面とロボットの基準座標系のＸ−Ｙ座標面（水平面）とは、作業台Ｄ、或いはロボット本体の据え付けの状態から、必ずしも平行になっているとは限らない。そこで、作業台Ｄの表面が基準座標系のＸ−Ｙ座標面に対して傾いている場合には、上記のようなロボット作業のティーチング時に、ロボット本体の各関節を微妙に動かして、フランジＦの先端面ｆが作業台Ｄの表面と平行となるようにしている。しかしながら、例えば６軸の多関節型ロボット等、関節が多いと、各関節をどのように動作させたらフランジＦの先端面ｆが作業台Ｄの表面と平行になるのかを推定することが難しく、ティーチング作業に多くの時間がかかるという問題があった。
【０００５】
この問題を解消するものとして、特開昭５９−１８２０７６号公報に開示された技術がある。これは、ロボットの基準座標と作業台表面の座標との間の空間的な相対誤差は、両座標の原点間の変位と座標軸間の回転変位とを用いて表すことができることから、ロボット本体と作業台表面との距離を６地点以上で測定し、その測定距離から両座標の原点間の変位を表す３つの座標軸方向のベクトルを演算すると共に、座標軸間の回転変位を表すオイラー角等の３成分を演算するというものである。
【０００６】
この特開昭５９−１８２０７６号公報の開示技術では、ロボットの基準座標と作業台表面の座標との位置関係を、両座標の原点間変位と座標軸間回転変位とで表現する必要があるため、ロボット先端部分から作業台表面の座標系までの距離を正確に測定する距離測定装置が別に必要で、システムが複雑化するという問題がある。このため、ロボットの基準座標と作業台表面との相対的な傾きだけを検出できれば良いような場合には、過剰システムとなってしまう。
【０００７】
本発明は上記の事情に鑑みてなされたもので、その目的は、ロボットの基準座標と作業台表面との相対的な傾きを特別な距離測定装置を用いることなく、容易に求めることができ、ティーチング作業も容易に行うことができるロボットのティーチング方法およびその装置を提供するにある。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために本発明は、
ロボット本体の先端の関節をフランジによって構成し、そのフランジの先端面にハンドを取り付けた多関節型のロボット本体にあって、前記フランジに設定された固定の２つのベクトルの向きが前記ロボット本体の基準座標上で同じ向きを保つように関節を動かすことにより、前記フランジがその先端面を作業台表面と平行にした姿勢を保ったまま、当該フランジを作業台表面に真っ直ぐに降ろすロボット作業をティーチングする方法において、
前記ハンドの先端部分を、前記作業台表面のうち、前記ロボット本体が作業を行う部位の周りに存在する互いに離れた少なくとも３つの測定点に当接させ、
これらの各測定点での前記フランジの先端の位置を前記基準座標上の座標で検出し、
この検出された少なくとも前記３位置の座標に基づいて前記基準座標に対する前記作業台表面の傾きを演算によって求め、
この求められた傾きに応じて前記フランジの先端面と前記作業台の表面とが平行な状態となるように前記フランジの姿勢を補正し、
前記補正された姿勢を保ったまま前記フランジを前記作業台表面に真っ直ぐに降ろすロボット作業をティーチングすることを特徴とするものである（請求項１）。
【０００９】
また、本発明は、
ロボット本体の先端の関節をフランジによって構成し、そのフランジの先端面にハンドを取り付けた多関節型のロボット本体にあって、前記フランジに設定された固定の２つのベクトルの向きが前記ロボット本体の基準座標上で同じ向きを保つように関節を動かすことにより、前記フランジがその先端面を作業台表面と平行にした姿勢を保ったまま、当該フランジを作業台表面に真っ直ぐに降ろすロボット作業をティーチングするティーチング装置において、
前記ロボット本体の基準座標に対する作業台の表面の傾きを検出してその傾きに応じて前記フランジの先端面と前記作業台の表面とが平行な状態となるように前記フランジの姿勢を補正し、前記補正された姿勢を保ったまま前記フランジを作業台表面に真っ直ぐに降ろすように前記ロボット本体の関節の動きを制御する制御装置を備え、
前記制御装置は、
前記ハンドの先端部分を、前記作業台表面のうち、前記ロボット本体が作業を行う部位の周りに存在する互いに離れた少なくとも３つの測定点に当接させたとき、各測定点での前記フランジの先端の位置を前記基準座標上の座標で検出する座標位置検出手段と、
この座標位置検出手段によって検出された少なくとも前記３位置の座標に基づいて前記基準座標に対する前記作業台表面の傾きを演算によって求める演算手段とを具備してなるものである（請求項３）。
【００１０】
上記のロボットのティーチング方法およびその装置によれば、ハンドの先端部分を作業台表面において互いに離れた少なくとも３つの測定点に当接させたとき、それらの各測定点でのフランジの先端の座標は、ロボットの制御装置が本来的に備える座標変換のための演算機能を使用して容易に検出することができる。また、検出した少なくとも３位置の座標に基づいて作業台の表面の傾きを求める演算も、同様にロボットの制御装置の演算機能を利用して容易に行うことができる。このため、ロボットの基準座標と作業台表面との相対的な傾きを、特別な距離測定装置を用いることなく、容易に求めることができる。
また、ハンドの先端部分を当接させる少なくとも３つの測定点は、ロボット本体が作業を行う部位の周りに存在させるので、作業台表面の傾きを、ロボットが実際に作業を行う部位での傾きとして求めることができる。
しかも、求められた傾きに応じてロボット本体の先端部分の姿勢を補正し、補正された姿勢を保ったままでロボット作業をティーチングするので、ティーチング作業を容易に行うことができる。
【００１１】
本発明のロボットのティーチング装置では、
前記演算手段は、前記座標位置検出手段により検出された前記少なくとも３位置の座標に基づいて、少なくとも２つのベクトルの組を求め、その２つのベクトルの外積を演算することにより、前記作業台表面の傾きを該作業台表面の法線の傾きとして求めることができる（請求項４）。
この構成によれば、複雑な計算をせずとも、容易に作業台表面の傾きを求めることができる。
【００１３】
また、本発明のロボットのティーチング方法およびその装置では、
前記ロボット本体が作業を行う部位が前記作業台表面で複数ある場合、前記ロボット本体の先端部分の所定部位を当接させる前記作業台表面の少なくとも３つの測定点は、前記各作業部位についてとすることができる（請求項２、５）。
この構成によれば、作業台表面の傾きを、ロボットが実際に作業を行う複数の部位のそれぞれについて求めることができる。
【００１４】
【発明の実施の形態】
以下、本発明の一実施例を図１〜図６に基づいて説明する。
ロボットは、図６に示すように、ロボット本体１と、このロボット本体１を制御する制御手段としての制御装置２と、この制御装置２に接続されたティーチング手段としてのティーチペンダント３とから構成されている。
【００１５】
上記ロボット本体１は、例えば６軸の垂直多関節型のものとして構成され、ベース４と、このベース４に水平方向に旋回可能に支持されたショルダ部５と、このショルダ部５に上下方向に旋回可能に支持された下アーム６と、この下アーム６に上下方向に旋回可能に且つ回転（捻り動作）可能に支持された上アーム７と、この上アーム７に上下方向に旋回可能に支持された手首８とから構成されており、手首８は先端部に回転（捻り動作）可能なフランジ９を備えている。なお、後述のように、ワークを把持するハンド１０は、ロボットの先端であるフランジ９に取り付けられるようになっている。
【００１６】
一方、前記制御装置２は、図５に示すように、ＣＰＵ１１、駆動回路１２、位置検出手段としての位置検出回路１３を備えている。そして、上記ＣＰＵ１１には、記憶手段として、ロボット全体のシステムプログラムおよび後述の作業台表面の傾きを検出するためのプログラム等を記憶するＲＯＭ１４、ロボット本体１の動作プログラム等を記憶するＲＡＭ１５が接続されていると共に、ティーチング作業を行なう際に使用する前記ティーチングペンダント３が接続されている。このティーチングペンダント３は、図６に示すように操作手段としての各種の操作部３ａおよび表示手段としての表示器３ｂを備えている。
【００１７】
上記位置検出回路１３は、各関節、すなわちショルダ部５、各アーム６，７、手首８およびフランジ９の位置を検出するためのもので、この位置検出回路１３には、ショルダ部５、各アーム６，７、手首８およびフランジ９の駆動モータ１６に設けられた位置センサとしてのロータリエンコーダ１７が接続されている。上記位置検出回路１３は、ロータリエンコーダ１７の検出信号によってベース４に対するショルダ部５の回転角度、ショルダ部５に対する下アーム６の回転角度７、下アーム６に対する上アーム７の回転角度、上アーム７に対する手首８の回転角度、および手首８に対するフランジ９の回転角度を検出し、その位置検出情報はＣＰＵ１１に与えられる。そして、ＣＰＵ１１は、動作プログラムに基づいてショルダ部５、各アーム６，７、手首８およびフランジ９を動作させる際、位置検出回路１３からの入力信号をフィードバック信号としてそれらの動作を制御するようになっている。なお、図６では、駆動モータ１６およびロータリエンコーダ１７は１個のみ示すが、実際には、各部の動作に対して一対一の関係で複数設けられているものである。
【００１８】
ここで、各関節には、それぞれ３次元の座標が固定されている。このうち、床面に据え付けられるベース４の座標系は不動で、ロボット本体１の基準座標（図３にＳで示す座標）とされるものであり、他の座標系は各関節の回転によって基準座標上での位置と向きが変化する。そして、制御装置２（ＣＰＵ１１）は、位置検出回路１３から入力されるショルダ部５、各アーム６，７、手首８およびフランジ９等の各関節の位置検出情報と予め記憶されている各関節の長さ情報に基づいて、各関節の座標の位置と向きを、座標変換の演算機能により基準座標上での位置と向きに変換して認識することができるようになっている。
【００１９】
さて、上記各関節の座標系のうち、フランジ９の座標系は、図４に示すように、フランジ９の先端面の中心Ｐ0 を原点とし、フランジ９の先端面上で２つの座標軸、フランジ９の回転軸上で１つの座標軸を定めれば、Ｘf ，Ｙf ，Ｚf の３つの座標軸の方向は使用者において自由に設定できるようになっている。この実施例では、図４に示すように、Ｘf およびＹf の２軸はフランジ９の先端面上に存在し、残るＺf 軸はフランジ９の回転軸上に存在するように定められているものとする。
【００２０】
そして、ロボットの姿勢、すなわちロボットアームの先端のフランジ９の姿勢は、図４に示すように、フランジ９の座標系の原点ＰｏからＺf 軸に沿ってその負方向に突出する単位長さ「１」のアプローチベクトルＡと、原点Ｐ0 からＹf 軸に沿ってその正方向に突出する単位長さ「１」のオリエントベクトルＯを設定し、フランジ９の座標系をその原点Ｐ0 が基準座標系の原点に合致するように平行移動させたとき、その基準座標系上でのアプローチベクトルＡとオリエントベクトルＯで表される。
【００２１】
ここで、ロボット作業のティーチング時において、フランジ９の先端面を基準座標系のＸ，Ｙの２つの座標軸により形成される平面に平行とするには、前記のティーチングペンダント３により、アプローチベクトルＡが鉛直下向きとなるように、そのアプローチベクトルＡの先端の座標（０，０，−１）を入力する。すると、制御装置２は、アプローチベクトルＡが入力された座標（０，０，−１）の位置を取るように、すなわちアプローチベクトルＡが鉛直下向きとなってフランジ９の先端面が基準座標系のＸ，Ｙの２つの座標軸により形成される水平面と平行となるように各関節の駆動モータ１６を制御する。
【００２２】
ただし、ロボット本体１の基準座標および図３に示す作業台１８（これにはロボット作業を行う対象物等が載置される）の表面は、据付精度等によって必ずしも水平ではなく、従って互いに平行な面となっているとは限らない。そこで、上記のように構成されたロボットにおいて、ロボット作業のティーチングに併せて、基準座標に対する作業台１８の表面の傾きを検出し、ロボット本体１のフランジ９の姿勢の補正を行う場合の作用を、図１に示すフローチャートをも参照しながら説明する。
【００２３】
今、フランジ９の中心部分には、ハンド１０が取り付けられているものとする。作業台１８表面の傾きを検出するには、まず、ティーチングペンダント３を操作して作業台表面の傾き検出モードに設定する。そして、フランジ９の姿勢を一定に保ちながら、例えばアプローチベクトルＡが基準座標のＺ軸と平行（フランジ９の先端面が基準座標のＸ−Ｙ平面と平行）で、且つオリエントベクトルＯが基準座標のＹ軸と平行の状態を保ちながら、作業台１８の表面において互いに離れた任意の３測定点Ｐ1 〜Ｐ3 にロボット本体１の先端部分の所定部位であるハンド１０の先端を当接させる。このとき、上記のハンド１０を当接させる測定点Ｐ1 〜Ｐ3 は、実際にロボット作業を行う位置（図３でＰｗで示す部分）の周りとする。
【００２４】
そして、ハンド１０を３測定点Ｐ1 〜Ｐ3 に当接させる度に、ティーチングペンダント３を操作して各位置でのフランジ９の先端面の中心Ｐ0 の位置を、基準座標上での座標位置として読み取らせる（ステップＳ１）。この３位置Ｐ1 〜Ｐ3 へのハンド１０当接時におけるフランジ９の先端面の中心Ｐ0 の位置（以下、ロボット先端位置という）を基準座標系での座標で検出する動作は、制御装置２（ＣＰＵ１１）が前述のように位置検出回路１３から入力されるショルダ部５、各アーム６，７、手首８およびフランジ９の位置情報に基づいて座標変換することによって行われる。従って、制御装置２は、座標位置検出手段として機能する。検出されたフランジ９の先端面の中心Ｐ0 の座標位置は、記憶手段としてのＲＡＭ１５に記憶される。ここで、３測定点Ｐ1 〜Ｐ3 でのロボット先端位置の基準座標は、順に、（Ｘ1 ，Ｙ1 ，Ｚ1 ）、（Ｘ2 ，Ｙ2 ，Ｚ2 ）（Ｘ3 ，Ｙ3 ，Ｚ3 ）であるとする。
【００２５】
以上のようにして、作業台１８の表面の３規定点に対応したロボット先端位置の座標を検出すると、次に、制御装置２は、図２に示すように、３測定点Ｐ1 〜Ｐ3 のうちの１つの測定点、例えば最初に検出した測定点Ｐ1 のロボット先端位置Ｐ1 ´から他の２つの測定点のロボット先端位置Ｐ2 ´，Ｐ3 ´まで延びるベクトルＪ，Ｋを算出する（ステップＳ２）。この２つのベクトルＪ，Ｋは、３測定点Ｐ1 〜Ｐ3 でのロボット先端位置の基準座標がそれぞれ（Ｘ1 ，Ｙ1 ，Ｚ1 ）、（Ｘ2 ，Ｙ2 ，Ｚ2 ）（Ｘ3 ，Ｙ3 ，Ｚ3 ）であることから、ベクトルＪ（Ｘj ，Ｙj ，Ｚj ）は（Ｘ1 −Ｘ2 ，Ｙ1 −Ｙ2 ，Ｚ1 −Ｚ2 ）で表され、ベクトルＫ（Ｘk ，Ｙk ，Ｚk ）は（Ｘ1 −Ｘ3 ，Ｙ1 −Ｙ3 ，Ｚ1 −Ｚ3 ）で表される。このように表されたベクトルＪ，Ｋは、作業台１８の表面と平行な平面内に存在する。
【００２６】
この後、制御装置２は、ベクトルＪ，Ｋの外積を演算する（ステップＳ３）。このベクトルＪ，Ｋの外積は、図２に示すように、大きさが、ベクトルＪ，Ｋを相隣る２辺とする平行四辺形の面積に等しく、その方向が、２つのベクトルＪ，Ｋのいずれとも垂直で、且つベクトルＪを１８０°以内で回転してベクトルＫに重ねるとき、右ねじの進む方向の向きを持つベクトルＭとなる。このように、２つのベクトルＪ，Ｋを算出し、そして、それら２つのベクトルＪ，Ｋの外積を算出する制御装置２は、演算手段として機能する。
【００２７】
ここで、以上の説明から理解されるように、ベクトルＭは、２つのベクトルＪ，Ｋを含む平面、すなわち作業台１８の表面に平行な平面の法線に合致することとなり、従って、ベクトルＭの傾きが作業台１８の表面の傾きとなる。
【００２８】
次に、制御装置２は、ベクトルＭのＺ軸方向の成分が正であるか否かを判断する（ステップＳ４）。ベクトルＭのＺ軸方向の成分が正であった場合には、制御装置２は、ベクトルＭのＸ，Ｙ，Ｚの各軸方向の成分を負にして、ベクトルＭの向きを１８０°回転させる（ステップＳ５）。その後、制御装置２は、ベクトルＭのＸ，Ｙ，Ｚの各軸方向の成分（Ｘm ，Ｙm ，Ｚm ）をティーチングペンダント３のディスプレイ３ｂに表示する（ステップＳ６）。また、ベクトルＭのＺ軸方向の成分Ｚm が負であった場合には、制御装置２は、ステップＳ４で「ＮＯ」と判断してステップＳ６に移行し、ベクトルＭのＸ，Ｙ，Ｚの各軸方向の成分をティーチングペンダント３のディスプレイ３ｂに表示する。
【００２９】
このようにして、作業台１８の表面の法線に沿うベクトルＭが演算されディスプレイ３ｂに表示されると、作業者はそのディスプレイ３ｂに表示されたベクトルＭのＸ，Ｙ，Ｚの各軸方向の成分（Ｘm ，Ｙm ，Ｚm ）をティーチングペンダント３に入力する（ステップＳ７で「ＹＥＳ」）。すると、制御装置２は、フランジ９の先端面の中心Ｐ0 がどの位置を取ろうとも、フランジ９の姿勢を、該フランジ９の先端面が入力されたベクトルＭと直交する状態となるように各関節の駆動モータ１６を動作させる（ステップＳ８）。このため、フランジ９の先端面を作業台１８の表面と平行の状態を保ったままで作業台１８の表面に真っ直ぐ降ろすロボット作業をティーチングすることができる。
【００３０】
ちなみに、上記のステップＳ４において、ベクトルＭのＺ軸方向の成分Ｚm の正負を判断し、正であった場合には、ベクトルＭのＸ，Ｙ，Ｚの各軸方向の成分を負にする理由は、この実施例のロボットでは、アプローチベクトルＡをＺ軸上の負方向の長さ「１」のベクトルと定めているので、ベクトルＭのＺ軸方向の成分が正であった場合には、そのベクトルＭの向きをアプローチベクトルの向きに一致させて、以後の演算を行い易くするためである。
【００３１】
このように本実施例では、作業台１８の表面の傾きを容易に求めることができる。しかも、その作業台１８の表面の傾きは、特別の距離測定装置を使用せずとも、ロボットの制御装置２自体が本来有する座標変換演算機能を利用して作業台１８の表面の３位置の座標を求めることによって自動的に行われるので、簡易に作業台１８の表面の傾きを求めることができる。
【００３２】
また、本実施例では、作業台１８の表面の傾きを法線の傾きとして求めるようにし、且つ、そのために求めた３測定点Ｐ1 〜Ｐ3 でのロボット先端位置のうち、測定点Ｐ1 に対応するロボット先端位置Ｐ1 ´から測定点Ｐ2 ，Ｐ3 に対応するロボット先端位置Ｐ1 ´，Ｐ2 ´までのベクトルＪ，Ｋの外積を求めることによって作業台１８の表面の傾きを法線の傾き（ベクトルＭ）を直接求めたので、演算を容易にでき、制御装置２（ＣＰＵ１１）の負担を軽減することができる。
【００３３】
このベクトルＪ，Ｋを求めてその外積から作業台１８の表面の傾きを法線の傾きとして求める方法に対し、まず、３測定点Ｐ1 〜Ｐ3 でのロボット先端位置の座標から作業台１８の表面の傾きを求め、その後、作業台１８の表面の法線の傾きを求める方法がある。この方法は次の通りである。
【００３４】
まず、平面は、次の（１）式で示す方程式で表される。
【数１】
0003671694.tif 000002
【００３５】
上記の３位置Ｐ1 〜Ｐ3 は、作業台１８の表面と平行な一つの平面内に存在するから、各位置について、次の（２）〜（４）式が成り立つ。
【数２】
0003671694.tif 000003
【００３６】
そして、上記の定数ｂ，ｃ，ｄをａで表すために、まず、（２）および（３）式から下記の（５）式、（２）および（４）式から下記の（６）式が求まる。
【数３】
0003671694.tif 000004
【数４】
0003671694.tif 000005
【００３７】
次に、この（５）および（６）式から次の（７）式を得、この（７）式からｃを求めると、（８）式のようになる。
【数５】
0003671694.tif 000006
【００３８】
そして、上記（８）式を（５）式に代入して下記の（９）式を得、この（９）式からｄを求めると、（１０）式のようになる。
【数６】
0003671694.tif 000007
【００３９】
また、前記（２）および（３）式から下記の（１１）式、（２）および（４）式から下記の（１２）式が求まる。
【数７】
0003671694.tif 000008
【数８】
0003671694.tif 000009
【００４０】
そして、この（１１）および（１２）式から次の（１３）式を得、この（１３）式からｂを求めると、（１４）式のようになる。
【数９】
0003671694.tif 000010
【００４１】
従って、作業台１８の表面と平行な一つの平面を表す式は、次の（１５）式となる。
【数１０】
0003671694.tif 000011
【００４２】
そして、作業台１８の表面と平行な一つの平面を通る法線ベクトルは、次の座標で示される。
【数１１】
0003671694.tif 000012
【００４３】
このようにしても法線ベクトルＭを求めることができるが、これは以上説明したような大変面倒な計算を経なければならない。これに対し、本実施例のようにベクトルＪ，Ｋの外積を演算することによって法線のベクトルＭを求める方がより簡便で、制御装置２（ＣＰＵ１１）の負担を軽減できることが理解されるであろう。
【００４４】
なお、本発明は上記し且つ図面に示す実施例に限定されるものではなく、以下のような拡張或いは変更が可能である。
作業台の表面は、水平な面に限られず、垂直な面であっても良く、或いは水平、垂直に限らず、どの様な傾きの面であっても良い。
作業台の表面の傾きを求めるためにハンド１０を当接させる位置は、３位置に限らず、４位置或いはそれ以上であっても良い。この場合、２つのベクトルの組が複数できるが、各組について外積を求めてその平均を作業台の表面の法線ベクトルとするように構成すれば良い。
作業台表面の複数箇所でロボット作業を行う場合には、各作業箇所について作業台表面の傾きを求めるようにする。このようにすれば、ロボット本体は、各構成要素の製作精度、組立て精度、或いは剛性等の影響で基準座標のＸ，Ｙ，Ｚの各軸が曲った状態となっていることがある、という事情があっても、その基準座標側の誤差を吸収でき、各作業位置毎に作業台表面の実際の傾きを検出できる。
表示器３ｂに表示されたベクトルＭのＸ，Ｙ，Ｚの各軸方向の成分（Ｘm ，Ｙm ，Ｚm ）が、ティーチングペンダント３から入力されるのを待って制御装置２がフランジ９の姿勢を、該フランジ９の先端面が入力されたベクトルＭと直交する状態となるように各関節の駆動モータ１６を動作させたが、これは、（Ｘm ，Ｙm ，Ｚm ）の入力を待つことなく、ステップＳ６を実行した後、直接、制御装置２がフランジ９の姿勢を（Ｘm ，Ｙm ，Ｚm ）となるように修正する構成としても良い。
【図面の簡単な説明】
【図１】本発明の一実施例を示すもので、作業台表面を傾きを求めるためのフローチャート
【図２】２つのベクトルと外積との関係を示す図
【図３】作業台表面と平行な平面の３位置の座標を検出する時の斜視図
【図４】ロボットのフランジ部分の斜視図
【図５】ロボットの電気的構成を示すブロック図
【図６】ロボットの斜視図
【図７】従来の問題点を説明するための縦断側面図
【符号の説明】
１はロボット本体、２は制御装置（座標位置検出手段、演算手段）、３はティーチングペンダント、１０はハンド、１１はＣＰＵ、１８は作業台である。
【図１】
0003671694.tif 000013
【図２】
0003671694.tif 000014
【図３】
0003671694.tif 000015
【図４】
0003671694.tif 000016
【図５】
0003671694.tif 000017
【図６】
0003671694.tif 000018
【図７】
0003671694.tif 000019