(57)【要約】【課題】作業者がロボットに対してプログラミングを行う際の負担を軽減することのできる部品供給装置を得る。【解決手段】ハンド３Ｄデータ（３１）および部品形状３Ｄデータ（３２）から算出される把持可能姿勢と、部品形状３Ｄデータから算出される安定可能姿勢とをノードとして、各ノード間の遷移パスが示された持ち替えグラフ（３５）に基づき、ロボットの使用台数および仮置き台の使用の有無に応じた持ち替え回数を算出し、この算出結果を作業者に対して提示する。【選択図】図５
2015044274.tif 000002
【特許請求の範囲】
【請求項１】
自身のハンドで部品を把持するロボットを備え、前記ロボットの動作を制御するためのロボットプログラムにしたがって前記ロボットが動作することで、バラ積みされた部品を、仮置き台を経てパレットに整列させる部品供給装置であって、
前記ロボットプログラムを生成する行動計画部をさらに備え、
前記行動計画部は、
前記ハンドの３Ｄモデルを示すハンド３Ｄデータと、前記部品の３Ｄモデルを示す部品形状３Ｄデータとの入力に基づき、前記部品を前記ハンドで把持する際の前記部品および前記ハンドの位置姿勢の組み合わせを把持可能姿勢として算出し、算出結果を把持可能姿勢表に記憶する把持可能姿勢算出部と、
前記部品形状３Ｄデータの入力に基づき、前記部品を前記仮置き台に静定する際の前記部品の姿勢を安定姿勢として算出し、算出結果を安定可能姿勢表に記憶する安定姿勢算出部と、
前記把持可能姿勢表に含まれる把持可能姿勢と、前記安定姿勢表に含まれる前記安定姿勢とをノードとして、前記ノードのそれぞれの間を遷移するための経路を遷移パスとして算出し、算出結果を持ち替えグラフに記憶する持ち替えパス算出部と、
前記持ち替えグラフに含まれる前記ノードの前記遷移パスを探索することで、前記ノードのうちの第１ノードに対応する第１姿勢から前記ノードのうちの第２ノードに対応する第２姿勢へと姿勢変更をする際において、前記ハンドが前記部品を持ち替える必要がある回数を持ち替え回数として算出するとともに、算出結果をＨＭＩ部に画像表示する持ち替え可能性算出部と、
前記ＨＭＩ部に画像表示された前記持ち替え回数の算出結果に基づいて決定された所望のロボットプログラムを生成するプログラム生成部と、
を有する部品供給装置。
【請求項２】
請求項１に記載の部品供給装置において、
前記行動計画部は、
前記把持可能姿勢表に含まれる前記把持可能姿勢を前記ＨＭＩ部に画像表示するとともに、前記把持可能姿勢表の中から選択された把持可能姿勢を取り除く把持動作画像生成部
をさらに有する部品供給装置。
【請求項３】
請求項１または２に記載の部品供給装置において、
前記行動計画部は、
前記安定姿勢表に含まれる前記安定姿勢を前記ＨＭＩ部に画像表示するとともに、前記安定姿勢表の中から選択された安定姿勢を取り除く安定姿勢画像生成部
をさらに有する部品供給装置。
【請求項４】
請求項１から３までのいずれか１項に記載の部品供給装置において、
前記行動計画部は、
前記持ち替えグラフに含まれる前記ノードから選択された所望の２つのノードを指定する姿勢指定部と、
前記姿勢指定部が指定した２つのノードのうち、一方のノードに対応する姿勢から他方のノードに対応する姿勢へと姿勢変更する際において、前記ハンドが前記部品を持ち替える一連の動作を前記ＨＭＩ部に画像表示する一連動作画像生成部と、
をさらに有する部品供給装置。
【請求項５】
請求項１から４までのいずれか１項に記載の部品供給装置において、
前記把持可能性算出部は、
前記ノードのうちの第１ノードに対応する第１姿勢から前記ノードのうちの第２ノードに対応する第２姿勢へと姿勢変更する際の前記持ち替え回数に基づき、前記姿勢変更する際の直行率およびタクトタイムの少なくとも一方を算出し、算出結果を前記ＨＭＩ部に画像表示する
部品供給装置。
【請求項６】
自身のハンドで部品を把持するロボットの動作を制御するためのロボットプログラムにしたがって前記ロボットが動作することで、バラ積みされた部品を、仮置き台を経てパレットに整列させる部品供給装置における前記ロボットプログラムの生成方法であって、
前記ハンドの３Ｄモデルを示すハンド３Ｄデータと、前記部品の３Ｄモデルを示す部品形状３Ｄデータとの入力に基づき、前記部品を前記ハンドで把持する際の前記部品および前記ハンドの位置姿勢の組み合わせを把持可能姿勢として算出し、算出結果を把持可能姿勢表に記憶する把持可能姿勢算出ステップと、
前記部品形状３Ｄデータの入力に基づき、前記部品を前記仮置き台に静定する際の前記部品の姿勢を安定姿勢として算出し、算出結果を安定可能姿勢表に記憶する安定姿勢算出ステップと、
前記把持可能姿勢表に含まれる把持可能姿勢と、前記安定姿勢表に含まれる前記安定姿勢とをノードとして、前記ノードのそれぞれの間を遷移するための経路を遷移パスとして算出し、算出結果を持ち替えグラフに記憶する持ち替えパス算出ステップと、
前記持ち替えグラフに含まれる前記ノードの前記遷移パスを探索することで、前記ノードのうちの第１ノードに対応する第１姿勢から前記ノードのうちの第２ノードに対応する第２姿勢へと姿勢変更をする際において、前記ハンドが前記部品を持ち替える必要がある回数を持ち替え回数として算出するとともに、算出結果をＨＭＩ部に画像表示する持ち替え可能性算出ステップと、
前記ＨＭＩ部に画像表示された前記持ち替え回数の算出結果に基づいて決定された所望のロボットプログラムを生成するプログラム生成ステップと、
を有する部品供給装置のプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば自動組立装置や自動組立ロボットなどに対して、バラ積み供給される部品を整列させる部品供給装置に関し、特にロボットを用いて部品を整列させる部品供給装置および部品供給装置のプログラム生成方法に関するものである。
【背景技術】
【０００２】
一般に、製品組立ラインにおいて、購入先や、前工程から搬送される部品は、部品の搬送およびストック時に必要な空間体積を小さくするため、いわゆるバラ積み状態で届くことが多い。一方、自動組立装置は、部品が整列された状態からの組み立て作業を実行することが通例である。このため、自動組立装置に供給する部品を、何らかの手段で、バラ積み状態から整列された状態へと、位置姿勢を揃える必要がある。
【０００３】
従来から、バラ積み状態の部品を自動整列する手段として、パーツフィーダと呼ばれる専用の部品整列装置が広く使われている。しかしながら、パーツフィーダは、部品ごとに専用に設計されるため汎用性がなく、しかも設計期間が長い、価格が高い、稼働中に振動および騒音が発生する、工場の多大な床面積を占めるという問題がある。
【０００４】
また、部品形状が複雑な場合には、部品がパーツフィーダ内で絡まり、チョコ停と呼ばれる一時的な動作停止が起こり、オペレータコールが多発するという問題もある。また、パーツフィーダによる部品整列が不可能な形状の部品が存在することから、パーツフィーダが使えない場合もある。
【０００５】
そこで、上記パーツフィーダに代わる自動化手法として、バラ積み状態の部品を、何らかのハードウェア機構を用いて、ある程度、部品同士が重なっていない状態に変化させた後、ビジョンセンサを用いて、好ましい姿勢を取っている部品のみを認識して位置姿勢補正を行う技術が知られている（例えば、特許文献１参照）。
【０００６】
また、バラ積み状態の部品の位置姿勢を認識し、吸着パッドに部品を吸い付け、必要があれば向きを変更して仮置き後、さらに必要があれば向きを変更して整列させる技術が知られている（例えば、特許文献２参照）。
【０００７】
ここで、特許文献１に記載の従来技術においては、部品数を十分に供給しておいたうえで、好ましい姿勢になっている部品のみを選んで取り扱うという確率的な事象に依存するので、部品数が減ってくると、好ましい姿勢の部品が存在しなくなる確率が高まり、部品が残っているのにオペレータコールの発生が増加する問題がある。また、好ましい姿勢になる確率が低い部品を供給対象とした場合には、より多くの部品を投入しておかなければならないので、手持ち在庫を多くかかえる必要があり、工場の空間体積（床面積、高さ）を浪費するという問題がある。
【０００８】
また、特許文献２に記載の従来技術においては、吸着パッドが当てられる立方体形状の部品を対象としており、平面形状の部品、複雑な形状の部品、表面に凸凹がある部品、小穴が多い部品、細い形状からなる部品など、のように吸着パッドを当てる部位がなく、吸着パッドに吸い付かない部品に対しては対応できないという問題がある。なお、吸着パッドが使用不可の場合に、ブロワで吸い付けることも考えられるが、この場合には、騒音が大きいうえ、電力消費が大きいという問題が生じる。
【０００９】
さらに、特許文献１、２のいずれ場合も、最終的な整列を失敗させるような、ハンドと部品の位置ずれおよび姿勢ずれを、いわゆる「引き込み」あるいは「セルフアライメント」と呼ばれる現象を利用して吸収するために、部品ごとに設計した特化ハンドを使用しているので、複数種類の部品を同じハンドで整列することができず、部品数と同数のハンドが必要となり、ハンド切り替え時間、ハンド仮置き用の広い場所が必要になるという問題がある。また、部品ごとにハンドを設計し直さなければならず、生産する機種の切り替え時に、ハンドを作りなおすためのコスト（設計、製作、調整費）を要するという問題がある。
【００１０】
これらの問題を解決するために、ロボットが部品を把持し、仮置き台に一旦置いて、あるいは、複数のロボット間で受け渡しして部品を把持し直すといった持ち替え動作を行いながら、部品を目的の位置姿勢に整列させる部品供給装置がある（例えば、特許文献３参照）。なお、この部品供給装置による部品整列作業においては、多種多様のバラ積み状態の部品に対して専用の治具およびハンドの設計の必要性がない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平０６−１２７６９８号公報
【特許文献２】特開２０１１−０００６８５号公報
【特許文献３】国際公開第２０１３／００２０９９号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来技術には以下のような課題がある。
特許文献３に記載の従来技術においては、作業者は、部品整列作業の効率化を実現すべく、ロボットにどのような持ち替え動作をさせるかを決めた上で、ロボットが決められた持ち替え動作をするようにプログラミングを行う必要があり、非常に手間がかかるという問題がある。なお、ここでいう部品整列作業の効率化とは、ロボットの台数、部品を最終的に目的の位置姿勢に整列させることのできる確率（以降では、直行率と称す）およびタクトタイムといった各パラメータついて、トレードオフの関係を考慮しながら最適化を図ることである。
【００１３】
また、部品整列作業の効率化を実現するための具体的なプログラミング手法が確立していないので、なおさら作業者がロボットに対してプログラミングを行う際に、多大な負担がかかるという問題がある。
【００１４】
本発明は、上記のような課題を解決するためになされたものであり、作業者がロボットに対してプログラミングを行う際の負担を軽減することのできる部品供給装置および部品供給装置のプログラム生成方法を得ることを目的とする。
【課題を解決するための手段】
【００１５】
本発明における部品供給装置は、自身のハンドで部品を把持するロボットを備え、ロボットの動作を制御するためのロボットプログラムにしたがってロボットが動作することで、バラ積みされた部品を、仮置き台を経てパレットに整列させる部品供給装置であって、ロボットプログラムを生成する行動計画部をさらに備え、行動計画部は、ハンドの３Ｄモデルを示すハンド３Ｄデータと、部品の３Ｄモデルを示す部品形状３Ｄデータとの入力に基づき、部品をハンドで把持する際の部品およびハンドの位置姿勢の組み合わせを把持可能姿勢として算出し、算出結果を把持可能姿勢表に記憶する把持可能姿勢算出部と、部品形状３Ｄデータの入力に基づき、部品を仮置き台に静定する際の部品の姿勢を安定姿勢として算出し、算出結果を安定可能姿勢表に記憶する安定姿勢算出部と、把持可能姿勢表に含まれる把持可能姿勢と、安定姿勢表に含まれる安定姿勢とをノードとして、ノードのそれぞれの間を遷移するための経路を遷移パスとして算出し、算出結果を持ち替えグラフに記憶する持ち替えパス算出部と、持ち替えグラフに含まれるノードの遷移パスを探索することで、ノードのうちの第１ノードに対応する第１姿勢からノードのうちの第２ノードに対応する第２姿勢へと姿勢変更をする際において、ハンドが部品を持ち替える必要がある回数を持ち替え回数として算出するとともに、算出結果をＨＭＩ部に画像表示する持ち替え可能性算出部と、ＨＭＩ部に画像表示された持ち替え回数の算出結果に基づいて決定された所望のロボットプログラムを生成するプログラム生成部と、を有するものである。
【００１６】
また、本発明における部品供給装置のプログラム生成方法は、自身のハンドで部品を把持するロボットの動作を制御するためのロボットプログラムにしたがってロボットが動作することで、バラ積みされた部品を、仮置き台を経てパレットに整列させる部品供給装置におけるロボットプログラムの生成方法であって、ハンドの３Ｄモデルを示すハンド３Ｄデータと、部品の３Ｄモデルを示す部品形状３Ｄデータとの入力に基づき、部品をハンドで把持する際の部品およびハンドの位置姿勢の組み合わせを把持可能姿勢として算出し、算出結果を把持可能姿勢表に記憶する把持可能姿勢算出ステップと、部品形状３Ｄデータの入力に基づき、部品を仮置き台に静定する際の部品の姿勢を安定姿勢として算出し、算出結果を安定可能姿勢表に記憶する安定姿勢算出ステップと、把持可能姿勢表に含まれる把持可能姿勢と、安定姿勢表に含まれる安定姿勢とをノードとして、ノードのそれぞれの間を遷移するための経路を遷移パスとして算出し、算出結果を持ち替えグラフに記憶する持ち替えパス算出ステップと、持ち替えグラフに含まれるノードの遷移パスを探索することで、ノードのうちの第１ノードに対応する第１姿勢からノードのうちの第２ノードに対応する第２姿勢へと姿勢変更をする際において、ハンドが部品を持ち替える必要がある回数を持ち替え回数として算出するとともに、算出結果をＨＭＩ部に画像表示する持ち替え可能性算出ステップと、ＨＭＩ部に画像表示された持ち替え回数の算出結果に基づいて決定された所望のロボットプログラムを生成するプログラム生成ステップと、を有するものである。
【発明の効果】
【００１７】
本発明によれば、ハンド３Ｄデータおよび部品形状３Ｄデータから算出される把持可能姿勢と、部品形状３Ｄデータから算出される安定可能姿勢とをノードとして、各ノード間の遷移パスが示された持ち替えグラフに基づき、ロボットの使用台数および仮置き台の使用の有無に応じた持ち替え回数を算出し、この算出結果を作業者に対して提示する。これにより、作業者がロボットに対してプログラミングを行う際の負担を軽減することのできる部品供給装置および部品供給装置のプログラム生成方法を得ることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態１における部品供給装置を示す概略構成図である。
【図２】本発明の実施の形態１における部品供給装置のロボットのハンド形状の一例を示す説明図である。
【図３】本発明の実施の形態１における部品供給装置のロボットのハンド形状の別例を示す説明図である。
【図４】本発明の実施の形態１における部品供給装置の全体の動作シーケンスを示すフローチャートである。
【図５】本発明の実施の形態１における部品供給装置の行動計画部を示すブロック構成図である。
【図６】本発明の実施の形態１におけるハンド３Ｄデータの一例を示す説明図である。
【図７】本発明の実施の形態１における部品形状３Ｄデータの一例を示す説明図である。
【図８】本発明の実施の形態１における把持可能姿勢表の一例を示す説明図である。
【図９】本発明の実施の形態１における安定姿勢表の一例を示す説明図である。
【図１０】本発明の実施の形態１における持ち替えグラフの一例を示す説明図である。
【図１１Ａ】本発明の実施の形態１における持ち替えグラフの各ノード間の接続関係を示す説明図である。
【図１１Ｂ】本発明の実施の形態１における持ち替えグラフの各ノード間の接続関係を示す説明図である。
【図１１Ｃ】本発明の実施の形態１における持ち替えグラフの各ノード間の接続関係を示す説明図である。
【図１２】本発明の実施の形態１において、ロボット１台と仮置き台との使用を前提として得られる持ち替え表を示す説明図である。
【図１３】本発明の実施の形態１において、ロボット２台と仮置き台との使用を前提として得られる持ち替え表を示す説明図である。
【図１４】本発明の実施の形態１において、ロボット２台と仮置き台との使用、またはロボット２台の使用を前提として得られる持ち替え表を示す説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明による部品供給装置および部品供給装置のプログラム生成方法を好適な実施の形態に従って図面を用いて説明する。なお、図面の説明においては、同一要素には同一符号を付し、重複する説明を省略する。
【００２０】
実施の形態１．
図１は、本発明の実施の形態１における部品供給装置１０を示す概略構成図である。図１において、部品供給装置１０は、複数のロボットを用いてバラ積み部品を整列供給する構成を示し、これらのロボットの動作を制御するためのロボットプログラムを生成する行動計画部２０を備える。
【００２１】
部品供給装置１０は、３次元ビジョンセンサ１と、多数の部品（例えば、断面Ｌ字状の部品）が収納されたバラ積み部品箱２に近接配置された第１ロボット３と、部品が載置される仮置き台４を撮像する２次元ビジョンセンサ５と、ロボット群６と、３次元ビジョンセンサ１および２次元ビジョンセンサ５の検出結果に基づき第１ロボット３およびロボット群６を制御する制御部７とを有する。なお、図１においては、１台の第１ロボット３と、３台の第２ロボット６ａ〜６ｃからなるロボット群６とでパレット８に部品を整列させる構成を例示している。
【００２２】
３次元ビジョンセンサ１は、制御部７とともに距離画像計測部として機能し、バラ積み部品箱２内に積み上げられた部品を、概して上方から撮像し、３次元ビジョンセンサ１から各部品がランダム（例えば、凹凸）に並んだ上面までの多数の距離データを計測する機能を有する。なお、３次元ビジョンセンサ１により距離データを取得するための計測原理としては、ステレオ法、光切断法、空間コード法、ランダムコード法、タイムオフフライ法などの周知の手法が適用可能である。また、図１において、３次元ビジョンセンサ１に付された２本の破線は、各手法により距離の三角測量を行う様子を表している。
【００２３】
３次元ビジョンセンサ１で得られた距離データは、３次元ビジョンセンサ１内または制御部７において座標変換演算などが施されて、距離画像の算出に寄与する。なお、ここでいう距離画像とは、撮像されたシーンの画像の各ピクセルに対し、ある座標系から見たときの「特定座標軸方向の座標値をマッピングしたもの」であり、例えば、第１ロボット３のベース座標系から見たときの、部品が積み上がった高さのマップのことである。
【００２４】
第１ロボット３およびロボット群６内の第２ロボット６ａ〜６ｃとしては、例えば、一般的に広く普及している垂直多関節型ロボットを用いることができる。また、第１ロボット３は、３次元ビジョンセンサ１および制御部７とともに単離部（後述する）として機能し、ピンセット状または鉗子状の細い爪３ｔを有するハンド３ｈを備える。一方、ロボット群６は、２次元ビジョンセンサ５および制御部７とともに、部品の位置姿勢変更部として機能し、ロボット群６内の第２ロボット６ａ〜６ｃは、それぞれ平行チャックハンドを有する。
【００２５】
２次元ビジョンセンサ５は、部品外形計測部として機能し、広く普及しているセンサからなり、仮置き台４に転がされた部品を撮像して、その外形形状を取得する。以下、計測により取得した部品の外形は、部品の位置姿勢の算出に寄与する。部品の位置姿勢の算出演算処理は、２次元ビジョンセンサ５内または制御部７において、例えばテンプレートマッチング法により行われる。
【００２６】
なお、テンプレートマッチング法において、テンプレート画像はあらかじめ登録されるが、ここでは、取り扱う部品を仮置き台４の上に転がしてみて、安定して静止する姿勢の数だけのテンプレート画像を登録するものとする。取り扱う部品に対して登録される画像は、具体的には、裏表が無関係の部品の場合には１つ、裏表に関係がある部品の場合には２つ、５通りの姿勢で静止する部品の場合には５つとなる。この平面上の安定姿勢は、後述する行動計画部２０の動作により得られる平面上の安定姿勢表３４によって事前に決定されている。
【００２７】
次に、後述する行動計画部２０によって生成されたロボットプログラムにしたがって制御される部品供給装置のロボット等によるバラ積み整列動作の一例について具体的に説明する。
【００２８】
まず、３次元ビジョンセンサ１は、距離画像を解析することにより、バラ積み部品箱２内に積み上がった部品の中から、第１ロボット３が把持可能な部位候補（以下、単に「候補」ともいう）を算出し、さらに最適化することにより、把持可能な部位候補を１つに絞り込む。なお、把持可能な候補の演算処理に際しては、あらかじめ、第１ロボット３のハンド３ｈの爪３ｔの形状およびサイズを数値化しておく。
【００２９】
ここで、図２は、本発明の実施の形態１における部品供給装置１０のロボットのハンド形状の一例を示す説明図である。図３は、本発明の実施の形態１における部品供給装置１０のロボットのハンド形状の別例を示す説明図である。例えば、ハンド３ｈが図２または図３に示すような形状であれば、バラ積み部品の山に対して、部品と接触せずに、ハンド３ｈの２本の爪３ｔの先端部を同時に差し込みたいのであるから、爪３ｔの開き幅Ｗ分の距離を隔てた、各爪３ｔを内包する最小の大きさの２本の円柱または角柱として、数値モデル化しておく。このとき、円柱または角柱の太さは、爪３ｔの太さを近似し、円柱または角柱の長さは、把持する際に部品に爪３ｔを掛ける深さを近似することになる。
【００３０】
次に、３次元ビジョンセンサ１は、最新の距離画像が得られているものとして、最新の距離画像の中から、あらかじめ数値化した円柱または角柱が入る空間であって、かつ、空間の間に部品が存在する場所を探索する。
【００３１】
または、第１ロボット３のハンド３ｈにより把持可能な小突起部位の形状（例えば、開いたハンド３ｈの爪３ｔの間に収まる角柱、円柱、平板、円盤）を、距離画像に対してテンプレートマッチングを行い、複数の候補を探索および抽出する。
【００３２】
次に、３次元ビジョンセンサ１は、抽出された複数の候補に評価値をつけて、最も評価値の高い１つの候補のみを選択するという最適化演算を行う。最適化演算の方法として、２本の円柱に挟まれた突起物（または、発見された微少な角柱）のうち、最も高いＺ軸値を評価値として採用し、その評価値が最大となる候補を選択する。
【００３３】
この最適化演算は、バラ積みされた部品のうち、最も上方に積まれている部品を選ぶことに相当する。つまり、最大の評価値を選ぶことにより、部品の候補を最適化したことになる。
【００３４】
以下、選択された最適化候補に接近して把持するために、第１ロボット３のハンド３ｈの爪３ｔをどのように掛けるかについては、簡単な計算で求めることができる。すなわち、部品を把持できる第１ロボット３の位置姿勢を、ロボット座標系におけるＸＹＺ値および各軸周りの回転角として、把持可能な候補の位置姿勢に対する相対位置姿勢を加えることにより、算出することができる。
【００３５】
なお、距離画像に対して、ハンド３ｈで把持可能な大きさの、微少な角柱状の部位をテンプレートマッチングして候補点を抽出し、その候補点のＺ軸高さを用いて最適化することによっても、把持位置姿勢を算出することができ、同様の効果が得られる。
【００３６】
第１ロボット３は、その後、把持した部品を仮置き台４に運び、仮置き台４の上方で部品を解放する。このとき、第１ロボット３は、部品を丁寧に仮置き台４に置くのではなく、放り投げるように仮置き台４に置くことが望ましい。これにより、絡まった部品が解けて、１つずつ、分離した状態で仮置き台４に転がって静止する確率が高くなる。
【００３７】
ここで、第１ロボット３のツール座標系を、ツールが進む向きをＺ軸にとって、右手系でＸ、Ｙ、Ｚ軸とし、各軸Ｘ、Ｙ、ＺのまわりにＡ、Ｂ、Ｃ軸を定義したとき、第１ロボット３が部品を摘むために、バラ積み部品箱２の部品に近づいて行く動作について説明する。
【００３８】
例えば、第１ロボット３のハンド３ｈの爪３ｔが、ツール座標系のＡ軸値およびＢ軸値に関しては必ず同じ値になる姿勢で、かつＣ軸に関しては、爪３ｔが部品間の隙間に入るように回転させた姿勢で、Ｚ軸方向に進んでいくものとする。
【００３９】
このとき、３次元ビジョンセンサ１の座標系と第１ロボット３の座標系とのキャリブレーション誤差のうち、姿勢誤差が小さくなる領域を使うことになり、単離成功確率Ｐを向上させることが可能となる。例えば、第１ロボット３は、鉛直下向きにハンド３ｈを下ろしていくように動作する。なお、「単離」とは、バラ積み部品箱２の中から１つの部品のみを摘み出すことを指す。
【００４０】
仮置き台４は、何も備えていない簡易な台であるが、台上に排除すべき物品（異物）が載せられた際に、台面を反転させるなどして異物を自重で滑り落ちさせる（または、はじき飛ばす）、あるいは、エアで吹き飛ばす、箒で掃き飛ばす、などの機構が付加されてもよい。仮置き台４に排除機構を設けた場合には、エラーリカバリが迅速に行われ、タクトタイム（Ｔａｃｔ  Ｔｉｍｅ）が伸びにくくなるという効果がある。なお、仮置き台４の天板上面の高さ（ロボット座標系Ｚ軸方向）は、あらかじめ計測されて、制御部７の記憶領域に記憶されているものとする。
【００４１】
第１ロボット３は、バラ積み部品箱２の中にバラ積みされた部品を、上記ロボット座標算出処理に基づき、ハンド３ｈの爪３ｔが開いた状態にしたうえで、その時点で得られている把持位置に移動して、ハンド３ｈを閉じる。
【００４２】
続いて、第１ロボット３は、ハンド３ｈをロボット座標Ｚ軸方向に沿って持ち上げるように移動させ、バラ積み部品箱２から把持できた部品を引き上げる動作を行い、その後、把持した部品を仮置き台４の上に転がす。
【００４３】
以上のように、第１ロボット３は、バラ積み部品箱２の中に多数入っている部品の中から、１つの部品のみを取り出すという単離機能を備えている。ただし、第１ロボット３は、部品の取り出しに失敗して部品を把持できないこともあり、複数の部品が絡まって、ひとかたまりの状態で仮置き台４に転がることもあり、また、複数の部品が絡まらずに、それぞれが仮置き台４の上に転がることもある。
【００４４】
上記のいずれの状態も、第１ロボット３が上記動作を実行した直後に、仮置き台４を２次元ビジョンセンサ５で撮像することにより、容易に判別することができる。例えば、バラ積み部品箱２からの部品の取り出しに失敗した場合は、第１ロボット３による摘み出し操作を再度行う。
【００４５】
また、複数の部品が絡まって、ひとかたまりの状態で仮置き台４に転がった場合は、仮置き台４の天板を反転させる排除部など（図示せず）を用いて、部品をラインアウトさせる。なお、ラインアウトとは、例えば部品捨て箱（図示せず）を用意しておき、部品捨て箱内に部品を廃棄する、などを行うことにより、容易に実現することができる。
【００４６】
一方、複数の部品が絡まることなく仮置き台４に転がった場合は、後段のロボット群６のうちの１つのロボットが、部品を１つずつハンドリングするか、１つの部品のみをハンドリングした後に、仮置き台４の天板を反転させる排除部などで、残りの部品をラインアウトさせる。
【００４７】
ロボット群６において、ロボット６ａは、平行チャックハンドにより仮置き台４から部品を摘み上げる。以下、ロボット６ａ、６ｂ、６ｃの相互間で、部品の裏表などを反転させながら、受け渡しした後、ロボット６ｃは、部品整列用のパレット８の上に部品を整列配置する。なお、取り扱う部品の形状が円筒状であって、軸周りの角度を区別する必要がある場合には、仮置き台４に専用の治具を設けて角度を固定するか、ロボット群６による受け渡し動作において角度を決定する。
【００４８】
これ以降は、上記部品供給動作による部品のハンドリング手順について説明する。２次元ビジョンセンサ５は、あらかじめ登録されたテンプレート画像を用いたテンプレートマッチング法により、仮置き台４に置かれた部品の位置姿勢を認識する。このとき、部品に複数の安定状態がある場合には、２次元ビジョンセンサ５は、それらすべての安定状態に対して認識プログラムを実行し、認識結果の信頼性が最も高い安定状態の結果を、全体の認識結果として採用する。前述のように、裏表が無関係の部品の場合には、安定姿勢は１つのみになる。
【００４９】
以上の処理により、仮置き台４に置かれた部品が、どの安定状態でかつどの位置姿勢にあるかを、３次元的に把握することができる。なぜなら、仮置き台４の高さが既知であり、かつ部品が単離されているので、どの安定状態であるかを判別できれば、部品の高さ位置が決定し、部品の姿勢ズレも平面内の回転のみになるからである。
【００５０】
なお、部品の平面内の位置ズレおよび回転は、２次元ビジョンセンサ５により計測することができる。２次元ビジョンセンサ５は、部品の位置姿勢の座標がどのテンプレート画像とマッチしたかを示す「パターンの識別情報」を出力する。また、２次元ビジョンセンサ５は、仮置き台４上に部品が存在しなかったこと、部品がセンサ視野から外れていること、または、部品の位置姿勢の座標がいずれのテンプレート画像ともマッチしなかったこと、を示す「識別情報」を出力する。
【００５１】
以上のように、２次元ビジョンセンサ５により、仮置き台４の上面に転がされた部品の３次元的な位置姿勢が計測された後、ロボット群６内の１つのロボット６ａは、各安定状態に応じて、ロボットプログラムにしたがった動作で部品を把持し、ロボット６ｂとの部品受け渡し動作を行う。
【００５２】
続いて、ロボット６ｂは、２次元ビジョンセンサ５で計測した部品の安定状態から、ロボット６ａがどのような動作を行うのか分かるので、ロボットプログラムにしたがって、各安定状態に応じて、ロボット６ａとの間で部品受け渡し動作を行う。
【００５３】
最後に、ロボット６ｃは、ロボット６ｂと同様に、２次元ビジョンセンサ５の認識した部品の安定状態から、ロボット６ｂがどのような動作を行うのか分かるので、ロボットプログラムにしたがって、各安定状態に応じて、ロボット６ｂとの間で部品受け渡し動作を行い、さらに整列用のパレット８への整列供給を行う。
【００５４】
ロボット６ａは、ロボット６ｂへの部品受け渡し後は、仮置き台４上の次の部品の把持に向かい、ロボット６ｂは、ロボット６ｃへ部品を受け渡し後は、次のロボット６ａからの部品受け渡しに備えた移動を行い、ロボット６ｃは、部品の整列後は、ロボット６ｂからの部品受け渡しに備えた移動を行う。
【００５５】
以上の手順により、第１ロボット３および各第２ロボット６ａ〜６ｃが常に動き続けるパイプライン処理が実現されるので、部品の姿勢を複数回変更したとしても、部品の整列間隔は、単一のロボットが部品を移動させる一動作のうちの最も時間の長いものによって決定される。なお、各ロボットの動作時間は、実験的にほぼ同程度であることが観測されている。
【００５６】
図４は、本発明の実施の形態１における部品供給装置１０の全体の動作シーケンスを示すフローチャートであり、３次元ビジョンセンサ１、第１ロボット３、２次元ビジョンセンサ５およびロボット６ａ〜６ｃの各動作手順を、相互に関連付けて並列に示している。図４のシーケンスは、制御プログラム（ロボットプログラム）としてソフトウェア化されており、制御部７内に格納されているものとする。
【００５７】
図４において、３次元ビジョンセンサ１は、点線矢印で示すように、第１ロボット３の処理手順（後述のステップＳ１２）に応答して動作を開始し、まず、バラ積み部品箱２内の部品の距離画像を計測する（ステップＳ１）。
【００５８】
続いて、３次元ビジョンセンサ１は、把持候補を最適化し（ステップＳ２）、点線矢印で示すように、把持候補の座標を、制御部７を介して第１ロボット３に送出する（ステップＳ３）。以下、ステップＳ１〜Ｓ３の動作完了により、ステップＳ１に戻る。
【００５９】
第１ロボット３は、まず、３次元ビジョンセンサ１の視界を遮らないように退避座標に移動し（ステップＳ１１）、３次元ビジョンセンサ１による前述の計測を要求する（ステップＳ１２）。第１ロボット３は、３次元ビジョンセンサ１の計測により把持候補の座標を取得すると、把持座標に移動し（ステップＳ１３）、ハンド３ｈを閉動作させて把持候補を把持する（ステップＳ１４）。
【００６０】
続いて、第１ロボット３は、仮置き台４の座標に移動し（ステップＳ１５）、ハンド３ｈを開動作させて、把持した部品を仮置き台４の上に転がす（ステップＳ１６）。以下、ステップＳ１１〜Ｓ１６の動作完了により、ステップＳ１１に戻る。
【００６１】
２次元ビジョンセンサ５は、点線矢印で示すように、ロボット６ａの処理手順（後述のステップＳ３２）に応答して動作を開始し、まず、仮置き台４上の画像を計測する（ステップＳ２１）。
【００６２】
続いて、２次元ビジョンセンサ５は、計測画像とテンプレート画像とのテンプレートマッチングを行い（ステップＳ２２）、点線矢印で示すように、パターン識別情報および把持座標を、制御部７を介してロボット６ａに送出する（ステップＳ２３）。以下、ステップＳ２１〜Ｓ２３の動作完了により、ステップＳ２１に戻る。
【００６３】
ロボット６ａは、まず、２次元ビジョンセンサ５の視界を遮らないように退避座標に移動し（ステップＳ３１）、２次元ビジョンセンサ５による前述の計測を要求する（ステップＳ３２）。ロボット６ａは、２次元ビジョンセンサ５の計測によりパターン識別情報および把持座標を取得すると、計測結果（制御部７内の部品情報）に応じて、ステップＳ３１、Ｓ３２、Ｓ３４への分岐判定を行い、判定結果にしたがう分岐動作を行う（ステップＳ３３）。
【００６４】
ロボット６ａは、２次元ビジョンセンサ５から適正な把持座標が得られた場合には、仮置き台４上の把持座標に移動し（ステップＳ３４）、ハンドを閉動作させて仮置き台４上の部品を把持する（ステップＳ３５）。
【００６５】
続いて、ロボット６ａは、隣のロボット６ｂへの部品渡し姿勢に移動し（ステップＳ３６）、部品の引き取り待ち状態に移行する（ステップＳ３７）。ステップＳ３７は、点線矢印で示すように、ロボット６ｂの部品待ち状態（ステップＳ４２）にリンクする。
【００６６】
ロボット６ａは、破線矢印で示すように、ロボット６ｂのハンド閉動作（ステップＳ４４）を確認した時点で、ハンドを開動作させて、自身が把持していた部品をロボット６ｂに渡す（ステップＳ３８）。以下、ステップＳ３１〜Ｓ３８の動作完了により、ステップＳ３１に戻る。
【００６７】
ロボット６ｂは、まず、ロボット６ａの動作空間を遮らないように退避座標に移動し（ステップＳ４１）、ロボット６ａの引き取り待ち状態（ステップＳ３７）に応答して、ロボット６ａからの部品待ち状態に移行する（ステップＳ４２）。ロボット６ｂは、ロボット６ａの部品送り座標に移動し（ステップＳ４３）、ハンドを閉動作させて、ロボット６ａが把持していた部品を把持する（ステップＳ４４）。
【００６８】
続いて、ロボット６ｂは、部品姿勢を変更させて（ステップＳ４５）、さらに隣のロボット６ｃへの部品渡し姿勢に移動し（ステップＳ４６）、部品の引き取り待ち状態に移行する（ステップＳ４７）。ステップＳ４７は、点線矢印で示すように、ロボット６ｃの部品待ち状態（ステップＳ５２）にリンクする。
【００６９】
ロボット６ｂは、破線矢印で示すように、ロボット６ｃのハンド閉動作（ステップＳ５４）を確認した時点で、ハンドを開動作させて、自身が把持していた部品をロボット６ｃに渡す（ステップＳ４８）。以下、ステップＳ４１〜Ｓ４８の動作完了により、ステップＳ４１に戻る。
【００７０】
ロボット６ｃは、まず、ロボット６ｂの動作空間を遮らないように退避座標に移動し（ステップＳ５１）、ロボット６ｂの引き取り待ち状態（ステップＳ４７）に応答して、ロボット６ｂからの部品待ち状態に移行する（ステップＳ５２）。ロボット６ｃは、ロボット６ｂの部品送り座標に移動し（ステップＳ５３）、ハンドを閉動作させて、ロボット６ｂが把持していた部品を把持する（ステップＳ５４）。
【００７１】
続いて、ロボット６ｃは、部品姿勢を変更させて（ステップＳ５５）、パレット８への部品挿入座標に移動し（ステップＳ５６）、ハンドを開動作させて、自身が把持していた部品をパレット８に挿入する（ステップＳ５７）。以下、ステップＳ５１〜Ｓ５７の動作完了により、ステップＳ５１に戻る。
【００７２】
ここで、２次元ビジョンセンサ５の計測結果（部品情報）に基づくロボット６ａの分岐動作（ステップＳ３３）について、具体的に説明する。ロボット６ａは、ステップ３３において、計測結果に基づく以下の判定処理と、判定結果にしたがう分岐動作とを行う。
【００７３】
まず、２次元ビジョンセンサ５の計測結果が、（Ａ）仮置き台４の上に部品が１つも存在しない状態を示す場合には、ロボット６ａは、ステップＳ３１に戻り、自身の待避座標に移動する。これと同時に、制御部７は、第１ロボット３の動作が適性に行われなかったものと見なして、第１ロボット３に対する動作指令を生成し、第１ロボット３に一連の動作（ステップＳ１１〜Ｓ１６）を再度実行させる。
【００７４】
また、２次元ビジョンセンサ５の計測結果が、（Ｂ）仮置き台４上の部品が２次元ビジョンセンサ５の視野から外れている状態を示す場合には、ロボット６ａは、仮置き台４から部品を排除する動作を行う。具体例には、ロボット６ａが仮置き台４上の部品をはじき飛ばして、仮置き台４上から排除する。
【００７５】
または、仮置き台４の天板を反転させる排除機構設け、制御部７からの指示により排除機構を動作させる、などの処理が行われる。仮置き台４から部品を排除した後は、ロボット６ａは、ステップＳ３１に戻り、待機姿勢に移動する。これと同時に、制御部７は第１ロボット３に対する動作指令を生成し、第１ロボット３に一連の動作（ステップＳ１１〜Ｓ１６）を再度実行させる。
【００７６】
また、２次元ビジョンセンサ５の計測結果（部品情報）が、（Ｃ）仮置き台４上の部品の静止姿勢がこれ以降に姿勢反転手数が多くなる状態を示す場合には、ロボット６ａは、仮置き台４上の部品を触って倒すなどして、姿勢反転手数（持ち替え回数）を減らす動作を行う。この部品姿勢反転手数低減動作の終了後、ロボット６ａは、ステップＳ３２に戻り、２次元ビジョンセンサ５の計測動作を再度実行させる。
【００７７】
さらに、２次元ビジョンセンサ５の計測結果（部品情報）が、（Ｄ）本装置が供給対象として扱う部品の種類が複数存在しかつ部品姿勢が適性でないことを示す場合には、ロボット６ａは、仮置き台４から部品を排除する動作を行い、ステップＳ３１に戻って待避座標に移動する。これと同時に、制御部７は、第１ロボット３に対する動作指令を生成し、第１ロボット３に一連の動作（ステップＳ１１〜Ｓ１６）を再度実行させる。
【００７８】
上記（Ｄ）のように、複数種類の部品を供給対象とする場合には、バラ積み部品箱２内に升目を切って異なる部品を分離供給することになるが、作業者が違う升目に種類の異なる部品を間違えて入れてしまうことがあり得る。この場合、第１ロボット３が各升目に対して順番に抽出作業を行うと、間違った部品に行き当たったとき、本来の順番とは異なる部品を抽出して仮置き台４上に乗せることになるが、２次元ビジョンセンサ５のパターン計測結果により、異種部品であることを判定することができる。
【００７９】
次に、部品供給装置１０の行動計画部２０について説明する。行動計画部２０は、ロボットの動作を制御するためのロボットプログラムを生成する。すなわち、作業者（ユーザ）は、行動計画部２０に所望のロボットプログラムを生成させることが可能となっている。また、部品供給装置１０のロボットに取り付けられるハンドのハンド３Ｄデータ３１と、バラ積み部品箱２内に収納される部品の部品形状３Ｄデータ３２とがあらかじめ用意され、作業者によって行動計画部２０に入力される。
【００８０】
次に、行動計画部２０の構成および動作について、図５を参照しながら具体的に説明する。図５は、本発明の実施の形態１における部品供給装置１０の行動計画部２０を示すブロック構成図である。
【００８１】
図５において、行動計画部２０は、把持可能姿勢算出部２１、把持動作画像生成部２２、安定姿勢算出部２３、安定姿勢画像生成部２４、持ち替えパス算出部２５、一連動作画像生成部２６、姿勢指定部２７、持ち替え可能性算出部２８、プログラム生成部２９およびＨＭＩ部３０を備える。なお、行動計画部２０は、ＣＰＵおよびプログラムを記憶したメモリから構成されている。
【００８２】
なお、ここでは、行動計画部２０に入力されるハンド３Ｄデータ３１および部品形状３Ｄデータ３２の一例として、図６に示すハンドの３Ｄモデルおよび図７に示す部品の３Ｄモデルを用いた場合を例示して説明する。図６は、本発明の実施の形態１におけるハンド３Ｄデータ３１の一例を示す説明図である。図７は、本発明の実施の形態１における部品形状３Ｄデータ３２の一例を示す説明図である。
【００８３】
なお、これらのモデルは、一般的な３Ｄモデルフォーマットであればよい。また、図６に示すハンドは、２本の指を持つ平行グリッパであり、例えば、指の長さが６０ｍｍ、指の幅が２ｍｍ、指の厚さが２ｍｍ、最大指間隔が１２ｍｍ、ベース部半径が３０ｍｍ、ベース高さが２０ｍｍというように具体的な寸法を与えることができる。２本の指は、把持動作を行うが、その動作の方法の情報、例えば指の並進動作の軌道をモデルに与えることが出来る。さらに、図７に示す部品にも同様に具体的な寸法を与えることができる。
【００８４】
把持可能姿勢算出部２１は、ロボットに取り付けられるハンドの３Ｄモデルを示すハンド３Ｄデータ３１と、バラ積み部品箱２内に収納される部品の３Ｄモデルを示す部品形状３Ｄデータ３２とが入力される。また、把持可能姿勢算出部２１は、部品形状３Ｄデータ３２に結びつけられた部品座標系に基づき、別途定める刻み幅で、この部品を構成する平面のうち、平行面を全探索し、その平行面にハンドの爪を掛けることが可能なハンド姿勢の方向ベクトルを算出する。さらに、把持可能姿勢算出部２１は、別途定めるハンドの爪が部品に掛かる長さと、算出したハンド姿勢の方向ベクトルとに基づき、部品とハンドとの位置姿勢の組み合わせを、把持可能姿勢として算出する。
【００８５】
把持可能姿勢算出部２１が算出した把持可能姿勢は、把持可能姿勢表３３に記憶される。換言すれば、把持可能姿勢表３３には、把持が成立する可能性のある部品と、ハンドの位置姿勢との組み合わせの候補のリストが格納されている。なお、ハンド３Ｄデータ３１および部品形状３Ｄデータ３２において、３Ｄデータ化されていない信号ケーブルやその他部材が実際には存在する場合があり、この段階では、把持可能姿勢表３３に記憶された把持可能姿勢のうち、実際には把持姿勢が取れないものが含まれている。
【００８６】
把持動作画像生成部２２は、把持可能姿勢表３３に記憶された把持可能姿勢のそれぞれについてロボットのハンドによる部品の把持状態を、ＨＭＩ部３０の画面上にグラフィック表示する機能を持つ。この場合、作業者がこの画面を確認しながら把持可能姿勢表３３を修正することができる。具体的には、作業者が必要に応じて選択した把持可能姿勢を、把持可能姿勢表３３から取り除いて修正することができる。なお、ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）部３０は、例えば、ディスプレイ画面、キーボードおよびポインティングデバイス等で構成され、ディスプレイ部に、図形情報をグラフィック表示する機能を持つ。
【００８７】
ここで、ＨＭＩ部３０の画面上にグラフィック表示される把持可能姿勢表３３の一例について説明する。図８は、本発明の実施の形態１における把持可能姿勢表３３の一例を示す説明図である。
【００８８】
図８において、把持可能姿勢算出部２１によって算出された合計２２通り（０番〜２１番）の把持可能姿勢が示されており、各把持可能姿勢には、チェックマークが付けられている。このチェックマークは、後述する持ち替えパス算出部２５による計算で使用するか否かを表すものである。
【００８９】
例えば、ぐらつきやすい場合、明らかに部品を把持できない場合、把持してはいけない部位（例えば、傷や変形を嫌う部位）を把持する場合、またはロボットが何かと干渉する場合等に該当する把持可能姿勢については、作業者がチェックマークを外すことができる。これにより、チェックマークが外された把持可能姿勢は、持ち替えパス算出部２５による計算で使用されなくなる。このように、作業者は、ＨＭＩ部３０の画面を確認しながら必要に応じて選択した把持可能姿勢を、チェックマークを外すことによって、把持可能姿勢表３３から取り除くことができる。
【００９０】
安定姿勢算出部２３は、バラ積み部品箱２内に収納される部品の部品形状３Ｄデータ３２が入力される。また、安定姿勢算出部２３は、入力された部品形状３Ｄデータ３２に基づき、部品形状３Ｄデータに対応する部品を包む最小凸包を構成する全ての平面を算出する。さらに、安定姿勢算出部２３は、この部品の重心から算出した各平面に向けて垂線を降ろしたとき、垂線の足が各平面内に降りているかどうかを判定する。
【００９１】
ここで、垂線の足が平面内に降りている平面は、仮置き台４上にこの部品を転がしたときに、その平面を下にして部品が静定する可能性のある安定面である。安定姿勢算出部２３は、この判定に基づき、仮置き台４上においてこの安定面を下にする姿勢に相当する安定姿勢を複数個算出する。なお、静定するとは、部品をある姿勢で平面に置いたときに、部品が倒れずにその姿勢を維持するということを意味する。
【００９２】
また、安定姿勢算出部２３が算出した部品の安定姿勢は、平面上の安定姿勢表３４（以降では、単に安定姿勢表３４と称す）に記憶される。なお、この段階では、安定姿勢表３４に記憶された部品の安定姿勢のうち、実際には、部品をハンドで把持することができないものが含まれている。例えば、部品が安定姿勢であっても、ハンドが仮置き台４上の部品を把持しようとするときに、仮置き台４の上面に干渉する場合が該当する。また、ハンド３Ｄデータ３１および部品形状３Ｄデータ３２において、３Ｄデータ化されていない信号ケーブルやその他部材が実際には存在する場合も該当する。さらに、部品が安定姿勢であれば、理論上は、仮置き台４上に静定するものの、接地面が小さくて、振動を与えるとすぐにも倒れる場合も該当する。
【００９３】
安定姿勢画像生成部２４は、安定姿勢表３４に記憶された安定姿勢のそれぞれについて部品の静定状態を、ＨＭＩ部３０の画面上にグラフィック表示する機能を持つ。この場合、作業者がこの画面を確認しながら安定姿勢表３４を修正することができる。具体的には、作業者が必要に応じて選択した安定姿勢を、安定姿勢表３３から取り除いて修正することができる。
【００９４】
ここで、ＨＭＩ部３０の画面上にグラフィック表示される安定姿勢表３４の一例について説明する。図９は、本発明の実施の形態１における安定姿勢表３４の一例を示す説明図である。
【００９５】
図９において、安定姿勢算出部２３によって算出された合計９通り（０番〜８番）の部品の安定姿勢が示されており、各安定姿勢には、図８と同様にチェックマークが付けられている。このチェックマークは、後述する持ち替えパス算出部２５による計算で使用するか否かを表すものである。すなわち、図９は、仮置き台４上の平面に各安定姿勢で部品を置いた場合を模したものである。
【００９６】
例えば、ぐらつきやすい場合、明らかに部品を把持できない場合、または部品の安定姿勢が把持してはいけない姿勢である場合等に対応する安定姿勢については、作業者がチェックマークを外すことができる。これにより、チェックマークが外された安定姿勢は、持ち替えパス算出部２５による計算で使用されなくなる。このように、作業者は、ＨＭＩ部３０の画面を確認しながら必要に応じて選択した安定姿勢を、チェックマークを外すことによって、安定姿勢表３４から取り除くことができる。
【００９７】
また、図９に示すＳｃｏｒｅは、その安定姿勢が、何らかの外乱により、別の安定姿勢に遷移する度合いを表したものである。すなわち、このＳｃｏｒｅは、例えば、部品に対して振動が加わったり、ハンドが少し触れたりすると部品が倒れるといった度合いを表すものである。さらに、このＳｃｏｒｅの数値は、次の安定姿勢に遷移するのに必要なエネルギーの大きさを示しており、数値が大きい場合には、その安定姿勢が安定していることを表し、数値が小さい場合には、少し外乱が加わると倒れやすいことを表している。
【００９８】
なお、安定姿勢算出部２３の動作によって安定姿勢表３４が得られた後に、平面上の情報から２次元ビジョンセンサ５で撮像した様子を推定することができる。具体的には、各部品に対応する部品形状３Ｄデータ３２を、各安定姿勢で平面に静定させたときに平面への投影輪郭を計算すればよい。この投影輪郭を各部品間で相互に比較しながら算出された輪郭が似ているか否かの評価値（例えば、輪郭のハウスドルフ距離等）、あるいは２次元ビジョンセンサ５の認識アルゴリズムとして使用予定のテンプレートマッチングアルゴリズムを各部品間で相互に適用して算出されたマッチング評価値に基づき、各部品間において相互に誤認識する可能性のある複数の安定姿勢を抽出することができる。このような複数の安定姿勢を安定姿勢画像生成部２４がＨＭＩ部３０に表示し、この表示に基づき作業者が必要に応じてチェックマークを外すことができるように構成することによって、２次元ビジョンセンサ５による姿勢の同定を、正確に行うことができる効果がある。
【００９９】
持ち替えパス算出部２５は、安定姿勢表３４に記憶された安定姿勢と、把持可能姿勢表３３に記憶された把持可能姿勢との組み合わせのうち、仮置き台４とハンドとが干渉しない組み合わせを算出する。すなわち、持ち替えパス算出部２５は、仮置き台４上での部品の各静定状態に対して、部品を把持できるハンドの位置姿勢を算出する。また、持ち替えパス算出部２５は、この算出結果を持ち替えグラフ３５に記載する。
【０１００】
また、持ち替えパス算出部２５は、把持可能姿勢表３３に記憶された把持可能姿勢の組み合わせのうち、２つのハンドで同じ部品を同時に把持してハンド同士が干渉しない組み合わせを算出する。すなわち、持ち替えパス算出部２５は、一方のハンドから他方のハンドに部品を受け渡すことができる２つのハンドの位置姿勢を算出する。また、持ち替えパス算出部２５は、この算出結果を持ち替えグラフ３５に併せて記載する。
【０１０１】
ここで、持ち替えパス算出部２５による算出結果が記載された持ち替えグラフ３５の一例について説明する。図１０は、本発明の実施の形態１における持ち替えグラフ３５の一例を示す説明図である。
【０１０２】
図１０において、図８に示す合計２２通り（０番〜２１番）の把持可能姿勢と、図９に示す合計９通り（０番〜８番）の安定姿勢とをノードとしている。すなわち、このグラフのノードは、（１）ハンドが部品をある姿勢で把持している状態、（２）仮置き台４上の部品がある姿勢で静定している状態を表している。なお、図９の安定姿勢を示すノードに対しては、各番号の前にｓｆを付している。また、把持可能姿勢表３３および安定姿勢表３４において、チェックマークが外された姿勢については、ノードとして、持ち替えグラフ３５に記載されない。
【０１０３】
また、持ち替えグラフ３５には、各ノード間の遷移パスがグラフ構造で記録されている。すなわち、このグラフの遷移パスは、（１）仮置き台４上にある姿勢で静定する部品をハンドがある姿勢で把持すること（ピックアップ）が可能であること、（２）一方のハンドがある姿勢で把持する部品を他方のハンドがある姿勢で把持すること（受け渡し）が可能であること、（３）ハンドがある姿勢で把持する部品を仮置き台４上にある姿勢で静定させること（リリース）が可能であることを表している。
【０１０４】
図１０において、２つのノードが直線で直接結ばれていれば、一方のノードに対応する姿勢から他方のノードに対応する姿勢への直接的な遷移が可能であることを示し、ノード間を接続する直線が遷移パスに相当する。
【０１０５】
例えば、図１０に示すように、安定姿勢表３４内の１番の安定姿勢に対応するノード（ノード（ｓｆ１））と、把持可能姿勢表３３内の１０番の把持可能姿勢に対応するノード（ノード（１０））とは、直線で結ばれている。この場合、このノード間が遷移可能であるといえる。すなわち、仮置き台４上にノード（ｓｆ１）に対応する安定姿勢で静定する部品をハンドがノード（１０）に対応する把持可能姿勢でピックアップすることが可能であるといえる。
【０１０６】
また、図１０において、２つのノードが直線で直接結ばれていなければ、一方のノードに対応する姿勢から他方のノードに対応する姿勢への直接的な遷移が不可能であることを示す。さらに、図１０において、２つのノードが直線で直接結ばれていなくても、これらのノードと異なるノードを経由することで、一方のノードに対応する姿勢から他方のノードに対応する姿勢への間接的な遷移が可能であることを示す。
【０１０７】
例えば、ノード（ｓｆ１）およびノード（５）は、直線で直接結ばれていない。すなわち、仮置き台４上にノード（ｓｆ１）に対応する安定姿勢で静定する部品をハンドがノード（５）に対応する把持可能姿勢でピックアップすることが不可能である。
【０１０８】
しかしながら、異なるノード（１０）を経由点として、ノード（ｓｆ１）→ノード（１０）→ノード（５）の順に遷移することで、最小経路でノード（ｓｆ１）からノード（５）に遷移可能であるといえる。すなわち、仮置き台４上にノード（ｓｆ１）に対応する安定姿勢で静定する部品を一方のハンドがノード（１０）に対応する把持可能姿勢でピックアップするとともに、このハンドがこの姿勢で把持する部品を他方のハンドがノード（５）に対応する把持可能姿勢で受け渡しをすることが可能であるといえる。
【０１０９】
このように、持ち替えパス算出部２５による算出によって持ち替えグラフ３５に記録された各ノード間の遷移パスに基づき、１つのノードに対応する姿勢から別のノードに対応する姿勢に遷移することが可能であるか否かを判定することができる。
【０１１０】
なお、参照のため、図１０の持ち替えグラフ３５の各ノード間の接続関係について、図１１Ａ〜１１Ｃに示す。図１１Ａ〜１１Ｃは、本発明の実施の形態１における持ち替えグラフ３５の各ノード間の接続関係を示す説明図である。
【０１１１】
図１１Ａ〜１１Ｃにおいて、縦軸の１つのノードに対応する姿勢から横軸の１つのノードに対応する姿勢への直接的な遷移が可能であれば、これらの２つのノードに対応するセルに丸印が表記されている。一方、縦軸の１つのノードに対応する姿勢から横軸の１つのノードに対応する姿勢への直接的な遷移が不可能であれば、これらの２つのノードに対応するセルには何も表記されていない（セルが空欄である）。
【０１１２】
例えば、前述したように、仮置き台４上にノード（ｓｆ１）に対応する安定姿勢で静定する部品をハンドがノード（１０）に対応する把持可能姿勢でピックアップすることが可能であるので、図１１Ａに示すように、縦軸のノード（ｓｆ１）および横軸のノード（１０）に対応するセルには丸印が表記されている。一方、仮置き台４上にノード（ｓｆ１）に対応する安定姿勢で静定する部品をハンドがノード（５）に対応する把持可能姿勢でピックアップすることが不可能であるので、図１１Ａに示すように、縦軸のノード（ｓｆ１）および横軸のノード（５）に対応するセルには何も表記されていない。
【０１１３】
このように、図１１Ａ〜１１Ｃにおいて、縦軸のノードおよび横軸のノードに対応するセルに丸印が表記されていれば、これらのノードについては、図１０の持ち替えグラフ３５において直線で結ばれることとなる。
【０１１４】
一連動作画像生成部２６は、持ち替えグラフ３５に記載されたノードおよび遷移パスのそれぞれについて、前述したピックアップ、受け渡し、リリースの動作状態を、ＨＭＩ部３０の画面上にグラフィック表示する機能を持つ。この場合、作業者がこの画面を確認しながら、前述した方法で、把持可能姿勢表３３および安定姿勢表３４を修正することができる。なお、持ち替えグラフ３５のノードを直接取り除くことができるように構成することで、持ち替えグラフ３５を修正するように構成してもよい。
【０１１５】
姿勢指定部２７は、作業者によるＨＭＩ部３０を用いた選択に基づき、持ち替えグラフ３５のノードのうち２つのノードを指定する。すなわち、作業者は、把持可能姿勢表３３または安定姿勢表３４の中から２種類の所望の姿勢を選択することとなる。
【０１１６】
持ち替え可能性算出部２８は、姿勢指定部２７が指定した２つのノード間を結ぶ遷移パスが存在するか否かを、持ち替えグラフ３５を探索することで判定する。
【０１１７】
なお、２つのノード間を直接的に結ぶ遷移パスまたは他のノードを経由して２つのノード間を間接的に結ぶ遷移パスが存在すれば、持ち替え可能性算出部２８は、２つのノード間を結ぶ遷移パスが存在すると判定する。一方、このような遷移パスがまったく存在しなければ、持ち替え可能性算出部２８は、２つのノード間を結ぶ遷移パスが存在しないと判定する。
【０１１８】
また、持ち替え可能性算出部２８は、部品供給装置１０のロボットの使用台数および仮置き台４の使用有無を考慮して、持ち替えグラフ３５の各ノード間を遷移するのに必要な持ち替え回数を算出すべく、持ち替えグラフ３５の全探索計算を行う。
【０１１９】
この計算結果として、縦軸が持ち替え前の（元の）ノードに相当し、横軸が持ち替え後のノードに相当する持ち替え表が得られる。なお、縦軸および横軸のノードは、前述した持ち替えグラフ３５のノードに相当する。また、持ち替え表のそれぞれのセルに示された数値は、縦軸のノードから横軸のノードに遷移するために必要な最小の持ち替え回数を示すものであり、数値が０であれば持ち替える必要がないことを示す。また、セルが空欄であれば、持ち替えを何回しても縦軸のノードから横軸のノードに遷移できない（持ち替えができない）ことを示す。
【０１２０】
ここで、持ち替え可能性算出部２８による計算結果として得られる持ち替え表の一例について説明する。なお、ここでは、持ち替えを行う際に、１台のロボットと仮置き台４の使用を前提とする場合と、２台のロボットと仮置き台４の使用を前提とする場合と、２台のロボットの使用を前提とする場合とにおいてそれぞれ得られる計算結果を例示する。
【０１２１】
図１２は、本発明の実施の形態１において、ロボット１台と仮置き台４との使用を前提として得られる持ち替え表を示す説明図である。図１３は、本発明の実施の形態１において、ロボット２台と仮置き台４との使用を前提として得られる持ち替え表を示す説明図である。図１４は、本発明の実施の形態１において、ロボット２台と仮置き台４との使用、またはロボット２台の使用を前提として得られる持ち替え表を示す説明図である。
【０１２２】
図１２において、例えば、縦軸（表中のＦｉｒｓｔ  Ｇｒａｓｐに対応）のノード（０）および横軸（表中のＤｅｓｉｒｅｄ  Ｇｒａｓｐに対応）のノード（０）に対応するセルの数値が０である。これは、１台のロボットがすでにノード（０）に対応する把持可能姿勢で部品を把持しているので、仮置き台４上に部品を安定姿勢で静定させることで持ち替えをする必要がないことを示している。このように、縦軸のノードおよび横軸のノードがそれぞれ同じであれば、セルの数値が０となる。
【０１２３】
また、図１２において、縦軸のノード（０）および横軸のノード（１）に対応するセルの数値が２である。これは、縦軸のノード（０）から横軸のノード（１）に遷移する場合に、１台のロボットがノード（０）に対応する把持可能姿勢で把持する部品を、仮置き台４上に安定姿勢で静定させて（持ち替え回数を１回とカウントする）、さらに、安定姿勢の部品を横軸のノード（１）に対応する把持可能姿勢で把持する（持ち替え回数を１回とカウントする）ことができることを示している。すなわち、持ち替えグラフ３５を探索した結果、先の図１０に示すように、ノード（０）からノード（１）に遷移するための遷移パスのうち、最小経路の遷移パス（例えば、ノード（０）→ノード（ｓｆ４）→ノード（１））を見つけたこととなる。
【０１２４】
このように、図１２においては、ロボット１台と仮置き台４との使用を前提とした場合の縦軸のノードから横軸のノードに遷移するのに必要な持ち替え回数（最小経路の遷移パス）がそれぞれのノードに対応するセルに示されている。
【０１２５】
図１３において、縦軸のノード（０）および横軸のノード（０）に対応するセルの数値が２である。これは、一方のロボットが縦軸のノード（０）に対応する把持可能姿勢で把持する部品を、仮置き台４上に安定姿勢で静定させて、さらに、安定姿勢の部品を他方のロボットが横軸のノード（０）に対応する把持可能姿勢で把持することができることを示している。すなわち、持ち替えグラフ３５を探索した結果、先の図１０に示すように、ノード（０）からノード（ｓｆ）を経由してノード（０）に遷移するための遷移パスのうち、最小経路の遷移パス（例えば、ノード（０）→ノード（ｓｆ４）→ノード（０））を見つけたこととなる。
【０１２６】
また、図１３において、例えば、縦軸のノード（０）および横軸のノード（１）に対応するセルの数値が２である。これは、縦軸のノード（０）から横軸のノード（１）に遷移する場合に、一方のロボットがノード（０）に対応する把持可能姿勢で把持する部品を、仮置き台４上に安定姿勢で静定させて、さらに、安定姿勢の部品を他方のロボットが横軸のノード（１）に対応する把持可能姿勢で把持することができることを示している。すなわち、持ち替えグラフ３５を探索した結果、先の図１０に示すように、ノード（０）からノード（ｓｆ）を経由してノード（１）に遷移するための遷移パスのうち、最小経路の遷移パス（例えば、ノード（０）→ノード（ｓｆ４）→ノード（１））を見つけたこととなる。
【０１２７】
このように、図１３においては、ロボット２台と仮置き台４との使用を前提とした場合の縦軸のノードから横軸のノードに遷移するのに必要な持ち替え回数（最小経路の遷移パス）がそれぞれのノードに対応するセルに示されている。
【０１２８】
図１４において、縦軸のノード（０）および横軸のノード（０）に対応するセルの数値が０である。これは、一方のロボットがすでにノード（０）に対応する把持可能姿勢で部品を把持しているので、他方のロボットに部品を把持させることで持ち替えをする必要がないことを示している。このように、縦軸のノードおよび横軸のノードがそれぞれ同じであれば、セルの数値が０となる。
【０１２９】
また、図１４において、例えば、縦軸のノード（０）および横軸のノード（１）に対応するセルの数値が２である。これは、ロボット２台と仮置き台４との使用を前提とした場合と、ロボット２台の使用を前提とした場合とを比較した結果、持ち替え回数がより少ない前者の場合の結果を示している。また、ロボット２台と仮置き台４との使用を前提とした上で、縦軸のノード（０）から横軸のノード（１）に遷移する場合に、一方のロボットがノード（０）に対応する把持可能姿勢で把持する部品を、仮置き台４上に安定姿勢で静定させて、さらに、安定姿勢の部品を他方のロボットが横軸のノード（１）に対応する把持可能姿勢で把持することができることを示している。すなわち、持ち替えグラフ３５を探索した結果、先の図１０に示すように、ノード（０）からノード（ｓｆ）を経由してノード（１）に遷移するための遷移パスのうち、最小経路の遷移パス（例えば、ノード（０）→ノード（ｓｆ４）→ノード（１））を見つけたこととなる。
【０１３０】
また、図１４において、例えば、縦軸のノード（０）および横軸のノード（４）に対応するセルの数値が１である。これは、ロボット２台と仮置き台４との使用を前提とした場合と、ロボット２台の使用を前提とした場合とを比較した結果、持ち替え回数がより少ない後者の場合の結果を示している。また、ロボット２台の使用を前提とした上で、縦軸のノード（０）から横軸のノード（４）に遷移する場合に、一方のロボットがノード（０）に対応する把持可能姿勢で把持する部品を、他方のロボットが横軸のノード（４）に対応する把持可能姿勢で把持することができることを示している。すなわち、持ち替えグラフ３５を探索した結果、先の図１０に示すように、ノード（０）からノード（４）に遷移するための遷移パス（ノード（０）→ノード（４））を見つけたこととなる。
【０１３１】
このように、図１４においては、ロボット２台と仮置き台４との使用を前提とした場合の持ち替え回数と、ロボット２台の使用を前提とした場合の持ち替え回数とを比較した結果、より少ない持ち替え回数がそれぞれのノードに対応するセルに示されている。
【０１３２】
また、持ち替え可能性算出部２８は、前述した持ち替えグラフ３５の全探索計算をすることで、部品整列作業の直行率の推定またはタクトタイムの推定を行うこともできる。具体的には、持ち替え可能性算出部２８の計算結果において得られた持ち替え表のセルの数値に対して、タクトタイムに相当する重み係数を乗じて総和を取れば、タクトタイムの推定計算を行うことができる。なお、セルが空欄であれば、ラインアウトとなり、タクトタイムが伸びる原因となる。
【０１３３】
また、仮置き台４上で部品が取り得る安定姿勢のうち、それぞれについて発生確率を別途計算し、この計算結果をタクトタイムの推定計算を行う際に考慮してもよい。部品供給装置１０のハンドの形状、ハンドの開き幅、ロボットの使用台数および仮置き台４の有無といった設計パラメータあるいはロボットに所望の動作をさせるための制御パラメータ等を変更することで、各パラメータ条件における直行率またはタクトタイムの変化を調べることもできる。
【０１３４】
また、作業者は、持ち替えグラフ３５の全探索計算によって得られた直行率またはタクトタイムの推定値を比較することで、最適な把持可能姿勢を見つけることができ、これを参考にパレット８への部品整列作業を行う直前のハンドの把持姿勢を最適設計することができる。
【０１３５】
また、持ち替え可能性算出部２８は、持ち替え表をＨＭＩ部３０に画面表示して作業者に提示することで、作業者が最適な設計パラメータおよび制御パラメータを容易に決定することができ、部品整列作業の効率化を図ることができる。さらには、持ち替え可能性算出部２８は、持ち替え表だけでなく、直行率またはタクトタイムの推定値を作業者に提示することで、作業者が最適な設計パラメータおよび制御パラメータをより容易に決定することができる。
【０１３６】
プログラム生成部２９は、作業者が決定した設計パラメータおよび制御パラメータを踏まえ、持ち替えグラフ３５をもとに、仮置き台４上で部品が取り得る安定姿勢（ノード（ｓｆ０）〜ノード（ｓｆ８））のすべてについて、姿勢指定部２７が指定したパレット８への部品整列作業を行う直前のハンドの把持姿勢（最終ノード）に至るまでの一連の持ち替え動作を制御するためのロボットプログラムを生成する。なお、最終ノードに至るまでの一連の持ち替え動作は、作業者によって最終的に決定され、部品供給装置１０内のそれぞれのロボットのハンドは、このロボットプログラムにしたがって、ピックアップ、リリース、または受け渡し動作を行う。
【０１３７】
また、前述したように、一連動作画像生成部２６、把持動作画像生成部２２およびＨＭＩ部３０によって、ロボットのハンドが部品を把持する姿勢について、３Ｄデータを用いたアニメーションが表示される。したがって、作業者は、精密な現物合わせの位置教示が必要な箇所、すなわちロボットプログラム中の教示点について、その表示を見ながら精密な現物合わせ教示作業を実施することができる。
【０１３８】
次に、行動計画部２０の一連の動作手順について、詳細に説明する。はじめに、作業者は、ハンド３Ｄデータ３１および部品形状３Ｄデータ３２を行動計画部２０に入力する。これらの入力に伴い、前述したように、把持可能姿勢算出部２１が把持可能姿勢表３３を算出し、安定姿勢算出部２３が安定姿勢表３４を算出する。続いて、持ち替えパス算出部２５は、前述したように、把持可能姿勢表３３および安定姿勢表３４に基づき、持ち替えグラフ３５を算出する。
【０１３９】
このように、持ち替えパス算出部２５の動作によって、持ち替えグラフ３５が算出される段階まで進むと、作業者は、実機へのプログラム出力を実行するか、または事前検討を続けるかを選択することができる。
【０１４０】
まず、作業者が実機へのプログラム出力を実行することを選択した場合について説明する。この場合、作業者は、ＨＭＩ部３０に表示されたアイコンをポインティングデバイスでクリックするなどして、プログラム生成部２９を起動する。プログラム生成部２９は、起動後、持ち替えグラフ３５をもとに、ロボットプログラムを生成する。さらに、作業者は、ロボットプログラム中の教示点について、精密な現物合わせ教示作業を実施する。このようにして得られたロボットプログラムを実行することによって、部品供給装置１０が動作する。
【０１４１】
次に、作業者が事前検討を続ける選択をした場合について説明する。この場合、作業者は、姿勢指定部２７および持ち替え可能性算出部２８を動作させる。姿勢指定部２７および持ち替え可能性算出部２８は、コンピュータプログラムの実行形式として実装し、起動ボタンを備えるなどすればよい。この結果、起動ボタンをマウスでクリックするなどして動作開始させることが可能である。
【０１４２】
作業者は、ＨＭＩ部３０を用いて、ロボットのハンドで把持した姿勢、仮置き台４からのピックアップ姿勢を選択する。具体的には、前述したように、姿勢指定部２７は、作業者によるＨＭＩ部３０を用いた選択に基づき、持ち替えグラフ３５のノードのうち２つのノードを指定する。
【０１４３】
そうすると、持ち替え可能性算出部２８は、持ち替えグラフ３５を探索して、その２つのノードに対応する姿勢間をつなぐ持ち替え方法の有無を判定する。この場合、持ち替え可能性算出部２８は、持ち替えが成立すると判定すれば、その持ち替えのアニメーションが、一連動作画像生成部２６、ＨＭＩ部３０によって表示されるように構成してもよい。これにより、目的の持ち替えについて、作業者が実機を前に持ち替えが可能であるかどうかを悩んで無駄な時間を費やすことを防ぐことができるとともに、部品供給装置を動作させた場合に結局持ち替えができなかったなどの事態が生じず、作業時間が不定になることを防ぐことができる。
【０１４４】
また、持ち替え可能性算出部２８は、前述したように、持ち替えグラフ３５の全探索計算（図１２〜図１４参照）を行うことで、部品整列作業の直行率の推定、またはタクトタイムの推定を行う。これにより、作業者は、設計パラメータまたは制御パラメータを変更することでタクトタイムの変化を調べることができる。
【０１４５】
さらに、持ち替え可能性算出部２８は、作業者によるハンドが取りうる把持可能姿勢の順次選択に基づき、それぞれの把持可能姿勢に対応する直交率またはタクトタイムの推定値が得ることができる。これにより、作業者は、この推定値を比較することで、最適な把持可能姿勢を見つけることができ、これを参考にパレット８への部品整列作業を行う際のハンドの把持姿勢を最適設計することができる。また、作業者は、パレット８への部品整列作業を行う際に必要なロボットの最適台数および使用するロボットの最適動作を決定することができる。
【０１４６】
プログラム生成部２９を起動後、プログラム生成部２９は、作業者による以上の事前検討の結果によって決定した設計パラメータおよび制御パラメータを踏まえて、持ち替えグラフ３５をもとにロボットプログラムを生成する。
【０１４７】
以上のように、本発明の実施の形態１（図１〜図１４）に係る部品供給装置は、バラ積み部品箱２内に収納された部品の距離画像を計測する３次元ビジョンセンサ１（距離画像計測部）と、距離画像に基づきバラ積み部品箱２から部品を把持して摘み出す第１ロボット３（単離部）と、第１ロボット３により単離された部品の位置姿勢を、あらかじめ決められた動作で変更するロボット群６（位置姿勢変更部）と、距離画像計測部、単離部および位置姿勢変更部の動作および動作タイミングをロボットプログラムにしたがって制御する制御部７と、ロボットプログラムを生成する行動計画部２０を備えている。
【０１４８】
位置姿勢変更部は、第１ロボット３から部品を受け取って、部品の位置姿勢を変更するロボット群６（第２のロボット）を備えている。また、単離部は、第１ロボット３による把持後に解放されて（転がされた）１つ以上の部品が載置される仮置き台４を備えている。
【０１４９】
また、位置姿勢変更部は、仮置き台４上の部品の外形を計測する２次元ビジョンセンサ５（部品外形計測部）を備え、ロボット群６は、仮置き台４上にある部品を摘み上げて、部品の位置姿勢を変更する。さらに、ロボット群６は、複数のロボット６ａ〜６ｃからなり、仮置き台４から摘み上げた部品を複数のロボット６ａ〜６ｃの相互間で受け渡ししながら、あらかじめ決められた動作で部品の位置姿勢を変更する。
【０１５０】
また、行動計画部２０は、入力されたハンド３Ｄデータ３１および部品形状３Ｄデータ３２に基づき、ハンドによる部品の把持時の把持可能姿勢（把持可能姿勢表３３）を算出する把持可能姿勢算出部２１と、グラフィック表示された把持可能姿勢表３３から作業者が選択した把持可能姿勢を取り除く把持動作画像生成部２２と、入力された部品形状３Ｄデータ３２に基づき、仮置き台４に部品を静定させる時の安定姿勢（安定姿勢表３４）を算出する安定姿勢算出部２３と、グラフィック表示された安定姿勢表３４から作業者が選択した安定姿勢を取り除く安定姿勢画像生成部２４と、把持可能姿勢表３３および安定姿勢表３４に含まれる把持可能姿勢および安定姿勢をノードとして、各ノード間の遷移パスを示す持ち替えグラフ３５を算出する持ち替えパス算出部２５と、グラフィック表示された持ち替えグラフ３５から作業者が選択するノードを取り除く一連動作画像生成部２６と、作業者の選択に基づきノードを指定する姿勢指定部２７と、持ち替えグラフ３５に含まれるノードの遷移パスの全探索計算を行うことでタクトタイムまたは直行率を推定する持ち替え可能性算出部２８と、作業者が所望するロボットプログラムを生成するプログラム生成部２９と、ＨＭＩ部３０を備えている。
【０１５１】
以上、本発明の実施の形態１によれば、３次元ビジョンセンサおよび第１ロボットにより、バラ積み状態の部品を仮置き台上に位置決めし、２次元ビジョンセンサで部品の位置姿勢を認識した後に、複数のロボットにより部品を受け渡しながらパイプライン処理でハンドリングしてパレットに整列させるので、バラ積み状態の部品を高速に整列させることができる。すなわち、３次元ビジョンセンサを用いることにより、バラ積み供給される部品を整列させる（または、組立てる）装置が得られ、自動組立装置、自動組立ロボットなどに対して必ず必要な部品供給工程を革新することができる。
【０１５２】
また、並列処理時間を各第１ロボット、第２ロボットの動作時間と同等程度の時間に抑えることが可能なので、複雑な形状の部品であっても、整列処理のサイクルタイムが延長を回避することができる。特に、部品の位置姿勢変更部をロボットで構成した際に、ロボットの汎用性については、制御部内のソフトウェア変更およびロボットのハードウェア変更により対応可能である。また、ハードウェア変更については、基本的にはロボットハンドの大きさの変更程度のエンジニアリングを行い、その後にハードウェアを使い回して様々な部品の取扱いに対応することができ、生産機種の切り替えの迅速化、機種の切り替えの低コスト化に寄与する。
【０１５３】
また、ソフトウェアの変更のみで生産機種の切り替えを迅速に行うことができるので、部品ごとに専用ハンドを必要とせず、ハンドのコスト削減、ハンド設計時間の短縮、ハンド仮置き場所の削減が可能となる。また、複数種類の部品を供給対象とした場合でも、部品ごとに専用ハンドを必要とせず、ハンドのコスト削減、ハンド設計時間の短縮、ハンド仮置き場所の削減が可能となる。
【０１５４】
さらに、図１では、３次元ビジョンセンサ、２次元ビジョンセンサを、第１ロボットおよび第２ロボットとは別構成としたが、３次元ビジョンセンサを第１ロボットのハンド横に装着し、２次元ビジョンセンサ５を第２ロボットのハンド横に装着して、それぞれハンドアイ構成としてもよい。この場合、タクトタイムは増加するものの、バラ積み部品箱のサイズを３次元ビジョンセンサの視野よりも大きくすることができ、また、仮置き台のサイズを２次元ビジョンセンサの視野よりも大きくすることができる。
【０１５５】
また、部品を把持し、仮置き台に一旦置いて、あるいは、複数のロボット間で受け渡しして部品把持し直すといった持ち替え動作を最適化することができるとともに、さらに、ロボット台数、直行率およびタクトタイムのトレードオフの推定が可能となり、作業者が容易に所望の持ち替え動作をロボットにプログラミングすることができ、プログラミングを行う際の負担を軽減することができる。さらには、部品整列作業の効率化を実現するための具体的なプログラミング手法が確立したことで、ロボット動作が最適化された直行率の高い部品供給装置を得ることができる。
【符号の説明】
【０１５６】
１  ３次元ビジョンセンサ、２  バラ積み部品箱、３ｈ  ハンド、３ｔ  爪、３  第１ロボット、４  仮置き台、５  ２次元ビジョンセンサ、６ａ〜６ｃ  第２ロボット、６  ロボット群、７  制御部、８  パレット、１０  部品供給装置、２０  行動計画部、２１  把持可能姿勢算出部、２２  把持動作画像生成部、２３  安定姿勢算出部、２４  安定姿勢画像生成部、２５  持ち替えパス算出部、２６  一連動作画像生成部、２７  姿勢指定部、２８  持ち替え可能性算出部、２９  プログラム生成部、３０  ＨＭＩ部、３１  ハンド３Ｄデータ、３２  部品形状３Ｄデータ、３３  把持可能姿勢表、３４  安定姿勢表、３５  持ち替えグラフ。
【図１】
2015044274.tif 000003
【図２】
2015044274.tif 000004
【図３】
2015044274.tif 000005
【図４】
2015044274.tif 000006
【図５】
2015044274.tif 000007
【図６】
2015044274.tif 000008
【図７】
2015044274.tif 000009
【図８】
2015044274.tif 000010
【図９】
2015044274.tif 000011
【図１０】
2015044274.tif 000012
【図１１Ａ】
2015044274.tif 000013
【図１１Ｂ】
2015044274.tif 000014
【図１１Ｃ】
2015044274.tif 000015
【図１２】
2015044274.tif 000016
【図１３】
2015044274.tif 000017
【図１４】
2015044274.tif 000018