(57)【要約】【課題】複数のワークにおいて把持すべきワークを孤立させていない状態で把持できるロボットシステムを得ること。【解決手段】ロボットシステムは、複数のワークと、前記複数のワークのうち選択されたワークを把持するハンドと、前記ハンドを駆動するロボットと、前記複数のワークにおいて、接触状態にある２つのワークの間の空間であって前記ハンドを挿入可能な空間である隙間を生成するように指示する隙間生成指示部とを備える。【選択図】図２
2014205209.tif 000002
【特許請求の範囲】
【請求項１】
ワークを把持するハンドと、
前記ハンドを駆動するロボットと、
バラ積みされた複数のワークにおいて、接触状態にある２つのワークの間に前記ハンドを挿入可能な空間を生成するように指示する隙間生成指示部と、
を備えたことを特徴とするロボットシステム。
【請求項２】
前記バラ積みされた複数のワークを３次元的に計測し、計測データを生成するセンサと、
ハンド形状データを格納する記憶媒体と、
前記計測データ及び前記ハンド形状データに基づいて、前記バラ積みされた複数のワークにおいて把持すべきワークの周囲に前記ハンドを挿入可能な空間が存在するか否かを判定する判定部と、
をさらに備え、
前記隙間生成指示部は、前記バラ積みされた複数のワークにおいて把持すべきワークの周囲に前記ハンドを挿入可能な空間が存在しない場合、前記バラ積みされた複数のワークのうち隣接するワーク間に前記ハンドを挿入可能な空間を生成するように指示する
ことを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記バラ積みされた複数のワークが載置される被載置部をさらに備え、
前記隙間生成指示部は、前記被載置部を揺動させる
ことを特徴とする請求項１又は２に記載のロボットシステム。
【請求項４】
前記被載置部を揺動する揺動機構をさらに備え、
前記隙間生成指示部は、前記被載置部を揺動させるように、前記揺動機構に指示する
ことを特徴とする請求項３に記載のロボットシステム。
【請求項５】
前記隙間生成指示部は、前記被載置部を揺動させるように、前記ハンド及び前記ロボットに指示する
ことを特徴とする請求項３に記載のロボットシステム。
【請求項６】
前記隙間生成指示部は、前記バラ積みされた複数のワークを再配置するように、前記ハンド及び前記ロボットに指示する
ことを特徴とする請求項１又は２に記載のロボットシステム。
【請求項７】
ワークを把持するハンドと、前記ハンドを駆動するロボットとを有するロボットシステムの制御方法であって、
バラ積みされた複数のワークにおいて、接触状態にある２つのワークの間に前記ハンドを挿入可能な空間を生成するように指示する隙間生成指示ステップと、
前記バラ積みされた複数のワークのうち選択されたワークを前記ハンドで把持する把持ステップと、
を備えたことを特徴とするロボットシステムの制御方法。
【請求項８】
前記バラ積みされた複数のワークを３次元的に計測し、計測データを生成する計測ステップと、
ハンド形状データを取得する取得ステップと、
前記計測データ及び前記ハンド形状データに基づいて、前記バラ積みされた複数のワークにおいて把持すべきワークの周囲に前記ハンドを挿入可能な空間が存在するか否かを判定する判定ステップと、
をさらに備え、
前記隙間生成指示ステップは、前記バラ積みされた複数のワークにおいて把持すべきワークの周囲に前記ハンドを挿入可能な空間が存在しないと前記判定ステップで判定された場合に行われる
ことを特徴とする請求項７に記載のロボットシステムの制御方法。
【請求項９】
前記隙間生成指示ステップは、前記バラ積みされた複数のワークが載置される被載置部を揺動させる揺動ステップを含む
ことを特徴とする請求項７又は８に記載のロボットシステムの制御方法。
【請求項１０】
前記揺動ステップは、前記被載置部を揺動させるように揺動機構に指示する揺動指示ステップを含む
ことを特徴とする請求項９に記載のロボットシステムの制御方法。
【請求項１１】
前記揺動ステップは、前記被載置部を揺動させるように前記ハンド及び前記ロボットに指示する揺動動作指示ステップを含む
ことを特徴とする請求項９に記載のロボットシステムの制御方法。
【請求項１２】
前記隙間生成指示ステップは、前記バラ積みされた複数のワークを再配置するように前記ハンド及び前記ロボットに指示する再配置動作指示ステップを含む
ことを特徴とする請求項７又は８に記載のロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、及びロボットシステムの制御方法に関する。
【背景技術】
【０００２】
特許文献１には、部品ピックアップ装置において、トレイ上の乱雑な重なり状態にあるボルト群をＣＣＤカメラで撮像し、撮像した画像上で輪郭が他のボルトから孤立している孤立ボルトを探索し、孤立ボルトが発見できた場合にロボットで孤立ボルトをピックアップし、孤立ボルトが発見できない場合に加振装置を動作させ、再び孤立ボルトを探索することが記載されている。これにより、特許文献１によれば、トレイ上のボルト群から１個ずつ順に孤立ボルトがピックアップされるので、従来のロボットによる把持ピックアップ作業を開始する前に必要だった部品の整列や位置決めが不要となり、部品の整列や位置決めのための人手や専用の機構を省くことができるとされている。
【０００３】
特許文献２には、物品供給装置において、回転テーブルの載置面の上方空間をほぼ等分するとともに回転テーブルの載置面との間に所定の空隙を形成するように仕切り・くぐり抜け部材を設け、仕切り・くぐり抜け部材の物品収容空間に搬入された多数の物品が回転テーブルの回転に従って少しずつ仕切り・くぐり抜け部材をくぐり抜けて載置面上で互いに分散した状態となることが記載されている。これにより、特許文献２によれば、視覚センサによる認識／検出とそれに基づくロボットによる把持が容易且つ確実に行えるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３００６７０号公報
【特許文献２】特開２００６−８２１８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１及び特許文献２に記載の技術は、いずれも、把持すべきワークを孤立させた状態にしてからロボットハンドで把持することが前提となっている。すなわち、特許文献１及び特許文献２には、いずれも、把持すべきワークを孤立させていない状態でどのようにしてワークを把持できるようにするのかについて一切記載がない。
【０００６】
本発明は、上記に鑑みてなされたものであって、複数のワークにおいて把持すべきワークを孤立させていない状態で把持できるロボットシステム、及びロボットシステムの制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の１つの側面にかかるロボットシステムは、複数のワークと、前記複数のワークのうち選択されたワークを把持するハンドと、前記ハンドを駆動するロボットと、前記複数のワークにおいて、接触状態にある２つのワークの間の空間であって前記ハンドを挿入可能な空間である隙間を生成するように指示する隙間生成指示部とを備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、隙間生成指示部が、複数のワークにおいて、接触状態にある２つのワークの間の空間であってハンドを挿入可能な空間である隙間を生成するように指示する。これにより、複数のワークにおいて把持すべきワークを孤立させていない状態のまま、把持すべきワークの周囲にハンドを挿入可能な空間を生成でき、把持すべきワークをハンドで把持できるようにすることができる。すなわち、複数のワークにおいて把持すべきワークを孤立させていない状態で把持できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかるロボットシステムの構成を示す図である。
【図２】図２は、実施の形態１にかかるロボットシステムの構成を示す図である。
【図３】図３は、実施の形態１における３次元ハンド形状データ及び３次元ハンドモデルを示す図である。
【図４】図４は、実施の形態１におけるロボットシステムの動作を示すフローチャートである。
【図５】図５は、実施の形態１におけるロボットシステムの動作を示す図である。
【図６】図６は、実施の形態１における複数のワークのバラ積み状態を示す図である。
【図７】図７は、実施の形態１の変形例にかかるロボットシステムの構成を示す図である。
【図８】図８は、実施の形態１の他の変形例にかかるロボットシステムの構成を示す図である。
【図９】図９は、実施の形態１の他の変形例にかかるロボットシステムの構成を示す図である。
【図１０】図１０は、実施の形態１の他の変形例にかかるロボットシステムの構成を示す図である。
【図１１】図１１は、実施の形態１の他の変形例におけるセンサの視線方向とハンドの進入動作の方向との関係を示す図である。
【図１２】図１２は、実施の形態１の他の変形例におけるワーク計測データを示す図である。
【図１３】図１３は、実施の形態１の他の変形例における２次元ハンド形状データ及び２次元ハンドモデルを示す図である。
【図１４】図１４は、実施の形態１の他の変形例における２次元ハンド形状データ及び２次元ハンドモデルを利用したロボットシステムの動作を示す図である。
【図１５】図１５は、実施の形態１の他の変形例における３次元ハンド形状データ及び３次元ハンドモデルを示す図である。
【図１６】図１６は、実施の形態１の他の変形例における２次元ハンド形状データ及び２次元ハンドモデルを示す図である。
【図１７】図１７は、実施の形態２にかかるロボットシステムの構成を示す図である。
【図１８】図１８は、実施の形態３にかかるロボットシステムの構成を示す図である。
【図１９】図１９は、実施の形態３におけるロボットシステムの動作を示すフローチャートである。
【図２０】図２０は、実施の形態３におけるロボットシステムの動作を示す図である。
【図２１】図２１は、実施の形態４におけるロボットシステムの動作を示すフローチャートである。
【図２２】図２２は、実施の形態４の変形例におけるロボットシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかるロボットシステムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
実施の形態１にかかるロボットシステム１００について図１及び図２を用いて説明する。図１は、ロボットシステム１００の概略構成を示す図である。図２は、ロボットシステム１００の機能構成を示すブロック図である。
【００１２】
ロボットシステム１００は、複数のワークが載置された箱（被載置部）３０から１つの部品を取り出して後段の装置（図示せず）へ供給するためのシステムである。後段の装置は、例えば、供給された部品を用いて組み立て作業を行う自動機械である。
【００１３】
具体的には、ロボットシステム１００は、ロボット５、ハンド６、センサ２、記録媒体１、情報処理部３、制御部４、箱３０、ステージ４０、及び揺動機構５０を備える。
【００１４】
ロボット５は、例えば、６自由度の多関節ロボットであり、複数のロボットアーム１３−１〜１３−３、複数の関節部１４−１〜１４−３、基部１５、及びフランジ１６を有する。複数のロボットアーム１３−１〜１３−３は、複数の関節部１４−１〜１４−３を介して基部１５に接続されている。ロボットアーム１３−１の先端には、フランジ１６が設けられている。
【００１５】
ハンド６は、ロボット５のフランジ１６に作業用のツールとして装着される。ハンド６及びフランジ１６の位置と姿勢は情報処理部３により決定される。これにより、ロボット５は、制御部４の指令に基づきハンド６を任意の位置や姿勢にするように、フランジ１６を介してハンド６を駆動する。ハンド６は、制御部４の指令に基づきワークを把持する。
【００１６】
センサ２は、複数のワークＷＫ−１〜ＷＫ−Ｎを３次元的に計測し、ワーク計測データを生成する。センサ２は、例えば３次元ビジョンセンサであり、撮像部２ａ及び画像処理部２ｂを有する。撮像部２ａは、被写界の３次元画像を取得する。例えば、撮像部２ａは、箱３０の内側に存在する複数のワークＷＫ−１〜ＷＫ−Ｎの３次元画像を取得する。画像処理部２ｂは、撮像部２ａにより取得された３次元画像に対して所定の画像処理を施し、画像処理の施された３次元画像データをワーク計測データとして情報処理部３へ送信する。画像処理部２ｂは、撮像部２ａの筐体内又は筐体近傍に配されていてもよいし、情報処理部３の筐体内に配されていてもよい。
【００１７】
なお、センサ２は、ロボット５に装着されていてもよいし（図１１参照）、あるいは、ロボット５とは別に適当な固定先に設置されていてもよい（図１参照）。また、センサ２は、例えば、二眼あるいは多眼のステレオカメラ、レーザやプロジェクタなどの投光部とカメラとを備えたアクティブ方式のステレオカメラ、タイムオブフライト法を用いる機器、単眼でロボット動作を利用した因子分解法やStructure from Motion、Structure and Motionによる機器、モーションステレオカメラ、視体積交差法による機器など、任意の領域の３次元データをとれるものであればよい。
【００１８】
記録媒体１は、少なくともハンド形状データ（例えば、３次元ハンド形状データ）を格納する。ハンド形状データは、ハンド６の形状（例えば、３次元形状）を示すデータである（図３参照）。記録媒体１に格納されたハンド形状データは、例えば、情報処理部３からアクセスされ、情報処理部３へ読み出される。
【００１９】
箱（被載置部）３０には、複数のワークＷＫ−１〜ＷＫ−Ｎが載置されている。箱３０には、例えば、複数のワークＷＫ−１〜ＷＫ−Ｎがバラ積みされている（図１参照）。なお、本明細書において、「バラ積み」とは、複数のワークＷＫ−１〜ＷＫ−Ｎのうち少なくとも隣接する２つのワークが接触している状態（例えば、隣接する２つのワークが重なっている状態だけでなく、同じ高さで横方向に接触している状態なども含む）を示すものとする。
【００２０】
ステージ４０は、複数のワークＷＫ−１〜ＷＫ−Ｎがバラ積みされた箱３０が置かれるべきステージである。ステージ４０は、箱３０と揺動機構５０との間に配されている。
【００２１】
揺動機構５０は、ステージ４０を介して箱３０を例えばＸ方向、Ｙ方向、及びＺ方向に揺動させる。例えば、揺動機構５０は、図示しないが、Ｘ軸駆動源、Ｙ軸駆動源、Ｚ軸駆動源、Ｘ軸駆動機構、Ｙ軸駆動機構、及びＺ軸駆動機構を有する。Ｘ軸駆動源は、制御部４を介した情報処理部３による制御のもと、Ｘ軸駆動機構を介して箱３０をＸ方向に揺動させる。Ｙ軸駆動源は、制御部４を介した情報処理部３による制御のもと、Ｙ軸駆動機構を介して箱３０をＹ方向に揺動させる。Ｚ軸駆動源は、制御部４を介した情報処理部３による制御のもと、Ｚ軸駆動機構を介して箱３０をＺ方向に揺動させる。
【００２２】
Ｘ軸駆動機構、Ｙ軸駆動機構、及びＺ軸駆動機構は、例えば、エアーシリンダを用いたアクチュエータであってもよいし、圧電セラミックスを用いたアクチュエータであってもよいし、他の方式のアクチュエータであってもよい。
【００２３】
箱３０は、図１に断面図で示されているが、実際には、底面部３１と４つの側面部３２〜３５とを有する（手前側の側面３３及び奥側の側面３４の図示を省略している）。底面部３１は、Ｘ方向及びＹ方向に延びた底面を形成する。各側面部３２〜３５は、底面部３１の外縁から＋Ｚ側に立ち上がるように延びている。これにより、複数のワークＷＫ−１〜ＷＫ−Ｎが底面部３１の上に載置されて箱３０が例えばＸ方向、Ｙ方向、及びＺ方向に揺動された際に、各ワークＷＫが箱３０から飛び出すことを抑制できる。
【００２４】
情報処理部３は、制御部４を介して、ロボットシステム１００におけるロボット５、ハンド６、及び揺動機構５０を制御する。例えば、情報処理部３は、表示部３ｆを有し、センサ２により生成されたワーク計測データを表示部３ｆに表示して確認できるようになっている。また、情報処理部３は、例えば、ロボットプログラムに従って、ハンド６及びロボット５を制御するとともに、揺動機構５０を制御する。
【００２５】
例えば、情報処理部３は、記憶媒体１から読み出したハンド形状データと、センサ２から供給されたワーク計測データとに基づいて、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在するか否かを判定する。隙間は、接触状態にある２つのワークの間の空間であってハンド６を挿入可能な空間である。情報処理部３は、複数のワークにおいて把持すべきワークの周囲に隙間が存在する場合、ワークの把持位置姿勢（すなわち、ハンド６及びフランジ１６の位置と姿勢）を求めて制御部４へ出力する。また、情報処理部３は、複数のワークにおいて把持すべきワークの周囲に隙間が存在しない場合、複数のワークにおいて隙間を生成するように指示する（すなわち、揺動指令を出力する）。例えば、情報処理部３は、複数のワークにおいて把持すべきワークの周囲に隙間が存在しない場合、箱３０を揺動させるように、揺動指令を生成して制御部４へ出力する。
【００２６】
制御部４は、情報処理部３から出力された揺動指令に基づき、箱３０を揺動するように、揺動機構５０を制御する。あるいは、制御部４は、情報処理部３から出力された把持位置姿勢のデータに基づき、ロボット５の動作、さらにはハンド６の動作を制御する。
【００２７】
本実施の形態では、ワーク形状に基づき事前に把持位置姿勢を決めるのではなく、ハンド形状データとワーク計測データとから複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間をさがす。そして、把持すべきワークの周囲に隙間が見つからない場合には、隙間を生成するために揺動機構５０を制御し、把持すべきワークの周囲に隙間が見つかった場合には、見つけた隙間に応じてワークの把持位置姿勢を決める。
【００２８】
次に、ロボットシステム１００の情報処理部３における各部の機能について説明する。具体的には、情報処理部３は、把持姿勢作成部３ａ及び隙間生成指示部３ｂを有する。把持姿勢作成部３ａは、ワーク計測データ及びハンド形状データに基づいて、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在するか否かを判定する。把持姿勢作成部３ａは、把持すべきワークの周囲に隙間が見つからない場合に、把持すべきワークの周囲に隙間が見つからない旨を隙間生成指示部３ｂに通知する。これに応じて、隙間生成指示部３ｂは、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて、隙間を生成するように指示する。この「隙間」とは、接触状態にある２つのワークの間の空間であってハンド６を挿入可能な空間である。そして、把持姿勢作成部３ａは、再び、ワーク計測データ及びハンド形状データに基づいて、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在するか否かを判定する。把持姿勢作成部３ａは、把持すべきワークの周囲に隙間が見つかった場合に、ワークのどこを掴みに行くかを決定する。
【００２９】
より具体的には、把持姿勢作成部３ａは、把持可能特徴抽出部３ａ１、ハンドマッチング部３ａ２、把持姿勢候補選択部３ａ３を有する。隙間生成指示部３ｂは、揺動指示部３ｂ１を有する。
【００３０】
把持可能特徴抽出部３ａ１は、センサ２のワーク計測データから把持すべきワークの周囲における隙間の形状（例えば、３次元形状）等の特徴を抽出する。把持可能特徴抽出部３ａ１は、抽出された隙間の特徴をハンドマッチング部３ａ２へ供給する。
【００３１】
ハンドマッチング部（判定部）３ａ２は、記録媒体１に蓄えられたハンド形状データと把持可能特徴抽出部３ａ１で抽出された隙間の特徴とのマッチングをとり、複数のワークにおいて把持すべきワークの周囲に隙間（ハンド６を挿入可能な空間）が存在するか否かを判定する。ハンド形状データは、例えば、挟持タイプのハンド６であれば、略角柱形状に対応した空間が相当する（図３参照）。例えば、ハンドマッチング部３ａ２は、ハンド形状データが隙間に含まれる割合を、ハンド形状データと隙間の特徴とのマッチング率として求めることができる。例えば、ハンドマッチング部３ａ２は、ハンド形状データと隙間の特徴とのマッチング率が閾値（例えば、９０％）以上であれば、把持すべきワークの周囲に隙間が存在すると判定し、ハンド形状データと隙間の特徴とのマッチング率が閾値（例えば、９０％）未満であれば、把持すべきワークの周囲に隙間が存在しないと判定する。
【００３２】
ハンドマッチング部３ａ２は、把持すべきワークの周囲に隙間（ハンド６を挿入可能な空間）が存在しないと判定された場合、把持すべきワークの周囲に隙間が存在しない旨の情報を揺動指示部３ｂ１へ供給する。これに応じて、揺動指示部３ｂ１は、箱３０を揺動させるように、制御部４経由で揺動機構５０に指示する。例えば、揺動指示部３ｂ１は、箱３０の揺動方向、揺動量、揺動周期等を決定し、それらを反映させた揺動指令を生成し、制御部４へ供給する。制御部４は、揺動指令に応じて、揺動機構５０の例えばＸ軸駆動源、Ｙ軸駆動源、及びＺ軸駆動源に制御信号をそれぞれ供給する。
【００３３】
ハンドマッチング部３ａ２は、把持すべきワークの周囲にハンド６を挿入可能な隙間が存在すると判定された場合、把持すべきワークの周囲に隙間が存在する旨の情報を把持可能特徴抽出部３ａ１へ供給する。これに応じて、把持可能特徴抽出部３ａ１は、把持すべきワークの周囲に存在する隙間に応じて、複数の把持位置姿勢候補を作成する。把持姿勢候補選択部３ａ３は、ハンドマッチング部３ａ２で作成された把持位置姿勢候補から、例えば最も掴みやすい把持位置姿勢を選択する。
【００３４】
例えば、把持可能特徴抽出部３ａ１では、ワークの全体形状によらず、利用するハンド６が掴むことができる特徴を抽出する。例を挙げると、挟持タイプのハンド６であれば、つまみやすい突起部分やエッジが相当する。
【００３５】
これら特徴は、３次元計測データに対してエッジ、面、円などを当てはめることで抽出することが可能である。これらの特徴を高速に求めるための態様としては、例えば、距離を明度で表した距離画像に対して、キャニー演算子やソーベル演算子などを利用したエッジ検出を行う態様、ハフ変換による円抽出を行う態様、エッジで囲まれた領域をラベリングすることで面を抽出する態様、輝度のエッジ勾配方向や強度を利用してテクスチャ部分を突起部として検出する態様等を挙げることができる。これらは、基本的な画像処理で求められるものであり、多くの特徴を抽出しても非常に高速で完了する。
【００３６】
ハンドマッチング部３ａ２では、把持可能特徴抽出部３ａ１で抽出された特徴と記録媒体１に蓄えられたハンド形状データ（ハンドモデル）とのマッチングをとる。これは、ハンド６のタイプに応じて、例えば、図３に示されるような３次元ハンドモデルを持つことで実現される。例えば、挟持タイプであれば、把持アプローチ直前のハンドアームの開き幅、進入深さ、ハンド６の縦幅、横幅により定義することができる。上記のようなハンド形状データでは、パラメータがシンプルであるので、必要とするデータ量は少なくて済む。各パラメータを求める際には、ハンド６のＣＡＤデータから計算してもよいし、ハンド６を直接計測してもよい。
【００３７】
上述したようなハンド形状データ（ハンドモデル）とのマッチングは、例えば、モデルと特徴点群とのマッチングが高い部分を候補とし、モデルとの一致度が低い場合には、その候補から照合スコア（マッチング率）を低くする。こうしたマッチングは、３次元ハンドモデルであればＩＣＰ(Iterative Closest Point)などの点群どうしの照合によって、実現することができる。また挟持タイプであればさらに周辺環境との干渉も同時に考慮することができる。すなわち例えば挟持タイプであれば、進入深さとハンド６の縦幅、横幅とで定義される領域に計測データが含まれていた場合、照合スコア（マッチング率）を下げることで実現する。
【００３８】
ハンドマッチング部３ａ２は、把持可能特徴抽出部３ａ１で抽出された複数の特徴に対して、特徴ごとにマッチング率が最も高い把持位置姿勢を計算し、それら複数の把持位置姿勢を把持位置姿勢候補とするか、あるいは、把持可能特徴抽出部３ａ１で抽出された単一の特徴に対して、マッチング率が所定の閾値よりも高い複数の把持位置姿勢を計算する。それら複数の把持位置姿勢を把持位置姿勢候補とする。このような処理によって、ワーク形状が未知でも、把持位置姿勢を定義することができる。
【００３９】
また、上記のマッチングは、把持可能特徴抽出部３ａ１で距離画像上の主法線を計算しておくことで、並進２自由度、回転１自由度の３自由度の２次元画像照合でスコアを計算でき、各特徴の干渉がなくつかみやすい把持位置姿勢を高速に計算することが可能になる。
【００４０】
把持姿勢候補選択部３ａ３では、ハンドマッチング部３ａ２で作成された把持位置姿勢候補から、最も掴みやすい把持位置姿勢候補を選択する。これはハンドマッチング部３ａ２のスコアが最も高かったものを選んでもよいし、さらに追加の優先度を与えても良い。例えば、把持可能特徴抽出部３ａ１で抽出された特徴の平均高さや重心位置を利用して、バラ積みシーンにおいて最も高い位置にあるワークを選択するなどしてもよい。
【００４１】
このようにして、情報処理部３により最適な一つの把持位置姿勢が作成されたら、制御部４は、その把持位置候補のデータに基づき、ロボット５の動作、さらにはハンド６の動作をコントロールし、ハンド６はバラ積みされた複数のワークの中から目的のワークを把持し取り出す。
【００４２】
次に、ロボットシステム１００の動作について図４〜図６を用いて説明する。図４は、ロボットシステム１００の動作を示すフローチャートである。図５は、ロボットシステム１００の動作を示す図である。図６は、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態を示す図である。
【００４３】
ステップＳ１では、センサ２（例えば、３次元ビジョンセンサ）による認識処理が行われる。例えば、センサ２は、複数のワークＷＫ−１〜ＷＫ−Ｎを３次元的に計測し、ワーク計測データを生成する。センサ２は、生成されたワーク計測データを情報処理部３へ供給する。
【００４４】
ステップＳ２では、複数のワークＷＫ−１〜ＷＫ−Ｎにおける把持すべきワークの周囲にハンド６が挿入可能か否かを判断する。
【００４５】
例えば、把持可能特徴抽出部３ａ１は、ワーク計測データに応じて把持すべきワークの周囲における隙間の形状（例えば、３次元形状）等の特徴を抽出してハンドマッチング部３ａ２へ供給する。ハンドマッチング部３ａ２は、ハンド形状データを記録媒体１から読み出すとともに、隙間の特徴を把持可能特徴抽出部３ａ１から受ける。そして、ハンドマッチング部３ａ２は、ハンド形状データと隙間の特徴とのマッチングをとり、そのマッチングの結果（例えば、マッチング率）に応じて、複数のワークにおいて把持すべきワークの周囲に隙間が存在するか否かを判定する。
【００４６】
例えば、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態が図６（ａ）、（ｂ）に示すようになっている場合、把持すべきワークＷＫ−２の周囲には、ワークＷＫ−１，ＷＫ−３，ＷＫ−４，ＷＫ−５，ＷＫ−６がぴったり接触しており隙間がない。これにより、把持すべきワークの周囲に隙間が存在しないと判定される。
【００４７】
例えば、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態が図６（ｃ）、（ｄ）に示すようになっている場合、把持すべきワークＷＫ−２の周囲には、ワークＷＫ−１，ＷＫ−４，ＷＫ−５との間に隙間ＧＰ−１があり、ワークＷＫ−３，ＷＫ−４，ＷＫ−６との間に隙間ＧＰ−２がある。これにより、把持すべきワークの周囲に隙間が存在すると判定される。
【００４８】
ハンドマッチング部３ａ２は、把持すべきワークの周囲に隙間が存在しないと判定された場合、把持すべきワークの周囲にハンド６を挿入不可能であると判断して（ステップＳ２で「不可能」）、処理をステップＳ３へ進める。ハンドマッチング部３ａ２は、把持すべきワークの周囲に隙間が存在すると判定された場合、把持すべきワークの周囲にハンド６を挿入可能であると判断して（ステップＳ２で「可能」）、処理をステップＳ４へ進める。
【００４９】
ステップＳ３では、箱３０を揺する処理が行われる。
【００５０】
例えば、隙間生成指示部３ｂの揺動指示部３ｂ１は、把持すべきワークの周囲に隙間が存在しない旨の情報をハンドマッチング部３ａ２から受ける。これに応じて、揺動指示部３ｂ１は、箱３０を揺動させるように、制御部４経由で揺動機構５０を制御する。例えば、揺動指示部３ｂ１は、箱３０の揺動パターン（揺動方向、揺動量、揺動周期等）を決定し、それらを反映させた揺動指令を生成し、制御部４へ供給する。制御部４は、揺動指令に応じて、揺動機構５０の例えばＸ軸駆動源、Ｙ軸駆動源、及びＺ軸駆動源に制御信号をそれぞれ供給する。
【００５１】
このとき、揺動指示部３ｂ１は、ワーク計測データをハンドマッチング部３ａ２から受けてもよい。この場合、揺動指示部３ｂ１は、ワーク計測データに示された複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態に応じて、隙間を生成するのに適した揺動パターン（揺動方向、揺動量、揺動周期等）を決定できる。これにより、揺動指示部３ｂ１は、把持すべきワークの周囲に効率的に隙間を生成することができる。
【００５２】
例えば、揺動機構５０は、図５に示すように、制御信号に従って、ステージ４０を介して箱３０を例えばＸ方向、Ｙ方向、及びＺ方向に揺動させる。これにより、例えば、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態を、図６（ａ）、（ｂ）に示す状態から図６（ｃ）、（ｄ）に示す状態にすることができる。
【００５３】
ステップＳ４では、把持すべきワークの取り出し動作が行われる。
【００５４】
例えば、把持可能特徴抽出部３ａ１は、把持すべきワークの周囲に隙間が存在する旨の情報をハンドマッチング部３ａ２から受ける。これに応じて、把持可能特徴抽出部３ａ１は、把持すべきワークの周囲に存在する隙間に応じて、複数の把持位置姿勢候補を作成する。把持姿勢候補選択部３ａ３は、ハンドマッチング部３ａ２で作成された把持位置姿勢候補から、例えば最も掴みやすい把持位置姿勢を選択する。把持姿勢候補選択部３ａ３は、選択された把持位置姿勢のデータを制御部４へ供給する。制御部４は、その把持位置候補のデータに基づき、ロボット５の動作、さらにはハンド６の動作をコントロールし、ハンド６はバラ積みされた複数のワークの中から目的のワークを把持し取り出す。
【００５５】
ここで、仮に、ロボットシステム１００において、把持すべきワークを孤立させた状態にしてからハンド６で把持する場合について考える。この場合、複数のワークＷＫ−１〜ＷＫ−Ｎがバラ積みされた箱３０をそのまま揺すっても各ワークＷＫ−１〜ＷＫ−Ｎを孤立させた状態にすることが困難である。そのため、複数のワークＷＫ−１〜ＷＫ−Ｎを箱３０から出して大型の台の上に並べてその大型の台を揺する必要がある。これにより、ワークの取り出しを行うための工程数が増加するとともに工程時間が長くなるので、ワークの取り出しの作業コストが増大する傾向にある。
【００５６】
それに対して、実施の形態１では、ロボットシステム１００において、隙間生成指示部３ｂが、バラ積みされた複数のワークＷＫ−１〜ＷＫ−Ｎにおいて、接触状態にある２つのワークの間の空間であってハンド６を挿入可能な空間である隙間を生成するように指示する。これにより、複数のワークにおいて把持すべきワークを孤立させていない状態のまま、把持すべきワークの周囲にハンド６を挿入可能な空間を生成でき、把持すべきワークをハンド６で把持できるようにすることができる。すなわち、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークを孤立させていない状態で把持できる。これにより、ワークの取り出しを行うための工程数が低減できるとともに工程時間を短縮できるので、ワークの取り出しの作業コストを低減できる。
【００５７】
また、把持すべきワークを孤立させた状態にしてからハンド６で把持する場合、複数のワークＷＫ−１〜ＷＫ−Ｎを大幅に揺すらなければならないので、揺動処理に要する時間が長時間化する傾向にある。
【００５８】
それに対して、実施の形態１では、バラ積みされた複数のワークにおいて把持すべきワークを孤立させていない状態のまま、把持すべきワークをハンド６で把持できるようにすることができる。これにより、揺動処理に要する時間を大幅に短縮できる。
【００５９】
また、把持すべきワークを孤立させた状態にしてからハンド６で把持する場合、複数のワークＷＫ−１〜ＷＫ−Ｎを大幅に揺すらなければならないので、各ワークＷＫ−１〜ＷＫ−Ｎのこすれ合う量が多くなる。これにより、各ワークＷＫ−１〜ＷＫ−Ｎのダメージが大きくなる可能性がある。
【００６０】
それに対して、実施の形態１では、バラ積みされた複数のワークにおいて把持すべきワークを孤立させていない状態のまま、把持すべきワークをハンド６で把持できるようにすることができる。これにより、各ワークＷＫ−１〜ＷＫ−Ｎのこすれ合う量を低減でき、各ワークＷＫ−１〜ＷＫ−Ｎのダメージを抑制できる。
【００６１】
あるいは、仮に、ロボットシステム１００において、隙間生成指示部３ｂが設けられていない場合を考える。この場合、例えば、図６（ａ）、（ｂ）に示すように、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在しないときに、把持可能特徴抽出部３ａ１は、ハンド６が掴むことができる特徴を抽出できない可能性がある。これにより、ハンド６及びロボット５は、指示待ちの待機状態に入ったまま止まってしまい、複数のワークＷＫ−１〜ＷＫ−Ｎから把持すべきワークを取り出せない傾向にある。
【００６２】
それに対して、実施の形態１では、ロボットシステム１００において、ハンドマッチング部３ａ２が、ワーク計測データ及びハンド形状データに基づいて、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在するか否かを判定する。そして、隙間生成指示部３ｂは、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在しない場合、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて隙間を生成するように指示する。これにより、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在しないときに、把持すべきワークの周囲に隙間を生成できるので、把持すべきワークをハンド６で把持できるようにすることができる。すなわち、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて把持すべきワークの周囲に隙間が存在しないときでも、把持すべきワークを取り出すことができる。
【００６３】
また、実施の形態１では、ロボットシステム１００において、揺動指示部３ｂ１が、箱３０を揺動させる。これにより、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて隙間を生成できる。
【００６４】
また、実施の形態１では、ロボットシステム１００において、揺動指示部３ｂ１が、箱３０を揺動させるように、揺動機構５０に指示する。これにより、簡易な構成及び処理で、複数のワークＷＫ−１〜ＷＫ−Ｎにおいて隙間を生成できる。
【００６５】
なお、ロボットシステム１００ｊは、図７に示すように、把持位置姿勢を絞り込んだ後に、さらにワーク形状データを利用して、ワーク計測データだけでは判断できないワークどうしの絡み状態や、拾上げ動作が成功するか否かの推定を行ってもよい。
【００６６】
例えば、記憶媒体１に、ハンド形状データに加えて、ワーク形状データも蓄えられており、また、図７に示されるように、情報処理部３は、ワーク状態判断部３ｃをさらに有する。ワーク状態判断部３ｃは、把持姿勢作成部３ａにより計算された把持位置姿勢を、ワーク形状データに基づき評価する。
【００６７】
また、ワーク状態判断部３ｃは、図７に示されるように、ワークマッチング部３ｃ１、ワーク絡み状態推定部３ｃ２、ワーク拾い出し動作推定部３ｃ３、及び把持姿勢候補選択部３ｃ４を有する。
【００６８】
把持姿勢作成部３ａで新たに計算された把持位置姿勢とそれに用いられた抽出特徴とを初期候補として、ワークマッチング部３ｃ１でワーク形状データとのマッチングを行う。すでに初期候補が求められていることはワークモデル照合の初期探索ができていることにあたる。このとき特徴が３次元点群やエッジ点の集合であればＩＣＰ法などで正確なマッチングをおこなう。
【００６９】
ワーク絡み状態推定部３ｃ２では、ある把持位置姿勢に対応するワークと、そのワークの周辺にあるワーク群とに関して、ワーク計測データ及びワーク形状データをマッチングすることで対応するワークモデルを獲得し、それらワークモデルの状態を分析することで、ワーク同士の干渉を判定する。その結果、それぞれのワークモデルの一部が同一位置に存在し、干渉している場合、そのワークモデルに対応する把持位置姿勢は候補から除外するか、もしくは把持姿勢候補選択部３ｃ４における候補選択の優先度をさげるなどの処理を行う。またこのときワークモデル間で干渉がなかったとしても、ワークモデルの拾い出し動作をシミュレーションし、その動作により他の周辺ワークモデルとぶつかる場合は、同様に対応する把持位置姿勢を候補から除外するか優先度をさげてもよい。
【００７０】
ワーク拾い出し動作推定部３ｃ３では、ある把持位置姿勢とそれに対応するワークモデル、さらにそれに対応する把持位置姿勢のハンド形状データ（ハンドモデル）を用いて、把持のシミュレーションをおこなう。そして、その把持位置姿勢でハンドがワークを把持した場合、ワークの重心位置がどこにあるかを計算し、拾い出し動作時に落下の危険が高い把持位置姿勢は除外するか、もしくは優先度をさげる。これは、例えば、図３のように用意されたハンド６の把持位置と、計算されたワークの重心位置間のユークリッド距離を評価指標として、落下の危険性を判定してもよい。
【００７１】
把持姿勢候補選択部３ｃ４では、ワーク絡み状態推定部３ｃ２、ワーク拾い出し動作推定部３ｃ３で評価された優先度をもとに、最適な把持位置姿勢を選択する。このとき、把持姿勢作成部３ａで作成された候補付けのためのスコア（マッチング率）を利用してもよい。それぞれの評価指標は、和算のような線形結合でも、積算のような非線形結合でもよい、また、例えば把持姿勢作成部３ａのスコア（マッチング率）を主体に、ワーク絡み状態推定部３ｃ２、ワーク拾い出し動作推定部３ｃ３の優先度が一定以下の候補は棄却するなどの選択方法をとってもよい。
【００７２】
あるいは、ロボットシステム１００ｋは、図８に示すように、次作業に適した把持位置候補を推定してもよい。
【００７３】
例えば、記録媒体１に次作業動作の把持位置姿勢に関するデータが蓄えられ、情報処理部３に次作業に適した把持位置候補を推定する次作業動作推定部３ｄが設けられている。
【００７４】
次作業動作推定部３ｄは、記録媒体１に蓄えられた次作業動作の把持位置姿勢をもとに、把持位置候補を推定する。これは、ワーク取り出しという作業の次の作業が、例えば、組立中の製品へのワークの組付けだとする場合、その組付け中に要求されるワークの把持位置姿勢はその組付け動作に適したものに限定される。例えば、裏返しに把持したワークをそのまま組付けることはできないことが多く、また、ロボットが把持中にとる姿勢は大きく変えることは困難である。微小な把持誤差は許容できるが、大きな誤差をともなう把持や、組付け姿勢とは異なるワークの姿勢での把持が行われてしまった場合、ワークの持ち替えが必要となり作業時間や手間が増えてしまう。そこで、図８に示す変形例では、取り出し時のワーク把持姿勢から次の作業で持ち替えが必要と判断される場合は、把持位置姿勢の候補としての優先度を下げる、もしくは棄却する。なお、ここでいう次の作業は、組付けだけでなく、搬送、パレタイジング、梱包などの作業を例示することができる。
【００７５】
取り出し時の把持位置姿勢から持ち替えが必要か否かを判断する方法は、ワーク形状モデル、ハンド形状モデル、把持位置姿勢を利用して、ワークの把持状態をシミュレートする。具体的に例示すると、次作業動作推定部３ｄは、ハンド形状モデルに把持された状態のワーク形状モデルを、組付けなどの次作業をシミュレートして得られるワーク位置におけるハンド形状モデルに把持された状態のワーク形状モデルに、マッチングさせる。そして、それぞれのワーク形状モデルの位置姿勢が一致した状態で、それぞれのハンド形状の位置姿勢の間の変換行列をロボットが演算可能であれば次作業として持ち替えなしの動作が可能であると判定し、演算不可能であれば一度把持しなおすか、別のロボットのハンドに手渡すなどの持ち替え作業をはさむ必要があると判定することができる。
【００７６】
あるいは、ロボットシステム１００ｎは、図９に示すように、把持姿勢作成部３ａにより計算された複数の把持位置姿勢候補を、ワーク状態判断部３ｃ、次作業動作推定部３ｄそれぞれでパラレルに評価し、最終的にそれらの評価を把持姿勢候補選択部３ｅにおいて総合的に判断するという処理をとってもよい。
【００７７】
例えば、把持姿勢作成部３ａで計算される候補のスコア（マッチング率）、ワーク状態判断部３ｃ、次作業動作推定部３ｄそれぞれの評価値を、和算のような線形結合や、積算のような非線形結合であらわし、評価してもよい。また、例えば、把持姿勢作成部３ａのスコア（マッチング率）を主体に、ワーク状態判断部３ｃ、次作業動作推定部３ｄの評価値が一定以下の候補は棄却するなどの選択方法を介在させるような処理をとってもよい。
【００７８】
あるいは、ロボットシステム１００ｐは、図１０に示すように、ハンド形状データとワーク計測データ（距離画像）とのマッチングを２次元的に行ってもよい。この場合、処理を容易に高速化でき、ワーク形状に依存せずに調整を容易化でき、汎用的なバラ積みワーク取り出しを実現できる。
【００７９】
例えば、ロボット５の先に、挟持型のハンド６と３次元計測をするセンサ２とを搭載する。図１１のロボット５は、６自由度の多関節型であるが、７自由度の多関節型でもよい。あるいは、ロボット５は、双腕型、垂直スカラー型、パラレルリンク型のロボットでもよい。また、センサ２は、ロボット５の先端に取付けられ、一緒に稼動できるが、これ以外に、ロボット５と別に固定設置してもよいし、別の可動ステージに設置してもよい。
【００８０】
ワークに近づく進入動作を例えば並進１自由度の動作に制限するとき、図１１に示すようにセンサ２の視線方向をその進入動作の方向と一致させる。ここでいうセンサの視線方向とは、カメラレンズの光軸方向を示す。このとき、センサ２の距離画像と、図１３に示したハンド形状の２次元モデル（以降、２次元ハンドモデルと呼ぶ）から、画像処理だけで高速に把持位置姿勢を計算することができる。
【００８１】
距離画像の例を図１２（ｃ）に示す。カメラで撮影した画像（図１２（ｂ）に示すカメラ画像）の場合、各画素には対象物の表面の光の反射量が輝度値として収まっている。一方、図１２（ｃ）に示す距離画像の場合、各画素にはそこにある物体の高さが収まっている。図１２（ｃ）では撮影したセンサ２に近ければ明るく、遠ければ暗く表示されている。図１２（ｃ）に示す距離画像は、高さを含む３次元情報を画像として扱えるため、３次元の位置データとして扱うよりも処理演算量が軽いという利点がある。また、距離画像によれば、従来から生産現場で使われてきた多くの画像処理方法を応用できる。距離画像は、例えば、空間コード化方式やステレオ方式のような高さ情報を得ることができる３次元計測方法と、それを実現する３次元センサとにより得ることができる。例えば、図１２（ａ）に示すようなワークをバラ積みにした状態を３次元センサで計測すると、図１２（ｂ）に示すようなカメラ画像と、図１２（ｃ）に示すような距離画像とを得ることができる。
【００８２】
距離画像からワークの掴む位置を計算するために、図１３に示すような２次元ハンドモデルを使う。これはハンド６が進入・把持動作をおこなう瞬間にワークにぶつかるハンド６の先端部分を円形の干渉領域で表している。把持するためのハンド６の先端部分の干渉領域は２箇所あるので、その円の半径と、２つの円の位置関係を決めるハンド６の開き幅という合計２つのパラメータだけで、この２次元ハンドモデルを定義できる。これは、ハンド６の先端部分が直方体であれば、円の半径の代わりに縦・横の長さを使い３つのパラメータであらわしてもよい。また多角形や楕円を現すパラメータで定義してもよい。しかし、そのように厳密でなくても、近似的な円の半径を、干渉領域全体を覆うよう十分大きめに設定すれば、干渉を避けるためのモデルとして近似的な円を用いても、ハンド６は、正しく機能する。
【００８３】
図１４に距離画像と２次元ハンドモデルを利用した把持候補作成の処理イメージを表す。処理はまず、距離画像からセグメントを抽出する。ここでいうセグメントとは、形状エッジに囲まれたワークの平面や曲面部分を指す。セグメンテーションするとは、このセグメントを抽出することをさす。この抽出は、距離画像からのキャニー演算子やソーベル演算子によるエッジ検出で実現する。距離画像におけるエッジとは、物体の形状エッジそのものを表す。この検出エッジで区切られた領域が、ワークの平面や曲面部分にあたる。ワーク形状とのモデルマッチングが困難な、細ネジやバネなどでもこの方法でセグメントを抽出できる。
【００８４】
次に、抽出されたたくさんのセグメントをいくつかの候補に絞り込む。この絞り込みは、計算時間の削減に寄与するが、全てのセグメントを候補として選択しても処理自体は実現できるので、絞り込みをせずに処理を実施してもよい。候補の選択方法は、例えば最も高い位置にあるセグメントから優先順位をつけて複数選択してもよいし、高さ情報の変わりにセグメントの面積をもとに候補選択しても良い。この候補の中から次に説明するマッチングによるスコア（把持可能尤度）が最も高かった把持位置姿勢を出力する。
【００８５】
候補として選択したセグメントは２次元ハンドモデルとのマッチングをおこなう。これにより、ぶつからずに安定して掴める位置を探す。これは、１）ハンド６の開き幅内に存在するセグメントの面積が大きく、且つ、２）ハンド６の先端部分の干渉領域とセグメント周辺との干渉がなく衝突しない、把持位置姿勢を探すことで実現する。１）は、候補セグメントとハンド６の開き幅部分との畳みこみ処理で、２）は、ぶつかる可能性のある周辺を含めた候補セグメントとハンド６の先端部分との干渉領域の畳みこみ処理で、計算することができる。１）の領域から２）の領域を引くと、「掴める可能性があり、かつ、ぶつかる可能性のない領域」となる。これを平滑化した後に可視化したものが図１４の把持可能尤度である。計算する把持位置姿勢はつまり、この最大尤度を記録したときのハンドモデルの姿勢と位置である。これを、候補として選択した唯一のセグメントに対して、もしくは複数のセグメントに対して、計算する。唯一のセグメントの場合は、そのセグメント内で最大尤度を記録するハンドモデルの位置姿勢を選択する。複数のセグメントの場合は、各セグメント内の最大尤度が最も大きいセグメントの、最大尤度を記録したハンドモデルの位置姿勢を選択する。図１４の把持位置姿勢の結果画像は、ワークの一部出っ張った部分の重心に、エッジにほぼ垂直に把持をするのが適当という計算結果が出力されたことを示している。９２という数字は、把持可能尤度を面積で正規化し、最大１００点で「どれだけつかみやすいか」を表したものである。真ん中の濃灰色の丸が把持位置を表し、直線で結ばれた白い２つ円がハンド６の先端部分の干渉領域を表している。
【００８６】
あるいは、実施の形態１及び実施の形態１の各変形例において、ハンド６は、平板状の挟持タイプ、吸着タイプ、あるいは、穴に挿し込み広げるタイプ（以下、拡持タイプと称する）でもよい。
【００８７】
例えば、記録媒体１は、図１５に示すような３次元ハンド形状データ又は３次元ハンドモデルを格納してもよいし、図１６に示すような２次元ハンド形状データ又は２次元ハンドモデルを格納してもよい。
【００８８】
例えば、把持可能特徴抽出部３ａ１では、利用するハンド６が掴むことができる特徴として、平板状の挟持タイプのハンド６であれば、つまみやすい突起部分やエッジを抽出する。吸着タイプのハンド６であれば、一定領域以上の面を抽出する。また、拡持タイプのハンド６であれば、ワークの表面に生じている円形の穴を抽出する。
【００８９】
例えば、ハンドマッチング部３ａ２によるハンド形状モデルとのマッチングは、例えば、吸着タイプであれば、モデルと特徴点群とのマッチングが高い部分を候補とし、特徴面が小さかったり、特徴面内に穴が開いていたりして、モデルとの一致度が低い場合には、その候補から照合スコア（マッチング率）を低くする。こうしたマッチングは、３ＤモデルであればＩＣＰ(Iterative Closest Point)などの点群どうしの照合により、２Ｄモデルであればテンプレートマッチングや、モデルをフィルタと考えての畳みこみ処理によるマッチングによって、実現することができる。また挟持タイプや拡持タイプであればさらに周辺環境との干渉も同時に考慮することができる。すなわち例えば挟持タイプであれば、進入深さとハンド６の縦幅、横幅とで定義される領域に計測データが含まれていた場合、照合スコア（マッチング率）を下げることで実現する。
【００９０】
実施の形態２．
次に、実施の形態２にかかるロボットシステム２００について説明する。以下では、実施の形態１と異なる部分を中心に説明する。
【００９１】
実施の形態１では、揺動機構５０を制御して箱３０を揺動させているが、実施の形態２では、ハンド６及びロボット５を制御して箱３０を揺動させる。
【００９２】
具体的には、図１７に示すように、ロボットシステム２００において、情報処理部２０３は、隙間生成指示部３ｂに代えて隙間生成指示部２０３ｂを有する。隙間生成指示部２０３ｂは、揺動動作指示部２０３ｂ１を有する。揺動動作指示部２０３ｂ１は、ハンド６及びロボット５に揺動動作を指示する。例えば、揺動動作指示部２０３ｂ１は、箱３０を揺動させるように、制御部４経由でハンド６及びロボット５に指示する。
【００９３】
このとき、揺動動作指示部２０３ｂ１は、ワーク計測データをハンドマッチング部３ａ２から受けてもよい。この場合、揺動動作指示部２０３ｂ１は、ワーク計測データに示された複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態に応じて、隙間を生成するのに適した揺動動作パターン（揺動方向、揺動量、揺動周期等）を決定できる。これにより、揺動動作指示部２０３ｂ１は、把持すべきワークの周囲に効率的に隙間を生成することができる。
【００９４】
例えば、揺動動作指示部２０３ｂ１は、複数のワークにおいて把持すべきワークの周囲に隙間が存在しない場合、箱３０を揺動させるように、揺動動作指令を生成して制御部４へ出力する。制御部４は、揺動動作指示部２０３ｂ１から出力された揺動動作指令に基づき、箱３０を揺動するように、ハンド６及びロボット５を制御する。これにより、ハンド６が箱３０を把持するとともに、ハンド６及びロボット５は、揺動動作指令に従った揺動動作パターン（揺動方向、揺動量、揺動周期等）で箱３０を揺動する。
【００９５】
以上のように、実施の形態２では、ロボットシステム２００において、揺動動作指示部２０３ｂ１は、ハンド６が箱（被載置部）３０を揺動させるように、ハンド６及びロボット５を制御する。これにより、揺動機構５０を用いずに、箱（被載置部）３０を揺動させることができるので、ロボットシステム２００を低コストで構成できる。
【００９６】
また、実施の形態２では、ハンド６及びロボット５を制御して箱（被載置部）３０を揺動させるので、揺動機構５０では困難な複雑な揺動パターンも採用することができ、把持すべきワークの周囲により効率的に隙間を生成することができる。
【００９７】
実施の形態３．
次に、実施の形態３にかかるロボットシステム３００について説明する。以下では、実施の形態２と異なる部分を中心に説明する。
【００９８】
実施の形態２では、箱３０を揺動させることで把持すべきワークの周囲に隙間を生成しているが、実施の形態３では、バラ積みされた複数のワークを再配置することでワークの周囲に隙間を生成する。
【００９９】
具体的には、図１８に示すように、ロボットシステム３００において、情報処理部３０３は、隙間生成指示部２０３ｂに代えて隙間生成指示部３０３ｂを有する。隙間生成指示部３０３ｂは、再配置動作指示部３０３ｂ１を有する。再配置動作指示部３０３ｂ１は、ハンド６及びロボット５の再配置動作を制御する。例えば、再配置動作指示部３０３ｂ１は、バラ積みされた複数のワークを再配置するように、ハンド６及びロボット５を制御する。
【０１００】
このとき、再配置動作指示部３０３ｂ１は、ワーク計測データをハンドマッチング部３ａ２から受けてもよい。この場合、再配置動作指示部３０３ｂ１は、ワーク計測データに示された複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態に応じて、隙間を生成するのに適した再配置動作パターン（例えば、ハンド６がワークをなでる方向、なでる量、なでる周期等）を決定できる。これにより、再配置動作指示部３０３ｂ１は、把持すべきワークの周囲に効率的に隙間を生成することができる。
【０１０１】
例えば、再配置動作指示部３０３ｂ１は、複数のワークにおいて把持すべきワークの周囲に隙間が存在しない場合、バラ積みされた複数のワークを再配置するように、再配置動作指令を生成して制御部４へ出力する。制御部４は、再配置動作指示部３０３ｂ１から出力された再配置動作指令に基づき、バラ積みされた複数のワークを再配置するように、ハンド６及びロボット５を制御する。これにより、ハンド６及びロボット５は、再配置動作指令に従った再配置動作パターン（例えば、ハンド６がワークをなでる方向、なでる量、なでる周期等）で、バラ積みされた複数のワークを再配置する。
【０１０２】
また、ロボットシステム３００の動作が、図１９に示すように、次の点で実施の形態２と異なる。
【０１０３】
ステップＳ１３では、バラ積みされた複数のワークを再配置する処理が行われる。
【０１０４】
例えば、隙間生成指示部３０３ｂの再配置動作指示部３０３ｂ１は、把持すべきワークの周囲に隙間が存在しない旨の情報をハンドマッチング部３ａ２から受ける。これに応じて、再配置動作指示部３０３ｂ１は、バラ積みされた複数のワークを再配置するように、制御部４経由でハンド６及びロボット５に指示する。例えば、再配置動作指示部３０３ｂ１は、複数のワークの再配置動作パターン（例えば、ハンド６がワークをなでる方向、なでる量、なでる周期等）を決定し、それらを反映させた再配置動作指令を生成し、制御部４へ供給する。制御部４は、再配置動作指令に応じて、ハンド６及びロボット５に制御信号をそれぞれ供給する。
【０１０５】
このとき、再配置動作指示部３０３ｂ１は、ワーク計測データをハンドマッチング部３ａ２から受けてもよい。この場合、再配置動作指示部３０３ｂ１は、ワーク計測データに示された複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態に応じて、隙間を生成するのに適した再配置動作パターン（例えば、ハンド６がワークをなでる方向、なでる量、なでる周期等）を決定できる。これにより、再配置動作指示部３０３ｂ１は、把持すべきワークの周囲に効率的に隙間を生成することができる。
【０１０６】
例えば、ハンド６及びロボット５は、図２０に示すように、制御信号に従って、バラ積みされた複数のワークを再配置する。これにより、例えば、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態を、図６（ａ）、（ｂ）に示す状態から図６（ｃ）、（ｄ）に示す状態にすることができる。
【０１０７】
以上のように、実施の形態３では、ロボットシステム３００において、再配置動作指示部３０３ｂ１は、バラ積みされた複数のワークを再配置するように、ハンド６及びロボット５に指示する。これにより、揺動機構５０を用いずに、箱（被載置部）３０を揺動させることができるので、ロボットシステム３００を低コストで構成できる。
【０１０８】
また、実施の形態３では、ハンド６及びロボット５を制御してバラ積みされた複数のワークを再配置するので、把持すべきワークの近傍について選択的に隙間を生成でき、箱３０を揺動させる場合に比べて、把持すべきワークの周囲により効率的に隙間を生成することができる。
【０１０９】
また、実施の形態３では、把持すべきワークの近傍について選択的に隙間を生成できるので、各ワークＷＫ−１〜ＷＫ−Ｎのこすれ合う量をより低減でき、各ワークＷＫ−１〜ＷＫ−Ｎのダメージをより抑制できる。
【０１１０】
実施の形態４．
次に、実施の形態４にかかるロボットシステム１００について説明する。以下では、実施の形態１と異なる部分を中心に説明する。
【０１１１】
実施の形態１では、把持すべきワークの周囲に隙間が存在しないとの判定結果に応じて隙間を生成する指示を行っているが、実施の形態４では、判定結果の内容に関わらずに隙間を生成する指示を追加する。
【０１１２】
具体的には、ロボットシステム１００の動作が、図２１に示すように、次の点で実施の形態１と異なる。
【０１１３】
ステップＳ２５は、ステップＳ４（ワーク取り出し動作）の後に行われる。ステップＳ２５では、箱３０を揺する処理が行われる。揺動指示部３ｂ１は、箱３０を揺動させるように、制御部４経由で揺動機構５０に指示する。例えば、揺動指示部３ｂ１は、箱３０の揺動パターン（揺動方向、揺動量、揺動周期等）を決定し、それらを反映させた揺動指令を生成し、制御部４へ供給する。制御部４は、揺動指令に応じて、揺動機構５０の例えばＸ軸駆動源、Ｙ軸駆動源、及びＺ軸駆動源に制御信号をそれぞれ供給する。
【０１１４】
このとき、揺動指示部３ｂ１は、ステップＳ３と同じ揺動パターン（揺動方向、揺動量、揺動周期等）を決定してもよいし、予め実験等で定められた揺動パターン（揺動方向、揺動量、揺動周期等）を決定してもよいし、現在の複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態に応じた揺動パターン（揺動方向、揺動量、揺動周期等）を決定してもよい。
【０１１５】
例えば、揺動指示部３ｂ１は、ワーク計測データをハンドマッチング部３ａ２から受けてもよい。この場合、揺動指示部３ｂ１は、ワーク計測データに示された複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態に応じて、隙間を生成するのに適した揺動パターン（揺動方向、揺動量、揺動周期等）を決定できる。これにより、揺動指示部３ｂ１は、把持すべきワークの周囲に効率的に隙間を生成することができる。
【０１１６】
例えば、揺動機構５０は、図５に示すように、制御信号に従って、ステージ４０を介して箱３０を例えばＸ方向、Ｙ方向、及びＺ方向に揺動させる。これにより、例えば、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態を、図６（ａ）、（ｂ）に示す状態から図６（ｃ）、（ｄ）に示す状態にすることができる。
【０１１７】
以上のように、実施の形態４では、ロボットシステム１００において、ハンドマッチング部（判定部）３ａ２による判定結果の内容に関わらずに、ワーク取り出し動作が完了するたびに、揺動指示部３ｂ１が、箱３０を揺動させるように、制御部４経由で揺動機構５０に指示する。例えば、この揺動指示のタイミングをロボットの搬出動作時とすることができる。これにより、揺動実行待ち時間を削除できるため全体の処理時間を減らすことが可能である。
【０１１８】
なお、ロボットシステム１００は、図２１に示す動作に代えて、図２２に示す動作を行ってもよい。
【０１１９】
ステップＳ２６は、ステップＳ１（センサ２による認識処理）の前に行われる。ステップＳ２６では、箱３０を揺する処理が行われる。揺動指示部３ｂ１は、箱３０を揺動させるように、制御部４経由で揺動機構５０に指示する。例えば、揺動指示部３ｂ１は、箱３０の揺動パターン（揺動方向、揺動量、揺動周期等）を決定し、それらを反映させた揺動指令を生成し、制御部４へ供給する。制御部４は、揺動指令に応じて、揺動機構５０の例えばＸ軸駆動源、Ｙ軸駆動源、及びＺ軸駆動源に制御信号をそれぞれ供給する。
【０１２０】
このとき、揺動指示部３ｂ１は、ステップＳ３と同じ揺動パターン（揺動方向、揺動量、揺動周期等）を決定してもよいし、予め実験等で定められた揺動パターン（揺動方向、揺動量、揺動周期等）を決定してもよい。
【０１２１】
例えば、揺動機構５０は、図５に示すように、制御信号に従って、ステージ４０を介して箱３０を例えばＸ方向、Ｙ方向、及びＺ方向に揺動させる。これにより、例えば、複数のワークＷＫ−１〜ＷＫ−Ｎのバラ積み状態を、図６（ａ）、（ｂ）に示す状態から図６（ｃ）、（ｄ）に示す状態にすることができる。
【０１２２】
このように、ロボットシステム１００において、ハンドマッチング部（判定部）３ａ２による判定結果の内容に関わらずに、ワーク取り出し動作が完了するたびに、揺動指示部３ｂ１が、箱３０を揺動させるように、制御部４経由で揺動機構５０に指示する。これにより、揺動実行待ち時間を削除できるため全体の処理時間を減らすことが可能である。
【産業上の利用可能性】
【０１２３】
以上のように、本発明にかかるロボットシステムは、ワークの取り出しに有用である。
【符号の説明】
【０１２４】
５  ロボット、  ６  ハンド、  １００，１００ｊ，１００ｋ，１００ｎ，１００ｐ，２００，３００  ロボットシステム。
【図１】
2014205209.tif 000003
【図２】
2014205209.tif 000004
【図３】
2014205209.tif 000005
【図４】
2014205209.tif 000006
【図５】
2014205209.tif 000007
【図６】
2014205209.tif 000008
【図７】
2014205209.tif 000009
【図８】
2014205209.tif 000010
【図９】
2014205209.tif 000011
【図１０】
2014205209.tif 000012
【図１１】
2014205209.tif 000013
【図１３】
2014205209.tif 000014
【図１５】
2014205209.tif 000015
【図１６】
2014205209.tif 000016
【図１７】
2014205209.tif 000017
【図１８】
2014205209.tif 000018
【図１９】
2014205209.tif 000019
【図２０】
2014205209.tif 000020
【図２１】
2014205209.tif 000021
【図２２】
2014205209.tif 000022
【図１２】
2014205209.tif 000023
【図１４】
2014205209.tif 000024