(57)【特許請求の範囲】
【請求項１】
物品を保持可能なハンドを有するロボットと、
三次元空間にバラ積みされた複数の物品の表面位置を測定して複数の三次元点からなる三次元点集合を取得する三次元測定機と、
前記三次元点集合から所定の座標軸に対する座標値が極大である１以上の三次元点を極大点として選択する極大点選択手段と、
前記極大点選択手段により選択された極大点に基づき、前記極大点の近傍の物品を取出し可能な前記ハンドの目標位置および目標姿勢を含むハンド位置姿勢を求める演算手段と、
前記演算手段により求められた前記ハンド位置姿勢に前記ハンドを移動するとともに、前記ハンド位置姿勢から前記物品を取出すように前記ロボットを制御するロボット制御手段とを備えることを特徴とする物品取出装置。
【請求項２】
請求項１に記載の物品取出装置において、
前記演算手段は、
前記三次元点集合の部分集合であって、前記極大点選択手段により選択された極大点を含む三次元点の集合である極大点近傍集合を求める第１演算部と、
前記第１演算部で求められた極大点近傍集合に含まれる前記三次元点の位置に基づき、前記極大点近傍集合を代表する代表位置を求める第２演算部と、
前記第２演算部で求められた前記代表位置に対応して前記ハンド位置姿勢を求める第３演算部とを有することを特徴とする物品取出装置。
【請求項３】
請求項１または２に記載の物品取出装置において、
前記ハンドは、それぞれが物品を保持可能な複数の保持部を有し、
前記演算手段は、複数のハンド位置姿勢を求め、
前記ロボット制御手段は、前記複数の保持部のうち、物品を保持していない空の保持部が有るか否かを判定し、前記空の保持部があると判定されると、前記空の保持部を、前記複数のハンド位置姿勢のうち、前記保持部が未だ到達していない未到達ハンド位置姿勢へ順次移動して、その未到達ハンド位置姿勢から前記物品を取出すように前記ロボットを制御することを特徴とする物品取出装置。
【請求項４】
請求項１〜３のいずれか１項に記載の物品取出装置において、
前記ロボット制御手段は、前記ハンドで取出し、かつ、取出された物品を、前記ロボットにより搬送するように前記ロボットを制御することを特徴とする物品取出装置。
【請求項５】
請求項２に記載の物品取出装置において、
前記極大点近傍集合が複数の三次元点から構成される場合、該極大点近傍集合に属する任意の三次元点の所定距離内に該三次元点とは異なり該極大点近傍集合に属する三次元点が存在する、ことを特徴とする物品取出装置。
【請求項６】
請求項１〜５のいずれか１項に記載の物品取出装置において、
前記ハンドは、吸引ノズル、吸着用磁石または吸着パッドのいずれかを有することを特徴とする物品取出装置。
【請求項７】
三次元空間にバラ積みされた物品を、物品を保持可能なハンドを有するロボットを用いて取出す物品取出方法であって、
前記バラ積みされた複数の物品の表面位置を三次元測定機で測定して複数の三次元点からなる三次元点集合を取得し、
前記三次元点集合から所定の座標軸に対する座標値が極大である１以上の三次元点を極大点として選択し、
前記選択された極大点に基づき、前記極大点の近傍の物品を取出し可能な前記ハンドの目標位置および目標姿勢を含むハンド位置姿勢を求め、
前記求められた前記ハンド位置姿勢に前記ハンドを移動するとともに、前記ハンド位置姿勢から前記物品を取出すように前記ロボットを制御することを特徴とする物品取出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元空間にバラ積みされた物品の位置を認識し、認識した物品を、ロボットを用いて取出す物品取出装置及び物品取出方法に関する。
【背景技術】
【０００２】
この種の装置として、従来、バラ積みされた物品をカメラで撮像して得られた二次元画像や三次元測定機で測定して得られた三次元点集合に対し、パターンマッチングを用いて物品の位置を認識するようにした装置が知られている（例えば特許文献１、２参照）。
【０００３】
特許文献１記載の装置では、予め基準三次元相対姿勢にある物品を撮像して得られた二次元画像から二次元モデルパターンを作成し、二次元モデルパターンに二次元の幾何学的変換を施して複数の変換二次元モデルパターンを作成し、複数の変換二次元モデルパターンを使用して物品の二次元画像に対して二次元パターンマッチングを行なう。
【０００４】
特許文献２記載の装置では、三次元空間における物品の表面を測定して三次元点集合を取得し、この三次元点集合に基づいて物品の三次元特徴を求め、物品の三次元特徴と予め作成した三次元モデルパターンとの三次元パターンマッチングを行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２９５２２３号公報
【特許文献２】特開２００９−１２８１９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１、２に記載の装置は、予め物品一品種毎に二次元モデルパターンまたは三次元モデルパターンを作成する必要があり、手間を要する。とくに、物品が多品種の場合には、品種数分のモデルパターンを作成する必要があり、多大な手間が必要となる。また、不定形の物品の場合には、そもそもモデルパターンを作成することができず、適用不可能である。
【課題を解決するための手段】
【０００７】
本発明による物品取出装置は、物品を保持可能なハンドを有するロボットと、三次元空間にバラ積みされた複数の物品の表面位置を測定して複数の三次元点からなる三次元点集合を取得する三次元測定機と、三次元点集合から所定の座標軸に対する座標値が極大である１以上の三次元点を極大点として選択する極大点選択手段と、極大点選択手段により選択された極大点に基づき、極大点の近傍の物品を取出し可能なハンドの目標位置および目標姿勢を含むハンド位置姿勢を求める演算手段と、演算手段により求められたハンド位置姿勢にハンドを移動するとともに、ハンド位置姿勢から物品を取出すようにロボットを制御するロボット制御手段とを備えることを特徴とする。
【０００８】
また、本発明は、三次元空間にバラ積みされた物品を、物品を保持可能なハンドを有するロボットを用いて取出す物品取出方法であって、バラ積みされた複数の物品の表面位置を三次元測定機で測定して複数の三次元点からなる三次元点集合を取得し、三次元点集合から所定の座標軸に対する座標値が極大である１以上の三次元点を極大点として選択し、選択された極大点に基づき、極大点の近傍の物品を取出し可能なハンドの目標位置および目標姿勢を含むハンド位置姿勢を求め、求められたハンド位置姿勢にハンドを移動するとともに、ハンド位置姿勢から物品を取出すようにロボットを制御することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、三次元空間にバラ積みされた物品の位置を認識する際にパターンマッチングによる位置姿勢認識を利用せずに三次元点集合の極大点の位置を利用し、ロボットのハンドにより極大点付近の物品を保持する。このため、物品のモデルパターンを作成する必要がなく、多品種や不定形の物品であっても容易にその位置を認識して、物品を保持することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る物品取出装置の概略構成を示す図である。
【図２】図１のロボット制御装置で実行される処理の一例を示すフローチャートである。
【図３】図１の三次元測定機で取得した三次元点集合の一例を示す図である。
【図４】図３の三次元点集合から選択した極大点の一例を示す図である。
【図５】図４の各極大点に対応して求めた極大点近傍集合の一例を示す図である。
【図６】図５の極大点近傍集合に属する三次元点の位置に基づく代表位置の一例を示す図である。
【図７】図６の代表位置に対応するハンド位置姿勢の一例を示す図である。
【図８】図７のハンド位置姿勢の番号付けの一例を示す図である。
【図９】図１の物品取出装置を構成するハンドの保持部に対する番号付けの一例を示す図である。
【図１０】本発明の実施形態に係る物品取出装置の動作の一例を示す図である。
【図１１】図１０に続く動作の一例を示す図である。
【図１２】図１１に続く動作の一例を示す図である。
【図１３】図１２に続く動作の一例を示す図である。
【図１４】図１３に続く動作の一例を示す図である。
【図１５】連結集合を構築する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、本発明の一実施形態に係る物品取出装置１０の概略構成を示す図である。物品取出装置１０は、三次元測定機１１と、ロボット１２と、三次元測定機１１とロボット１２とに接続してロボット１２を制御するロボット制御装置１３とを有する。ロボット１２は、アーム１２ａの先端部に取り付けられたハンド１４を有する。
【００１２】
上方が開放されたコンテナ１６内には、複数の物品２０がバラ積みされている。本実施形態の物品装置１０は、この複数の物品２０がバラ積みされた状態から取出すべき物品２０の位置を認識し、認識された物品２０をコンテナ１６の中からハンド１４で取出して保持し、ロボット１２の動作によりコンテナ１６外の所定位置へ搬送する。複数の物品２０は、図１では互いに同一形状として示しているが、不定形のものでもよく、複数の品種を含むものでもよい。なお、以下では、ハンド１０で保持された物品２０を、コンテナ１６内の他の物品と区別するために保持物品２１（図１１参照）と呼ぶことがある。
【００１３】
ハンド１４は、不図示の昇降機構により昇降可能な一対の保持部１４ａを有する。保持部１４ａは、通常は図１に示すように上昇状態にある。この上昇状態から下降して物品２０を保持した後に、再度上昇して、保持物品２１を鉛直方向に上昇させる。これにより、保持物品２１が他の物品２０よりも上方に取出され、ロボット１２の動作により保持物品２１を搬送する際、保持物品２１やハンド１４とコンテナ１６内の他の物品２０との衝突を避けることができる。
【００１４】
三次元測定機１１は、コンテナ１６の中央部上方に配置され、コンテナ１６内にバラ積みされた物品２０のうち、露出した物品２０の表面を測定して、複数の三次元点の位置情報（三次元情報）を取得する。三次元測定機１１の測定範囲は、コンテナ１６を含む必要があるが、余り大きすぎても測定分解能の低下を招くので、コンテナ１６の占有範囲を丁度含む程度にすることが好ましい。なお、三次元測定機１１は、図示例では専用の架台１５に固定されているが、ロボット１２の先端部に取り付けてもよい。三次元測定機１１とロボット制御装置１３とは通信ケーブル等の通信手段によって互いに接続されており、互いに通信できるようになっている。
【００１５】
三次元測定機１１としては種々の非接触方式のものが利用可能である。例えば、カメラ２台のステレオ方式、レーザスリット光を走査する方式、レーザスポット光を走査する方式、プロジェクタ等の装置を用いてパターン光を物品に投影する方式、光が投光器から出射されてから物品表面で反射し受光器に入射するまでの飛行時間を利用する方式などが挙げられる。
【００１６】
三次元測定機１１は、取得した三次元情報を距離画像または三次元マップといった形式で表現する。距離画像とは、画像形式で三次元情報を表現したものであり、画像の各画素の明るさや色により、その画像上の位置の高さまたは三次元測定機１１からの距離を表すものである。一方、三次元マップとは、測定された三次元座標値（ｘ，ｙ，ｚ）の集合として三次元情報を表現したものである。本実施形態では、距離画像における各画素や三次元マップにおける三次元座標値を有する点を、三次元点と称し、複数の三次元点かなる集合を、三次元点集合と称する。三次元点集合は、三次元測定機１１で測定した三次元点全体の集合であり、三次元測定機１１により取得できる。
【００１７】
ハンド１４は、物品２０を取出し、かつ、保持することができるが、それが可能なハンドの形態としては、例えば吸引ノズル、吸着用磁石または吸着パッドなどが挙げられる。また、ハンド１４は、ロボット１２の動作により、その位置姿勢が制御される。
【００１８】
図２は、ロボット制御装置１３で実行される処理の一例を示すフローチャートである。以下、物品取出装置１０による動作を、図２のフローチャート及び関連する図面を参照しつつ説明する。
【００１９】
図２の処理は、例えば図示しない操作スイッチの操作により、物品２０の取出開始指令が入力されると開始される。まず、三次元空間にバラ積みされた複数の物品２０の表面を三次元測定機１１で測定して三次元点集合３０を取得する（ステップＳ１）。図３は、三次元測定機１１で取得した三次元点集合３０と、三次元点集合３０を構成する三次元点３１の一例を示す図である。図では、三次元点３１が黒丸で示されており、三次元点集合３０は点線に囲まれた黒丸全体として示されている。
【００２０】
次に、三次元点集合３０から１以上の極大点３２を選択する（ステップＳ２）。図４は、三次元点集合３０と、三次元点集合３０から選択した極大点３２の一例を示す図である。図では、極大点３２が、二重黒丸で示している。極大点３２は、三次元点集合３０に属する三次元点３１のうち、所定の座標軸４０に対する座標値が極大となる点である。本実施形態では、物品２０を取出す方向に対応して、座標軸４０を、例えば鉛直上向き（Ｚ軸方向）、すなわち重力に逆らう向きに設定している。
【００２１】
次に、それぞれの極大点３２に対応する極大点近傍集合３３を求める（ステップＳ３）。図５は、極大点３２の各々に対応して求めた極大点近傍集合３３の一例を示す図であり、極大点近傍集合３３を点線で示している。極大点近傍集合３３は、図３の三次元点集合３０の部分集合であり、かつ、極大点３２の各々に対応する集合であって、それぞれが極大点３２を含む。
【００２２】
極大点近傍集合３３の求め方には、幾通りかの方法がある。まず、１つ目の例として、対応する極大点３２のみから各極大点近傍集合３３を構成する方法がある。２つ目の例として、対応する極大点３２から所定距離内にある全ての三次元点３１から各極大点近傍３３を構成する方法がある。３つ目の例として、極大点３２を含む連結集合によって極大点近傍集合３３を構成する方法がある。
【００２３】
数学的定義を述べると、ここで言う連結集合とは、三次元点３１の集合であって、その集合が複数の三次元点３１から構成される場合、その集合に属する任意の三次元点３１の所定距離内にその三次元点３１とは異なりその集合に属する三次元点３１が存在するものである。また、１つの三次元点３１のみから構成される場合は、連結集合である。以上が連結集合の数学的定義であるが、実際に連結集合を構築する処理の一例を後ほど示す。
【００２４】
４つ目の例として、極大点３２を含む三次元点３１により平面を形成し、この平面を構成する三次元点３１によって極大点近傍集合３３を構成する方法がある。具体的には、極大点３２と極大点３２の近傍に位置する三次元点３１とから平面を形成する。この場合、極大点３２の近傍に位置する三次元点のうち、平面から所定距離内に位置する三次元点３１のみが極大点近傍集合３３を構成する。
【００２５】
５つ目の例として、極大点３２を含む三次元点３１の連結集合により滑らかな曲面を形成し、この曲面を構成する三次元点３１によって極大点近傍集合３３を構成する方法がある。この場合、連結集合に属する総ての三次元点３１に関して、その三次元点３１から近い順に選んだ別の３つの三次元点３１を加えた４つの三次元点３１を用い、曲率半径が所定値以上となるように曲面が形成された場合に、その三次元点３１により極大点近傍集合３３が構成される。なお、図５は、上記５つの例のうち、３つ目の例によって極大点近傍集合３３を構成した場合を示している。
【００２６】
次に、各々の極大点近傍集合３３に対応する代表位置３４を演算する（ステップＳ４）。図６は、極大点近傍集合３３に属する三次元点３１の位置に基づいて計算した代表位置３４の一例を示す図である。図中、代表位置３４は、×印で示されている。図６では、極大点近傍集合３３に属する複数の三次元点３１の位置の平均位置（平均座標）を求め、これを代表位置３４としている。なお、代表位置の求め方はこれに限らず、例えば各々の極大点近傍集合３３に対応する極大点３２の位置を代表位置３４としてもよい。
【００２７】
次に、各々の代表位置３４に対応するハンド位置姿勢３５を演算する（ステップＳ５）。図７は、代表位置３４に対応するハンド位置姿勢３５の一例を示す図である。ハンド位置姿勢３５は、直角に曲がった両矢印で示されているが、これは位置姿勢が座標系で表されるためである。図７では、矢印が２つしか示されていないので、位置姿勢が二次元空間でのものであるかのように見えるが、実際は三次元空間でのものである。
【００２８】
ハンド位置姿勢３５の位置成分及び姿勢成分の求め方には、それぞれ幾通りずつかの方法がある。位置成分に関しては、例えば、代表位置３４をハンド位置姿勢３５の位置成分とする方法がある。別の例として、代表位置３４の位置よりも所定の座標軸４０の向きに沿って所定長移動した位置を、ハンド位置姿勢３５の位置成分とする方法もある。図７は、後者の例で位置成分を示している。姿勢成分に関しては、例えば、代表位置３４に関わらず所定の姿勢をハンド位置姿勢３５の姿勢成分とする方法がある。別の例として、代表位置３４の位置がコンテナ１６の壁に近い場合、壁とハンドとの衝突を避ける目的で壁から離れる方向にハンドを傾けるようにする方法もある。図７は、前者の例で姿勢成分を示している。
【００２９】
次に、各々のハンド位置姿勢３５にＰ１，Ｐ２，・・・，Ｐｎとナンバリングする（ステップＳ６）。但し、ｎはハンド位置姿勢３５の個数である。図８は、ナンバリングされたハンド位置姿勢３５を示す図であり、所定の座標軸４０に対する座標値の降順、つまり、高い位置にあるものから順番にナンバリングされている。なお、図８では、ｎ＝３である。
【００３０】
次に、ハンド１４の保持部１４ａにＨ１，Ｈ２，・・・，Ｈｍとナンバリングする（ステップＳ７）。但し、ｍはハンドの個数である。図９は、ナンバリングされた保持部１４ａを示しており、図９では、ｍ＝２である。
【００３１】
次に、自然数値を取る変数ｊ，ｋに対して初期値を与える。すなわち、ｊ←１，ｋ←１とする（ステップＳ８）。変数ｊは保持部１４ａの番号の指定に用い、変数ｋはハンド位置姿勢３５の番号の指定に用いる。
【００３２】
次に、図１０に示すように、保持部１４ａ駆動用のアクチュエータに制御信号を出力し、保持部Ｈｊを下降させるとともに、ロボット駆動用のアクチュエータに制御信号を出力し、ロボット１２の動作により保持部Ｈｊをハンド位置姿勢Ｐｋへ移動させる（ステップＳ９）。変数の初期値ｊ＝１，ｋ＝１に対しては、Ｈｊ＝Ｈ１，Ｐｋ＝Ｐ１である。
【００３３】
次に、保持部Ｈｊに物品２０を吸引または吸着するための制御信号を出力し、図１１に示すように保持部Ｈｊの下端面で保持物品２１を吸引または吸着し、保持する（ステップＳ１０）。例えば、保持部Ｈｊが吸引ノズルを有する場合、真空ポンプを作動し、吸引力で保持物品２１を吸引、保持する。また、保持部Ｈｊが吸着用磁石を有する場合、電磁コイルに電流を流して磁石を作動し、磁力で保持物品２１を吸着、保持する。
【００３４】
次に、図１２に示すように、保持物品２０を保持した保持部Ｈｊを上昇させる（ステップＳ１１）。保持部Ｈｊを上昇させることで、ロボット１２の動作によりハンド１４を移動させる際、保持物品２１や保持部Ｈｊと他の物品２０との衝突を避けることができる。
【００３５】
次に、保持部１４ａによる保持物品２１の保持が成功したか否かを判定する（ステップＳ１２）。この判定は、例えば、保持部１４ａが吸引ノズルを有する場合、吸引時のエアの流量や圧力の変化に応じて保持が成功したか否かを判定すればよい。また、保持部Ｈｊが吸着用磁石を有する場合、近接センサで保持物品２１が存在するか否かを判定し、その存否に応じて保持が成功したか否かを判定すればよい。保持が成功した場合、ステップＳ１３へ進む。保持が成功しなかった場合、ステップＳ１５へ進む。
【００３６】
ステップＳ１３では、ｊ＜ｍか否かを判定する。この判定は、ｍ個（図１２では２個）の保持部１４ａの中に保持物品２１を未だ保持していないものが存在するか否かの判定である。ｊ＜ｍである場合、保持部Ｈｊ＋１が保持物品２１を未だ保持していないので、ｊ←ｊ＋１とし(ステップＳ１４)、ステップＳ１５へ進む。ｊ＜ｍでない場合、全ての保持部１４ａが保持物品２１を保持しているので、ステップＳ１７へ進む。
【００３７】
ステップＳ１５では、ｋ＜ｎか否かを判定する。この判定は、ｎ個（図１２では３個）のハンド位置姿勢３５の中に保持部１４ａが未だ到達していないものが存在するか否かの判定である。ｋ＜ｎである場合、ハンド位置姿勢Ｐｋ＋１に保持部１４ａが未だ到達していないので、ｋ←ｋ＋１とし（ステップＳ１６）、ステップＳ９へ戻る。そして、図１３に示すように次の保持部Ｈｊを下降させながらロボット１２の動作により次のハンド位置姿勢Ｐｋへ移動させる。なお、図１３は、Ｈｊ＝Ｈ２，Ｐｋ＝Ｐ２の例である。次いで、この保持部Ｈｊに物品吸着用の制御信号を出力し、図１４に示すように、次の保持物品２１を保持する（ステップＳ１０）。ｋ＜ｎでない場合、ｎ個のハンド位置姿勢３５の全てに保持部１４ａが到達したので、ステップＳ１７へ進む。
【００３８】
ステップＳ１７では、ロボット用アクチュエータに制御信号を出力し、保持物品２１をロボット１２の動作により所定位置に搬送し、保持物品２１を保持部１４ａから取外す。以上で、１サイクルの処理が終了となる。なお、未到達のハンド位置姿勢３５があるにも拘わらず（ｋ＜ｎ）、全ての保持部１４ａで保持物品２１を保持している場合（ｊ≧ｍ）、ステップＳ１７で保持物品２１を所定位置に搬送して保持部１４ａから取外した後に、保持部１４ａの番号ｊを初期値１にして、ステップＳ９以降の処理が繰り返される。
【００３９】
上の１サイクル中では、ハンド位置姿勢３５のナンバリング順にハンド１４を移動させる際に高速に移動させ易くするために、図８に示したように、所定の座標軸４０に対する座標値が降順となるようにハンド位置姿勢３５にナンバリングすることにより、ハンド１４が移動中に物品２０と衝突するおそれを低減した。この他、所定の座標軸４０に対する座標値に関し、それぞれの極大点近傍集合３３に含まれる三次元点３１の平均値を算出し、この平均値と平均値に対応するハンド位置姿勢３５との差が大きい順に、ハンド位置姿勢３５に番号を付けるようにしてもよい。これにより、ハンド１４がハンド位置姿勢３５への到着間際に近辺の物品２０と衝突するおそれを低減することができる。
【００４０】
極大点近傍集合３３の求め方の３つ目の例として、極大点３２を含む連結集合によって極大点近傍集合３３を構成する方法について触れたが、以下に、１つの極大点３２を含む連結集合を構築する処理の一例を、図１５のフローチャートを用いて説明する。まず、初期値として、自然数値を取る変数ｉ←１、三次元点の集合Ａ←｛極大点３２｝、三次元点の集合Ｂ←｛極大点３２｝とする（ステップＴ１）。次に、集合Ｂ内の三次元点から所定距離内にあり集合Ａには属さない全ての三次元点ｃを集めた集合を改めて集合Ｂとする（ステップＴ２）。初期値に対しては、極大点３２から所定距離内にあり極大点３２とは異なる全ての三次元点ｃを集めることになる。次に、ｉ＜所定回数か否かを判定する（ステップＴ３）。この判定は、繰返し計算の回数ｉが所定回数に達しているか否かの判定である。ｉ＜所定回数である場合、繰返し計算の回数が未だ所定回数に達していないので、ステップＴ４へ進む。ｉ＜所定回数でない場合、繰返し計算の回数が既に所定回数に達しているので、ステップＴ６へ進む。
【００４１】
ステップＴ４では、Ｂ≠Φか否かを判定する。この判定は、集合Ａに新たに加えるべき三次元点が有るか否かの判定である。Ｂ≠Φである場合、集合Ａに集合Ｂを加えるべきで、Ａ←Ａ∪Ｂとし（ステップＴ５）、ステップＴ２へ戻る。Ｂ≠Φでない場合、集合Ａに新たに加えるべき三次元点がないので、ステップＴ６へ進む。ステップＴ６では、集合Ａを連結集合として出力し、連結集合を構築する処理が終了となる。なお、繰返し計算の回数ｉの判定に用いる所定回数は、繰返し計算を適当な回数で打切るためのものである。所定回数を小さく設定すれば、小さな連結集合しか作れないが処理時間の増大を防ぐことができる。逆に、所定回数を大きく設定すれば、処理時間が増大するが、大きな連結集合を作ることが可能となる。
【００４２】
本実施形態によれば、以下のような作用効果を奏することができる。
（１）三次元空間にバラ積みされた物品２０の表面位置を三次元測定機１１で測定して複数の三次元点３１からなる三次元点集合３０を取得し（ステップＳ１）、により、三次元点集合３０から所定の座標軸４０に対する座標値が極大である１以上の三次元点３１を極大点３２として選択し（ステップＳ２）、選択された極大点３２に基づき、極大点３２の近傍の物品２０を取出し可能なハンド１４（保持部１４ａ）の目標位置および目標姿勢を含むハンド位置姿勢３５を求め（ステップＳ３〜ステップＳ５）、求められたハンド位置姿勢３５にハンド１４を移動するとともに、ハンド位置姿勢３５から物品２１を取出すようにロボット１０を制御するようにした（ステップＳ９〜ステップＳ１１）。
【００４３】
このため、物品２０のモデルパターンを作成する必要がなく、多品種や不定形の物品２０であっても容易にその位置を認識して、物品２０を保持することができる。また、追加された新品種の物品２０に対してもモデルパターンの追加無しでその位置を認識することができ、物品２０の位置姿勢の認識失敗や誤認識、あるいは物品２０の取損ねや衝突等の問題を回避し、上方にある取出し易い物品２０へハンド１４を高速に移動させて物品２０を効率良く取出すことができる。
【００４４】
これに対し、例えば、物品の二次元モデルパターンを用いて二次元パターンマッチングにより物品の位置を認識する方法では、二次元モデルパターンを作成する必要があり、手間を要する。とくに、物品が多品種の場合には、品種数分のモデルパターンを作成する必要があり、多大な手間が必要となる。さらに、この方法には、本実施形態と比較した場合に以下のような問題点がある。バラ積みされた物品は様々な姿勢となり、各姿勢に対応した二次元パターンマッチングを行う場合、例えば二次元の幾何学的変換を施して得られる変換二次元モデルパターンを利用する必要があるが、この方法で対応できるのは、平面的な物品に限られる。通常の立体的な物品に二次元パターンマッチングを適用しようとすると、幾何学的変換では補い切れない見え方の多様性を考慮して、物品一品種についてだけでも表・裏・横・斜めと幾つかの方向から二次元モデルパターンを作成する必要が生じる。さらに、多品種への対応を考慮すると、品種数を乗じた膨大な数の二次元モデルパターンを作成する必要が生じ、多大な手間を要する。また、不定形の物品の場合には、二次元モデルパターンを作成できないので、その位置を認識することはできない。バラ積みされた物品は、照明の当たり具合が悪かったり他の物品の影が写ったり物品が想定以上に傾いたり、往々にして撮像条件が悪い。したがって、物品の位置姿勢の認識失敗や誤認識が発生したり、上方にある肝心の物品の位置の認識に失敗したり、下方にある物品の位置が先に認識されたりするおそれがある。誤認識された物品位置姿勢や下方にある物品位置を目掛けてロボットのハンドの位置姿勢を制御すると、物品を取損ねて装置の作業効率が落ちるばかりか、ハンドと物品とが衝突してそれらを損傷させるおそれがある。損傷を回避しようとすると、ロボットの移動速度を遅くせざるを得ず、作業効率が悪化する。
【００４５】
また、例えば、物品の三次元モデルパターンを用いて三次元パターンマッチングにより物品の位置を認識する方法においても、三次元モデルパターンを作成する必要があり、手間を要する。とくに、物品が多品種の場合には、品種数分のモデルパターンを作成する必要があり、多大な手間が必要となる。さらに、この方法には、本実施形態と比較した場合に以下のような問題点がある。不定形の物品は、三次元モデルパターンを作成できないので、その位置を認識することはできない。バラ積みされた物品は、三次元測定機に向いていない側の三次元点を取得でない上に、大きく傾いたり近隣の物品に邪魔されたり、往々にして撮像条件が悪い。このため、三次元パターンマッチングにより物品の三次元姿勢を決定できるほど量・質ともに十分な三次元点集合を得るのは困難であり、物品の位置姿勢の認識失敗や誤認識が発生したり、上方にある肝心の物品の位置の認識に失敗し下方にある物品の位置が先に認識されたりするおそれがある。誤認識された物品位置姿勢や下方にある物品位置を目掛けてロボットのハンドの位置姿勢を制御すると、物品を取損ねて装置の作業効率が落ちるばかりか、ハンドと物品とが衝突してそれらを損傷させるおそれがある。損傷を回避しようとすると、ロボットの移動速度を遅くせざるを得ず、作業効率が悪化する。
【００４６】
（２）ハンド位置姿勢３５を求める場合、三次元点集合３０の部分集合であって、選択された極大点３２を含む三次元点３１の集合である極大点近傍集合３３を求め、極大点近傍集合３３に含まれる三次元点３１の位置に基づき、極大点近傍集合３３を代表する代表位置３４を求め、代表位置３４に対応してハンド位置姿勢３５を求めるようにした。これにより、極大点３２を用いて種々の方法でハンド位置姿勢３５を設定することができる。
【００４７】
（３）ハンド１４に複数の保持部１４ａを設け、これら複数の保持部１４ａのうち、物品２０を保持していない空の保持部１４ａが有るか否かを判定し（ステップＳ１３）、空の保持部１４ａがあると判定されると、その空の保持部１４ａを、複数のハンド位置姿勢３５のうち、保持部１４ａが未だ到達していない未到達ハンド位置姿勢へ順次移動して、その未到達ハンド位置姿勢から物品２１を取出すようにした。これにより複数の保持部１４ａを効率よく利用することができ、物品２０の取出作業を効率よく行うことができる。
【００４８】
（４）物品２０に極大点となり易い端部が有ってその端部と連続的に繋がる面や辺がその端部そのものよりも保持し易い場合には、極大点３２の位置に替えて連結集合である極大点近傍集合３３の位置を利用することにより、保持し易い面や辺を保持することができる。
【００４９】
なお、バラ積みされた複数の物品２０の表面位置を三次元測定機１１で測定して複数の三次元点３１からなる三次元点集合３０を取得し、三次元点集合３０から所定の座標軸４０に対する座標値が極大である１以上の三次元点３１を極大点３２として選択し、選択された極大点３２に基づき、極大点３２の近傍の物品２０を取出し可能なハンド１４（保持部１４ａ）の目標位置および目標姿勢を含むハンド位置姿勢３５を求め、求められたハンド位置姿勢３５にハンド１４を移動するとともに、ハンド位置姿勢３５から物品２０（保持物品２１）を取出すようにロボット１２を制御するのであれば、物品取出方法の構成はいかなるものでもよい。
【００５０】
上記実施形態では、ハンド１４で物品を吸引または吸着して保持するようにしたが、吸引、吸着以外によって物品２０を取出し、保持するようにしてもよく、ハンド１４の形態は上述したものに限らない。保持部１４ａをハンド１４に３個以上設けてもよく、１つだけ設けるようにしてもよい。上述した物品取出装置１０の構成（図１）は一例であり、極大点選択手段（ステップＳ２）、演算手段（第１演算手段（ステップＳ３）、第２演算手段（ステップＳ４）、第３演算手段（ステップＳ５））、ロボット制御手段（ステップＳ９〜ステップＳ１１）としてのロボット制御装置１３の構成は上述したものに限らない。
【００５１】
以上の説明はあくまで一例であり、本発明の特徴を損なわない限り、上述した実施形態および変形例により本発明が限定されるものではない。上記実施形態および変形例の構成要素には、発明の同一性を維持しつつ置換可能かつ置換自明なものが含まれる。すなわち、本発明の技術的思想の範囲内で考えられる他の形態についても、本発明の範囲内に含まれる。また、上記実施形態と変形例の１つまたは複数を任意に組み合わせることも可能である。
【符号の説明】
【００５２】
１０    物品取出装置
１１    三次元測定機
１２    ロボット
１３    ロボット制御装置
１４    ハンド
１４ａ    保持部
２０    物品
２１    保持物品
３０    三次元点集合
３１    三次元点
３２    極大点
３３    極大点近傍集合
３４    代表位置
３５    ハンド位置姿勢
４０    座標軸
【図１】
0005642738.tif 000002
【図２】
0005642738.tif 000003
【図３】
0005642738.tif 000004
【図４】
0005642738.tif 000005
【図５】
0005642738.tif 000006
【図６】
0005642738.tif 000007
【図７】
0005642738.tif 000008
【図８】
0005642738.tif 000009
【図９】
0005642738.tif 000010
【図１０】
0005642738.tif 000011
【図１１】
0005642738.tif 000012
【図１２】
0005642738.tif 000013
【図１３】
0005642738.tif 000014
【図１４】
0005642738.tif 000015
【図１５】
0005642738.tif 000016