(57)【要約】【課題】複数のワークの軟体部が交差する態様で複数のワークがワーク置き場に存在している（バラ積みされている）場合に、これらのワークの中から最も上方に位置する最上位ワークを識別することができるワーク識別方法を提供する。【解決手段】撮像によって取得した画像ＶＤに基づいて、ワーク置き場ＷＳにワーク８０が存在するか否かを判定し、ワーク８０が存在すると判定した場合に、画像ＶＤに基づいて、ワーク置き場ＷＳにおいて複数のワーク８０の軟体部８５が交差して重なる交差部ＣＰが存在するか否かを判定し、交差部ＣＰが存在すると判定した場合に、画像ＶＤに基づいて、交差している複数の軟体部８５のうち最も上方に位置する最上位軟体部８５Ｔを判別し、判別した最上位軟体部８５Ｔを有するワーク８０を、最も上方に位置する最上位ワーク８０Ｔと決定する。【選択図】図３
2020189356.tif 000002
【特許請求の範囲】
【請求項１】
自由線形状である軟体部を有するワークが複数置かれるワーク置き場を撮像し、
前記撮像によって取得した画像に基づいて、前記ワーク置き場に前記ワークが存在するか否かを判定し、
前記ワークが存在すると判定した場合に、前記画像に基づいて、前記ワーク置き場において複数の前記ワークの前記軟体部が交差して重なる交差部が存在するか否かを判定し、
前記交差部が存在すると判定した場合に、前記画像に基づいて、交差している複数の前記軟体部のうち最も上方に位置する最上位軟体部を判別し、
判別した前記最上位軟体部を有する前記ワークを、最も上方に位置する最上位ワークと決定する
ワーク識別方法であって、
前記画像に基づいて前記最上位軟体部を判別できない場合に、１または複数の前記ワークを移動させることによって前記最上位軟体部を作り出す手順を検討し、
前記検討により見いだされた前記手順にしたがって、前記最上位軟体部を作り出すために前記ワークを移動させる
ワーク識別方法。
【請求項２】
請求項１に記載のワーク識別方法であって、
前記手順にしたがって前記ワークを移動させた後、改めて前記ワーク置き場を撮像し、
前記撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを改めて判定し、
前記交差部が存在すると判定した場合に、前記改めて取得した画像に基づいて、前記最上位軟体部を改めて判別する
ワーク識別方法。
【請求項３】
請求項１または請求項２に記載のワーク識別方法であって、
前記検討により、前記最上位軟体部を作り出す手順を見いだすことができなかった場合に、前記ワーク置き場に存在する複数の前記ワークの位置関係を無作為に変更する操作を行い、
その後、改めて前記ワーク置き場を撮像し、
前記撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを改めて判定し、
前記交差部が存在すると判定した場合に、前記改めて取得した画像に基づいて、前記最上位軟体部を改めて判別する
ワーク識別方法。
【請求項４】
請求項１〜請求項３のいずれか一項に記載のワーク識別方法であって、
前記ワークは、前記軟体部と剛体部とによって構成されるワークであり、
前記最上位軟体部を判別した後であって前記最上位ワークを決定する前に、前記画像に基づいて、判別した前記最上位軟体部を有する前記ワークについて、前記軟体部及び前記剛体部を認識できるか否かを判定し、
前記軟体部及び前記剛体部を認識できると判定した場合に、前記最上位軟体部を有する前記ワークを前記最上位ワークと決定する
ワーク識別方法。
【請求項５】
請求項４に記載のワーク識別方法であって、
前記軟体部及び前記剛体部を認識できないと判定した場合に、前記ワーク置き場を撮像する角度を変えて、改めて前記ワーク置き場を撮像し、
前記撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを改めて判定し、
前記交差部が存在すると判定した場合に、前記改めて取得した画像に基づいて前記最上位軟体部を改めて判別し、
前記改めて判別した前記最上位軟体部を有する前記ワークについて、前記改めて取得した画像に基づいて、前記軟体部及び前記剛体部を認識できるか否かを改めて判定する
ワーク識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワーク識別方法に関する。
【背景技術】
【０００２】
特許文献１には、以下のようなワークピッキング方法が開示されている。具体的には、バラ積みされたワークを距離センサで三次元計測し、得られた計測結果とワークの三次元ＣＡＤモデルとを照合することによって、個別のワークの三次元位置と姿勢を認識する。その後、ロボットハンドによって、三次元位置と姿勢を認識したワークをピッキングする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６９５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、剛体部と自由線形状である軟体部とによって構成されるワークを、ピッキング対象とする場合がある。このようなワークとしては、例えば、剛体部であるコネクタと、自由線形状の軟体部であるケーブルとによって構成されるワイヤーハーネスがある。このようなワークがバラ積みされている場合は、特許文献１のピッキング方法では、適切に、個別のワークをピッキングすることができないことがあった。
【０００５】
具体的には、まず、剛体部と自由線形状である軟体部とによって構成されるワークでは、剛体部の三次元ＣＡＤデータは存在するが、自由線形状（換言すれば、不定形）である軟体部の三次元ＣＡＤデータは存在しない。このため、特許文献１のように、ワークの三次元計測データと三次元ＣＡＤデータとをマッチングさせる場合は、三次元ＣＡＤデータが存在する剛体部について、三次元計測データと三次元ＣＡＤデータとをマッチングさせて、剛体部の三次元位置と姿勢を認識することになる。従って、三次元ＣＡＤデータが存在しない軟体部については、その三次元位置と姿勢を認識することができない。このため、剛体部の三次元計測データと三次元ＣＡＤデータとのマッチングによって剛体部の三次元位置と姿勢を認識した後、当該剛体部を把持するようにして、当該剛体部を有するワークをピッキングする。
【０００６】
しかしながら、複数のワークの軟体部が交差する態様で複数のワークが存在している（バラ積みされている）場合には、三次元位置と姿勢を認識した剛体部を有するワークの軟体部の上に、他のワークの軟体部が交差する態様で重なっている場合がある。このような場合に、ロボットハンドによって、三次元位置と姿勢を認識した剛体部を把持するようにして当該剛体部を有するワークを持ち上げると、当該ワークの軟体部の上に交差する態様で軟体部が重なっているワークも一緒に持ち上げることになる。このため、ロボットハンドによって複数のワークを同時に持ち上げることになり、ロボットハンドによって把持するワークの想定重量（許容重量）を上回ることになる。その結果、ロボットハンドによるワークの把持状態を維持することができなくなり、把持したワーク及びこれと一緒に持ち上げたワークを落下させてしまう虞がある。このため、複数のワークの軟体部が交差する態様で複数のワークがワーク置き場に存在している（バラ積みされている）場合に、これらのワークの中から最も上方に位置する最上位ワークを識別する方法が求められていた。
【０００７】
本発明は、かかる現状に鑑みてなされたものであって、複数のワークの軟体部が交差する態様で複数のワークがワーク置き場に存在している（バラ積みされている）場合に、これらのワークの中から最も上方に位置する最上位ワークを識別することができるワーク識別方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様は、自由線形状である軟体部を有するワークが複数置かれるワーク置き場を撮像し、前記撮像によって取得した画像に基づいて、前記ワーク置き場に前記ワークが存在するか否かを判定し、前記ワークが存在すると判定した場合に、前記画像に基づいて、前記ワーク置き場において複数の前記ワークの前記軟体部が交差して重なる交差部が存在するか否かを判定し、前記交差部が存在すると判定した場合に、前記画像に基づいて、交差している複数の前記軟体部のうち最も上方に位置する最上位軟体部を判別し、判別した前記最上位軟体部を有する前記ワークを、最も上方に位置する最上位ワークと決定するワーク識別方法であって、前記画像に基づいて前記最上位軟体部を判別できない場合に、１または複数の前記ワークを移動させることによって前記最上位軟体部を作り出す手順を検討し、前記検討により見いだされた前記手順にしたがって、前記最上位軟体部を作り出すために前記ワークを移動させるワーク識別方法である。
【０００９】
上述のワーク識別方法では、自由線形状（線状をなす自由形状）である軟体部を有するワークを識別対象とする。このワーク識別方法によれば、複数のワークの軟体部が交差する態様で複数のワークがワーク置き場に存在している（バラ積みされている）場合において、これらのワークから、最も上方に位置する最上位ワークを識別することができる。
【００１０】
ところで、上述のワーク識別方法では、複数のワークの軟体部が交差して重なる交差部が存在すると判定した場合に、撮像によって取得した画像に基づいて、交差している複数の軟体部のうち最も上方に位置する最上位軟体部を判別する。そして、判別した最上位軟体部を有するワークを、最も上方に位置する最上位ワークと決定する。ところが、撮像によって取得した画像に基づいて、最上位軟体部を判別できない場合がある。
【００１１】
具体的には、例えば、３つのワーク（第１ワークと第２ワークと第３ワークとする）に含まれる３本の軟体部（第１軟体部と第２軟体部と第３軟体部とする）が互いに交差している場合であって、各交差部における軟体部の上下の序列に基づいて、最上位軟体部を決定することが不可能な場合である。例えば、第２軟体部が第１軟体部の上方に位置する態様で第１軟体部と第２軟体部とが交差し、第３軟体部が第２軟体部の上方に位置する態様で第２軟体部と第３軟体部とが交差し、第１軟体部が第３軟体部の上方に位置する態様で第１軟体部と第３軟体部とが交差する場合である。このような場合は、３本の軟体部の中で、他の２本の軟体部のいずれよりも上方に位置する軟体部が存在しないので、最上位軟体部を判別することができない。
【００１２】
これに対し、上述のワーク識別方法では、撮像によって取得した画像に基づいて最上位軟体部を判別できない場合に、「ワーク置き場に存在するワークのうちの１または複数のワークを移動させることによって最上位軟体部を作り出す」手順を検討する。そして、この検討によって見いだされた（導き出された）手順にしたがって、最上位軟体部を作り出すためにワークを移動させる。
【００１３】
具体的には、前述した例の場合では、例えば、第２軟体部が第１軟体部の上方に重なっている状態から、第２軟体部が第１軟体部に重ならない状態になるように、第２ワークを移動させる（第２ワークを第１ワークから離間させる）ことによって、「第３軟体部が第２軟体部の上方に位置する態様で第２軟体部と第３軟体部とが交差し、第１軟体部が第３軟体部の上方に位置する態様で第１軟体部と第３軟体部とが交差し、第１軟体部と第２軟体部とが交差しない」状態にすることができる。これにより、第１軟体部を、最上位軟体部にすることができる。
【００１４】
このように、上述のワーク識別方法では、最上位軟体部を作り出す手順を検討し、検討によって見いだされた（導き出された）手順にしたがってワークを移動させることによって、最上位軟体部を作り出す。これにより、最上位軟体部を判別することが可能となる。
【００１５】
上述のワーク識別方法は、例えば、自由線形状である軟体部を有するワークが複数置かれるワーク置き場を撮像する第１撮像ステップと、前記第１撮像ステップの撮像によって取得した画像に基づいて、前記ワーク置き場に前記ワークが存在するか否かを判定するワーク有無判定ステップと、前記ワーク有無判定ステップにおいて前記ワークが存在すると判定した場合に、前記画像に基づいて、前記ワーク置き場において前記複数のワークの前記軟体部が交差して重なる交差部が存在するか否かを判定する交差部有無判定ステップと、前記交差部有無判定ステップにおいて前記交差部が存在すると判定した場合に、前記画像に基づいて、交差している複数の前記軟体部のうち最も上方に位置する最上位軟体部を判別する最上位軟体部判別ステップと、前記最上位軟体部判別ステップにおいて判別された前記最上位軟体部を有する前記ワークを、最も上方に位置する最上位ワークと決定する最上位ワーク決定ステップと、を備えるワーク識別方法であって、前記最上位軟体部判別ステップにおいて前記最上位軟体部を判別できない場合に、１または複数の前記ワークを移動させることによって最上位軟体部を作り出す手順を検討する作り出し手順検討ステップと、前記作り出し手順検討ステップにおいて見いだされた（導き出された）前記手順にしたがって、前記最上位軟体部を作り出すために前記ワークを移動させる移動ステップと、を備えるワーク識別方法である。
【００１６】
さらに、前記のワーク識別方法であって、前記手順にしたがって前記ワークを移動させた後、改めて前記ワーク置き場を撮像し、前記撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを改めて判定し、前記交差部が存在すると判定した場合に、前記改めて取得した画像に基づいて、前記最上位軟体部を改めて判別するワーク識別方法とすると良い。
【００１７】
上述のワーク識別方法では、前述した最上位軟体部を作り出すための手順にしたがってワークを移動させた後、改めてワーク置き場を撮像する。その後、この撮像によって改めて取得した画像に基づいて、最上位軟体部を改めて判別する。これにより、ワークを移動させる前は、最上位軟体部を判別することができなかった場合でも、ワークを移動させた後に、最上位軟体部を判別することが可能となる。
【００１８】
上述のワーク識別方法は、例えば、前記のワーク識別方法であって、前記移動ステップの後、改めて前記ワーク置き場を撮像する第２撮像ステップを備え、前記第２撮像ステップの後、前記交差部有無判定ステップにおいて、前記第２撮像ステップの撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを判定し、前記交差部が存在すると判定した場合に、その後、前記最上位軟体部判別ステップにおいて、前記改めて取得した画像に基づいて、前記最上位軟体部を判別するワーク識別方法である。
【００１９】
さらに、前記いずれかのワーク識別方法であって、前記検討により、前記最上位軟体部を作り出す手順を見いだすことができなかった場合に、前記ワーク置き場に存在する複数の前記ワークの位置関係を無作為に変更する操作を行い、その後、改めて前記ワーク置き場を撮像し、前記撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを改めて判定し、前記交差部が存在すると判定した場合に、前記改めて取得した画像に基づいて、前記最上位軟体部を改めて判別するワーク識別方法とすると良い。
【００２０】
上述のワーク識別方法では、最上位軟体部を作り出す手順を検討した結果、最上位軟体部を作り出す手順を見いだす（導き出す）ことができなかった場合に、ワーク置き場に存在する複数のワークの位置関係を無作為に変更する操作を行う。具体的には、例えば、ワーク置き場に存在するワークを無作為に移動させて、複数のワークの位置関係を無作為に変更する。このような操作を行うことで、最上位軟体部が作り出されることがある。あるいは、最上位軟体部を作り出す手順を見いだす（導き出す）ことが可能となり得る。
【００２１】
上述のワーク識別方法では、上述のような操作を行った後、改めてワーク置き場を撮像し、この撮像によって改めて取得した画像に基づいて、最上位軟体部を改めて判別する。これにより、上述のような操作を行う前は、最上位軟体部を判別することができなかった場合でも、上述のような操作を行った後に、最上位軟体部を判別することが可能となり得る。あるいは、上述のような操作を行った後に、最上位軟体部を作り出す手順を見いだす（導き出す）ことが可能となり得る。最上位軟体部を作り出す手順を見いだす（導き出す）ことが可能となった場合は、見いだされた手順にしたがってワークを移動させることによって最上位軟体部を作り出すことで、最上位軟体部を判別することが可能となる。
【００２２】
上述のワーク識別方法は、例えば、前記のワーク識別方法であって、前記作り出し手順検討ステップにおいて、最上位軟体部を作り出す手順を見いだす（導き出す）ことができなかった場合に、前記ワーク置き場に存在する複数の前記ワークの位置関係を無作為に変更する操作を行う位置関係変更ステップを備え、前記位置関係変更ステップの後、前記第２撮像ステップにおいて改めて前記ワーク置き場を撮像し、その後、前記交差部有無判定ステップにおいて、前記第２撮像ステップの撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを判定し、前記交差部が存在すると判定した場合に、その後、前記最上位軟体部判別ステップにおいて、前記改めて取得した画像に基づいて、前記最上位軟体部を判別するワーク識別方法である。
【００２３】
さらに、前記いずれかのワーク識別方法であって、前記ワークは、前記軟体部と剛体部とによって構成されるワークであり、前記最上位軟体部を判別した後であって前記最上位ワークを決定する前に、前記画像に基づいて、判別した前記最上位軟体部を有する前記ワークについて、前記軟体部及び前記剛体部を認識できるか否かを判定し、前記軟体部及び前記剛体部を認識できると判定した場合に、前記最上位軟体部を有する前記ワークを前記最上位ワークと決定するワーク識別方法とすると良い。
【００２４】
上述のワーク識別方法では、剛体部と自由線形状（線状をなす自由形状）である軟体部とによって構成されるワークを識別対象とする。このワーク識別方法では、最上位軟体部を判別した後、判別した最上位軟体部を有するワークについて、軟体部及び剛体部を認識できるか否かを判定する。ここで、最上位軟体部を有するワークについて軟体部及び剛体部を認識できる場合とは、例えば、取得した画像に軟体部の全体及び剛体部の全体が現れており、取得した画像において軟体部の全体及び剛体部の全体を確認できる場合である。このように、判別した最上位軟体部を有するワークにおいて軟体部及び剛体部を認識することで、当該ワークが剛体部と軟体部とによって構成された（剛体部と軟体部とが一体となった）ワークであることを確認できる。このようにすることで、最上位ワークをより適切に識別することができる。
【００２５】
上述のワーク識別方法は、例えば、前記いずれかのワーク識別方法であって、前記ワークは、前記軟体部と剛体部とによって構成されるワークであり、前記最上位軟体部判別ステップの後であって前記最上位ワーク決定ステップの前に、前記画像に基づいて、前記最上位軟体部判別ステップにおいて判別された前記最上位軟体部を有する前記ワークについて、前記軟体部及び前記剛体部を認識できるか否かを判定するワーク認識可否判定ステップを備え、前記ワーク認識可否判定ステップにおいて前記軟体部及び前記剛体部を認識できると判定した場合に、前記最上位ワーク決定ステップにおいて、前記最上位軟体部を有する前記ワークを前記最上位ワークと決定するワーク識別方法である。
【００２６】
さらに、前記のワーク識別方法であって、前記軟体部及び前記剛体部を認識できないと判定した場合に、前記ワーク置き場を撮像する角度を変えて、改めて前記ワーク置き場を撮像し、前記撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを改めて判定し、前記交差部が存在すると判定した場合に、前記改めて取得した画像に基づいて前記最上位軟体部を改めて判別し、前記改めて判別した前記最上位軟体部を有する前記ワークについて、前記改めて取得した画像に基づいて、前記軟体部及び前記剛体部を認識できるか否かを改めて判定するワーク識別方法とすると良い。
【００２７】
上述のワーク識別方法では、取得している画像に基づいて、最上位軟体部を有するワークについて軟体部及び剛体部を認識できないと判定した場合、当該判定の基にした（当該判定に用いた）前記画像を撮像した角度（ワーク置き場を撮像する角度）とは異なる角度で、改めてワーク置き場を撮像する。そして、この撮像によって改めて取得した画像に基づいて、最上位軟体部を改めて判別し、改めて判別した最上位軟体部を有するワークについて、軟体部及び剛体部を認識できるか否かを改めて判定する。これにより、先に取得した画像に基づいて、最上位軟体部を有するワークについて軟体部及び剛体部を認識することができなかった場合でも、改めて取得した画像に基づいて、最上位軟体部を有するワークについて軟体部及び剛体部を認識することが可能となる。
【００２８】
上述のワーク識別方法は、例えば、前記のワーク識別方法であって、前記ワーク認識可否判定ステップにおいて前記軟体部及び前記剛体部を認識できないと判定した場合に、前記ワーク置き場を撮像する角度を変えて、改めて前記ワーク置き場を撮像する第３撮像ステップを備え、前記第３撮像ステップの後、前記交差部有無判定ステップにおいて、前記第３撮像ステップの撮像によって改めて取得した画像に基づいて、前記ワーク置き場において前記交差部が存在するか否かを判定し、前記交差部が存在すると判定した場合に、その後、前記最上位軟体部判別ステップにおいて、前記改めて取得した画像に基づいて前記最上位軟体部を判別し、その後、前記ワーク認識可否判定ステップにおいて、前記第３撮像ステップの撮像によって改めて取得した画像に基づいて、前記最上位軟体部判別ステップにおいて判別された前記最上位軟体部を有する前記ワークについて、改めて、前記軟体部及び前記剛体部を認識できるか否かを判定するワーク識別方法である。
【図面の簡単な説明】
【００２９】
【図１】実施形態にかかる把持装置の構成図である。
【図２】ワークの平面図である。
【図３】実施形態にかかるワーク識別方法の流れを示すフローチャートである。
【図４】撮像によって取得した画像の一例である。
【図５】撮像によって取得した画像の他の例である。
【図６】実施形態にかかるワーク識別方法を説明する図である。
【図７】実施形態にかかるワーク識別方法を説明する他の図である。
【図８】撮像によって取得した画像の他の例である。
【発明を実施するための形態】
【００３０】
次に、本発明の実施形態について、図面を参照しつつ説明する。図１は、実施形態にかかる把持装置１の構成図である。把持装置１は、図１に示すように、把持ロボット１０と、３Ｄビジョンセンサ２０と、２Ｄビジョンセンサ３０と、画像分析部４０と、ロボットコントローラ５０と、３Ｄビジョンコントローラ６０と、フレーム７０とを備える。
【００３１】
この把持装置１は、ワーク置き場ＷＳであるワーク収容箱９０の内部に置かれている（バラ積みされている）１または複数のワーク８０を、１つずつ順に把持してワーク収容箱９０内から取り出す装置である。なお、本実施形態のワーク８０は、自由線形状（換言すれば、不定形の線形状）である軟体部（ケーブル８５）を有する。より具体的には、本実施形態のワーク８０は、図２に示すように、剛体部であるコネクタ８１，８２と自由線形状の軟体部であるケーブル８５とによって構成されたワイヤーハーネスである。
【００３２】
把持ロボット１０は、図１に示すように、ワーク８０を把持する把持部１１と、この把持部１１に連結された多関節アーム部１２とを備える。この把持ロボット１０は、把持部１１によって、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の剛体部（コネクタ８１またはコネクタ８２）を把持し、把持したワーク８０を、ワーク置き場ＷＳ（ワーク収容箱９０の内部）から取り出す。なお、本実施形態では、多関節アーム部１２を、安川電機社製の多関節ロボット（YASUKAWA GP-7）により構成している。
【００３３】
３Ｄビジョンセンサ２０は、公知の３Ｄ（三次元）ビジョンセンサであり、フレーム７０の天井部に取り付けられている。この３Ｄビジョンセンサ２０は、ワーク置き場ＷＳであるワーク収容箱９０の内部に位置するワーク８０の三次元計測データ（三次元画像データ）を生成する。なお、本実施形態では、３Ｄビジョンセンサ２０を、Ｃａｎｏｎ社製のマシンビジョン（RV500）により構成している。
【００３４】
２Ｄビジョンセンサ３０は、公知の２Ｄ（二次元）ビジョンセンサであり、把持ロボット１０の先端部に取り付けられている。この２Ｄビジョンセンサ３０は、ワーク置き場ＷＳであるワーク収容箱９０の内部を撮像して、ワーク収容箱９０の内部の二次元画像ＶＤ（二次元画像データ、図４、図５、及び図８参照）を生成する。なお、ワーク収容箱９０は、上方（図４、図５、及び図８において紙面手前側）に開口する矩形状の箱である。従って、２Ｄビジョンセンサ３０は、ワーク収容箱９０の上方からワーク収容箱９０の内部を撮像する。なお、図４、図５、及び図８の二次元画像ＶＤは、２Ｄビジョンセンサ３０によって、ワーク収容箱９０の開口の真上から鉛直方向にワーク収容箱９０の内部を撮像して生成された二次元画像ＶＤである。
【００３５】
画像分析部４０は、ＡＩ（人工知能）等を構成するコンピュータであり、２Ｄビジョンセンサ３０によって生成されたワーク８０の二次元画像ＶＤ（二次元画像データ）を取得し、これを分析する。具体的には、画像分析部４０は、例えば、２Ｄビジョンセンサ３０によって生成された二次元画像ＶＤ（二次元画像データ）を取得し、取得した二次元画像ＶＤ（図４及び図５参照）に基づいて、ワーク置き場ＷＳであるワーク収容箱９０の内部にワーク８０が存在するか否かを判定する。
【００３６】
さらに、画像分析部４０は、ワーク８０が存在すると判定した場合に、取得した二次元画像ＶＤに基づいて、ワーク置き場ＷＳ（ワーク収容箱９０の内部）において、複数のワーク８０のケーブル８５（軟体部）が交差して重なる交差部ＣＰ（図４、図５、及び図８参照）が存在するか否かを判定する。さらに、画像分析部４０は、交差部ＣＰが存在すると判定した場合に、取得した二次元画像ＶＤに基づいて、交差している複数のケーブル８５（軟体部）のうち最も上方（図４、図５、及び図８において最も紙面手前側）に位置する最上位ケーブル８５Ｔ（最上位軟体部）を判別する。
【００３７】
図４に示す例では、３つのワーク８０（第１ワーク８０Ａと第２ワーク８０Ｂと第３ワーク８０Ｃとする）が存在するワーク置き場ＷＳ（ワーク収容箱９０の内部）において、第１ワーク８０Ａのケーブル８５（第１ケーブル８５Ａとする）が第３ワーク８０Ｃのケーブル８５（第３ケーブル８５Ｃとする）の上方に位置する態様で、第１ケーブル８５Ａと第３ケーブル８５Ｃとが交差する交差部ＣＰ（第１交差部ＣＰ１とする）と、第２ワーク８０Ｂのケーブル８５（第２ケーブル８５Ｂとする）が第１ケーブル８５Ａの上方に位置する態様で、第１ケーブル８５Ａと第２ケーブル８５Ｂとが交差する交差部ＣＰ（第２交差部ＣＰ２とする）とが存在している。この場合には、第２ワーク８０Ｂの第２ケーブル８５Ｂ（軟体部）が、最上位ケーブル８５Ｔ（最上位軟体部）であると判別することができる。
【００３８】
また、図８に示す例では、３つのワーク８０（第１ワーク８０Ａと第２ワーク８０Ｂと第３ワーク８０Ｃ）が存在するワーク置き場ＷＳ（ワーク収容箱９０の内部）において、第１ワーク８０Ａの第１ケーブル８５Ａが第３ワーク８０Ｃの第３ケーブル８５Ｃの上方に位置する態様で、第１ケーブル８５Ａと第３ケーブル８５Ｃとが交差する交差部ＣＰ（第１交差部ＣＰ１とする）と、第３ケーブル８５Ｃが第２ワーク８０Ｂの第２ケーブル８５Ｂの上方に位置する態様で、第３ケーブル８５Ｃと第２ケーブル８５Ｂとが交差する交差部ＣＰ（第２交差部ＣＰ２とする）とが存在している。この場合には、第１ワーク８０Ａの第１ケーブル８５Ａ（軟体部）が、最上位ケーブル８５Ｔ（最上位軟体部）であると判別することができる。
【００３９】
なお、画像分析部４０には、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に複数のワーク８０が様々な位置に配置されている複数の配置パターンの画像と、それぞれの配置パターンにおける最上位ケーブル８５Ｔ（最上位軟体部）との組み合わせデータを、予め記憶（教示）させて学習させてある。このような画像分析部４０は、取得した二次元画像ＶＤ（図５及び図８参照）に基づいて、交差している複数のケーブル８５（軟体部）から最上位ケーブル８５Ｔ（最上位軟体部）を判別（識別）する処理を行うことが可能となっている。
【００４０】
さらに、画像分析部４０は、取得した二次元画像ＶＤに基づいて、判別した最上位ケーブル８５Ｔを有するワーク８０（図８に示す例では、第１ワーク８０Ａ）について、軟体部であるケーブル８５及び剛体部であるコネクタ８１，８２を認識できるか否かを判定する。具体的には、例えば、取得した二次元画像ＶＤに、最上位ケーブル８５Ｔを有するワーク８０にかかるケーブル８５（軟体部）の全体及びコネクタ８１，８２（剛体部）の全体が現れており、取得した二次元画像ＶＤにおいて、最上位ケーブル８５Ｔを有するワーク８０にかかるケーブル８５（軟体部）の全体及びコネクタ８１，８２（剛体部）の全体を確認できる場合には、判別した最上位ケーブル８５Ｔを有するワーク８０について、軟体部であるケーブル８５（最上位ケーブル８５Ｔ）及び剛体部であるコネクタ８１，８２を認識できると判定する（図６参照）。
【００４１】
このように、判別した最上位ケーブル８５Ｔ（最上位軟体部）を有するワーク８０において、ケーブル８５（軟体部）及びコネクタ８１，８２（剛体部）を認識することで、当該ワーク８０が、剛体部であるコネクタ８１，８２と軟体部であるケーブル８５とによって構成されたワイヤーハーネス（換言すれば、剛体部であるコネクタ８１，８２と軟体部であるケーブル８５とが一体となったワイヤーハーネス）であることを確認できる。
【００４２】
一方、取得した二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔを有するワーク８０について、軟体部であるケーブル８５及び剛体部であるコネクタ８１，８２を認識できないと判定した場合、画像分析部４０は、２Ｄビジョンセンサ３０によって、当該判定の基にした（当該判定に用いた）二次元画像ＶＤを撮像した角度（ワーク置き場ＷＳを撮像する角度）とは異なる角度で、改めてワーク置き場ＷＳを撮像させる。具体的には、例えば、当該判定の基にした二次元画像ＶＤが、ワーク収容箱９０の開口の真上から鉛直方向にワーク収容箱９０の内部を撮像して生成された二次元画像ＶＤであった場合は、ワーク収容箱９０の開口の上方から鉛直方向に対して斜めの方向に２Ｄビジョンセンサ３０を向けて（撮像する角度を変えて）、改めてワーク置き場ＷＳを撮像させる。
【００４３】
さらに、画像分析部４０は、この撮像によって改めて取得した二次元画像ＶＤに基づいて、改めて最上位ケーブル８５Ｔを判別し、判別した最上位ケーブル８５Ｔを有するワーク８０について、ケーブル８５（軟体部）及びコネクタ８１，８２（剛体部）を認識できるか否かを改めて判定する。これにより、先に取得した二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔを有するワーク８０についてケーブル８５（軟体部）及びコネクタ８１，８２（剛体部）を認識することができなかった場合でも、改めて取得した二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔを有するワーク８０についてケーブル８５（軟体部）及びコネクタ８１，８２（剛体部）を認識することが可能となる。
【００４４】
さらに、画像分析部４０は、軟体部であるケーブル８５（最上位ケーブル８５Ｔ）及び剛体部であるコネクタ８１，８２を認識できると判定した場合に、最上位ケーブル８５Ｔを有するワーク８０を最上位ワーク８０Ｔと決定する。なお、本実施形態では、画像分析部４０のソフトウエアとして、ＣＯＧＮＥＸ社製のVisionPro ViDiを用いている。
【００４５】
３Ｄビジョンコントローラ６０は、３Ｄビジョンセンサ２０によって生成された三次元計測データ（三次元画像データ）を取得して処理する装置である。この３Ｄビジョンコントローラ６０には、予め、ワーク８０のコネクタ８１，８２（剛体部）の三次元ＣＡＤデータを記憶させている。この３Ｄビジョンコントローラ６０は、例えば、３Ｄビジョンセンサ２０によって生成されたワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の三次元計測データ（三次元画像データ）を取得し、この取得した三次元計測データ（三次元画像データ）から選択した剛体部（コネクタ８１またはコネクタ８２）の三次元計測データと、剛体部（コネクタ８１またはコネクタ８２）の三次元ＣＡＤデータとをマッチングさせることによって、ワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢を認識（検出）する。
【００４６】
ロボットコントローラ５０は、把持ロボット１０の動きを制御する装置である。このロボットコントローラ５０は、画像分析部４０による処理結果、または、３Ｄビジョンコントローラ６０による処理結果に基づいて、把持ロボット１０の動きを制御する。具体的には、例えば、ロボットコントローラ５０は、３Ｄビジョンコントローラ６０によって認識（検出）されたワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢に基づいて、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御することによって、把持部１１によってワーク８０の剛体部（コネクタ８１またはコネクタ８２）を把持させて、このワーク８０をワーク置き場ＷＳ（ワーク収容箱９０の内部）から取り出させる制御を行う。
【００４７】
ところで、前述したように、画像分析部４０は、複数のワーク８０のケーブル８５（軟体部）が交差して重なる交差部ＣＰが存在すると判定した場合に、撮像によって取得した二次元画像ＶＤに基づいて、交差している複数のケーブル８５（軟体部）の中で最も上方に位置する最上位ケーブル８５Ｔ（最上位軟体部）を判別する処理を行う。ところが、撮像によって取得した二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔ（最上位軟体部）を判別できない場合がある。
【００４８】
具体的には、例えば、図５に示す例のように、第２ワーク８０Ｂの第２ケーブル８５Ｂ（第２軟体部）が第１ワーク８０Ａの第１ケーブル８５Ａ（第１軟体部）の上方に位置する態様で、第１ケーブル８５Ａと第２ケーブル８５Ｂとが交差する交差部ＣＰ（第３交差部ＣＰ３とする）と、第３ワーク８０Ｃの第３ケーブル８５Ｃ（第３軟体部）が第２ケーブル８５Ｂの上方に位置する態様で、第２ケーブル８５Ｂと第３ケーブル８５Ｃとが交差する交差部ＣＰ（第２交差部ＣＰ２とする）と、第１ケーブル８５Ａが第３ケーブル８５Ｃの上方に位置する態様で、第１ケーブル８５Ａと第３ケーブル８５Ｃとが交差する交差部ＣＰ（第１交差部ＣＰ１とする）とが存在する場合である。このような場合は、３本のケーブル８５（第１ケーブル８５Ａと第２ケーブル８５Ｂと第３ケーブル８５Ｃ）の中で、他の２本のケーブル８５のいずれよりも上方に位置するケーブル８５が存在しない（すなわち、最上位ケーブル８５Ｔが存在しない）ので、最上位ケーブル８５Ｔを判別することができない。
【００４９】
これに対し、画像分析部４０は、撮像によって取得した二次元画像ＶＤに基づいて最上位ケーブル８５Ｔ（最上位軟体部）を判別できない場合、「ワーク置き場ＷＳに存在するワーク８０のうちの１または複数のワーク８０を移動させることによって最上位ケーブル８５Ｔ（最上位軟体部）を作り出す」ための手順を検討する。さらに、画像分析部４０は、最上位ケーブル８５Ｔ（最上位軟体部）を作り出すために、ロボットコントローラ５０に対して、この検討によって見いだされた（導き出された）手順にしたがってワーク８０を移動させる旨の信号を送信する。
【００５０】
この信号を受信したロボットコントローラ５０は、３Ｄビジョンコントローラ６０に対し、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢を認識（検出）させる旨の信号を送信する。この信号を受信した３Ｄビジョンコントローラ６０は、３Ｄビジョンセンサ２０によって、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の三次元計測データ（三次元画像データ）を生成させる。
【００５１】
さらに、３Ｄビジョンコントローラ６０は、３Ｄビジョンセンサ２０によって生成されたワーク置き場ＷＳに位置するワーク８０の三次元計測データ（三次元画像データ）を取得し、この取得した三次元計測データ（三次元画像データ）から、移動させるワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元計測データを選択する。さらに、３Ｄビジョンコントローラ６０は、選択した剛体部（コネクタ８１またはコネクタ８２）の三次元計測データと、当該剛体部（コネクタ８１またはコネクタ８２）の三次元ＣＡＤデータとをマッチングさせることによって、移動させるワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢を認識（検出）する。
【００５２】
さらに、３Ｄビジョンコントローラ６０は、移動させるワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢の認識（検出）結果を、ロボットコントローラ５０に送信する。その後、ロボットコントローラ５０は、３Ｄビジョンコントローラ６０によって認識（検出）されたワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢に基づいて、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御することによって、把持部１１によって移動させるワーク８０の剛体部（コネクタ８１またはコネクタ８２）を把持させて、画像分析部４０から受信した手順にしたがって当該ワーク８０を移動させる。
【００５３】
具体的には、図５に示す例の場合は、画像分析部４０において、例えば、第２ケーブル８５Ｂが第１ケーブル８５Ａの上方に位置する態様で交差している状態から、第２ケーブル８５Ｂが第１ケーブル８５Ａと交差しない状態になるように、第２ワーク８０Ｂを移動させる（第２ワーク８０Ｂを第１ワーク８０Ａから離間させる）ことによって、第１ケーブル８５Ａを最上位ケーブル８５Ｔ（最上位軟体部）にする（例えば、図８に示す状態にする）ことができることが見いだされる。従って、画像分析部４０は、「第２ケーブル８５Ｂが第１ケーブル８５Ａと交差しない状態になるように、第２ワーク８０Ｂを移動させて（第２ワーク８０Ｂを第１ワーク８０Ａから離間させて）、第１ケーブル８５Ａを最上位ケーブル８５Ｔにする手順」を、最上位ケーブル８５Ｔ（最上位軟体部）を作り出す手順として、ロボットコントローラ５０に送信する。この信号を受信したロボットコントローラ５０は、３Ｄビジョンコントローラ６０に対し、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢を認識（検出）させる旨の信号を送信する。
【００５４】
この信号を受信した３Ｄビジョンコントローラ６０は、３Ｄビジョンセンサ２０によって、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の三次元計測データ（三次元画像データ）を生成させる。さらに、３Ｄビジョンコントローラ６０は、３Ｄビジョンセンサ２０によって生成されたワーク置き場ＷＳに位置するワーク８０の三次元計測データを取得し、この取得した三次元計測データから、移動させる第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元計測データを選択する。さらに、３Ｄビジョンコントローラ６０は、選択した剛体部（例えば、コネクタ８２）の三次元計測データと、当該剛体部（例えば、コネクタ８２）の三次元ＣＡＤデータとをマッチングさせることによって、移動させる第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元位置と姿勢を認識（検出）する。
【００５５】
さらに、３Ｄビジョンコントローラ６０は、移動させる第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元位置と姿勢の認識（検出）結果を、ロボットコントローラ５０に送信する。その後、ロボットコントローラ５０は、３Ｄビジョンコントローラ６０によって認識（検出）された第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元位置と姿勢に基づいて、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御することによって、把持部１１によって第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）を把持させて、画像分析部４０から受信した手順にしたがって第２ワーク８０Ｂを移動させる（図６及び図７参照）。
【００５６】
なお、図６は、ワーク置き場ＷＳ（ワーク収容箱９０の内部）の平面図（上面図）であり、移動させる前の第２ワーク８０Ｂを二点鎖線で示し、移動させた後の第２ワーク８０Ｂを実線で示している。また、図７は、第２ワーク８０Ｂを移動させた後のワーク置き場ＷＳ（ワーク収容箱９０の内部）の平面図（上面図）である。図６に矢印で示すように、画像分析部４０から受信した手順にしたがって第２ワーク８０Ｂを移動させることで、第２ケーブル８５Ｂが第１ケーブル８５Ａの上方に位置する態様で交差している状態（二点鎖線で示す状態）から、第２ケーブル８５Ｂが第１ケーブル８５Ａと交差しない状態（実線で示す状態）にすることができる。これにより、図７に示すように、第１ケーブル８５Ａを最上位ケーブル８５Ｔ（最上位軟体部）にすることができるので、最上位ケーブル８５Ｔ（最上位軟体部）を判別することが可能となる。
【００５７】
さらに、画像分析部４０は、検討した手順にしたがって第２ワーク８０Ｂを移動させた後、改めて、２Ｄビジョンセンサ３０によってワーク置き場ＷＳ（ワーク収容箱９０の内部）を撮像させて、ワーク収容箱９０の内部の二次元画像ＶＤ（図８参照）を新たに生成させる。その後、画像分析部４０は、新たに生成された二次元画像ＶＤ（図８参照）を取得し、この二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔ（最上位軟体部）を改めて判別する。図８に示す例では、第１ケーブル８５Ａが、最上位ケーブル８５Ｔ（最上位軟体部）として判別される。
【００５８】
また、画像分析部４０は、最上位ケーブル８５Ｔ（最上位軟体部）を作り出す手順を検討した結果、最上位ケーブル８５Ｔを作り出す手順を見いだすことができなかった場合に、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在する複数のワーク８０の位置関係を無作為に変更する操作を、把持ロボット１０に行わせる。具体的には、画像分析部４０は、最上位ケーブル８５Ｔを作り出す手順を見いだすことができなかった場合、ワーク置き場ＷＳに存在するワーク８０を無作為に移動させる旨の信号をロボットコントローラ５０に送信する。この信号を受信したロボットコントローラ５０は、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御することによって、例えば、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在するワーク８０を無作為に移動させる。
【００５９】
具体的には、例えば、把持ロボット１０によってワーク収容箱９０を揺れ動かすことによって、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在するワーク８０を無作為に移動させる。あるいは、把持ロボット１０によってワーク収容箱９０の内部を掻き混ぜるようにして、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在するワーク８０を無作為に移動させる。これにより、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在する複数のワーク８０の位置関係を無作為に変更する。このような操作を行うことで、最上位ケーブル８５Ｔ（最上位軟体部）が作り出され得る。あるいは、最上位ケーブル８５Ｔを作り出す手順を見いだす（導き出す）ことが可能となり得る。
【００６０】
さらに、画像分析部４０は、上述のような操作を行わせた後、２Ｄビジョンセンサ３０によって改めてワーク置き場ＷＳを撮像させる。さらに、画像分析部４０は、この撮像によって改めて取得した二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔ（最上位軟体部）を改めて判別する。これにより、上述のような操作を行う前は、最上位ケーブル８５Ｔを判別することができなかった場合でも、上述のような操作を行った後に、最上位ケーブル８５Ｔを判別することが可能となり得る。あるいは、上述のような操作を行った後に、最上位ケーブル８５Ｔを作り出す手順を見いだす（導き出す）ことが可能となり得る。最上位ケーブル８５Ｔを作り出す手順を見いだす（導き出す）ことが可能となった場合は、前述したように、見いだされた手順にしたがってワーク８０を移動させることによって最上位ケーブル８５Ｔを作り出すことで、最上位ケーブル８５Ｔを判別することが可能となる。
【００６１】
次に、本実施形態のワーク識別方法について説明する。図３は、実施形態にかかるワーク識別方法の流れを示すフローチャートである。まず、ステップＳ１（撮像ステップ）において、２Ｄビジョンセンサ３０によって、ワーク置き場ＷＳであるワーク収容箱９０の内部を撮像して、ワーク収容箱９０の内部の二次元画像ＶＤ（二次元画像データ、図４及び図５参照）を生成する。次いで、ステップＳ２（ワーク有無判定ステップ）において、画像分析部４０は、２Ｄビジョンセンサ３０によって生成された二次元画像ＶＤ（二次元画像データ）を取得し、取得した二次元画像ＶＤ（図４及び図５参照）に基づいて、ワーク置き場ＷＳであるワーク収容箱９０の内部にワーク８０が存在するか否かを判定する。
【００６２】
ステップＳ２において、ワーク置き場ＷＳ（ワーク収容箱９０の内部）にワーク８０が存在しない（ＮＯ）と判定した場合、ステップＳ９に進み、画像分析部４０は、ワーク収容箱９０の内部が空であると判定し、一連のワーク識別処理を終了する。一方、ワーク置き場ＷＳ（ワーク収容箱９０の内部）にワーク８０が存在すると判定した場合は、ステップＳ３（交差部有無判定ステップ）に進み、画像分析部４０は、取得した二次元画像ＶＤに基づいて、ワーク置き場ＷＳ（ワーク収容箱９０の内部）において、複数のワーク８０のケーブル８５（軟体部）が交差して重なる交差部ＣＰ（図４及び図５参照）が存在するか否かを判定する。
【００６３】
ステップＳ３において、交差部ＣＰが存在しない（ＮＯ）と判定した場合は、後述するステップＳ６に進む。一方、ステップＳ３において、交差部ＣＰが存在する（ＹＥＳ）と判定した場合は、ステップＳ４（最上位軟体部判別ステップ）に進み、画像分析部４０は、取得した二次元画像ＶＤ（図４及び図５参照）に基づいて、交差している複数のケーブル８５（軟体部）のうち最も上方（図４及び図５において最も紙面手前側）に位置する最上位ケーブル８５Ｔ（最上位軟体部）を判別することが可能であるか否かを判定する。
【００６４】
ここで、取得した二次元画像ＶＤが図４に示す二次元画像ＶＤである場合について、以下に説明する。図４に示す二次元画像ＶＤでは、第２ワーク８０Ｂの第２ケーブル８５Ｂ（軟体部）が、最上位ケーブル８５Ｔ（最上位軟体部）であると判別することができる。従って、ステップＳ４において、画像分析部４０は、最上位ケーブル８５Ｔ（最上位軟体部）を判別することが可能である（ＹＥＳ）と判定する。次いで、ステップＳ５（最上位軟体部判別ステップ）において、画像分析部４０は、第２ケーブル８５Ｂを、最上位ケーブル８５Ｔ（最上位軟体部）として確定する。
【００６５】
次に、ステップＳ６（ワーク認識可否判定ステップ）において、画像分析部４０は、取得した図４に示す二次元画像ＶＤに基づいて、判別（確定）した最上位ケーブル８５Ｔ（第２ケーブル８５Ｂ）を有する第２ワーク８０Ｂについて、軟体部である第２ケーブル８５Ｂ及び剛体部であるコネクタ８１，８２を認識できるか否かを判定する。
【００６６】
具体的には、例えば、取得した図４に示す二次元画像ＶＤに、最上位ケーブル８５Ｔ（第２ケーブル８５Ｂ）を有する第２ワーク８０Ｂについて、第２ケーブル８５Ｂ（軟体部）の全体及びコネクタ８１，８２（剛体部）の全体が現れており、取得した図４に示す二次元画像ＶＤにおいて、第２ケーブル８５Ｂ（軟体部）の全体及びコネクタ８１，８２（剛体部）の全体を確認できる場合には、最上位ケーブル８５Ｔを有する第２ワーク８０Ｂにおいて、軟体部である第２ケーブル８５Ｂ（最上位ケーブル８５Ｔ）及び剛体部であるコネクタ８１，８２を認識できる（ＹＥＳ）と判定する。
【００６７】
なお、ステップＳ６において、最上位ケーブル８５Ｔを有するワーク８０について、ケーブル８５及びコネクタ８１，８２のいずれかを認識することができない（ＮＯ）と判定した場合は、ステップＳ１０（第３撮像ステップ）に進み、画像分析部４０は、２Ｄビジョンセンサ３０によって、当該判定の基にした二次元画像ＶＤを撮像した角度（ワーク置き場ＷＳを撮像する角度）とは異なる角度で、改めてワーク置き場ＷＳを撮像させる。その後、ステップＳ３に戻り、画像分析部４０は、この撮像によって改めて取得した二次元画像ＶＤに基づいて、ワーク置き場ＷＳにおいて、複数のワーク８０のケーブル８５（軟体部）が交差して重なる交差部ＣＰが存在するか否かを判定する。
【００６８】
ステップＳ６において、最上位ケーブル８５Ｔを有するワーク８０について、ケーブル８５及びコネクタ８１，８２を認識することができる（ＹＥＳ）と判定した場合は、ステップＳ７（最上位ワーク決定ステップ）において、画像分析部４０は、最上位ケーブル８５Ｔを有するワーク８０を、最上位ワーク８０Ｔとして決定する。具体的には、例えば、図４に示す例では、画像分析部４０は、取得した図４に示す二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔを有する第２ワーク８０Ｂについて、軟体部である第２ケーブル８５Ｂ（最上位ケーブル８５Ｔ）及び剛体部であるコネクタ８１，８２を認識できる（ＹＥＳ）と判定し、その後、ステップＳ７において、最上位ケーブル８５Ｔ（第２ケーブル８５Ｂ）を有する第２ワーク８０Ｂを、最上位ワーク８０Ｔとして決定する。
【００６９】
一方、ステップＳ４において、最上位ケーブル８５Ｔ（最上位軟体部）を判別することができない（ＮＯ）と判定した場合、ステップＳ１１（作り出し手順検討ステップ）に進み、「ワーク置き場ＷＳに存在するワーク８０のうちの１または複数のワーク８０を移動させることによって最上位ケーブル８５Ｔ（最上位軟体部）を作り出す」手順を検討する。
【００７０】
ここで、取得した二次元画像ＶＤが図５に示す二次元画像ＶＤである場合について、以下に説明する。図５に示す二次元画像ＶＤでは、３本のケーブル８５（第１ケーブル８５Ａと第２ケーブル８５Ｂと第３ケーブル８５Ｃ）の中で、他の２本のケーブル８５のいずれよりも上方に位置するケーブル８５が存在しない（すなわち、最上位ケーブル８５Ｔが存在しない）ので、最上位ケーブル８５Ｔを判別することができない。従って、ステップＳ４において、画像分析部４０は、最上位ケーブル８５Ｔ（最上位軟体部）を判別することができない（ＮＯ）と判定する。
【００７１】
ステップＳ４において最上位ケーブル８５Ｔを判別することができない（ＮＯ）と判定した場合は、ステップＳ１１に進み、画像分析部４０は、「ワーク置き場ＷＳに存在するワーク８０のうちの１または複数のワーク８０を移動させることによって最上位ケーブル８５Ｔ（最上位軟体部）を作り出す」手順を検討する。次いで、ステップＳ１２において、画像分析部４０は、最上位ケーブル８５Ｔ（最上位軟体部）を作り出すことが可能であるか否かを判定する。
【００７２】
ステップＳ１１において、最上位ケーブル８５Ｔを作り出す手順を見いだすことができた場合には、画像分析部４０は、ステップＳ１２において、最上位ケーブル８５Ｔを作り出すことが可能である（ＹＥＳ）と判定する。一方、ステップＳ１１において最上位ケーブル８５Ｔを作り出す手順を見いだすことができなかった場合には、画像分析部４０は、ステップＳ１２において最上位ケーブル８５Ｔを作り出すことができない（ＮＯ）と判定する。
【００７３】
具体的には、図５に示す二次元画像ＶＤに基づいて、例えば、第２ケーブル８５Ｂが第１ケーブル８５Ａの上方に位置する態様で交差している状態から、第２ケーブル８５Ｂが第１ケーブル８５Ａと交差しない状態になるように、第２ワーク８０Ｂを移動させる（第２ワーク８０Ｂを第１ワーク８０Ａから離間させる）ことによって、第１ケーブル８５Ａを最上位ケーブル８５Ｔ（最上位軟体部）にする（図６参照）ことを見いだすことができる。ステップＳ１１において、このような手順を画像分析部４０において見いだすことができた場合は、ステップＳ１２において、画像分析部４０は、最上位ケーブル８５Ｔを作り出すことが可能である（ＹＥＳ）と判定する。
【００７４】
ステップＳ１２において最上位ケーブル８５Ｔを作り出すことが可能である（ＹＥＳ）と判定された場合は、ステップＳ１３（移動ステップ）に進み、画像分析部４０において見いだされた手順にしたがってワーク８０を移動させる。具体的には、例えば、図５に示す状態から、第２ケーブル８５Ｂが第１ケーブル８５Ａと交差しない状態になるように、第２ワーク８０Ｂを移動させる（第２ワーク８０Ｂを第１ワーク８０Ａから離間させる）ことによって、第１ケーブル８５Ａを最上位ケーブル８５Ｔ（最上位軟体部）にする（図６参照）
【００７５】
より具体的には、まず、３Ｄビジョンセンサ２０が、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置するワーク８０の三次元計測データ（三次元画像データ）を生成する。その後、３Ｄビジョンコントローラ６０が、３Ｄビジョンセンサ２０によって生成されたワーク置き場ＷＳに位置するワーク８０の三次元計測データを取得し、この取得した三次元計測データから、移動させる第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元計測データを選択する。さらに、３Ｄビジョンコントローラ６０は、選択した剛体部（例えば、コネクタ８２）の三次元計測データと、当該剛体部（例えば、コネクタ８２）の三次元ＣＡＤデータとをマッチングさせることによって、移動させる第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元位置と姿勢を認識（検出）する。
【００７６】
次に、ロボットコントローラ５０が、３Ｄビジョンコントローラ６０によって認識（検出）された第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）の三次元位置と姿勢に基づいて、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御することによって、把持部１１によって第２ワーク８０Ｂの剛体部（例えば、コネクタ８２）を把持させて、画像分析部４０によって検討された手順にしたがって第２ワーク８０Ｂを移動させる（図６及び図７参照）。
【００７７】
次いで、ステップＳ１４（第２撮像ステップ）に進み、２Ｄビジョンセンサ３０は、改めて、ワーク置き場ＷＳ（ワーク収容箱９０の内部）を撮像して、ワーク収容箱９０の内部の二次元画像ＶＤ（図８参照）を新たに生成する。その後、ステップＳ３に戻り、画像分析部４０は、新たに生成された二次元画像ＶＤ（図８参照）に基づいて、ワーク置き場ＷＳにおいて、複数のワーク８０のケーブル８５（軟体部）が交差して重なる交差部ＣＰが存在するか否かを判定する。その後も、新たに生成された二次元画像ＶＤ（図８参照）に基づいて、前述したステップＳ４〜Ｓ７の処理を行う。
【００７８】
図８に示す例では、第１ワーク８０Ａの第１ケーブル８５Ａ（軟体部）が、最上位ケーブル８５Ｔ（最上位軟体部）であると判別することができるので、画像分析部４０は、ステップＳ４において、最上位ケーブル８５Ｔの判別が可能である（ＹＥＳ）と判定し、ステップＳ５において、第１ケーブル８５Ａ（軟体部）を最上位ケーブル８５Ｔ（最上位軟体部）として確定する。その後、ステップＳ６において、画像分析部４０は、図８に示す二次元画像ＶＤに基づいて、最上位ケーブル８５Ｔを有する第１ワーク８０Ａにおいて、軟体部である第１ケーブル８５Ａ（最上位ケーブル８５Ｔ）及び剛体部であるコネクタ８１，８２を認識できる（ＹＥＳ）と判定すると、ステップＳ７に進み、最上位ケーブル８５Ｔ（第１ケーブル８５Ａ）を有する第１ワーク８０Ａを、最上位ワーク８０Ｔとして決定する（図８参照）。
【００７９】
なお、ステップＳ１２において最上位ケーブル８５Ｔを作り出すことができない（ＮＯ）と判定された場合は、ステップＳ１５（位置関係変更ステップ）に進み、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在する複数のワーク８０の位置関係を無作為に変更する操作を行う。具体的には、例えば、ロボットコントローラ５０が、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御することによって、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在するワーク８０を無作為に移動させる。
【００８０】
より具体的には、例えば、把持ロボット１０によってワーク収容箱９０を揺り動かして、ワーク収容箱９０の内部（ワーク置き場ＷＳ）に存在するワーク８０を無作為に移動させる。あるいは、把持ロボット１０によってワーク収容箱９０の内部を掻き混ぜるようにして、ワーク収容箱９０の内部（ワーク置き場ＷＳ）に存在するワーク８０を無作為に移動させる。これにより、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在する複数のワーク８０の位置関係を無作為に変更する。このような操作を行うことで、最上位ケーブル８５Ｔ（最上位軟体部）が作り出され得る。あるいは、最上位ケーブル８５Ｔを作り出す手順を見いだす（導き出す）ことが可能となり得る。
【００８１】
ステップＳ１５の処理を行った後は、ステップＳ１４に進み、２Ｄビジョンセンサ３０は、改めて、ワーク置き場ＷＳ（ワーク収容箱９０の内部）を撮像して、ワーク収容箱９０の内部の二次元画像ＶＤを新たに生成する。その後、ステップＳ３に戻り、画像分析部４０は、新たに生成された二次元画像ＶＤに基づいて、ワーク置き場ＷＳにおいて、複数のワーク８０のケーブル８５（軟体部）が交差して重なる交差部ＣＰが存在するか否かを判定する。その後、前述したステップＳ４以降の処理を行うことで、最上位ケーブル８５Ｔ及び最上位ワーク８０Ｔを確定することができる。
【００８２】
以上説明したように、本実施形態のワーク識別方法によれば、複数のワーク８０の軟体部（ケーブル８５）が交差する態様で、複数のワーク８０がワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在している（バラ積みされている）場合において、これらのワーク８０から、最も上方に位置する最上位ワーク８０Ｔを識別することができる。
【００８３】
ステップＳ７において最上位ワーク８０Ｔが決定されると、ステップＳ８に進み、把持ロボット１０の把持部１１によって、最上位ワーク８０Ｔの剛体部（コネクタ８１またはコネクタ８２）を把持し、把持した最上位ワーク８０Ｔを、ワーク置き場ＷＳ（ワーク収容箱９０の内部）から取り出す。
【００８４】
具体的には、まず、３Ｄビジョンセンサ２０によって、ワーク置き場ＷＳ（ワーク収容箱９０の内部）に位置する最上位ワーク８０Ｔの三次元計測データ（三次元画像データ）を生成する。その後、３Ｄビジョンコントローラ６０が、３Ｄビジョンセンサ２０によって生成された最上位ワーク８０Ｔの三次元計測データを取得する。さらに、３Ｄビジョンコントローラ６０は、取得した三次元計測データから、最上位ワーク８０Ｔの剛体部（コネクタ８１またはコネクタ８２）を検出し、検出した剛体部（コネクタ８１またはコネクタ８２）の三次元計測データと、剛体部（コネクタ８１またはコネクタ８２）の三次元ＣＡＤデータとをマッチングさせることによって、最上位ワーク８０Ｔの剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢を認識（検出）する。
【００８５】
次に、ロボットコントローラ５０が、３Ｄビジョンコントローラ６０によって認識（検出）された最上位ワーク８０Ｔの剛体部（コネクタ８１またはコネクタ８２）の三次元位置と姿勢に基づいて、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御して、把持部１１によって、最上位ワーク８０Ｔの剛体部（コネクタ８１またはコネクタ８２）を把持させる。例えば、ロボットコントローラ５０は、３Ｄビジョンコントローラ６０によって認識（検出）された最上位ワーク８０Ｔのコネクタ８２（剛体部）の三次元位置と姿勢に基づいて、把持ロボット１０の多関節アーム部１２及び把持部１１の動作を制御して、把持部１１によって、最上位ワーク８０Ｔのコネクタ８２（剛体部）を把持させる。
【００８６】
その後、把持部１１によって把持された最上位ワーク８０Ｔは、ロボットコントローラ５０の制御によって、把持ロボット１０によってワーク置き場ＷＳ（ワーク収容箱９０の内部）から取り出される。
【００８７】
（最上位ワーク識別試験）
次に、最上位ワーク識別試験について説明する。本試験では、ワーク置き場ＷＳ（ワーク収容箱９０の内部）にバラ積みするワーク８０の数を、２本、３本、または４本と異ならせて、それぞれの場合について、実施形態のワーク識別方法（前述した実施形態の把持装置１を用いたワーク識別方法）によって最上位ワーク８０Ｔ（ワーク置き場ＷＳにおいて最も上方に位置するワーク８０）を識別する試験を行った。
【００８８】
具体的には、例えば、ワーク置き場ＷＳに２本のワーク８０を無作為に配置（バラ積み）した場合について、前述したステップＳ１〜Ｓ１５の一連の処理（図３参照）によって、最上位ワーク８０Ｔを識別して把持する試験を、複数回（例えば、１００回）行った。ステップＳ１〜Ｓ１５の一連の処理を１サイクルとして、各回の試験において、最上位ワーク８０Ｔを識別して把持するまで（すなわち、ステップＳ７において最上位ワーク８０Ｔを決定して、ステップＳ８において最上位ワーク８０Ｔを把持するまで）、ステップＳ１〜Ｓ１５のサイクル処理を行った。
【００８９】
そして、各回の試験において最上位ワーク８０Ｔを識別して把持するまでに要したサイクル数を求め、各サイクル数における最上位ワーク識別率（％）を算出した。なお、各サイクル数における最上位ワーク識別率Ｄ（％）は、ステップＳ１〜Ｓ１５の一連の処理を各サイクル数まで行った場合の、最上位ワーク８０Ｔの識別成功率（最上位ワーク８０Ｔの把持成功率に等しい）に相当する。また、サイクル数は、最上位ワーク８０Ｔを識別して把持するまでにステップＳ３の処理を行った回数に等しい。ワーク置き場ＷＳにバラ積みするワーク８０の数を、３本または４本にした場合についても、同様にして試験を行って、各サイクル数における最上位ワーク識別率（％）を算出した。これらの結果を、表１に示す。
【００９０】
また、ワーク置き場ＷＳにおいて交差している複数のケーブル８５（軟体部）から最上位ケーブル８５Ｔ（最上位軟体部）を判別（識別）するために、予め画像分析部４０に教示した画像の数（教示画像数とする、表１参照）は、ワーク置き場ＷＳにバラ積みされたワーク８０の数が２本である場合には１０枚、３本である場合には３０枚、４本である場合には５０枚としている。より具体的には、ワーク置き場ＷＳにバラ積みされたワーク８０の数が２本である場合には、１０通りのワーク８０の配置（バラ積み）パターンの画像データ（１０枚の画像）と、それぞれの配置パターンにおける最上位ケーブル８５Ｔ（最上位軟体部）との組み合わせデータを、予め、画像分析部４０に教示している。
【００９１】
ワーク置き場ＷＳにバラ積みされたワーク８０の数が３本である場合には、３０通りのワーク８０の配置（バラ積み）パターンの画像データ（３０枚の画像）と、それぞれの配置パターンにおける最上位ケーブル８５Ｔ（最上位軟体部）との組み合わせデータを、予め、画像分析部４０に教示している。ワーク置き場ＷＳにバラ積みされたワーク８０の数が４本である場合には、５０通りのワーク８０の配置（バラ積み）パターンの画像データ（５０枚の画像）と、それぞれの配置パターンにおける最上位ケーブル８５Ｔ（最上位軟体部）との組み合わせデータを、予め、画像分析部４０に教示している。
【００９２】
【表１】
2020189356.tif 000003
【００９３】
表１に示すように、ワーク置き場ＷＳにバラ積みされたワーク８０の数が２本である場合は、１回目のサイクルで、最上位ワーク識別率を１００％にすることができた。すなわち、複数回（例えば、１００回）行った全ての試験において、ステップＳ１〜Ｓ１５の一連の処理を１サイクル行っただけで、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。換言すれば、ステップＳ１〜Ｓ１５の一連の処理を１サイクルだけ行うことで、１００％の確率で、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。従って、ワーク置き場ＷＳにバラ積みされたワーク８０の数が２本である場合には、１サイクルで、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができるといえる。
【００９４】
また、ワーク置き場ＷＳにバラ積みするワーク８０の数を３本にした場合は、１回目のサイクルで、最上位ワーク識別率を９７％にすることができた（表１参照）。すなわち、全試験回数に対する、「ステップＳ１〜Ｓ１５の一連の処理を１サイクル行っただけで、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた試験回数の割合」が、９７％となった。換言すれば、ステップＳ１〜Ｓ１５の一連の処理を１サイクルだけ行うことで、９７％の確率で、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。例えば、１００回の試験を行った場合において、９７回の試験において、ステップＳ１〜Ｓ１５の一連の処理を１サイクル行っただけで最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。
【００９５】
さらに、ワーク置き場ＷＳにバラ積みするワーク８０の数を３本にした場合、２サイクルで、最上位ワーク識別率を９９％にすることができた（表１参照）。すなわち、ステップＳ１〜Ｓ１５の一連の処理を１サイクルまたは２サイクル行うことで、９９％の確率で、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。例えば、１００回の試験を行った場合において、９９回の試験において、ステップＳ１〜Ｓ１５の一連の処理を１サイクルまたは２サイクル行うだけで最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。
【００９６】
さらに、ワーク置き場ＷＳにバラ積みするワーク８０の数を３本にした場合、３サイクルで、最上位ワーク識別率を１００％にすることができた（表１参照）。すなわち、ステップＳ１〜Ｓ１５の一連の処理を３サイクル行うことで、１００％の確率で、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができた。従って、ワーク置き場ＷＳにバラ積みされたワーク８０の数が３本である場合には、３サイクル以内で、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができるといえる。
【００９７】
また、ワーク置き場ＷＳにバラ積みするワーク８０の数を４本にした場合は、１回目のサイクルで、最上位ワーク識別率を８５％にすることができた（表１参照）。さらには、２サイクルで、最上位ワーク識別率を９２％にすることができた。さらには、３サイクルで、最上位ワーク識別率を９９％にすることができた。さらには、４サイクルで、最上位ワーク識別率を１００％にすることができた。従って、ワーク置き場ＷＳにバラ積みされたワーク８０の数が４本である場合には、４サイクル以内で、最上位ワーク８０Ｔ（最上位ケーブル８５Ｔ）を識別して把持することができるといえる。
【００９８】
本試験の結果から、本実施形態のワーク識別方法を用いることで、複数のワーク８０の軟体部（ケーブル８５）が交差する態様で、複数のワーク８０がワーク置き場ＷＳ（ワーク収容箱９０の内部）に存在している（バラ積みされている）場合において、これらのワーク８０から、最も上方に位置する最上位ワーク８０Ｔを適切に識別することができるといえる。
【００９９】
以上において、本発明を実施形態に即して説明したが、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で、適宜変更して適用できることはいうまでもない。
【０１００】
例えば、実施形態では、識別対象となるワーク８０として、剛体部であるコネクタ８１，８２と自由線形状の軟体部であるケーブル８５とによって構成されたワイヤーハーネスを例示した。しかしながら、本発明の識別対象となるワークは、ワイヤーハーネスに限定されるものではなく、自由線形状である軟体部を有するワークであれば、いずれのワークであっても良い。
【０１０１】
具体的には、自由線形状である軟体部のみからなるワークを、識別対象としても良い。この場合に、ステップＳ１３において、把持ロボット１０によってワークを把持して移動させる方法としては、例えば、以下のような方法を挙げることができる。例えば、軟体部のうち一定形状を有する端部の三次元ＣＡＤデータを、予め３Ｄビジョンコントローラ６０に記憶させておき、移動させるワークについて、３Ｄビジョンセンサ２０によって生成された端部の三次元計測データと当該端部の三次元ＣＡＤデータとをマッチングさせることによって、当該端部の三次元位置と姿勢を認識（検出）する。その後、認識（検出）された当該端部の三次元位置と姿勢に基づいて、把持ロボット１０によって当該端部を把持して、当該端部を有するワークを移動させる。
【符号の説明】
【０１０２】
１  把持装置
１０  把持ロボット
２０  ３Ｄビジョンセンサ
３０  ２Ｄビジョンセンサ
４０  画像分析部
５０  ロボットコントローラ
６０  ３Ｄビジョンコントローラ
８０  ワーク（ワイヤーハーネス）
８０Ｔ  最上位ワーク
８１，８２  コネクタ（剛体部）
８５  ケーブル（軟体部）
８５Ｔ  最上位ケーブル（最上位軟体部）
９０  ワーク収容箱
ＣＰ  交差部
ＶＤ  二次元画像
ＷＳ  ワーク置き場
【図１】
2020189356.tif 000004
【図２】
2020189356.tif 000005
【図３】
2020189356.tif 000006
【図４】
2020189356.tif 000007
【図５】
2020189356.tif 000008
【図６】
2020189356.tif 000009
【図７】
2020189356.tif 000010
【図８】
2020189356.tif 000011