(57)【要約】【課題】柔軟性を有する不定形物の形状認識をリアルタイムかつ高精度に実現すること。【解決手段】ロボットＲによって組み立てられる、柔軟性を有する不定形物Ｃの形状を認識する形状認識装置１であって、不定形物Ｃを撮像する撮像部１８と、撮像部１８が撮像した不定形物Ｃの画像に基づいて、不定形物Ｃの形状を認識する画像処理部１１ｃと、撮像部１８が撮像した不定形物Ｃの画像に基づいて、不定形物Ｃの形状をシミュレーションするシミュレーション処理部１１ｄと、を備え、シミュレーション処理部１１ｄは、不定形物Ｃの形状のシミュレーション結果に基づいて、画像処理部１１ｃによる不定形物Ｃの形状の認識結果を補間する。【選択図】図１
2018200558.tif 000002
【特許請求の範囲】
【請求項１】
ロボットによって組み立てられる、柔軟性を有する不定形物の形状を認識する形状認識装置であって、
前記不定形物を撮像する撮像部と、
前記撮像部が撮像した前記不定形物の画像に基づいて、前記不定形物の形状を認識する画像処理部と、
前記撮像部が撮像した前記不定形物の画像に基づいて、前記不定形物の形状をシミュレーションするシミュレーション処理部と、を備え、
前記シミュレーション処理部は、前記不定形物の形状のシミュレーション結果に基づいて、前記画像処理部による前記不定形物の形状の認識結果を補間することを特徴とする形状認識装置。
【請求項２】
前記シミュレーション処理部は、前記撮像部が撮像した前記不定形物の画像に基づいて、前記不定形物の形状を、前記撮像部の撮像周期よりも短い周期でシミュレーションすることを特徴とする請求項１に記載の形状認識装置。
【請求項３】
前記画像処理部は、前記撮像部が撮像した前記不定形物の画像と、背景のみを撮像した画像とに基づいて、前記撮像部が撮像した前記不定形物の画像の背景部分を除外した画像を取得することを特徴とする請求項１又は２に記載の形状認識装置。
【請求項４】
前記画像処理部は、前記背景部分を除外した画像と、当該背景部分を除外した画像における前記ロボットを表す画像とに基づいて、前記背景部分を除外した画像に含まれる前記ロボットの画像を除外した画像を取得することを特徴とする請求項３に記載の形状認識装置。
【請求項５】
前記シミュレーション処理部は、前記撮像部が撮像した前記不定形物の画像において、前記不定形物の一部が欠落している場合又は異物がある場合、前記不定形物の形状のシミュレーション結果に基づいて、前記不定形物の形状を補間するか又は異物を除外することを特徴とする請求項１から４のいずれか１項に記載の形状認識装置。
【請求項６】
前記画像処理部による前記不定形物の形状の認識結果又は前記シミュレーション処理部によって補間された前記不定形物の形状の認識結果に基づいて、前記ロボットを動作させる動作軌跡を生成するロボット制御部を備えることを特徴とする請求項１から５のいずれか１項に記載の形状認識装置。
【請求項７】
前記画像処理部は、前記不定形物において前記ロボットが把持すべき部分として設定されている把持ポイントを特定し、
前記ロボット制御部は、前記画像処理部が特定した前記把持ポイントを把持させるように前記ロボットの前記動作軌跡を生成することを特徴とする請求項６に記載の形状認識装置。
【請求項８】
前記画像処理部は、前記不定形物の前記把持ポイントを撮像できない場合には、警報を発すると共に、新たに把持ポイントを設定し、
前記ロボット制御部は、新たに設定された把持ポイントを把持させるように前記ロボットの前記動作軌跡を生成することを特徴とする請求項７に記載の形状認識装置。
【請求項９】
ロボットによって組み立てられる、柔軟性を有する不定形物の形状を認識するための形状認識方法であって、
前記不定形物を撮像する撮像ステップと、
前記撮像ステップで撮像された前記不定形物の画像に基づいて、前記不定形物の形状を認識する画像処理ステップと、
前記撮像ステップで撮像された前記不定形物の画像に基づいて、前記不定形物の形状をシミュレーションするシミュレーション処理ステップと、を含み、
前記シミュレーション処理ステップでは、前記不定形物の形状のシミュレーション結果に基づいて、前記画像処理ステップにおける前記不定形物の形状の認識結果が補間されることを特徴とする形状認識方法。
【請求項１０】
ロボットによって組み立てられる、柔軟性を有する不定形物の形状を認識する形状認識装置を制御するコンピュータに、
前記不定形物を撮像させる撮像制御機能と、
前記撮像制御機能によって撮像された前記不定形物の画像に基づいて、前記不定形物の形状を認識する画像処理機能と、
前記撮像制御機能によって撮像された前記不定形物の画像に基づいて、前記不定形物の形状をシミュレーションするシミュレーション処理機能と、を実現させ、
前記シミュレーション処理機能は、前記不定形物の形状のシミュレーション結果に基づいて、前記画像処理機能による前記不定形物の形状の認識結果を補間することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状認識装置、形状認識方法及びプログラムに関する。
【背景技術】
【０００２】
従来、車体の艤装や電子部品のケーブル組み立ては、人の手によって行われて来た。これは、ケーブルのような柔軟物は形状が一定でないため、ロボットによる自動組み立てが困難であることが主な理由である。
なお、特許文献１には、ケーブルを撮像してケーブル組み立てを行うケーブル組立装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０２−００９１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ケーブル組み立てを自動化するためには、ケーブルをリアルタイムで形状認識する必要がある。
しかしながら、カメラ（ビジョンセンサ等）を用いてケーブルを形状認識する場合、撮像、画像処理、認識に比較的長い時間を要するため、ケーブルを形状認識するサンプリング周期が長くなる。そのため、リアルタイムでのケーブルの形状認識が困難である。また、ロボットハンド等によりケーブルの一部が隠れてしまい、カメラ（ビジョンセンサ等）のみではケーブルをリアルタイムに形状認識できない場合もある。この問題点は、ケーブル以外の柔軟性を有する各種不定形物にも生じうる。
【０００５】
本発明は、柔軟性を有する不定形物の形状認識をリアルタイムかつ高精度に実現することを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明の形状認識装置（例えば、後述の形状認識装置１）は、
ロボットによって組み立てられる、柔軟性を有する不定形物（例えば、後述のケーブルＣ）の形状を認識する形状認識装置であって、
前記不定形物を撮像する撮像部（例えば、後述の撮像部１８）と、
前記撮像部が撮像した前記不定形物の画像に基づいて、前記不定形物の形状を認識する画像処理部（例えば、後述の画像処理部１１ｃ）と、
前記撮像部が撮像した前記不定形物の画像に基づいて、前記不定形物の形状をシミュレーションするシミュレーション処理部（例えば、後述のシミュレーション処理部１１ｄ）と、を備え、
前記シミュレーション処理部は、前記不定形物の形状のシミュレーション結果に基づいて、前記画像処理部による前記不定形物の形状の認識結果を補間することを特徴とする。
【０００７】
（２）  （１）の形状認識装置において、前記シミュレーション処理部は、前記撮像部が撮像した前記不定形物の画像に基づいて、前記不定形物の形状を、前記撮像部の撮像周期よりも短い周期でシミュレーションしてもよい。
【０００８】
（３）  （１）又は（２）の形状認識装置において、前記画像処理部は、前記撮像部が撮像した前記不定形物の画像と、背景のみを撮像した画像とに基づいて、前記撮像部が撮像した前記不定形物の画像の背景部分を除外した画像を取得してもよい。
【０００９】
（４）  （３）の形状認識装置において、前記画像処理部は、前記背景部分を除外した画像と、当該背景部分を除外した画像における前記ロボットを表す画像とに基づいて、前記背景部分を除外した画像に含まれる前記ロボットの画像を除外した画像を取得してもよい。
【００１０】
（５）  （１）から（４）の形状認識装置において、前記シミュレーション処理部は、前記撮像部が撮像した前記不定形物の画像において、前記不定形物の一部が欠落している場合又は異物がある場合、前記不定形物の形状のシミュレーション結果に基づいて、前記不定形物の形状を補間するか又は異物を除外してもよい。
【００１１】
（６）  （１）から（５）の形状認識装置において、前記画像処理部による前記不定形物の形状の認識結果又は前記シミュレーション処理部によって補間された前記不定形物の形状の認識結果に基づいて、前記ロボットを動作させる動作軌跡を生成するロボット制御部（例えば、後述のロボット制御部１１ｆ）を備えてもよい。
【００１２】
（７）  （６）の形状認識装置において、前記画像処理部は、前記不定形物において前記ロボットが把持すべき部分として設定されている把持ポイントを特定し、前記ロボット制御部は、前記画像処理部が特定した前記把持ポイントを把持させるように前記ロボットの前記動作軌跡を生成してもよい。
【００１３】
（８）  （７）の形状認識装置において、前記画像処理部は、前記不定形物の前記把持ポイントを撮像できない場合には、警報を発すると共に、新たに把持ポイントを設定し、前記ロボット制御部は、新たに設定された把持ポイントを把持させるように前記ロボットの前記動作軌跡を生成してもよい。
【００１４】
（９）  また、本発明の形状認識方法は、
ロボットによって組み立てられる、柔軟性を有する不定形物の形状を認識するための形状認識方法であって、
前記不定形物を撮像する撮像ステップと、
前記撮像ステップで撮像された前記不定形物の画像に基づいて、前記不定形物の形状を認識する画像処理ステップと、
前記撮像ステップで撮像された前記不定形物の画像に基づいて、前記不定形物の形状をシミュレーションするシミュレーション処理ステップと、を含み、
前記シミュレーション処理ステップでは、前記不定形物の形状のシミュレーション結果に基づいて、前記画像処理ステップにおける前記不定形物の形状の認識結果が補間されることを特徴とする。
【００１５】
（１０）  また、本発明のプログラムは、
ロボットによって組み立てられる、柔軟性を有する不定形物の形状を認識する形状認識装置を制御するコンピュータに、
前記不定形物を撮像させる撮像制御機能と、
前記撮像制御機能によって撮像された前記不定形物の画像に基づいて、前記不定形物の形状を認識する画像処理機能と、
前記撮像制御機能によって撮像された前記不定形物の画像に基づいて、前記不定形物の形状をシミュレーションするシミュレーション処理機能と、を実現させ、
前記シミュレーション処理機能は、前記不定形物の形状のシミュレーション結果に基づいて、前記画像処理機能による前記不定形物の形状の認識結果を補間することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、柔軟性を有する不定形物の形状認識をリアルタイムかつ高精度に実現することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係る形状認識装置の構成を示すブロック図である。
【図２】背景画像のデータを用いて、ケーブル及びロボットが撮像されている撮像画像のデータから背景が除外される処理（背景除外処理）を示す模式図である。
【図３】ケーブル及びロボットの領域が抽出された画像のデータからロボットの画像を除外する処理（ロボット除外処理）を示す模式図である。
【図４】ケーブルの把持ポイントが特定される状態を示す模式図である。
【図５】画像処理部の認識結果をシミュレーション処理部によって時間的に補間する状態を示す模式図である。
【図６】画像処理部の認識結果がシミュレーション処理部によって空間的に補間可能であることを示す模式図である。
【図７】形状認識装置のＣＰＵが実行する形状認識処理の流れを説明するフローチャートである。
【図８】形状認識装置のＣＰＵが実行するロボット動作制御処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を参照して説明する。
［構成］
図１は、本実施形態に係る形状認識装置１の構成を示すブロック図である。
形状認識装置１は、ロボットＲによりケーブルＣ（不定形物）の組み立てが行われる組み立てラインに設置され、撮像画像からケーブルＣの形状を認識して、認識結果によりロボットＲの制御を行う装置である。
【００１９】
図１において、形状認識装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ１２と、ＲＡＭ１３と、入力部１４と、表示部１５と、記憶部１６と、通信部１７と、撮像部１８とを備えている。
ＣＰＵ１１は、記憶部１６に記憶された各種プログラムを実行することにより、形状認識装置１の全体を制御する。例えば、ＣＰＵ１１は、ケーブルＣの形状認識を行う処理（以下、「形状認識処理」と称する。）のためのプログラムや形状認識処理の結果を用いてロボットＲの制御を行う処理（以下、「ロボット動作制御処理」と称する。）のためのプログラムを実行する。
【００２０】
形状認識処理及びロボット動作制御処理のためのプログラムを実行することにより、ＣＰＵ１１には、機能的構成として、センサ情報取得部１１ａと、ロボット状態取得部１１ｂと、画像処理部１１ｃと、シミュレーション処理部１１ｄと、形状表示部１１ｅと、ロボット制御部１１ｆとが形成される。
【００２１】
センサ情報取得部１１ａは、撮像部１８から出力されるケーブルＣの撮像画像のデータやケーブルＣに関する各種データ（例えば、特徴点、位置あるいはサイズ等のデータ）を取得する。また、センサ情報取得部１１ａは、形状認識処理においてケーブルＣの形状認識に用いるための背景画像のデータを取得する。背景画像は、ロボットＲがケーブルＣを把持等する領域においてケーブルＣが存在しない状態を撮像した画像である。
【００２２】
ロボット状態取得部１１ｂは、ロボットＲの各軸の検出データ（モータの回転位置等）、ロボットＲを表すモデルのデータ、撮像部１８の位置及び撮像パラメータのデータ（カメラの視点や画角等）に基づいて、ロボットＲの状態（例えば、ハンド部分の位置及び形状）のデータを取得する。なお、ロボットＲのモデルのデータとしては、ロボットＲを表すＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）のデータ等、ロボットＲを正確に表すものの他、略円筒形のモデルのデータ等、ロボットＲを概略的に近似するものを用いることが可能である。
【００２３】
画像処理部１１ｃは、センサ情報取得部１１ａによって取得された背景画像のデータと、ケーブルＣが撮像されている撮像画像のデータとに基づいて、ケーブルＣの形状を認識する画像処理を実行する。このとき、本実施形態における画像処理部１１ｃは、撮像画像のデータにおける背景を除外する処理（背景除外処理）と、ロボットＲの画像を除外する処理（ロボット除外処理）とを実行する。
【００２４】
図２は、背景画像のデータを用いて、ケーブルＣ及びロボットＲが撮像されている撮像画像のデータから背景が除外される処理（背景除外処理）を示す模式図である。
図２に示すように、本実施形態において、画像処理部１１ｃは、背景画像と同一の画角で撮像されたケーブルＣを含む撮像画像のデータと、背景画像のデータとのＸＯＲ（ｅＸｃｌｕｓｉｖｅ  ＯＲ）を取る論理演算を実行する。これにより、ケーブルＣを含む撮像画像において、背景が除外され、ケーブルＣ及びロボットＲの領域が抽出される。なお、このようにＸＯＲを取る論理演算以外であっても、ケーブルＣ等の領域を抽出できる画像処理であれば、他の方法を用いることが可能である。
【００２５】
図３は、ケーブルＣ及びロボットＲの領域が抽出された画像のデータからロボットＲの画像を除外する処理（ロボット除外処理）を示す模式図である。
図３に示すように、画像処理部１１ｃは、ロボット状態取得部１１ｂによって取得されたロボットＲの現在の状態から、ロボットＲのみが含まれる画像のデータを生成する。そして、画像処理部１１ｃは、ケーブルＣ及びロボットＲの領域が抽出された画像（背景を除外済みの画像）のデータと、生成したロボットＲのみが含まれる画像のデータとのＸＯＲを取る論理演算を実行する。これにより、ケーブルＣとロボットＲとを含む画像において、ロボットＲの画像が除外され、ケーブルＣの形状が認識される。なお、このようにＸＯＲを取る論理演算以外であっても、ロボットＲの画像を除外できる画像処理であれば、他の方法を用いることが可能である。
【００２６】
図１に示す画像処理部１１ｃは、認識されたケーブルＣの形状において、予め指定された把持ポイント（ロボットＲが把持すべきケーブルＣの部分）を特定する。
図４は、ケーブルＣの把持ポイントが特定される状態を示す模式図である。
図４に示すように、ケーブルＣの把持ポイントは、ケーブルＣの全体が撮像されている状態（例えば、キャリブレーション時等）において、オペレータが撮像画像上で把持ポイントとする部分を選択することで指定される。そして、画像処理部１１ｃは、以降の動作においてケーブルＣの形状が変化した場合にも、ケーブルＣの特徴点に基づいて、指定された把持ポイントをワーピング（マッピング）することにより、把持ポイントを継続的に特定する。一例として、ケーブルＣの端部を特徴点とし、把持ポイントを端部から所定距離（例えば、５０ｍｍ）の位置に指定した場合、ケーブルの形状が変化しても、ワーピング（マッピング）によって、特徴点であるケーブルＣの端部から所定距離の位置が把持ポイントとして継続的に特定される。
【００２７】
ここで、ケーブルＣが撮像されている撮像画像のデータにおいて、障害物等によって遮られ、把持ポイントが特定できない場合には、画像処理部１１ｃは、把持ポイントをケーブルＣの撮像されている部分に変更する。例えば、画像処理部１１ｃは、ケーブルＣの撮像されている部分において、障害物等によって遮られている把持ポイントに最も近い部分に新たな把持ポイントを設定する。なお、当初の把持ポイントが再び特定可能となった場合には、新たに設定した把持ポイントを破棄し、当初の把持ポイントに戻すこととしてもよい。
【００２８】
図１に示すシミュレーション処理部１１ｄは、ケーブルＣの撮像画像のデータと、ケーブルＣの物理的な特性とに基づいて、ケーブルＣの形状をシミュレーションする。本実施形態において、シミュレーション処理部１１ｄによるケーブルＣの形状のシミュレーションは、画像処理部１１ｃによってケーブルＣの形状が認識される周期（「周期Ａ」ともいう）よりも短い周期（「周期Ｂ」ともいう）で実行される。そして、シミュレーション処理部１１ｄは、シミュレーション結果を用いて、画像処理部１１ｃによって認識されるケーブルＣの形状を補間する。周期Ｂ／周期Ａは、例えば５％〜３０％である。
【００２９】
本実施形態において、シミュレーション処理部１１ｄは、画像処理部１１ｃによってケーブルＣの形状が認識される周期の間を、シミュレーション結果によって時間的に補間する。また、シミュレーション処理部１１ｄは、画像処理部１１ｃによって認識されたケーブルＣの形状が部分的に欠落している（遮られている）場合に、ケーブルＣの認識結果における欠落した部分をシミュレーション結果によって物理的に補間する。
【００３０】
図５は、画像処理部１１ｃの認識結果をシミュレーション処理部１１ｄによって時間的に補間する状態を示す模式図である。
図５に示すように、画像処理部１１ｃによってケーブルＣの認識結果が出力されるタイミングの間において、シミュレーション処理部１１ｄのシミュレーション結果が出力されることにより、ケーブルＣの形状をリアルタイムにより近い周期で認識することができる。
【００３１】
また、図６は、画像処理部１１ｃの認識結果がシミュレーション処理部１１ｄによって空間的に補間可能であることを示す模式図である。
なお、図６においては、（Ａ）撮像部１８による撮像画像、（Ｂ）抽出されたケーブルＣの領域（ケーブルＣと推定される領域）、（Ｃ）シミュレーション処理部１１ｄのシミュレーション結果が、（ａ）欠落がなくケーブルＣが撮像された場合、（ｂ）異物と共に欠落がなくケーブルＣが撮像された場合、（ｃ）ケーブルＣの一部が欠落して撮像された場合、のそれぞれについて示されている。
【００３２】
図６に示すように、欠落がなくケーブルＣが撮像された場合には、撮像部１８による撮像画像から、ケーブルＣの領域が抽出され、ケーブルＣの形状が適切に認識される。
また、異物（工具や不要な部品等）と共に、欠落がなくケーブルＣが撮像された場合には、撮像部１８による撮像画像から、ケーブルＣの領域と共に、異物の領域がケーブルＣと推定される領域として抽出される。この場合、シミュレーション処理部１１ｄのシミュレーション結果を用いることで、ケーブルＣの領域として尤度が低い異物の領域を除外することができる。例えば、抽出された物体の色、位置、形状等のパラメータにおいて、異物として判定するための閾値を設定しておき、ケーブルＣのシミュレーション結果と比較して、これらのパラメータが閾値を超えている物体については、異物として除外することができる。
【００３３】
さらに、ケーブルＣの一部が欠落して撮像された場合には、ケーブルＣの領域が分断して抽出される。このとき、シミュレーション処理部１１ｄのシミュレーション結果において、分断されているケーブルＣの領域に相当する部分を特定し、撮像画像から認識されるケーブルＣの形状を空間的に補間することができる。
このように、画像処理部１１ｃによって出力されたケーブルＣの認識結果に欠落した部分がある場合、シミュレーション処理部１１ｄのシミュレーション結果によって欠落した部分が補間されることにより、ケーブルＣの形状全体を適切に認識することができる。
【００３４】
なお、シミュレーション処理部１１ｄがケーブルＣの形状をシミュレーションする場合、種々の方法を用いることができるが、一例として、特開２０１３−３５０８３号公報又は特開２０１６−８７７５０号公報に開示された方法を採用することができる。
また、シミュレーション処理部１１ｄによってケーブルＣの形状を補間するためには、撮像時においてケーブルＣが遮られる状態が一時的であること、シミュレーションの開始時には、ケーブルＣの全体が撮像されていることが条件となる。
【００３５】
形状表示部１１ｅは、画像処理部１１ｃによって認識されたケーブルＣの形状又はシミュレーション処理部１１ｄによって補間されたケーブルＣの形状を表示部１５に表示する。なお、形状表示部１１ｅは、ケーブルＣの形状を表示する場合、把持ポイントを識別（例えば、赤色に着色する等）して表示する。
【００３６】
ロボット制御部１１ｆは、画像処理部１１ｃによって特定されたケーブルＣの把持ポイントを目標位置として、ケーブルＣを把持するためのロボットＲの動作軌跡を算出する。また、ロボット制御部１１ｆは、画像処理部１１ｃによって認識されたケーブルＣの形状又はシミュレーション処理部１１ｄによって補間されたケーブルＣの形状に基づいて、把持されたケーブルＣが物体と干渉しないようにロボットＲを動作させる動作軌跡を算出する。そして、ロボット制御部１１ｆは、算出した動作軌跡に沿ってロボットＲを動作させるための各モータの制御データを、ロボットＲに出力する。これにより、ロボットＲはケーブルＣの把持ポイントを把持し、把持したケーブルＣが物体と干渉しない動作軌跡で動作しながら、ケーブルＣの組み立て等を行う。
【００３７】
図１に戻り、ＲＯＭ１２には、形状認識装置１を制御するための各種システムプログラムが予め書き込まれている。
ＲＡＭ１３は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体メモリによって構成され、ＣＰＵ１１が各種処理を実行する際に生成されるデータを記憶する。
入力部１４は、マウスやキーボード等の入力装置によって構成され、ユーザによる形状認識装置１への各種情報の入力を受け付ける。
【００３８】
表示部１５は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の表示装置によって構成され、形状認識装置１の各種処理結果を表示する。
記憶部１６は、ハードディスクあるいはフラッシュメモリ等の不揮発性の記憶装置によって構成され、形状認識処理及びロボット動作制御処理のためのプログラム等を記憶する。
通信部１７は、無線ＬＡＮやＵＳＢ等、所定の通信規格に基づいて信号処理を行う通信インターフェースを備え、形状認識装置１がロボットＲ等、他の装置との間で行う通信を制御する。
【００３９】
撮像部１８は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）素子の撮像素子、ステレオ３Ｄカメラ等を備えており、レンズによって集光された被写体像を撮像画像のデータとして出力する。本実施形態において、撮像部１８は、ビジョンセンサによって構成され、ケーブルＣの撮像画像のデータに加え、ケーブルＣに関する各種データ（例えば、特徴点、位置あるいはサイズ等のデータ）を検出することができる。
【００４０】
［動作］
次に、形状認識装置１の動作を説明する。
［形状認識処理］
図７は、形状認識装置１のＣＰＵ１１が実行する形状認識処理の流れを説明するフローチャートである。
形状認識処理は、入力部１４を介して、形状認識処理を起動させる指示が入力されることにより開始される。
【００４１】
形状認識処理が開始されると、ステップＳ１において、センサ情報取得部１１ａは、ロボットＲがケーブルＣを把持等する領域においてケーブルＣが存在しない状態を表す背景画像を取得する。
ステップＳ２において、ロボット状態取得部１１ｂは、ロボットＲの各軸の検出データ（ロボットの状態）を取得する。
ステップＳ３において、センサ情報取得部１１ａは、撮像部１８から撮像画像のデータを取得する。このとき取得される撮像画像のデータには、背景及びケーブルＣの画像が含まれ、ロボットＲがケーブルＣを把持する動作を行っている場合には、ロボットＲの画像も含まれる。以下の処理では、撮像画像のデータにロボットＲの画像が含まれているものとする。
【００４２】
ステップＳ４において、画像処理部１１ｃは、背景画像のデータと、ケーブルＣが撮像されている撮像画像のデータとに基づいて、撮像画像のデータにおける背景を除外する処理（背景除外処理）を実行する。これにより、ケーブルＣを含む撮像画像において、背景が除外され、ケーブルＣ及びロボットＲの領域が抽出される。
【００４３】
ステップＳ５において、画像処理部１１ｃは、背景が除外された画像にロボットＲの画像が含まれているか否かの判定を行う。背景が除外された画像にロボットＲの画像が含まれているか否かについては、例えば、ロボットＲのモデルと一致する物体、あるいは、ケーブルＣとしての尤度が低い物体（色や形がケーブルＣと異なる物体）が撮像画像に含まれるか否かによって判定することができる。
背景が除外された画像にロボットＲの画像が含まれている場合、ステップＳ５においてＹＥＳと判定されて、処理はステップＳ６に移行する。
一方、背景が除外された画像にロボットＲの画像が含まれていない場合、ステップＳ５においてＮＯと判定されて、処理はステップＳ８に移行する。
【００４４】
ステップＳ６において、画像処理部１１ｃは、ロボットＲの現在の状態から画角におけるロボットＲの位置を特定し、ロボットＲのみが含まれる画像のデータを生成する。
ステップＳ７において、画像処理部１１ｃは、ケーブルＣ及びロボットＲの領域が抽出された画像（背景を除外済みの画像）のデータと、生成したロボットＲのみが含まれる画像のデータとに基づいて、ケーブルＣ及びロボットＲの領域が抽出された画像からロボットＲの画像を除外する処理（ロボット除外処理）を実行する。これにより、ケーブルＣとロボットＲとを含む画像において、ロボットＲの画像が除外される。
ステップＳ８において、画像処理部１１ｃは、画像のデータからケーブルＣの形状を認識する。
【００４５】
ステップＳ９において、ケーブルＣの撮像画像のデータと、ケーブルＣの物理的な特性とに基づいて、ケーブルＣの形状をシミュレーションする。
ステップＳ１０において、画像処理部１１ｃは、認識されたケーブルＣの形状が部分的に欠落しているか否か又は異物があるか否かの判定を行う。
認識されたケーブルＣの形状が部分的に欠落している場合又は異物がある場合、ステップＳ１０においてＹＥＳと判定されて、処理はステップＳ１１に移行する。
一方、認識されたケーブルＣの形状が部分的に欠落していない場合かつ異物がない場合、ステップＳ１０においてＮＯと判定されて、処理はステップＳ１２に移行する。
【００４６】
ステップＳ１１において、画像処理部１１ｃは、ケーブルＣの認識結果における欠落した部分をシミュレーション結果によって物理的に補間すると共に、異物を除外する。
なお、本実施形態においては、補間及び異物の除去の両方を行っているが、一方のみを行ってもよい。
ステップＳ１２において、形状表示部１１ｅは、ケーブルＣの形状（画像処理部１１ｃによって認識されたケーブルＣの形状又はシミュレーション処理部１１ｄによって補間されたケーブルＣの形状）を表示部１５に表示する。
【００４７】
ステップＳ１３において、センサ情報取得部１１ａは、撮像部１８による撮像タイミング（ビジョンセンサのデータ取得タイミング）となっているか否かの判定を行う。
撮像部１８による撮像タイミング（ビジョンセンサのデータ取得タイミング）となっている場合、ステップＳ１３においてＹＥＳと判定されて、処理はステップＳ２に移行する。
一方、撮像部１８による撮像タイミング（ビジョンセンサのデータ取得タイミング）となっていない場合、ステップＳ１３においてＮＯと判定されて、処理はステップＳ９に移行する。
このような処理が、形状認識処理を終了させる指示が入力されるまで繰り返される。
【００４８】
［ロボット動作制御処理］
次に、ロボット動作制御処理について説明する。
図８は、形状認識装置１のＣＰＵ１１が実行するロボット動作制御処理の流れを説明するフローチャートである。
ロボット動作制御処理は、入力部１４を介して、ロボット動作制御処理を起動させる指示が入力されることにより開始される。
【００４９】
ロボット動作制御処理が開始されると、ステップＳ２１において、ロボット制御部１１ｆは、形状認識処理で取得されるケーブルＣの認識結果を取得する。
ステップＳ２２において、画像処理部１１ｃは、認識されたケーブルＣの形状に把持ポイントをマッピングする。
ステップＳ２３において、画像処理部１１ｃは、マッピングされた把持ポイントが撮像画像において特定できるか否かの判定を行う。
マッピングされた把持ポイントが撮像画像において特定できない場合、ステップＳ２３においてＮＯと判定されて、処理はステップＳ２４に移行する。
一方、マッピングされた把持ポイントが撮像画像において特定できる場合、ステップＳ２３においてＹＥＳと判定されて、処理はステップＳ２６に移行する。
【００５０】
ステップＳ２４において、画像処理部１１ｃは、把持ポイントが特定できないことを表す警報（音又はメッセージの表示等）を出力する。
ステップＳ２５において、画像処理部１１ｃは、把持ポイントをケーブルＣの撮像されている部分に変更すると共に、ロボット制御部１１ｆは、変更された把持ポイントを目標位置として、ロボットＲの動作軌跡を算出する。
ステップＳ２５の後、処理はステップＳ２７に移行する。
ステップＳ２６において、ロボット制御部１１ｆは、特定された把持ポイントを目標位置として、ロボットＲの動作軌跡を算出する。
ステップＳ２７において、ロボット制御部１１ｆは、ステップＳ２５又はステップＳ２６で算出された動作軌跡でロボットＲが動作するようにロボットＲに対して制御データを出力する。
このような処理が、ロボット動作制御処理を終了させる指示が入力されるまで繰り返される。
【００５１】
［効果］
以上のように、本実施形態に係る形状認識装置１においては、撮像部１８によって撮像されたケーブルＣの画像に基づいて、画像処理部１１ｃがケーブルＣの形状を認識する。また、撮像部１８によって撮像されたケーブルＣの画像に基づいて、シミュレーション処理部１１ｄがケーブルＣの形状をシミュレーションする。そして、シミュレーション処理部１１ｄは、ケーブルＣの形状のシミュレーション結果に基づいて、画像処理部１１ｃによるケーブルＣの形状の認識結果を補間する。
これにより、ケーブルＣを撮像した画像によるケーブルＣの形状の認識結果をシミュレーション結果によって補間することができるため、ケーブルＣを撮像した画像を用いた認識結果のみの場合よりも、リアルタイム性及び精度を高めた認識結果を得ることができる。
即ち、形状認識装置１によれば、ケーブルＣの形状認識をリアルタイムかつ高精度に実現することが可能となる。
【００５２】
また、形状認識装置１において、シミュレーション処理部１１ｄは、撮像部１８が撮像したケーブルＣの画像に基づいて、ケーブルＣの形状を、撮像部１８の撮像周期よりも短い周期でシミュレーションする。
これにより、ケーブルＣを撮像した画像によるケーブルＣの形状の認識結果を、シミュレーション結果によって時間的に補間することができる。
【００５３】
また、形状認識装置１において、画像処理部１１ｃは、撮像部１８が撮像したケーブルＣの画像と、背景のみを撮像した画像とに基づいて、撮像部１８が撮像したケーブルＣの画像の背景部分を除外した画像を取得する。
これにより、撮像された画像に写る物体を適切に取得することができる。
【００５４】
また、形状認識装置１において、画像処理部１１ｃは、背景部分を除外した画像と、当該背景部分を除外した画像におけるロボットＲを表す画像とに基づいて、背景部分を除外した画像に含まれるロボットＲの画像を除外した画像を取得する。
これにより、ケーブルＣを把持するロボットＲの画像を除外して、ケーブルＣの画像のみを適切に取得することができる。
【００５５】
また、形状認識装置１において、シミュレーション処理部１１ｄは、撮像部１８が撮像したケーブルＣの画像において、ケーブルＣの一部が欠落している場合又は異物がある場合、ケーブルＣの形状のシミュレーション結果に基づいて、ケーブルＣの形状を補間すると共に、異物を除外する。
これにより、ケーブルＣを撮像した画像によるケーブルＣの形状の認識結果を、シミュレーション結果によって空間的に補間することができる。
【００５６】
また、形状認識装置１において、ロボット制御部１１ｆは、画像処理部１１ｃによるケーブルＣの形状の認識結果又はシミュレーション処理部１１ｄによって補間されたケーブルＣの形状の認識結果に基づいて、ロボットＲを動作させる動作軌跡を生成する。
これにより、ケーブルＣの形状の認識結果を適切に反映させて、ロボットＲを動作させることができる。
【００５７】
また、形状認識装置１において、画像処理部１１ｃは、ケーブルＣにおいてロボットＲが把持すべき部分として設定されている把持ポイントを特定する。ロボット制御部１１ｆは、画像処理部１１ｃが特定した把持ポイントを把持させるようにロボットＲの動作軌跡を生成する。
これにより、設定された把持ポイントを適切に把持して、ロボットＲによるケーブルＣの組み立てを行うことができる。
【００５８】
また、形状認識装置１において、画像処理部１１ｃは、ケーブルＣの把持ポイントを撮像できない場合には、警報を発すると共に、新たに把持ポイントを設定する。ロボット制御部１１ｆは、新たに設定された把持ポイントを把持させるようにロボットＲの動作軌跡を生成する。
これにより、設定されている把持ポイントが特定できないことを外部に報知しつつ、適切な動作に変更してロボットＲを制御することができる。
【００５９】
［変形例］
なお、上述の実施形態において、形状認識装置１によって形状を認識する対象物として、ケーブルＣを例に挙げて説明したが、これに限られない。即ち、形状認識装置１によって形状を認識する対象物としては、柔軟性を有する各種不定形物が含まれる。不定形物としては、ケーブル、ベルト、ワイヤ等の線状体が例示されるが、線状体以外でもよい。
【００６０】
以上説明した実施形態の形状認識装置１の機能の全部又は一部は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。ここで、ソフトウェアによって実現されるとは、プロセッサがプログラムを読み込んで実行することにより実現されることを意味する。ハードウェアで構成する場合、形状認識装置１の機能の一部又は全部を、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ゲートアレイ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等の集積回路（ＩＣ）で構成することができる。
【００６１】
形状認識装置１の機能の全部又は一部をソフトウェアで構成する場合、形状認識装置１の動作の全部又は一部を記述したプログラムを記憶した、ハードディスク、ＲＯＭ等の記憶部、演算に必要なデータを記憶するＤＲＡＭ、ＣＰＵ、及び各部を接続するバスで構成されたコンピュータにおいて、演算に必要な情報をＤＲＡＭに記憶し、ＣＰＵで当該プログラムを動作させることで実現することができる。
【００６２】
これらのプログラムは、様々なタイプのコンピュータ可読媒体（ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。コンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。コンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュメモリ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。
また、これらのプログラムは、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【００６３】
以上、本発明の実施形態について詳細に説明したが、前述した実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
【符号の説明】
【００６４】
１  形状認識装置
１１  ＣＰＵ
１１ａ  センサ情報取得部
１１ｂ  ロボット状態取得部
１１ｃ  画像処理部
１１ｄ  シミュレーション処理部
１１ｅ  形状表示部
１１ｆ  ロボット制御部
１２  ＲＯＭ
１３  ＲＡＭ
１４  入力部
１５  表示部
１６  記憶部
１７  通信部
１８  撮像部
Ｃ  ケーブル（不定形物）
【図１】
2018200558.tif 000003
【図２】
2018200558.tif 000004
【図３】
2018200558.tif 000005
【図４】
2018200558.tif 000006
【図５】
2018200558.tif 000007
【図６】
2018200558.tif 000008
【図７】
2018200558.tif 000009
【図８】
2018200558.tif 000010