(57)【特許請求の範囲】
【請求項１】
アーム先端にカメラを取り付けたロボットを手動操作手段により動作させ、定位置にあるワークの所望の検査箇所を前記カメラによって撮影する際のその撮影位置を三次元座標からなるロボット座標上の位置として教示するロボット教示装置であって、
前記定位置にあるワークの高さ位置を、前記ロボット座標の高さ方向の座標情報にて入力する高さ位置情報入力手段と、
前記手動操作手段の操作により前記カメラを前記ワークの所望の１箇所の上方へ移動させたときの位置を前記ロボット座標上の位置として取得するワーク位置座標取得手段と、
前記定位置にあるワークの中心が、前記ロボット座標の前記高さ方向の座標位置については前記高さ位置情報入力手段により入力された前記座標情報に基づいた座標位置にあり、且つ前記ロボット座標の縦横２方向の座標位置については前記ワーク位置座標取得手段により取得された縦横２方向の座標位置にあると仮定し、この仮定中心の前記ロボット座標上での位置を取得する仮定中心位置座標取得手段と、
所定の操作がなされたとき、前記アーム先端の前記ロボット座標上の現在位置と前記仮定中心位置座標取得手段により取得された前記ワークの仮定中心の前記ロボット座標上の位置とから、前記カメラの光軸が前記ワークの仮定中心を向くように前記アーム先端の位置と姿勢を設定するカメラ姿勢設定手段と
を具備してなるロボット教示装置。
【請求項２】
アーム先端にカメラを取り付けたロボットを手動操作手段により動作させ、定位置にあるワークの所望の検査箇所を前記カメラによって撮影する際のその撮影位置を三次元座標からなるロボット座標上の位置として教示するロボット教示装置であって、
前記定位置にあるワークの高さ位置を、前記ロボット座標の高さ方向の座標情報にて入力する高さ位置情報入力手段と、
前記手動操作手段の操作により前記カメラを前記ワークの所望の複数箇所の上方へ移動させたときの各位置を前記ロボット座標上の位置として取得するワーク位置座標取得手段と、
前記定位置にあるワークの中心が、前記ロボット座標の前記高さ方向の座標位置については前記高さ位置情報入力手段により入力された前記座標情報に基づいた座標位置にあり、且つ前記ロボット座標の縦横２方向の座標位置については前記ワーク位置座標取得手段により取得された複数の縦横２方向の座標位置を結んでできる平面図形の中心にあると仮定し、この仮定中心の前記ロボット座標上での位置を取得する仮定中心位置座標取得手段と、
所定の操作がなされたとき、前記アーム先端の前記ロボット座標上の現在位置と前記仮定中心位置座標取得手段により取得された前記ワークの仮定中心の前記ロボット座標上の位置とから、前記カメラの光軸が前記ワークの仮定中心を向くように前記アーム先端の位置と姿勢を設定するカメラ姿勢設定手段と
を具備してなるロボット教示装置。
【請求項３】
アーム先端にカメラを取り付けたロボットを手動操作手段により動作させ、定位置にあるワークの所望の検査箇所を前記カメラによって撮影する際のその撮影位置を三次元座標からなるロボット座標上の位置として教示するロボット教示装置であって、
前記定位置にあるワークの高さ位置を、前記ロボット座標の高さ方向の座標情報にて入力する高さ位置情報入力手段と、
前記手動操作手段の操作により前記カメラを前記ワークの所望の複数箇所の上方へ移動させたときの位置を前記ロボット座標上の位置として取得するワーク位置座標取得手段と、
前記定位置にあるワークの中心が、前記所望の複数箇所を撮影した位置の数と同数の複数あるとして、その複数の各中心が、前記ロボット座標の前記高さ方向の座標位置については前記高さ位置情報入力手段により入力された前記座標情報に基づいた座標位置にあり、且つ前記ロボット座標の縦横２方向の座標位置については前記ワーク位置座標取得手段により取得された複数の縦横２方向の座標位置にあると仮定し、この複数の仮定中心の前記ロボット座標上での位置を取得する仮定中心位置座標取得手段と、
所定の操作がなされたとき、前記アーム先端の前記ロボット座標上の現在位置と前記仮定中心位置座標取得手段により取得された前記ワークの複数の仮定中心の前記ロボット座標上の位置とから、前記アーム先端の最も近くにある中心を選択して前記カメラの光軸が前記ワークの仮定中心のうち前記選択された中心を向くように前記アーム先端の位置と姿勢を設定するカメラ姿勢設定手段と
を具備してなるロボット教示装置。
【請求項４】
アーム先端にカメラを取り付けたロボットを手動操作手段により動作させ、定位置にあるワークの所望の検査箇所を前記カメラによって撮影する際のその撮影位置を三次元座標からなるロボット座標上の位置として教示するロボット教示装置であって、
前記定位置にあるワークの高さ位置を、前記ロボット座標の高さ方向の座標情報にて入力する高さ位置情報入力手段と、
前記手動操作手段の操作により前記カメラを前記ワークの所望の複数箇所を一群として複数群の複数箇所の上方へ移動させたときの各位置を前記ロボット座標上の位置として取得するワーク位置座標取得手段と、
前記定位置にあるワークの中心が、前記所望の複数箇所の群の数と同数の複数あるとして、その複数の各中心が、前記ロボット座標の前記高さ方向の座標位置については前記高さ位置情報入力手段により入力された前記座標情報に基づいた座標位置にあり、且つ前記ロボット座標の縦横２方向の座標位置については前記ワーク位置座標取得手段により取得された前記群毎の複数の所望箇所についての縦横２方向の座標位置を結んでできる複数の平面図形の中心にあると仮定し、この複数の仮定中心の前記ロボット座標上での位置を取得する仮定中心位置座標取得手段と、
所定の操作がなされたとき、前記アーム先端の前記ロボット座標上の現在位置と前記仮定中心位置座標取得手段により取得された前記ワークの複数の仮定中心の前記ロボット座標上の位置とから、前記アーム先端の最も近くにある中心を選択して前記カメラの光軸が前記ワークの仮定中心のうち前記選択された中心を向くように前記アーム先端の位置と姿勢を設定するカメラ姿勢設定手段と
を具備してなるロボット教示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アーム先端にカメラを取り付けたロボットに対し、ワークの所望のポイントをカメラによって撮影するための撮影位置を教示するロボット教示装置に関するものである。
【背景技術】
【０００２】
例えば、部品の組み付けが正しく行われているかどうかなどの検査を行う検査装置として、ロボットアームに取り付けられたカメラを用いて視覚検査を行うようにした視覚検査装置が考えられている（例えば特許文献１）。この視覚検査装置は、先端にカメラを取り付けたロボットアームを検査設備の天井部に配設し、搬送路上を送られて検査設備の所定位置に停止されたワーク（検査対象物）に対し、ロボットアームを制御することによって複数の撮影位置にカメラを順に移動させながらワークの撮影を行い、その撮影画像を画像処理装置によって処理することに基づいてワークの各部の外観検査を行うものである。
【０００３】
この場合、複数の撮影位置は、予め教示されてメモリに記憶されているのであるが、その教示は、使用者が表示画面に表示されるカメラの撮影画像を見ながらティーチングペンダントを用いてアームを手動操作することにより、ワークが適当な見え方になる位置を探し、その位置を撮影位置として記憶させることによって行われていた。
【０００４】
なお、本発明とは直接的な関係はないが、特許文献２には、シミュレーションによってロボットの位置決めを行う場合、操作効率を向上させるために、仮想的な球面とその球面上の仮想的なカメラを想定し、カメラの位置を赤道方向、極軌道方向、および半径方向に移動させることで、アームの先端位置を含む平面を表示することができ、この平面内で目標位置を指定することが開示されている。
【特許文献１】特開平８−３１３２２５号公報
【特許文献２】特開平１１−２４２５１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に示されているように、カメラでワークを撮影し、その撮影画像が表示される表示画面を見ながらティーチングペンダントを操作してロボットアームを動かし、適当な撮影位置を探し出してゆく場合、途中で、誤ってカメラの撮影視野内からワークを外してしまうことがある。このようになると、アームを動かして再びカメラの撮影視野内にワークが入るようにする必要がある。しかしながら、表示画面にワークが映し出されていない状態では、ワークが表示画面上でどの方向にあるのか判然としないし、ロボットの座標系とカメラが取り付けられているアーム先端の座標系とが異なるため、ロボットの教示に習熟していても、カメラによってワークを捉えることは中々手間のかかる作業で、まして、ロボットの教示に習熟していない未熟者にとっては更に手間のかかる面倒な作業となる。
【０００６】
このカメラの視野内にワークを入れるために、特許文献２の技術を応用し、仮想的な球面の中心をワークの中心に定め、カメラの位置を仮想球面の赤道方向、極起動方向、および半径方向に移動させることでカメラの視野内に常にワークが入るようにすることが考えられる。ところが、この技術を応用する場合、ワークの中心の位置を、ロボットの座標系の位置として入力しておかねばならない。しかし、ワークの中心位置をロボット座標上の位置として入力する場合、ロボット座標の原点の位置と、縦、横、高さの各座標軸の向きが分らないとワークの中心位置をロボット座標上の位置として入力することはできない。この場合、ロボット座標の原点の高さ位置が例えば床面に据え付けられるベースの底面にあることから、ロボット座標の縦、横、高さの３方向の座標のうち高さ方向の座標位置は比較的簡単に計測できるが、しかし、原点位置が縦横方向のどこにあるか、また、その縦横の座標軸がどちらを向いているかは判然としないため、結局、ワークの中心位置をロボット座標上の位置として計測することは困難である。
【０００７】
本発明は上記の事情に鑑みてなされたもので、その目的は、カメラの視野内にワークを入れるための操作を比較的容易に行うことができるロボット教示装置を提供することにある。
【課題を解決するための手段】
【０００８】
教示中にカメラの視野からワークが外れた場合、再びカメラの視野内にワークを写し出すには、ワークがどの方向にあるかが大まかに分れば、カメラをワークの方向に向け、カメラによってワークを写し出すことができるようになる。このため、教示動作に先立ってワークの大体の位置を入力しておけば、教示途中でカメラの視野からワークが外れても、再びカメラの視野内にワークが入るようにすることは、比較的容易にできる。
【０００９】
本発明では、ワークの中心を仮定しておき、教示中にカメラの視野からワークが外れた場合、カメラを仮定した中心（仮定中心）に向けるようにする。仮定中心の高さ方向の座標位置情報は、ワークの高さ位置を測定し、その測定結果に基づいて高さ位置情報入力手段により入力する。仮定中心の水平面内の縦横２方向の座標位置は、カメラをワークの上方に移動させてワークを上方から撮影したときのカメラの座標位置から求める。
【００１０】
仮定中心の数と仮定中心の縦横２方向の位置座標の求め方は、請求項１〜４においてそれぞれ異なる。請求項１の発明では、カメラをワークの所望の１箇所の上方に移動させ、その位置をワーク位置座標取得手段によりロボット座標上の位置として取得する。そして、ワーク位置座標取得手段により取得した座標位置の縦横２方向の座標位置を仮定中心の縦横２方向の座標とする。
【００１１】
請求項２の発明では、カメラをワークの所望の複数箇所の上方へ移動させたときの各移動位置をワーク位置座標取得手段によりロボット座標上の位置として取得する。そして、ワーク位置座標取得手段により取得した複数の前記移動位置の縦横２方向の座標位置を結ぶ平面図形の中心に仮定中心があるとして該仮定中心のロボット座標上での位置を取得する。この場合、前記移動した箇所（ロボット座標の取得位置）が２箇所のとき、前記平面図形は直線となるが、本発明において、前記平面図形には直線を含むものとする。
【００１２】
請求項３の発明では、カメラをワークの所望の複数箇所の上方へ移動させたときの各移動位置をワーク位置座標取得手段によりロボット座標上の位置として取得する。そして、ワークの仮定中心が所望の複数の前記移動位置の数と同数の複数あるとして、ワーク位置座標取得手段により取得した座標位置の縦横２方向の座標位置を各仮定中心の縦横２方向の座標とする。
【００１３】
請求項４の発明では、カメラをワークの所望の複数箇所を一群として複数群の複数箇所の上方へ移動させ、複数群の各移動位置をワーク位置座標取得手段によりロボット座標上の位置として取得する。そして、ワークの仮定中心が所望の複数箇所の群れの数と同数の複数あるとして、その複数の各仮定中心が、各群の複数の所望箇所の各移動位置の前記縦横２方向の座標位置を結ぶ平面図形の中心にあると仮定し、この複数の仮定中心の前記ロボット座標上での位置を取得する。
【００１４】
ここで、カメラをワークの所望箇所の上方へ移動させる場合、請求項１，３の発明では、ワークを上方から見た平面的図形（水平面に投影してできる図形）の輪郭の内側に所望箇所を定める。これに対し、請求項２，４の発明では、ワークの仮定中心は、複数の所望箇所を結んだ平面図形の中心に設定されるから、所望箇所は、必ずしもワークを上方から見た平面的図形の輪郭の内側である必要はなく、平面的図形の輪郭の外側に定めても良い。
【００１５】
そして、教示中にカメラの視野からワークが外れた場合、所定の操作がなされると、請求項１，２の発明では、カメラの光軸がワークの仮定中心を向くようにアーム先端の位置と姿勢を設定し、請求項３，４の発明では、複数の仮定中心のうちからアーム先端の最も近くにある仮定中心を選択してカメラの光軸が選択された仮定中心を向くようにアーム先端の位置と姿勢を設定するので、一旦カメラの視野から外れたワークを再びカメラの視野内に入れることが容易にできる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施形態を図面を参照しながら説明する。
ロボット装置は、図１に示すように、ロボット１と、このロボット１を制御する制御手段としての制御装置２とからなり、更にティーチングペンダント３および表示装置４を備えて構成されている。上記ティーチングペンダント３は、操作手段としての各種の操作部３ａおよび表示部としての表示器３ｂを備えている。
【００１７】
上記ロボット１は、例えば６軸の垂直多関節型のものとして構成され、ベース５と、このベース４に水平方向に旋回可能に支持されたショルダ部６と、このショルダ部６に上下方向に旋回可能に支持された下アーム７と、この下アーム７に上下方向に旋回可能に且つ回転（捻り動作）可能に支持された上アーム８と、この上アーム８に上下方向に旋回可能に支持された手首９とから構成されており、手首９は先端部に回転（捻り動作）可能なフランジ１０を備えている。そして、アーム先端であるフランジ１０には、ワークを撮影するためのカメラ１１が取り付けられている。なお、カメラ１１は、固定焦点のレンズを１個だけ有するものとして構成されている。
【００１８】
一方、前記制御装置２は、図２に示すように、ＣＰＵ１２、駆動回路１３、位置検出手段としての位置検出回路１４を備えている。そして、上記ＣＰＵ１２には、記憶手段として、ロボット装置全体のシステムプログラム等を記憶するＲＯＭ１５、ロボット１の動作プログラム等を記憶するＲＡＭ１６が接続されていると共に、ティーチング作業を行なう際に使用する前記ティーチングペンダント３、前記表示装置４、前記カメラ１１などが接続されている。
【００１９】
上記位置検出回路１４は、各関節、すなわちショルダ部６、各アーム７，８、手首９およびフランジ１０の位置を検出するためのもので、この位置検出回路１４には、ショルダ部６、各アーム７，８、手首９およびフランジ１０の駆動モータ１７に設けられた位置センサとしてのロータリエンコーダ１８が接続されている。上記位置検出回路１４は、ロータリエンコーダ１８の検出信号によってベース５に対するショルダ部６の回転角度、ショルダ部６に対する下アーム７の回転角度、下アーム７に対する上アーム８の回転角度、上アーム８に対する手首９の回転角度、および手首９に対するフランジ１０の回転角度を検出し、その位置検出情報はＣＰＵ１２に与えられる。
【００２０】
そして、ＣＰＵ１２は、動作プログラムに基づいてショルダ部６、各アーム７，８、手首９およびフランジ１０を動作させる際、位置検出回路１４からの入力信号をフィードバック信号としてそれらの動作を制御するようになっている。なお、図２では、駆動モータ１７およびロータリエンコーダ１８は１個のみ示すが、実際には、ショルダ部６、各アーム７，８、手首９およびフランジ１０に対して一対一の関係で複数設けられているものである。
【００２１】
ここで、各関節には、それぞれ三次元の座標が固定されている。このうち、不動のベース５の座標系はロボット座標（図１にＳで示す座標）とされるものであり、他の座標系は各関節の回転によってロボット座標Ｓ上での位置と向きが変化する。ロボット座標Ｓは、例えばベース５の底面とショルダ部６の旋回軸との交点に原点Ｐを有し、Ｚ軸を高さ方向（鉛直方向）の座標軸に定め、Ｘ軸およびＹ軸を水平面内における縦横２方向の座標軸としている。
【００２２】
そして、制御装置２（ＣＰＵ１２）は、位置検出回路１４から入力されるショルダ部６、各アーム７，８、手首９およびフランジ１０等の各関節の位置検出情報と予め記憶されている各関節の長さ情報に基づいて、各関節の座標の位置と向きを、座標変換の演算機能によりロボット座標Ｓ上での位置と向きに変換して認識することができるようになっている。
【００２３】
さて、上記各関節の座標系のうち、フランジ１０の座標系は、図３に示すように、フランジ１０の先端面の中心Ｐ０ を原点とし、フランジ１０の先端面上で２つの座標軸、フランジ１０の回転軸上で１つの座標軸を定めるという条件を満足すれば、Ｘf ，Ｙf ，Ｚf の３つの座標軸の方向は使用者において自由に設定できるようになっている。この実施例では、図３に示すように、Ｘf およびＹf の２軸はフランジ１０の先端面上に存在し、残るＺf 軸はフランジ１０の回転軸（フランジ１０の先端面に直交する軸）上に存在するように定められているものとする。
【００２４】
そして、ロボット１の位置および姿勢、即ちアーム先端であるフランジ１０の位置および姿勢のうち、位置はフランジ１０の座標の原点Ｐ０であるフランジ１０の先端面の中心が占めるロボット座標Ｓ上の位置で示される。また、フランジ１０の姿勢は、図３に示すように、フランジ１０の座標系の原点Ｐ０からＺf 軸に沿ってその負方向に突出する単位長さ「１」のアプローチベクトルＡと、原点Ｐ0 からＸf 軸に沿ってその正方向に突出する単位長さ「１」のオリエントベクトルＯを定義し、フランジ１０の座標系をその原点Ｐ0 がロボット座標Ｓの原点Ｐに合致するように平行移動させたとき、そのロボット座標Ｓ上でのアプローチベクトルＡとオリエントベクトルＯで表される。
【００２５】
本実施形態のロボットは、例えば、組立ラインの最終工程で、組み立てられたワーク１９（図６に上方から見た平面的図形で示す。）の複数箇所をカメラ１１により撮影し、部品の組み付けなどが正しく行われているかどうかを検査するための視覚検査装置に用いられるもので、当該カメラ１１は、その光軸ＬがアプローチベクトルＡが定義されたＺｆ軸と同軸になるように取り付けられている。カメラ１１によるワーク１９の撮影位置の教示は、ティーチングペンダント３によってロボット１を手動操作することにより行われる。
【００２６】
カメラ１１による撮影位置の教示は、表示装置４の画面に表示されるカメラ１１の撮影画像を見ながら、手動操作手段としてのティーチングペンダント３によりロボット１を動作させ、所望の検査位置が表示装置４に写し出されたとき、そのときのロボット１の位置および姿勢を撮影位置として教示する。この撮影位置の教示中、カメラ１１の撮影視野からワーク１９が外れると、教示が行えないので、再度、ワーク１９をカメラ１１の撮影視野内に入れる必要がある。このワーク１９を再度カメラ１１の撮影視野内に入れるためのロボット１の動作を簡単な操作で行うことができるようにするために、上記検出位置を撮影する撮影位置を教示する本教示の前段で準備教示を行う。
【００２７】
この準備教示は、ワーク１９の中心を仮に定め、この仮定中心の位置を、ロボット座標Ｓ上の位置として教示しておこうとするものである。なお、制御装置２は、ＧＵＩ（Graphical User Interface）機能を有するソフトウエアを搭載しており、準備教示時には、図４（ａ）に示すように、このＧＵＩ機能によって表示装置４の画面の片隅に、ロボット１とワーク１９などを表示するようになっている。特にＧＵＩ機能によって表示されるロボット１は、ティーチングペンダント３の手動操作に伴って実際のロボット１と同様の動きを呈するようになっている。
【００２８】
上記の準備教示（仮定中心位置設定）の内容を図５のフローチャートをも参照しながら説明するに、まず、使用者は、ワーク１９を視覚検査装置のワーク設置部（図４（ｂ）にＴで示す。）にセットし（図５のステップＳ１）、そして、ワーク１９の高さ位置とロボット１が据え付けられた台座（図４（ｂ）でＤで示す。）の床面Ｆからの高さ（ロボット座標Ｓの原点の高さ）ｈを測定する（ステップＳ２）。このときのワーク１９の高さ位置は、図４（ｂ）に示すように床面Ｆからワーク１９の所望部分Ｇまでの高さ寸法Ｈである。この場合、ワーク１９の所望部分Ｇは、ワーク１９の最上部であっても良いし、最下部であっても良いし、上下方向の中間部であっても良いが、後述のように、カメラ１１を仮定中心に向けたとき、カメラ１１の撮影視野内にワーク１９が入るようにするためには、下方寄りの方が好ましく、最下部に定めることがより好ましい。
【００２９】
次に、使用者は、ティーチングペンダント３を操作してロボット１を準備教示モードに設定する（ステップＳ３）。すると、制御装置２は、表示装置４の画面にカメラ１１の撮影画像を表示すると共に、ロボット１とワーク１９のグラフィック画像を表示する。また、制御装置２は、ティーチングペンダント３に手動操作に応じてロボット１を操作させ得る状態となり、表示装置４のグラフィック画像のロボットをティーチングペンダント３の操作に応じた動作となるように動的に表示し得る状態となる。
【００３０】
この状態で、使用者は、ティーチングペンダント３を操作してロボット１を動作させ、続いて、実際のロボット１の動きを見ながら、カメラ１１がほぼ鉛直下向きで且つワーク１９の上方に位置するように、即ちカメラ１１の撮影視野内にワーク１９が入るようにする。そして、カメラ１１の撮影視野内にワーク１９の全体が入るようにカメラ１１の高さ位置と水平方向の位置を調節する（ステップＳ４）。これにより、図６に示すように、ワーク１９を上方から見た平面図形が表示装置４の画面に表示される。そして、使用者は、ワーク１９を上方から見た平面図形のうちの所望の１箇所として、例えば上方から見たワーク１９の図形的中心を選択する（ステップＳ５）。なお、図６では、選択した１箇所を点Ｃにて示したが、選択された箇所Ｃが表示装置４に表示されたワーク１９の平面図形上で実際に点で表示されるようにしても良いし、特に表示されるようにしなくともどちらでも良い。
【００３１】
次いで、使用者は、ワーク１９の平面図形上での中心がカメラ１１の撮影視野内の中心に概ね一致、つまり光軸をほぼ鉛直としたカメラ１１が上から見たワーク１９の図形的中心のほぼ真上に位置するようにカメラ１１をほぼ水平の縦横方向に動かす。これにより、上記選択された１箇所Ｃの真上にカメラ１１が位置された状態となる（ステップＳ６）。なお、上記選択された１箇所Ｃのほぼ真上にカメラ１１が位置したかどうかは、表示装置４の画面に写されたカメラ１１の撮影画像の中心に選択された１箇所Ｃが位置しているかどうかによって分る。勿論、撮影画像を見るのではなく、実際のカメラ１１の位置を見て、そのカメラ１１の位置とワーク１９の中心位置との関係で、カメラ１１がワーク１９の中心位置の上方に移動したと判断しても良い。
【００３２】
そして、ワーク１９の平面図形上の選択された１箇所Ｃがカメラ１１の撮影画像の中心に一致したところで、使用者は、ティーチングペンダント３を操作して位置の教示を行う。すると、制御装置２のＣＰＵ１２が位置教示操作時のフランジ１０のロボット座標Ｓ上の位置と姿勢を取得してＲＡＭ１６（記憶手段）に記憶する（ステップＳ７；ワーク位置座標取得手段）。続いて、ＣＰＵ１２は、記憶したフランジ１０の位置データのうち、縦横２方向の位置、つまり、ロボット座標Ｓ上の水平面内でのＸＹ２軸方向の位置Ｘｗ，ＹｗをＲＡＭ１６に記憶する（ステップＳ８）。
【００３３】
次に、使用者は、ステップＳ２で計測したワーク１９の高さ寸法と台座Ｄの高さ寸法ｈとの差を、ティーチングペンダント３を操作して表示装置４のグラフィック画像を利用して入力する（ステップＳ９；高さ位置入力手段）。例えば、表示装置４の表示画面に表示されたカーソルを動かして「ワーク下面差」をクリックし、テンキーにて数値（差）入力する。すると、制御装置２のＣＰＵ１２が入力された高さ寸法差（Ｈ−ｈ）を、ロボット座標ＳのＺ軸方向の高さ位置Ｚｗに換算してＲＡＭ１６に記憶し、続いて、ワーク１９の中心が上述のＸｗ，Ｙｗ，Ｚｗの座標位置にあると仮定する（ステップＳ１０；仮定中心位置座標取得手段）。この座標位置（Ｘｗ，Ｙｗ，Ｚｗ）を仮定中心の位置ということにする。以上で準備教示を終了する。
ワーク１９の仮定中心の位置を求めた後、撮影位置の教示に移行する。この撮影位置の教示は、表示装置４に表示されているカメラ１１の撮影画像を見ながら、ロボット１をティーチングペンダント３の手動操作により動作させ、ワーク１９の所望の検査対象位置が良好に見得る位置を検査位置として教示するものである。
【００３４】
ところで、この撮影位置の教示中に、カメラ１１の撮影画像からワーク１９を外してしまうことがある。このようになった場合、使用者は、所定の操作、具体的には、ティーチングペンダント３を操作して表示装置４の表示画面に表示されているグラフィック画像に表示されている例えば「向きをワークへ」の表示部分をクリック操作して仮定中心撮影モードに設定すると、制御装置２のＣＰＵ１２が図７に示すフローチャートに従ってロボット１の動作を制御し、カメラ１１の撮影視野内に再びワーク１９が入るようにカメラ１１の向きを修正し、且つピントがワーク１９に合うようにカメラ１１の位置を自動調整する。
【００３５】
即ち、仮定中心撮影モードに設定されると（ステップＡ１）、ＣＰＵ１２は、現在のフランジ１０の位置（中心Ｐ０の位置）および姿勢を取得し、現在のフランジ１０の位置とワーク１９の仮定中心とを結ぶ線にカメラ１１の光軸が一致するように（カメラ１１が仮定中心の方を向くように）ロボット１を動作させる（ステップＡ２；カメラ姿勢設定手段）。次に、ＣＰＵ１２は、カメラ１１がその光軸に沿ってワーク１９から遠ざかる方向に移動するように、ロボット１を動作させる（ステップＡ３；ピント調整手段）。そして、このカメラ１１の移動過程で、ＣＰＵ１２は、カメラ１１の撮影画像に対する周知の解析処理を行い（ステップＡ４；画像解析手段）、ピントがあったかどうかを判断する（ステップＡ５；ピント一致判断手段）動作を繰り返し行い、ピントが合ったところでロボット１を停止させて仮定中心撮影モードを終了する（ステップＡ５で「ＹＥＳ」、ステップＡ１０、エンド）。
【００３６】
カメラ１１を光軸に沿ってワーク１９から遠ざかる方向に移動させる際、その移動距離がカメラ１１が使用しているレンズの焦点距離以上になってもピントが合わない場合、それ以上同方向に移動させてもピントは合わない。そこで、ＣＰＵ１２は、カメラ１１の移動距離がレンズの焦点距離以上になったところでワーク１９から遠ざかる方向への移動を停止させ、カメラ１１の光軸に沿ってワーク１９に近付く方向に移動させる（ステップＡ６で「ＹＥＳ」、ステップＡ７）。
【００３７】
そして、このカメラ１１の移動過程で、ＣＰＵ１２は、カメラ１１の撮影画像に対する周知の解析処理を行い（ステップＡ８）、ピントがあったかどうかを判断する（ステップＡ９）動作を繰り返し行い、ピントが合ったところでロボット１を停止させて仮定中心撮影モードを終了する（ステップＡ９で「ＹＥＳ」、ステップＡ１０、エンド）。以上により、カメラ１１の撮影画像内にワーク１９が入ったこととなるので、前述した撮影位置の教示に戻ることができる。
このように、カメラ１１の撮影位置を教示している最中で、カメラ１１の撮影画像内からワーク１９が外れた場合、再びワーク１９をカメラ１１の撮影画像内に入れる操作が単に仮定中心撮影モードに設定する操作だけで済むようになる。
【００３８】
本実施形態では、上述のように仮定中心を１つだけ求めてカメラ１１の撮影視野からワーク１９が外れた場合に対処するようにした。この仮定中心にする箇所を１つだけ指定してその座標を求める第１の方式を一中心指定方式と称すると、本実施形態では、一中心指定方式の外に、以下に説明する３つの方式でワーク１９の中心を仮定してその仮定した中心の座標を求めることができる。
【００３９】
図８および図９は第２の方式を示す。この方式を、一中心図形演算方式と称することとする。この一中心演算方式は、カメラ１１をワーク１９よりも上方に移動させ、ワーク１９よりも上方の複数の所望位置でロボット座標を取得し、その複数の位置を結んでできる図形の中心をワーク１９の仮定の中心に定めるものである。
即ち、本実施形態では、カメラ１１をワーク１９よりも上方に移動させ、ワーク１９を上方から見た平面図形の外形線近くにおいて、所望の複数箇所、例えば図９（ａ）に示す４箇所を選択し（ステップＢ５）、まず、ロボット１から近いほうの２箇所Ｅ１，Ｅ２を撮影し、次いで、ロボット１から遠い方の２箇所Ｅ３，Ｅ４を撮影する（ステップＢ６）。すると、ＣＰＵ１２は、撮影した４箇所について、フランジ１０の位置と姿勢を記憶する（ステップＢ７）。なお、カメラ１１をＥ１〜Ｅ４の上方へ移動させたとき、ワーク１９を必ずしも撮影する必要はない。
【００４０】
その後、ＣＰＵ１２は、撮影した４箇所のロボット座標Ｓ上の位置のＸＹの縦横２方向の位置を結んでできる平面的な図形を求めて（ステップＢ８；形状演算手段）、その求めた図形の中心を算出し（図形中心演算手段）、その算出した中心のＸＹ座標をワーク１９の仮定中心のＸＹ座標とする（ステップＢ９；仮定中心平面座標設定手段）。この場合の図形の中心の求め方は、例えば、直交する縦横２本の線を仮定し、図形の面積を左右２等分する縦線と図形を上下２等分する横線との交点を図形の中心とする方法が考えられる。そして、ＣＰＵ１２は、第１の方式と同様に入力された高さ方向の座標位置（ステップＢ１０）とから仮定した中心をロボット座標Ｓにより（Ｘｗ，Ｙｗ，Ｚｗ）として記憶する（ステップＢ１０、ステップＢ１１；仮定中心位置座標設定手段）。
なお、この第２方式において、ロボット座標を取得する箇所は、図４（ａ）に示すようにワーク１９の平面的図形の外側であっても良いし、図４（ｂ）に示すように平面的図形の内側であっても良いし、図４（ｃ）に示すように平面的図形の外側と内側の双方であっても良い。
【００４１】
図１０ないし図１３は第３の方式を示す。この方式を、多中心指定方式と称することとする。この多中心指定方式は、ワーク１９の中心を１点ではなく、複数指定するもので、大型のワークや図１１のように異形のワーク１９′などの場合に好適する。
即ち、カメラ１１を移動させてロボット座標を取得する箇所を、ワーク１９を上方から見たときの平面的図形において、図１０に示すように複数の所望箇所（図１０では２箇所Ｃ１，Ｃ２）を選択し（図１２のステップＣ５）、各箇所Ｃ１，Ｃ２の真上からカメラ１１で撮影し（ステップＣ６）、その撮影時のフランジ１０の座標位置と姿勢を求める（ステップＣ７）。そして、各座標位置についてのＸＹ２方向の座標を水平面内における複数の中心の平面座標と仮定する（ステップＣ８）。その後、第１の方式と同様に入力された高さ方向の座標位置とから、複数の仮定の中心の位置をロボット座標Ｓ上で（Ｘｗｎ，Ｙｗｎ，Ｚｗｎ；ｎは仮定中心の数までの整数）と設定し、記憶するものである（ステップＣ９、ステップＣ１０）。
【００４２】
このように構成した場合には、撮影位置の教示中にカメラ１１の撮影画像中からワーク１９が外れた場合、図１３のフローチャートに示すように、ＣＰＵ１２は、まず、フランジ１０の現在位置を検出し、仮定した中心のうち、フランジ１０の現在位置に最も近い中心を選択する（ステップＤ２）。そして、この選択した中心をカメラ１１の光軸が通るようにロボット１を動作させる（ステップＤ３）。これにより、カメラ１１の撮影視野内にワーク１９が入るようになる。
この構成では、ワーク１９に複数の中心を仮定し、カメラ１１の撮影画像からワーク１９が外れたとき、その時のフランジ１０に最も近い中心にカメラ１１を向けるので、カメラ１１の撮影画像内に再びワーク１９を入れるためのロボット１の動作が小さくて済むようになる。
【００４３】
図１４および図１５は第４の方式を示す。この方式を、多中心図形演算方式と称することとする。この第４の方式は、ワークの仮定の中心を１点ではなく、複数の点として求めるもので、各仮定中心は複数の点を結んでできる図形から求めようとするものである。以下に上述の第３の方式と異なる部分についてのみ説明する。
【００４４】
即ち、カメラ１１をワーク１９の上方に移動させてワーク１９を撮影する。このワーク１９を上から撮影した画像は表示装置４の画面に表示されるので、そのワーク１９の平面的図形を見て、複数の所望箇所を一群として複数群となるように所望の箇所を選択する（ステップＥ５）。図１４では、ワーク１９を上から見た平面的図形において、合計８つの所望箇所Ｃ１〜Ｃ８を２群に分けて選択した例を示し、第１群は、ワーク１９の左側半分についてロボット１から近い箇所Ｃ１，Ｃ２および遠い箇所Ｃ３，Ｃ４を２箇所ずつ選択し、第２群は、ワーク１９の右側半分についてロボット１から近い箇所Ｃ５，Ｃ６および遠い箇所Ｃ７，Ｃ８を２箇所ずつ選択した状態を示している。なお、Ｃ１〜Ｃ８を選択する場合、およびカメラ１１をＣ１〜Ｃ８の上方で移動させる場合、必ずしもカメラ１１でワーク１９を撮影する必要はなく、実際のワーク１９、カメラ１１を目で見て行うようにしても良い。
【００４５】
所望箇所を複数群となるように選択した後、群毎に、選択した箇所の真上にカメラ１１を移動させ（ステップＥ６）、各箇所でのフランジ１０の位置座標（Ｘｗｎ，Ｙｗｎ，Ｚｐｎ）と姿勢とを記憶する（ステップＥ７）。次に、各群において、複数箇所についてその位置座標から縦横２方向の平面上の位置を求めてこれら複数の位置を結んだ図形を求め（ステップＥ８）、求めた図形の中心のＸＹ２方向の座標を求める（ステップＥ９）。
その後、ワーク１９の高さ位置とロボット１のベース５の高さ位置との差が入力されると（ステップＥ１０）、ＣＰＵ１２は、各群について求めた図形の中心を、ワーク１９の複数の仮定中心とし各仮定中心の位置座標を（Ｘｏｎ，Ｙｏｎ，Ｚｏｗ）に設定する（ステップＥ１１）。
【００４６】
なお、本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような拡張或いは変更が可能である。
カメラ１１は、必ずしも光軸がフランジ１０に固有の座標軸のうちＺｆと一致するように取り付ける必要はなく、光軸がＺｆからずれた位置に取り付けるようにしても良い。この場合、光軸がＺｆと平行となるように取り付けても、直角となるように取り付けても良い。また、光軸をＺｆに対して傾いた状態（平行でもなく直角でもない状態）に取り付けても良い。事前に光軸とフランジ１０の座標軸との関係が入力されていれば、その入力情報に基づいてカメラ１１をワーク１９の仮定中心に向けることは可能である（正確に仮定中心を向く必要ななく、カメラ１１の視野内にワーク１９が入る程度に大体仮定中心の方を向いていれば良いものである。
Ｂ方式によって仮定中心を複数定める場合、その仮定中心の数は２を超えても良い。
カメラ１１は、オートフォーカス機能を有するレンズを備えたものであっても良く、また、焦点距離の異なるレンズを複数備えたものであっても良い。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態を示すロボット装置の斜視図
【図２】ロボット装置の電気的構成を示すブロック図
【図３】フランジをその三次元座標と共に示す斜視図
【図４】表示画面の一例を示す正面図であり、（ａ）は全体の正面図、（ｂ）は部分的な拡大正面図
【図５】第１の方式にてワークの仮定中心を設定するためのフローチャート
【図６】第１の方式にて仮定中心を設定する場合に上方から撮影したワーク画像を基に所望の箇所を定めた状態を示す表示画面の正面図
【図７】第１の方式にワークの仮定中心を設定した場合において、カメラの撮影視野内に再度ワークを入れるためのフローチャート
【図８】第２の方式にてワークの仮定中心を設定するための図５相当図
【図９】第２の方式にて仮定中心を設定する場合に上方から撮影したワーク画像を基に所望の箇所を定めた状態を示す表示画面の正面図
【図１０】第３の方式の仮定中心設定が好適するワークの一例を示す平面図
【図１１】第３の方式に好適するワークの例を示す平面図
【図１２】第３の方式にてワークの仮定中心を設定するための図５相当図
【図１３】第３の方式にて仮定中心を複数設定した場合において、カメラの撮影視野内に再度ワークを入れるためのフローチャート
【図１４】第４の方式にてワークの仮定中心を設定するための図５相当図
【図１５】第４の方式にて仮定中心を設定する場合の図９相当図
【符号の説明】
【００４８】
図面中、１はロボット、２は制御装置（ワーク位置座標取得手段、仮定中心位置座標取得手段）、３はティーチングペンダント（高さ位置情報入力手段）、４は表示装置、５はベース、１０はフランジ（アーム先端）、１１はカメラ、１２はＣＰＵ、１４は位置検出回路、１７は駆動モータ、１８はロータリーエンコーダ、１９はワークを示す。
【図１】
0004508252.tif 000002
【図２】
0004508252.tif 000003
【図３】
0004508252.tif 000004
【図４】
0004508252.tif 000005
【図５】
0004508252.tif 000006
【図６】
0004508252.tif 000007
【図７】
0004508252.tif 000008
【図８】
0004508252.tif 000009
【図９】
0004508252.tif 000010
【図１０】
0004508252.tif 000011
【図１１】
0004508252.tif 000012
【図１２】
0004508252.tif 000013
【図１３】
0004508252.tif 000014
【図１４】
0004508252.tif 000015
【図１５】
0004508252.tif 000016