(57)【特許請求の範囲】
【請求項１】
ロボットハンドが装着されたロボットアームを制御する制御装置であって、
長尺部材における前記ロボットハンドに把持させる端部が少なくとも撮像された撮像画像を取得する画像取得部と、
前記長尺部材の全体が撮像された撮像画像を取得する全体画像取得部と、
前記全体画像取得部によって取得された撮像画像に細線化を施すことにより、前記長尺部材が細線化された細線化画像を生成する細線化部と、
前記細線化画像から前記長尺部材の端部を検出する端部検出部と、
前記長尺部材の端部の検出情報に基づいて前記ロボットアームを移動させ、前記画像取得部によって取得された撮像画像に基づいて前記ロボットアームを制御する制御部と、を備えた
ことを特徴とする制御装置。
【請求項２】
前記制御部は、前記細線化画像から複数の端部が検出された場合に、選別条件に従って複数の端部から一つの端部を選択し、端部が一つも検出されなかった場合には、エラーと判断する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記画像取得部によって取得された撮像画像を入力として、前記長尺部材の端部の特徴点を抽出するためのマスク画像を出力する学習済みモデルを用いて、前記マスク画像を生成するマスク画像生成部と、
前記マスク画像から前記長尺部材の端部の特徴点を抽出する特徴点抽出部と、
前記マスク画像ごとの前記長尺部材の端部の特徴点を用いて、前記ロボットハンドを前記長尺部材の端部に近づけるための前記ロボットアームの制御量を算出する制御量算出部と、
を備え、
前記制御部は、前記制御量算出部によって算出された前記制御量に基づいて前記ロボットアームを制御する
ことを特徴とする請求項１または請求項２に記載の制御装置。
【請求項４】
前記画像取得部によって取得された撮像画像のうち、前記長尺部材の外観の状態に応じたノイズが含まれていない撮像画像を選別する画像選別部と、
前記画像選別部によって選別された撮像画像に対して前記長尺部材の外観の状態を模したノイズを付加するノイズ付加部と、
前記画像取得部によって取得された撮像画像のうち、前記ノイズ付加部によってノイズが付加された撮像画像を含む複数の撮像画像を学習用データとして前記学習済みモデルを生成する学習部と、を備えた
ことを特徴とする請求項３に記載の制御装置。
【請求項５】
前記ロボットハンドが装着された前記ロボットアームと、
前記長尺部材を撮像し、前記長尺部材の全体が撮像された撮像画像を前記全体画像取得部に出力する第２の撮像部と、
請求項１から請求項４のいずれか１項に記載の制御装置と、を備えた
ことを特徴とするロボットシステム。
【請求項６】
ロボットハンドが装着されたロボットアームを制御する制御方法であって、
全体画像取得部が、長尺部材の全体が撮像された撮像画像を取得するステップと、
細線化部が、前記全体画像取得部によって取得された撮像画像に細線化を施すことにより、前記長尺部材が細線化された細線化画像を生成するステップと、
端部検出部が、前記細線化画像から前記長尺部材の端部を検出するステップと、
制御部が、前記長尺部材の端部の検出情報に基づいて前記ロボットアームを移動させ、前記長尺部材における前記ロボットハンドに把持させる端部が少なくとも撮像された撮像画像に基づいて前記ロボットアームを制御するステップと、を備えた
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置、ロボットシステムおよび制御方法に関する。
【背景技術】
【０００２】
フレキシブルフラットケーブル（ＦＦＣ）またはフレキシブルプリント基板（ＦＰＣ）といった可撓性のある長尺部材は、曲がりまたは捻れの変形により長手方向の端部の位置および姿勢が大きく変化する。このため、ロボットを用いて、長尺部材の端部に設けられたコネクタを基板側のコネクタに接続する作業を自動化する場合、コネクタが設けられた長尺部材の端部を、ロボットハンドで正確に把持する必要がある。【０００３】
ロボットハンドに長尺部材の目標位置を正確に把持させる従来の技術として、例えば、特許文献１に記載されたロボットシステムがある。当該ロボットシステムは、視覚センサにロボットハンドと把持目標位置を撮像させ、撮像結果を用いて算出したロボットハンドの位置と把持目標位置の誤差に基づき、ロボットハンドが把持目標位置に近接するようにロボットアームを動作させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−３００８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、長尺部材が光沢を有する場合、視覚センサによって撮像された撮像画像に、長尺部材の表面における光の反射による白飛びが発生することがある。特許文献１に記載されたロボットシステムでは、撮像画像に発生した白飛びによってロボットハンドの位置と把持目標位置との誤差を正確に算出することができなかった場合、ロボットハンドを把持目標位置に位置合わせするロボットアームの制御ができないという課題があった。【０００６】
本開示は上記課題を解決するものであり、作業対象部材におけるロボットハンドに把持させる把持対象部分が撮像された撮像画像に白飛びが発生しても、ロボットアームを制御することができる制御装置、ロボットシステムおよび制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
本開示に係る制御装置は、ロボットハンドが装着されたロボットアームを制御する制御装置であって、長尺部材におけるロボットハンドに把持させる把持対象部分が少なくとも撮像された撮像画像を取得する画像取得部と、長尺部材の全体が撮像された撮像画像を取得する全体画像取得部と、全体画像取得部によって取得された撮像画像に細線化を施すことにより、長尺部材が細線化された細線化画像を生成する細線化部と、細線化画像から長尺部材の端部を検出する端部検出部と、長尺部材の端部の検出情報に基づいてロボットアームを移動させ、画像取得部によって取得された撮像画像に基づいてロボットアームを制御する制御部と、を備えた。
【発明の効果】
【０００８】
本開示によれば、作業対象部材におけるロボットハンドに把持させる把持対象部分が撮像された撮像画像を入力として、把持対象部分の特徴点を抽出するためのマスク画像を出力する学習済みモデルを用いて、マスク画像を生成し、マスク画像ごとの把持対象部分の特徴点を用いてロボットアームの制御量を算出し、算出した制御量に基づいてロボットアームを制御する。これにより、本開示に係る制御装置は、作業対象部材におけるロボットハンドに把持させる把持対象部分が撮像された撮像画像に白飛びが発生しても、ロボットハンドを作業対象部材の把持対象部分に位置合わせすることができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るロボットシステムの構成例を示す構成図である。
【図２】実施の形態１に係る制御装置の構成例を示すブロック図である。
【図３】実施の形態１に係る制御方法を示すフローチャートである。
【図４】図４Ａは、ＦＰＣの端部が撮像された撮像画像を示す画像図であり、図４Ｂは、ノイズを付加した撮像画像を示す画像図であり、図４Ｃは、マスク画像を示す画像図である。
【図５】図５Ａは、実施の形態１に係る制御装置の機能を実現するハードウェア構成を示すブロック図であり、図５Ｂは、実施の形態１に係る制御装置の機能を実現するソフトウェアを実行するハードウェ構成を示すブロック図である。
【図６】実施の形態１に係る制御装置の変形例の構成を示すブロック図である。
【図７】実施の形態２に係るロボットシステムの構成例を示す構成図である。
【図８】実施の形態２に係る制御装置の構成例を示すブロック図である。
【図９】実施の形態２に係る制御方法を示すフローチャートである。
【図１０】図１０Ａは、ＦＰＣの全体が撮像された撮像画像を示す画像図であり、図１０Ｂは、撮像画像が細線化された細線化画像を示す画像図であり、図１０Ｃは、複数のＦＰＣが映り込んだ細線化画像を示す画像図である。
【図１１】実施の形態２に係る制御方法の変形例を示すフローチャートである。
【図１２】図１２Ａは、実施の形態２に係る制御装置の機能を実現するハードウェア構成を示すブロック図であり、図１２は、実施の形態２に係る制御装置の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。
【図１３】実施の形態３に係る制御装置の構成例を示すブロック図である。
【図１４】実施の形態３に係る制御方法を示すフローチャートである。
【図１５】実施の形態３に係る制御装置の変形例の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、実施の形態１に係るロボットシステム１の構成例を示す構成図である。図１において、ロボットシステム１は、制御装置２、ロボットアーム３、ロボットハンド４および単眼カメラ５を備える。ロボットシステム１は、単眼カメラ５によって撮影された作業対象部材の撮像画像を用いてロボットアーム３を制御し、ロボットアーム３に装着されたロボットハンド４が作業対象部材を把持する。
【００１１】
作業対象部材には、ロボットハンド４によって把持される把持対象部分が設定されている。また、作業対象部材は、例えば、可撓性を有する長尺部材である。長尺部材には、ＦＦＣまたはＦＰＣなどがある。以下の説明では、作業対象部材がＦＰＣ６であるものとする。また、把持対象部分は端部７であり、ＦＰＣ６における端部７とは反対側の端部が基板８に接続されている。
【００１２】
制御装置２は、ロボットハンド４が装着されたロボットアーム３の位置を制御する装置である。ロボットアーム３は、制御装置２からの制御に従って、設定角度で各関節を回転させ、設定位置にアーム本体を移動させる。ロボットアーム３には、ＦＰＣ６を把持するためのロボットハンド４が装着されており、ロボットハンド４には、単眼カメラ５が装着されている。
【００１３】
単眼カメラ５は、作業台上に配置された作業対象部材であるＦＰＣ６を撮像する第１の撮像部であり、撮像画像を制御装置２に出力する。図１に示すように、単眼カメラ５は、ロボットハンド４の先端部が撮像範囲に収まる位置に装着されている。これにより、ロボットハンド４がＦＰＣ６の端部７の近傍に移動したときに、単眼カメラ５は、ＦＰＣ６の端部７を撮像することができる。また、ＦＰＣ６の長手方向の一方の端部は、基板８に接続されており、ＦＰＣ６の他方の端部である端部７は、ロボットハンド４に把持されて、図１において図示しない他の基板に接続される。
【００１４】
図１において破線の囲みで示すように、３次元座標系におけるロボットハンド４およびＦＰＣ６の位置は、Ｘ座標、Ｙ座標およびＺ座標によって表される。ロボットハンド４に把持されたＦＰＣ６の端部７の姿勢を示すＡｘ、ＡｙおよびＡｚは、３次元座標系におけるロボットハンド４に対する端部７のロール角α、ヨー角βおよびピッチ角γによって表される。このようにＦＰＣ６の端部７の位置および姿勢は、（Ｘ，Ｙ，Ｚ，Ａｘ，Ａｙ，Ａｚ）で表され、ＦＰＣ６の端部７が撮像された撮像画像を画像解析することにより算出される。
【００１５】
図２は、実施の形態１に係る制御装置２の構成例を示すブロック図である。図２に示すように、制御装置２は、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５を備える。画像取得部２１は、ＦＰＣ６におけるロボットハンド４に把持させる端部７が少なくとも撮像された撮像画像を取得する。例えば、制御装置２は、図１に示した単眼カメラ５と無線または有線で接続されている。単眼カメラ５は、ロボットアーム３に装着されたロボットハンド４がＦＰＣ６の近傍に移動したときに、ロボットハンド４の近傍のＦＰＣ６を撮像する。これにより、画像取得部２１は、単眼カメラ５によってＦＰＣ６の端部７が撮像された撮像画像を取得する。
【００１６】
マスク画像生成部２２は、画像取得部２１によって取得された撮像画像を入力として、ＦＰＣ６の端部７の特徴点を抽出するためのマスク画像を出力する学習済みモデルを用いて、マスク画像を生成する。マスク画像は、撮像画像におけるＦＰＣ６の端部７が写った画像領域が前景となり、それ以外の画像領域がマスクされた画像である。また、学習済みモデルは、学習済みモデル記憶部９に記憶されている。特徴点は、単眼カメラ５によって撮像されたＦＰＣ６の端部７を示す情報であり、例えば、マスク画像におけるＦＰＣ６の端部７の一部の位置座標情報である。
【００１７】
学習済みモデルは、画像取得部２１によって取得された撮像画像を入力として、撮像画像におけるＦＰＣ６の端部７の特徴点を抽出するためのマスク画像を出力するように学習された、ニューラルネットワーク（以下、ＮＮと記載する。）のネットワーク構造およびパラメータからなるデータである。学習済みモデルの生成に用いられる学習用データは、画像取得部２１によって取得された撮像画像のうち、撮像画像に対してＦＰＣ６の外観の状態を模したノイズが付加された撮像画像を含む複数の撮像画像で構成される。ノイズの要因となるＦＰＣ６の外観の状態は、例えば、ＦＰＣ６の端部７の表面の光沢、または、ロボットアーム３あるいはロボットハンド４の影である。
【００１８】
特徴点抽出部２３は、マスク画像からＦＰＣ６の端部７の特徴点を抽出する。例えば、特徴点抽出部２３は、マスク画像におけるＦＰＣ６の端部７の一部の座標情報を、特徴点を示す情報として抽出する。端部７の一部は、例えば、端部７のコーナー部分である。
【００１９】
制御量算出部２４は、マスク画像ごとのＦＰＣ６の端部７の特徴点を用いて、ロボットハンド４を端部７に近づけるためのロボットアーム３の制御量を算出する。例えば、制御量算出部２４は、ＦＰＣ６の端部７の特徴点を示す情報として特徴点抽出部２３から取得した端部７のコーナー部分の２次元座標を実空間の３次元座標に変換することで、端部７の位置および姿勢を算出する。そして、制御量算出部２４は、ロボットハンド４がＦＰＣ６の端部７を把持する際の３次元座標における端部７の目標位置および目標姿勢と、特徴点情報に基づき算出した端部７の位置および姿勢とを比較して、両者の差分値をロボットアーム３の制御量として算出する。
【００２０】
制御部２５は、制御量算出部２４によって算出された制御量に基づいてロボットアーム３を制御する。例えば、制御部２５は、制御量算出部２４から取得した差分値が小さくなる方向に一定の距離だけロボットアーム３を移動させ、上記差分値が小さくなる方向に一定の変化量だけロボットハンド４の姿勢を変化させる。この後、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５が行う各処理が繰り返されることにより、徐々に、ロボットハンド４の位置が端部７に近づき、ロボットハンド４の姿勢が端部７の姿勢に合わされる。これにより、ロボットハンド４によって、ＦＰＣ６の端部７が目標位置および目標姿勢で把持される。
【００２１】
図３は、実施の形態１に係る制御方法を示すフローチャートである。
画像取得部２１は、ＦＰＣ６の端部７が撮像された撮像画像を取得する（ステップＳＴ１）。例えば、図１に示した単眼カメラ５は、制御量算出部２４からの撮像指示に従ってＦＰＣ６の端部７を撮像する。画像取得部２１は、単眼カメラ５によって撮像された撮像画像を取得する。
【００２２】
マスク画像生成部２２は、画像取得部２１によって取得された撮像画像および学習済みモデルを用いて、マスク画像を生成する（ステップＳＴ２）。マスク画像生成部２２は、学習済みモデルを用いてマスク画像を生成する。学習済みモデルの生成に用いられる学習用データは、ＦＰＣ６の端部７が撮像された撮像画像に対して、ＦＰＣ６の端部７の外観の状態を模したノイズが付加された画像データである。
【００２３】
図４Ａは、ＦＰＣ６の端部７が撮像された撮像画像５Ａを示す画像図である。例えば、画像取得部２１によって取得された撮像画像から、端部７の表面の光沢に起因した白飛び領域、または、ロボットアーム３あるいはロボットハンド４の影に起因した暗領域の面積が、一定の閾値よりも小さい撮像画像５Ａが選別される。
【００２４】
図４Ｂは、ノイズ４１を付加した撮像画像５Ｂを示す画像図である。撮像画像５Ａに対してノイズ４１が付加される。ノイズ４１は、ＦＰＣ６の端部７の外観の状態を模したノイズである。ノイズ４１としては、例えば、端部７の表面の光沢を模した白飛びノイズ、または、ロボットアーム３あるいはロボットハンド４の影を模した暗領域がある。
【００２５】
図４Ｃは、マスク画像５Ｃを示す画像図である。上記学習済みモデルは、ノイズ４１が付加された撮像画像５Ｂと撮像画像５Ｂに対応するマスク画像５Ｃとの複数の組み合わせを、学習用データとして用いたＮＮの教師あり学習によって生成される。マスク画像５Ｃは、例えば、ＦＰＣ６の端部７が撮像された撮像画像において、図４Ｃに示すように、ＦＰＣ６の端部７が写る画像領域が前景となり、それ以外の画像領域が黒色にマスクされた画像である。
【００２６】
このように、ノイズ４１が付加された撮像画像を用いて学習済みモデルが生成される。これにより、学習済みモデルは、画像取得部２１によって取得された撮像画像中に白飛びノイズ、暗領域などが発生した場合であっても、作業対象部材における把持対象部分のみが強調されそれ以外の部分がマスクされたマスク画像を生成することが可能である。
【００２７】
続いて、特徴点抽出部２３は、マスク画像からＦＰＣ６の端部７の特徴点を抽出する（ステップＳＴ３）。例えば、特徴点抽出部２３は、図４Ｃに示したマスク画像５Ｃにおける端部７のコーナー部分の位置座標情報を、特徴点を示す情報として抽出する。
なお、単眼カメラ５は、ロボットアーム３に装着されているので、ロボットアーム３の移動に応じて、マスク画像における端部７のコーナー部分の位置は変化する。
【００２８】
制御量算出部２４は、マスク画像５ＣごとのＦＰＣ６の端部７の特徴点を用いて、ロボットハンド４を端部７に近づけるためのロボットアーム３の制御量を算出する（ステップＳＴ４）。例えば、ＦＰＣ６などの長尺部材は、自身の可撓性によって撓むことにより、作業台上で端部７の位置がばらつきやすい。また、長尺部材は、長手方向にまっすぐ伸びた帯形状であるとは限らず、大きく弧を描くように曲がっていたり、折れ曲がっていたりする場合がある。このため、作業台上にＦＰＣ６が配置されたときの状態に応じて、ロボットアーム３を制御する必要がある。
【００２９】
制御量算出部２４には、ロボットハンド４によって把持させるＦＰＣ６の目標位置と、ＦＰＣ６の端部７の目標姿勢が設定されている。例えば、ロボットハンド４がＦＰＣ６を把持する目標位置は、実空間の３次元座標系におけるＦＰＣ６の端部７の位置（Ｘ１，Ｙ１，Ｚ１）である。目標姿勢は、作業台上に配置されたＦＰＣ６の端部７の姿勢（Ａｘ１，Ａｙ１，Ａｚ１）である。
【００３０】
制御量算出部２４は、マスク画像から抽出された特徴点情報に基づいて、ＦＰＣ６の端部７のコーナー部分の２次元座標を、実空間の３次元座標に変換する。これにより、単眼カメラ５によって撮像された撮像画像に基づいて、実空間の３次元座標系における端部７の位置（Ｘ２，Ｙ２，Ｚ２）および姿勢（Ａｘ２，Ａｙ２，Ａｚ２）を示す情報（Ｘ２，Ｙ２，Ｚ２，Ａｘ２，Ａｙ２，Ａｚ２）が得られる。
【００３１】
続いて、制御量算出部２４は、ＦＰＣ６の端部７の目標位置および目標姿勢を示す情報（Ｘ１，Ｙ１，Ｚ１，Ａｘ１，Ａｙ１，Ａｚ１）と、撮像画像に基づいて算出されたＦＰＣ６の端部７の位置および姿勢を示す情報（Ｘ２，Ｙ２，Ｚ２，Ａｘ２，Ａｙ２，Ａｚ２）とを比較し、両者の差分値を算出する。この差分値は、実空間において予め設定された目標位置および目標姿勢に対する、撮像画像に基づいて算出されたＦＰＣ６の端部７の位置および姿勢の誤差である。すなわち、この誤差はロボットアーム３を制御するための制御量（ΔＸ，ΔＹ，ΔＺ，ΔＡｘ，ΔＡｙ，ΔＡｚ）である。制御量算出部２４は、制御量（ΔＸ，ΔＹ，ΔＺ，ΔＡｘ，ΔＡｙ，ΔＡｚ）を制御部２５に出力する。
【００３２】
制御部２５は、制御量（ΔＸ，ΔＹ，ΔＺ，ΔＡｘ，ΔＡｙ，ΔＡｚ）が閾値（ΔＸｔｈ，ΔＹｔｈ，ΔＺｔｈ，ΔＡｘｔｈ，ΔＡｙｔｈ，ΔＡｚｔｈ）よりも小さいか否かを判定する（ステップＳＴ５）。制御量が閾値よりも小さい場合（ステップＳＴ５；ＹＥＳ）、ロボットハンド４の位置は、ＦＰＣ６の端部７の近傍の位置であり、ロボットハンド４の姿勢は、端部７の姿勢に合っている。このため、制御部２５は、ロボットアーム３を制御することにより、ロボットハンド４にＦＰＣ６の端部７を把持させて、図３に示す一連の処理を終了する。
【００３３】
また、制御量が閾値以上である場合（ステップＳＴ５；ＮＯ）、制御部２５は、制御量（ΔＸ，ΔＹ，ΔＺ）が小さくなる方向に一定の距離だけロボットアーム３を移動させ、（ΔＡｘ，ΔＡｙ，ΔＡｚ）が小さくなる方向に一定の変化量だけロボットハンド４の姿勢を変化させる（ステップＳＴ６）。
【００３４】
例えば、制御部２５は、ロボットアーム３を駆動させるモータに対して制御信号を出力することで、一定の距離だけロボットアーム３を移動させる。この後、制御部２５は、画像取得部２１に対して撮像画像５Ａを再度取得するように指示を出力する。これにより、ステップＳＴ１からの一連の処理が繰り返され、ロボットハンド４によってＦＰＣ６の端部７が目標位置および目標姿勢で把持される。
【００３５】
制御量と比較する閾値は、ＦＰＣ６をその端部７で把持する際に必要とされる要求精度によって決定される。また、ロボットハンド４がＦＰＣ６を掴むのではなく、サクションカップで端部７を吸着する場合、上記閾値を大きく設定することが可能である。すなわちロボットハンド４がＦＰＣ６を掴む場合は、サクションカップで吸着する場合よりも閾値が小さく設定される。
【００３６】
制御装置２における画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５の機能は、処理回路によって実現される。すなわち、制御装置２は、図３に示したステップＳＴ１からステップＳＴ６までの処理を実行するための処理回路を備える。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。
【００３７】
図５Ａは、制御装置２の機能を実現するハードウェア構成を示すブロック図である。図５Ｂは、制御装置２の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図５Ａおよび図５Ｂにおいて、入力インタフェース１００は、単眼カメラ５から制御装置２へ出力される撮像画像データを中継するインタフェースである。また、出力インタフェース１０１は、制御装置２からロボットアーム３へ出力される制御情報を中継するインタフェースである。
【００３８】
処理回路が図５Ａに示す専用のハードウェアの処理回路１０２である場合に、処理回路１０２は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）またはこれらを組み合わせたものが該当する。制御装置２における画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５の機能を別々の処理回路で実現してもよく、これらの機能をまとめて一つの処理回路で実現してもよい。
【００３９】
処理回路が図５Ｂに示すプロセッサ１０３である場合、制御装置２における画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５の機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。なお、ソフトウェアまたはファームウェアは、プログラムとして記述されてメモリ１０４に記憶される。
【００４０】
プロセッサ１０３は、メモリ１０４に記憶されたプログラムを読み出して実行することで、制御装置２における画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５の機能を実現する。例えば、制御装置２は、プロセッサ１０３によって実行されるときに図２に示すフローチャートにおけるステップＳＴ１からステップＳＴ６の処理が結果的に実行されるプログラムを記憶するためのメモリ１０４を備える。これらのプログラムは、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５が行う処理の手順または方法を、コンピュータに実行させる。メモリ１０４は、コンピュータを、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
【００４１】
メモリ１０４は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ−ＥＰＲＯＭ）などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどが該当する。
【００４２】
制御装置２における画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５の機能の一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。例えば、画像取得部２１は、専用のハードウェアである処理回路１０２によって機能を実現し、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４および制御部２５は、プロセッサ１０３がメモリ１０４に記憶されたプログラムを読み出して実行することによって機能を実現する。このように、処理回路はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせにより上記機能を実現することができる。
【００４３】
図６は、制御装置２の変形例である制御装置２Ａの構成を示すブロック図である。図６において、図１と同一の構成要素には同一の符号が付されている。制御装置２Ａは、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４、制御部２５、画像選別部２６、前処理部２７および学習部２８を備える。
【００４４】
画像選別部２６は、画像取得部２１によって取得された撮像画像のうちから、ＦＰＣ６の外観の状態に起因したノイズが含まれていない、図４Ａに示したような撮像画像５Ａを選別する。画像選別部２６によって選別された撮像画像５Ａは、画像記憶部１０に出力されて記憶される。前処理部２７は、画像記憶部１０から撮像画像５Ａをランダムに読み出し、図４Ｂに示したように、画像記憶部１０から読み出した撮像画像５Ａに対してＦＰＣ６の端部７の外観の状態を模したノイズ４１を付加するノイズ付加部である。
【００４５】
学習部２８は、画像選別部２６によって選別された撮像画像５Ａと、前処理部２７によってノイズ４１が付加された撮像画像５Ｂとを含む複数の撮像画像を、学習用データとして用いて、学習済みモデルを生成する。例えば、学習部２８は、撮像画像５Ａおよび撮像画像５Ｂを含む複数の撮像画像と、これらの撮像画像のそれぞれに対応するマスク画像である複数の教師データとを用いたＮＮの教師あり学習を行うことにより、学習済みモデルを生成する。学習済みモデルは、例えば、画像選別部２６によって選別された撮像画像を入力として、図４Ｃ示したマスク画像５Ｃを出力するものであり、学習済みモデル記憶部９に記憶される。ＮＮは、例えば、畳み込みＮＮ（以下、ＣＮＮと記載する。）であってもよい。
【００４６】
学習済みモデルにおいて、例えば、ＮＮの入力層には、単眼カメラ５により撮像された撮像画像、または、画像記憶部１０に記憶されているノイズ４１が付加された撮像画像５Ｂが入力され、ＮＮの出力層からはマスク画像５Ｃが出力される。
ＮＮの学習過程において、ＮＮの入力層に入力されて当該中間層を経て出力層から出力されるマスク画像が、画像記憶部１０に記憶されたマスク画像（教師データ）に近似させるために、ＮＮの中間層のパラメータは最適化される。近似方法としては、例えば、確率的勾配法が利用される。
【００４７】
学習部２８は、図４Ａに示したノイズのない撮像画像５Ａのみならず、図４Ｂに示したようなノイズ４１が付加された撮像画像５Ｂを用いて、学習済みモデルを生成する。学習部２８によって生成された学習済みモデルは、学習済みモデル記憶部９に記憶される。
マスク画像生成部２２は、上述のようにして生成された学習済みモデルを用いることにより、学習済みモデルに入力する撮像画像に白飛びなどによるノイズが含まれていても、ＦＰＣ６の端部７の特徴点を抽出するためのマスク画像を生成することができる。
制御装置２または２Ａは、上記のマスク画像を用いることにより、ＦＰＣ６の端部７の位置を正確に特定することができるので、白飛びなどによるノイズが含まれた撮像画像を用いても、ＦＰＣ６の端部７の位置を正確に検出可能であり、ロボットハンド４を正確にＦＰＣ６の端部７に位置合わせすることができる。
【００４８】
なお、制御装置２Ａにおける画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４、制御部２５、画像選別部２６、前処理部２７および学習部２８の機能は、処理回路によって実現される。すなわち、制御装置２Ａは、図５Ａまたは図５Ｂに示した処理を実行するための処理回路を備える。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵであってもよい。
【００４９】
また、学習部２８が学習済みモデルの生成に利用するＮＮは、一つだけでなく、複数のＮＮであってもよい。例えば、学習部２８は、複数のＮＮを利用して、ある製品の製造において、製造工程ごとの作業対象部材の把持対象部分の特徴点をそれぞれ抽出する複数の学習済みモデルを生成する。そして、制御装置２または２Ａが備えるマスク画像生成部２２は、製造工程ごとの学習済みモデルに切り替えた学習済みモデルを用いて、マスク画像を生成する。これにより、制御装置２または２Ａは、単眼カメラ５により撮像された撮像画像を用いて、ロボットハンド４を正確に製造工程ごとの作業対象部材の把持対象部分に位置合わせすることができる。
【００５０】
なお、これまでの説明は作業対象部材がＦＰＣ６である場合を示したが、作業対象部材は、ＦＦＣであってもよいし、長尺部材以外の部材であってもよい。制御装置２または２Ａは、特に表面に光沢を有した部材が作業対象部材であっても、撮像画像を用いて、ロボットハンド４を正確に作業対象部材の把持対象部分に位置合わせすることができる。
【００５１】
以上のように、実施の形態１に係る制御装置２は、ＦＰＣ６におけるロボットハンド４に把持させる端部７が撮像された撮像画像を入力として、端部７の特徴点を抽出するためのマスク画像を出力する学習済みモデルを用いて、マスク画像を生成し、マスク画像ごとの端部７の特徴点を用いてロボットアーム３の制御量を算出し、算出した制御量に基づいてロボットアーム３を制御する。これにより、制御装置２は、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００５２】
実施の形態１に係る制御装置２Ａは、画像取得部２１によって取得された撮像画像のうち、ＦＰＣ６の外観の状態に起因したノイズが含まれていない撮像画像を選別する画像選別部２６と、画像選別部２６によって選別された撮像画像に対してＦＰＣ６の外観の状態を模したノイズを付加する前処理部２７と、画像取得部２１によって取得された撮像画像のうち、前処理部２７によってノイズが付加された撮像画像を含む複数の撮像画像を学習用データとして学習済みモデルを生成する学習部２８を備える。これにより、マスク画像生成部２２が、学習済みモデルに入力する撮像画像に白飛びなどによるノイズが含まれていても、ＦＰＣ６の端部７の特徴点を抽出するためのマスク画像を生成することが可能である。
【００５３】
実施の形態１に係るロボットシステム１において、ロボットハンド４が装着されたロボットアーム３と、ＦＰＣ６を撮像し、ＦＰＣ６の端部７が少なくとも撮像された撮像画像を画像取得部２１に出力する単眼カメラ５と、制御装置２または２Ａを備える。このように構成されたロボットシステム１は、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００５４】
実施の形態２．
図７は、実施の形態２に係るロボットシステム１Ａの構成例を示す構成図である。図７において、ロボットシステム１Ａは、制御装置２Ｂ、ロボットアーム３、ロボットハンド４、単眼カメラ５および単眼カメラ１１を備える。ロボットシステム１Ａは、単眼カメラ５および単眼カメラ１１によって撮影された作業対象部材の撮像画像を用いて、ロボットアーム３を制御し、ロボットアーム３に装着されたロボットハンド４が作業対象部材を把持する。
【００５５】
作業対象部材は、可撓性を有する長尺部材であり、ロボットハンド４に把持させる把持対象部分が設定されている。長尺部材は、例えばＦＦＣまたはＦＰＣである。以下の説明では、作業対象部材がＦＰＣ６であるものとする。また、把持対象部分は端部７であり、ＦＰＣ６における端部７とは反対側の端部が基板８に接続されている。
【００５６】
実施の形態１におけるロボットアーム３の初期位置は、単眼カメラ５によってＦＰＣ６の端部７が撮像可能な位置であった。単眼カメラ１１は、ＦＰＣ６を撮像し、ＦＰＣ６の全体が撮像された撮像画像を制御装置２Ｂへ出力する第２の撮像部である。実施の形態２において、ロボットアーム３の初期位置は、単眼カメラ５がＦＰＣ６を撮像できないが、単眼カメラ１１によってＦＰＣ６の全体が撮像可能な位置である。ＦＰＣ６の全体とは、ＦＰＣ６の端部７から、当該端部７とは反対側の端部が接続している基板８を含む構造体全体である。
【００５７】
制御装置２Ｂは、単眼カメラ１１によって撮像されたＦＰＣ６の撮像画像を用いて、ロボットハンド４がＦＰＣ６の端部７を把持するようにロボットアーム３を制御する。図７において、単眼カメラ５は、ロボットアーム３に装着され、単眼カメラ１１は、ロボットアーム３に装着されていない。ただし、単眼カメラ１１は、ロボットアーム３の制御が開始される位置において、ＦＰＣ６の全体が撮像範囲内であれば、ロボットアーム３に装着されていてもよい。
【００５８】
図８は、実施の形態２に係る制御装置２Ｂの構成例を示すブロック図である。図８に示すように、制御装置２Ｂは、画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２を備えている。画像取得部２１は、実施の形態１と同様に、ＦＰＣ６におけるロボットハンド４に把持させる端部７が少なくとも撮像された撮像画像を取得する。例えば、制御装置２Ｂは、図７に示した単眼カメラ５と無線または有線で接続されている。単眼カメラ５は、ロボットアーム３に装着されたロボットハンド４がＦＰＣ６の近傍に位置した際にロボットハンド４の近傍のＦＰＣ６を撮像する。画像取得部２１は、ＦＰＣ６の端部７が少なくとも撮像された撮像画像を単眼カメラ５から取得する。
【００５９】
全体画像取得部２９は、ＦＰＣ６の全体が撮像された撮像画像を取得する。例えば、制御装置２Ｂは、図７に示した単眼カメラ１１と無線または有線で接続されている。単眼カメラ１１は、ロボットアーム３が制御される際に、ＦＰＣ６の全体を撮像する。全体画像取得部２９は、ＦＰＣ６の全体が撮像された撮像画像を単眼カメラ１１から取得する。
【００６０】
細線化部３０は、全体画像取得部２９によって取得された撮像画像に細線化を施すことにより、ＦＰＣ６の外形状が細線化された細線化画像を生成する。ＦＰＣ６の撮像画像に白飛びなどによるノイズが含まれていても、当該撮像画像を細線化することで、ＦＰＣ６の外形状のみが細線化される。細線化方法は、例えば、ＨｉｌｄｉｔｃｈのアルゴリズムまたはＺｈａｎｇ−Ｓｕｅｎのアルゴリズムが利用される。ただし、細線化方法は、ＦＰＣ６の外形状のみが細線化される方法であれば、例示したアルゴリズムに限定されるものではない。
【００６１】
端部検出部３１は、細線化画像からＦＰＣ６の端部７を検出する。例えば、端部検出部３１は、細線化画像においてＦＰＣ６の基端部からＦＰＣ６を示す細線を辿って端部を探索することにより、ＦＰＣ６の端部７を特定し、特定した端部７の２次元座標および姿勢情報を検出する。ＦＰＣ６の基端部とは、基板８と接続したＦＰＣ６の端部である。端部検出部３１は、ＦＰＣ６の端部７の位置および姿勢を示す検出情報を算出すると、検出情報を制御部３２に出力する。制御部３２は、ＦＰＣ６の端部７の検出情報に基づいてロボットアーム３を移動させ、画像取得部２１によって単眼カメラ５から取得された撮像画像に基づいてロボットアーム３を制御する。
【００６２】
図９は、実施の形態２に係る制御方法を示すフローチャートである。
全体画像取得部２９は、ＦＰＣ６の全体が撮像された撮像画像を取得する（ステップＳＴ１ａ）。例えば、ロボットアーム３の制御が開始される位置において、単眼カメラ１１は、ＦＰＣ６の全体を撮像可能である。図１０Ａは、ＦＰＣ６の全体が撮像された撮像画像１１Ａを示す画像図である。全体画像取得部２９は、図１０Ａに示すように、単眼カメラ１１によってＦＰＣ６の全体が撮像された撮像画像１１Ａを取得する。
【００６３】
細線化部３０は、全体画像取得部２９によって取得された撮像画像を用いて細線化画像を生成する（ステップＳＴ２ａ）。図１０Ｂは、ＦＰＣ６の全体が撮像された撮像画像１１Ａが細線化された細線化画像１１Ｂを示す画像図である。撮像画像１１Ａを細線化することにより、図１０Ｂに示すように、ＦＰＣ６の外形状を示す細線５１と、その端部５２および５３のみが強調され、それ以外の画像部分はマスクされたような細線化画像１１Ｂとなる。
【００６４】
端部検出部３１は、細線化部３０によって生成された細線化画像１１ＢからＦＰＣ６の端部７を検出する（ステップＳＴ３ａ）。例えば、３次元座標系におけるＦＰＣ６の基端部の位置座標は既知であり、当該位置座標を、単眼カメラ１１の撮像画像における２次元座標系に変換することは可能である。端部検出部３１は、細線化画像１１Ｂにおける端部５２の位置座標と、ＦＰＣ６の基端部の既知の位置座標とを比較し、両者が一致すると、端部５２がＦＰＣ６の基端部であると判定する。続いて、端部検出部３１は、細線化画像１１Ｂにおいて端部５２から細線５１を辿って探索することによって端部５３を特定し、特定した端部５３の２次元座標および姿勢を示す情報を、ＦＰＣ６の端部７の検出情報として制御部３２に出力する。
【００６５】
図１０Ｃは、複数のＦＰＣ６が映り込んだ細線化画像１１Ｃを示す画像図である。細線化画像１１Ｃには、図１０Ｃに示すように、２つのＦＰＣ６に対応する細線５１と細線５４が映り込んでいる。この場合、端部検出部３１は、基端部の位置座標が不明な細線５４につながる端部の検出は実行せず、基端部の位置座標が既知である細線５１につながる端部の検出を実行する。
【００６６】
次に、制御部３２は、ＦＰＣ６の端部７の検出情報に基づいて、単眼カメラ５によってロボットハンド４とＦＰＣ６の端部７とが撮像可能な位置までロボットアーム３を移動させる（ステップＳＴ４ａ）。ロボットアーム３の移動が完了すると、制御部３２の指示により、単眼カメラ５は、ロボットハンド４とＦＰＣ６の端部７を撮像する（ステップＳＴ５ａ）。画像取得部２１は、単眼カメラ５によって撮像された撮像画像を取得し、取得した撮像画像を制御部３２に出力する。
【００６７】
制御部３２は、画像取得部２１によって取得されたＦＰＣ６の端部７が少なくとも撮像された撮像画像に基づいて、ロボットハンド４が端部７でＦＰＣ６を把持するようにロボットアーム３を制御する（ステップＳＴ６ａ）。ＦＰＣ６の撮像画像に白飛びなどによるノイズが含まれていても、撮像画像を細線化することで、細線化画像においては、ＦＰＣ６の外形状のみが細線化される。これにより、制御部３２は、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００６８】
図１１は、実施の形態２に係る制御方法の変形例を示すフローチャートである。図１１において、ステップＳＴ１ｂからステップＳＴ３ｂまでの処理は、図９に示したステップＳＴ１ａからステップＳＴ３ａまでの処理と同じである。また、図１１におけるステップＳＴ８ｂからステップＳＴ１０ｂまでの処理は、図９に示したステップＳＴ４ａからステップＳＴ６ａまでの処理と同じである。
【００６９】
ＦＰＣ６の位置がばらつくことによって単眼カメラ１１の撮像範囲外にＦＰＣ６が出た場合、基板８に対するＦＰＣ６の基端部の接続が何らかの理由で外れた場合、作業台上に複数のＦＰＣ６が重なって配置された場合、または、単眼カメラ１１によってＦＰＣ６の撮像画像に想定を超えるノイズが発生した場合、端部検出部３１が細線化画像からＦＰＣ６の端部７を検出できない、または、端部検出部３１が一枚の細線化画像から複数の端部を検出して作業対象の端部を特定できない、といった不具合が発生する。
【００７０】
そこで、端部検出部３１によって細線化画像からＦＰＣ６の端部７が検出された場合、制御部３２は、端部検出部３１によって細線化画像からＦＰＣ６の端部７が一つ検出されたか否かを確認する（ステップＳＴ４ｂ）。細線化画像からＦＰＣ６の端部７が一つ検出された場合（ステップＳＴ４ｂ；ＹＥＳ）、制御部３２は、ステップＳＴ８ｂに移行することにより、前述したように、ＦＰＣ６の端部７の検出情報に基づいて、単眼カメラ５によってＦＰＣ６の端部７が撮像可能な位置までロボットアーム３を移動させ、ステップＳＴ１０ｂまでの一連の処理を実行する。
【００７１】
細線化画像から検出されたＦＰＣ６の端部７が一つではない場合（ステップＳＴ４ｂ；ＮＯ）、制御部３２は、端部検出部３１によって細線化画像から複数の端部７が検出されたか否かを確認する（ステップＳＴ５ｂ）。細線化画像から複数の端部７が検出された場合（ステップＳＴ５ｂ；ＹＥＳ）、制御部３２は、選択条件に従って、複数の端部７から一つの端部を選択する（ステップＳＴ６ｂ）。選択条件は、細線化画像から検出された複数の端部から、作業対象のＦＰＣ６の端部７を一つ選択するための条件である。例えば、基端部の位置座標が既知である細線につながる端部を選択するという条件である。
【００７２】
制御部３２は、選択条件に従って複数の端部７から一つの端部を選択すると、ステップＳＴ８ｂに移行することにより、選択した端部７の検出情報に基づいて、単眼カメラ５によってＦＰＣ６の端部７が撮像可能な位置までロボットアーム３を移動させ、ステップＳＴ１０ｂまでの一連の処理を実行する。
【００７３】
細線化画像からＦＰＣ６の端部７が一つも検出されなかった場合（ステップＳＴ５ｂ；ＮＯ）、制御部３２は、単眼カメラ１１による撮像がエラーであると判断する（ステップＳＴ７ｂ）。この場合、制御部３２は、例えば、図示しない表示装置または音声出力装置に対してエラーを示す警報を出力させる。または、制御装置２Ｂは、ステップＳＴ１ｂの処理に戻って、前述した一連の処理を再度実行してもよい。
【００７４】
制御装置２Ｂにおける画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２の機能は、処理回路により実現される。すなわち、制御装置２Ｂは、図９に示したステップＳＴ１ａからステップＳＴ６ａまでの処理または図１１に示したステップＳＴ１ｂからステップＳＴ１０ｂまでの処理を実行するための処理回路を備える。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵであってもよい。
【００７５】
図１２Ａは、制御装置２Ｂの機能を実現するハードウェア構成を示すブロック図である。図１２Ｂは、制御装置２Ｂの機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図１２Ａおよび図１２Ｂにおいて、第１の入力インタフェース２００は、単眼カメラ５から制御装置２Ｂへ出力される撮像画像データを中継するインタフェースである。また、第２の入力インタフェース２０１は、単眼カメラ１１から制御装置２Ｂへ出力される撮像画像データを中継するインタフェースである。出力インタフェース２０２は、制御装置２Ｂからロボットアーム３へ出力される制御情報を中継するインタフェースである。
【００７６】
処理回路が図１２Ａに示す専用のハードウェアの処理回路２０３である場合、処理回路２０３は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡ、またはこれらを組み合わせたものが該当する。制御装置２Ｂにおける画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２の機能を別々の処理回路で実現してもよく、これらの機能をまとめて一つの処理回路で実現してもよい。
【００７７】
処理回路が図１２Ｂに示すプロセッサ２０４である場合、制御装置２Ｂにおける画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２の機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。なお、ソフトウェアまたはファームウェアは、プログラムとして記述されてメモリ２０５に記憶される。
【００７８】
プロセッサ２０４は、メモリ２０５に記憶されたプログラムを読み出して実行することで、制御装置２Ｂにおける画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２の機能を実現する。例えば、制御装置２Ｂは、プロセッサ２０４によって実行されるときに、図９に示したステップＳＴ１ａからステップＳＴ６ａまでの処理または図１１に示したステップＳＴ１ｂからステップＳＴ１０ｂまでの処理が結果的に実行されるプログラムを記憶するためのメモリ２０５を備える。これらのプログラムは、画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２が行う処理の手順または方法を、コンピュータに実行させる。
【００７９】
メモリ２０５は、コンピュータを、画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。メモリ２０５は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどが該当する。
【００８０】
制御装置２Ｂにおける画像取得部２１、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２の機能の一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。例えば、画像取得部２１は、専用のハードウェアである処理回路２０３により機能を実現し、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３２は、プロセッサ２０４がメモリ２０５に記憶されたプログラムを読み出して実行することにより機能を実現する。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせにより上記機能を実現することができる。
【００８１】
なお、これまでの説明は、作業対象部材がＦＰＣ６である場合を示したが、作業対象部材は、ＦＦＣであってもよいし、長尺部材以外の部材であってもよい。制御装置２Ｂは、特に表面に光沢を有した部材が作業対象部材であっても、撮像画像を用いて、ロボットハンド４を正確に作業対象部材の把持対象部分に位置合わせすることができる。
【００８２】
以上のように、実施の形態２に係る制御装置２Ｂは、ＦＰＣ６の端部７が撮像された撮像画像を取得する画像取得部２１と、ＦＰＣ６の全体が撮像された撮像画像を取得する全体画像取得部２９と、全体画像取得部２９によって取得された撮像画像に細線化を施すことにより、ＦＰＣ６の外形状が細線化された細線化画像を生成する細線化部３０と、細線化画像からＦＰＣ６の端部７を検出する端部検出部３１と、ＦＰＣ６の端部７の検出情報に基づいてロボットアーム３を移動させ、画像取得部２１によって取得された撮像画像に基づいてロボットアーム３を制御する制御部３３を備える。ＦＰＣ６の撮像画像に白飛びなどによるノイズが含まれていても当該撮像画像を細線化することで、細線化画像には、ＦＰＣ６の外形状のみが細線化される。これにより、制御部３２は、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００８３】
実施の形態２に係る制御装置２Ｂにおいて、制御部３２は、細線化画像から複数の端部が検出された場合に、選別条件に従って複数の端部から一つの端部を選択し、端部が一つも検出されなかった場合には、エラーと判断する。細線化画像から複数の端部が検出された場合であっても、選択条件に従った適切な端部を選択することができ、細線化画像から端部が一つも検出されなかった場合は、撮像画像を用いたロボットアーム３の位置合わせが不可能であるため、エラーと判断することができる。
【００８４】
実施の形態２に係るロボットシステム１Ａは、ロボットハンド４が装着されたロボットアーム３と、ＦＰＣ６を撮像し、ＦＰＣ６の全体が撮像された撮像画像を全体画像取得部２９に出力する単眼カメラ１１と、制御装置２Ｂを備える。ＦＰＣ６の撮像画像に白飛びなどによるノイズが含まれていても当該撮像画像を細線化することで、細線化画像には、ＦＰＣ６の外形状のみが細線化される。これにより、制御装置２Ｂは、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００８５】
実施の形態３．
図１３は、実施の形態３に係る制御装置２Ｃの構成例を示すブロック図である。図１３において、制御装置２Ｃは、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３３を備える。以下の説明では、作業対象部材がＦＰＣ６であるものとする。また、把持対象部分は端部７であり、ＦＰＣ６における端部７とは反対側の端部が基板８に接続されている。
【００８６】
画像取得部２１は、ＦＰＣ６におけるロボットハンド４に把持させる端部７が少なくとも撮像された撮像画像を取得する。例えば、制御部３３によってＦＰＣ６の端部７を撮像可能な位置にロボットアーム３が移動されると、単眼カメラ５が、ＦＰＣ６の端部７を撮像する。画像取得部２１は、単眼カメラ５によって撮像されたＦＰＣ６の端部７の撮像画像を取得する。
【００８７】
マスク画像生成部２２は、画像取得部２１によって取得された撮像画像を入力として、ＦＰＣ６の端部７の特徴点を抽出するためのマスク画像を出力する学習済みモデルを用いて、マスク画像を生成する。学習済みモデルは、図２および図６に記載した学習済みモデル記憶部９に記憶されている。マスク画像生成部２２は、学習済みモデル記憶部９に記憶されている学習済みモデルを用いてマスク画像を生成する。特徴点抽出部２３は、マスク画像からＦＰＣ６の端部７の特徴点を抽出する。例えば、特徴点抽出部２３は、マスク画像におけるＦＰＣ６の端部７のコーナー部分の座標情報を、特徴点を示す情報として抽出する。
【００８８】
制御量算出部２４は、ＦＰＣ６の端部７の特徴点を示す情報に含まれる端部７のコーナー部分の２次元座標を実空間の３次元座標に変換することによって、端部７の位置および姿勢を算出する。そして、制御量算出部２４は、ロボットハンド４がＦＰＣ６の端部７を把持する際の３次元座標における端部７の目標位置および目標姿勢と特徴点情報に基づき算出した端部７の位置および姿勢とを比較し、両者の差分値をロボットアーム３の制御量として算出し、制御量を制御部３３に出力する。
【００８９】
ロボットアーム３の制御が開始される位置において、単眼カメラ１１はＦＰＣ６の全体を撮像する。全体画像取得部２９は、ＦＰＣ６の全体が撮像された撮像画像を単眼カメラ１１から取得する。細線化部３０は、全体画像取得部２９によって取得された撮像画像に細線化を施すことにより、ＦＰＣ６の外形状が細線化された細線化画像を生成する。端部検出部３１は、細線化画像においてＦＰＣ６の基端部からＦＰＣ６を示す細線を辿って端部を探索することによりＦＰＣ６の端部７を特定し、特定した端部７の２次元座標および姿勢情報を検出する。
【００９０】
制御部３３は、端部検出部３１によって細線化画像から検出されたＦＰＣ６の端部７の検出情報に基づいて、単眼カメラ５によってＦＰＣ６の端部７が撮像可能な位置まで、ロボットアーム３を移動させる。制御部３３は、単眼カメラ５によって撮像された撮像画像を用いたロボットアーム３の制御として、制御量算出部２４から取得された差分値が小さくなる方向に一定の距離だけロボットアーム３を移動させ、一定の変化量だけロボットハンド４の姿勢を変化させる。
【００９１】
なお、制御装置２Ｃにおける画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３３の機能は、処理回路によって実現される。すなわち、制御装置２Ｃは、図５Ａまたは図５Ｂに示した処理を実行するための処理回路を備えている。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵであってもよい。
【００９２】
図１４は、実施の形態３に係る制御方法を示すフローチャートである。
図１４に示すステップＳＴ１ｃからステップＳＴ８ｃまでの処理は、図１１に示したステップＳＴ１ｂからステップＳＴ８ｂまでの処理と同じである。さらに、図１４に示すステップＳＴ９ｃからステップＳＴ１４ｃまでの処理は、図３に示したステップＳＴ１からステップＳＴ６までの処理と同じである。制御装置２Ｃは、単眼カメラ５によってＦＰＣ６が撮像された撮像画像を用いたロボットアーム３の制御として、図３に示したステップＳＴ１からステップＳＴ６までの処理を実行する。これにより、制御装置２Ｃは、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００９３】
図１５は、制御装置２Ｃの変形例である制御装置２Ｄの構成を示すブロック図である。図１５において、図１３と同一の構成要素には同一の符号が付されている。制御装置２Ｄは、画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４、制御部２５、画像選別部２６、前処理部２７、学習部２８、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３３を備える。制御装置２Ｄは、図１３に示した制御装置２Ｃに対して、画像選別部２６、前処理部２７および学習部２８を追加したものである。画像選別部２６、前処理部２７および学習部２８がそれぞれ行う処理は、図６を用いて前述したものと同じである。
【００９４】
なお、制御装置２Ｄにおける画像取得部２１、マスク画像生成部２２、特徴点抽出部２３、制御量算出部２４、制御部２５、画像選別部２６、前処理部２７、学習部２８、全体画像取得部２９、細線化部３０、端部検出部３１および制御部３３の機能は、処理回路によって実現される。すなわち、制御装置２Ｄは、図５Ａまたは図５Ｂに示した処理を実行するための処理回路を備えている。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵであってもよい。
【００９５】
なお、これまでの説明は、作業対象部材がＦＰＣ６である場合を示したが、作業対象部材は、ＦＦＣであってもよいし、長尺部材以外の部材であってもよい。制御装置２Ｃまたは２Ｄは、特に表面に光沢を有した部材が作業対象部材であっても、撮像画像を用いて、ロボットハンド４を正確に作業対象部材の把持対象部分に位置合わせすることができる。
【００９６】
以上のように、実施の形態３に係る制御装置２Ｃは、制御装置２の構成要素と制御装置２Ｂの構成要素とを組み合わせたものである。これにより、制御装置２Ｃは、ＦＰＣ６が撮像された撮像画像に白飛びが発生しても、ロボットハンド４をＦＰＣ６の端部７に位置合わせすることができる。
【００９７】
実施の形態３に係る制御装置２Ｄは、制御装置２Ｃの構成要素に対して、画像選別部２６、前処理部２７および学習部２８を追加したものである。マスク画像生成部２２が、学習済みモデルに入力する撮像画像に白飛びなどによるノイズが含まれていても、ＦＰＣ６の端部７の特徴点を抽出するためのマスク画像を生成することが可能である。
【００９８】
なお、各実施の形態の組み合わせまたは実施の形態のそれぞれの任意の構成要素の変形もしくは実施の形態のそれぞれにおいて任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００９９】
本開示に係る制御装置は、例えば、ＦＰＣを用いた製品の組み立てに利用可能である。
【符号の説明】
【０１００】
１，１Ａ  ロボットシステム、２，２Ａ〜２Ｄ  制御装置、３  ロボットアーム、４  ロボットハンド、５，１１  単眼カメラ、５Ａ，５Ｂ，１１Ａ  撮像画像、５Ｃ  マスク画像、６  ＦＰＣ、７  端部、８  基板、９  学習済みモデル記憶部、１０  画像記憶部、１１Ｂ，１１Ｃ  細線化画像、２１  画像取得部、２２  マスク画像生成部、２３  特徴点抽出部、２４  制御量算出部、２５，３２，３３  制御部、２６  画像選別部、２７  前処理部、２８  学習部、２９  全体画像取得部、３０  細線化部、３１  端部検出部、４１  ノイズ、５１，５４  細線、５２，５３  端部、１００  入力インタフェース、１０１，２０２  出力インタフェース、１０２，２０３  処理回路、１０３，２０４  プロセッサ、１０４，２０５  メモリ、２００  第１の入力インタフェース、２０１  第２の入力インタフェース。
【要約】
制御装置（２）は、ＦＰＣ（６）におけるロボットハンド（４）に把持させる端部（７）が少なくとも撮像された撮像画像を取得する画像取得部（２１）と、撮像画像を入力として、マスク画像（５Ｃ）を出力する学習済みモデルを用いて、マスク画像（５Ｃ）を生成するマスク画像生成部（２２）と、マスク画像（５Ｃ）から端部（７）の特徴点を抽出する特徴点抽出部（２３）と、マスク画像（５Ｃ）ごとの端部（７）の特徴点を用いて、ロボットハンド（４）を端部（７）に近づけるためのロボットアーム（３）の制御量を算出する制御量算出部（２４）と、制御量算出部（２４）によって算出された制御量に基づいてロボットアーム（３）を制御する制御部（２５）を備える。【図１】
0006964827.tif 000002
【図２】
0006964827.tif 000003
【図３】
0006964827.tif 000004
【図４】
0006964827.tif 000005
【図５】
0006964827.tif 000006
【図６】
0006964827.tif 000007
【図７】
0006964827.tif 000008
【図８】
0006964827.tif 000009
【図９】
0006964827.tif 000010
【図１０】
0006964827.tif 000011
【図１１】
0006964827.tif 000012
【図１２】
0006964827.tif 000013
【図１３】
0006964827.tif 000014
【図１４】
0006964827.tif 000015
【図１５】
0006964827.tif 000016