(57)【特許請求の範囲】
【請求項１】
メカニカルアームであって、
複数のセクションと、
前記メカニカルアームの端部に位置するカメラと、
複数の回転関節であって、各回転関節はそれぞれ、前記複数のセクションのうちの２つのセクションを接続し、又は、前記カメラと前記複数のセクションのうちの１つのセクションとを接続する、複数の回転関節と、
１つ又は複数のプロセッサと、
前記１つ又は複数のプロセッサにより実行される１つ又は複数のプログラムを記憶するためのメモリと
を備え、前記１つ又は複数のプログラムは、
製品の表面の第１画像を取り込むコマンドを受信し、
前記複数の回転関節を作動させることにより、前記カメラを前記製品の表面とほぼ隣接する第１位置に位置決めし、
前記カメラが前記第１位置に位置決めされると、前記カメラを介して、前記製品全体の表面を写した第１画像を取り込み、及び、
前記第１画像を取り込んだ後、
前記第１画像における欠陥及び前記欠陥の前記第１画像における相対的な位置を識別するように、前記第１画像を処理し、
前記カメラの第１位置及び前記欠陥の前記第１画像における相対的な位置に基づいて、前記カメラの第２位置を確定し、
前記複数の回転関節を作動させることにより、前記カメラを前記第１位置から前記第２位置に改めて位置決めし、前記第２位置と前記製品の表面は、前記第１位置と前記製品の表面との空間関係と異なる空間関係を有し、及び、
前記カメラが前記第２位置に位置決めされると、前記カメラを介して、前記製品の表面の第２画像を取り込む
ための命令を含み、
前記第１画像を処理することは、
前記第１画像を複数の部分画像に分割することと、
前記複数の部分画像の少なくとも１つの部分画像と、モデル画像と、の比較に基づいて前記少なくとも１つの部分画像から前記欠陥を識別することと、
を含み、
前記カメラを前記第１位置から前記第２位置に改めて位置決めすることは、識別された前記欠陥に前記カメラの焦点を合わせることを含む、
メカニカルアーム。
【請求項２】
前記カメラが前記第１位置に位置決めされたとき、前記カメラと前記製品の表面との間に第１距離が置かれ、
前記カメラが前記第２位置に改めて位置決めされたとき、前記カメラと前記製品の表面との間に第２距離が置かれ、
前記第２距離が前記第１距離よりも小さい
請求項１に記載のメカニカルアーム。
【請求項３】
前記カメラが第１位置に位置決めされたとき、前記カメラが第１焦点距離に設置され、
前記カメラが前記第２位置に改めて位置決めされたとき、前記カメラが第２焦点距離に設置され、
前記第２焦点距離が前記第１焦点距離よりも大きい
請求項１に記載のメカニカルアーム。
【請求項４】
前記１つ又は複数のプログラムは、
前記製品の表面の第１画像及び前記カメラの第１位置から、前記製品のサイズを確定し、確定されたサイズに基づき、前記メカニカルアームのために作業空間を割り当てる
ための命令をさらに含む請求項１に記載のメカニカルアーム。
【請求項５】
前記メカニカルアームのために確定された作業空間において、前記カメラを前記第１位置に位置決めすること、及び前記カメラを前記第１位置から前記第２位置に改めて位置決めすることを実行する請求項４に記載のメカニカルアーム。
【請求項６】
前記複数の回転関節は、前記メカニカルアームに４自由度を付与する請求項１に記載のメカニカルアーム。
【請求項７】
前記複数の回転関節は、前記メカニカルアームに５自由度を付与する請求項１に記載のメカニカルアーム。
【請求項８】
前記複数の回転関節における第１群の回転関節は、第１軸周りに回転し、
前記複数の回転関節における第２群の回転関節は、第２軸周りに回転する
請求項１に記載のメカニカルアーム。
【請求項９】
前記第１群の回転関節は、本体回転関節であり、
前記第２群の回転関節は、端部回転関節である
請求項８に記載のメカニカルアーム。
【請求項１０】
前記１つ又は複数のプログラムは、
前記複数の回転関節を作動させることにより、前記カメラを１つ又は複数の追加の位置に改めて位置決めし、各追加の位置はそれぞれ、前記製品における対応する追加の表面とほぼ隣接し、
前記カメラが前記１つ又は複数の追加の位置に位置決めされると、前記カメラを介して、前記製品における対応する各追加の表面の追加の画像を取り込む
ための命令をさらに含む請求項１に記載のメカニカルアーム。
【請求項１１】
前記製品は、回転可能な基台に置かれ、
前記１つ又は複数のプログラムは、前記第１画像を取り込んだ後、前記欠陥の前記第１画像における相対的な位置に応じて、前記回転可能な基台を回転させ、
前記回転可能な基台を回転させた後、前記第２画像を取り込むための命令をさらに含む
請求項１に記載のメカニカルアーム。
【請求項１２】
前記少なくとも１つの部分画像から前記欠陥を識別することは、前記モデル画像を、前記少なくとも１つの部分画像と比較する前に、回転する処理または前記モデル画像を鏡像反転することを含む、
請求項１に記載のメカニカルアーム。
【請求項１３】
前記第１画像を複数の部分画像に分割することは、
前記第１画像を格子で区切ることを含む、
請求項１に記載のメカニカルアーム。
【請求項１４】
複数のセクションと、メカニカルアームの端部に位置するカメラと、複数の回転関節とを備え、各回転関節はそれぞれ、前記複数のセクションのうちの２つのセクションを接続し、又は、前記カメラと前記複数のセクションのうちの１つのセクションとを接続するメカニカルアームにおいて、
製品の表面の第１画像を取り込むコマンドを受信することと、
前記複数の回転関節を作動させることにより、前記カメラを前記製品の表面とほぼ隣接する第１位置に位置決めすることと、
前記カメラが前記第１位置に位置決めされると、前記カメラを介して、前記製品全体の表面を写した第１画像を取り込むことと、
前記第１画像を取り込んだ後、
前記第１画像における欠陥及び前記欠陥の前記第１画像における相対的な位置を識別するように、前記第１画像を処理し、
前記カメラの第１位置及び前記欠陥の前記第１画像における相対的な位置に基づいて、前記カメラの第２位置を確定し、
前記複数の回転関節を作動させることにより、前記カメラを前記第１位置から前記第２位置に改めて位置決めし、前記第２位置と前記製品の表面は、前記第１位置と前記製品の表面との空間関係と異なる空間関係を有し、及び
前記カメラが前記第２位置に位置決めされると、前記カメラを介して、前記製品の表面の第２画像を取り込むことと
を含み、
前記第１画像を処理することは、
前記第１画像を複数の部分画像に分割することと、
前記複数の部分画像の少なくとも１つの部分画像と、モデル画像と、の比較に基づいて前記少なくとも１つの部分画像から前記欠陥を識別することと、
を含み、
前記カメラを前記第１位置から前記第２位置に改めて位置決めすることは、識別された前記欠陥に前記カメラの焦点を合わせることを含む、
品質検査改良方法。
【請求項１５】
前記カメラが前記第１位置に位置決めされたとき、前記カメラと前記製品の表面との間に第１距離が置かれ、
前記カメラが前記第２位置に改めて位置決めされたとき、前記カメラと前記製品の表面との間に第２距離が置かれ、
前記第２距離が前記第１距離よりも小さい
請求項１４に記載の方法。
【請求項１６】
前記カメラが第１位置に位置決めされたとき、前記カメラが第１焦点距離に設置され、
前記カメラが前記第２位置に改めて位置決めされたとき、前記カメラが第２焦点距離に設置され、
前記第２焦点距離が前記第１焦点距離よりも大きい
請求項１４に記載の方法。
【請求項１７】
前記メカニカルアームにおいて、
前記製品の表面の第１画像及び前記カメラの第１位置から、前記製品のサイズを確定することと、
確定されたサイズに基づき、前記メカニカルアームのために作業空間を割り当てることと
をさらに含む請求項１４に記載の方法。
【請求項１８】
前記メカニカルアームのために確定された作業空間において、前記カメラを前記第１位置から前記第２位置に改めて位置決めすることを実行する請求項１７に記載の方法。
【請求項１９】
前記複数の回転関節における第１群の回転関節は、第１軸周りに回転し、前記複数の回転関節における第２群の回転関節は、第２軸周りに回転し、
前記第１群の回転関節は、本体回転関節であり、
前記第２群の回転関節は、端部回転関節である
請求項１４に記載の方法。
【請求項２０】
前記メカニカルアームにおいて、
前記複数の回転関節を作動させることにより、前記カメラを１つ又は複数の追加の位置に改めて位置決めし、各追加の位置はそれぞれ、ほぼ前記製品における対応する追加の表面と隣接することと、
前記カメラが前記１つ又は複数の追加の位置に位置付けられると、前記カメラにより、前記製品における対応する各追加の表面の追加の画像を取り込むことと
をさらに含む請求項１４に記載の方法。
【請求項２１】
前記製品は、回転可能な基台に置かれ、
前記第１画像を取り込んだ後、前記欠陥の前記第１画像における相対的な位置に応じて、前記回転可能な基台を回転させることと、
前記回転可能な基台を回転させた後、前記第２画像を取り込むことと
をさらに含む請求項１４に記載の方法。
【請求項２２】
メカニカルアームの１つ又は複数のプロセッサにより実行されるように構成された１つ又は複数のプログラムを記憶する非一時的コンピュータ読み出し可能記憶媒体であって、前記メカニカルアームは、複数のセクションと、前記メカニカルアームの端部に位置するカメラと、複数の回転関節とを有し、各回転関節はそれぞれ、前記複数のセクションの２つのセクションを接続し、又は、前記カメラと前記複数のセクションのうちの１つのセクションとを接続し、前記１つ又は複数のプログラムは命令を含み、前記命令は前記１つ又は複数のプロセッサにより実行されると、前記メカニカルアームは、
製品の表面の第１画像を取り込むコマンドを受信し、
前記複数の回転関節を作動させることにより、前記カメラを前記製品の表面とほぼ隣接する第１位置に位置決めし、
前記カメラが前記第１位置に位置決めされると、前記カメラを介して、前記製品全体の表面を写した第１画像を取り込み、及び
前記第１画像を取り込んだ後、
前記第１画像における欠陥及び前記欠陥の前記第１画像における相対的な位置を識別するように、前記第１画像を処理し、
前記カメラの第１位置及び前記欠陥の前記第１画像における相対的な位置に基づいて、前記カメラの第２位置を確定し、
前記複数の回転関節を作動させることにより、前記カメラを前記第１位置から前記第２位置に改めて位置決めし、前記第２位置と前記製品の表面は、前記第１位置と前記製品の表面との空間関係と異なる空間関係を有し、及び、
前記カメラが前記第２位置に位置決めされると、前記カメラを介して、前記製品の表面の第２画像を取り込む
ようにし、
前記第１画像を処理することは、
前記第１画像を複数の部分画像に分割することと、
前記複数の部分画像の少なくとも１つの部分画像と、モデル画像と、の比較に基づいて前記少なくとも１つの部分画像から前記欠陥を識別することと、
を含み、
前記カメラを前記第１位置から前記第２位置に改めて位置決めすることは、識別された前記欠陥に前記カメラの焦点を合わせることを含む、
非一時的コンピュータ読み出し可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、概ね生産ラインに関し、生産ラインにおける製品の目視検査を含むがこれに限らない。
【背景技術】
【０００２】
メーカーは、商品流通に入る不良品数を低減させるために、種々の品質管理の手段を施している。品質管理の手段には、製品の目視検査に関わっているものがある。しかしながら、人間である従業員による目視検査のような従来の目視検査の技術では、よく不良品を見逃すとともに、新たな製品の欠陥（例えば、経年劣化した生産ラインによる製品の欠陥）を考慮する手順が欠けている。従って、製品の欠陥、特に経時的な製品の欠陥を初めに識別することにおいて、課題が存在している。
【発明の概要】
【０００３】
これにより、不良品が商品流通に入る前に不良品を識別する方法及びシステムが必要になる。この課題を解决する手段の一つとしては、ロボット（例えば、メカニカルアーム４０２の端部に取り付けられたカメラ４０８を有するメカニカルアーム４０２、図４Ａ）により、製品が商品流通に入る前に製品の目視検査を行うことである。こうすると、ロボットは、製品の関連する表面及び／又は特徴（又は、場合によっては、製品の各々の表面及び／又は特徴）を検査することができる。なお、製品の初期検査期間にロボットにより異常が識別される（例えば、ロボットにより取り込まれた画像が異常、例えば、製品の欠陥を含む）と、ロボットは、製品に対するより厳しい検査（例えば、異常に焦点を合わせるように改めて自分を位置付けること）を実行することができる。このようにして、ロボットの精度と正確性及びロボットに繋がっているコンピュータのプロセスパワーを調整することにより、メーカーは商品流通に入る不良品数をさらに低減させることができる。さらに、ロボットは、識別された欠陥のそれぞれに欠陥データベースを作成することができ、当該欠陥データベースは今後、将来の製品上の欠陥の識別に用いられることができる。以下、このようなロボットを操作する方法を述べる。
【０００４】
（Ａ１）幾つかの実施例においては、品質検査改良方法は、複数のセクションと、メカニカルアームの端部に位置するカメラと、複数の回転関節であって、各回転関節はそれぞれ、複数のセクションのうちの２つのセクションを接続し、又は、カメラと複数のセクションのうちの１つのセクションとを接続する、複数の回転関節と、１つ又は複数のプロセッサと、プロセッサにより実行される命令を記憶するためのメモリとを有するメカニカルアーム（例えば、メカニカルアーム３００、図３、メカニカルアーム４０２、図４Ａ）において、（ｉ）製品の表面の第１画像を取り込むコマンドを受信することと、（ｉｉ）複数の回転関節を作動させることにより、カメラを製品の表面とほぼ隣接する第１位置に位置決めすることと、カメラが第１位置に位置決めされると、カメラを介して、製品の表面の第１画像を取り込むこととを含む。当該方法は、第１画像を取り込んだ後、（ｉ）第１画像における欠陥及び欠陥の第１画像における相対的な位置を識別するように、第１画像を処理することと、（ｉｉ）カメラの第１位置及び欠陥の第１画像における相対的な位置によって、カメラの第２位置を確定することと、（ｉｉｉ）複数の回転関節を作動させることにより、カメラを第１位置から第２位置に改めて位置決めすることとをさらに含む。第２位置と製品の表面は、第１位置と製品の表面との空間関係と異なる空間関係を有する。当該方法は、カメラが第２位置に位置決めされると、カメラを介して、製品の表面の第２画像を取り込むことをさらに含む。
【０００５】
（Ａ２）Ａ１の方法の幾つかの実施例において、カメラが第１位置に位置決めされたとき、カメラと製品の表面との間に第１距離が置かれ、カメラが第２位置に改めて位置決めされたとき、カメラと製品の表面との間に第２距離が置かれ、かつ、第２距離が第１距離よりも小さい。
【０００６】
（Ａ３）Ａ１からＡ２のいずれか一項の方法による幾つかの実施例において、カメラが第１位置に位置決めされたとき、カメラが第１焦点距離に設置され、カメラが第２位置に改めて位置決めされたとき、カメラが第２焦点距離に設置され、かつ、第２焦点距離が第１焦点距離よりも大きい。
【０００７】
（Ａ４）Ａ１からＡ３のいずれか一項の方法による幾つかの実施例において、当該方法は、製品の表面の第１画像及びカメラの第１位置から、製品のサイズを確定することと、確定されたサイズに基づき、メカニカルアームのために作業空間を割り当てることとをさらに含む。サイズは、製品の高さ、幅、長さと体積のうちの１つ又は複数を含んでよい。幾つかの実施例において、メカニカルアームの構成に基づき、メカニカルアーム用の作業空間をさらに確定する。例えば、第１構成を有するメカニカルアーム（例えば、メカニカルアーム４０２、図４Ａ）は、第１作業空間に（例えば、第１作業空間方程式を用いて）割り当てられてもよく、また、第２構成を有するメカニカルアーム（例えば、メカニカルアーム４４０、図４Ｃ）は、第２作業空間に（例えば、第２作業空間方程式を用いて）割り当てられてもよい。
【０００８】
（Ａ５）Ａ１からＡ４のいずれか一項の方法による幾つかの実施例において、メカニカルアームのために確定された作業空間内に、カメラを第１位置に位置決めすること、及びカメラを第１位置から第２位置に改めて位置決めすることを実行する。
【０００９】
（Ａ６）Ａ１からＡ５のいずれか一項の方法による幾つかの実施例において、複数の回転関節は、メカニカルアームに４自由度（例えば、少なくとも幾つかの実施例において、メカニカルアーム４０２は４自由度を有する）を付与する。
【００１０】
（Ａ７）Ａ１からＡ５のいずれか一項の方法による幾つかの実施例において、複数の回転関節は、メカニカルアームに５自由度（例えば、少なくとも幾つかの実施例において、メカニカルアーム４２０は５自由度を有する）を付与する。
【００１１】
（Ａ８）Ａ１からＡ７のいずれか一項の方法による幾つかの実施例において、複数の回転関節のうちの第１群の回転関節は、第１軸周りに回転し、かつ、複数の回転関節のうちの第２群の回転関節は、第２軸周りに回転する。
【００１２】
（Ａ９）Ａ１からＡ８のいずれか一項の方法による幾つかの実施例において、第１群の回転関節は、本体回転関節（例えば、回転関節４０６−Ｂ及び４０６−Ｃ、図４Ａ）であり、かつ、第２群の回転関節は、端部回転関節（例えば、回転関節４０６−Ａ及び４０６−Ｄ、図４Ａ）である。
【００１３】
（Ａ１０）Ａ１からＡ９のいずれか一項の方法による幾つかの実施例において、当該方法は、（ｉ）複数の回転関節を作動させることにより、カメラを、１つ又は複数の追加の位置に改めて位置決めし、各追加の位置はそれぞれ、ほぼ製品における対応する追加の表面と隣接することと、（ｉｉ）カメラが１つ又は複数の追加の位置に位置決めされると、カメラを介して、製品における対応する各追加の表面の追加の画像を取り込むこととをさらに含む。
【００１４】
（Ａ１１）Ａ１からＡ１０のいずれか一項の方法による幾つかの実施例において、製品は、回転可能な基台（例えば、回転可能な基台４１０、図４Ａ）に置かれる。なお、当該方法は、第１画像を取り込んだ後、欠陥の第１画像における相対的な位置に応じて、回転可能な基台を回転させることをさらに含む。回転可能な基台を回転させた後、第２画像を取り込む。
【００１５】
（Ａ１２）他の態様においては、メカニカルアーム（例えば、メカニカルアーム３００、図３）を提供する。メカニカルアームは、複数のセクションと、メカニカルアームの端部に位置するカメラと、複数の回転関節であって、各回転関節はそれぞれ、複数のセクションのうちの２つのセクションを接続し、又は、カメラと複数のセクションのうちの１つのセクションとを接続する、複数の回転関節と、１つ又は複数のプロセッサと、１つ又は複数のプログラムを記憶するメモリとを備え、１つ又は複数のプログラムが１つ又は複数のプロセッサにより実行されると、メカニカルアームがＡ１からＡ１１のいずれか一項に記載の方法を実行するようにする。
【００１６】
（Ａ１３）さらに他の態様においては、メカニカルアームを提供し、メカニカルアームは、Ａ１からＡ１１のいずれか一項に記載の方法を実行するデバイスを備える。
【００１７】
（Ａ１４）さらに他の態様においては、非一時的コンピュータ読み出し可能記憶媒体を提供する。非一時的コンピュータ読み出し可能記憶媒体は、実行可能な命令を記憶し、１つ又は複数のプロセッサ／チップを有するメカニカルアーム（例えば、メカニカルアーム３００、図３）により実行されると、メカニカルアームがＡ１からＡ１１のいずれか一項に記載の方法を実行するようにする。
【図面の簡単な説明】
【００１８】
記載される各種の実施例をより良く理解するために、以下の図面に合わせて下記の具体的な実施形態を参照すべきであり、全ての図面及び明細書において、類似する符号は対応する部分を参照してよい。
【図１】幾つかの実施例による製品検査ネットワークのネットワークアーキテクチャの例を示すブロック図である。
【図２】幾つかの実施例によるサーバシステムの例を示すブロック図である。
【図３】幾つかの実施例によるメカニカルアームの例を示すブロック図である。
【図４Ａ】幾つかの実施例による製品を検査するためのメカニカルアームの例の図である。
【図４Ｂ】幾つかの実施例による製品を検査するためのメカニカルアームの例の図である。
【図４Ｃ】幾つかの実施例による製品を検査するためのメカニカルアームの例の図である。
【図５Ａ】幾つかの実施例により、メカニカルアームにより製品の第１画像を取込むこと、及び得られた欠陥付きの画像を示す図である。
【図５Ｂ】幾つかの実施例により、メカニカルアームにより製品の第１画像を取込むこと、及び得られた欠陥付きの画像を示す図である。
【図５Ｃ】幾つかの実施例により、メカニカルアームにより製品の第２画像を取込むこと、及び得られた欠陥付きの画像を示す図である。
【図５Ｄ】幾つかの実施例により、メカニカルアームにより製品の第２画像を取込むこと、及び得られた欠陥付きの画像を示す図である。
【図６Ａ】幾つかの実施例による欠陥モデル、及び欠陥モデルに加えられた新たな欠陥を示す図である。
【図６Ｂ】幾つかの実施例による欠陥モデル、及び欠陥モデルに加えられた新たな欠陥を示す図である。
【図７】幾つかの実施例による品質検査改良方法を示すフローチャートである。
【発明を実施するための形態】
【００１９】
今、実施例を参照するが、実施例を図面に示している。下記において、記載される各種の実施例が理解されるように、幾つかの具体的な詳細を説明する。しかしながら、当業者にとって明らかなこととして、記載される各種の実施例は、これらの具体的な詳細がなくても実現可能である。一方、実施例のことが必要以上に理解され難くならないように、周知の方法、工程、部材、回路やネットワークを詳細に記載していない。
【００２０】
また、第１、第２などの用語で各種の素子を説明する場合があるが、これらの素子はこれらの用語に制限されるべきではないということが理解される。これらの用語は、１つの素子ともう１つの素子を区分するためだけに用いる。例えば、記載される各種の実施例の範囲から逸脱しない場合には、第１画像は、第２画像と称されてもよく、また同様に、第２画像は第１画像と称されてもよい。第１画像と第２画像とは何れも画像であるが、それらは同一の画像ではない。
【００２１】
本文に記載される各種の実施例の記載に使用される用語は、ただ特定の実施例を説明するためであり、限定する意図はない。記載される各種の実施例及び付属する特許請求の範囲の記載に使用される場合に、文脈に別途明らかに指摘していない限り、「１つ」、「一種」や「当該」という単数形も、複数形を含むことを意図する。また、理解すべきことは、本文に用いられる「及び／又は」という用語が、１つ又は複数の関連する挙げられた事項の何れかと全ての可能な組合せを含むことを意味する。また、理解されることは、本明細書中に用いられる場合、「備える」及び／又は「含む」という用語が、記述される特徴、全体、工程、操作、素子及び／又は部材の存在を規定するが、１つ又は複数の他の特徴、全体、工程、操作、素子、部材及び／又はその組合せの存在や追加を予め排除しない。
【００２２】
本文に用いられるように、文脈によって、「…すると」という用語は、「…した時」、「…した後」、又は「…確定したことに応じて」、又は「…検出したことに応じて」、又は「…確定したことにより」と選択的に解釈される。同様に、「…確定すると」又は「『述べられた状況又は事件』が検出されると」という言葉遣いは、「…確定した後」、「…確定することに応じて」、又は「『述べられた状況又は事件』を検出した後」、又は「『述べられた状況又は事件』を検出したことに応じて」、又は「『述べられた状況又は事件』を検出したことを確定したことに応じて」と選択的に解釈される。
【００２３】
本文に用いられるように、「例示」という用語は、「その同種のもののうちの最も好ましいものを表す」という意味ではなく、「例、実例や例証として用いる」という意味で使用される。
【００２４】
図１は、幾つかの実施例による製品の検査ネットワークのネットワークアーキテクチャ１００の例を示すブロック図である。ネットワークアーキテクチャ１００は、１つ又は複数のネットワーク１０６により、サーバシステム１０４と通信可能に接続される幾つかの周辺装置１０２−１、１０２−２、…１０２−ｎを備える。
【００２５】
幾つかの実施例において、周辺装置１０２−１、１０２−２、…１０２−ｎは、サーバシステム１０４との間、同士間や、その他の装置との間に通信可能な電子装置である。幾つかの実施例において、サーバシステム１０４は、例えば、コンピュータのサーバのような単一の計算装置であるが、その他の実施例において、サーバシステム１０４は、共に作動することでサーバシステムの動作を実行する（例えば、クラウドコンピューティング）複数の計算装置により実施される。幾つかの実施例において、サーバシステム１０４は、周辺装置１０２−１、１０２−２、…１０２−ｎのうちの１つ（又はそれぞれ）にある。このような実施例において、サーバシステム１０４は、対応する周辺装置におけるコンピュータ（すなわち、サーバシステム１０４は、ローカルコンピュータ及び／又は対応する周辺装置の一部）である。幾つかの実施例において、ネットワーク１０６は、公衆通信ネットワーク（例えば、インターネット又はセル方式のデータネットワーク）、専用通信ネットワーク（例えば、専用ＬＡＮや専用回線）、又はこれらの通信ネットワークの組合せである。
【００２６】
周辺装置１０２−１、１０２−２、…１０２−ｎは、製品を検査（例えば、監視）するためである。幾つかの実施例において、周辺装置１０２−１、１０２−２、…１０２−ｎは、製品に対する操作の効果を監視する（例えば、品質管理を実行する。）。これを達成させるために、周辺装置１０２−１、１０２−２、…１０２−ｎのそれぞれは、例えばカメラ、赤外線カメラ、Ｘ線カメラ、デプスカメラなどの１つ又は複数の取込装置を備える。周辺装置１０２−１、１０２−２、…１０２−ｎは、製品の欠陥を識別し、又は、製品の欠陥の識別に利用可能なデータを集めることを図る。
【００２７】
幾つかの実施例において、周辺装置１０２は、カニカルアームの端部に付設されるメカメラ付きのメカニカルアーム（例えば、メカニカルアーム４０２、図４Ａ）である。図１には、複数の周辺装置を示しているが、幾つかの実施例においては、単一の周辺装置がサーバシステム１０４と通信する。
【００２８】
幾つかの実施例において、周辺装置１０２−１、１０２−２、…１０２−ｎは、取り込まれたデータをサーバシステム１０４に送信する。そして、サーバシステム１０４は、受信されたデータを利用し、製品の欠陥を評価することができる。その一方、幾つかの実施例（例えば、そのうちの、サーバシステム１０４が周辺装置１０２−１、１０２−２、…１０２−ｎにおけるコンピュータであるような実施例）においては、周辺装置１０２−１、１０２−２、…１０２−ｎは、現場で製品の欠陥を評価する。
【００２９】
図２は、幾つかの実施例によるサーバシステム２００の例を示すブロック図である。幾つかの実施例において、サーバシステム２００は、サーバシステム１０４（図１）の例である。上述したように、幾つかの実施例において、サーバシステム１０４は、周辺装置１０２−１、１０２−２、…１０２−ｎと別にして独立する。その一方、幾つかの実施例においては、サーバシステム１０４は、周辺装置１０２−１、１０２−２、…１０２−ｎの一部（又は、対応する周辺装置の一部）である。
【００３０】
サーバシステム２００は、一般的に、１つ又は複数のプロセスユニット（プロセッサ又はチップ）２０２と、１つ又は複数のネットワークインターフェースやその他の通信インターフェース２０４と、メモリ２０６と、これらの部材を双方向通信させるための１つ又は複数の通信バス２０８とを備える。通信バス２０８は、システム部材を双方向通信させるとともにシステム部材間での通信を制御する回路（チップセットと称されることがある。）を選択的に備える。サーバシステム２００は、ユーザインターフェース（図示せず）を選択的に備える。できれば、ユーザインターフェースは、表示装置を備えてもよく、また、例えば、キーボード、マウス、トラックパッド、及び／又は入力ボタンの入力を選択的に備える。選択的に、又は、さらに、表示装置は、タッチパネルを備え、この場合に、表示装置はタッチディスプレーである。
【００３１】
メモリ２０６は、例えば、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲＲＡＭや、その他のランダムアクセス固体記憶装置といった高速ランダムアクセスメモリを備え、かつ、例えば、１つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリやその他の不揮発性固体記憶装置といった不揮発性メモリを備えてもよい。選択的には、メモリ２０６は、（複数の）プロセッサ２０２から離れて位置付けられる１つ又は複数の記憶装置を備えてもよい。メモリ２０６は、非一時的コンピュータ読み出し可能記憶媒体を備え、又は、メモリ２０６における（複数の）不揮発性記憶装置は、非一時的コンピュータ読み出し可能記憶媒体を備える。幾つかの実施例において、メモリ２０６又はメモリ２０６のコンピュータに読み出し可能記憶媒体は、
各種の基本システムサービスを処理するための工程と、ハードウェアに関するタスクを実行するための工程とを含むオペレーティングシステム２１０と、
サーバシステム２００を、１つ又は複数の通信ネットワークインターフェース２０４（有線又は無線）、及び、例えば、インターネット、携帯電話ネットワーク、移動データネットワーク、その他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つ又は複数の通信ネットワーク１０６（図１）を介してその他のコンピュータ（例えば、メカニカルアーム３００、図３）に接続するためのネットワーク通信モジュール２１２と、
１つ又は複数の周辺装置から受信されたデータを処理し、処理されたデータを解析するための画像検査モジュール２１４であって、幾つかの実施例において、目視検査モジュールにより、処理されたデータと（複数の）欠陥モデル２２０（例えば、欠陥リスト６００、図６Ａ）とを比較する画像検査モジュール２１４と、
欠陥を記録して報告するための報告モジュール２１６と、
例えば、
１つ又は複数の欠陥モデル２２０、
１つ又は複数の基準及び閾値２２２、及び、
コンテンツ２２４
といったサーバシステムに関連するデータを記憶するためのサーバデータベース２１８と、
を含むプログラム、モジュールとデータ構造、又はその部分集合や上位集合を記憶する。
【００３２】
幾つかの実施例において、１つの又は複数の欠陥モデル２２０は、前に識別された欠陥、及び／又は所望の結果（すなわち、無欠陥画素）を含む。
【００３３】
１つ又は複数の基準及び閾値２２２は、欠陥を識別するための閾値を含んでもよい。例えば、取り込まれた１つの画像と欠陥モデル２２０とに含まれた欠陥の画素間での閾値の差（又は閾値類似性）である。さらに、幾つかの実施例において、画像の閾値数のブロックが欠陥を含むと見なされないと、画像は欠陥を含むとは見なされない。
【００３４】
コンテンツ２２４は、例えば、メカニカルアームにより取り込まれた画像といったメカニカルアーム３００から受信されたデータ（図３）を含んでもよい。幾つかの実施例において、コンテンツ２３０は、テキスト（例えば、ＡＳＣＩＩ、ＳＧＭＬ、ＨＴＭＬ）、画像（例えば、ｊｐｅｇ、ｔｉｆやｇｉｆ）、図形（例えば、ベクトル又はビットマップに基づく）、音声、映像（例えば、ｍｐｅｇ）や、その他の複数の媒体、及び／又はその組合せを含む。
【００３５】
サーバデータベース２１８は、サーバシステム２００に関連するデータを、例えば、テキストデータベース、図形データベース、多次元データベース、平面データベース、階層型データベース、ネットワークデータベース、オブジェクト指向データベース、リレーショナルデータベース、及び／又はＸＭＬデータベースといった１つ又は複数のタイプのデータベースに記憶する。
【００３６】
幾つかの実施例において、サーバシステム２００は、周辺装置の図形をメモリに記憶する。例えば、図形は、特定の生産ラインにおけるそれぞれの周辺装置、及びそれぞれの周辺装置間のジョイントに付けられる。ジョイントは、周辺装置の位置、周辺装置の方向付け、隣接する周辺装置などを含んでもよい。
【００３７】
図３は、幾つかの実施例によるメカニカルアーム３００の例を示すブロック図である。メカニカルアーム３００は、１つ又は複数の周辺装置１０２−１、１０２−２、…１０２−ｎのうちの１つの例である（図１）。メカニカルアーム３００は、一般的に、１つ又は複数のプロセスユニット（プロセッサ又はチップ）３０２と、１つ又は複数のネットワークインターフェースやその他の通信インターフェース３０４と、メモリ３０６と、これらの部材を双方向通信させるための１つ又は複数の通信バス３０８と、アクチュエータ３０９（例えば、回転関節４０６−Ａ〜４０６−Ｄ、図４Ａ）とを備える。通信バス３０８は、システム部材を双方向通信させるとともにシステム部材間での通信を制御する回路（チップセットと称されることがある）を選択的に備える。メカニカルアーム３００は、メカニカルアーム３００の位置を確定するために、例えば、ＧＮＳＳ（例えば、ＧＰＳ、グロナスなど）といった位置検出装置３１０やその他の地理位置情報受信機を選択的に備える。メカニカルアーム３００は、例えば、カメラ、赤外線カメラ、Ｘ線カメラ、デプスカメラ、３次元カメラなどの１つ又は複数の取込装置３１２をさらに備える。
【００３８】
幾つかの実施例において、メカニカルアーム３００は、メカニカルアーム３００の方向付けの変更、及び／又はメカニカルアーム３００の運動を検出するための１つ又は複数の選択的なセンサ（例えば、ジャイロスコープ、加速度計）を備える。幾つかの実施例において、検出されたメカニカルアーム３００の運動、及び／又は方向付けは、メカニカルアーム３００の位置付けの期間に使用され、或いは、メカニカルアーム３００に、調整する又は改めて位置合わせるように指示する。
【００３９】
幾つかの実施例において、メカニカルアーム３００は、回転可能な基台３１１（例えば、回転可能な基台４１０、図４Ａ）を備え、又は、制御する。幾つかの実施例において、メカニカルアーム３００は、１つ又は複数の通信バス３０８を介して回転可能な基台３１１に通信する。その一方、幾つかの実施例において、メカニカルアーム３００は、それぞれ、（複数の）通信インターフェース３０４及び通信ンターフェース３１３を介して回転可能な基台３１１に通信する。幾つかの実施例において、サーバシステム２００は、回転可能な基台３１１を制御する。
【００４０】
メモリ３０６は、例えば、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲＲＡＭやその他のランダムアクセス固体記憶装置といった高速ランダムアクセスメモリを備え、また、１つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置やその他の不揮発性固体記憶装置といった不揮発性メモリを備えてもよい。選択的には、メモリ３０６は、（複数の）プロセッサ３０２から離れて位置付けられる１つ又は複数の記憶装置を備えてもよい。メモリ３０６は、非一時的コンピュータ読み出し可能記憶媒体を備え、又は、メモリ３０６における（複数の）不揮発性記憶装置は、非一時的コンピュータ読み出し可能記憶媒体を備える。幾つかの実施例において、メモリ３０６又はメモリ３０６のコンピュータ読み出し可能記憶媒体は、
各種の基本システムサービスを処理するための工程と、ハードウェアに関するタスクを実行するための工程とを含むオペレーティングシステム３１４と、
メカニカルアーム３００を、１つ又は複数の通信ネットワークインターフェース３０４（有線又は無線）、及び、例えば、インターネット、携帯電話ネットワーク、移動データネットワーク、その他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つ又は複数の通信ネットワーク１０６（図１）を介してその他のコンピュータ（例えば、その他の周辺装置、サーバシステム２００、回転可能な基台３１１）に接続するためのネットワーク通信モジュール３１６と、
アクチュエータ３０９を制御し、かつ、取込装置３１２を製品の隣りに位置付けるための位置付けモジュール３１８と、
（複数の）取込装置３１２を制御し、かつ、（複数の）取込装置３１２により取り込まれた対応する画像や映像（又はその他のデータ）を処理するための取込モジュール３２０と、
（例えば、位置検出装置３１０により）メカニカルアーム３００の位置を確定し、かつ、この位置情報をその他の周辺装置、及び／又はサーバシステム２００に供給するための位置検出モジュール３２２（例えば、ＧＰＳ、Ｗｉ−Ｆｉ、又は混合位置付けモジュール）と、
取込装置３１２により取り込まれたデータを利用し、製品の欠陥を検出するための画像検査モジュール３２４と、
例えば、
１つ又は複数の欠陥モデル３２８、
コンテンツ３３０、及び、
運動学のアルゴリズム及びその他の方程式３３２
といったメカニカルアーム３００に関連するデータを記憶するためのデータベース３２６と
を含むプログラム、モジュールとデータ構造、又はその部分集合や上位集合を記憶する。
【００４１】
幾つかの実施例において、位置付けモジュール３１８は、回転可能な基台３１１を制御する（すなわち、回転させる）ための回転可能な基台モジュール３３４を備える。以下に詳述されるように、（複数の）取込装置３１２により取り込まれた画像に識別される欠陥の位置に応じて、回転可能な基台モジュール３３４は、回転可能な基台３１１を回転させる。なお、幾つかの実施例において、画像（例えば、第１画像５００、図５Ｂ）を取り込む前に、回転可能な基台モジュール３３４は、回転可能な基台３１１を初期位置に回転させる。
【００４２】
幾つかの実施例において、１つの又は複数の欠陥モデル３２８は、前に識別された欠陥、及び／又は所望の結果（すなわち、無欠陥画素）を含む。以下、図５Ｂ及び図６Ａから図６Ｂを参照し、１つ又は複数の欠陥モデル３２８をさらに詳述する。
【００４３】
幾つかの実施例において、コンテンツ３３０は、（複数の）取込装置３１２により取り込まれたデータを含む。幾つかの実施例において、コンテンツ３３４は、テキスト（例えば、ＡＳＣＩＩ、ＳＧＭＬ、ＨＴＭＬ）、画像（例えば、ｊｐｅｇ、ｔｉｆやｇｉｆ）、図形（例えば、ベクトル又はビットマップに基づく）、音声、映像（例えば、ｍｐｅｇ）や、その他の複数の媒体、及び／又は其組合せを含む。なお、幾つかの実施例において、コンテンツ３３０は、メカニカルアーム３００により生成されるローカルバイナリパターン（ＬＢＰ）を含む。
【００４４】
幾つかの実施例において、運動学のアルゴリズム３３２は、順運動学の方程式及び逆運動学の方程式である。順運動学の方程式及び逆運動学の方程式は、それぞれ、メカニカルアーム３００のエンドエフェクタ（又は、複数のエンドエフェクタ）の位置を識別し、関節のパラメータを確定するためであり、関節のパラメータは、メカニカルアームのエンドエフェクタのそれぞれの所望の位置を提供する。その他の方程式３３２は、作業空間方程式と検索経路方程式とを含んでもよく、そのうちのそれぞれを、以下にさらに詳しく説明する。
【００４５】
上述した識別モジュールとアプリケーションのそれぞれは、実行可能な命令セットに対応し、当該実行可能な命令は、上述したような１つ又は複数の機能、及び／又は、本出願に記載された方法（例えば、コンピュータにより実施される方法や、本文に記載された他の情報処理方法）を実行するためである。これらのモジュール（すなわち、命令セット）は、独立したソフトウェアプログラム、工程やモジュールとして実施する必要がなく、これにより、これらのモジュールの各種の部分集合は、各種の実施例において選択的に組み合わせられ、又は、その他の方式で改めて配置される。幾つかの実施例において、メモリ２０６及び／又は３０６は、上述した識別されたデータ構造とモジュールの部分集合を記憶する。さらに、メモリ２０６及び／又は３０６は、上記に記載されていない別のモジュールとデータ構造を選択的に記憶する。
【００４６】
図４Ａから図４Ｃは、幾つかの実施例による、製品を検査するためのロボットアームの例を示す。
【００４７】
図４Ａは、幾つかの実施例による、製品４１２を検査するためのメカニカルアーム４０２の例である。図示されるように、メカニカルアーム４０２は、生産ライン４００の一部であり、生産ライン４００は、回転可能な基台４１０と、回転可能な表面４１０の頂部に設けられた製品４１２とをさらに含む。メカニカルアーム４０２はメカニカルアーム３００の例である（図３）。注意すべきことは、メカニカルアーム４０２は、多くの異なる製品を検査することができ、また、製品４１２は、ただ一例に過ぎない。
【００４８】
メカニカルアーム４０２は、複数のセクション（又は、セグメント）４０４−Ａ、４０４−Ｂ及び４０４−Ｃを備える。幾つかの実施例において、複数のセクション４０４−Ａ、４０４−Ｂ及び４０４−Ｃのそれぞれの長さは、ほぼ同じである。その一方、幾つかの実施例において、複数のセクション４０４−Ａ、４０４−Ｂ及び４０４−Ｃのうちの少なくとも１つのセクションの長さは、複数のセクションのうちの他のセクションの長さと違っている。図４Ａに示す長さは、ただ例示のためであり、制限的なものではない。例えば、第２セクション４０４−Ｂは第１セクション４０４−Ａよりも短いと示されているが、幾つかの実施例において、第２セクション４０４−Ｂは、第１セクション４０４−Ａよりも長い（環境によっては、第３セクション４０４−Ｃがその他のセクションよりも長くても、短くてもよい）。メカニカルアーム４０２は、３つのセクションを備えると示されているが、メカニカルアーム４０２は、各数量のセクション（例えば、２つのセクション、４つのセクション、…Ｎ個のセクション）を備えてもよい。
【００４９】
メカニカルアーム４０２は、複数の回転可能な関節４０６−Ａ〜４０６−Ｄ（例えば、アクチュエータ３０９、図３）をさらに含む。幾つかの実施例において、複数の回転可能な関節４０６−Ａ〜４０６−Ｄに含まれる回転関節の数は、複数のセクション４０４−Ａ、４０４−Ｂ及び４０４−Ｃにおけるセクションの数（例えば、複数の回転関節の数は、複数のセクションの数よりも１つ多い）に対応する。図示されるように、第１回転関節４０６−Ａは第１回転軸線（例えば、Ｙ軸）の周りに回転し、第２回転関節４０６−Ｂ及び第３回転関節４０６−Ｃは、第２回転軸線（例えば、Ｚ軸）の周りに回転し、また、第４回転関節４０６−Ｄは、第１回転軸線及び第２回転軸線のうちの１つ又は複数の回転軸線の周りに回転する。幾つかの実施例において、第４回転関節４０６−Ｄも第３回転軸線（例えば、Ｘ軸）の周りに回転する。注意すべきことは、回転関節は、時計回りに、及び／又は、反時計回りに回転してもよく、図４Ａから図４Ｃに用いられる矢印は、回転関節の回転方向を制限するものと解釈されるべきではない。
【００５０】
図示されるように、それぞれの回転関節４０６は、（ｉ）複数のセクション４０４のうちの２つのセクションに接続され、又は、（ｉｉ）メカニカルアーム４０２のカメラ４０８（後述する）は、複数のセクション４０４のうちの１つのセクションに接続される。このようにして、メカニカルアーム４０２は、ほぼ隣接しているセクションを備える。
【００５１】
メカニカルアーム４０２は、メカニカルアームの端部に接続されるカメラ４０８（例えば、取込装置３１２、図３）をさらに備える。メカニカルアーム４０２（又は、その（複数の）プロセッサ３０２や取込モジュール３２０といった部材、図３）は、カメラ４０８の操作を制御する。例えば、上記にさらに詳述されるように、カメラ４０８を所望の位置に位置付けた後、メカニカルアーム４０２は、カメラ４０８により製品４１２の画像を取り込む。さらに、幾つかの実施例において、メカニカルアーム４０２は、特徴／機能に基づき、ズーム（例えば、メカニカルアーム４０２によるカメラ４０８の焦点距離の調整）のようなカメラ４０８の他の特徴／機能を制御する。
【００５２】
幾つかの実施例において、メカニカルアーム４０２は、カメラ４０８を、製品４１２の表面（又は、特徴）とほぼ隣接するように位置付ける。さらに、幾つかの実施例において、メカニカルアーム４０２は、カメラ４０８が製品４１２の表面（又は、特徴）に関して真ん中にあるように、カメラ４０８を位置付ける。これを達成するために、メカニカルアーム４０２は、（例えば、（複数の）プロセッサ３０２、及び／又は位置付けモジュール３１８）複数の回転関節４０６−Ａ〜４０６−Ｃのうちの１つの又は複数を作動させる。このようにして、カメラ４０８は、製品４１２の表面の画像を取り込み、また、メカニカルアーム４０２（又はサーバシステム２００、図２）は、画像の欠陥を評価する。カメラ４０８を所望の位置に位置付ける際に、メカニカルアーム４０２は、運動学の方程式（例えば、正運動学及び／又は逆運動学）を利用する。運動学の方程式は、本文において運動学のアルゴリズム３３２とも称される（図３）。
【００５３】
なお、製品４１２のそれぞれの表面及び／又は特徴を評価するために、生産ライン４００は、回転可能な基台４１０を備える。幾つかの実施例において、メカニカルアーム４０２（又は、その（複数の）プロセッサ３０２や回転可能な基台モジュール３３４といった部材、図３）は、回転可能な基台４１０を制御する。その一方、幾つかの実施例において、例えば、サーバシステム２００（図２）の幾つかの他の計算装置により回転可能な基台を制御する。生産ライン４００に回転可能な基台４１０が備えられることにより、（ｉ）メカニカルアーム４０２が最小の動きで製品４１２の表面及び／又は特徴を評価可能にされ、及び、（ｉｉ）複数のセクション４０４−Ａ〜４０４−Ｃのそれぞれの長さが低減される。例えば、回転可能な基台４１０は、製品４１２を回転させることにより、製品４１２のそれぞれの側面をカメラ４０８に見せる。従って、それぞれの側面がメカニカルアーム４０２の前方に置かれた場合、メカニカルアーム４０２は、ほぼ固定したままである（例えば、図４Ｂ〜図４Ｃに示すように、メカニカルアーム４０２は製品４１２の遠端表面に届かなければならないのに対し、メカニカルアーム４０２は、ただ製品４１２の頂部表面だけに届かなければならない。）。
【００５４】
幾つかの実施例において、カメラ４０８を位置付ける際に、メカニカルアーム４０２は、カメラ４０８の視野を考慮する。例えば、取り込まれた製品のサイズによっては、メカニカルアーム４０２は、製品４１２の全面が取り込まれるように、カメラ４０８を、製品４１２から特定の距離を離れた箇所に設置しなければならない。当該特定の距離は、カメラの視野によって決められる。例示される視野は、６０度の視野であってよいが、その他の視野であってもよい（例えば、レンズのタイプ、焦点距離、カメラのタイプなどによって決められる。）。下記の作業空間方程式に視野（β）を表す。
【００５５】
幾つかの実施例において、製品４１２の初期画像を取り込むことにより（又は、カメラに撮られた映像フィードバックを評価することにより）、メカニカルアーム４０２は、その作業空間を識別する。例えば、ある場合には、製品４１２は、ティーポットのようなより小さい製品であるが、第１作業空間が求められる。しかし、幾つかの他の場合に、製品４１２は、冷蔵庫のようなより大きい製品であるが、第１作業空間と異なる第２作業空間が求められる。幾つかの実施例において、メカニカルアーム４０２の作業空間は、下記の方程式で表わされる。
【数１】
0006865865.tif 000002
【００５６】
【表１】
0006865865.tif 000003
【００５７】
メカニカルアーム４０２は、製品間のサイズ差を識別することができるので、メカニカルアーム４０２は、それに応じて、製品４１２の初期画像が取り込まれるように、製品４１２の表面（又は特徴）とほぼ隣接するとともに当該表面（又は特徴）に関して真ん中にあるように位置付けることができる。このようにして、特定の製品をキャリブレーションする複数のメカニカルアームを有することとは逆に、生産ライン４００は、単一のメカニカルアームを利用することができることで、生産ライン４００の総コストが低減される。
【００５８】
図４Ｂは、幾つかの実施例による、製品４１２を検査するためのメカニカルアーム４２０の例である。メカニカルアーム４２０は、メカニカルアーム３００の例である（図３）。簡単化するために、図４Ｂには、上記に図４Ａを参照して示され、及び／又は記載された１つ又は複数の特徴を描いていない（又は、ある特徴が簡単に描かれている。）。
【００５９】
メカニカルアーム４２０は、複数のセクション（又はセグメント）４２４−Ａ、４２４−Ｂ及び４２４−Ｃを備える。幾つかの実施例において、複数のセクション４２４−Ａ、４２４−Ｂ及び４２４−Ｃのそれぞれの長さは、ほぼ同じである。その一方、幾つかの実施例において、複数のセクション４２４−Ａ、４２４−Ｂ及び４２４−Ｃのうちの少なくとも１つのセクションの長さは、複数のセクションのうちの他のセクションと違っている。メカニカルアーム４２０は、３つのセクションを備えると示されているが、理解すべきことは、メカニカルアーム４２０は、各数量のセクション（例えば、２つのセクション、４つのセクション、…Ｎ個のセクション）を備えてもよい。
【００６０】
メカニカルアーム４２０は、複数の回転関節４２６−Ａ〜４２６−Ｄをさらに備える。幾つかの実施例において、複数の回転関節４２６−Ａ〜４２６−Ｄに含まれる関節の数は、複数のセクション４２４−Ａ、４２４−Ｂ及び４２４−Ｃのうちのセクションの数に対応する（例えば、関節の数は複数のセクションの数よりも1つ多い。）。図示されるように、第１回転関節４２６−Ａは、第１回転軸線（例えば、Ｙ軸）の周りに回転し、第２回転関節４２６−Ｂ及び第３回転関節４２６−Ｃは、第２回転軸線（例えば、Ｚ軸）の周りに回転し、また、第４回転関節４２６−Ｄは、第１回転軸線及び第２回転軸線の周りに回転する。
【００６１】
メカニカルアーム４０２（図４Ａ）に比べると、メカニカルアーム４２０の複数のセクション４２４−Ａ〜４２４−Ｃの長さは、ほぼメカニカルアーム４０２の複数のセクション４０４−Ａ〜４０４−Ｃの長さよりも大きい。これは、製品４１２が固定基台４３０の頂部に置かれているからであり、これにより、メカニカルアーム４２０が製品４１２のそれぞれの表面に届かなければならない。回転可能な基台４１０を有していないので、第４回転関節４２６−Ｄは、第１回転軸線及び第２回転軸線の周りに回転する。
【００６２】
メカニカルアーム４２０は、メカニカルアーム４２０の端部に接続されるカメラ４２８（例えば、取込装置３１２、図３）をさらに備える。メカニカルアーム４２０は、上記に図４Ａを参照して検討された工程を利用することで、カメラ４２８を、ほぼ製品４１２の表面（又は特徴）と隣接するとともに、製品４１２の表面（又は特徴）に関して真ん中にあるように位置付ける。
【００６３】
幾つかの実施例において、製品４１２の初期画像を取り込むことにより（又は、カメラ４２８に撮られた映像フィードバックを評価することにより）、メカニカルアーム４２０は、その作業空間を識別する。幾つかの実施例において、メカニカルアーム４２０の作業空間は下記の方程式で表される。
【数２】
0006865865.tif 000004
【００６４】
【表２】
0006865865.tif 000005
【００６５】
図４Ｃは、幾つかの実施例による、製品４１２を検査するためのメカニカルアーム４４０の例である。メカニカルアーム４４０は、メカニカルアーム３００の例である（図３）。簡単化するために、図４Ｃには、上記に図４Ａを参照して記載された１つ又は複数の特徴を描いていない（又は、ある特徴が簡単に記載されている。）。
【００６６】
メカニカルアーム４４０は、複数のセクション（又はセグメント）４４４−Ａ、４４４−Ｂ及び４４４−Ｃを備える。幾つかの実施例において、複数のセクション４４４−Ａ、４４４−Ｂ及び４４４−Ｃのそれぞれの長さは、ほぼ同じである。その一方、幾つかの実施例において、複数のセクション４４４−Ａ、４４４−Ｂ及び４４４−Ｃのうちの少なくとも1つの長さは、複数のセクションのうちの他のセクションと違っている。メカニカルアーム４４０は、３つのセクションを備えると示されているが、理解すべきことは、メカニカルアーム４４０は、各数量のセクション（例えば、２つのセクション、４つのセクション、…Ｎ個のセクション）を備えてもよい。
【００６７】
メカニカルアーム４４０は、複数の回転関節４４６−Ａ〜４４６−Ｄをさらに備える。幾つかの実施例において、複数の回転関節４４６−Ａ〜４４６−Ｄに含まれる関節の数は、複数のセクション４４４−Ａ、４４４−Ｂ及び４４４−Ｃのうちのセクションの数に対応する（例えば、関節の数は、複数のセクションの数よりも１つ多い）。図示されるように、第１回転関節４４６−Ａは、第１回転軸線（例えば、Ｘ軸）の周りに回転し、第２回転関節４４６−Ｂ及び第３回転関節４４６−Ｃは、第２回転軸線（例えば、Ｚ軸）の周りに回転し、また、第４回転関節４４６−Ｄは、第２回転軸線及び第３回転軸線のうちの１つ又は複数（例えば、Ｙ軸）の周りに回転する。
【００６８】
メカニカルアーム４４０は、メカニカルアームの端部に接続されるカメラ４４８（例えば、取込装置３１２、図３）をさらに備える。メカニカルアーム４４０は、上記に図４Ａを参照して検討された工程を利用することで、カメラ４４８を、ほぼ製品４１２の表面（又は特徴）と隣接するとともに、製品４１２の表面（又は特徴）に関して真ん中にあるように位置付ける。
【００６９】
メカニカルアーム４０２（図４Ａ）に比べると、メカニカルアーム４４０の複数のセクション４４４−Ａ〜４４４−Ｃの長さは、ほぼメカニカルアーム４０２の複数のセクション４０４−Ａ〜４０４−Ｃの長さよりも大きい。これは、製品４１２が固定基台４５０の頂部に置かれているからであり、これにより、メカニカルアーム４４０が製品４１２のそれぞれの表面に届かなければならない。しかし、メカニカルアーム４２０（図４Ｂ）に比べると、メカニカルアーム４４０は、メカニカルアーム４２０よりも少ない関節により作動させて製品４１２の５つの露出面を取り込むことができる。これは、メカニカルアーム４４０のユニークな関節の配置により実現される（例えば、第１回転関節４４６−ＡはＸ軸の周りに回転し、これにより、第１回転関節４４６−Ａを作動させることにより製品４１２の３つの表面を取り込むことができる。）。
【００７０】
幾つかの実施例において、製品４１２の初期画像を取り込むことにより（又は、カメラ４４８に撮られた映像フィードバックを評価することにより）、メカニカルアーム４４０はその作業空間を識別する。幾つかの実施例において、メカニカルアーム４４０の作業空間は下記の方程式で表される。
【数３】
0006865865.tif 000006
【００７１】
【表３】
0006865865.tif 000007
【００７２】
図５Ａから図５Ｂは、幾つかの実施例による、メカニカルアーム４０２による製品４１２の第１画像５００の取込み、及び取り込んだ結果を示す。
【００７３】
上記に図４Ａから図４Ｃを参照して記載されたように、メカニカルアーム４０２（又は、その（複数の）プロセッサ３０２や位置付けモジュール３１８といった部材、図３）は、カメラ４０８を、ほぼ製品４１２の表面（又は特徴）と隣接するとともに、製品４１２の表面（又は特徴）に関して真ん中にあるように、位置付ける。幾つかの実施例において、メカニカルアーム４０２は、このようにこれを達成させる。まず、取り込むべき製品４１２（例えば、電子レンジ対冷蔵庫）を識別し、また、識別された製品に基づき、メカニカルアーム４０２は、カメラ４０８の視野を考慮に入れるように、その作業空間を確定する。さらに、メカニカルアーム４０２は、１つ又は複数の運動学の方程式を実行することにより、自分を位置付ける。このような場合に、メカニカルアーム４０２は、カメラ４０８が許容可能な画像（例えば、製品全体の表面又は全ての特徴の画像）を取り込むように、カメラ４０８を製品４１２の表面から十分に離れた距離に位置付ける。当該配置は、図５Ａに示す。
【００７４】
図５Ｂは、カメラ４０８により取り込まれた第１画像５００を示す。第１画像５００は、カメラ４０８により取り込まれた製品４１２の表面５０１と、製品の表面５０１における欠陥５０２とを含む。
【００７５】
幾つかの実施例において、メカニカルアーム４０２（又は、その（複数の）プロセッサ３０２や画像検査モジュール３２４といった部材、図３）は、第１画像５００を処理（例えば、解析、評価など）することにより、欠陥５０２を識別する。幾つかの実施例において、第１画像５００の処理は、第１画像５００の一部（例えば、ブロック）と、１つ又は複数の欠陥モデル（例えば、（複数の）欠陥モデル３２８、図３）とを比較することに関わる。これを達成させるために、メカニカルアーム４０２は、第１画像５００をブロック５０４−１〜５０４−Ｎに分割し（例えば、格子を形成し、その中、格子のそれぞれのブロックは同じサイズを有する。）、また、ブロック５０４−１〜５０４−Ｎの少なくとも１つの部分集合と１つ又は複数の欠陥モデル（例えば、欠陥モデル６００、図６Ａ）とを比較する。図６Ａに示すように、欠陥モデル６００は、欠陥画素６０２−Ａ〜６０２−Ｎを含む。注意すべきことは、幾つかの実施例において、「欠陥画素」は１×１画素であるが、幾つかの他の実施例においては、欠陥画素は、複数の画素（例えば、２５×２５画素、１００×１００画素、又は、数がより大きい又はより小さい幾つかの画素）を含む。
【００７６】
幾つかの実施例において、欠陥画素は、第１画像５００のブロックに対応する（例えば、欠陥モデル６００の左上隅は、第１画像５００の左上隅の欠陥画素に対応する。）。従って、メカニカルアーム４０２は、第１画像５００の第１ブロック５０４−１と、製品４１２の表面５０１に用いられる欠陥モデルからの１つ又は複数の対応する欠陥画素（例えば、欠陥画素６０２−Ａ、図６Ａ）とを比較する。幾つかの実施例において、比較する間に、メカニカルアーム４０２は、左から右へ、及び／又は、上方から下方へ、１つ又は複数の対応する欠陥画素をひっくり返す。なお、幾つかの実施例において、比較する間に、メカニカルアーム４０２は、１つ又は複数の対応する欠陥画素を９０度、１８０度、及び／又は２７０度回転させる。このようにして、メカニカルアーム４０２は、１つ又は複数の対応する欠陥画素の有り得る変形を評価する。注意すべきことは、欠陥画素を「ひっくり返す」ことは、欠陥画素を「回転」させることではない（例えば、欠陥画素をひっくり返すことにより、欠陥画素における特徴が、得られた欠陥画素に鏡像になる。）。
【００７７】
幾つかの実施例において、メカニカルアーム４０２は、順次に第１画像５００のブロックと欠陥画素とを比較する。例えば、ブロック５０４−１と、１つ又は複数の第１の対応する欠陥画素とを比較し、ブロック５０４−２と、１つ又は複数の第２対応する欠陥画素とを比較するなど。その一方、メカニカルアーム４０２は、第１画像５００のブロックと欠陥画素とをランダム又は疑似ランダムに比較する。幾つかの実施例において、メカニカルアーム４０２は、第１画像５００の初期解析を実行することにより、第１画像５００における任意の異常を識別する。異常を発見すると、例えば、第１画像５００の右下隅が制御表面と異なるようになり（後述する）、メカニカルアーム４０２は、第１画像５００の右下隅での１つ又は複数のブロックと、１つ又は複数の対応する欠陥画素とを比較する。このようにして、メカニカルアーム４０２は、第１画像５００に対する異常を含まないの他の部分の処理を飛ばすので、時間とコンピューティング資源が節約される。
【００７８】
幾つかの実施例において、欠陥画素は、前に識別された欠陥である。例えば、前に識別された欠陥は、テスト／キャリブレーション段階の期間、及び／又は、この前の検査期間に識別されることができる（例えば、製品４１２は電子レンジである場合に、前に検査された電子レンジの表面における欠陥が記録、記憶される。）。選択的に、又は、さらに、幾つかの実施例において、製品４１２の表面５０１のそれぞれのブロックに対しては、欠陥画素が所望のの結果である（すなわち、無欠陥画素）。例えば、テスト／キャリブレーション段階の期間に、制御される製品の制御表面の画像が取り込こまれ、制御表面のそれぞれのブロックが記録、記憶される（制御表面が製品の表面５０１に対応する）。なお、幾つかの制御される製品に対しては、欠陥モデル３２８が形成されるように、当該プロセスを繰り返してもよい（図３）。このようにして、欠陥モデル３２８は、許容可能な誤差を有する所望の結果（例えば、異常を、欠陥に要求される制御表面の閾値との差と認めるべきである。）を含む。
【００７９】
図５Ｂに示すように、第１画像５００は、ブロック５０４−５のうちの欠陥５０２を含む。これに対応して、欠陥５０２に応じて、メカニカルアームは、図５Ｃ〜図５Ｄに示すように、製品５１２の表面５０１の第２画像５３０が取り込まれるように、改めて位置付ける。注意すべきことは、欠陥のサイズによっては、欠陥は、幾つかのブロックを跨ってもよい。検討及び説明を容易にするために、欠陥５０２は、単一のブロック５０４−１内に含まれる。さらに、幾つかの実施例において、メカニカルアーム４０２の代わりに、サーバシステム２００（図２）は、第１画像５００を処理する（例えば、メカニカルアーム４０２は、評価するために、第１画像５００をサーバシステム２００に送信する。）。なお、幾つかの実施例において、第１画像５００における異常を識別した後、メカニカルアーム４０２は、評価するために、第１画像５００をサーバシステム２００に送信する。
【００８０】
図５Ｃ〜図５Ｄは、幾つかの実施例による、メカニカルアームによる製品の第２画像５３０の取込み、及び取り込まれた結果を示す。
【００８１】
第１画像５００における欠陥５０２が識別されたことに応じて、メカニカルアーム４０２は、自分で第１位置５２０−Ａ（破線）から第２位置５２０−Ｂへ運動する（例えば、改めて位置付ける）。図５Ａ中のメカニカルアーム４０２は、第１位置５２０−Ａに位置付けられ、これにより、第１位置５２０−Ａに位置付けられると、メカニカルアーム４０２は、第１画像５００を取り込む。幾つかの実施例において、カメラ４０８（又は、回転関節のうちの１つ）の第１位置５２０−Ａ、及び欠陥５０２の第１画像５００における相対的な位置によって、第１位置５２０−Ａと第２位置５２０−Ｂとの間の運動を確定する。なお、第２位置５２０−Ｂが、メカニカルアーム４０２により確定された作業空間内にあり、かつ、第１位置５２０−Ａと第２位置５２０−Ｂとの間の運動が作業空間によって確定される。しかし、注意すべきことは、メカニカルアーム４０２が自分の目標を改めて位置付けるのは、（全体として製品の表面５０１を取り込むこととは逆に）カメラ４０８を欠陥５０２に焦点を合わせることである。
【００８２】
幾つかの実施例において、第１画像５００における欠陥５０２が識別されたことに応じて、メカニカルアーム４０２（又は、その（複数の）プロセッサ３０２や回転可能な基台モジュール３３４といった部材、図３）は、回転可能な基台４１０を回転させる。図５Ａ中の回転可能な基台４１０は、第１位置に位置付けられ（示された製品４１２−Ａは第１位置（破線）にある）、これにより、製品４１２−Ａが第１位置にある場合に、メカニカルアーム４０２は、第１画像５００を取り込む。幾つかの実施例において、欠陥５０２の第１画像５００における相対的な位置に応じて、メカニカルアーム４０２は、回転可能な基台４１０を第２位置（製品４１２−Ｂが第２位置にあることを示している。）に回転させる。
【００８３】
ある場合には、メカニカルアーム４０２が自分を改めて位置付ける時に、カメラ４０８を複数の方向に沿って運動させる。例えば、メカニカルアーム４０２は、カメラ４０８をＹ軸、Ｘ軸及びＺ軸に沿って運動させる。欠陥５０２が第１画像５００の中心からオフセットした（例えば、欠陥５０２が第１画像５００において製品の表面５０１の左上隅へオフセットした）場合に、メカニカルアーム４０２は、カメラ４０８を複数の方向に沿って運動させる。しかし、ある場合には、欠陥５０２は、第１画像５００の中心から垂直にオフセットしないと、メカニカルアーム５０２は、カメラ４０８を単一の方向に沿って運動させる（例えば、Ｘ軸に沿って製品４１２−Ｂの表面５０１に向かう）ことができる。回転可能な基台４１０は、欠陥５０２をカメラの前方に改めて位置付けているので、カメラ４０８の最小の動きが実現される。無論、回転可能な基台４１０の回転のために、カメラ４０８は、製品４１２−Ｂの表面５０１と隣接しなくなり、メカニカルアーム４０２は、必要に応じて更に改めて位置付ける動作をとることができる。
【００８４】
幾つかの実施例において、第１位置５２０−Ａから第２位置５２０−Ｂへ運動する際に、メカニカルアーム４０２は、運動学の方程式（例えば、運動学のアルゴリズム３３２、図３）を利用する。運動学の方程式は、順運動学の方程式、及び／又は、逆運動学の方程式を含むことができる。順運動学とは、ロボットの運動学の方程式を利用することにより、関節のパラメータの具体的な値から、エンドエフェクタ（例えば、カメラ）の位置を算出することである。幾つかの実施例において、順運動学の方程式の例は下記の方程式で表される。
【表４】
0006865865.tif 000008
【００８５】
ただし、θ、ｄ、ａ及びαは、当業者に知られているようなＤｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇパラメータである。図４Ａに示すメカニカルアーム４０２に対して、下記の順運動学のマトリクスを適用する。
【数４】
0006865865.tif 000009
ただし、「Ｃ」＝余弦、かつ、「Ｓ」＝正弦である。
【００８６】
例示された順運動学の方程式及びマトリクスを利用して、メカニカルアーム４０２は、エンドエフェクタの上記作業空間方程式により限定された作業空間における位置を確定する（例えば、カメラ４０８、及び／又は、１つの回転関節の位置）。
【００８７】
ロボット技術において、逆運動学は、運動学の方程式を利用して、メカニカルアームののエンドエフェクタのそれぞれに所望の位置を与える関節のパラメータを確定する。逆運動学は、エンドエフェクタを、第１位置から第２位置への運動計画を、ロボットの関節アクチュエータの跡に変換する。幾つかの実施例において、逆運動学の方程式の例は下記の方程式で表される。
【数５】
0006865865.tif 000010
ただし、ｎ、ｏ、ａ及びｐは、４つの関節がデカルト座標系における空間位置に対応する。
【００８８】
幾つかの実施例において、メカニカルアーム４０２は、上述した逆運動学の方程式を利用して、その第１位置５２０−Ａから第２位置５２０−Ｂへの検索経路を定義する（すなわち、カメラ４０８（又は、回転関節のうちの１つ又は複数）の経路を定義する。）。幾つかの実施例において、検索経路方程式の例は、メカニカルアーム４０２用のそれぞれの関節の下記の方程式で表される（三次補間法に基づく方程式による）。
【数６】
0006865865.tif 000011
【００８９】
注意すべきことは、上記方程式は、ただ、メカニカルアーム４０２の運動を制御するために利用可能な方程式の一例に過ぎない。当業者は、各種の他の方程式が、メカニカルアーム４０２の運動の制御に利用可能であることが理解される。さらに、幾つかの実施例において、異なる方程式は、メカニカルアーム４２０及び４４０を制御することに利用可能である。これらの方程式は、以下に提供される（方法７００を検討した後）。
【００９０】
図６Ａから図６Ｂは、幾つかの実施例による欠陥モデル（欠陥リスト）６００、及び欠陥リスト６００に加えられた欠陥５０２を示す。上述したように、欠陥モデル６００（例えば、（複数の）欠陥モデル３２８、図３）は、欠陥画素６０２−Ａ〜６０２−Ｎを含む。幾つかの実施例において、欠陥画素６０２の欠陥モデル６００における位置は、検査される画像のブロック（又は複数のブロック）に対応する（例えば、欠陥モデル６００の左上隅は、第１画像５００の左上隅の画素に対応する。図５Ｂ）。その一方、幾つかの実施例において、第１欠陥モデルは、検査される画像の第１ブロック又は第１部分に対応し、第２欠陥モデルは、検査される画像の第２ブロック又は第２部分に対応するなど。
【００９１】
幾つかの実施例において、欠陥モデル６００における欠陥画素６０２−Ａ〜６０２−Ｎは、前に識別された欠陥である。例えば、前に識別された欠陥は、テスト／キャリブレーション段階の期間、及び／又は、この前の検査期間に識別されることができる（例えば、製品４１２は電子レンジである場合に、前に検査された電子レンジの表面における欠陥が欠陥モデル６００に記録、記憶される。）。選択的に、又は、さらに、幾つかの実施例において、欠陥画素６０２は検査される製品のブロックの所望の結果である（すなわち、無欠陥画素）。例えば、テスト／キャリブレーション段階の期間に、制御される製品の制御表面の画像が取り込まれ、制御表面のそれぞれのブロックが欠陥モデル６００に記録、記憶される。なお、幾つかの制御される製品に対しては、欠陥モデル６００が形成されるように、当該プロセスを繰り返してもよい。
【００９２】
幾つかの実施例において、メカニカルアームにより第２画像５３０を取り込んだ後、欠陥５０２（図５Ｂ）が欠陥モデル６００に加えられる。例えば、欠陥モデル６００は、欠陥５０２を含む新たな欠陥画素６０４を含む。このようにして、メカニカルアーム４０２は、欠陥モデル６００が連続して更新されるように、機械学習を行う。従って、欠陥５０２を参照して、メカニカルアーム４０２により検査される後に続く製品における欠陥を識別することができる。
【００９３】
図７は、幾つかの実施例による、改良された製品の品質検査の方法７００のフローチャートを示す。方法７００の工程は、メカニカルアーム（例えば、周辺装置１０２、図１、メカニカルアーム３００、図３）により実行することができる。図７は、コンピュータメモリ、又はコンピュータ読み出し可能記憶媒体（例えば、メカニカルアーム３００のメモリ３０６）に記憶される命令に対応する。例えば、方法７００の操作の少なくとも一部は、通信モジュール（例えば、通信モジュール３１６、図３）、位置付けモジュール（例えば、位置付けモジュール３１８、図３）、取込モジュール（例えば、取込モジュール３２０、図３）、及び画像検査モジュール（例えば、画像検査モジュール３２４、図３）により実行される。
【００９４】
メカニカルアームは、複数のセクション（例えば、セクション４０４−Ａ、４０４−Ｂ及び４０４−Ｃ、図４Ａ）と、メカニカルアームの端部に位置するカメラ（例えば、メカニカルアーム４０２の端部に位置するカメラ４０８、図４Ａ）と、それぞれが複数のセクションのうちの２つのセクションを接続し、又は、カメラと複数のセクションのうちの１つのセクションとを接続する複数の回転関節（例えば、回転関節４０６−Ａ〜４０６−Ｄ、図４Ａ）とを備える（７０２）。幾つかの実施例において、複数の回転関節はメカニカルアームに４自由度を付与する。その一方、幾つかの実施例において、複数の回転関節は、メカニカルアームに５自由度を付与する。幾つかの実施例において、複数の回転関節のうちの第１群の回転関節は、第１軸（例えば、Ｚ軸）の周りに回転し、複数の回転関節のうちの第２群の回転関節は、第２軸（例えば、Ｙ軸）の周りに回転し、又は、逆の場合も同じである。幾つかの実施例において、第１群の回転関節は、本体回転関節であり（例えば、回転関節４０６−Ｂ及び４０６−Ｃ、図４Ａ）、また、第２群の回転関節は、端部回転関節である（例えば、回転関節４０６−Ａ及び４０６−Ｄ、図４Ａ）。幾つかの実施例において、回転関節のうちの少なくとも１つは、２つの軸の周りに回転する（例えば、回転関節４０６−Ｄ、幾つかの実施例において、Ｚ軸とＹ軸、又は、軸の幾つかの他の組合せの周りに回転する。）。
【００９５】
方法７００は、製品（例えば、製品４１２、図４Ａ）の表面（又は特徴）の第１画像を取り込むコマンドを受信する（７０４）ことを含む。幾つかの実施例において、メカニカルアームは、サーバシステムや幾つかの他のコンピュータ（例えば、生産ライン４００の制御コンピュータ、図４Ａ）からコマンドを受信する。コマンドの受信の代わりに、幾つかの実施例において、メカニカルアームは、その前方に置かれた製品を識別する。例えば、メカニカルアームは、カメラの映像フィードバックから製品のサイズを確定してもよく、また、製品のサイズは、製品のタイプ（例えば、第１サイズを有する製品はティーポットであり、第２サイズを有する製品は電子レンジである。）に対応してもよい。製品の識別に応じて、メカニカルアームは、製品の表面の第１画像（後述する）を取り込む。それに応じて、これらの実施例におうて、コマンドの受信は、選択的である。
【００９６】
幾つかの実施例において、メカニカルアームは、製品の初期画像（第１画像とは異なる）を取り込む。初期画像を利用することにより、メカニカルアームは、メカニカルアームのエンドエフェクタの作業空間を確定する。作業空間は、製品のそれぞれの表面（又は特徴）から製品のそれぞれの表面（特徴）から離れた特定距離に延伸することができる。幾つかの実施例において、メカニカルアームのエンドエフェクタは、カメラである。選択的に、又は、さらに、メカニカルアームのエンドエフェクタは、複数の回転関節のうちの１つ又は複数である。幾つかの実施例において、製品の形状／サイズ（例えば、製品の高さ、幅、長さ及び体積）に基づき、エンドエフェクタの作業空間を確定する。選択的に、又は、さらに、幾つかの実施例において、カメラの視野に基づき、エンドエフェクタの作業空間を確定する。以上、図４Ａを参照してメカニカルアームの作業空間の確定をさらに詳述した。
【００９７】
幾つかの実施例において、コマンドの受信に応じて（又は、製品の識別に応じて）、方法７００は、複数の回転関節を作動させることにより、カメラを製品の表面とほぼ隣接する第１位置に位置付ける（７０６）ことをさらに含む。幾つかの実施例において、第１位置にある場合に、カメラは、製品の表面に関して真ん中にある。幾つかの実施例において、カメラは、第１位置にある場合に、製品の表面の所定部分（例えば、製品の表面の欠陥の有り得る部分）と隣接する。幾つかの実施例において、第１位置は、メカニカルアームにより確定される作業空間内にあり、また、カメラは、メカニカルアームのエンドエフェクタである。
【００９８】
幾つかの場合に、先にある製品を点検した後、メカニカルアームは、自分を初期位置に位置付ける。初期位置は、収縮される位置であり、これにより、入り込む製品がカメラを損なわないことが確保される（例えば、カメラと入り込む製品との衝突が回避される。）。前に点検された製品が、ほぼ入り込む製品よりも小さい場合には、特に重要である。従って、初期位置に収縮された時に、カメラを第１位置（７０６）に位置付け、メカニカルアームを初期位置から第１位置へ運動させる。メカニカルアームは、カメラが初期位置から第１位置へ運動されるように、運動学のアルゴリズム３３２を使用することができる。
【００９９】
注意すべきことは、幾つかの場合に、カメラは、既に第１位置にあり、これにより、環境によって、操作７０６が選択的である。例えば、前に点検された電子レンジのような製品は検査をパスすることができれば、その後、続きの同じモデルである電子レンジの製品を点検することができるので、カメラを動かせる必要がない。
【０１００】
幾つかの実施例において、カメラは、第１位置に位置付けられた場合に、カメラと表面との間に第１距離がある。第１距離は、メカニカルアームにより確定された作業空間に対応する。なお、幾つかの実施例において、カメラが第１位置に位置付けられた場合に、カメラが第１焦点距離に設置される（例えば、第１ズームに設置される）。幾つかの実施例において、カメラの視野は、少なくとも一部がカメラの焦点距離に基づくものである。それに応じて、幾つかの実施例において、作業空間を確定する際に、メカニカルアームは、カメラの焦点距離を調整する（例えば、環境によって、レンズを近く又は遠くする。）。
【０１０１】
方法７００は、カメラが第１位置に位置付けられた（例えば、第１位置５２０−Ａ、図５Ｃ）場合に、カメラにより製品の表面の第１画像を取り込む（７０８）ことをさらに含む。例えば、図５Ｂを参照して、第１画像５００は製品４１２の表面５０１を含む。
【０１０２】
方法７００は、第１画像を取り込んだ後、第１画像における欠陥、及び欠陥の第１画像における相対的な位置を識別するように、第１画像を処理する（７１０）ことをさらに含む。幾つかの実施例において、第１画像を処理することは、第１画像のブロックと、１つ又は複数の欠陥モデル（例えば、１つ又は複数の欠陥モデル３２８、図３）とを比較することを含む。これを達成させるために、メカニカルアームは、第１画像をブロック（例えば、ブロック５０４−１〜５０４−Ｎ、図５Ｂ）に分割し、ブロックの少なくとも１つの部分集合と、１つ又は複数の欠陥モデルとを比較する。図６Ａに示すように、欠陥モデル６００は、欠陥画素６０２−Ａ〜６０２−Ｎを含む。幾つかの実施例において、欠陥画素は１×１画素である。その一方、幾つかの実施例において、欠陥画素は、複数の画素（例えば、２５×２５画素、１００×１００画素又は幾つかの更大又は更小数量の画素）を含む。以上、図５Ｂを参照して画像の処理をさらに詳述した。
【０１０３】
幾つかの実施例において、第１画像を処理することは、第１画像における任意の異常を識別するように、第１画像の初期解析を実行することをさらに含む。初期解析は、第１画像の領域と製品の表面の型板（すなわち、制御）とを比較することを含んでもよい（例えば、上記に検討された比較操作と比べ、当該解析の需要がさらに小さい。）。表面の型板は、表面の所望の結果（例えば、前に点検された品質管理をパスした製品の表面）を含む。例えば、第１画像の右下隅が型板と異なるという異常を発見すると、メカニカルアームは、（上述したように）第１画像の右下隅での１つ又は複数のブロックと、１つ又は複数の対応する欠陥画素とを比較する。このようにして、メカニカルアームは、第１画像の異常を含まない他のブロックへの処理を飛ばすことにより、時間とコンピューティング資源が節約される。検討を容易にするために、本文に用いられる異常は、必ずしも欠陥ではなく、その一方制御／型板からのオフセットである。しかし、さらに調査することにより、異常が欠陥に変え得る。
【０１０４】
幾つかの実施例において、方法７００は、処理に基づき（すなわち、第１画像のブロックと１つ又は複数の欠陥モデルとの比較に基づき）、第１画像が欠陥を含むか否かを確定する（７１２）ことをさらに含む。幾つかの実施例において、第１画像のブロック（又は、閾値数量のブロック）は、（１）欠陥モデルにおける欠陥画素にマッチングする（又は、一部マッチングする）、又は、（２）欠陥モデルにおける何れかの無欠陥画素にマッチングしない（又は、一部マッチングする）場合に、メカニカルアームは、第１画像が欠陥を含むことを確定する。幾つかの実施例において、閾値百分率の欠陥が欠陥画素にマッチングする場合に、一部マッチングは、十分であると考えられる。上述したように、幾つかの実施例において、欠陥モデルは、「無欠陥画素」を含み、それは、製品のブロックの所望の結果（例えば、前に品質管理をパスして欠陥モデル３２８に記録された製品のブロック、図３）である。以上、図５Ｂを参照して画像が欠陥を含むことを確定することをさらに詳述した。
【０１０５】
幾つかの実施例において、メカニカルアームは、ローカルバイナリパターン（ＬＢＰ）を作成することにより、第１画像が欠陥を含むか否かを確定する。ＬＢＰを作成するために、値は、処理（７１０）に基づきブロックに割り当てられる。例えば、ブロックが直接に欠陥画素にマッチングする場合に（例えば、９０％マッチング）、第１値がブロックに割り当てられ、ブロックが欠陥画素に一部マッチングする（例えば、６０％マッチングする）場合に、第１値よりも小さい第２値がブロックに割り当てられる（無欠陥画素の割り当て値を用いてもよい．）。さらに、ブロックの値と隣接するブロックの値とを比較する（例えば、何れの与えられたブロックも８つの隣接するブロックを有する。）。そして、ブロックの値が隣接するブロックの値よりも大きいと、ブロックが「１」に割り当てられ、また、ブロックの値が隣接するブロックの値よりも小さいと、ブロックが「０」に割り当てられる。比較した後、全体的なメートル（ｍｅｔｒｉｃ）がブロックに割り当てられる。幾つかの実施例において、メートルは、8桁２進数であり、その中、それぞれの桁は８つの比較の１つに対応する。第１画像における複数のブロック（又は、それぞれのブロック）に対して、上述したプロセスを繰り返し、また、図表（例えば、ヒストグラム）を作成して結果を説明する。図表は、それぞれの２進数の現れる頻度を含む。ヒストグラムの領域（例えば、第１位置）には、第１の２進数（又は平均して第１の２進数）があり、当該領域が欠陥を含むことを示すことができ、ヒストグラムの別の領域（例えば、第２位置）には第２の２進数（又は、平均して第２の２進数）があり、当該領域が欠陥を含まないことを示すことができる。ヒストグラムは、Ｎ−次元特徴ベクトルであってもよいが、幾つかの実施例において、ヒストグラムは、一意化される。このような実施例では、第１画像のために特徴ベクトルを作る。
【０１０６】
幾つかの実施例において、サポートベクターマシン（ＳＶＭ）も第１画像が欠陥を含むことを確定することに用いられる。ＳＶＭは、機械学習における教師付き学習モデルの一つであり、分類及び回帰分析のためにデータを解析する相関学習アルゴリズムを有する。例えば、トレーニング実例集合を与え、それぞれの実例は、２種類の一種又は他種に属するとマークされ、ＳＶＭトレーニングアルゴリズムは、新たな実例を１つの種類又は他の種類に割り当てる２元分類器を構築する。ＳＶＭモデルは、独立した種類の実例ができるだけ広くて明らかな隙間で分けられるように、実例を空間にマップした点として表す。新たな実例は、さらに同一の空間内にマップされ、新たな実例が隙間のどちらの側にあるかによって、その属する種類を予測する。幾つかの実施例において、上述したＬＢＰを利用して、ＳＶＭは第１画像が欠陥を含むことを確定する。
【０１０７】
第１画像が欠陥を含まないことを確定したこと（７１２−いいえ）に応じて、方法７００は、当該製品を許容可能と記録、報告することをさらに含む。その一方、第１画像が欠陥を含むことを確定したこと（７１２−はい）に応じて、方法７００は、カメラの第１位置及び欠陥の第１画像における相対的な位置によって、カメラの第２位置を確定する（７１６）。注意すべきことは、第１画像が欠陥を含むと確定した場合に、メカニカルアームは、第１画像が欠陥を有する可能性が大きいと確定することができる。従って、後述するように、メカニカルアームは、製品の表面の第２画像を取り込むことにより、識別された欠陥が実際に欠陥であることをチェックする。
【０１０８】
方法７００は、複数の回転関節を作動させることにより、カメラを第１位置から第２位置へ改めて位置付ける（７１８）ことをさらに含む。第２位置と製品の表面は、第１位置と製品の表面との空間関係と異なる空間関係を有する。例えば、第２位置に改めて位置付けられた場合に、カメラと製品の表面との間に第２距離が置かれ、また、第２距離が第１距離よりも小さい。なお、幾つかの実施例において、第２位置に改めて位置付けられた場合に、カメラが第２焦点距離に設置され、また、第２焦点距離が第１焦点距離よりも大きい（例えば、第２ズームに設置される）。メカニカルアームが自分の目標を改めて位置付けるのは、（全体として製品の表面を取り込むこととは逆に）カメラを欠陥に焦点を合わせることである。例えば、図５Ｄに示すように、第２画像５３０の中央部分で欠陥を拡大する。このようにして、メカニカルアームは、識別された欠陥が実際に欠陥であることをチェックすることができる。
【０１０９】
方法７００は、カメラが第２位置に位置付けられた場合に、カメラにより製品の表面の第２画像を取り込む（７２０）ことをさらに含む。第２画像を取り込むことに応じて、幾つかの実施例において、メカニカルアームは、識別された欠陥が実際に欠陥であることをチェックする。欠陥をチェックするために、メカニカルアームは、再び、欠陥と、欠陥モデルにおける欠陥画素（及び／又は無欠陥画素）とを比較する。しかし、第１画像の比較操作に対して、当該比較操作はさらに細かい。ロボットは、欠陥が既に識別された欠陥（例えば、ツールによる欠陥）に対応することを確定することができる。その一方、ロボットは、欠陥がいずれの識別された欠陥にも対応しないことを確定することができるが、それはやはり欠陥である。何れの場合にも、メカニカルアームはレポートを生成し、また、レポートをふさわしい側（例えば、製造プロセスの具体的な部分を担当する工程技師）に提供することができる。欠陥をチェックした後、幾つかの実施例において、方法７００は、製品を許容不可と記録、報告することを含む。
【０１１０】
なお、幾つかの実施例において、方法７００は、欠陥モデルを、当該欠陥を含むと更新することさらに備える。例えば、図６Ｂを参照して、欠陥５０２を含む新たな欠陥画素６０４が、欠陥モデル６１０に加えられる。幾つかの実施例において、工程７１２−はいの後、欠陥が欠陥モデルに加えられる。その一方、幾つかの実施例において、欠陥をチェックした後、当該欠陥が欠陥モデルに加えられる。
【０１１１】
しかし、幾つかの実施例において、メカニカルアームは、欠陥をチェックすることができない。このような場合には、方法７００は、製品を許容可能と報告、記録することを含む。これらの場合に、メカニカルアームは、欠陥モデルを、許容可能な異常となるチェックされていない欠陥（すなわち、無欠陥画素）を含むと更新してもよい。
【０１１２】
幾つかの実施例において、製品は、回転可能な基台上（例えば、回転可能な基台３１１、図３、回転可能な基台４１０、図４Ａ）に置かれる。さらに、幾つかの実施例において、第１画像を取り込んだ後、方法７００は、欠陥の第１画像における相対的な位置に応じて、回転可能な基台を回転させることを含む。回転可能な基台を回転させた後、さらに第２画像を取り込む。例えば、メカニカルアーム（又は、そのプロセッサ３０２や回転可能な基台モジュール３３４といった部材、図３）は、欠陥がカメラの前方に位置付けられるように、回転可能な基台を制御し、回転可能な基台を回転させる。当該配置は、メカニカルアームに要求される運動程度を最小化するが、これは、基本的に、カメラが欠陥へ行くのではなく、欠陥がカメラへ行くからである。従って、回転可能な基台を含むと、時間と資源が節約される。なお、複数のセクションのうちのそれぞれのセクションの長さは、ほぼ低減されることができるが、これは、メカニカルアームが製品の遠端側方向表面に届く必要がないからである。多くとも、製品の頂部表面を検査する必要がある場合には、メカニカルアームが製品の頂部表面に届かなければならない。
【０１１３】
幾つかの実施例において、第１画像を取り込む前に、方法７００は、製品のサイズを確定し、また、確定されたサイズに基づき、メカニカルアームがその作業空間を確定することを含む。例えば、メカニカルアームは、初期位置に位置付けられた場合に、製品の前方で製品を検出し、また、カメラにより取り込まれた画像及びカメラの位置を利用して、製品のサイズを確定する。幾つかの実施例において、製品のサイズを確定するために、メカニカルアームは、製品の初期画像を取り込み、また、初期画像、及び初期画像を取り込むカメラの位置から、製品のサイズを確定する。その一方、幾つかの実施例において、メカニカルアームは、カメラの映像フィードバックに基づき、製品を評価する。
【０１１４】
幾つかの実施例において、方法７００は、複数の回転関節を作動させることにより、カメラを、それぞれが製品の対応する追加の表面（又は、追加の特徴）とほぼ隣接する１つの又は複数の追加の位置に改めて位置付けることをさらに含む。例えば、図４Ｂから図４Ｃを参照して、メカニカルアーム４２０及び４４０は製品４１２の遠端側方向表面に届く。しかし、回転可能な基台に関わる上記実施例（例えば、図４Ａ）では、メカニカルアームは、製品のそれぞれの対応する追加の表面がカメラの前方に位置付けられるように、回転可能な基台を調節して製品を回転させることができる。さらに、当該配置により、カメラが欠陥へ行くのではなく、追加の表面がカメラへ行くのである。このようにして、時間と資源が節約される。
【０１１５】
幾つかの実施例において、方法７００は、１つ又は複数の追加の位置に位置付けられたカメラを利用し、カメラにより製品のそれぞれの対応する追加の表面の追加の画像を取り込むことを含む。上述したことと同様にして、それぞれの追加の画像を処理する。
【０１１６】
下記の方程式は、以上に図４Ｂから図４Ｃを参照して検討したメカニカルアーム４２０及び４４０に関わっている。
【０１１７】
幾つかの実施例において、ある位置から他の位置へ運動する時に、メカニカルアーム４２０は、運動学の方程式（例えば、運動学のアルゴリズム３３２、図３）を利用する。運動学の方程式は、順運動学の方程式及び／又は逆運動学の方程式を含んでもよい。幾つかの実施例において、順運動学の方程式の例は下記の方程式で表される。
【表５】
0006865865.tif 000012
【０１１８】
ただし、θ、ｄ、ａ及びαは、当業者に知られているようなＤｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇパラメータである。図４Ｂに示すメカニカルアーム４２０に対して、下記の順運動学のマトリクスを適用する。
【数７】
0006865865.tif 000013
ただし、「Ｃ」＝余弦、かつ、「Ｓ」＝正弦である。
【０１１９】
幾つかの実施例において、メカニカルアーム４２０用の逆運動学の方程式の例は、下記の方程式で表される。
【数８】
0006865865.tif 000014
【０１２０】
幾つかの実施例において、メカニカルアーム４２０は、上記に与えられた逆運動学の方程式を利用して、その第１位置から第２位置への検索経路を定義する（すなわち、カメラ４２８（又は、回転関節のうちの１つ又は複数）の経路を定義する。）。幾つかの実施例において、検索経路方程式の例は下記の方程式で表される（三次補間法に基づく方程式による）。
【数９】
0006865865.tif 000015
この例では、
【数１０】
0006865865.tif 000016
【０１２１】
幾つかの実施例において、ある位置から他の位置へ運動する際に、メカニカルアーム４４０は、運動学の方程式（例えば、運動学のアルゴリズム３３２、図３）を利用する。運動学の方程式は、順運動学の方程式及び／又は逆運動学の方程式を含んでもよい。幾つかの実施例において、順運動学の方程式の例は下記の方程式で表される。
【表６】
0006865865.tif 000017
【０１２２】
ただし、θ、ｄ、ａ及びαは、当業者に知られているようなＤｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇパラメータである。図４Ｃに示すメカニカルアーム４４０に対して、下記の順運動学のマトリクスを適用する。
【数１１】
0006865865.tif 000018
【０１２３】
ただし、「Ｃ」＝余弦、かつ、「Ｓ」＝正弦である。
幾つかの実施例において、メカニカルアーム４４０用の逆運動学の方程式の例は下記の方程式で表される。
【数１２】
0006865865.tif 000019
【０１２４】
幾つかの実施例において、メカニカルアーム４４０は、上記に与えられた逆運動学の方程式を利用して、その第１位置から第２位置への検索経路を定義する（すなわち、カメラ４４８（又は回転関節のうちの１つ又は複数）の経路を定義する。）。幾つかの実施例において、検索経路の方程式の例は下記の方程式で表される（三次補間法に基づく方程式による）。
【数１３】
0006865865.tif 000020
この例では、
【数１４】
0006865865.tif 000021
【０１２５】
各種の図面のうちの幾つかは、特定の順番で幾つかの論理レベルを図示しているが、順番に依存しないレベルは、並び直してもよく、その他のレベルは、組合せ又は分割されてもよい。具体的に、幾つかの並び直し又はその他の群分けを言及したが、当業者にとっては、その他の並び直し又は群分けが明らかなことであり、これに従って、本文に与えられた並び及び群分けは、置き換えられる項の全てを挙げているものではない。なお、レベルは、ハードウェア、ファームウェア、ソフトウェアやその何れの組合せにも実施できることが認められるべきである。
【０１２６】
解釈のために、既に特定の実施例を参照して上述した明細書を記載した。しかし、上記における説明的な検討は、特許請求の範囲の全てを挙げたり、特許請求の範囲を開示された精確な形に制限したりすることを意図しない。上述した教示を考えて、たくさんの修正や変形が可能である。実施例は、特許請求の範囲の基礎となる原理及びその実用が最適に解釈されるように選択されているので、この分野における他の技術者は、考えられた具体的な用途に適用される各種の修正で、実施例を最適に利用することができる。
【図１】
0006865865.tif 000022
【図２】
0006865865.tif 000023
【図３】
0006865865.tif 000024
【図４Ａ】
0006865865.tif 000025
【図４Ｂ】
0006865865.tif 000026
【図４Ｃ】
0006865865.tif 000027
【図５Ａ】
0006865865.tif 000028
【図５Ｂ】
0006865865.tif 000029
【図５Ｃ】
0006865865.tif 000030
【図５Ｄ】
0006865865.tif 000031
【図６Ａ】
0006865865.tif 000032
【図６Ｂ】
0006865865.tif 000033
【図７】
0006865865.tif 000034