(57)【特許請求の範囲】
【請求項１】
ロボット本体のハンドにより把持されたワークの画像を、前記ロボットの根元座標との位置関係が一定且つ既知なカメラにより撮像して視覚検査を行うシステムにおいて、前記カメラにより撮像される画像上で前記ワークの検査対象部位を画像中央に位置させるファインティーチングの過程で、画像中央に映った前記ワーク上の点（注視点）と、前記カメラとの位置関係を維持しながら、前記ワークの姿勢を変更する動作を前記ロボット本体に実行させる制御装置であって、
前記ティーチングが行われている期間に、前記ロボット本体の手先座標の変化履歴を制御履歴として記憶する制御履歴記憶手段と、
前記ティーチングが行われている期間に、前記カメラが撮像した画像のデータを制御履歴と１対１で対応させ、連続的に記憶する画像記憶手段と、
前記姿勢の変更を開始させる指示が与えられると、その時点で前記カメラにより撮像された画像を移動先画像として記憶し、その画像の中心周りの所定領域を注視領域に設定する注視領域設定手段，及びその時点の前記ロボット本体の手先座標を移動先座標とし、前記制御履歴として記憶されている手先座標のうち、手先の前記カメラから見て奥行き方向の位置と向きとが移動先座標と同じものを移動元座標として設定し、その移動元座標に対応する履歴画像を移動元画像として設定する座標設定手段と、
前記移動元座標及び前記移動先座標から求められる手先移動距離を、ワーク注視点移動距離とする実移動距離計算手段と、
前記移動元画像内において、前記移動先画像上の前記注視領域からなる部分画像との画像特徴量の類似度を計算し、前記類似度が一定以上で、且つ最大となる画像領域を特定し、当該特定した画像領域が示す画像座標と前記移動先座標における前記注視領域が示す画像座標とから、前記注視領域の移動距離を画像注視点移動距離として計算する画像上注視点移動距離計算手段と、
予め保持している前記カメラの像面距離と、前記ワーク注視点移動距離と、前記画像注視点移動距離とから、三角測量法により前記カメラと前記ワーク上の注視点との位置関係を求める位置関係計算手段と、
前記位置関係を維持したまま、前記ワークを、前記姿勢の変更開始の指示に続いて与えられる回転方向及び回転速度に応じて回転させるように、前記ロボット本体に制御指令を出力する制御指令出力手段とを備えることを特徴とするロボットの制御装置。
【請求項２】
前記制御履歴記憶手段は、前記ロボット本体の手先座標の変化量が一定量以上となった場合に前記手先座標の変化履歴を制御履歴として記憶し、
前記画像記憶手段は、前記ロボット本体の手先座標の変化量が一定量以上となった場合に、前記カメラが撮像した画像のデータを記憶することを特徴とする請求項１記載のロボットの制御装置。
【請求項３】
前記制御履歴記憶手段は、前記ロボット本体の手先座標が変化する方向が前記カメラの仮想撮像面に対して平行となった場合に、前記手先座標の変化履歴を制御履歴として記憶し、
前記画像記憶手段は、前記ロボット本体の手先座標が変化する方向が前記カメラの仮想撮像面に対して平行となった場合に、前記カメラが撮像した画像のデータを記憶することを特徴とする請求項１又は２記載のロボットの制御装置。
【請求項４】
ロボット本体のハンドにより把持されたワークの画像を、前記ロボットの根元座標との位置関係が一定且つ既知なカメラにより撮像して視覚検査を行うシステムにおいて、前記カメラにより撮像される画像上で前記ワークの検査対象部位を画像中央に位置させるファインティーチングの過程で、画像中央に映った前記ワーク上の点（注視点）と、前記カメラとの位置関係を維持しながら、前記ワークの姿勢を変更する動作を前記ロボット本体に実行させる場合の制御方法であって、
前記ティーチングが行われている期間に、前記ロボット本体の手先座標の変化履歴を制御履歴として記憶すると共に、前記カメラが撮像した画像のデータを制御履歴と１対１で対応させて連続的に記憶し、
前記姿勢の変更を開始させる指示が与えられると、その時点で前記カメラにより撮像された画像を移動先画像として記憶し、その画像の中心周りの所定領域を注視領域に設定し、その時点の前記ロボット本体の手先座標を移動先座標とし、前記制御履歴として記憶されている手先座標のうち、手先の前記カメラから見て奥行き方向の位置と向きとが移動先座標と同じものを移動元座標として設定し、その移動元座標に対応する履歴画像を移動元画像として設定し、
前記移動元座標及び前記移動先座標から求められる手先移動距離を、ワーク注視点移動距離とすると、
前記移動元画像内において、前記移動先画像上の前記注視領域からなる部分画像との画像特徴量の類似度を計算し、前記類似度が一定以上で、且つ最大となる画像領域を特定し、当該特定した画像領域が示す画像座標と前記移動先座標における前記注視領域が示す画像座標とから、前記注視領域の移動距離を画像注視点移動距離として計算し、
予め保持している前記カメラの像面距離と、前記ワーク注視点移動距離と、前記画像注視点移動距離とから、三角測量法により前記カメラと前記ワーク上の注視点との位置関係を求め、
前記位置関係を維持したまま、前記ワークを、前記姿勢の変更開始の指示に続いて与えられる回転方向及び回転速度に応じて回転させるように、前記ロボット本体に制御指令を出力する制御指令出力手段とを備えることを特徴とするロボットの制御方法。
【請求項５】
前記ロボット本体の手先座標の変化量が一定量以上となった場合に、前記ロボット本体の手先座標の変化量が一定量以上となった場合に前記手先座標の変化履歴を制御履歴として記憶すると共に、前記カメラが撮像した画像のデータを記憶することを特徴とする請求項４記載のロボットの制御方法。
【請求項６】
前記ロボット本体の手先座標が変化する方向が前記カメラの仮想撮像面に対して平行となった場合に、前記ロボット本体の手先座標の変化量が一定量以上となった場合に前記手先座標の変化履歴を制御履歴として記憶すると共に、前記カメラが撮像した画像のデータを記憶することを特徴とする請求項４又は５記載のロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット本体のハンドにより把持されたワークの画像を、固定されているカメラにより撮像して視覚検査を行うシステムにおいて、ワークの姿勢を変更する動作をロボット本体に実行させるロボットの制御装置及びロボットの制御方法に関する。
【背景技術】
【０００２】
ロボットのハンドにより把持されているワークについて、設備として固定されているカメラを用い視覚検査を行う場合に最適な撮像位置を設定するため、ティーチング時において、カメラからワークまでの撮像距離（位置関係）を維持したまま、ロボットのアームを動かしてワークの姿勢を変更することがある。例えば、カメラの撮像領域内にワークが位置するようにロボットの手先を移動させたが、カメラにより撮像されるワークの向きを変更したい、というような場合である。特許文献１には、２台のカメラを用いて得た視覚情報に基づいてワークの姿勢の変更を行う操作方式が開示されているが、コストやスペース等の問題から一般的には１台のカメラを用いて行うことが多い。
【０００３】
特許文献１の操作方式を１台のカメラを用いて実行することを想定すると、以下のような手順になる。
（１）カメラでワークの移動前の画像と、そこからワークを僅かに平行移動させた後の画像とをそれぞれ撮像する。
（２）ワークの移動前後の画像上で、注視点Ｐの座標をそれぞれ指定する。
（３）三角測量法によりカメラ側の座標系Ｏ’から見た注視点Ｐの相対位置を求める。
（４）ロボット側の絶対座標系Ｏから座標系Ｏ’への座標変換行列を用いて、対座標系Ｏから見た注視点Ｐの絶対位置を求める。
（５）ワークの移動前後の位置から、予め設定した距離Ｒとなる位置Ｐｎにワークの注視点を移動させる。
（６）位置Ｐｎを原点としてワークの姿勢を変更させるようロボットに指示を与える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−３１８３６１号公報（図１，段落［０００８］〜［００１０］参照）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の方式では、ユーザがティーチングを行う際に、カメラの画像上でワークの移動前後の座標を指定する（２）の操作を別途行う必要があり、ユーザの作業負担を増加させてしまう。また、ユーザがワークの姿勢の変更動作が行われることを意図して動作指示を行ったにもかかわらず、直接的には異なる（１）のカメラ移動や（５）のロボット側の動作が余分に実行されるため、ティーチング時間が長引くだけでなく、ユーザにストレスを感じさせてしまうという問題があった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、通常のティーチングとして行われるもの以外の動作を行わずとも、カメラとワークとの位置関係を維持しながら撮像対象物の姿勢を変更できるロボットの制御装置及びロボットの制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載のロボットの制御装置によれば、ティーチングが行われている期間に、ロボット本体の手先座標の変化履歴を制御履歴として記憶し、また、カメラが撮像した画像のデータを制御履歴と１対１で対応させ連続的に記憶する。そして、姿勢の変更を開始させる指示が与えられると、その時点でカメラにより撮像された画像データを移動先画像とし、その画像のフレーム中心を画像上注視点に設定し、またその時点のロボット本体の手先座標を移動先座標とし、制御履歴として記憶されている手先座標の中から移動元座標を選択し、その移動元座標に対応する履歴画像を移動元画像として設定する。
【０００８】
そして、移動元座標及び移動先座標からワーク注視点移動距離を求め、また、移動先画像と移動元画像間でのワーク上注視点の画像上の位置ずれを画像注視点移動距離（視差）として求めると、それらの距離とカメラの像面距離（レンズ中心からカメラ撮像素子面までの距離）とから、三角測量法を用いてカメラとワーク上注視点との位置関係を求める。ここで、カメラが持つ座標系とロボット本体の持つ座標系との間の関係は、既知（あるいは校正済み）であるとする。すると、求めた位置関係を維持したまま、与えられた方向に与えられた量だけワークを回転させるようにロボット本体に制御指令を出力する。
【０００９】
上記のようにロボットのティーチングが行われる場合は、まず、ワーク上注視点がカメラの画像に映るように大まかな位置決め動作が行わる。また、その次の段階では、画像検査がし易いように、ワーク上注視点がカメラの画像中心に映るように、手先位置の微調整動作が行われる。その微調整動作の際のロボットの手先座標が変化する方向は、ワークの大まかな位置決めが既に完了している状態なので、固定されているカメラの撮像素子面に対してほぼ平行になることが多い。
【００１０】
本来、三角測量法を用いてカメラからワーク上注視点までの距離を計算するためには、特許文献１のように余分な教示作業をユーザに意図的に行わせ、ワーク注視点移動距離と画像注視点移動距離を得る必要があった。これに対して、本提案手法では、上記に挙げたようなティーチング内で必ず行われる微調整動作内の特徴を活用することで、上記微調整期間内の制御履歴及び画像履歴から、ワーク注視点移動距離と画像注視点移動距離を自動的に得ることができる。したがって、ユーザは、微調整ティーチングが完了した後、ロボット本体の手先に把持されているワークがカメラの画像中央に捉えられた状態で、ワークの姿勢を変更する必要があると考えた時点で姿勢の変更開始の指示を与えて回転方向及び回転速度を指定すれば、ワーク上の注視点までの距離を得るための操作や指示をその段階から意識的に行わずとも、すぐにワークの姿勢の変更が行われることになる。
【００１１】
上記の制御プロセスでは、カメラ−ワーク上注視点間の位置関係の計算に必要なデータの取得が、微調整ティーチングが終了し、姿勢の変更開始の指示が与えられる瞬間までの過程で自動的に行われるから、（１）のカメラ撮像のためのワーク移動や（２）のワークの移動前後の画像座標を指定する操作といった余分な教示動作が必要なく、また姿勢の変更動作自体も、（５）の最適撮像位置への移動といった余分な動作が挿入されないので、ティーチング時間を長引かせず効率化を図ることができる。加えて、ユーザにストレスを感じさせないので、ユーザの意識をティーチング作業に集中させて、当該作業の理解を促すことにも貢献できる。
【００１２】
請求項２記載のロボットの制御装置によれば、制御履歴記憶手段，画像履歴記憶手段は、ロボット本体の手先座標の変化量が一定量以上となった場合に制御履歴及びカメラが撮像した画像のデータを記憶する。すなわち、微調整ティーチング期間の終了間際においては、ワーク上注視点が既に画像中心付近に撮像されており、ロボット本体の手先の移動量が極めて小さくなることがある。そのような場合について画像データを連続的に記憶させても、その記憶した画像データは、移動先画像との間で画像上注視点の位置ずれがほとんどない、三角測量法に用いるには適さないデータとなるため、メモリなどの記憶手段の容量を徒に増大させたり、或いは制御履歴・画像履歴内の必要なデータを上書きして消去してしまうことに繋がる。そこで、手先座標の変化量が一定量以上となった場合にだけ制御履歴及び画像データを記憶させれば、必要な記憶容量を低減することができ、或いは必要な制御履歴及び画像データが消去されることを回避できる。
【００１３】
三角測量を行うための履歴データとしては、カメラの仮想撮像面に対してロボット本体の手先が平行に移動している状態で得られる手先位置及び対応する画像データが適している。そこで、請求項３記載のロボットの制御装置によれば、制御履歴記憶手段，画像記憶手段は前記ロボット本体の手先座標が変化する方向が前記カメラの仮想撮像面に対して平行となった場合にのみ制御履歴及びカメラが撮像した画像のデータを記憶する。すなわち、三角測量に適したデータのみを記憶させるため、斯様に構成した場合も、データを記憶するために必要な容量を低減できる。
【図面の簡単な説明】
【００１４】
【図１】一実施例であり、（ａ）はティーチング完了後にワークの姿勢の変更を行わせる場合の処理，（ｂ）はティーチング中の制御履歴の記憶処理を示すフローチャート
【図２】軌道生成処理を示すフローチャート
【図３】視覚検査システムの構成を示す図
【図４】ハンドに把持されているワークを、カメラが画像として捉えている状態をモデル的に示す図
【図５】（ａ）は微調整ティーチング完了直前に手先位置がカメラ撮像素子面に平行に微調整される状態を示す平面図、（ｂ）はワークを把持した状態のハンドについてワーク上注視点とハンド（ツール）座標の中心の位置関係を示す図
【図６】三角測量法によりカメラとワーク上注視点間の距離（位置関係）Ｌを求める状態を示す図
【発明を実施するための形態】
【００１５】
以下、一実施例について図面を参照して説明する。図３は、垂直多関節型（６軸）ロボットを含む視覚検査システムの構成を示す。このロボット本体１は、ベース（回転軸）２上に、この場合６軸のアームを有している。前記ベース２上には、第１関節Ｊ１を介して第１のアーム３が回転可能に連結されている。この第１のアーム３には、第２関節Ｊ２を介して上方に延びる第２のアーム４の下端部が回転可能に連結され、さらに、この第２のアーム４の先端部には、第３関節Ｊ３を介して第３のアーム５が回転可能に連結されている。
【００１６】
この第３のアーム５の先端には第４関節Ｊ４を介して第４のアーム６が回転可能に連結され、この第４のアーム６の先端には第５関節Ｊ５を介して第５のアーム７が回転可能に連結され、この第５のアーム７には第６関節Ｊ６を介して第６のアーム８が回転可能に連結されている。なお、各関節Ｊ１〜Ｊ６においては、図示しないサーボモータにより各アーム３〜８を回転駆動するようになっている。アーム８の先にはハンド（ツール）９が装着されており、そのハンド９はワーク１０を把持している。
【００１７】
ロボット本体１と制御装置（コントローラ，制御指令出力手段）１１との間は、接続ケーブル１２によって接続されている。これにより、ロボット本体１の各軸を駆動するサーボモータは、制御装置１１により制御される。パッドコントローラ（入力手段）１３は、例えば横長の本体１４の両端側に、ユーザが左右両手でそれぞれ把持するための把持部１５Ｌ，１５Ｒが設けられており、ユーザが把持部１５Ｌ，１５Ｒを両手で把持した状態で、親指により押圧操作可能なジョイパッド１６Ｌ，１６Ｒが配置されている。また、把持部１５Ｌ，１５Ｒの図中上方には、人差し指により押圧操作可能なボタン１７Ｌ，１７Ｒが配置されている。
【００１８】
ＣＣＤ（Charge Coupled Device）又はＣＭＯＳイメージセンサを用いたカメラ（撮像手段）２１は、支持部材２２を介してロボット外部に固定されており、そのカメラ２１によりハンド９に把持されているワーク１０の画像を捉えて視覚検査を行う。制御装置１１には、パーソナルコンピュータ（パソコン）２３がケーブル２４を介して接続され、パソコン２３との間で、ロボットの現在位置の送信や動作コマンドの受信など、高速通信を実行するようになっている。パソコン２３には、メモリやハードディスクなどの記憶装置（記憶手段）が内蔵されている。パソコン２３は、制御履歴記憶手段，画像記憶手段，注視点設定手段，座標設定手段，実移動距離計算手段，画像上移動距離計算手段，位置関係計算手段を兼ねる。
【００１９】
パッドコントローラ１３は、接続ケーブル１８を経由してパソコン２３に接続され、通信インターフェイスを介してパソコン２３との間で入力された操作信号等のデータの高速通信を実行するようになっている。ジョイパッド１６Ｌ，１６Ｒ等が操作されて入力された操作信号等の情報は、パッドコントローラ１３からパソコン２３を介してロボットの動作コマンドに変換されて制御装置１１へ送信される。カメラ２１は、ケーブル２５を介してパソコン２３に接続されており、カメラ２１が捉えた画像のデータはパソコン２３に送信されて、ディスプレイ２３Ｄに表示される。
【００２０】
次に、本実施例の作用について図１及び図２，図４ないし図６を参照して説明する。本実施例では、カメラ２１によりワーク１０の画像を捉えて視覚検査を行うためロボットのティーチングを行い、カメラ２１の画像上でワーク１０の注視点を指定する。その際にユーザが、カメラ２１が捉えるワーク１０の姿勢を変更させるため、注視点を指定した際のカメラ２１−ワーク１０間の位置関係，すなわち撮像距離を維持した状態でワーク１０を回転させる指示を、パッドコントローラ１３を介して制御装置１１に出力する。その場合の処理について述べる。
【００２１】
先ず、動作原理について図４ないし図６を参照して説明する。図４は、ハンド９に把持されているワーク１０を、カメラ２１が画像として捉えている状態をモデル的に示している。画像検査を行うために、ワーク１０上の注視点をカメラ２１の画像中央に映るように微調整ティーチングを行う過程で、ロボット本体１の手先（ハンド９の中心）は画像中央に映るような位置を目指した軌跡を描く。よって、その過程における制御履歴・画像履歴を参照すれば、姿勢の変更開始の指示が入力された時と手先の位置・画像上のワーク上注視点の映り方が微小に異なるデータが得られる。
【００２２】
また、微調整ティーチング期間中は、図５（ａ）に示すように、カメラ２１の仮想撮像面に対してロボット本体１の手先は略平行に移動する。尚、ハンド９とワーク１０とは一体で動くため、ハンド９の中心の移動量はワーク１０の注視点の移動量に等しい（図５（ｂ）参照）。したがって、図６に示すように、姿勢の変更開始の指示を入力した時点での手先位置と画像、制御履歴より得られる手先位置と画像を参照し、それらより実際のワーク注視点移動距離と画像注視点移動距離（視差）を求めれば、カメラ２１の像面距離ｆを与えて三角測量法を用いることで、カメラとワーク上注視点間の距離（撮像距離）Ｌを計算できる。
【００２３】
以下、具体的な手順について図１を参照して説明する。図１（ｂ）は、ロボットのティーチングを行っている期間にパソコン２３が行う制御履歴及び画像履歴の記憶処理を示すフローチャートである。ステップＳ１１〜Ｓ１６のループ内で、パソコン２３は、ロボット本体１の手先位置の座標と、カメラ２１が撮像した画像データとを連続的にメモリに記憶させる。上記ループの周期は、例えば数１０ｍｓ程度である。ステップＳ１２では、手先位置の移動量，すなわち、今回の位置と前回の制御周期での位置との差が一定量（閾値）以上か否かを判断し、一定量以上であれば（ＹＥＳ）現在の位置及び画像データを記憶するためステップＳ１３に移行する。また、前記移動量が一定量未満であれば（ＮＯ）現在位置及び画像は記憶しない。
【００２４】
三角測量を行うための履歴データとしては、カメラの仮想撮像面に対してロボット本体の手先が平行に移動している状態で得られる手先位置及び対応する画像データが適している。そのため、ステップＳ１２の履歴記憶処理は、ロボット本体１の手先が、カメラ２１の仮想撮像面に対して平行に移動するようになった場合に行っても良い。
【００２５】
ここで、上記「一定量」をどのように決定するかについて説明する。制御履歴・画像履歴として記憶する間隔は、記憶したデータが三角測量法を用いた距離計算に利用可能なデータとなるぐらいの短さであることが望ましい。そこで、ワーク注視点移動距離が大きければ大きいほど画像注視点移動距離の算出誤差に伴う距離計算の誤差が小さくなる三角測量法の理論的な特性を鑑みて、例えばカメラ２１の画像上において、画像上で見て長手方向解像度の１００分の１以上のワーク上注視点の移動があれば、実用上、距離計算の誤差が無視できるものとする。この時、手先移動量の閾値を以下のように決定する。
（閾値）＝（１ピクセルの物理的なサイズ）×（手先−カメラ間概算距離）
×｛（画像長手方向解像度／１００）／（像面距離）…（１）
尚、（手先−カメラ間概算距離）については、レンズの公式より、レンズ焦点距離と像面距離から求まる概算値を使用する。これに具体数値例を与えて計算してみると、例えば以下のような値となる。現在のレンズの仕様から（手先−カメラ間概算距離）が２５０ｍｍであったとすると、
（閾値）＝５．４×１０-3×２５０×（６４０／１００）／１２
＝０．７２［ｍｍ］
上記の距離は、カメラ２１の一般的な撮像周期３３ｍｓで、ロボット本体１の手先をティーチング時の最高速度２５０ｍｍ／ｓで移動させた場合の移動距離の約８．５％に相当する。
【００２６】
再び、図１（ｂ）を参照する。ステップＳ１３では、その時点でパソコン２３のメモリに記憶させている履歴のデータ数が、前記メモリに設定されている領域の上限に達したか否かを判断する。上限に達していなければ（ＮＯ）、現在得ている手先の位置座標とカメラ２１の画像とをメモリに記憶させて履歴を追加する（ステップＳ１５）。一方、履歴のデータ数が上限に達した場合は（ＹＥＳ）、現在得ている手先の位置座標及び画像データを、既にメモリに記憶されている履歴のうち最も古いものに上書きして記憶させる（ステップＳ１４）。
【００２７】
図１（ａ）は、姿勢の変更開始の指示が入力された時にワーク１０の姿勢の変更を行わせる処理を示すフローチャートである。ユーザは、パッドコントローラ１３により、ロボット本体１のアーム８先端に、ハンド９により把持された状態のワーク１０を、ワーク上注視点を中心として、どちらの方向にどれだけの速度（角速度）で姿勢の変更動作をさせるかを入力指示する。この時、ユーザは、ジョイパッド１６Ｌをある方向にオン操作した際の傾き量で移動速度を指示し、オン操作している間が前記速度で移動する時間となる。そして、ユーザは、ジョイパッド１６Ｌを操作した瞬間に（ステップＳ１）、姿勢の変更制御が開始され、ステップＳ２〜Ｓ１０間の姿勢の変更処理ループが実行される。
【００２８】
次に、ステップＳ３において指示された速度がゼロでないか否かを判断し（ステップＳ４）、速度がゼロでなければ（ＹＥＳ）、ワーク１０を回転するための軌道が生成されているか否かを判断する（ステップＳ５）。軌道が生成されていなければ（ＮＯ）ステップＳ６に移行して、図２に示す軌道生成処理を実行する。
【００２９】
ここで、図２の処理について説明する。先ず。カメラ２１がワーク１０を捉えた状態で画像（１）を撮像し（ステップＳ２１）、その画像の中心において、ワーク１０上の注視点が投影された画素の周辺（Ｎ×Ｍ）画素分を注視領域として、その注視領域に属する画素群を参照元画像として登録する（ステップＳ２２）。例えばパソコン２３に内蔵されているメモリやハードディスクなどに記憶させる。初期値はＮ＝（画像幅）／４，Ｍ＝（画像高さ）／４として、図１のステップＳ１で回転方向指示が入力されるまでの間だけ、パッドコントローラ１３のジョイパッド１６Ｒにより注視領域サイズ（倍率）を調整できる。尚、注視点領域は回転指示量が入力された時点で確定される。
【００３０】
次に、制御履歴を探索し（ステップＳ２３）、カメラ２１から見て奥行き方向となる座標値とワーク１０の向きとが、現在位置と一致する履歴データがあるか否かを判断する（ステップＳ２４）。すなわち、これは、手先の移動方向がカメラ２１の仮想撮像面に対して平行となる動きを示した履歴があるか否かの判断である。上記履歴データが無ければ（ＮＯ）注視点距離Ｌの計算はできないので、ディスプレイ２３Ｄにエラーメッセージを表示させて（ステップＳ３０）、図１（ａ）のステップＳ６を抜けた時点で姿勢の変更処理を終了する。
【００３１】
一方、ステップＳ２４において対象となる履歴データが存在する場合は（ＹＥＳ）、その履歴データに対応する手先位置とカメラ２１の画像（２）とを取得する（ステップＳ２５）。それから、画像（２）について、画像（１）の注視点に対応する点を探索する（ステップＳ２６）。ここで、カメラが持つ座標系とロボット本体の持つ座標系との間の関係は、既知（あるいは校正済み）であるとする。
【００３２】
この場合対応点は、ロボット本体１の手先；ワーク１０が移動元座標から移動先座標に平行に移動しているので、図６に示す移動元から移動先への移動ベクトルと逆方向に延びたエピポーラ線上に存在する。この線分上を走査して各画素位置毎に類似度を計算することで、画像（１）と画像濃淡値が最も類似している画像位置（画像領域）を、例えば正規化相互相関法などを用いて探索する（すなわち、画像特徴量の類似度が一定以上で且つ最大となる画像領域を特定することに対応する）。ここで「一定以上」の「一定」を設定する場合は、例えば０．７（類似度７０％）程度とする。
【００３３】
続くステップＳ２７において、画像（１），（２）間で類似する部分があると判断すれば（ＹＥＳ）、三角測量法を用いて注視点までの距離Ｌを計算する（ステップＳ２８）。すなわち、画像（１），（２）に対応する注視点位置から注視点間距離を求め、画像（１），（２）上の注視点から視差を求めれば、注視点距離Ｌ（位置関係）は次式で計算される。
（注視点距離Ｌ）＝（注視点間距離）×（像面距離ｆ）／（視差）  …（２）
距離Ｌを計算すると、その距離Ｌに基づいてハンド９；ワーク１０の目標旋回軌道を生成し（ステップＳ２９）処理を終了する。
【００３４】
ここで、図１（ａ）の処理に移行すると、ステップＳ７において、生成済みの目標旋回軌道上でワーク１０を指定された回転方向及び回転量（回転速度×時間）で回転させる。それから、姿勢の変更処理の終了指示があるか否か、すなわち、ユーザがジョイパッド１６Ｌをオフにしたか否かをステップＳ８及びＳ９で判断する。姿勢の変更処理の終了指示が無ければ（ステップＳ９：ＮＯ）ステップＳ２〜Ｓ１０のループ実行を継続し、終了指示があれば（ＹＥＳ）処理を終了する。
【００３５】
以上のように本実施例によれば、パソコン２３は、ティーチング期間中に、ロボット本体１の手先座標の変化履歴を制御履歴として記憶し、また、カメラ２１が撮像した画像のデータを画像履歴と１対１で対応させ連続的に記憶する。そして、姿勢の変更を開始させる指示が与えられると、その時点でカメラ２１により撮像されているワーク１０の画像データを移動先座標とし、その画像のフレーム中心を注視点に設定し、またその時点のロボット本体１の手先座標を移動先座標とし、制御履歴として記憶されている最新の手先座標とそれに対応する履歴画像を選択し、移動元座標として設定する。
【００３６】
そして、移動元座標及び移動先座標からワーク１０の注視点移動距離を求め、移動先画像と移動元画像間でのワーク上注視点の画像上の位置ずれを画像注視点移動距離（視差）とすると、それらの距離とカメラ２１のレンズ像面距離ｆとから、三角測量法を用いてカメラ２１とワーク上の注視点との注視点距離Ｌを求める。すると、求めた注視点距離Ｌを維持したまま、与えられた方向に与えられた量だけワーク１０を回転させるように制御装置１１を介してロボット本体１に制御指令を出力する。
したがって、ユーザは、ティーチングの指示を行った後、ロボット本体１のハンド９に把持されているワーク１０がカメラ２１の画像内に捉えられた状態を参照しながら、ワーク１０の姿勢を変更する必要があると考えた時点で姿勢の変更開始の指示を与えて回転方向及び回転速度を指定すれば、ワーク１０上の注視点までの距離を得るための操作や指示を意識的に行わずとも、ワーク１０の姿勢の変更が行われる。
【００３７】
上記の制御プロセスでは、カメラ−ワーク上注視点間の位置関係の計算に必要なデータの取得が、微調整ティーチングが終了し、姿勢の変更開始の指示が与えられる瞬間までの過程で自動的に行われるから、カメラ２１による撮像のためのワーク１０の移動や、ワーク１０の移動前後の画像座標を指定する操作といった余分な教示動作が必要なく、また姿勢の変更動作自体も、最適撮像位置への移動といった余分な動作が挿入されないので、ティーチング時間を長引かせず効率化を図ることができる。加えて、ユーザにストレスを感じさせないので、ユーザの意識をティーチング作業に集中させて、当該作業の理解を促すことにも貢献できる。
【００３８】
また、パソコン２３は、ロボット本体１の手先座標の変化量が一定量以上となった場合に制御履歴及びカメラ２１が撮像した画像のデータを記憶する。すなわち、微調整ティーチング期間の終了間際においては、ワーク上注視点が既に画像中心付近に撮像されており、ロボット本体１の手先の移動量が極めて小さくなることがある。そのような場合について画像データを連続的に記憶させても、それらの画像データは、移動先画像との間で画像上注視点の位置ずれが殆どなく三角測量法に用いるには適さないデータとなる。すると、利用価値がないデータのためにメモリ等の記憶手段の容量を徒に増大させたり、或いは制御履歴・画像履歴内の必要なデータを上書きして消去してしまうことに繋がる。そこで、手先座標の変化量が一定量以上となった場合にだけ制御履歴及び画像データを記憶させれば、必要な記憶容量を低減することができ、或いは必要な制御履歴及び画像データが消去されることを回避できる。
【００３９】
更に、パソコン２３は、ロボット本体１の手先座標が変化する方向がカメラ２１の仮想撮像面に対して平行となった場合にのみ制御履歴及びカメラが撮像した画像のデータを記憶する。すなわち、三角測量に適したデータのみを記憶させるので、データを記憶するために必要なメモリの容量を低減できる。
【００４０】
本発明は上記し、又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
手先移動量の閾値（一定量）は、個別の設計に応じて適宜変更すれば良い。
また、メモリの容量に問題が無く、適切な視差量が得られる位置データを選択することに問題が無ければ、ステップＳ１２を削除しても良い。
移動元座標として必ずしも最新の履歴データを選択する必要はなく、三角測量法に使用することができるデータを選択すれば良い。
ロボット本体の軸数は６軸に限らない。また、垂直多関節型のロボットに限ることなく、水平多関節型のロボットに適用しても良い。
パソコン２３は、制御装置１１と一体化していても良い。
【符号の説明】
【００４１】
図面中、１はロボット本体、９はハンド、１０はワーク、１１は制御装置（制御指令出力手段）、２１はカメラ，２３はパーソナルコンピュータ（制御履歴記憶手段，画像記憶手段，注視点設定手段，座標設定手段，実移動距離計算手段，画像上移動距離計算手段，位置関係計算手段）を示す。
【図１】
0005447047.tif 000002
【図２】
0005447047.tif 000003
【図３】
0005447047.tif 000004
【図４】
0005447047.tif 000005
【図５】
0005447047.tif 000006
【図６】
0005447047.tif 000007