(57)【要約】【課題】長尺部材の把持目標位置を、迅速かつ正確にロボットハンドに把持させる。【解決手段】視覚センサにロボットハンドと把持目標位置とを撮像させ、撮像結果に基づき、ロボットハンドの位置と把持目標位置との誤差を算出する（Ｓ４００）。算出した今回の誤差に基づき、ロボットハンドが把持目標位置に到達したか否かを判断する（Ｓ５００）。ロボットハンドが把持目標位置に到達していないと判断した場合（Ｓ５００：Ｎｏ）、補正量を算出するのが２回目以降のときは、今回の誤差、前回の誤差及び前回の補正量を用いて、今回の補正量を算出する（Ｓ６００，Ｓ７００）。算出した今回の補正量に基づき、ロボットハンドが把持目標位置に近接するようにロボットアームを動作させる（Ｓ８００）。ステップＳ５００にてロボットハンドが把持目標位置に到達したと判断するまで、ステップＳ６００，Ｓ７００，Ｓ８００，Ｓ４００を繰り返し実行する。【選択図】図５
2015030086.tif 000002
【特許請求の範囲】
【請求項１】
可撓性を有する長尺部材の基端部が剛体に取り付けられた状態にあって、前記長尺部材に把持目標位置を設定し、前記基端部と前記把持目標位置との間の途中部位をロボットハンドに摺動可能に挟持させ、前記把持目標位置に近づくように前記ロボットハンドの挟持位置を摺動させ、変位する前記把持目標位置をロボットハンドに把持させるようにロボットアームを制御する制御部によるロボット制御方法において、
前記制御部が、前記途中部位を、前記長尺部材の延びる長手方向に沿って摺動可能に前記ロボットハンドに挟持させる挟持工程と、
前記制御部が、視覚センサに前記ロボットハンドと前記把持目標位置とを撮像させ、撮像結果に基づき、前記ロボットハンドの位置と前記把持目標位置との誤差を算出する誤差算出工程と、
前記制御部が、前記誤差算出工程にて算出した今回の誤差に基づき、前記ロボットハンドが前記把持目標位置に到達したか否かを判断する判断工程と、
前記制御部が、前記判断工程にて、前記ロボットハンドが前記把持目標位置に到達していないと判断した場合、補正量を算出するのが初回のときは、前記誤差算出工程にて算出した前記今回の誤差を用いて今回の補正量を算出し、補正量を算出するのが２回目以降のときは、前記今回の誤差、前記誤差算出工程にて算出した前回の誤差と前記今回の誤差との差分、及び前回の補正量を用いて、今回の補正量を算出する補正量算出工程と、
前記制御部が、前記補正量算出工程にて算出した前記今回の補正量に基づき、前記ロボットハンドが前記長手方向に沿って移動して前記把持目標位置に近接するように前記ロボットアームを動作させる補正工程と、を備え、
前記制御部が、前記判断工程にて、前記ロボットハンドが前記把持目標位置に到達したと判断するまで、前記補正量算出工程、前記補正工程、前記誤差算出工程を繰り返し実行することを特徴とするロボット制御方法。
【請求項２】
前記制御部が、前記挟持工程の後であって、前記誤差算出工程に先立って、前記ロボットハンドが前記長手方向に沿って移動して前記把持目標位置に近接するように前記ロボットアームを動作させる初期動作工程を更に備えたことを特徴とする請求項１に記載のロボット制御方法。
【請求項３】
前記初期動作工程では、前記制御部が、前記長尺部材において前記把持目標位置よりも前記基端部の側を前記ロボットハンドの移動目標位置とすることを特徴とする請求項２に記載のロボット制御方法。
【請求項４】
前記補正量算出工程では、
前記今回の補正量をＤｎ、前記前回の補正量をＤｎ−１、前記前回の誤差をＥｎ−１、前記今回の誤差をＥｎとし、（Ｅｎ−１−Ｅｎ）／Ｄｎ−１を補正実行割合Ｒｎと定義したとき、
前記制御部が、Ｄｎ＝Ｅｎ／Ｒｎの関係式を満たすように、前記今回の補正量を算出することを特徴とする請求項１乃至３のいずれか１項に記載のロボット制御方法。
【請求項５】
前記制御部が、前記誤差算出工程にて算出した前記今回の誤差の正負の符号が、前記前回の誤差に対して変化するか否かを判断する符号判断工程と、
前記制御部が、前記符号判断工程にて前記正負の符号が変化すると判断した場合、前記ロボットアームの動作を強制終了する終了工程と、を更に備えたことを特徴とする請求項１乃至４のいずれか１項に記載のロボット制御方法。
【請求項６】
前記制御部が、前記誤差算出工程にて算出した前記今回の誤差の正負の符号が、前記前回の誤差に対して変化するか否かを判断する符号判断工程を更に備え、
前記補正量算出工程では、前記制御部が、前記符号判断工程にて前記正負の符号が変化すると判断した場合、前記補正実行割合Ｒｎに対して上限の閾値を設定したことを特徴とする請求項４に記載のロボット制御方法。
【請求項７】
前記長尺部材が、可撓性を有するケーブルの先端部にコネクタが取り付けられたコネクタ付きケーブルであり、前記把持目標位置が前記コネクタ又は前記ケーブルの先端部の位置に設定されていることを特徴とする請求項１乃至６のいずれか１項に記載のロボット制御方法。
【請求項８】
前記ロボットハンドが一対のフィンガーを有し、
前記ケーブルが、フレキシブルフラットケーブルであり、
前記コネクタ付きケーブルは、前記コネクタと前記ケーブルとの接続部分に段差がない第１面と、前記第１面に対して反対側の第２面とを有し、
前記コネクタ付きケーブルは、前記挟持工程にて、前記一対のフィンガーのうち一方のフィンガーに前記第１面が当たり、前記一対のフィンガーのうち他方のフィンガーと前記第２面との間に間隙が形成されるように、前記ロボットハンドに挟持されることを特徴とする請求項７に記載のロボット制御方法。
【請求項９】
ロボットアームと、
前記ロボットアームの先端に取り付けられたロボットハンドと、
基端部が剛体に取り付けられた可撓性を有する長尺部材に設定した把持目標位置、及び前記ロボットハンドを撮像する視覚センサと、
前記基端部と前記把持目標位置との間の途中部位をロボットハンドに摺動可能に挟持させ、前記把持目標位置に近づくように前記ロボットハンドの挟持位置を摺動させ、変位する前記把持目標位置をロボットハンドに把持させるようにロボットアームを制御する制御部と、を備え、
前記制御部は、
前記長尺部材の途中部位を、前記長尺部材の延びる長手方向に沿って摺動可能に前記ロボットハンドに挟持させる挟持処理と、
前記視覚センサに前記ロボットハンドと前記把持目標位置とを撮像させ、撮像結果に基づき、前記ロボットハンドの位置と前記把持目標位置との誤差を算出する誤差算出処理と、
前記誤差算出処理にて算出した今回の誤差に基づき、前記ロボットハンドが前記把持目標位置に到達したか否かを判断する判断処理と、
前記判断処理にて、前記ロボットハンドが前記把持目標位置に到達していないと判断した場合、補正量を算出するのが初回のときは、前記誤差算出処理にて算出した前記今回の誤差を用いて今回の補正量を算出し、補正量を算出するのが２回目以降のときは、前記今回の誤差、前記今回の誤差と前記誤差算出処理にて算出した前回の誤差との差分、及び前回の補正量を用いて、今回の補正量を算出する補正量算出処理と、
前記補正量算出処理にて算出した前記今回の補正量に基づき、前記ロボットハンドが前記長手方向に沿って移動して前記把持目標位置に近接するように前記ロボットアームを動作させる補正処理と、を実行するよう構成され、
前記制御部は、前記判断処理にて、前記ロボットハンドが前記把持目標位置に到達したと判断するまで、前記補正量算出処理、前記補正処理、前記誤差算出処理を繰り返し実行することを特徴とするロボットシステム。
【請求項１０】
コンピュータに、請求項１乃至８のいずれか１項に記載のロボット制御方法の各工程を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配線のような長尺部材上の把持目標位置をロボットハンドに把持させるロボット制御方法、ロボットシステム、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ロボットシステムとしての自動組立装置の組立工程で必要になる作業の１つとして、コネクタ付きケーブルのケーブル側コネクタを、基板側コネクタに接続する作業がある。
【０００３】
コネクタ付きケーブルは、例えばフレキシブルフラットケーブル等のケーブルと、ケーブルの先端部に取り付けられたケーブル側コネクタとからなる。ケーブルの基端部は、基板等の部材に取り付けられている。ケーブル側コネクタの接続対象となる基板側コネクタは、例えば同じ基板や別の基板に取り付けられている。
【０００４】
このような場合において、ロボットハンドを有するロボットを用い、コネクタ付きケーブルのケーブル側コネクタを基板側コネクタに接続する作業を行う際には、ケーブル側コネクタ又はその手前を正確に把持する必要がある。
【０００５】
しかし、コネクタ付きケーブル等の可撓性を有する柔軟物の長尺部材は、曲げやねじれの変形自由度、工作精度の誤差等がある。したがって、ロボットシステムに供給されるコネクタ付きケーブルの先端部、即ちケーブル側コネクタにおいては、ケーブルの撓みにより、その位置及び姿勢が大きくばらつく。
【０００６】
長尺部材の先端部のばらつきが大きいと、視覚センサで長尺部材の先端部に設定した把持目標位置を撮像し、撮像結果に基づいて把持目標位置を計測する際に、視覚センサの視野範囲に長尺部材の先端部を入れることが困難であった。そこで長尺部材の把持目標位置をいきなりロボットハンドに把持させる制御を行うのではなく、まず位置及び姿勢の不定性が先端部に比べて小さい途中部位を、ロボットハンドに挟持させ、その状態でハンドを先端部へ移動させていた（特許文献１参照）。特許文献１では、長尺部材の先端部を所定範囲内に拘束し、視覚センサで所定範囲を撮像して把持目標位置の位置姿勢を計測し、別のロボットのロボットハンドに把持させて、別のロボットにより、コネクタの接続作業を行っていた。
【０００７】
一方、１つのロボットを用いる方法として、視覚センサを用いて把持目標位置とロボットハンドとの誤差を計測し、誤差に相当する移動量でロボットハンドを移動させて、ロボットハンドの位置を補正しているものが提案されている（特許文献２参照）。特許文献２では、ロボットハンドが把持目標位置に到達するまで、補正動作と視覚センサを用いた誤差の計測とを繰り返し行っていた。これら動作を繰り返すことで、ロボットハンドに把持目標位置を正確に把持させていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３８７６２３４号公報
【特許文献２】特開２００７−１１９７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献１の方法では、少なくとも２つのロボットが必要であり、１つのロボットだけを用いてロボットハンドに把持目標位置を正確に把持させるのが困難であった。
【００１０】
また、上記特許文献２の方法では、１つのロボットで把持目標位置を正確に把持することは可能であるが、速度が遅いという問題があった。即ち、可撓性を有する長尺部材においては、ケーブルに沿うロボットハンドの挟持位置の摺動により、曲げやねじれ等の可撓変形や伸縮変形が生じ、把持目標位置が変位することがある。この把持目標位置の変位は、以前に行った補正動作が影響する。しかし、上記特許文献２では、可撓性を有する柔軟な長尺部材を考慮してなされたものではなく、上記特許文献２の方法を柔軟物の把持にそのまま適用すると、変位する把持目標位置にロボットハンドの位置を収束させるのに時間が長くかかっていた。
【００１１】
そこで、本発明は、柔軟物である長尺部材の把持目標位置を、迅速かつ正確にロボットハンドに把持させることを目的とするものである。
【課題を解決するための手段】
【００１２】
本発明は、可撓性を有する長尺部材の基端部が剛体に取り付けられた状態にあって、前記長尺部材に把持目標位置を設定し、前記基端部と前記把持目標位置との間の途中部位をロボットハンドに摺動可能に挟持させ、前記把持目標位置に近づくように前記ロボットハンドの挟持位置を摺動させ、変位する前記把持目標位置をロボットハンドに把持させるようにロボットアームを制御する制御部によるロボット制御方法において、前記制御部が、前記途中部位を、前記長尺部材の延びる長手方向に沿って摺動可能に前記ロボットハンドに挟持させる挟持工程と、前記制御部が、視覚センサに前記ロボットハンドと前記把持目標位置とを撮像させ、撮像結果に基づき、前記ロボットハンドの位置と前記把持目標位置との誤差を算出する誤差算出工程と、前記制御部が、前記誤差算出工程にて算出した今回の誤差に基づき、前記ロボットハンドが前記把持目標位置に到達したか否かを判断する判断工程と、前記制御部が、前記判断工程にて、前記ロボットハンドが前記把持目標位置に到達していないと判断した場合、補正量を算出するのが初回のときは、前記誤差算出工程にて算出した前記今回の誤差を用いて今回の補正量を算出し、補正量を算出するのが２回目以降のときは、前記今回の誤差、前記誤差算出工程にて算出した前回の誤差と前記今回の誤差との差分、及び前回の補正量を用いて、今回の補正量を算出する補正量算出工程と、前記制御部が、前記補正量算出工程にて算出した前記今回の補正量に基づき、前記ロボットハンドが前記長手方向に沿って移動して前記把持目標位置に近接するように前記ロボットアームを動作させる補正工程と、を備え、前記制御部が、前記判断工程にて、前記ロボットハンドが前記把持目標位置に到達したと判断するまで、前記補正量算出工程、前記補正工程、前記誤差算出工程を繰り返し実行することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、補正動作が２回目以降のときは、前回の補正動作が加味されて位置補正されるので、柔軟な長尺部材の把持目標位置を、迅速かつ正確にロボットハンドに把持させることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係るロボットシステムによる作業対象であるワークの概略構成を示す斜視図である。
【図２】図１のコネクタ付きケーブルの先端部の位置及び姿勢がばらついた状態を例示した説明図である。
【図３】第１実施形態に係るロボットシステムの概略構成を示す説明図である。
【図４】第１実施形態に係るロボットシステムの概略構成を示すブロック図である。
【図５】第１実施形態に係るロボット制御方法のフローチャートである。
【図６】挟持工程及び初期動作工程のロボットの動作を示す説明図である。
【図７】視覚センサの光軸方向にロボット及びワークを見た平面図である。
【図８】第１実施形態に係る補正実行割合と補正指令値の一つの軸を示す概念図である。
【図９】補正実行割合及び補正指令値を算出した結果を示す図である。
【図１０】視覚センサの光軸方向にロボット及びワークを見た平面図である。
【図１１】第２実施形態に係るロボット制御方法のフローチャートである。
【図１２】視覚センサの光軸方向にロボット及びワークを見た平面図である。
【図１３】第３実施形態に係るロボット制御方法のフローチャートである。
【図１４】第４実施形態に係るロボット制御方法のフローチャートである。
【図１５】第５実施形態に係るロボットシステムの動作を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１６】
［第１実施形態］
図１は、本発明の第１実施形態に係るロボットシステムによる作業対象であるワークの概略構成を示す斜視図である。
【００１７】
図１に示すように、作業対象のワークＷは、剛体としての基板１５と、基板１５に基端部１４が取り付けられたコネクタ付きケーブル２１と、剛体側コネクタであるコネクタ１６とを有する。可撓性の長尺部材であるコネクタ付きケーブル２１は、ケーブル１１と、ケーブル１１の先端部に形成されたケーブル側コネクタであるコネクタ１２とを有している。つまり、コネクタ付きケーブル２１の長手方向の先端部１３が、コネクタ１２である。ケーブル１１は、例えばフレキシブルフラットケーブルである。コネクタ付きケーブル２１の長手方向の基端部（つまり、ケーブル１１の基端部）１４は、基板１５に固定されている。基板１５には、コネクタ１２の接続対象である基板側コネクタとしてのコネクタ１６が設けられている。
【００１８】
このような場合において、ロボットハンドを有するロボットを用い、コネクタ１２をコネクタ１６に接続する作業を行うには、コネクタ１２又はコネクタ１２の手前を正確に把持し、コネクタ１２をコネクタ１６に係合（嵌合、差込み等）すればよい。しかし、一般に、ケーブル１１には曲げやねじれの変形自由度、工作精度の誤差等がある。
【００１９】
図２は、図１のコネクタ付きケーブル２１の先端部１３の位置及び姿勢がばらついた状態を例示した説明図である。図２に示すように、コネクタ付きケーブル２１が取り付けられた基板１５を、順次ほぼ一定の位置に一定の姿勢でロボットシステムに供給しても、コネクタ１２の位置及び姿勢は、符号Ａ１，Ａ２に示すように、大きなばらつきが生じる。
【００２０】
図３は、本発明の第１実施形態に係るロボットシステムの概略構成を示す説明図である。図４は、本発明の第１実施形態に係るロボットシステムの概略構成を示すブロック図である。
【００２１】
ロボットシステム９００は、ロボット３００、制御装置４００、視覚センサ５００、及び作業台２０を備えている。制御装置４００は、ロボット制御装置１００と、視覚センサ制御装置２００とで構成されている。
【００２２】
ロボット３００は、多関節（例えば６関節）のロボットアーム３０１と、ロボットアーム３０１の先端に取り付けられたエンドエフェクタとしてのロボットハンド３０２とを有している。ロボットアーム３０１の基端は、不図示の架台に固定されている。
【００２３】
ロボットハンド３０２は、物体を把持することが可能に構成されており、一対のフィンガー３０３，３０４を有し、一対のフィンガー３０３，３０４の開閉動作により、物体の把持と把持解放とが可能となっている。
【００２４】
視覚センサ５００は、不図示の天部材に固定されたカメラである。視覚センサ５００は、光軸が鉛直下方向を向くように固定されている。視覚センサ５００は、例えばＣＭＯＳイメージセンサやＣＣＤイメージセンサ等の固体撮像素子を有するデジタルカメラである。視覚センサ５００は、第１実施形態では単眼カメラを用いているが、視覚センサが、複眼カメラ、レーザレンジファインダ、あるいは、それらの組合せでも良い。
【００２５】
コネクタ付きケーブル２１、コネクタ付きケーブル２１が取り付けられた基板１５、及びコネクタ１２の接続対象となるコネクタ１６を有するワークＷが、不図示の供給・搬送手段により、作業台２０上に順次供給される。ワークＷは、作業台２０上に粗い精度で位置決めされる。従って、コネクタ付きケーブル２１（ケーブル１１）の基端部１４（根元）及びその近傍の位置は、ほぼ一定である。しかし、先端部１３に近付くに連れて、ケーブル１１の曲げや、ねじれなどの影響で、位置のばらつきが大きくなる。そのため、ワークＷの基板１５が作業台２０上で位置決めされていても、先端部１３の位置及び姿勢のとり得る範囲は、図２で示した符号Ａ１，Ａ２に示すように、広範囲にわたる。
【００２６】
図４に示すように、ロボットアーム３０１とロボットハンド３０２は、通信回線１３ｂ，１３ｃでロボット制御装置１００に接続され、ロボット制御装置１００により制御される。視覚センサ５００は通信回線１３ｄで視覚センサ制御装置２００に接続され、視覚センサ制御装置２００により制御される。ロボット制御装置１００と視覚センサ制御装置２００とは、通信回線１３ａで接続されており、撮像指令及び撮像結果等の信号の送受信を行う。ロボット制御装置１００は、ロボットアーム３０１、ロボットハンド３０２を制御し、視覚センサ制御装置２００は、ロボット制御装置１００の制御の下、視覚センサ５００を制御する。
【００２７】
ロボット制御装置１００は、コンピュータで構成されており、制御部（演算部）としてのＣＰＵ（Central  Processing  Unit）１０１を備えている。また、ロボット制御装置１００は、記憶部として、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３、ＨＤＤ（Hard  Disk  Drive）１０４を備えている。また、ロボット制御装置１００は、記録ディスクドライブ１０５及び各種のインタフェース１０７〜１０９を備えている。
【００２８】
ＣＰＵ１０１には、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、記録ディスクドライブ１０５及び各種のインタフェース１０７〜１０９が、バス１０６を介して接続されている。ＲＯＭ１０２には、ＢＩＯＳ等の基本プログラムが格納されている。
【００２９】
ＲＡＭ１０３には、ロボット動作や視覚センサ制御装置２００への指令送信、視覚センサ制御装置２００からの画像処理結果の受信等を制御するプログラム、関連設定値が一時的に格納される。さらに、ＲＡＭ１０３は、ＣＰＵ１０１による演算実行時の一時記憶用のメモリや必要に応じて設定されるレジスタ領域としても使用される。
【００３０】
ＨＤＤ１０４は、ＣＰＵ１０１の演算処理結果や外部から取得した各種データ等を記憶すると共に、ＣＰＵ１０１にロボット制御方法の各工程を実行させるためのプログラム１２０を記録するものである。ＣＰＵ１０１は、ＨＤＤ１０４に記録（格納）されたプログラム１２０に基づいて各種演算処理（ロボット制御方法の各工程）を実行する。
【００３１】
記録ディスクドライブ１０５は、記録媒体としての記録ディスク８００に記録された各種データやプログラム等を読み出すことができる。
【００３２】
インタフェース１０７には、視覚センサ制御装置２００が接続されており、ＣＰＵ１０１は、視覚センサ制御装置２００から受信した画像処理結果等を取得することができる。また、ＣＰＵ１０１は、インタフェース１０７及び視覚センサ制御装置２００を介して視覚センサ５００に撮像タイミングを示すトリガ信号を出力する。
【００３３】
インタフェース１０８には、ロボット３００のロボットアーム３０１が接続されており、インタフェース１０９には、ロボット３００のロボットハンド３０２が接続されている。なお、ロボット制御装置１００には、不図示のモニタ（表示部）や、不図示の、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置が接続されていている。
【００３４】
ロボットハンド３０２は、コネクタ１２をコネクタ１６に接続する際に、一対のフィンガー３０３，３０４間でコネクタ付きケーブル２１が滑らないようにコネクタ付きケーブル２１を把持できるものを採用する。また、ロボットハンド３０２は、コネクタ付きケーブル２１の中途部位を挟むことができ、且つ、挟んだ状態でコネクタ付きケーブル２１に対してロボットハンド３０２を滑らせながら移動することができるようにクリアランスをもった挟み量とする。
【００３５】
視覚センサ５００は、コネクタ付きケーブル２１（ケーブル１１）に対してロボットハンド３０２が滑りながら移動した後において、ロボットハンド３０２とコネクタ１２（把持目標位置）とを撮像可能な位置に設置されている。ロボットハンド３０２とコネクタ１２が画角に入っていることが前提であるが、コネクタ１２とコネクタ１６を同時に撮像できる画角を有するものが望ましい。
【００３６】
図５は、第１実施形態に係るロボット制御方法のフローチャートである。図６は、図５のステップＳ２００（挟持工程）及びステップＳ３００（初期動作工程）のロボットの動作を示す説明図である。
【００３７】
ＣＰＵ１０１は、ＨＤＤ１０４に格納されたプログラム１２０を読み出して実行することにより、図５に示す各工程を実行する。まず、ＣＰＵ１０１は、図５に示す工程を実行するに先立って、コネクタ付きケーブル２１に把持目標位置Ｐを設定する。
【００３８】
第１実施形態では、把持目標位置Ｐをコネクタ１２の中央部に設定するが、ケーブル１１の先端部（コネクタ１２とケーブル１１との接続部分）に設定してもよい。
【００３９】
ＣＰＵ１０１は、基端部１４と把持目標位置Ｐとの間の途中部位をロボットハンド３０２に摺動可能に挟持させる。そして、ＣＰＵ１０１は、把持目標位置Ｐに近づくようにロボットハンド３０２の挟持位置を摺動させ、ケーブル１１の撓み等によって変位する把持目標位置Ｐをロボットハンド３０２に把持させるようにロボットアーム３０１を制御する。
【００４０】
以下、図５のフローチャートに沿って詳細に説明する。まずＣＰＵ１０１は、第１実施形態における把持の工程を開始する（Ｓ１００）。次に、ＣＰＵ１０１は、図６（ａ）に示すように、コネクタ付きケーブル２１の先端部１３（コネクタ１２）に比べ位置及び姿勢のばらつきが小さい基端部１４と把持目標位置Ｐとの間の途中部位にロボットハンド３０２を移動させる。途中部位は、例えば基端部１４の近傍である。その際、ロボットハンド３０２の一対のフィンガー３０３，３０４の間にケーブル１１が収まるようにロボットハンド３０２のフィンガー３０３，３０４を開いた状態にしておく。
【００４１】
次に、ＣＰＵ１０１は、図６（ｂ）に示すように、ロボットハンド３０２でコネクタ付きケーブル２１の途中部位を挟むように制御する（Ｓ２００）。つまり、ＣＰＵ１０１は、コネクタ付きケーブル２１の途中部位を、コネクタ付きケーブル２１の延びる長手方向に沿って摺動可能にロボットハンド３０２に挟持させる（挟持工程、挟持処理）。挟み量は、ケーブル１１がロボットハンド３０２の一対のフィンガー３０３，３０４間で移動可能なクリアランスをもった量とする。
【００４２】
次に、ＣＰＵ１０１は、図６（ｃ）に示すように、ロボットハンド３０２の間でケーブル１１を滑らせながらコネクタ１２における想定の把持目標位置Ｐに向かって移動させる（Ｓ３００：初期動作工程、初期動作処理）。即ち、ＣＰＵ１０１は、ステップＳ２００にてロボットハンド３０２によりコネクタ付きケーブル２１を挟持させた位置と把持目標位置Ｐとの差分を移動量（移動指令）とする。そして、ＣＰＵ１０１は、この移動量でロボットハンド３０２がコネクタ付きケーブル２１の長手方向に沿って移動するようにロボットアーム３０１を動作させる。これにより、ロボットハンド３０２は、把持目標位置Ｐに近接する。即ち、視覚センサ５００により撮像可能な画角（撮像領域）に、ロボットハンド３０２及びコネクタ付きケーブル２１における把持目標位置Ｐ（コネクタ１２）が位置するように、ロボットハンド３０２が移動する。このステップＳ３００では、予め教示された教示点にロボットアーム３０１を移動させている。即ち、ロボットハンド３０２に挟持させる初期の挟持位置と把持目標位置との差分を移動量とし、この移動量に基づく教示点を設定し、この教示点に基づいてロボットアーム３０１を動作させている。
【００４３】
以上の図６（ａ）、図６（ｂ）及び図６（ｃ）の動作を実行することでケーブル１１の先端位置を視覚センサ５００で撮像可能な一定の範囲に収めることができる。
【００４４】
図７は、視覚センサ５００の光軸方向にロボット３００及びワークＷを見た平面図である。ステップＳ３００でロボットハンド３０２が移動したことにより、視覚センサ５００は、ロボットハンド３０２により挟持されている挟持位置Ｐａと把持目標位置Ｐとを撮像することが可能である。したがって、ＣＰＵ１０１は、視覚センサ５００に、視覚センサ５００の画角にあるロボットハンド３０２と把持目標位置Ｐとを同時に撮像させる。次に、ＣＰＵ１０１は、視覚センサ５００による撮像結果（撮像画像）を視覚センサ制御装置２００から受信し、その撮像結果に基づき、ロボットハンド３０２の現在の位置Ｐａと把持目標位置Ｐとの誤差を算出する（Ｓ４００：誤差算出工程、誤差算出処理）。
【００４５】
ＣＰＵ１０１は、ステップＳ４００にて算出した今回の誤差に基づき、ロボットハンド３０２による挟持位置Ｐａが把持目標位置Ｐに到達したか否かを判断する（Ｓ５００：判断工程、判断処理）。このステップＳ５００では、把持目標位置Ｐに到達しているか否かをロボット座標系で軸毎の把持目標位置Ｐと現在の挟持位置Ｐａの差分から判断する。
【００４６】
ここで、把持目標位置Ｐに到達しているか否かを判断する差分には、軸毎に許容範囲が設定できることが望ましい。また、第１実施形態では、ケーブル１１とロボットハンド３０２の干渉が補正に影響を与えるため、２回目以降の補正では、挟持位置Ｐａと把持目標位置Ｐとの差分を、そのまま補正指令値として扱わない。
【００４７】
ＣＰＵ１０１は、判断の結果、把持目標位置に到達している場合（Ｓ５００：Ｙｅｓ）、ステップＳ９００の処理（終了処理）に移行するが、把持目標位置に到達していない場合（Ｓ５００：Ｎｏ）はステップＳ６００の処理に移行する。つまり、ＣＰＵ１０１は、ステップＳ５００にて、ロボットハンド３０２が把持目標位置Ｐに到達していないと判断した場合（Ｓ５００：Ｎｏ）、補正量（即ち補正指令値）を算出する（Ｓ６００，Ｓ７００：補正量算出工程、補正量算出処理）。
【００４８】
ここで、ＣＰＵ１０１は、補正量（即ち補正指令値）を算出するのが初回のときは、ステップＳ４００にて算出した今回の誤差を用いて、今回の補正量を算出する。第１実施形態では今回の誤差を、今回の補正量とする。
【００４９】
ＣＰＵ１０１は、補正量を算出するのが２回目以降のときは、今回の誤差、ステップＳ４００にて算出した前回の誤差と今回の誤差との差分、及び前回の補正量を用いて、今回の補正量を算出する。
【００５０】
詳述すると、第１実施形態では、コネクタ付きケーブル２１の把持目標位置Ｐを迅速且つ正確に把持するために、ロボットハンド３０２とケーブル１１の干渉を考慮し、下記の計算式を用い、軸毎の補正実行割合及び補正指令値（補正量）を算出する。
【００５１】
図８は、本発明の第１実施形態に係る補正実行割合と補正指令値の一つの軸を示す概念図である。
【００５２】
ｎは、補正動作実行回数であり、初回は１である。今回の補正量（補正指令値）をＤｎ、前回の補正量（補正指令値）をＤｎ−１、前回の誤差をＥｎ−１、今回の誤差をＥｎとする。ここで、誤差は、ロボットハンド３０２の現在の挟持位置Ｐａと把持目標位置Ｐとの差である。Ｒｎは、補正実行割合とする。また、ｎ−１回目の補正指令値がない初回の場合は、補正実行割合Ｒｎを１とする。
【００５３】
図８に示すように、ｎ−１回目に補正指令値（補正量）Ｄｎ−１を用い補正動作を実行した後、ｎ回目の誤差Ｅｎがどの程度減少するかの割合が補正実行割合Ｒｎである。ゆえに、補正実行割合Ｒｎは、以下の式（１）で定義される。
Ｒｎ＝（Ｅｎ−１−Ｅｎ）／Ｄｎ−１・・・・（１）
【００５４】
補正実行割合Ｒｎを基に、実際にロボットアーム３０１を動作させる補正指令値（補正量）Ｄｎを算出する。補正指令値（補正量）Ｄｎの算出式は、以下の式（２）とする。
Ｄｎ＝Ｅｎ／Ｒｎ・・・・（２）
【００５５】
ＣＰＵ１０１は、ステップＳ６００では、前回、実際にロボットアーム３０１に指令を出力した補正指令値（前回の補正量）Ｄｎ−１と、補正を実行した後の補正結果から、軸毎に式（１）の関係式を用い、補正実行割合Ｒｎを算出する。
【００５６】
前回の補正指令値Ｄｎ−１、前回の誤差Ｅｎ−１及び補正残差（Ｅｎ−１−Ｅｎ）がない初回の場合は、補正実行割合Ｒｎを１とする。
【００５７】
ＣＰＵ１０１は、ステップＳ７００では、ステップＳ６００で算出した補正実行割合Ｒｎを基に、実際にロボットアーム３０１の補正動作に用いる補正指令値（補正量）Ｄｎを、式（２）を用いて算出する。式（２）の関係式を満たすように算出した補正指令値Ｄｎは、ＲＡＭ１０３等に保持される。ここで、初回の場合の補正指令値（補正量）Ｄ１は、今回の誤差Ｅ１である。
【００５８】
ＣＰＵ１０１は、ステップＳ７００で算出した補正指令値Ｄｎを用いて、ロボットアーム３０１を動作させる補正動作を実行する（Ｓ８００）。詳述すると、ＣＰＵ１０１は、ステップＳ７００で算出した今回の補正量Ｄｎに基づき、ロボットハンド３０２が長手方向に沿って移動して把持目標位置Ｐに近接するようにロボットアーム３０１を動作させる（補正工程、補正処理）。つまり、ＣＰＵ１０１は、補正量Ｄｎの分、ロボットハンド３０２が移動するように、ロボットアーム３０１の動作を制御する。
【００５９】
ＣＰＵ１０１は、補正動作実行後、ステップＳ４００の処理に移行し、再度、視覚センサ５００で撮像し、ステップＳ５００で把持目標位置Ｐに到達しているか否かを判断する。把持目標位置Ｐに到達していなければ、把持目標位置Ｐに到達するまでステップＳ６００〜Ｓ５００の処理を繰り返し実行する。つまり、ＣＰＵ１０１は、ステップＳ５００にて、ロボットハンド３０２が把持目標位置Ｐに到達したと判断するまで、ステップＳ６００，Ｓ７００，Ｓ８００，Ｓ４００の処理を繰り返し実行する。
【００６０】
ＣＰＵ１０１は、ロボットハンド３０２が把持目標位置Ｐに到達した時点でステップＳ９００の処理に移行し、ロボットハンド３０２にコネクタ付きケーブル２１の把持目標位置Ｐをしっかり把持させる。
【００６１】
図９は、図７の状態から実際に誤差Ｅを減少せしめるために、補正実行割合Ｒｎの算出式（１）、及び補正指令値Ｄｎの算出式（２）を用い、補正実行割合Ｒｎ及び補正指令値Ｄｎを算出した結果を示す図である。ここで、把持目標位置との最終的な誤差の許容値は、Ｘ軸、Ｙ軸を±０．１ｍｍ、θ方向を±０．１°と設定した。
【００６２】
１回目の視覚センサ５００の撮像で、１回目の誤差Ｘ：５ｍｍ、Ｙ：０ｍｍ、θ：０°であった際に、１回目の補正実行割合は初回なので補正実行割合は、Ｘ、Ｙ、θすべてで１となる。そこで、算出式（２）を用い補正指令値を算出した結果、１回目の補正指令値がＸ：５ｍｍ、Ｙ：０ｍｍ、θ：０°となる。２回目は１回目で算出した補正指令値を実行した後なので、誤差が減少し、２回目の誤差はＸ：２．５ｍｍ、Ｙ：０ｍｍ、θ：０°となる。この２回目の誤差と１回目の誤差、１回目の補正指令値から算出式（１）を用い、補正実行割合を算出した結果、補正実行割合がＸ：０．５、Ｙ：１、θ：１となる。そこで、補正指令値の算出式（２）を用い補正指令を算出した結果、２回目の補正指令値Ｘ：５ｍｍ、Ｙ：０ｍｍ、θ：０°となる。３回目は２回目で算出した補正指令を実行した後なので、誤差が更に減少し、３回目の誤差はＸ：０．１ｍｍ、Ｙ：０ｍｍ、θ：０°となる。３回目の誤差は設定した誤差の許容値であるＸ軸、Ｙ軸が±０．１ｍｍ、θ方向が±０．１°に収まっているので、補正動作の実行は３回目で終了となる。図９では、補正動作を実行しない３回目の補正実行割合、補正指令まで求めているが、図９の３回目の補正指令は実行しないため、算出しなくともよい。
【００６３】
以上、ＣＰＵ１０１が、ステップＳ１００〜Ｓ９００の各工程を実行することで、ケーブル１１とロボットハンド３０２の干渉の影響を考慮した補正指令値を補正実行割合から算出することができ、把持目標位置Ｐを早く、且つ正確に把持することができる。即ち、補正動作が２回目以降のときは、前回の補正動作が加味されてロボットハンド３０２による挟持位置の補正がなされる。したがって、把持目標位置Ｐを、迅速かつ正確にロボットハンド３０２に把持させることが可能となる。また、１つのロボット３００で把持目標位置Ｐを把持させることができるので、ロボット３００とは別のロボットを用意しなくて済み、また、別のロボットがあったとしても、別のロボットは他の作業を行うことができる。
【００６４】
特に、式（１）及び式（２）に基づいて補正指令値（補正量）Ｄｎが算出されるので、補正指令値Ｄｎでロボットハンド３０２の挟持位置を補正することにより、より迅速かつ正確にロボットハンド３０２により把持目標位置を把持させることができる。
【００６５】
［第２実施形態］
次に、本発明の第２実施形態に係るロボットシステムの動作について説明する。なお、第２実施形態におけるロボットシステムの構成は、上記第１実施形態と同様であるが、図４に示すＣＰＵ１０１の動作、即ちプログラム（ロボット制御方法）１２０が上記第１実施形態と異なる。したがって、第２実施形態において、装置構成の説明は省略し、ＣＰＵ１０１の動作について説明する。
【００６６】
図１０は、視覚センサ５００の光軸方向にロボット３００及びワークＷを見た平面図である。図１０には、コネクタ付きケーブル２１の個体差や、初期の位置及び姿勢のバラつきが大きい場合に、ロボットハンド３０２が把持目標位置Ｐを超えてコネクタ１２の接点側に移動した状態を示している。
【００６７】
図１１は、第２実施形態に係るロボット制御方法のフローチャートである。上記第１実施形態との差は図５のステップＳ３００の内容である。
【００６８】
上記第１実施形態では、図５のステップＳ３００で想定の把持目標位置にロボットハンド３０２を移動させている。しかし、想定の把持目標位置にロボットハンド３０２を移動させた場合、図１０のコネクタ付きケーブル２１に個体差や初期の位置・姿勢のバラつきがあると、その影響で理想の把持目標位置よりもコネクタ１２の接点側に移動する場合がある。コネクタ付きケーブル２１の基端部１４から先端部１３の方向に補正動作を実行した場合は、コネクタ付きケーブル２１とロボットハンド３０２の干渉の影響で基端部１４の固定端からコネクタ付きケーブル２１を引っ張る方向に力が働く。しかしその反対に、コネクタ付きケーブル２１の先端部１３から基端部１４の方向に補正動作を実行した場合は、コネクタ付きケーブル２１とロボットハンド３０２の干渉の影響で基端部１４の固定端へコネクタ付きケーブル２１を縮める方向に力が働く。そのため、ケーブル１１にたわみなどの変形が起こり、把持目標位置に到達するまでの図５のステップＳ６００〜Ｓ５００の繰り返し処理の実行回数が多くなる可能性がある。
【００６９】
これに対し、ＣＰＵ１０１は、図１１に示すように、ステップＳ２００の後であって、ステップＳ４００に先立って、ロボットハンド３０２の間でケーブル１１を滑らせながらコネクタ１２近傍の想定の把持目標位置の手前に移動させる（Ｓ３０１）。つまり、ＣＰＵ１０１は、コネクタ付きケーブル２１において把持目標位置Ｐよりも基端部１４の側であって、途中部位と把持目標位置Ｐとの間にロボットハンド３０２の移動目標位置を設定する。そして、ＣＰＵ１０１は、移動目標位置にロボットハンド３０２が移動するようにロボットアーム３０１を動作させる（初期動作工程、初期動作処理）。
【００７０】
詳述すると、ＣＰＵ１０１は、ステップＳ２００にてロボットハンド３０２によりコネクタ付きケーブル２１を挟持させた位置と把持目標位置との差分よりも距離が小さい値を移動量（移動指令）とする。そして、ＣＰＵ１０１は、該移動量に基づき、ロボットハンド３０２が長手方向に沿って移動して把持目標位置に近接するようにロボットアーム３０１を動作させる。
【００７１】
このステップＳ３０１では把持目標位置手前（把持目標位置よりもケーブル１１の基端部１４に近い位置）まで移動させ、ステップＳ４００以降の処理を実行することで、ステップＳ６００〜Ｓ５００の繰り返し処理の実行回数を削減することができる。
【００７２】
［第３実施形態］
次に、本発明の第３実施形態に係るロボットシステムの動作について説明する。なお、第３実施形態におけるロボットシステムの構成は、上記第１実施形態と同様であるが、図４に示すＣＰＵ１０１の動作、即ちプログラム（ロボット制御方法）１２０が上記第１実施形態と異なる。したがって、第３実施形態において、装置構成の説明は省略し、ＣＰＵ１０１の動作について説明する。
【００７３】
図１２は、視覚センサ５００の光軸方向にロボット３００及びワークＷを見た平面図である。図１２には、補正実行割合Ｒｎが１より大きく、ロボットハンド３０２の間にコネクタ付きケーブル２１が存在しなくなった状態を示している。
【００７４】
図１３は、第３実施形態に係るロボット制御方法のフローチャートである。上記第１実施形態との差は、ロボット座標系で補正方向が変化した際にエラーとすることである。
【００７５】
上記第１実施形態において、補正実行割合Ｒｎが１を超えた場合は、図１０のようにロボットハンド３０２が理想の把持目標位置よりもコネクタ付きケーブル２１のコネクタ１２の接点側に移動していることになる。その場合、図５のステップＳ６００〜Ｓ５００の繰り返し処理の実行回数が多くなる。
【００７６】
また、理想の把持目標位置とコネクタ付きケーブル２１のコネクタ１２の接点側の端の長さによっては、図１２に示すように、ロボットハンド３０２の間にコネクタ付きケーブル２１が存在しなくなることがある。そのような場合は、ロボットハンド３０２を把持目標位置に移動させることは不可能である。
【００７７】
これに対し、第３実施形態では、ステップＳ４００にて算出した今回の誤差Ｅｎの正負の符号が、前回の誤差Ｅｎ−１に対して変化するか否かを判断する（Ｓ６０１：符号判断工程）。つまり、ステップＳ６０１では、ロボットハンド３０２が理想の把持目標位置よりもコネクタ１２の接点側に移動したかどうかを、ロボット座標系での補正方向に変化があるか否かで判断する。
【００７８】
ＣＰＵ１０１は、ステップＳ６０１にて正負の符号が変化する、つまり補正方向に変化があると判断した場合（Ｓ６０１：Ｙｅｓ）、エラーとし（Ｓ６０２）、ロボットアーム３０１の動作を強制終了する（Ｓ９００：終了工程、終了処理）。
【００７９】
以上のステップＳ６０１，Ｓ６０２の処理を設けることで、把持目標位置に移動することが不可能であることを早急に検知でき、ロボット３００を早急に停止することができる。
【００８０】
［第４実施形態］
次に、本発明の第４実施形態に係るロボットシステムの動作について説明する。なお、第４実施形態におけるロボットシステムの構成は、上記第１実施形態と同様であるが、図４に示すＣＰＵ１０１の動作、即ちプログラム（ロボット制御方法）１２０が上記第１実施形態と異なる。したがって、第４実施形態において、装置構成の説明は省略し、ＣＰＵ１０１の動作について説明する。
【００８１】
図１４は、第４実施形態に係るロボット制御方法のフローチャートである。上記第１実施形態との差は、補正実行割合Ｒｎに閾値を設け、ロボット座標系で補正方向が変化した際に、補正実行割合Ｒｎが閾値を超えないように実行することである。
【００８２】
上記第１実施形態では、補正実行割合Ｒｎの算出結果がいくつであっても、算出した補正実行割合Ｒｎを用いて補正指令値Ｄｎを算出し、ロボットハンド３０２が補正指令値Ｄｎの分移動するように実行している。上記第１実施形態では、補正実行割合Ｒｎが１を超えた場合、例えば図１０に示すように、ロボットハンド３０２の現在の挟持位置Ｐａが把持目標位置Ｐを通り過ぎ、コネクタ付きケーブル２１の先端近傍まで進むことになる。よって、補正を実行する方向が、コネクタ付きケーブル２１の基端部１４から先端部１３へ向かう方向であったのに対し、コネクタ付きケーブル２１の先端部１３から基端部１４へ向かう方向に変化する。
【００８３】
コネクタ付きケーブル２１の基端部１４から先端部１３へ向かう方向に補正動作を実行した場合は、ケーブル１１とロボットハンド３０２の干渉の影響で、基端部１４の固定端からケーブル１１を引っ張る方向に力が働く。しかし、その反対に、コネクタ付きケーブル２１の先端部１３から基端部１４へ向かう方向に補正動作を実行した場合は、ケーブル１１とロボットハンド３０２の干渉の影響で基端部１４の固定端へケーブル１１を縮める方向に力が働く。そのため、ケーブル１１にたわみなどの変形が起こり、ケーブル１１とロボットハンド３０２との干渉が与える影響が不明なため、今回求めた補正実行割合Ｒｎを使用できない。
【００８４】
第４実施形態では、ＣＰＵ１０１は、ステップＳ４００にて算出した今回の誤差Ｅｎの正負の符号が、前回の誤差Ｅｎ−１に対して変化するか否かを判断する（Ｓ６０１：符号判断工程，符号判断処理）。
【００８５】
次に、ＣＰＵ１０１は、ステップＳ６０１にて正負の符号が変化すると判断した場合（Ｓ６０１：Ｙｅｓ）、補正実行割合Ｒｎに対して上限の閾値を設定し、算出した補正実行割合Ｒｎが閾値を超える場合には、補正実行割合Ｒｎを閾値に変更する（Ｓ６０２）。この閾値は、例えば１に設定される。
【００８６】
以上の動作により、１度補正動作を実行することで、次回からケーブル１１とロボットハンド３０２との干渉が与える影響を考慮した補正動作が実行できる。
【００８７】
つまり、ロボットハンド３０２の以前の補正動作によるケーブル１１（コネクタ付きケーブル２１）の伸縮を考慮した補正動作が可能となり、より迅速にロボットハンド３０２をコネクタ付きケーブル２１の把持目標位置Ｐに位置決めすることができる。
【００８８】
［第５実施形態］
次に、本発明の第５実施形態に係るロボットシステムの動作について説明する。なお、第５実施形態におけるロボットシステムの構成は、上記第１実施形態と同様であるので説明を省略する。
【００８９】
図１５は、第５実施形態に係るロボットシステムの動作を示す説明図である。コネクタ付きケーブル２１は、コネクタ１２とケーブル１１との接続部分に段差がない第１面としての面３１と、面３１に対して反対側の第２面としての面３２とを有している。面３１は、変化の少ない面である。面３２には、コネクタ１２において補強板１７が固定されている。なお、図１５では、コネクタ付きケーブル２１の途中部位から先端部１３までを図示しており、ロボットアーム３０１は不図示とした。
【００９０】
上記第１実施形態との差は、ロボットハンド３０２の間にコネクタ付きケーブル２１がある場合に、ロボットハンド３０２を面３１に押しあてながら動作させることである。コネクタ付きケーブル２１（ケーブル１１）がある一定の復元力を有しており、段差、摩擦などの変化が大きい面や少ない面を複数有している場合に、ケーブル１１の復元力を利用し、変化が少ない面にロボットハンド３０２を押しつける。即ち、コネクタ付きケーブル２１は、図５のステップＳ２００にて、一対のフィンガー３０３，３０４のうち一方のフィンガー３０３に面３１が当たり、他方のフィンガー３０３と面３２との間に間隙が形成されるように、ロボットハンド３０２に挟持される。つまり、コネクタ付きケーブル２１の面３１に、図１５（ａ）に示すようにロボットハンド３０２の一方のフィンガー３０３を押しつける。
【００９１】
次に、図１５（ｂ）に示すように、把持目標位置Ｐにロボットハンド３０２を移動させることでケーブル１１とロボットハンド３０２との干渉が与える影響を一定のものにできる。よって、図５のステップＳ６００〜Ｓ５００の繰り返し処理の実行回数を削減することができる。
【００９２】
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
【００９３】
上記実施形態では、視覚センサ５００はロボット座標系において位置が固定されている場合について説明したが、視覚センサ５００がロボットアーム３０１に支持されてロボット座標系において移動する場合についても本発明は適用可能である。
【００９４】
また、上記第１実施形態における図５に示すステップＳ３００、上記第２実施形態における図１１に示すステップＳ３０１、上記第３，第４実施形態における図１３，図１４に示すステップＳ３００を省略してもよい。例えば、ステップＳ２００においてロボットハンド３０２に途中部位を挟持させたときに、ロボットハンド３０２と把持目標位置Ｐとが視覚センサ５００により撮像可能であれば、初期動作工程（初期動作処理）を省略することが可能である。
【００９５】
上記実施形態の各処理動作は具体的には制御部としてのＣＰＵ１０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置に供給し、制御装置のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【００９６】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ１０４であり、ＨＤＤ１０４にプログラム１２０が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図４に示すＲＯＭ１０２、記録ディスク８００、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【００９７】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【００９８】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１００】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、画像処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１０１】
２１…コネクタ付きケーブル（長尺部材）、１０１…ＣＰＵ（制御部）、３００…ロボット、３０１…ロボットアーム、３０２…ロボットハンド、５００…視覚センサ、９００…ロボットシステム
【図１】
2015030086.tif 000003
【図２】
2015030086.tif 000004
【図３】
2015030086.tif 000005
【図４】
2015030086.tif 000006
【図５】
2015030086.tif 000007
【図６】
2015030086.tif 000008
【図７】
2015030086.tif 000009
【図８】
2015030086.tif 000010
【図９】
2015030086.tif 000011
【図１０】
2015030086.tif 000012
【図１１】
2015030086.tif 000013
【図１２】
2015030086.tif 000014
【図１３】
2015030086.tif 000015
【図１４】
2015030086.tif 000016
【図１５】
2015030086.tif 000017