(57)【要約】【課題】ワークの形状を入力せずとも、動作点以外の位置で停止したロボットアームをワークとの衝突を回避しながら原点位置に戻す。【解決手段】各動作点について、停止位置からワークの中心位置のベクトルと停止位置から動作点までのベクトルの内積を演算し、内積値が０未満のとき、その動作点を移動目標点に設定する。また、上記２つのベクトルの内積が０以上のとき、停止位置に最も近い動作点を移動目標点に設定する。そして、停止位置から移動目標点にロボットアームを移動させた後、動作点を順に辿って原点位置に復帰させる、【選択図】図５
2010094765.tif 000002
【特許請求の範囲】
【請求項１】
ワークの周囲を移動するロボットアームであって、原点位置から、予め設定された複数の動作点を予め決められた順序で通過するように制御されるロボットアームが、移動途中で停止したとき、当該ロボットアームを自動的に前記原点位置に復帰させるロボットの原点復帰装置において、
前記教示された複数の動作点の座標を記憶する動作点記憶手段と、
前記ワークの中心位置を入力する入力手段と、
前記入力手段から入力された前記ワークの中心位置を記憶するワーク中心位置記憶手段と、
前記ロボットアームが移動途中で停止したとき、その停止位置を求める停止位置演算手段と、
前記ロボットアームの前記停止位置から前記ワークの中心位置に至るベクトルと前記ロボットアームの前記停止位置から前記複数の各動作点に至るベクトルを求めるベクトル演算手段と、
前記複数の動作点の各々について、前記ロボットアームの前記停止位置から前記ワークの中心位置に至るベクトルと前記ロボットアームの前記停止位置から前記動作点に至るベクトルとの内積を演算する内積演算手段と、
前記複数の動作点のうち、前記内積演算手段により演算された内積の値が最小となる動作点を選択する動作点選択手段と、
前記動作点選択手段により選択された動作点についての内積が０未満であるか否かを判定する内積値判定手段と、
前記動作点選択手段により選択された動作点についての内積が０未満であったとき、当該動作点を移動目標点に設定し、前記動作点選択手段により選択された動作点についての内積が０以上であったとき、前記複数の動作点のうち前記停止位置から最も近い動作点を移動目標点に設定する目標位置設定手段と、
前記ロボットアームを、前記停止位置から前記目標位置設定手段により移動目標点として設定された動作点に向かって移動させ、その後、移動目標点として設定された動作点から前記動作点記憶手段に記憶された動作点を順に辿って原点位置に復帰するように移動させる動作制御手段と、
を備えてなるロボットの原点復帰装置。
【請求項２】
前記動作制御手段は、前記ロボットアームの姿勢を、停止した時点での姿勢に維持したまま前記移動目標点として設定された動作点に移動し、当該動作点において、教示された姿勢に戻すことを特徴とする請求項１記載のロボットの原点復帰装置。
【請求項３】
前記目標位置設定手段は、前記動作点選択手段により選択された動作点についての内積が０以上であったとき、前記複数の動作点のうち前記停止位置から最も近い動作点を仮移動目標点に設定し、前記停止位置と前記仮移動目標点との距離が前記停止位置と前記ワークの中心位置との距離よりも短いとき、前記仮移動目標点を移動目標点とする、ことを特徴とする請求項１または２記載のロボットの原点復帰装置。
【請求項４】
前記目標位置設定手段は、前記停止位置と前記仮移動目標点との距離が前記停止位置と前記ワークの中心位置との距離以上のとき、前記複数の動作点のうち次に前記停止位置に近い動作点を仮移動目標点とすることを、前記停止位置と前記仮移動目標点との距離が前記停止位置と前記ワークの中心位置との距離よりも短い動作点が見つかるまで繰り返し実行し、前記停止位置と前記仮移動目標点との距離が前記停止位置と前記ワークの中心位置との距離よりも短い動作点がなかったとき、前記制御手段は、前記ロボットアームを停止状態に維持することを特徴とする請求項３記載のロボットの原点復帰装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームが間欠的に教示された複数の動作点を定められた順に移動して再び原点位置に戻るロボットについて、非常停止時や任意停止時に原点位置に復帰させるためのロボットの原点復帰装置に関する。
【背景技術】
【０００２】
ロボットが停止した場合の原点復帰方法として、特許文献１に示された方法がある。この特許文献１の原点復帰方法は、予め定められた動作点でロボットが停止した場合に、停止した動作点から、通常の移動順序とは逆の順序で動作点を順に移動して原点に復帰するというものである。
【特許文献１】特開２０００−６１８７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の原点復帰方法では、停止位置が動作点であれば良いが、動作点以外の位置で停止した場合には対応できない。この場合に、停止した位置に最も近い動作点を探し、その動作点まで戻った後、通常の移動順序と逆の順序で動作点を移動して原点に復帰することが考えられる。しかしながら、停止位置から最も近い動作点まで移動する間に、作業対象とするワークの一部が存在する場合、ロボットはワークに衝突してしまうこととなる。これを回避するには、ワークの形状データをロボット座標にしてロボット制御装置に与えておく必要があるが、ワーク形状をロボット座標にして入力することは大変難しい。
【０００４】
本発明は上記の事情に鑑みてなされたもので、その目的は、ワークの形状を入力せずとも、動作点以外の位置で停止したロボットアームをワークとの衝突を可及的に回避しながら原点位置に戻すことができるロボットの原点復帰装置を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１の発明では、複数の動作点のうちから１つの動作点を移動目標点に定め、ロボットアームを停止位置から移動目標点まで移動させ、その後、動作点を順に辿って原点位置まで復帰する。上記移動目標点は次のようにして定める。即ち、ロボットアームの停止位置からワークの中心位置に至るベクトルと、各動作点についてロボットアームの停止位置から動作点に至るベクトルとを求め、その２つのベクトルの内積を演算する。そして、内積が最小となる動作点について、その内積が０未満のとき、つまり上記２つのベクトルのなす角が９０度未満のとき、その動作点を移動目標点に設定する。上記２つのベクトルのなす角が９０度未満ということは、ロボットアームの停止位置が移動目標点に定めた動作点よりもワークから遠く離れていることを意味するので、ロボットアームが移動目標点に移動する際にワークに衝突する可能性を低く抑えることができ、勿論、その後の原点位置までの移動中においてもワークに衝突する可能性を低く抑えることができる。また、上記２つのベクトルの内積が０以上のとき、つまり上記２つのベクトルのなす角が９０度以上のとき、ロボットアームの停止位置に最も近い動作点を移動目標点に設定する。移動目標点がロボットアームの停止位置に最も近い動作点であることは、ロボットアームがワークから離れる方向に移動する確率の高いことを意味するので、ロボットアームがワークに衝突する可能性を極力低くすることができる。
【０００６】
請求項２の発明では、停止位置から移動目標点までの移動中は、ロボットアームの姿勢が変化しないので、ワークに衝突する危険性をより少なくすることができる。
請求項３の発明では、上記２つのベクトルの内積が０以上のとき、ロボットアームの停止位置から最も近い動作点を仮の移動目標点に定め、停止位置と仮移動目標点との距離が停止位置とワークの中心との距離よりも短いとき、仮移動目標点を移動目標点に設定する、換言すれば、動作点間を移動するロボットアームの移動軌跡により近い位置でロボットアームが停止していることとなるので、停止位置から移動目標点までの移動中にロボットアームがワークに衝突する危険性をより少なくすることができる。
【０００７】
請求項４の発明では、停止位置と仮移動目標点との距離が停止位置とワークの中心位置との距離以上のとき、複数の動作点のうち次に停止位置に近い動作点を仮移動目標点とすることを、停止位置と仮移動目標点との距離が停止位置とワークの中心位置との距離よりも短い動作点が見つかるまで繰り返し実行し、停止位置と仮移動目標点との距離が停止位置とワークの中心位置との距離よりも短い動作点がなかったとき、ロボットアームは停止状態を維持するので、ロボットアームがワークに衝突する恐れがより一層少なくなる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態につき図面を参照しながら説明する。図１には、視覚検査装置が示されている。この視覚検査装置に用いられるロボット１は、ロボット本体２と、このロボット本体２を制御する制御装置３からなり、更に、ティーチングペンダント（教示手段）４および例えば液晶表示器を主体とする表示装置（表示手段）５を備えて構成されている。上記ティーチングペンダント４は、ロボットアームの動作点を教示する機能の外、各種データを入力する入力手段およびロボット本体１を遠隔操作するための操作手段として機能するもので、各種の操作スイッチ４ａおよび表示部４ｂを備えている。
【０００９】
ロボット本体２は、例えば６軸の垂直多関節型のものとして構成され、ベース６と、このベース６に水平方向に旋回可能に支持されたショルダ部７と、このショルダ部７に上下方向に旋回可能に支持された下アーム８と、この下アーム８に上下方向に旋回可能に且つ回転（捻り動作）可能に支持された上アーム９と、この上アーム９に上下方向に旋回可能に支持された手首１０と、この手首１０に回転可能に支持されたフランジ１１から構成されている。上記ショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１はロボットアームを構成するもので、アーム先端の手先部であるフランジ１１には、カメラ１２が取り付けられている。
【００１０】
一方、制御装置３は、図２に示すように、ＣＰＵ１３、駆動回路１４、位置検出手段としての位置検出回路１５を備えている。そして、ＣＰＵ（制御手段）１３には、ロボット１全体のシステムプログラムなどを記憶するＲＯＭ（プログラム記憶手段）１６、ティーチングペンダント４によって教示された動作点などの各種データを記憶するＲＡＭ１７が接続されていると共に、ティーチングペンダント４、表示装置５、カメラ１２が接続されている。
【００１１】
上記位置検出回路１５は、各関節、つまりショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１の相対位置を検出するためのもので、この位置検出回路１５には、各関節の駆動モータ１８に設けられた位置センサとしてのロータリエンコーダ１９が接続されている。なお、図２には、駆動モータ１８およびロータリエンコーダ１９は、１個ずつしか図示していないが、実際には、各関節に対して一対一の関係で複数設けられているものである。
【００１２】
そして、位置検出回路１５は、ロータリエンコーダ１９の検出信号によってベース６に対するショルダ部７の回転角度、ショルダ部７に対する下アーム８の旋回角度、下アーム８に対する上アーム９の旋回角度および捻り角度、上アーム９に対する手首１０の旋回角度、手首１０に対するフランジ１１の回転角度を検出し、その動作角度情報はＣＰＵ１３に与えられる。ＣＰＵ１３は、動作プログラムに基づいてショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１を動作させる際、位置検出回路１５からの入力信号をフィードバック信号としてそれらの動作（駆動モータ１８）を制御する。
【００１３】
ここで、ベース６、ショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１には、それぞれ三次元の座標が固定されている。このうち、不動のベース６の座標はロボット座標（図１にＳで示す。）とされるもので、他の座標系は、ショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１の動作によってロボット座標上の位置と姿勢（向き）が変化する。
【００１４】
そして、ＣＰＵ１３は、位置検出回路１５から入力されるショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１の各関節の位置検出情報と予めＲＯＭ（アーム長記憶手段）１６に記憶されているショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１のアーム長さ情報により、ショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１の各座標の原点の位置と姿勢を、座標変換の演算機能によってロボット座標Ｓ上での位置と姿勢とに変換して認識することができるようになっている。
【００１５】
本実施形態では、フランジ１１にカメラ１２が取り付けられている。このカメラ１２にも座標が設定されており、このカメラ１２の座標のフランジ１１の座標に対する位置と姿勢（向き）は、予めＲＯＭ（カメラ座標位置記憶手段）１６に記憶されている。したがって、ＣＰＵ１３は、フランジ１１の位置からカメラ１２の位置（姿勢を含む）を認識できるようになっている。
【００１６】
さて、ショルダ部７、下アーム８、上アーム９、手首１０およびフランジ１１のうち、フランジ１１の座標Ｆは、図３に示すように、フランジ１１の前端面（表面）の中心Ｐｆを原点とし、フランジ１１の先端面上で２つの座標軸、フランジ１１の回転軸上で１つの座標軸が定められている。具体的には、原点Ｐｆとフランジ１１に偏心して形成されている小孔１１ａの中心を通る直線をＹｆ軸とし、この原点Ｐｆを通りＹｆ軸と直交する直線をＸｆ軸、原点Ｐｆを通りＸｆ，Ｙｆの両軸と直交する直線、つまりフランジ１１の回転中心線と一致する直線をＺｆ軸と定めている。
【００１７】
ここで、フランジ１１の姿勢は、原点からＸｆ軸上およびＹｆ軸上に単位ベクトルを規定し、この２つの単位ベクトルのロボット座標Ｓ上での向きによって表される。また、同様にカメラ１２の姿勢についても、フランジ１１の座標Ｆに対するカメラ１２の座標の姿勢を基に、カメラ１２の座標のＸｃ軸上およびＹｃ軸上での単位ベクトルのロボット座標Ｓ上での向きによって表される。なお、ロボット座標Ｓは、図１に示すように、例えば、ショルダ部７の回転中心軸線とベース６の基盤６ａの下面との交点を原点Ｏとし、ショルダ部７の回転中心軸線をＺ軸、ベース６の矩形状の基盤６ａの隣り合う２辺のうち、一辺の中点と原点Ｏとを通る直線をＸ軸、他辺の中点と原点Ｏとを通る直線をＹ軸に定めている。
【００１８】
本実施形態では、ロボットアームの位置と姿勢を、カメラ１２の座標の原点の位置と姿勢で表している。ティーチングペンダント４による動作点（姿勢も含む）の教示は、直接的にはフランジ１１の座標の原点の位置（姿勢も含む）として指定されるが、ＲＡＭ１７には、フランジ１１の座標Ｆに対するカメラ１２の座標の位置と姿勢との関係を基にして、カメラ１２の座標の原点の位置に変換されて記憶される。
【００１９】
ロボットアームを動作させてワークの所望箇所をカメラ１２で撮影するには、ティーチングペンダント４を用いて、予め複数の動作点（姿勢を含む）を教示する。図４は、ワークＷの周りの複数の動作点を、原点位置Ｐ０から順にＰ１，Ｐ２，Ｐ３……Ｐｎで示している。教示された動作点および姿勢は、ＲＡＭ（動作点記憶手段）１７に記憶される。これら動作点のうち、カメラ１２によってワークＷの所望の部位を撮影する動作点については、撮影対象部位にピントが合う距離だけワークＷから離れた位置に定められ、他の動作点についても、カメラ１２がワークＷに衝突することのないように、所定の安全距離だけワークＷから離れた位置に定められている。従って、カメラ１２の座標の原点の動作軌跡も、ワークＷから適当なる距離だけ離れることとなる。
【００２０】
そして、ロボット１の実動作時において、ＣＰＵ１３は、カメラ１２の座標の原点が、教示された複数の動作点Ｐ１，Ｐ２，Ｐ３……Ｐｎを順に通るように、ＰＴＰ（point to point）制御方式を用いてロボット本体２の動作を制御する。このＰＴＰ制御方式によってロボットアームの動作を制御している際、ロボットアームが何らかの原因で停止することがある。動作を途中で停止した場合、ＣＰＵ１３は、ＲＯＭ１６に記憶されている原点戻しプログラムに従ってロボットアームを原点位置に自動復帰させる。以下、この原点戻しプログラムによる原点位置への自動復帰について、図５のフローチャートをも参照しながら説明する。
【００２１】
図５のフローチャートは、ワークＷの中心の位置が既知であることを必要とする。このため、ワークＷの中心の位置をロボット座標Ｓ上の点としてティーチングペンダント４を用いて入力する。この場合、ワークＷの中心の位置は、正確なものである必要はなく、大まかに定めれば良い。ワークＷの中心の位置を求めるには、ロボット座標Ｓの原点Ｏからの距離を、Ｘ，Ｙ，Ｚ軸の各方向について計測し、計測した距離をロボット座標の単位ベクトルの長さで除してロボット座標値に変換すれば良い。そして、ティーチングペンダント４から入力されたワークＷの中心の位置Ｐｗｃは、ＲＡＭ（中心位置記憶手段）１７に記憶される。
【００２２】
さて、ロボットアームが動作途中で停止すると、ＣＰＵ１３は、図５のフローチャートを実行し、まず、座標変換の演算機能によって現在のカメラ１２の座標の位置（停止位置Ｐｓ）と姿勢を、前述の座標変換の演算機能によって計算する（ステップＳ１：停止位置演算手段）。なお、以下の説明では、カメラ１２の座標を単にカメラ座標と称し、また、位置という場合には、特に断らない限り、ロボット座標Ｓ上での位置をいうものとする。カメラ１２の停止位置Ｐｓおよび姿勢を取得すると、次にＣＰＵ１３は、停止位置ＰｓからワークＷの中心位置Ｐｗｃまでのベクトルを演算する（ステップＳ２：ベクトル演算手段）。
【００２３】
続いて、ＣＰＵ１３は、停止位置Ｐｓから各動作点Ｐ１，Ｐ２，Ｐ３……Ｐｎまでのベクトルを演算する（ステップＳ３：ベクトル演算手段）。そして、複数の動作点Ｐ１，Ｐ２，Ｐ３……Ｐｎの各々について、停止位置ＰｓからワークＷの中心位置Ｐｗｃまでのベクトルと、停止位置Ｐｓから各動作点Ｐ１，Ｐ２，Ｐ３……Ｐｎまでのベクトルを正規化し、正規化した２つのベクトルの内積を演算する（内積演算手段）。
【００２４】
その上で、ＣＰＵ１３は、各動作点Ｐ１，Ｐ２，Ｐ３……Ｐｎのうち、内積が最小となる動作点Ｐｉ（ｉ＝１〜ｎ）を選択する（ステップＳ４：動作点選択手段）。なお、内積が同値で最小の動作点が複数ある場合、ＣＰＵ１３は、停止位置Ｐｓとの間の距離が短い方の動作点を選択し、更に、停止位置Ｐｓとの間の距離が同値である動作点が複数ある場合には、ロボットアームの原点位置Ｐ０により近い動作点を選択する。
【００２５】
内積が最小の動作点を選択すると、次に、ＣＰＵ１３は、選択した動作点Ｐｉの内積が０未満であるか否かを判断する（ステップＳ５：内積値判定手段）。ここで、２つのベクトルの内積が０未満であることは、それら２つのベクトルのなす角が９０度よりも小さいことを意味する。更に、２つのベクトルのなす角が９０度未満であることは、図  に示すように、停止位置Ｐｓと動作点Ｐｉの間の距離よりも、停止位置ＰｓとワークＷの中心位置との間の距離の方が長いこと、つまり内積が最小の動作点Ｐｉよりも停止位置Ｐｓの方がワークＷから離れていることを意味し、停止位置Ｐｓと動作点Ｐｉとの間にワークＷが存在する確率はほとんどないことを意味している。
【００２６】
そこで、ＣＰＵ１３は、内積が０未満で最小の動作点Ｐｉを移動目標位置に定め（目標位置設定手段）、そして、ロボットアームを、カメラ１２が停止位置Ｐｓでの姿勢を維持したままとなるように、移動目標点までＰＴＰ制御によって直線的に移動させる（ステップＳ６：動作制御手段）。そして、カメラ１２が移動目標点（動作点Ｐｉ）に至ったところで、ＣＰＵ１３は、ロボットアームの姿勢（カメラ１２の姿勢）を当該動作点Ｐｉにおける記憶姿勢に変更する（ステップＳ７）。
【００２７】
このように停止位置Ｐｓから移動目標点までの間は、カメラ１２の姿勢を停止位置Ｐｓのまま維持するので、カメラ１２のワークＷへの接触をより確実に防止することができる。つまり、移動途中でカメラ１２の姿勢を変えると、姿勢を変えることによってカメラ１２がワークＷに近付くことにもなりかねないので、これを防止することができるものである。
【００２８】
次に、ＣＰＵ１３は、移動目標点であった動作点Ｐｉから通常の前進方向に動作して原点位置Ｐ０に戻る場合の動作点数と、動作点Ｐｉから通常の前進方向とは逆の後退方向に動作して原点位置Ｐ０に戻る場合の動作点数を取得し、少ない方を動作方向に定める。なお、動作点Ｐｉから原点位置Ｐ０までの動作点の数が前進方向と後退方向で同じときには、後退方向を動作方向に定める。その後、ＣＰＵ１３は、ロボットアームをＰＴＰ制御によって動作点Ｐｉから他の動作点を順に辿って原点位置に戻るように制御する（ステップＳ１２：以上、動作制御手段）。
【００２９】
一方、内積が最小の動作点Ｐｉの当該内積の値が０以上であるとき（ステップＳ５で「ＮＯ」）、ＣＰＵ１３は、各動作点Ｐ１，Ｐ２，Ｐ３……Ｐｎについて、停止位置Ｐｓから動作点までの距離を求め、最小距離の動作点Ｐｊを仮移動目標点とする（ステップＳ８）。ここで、２つのベクトルの内積が０以上であることは、２つのベクトルのなす角が９０度以上であること、換言すれば、図７（ａ），（ｂ）に示すように、停止位置Ｐｓが通常の動作軌跡よりのワークＷ側に存在する確率の高いことを意味する。したがって、そのまま仮移動目標点である動作点Ｐｉへ移動すると、ワークＷに突出部分があった場合、その突出部分に当る可能性のあることを意味する。
【００３０】
そこで、次に、ＣＰＵ１３は、停止位置Ｐｓと動作点Ｐｊとの間の距離が停止位置ＰｓとワークＷの中心位置Ｐｗｃとの間の距離未満であるか否かを判断する（ステップＳ９：距離判定手段）。停止位置Ｐｓと仮移動目標点（動作点Ｐｊ）との間の距離が停止位置ＰｓとワークＷの中心位置Ｐｗｃとの間の距離以上であることは、図７（ｂ）に示すように、停止位置ＰｓがワークＷにより近く、例えばワークＷに突出部分があるような場合、停止位置Ｐｓから仮移動目標点（動作点Ｐｊ）に移動するまでの間にその突出部分に接触する可能性が高くなる。
【００３１】
このため、停止位置Ｐｓと動作点Ｐｊとの間の距離が停止位置ＰｓとワークＷの中心位置との間の距離以上であった場合（ステップＳ９で「ＮＯ」）、ＣＰＵ１３は、ロボットアームを停止状態のままとし、図５のフローチャートを終了する。このように、ステップＳ９で「ＮＯ」となった場合、ロボットアームは停止したままになるので、ユーザは、ティーチングペンダント４を操作してロボットアームを手動で動作させて原点位置に復帰させる。
【００３２】
停止位置Ｐｓと仮移動目標点（動作点Ｐｊ）との間の距離が停止位置ＰｓとワークＷの中心位置Ｐｗｃとの間の距離よりも短い場合には、図７（ａ）に示すように、停止位置Ｐｓは、仮移動目標点（動作点Ｐｊ）により近いので、ワークＷに突出部分があったとしても、仮移動目標点（動作点Ｐｊ）まで移動する間に、その突出部分に接触する可能性は相当低くなる。
【００３３】
そこで、ＣＰＵ１３は、停止位置Ｐｓと仮移動目標点である動作点Ｐｊとの間の距離が停止位置ＰｓとワークＷの中心位置Ｐｗｃとの間の距離よりも短い場合には（ステップＳ９で「ＹＥＳ」）、仮移動目標点を移動目標点に定め、停止位置Ｐｓでの姿勢を維持したまま当該停止位置Ｐｓから移動目標点である動作点Ｐｊまで移動し（ステップＳ１０）、移動目標点（動作点Ｐｊ）に至ったところで動作点Ｐｊでの姿勢に変更する（ステップＳ１１）。その後、ＣＰＵ１３は、前述したと同様にしてロボットアームを動作点Ｐｊから原点位置まで移動させ（ステップＳ１２）、以上により図５のフローチャートを終了する。
【００３４】
このように本実施形態によれば、ロボットアームが動作途中で停止しても、当該ロボットアームを、ワークＷに衝突することなく、自動的に原点位置に復帰させることができる。ちなみに、停止位置Ｐｓから移動目標点に向かってロボットアームが動作するとき、ワークＷの突出部分などに接触するような恐れがあるときには、非常停止ボタン（図示せず）を押せばよい。
【００３５】
なお、本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような拡張或いは変更が可能である。
最小の内積値が０以上のとき、停止位置Ｐｓから最短の動作点を移動目標位置に定めるようにしてもよい。このようにしても、突出部分のないワークＷであれば、移動目標位置まで移動する間に、ワークＷに接触する可能性は非常に低い。
ＣＰＵ１３は、停止位置と仮移動目標点との距離が停止位置とワークＷの中心位置との距離以上のとき、複数の動作点のうち次に停止位置に近い動作点を仮移動目標点とすることを、停止位置と仮移動目標点との距離が停止位置とワークの中心位置との距離よりも短い動作点が見つかるまで繰り返し実行し、停止位置と仮移動目標点との距離が停止位置とワークの中心位置との距離よりも短い動作点がなかったとき、図５のフローチャートを終了してロボットアームを停止状態のまま保持するようにしてもよい。
ＲＡＭ１７に記憶させる動作点は、カメラ１２の座標の原点の位置としたが、フランジ１１の座標の原点の位置としても良い。
視覚検査装置のロボットに限られず、フランジ１１にハンドを取り付けたロボットに適用することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態を示すもので、ロボットを使用する視覚検査装置の斜視図
【図２】ロボットの制御構成を示すブロック図
【図３】フランジの斜視図
【図４】ワークと動作点との位置関係の一例を示す図
【図５】原点位置戻しのための制御内容を示すフローチャート
【図６】動作点と停止位置との関係の一例を示す図
【図７】動作点と停止位置との関係の他の例を示す図
【符号の説明】
【００３７】
図面中、２はロボット本体、４はティーチングペンダント（入力手段）、１１はフランジ、１２はカメラ、１３はＣＰＵ（停止位置演算手段、ベクトル演算手段、内積演算手段、動作点選択手段、内積値判定手段、目標位置設定手段、動作制御手段）、１７はＲＡＭ（動作点記憶手段、中心位置記憶手段）を示す。
【図１】
2010094765.tif 000003
【図２】
2010094765.tif 000004
【図３】
2010094765.tif 000005
【図４】
2010094765.tif 000006
【図５】
2010094765.tif 000007
【図６】
2010094765.tif 000008
【図７】
2010094765.tif 000009