(57)【要約】【課題】正確なケーブルフォーミングを実現する。【解決手段】電子機器の製造装置は、ケーブル断面・延伸方向算出部２６による、サーチボリューム内に存在する３Ｄ点群データから推定した断面形状データに基づいて、ケーブル４４の延伸方向を更新するとともに特徴点を特定する処理と、サーチボリューム設定部２４によるサーチボリュームを移動する処理とを繰り返し実行して、ケーブル形状推定部３０が繰り返し処理の結果に基づいてケーブル４４の形状データを生成（形状を推定）する。この場合、ケーブル断面・延伸方向算出部は、特徴点に基づいてケーブルの曲げ半径ｒを算出し、該曲げ半径ｒが所定の閾値（最小曲げ半径Ｒ）未満の場合には、最新の主軸ベクトルを更新せず、サーチボリューム設定部を介して、サーチボリュームを最新の主軸ベクトルの方向に所定距離だけスキップする。【選択図】図２
2018014362.tif 000002
【特許請求の範囲】
【請求項１】
電子機器の部品の一部にケーブルが接続された状態で、前記ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得する取得部と、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成する設定部と、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する処理部と、
前記処理部の生成結果に基づいて把持装置に前記ケーブルを把持させ、前記把持装置を移動させて前記ケーブルを移動させる制御部と、
を備え、
前記処理部は、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、該特徴点と前記延伸方向を前記形状データの生成に使用せず、前記空間データを破棄されていない最新の延伸方向に沿って所定距離移動する、
ことを特徴とする電子機器の製造装置。
【請求項２】
前記ケーブルは垂直断面の形状が円形であり、
前記所定距離は、前記垂直断面の直径と同一の距離であることを特徴とする請求項１に記載の電子機器の製造装置。
【請求項３】
前記処理部は、前記曲げ半径が所定の閾値未満の場合に、前記画像データから前記ケーブルと交差するケーブルのエッジ部分を特定し、特定した前記エッジ部分に基づく距離だけ前記空間データを移動する、ことを特徴とする請求項１に記載の電子機器の製造装置。
【請求項４】
前記処理部は、
前記曲げ半径が所定の閾値以上であった場合に特定された特徴点を記憶部に記憶しておき、
前記記憶部に記憶されている特徴点のうち、直前に記憶された２以上の特徴点と、新たに特定された前記特徴点とに基づいて前記ケーブルの曲げ半径を算出する、ことを特徴とする請求項１〜３のいずれか一項に記載の電子機器の製造装置。
【請求項５】
電子機器の部品の一部にケーブルが接続された状態で、前記ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得する取得部と、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成する設定部と、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する処理部と、
前記処理部の生成結果に基づいて把持装置に前記ケーブルを把持させ、前記把持装置を移動させて前記ケーブルを移動させる制御部と、
を備え、
前記処理部は、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、前記特徴点と前記延伸方向とを前記形状データの生成に使用しない、
ことを特徴とする電子機器の製造装置。
【請求項６】
ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得し、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成し、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する、
処理をコンピュータに実行させ、
前記ケーブルの形状データを生成する処理では、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、該特徴点と前記延伸方向を前記形状データの生成に使用せず、前記空間データを破棄されていない最新の延伸方向に沿って所定距離移動する、
ことを特徴とするケーブル形状推定プログラム。
【請求項７】
ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得し、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成し、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する、
処理をコンピュータに実行させ、
前記ケーブルの形状データを生成する処理では、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、前記特徴点と前記延伸方向とを前記形状データの生成に使用しない、
ことを特徴とするケーブル形状推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器の製造装置、及びケーブル形状推定プログラムに関する。
【背景技術】
【０００２】
情報処理装置などの電子機器は、ハードディスク装置、メモリ、ＣＰＵ、電源装置等の多数の部品と、部品を収容する筐体とを有し、筐体内には配線用のケーブルが設けられている。
【０００３】
電子機器を製造する際には、ケーブルを所定位置（例えば筐体の壁部近傍）に這わせるなどして、ケーブルが邪魔にならないようにする必要がある。この作業は、ケーブルフォーミングと呼ばれている。ケーブルフォーミングをロボットを用いて行う場合、ロボットが把持すべきケーブルの位置や姿勢を正確に把握する必要がある。
【０００４】
なお、従来、柔軟で長尺な部材の形状を記述する３Ｄデータを得るための技術や、ロボットによるワークの搬送に関する技術が知られている（例えば、特許文献１，２等参照）。また、三次元形状の測定に関する技術も知られている（例えば、特許文献３〜５等参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２４２１８５号公報
【特許文献２】特開２００８−１５６８３号公報
【特許文献３】国際公開第２０１０／０７１１３９号
【特許文献４】特開２００５−２５８６４３号公報
【特許文献５】特開２００７−８０１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ケーブルを撮像した画像からケーブルの形状認識を行う場合、ケーブルは不定形であるため、直線や円弧等を用いたマッチング処理を行うことが難しい。このため、従来は、ケーブルの端部からケーブルと背景との境目であるエッジを抽出し、追跡する処理により、ケーブルの形状を認識する方法が採用されている。
【０００７】
しかしながら、形状認識対象のケーブルの上に別のケーブルが交差している場合や、形状認識対象のケーブルが輪を形成し、一部が交差した状態になっている場合には、交差部分でケーブルを正確に追跡できず、ケーブルの形状を誤認識するおそれがある。また、誤認識が発生した場合、ロボットを用いたケーブルフォーミングに失敗する可能性が高くなる。
【０００８】
１つの側面では、本発明は、ケーブルを予め定めた状態に遷移させる作業を正確に行うことが可能な電子機器の製造装置、及びケーブル形状を精度よく推定することが可能なケーブル形状推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、電子機器の製造装置は、電子機器の部品の一部にケーブルが接続された状態で、前記ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得する取得部と、前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成する設定部と、前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する処理部と、前記処理部の生成結果に基づいて把持装置に前記ケーブルを把持させ、前記把持装置を移動させて前記ケーブルを移動させる制御部と、を備え、前記処理部は、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、該特徴点と前記延伸方向を破棄し、前記空間データを破棄されていない最新の延伸方向に沿って所定距離移動する、電子機器の製造装置である。
【発明の効果】
【００１０】
一つの側面として、ケーブルを予め定めた状態に遷移させる作業を正確に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る電子機器の製造装置の構成を示す概略図である。
【図２】図２（ａ）は、ケーブル認識装置のハードウェア構成を示す図であり、図２（ｂ）は、ケーブル認識装置の機能ブロック図である。
【図３】３Ｄ画像及び３Ｄ点群データを示す図である。
【図４】図４（ａ）〜図４（ｃ）は、ケーブル認識装置の処理について説明するための図（その１）である。
【図５】ケーブル認識装置の処理について説明するための図（その２）である。
【図６】電子機器の製造装置により実行される一連の処理を示すフローチャートである。
【図７】図７（ａ）〜図７（ｃ）は、電子機器の製造装置の一連の処理の概要を示す図である。
【図８】図６のステップＳ１４の具体的な処理を示すフローチャートである。
【図９】図８のステップＳ４０、Ｓ５４の具体的な処理を示すフローチャートである。
【図１０】図１０（ａ）〜図１０（ｄ）は、図８の処理を説明するための図（その１）である。
【図１１】図１１（ａ）〜図１１（ｃ）は、図９の処理を説明するための図である。
【図１２】図１２（ａ）〜図１２（ｃ）は、図８の処理を説明するための図（その２）である。
【図１３】図１３（ａ）、図１３（ｂ）は、図８の処理を説明するための図（その３）である。
【図１４】ケーブル差分長Ｄ（ｉ）を模式的に（平面的に）示す図である。
【図１５】図１５（ａ）は、３Ｄ点群データの一例を示す図であり、図１５（ｂ）は、図１５（ａ）の一部を切り出して示す図である。
【図１６】図８のステップＳ５６の具体的処理を示すフローチャートである。
【図１７】曲げ半径ｒについて説明するための図である。
【図１８】図１８（ａ）は、ケーブルの交差状態を示す図であり、図１８（ｂ）は、ケーブルが交差している場合の正しい追跡方向と誤った追跡方向を示す図である。
【図１９】図１６の処理について具体的に説明するための図（その１）である。
【図２０】図２０（ａ）〜図２０（ｄ）は、図１６の処理について具体的に説明するための図（その２）である。
【図２１】所定距離について説明するための図である。
【図２２】所定距離の別例について説明するための図である。
【図２３】図１６の処理の変形例について具体的に説明するための図（その１）である。
【図２４】図２４（ａ）〜図２４（ｅ）は、図１６の処理の変形例について具体的に説明するための図（その２）である。
【発明を実施するための形態】
【００１２】
以下、電子機器の製造装置の一実施形態について、図１〜図２２に基づいて詳細に説明する。
【００１３】
本実施形態に係る電子機器の製造装置１００は、図１に示すように、把持装置としてのロボット１０と、３Ｄカメラ１２と、ケーブル認識装置１４と、制御部としてのロボットコントローラ１６と、を備えている。
【００１４】
ロボット１０は、一例として、ケーブル４４の一端及び他端に設けられているコネクタ４６Ａ，４６Ｂをプリント基板４２に設けられたコネクタに接続するとともに、ケーブルフォーミングを実行するロボットである。ケーブルフォーミングは、ケーブル４４を予め定められた状態に遷移させる配線作業を意味する。本実施形態では、ケーブルフォーミングは、図７（ｃ）に示すように、プリント基板４２の外周の一部に沿ってケーブル４４を這わせる作業であるものとする。なお、ケーブル４４は、太さが一定で断面円形の柔軟な紐状部材であり、形状が不定で随時３次元的に変形する。なお、ケーブル４４が延びる方向（延伸方向）には連続性がある（曲げには一定の曲率がある）。
【００１５】
３Ｄカメラ１２は、例えば、３Ｄ点群カメラや３Ｄスキャナ等であり、ケーブル４４近傍の３Ｄ画像を撮影する。３Ｄカメラ１２が撮影した３Ｄ画像は、ケーブル認識装置１４に送信される。
【００１６】
ケーブル認識装置１４は、３Ｄカメラ１２が撮影した３Ｄ画像から３Ｄ点群データを取得し、３Ｄ点群データに基づいてケーブルフォーミング対象のケーブル４４の状態を認識し、認識結果をロボットコントローラ１６に出力する。この場合、ケーブル認識装置１４は、ケーブル４４の一端（コネクタ４６Ａ近傍）からケーブル４４の追跡処理を行い、一端から所定長さの箇所の姿勢や存在位置（ＸＹＺ座標）を認識する。
【００１７】
ロボットコントローラ１６は、ロボット１０を制御して、プリント基板４２へのケーブル４４の組み付け（接続）作業を実行する。また、ロボットコントローラ１６は、ケーブル認識装置１４の認識結果に基づいてロボット１０を制御し、ケーブル４４を予め定めた状態（図７（ｃ）の状態）に遷移させるケーブルフォーミングを実行する。
【００１８】
ここで、ケーブル認識装置１４について、詳細に説明する。図２（ａ）には、ケーブル認識装置１４のハードウェア構成が示されている。図２（ａ）に示すように、ケーブル認識装置１４は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、及び可搬型記憶媒体用ドライブ９９等を備えている。これらケーブル認識装置１４の構成各部は、バス９８に接続されている。ケーブル認識装置１４では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（ケーブル形状推定プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（ケーブル形状推定プログラムを含む）をＣＰＵ９０が実行することにより、図２（ｂ）に示す各部の機能が実現されている。
【００１９】
図２（ｂ）には、ケーブル認識装置１４の機能ブロック図が示されている。ケーブル認識装置１４は、ＣＰＵ９０がプログラムを実行することにより、図２（ｂ）に示す、取得部としてのケーブル３Ｄデータ取得部２０、特定部としてのケーブル端点延伸方向計測部２２、設定部としてのサーチボリューム設定部２４、ケーブル断面・延伸方向算出部２６、着目点更新部２８、ケーブル形状推定部３０、及び通信部３２、として機能する。
【００２０】
ケーブル３Ｄデータ取得部２０は、３Ｄカメラ１２によって撮影された画像データ（３Ｄ画像）を取得する。なお、３Ｄ画像は、少なくともケーブルフォーミング対象（追跡対象）のケーブル４４全体を撮影したものである。また、ケーブル３Ｄデータ取得部２０は、取得した３Ｄ画像から、２次元面内の格子点に対応するケーブル４４の表面上の点の３次元位置データ（「３Ｄ点群データ」と呼ぶ）を取得する。図３には、３Ｄ画像の一例が示されている。図３に示す格子点は、３Ｄカメラ１２のピクセルに対応する点である。ケーブル３Ｄデータ取得部２０は、図３に示すように、３Ｄカメラ１２のピクセルに対応する２次元面（ＸＹ面）内の格子点ごとにケーブル４４表面の高さ位置（Ｚ座標）を取得し、格子点それぞれのＸＹ座標及び取得したＺ座標を含む３次元データを３Ｄ点群データとする。
【００２１】
図１５（ａ）には、３Ｄ点群データの一例（ケーブル４４付近を拡大した画像）が示されており、図１５（ｂ）には、図１５（ａ）の一部を切り出し、視線を変えてケーブル４４の断面を垂直に見た状態が示されている。図１５（ｂ）において点線にて示すように、３Ｄ点群データにはケーブル４４の断面上半分（円弧状部分）のデータが含まれていることが明らかである。
【００２２】
図２（ｂ）に戻り、ケーブル端点延伸方向計測部２２は、３Ｄ画像データからケーブル４４の一端近傍の点を着目点とし、該着目点においてケーブル４４が延びる方向（延伸方向）を特定する。なお、「着目点」とは、ケーブル４４の形状探索の基準となる点である。ケーブル端点延伸方向計測部２２は、予め用意してあるコネクタ４６Ａの３Ｄ ＣＡＤモデルを用いたモデルマッチングにより、３Ｄ画像からコネクタ４６Ａの位置、姿勢を特定する。そして、ケーブル端点延伸方向計測部２２は、コネクタ４６Ａの位置、姿勢から定まるケーブルの所定位置（例えば、図４（ａ）に示すようなケーブル４４とコネクタ４６Ａの境目部分のうち最も高い位置）を着目点とする。また、ケーブル端点延伸方向計測部２２は、コネクタ４６Ａの姿勢に基づいて、着目点におけるケーブル４４の延伸方向を特定する。ここで、着目点と延伸方向とにより規定される所定長さのベクトルを主軸ベクトル（図４（ａ）参照）と呼ぶものとする。
【００２３】
サーチボリューム設定部２４は、ケーブル４４の断面形状を推定するために着目すべき範囲として、サーチボリュームを生成（設定）する。サーチボリュームは、着目点を内部に含み、ケーブル４４の延伸方向に所定幅を有する直方体状の空間データである。具体的には、サーチボリュームは、図４（ｂ）において点線で示すような一辺がｂの正方形の面を有する所定幅ａの空間である。ここで、サーチボリュームの所定幅ａ（図４（ｂ）参照）は、例えば、カメラの１ピクセルの寸法（図３の格子点間距離）の１．５倍程度であり、正方形の面の一辺の寸法ｂは、ケーブル４４の直径に所定値αを加算した程度の寸法であるものとする。
【００２４】
ケーブル断面・延伸方向算出部２６は、サーチボリューム内に存在する３Ｄ点群データからケーブル４４の断面形状データを生成し、該断面形状データに基づいて、ケーブル４４の延伸方向を新たに算出する（図４（ｃ）参照）。また、ケーブル４４の特徴点（サーチボリューム内に存在する３Ｄ点群データのうち最も高い位置にある点）を特定する。ケーブル断面・延伸方向算出部２６は、算出した延伸方向と特定した特徴点の情報（主軸ベクトルの情報）をデータ格納部３６に格納する。また、ケーブル断面・延伸方向算出部２６は、ケーブルフォーミング対象のケーブル（追跡しているケーブル）４４の上に別のケーブル又は追跡しているケーブル４４自身が交差しているか否かを判定する。そして、交差していると判定した場合には、ケーブル断面・延伸方向算出部２６は、サーチボリューム設定部２４と協働して、交差による影響を受けないように処理を実行する。
【００２５】
着目点更新部２８は、ケーブル断面・延伸方向算出部２６が算出した新たな延伸方向と特徴点とに基づいて、図４（ｃ）に示すような新たな着目点を設定する（着目点を更新する）。
【００２６】
ケーブル形状推定部３０は、サーチボリューム設定部２４、ケーブル断面・延伸方向算出部２６、着目点更新部２８が処理を繰り返し実行した結果に基づいて、ケーブル４４の形状データを生成（推定）する。すなわち、ケーブル形状推定部３０は、図５に示すようにケーブル４４の延伸方向に沿って順次設定されるサーチボリュームを用いて順次算出された、ケーブル４４の主軸ベクトルの情報をデータ格納部３６から取得する。そして、ケーブル形状推定部３０は、取得した情報に基づいて、ケーブル４４の端部から所定長さｍ（図７（ａ）参照）よりも離れた箇所を特定する。更にケーブル形状推定部３０は、特定した箇所が存在する位置（ＸＹＺ座標）と当該箇所におけるケーブル４４の姿勢、すなわちロボット１０がケーブルフォーミングにおいて把持すべきケーブル４４の位置及び姿勢を推定する。
【００２７】
通信部３２は、ケーブル形状推定部３０の推定結果に基づく指示をロボットコントローラ１６に送信する。ロボットコントローラ１６は、ロボット１０を制御してロボット１０にケーブル４４を把持させ、ケーブル４４を把持したロボット１０を移動させることで、ケーブル４４を予め定めた状態に遷移させる（ケーブルフォーミングを実行する）。
【００２８】
（電子機器の製造装置１００の処理）
次に、本実施形態の電子機器の製造装置１００が実行する処理について、詳細に説明する。
【００２９】
図６には、電子機器の製造装置１００により実行される一連の処理がフローチャートにて示されている。以下、図６に基づいて、電子機器の製造装置１００の処理の概要について説明する。
【００３０】
図６の処理では、まず、ステップＳ１０において、ロボットコントローラ１６が、予め定められた手順でロボット１０を駆動し、ケーブル４４の両端のコネクタ４６Ａ，４６Ｂをプリント基板４２上のコネクタに挿入する。これにより、プリント基板４２にケーブル４４が接続される。なお、ケーブル４４をプリント基板４２に接続する作業は、ケーブルフォーミングを実行するロボットとは別のロボットが実行してもよいし、人（作業者）が実行してもよい。図７（ａ）には、ケーブル４４がプリント基板４２に接続された状態が示されている。
【００３１】
次いで、ステップＳ１４では、ケーブル認識装置１４が、ケーブルの認識処理を実行する。ケーブルの認識処理は、図８のフローチャートに沿って実行されるが、詳細については後述する。
【００３２】
次いで、ステップＳ１６では、ケーブル認識装置１４が、ケーブル４４の一端から所定長さ（ｍ）の箇所の位置、姿勢の情報（具体的には、図７（ａ）に示すベクトルＶ（ｎ）の情報）を取得する。ケーブル認識装置１４は、取得したケーブル４４の位置、姿勢の情報をロボットコントローラ１６に送信する。
【００３３】
次いで、ステップＳ１８では、ロボットコントローラ１６が、ケーブル認識装置１４から受信した情報に基づいて、ケーブル４４の一端から所定長さ（ｍ）の箇所にロボット１０のハンドを移動する。次いで、ステップＳ２０では、ロボットコントローラ１６は、ロボット１０のハンドでケーブル４４を把持する。図７（ｂ）には、ロボット１０のハンドがケーブル４４を把持した状態が示されている。なお、ロボットコントローラ１６は、ケーブル４４を把持する際に、ロボット１０のハンドがベクトルＶ（ｎ）に略直交する方向に開くようにロボット１０の姿勢を制御する。
【００３４】
次いで、ステップＳ２２では、ロボットコントローラ１６は、ロボット１０を図７（ｃ）に示す位置まで駆動し、ケーブル４４をプリント基板４２の角部に引っ掛ける。
【００３５】
次いで、ステップＳ２４では、ロボットコントローラ１６はロボット１０を制御して、ケーブル４４の把持を解除し、ロボット１０をプリント基板４２上から退避させる。
【００３６】
以上により、電子機器の製造装置１００による一連の処理が終了する。
【００３７】
（ステップＳ１４の処理について）
次に、ステップＳ１４の処理（ケーブルの認識処理）について、図８、図９、図１６のフローチャートに沿って、その他図面を適宜参照しつつ詳細に説明する。
【００３８】
図８の処理では、まず、ステップＳ３０において、ケーブル端点延伸方向計測部２２が、３Ｄカメラ１２から３Ｄ画像を取得し、形状を推定するケーブル（追跡対象のケーブル）の一端に設けられたコネクタ４６Ａの３Ｄ姿勢を計測する。この場合、予め用意してあるコネクタ４６Ａの３Ｄ ＣＡＤモデルを用いたモデルマッチングにより、コネクタ４６Ａの位置、姿勢を特定する。
【００３９】
次いで、ステップＳ３２では、ケーブル端点延伸方向計測部２２が、ケーブル端の主軸ベクトルを取得する。具体的には、ケーブル端点延伸方向計測部２２は、図４（ａ）に示すようなケーブル４４とコネクタ４６Ａの境目部分のうち最も高い位置を着目点とし、コネクタ４６Ａの姿勢と、部品の設計情報からケーブル４４の延伸方向を特定し、着目点と延伸方向とにより規定されるベクトルをケーブル端の主軸ベクトルとする。なお、ケーブル端点延伸方向計測部２２は、例えば、コネクタ４６Ａの特定の辺が延びる方向をケーブル４４の延伸方向として特定することができる。
【００４０】
次いで、ステップＳ３４では、ケーブル３Ｄデータ取得部２０が、３Ｄカメラ１２から３Ｄ点群データを取得する。
【００４１】
次いで、ステップＳ３６では、サーチボリューム設定部２４が、ケーブル端の主軸ベクトルを用いてサーチボリュームを設定する。サーチボリューム設定部２４は、図１０（ａ）に示すように、ケーブル端（着目点）を含み、主軸ベクトルの方向に所定幅ａを有する直方体状のサーチボリュームを設定する。なお、図１０（ａ）において、白丸は３Ｄ点群データを示している。
【００４２】
次いで、ステップＳ３８では、ケーブル断面・延伸方向算出部２６が、カウンタｉを０に設定する。
【００４３】
次いで、ステップＳ４０では、ケーブル断面・延伸方向算出部２６が、断面探索処理を実行する。ステップＳ４０においては、図９のフローチャートに沿った処理が実行される。
【００４４】
図９の処理では、ケーブル断面・延伸方向算出部２６は、まずステップＳ７０において、３Ｄ点群データからサーチボリューム内の点を抽出する。図１０（ａ）の例では、図１０（ｂ）に示すように、サーチボリューム内に含まれる黒丸で示す３Ｄ点群データが抽出されたものとする。
【００４５】
次いで、ステップＳ７２では、ケーブル断面・延伸方向算出部２６が、図１０（ｃ）において一点鎖線で示すように、抽出した点を用いて楕円フィッティングし、ケーブルの断面形状データ（楕円形状データ）を得る。図１１（ａ）には、ケーブル４４の３Ｄ画像の例が示されている。例えば、ステップＳ７０において抽出された点が、黒丸で示されているとする。この場合、抽出された点を含む断面（Ａ−Ａ線断面であり、ＹＺ断面）は、ケーブル４４の垂直断面（Ｂ−Ｂ線断面）からずれているため、図１１（ｂ）に示すように、楕円形となる。一方、垂直断面は、図１１（ｃ）に示すように、真円となる。
【００４６】
次いで、ステップＳ７４では、ケーブル断面・延伸方向算出部２６が、抽出した点のうち最も高い位置にある点を特徴点Ｐ（ｉ）（ここではＰ（０））として抽出する。図１０（ｄ）においては、特徴点Ｐ（０）が黒丸にて示されている。
【００４７】
次いで、ステップＳ７６では、ケーブル断面・延伸方向算出部２６が、取得した楕円形状データの歪からケーブル４４の垂直断面を計算する。次いで、ステップＳ７８では、ケーブル断面・延伸方向算出部２６が、ケーブル４４の垂直断面の法線ベクトルを主軸ベクトルＶ（ｉ）（ここではＶ（０））とする。これらステップＳ７６、Ｓ７８では、ケーブル断面・延伸方向算出部２６は、ステップＳ７２で取得した楕円形状データの長軸、短軸の比及び長軸、短軸の方向から楕円面の法線ベクトルと、垂直断面（真円面）との差（図１１（ａ）の角度θ）を算出する。そして、ケーブル断面・延伸方向算出部２６は、格子方向（図１１（ａ）ではＸ方向）に延びるベクトルを差（θ）の分だけずらしたベクトルを主軸ベクトルＶ（ｉ）とする。なお、ケーブル断面・延伸方向算出部２６は、ステップＳ７４で抽出した特徴点とステップＳ７８で抽出した主軸ベクトルの情報をデータ格納部３６に格納する。ステップＳ７８の後は、図８のステップＳ４６に移行する。
【００４８】
ステップＳ４６に移行すると、着目点更新部２８が、ｉを１インクリメントする（ｉ＝ｉ＋１）。
【００４９】
次いで、ステップＳ４８では、着目点更新部２８が、主軸ベクトルＶ(ｉ−１）（ここでは、Ｖ（０））を中心とする小型サーチボリュームを設定する。小型サーチボリュームは、図１２（ａ）に示すように、特徴点Ｐ（０）から延びる主軸ベクトルＶ（０）を中心軸とする断面正方形（又は長方形）の直方体状の空間であるものとする。なお、小型サーチボリュームは、例えば円柱状の空間データであってもよい。
【００５０】
次いで、ステップＳ５０では、着目点更新部２８が、小型サーチボリュームに含まれる点（新たな着目点）を探索する。ここでは、図１２（ｂ）において黒丸で示す点が新たな着目点として探索されたものとする。なお、小型サーチボリュームの大きさとしては、複数の点が含まれないような大きさとすることが好ましい。ただし、これに限らず、小型サーチボリュームに複数の点が含まれる場合には、例えば、複数の点のうち特徴点Ｐ（ｉ）に最も近い点を探索し、新たな着目点とすればよい。
【００５１】
次いで、ステップＳ５２では、サーチボリューム設定部２４が、探索された着目点を含み、主軸ベクトルＶ(ｉ−１）（ここでは、Ｖ（０））の方向に所定幅を有するサーチボリュームを設定する。図１２（ｂ）には、新たに設定されたサーチボリュームが示されている。
【００５２】
次いで、ステップＳ５４では、ケーブル断面・延伸方向算出部２６が、断面探索処理（図９）を実行する。なお、断面探索処理については、前述したのと同様の手順で実行される。したがって、断面探索処理により、図１２（ｃ）において黒丸で示すようにサーチボリューム内の点が抽出され、特徴点Ｐ（ｉ）と、主軸ベクトルＶ（ｉ）が取得される。なお、ステップＳ５０において探索された着目点（図１２（ｂ）の黒丸の点）と特徴点Ｐ（ｉ）とは、同一の場合もあれば、異なる場合もある。図１３（ａ）には、楕円形状データに基づいて、黒丸で示す特徴点Ｐ（ｉ）（＝Ｐ（１））が取得された状態が示されており、図１３（ｂ）には、楕円形状データに基づいて、主軸ベクトルＶ（ｉ）（＝Ｖ（１））が取得された状態が示されている。
【００５３】
次いで、図８のステップＳ５５では、ケーブル断面・延伸方向算出部２６が、現在の特徴点（Ｐ（ｉ））の前に２つの特徴点が得られているか否かを判断する。このステップＳ５５の判断が否定された場合、すなわち、ｉ＜２の場合には、後述するステップＳ５６において算出する必要のあるケーブルの曲げ半径を算出できず、ケーブルの交差の有無を判定できないため、ケーブル断面・延伸方向算出部２６は、ステップＳ５６をスキップして、ステップＳ５７に移行する。
【００５４】
ステップＳ５７に移行すると、ケーブル形状推定部３０は、１つ前の特徴点Ｐ（ｉ−１）と今回の特徴点Ｐ（ｉ）のケーブル差分長Ｄ（ｉ）を算出する。この場合、特徴点Ｐ（ｉ−１）のＸＹＺ座標を（ｘ(i-1)，ｙ(i-1)，ｚ(i-1)）、特徴点Ｐ（ｉ）のＸＹＺ座標を（ｘ(i)，ｙ(i)，ｚ(i)）とすると、次式（１）を用いて、Ｄ（ｉ）を算出することができる。
Ｄ（ｉ）＝{（ｘ(i-1)−ｘ(i)）2＋（ｙ(i-1)−ｙ(i)）2＋（ｚ(i-1)−ｚ(i)）2}1/2    …（１）
【００５５】
なお、図１４には、ケーブル差分長Ｄ（ｉ）が模式的に（平面的に）示されている。
【００５６】
次いで、ステップＳ５８では、ケーブル形状推定部３０が、ケーブル端（特徴点Ｐ（０））からｉ番目の特徴点（Ｐ（ｉ））までのケーブル差分長の総和を求め、Ｌ（ｉ）とする。すなわち、ケーブル形状推定部３０は、Ｄ（１）、Ｄ（２）、…、Ｄ（ｉ）の和を求め、Ｌ（ｉ）とする。
【００５７】
次いで、ステップＳ６０では、ケーブル形状推定部３０が、長さＬ（ｉ）の値が長さｍの値より大きいか否かを判断する。ここで、長さｍとは、図７（ａ）に示すように、プリント基板４２の一辺（図７（ａ）では短辺）の長さであるものとする。すなわち、ステップＳ６０では、図７（ｃ）に示すように、ケーブルフォーミングの際にプリント基板４２の角部に位置する箇所までケーブル４４の形状を追跡できたか否かを判断しているといえる。ステップＳ６０の判断が否定された場合には、ケーブル形状推定部３０は、ステップＳ４６に戻り、ステップＳ４６〜Ｓ６０の処理・判断を繰り返し実行する。
【００５８】
（ステップＳ５６の処理について）
次に、ステップＳ５５の判断が肯定された場合に実行されるステップＳ５６の処理について、図１６のフローチャートに沿って詳細に説明する。このステップＳ５６においては、ケーブル断面・延伸方向算出部２６及びサーチボリューム設定部２４が、ケーブル交差認識処理を実行する。本処理においては、追跡しているケーブルの曲げ半径を算出した結果に基づいてケーブルが交差しているか否かを判定し、交差している場合に当該交差を考慮した処理を実行する。
【００５９】
図１６の処理では、まず、ステップＳ１０２において、ケーブル断面・延伸方向算出部２６は、現在の特徴点Ｐ（ｉ）及び直前２つの特徴点Ｐ（ｉ−１）、Ｐ（ｉ−２）の３点から曲げ半径ｒを計算する。この場合、図１７に示すように、３つの特徴点Ｐ（ｉ）〜Ｐ（ｉ−２）の座標から、円の方程式を求め、求めた方程式が示す円の半径を曲げ半径ｒとする。
【００６０】
次いで、ステップＳ１０４では、ケーブル断面・延伸方向算出部２６は、曲げ半径ｒがケーブルの最小曲げ半径Ｒ以上（ｒ≧Ｒ）か否かを判断する。ステップＳ１０４の判断が肯定される場合とは、ケーブルが交差している可能性が低いことを意味する。この場合、図１６の処理を終了し、図８のステップＳ５７に移行する。
【００６１】
一方、ステップＳ１０４の判断が否定された場合、すなわち、曲げ半径ｒが最小曲げ半径Ｒ未満であった場合には、ケーブル断面・延伸方向算出部２６は、ステップＳ１０６に移行する。ステップＳ１０６に移行する場合とは、図１８（ａ）に示すように追跡しているケーブル（形状推定を行っているケーブル）の上にケーブルが交差している可能性が高いことを意味している。ケーブルが交差している場合、図１８（ｂ）において実線矢印で示す正しい追跡方向に沿ってケーブルを追跡すべき（サーチボリュームを移動させるべき）ところ、誤った追跡方向（破線矢印方向）に沿ってケーブルを追跡するおそれがある。したがって、本実施形態では、ケーブルが交差している場合には、正しくケーブルを追跡するために、図１６のステップＳ１０６〜Ｓ１１０の処理を実行することとしている。
【００６２】
ステップＳ１０６に移行すると、ケーブル断面・延伸方向算出部２６は、最新の主軸ベクトルを破棄し（データ格納部３６に格納せず）、１つ前の主軸ベクトルを最新の主軸ベクトルとする。すなわち、ケーブル断面・延伸方向算出部２６は、最新の主軸ベクトルを、直前に得られた主軸ベクトルＶ（ｉ）では更新しないこととする。
【００６３】
次いで、ステップＳ１０８では、ケーブル断面・延伸方向算出部２６が、ステップＳ１０４の判断が連続して否定されているか否かを判断する。このステップＳ１０８の判断が否定された場合には、ステップＳ１１０に移行するが、肯定された場合には、図１６の処理を終了し、図８のステップＳ５７に移行する。
【００６４】
ステップＳ１０８の判断が否定され、ステップＳ１１０に移行すると、サーチボリューム設定部２４は、ケーブル断面・延伸方向算出部２６の指示の下、サーチボリュームを所定距離だけ最新の主軸ベクトルの方向にスキップする。なお、所定距離の具体例については、後述する。
【００６５】
ここで、図１９、図２０に基づいて、図１６の処理について具体的に説明する。なお、図１９、図２０においては、説明の簡素化のため、追跡しているケーブルの延伸方向がＹ軸方向と一致した状態が示されている。
【００６６】
例えば、図１９において、（１）で示す位置にサーチボリュームがある場合（Ｓ５２）、サーチボリューム内の３Ｄ点群データの全てが、追跡しているケーブル上の点のデータである。したがって、この場合には、図２０（ａ）において破線で示すような、追跡しているケーブルの形状を反映した楕円形状データが得られる（Ｓ７２）。この場合の主軸ベクトルは、図１９、図２０（ａ）に示すように、特徴点Ｐ（ｓ）を基点とする主軸ベクトルＶ（ｓ）となる（Ｓ７４〜Ｓ７８）。ケーブル断面・延伸方向算出部２６は、取得した主軸ベクトルのデータ（特徴点のデータを含む）をデータ格納部３６に格納する。
【００６７】
次いで、図１９において（２）で示す位置にサーチボリュームが移動した場合（Ｓ５２）、サーチボリューム内の３Ｄ点群データには、追跡しているケーブル上の点のデータ（●）と、交差しているケーブル上の点のデータ（△）が含まれている。この場合、３Ｄ点群データを楕円フィッティングすると図２０（ｂ）において破線で示すような、追跡しているケーブルの形状を反映していない楕円形状データが得られ（Ｓ７２）、特徴点Ｐ（ｓ＋１）を基点とする主軸ベクトルＶ（ｓ＋１）が得られる（Ｓ７４〜Ｓ７８）。ただし、この場合には、主軸ベクトルＶ（ｓ＋１）の方向がＶ（ｓ）と比べて極端に異なっており、曲げ半径ｒが最小曲げ半径Ｒ未満になる（Ｓ１０４：否定）ので、主軸ベクトルＶ（ｓ＋１）及び特徴点Ｐ（ｓ＋１）を破棄して（データ格納部３６に格納せず）、Ｖ（ｓ）を最新の主軸ベクトルのままとする（Ｓ１０６）。また、サーチボリュームについては、主軸ベクトルＶ（ｓ）の方向に沿って所定距離だけスキップさせ、図１９において（３）で示す位置に移動させる（Ｓ１１０）。
【００６８】
次いで、図１９において（３）で示す位置にサーチボリュームが移動した場合、サーチボリューム内の３Ｄ点群データには、追跡しているケーブル上の点のデータ（●）と、交差しているケーブル上の点のデータ（△）が含まれている。この場合、３Ｄ点群データを楕円フィッティングすると図２０（ｃ）において破線で示すような、追跡しているケーブルの形状を反映していない楕円形状データが得られ、特徴点Ｐ（ｓ＋２）を基点とする主軸ベクトルＶ（ｓ＋２）が得られる。ただし、この場合には、主軸ベクトルＶ（ｓ＋２）の方向がＶ（ｓ）と比べて極端に異なっており、曲げ半径ｒが最小曲げ半径Ｒ未満になる（Ｓ１０４：否定）ので、主軸ベクトルＶ（ｓ＋２）及び特徴点Ｐ（ｓ＋２）は破棄して（データ格納部３６に格納せず）、Ｖ（ｓ）を最新の主軸ベクトルのままとする（Ｓ１０６）。なお、この段階では、ステップＳ１０４の判断が連続して否定されているため、サーチボリュームは所定距離スキップさせずに、図８のステップＳ５７に移行する。
【００６９】
次いで、図１９において（４）で示す位置にサーチボリュームが移動した場合（Ｓ５２）、サーチボリューム内の３Ｄ点群データのすべてが、追跡しているケーブル上の点のデータであるので、図２０（ｄ）において破線で示すような追跡しているケーブルの形状を反映した楕円形状データが得られる（Ｓ７２）。この場合、特徴点Ｐ（ｓ＋３）を基点とする主軸ベクトルＶ（ｓ＋３）が得られる。ここで、主軸ベクトルＶ（ｓ＋３）の方向は、Ｖ（ｓ）と近似し、曲げ半径ｒが最小曲げ半径Ｒ以上になる（Ｓ１０４：肯定）ので、最新の主軸ベクトルを主軸ベクトルＶ（ｓ＋３）で更新する（データ格納部３６に格納する）。
【００７０】
なお、図１９のようなサーチボリュームのスキップが行われた場合、図８のステップＳ５７においては、ケーブル形状推定部３０は、特徴点Ｐ（ｓ＋３）とデータ格納部３６に格納されている直前の特徴点Ｐ（ｓ）との差分長を算出するものとする。
【００７１】
ここで、ステップＳ１１０においてサーチボリュームをスキップさせる距離（所定距離）の一例について、図２１、図２２に基づいて説明する。
【００７２】
図２１に示すようにケーブルが交差した場合において、Ｙ軸方向に関して重なる幅が最小となるのは、ケーブルが直交するときである。また、そのときの幅は、交差しているケーブル（上側に位置するケーブル）の横幅（ケーブルの断面が円形であれば直径）Ｑと同値である。したがって、ケーブル断面・延伸方向算出部２６は、サーチボリュームをスキップさせる所定距離をＱとする。これにより、ケーブルの形状推定精度を維持しつつ、処理量（サーチボリュームを用いた処理の回数）を削減することが可能となる。なお、交差しているケーブルは、近傍に位置する他のケーブルの場合もあれば、追跡しているケーブル自身である場合もある。このように交差する可能性のあるケーブルが複数存在する場合には、複数のケーブルの直径のうち最も小さい値だけサーチボリュームをスキップさせるようにすればよい。
【００７３】
なお、サーチボリュームをスキップする方法としては、図２２に示すような方法を採用してもよい。すなわち、ケーブル断面・延伸方向算出部２６は、まず、図２２（ａ）に示すように、最新の主軸ベクトルの方向に延びるエッジ抽出領域を現在のサーチボリュームの近傍に設定する。そして、ケーブル断面・延伸方向算出部２６は、画像データのエッジ抽出領域内において、交差しているケーブルのエッジ候補を抽出する。ここで、エッジ候補とは、ケーブルと背景との境目部分と推定される箇所を意味し、画像データの明度の変化や色彩の変化等に基づいて推定することができる。次いで、ケーブル断面・延伸方向算出部２６は、エッジ候補のうち、交差しているケーブルの横幅（直径）Ｑだけ離れた平行なエッジ候補を、２本のエッジとして抽出する。図２２（ｂ）には、抽出された２本のエッジが太線にて示されている。次いで、ケーブル断面・延伸方向算出部２６は、サーチボリューム設定部２４を介して、最新の主軸ベクトルと、現在のサーチボリュームから遠い側のエッジとが交差する点まで、サーチボリュームをスキップする。このようにサーチボリュームをスキップすることで、図２１の場合と同様、ケーブルの形状推定精度を維持しつつ、処理量（サーチボリュームを用いた処理の回数）を削減することができる。
【００７４】
図８に戻り、ステップＳ４６〜Ｓ６０の処理・判断が繰り返し実行され、ステップＳ６０の判断が肯定された場合、すなわち、ケーブル４４の一端から長さｍよりも離れた箇所までケーブル４４を追跡できた場合には、ステップＳ６２に移行する。なお、ここでは、一例として、Ｌ（ｉ）がｍを超えた段階のｉの値がｎであったとする。ステップＳ６２では、通信部３２は、ケーブル形状推定部３０の指示の下、主軸ベクトルＶ（ｉ）（ここではＶ（ｎ））をロボットコントローラ１６に送信する。なお、主軸ベクトルＶ（ｎ）のデータには、特徴点Ｐ（ｎ）の座標値も含まれている。
【００７５】
以上により、ステップＳ１４のケーブルの認識処理が終了する。
【００７６】
なお、主軸ベクトルＶ（ｎ）のデータを取得したロボットコントローラ１６は図６のステップＳ１６以降の処理を実行する。これにより、ロボット１０は、正確に推定されたケーブルの位置、姿勢に基づいて、ケーブル４４を図７（ｃ）の状態に遷移させる処理（ケーブルフォーミング）を正確に行うことができる。
【００７７】
なお、上記実施形態では、サーチボリューム設定部２４、ケーブル断面・延伸方向算出部２６、着目点更新部２８、ケーブル形状推定部３０を含んで、ケーブルの形状データを生成する処理部としての機能が実現されている。
【００７８】
以上、詳細に説明したように、本実施形態によると、ケーブル３Ｄデータ取得部２０が、ケーブル４４を撮影した３Ｄ画像から、ケーブル４４の表面上の点の３Ｄ点群データを取得し、サーチボリューム設定部２４が、３Ｄ画像からケーブル４４の一端近傍において、サーチボリュームを設定（生成）する。また、ケーブル形状推定部３０は、ケーブル断面・延伸方向算出部２６の処理（主軸ベクトルの更新処理）と、サーチボリューム設定部２４の処理（サーチボリュームを移動する処理）との繰り返し結果に基づいてケーブル４４の形状データを生成（形状を推定）する。この場合、ケーブル断面・延伸方向算出部２６は、特徴点に基づいてケーブルの曲げ半径ｒを算出し、該曲げ半径ｒが所定の閾値（最小曲げ半径Ｒ）未満の場合には、最新の主軸ベクトルを更新せず、サーチボリューム設定部２４を介して、サーチボリュームを最新の主軸ベクトルの方向に所定距離だけスキップする。このように、ケーブルの曲げ半径ｒが最小曲げ半径Ｒ未満の場合に、最新の主軸ベクトルを更新しないこととしているので、ケーブルが交差する場合でも、追跡しているケーブルを正確に追跡し、形状を推定することができる。また、サーチボリュームをスキップすることにより、ケーブルを追跡する際の処理量（サーチボリュームを用いた楕円フィッティングの回数）を低減することができる。また、本実施形態では、３Ｄ点群データを用いた楕円フィッティングを行うことで、ケーブル４４のエッジ部分を用いずにケーブル４４の形状を一端近傍から延伸方向に沿って追跡することができる。したがって、ノイズ等の影響を受けずに、精度よくケーブル４４の形状を特定することが可能となる。更に、精度よく特定された形状を用いることで、ケーブルフォーミングを正確に行うことができる。
【００７９】
また、本実施形態では、サーチボリュームをスキップさせる距離を、交差しているケーブルの直径Ｑと同一の距離としている。これにより、ケーブルの形状推定精度を落とさずに、処理量を低減することが可能となっている。
【００８０】
また、本実施形態では、ケーブル４４の一端にコネクタ４６Ａが設けられ、ケーブル端点延伸方向計測部２２は、３Ｄ画像から特定されるコネクタ４６Ａの位置及び姿勢に基づいて、ケーブルの一端近傍の着目点と延伸方向とを特定する。このように、定型の物体であるコネクタ４６Ａの位置及び姿勢を用いることで、不定形のケーブル４４の一端近傍の着目点と延伸方向とを精度よく特定することができる。
【００８１】
また、本実施形態では、ケーブル形状推定部３０は、ケーブル４４の一端から所定長さ（ｍ）を超える箇所の姿勢及や位置を推定する。これにより、ケーブルフォーミングに必要な情報を推定することができる。
【００８２】
また、本実施形態では、着目点更新部２８は、着目点を更新する際に、図１２（ａ）に示すような小型サーチボリュームを用いる。これにより、主軸ベクトルが通る点や主軸ベクトルとの距離が最短である点などを新たな着目点とするような場合と比べ、簡易な処理で新たな着目点を設定することができる。
【００８３】
なお、上記実施形態では、３Ｄカメラ１２を用いる場合について説明したが、これに限らず、２次元画像を撮影可能なカメラを用いることとしてもよい。この場合、２次元画像の色の濃淡や輝度等に基づいて、格子点に対応するケーブル表面の点の高さ位置を検出することで、３Ｄ点群データを生成することとしてもよい。
【００８４】
なお、上記実施形態では、ケーブル４４の両端にコネクタ４６Ａ，４６Ｂが設けられている場合について説明したが、これに限られるものではない。すなわち、ケーブル４４の両端は、プリント基板４２等にはんだ付け等されてもよい。この場合、ケーブル４４の端部がプリント基板４２の面に対してほぼ垂直に接続される場合には、図８のステップＳ３２において、ケーブル端点延伸方向計測部２２は、ケーブル端の特徴点の延伸方向をプリント基板４２の法線方向に設定してもよい。
【００８５】
なお、上記実施形態では、図２０に示すように、サーチボリューム内の３Ｄ点群データの全てを用いて楕円フィッティングを行う場合について説明したが、これに限られるものではない。例えば、図２３、図２４に示すような方法で楕円フィッティングを行うこととしてもよい。
【００８６】
図２３には、サーチボリューム（１）〜（５）が示され、図２４（ａ）〜（ｅ）には、サーチボリューム（１）〜（５）に対応する楕円フィッティングの例が示されている。
【００８７】
図２３において、（１）で示す位置にサーチボリュームがある場合、サーチボリューム内の３Ｄ点群データは、追跡しているケーブル上の点のデータであるので、図２４（ａ）において破線で示すような楕円形状データが得られる。この場合の主軸ベクトルは、図２４（ａ）においてＶ（ｓ）で示されている。次いで、図２３において（２）で示す位置にサーチボリュームが移動した場合、サーチボリューム内の３Ｄ点群データには、追跡しているケーブル上の点のデータ（●）と、交差しているケーブル上の点のデータ（△）が含まれている。この場合、楕円フィッティングの際にノイズ除去処理等を行うことにより、図２４（ｂ）に示すように、追跡しているケーブル断面の楕円フィッティングと交差しているケーブル断面の楕円フィッティングとを行うことができる。図２４（ｂ）においては、２つの楕円の特徴点のうち、ケーブル曲げ半径が大きくなる特徴点を有する方の楕円の主軸ベクトルＶ（ｓ＋１）を最新の主軸ベクトルとし、それ以外の主軸ベクトルＶ（ｋ＋１）は破棄する。
【００８８】
次いで、図２３において（３）で示す位置にサーチボリュームが移動した場合、サーチボリューム内の３Ｄ点群データには、交差しているケーブル上の点のデータ（△）のみが含まれている。この場合、３Ｄ点群データを楕円フィッティングすると図２４（ｃ）において破線で示すような楕円形状データが得られ、主軸ベクトルＶ（ｋ＋２）が得られる。ただし、この場合には、主軸ベクトルＶ（ｋ＋２）の方向が最新の主軸ベクトルＶ（ｓ＋１）と比べて極端に異なっており、曲げ半径ｒが最小曲げ半径Ｒ未満になる（Ｓ１０４：否定）ので、主軸ベクトルＶ（ｋ＋２）は破棄して、Ｖ（ｓ＋１）を最新の主軸ベクトルとする（Ｓ１０６）。また、サーチボリュームについては、主軸ベクトルＶ（ｓ＋１）の方向に沿って所定距離だけスキップさせ、図２３において（４）で示す位置に移動させる（Ｓ１１０）。
【００８９】
次いで、図２３において（４）で示す位置にサーチボリュームが移動した場合、サーチボリューム内の３Ｄ点群データには、追跡しているケーブル上の点のデータ（●）と、交差しているケーブル上の点のデータ（△）が含まれている。この場合、楕円フィッティングの際にノイズ除去処理等を行うことにより、図２４（ｄ）に示すように、追跡しているケーブル断面の楕円フィッティングと交差しているケーブル断面の楕円フィッティングとを行うことができる。図２４（ｄ）においては、２つの楕円の特徴点のうち、ケーブル曲げ半径が大きくなる特徴点を有する方の楕円の主軸ベクトルＶ（ｓ＋３）を最新の主軸ベクトルとし、それ以外の主軸ベクトルＶ（ｋ＋３）は破棄する。
【００９０】
次いで、図２３において（５）で示す位置にサーチボリュームが移動した場合、サーチボリューム内の３Ｄ点群データは、追跡しているケーブル上の点のデータであるので、図２４（ｅ）において破線で示すような楕円形状データが得られる。この場合の主軸ベクトルは、図２４（ａ）においてＶ（ｓ＋４）で示されている。この場合、主軸ベクトルＶ（ｓ＋４）の方向がＶ（ｓ＋３）と近似し、曲げ半径ｒが最小曲げ半径Ｒ以上になる（Ｓ１０４：肯定）ので、主軸ベクトルＶ（ｓ＋４）を最新の主軸ベクトルとする。
【００９１】
以上のようなノイズ除去処理等を用いた楕円フィッティングを行うこととしても、上記実施形態と同様、ケーブルが交差している場合に、正確にケーブルを追跡することができる。
【００９２】
なお、上記実施形態では、特徴点を楕円の最高点とする場合について説明したが、これに限らず、特徴点は、その他の所定条件を満たす点（例えば楕円の中心点など）であってもよい。
【００９３】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００９４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９６】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００９７】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  電子機器の部品の一部にケーブルが接続された状態で、前記ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得する取得部と、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成する設定部と、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する処理部と、
前記処理部の生成結果に基づいて把持装置に前記ケーブルを把持させ、前記把持装置を移動させて前記ケーブルを移動させる制御部と、
を備え、
前記処理部は、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、該特徴点と前記延伸方向を前記形状データの生成に使用せず、前記空間データを破棄されていない最新の延伸方向に沿って所定距離移動する、
ことを特徴とする電子機器の製造装置。
（付記２）  前記ケーブルは垂直断面の形状が円形であり、
前記所定距離は、前記垂直断面の直径と同一の距離であることを特徴とする付記１に記載の電子機器の製造装置。
（付記３）  前記処理部は、前記曲げ半径が所定の閾値未満の場合に、前記画像データから前記ケーブルと交差するケーブルのエッジ部分を特定し、特定した前記エッジ部分に基づく距離だけ前記空間データを移動する、ことを特徴とする付記１に記載の電子機器の製造装置。
（付記４）  前記処理部は、
前記曲げ半径が所定の閾値以上であった場合に特定された特徴点を記憶部に記憶しておき、
前記記憶部に記憶されている特徴点のうち、直前に記憶された２以上の特徴点と、新たに特定された前記特徴点とに基づいて前記ケーブルの曲げ半径を算出する、ことを特徴とする付記１〜３のいずれかに記載の電子機器の製造装置。
（付記５）  電子機器の部品の一部にケーブルが接続された状態で、前記ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得する取得部と、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成する設定部と、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する処理部と、
前記処理部の生成結果に基づいて把持装置に前記ケーブルを把持させ、前記把持装置を移動させて前記ケーブルを移動させる制御部と、
を備え、
前記処理部は、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、前記特徴点と前記延伸方向とを前記形状データの生成に使用しない、
ことを特徴とする電子機器の製造装置。
（付記６）  前記処理部は、
前記曲げ半径が所定の閾値以上であった場合に特定された特徴点を記憶部に記憶しておき、
前記記憶部に記憶されている特徴点のうち、直前に記憶された２以上の特徴点と、新たに特定された前記特徴点とに基づいて前記ケーブルの曲げ半径を算出する、ことを特徴とする付記５に記載の電子機器の製造装置。
（付記７）  ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得し、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成し、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する、
処理をコンピュータに実行させ、
前記ケーブルの形状データを生成する処理では、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、該特徴点と前記延伸方向を前記形状データの生成に使用せず、前記空間データを破棄されていない最新の延伸方向に沿って所定距離移動する、
ことを特徴とするケーブル形状推定プログラム。
（付記８）  前記ケーブルは垂直断面の形状が円形であり、
前記所定距離は、前記垂直断面の直径と同一の距離であることを特徴とする付記７に記載のケーブル形状推定プログラム。
（付記９）  前記ケーブルの形状データを生成する処理において、前記曲げ半径が所定の閾値未満の場合に、前記画像データから前記ケーブルと交差するケーブルのエッジ部分を特定し、特定した前記エッジ部分に基づく距離だけ前記空間データを移動する、ことを特徴とする付記７に記載のケーブル形状推定プログラム。
（付記１０）  前記ケーブルの形状データを生成する処理において、
前記曲げ半径が所定の閾値以上であった場合に特定された特徴点を記憶部に記憶しておき、
前記記憶部に記憶されている特徴点のうち、直前に記憶された２以上の特徴点と、新たに特定された前記特徴点とに基づいて前記ケーブルの曲げ半径を算出する、ことを特徴とする付記７〜９のいずれかに記載のケーブル形状推定プログラム。
（付記１１）  ケーブルを撮影した画像データから、２次元面内の格子点に対応する前記ケーブルの表面上の点の３次元位置データを取得し、
前記ケーブルの一端部近傍において前記ケーブルの延伸方向に所定幅を有する空間データを生成し、
前記空間データ内に存在する前記３次元位置データが取得された点から前記ケーブルの断面形状データを生成し、該断面形状データに基づいて前記ケーブルの延伸方向を特定するとともに前記断面形状データのうち所定条件を満たす特徴点を特定し、特定した前記特徴点と前記延伸方向に基づいて前記空間データを移動する、処理を繰り返し実行して、処理結果から前記ケーブルの形状データを生成する、
処理をコンピュータに実行させ、
前記ケーブルの形状データを生成する処理では、特定した前記断面形状データの特徴点に基づいて算出した前記ケーブルの曲げ半径が所定の閾値未満であった場合に、前記特徴点と前記延伸方向とを前記形状データの生成に使用しない、
ことを特徴とするケーブル形状推定プログラム。
【符号の説明】
【００９８】
１０  ロボット（把持装置）
１６  ロボットコントローラ（制御部）
２０  ケーブル３Ｄデータ取得部（取得部）
２４  サーチボリューム設定部（設定部）
２６  ケーブル断面・延伸方向算出部（処理部の一部）
２８  着目点更新部（処理部の一部）
３０  ケーブル形状推定部（処理部の一部）
３６  データ格納部（記憶部）
４４  ケーブル
１００  電子機器の製造装置
【図１】
2018014362.tif 000003
【図２】
2018014362.tif 000004
【図３】
2018014362.tif 000005
【図４】
2018014362.tif 000006
【図５】
2018014362.tif 000007
【図６】
2018014362.tif 000008
【図７】
2018014362.tif 000009
【図８】
2018014362.tif 000010
【図９】
2018014362.tif 000011
【図１０】
2018014362.tif 000012
【図１１】
2018014362.tif 000013
【図１２】
2018014362.tif 000014
【図１３】
2018014362.tif 000015
【図１４】
2018014362.tif 000016
【図１５】
2018014362.tif 000017
【図１６】
2018014362.tif 000018
【図１７】
2018014362.tif 000019
【図１８】
2018014362.tif 000020
【図１９】
2018014362.tif 000021
【図２０】
2018014362.tif 000022
【図２１】
2018014362.tif 000023
【図２２】
2018014362.tif 000024
【図２３】
2018014362.tif 000025
【図２４】
2018014362.tif 000026