(57)【特許請求の範囲】
【請求項１】
撮像手段により撮像された複数の物体を含む画像を取得する取得手段と、
前記取得手段により取得された前記画像に基づいて、前記複数の物体から保持手段により取り出されて保持される対象物体を決定する決定手段と、
前記対象物体の位置に基づいて、前記対象物体の位置から目標位置までの経路を複数生成する生成手段と、
前記生成手段により生成された複数の経路から選択することによって前記対象物体を前記目標位置に搬送する搬送経路を決定する経路決定手段とを備え、
前記生成手段が生成する複数の経路は、前記対象物体を保持した後に前記撮像手段の撮像範囲外を経由し、その後前記撮像範囲内を経由して前記目標位置に至る第１の経路を含むことを特徴とする情報処理装置。
【請求項２】
前記生成手段が生成する複数の経路は、前記撮像手段の撮像範囲から前記保持手段が退避するための退避位置を経由せず、前記対象物体の位置と前記目標位置とを直線で結んだ第２の経路を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
更に、前記生成手段により生成された複数の経路に対して、前記決定手段により決定された対象物体を保持してから、次に保持する対象物体を保持するまでに要する時間を計算する計算手段と、
前記経路決定手段は、前記計算手段の計算結果に基づいて、前記搬送経路を決定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記経路決定手段は、前記計算手段により計算される時間が最短時間の経路を決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記経路決定手段が前記第１の経路を搬送経路として決定した場合に、前記取得手段は、前記保持手段が前記撮像範囲外を経由している間に、新たに前記複数の物体の画像を取得し、
前記決定手段は、前記保持手段が前記撮像範囲外から前記撮像範囲内を経由している間に、前記新たに取得された画像に基づき次に取り出されて保持される物体を決定する処理を行うことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記取得手段により取得された前記画像から前記複数の物体の位置姿勢を推定する推定手段をさらに備え、
前記決定手段は、前記推定手段の推定結果に基づいて、前記複数の物体から前記保持手段により取り出されて保持される前記対象物体を決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記決定手段により決定された前記対象物体の位置に対応する前記撮像範囲外の退避位置を記憶する記憶手段をさらに備え、
前記生成手段は、前記第１の経路として前記退避位置を経由するような経路を生成することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
情報処理装置の制御方法であって、
取得手段が、撮像手段により撮像された複数の物体を含む画像を取得する工程と、
決定手段が、前記取得された前記画像に基づいて、前記複数の物体から保持手段により取り出されて保持される対象物体を決定する工程と、
生成手段が、前記対象物体の位置に基づいて、前記対象物体の位置から目標位置までの経路を複数生成する工程と、
経路決定手段が、前記生成された複数の経路から選択することによって前記対象物体を前記目標位置に搬送する搬送経路を決定する工程と、
を有し、
前記生成する工程で生成された複数の経路は、前記対象物体を保持した後に前記撮像手段の撮像範囲外を経由し、その後前記撮像範囲内を経由して前記目標位置に至る第１の経路を含む
ことを特徴とする情報処理装置の制御方法。
【請求項９】
撮像手段により撮像された複数の物体を含む画像を取得する工程と、
前記取得された前記画像に基づいて、前記複数の物体から保持手段により取り出されて保持される対象物体を決定する工程と、
前記対象物体の位置に基づいて、前記対象物体の位置から目標位置までの経路を複数生成する工程と、
前記生成された複数の経路から選択することによって前記対象物体を前記目標位置に搬送する搬送経路を決定する工程と、
を有し、
前記生成する工程で生成された複数の経路は、前記対象物体を保持した後に前記撮像手段の撮像範囲外を経由し、その後前記撮像範囲内を経由して前記目標位置に至る第１の経路を含むことを特徴とする情報処理方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
ロボットハンドを制御して、ばら積みされたワークの中から対象物体（ターゲットワーク）を取り出すためには、まずカメラ等を用いてばら積みの状態を撮影し、何らかの手法を用いて、ロボットハンドが把持するワークの位置姿勢の推定を行う。そして、推定されたワークの位置姿勢に基づいて、ロボットハンドがワークを把持する動作を行うための経路を算出することが必要となる。
【０００３】
特許文献１では、ロボットハンドの予想される手先軌道を示す軌道テンプレートを予め複数登録しておき、各軌道テンプレートに基づいて、ロボットハンドと障害物との干渉を検査する。そして、検査結果により干渉が生じないと判定されると、干渉が生じないと判定された軌道テンプレートに基づいて、ロボットハンドの手先軌道を生成している。
【０００４】
特許文献２では、画像または距離画像に基づいて、物体が取り得る位置姿勢候補を求め、その位置姿勢候補に基づいて、空間を物体空間とそれ以外とに領域分割した環境モデルを作成する。そして、作成された環境モデルに基づいて、対象物体を取り出すためのロボットハンドの動作経路を生成している。
【０００５】
特許文献３では、ロボットハンドの接近経路および離隔経路として、異なる複数の経路パターンを経路パターン記憶部に記憶しておく。次に、視覚センサによって検出されたワークの位置に基づいて、経路パターン記憶部に記憶された複数の経路パターンから一つの経路パターンを選択する。その上で、ロボットハンドが向かうべき目標位置と実際のワークの位置とが一致するように、選択された経路パターンを修正したものを接近経路および離隔経路として規定し、規定された接近経路および離隔経路に沿ってロボットハンドを移動させるように制御している。
【０００６】
特許文献４では、ワーク取出しのサイクルタイムを短くするために、ロボットハンドがワークを把持しようとしている間にも、次回のワーク取出し用の撮影ができるように、ロボットハンドに遮蔽部を設置している。通常、ロボットハンドがワークを把持しようとしている間に撮影を行うと、ロボットハンドも画像に映り込み、後段の画像処理に支障をきたす。それに対し、遮蔽部を設置することで、画像中で遮蔽されている領域とされていない領域との分離を容易にし、後段の画像処理を可能にしている。
【０００７】
上述したように、ばら積みされたワークからロボットハンドにより順次ワークを取出すには、ロボットハンドがワークを把持する動作を行うための経路を算出することが必要となる。作業効率の面から、短時間で作業が終了するような経路を算出することが求められる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平５−１２７７１８号公報
【特許文献２】特開平１０−１２８６８６号公報
【特許文献３】特開２００６−１７５５３２号公報
【特許文献４】特開平１−１８３３９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の手法では、障害物との干渉の有無を基準として経路選択を行っており、作業時間を短縮するような経路を選択することは考慮されていない。
【００１０】
また特許文献２の手法では、把持対象物体とそれ以外の物体との間に、ロボットハンドが入り込む空間が存在することを保証するように動作経路を生成している。従って、この場合も、作業時間を短縮するような経路を選択することは考慮されていない。
【００１１】
また特許文献３の手法では、実際のワークの位置に応じて、他の物体との干渉を避けながらロボットハンドの動作の無駄を低減させるような経路パターンをあらかじめ用意しておくことで、作業時間の短縮を図っている。従って、特許文献３における経路パターン選択の基準はワークの位置であり、作業時間の長短ではない。さらには、ばら積みされたワークから、ロボットハンドにより順次ワークを取出すような場合の作業時間の短縮は考慮されていない。
【００１２】
また特許文献４の手法では、ロボットハンドに遮蔽部を設け、ロボットハンドがワークを把持しようとしている間にも、次回のワーク取出し用の撮影ができるようにすることで、ワーク取出しのサイクルタイムを短くしている。しかしながら、遮蔽されている領域にあるワークの画像は取得できないため、順次ワークを取出す際のターゲットワークの選定に制限が発生してしまう。
【００１３】
また、ばら積みされたワークから順次ワークを取出すような作業の作業時間を短縮化することを考えた場合、次のような問題点がある。
【００１４】
一般に、ばら積みされたワークから順次ワークを取出す場合には、まずカメラ等でばら積み状態を撮影し、撮影画像を用いてそれぞれのワークの位置や姿勢を推定することで、今回取出すべきワーク（ターゲットワーク）を決める。その後、ロボットハンドを制御して、ターゲットワークを把持させて、指定の取出し位置まで搬送する。この手順を順次繰り返す。
【００１５】
このような作業を高速に行うには、ロボットハンドがターゲットワークを把持してからなるべく早く次のターゲットワークのための撮影を行う必要がある。しかしながら、ロボットハンドがターゲットワークを把持した瞬間に撮影を行うと、撮影画像にロボットハンドが映り込んでしまい、ワークの位置姿勢の推定に支障をきたす。また、把持後の搬送途中に撮影する場合でも、撮影画像にロボットハンドが映り込んでしまう場合は、同様にワークの位置姿勢の推定に支障をきたす。
【００１６】
すなわち、一連のワーク取出しの作業時間を短縮するには、ターゲットワークの把持後なるべく早くカメラでの撮影を可能にするように、ロボットハンドを動作させる必要があるが、このような動作に関しては、これまで考慮されてなかった。
【００１７】
上記の課題に鑑み、本発明は、ロボットハンドにより順次ワークを取出すような場合の作業時間を短縮することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成する本発明に係る情報処理装置は、
撮像手段により撮像された複数の物体を含む画像を取得する取得手段と、
前記取得手段により取得された前記画像に基づいて、前記複数の物体から保持手段により取り出されて保持される対象物体を決定する決定手段と、
前記対象物体の位置に基づいて、前記対象物体の位置から目標位置までの経路を複数生成する生成手段と、
前記生成手段により生成された複数の経路から選択することによって前記対象物体を前記目標位置に搬送する搬送経路を決定する経路決定手段とを備え、
前記生成手段が生成する複数の経路は、前記対象物体を保持した後に前記撮像手段の撮像範囲外を経由し、その後前記撮像範囲内を経由して前記目標位置に至る第１の経路を含むことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ロボットハンドにより順次ワークを取出すような場合の作業時間を短縮することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係る物体把持装置の構成図。
【図２】第１実施形態に係る物体把持装置の俯瞰図。
【図３】第１実施形態に係る物体把持装置の俯瞰図。
【図４】第１実施形態に係る把持位置ごとの退避位置算出処理の手順を示すフローチャート。
【図５】第１実施形態に係るタイミングチャート。
【図６】第１実施形態に係る動作シーケンス。
【図７】第２実施形態に係る物体把持装置の俯瞰図。
【図８】第２実施形態に係るタイミングチャート。
【図９】第２実施形態に係る物体把持装置の構成図。
【図１０】第２実施形態に係る動作シーケンス。
【図１１】第３実施形態に係る物体把持装置の俯瞰図。
【発明を実施するための形態】
【００２１】
（第１実施形態）
図１を参照して、第１実施形態に係る物体把持装置の構成を説明する。物体把持装置は、ロボットアーム１０１と、ロボットアーム１０１のエンドエフェクタであるハンド機構１０２と、カメラ１０３と、シーケンス設定部１０４と、画像処理部１０７と、カメラ制御部１０８と、シーケンス制御部１１４とを備える。また、シーケンス設定部１０４は、動作経路候補設定部１１１と、ワーク取出し時間算出部１１２と、シーケンス選択部１１３とを備える。画像処理部１０７は、ワーク状態推定部１０９と、取出しワーク選定部１１０とを備える。
【００２２】
カメラ１０３は、不図示のフレーム上部または天井等に固定的に取り付けられており、トレイ１０５および当該トレイ１０５の上に積載されている複数のワーク１０６を撮影し画像データを生成する。カメラ制御部１０８は、カメラ１０３による画像データの取得を制御する。
【００２３】
ワーク状態推定部１０９は、カメラ１０３が撮影した画像をカメラ制御部１０８から取得して所定の処理を行い、ばら積みされた複数のワーク１０６の位置姿勢を推定する。ワーク１０６の位置姿勢の推定を行う手法は、公知の手法を用いればよい。例えばワーク１０６を球状に包み込んだあらゆる方向から撮影した画像を、姿勢情報（ワークを包み込んだ球上での撮影方向、つまり球上の緯度、経度）と対応付けてテンプレートとし、カメラ１０３からの入力画像との相関をとることにより推定を行う手法を用いることができる。
【００２４】
取出しワーク選定部１１０は、ワーク状態推定部１０９により推定された推定結果である各ワークの位置姿勢の情報と当該情報の信頼度とを用いて、ロボットハンド１０２が今回把持を行って取り出すべき取出し対象ワーク（ターゲットワーク）を決定する。さらに、そのターゲットワークの位置姿勢情報をシーケンス設定部１０４へ出力する。取出しワークの選定手法は、ワーク状態推定部１０９による位置姿勢推定の信頼度（例えば、相関演算で得られる相関値）が高いワークを選択するものとする。例えば、最も信頼度が高いワークを取り出すべきワークとして選択してもよいし、信頼度が所定値以上のワークから任意のワークを取り出すべきワークとして選択してもよい。  次に、動作経路候補設定部１１１の動作について説明していくが、その前に図２（ａ）および図２（ｂ）を参照してワークの取出しに関連する位置関係について説明する。
【００２５】
図２（ａ）は、図１に示した物体把持装置のトレイ１０５、ロボットアーム１０１およびロボットハンド１０２付近を、上方から（カメラ１０３のさらに上から）俯瞰した図である。本来はカメラ１０３がトレイ１０５と重なって見えるはずであるが、煩雑になるので省略してある。図１と同じ構成要素（観察方向が違うだけのもの）には同じ符号を付与している。図２（ａ）において網掛けられたワーク１０６が、画像処理部１０７によって決定された今回の取出し作業におけるターゲットワークであるとする。
【００２６】
図２（ａ）では、すでにワークが２つ取出されて、ワーク取置き用トレイ２０１に整列して取り置かれている様子が示されている。また白星印は、次に取出されるワークを取り置く位置（以下、「取置き位置２１」と称する）を示している。取置き位置２１は、取置き用トレイ２０１の位置と、ワークの整列状態（取置いたワークの間隔等）が指定されていれば、一意に定まる。本実施形態では、ワークを取出すごとに取置き位置２１が算出できるものとする。また図２（ａ）において、黒星印は、退避位置２０を示している。退避位置２０については後述する。
【００２７】
動作経路候補設定部１１１は、取出しワーク選定部１１０から取得したターゲットワーク１０６の位置姿勢と、算出した取置き位置２１とから、ロボットアーム１０１およびロボットハンド１０２の動作経路の候補を複数設定する。さらに、  動作経路候補設定部１１１は、ロボットアーム１０１およびロボットハンド１０２がその経路を動作するときの動作時間をそれぞれの候補に対して算出する。
【００２８】
動作経路の設定の説明のために、ロボットハンド１０２の位置に関して、以下のように用語を定義する。ロボットハンド１０２のホームポジションを「デフォルト位置」、ターゲットワーク１０６を把持するときの位置を「把持位置」と称する。また、ターゲットワーク１０６を取置き位置に置くときの位置はそのまま「取置き位置」と称する。さらに、デフォルト位置を始点とし把持位置を終点とする動作経路を「アプローチ経路」、把持位置を始点とし取置き位置を終点とする経路を「搬送経路」、取置き位置を始点としデフォルト位置を終点とする経路を「リターン経路」と称する。さらに、搬送経路のうち、経由点の指定がある場合を「経由有り搬送経路」、経由点の指定がない場合を「経由無し搬送経路」と称する。
【００２９】
図２（ｂ）は、それぞれの経路を矢印で示している。図２（ｂ）において、一点鎖線がアプローチ経路、実線が経由無し搬送経路、破線が経由有り搬送経路（経由点として退避位置２０を指定した場合）、二点鎖線がリターン経路の例を示している。
【００３０】
始点と終点とを指定された場合、ロボットハンド１０２がその間をどのように移動するかは、公知の手法を用いて算出すればよい。両点の間を補間して始点と終点との間の位置を細かく規定する手法でもよい。同様に始点と終点と経由点を指定された場合にその間をどのように移動するかも、公知の手法を用いて算出すればよい。
【００３１】
また、始点と終点とが指定された経路を、ロボットアーム１０１およびロボットハンド１０２が移動するときの動作時間を算出する手法も公知のものを用いればよい。例えば、動作をシミュレートするためのシミュレータを動作経路候補設定部１１１に用意しておき、それを用いて算出してもよい。あるいは、始点および終点の組ごとに予めオフラインでシミュレートしておき、その結果をテーブルとして保持しておく手法を用いてもよい。テーブルを保持しておく場合には、全ての始点と終点の組ごとに動作時間を保持することは現実的ではないこともありうる。その場合には、始点と終点の位置をある程度量子化したようなテーブルを用意し、使用するときには、最近傍のテーブルデータを使用する構成であってもよい。
【００３２】
ロボットアーム１０１およびロボットハンド１０２を動作させてターゲットワーク１０６を取出すためには、アプローチ経路、搬送経路、リターン経路のセットから構成される動作経路を定める必要がある。動作経路候補設定部１１１による複数の動作経路候補の設定とは、このセットを複数設定することを意味する。
【００３３】
本実施形態では、動作経路候補設定部１１１は、第一の動作経路候補として、アプローチ経路、経由無し搬送経路、リターン経路からなる動作経路を設定する。さらに第二の動作経路候補として、アプローチ経路、経由有り搬送経路、リターン経路からなる動作経路を設定する。第二の動作経路候補の経由有り搬送経路で指定される経由点としては、図２（ｂ）の退避位置２０を指定する。つまり、第二の動作経路候補の経由有り搬送経路では、ロボットハンド１０２は、まず把持位置から退避位置に移動し、その後取置き位置に移動するような経路をたどることになる。
【００３４】
ここで図５（ａ）および図５（ｂ）を参照して、ロボットハンド１０２が、第一の動作経路候補、第二の動作経路候補のそれぞれに従って動作した場合の動作シーケンスを説明する。
【００３５】
図５（ａ）の第一の動作経路候補のタイミングチャートに示された動作シーケンスでは、カメラ１０３によりばら積みされた複数のワークを撮影した後、画像処理部１０７により、今回把持対象とするターゲットワークが選定される。その後、動作経路候補設定部１１１により設定されたアプローチ経路、経由無し搬送経路、リターン経路に従って、ロボットハンド１０２がアプローチ動作、経由無し搬送動作、リターン動作を行うことで、ばら積みされた複数のワークからのワークの取り置きが実行される。その後、この動作シーケンスを繰り返すことで、順次ワークを取出す。この第一の動作経路候補に関する動作は、一般的なシーケンスである。
【００３６】
一方、図５（ｂ）の第二の動作経路候補のタイミングチャートに示された動作シーケンスでは、経由有り動作経路に関して、把持位置から退避位置までの移動動作（退避動作）と、退避位置から取置き位置までの移動動作（退避後搬送動作）とに分かれている。
【００３７】
図５（ｂ）の第二の動作経路候補のタイミングチャートに示された動作シーケンスでは、カメラ１０３によりばら積みされた複数のワークを撮影した後、画像処理部１０７により、今回把持対象とするターゲットワークが選定される。ここまでは第一の動作経路候補も第二の動作経路候補も処理は共通である。動作経路候補設定部１１１により設定されたアプローチ経路、経由有り搬送経路、リターン経路に従って、ロボットハンド１０２がアプローチ動作、経由有り搬送動作、リターン動作を行う。その一連の動作の途中でロボットハンド１０２が退避位置２０にあるときに、次回のターゲットワーク選定用の撮影を行う。すなわち、経由有り搬送動作のうち、退避動作の後、退避後搬送動作を行う前に撮影を行う。なお、退避動作の後、退避後搬送動作を行う前に限定されず、ロボットハンド１０２が動作経路に従って移動中であって撮影範囲外に移動した際に、次回の取出し対象ワークの選定のために、ばら積みされた複数のワークを改めて撮影すればよい。これにより、ワーク状態推定部１０９によるワークの位置姿勢の推定処理および画像処理部１０７による把持対象とするターゲットワークの選定処理と、ロボットハンド１０２の退避位置から取置き位置への移動動作（退避後搬送動作）およびデフォルト位置への移動動作（リターン動作）と、を並列に実行することができる。すなわち、順次ワークを取出すサイクルタイムを短縮することが可能となる。
【００３８】
ここで退避位置２０について説明する。退避位置２０とは、ロボットハンド１０２をその場所に移動させると、ロボットアーム１０１およびロボットハンド１０２が、カメラ１０３の撮影範囲から外れる位置であり、かつ把持位置からの移動予測時間が最も短い位置である。
【００３９】
図３（ａ）は、ロボットハンド１０２が把持位置にある場合の俯瞰図であり、図３（ｂ）は、ロボットハンド１０２が退避位置２０にある場合の俯瞰図である。本実施形態では、簡単化のために、トレイ１０５の大きさが、カメラ１０３の撮影範囲と同じ大きさとしている。従って、図３（ｂ）の状態では、ロボットアーム１０１およびロボットハンド１０２は、撮影範囲に含まれていない。
【００４０】
上述したように、退避位置２０は、ロボットアーム１０１およびロボットハンド１０２が、カメラ１０３の撮影範囲から外れる位置であり、かつ把持位置からの移動予測時間が最も短い位置のことである。従って、把持位置（ターゲットワークの位置）に応じて退避位置２０は変化することになる。予めオフラインでシミュレーションを行って把持位置ごとに対応する退避位置を算出しておき、その結果をテーブルとして保持しておき、当該テーブルを参照することによって把持位置ごとの退避位置２０が算出可能となる。
【００４１】
図４のフローチャートを参照して、オフラインでのシミュレーションよる、把持位置ごとの退避位置の算出処理について説明する。
【００４２】
ステップＳ４００において、物体把持装置が有する不図示の制御部は、ロボットアーム１０１およびロボットハンド１０２の移動範囲のうち、ロボットアーム１０１およびロボットハンド１０２がカメラ１０３の撮影範囲から外れる位置を、退避候補位置として複数設定する。退避候補位置の個数は、多いほどより正確な退避位置が算出できることになるが、その分シミュレーションの時間がかかる。よって、シミュレーション時間に制限があるのであれば、カメラ１０３の撮影範囲からロボットアーム１０１およびロボットハンド１０２が外れるまでの移動予測時間が短くなるように、両者のトレードオフで決定すればよい。
【００４３】
ステップＳ４０１において、制御部は、トレイ１０５の内側に、把持候補位置を複数設定する。把持候補位置の個数もシミュレーションの時間とのトレードオフで決定すればよい。例えば、トレイ１０５の内部をメッシュ状に分割して、その交点を把持候補位置とするような手法で把持候補位置の個数を削減してもよい。
【００４４】
ステップＳ４０２において、制御部は、ステップＳ４０１で設定された複数の把持候補位置から一つを選択する。ステップＳ４０３において、制御部は、ステップＳ４００で設定された複数の退避候補位置から一つを選択する。
【００４５】
ステップＳ４０４において、制御部は、ステップＳ４０２で選択された把持候補位置から、ステップＳ４０３で選択された退避候補位置までの移動予測時間をシミュレーションにより算出する。このシミュレーションは公知の手法を用いればよい。
【００４６】
ステップＳ４０５において、制御部は、現在選択されている把持候補位置に対して、Ｓ４００で設定された全ての退避候補位置が選択済みであるか否かを判定する。全ての退避候補位置が選択済みであると判定された場合（Ｓ４０５；ＹＥＳ）、ステップＳ４０７へ進む。一方、まだ選択されていない退避候補位置があると判定された場合（Ｓ４０５；ＮＯ）、ステップＳ４０６へ進む。
【００４７】
ステップＳ４０６において、制御部は、現在選択されている把持候補位置に対して、まだ選択されていない退避候補位置を選択する。その後、ステップＳ４０４へ戻る。ステップＳ４０７において、制御部は、現在選択されている把持候補位置に対して、ステップＳ４０４で算出された移動予測時間が最少となる退避候補位置を、その把持候補位置に対する退避位置としてメモリに記録する。これにより退避経路の経路設定が行われる。
【００４８】
ステップＳ４０８において、制御部は、ステップＳ４０１で設定された全ての把持候補位置が選択済みであるか否かを判定する。全ての把持候補位置が選択済みであると判定された場合（Ｓ４０８；ＹＥＳ）、シミュレーション処理を終了する。一方、まだ選択されていない把持候補位置があると判定された場合（Ｓ４０８；ＮＯ）、ステップＳ４０９へ進む。ステップＳ４０９において、制御部は、まだ選択されていない把持候補位置を選択する。その後、ステップＳ４０３へ戻り、新たな退避候補位置の選択を開始する。以上で図４のフローチャートの各処理が終了する。
【００４９】
図４のフローチャートに示す手順により把持位置ごとに退避位置を算出し、算出結果をテーブル化したものを動作経路候補設定部１１１に用意しておく。取出しワーク選定部１１０から取得したターゲットワーク１０６の位置姿勢から把持位置を算出し、さらにテーブルを参照して照らし合わせることによって退避位置を得ることができる。ただし、テーブルとして用意された把持位置が密にサンプリングされていない場合（上述のようにメッシュ状の分割等の場合）には、動作経路候補設定部１１１は、算出された把持位置に最も近い把持位置（テーブルに存在する把持位置）に対応する退避位置を得ればよい。
【００５０】
退避位置が取得できれば、公知の技術により、把持位置から退避位置へ、あるいは退避位置から取置き位置へ、ロボットハンド１０２が移動するのに要する動作時間を算出できる。ここで、ロボットハンド１０２が把持位置から退避位置へ移動するための動作時間を「退避時間」と称する。ロボットハンド１０２が退避位置から取置き位置へ移動するための動作時間を「退避後搬送時間」と称する。なお、把持位置から退避位置への動作時間である「退避時間」は、図４のオフラインシミュレーションによりＳ４０４で算出した値をテーブルに記録しておき、その値を使用してもよい。
【００５１】
以上のようにして、動作経路候補設定部１１１は、第一の動作経路候補（アプローチ経路、経由無し搬送経路、リターン経路）に沿ってロボットハンド１０２が移動するときの動作時間を経路ごとに算出できる。同様に、第二の動作経路候補（アプローチ経路、経由有り搬送経路、リターン経路）に沿ってロボットハンド１０２が移動するときの動作時間を経路ごとに算出できる。動作経路候補設定部１１１は、これら経路ごとに算出した動作時間を後述のワーク取出し時間算出部１１２へ出力する。つまり、第一の動作経路候補に関して、アプローチ経路の動作時間、経由有り搬送経路の動作時間、およびリターン経路の動作時間を、ワーク取出し時間算出部１１２へ出力する。さらに第二の動作経路候補に関して、アプローチ経路の動作時間、経由無し搬送経路の動作時間、およびリターン経路の動作時間を、ワーク取出し時間算出部１１２へ出力する。第二の動作経路候補の経由無し搬送経路の動作時間としては、退避時間と退避後搬送時間とをワーク取出し時間算出部１１２へ出力すればよい。
【００５２】
ワーク取出し時間算出部１１２は、動作経路候補設定部１１１から取得した、（それぞれが経路ごとに算出されている）第一及び第二の動作経路候補の動作時間に基づいて、ロボットハンド１０２が、あるワークを把持してから次のワークを把持するまでに要する時間（以下、「ワーク取出し時間」と称する）を推定する。
【００５３】
このワーク取出し時間の推定は、図５に示すシーケンスを想定して行う。第一の動作経路候補の場合、図５（ａ）に示されるように、あるワークを把持してからの、経由無し搬送動作に要する時間、リターン動作に要する時間、撮影に要する時間、ワーク状態の推定／選定に要する時間、およびアプローチ動作の要する時間の合計がワーク取出し時間となる。
【００５４】
第二の動作経路候補の場合、図５（ｂ）に示されるように、あるワークを把持してからの、退避動作に要する時間、撮影に要する時間、ワーク状態の推定／選定に要する時間と、退避後搬送動作に要する時間およびリターン動作に要する時間の和との長い方、およびアプローチ動作に要する時間の合計がワーク取出し時間となる。なお、ワーク状態の推定／選定に要する時間と、退避後搬送動作に要する時間およびリターン動作に要する時間の和とのうち長い方を採用するのは、両方の処理が終わって初めてアプローチ動作へ進めるからである。例えば図５（ｂ）の場合にはワーク状態の推定／選定の時間は用いずに、退避後搬送動作およびリターン動作に要する時間の和を用いて算出する。逆にワーク状態の推定／選定に要する時間が退避後搬送動作およびリターン動作に要する時間よりも長い場合は、ワーク状態の推定／選定に要する時間を用いて算出すればよい。
【００５５】
ワーク取出し時間算出部１１２は、動作経路候補設定部１１１から、ロボットハンド１０２が移動するときの経路ごとの動作時間を取得している。従って、カメラ１０３が撮影に要する時間と、画像処理部１０７がワーク状態の推定／選定に要する時間がわかれば、第一及び第二の動作経路候補に対応するワーク取出し時間をそれぞれ算出できる。
【００５６】
これらのうちカメラ１０３が撮影に要する時間は、予め測定しておくことにより知ることができる。また、ワーク状態の推定／選定に要する時間も予め測定しておけば知ることができる。あるいは、ワーク状態の推定／選定に要する時間が画像ごとに変動するような場合には、前回のワーク取出し時に画像処理部１０７で要した処理時間で代用してもよい。
【００５７】
ワーク取出し時間算出部１１２は、ロボットハンド１０２が第一及び第二の動作経路候補に対するワーク取出し時間を上述したように算出して、算出結果をシーケンス選択部１１３へ出力する。
【００５８】
シーケンス選択部１１３は、ワーク取出し時間算出部１１２から取得した二つのワーク取出し時間を比較して、ワーク取出し時間が短い方に対応するシーケンスを選択する（動作経路選択処理）。さらに、選択結果をシーケンス制御部１１４へ出力する。
【００５９】
シーケンス制御部１１４では、シーケンス選択部１１３から取得したシーケンスに従ってロボットアーム１０１およびロボットハンド１０２を制御する。また、所定のタイミングでカメラ１０３が撮影を行うように、カメラ制御部１０８の制御も行う。シーケンス制御部１１４がロボットアーム１０１およびロボットハンド１０２の動作を制御することにより、ばら積み状態で積載されているトレイ１０５からワーク１０６を順々に把持して取出すことが可能となる。
【００６０】
以上が図１に示す本実施形態に係る物体把持装置の構成の説明である。
【００６１】
続いて、図６（ａ）および図６（ｂ）を参照して、本実施形態に係る物体把持装置の動作を説明する。図６（ａ）は、シーケンス設定部１０４により第一の動作経路が選択された場合の動作を示している。図６（ｂ）は、シーケンス設定部１０４により第二の動作経路が選択された場合の動作を示している。図６（ａ）および図６（ｂ）において、カメラ１０３によるばら積みワークの撮影、画像処理部１０７によるターゲットワークの選定、シーケンス設定部１０４による動作経路の選択、までの動作は共通である。シーケンス設定部１０４による動作経路の選択結果に従って、図６（ａ）または図６（ｂ）の何れかの動作へ分岐する。
【００６２】
シーケンス設定部１０４が第一の動作経路を選択した場合には、図６（ａ）において、ロボットアーム１０１およびロボットハンド１０２は、シーケンス制御部１１４の制御に従って、アプローチ経路、経由無し搬送経路、リターン経路の各動作を行う。この一連の動作により、ばら積みワークからターゲットワークを取出し、取置き位置へ置くという動作が実現される。さらに、その後、カメラ１０３によるばら積みワークの撮影に戻ることで、ワークを順次取出していく。
【００６３】
シーケンス設定部１０４が第二の動作経路を選択した場合には、図６（ｂ）において、ロボットアーム１０１およびロボットハンド１０２は、シーケンス制御部１１４の制御に従って、アプローチ経路、経由有り搬送経路（退避動作と退避後搬送動作）、リターン経路の各動作を行う。この一連の動作により、ばら積みワークからターゲットワークを取出し、取置き位置へ置くという動作が実現される。この場合、シーケンス制御部１１４は、ロボットアーム１０１およびロボットハンド１０２が退避位置にあるときに、カメラ１０３によるばら積みワークの撮影を行うように制御する。この場合、画像処理部１０７によるターゲットワークの選定と、ロボットハンド１０２の退避後搬送動作およびリターン動作とが並列に動作することになる。
【００６４】
以上説明したように、本実施形態では、シーケンス設定部１０４により、ロボットアーム１０１およびロボットハンド１０２の動作経路の候補を複数設定する。さらに、あるワークを把持してから、次のワークを把持するまでに要する時間（ワーク取出し時間）が短くなるように、複数の動作経路の候補から実際に動作する動作経路を選択する。これにより、順次ワークを取出す場合の作業時間の短縮を可能にしている。  特に、動作経路候補として、カメラの撮像領域から一旦退避し、その後ワーク取置き領域に搬送するような経路を含めておくことで、一旦退避している間にばら積みされたワークの画像を取得することを可能にしている。それによって、一旦退避した後のワーク取置き領域への搬送動作と、取得した画像を用いたばら積みワークの状態の推定とを並列に行うことができ、作業時間の短縮を可能にしている。
【００６５】
（第２実施形態）
第１実施形態において、第一の動作経路を選択した場合の動作シーケンスでは、ロボットハンド１０２がリターン動作を終了してから次の撮影を開始している（図５（ａ）および図６（ａ）参照）。本実施形態では、第一の動作経路を選択した場合の動作シーケンスとして、ロボットハンド１０２が、経由無し搬送動作中あるいはリターン動作中であっても、カメラ１０３の撮影範囲から外れた瞬間に撮影を開始する例について説明する。
【００６６】
図７は、把持位置から取置き位置２１への経由無し搬送動作中に、ロボットハンド１０２がカメラ１０３の撮影範囲から外れた瞬間の俯瞰図を示している。ここで、ロボットハンド１０２がカメラ１０３の撮影範囲から外れた瞬間の位置を「搬送中フレームアウト位置」と称する。本実施形態では、第一の動作経路を選択した場合の動作シーケンスとして、この瞬間にカメラ１０３の撮影を開始するものとする。
【００６７】
ここで図９を参照して、第２実施形態に係る物体把持装置の構成を説明する。物体把持装置は、第１実施形態と同様に、ロボットアーム１０１と、ロボットアーム１０１のエンドエフェクタであるハンド機構１０２と、カメラ１０３と、シーケンス設定部１０４と、画像処理部１０７と、カメラ制御部１０８と、シーケンス制御部１１４とを備える。画像処理部１０７は、ワーク状態推定部１０９と、取出しワーク選定部１１０とを備える。画像処理部１０７は、第１実施形態と同様に、ワーク状態推定部１０９と、取出しワーク選定部１１０とを備える。ただし、シーケンス設定部１０４は、第１実施形態とは異なり、動作経路候補設定部９１１と、ワーク取出し時間算出部９１２と、シーケンス選択部９１３とを備える。
【００６８】
動作経路候補設定部９１１は、ロボットハンド１０２が把持位置（ターゲットワークの位置）から搬送中フレームアウト位置へ移動するときの動作時間を算出する。搬送中フレームアウト位置は、把持位置によって異なる。従って、予め把持位置と搬送中フレームアウト位置とを調べておき、その結果をテーブルで用意しておくことにより、把持位置が決まれば搬送中フレームアウト位置も決めることができる。搬送中フレームアウト位置が決まれば、始点を把持位置、終点を取置き位置、経由点を搬送中フレームアウト位置として、第１実施形態と同様に公知の手法でシミュレーションを行い、動作時間を算出することができる。
【００６９】
動作経路候補設定部９１１は、第１実施形態で説明した動作経路候補設定部１１１と同様に、第一の動作経路候補および第二の動作経路候補の動作時間を経路ごとに算出する。さらに、上述したように、ロボットハンド１０２が把持位置から搬送中フレームアウト位置へ移動するときの動作時間を算出する。動作経路候補設定部９１１は、経路ごとに算出したこれらの動作時間をワーク取出し時間算出部９１２へ出力する。
【００７０】
ここで図８（ａ）および図８（ｂ）を参照して、ロボットハンド１０２が第一の動作経路候補および第二の動作経路候補のそれぞれに従って動作した場合の動作シーケンスを説明する。ただし、図８（ｂ）の第二の動作経路候補のタイミングチャートは、図５（ｂ）と同様である。  図８（ａ）の第一の動作経路候補のタイミングチャートに示された動作シーケンスでは、動作経路候補設定部９１１により設定されたアプローチ経路、経由無し搬送経路、リターン経路に従ってロボットハンド１０２が動作する。その一連の動作の途中でロボットハンド１０２が搬送中フレームアウト位置に移動したときに、次回のターゲットワーク選定用の撮影を行う。これにより、第１実施形態の第一の動作経路候補での動作よりもサイクルタイムの短縮が可能となる。
【００７１】
ワーク取出し時間算出部９１２は、第１実施形態で説明したワーク取出し時間算出部１１２と同様に、動作経路候補設定部９１１から取得した、第一及び第二の動作経路候補の動作時間に基づいて、ロボットハンド１０２が、あるワークを把持した後から、次のワークを把持するまでに要する時間（ワーク取出し時間）を推定する。
【００７２】
ただし、本実施形態では、第一の動作経路候補の動作時間の推定は、経由無し搬送動作中に、次のワーク取出しのためのカメラ１０３による撮影が行われるシーケンスに従って行われる。つまり、ロボットハンド１０２が、搬送中フレームアウト位置に到達した瞬間にカメラ１０３による撮影を開始する。この場合、カメラ１０３による撮影と、経由無し搬送動作（の一部）あるいはリターン動作とが並行して行われる。並列動作の時間は、動作時間の長い方を用いてワーク取出し時間を算出する。例えば、図８（ａ）のような場合には、経由無し搬送動作（搬送中フレームアウト位置以降の部分）とリターン動作撮影の時間は用いずに、ワーク状態の推定／選定の時間を用いて算出を行う。
【００７３】
ワーク取出し時間算出部９１２は、ロボットハンド１０２が第一及び第二の動作経路をとった場合の各ワーク取出し時間を算出し、シーケンス選択部９１３へ出力する。
【００７４】
シーケンス選択部９１３は、ワーク取出し時間算出部９１２から取得した二つのワーク取出し時間を比較し、ワーク取出し時間が短い方に対応するシーケンスを選択する。さらに、選択結果をシーケンス制御部１１４へ出力する。
【００７５】
続いて、図１０（ａ）および図１０（ｂ）を参照して、本実施形態に係る物体把持装置の動作を説明する。図１０（ａ）は、シーケンス設定部１０４により第一の動作経路が選択された場合の動作を示している。図１０（ｂ）は、シーケンス設定部１０４により第二の動作経路が選択された場合の動作を示している。ただし、図１０（ｂ）は図６（ｂ）と同じである。図１０（ａ）および図１０（ｂ）において、カメラ１０３によるばら積みワークの撮影、画像処理部１０７によるターゲットワークの選定、シーケンス設定部１０４による動作経路の選択、までの動作は共通である。シーケンス設定部１０４による動作経路の選択結果に従って、図１０（ａ）または図１０（ｂ）の何れかの動作へ分岐する。
【００７６】
シーケンス設定部１０４が第一の動作経路を選択した場合には、図１０（ａ）に示されるように、ロボットアーム１０１およびロボットハンド１０２は、シーケンス制御部９１４の制御に従って、アプローチ経路、経由無し搬送経路、リターン経路の各動作を行う。この一連の動作により、ばら積みワークからターゲットワークを取出し、取置き位置へ置くという動作が実現される。この場合、シーケンス制御部１１４は、ロボットアーム１０１およびロボットハンド１０２が搬送中フレームアウト位置にあるときに、カメラ１０３によるばら積みワークの撮影を行うように制御する。この場合、画像処理部１０７によるターゲットワークの選定と、ロボットハンド１０２の経由無し搬送動作およびリターン動作とが並列に動作する。
【００７７】
シーケンス設定部１０４が第二の動作経路を選択した場合には、図１０（ｂ）に示されるように、第１実施形態の場合と同様の動作を行う。以上が本発明による物体把持装置の動作である。
【００７８】
以上説明したように、本実施形態では、シーケンス設定部１０４が、ロボットアーム１０１およびロボットハンド１０２の動作経路の候補を複数設定する。そのときに、第１実施形態の場合よりもワーク取出し時間が短くなる可能性のある候補を設定している。従って、結果的に、第１実施形態よりも、順次ワークを取出す場合の作業時間が短縮される可能性がある。
【００７９】
（第３実施形態）
第１実施形態および第２実施形態では、把持位置（ターゲットワークの位置）に応じて退避位置を変更している。本実施形態では、把持位置に依存することなく退避位置を固定した場合について説明する。なお、本実施形態に係る物体把持装置の構成は第１実施形態で説明した構成と同様であるため、説明を省略する。
【００８０】
本実施形態における退避位置とは、ロボットハンド１０２をその場所に移動させると、カメラ１０３の撮影範囲からロボットアーム１０１およびロボットハンド１０２が外れる位置のことである。本実施形態では退避位置は固定であるので、図４のフローチャートを参照して第１実施形態で説明したようなオフラインのシミュレーションによる把持位置ごとの退避位置の算出および算出結果のテーブル保持の必要はない。
【００８１】
本実施形態に係る動作経路候補設定部１１１は、第一の動作経路候補として、アプローチ経路、経由無し搬送経路、リターン経路からなる動作経路を設定する。これは第１実施形態の場合と同じである。さらに第二の動作経路候補として、アプローチ経路、経由有り搬送経路、リターン経路からなる動作経路を設定する。第二の動作経路候補の経由有り搬送経路で指定される経由点は、固定の退避位置を指定する。
【００８２】
図１１は、ロボットハンド１０２のホームポジションの近くに固定退避位置１１００を設定した例である。動作経路候補設定部１１１は、第一および第二の動作経路候補の各経路（アプローチ経路、搬送経路、リターン経路）に始点と終点と経由点（固定退避位置１１００）とを設定し、その動作時間を算出する。算出手法は、第１実施形態の場合と同じく公知の手法でよい。動作経路候補設定部１１１以外の各処理部は、第１実施形態と同様に動作する。また、図１１では固定退避位置１１００が１か所の場合について説明したが、固定退避位置が複数あってもよい。その場合には、把持位置に応じて固定退避位置を選択すればよい。例えば、把持位置から最も近い固定退避位置を選択してもよい。
【００８３】
以上説明したように、本実施形態によれば、把持位置に依存することなく退避位置を固定とした場合、第１実施形態で示したように把持位置ごとに退避位置を調べる必要がなくなるため、動作経路候補設定部１１１の処理が簡易になり処理時間の短縮につながるという利点がある。
【００８４】
（第４実施形態）
第１乃至第３実施形態では、ターゲットワークを取出すたびに、シーケンス設定部１０４が、ロボットアーム１０１およびロボットハンド１０２の動作経路を複数の候補から選択している。
【００８５】
しかしながら、把持位置（ターゲットワークの位置）が変更されても、シーケンス選択部１１３の選択結果が変わらないことが予め判明していれば、その限りではない。
【００８６】
例えば、把持位置から退避位置までの移動予測時間が最も大きくなる（「最大退避時間」と称する）場合でも、第二の動作候補経路を選択した方がワーク取出し時間が短ければ、第一の動作経路候補が選択されることはない。その判断をするためには、あらかじめ最大退避時間を調べておく必要がある。第１実施形態の図４で示した手順中に、最大退避時間を計測する手順を追加することにより、最大退避時間を予め調べておくことができる。
【００８７】
そのうえで、最初のターゲットワークに対するシーケンス設定部１０４の処理において、これまでの実施形態で示した処理を行うのと同時に、最大退避時間を用いたときの第二の動作候補経路と、第一の動作候補経路とのワーク取出し時間の比較も行えばよい。その結果、最大退避時間の場合でも、第二の動作候補経路を選択した方がワーク取出し時間が短ければ、以降のターゲットワークの取出しにおいて、第一の動作経路候補の設定は省略可能である。
【００８８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005911299.tif 000002
【図２】
0005911299.tif 000003
【図３】
0005911299.tif 000004
【図４】
0005911299.tif 000005
【図５】
0005911299.tif 000006
【図６】
0005911299.tif 000007
【図７】
0005911299.tif 000008
【図８】
0005911299.tif 000009
【図９】
0005911299.tif 000010
【図１０】
0005911299.tif 000011
【図１１】
0005911299.tif 000012