(57)【特許請求の範囲】
【請求項１】
ロボット本体の適宜位置に装着されたカメラと、画像表示手段と、教示手段と、画像処理機能付ロボットコントローラとを備え、
前記画像処理機能付ロボットコントローラが、サーボ制御部と画像表示手段制御部とを有し、
前記画像表示手段と前記教示手段とが一体化され、
前記教示手段がワークの特徴点の３次元位置の計測をなす特徴点３次元位置計測モードに設定可能とされ、
前記サーボ制御部によるロボットの各軸を駆動するサーボモータの制御と、前記画像表示手段制御部による画像表示処理とが並列処理され、
前記カメラにより撮像された画像が、ロボットの各軸を駆動中においても前記画像表示手段制御部により処理されて前記画像表示手段に表示され、
前記特徴点３次元位置計測モードにおいて、以下の処理をする特徴点３次元位置計測処理をなすことを特徴とするロボットシステム。
（１）  カメラによりワークを撮像する。
（２）  撮像画像における位置計測の対象となる点の指定に応答して、該指定された点の付近の画像から２本の直線を検出する。
（３）  前記２本の直線の交点を検出する。
（４）  検出された交点を中心に少数の画素を画像メモリに格納する。
（５）  前記ワークを撮像した状態におけるカメラの位置および向きと、前記交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（６）  撮像された画像における前記交点が前記格納された画像メモリの画素中に納まるようカメラを微少距離移動させて前記ワークを再度撮像する。
（７）  前記ワークを再度撮像した撮像画像から前回検出された交点の位置に最も近い位置を検出する。
（８）  今回検出された位置において前回検出した直線と傾きが近い直線を２本検出してその交点を検出する。
（９）  前記ワークを再度撮像した状態におけるカメラの位置および向きと、再度検出された交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（１０）  （５）〜（９）を所定回繰返して得られた前記カメラの主点を通る各直線の交点を最小二乗法により算出し、その算出された交点を特徴点とする。
【請求項２】
ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラとを備えてなるロボットシステムの利用方法であって、
前記教示手段を特徴点３次元位置計測モードに設定する手順と、
前記カメラによりワークを撮像してその画像を画像表示手段に表示する手順と、
表示画像上で特徴点を指定する手順と、
指定された特徴点について特徴点３次元位置計測処理する手順
とを含み、
前記特徴点３次元位置計測処理する手順において、以下の処理をなすことを特徴とするロボットシステムの利用方法。
（１）  カメラによりワークを撮像する。
（２）  撮像画像における位置計測の対象となる点の指定に応答して、該指定された点の付近の画像から２本の直線を検出する。
（３）  前記２本の直線の交点を検出する。
（４）  検出された交点を中心に少数画素を画像メモリに格納する。
（５）  前記ワークを撮像した状態におけるカメラの位置および向きと、前記交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（６）  撮像された画像における前記交点が前記格納された画像メモリの画素中に納まるようカメラを前記交点を中心とする球面上を微少移動させて前記ワークを再度撮像する。
（７）  前記ワークを再度撮像した撮像画像から前回検出された交点の位置に最も近い位置を検出する。
（８）  今回検出された位置において前回検出した直線と傾きが近い直線を２本検出してその交点を検出する。
（９）  前記ワークを再度撮像した状態におけるカメラの位置および向きと、再度検出された交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（１０）  （５）〜（９）を所定回繰返して得られた前記カメラの主点を通る各直線の交点を最小二乗法により算出し、その算出された交点を特徴点とする。
【請求項３】
カメラによりマークを撮像し、その撮像したマークによりアームエンコーダのキャリブレーションをなすことを特徴とする請求項２記載のロボットシステムの利用方法。
【請求項４】
カメラによりマークを撮像し、その撮像したマークにより、アームエンコーダの異状が検出されることを特徴とする請求項２記載のロボットシステムの利用方法。
【請求項５】
ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラとを備えてなるロボットシステムの利用方法であって、
前記教示手段を曲線３次元位置計測モードに設定する手順と、
前記カメラによりワークを撮像してその画像を画像表示手段に表示する手順と、
表示画像上で計測処理の対象となるワークの曲線がほぼ中央に表示されるようにしてその計測範囲を指定する手順と、
指定された計測範囲について曲線３次元位置計測処理する手順
とを含み、
前記曲線３次元位置計測処理する手順において、以下の処理をなすことを特徴とするロボットシステムの利用方法。
（１）  カメラによりワークを撮像する。
（２）  撮像画像における計測する範囲の指定に応答して、該指定された範囲において曲線を検出する。
（３）  画面上に表示された曲線が所定方向に移動するようカメラを回動させて前記曲線を再度撮像する。
（４）  撮像画像から曲線を再度検出する。
（５）  前回および今回のカメラの位置および向きならびに前回および今回検出された曲線の３次元位置を算出してその３次元的中心を算出する。
（６）  （３）〜（５）を所定回繰返して得られた曲線から曲線の３次元位置を計測する。
【請求項６】
教示手段をツール角度算出モードに設定する手順と、
カメラによりワークを撮像してその画像を画像表示手段に表示する手順と、
表示画像上でツール角度を指定する範囲を設定する手順と、
設定された範囲について曲線３次元位置計測処理する手順と、
３次元位置が計測された曲線に対してツール角度算出処理する手順
とを含み、
前記ツール角度算出処理する手順において、以下の処理をなしてツール角度の算出がなされることを特徴とする請求項５記載のロボットシステムの利用方法。
（１）ツールの角度を算出しようとする曲線上に目標点を設定し、その目標点前後の所要数の近傍点についてその接線方向を算出する。
（２）目標点と各近傍点との差ベクトルを算出する。
（３）得られた差ベクトルの平均ベクトルを算出する。
（４）得られた平均ベクトルから接線方向成分を除去する。
（５）接線方向成分が除去されたベクトルを曲率中心方向ベクトルの代用ベクトルとしてツール角度を算出する。
【請求項７】
前記曲線３次元位置計測処理が２地点基準曲線３次元位置計測処理を用いてなされることを特徴とする請求項５または６記載のロボットシステムの利用方法。
【請求項８】
前記曲線３次元位置計測処理が多地点基準曲線３次元位置計測処理を用いてなされることを特徴とする請求項５または６記載のロボットシステムの利用方法。
【請求項９】
ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラと、を備えてなるロボットシステムの利用方法であって、
前記教示手段をツール経路作成モードに設定する手順と、
ワーク表面上にツール移動経路に沿って所定間隔でマークを形成する手順と、
前記マークを撮像する手順と、
撮像された画像に対してツール経路作成処理する手順
とを含み、
前記ツール経路作成処理する手順において、各マークの３次元位置を請求項２記載の方法により算出し、これら算出された各３次元位置を補間曲線により補間してツールの移動経路の作成がなされる
ことを特徴とするロボットシステムの利用方法。
【請求項１０】
ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラと、を備えてなるロボットシステムの利用方法であって、
前記教示手段をツール経路作成モードに設定する手順と、
ワーク表面上にツール移動経路に沿ってラインを形成する手順と、
前記ラインを撮像する手順と、
撮像された画像に対してツール経路作成処理する手順
とを含み、
前記ツール経路作成処理する手順において、前記ラインの３次元位置を請求項５、７または８記載の方法により算出し、その算出されたラインをツールの移動経路とする
ことを特徴とするロボットシステムの利用方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はロボットシステムおよびその利用方法に関する。さらに詳しくは、簡素な構成にもかかわらず画像処理機能を有してなるロボットシステムおよびその利用方法に関する。
【０００２】
【従来の技術】
産業用ロボット（以下、単にロボットという）の適用において画像処理の需要が高まっており、今後、ロボットの半数近くに画像処理装置が搭載されると予測されている。そのため、ロボットに画像処理装置を搭載することに関して種々の提案がなされている。
【０００３】
例えば、特開平７−３４２８１８号公報には、ロボットコントローラの表示装置（ティーチペンダント）を画像処理装置の表示器として使用することができる視覚センサ付ロボット装置が提案されている。
【０００４】
特開昭５９−９５４０５号公報には、ワーク識別データと焦点位置との対応関係をあらかじめメモリに保存し、ワーク識別データを受け取った場合に、対応する焦点位置へ焦点を設定する視覚センサ付工業用ロボットにおける焦点調整方式が提案されている。
【０００５】
特開平４−３５２２０４号公報および特開平４−３５２２０５号公報には、画像処理プログラムと把持動作プログラムとを一つのユーザプログラムに記述し、ついでこのプログラムを解釈して画像処理部および把持部に共有メモリ経由で命令を伝送する視覚を用いた自動把持装置の制御方法が提案されている。
【０００６】
特開平１１−１３４４８４号公報には、ＣＰＵとは別に積和演算を行う画像処理部を設け、カメラからの画像をＤＭＡを用いて画像処理部へデータを伝送する画像処理装置が提案されている。
【０００７】
特開昭６１−２７９４８０号公報には、１台のカメラにより撮像された画像をライトペン等でポインティングすることであらかじめ判明している平面上の位置を入力する方法と、異なる方向に設置された２台のカメラの画像をポイントすることで３次元位置を入力する方法に関するロボットの作業点教示方法が提案されている。
【０００８】
特開平８−２３８３４１号公報には、カメラにより撮像された画像上でマウス等によりワークの輪郭をなぞることにより、画像上で２次元位置をポインティングし、ついで画像上でポインティングされた２次元位置をＣＡＤデータを用いて３次元位置に変換するロボットのオフライン教示装置が提案されている。
【０００９】
しかしながら、特開平７−３４２８１８号公報の提案においては、画像の伝送方式、ロボット制御装置側および表示装置側の画像処理方式が不明であるので、そのまま汎用化するのが困難であるという問題がある。
【００１０】
特開昭５９−９５４０５号公報の提案においては、あらかじめワーク識別データを設定する必要があるとともに、焦点の設定しかできないので、適用範囲が狭いという問題がある。
【００１１】
特開平４−３５２２０４号公報および特開平４−３５２２０５号公報の提案においては、画像処理部に専用のＣＰＵおよびメモリを有しているので、装置が大型化するという問題がある。
【００１２】
特開平１１−１３４４８４号公報の提案においては、画像処理部が別個に設けられているので、前記と同様に装置が大型化するという問題がある。
【００１３】
特開昭６１−２７９４８０号公報の提案においては、複数のカメラが必要となるため、構成が煩雑化するという問題がある。
【００１４】
特開平８−２３８３４１号公報の提案においては、ＣＡＤデータを利用していため、装置が大型化するという問題がある。
【００１５】
【発明が解決しようとする課題】
本発明はかかる従来技術の課題に鑑みなされたものであって、画像処理機能を有しながら装置構成が簡素化されてなるロボットシステムおよびその利用方法を提供することを目的としている。
【００１７】
【課題を解決するための手段】
本発明のロボットシステムは、ロボット本体の適宜位置に装着されたカメラと、画像表示手段と、教示手段と、画像処理機能付ロボットコントローラとを備え、
前記画像処理機能付ロボットコントローラが、サーボ制御部と画像表示手段制御部とを有し、
前記画像表示手段と前記教示手段とが一体化され、
前記教示手段がワークの特徴点の３次元位置の計測をなす特徴点３次元位置計測モードに設定可能とされ、
前記サーボ制御部によるロボットの各軸を駆動するサーボモータの制御と、前記画像表示手段制御部による画像表示処理とが並列処理され、
前記カメラにより撮像された画像が、ロボットの各軸を駆動中においても前記画像表示手段制御部により処理されて前記画像表示手段に表示され、
前記特徴点３次元位置計測モードにおいて、以下の処理をする特徴点３次元位置計測処理をなすことを特徴とするロボットシステム。
（１）  カメラによりワークを撮像する。
（２）  撮像画像における位置計測の対象となる点の指定に応答して、該指定された点の付近の画像から２本の直線を検出する。
（３）  前記２本の直線の交点を検出する。
（４）  検出された交点を中心に少数の画素を画像メモリに格納する。
（５）  前記ワークを撮像した状態におけるカメラの位置および向きと、前記交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（６）  撮像された画像における前記交点が前記格納された画像メモリの画素中に納まるようカメラを微少距離移動させて前記ワークを再度撮像する。
（７）  前記ワークを再度撮像した撮像画像から前回検出された交点の位置に最も近い位置を検出する。
（８）  今回検出された位置において前回検出した直線と傾きが近い直線を２本検出してその交点を検出する。
（９）  前記ワークを再度撮像した状態におけるカメラの位置および向きと、再度検出された交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（１０）  （５）〜（９）を所定回繰返して得られた前記カメラの主点を通る各直線の交点を最小二乗法により算出し、その算出された交点を特徴点とする。
【００２５】
一方、本発明のロボットシステムの利用方法の第１形態は、ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラとを備えてなるロボットシステムの利用方法であって、
前記教示手段を特徴点３次元位置計測モードに設定する手順と、
前記カメラによりワークを撮像してその画像を画像表示手段に表示する手順と、
表示画像上で特徴点を指定する手順と、
指定された特徴点について特徴点３次元位置計測処理する手順
とを含み、
前記特徴点３次元位置計測処理する手順において、以下の処理をなすことを特徴とするロボットシステムの利用方法。
（１）カメラによりワークを撮像する。
（２）  撮像画像における位置計測の対象となる点の指定に応答して、該指定された点の付近の画像から２本の直線を検出する。
（３）  前記２本の直線の交点を検出する。
（４）  検出された交点を中心に少数画素を画像メモリに格納する。
（５）  前記ワークを撮像した状態におけるカメラの位置および向きと、前記交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（６）  撮像された画像における前記交点が前記格納された画像メモリの画素中に納まるようカメラを前記交点を中心とする球面上を微少移動させて前記ワークを再度撮像する。
（７）  前記ワークを再度撮像した撮像画像から前回検出された交点の位置に最も近い位置を検出する。
（８）  今回検出された位置において前回検出した直線と傾きが近い直線を２本検出してその交点を検出する。
（９）  前記ワークを再度撮像した状態におけるカメラの位置および向きと、再度検出された交点の位置とから、前記カメラの主点と前記交点とを通る直線の式を算出する。
（１０）  （５）〜（９）を所定回繰返して得られた前記カメラの主点を通る各直線の交点を最小二乗法により算出し、その算出された交点を特徴点とする。
その場合、カメラによりマークを撮像し、その撮像したマークによりアームエンコーダのキャリブレーションをなしたり、カメラによりマークを撮像し、その撮像したマークにより、アームエンコーダの異状が検出されたりするのが好ましい。
【００２６】
本発明のロボットシステムの利用方法の第２形態は、ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラとを備えてなるロボットシステムの利用方法であって、
前記教示手段を曲線３次元位置計測モードに設定する手順と、
前記カメラによりワークを撮像してその画像を画像表示手段に表示する手順と、
表示画像上で計測処理の対象となるワークの曲線がほぼ中央に表示されるようにしてその計測範囲を指定する手順と、
指定された計測範囲について曲線３次元位置計測処理する手順
とを含み、
前記曲線３次元位置計測処理する手順において、以下の処理をなすことを特徴とするロボットシステムの利用方法。
（１）  カメラによりワークを撮像する。
（２）  撮像画像における計測する範囲の指定に応答して、該指定された範囲において曲線を検出する。
（３）  画面上に表示された曲線が所定方向に移動するようカメラを回動させて前記曲線を再度撮像する。
（４）  撮像画像から曲線を再度検出する。
（５）  前回および今回のカメラの位置および向きならびに前回および今回検出された曲線の３次元位置を算出してその３次元的中心を算出する。
（６）  （３）〜（５）を所定回繰返して得られた曲線から曲線の３次元位置を計測する。
【００２７】
本発明のロボットシステムの利用方法の第２形態においては、教示手段をツール角度算出モードに設定する手順と、
カメラによりワークを撮像してその画像を画像表示手段に表示する手順と、
表示画像上でツール角度を指定する範囲を設定する手順と、
設定された範囲について曲線３次元位置計測処理する手順と、
３次元位置が計測された曲線に対してツール角度算出処理する手順
とを含み、
前記ツール角度算出処理する手順において、以下の処理をなしてツール角度の算出がなされるのが好ましい。
（１）ツールの角度を算出しようとする曲線上に目標点を設定し、その目標点前後の所要数の近傍点についてその接線方向を算出する。
（２）目標点と各近傍点との差ベクトルを算出する。
（３）得られた差ベクトルの平均ベクトルを算出する。
（４）得られた平均ベクトルから接線方向成分を除去する。
（５）接線方向成分が除去されたベクトルを曲率中心方向ベクトルの代用ベクトルとしてツール角度を算出する。
【００２８】
ここで、前記曲線３次元位置計測処理は、例えば２地点基準曲線３次元位置計測処理、あるいは多地点基準曲線３次元位置計測処理を用いてなされる。
【００２９】
本発明のロボットシステムの利用方法の第３形態は、ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラと、を備えてなるロボットシステムの利用方法であって、
前記教示手段をツール経路作成モードに設定する手順と、
ワーク表面上にツール移動経路に沿って所定間隔でマークを形成する手順と、
前記マークを撮像する手順と、
撮像された画像に対してツール経路作成処理する手順
とを含み、
前記ツール経路作成処理する手順において、各マークの３次元位置を前記特徴点３次元位置計測処理により算出し、これら算出された各３次元位置を補間曲線により補間してツールの移動経路の作成がなされることを特徴とする。
【００３０】
本発明のロボットシステムの利用方法の第４形態は、ロボット本体の適宜位置に装着された単一のカメラと、表示画面上で位置指定が可能な画像表示手段と、教示手段と、画像処理機能付ロボットコントローラと、を備えてなるロボットシステムの利用方法であって、
前記教示手段をツール経路作成モードに設定する手順と、
ワーク表面上にツール移動経路に沿ってラインを形成する手順と、
前記ラインを撮像する手順と、
撮像された画像に対してツール経路作成処理する手順
とを含み、
前記ツール経路作成処理する手順において、前記ラインの３次元位置を前記曲線３次元位置計測処理により算出し、その算出されたラインをツールの移動経路とすることを特徴とする
【００３１】
【作用】
本発明のロボットシステムは、前記の如く構成されているので、画像処理機能を備えているにもかかわらず、ロボットシステムの構成が簡素化される。
【００３２】
【発明の実施の形態】
以下、添付図面を参照しながら本発明を実施形態に基づいて説明するが、本発明はかかる実施形態のみに限定されるものではない。
【００３３】
本発明の一実施形態に係るロボットシステムを図１および図２にブロック図で示し、このロボットシステムＳは、ロボット本体１０と、撮像手段２０と、画像表示手段３０と、教示手段４０と、画像処理機能付ロボットコントローラ５０と、表示手段３０および教示手段４０を一体化してなるティーチペンダント６０とを主要構成要素として備えてなる。
【００３４】
ロボット本体１０は、例えば多関節ロボットとされる。
【００３５】
撮像手段２０は、例えばＩＥＥＥ１３９４やＵＳＢなどのシリアル通信インターフェースを有するデジタルＣＣＤカメラとされて、ロボットアーム（以下、単にアームという）の適宜位置に装着される。その場合、アームの移動によりワークまでの位置が変化することが考えられるので、オートフォーカス、オートアイリス機能を有するものとされてもよい。但し、設定に時間を要するようなときには、外部からマニュアル操作でフォーカスやアイリスが設定できるようにされているのが好ましい。
【００３６】
しかして、この撮像手段（以下、単にカメラということもある）２０により撮像された画像データは、所要数のデータブロックに分割された後、画像処理機能付ロボットコントローラ５０からの送信開始信号に応じて画像処理機能付ロボットコントローラ５０に送信される。
【００３７】
画像表示手段３０と教示手段４０とは、図３に示すように、例えば液晶ディスプレイ付ティーチペンダント（以下、単にティーチペンダントという）６１に一体化されている。
【００３８】
画像表示手段は３０、画像処理機能付ロボットコントローラ５０から伝送されてくる画像信号を受信する画像受信部３１と、この画像受信部３１により受信された画像データを表示する液晶ディスプレイ３２とを備えてなるものとされる。また、この画像表示手段３０は、ポインティング・デバイス等により表示画像上において点の指定ができるようにもされている。なお、画像受信部３１および液晶ディスプレイ３２は、従来より画像表示装置に用いられている公知のものと同様とされているのでその構成の詳細な説明は省略する。
【００３９】
教示手段４０は、キー操作により教示データを入力するキー入力装置４１と、液晶ディスプレイ３２により表示された画像をタッチすることにより教示データを入力するタッチパネルインターフェース４２と、前記両者を制御するとともにそれらからの信号を画像処理機能付ロボットコントローラ５０に送出するＣＰＵ（演算処理装置）４３と、画像処理機能付ロボットコントローラ５０との信号の遣り取りをするシリアルインターフェース４４とを備えてなるものとされる。ここで、タッチパネルインターフェース４２は、細かい位置指定が必要であるところから、アナログ式とされるのが好ましい。なお、画素程度の精度で位置指定がなし得るポインタが設けられている場合には、デジタル式とされてもよい。
【００４０】
また、この教示手段４０は、切替スイッチによりアームの動作に関する教示と、撮像条件および画像処理に関する教示との双方の教示がなし得るようにされている。つまり、アーム教示モードと画像教示モードとの切替がなし得るようにされている。ただし、画像教示モードにおいてもアームを動作させる必要があるところから、例えば撮像手段２０の位置を変更する必要があるところから、画像教示モードにおいても教示手段４０によりアームの動作ができるようにされている。かかる構成は、例えば画像教示モードにおいては付加的に撮像条件および画像処理に関する教示に使用するキーなどが操作できるようにすることにより実現される。
【００４１】
なお、この教示手段４０による画像処理関連の教示については後述するが、アーム自体の教示については従来と同様であるので、その説明は省略する。
【００４２】
画像処理機能付ロボットコントローラ５０は、ＣＰＵ（演算処理装置）からなる演算処理部５１と、撮像手段２０からのデジタル画像データを受信する画像受信部５２と、ロムやラムなどからなる記憶部５３と、ロボットの各軸を駆動するサーボモータを制御するサーボ制御部５４と、画像表示手段制御部５５と、教示手段接続部５６と、プリンタや外部記憶装置などの外部機器との信号の遣り取りを行う外部機器接続部５７と、前記各部の信号の遣り取りに供するデータバスとを備えてなるものとされる。
【００４３】
演算処理部５１を構成しているＣＰＵは、画像処理専用プロセッサを用いずに画像処理も行う必要があるところから、ＳＩＭＤ機能を有するＣＰＵとされる。かかる機能を有するＣＰＵを用いることにより、６４ビットのレジスタに１画素８ビットのデータ８個を記憶部５３の画像メモリから取り込むと同時に、基準値と比較して２値化を行うことができる。また、８個の積和演算を同時になし得るＳＩＭＤ演算を適用できるので、画像とマスクデータとの積を９個とって、その合計を算出する必要がある３ｘ３画素の画像フィルタリング演算も比較的高速に処理できる。
【００４４】
画像受信部５２は、撮像手段２０から送信されてくるシリアルデータを受信できるインターフェース５２ａと、受信したシリアルデータを一時的に保持するバッファ５２ｂとを備えてなるものとされる（図４参照）。例えば、撮像手段２０が有するＩＥＥＥ１３９４やＵＳＢなどのシリアル通信インターフェースに対応したインターフェースと、ＦＩＦＯとを備えてなるものとされる。
【００４５】
記憶部５３を構成しているラムのうちの画像メモリは、画像受信部５２により受信された画像データ（シリアルデータ）をＣＰＵの指令に応じて迅速に記憶する必要があるところから、例えばシンクロナスＤＲＡＭとされる。
【００４６】
画像表示制御部５５は、ＣＰＵからの指令に応じて記憶部５３の画像メモリから読み出された画像データを一時的に記憶する出力用画像メモリ５５ａと、出力用画像メモリ５５ａに記憶されている画像データを読み出して出力するグラフィクコントローラ５５ｂと、グラフィクコントローラ５５ｂからの信号を受信して画像表示手段３０に伝送する画像送信手段５５ｃとを備えてなるものとされる。なお、出力用画像メモリ５５ａ、グラフィクコントローラ５５ｂおよび画像送信手段５５ｃは、従来より画像表示装置に用いられている公知のものと同様とされているので、その構成の詳細な説明は省略する。
【００４７】
教示手段接続部５６は、例えば教示手段からの教示データ（シリアルデータ）を受信できるシリアルインターフェース（ティーチペンダントインターフェース）とされる。そして、このシリアルインターフェースを介して画像処理機能付ロボットコントローラ５０に入力された教示データは、ＣＰＵの指令により記憶部５３のラムの所定位置に格納される。
【００４８】
サーボ制御部５４、外部機器接続部５７は、従来よりロボットコントローラに用いられている公知のものと同様であるのでその構成の詳細な説明は省略する。
【００４９】
次に、かかる構成とされているロボットシステムＳにおける処理について説明する。
【００５０】
ロボットのアームを動作させるための命令文および画像処理に関する命令文のフォーマット等は、ロボット制御に用いられているものに統一する。こうすることにより、命令文作成における煩雑さが解消される。そして、作成された命令文はアーム制御と画像処理とは別プロセスとして処理される。つまり、並列処理される。この場合、画像処理のプロセスの優先順位は、アーム制御のプロセスの優先順位より低くされて、アームの動作に支障がないようにされている。また、アーム制御と画像処理とは別プロセスとして処理することにより、アームが停止している場合には、アーム制御のプロセスが短時間で終了するので、画像処理に多くの時間を割当ることができる。ここで、これらの命令文はユーザも作成可能とされている。
【００５１】
なお、これらの命令文の中には、アーム制御の命令文と画像処理の命令文とが混在しているものがあるが、そのような命令文は記憶部のロムの所定位置に格納され、そして実行時にＣＰＵに読み出されて、アーム制御に関する部分は別プロセスとして実行されているアーム制御プログラムの所定位置に挿入される一方、画像処理に関する部分は同様に別プロセスとして実行されている画像処理プログラムの所定位置に挿入される。
【００５２】
また、アーム動作命令や画像処理に関する命令の中には処理完了までに長時間を要するものもあるので、処理の開始を指示する命令文、処理の完了を調べる命令文、処理の完了まで待つ命令文、指示を行い動作の完了まで待たせる命令文が用意されている。このような命令文を用意することにより、画像処理中にアームを動作させる命令文を実行させることが可能となる。
【００５３】
次に、教示手段４０による画像処理に関する教示について説明する。
【００５４】
切替スイッチを画像教示モードに切替え、液晶ディスプレイ３２に画像教示関連メニューを表示させる。例えば、検出エリア設定メニュー、撮像手段２０の撮像条件設定メニュー、撮像画像処理条件設定メニューなどを表示させる。
【００５５】
そして、例えば撮像手段２０の撮像条件設定メニューにタッチすると、アイリス開度やフォーカス位置の設定画面に切替えられる。それと同時に、液晶ディスプレイ３２の画面上にウインドウＭが形成されて撮像手段２０からの画像が表示される。アームを適宜移動させて撮像手段２０の向きおよび位置を調整した後、アイリス開度および焦点位置を設定する。ついで、得られたアーム位置、アイリス開度、焦点位置などを画像処理機能付ロボットコントローラ５０の記憶部５３のラムに名前を付けて格納する。このようにすることにより、動作時にその名前を呼び出して撮像手段２０およびアームを前記条件に自動的に設定することができる。しかして、かかる一連の動作をワークＷの所望範囲について行うことにより、撮像手段２０に関する教示が完了する。
【００５６】
次に、このロボットシステムＳによるワークＷの特徴点Ｐの３次元位置の計測について説明する。なお、この計測は教示手段４０を特徴点３次元位置計測モードに設定してなされ、またこの計測は、アームに装着されたカメラ２０によりワークＷの特徴点Ｐを位置を変えて所定回撮像して得られた画像を画像処理すること、つまり特徴点３次元位置計測処理することにより実現される。以下、特徴点３次元位置計測処理について詳細に説明する。
【００５７】
（１）教示手段４０によりアームを操作してカメラ２０の位置および向きを調節する（図５参照）とともに、カメラ２０のフォーカスおよびアイリスも調整し、ワークＷの特徴点Ｐを液晶ディスプレイ３２のウインドウＭの中心に鮮明に表示する。
【００５８】
（２）ウインドウＭに表示されたワークＷの特徴点Ｐをポインティング・デバイスでポインティングする（図６参照）。
【００５９】
（３）ポインティングされた付近の画像Ｇから２本の直線を検出してその交点を検出する。このようにするのは、ポインティング・デバイスでポインティングされた点の位置を精度よく把握するためである。なお、直線の検出は、例えば画像を微分した後にハフ変換をすることにより容易になし得る。
【００６０】
（４）検出された交点（特徴点）を画面上に表示する。この位置に問題があれば、特徴点Ｐの位置を再設定して（１）に戻る。この位置に問題がなければ処理を続行する。
【００６１】
（５）現状のカメラ２０の位置および向きと、交点の位置とから、カメラ２０の主点と交点を通る直線の方程式を算出して記憶部５３のラムに格納する。
【００６２】
（６）交点を中心に縦横５０画素程度を記憶部５３の画像メモリに格納する。
【００６３】
（７）アームを所定方向、例えば右方向に１ｃｍ程度移動させる。
【００６４】
（８）この状態でカメラ２０により再度ワーク撮像してその画像を画像メモリに格納し、前回の交点付近の画像と今回の画像の前回の交点付近との正規相関係数を算出して大きな値を示す位置を検出する。なお、大きな値を示す位置が複数ある場合は、前回の位置に最も近い位置を採用する。
【００６５】
（９）今回の画像の前記位置において前回検出した直線と傾きが近い直線を２本検出してその交点を算出する。
【００６６】
（１０）現状のカメラ２０の位置および向きと、交点の位置とから、カメラ２０の主点と交点を通る直線の方程式を算出して記憶部５３のラムに格納する。
【００６７】
（１１）これまでに得られた全ての直線の交点を最小二乗法により算出する。得られた交点がこの時点における最も確からしい特徴点Ｐの位置である。
【００６８】
（１２）交点を中心に縦横５０画素程度を再度記憶部５３の画像メモリに格納する。この場合、（６）で格納された画像データに上書してもよい。
【００６９】
（１３）ワークＷ上の特徴点Ｐを中心としてカメラ２０を前記所定方向、例えば右方向にさらに１ｃｍ程度移動させる。この場合、特徴点Ｐからカメラ２０までの距離は、フォーカスを維持するために算出された特徴点Ｐと（１）でのカメラ位置までの距離とし、またカメラ２０の向きは、画面上の特徴点Ｐの位置が変化しないと思われる角度に向ける。
【００７０】
（１４）（８）〜（１３）の処理を繰り返す。ただし、アームが動作限界に到達した場合、（９）の交点の算出がなし得ない場合、オペレータにより停止操作がなされた場合、処理を終了する。
【００７１】
（１５）オペレータにより継続処理の操作がなされた場合、（１）の位置へカメラを復帰させて、カメラ２０を前記所定方向と逆方向、例えば左方向に移動させながら、（２）〜（１４）の処理と同様の処理を繰り返す。
【００７２】
（１６）オペレータにより継続処理の操作がなされた場合、（１）の位置へカメラ２０を復帰させて、カメラ２０を前記所定方向と直角方向、例えば上方向に移動させながら、（２）〜（１４）の処理と同様の処理を繰り返す。
【００７３】
（１７）オペレータにより継続処理の操作がなされた場合、（１）の位置へカメラ２０を復帰させて、カメラ２０を前記所定方向と逆直角方向、例えば下方向に移動させながら、（２）〜（１４）の処理と同様の処理を繰り返す。
【００７４】
（１８）（１７）の処理が終了した時点で特徴点Ｐの位置は（１１）の処理により算出される。前記各処理により得られた直線と、算出された特徴点Ｐとの距離が、２ｍｍ程度以上のものが存在すればエラーとしその旨を液晶ディスプレイ３２に表示する。その逆、２ｍｍ以上のものが存在しなければ、精度よく特徴点Ｐの位置の計測が終了しているので、その位置に名前を付けて記憶部５３のラムに格納する。
【００７５】
（19）アームを移動しながらカメラ２０により特徴点Ｐを撮像してその画像を液晶ディスプレイ３２に表示するとともに、計測された特徴点Ｐを画面上に表示する。これにより、特徴点Ｐの計測が正しくなされたかを確認できる。なお、この処理は必要に応じて行なえばよく、そのため必ずしも行なう必要はない。
【００７６】
ところで、前記説明においては、特徴点Ｐは直線の交点とされているが、特徴点Ｐは直線の交点に限定されるものではなく、適宜設定でき、例えば円の中心とすることもできる。
【００７７】
また、カメラ２０の移動方法も前記方法に限定されるものではなく、適宜とすることができる。ただし、特徴点Ｐを中心とする球面上を移動させるのが好ましい。
【００７８】
さらに、前記説明においては１点のみの３次元位置を計測したが、カメラ２０の位置を変更した場合にも複数の特徴点Ｐに焦点が合い、しかもそれらの点がカメラ２０の視野から外れないのであれば、それら複数の点を同時に計測してもよい。ただし、その場合はカメラ２０を回動させる中心は、それら複数の点の平均位置する。
【００７９】
さらにまた、前記説明においてはワークＷ上の特徴点Ｐを１回のみオペレータが指示するようにされているが、オペレータによる特徴点Ｐの指定を行なった後に、アームを移動させカメラ２０の位置を変更し、その状態でオペレータにより再度同一の特徴点Ｐの指定を行ない、これらの指定により得られる２本の直線の交点から特徴点の３次元位置を計測するようにしてもよい。
【００８０】
さらにまた、前記説明はティーチ時におけるものであるが、アームの動作ピッチが長い場合には、リピート動作時に計測を行ってもよい。この場合、最初にオペレータが指定する特徴点Ｐを通常の特徴点３次元位置計測処理により計測し、その後は指定されたアームの動作範囲について前記と同様の処理を自動的になさせることにより計測が可能である。
【００８１】
さらにまた、前記説明においては背景については特段の配慮がなされていないが、ティーチ時における計測においては、ワークＷや背景を画像処理がしやすいように変えてもよい。例えば、背景に板や紙を置いてワークＷと判別しやすくしたり、あるいはワークＷに反射を抑える塗料を塗ってワークＷを見やすくするようにしてもよい。
【００８２】
ところで、カメラ２０の主点位置はフォーカスを調整することにより多少前後する。そこで、これによる計測誤差を避けるため、あらかじめカメラ２０のキャリブレーションにより主点位置がわかっている特定のフォーカス位置で撮像し、ついで焦点が合う位置にカメラ２０を移動させて撮像するという手法を採ってもよい。あるいは、小口径、短焦点距離のレンズを使用し、フォーカス調整を不要としてもよい。あるいは、前記（１３）のカメラ移動時に特徴点がカメラの光軸上、つまり画像の中心にくるように調整するようにしてもよい。主点は光軸上に沿って移動するため、このようにすれば直線の方程式が精度よく求められる。
【００８３】
また、ロボットによる作業においては、アームに装着したツールをワークＷの曲線状のエッジに沿って移動させなければならないことがある。そのため、曲線の３次元位置の計測が必要となる。以下、曲線の３次元位置の計測方法、つまり曲線３次元位置計測処理について説明する。なお、この曲線３次元位置計測処理は教示手段４０を曲線３次元位置計測モードに設定してなされる。
【００８４】
（１）アームを動作させてカメラ２０の位置および向きを調整する（図８参照）とともに、カメラ２０のフォーカスおよびアイリスを調整し、ワークＷ上の曲線が液晶ディスプレイ３２のウインドウＭのほぼ中央に水平に表示されるようにする（図９参照）。この場合、以下の処理においてカメラ２０を画面の下方向から上方向に移動させることを考慮してカメラ２０の位置を設定する。
【００８５】
（２）表示された曲線をポインティング・デバイスでなぞって計測する範囲を指定する。この場合、ポインティング・デバイスによるなぞりは、表示された曲線の比較的水平な部分から開始して、比較的水平な部分で終わるようにする（図９参照）。
【００８６】
（３）ポインティングされた付近の画像から曲線を検出する。この検出は、例えば、画像を微分して２値化し、さらに細線化することにより容易になされる。
【００８７】
（４）検出された曲線を液晶ディスプレイ３２のウインドウＭに表示する。表示された曲線が撮像された画像とマッチングしないなどの問題があれば曲線を再設定し、表示された曲線に問題がなければ処理を続行する。
【００８８】
（５）現状のカメラ２０の位置および向き、ならびに検出した曲線を記憶部５３のラムに保存する。
【００８９】
（６）表示された曲線が画面上において上方向に移動する方向にアームを１ｃｍ程度回動させる。
【００９０】
（７）ワークＷを撮像してその撮像された画像における（３）で曲線を検出した付近の曲線を検出する。
【００９１】
（８）検出された曲線をウインドウＭに表示する。
【００９２】
（９）前回のカメラ２０の位置および向きならびに前回検出された曲線と、今回のカメラ２０の位置および向きならびに今回検出された曲線とにより、曲線の３次元位置を算出し、ついでその３次元的な中心を算出する。
【００９３】
（１０）（６）と同方向にアームをさらに１ｃｍ程度回動させる。この場合、回動中心は（９）において算出された位置とし、また曲線の３次元的な重心位置からカメラ２０までの距離は（１）と同一とする。これは、曲線にフォーカスを維持しておくためである。また、カメラ２０の向きは撮像された画像の中心点の位置が変化しないように調製する。
【００９４】
（１１）（７）〜（１０）の処理を繰り返す。ただし、アームが動作限界に到達した場合、曲線の検出エラーなどのエラーが発生した場合、オペレータによりアームが障害物に当たるおそれがあると判断されたり、曲線が障害物にかくれるとして停止操作がなされた場合、処理は終了する。
【００９５】
（１２）これまでに保存された全てのカメラ２０の位置および向き、ならびに検出された曲線から曲線の３次元位置を計測する。なお、その計測方法については後述する。
【００９６】
（１３）アームを移動しながワークＷを撮像してその画像を液晶ディスプレイ３２に表示するとともに、計測された曲線を画面上に表示する。これにより、曲線の計測が正しくなされたかを確認できる。なお、この処理は必要に応じて行なえばよく、そのため必ずしも行なう必要はない。
【００９７】
次に、２地点の画像から曲線の３次元位置を算出する方法、つまり２地点基準曲線３次元位置計測処理について図１０を参照しながら説明する。なお、ここでは２地点をＡ点，Ｂ点として説明する。
【００９８】
（１）Ａ点で計測した曲線Ｃ１上の画素ｉについて、カメラ２０の位置および向きから直線Ｌｉの式を算出する。
【００９９】
（２）Ｂ点で撮像した曲線Ｃ２の画像における全ての画素ｊ１〜ｊｎについて、それぞれのカメラ２０の位置および向きから直線Ｌｊ１〜Ｌｊｎの式を算出し、ついで直線Ｌｉと直線Ｌｊ１〜Ｌｊｎとの距離を算出する。
【０１００】
（３）距離が最小となる直線Ｌｊｍを選出する。
【０１０１】
（４）直線Ｌｊｍの距離が２ｍｍ以上であれば、画素ｉに対応する曲線Ｌ２上の画素が存在していないことを示しているので、次の画素ｉ＋１について同様の処理を行なう。この処理は距離が２ｍｍ以内となる直線Ｂｊｍが検出されるまで行なう。一方、直線Ｌｊｍの距離が２ｍｍ以内であれば以下の処理を行なう。
【０１０２】
（５）直線Ｌｉと直線Ｌｊｍとの交点Ｐｉを最小二乗法で算出する。この点Ｐｉが画素ｉに対応する３次元位置である。
【０１０３】
（６）曲線Ｌ１上の他の全ての画素について同様に対応する３次元位置を算出する。
【０１０４】
（７）算出された全ての点について連続性をチェックする。例えば、点Ｐｉと点Ｐｉ＋１との距離が許容値（例えば、２ｍｍ）以上あればエラーとする。
【０１０５】
（８）（７）でエラーとされた場合は、最初から計測をやりなおす。但し、２地点から曲線を計測する際に、曲線検出範囲がポインティング・デバイスでなぞられた範囲で検出するため、２地点で検出された曲線の両端が同じ点である可能性は低いので、両端部でのエラーは無視する。
【０１０６】
このような処理を繰り返すことにより、２地点の画像から曲線の３次元位置が算出される。
【０１０７】
次に、多地点の画像から曲線の３次元位置を算出する方法、つまり多地点基準曲線３次元位置計測処理について図１１を参照しながら説明する。
【０１０８】
（１）点Ａ１において撮像されたワークＷの画像における曲線Ｃ１上の画素Ｃ１ｉについて、カメラ２０の位置および向きから直線Ｌ１ｉの式を算出する。
【０１０９】
（２）点Ａ２〜Ａｎにおいて撮像されたワークＷの画像における曲線Ｃ２〜Ｃｎ上の全ての画素Ｃ２１〜Ｃ２ｎ…Ｃｎ１〜Ｃｎｎについて、カメラ２０の位置および向きから直線Ｌ２１〜Ｌ２ｎ…Ｌｎ１〜Ｌｎｎの式を算出し、ついで直線Ｌ１ｉと直線Ｌ２１〜Ｌ２ｎ…Ｌｎ１〜Ｌｎｎとの距離を算出する。
【０１１０】
（３）点Ａ２〜Ａｎにおいて距離が最小となる直線Ｌ２ｍ〜Ｌｎｍを選定する。
【０１１１】
（４）算出された距離が２ｍｍ以上であれば画素Ｃ１ｉに対応する画素が曲線Ｃ２〜Ｃｎに存在しないことを示している。この場合、エラーとして計算をやりなおすか、あるいはその点の前後の点より補間して代用する。その逆に、距離が２ｍｍ以内であれば画素Ｃ１ｉに対応する画素が曲線Ｃ２〜Ｃｎに存在することを示しているので、以下の処理を行なう。このエラーが出た場合には、２ｍｍ以下の直線Ｌ２ｍ〜Ｌｎｍのみを用いて以下の計算を行う。ただし、２ｍｍ以下の直線が例えばｎ／２より少ない場合は計算を行わない。なお、曲線の両端部である場合は、予測されることであるのでエラーとはしないが、中間点であれば、まったく最初から計算をやりなおす。
【０１１２】
（５）直線Ｌ１ｉと直線Ｌ２ｍ〜Ｌｎｍとの交点Ｐｉを最小二乗法で算出する。この点Ｐｉが画素ｉに対応する３次元位置である。
【０１１３】
（６）点Ｐｉから直線Ｌ２ｍ〜Ｌｎｍまでの距離を算出する。この距離が許容値（例えば２ｍｍ）を超えるものがある場合はエラーとする。この場合は、直線Ｌ２ｍ〜Ｌｎｍすべてではなく、前記（４）に記載した直線のみ距離を計算する。この複数の直線と点Ｐｉまでの距離が許容値を超えている場合、計測を中断し、最初から計算をやりなおす。なお、許容値を超えた直線が数本、例えば３本であれば、その直線を除いて点Ｐｉを計算しなおす。
【０１１４】
（７）曲線Ｃ１上の残りの画素についても同様の処理を行う。
【０１１５】
（８）算出されたすべての点Ｐｉの連続性をチェックする。例えば、点ＰｉとＰｉ＋１との距離が許容値（例えば２ｍｍ）以上であればエラーとする。
【０１１６】
（９）（８）でエラーとされた場合、最初から計算をやりなおすか、その点の前後の点より補間により代用する。
【０１１７】
このような処理を繰り返すことにより、多地点の画像から曲線の３次元位置が算出される。
【０１１８】
次に、ツールの角度を算出する方法、つまりツール角度算出処理について説明する。
【０１１９】
ロボットに所望の動作をさせるためには、ツールの位置だけではなくその向きを設定する必要がある。つまり、ツールを所定角度に設定する必要がある。この角度を設定は、例えばツールを曲線に沿って移動させる場合、曲線の各点における曲率中心に対する向きと曲線の接線方向を基準にし、その各方向からの所定のオフセット角に設定することによりなし得る。しかしながら、曲率中心を求めるためには２次微分が必要となるが、この２次微分を行うため得られた曲率中心の位置は計測誤差の影響を強く受ける。そのため、以下の方法によりツールの角度を算出する。しかして、この角度算出は教示手段４０をツール角度算出モードに設定してなされる。
【０１２０】
（１）ツール角度を設定する曲線を含むワークＷの画像を撮像する。
【０１２１】
（２）撮像画像をウインドウＭに表示する。
【０１２２】
（３）表示された画像上でツール角度を設定する範囲を指定する。
【０１２３】
（４）指定された曲線の３次元位置を前記方法により計測する。
【０１２４】
（５）ツールの角度を算出しようとする曲線上の点（以下、目標点という）を設定し、その目標点の前後の数十画素の各点（以下、各近傍点という）についてその接線方向を算出する。
【０１２５】
（６）目標点と各近傍点との差ベクトルを算出する。
【０１２６】
（７）得られた差ベクトルの平均ベクトルを算出する。
【０１２７】
（８）得られた平均ベクトルから接線方向成分を除去する。
【０１２８】
（９）接線方向成分が除去されたベクトルを曲率中心方向ベクトルの代用ベクトルとして用いてツール角度を算出する。つまり、代用ベクトルの角度に対して所定のオフセット角を加算してツール角度を算出する。
【０１２９】
このようにすることにより、計測誤差の影響を少なくしてツール角度を算出できる。なお、曲線に変極点や直線に近い部分がある場合、前記（６）の処理がなし得ないので、そのような箇所のツール角度は、その前後の処理がなし得た箇所におけるツールの角度を用いて補間することにより算出する。また、この処理は前記曲線３次元位置計測処理に引き続いてなされるようにされていてもよい。
【０１３０】
次に、ワークＷの曲面に沿ってツールを移動させる場合におけるツール移動経路の作成方法、つまりツール経路作成処理について説明する。
【０１３１】
ワークＷの曲面に沿ってツールを動かす場合、ワークＷの３次元計測を行う必要がある。この曲面の計測は、ワークＷ表面に模様等がない場合には３次元センサによりなされるが、この３次元センサは高価である。そこで、前述した方法を利用して簡易的にワークＷ表面に沿ったツールの移動経路を、画像処理機能付ロボットコントローラ５０に設定する方法について説明する。なお、これは教示手段４０をツール経路作成モードに設定してなされる。
【０１３２】
ツール経路作成処理の第１の形態は、ワークＷの表面にツールの移動経路に沿って所定間隔でマークを書き込むか、所定間隔でマークを付したシールを貼ってワークＷ表面にマークを形成し、これらのマークの３次元位置を前述した方法により算出して記憶部５３のラムに格納し、算出された各３次元位置をスプライン曲線などの補間曲線により補間してツールの移動経路を作成するものである。そして、この作成された経路は記憶部５３のラムに格納される。これにより、ワークＷ表面に沿ったツールの移動経路が、画像処理機能付ロボットコントローラ５０に設定される。
【０１３３】
ツール経路作成処理の第２の形態は、ワークＷの表面にツールの移動経路に沿って線を書き込むか、線を描いたシールを貼ってワークＷ表面にラインを形成し、このラインの３次元位置を前述した方法により算出し、この３次元位置が算出されたラインをツール移動経路とするものである。そして、このラインが記憶部５３のラムにツールの移動経路として格納される。これにより、ワークＷ表面に沿ったツールの移動経路が、画像処理機能付ロボットコントローラ５０に設定される。
【０１３４】
次に、アームエンコーダのキャリブレーションについて説明する。
【０１３５】
これは、アームのベース部（固定されて動かない部分）に付されている３ヵ所のマーク（その位置はあらかじめ判明している）を、アームに装着したカメラで撮像して前述した方法により処理することによりなし得る。
【０１３６】
第１の方法は、キャリブレーションを行うときのカメラ２０の撮像位置、移動経路をあらかじめ設定しておいて、つまりプログラミングしておいて、３ヵ所のマークを自動的に撮像してそれらの３次元位置を計測し、あらかじめ判明しているマークの３次元位置とを比較してその差を解消するようにアームエンコーダの値を修正することにより、アームエンコーダのキャリブレーションがなし得る。第２の方法は、障害物などによりあらかじめ設定した位置へカメラが移動できないような場合、手動によりカメラ２０を移動させて３つのマークをそれぞれ撮像してそれらの３次元位置を計測し、あらかじめ判明しているマークの３次元位置とを比較してその差を解消するようにアームエンコーダの値を修正することにより、アームエンコーダのキャリブレーションがなし得る。
【０１３７】
なお、前記キャリブレーションにおいては、計測された３点の座標をあらかじめ判明している３点へ座標変換する必要があるが、これは公知の各種座標変換手法を用いてなすことができる。例えば、座標変換においては平行移動ベクトルによる平行移動と回転行列による回転を行わせる必要があるが、平行移動ベクトルは各３点の重心位置の差から算出でき、また回転行列は重心から各頂点へ向かう単位ベクトルにより算出できる。そして、計測時のアームの位置および向きを得られた平行移動ベクトルおよび回転行列により処理することにより、正しいアームの位置および向きが算出される。ついで、この位置および向きからアームの各関節の角度を算出する。しかして、アームエンコーダにより計測された現状の関節角度と算出された角度からアームエンコーダの誤差が算出される。この誤差をアームエンコーダから差し引くことにより、アームエンコーダのキャリブレーションがなし得る。なお、前記誤差が所定値より大きい場合、エラーとして再度前記処理を実行する。
【０１３８】
また、この実施形態においては、作業中においてもアームエンコーダの異状を検出できる。これは、次のようにしてなすことができる。
【０１３９】
まず、目標となるなるべく明瞭で、かつ検出しやすい物体をマークとして登録する。そして、このマークをアームの動作中に定期的に検出してマークの画像上での位置ずれを計測し、そのずれが一定値以上となった時点で異状と判定する。なお、マークの検出は画像処理で広く用いられている正規相関係数を用いた手法により容易になし得る。
【０１４０】
以上、本発明を実施形態に基づいて説明してきたが、本発明はかかる実施形態のみに限定されるものではなく種々改変が可能である。例えば、図１２に示すように、画像受信部５２の下流側にＤＭＡコントローラを設けるようにしてもよい。
【０１４１】
【発明の効果】
以上詳述したように、本発明によれば、画像処理機能を備えたロボットシステムの構成が簡素化されるという優れた効果が得られる。また、ロボットコントローラに画像処理機能も備えているので、データの授受の高速化が図られるとともに、画像処理関係の現場調整作業が短縮されるという優れた効果も得られる。
【０１４２】
また、本発明の好ましい形態によれば、アーム制御と画像処理とが並列的に処理されるので、ロボットコントローラが有効に活用されるという優れた効果が得られる。さらに、画像処理の優先順位が低くされている別の本発明の好ましい形態によれば、アーム制御と画像処理とが並列的に処理されてもアーム動作に支障を生ずることはないという優れた効果が得られる。
【０１４３】
また、別の本発明の好ましい形態によれば、アームエンコーダのキャリブレーションやアームエンコーダの異状が検出できるという優れた効果が得られる。
【０１４４】
一方、本発明のロボットシステムの利用方法によれば、ワークの特徴点の３次元位置の計測やワークの曲線の３次元位置が計測できるという優れた効果が得られる。
【０１４５】
また、本発明のロボットシステムの別の利用方法によれば、ツールの角度が設定できるという優れた効果や、ツールの移動経路の作成がなし得るという優れた効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るロボットシステムのブロック図である。
【図２】同要部ブロック図である。
【図３】同画像出力部のブロック図である。
【図４】同画像入力部のブロック図である。
【図５】本発明のロボットシステムによりワークの特徴点の３次元位置を計測する方法の説明図であって、カメラによりワークの特徴点を撮像している状態を示す。
【図６】本発明のロボットシステムによりワークの特徴点の３次元位置を計測する方法の説明図であって、撮像された特徴点をウインドウに表示した状態を示す。
【図７】本発明のロボットシステムによりワークの特徴点の３次元位置を計測する方法の説明図であって、多数の直線の交点から最小二乗法により算出された特徴点を示す。
【図８】本発明のロボットシステムによりワークの曲線の３次元位置を計測する方法の説明図であって、カメラにより曲線を撮像している状態を示す。
【図９】本発明のロボットシステムによりワークの曲線の３次元位置を計測する方法の説明図であって、撮像された曲線をウインドウに表示した状態を示す。
【図１０】本発明のロボットシステムによりワークの曲線の３次元位置を計測する方法の説明図であって、２地点基準曲線３次元位置計測処理を示す。
【図１１】本発明のロボットシステムによりワークの曲線の３次元位置を計測する方法の説明図であって、多地点基準曲線３次元位置計測処理を示す。
【図１２】本発明の他の実施形態の要部を示すブロックである。
【符号の説明】
１０      ロボット本体
２０      撮像手段、カメラ
３０      画像表示手段
３１      画像受信部
３２      液晶ディスプレイ
４０      教示手段
４１      キー入力装置
５０      画像処理機能付ロボットコントローラ
５１      演算処理部
５２      画像受信部
５３      記憶部
５５      画像表示手段制御部
５６      教示手段接続部
６０      ティーチペンダント
Ｓ      ロボットシステム
Ｗ      ワーク
【図１】
0003803755.tif 000002
【図２】
0003803755.tif 000003
【図３】
0003803755.tif 000004
【図４】
0003803755.tif 000005
【図５】
0003803755.tif 000006
【図６】
0003803755.tif 000007
【図７】
0003803755.tif 000008
【図８】
0003803755.tif 000009
【図９】
0003803755.tif 000010
【図１０】
0003803755.tif 000011
【図１１】
0003803755.tif 000012
【図１２】
0003803755.tif 000013