(57)【特許請求の範囲】
【請求項１】
ワークをピッキングするピッキングシステムであって、
ワークを撮影して画像及び深度マップを得る撮像部と、
前記画像に基づいて前記ワークを特定し、前記深度マップのうちの前記特定したワークに対応するワーク部分に基づいて前記ワークの位置及び向きを決定する解析部であり、前記ワーク部分を複数の区画に分割し、互いに隣接しない３つの区画を選択し、前記３つの区画からそれぞれ取得される３つの点により規定される所定値以上の大きさの三角区域を用いて前記ワークの表面の法線ベクトルを算出することで前記向きを決定する、前記解析部と、
前記ワークの位置及び向きに基づいてロボットアームを駆動制御する制御部と、
を備えるピッキングシステム。
【請求項２】
前記解析部は、前記ワーク部分を７以上の区画に分割する、請求項１に記載のピッキングシステム。
【請求項３】
前記解析部は、前記ワークの表面の法線ベクトルを算出するための点を取得できなかった場合に前記３つの区画を変更する、請求項１又は２に記載のピッキングシステム。
【請求項４】
前記解析部は、前記画像に基づいてワークの表面の領域を解析し、前記撮像部の撮像装置に対して手前側のワークを特定する、請求項１から３のいずれか一項に記載のピッキングシステム。
【請求項５】
前記解析部は、前記撮像部の撮像装置の位置に基づいて前記深度マップを３次元点群に再構成する、請求項１から４のいずれか一項に記載のピッキングシステム。
【請求項６】
前記ワークが袋状容器である、請求項１から５のいずれか一項に記載のピッキングシステム。
【請求項７】
前記解析部は、前記ワークの表面に沿った方向を決定し、該方向に基づいて前記ワーク部分内の位置決定点を決定し、該位置決定点の位置から前記ワークの位置を決定する、請求項１から６のいずれか一項に記載のピッキングシステム。
【請求項８】
前記解析部は、ワークを特定済みの正解画像から生成された機械学習モデルを用いて、前記画像に基づいて前記ワークを特定する、請求項１から７のいずれか一項に記載のピッキングシステム。
【請求項９】
前記ロボットアームは少なくとも１つの吸着パッドを有する、請求項１から８のいずれか一項に記載のピッキングシステム。
【請求項１０】
前記制御部は、前記ロボットアームを駆動制御する際に、前記吸着パッドの向きを前記ワークの向きに合わせる、請求項９に記載のピッキングシステム。
【請求項１１】
前記ロボットアームは複数の吸着パッドを有し、
前記制御部は、前記複数の吸着パッドのうち前記ワークに吸着した吸着パッドの数に応じて前記ロボットアームの駆動速度を決定する、請求項９又は１０に記載のピッキングシステム。
【請求項１２】
前記ワークの少なくとも上部を一方向に寄せて他のワークから分離するワーク分離装置をさらに備える、請求項１から１１のいずれか一項に記載のピッキングシステム。
【請求項１３】
前記撮像部は、前記ロボットアームに取り付けられた撮像装置を用いて前記ワークを撮影する、請求項１から１２のいずれか一項に記載のピッキングシステム。
【請求項１４】
ワークをピッキングするピッキングシステムであって、
ワークを撮影して画像及び深度マップを得る撮像部と、
前記画像に基づいて前記ワークを特定し、前記深度マップのうちの前記特定したワークに対応するワーク部分に基づいて前記ワークの位置及び向きを決定する解析部であり、中央の区域の上下方向及び左右方向の幅が最小幅より大きくなるように前記ワーク部分を上下左右に９分割し、互いに隣接しない３つの区域を選択し、前記３つの区域からそれぞれ取得される３つの点を用いて前記ワークの表面の法線ベクトルを算出することで前記向きを決定する、前記解析部と、
前記ワークの位置及び向きに基づいてロボットアームを駆動制御する制御部と、
を備え、
前記撮像部は、前記ロボットアームに取り付けられた撮像装置を用いて前記ワークを撮影する、ピッキングシステム。
【請求項１５】
ワークをピッキングするピッキング方法であって、
撮像部により、ワークを撮影して画像及び深度マップを得る段階と、
解析部により、前記画像に基づいて前記ワークを特定し、前記深度マップのうちの前記特定したワークに対応するワーク部分に基づいて前記ワークの位置及び向きを決定する段階であり、前記ワーク部分を複数の区画に分割し、互いに隣接しない３つの区画を選択し、前記３つの区画からそれぞれ取得される３つの点により規定される所定値以上の大きさの三角区域を用いて前記ワークの表面の法線ベクトルを算出することで前記向きを決定する、前記決定する段階と、
制御部により、前記ワークの位置及び向きに基づいてロボットアームを駆動制御する段階と、
を備えるピッキング方法。
【請求項１６】
ワークをピッキングするピッキング方法であって、
撮像部により、ワークを撮影して画像及び深度マップを得る段階と、
解析部により、前記画像に基づいて前記ワークを特定し、前記深度マップのうちの前記特定したワークに対応するワーク部分に基づいて前記ワークの位置及び向きを決定する段階であり、中央の区域の上下方向及び左右方向の幅が最小幅より大きくなるように前記ワーク部分を上下左右に９分割し、互いに隣接しない３つの区域を選択し、前記３つの区域からそれぞれ取得される３つの点を用いて前記ワークの表面の法線ベクトルを算出することで前記向きを決定する、前記決定する段階と、
制御部により、前記ワークの位置及び向きに基づいてロボットアームを駆動制御する段階と、
を備えるピッキング方法。
【請求項１７】
前記ワークが袋状容器である、
請求項１６に記載のピッキング方法。
【請求項１８】
請求項１６又は１７に記載のピッキング方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークをピッキングするピッキングシステム、ピッキング方法、及びプログラムに関する。
【背景技術】
【０００２】
製造工場、食品工場等の工場における作業を自動化するために、産業用ロボットが導入されている。主要な産業用ロボットの１つに、ワークをピックし（掴み）、これを目的の場所に搬送してプレイスする（置く）ロボットがある。ここで、特許文献１には、３Ｄレーザ計測技術によりワークの３次元データを有する点群データを生成し、これを用いてワークの位置情報及び法線情報を算出し、これらの情報に基づいてロボットを制御する物体認識システムが開示されている。測定データを用いたモデルマッチングに基づく物体認識に代えて、３Ｄレーザ計測技術により得られるワークの３次元データに基づく物体認識を採用することで、非定型なワークの認識を可能としている。
特許文献１  特開２０１１−１６７８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の物体認識システムでは、ワークがフレキシブルである場合に任意の形状を取り得るため、また任意の方向を向き得るため、複数のワークが重なっている場合などには特にそれらのなかから目的のワークを識別し、安定にピックするためのワークの位置情報及び法線情報を算出することが困難であると予想される。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、ワークをピッキングするピッキングシステムであって、ワークを撮影して画像及び深度マップを得る撮像部と、画像に基づいてワークを特定し、深度マップのうちの特定したワークに対応するワーク部分に基づいてワークの位置及び向きを決定する解析部と、ワークの位置及び向きに基づいてロボットアームを駆動制御する制御部と、を備えるピッキングシステムが提供される。
【０００５】
本発明の第２の態様においては、ワークをピッキングするピッキング方法であって、撮像部により、ワークを撮影して画像及び深度マップを得る段階と、解析部により、画像に基づいてワークを特定し、深度マップのうちの特定したワークに対応するワーク部分に基づいてワークの位置及び向きを決定する段階と、制御部により、ワークの位置及び向きに基づいてロボットアームを駆動制御する段階と、を備えるピッキング方法が提供される。
【０００６】
本発明の第３の態様においては、第２の態様のピッキング方法をコンピュータに実行させるプログラムが提供される。
【０００７】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１Ａ】本実施形態に係るロボットの構成を示す。
【図１Ｂ】ロボットハンドの構成を示す。
【図１Ｃ】本実施形態に係るピッキングシステムの機能構成を示す。
【図２】ワーク分離装置の構成を示す。
【図３】ピッキングシステムにおけるロボット及びコンテナの配置を示す。
【図４Ａ】コンテナの区画内に収容されたワークを示す。
【図４Ｂ】画像認識によるコンテナ内のワークの識別結果を示す。
【図５Ａ】ピッキングシステムにより得られた画像及び深度マップの一例を示す。
【図５Ｂ】画像から特定されたワーク及びこれをマスクにして切り出された深度マップ内のワーク部分の一例を示す。
【図５Ｃ】深度マップ内のワーク部分を再構成して得られる点群データの一例を示す。
【図５Ｄ】点群データからワークの向きを決定するために取得したデータ点の一例を示す。
【図５Ｅ】３つのデータ点を用いて決定したワークの向きの一例を示す。
【図５Ｆ】点群データから決定したワーク表面上の吸着点の一例を示す。
【図６】ロボットハンドによるワークの吸着の一例を示す。
【図７】本実施形態に係るピッキング方法のフローを示す。
【図８】本実施形態に係るコンピュータの構成の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１Ａ、図１Ｂ、及び図１Ｃに、それぞれ、本実施形態に係るロボット１０１の構成、ロボット１０１のロボットハンド１３０の詳細構成、及び本実施形態に係るピッキングシステム１００の機能構成を示す。ピッキングシステム１００は、ワーク９０をピックし（ピッキングするともいう）、これを搬送して目的の場所にプレイスする（プレーシングするともいう）システムであり、ロボット１０１、制御装置１５０、及びワーク分離装置２００を備える。なお、本実施形態で扱うワーク９０は、例えば液状物、粉状物、或いは粒状物を収容したフレキシブルで不定形な袋状容器である。ワーク９０は、収容物を保護するため積み重ねることができずコンテナの区画内に立てて並べられ、フレキシブルであることから表面が任意の方向を向き得るものであり、立てられた際に収容物が容器下側に集中するために容器上側をピックすることで収容物が保護される。
【００１１】
ロボット１０１は、ワーク９０をピック及びプレイスする装置であり、本体１１０、ロボットアーム１２０、及びロボットハンド１３０を含む。
【００１２】
本体１１０は、台座又は床面（不図示）上でロボットアーム１２０を支持する部分であり、ベース１１１、駆動装置１４０、及び通信装置（不図示）を含む。ベース１１１は、本体１１０を回動可能に支持する。これにより、本体１１０は、ベース１１１の上面上で図面上下方向に平行な中心軸に対して回転して向きを変える。駆動装置１４０は、例えば電動モータを採用することができ、これによりロボットアーム１２０の各部を駆動する。通信装置は、例えば無線通信装置を採用することができ、これにより制御装置１５０から送信される制御信号を受信して、駆動装置１４０、固定部材１３４内の駆動装置、吸着パッド１３５等に送信する。
【００１３】
ロボットアーム１２０は、ロボットハンド１３０を駆動する部分であり、第１〜第３アーム１２１〜１２３を含む。第１アーム１２１は、本体１１０の上端に支持されて図面左右方向に回動する。第２アーム１２２は、第１アーム１２１の先端に支持されて図面左右方向に回動する。第３アーム１２３は、その先端にロボットハンド１３０を支持して、第２アーム１２２の先端に回転可能に支持される。
【００１４】
ロボットハンド１３０は、ワーク９０を把持する部分であり、基部１３１、シャフト１３２、撮像装置１３３、固定部材１３４、及び吸着パッド１３５を有する。
【００１５】
基部１３１は、ロボットハンド１３０の各部を支持する部分であり、第３アーム１２３の先端に支持される。
【００１６】
シャフト１３２は、撮像装置１３３及び吸着パッド１３５を支持する軸状部材であり、その上端が基部１３１に支持される。
【００１７】
撮像装置１３３は、例えばステレオカメラを採用することができる。撮像装置１３３は、支持部材１３３ａを介してシャフト１３２に下向きに固定され、これによりワーク９０を撮像してその画像及び深度マップを得ることができる。画像は一例としてＲＧＢ画像とする。深度マップは、撮像装置１３３の位置を基準とする奥行き方向の距離に関するマップである。
【００１８】
固定部材１３４は、シャフト１３２の下端に固定され、支持部材１３５ａを水平方向に向けて支持する。固定部材１３４は、電動モータ等の駆動装置（不図示）を有し、これにより支持部材１３５ａが回転される。
【００１９】
吸着パッド１３５は、コンプレッサ（不図示）に接続され、空気を吸引することでワーク９０を吸着保持する。これにより、不定形なワーク９０をピッキングすることが可能となる。吸着パッド１３５は、一例として、支持部材１３５ａの両端に各１つ固定され、固定部材１３４内の駆動装置により支持部材１３５ａを回転することにより、上下方向の傾きを変えることができる。なお、吸着パッド１３５の数は、２つに限らず、ワーク９０の大きさ及び重さに応じて１つ又は３つ以上の任意の数であってよい。
【００２０】
なお、吸着パッド１３５は、気圧センサ等を含み、これによりコンプレッサにより空気を吸引している際の内部気圧を測定する。吸着パッド１３５によりワーク９０の表面を吸引してそれを把持した場合に低い内部気圧、ワーク９０の吸引に失敗した場合に高い内部気圧が測定されることで、２つの吸着パッド１３５のそれぞれについてワーク９０の把持に成功したか失敗したかを検知することができる。その結果は制御部１５４に送信される。
【００２１】
制御装置１５０は、ロボット１０１を制御する装置であり、任意のコンピュータ装置により実装される。制御装置１５０は、処理装置（ＣＰＵ及び／又はＧＰＵ）及び通信装置を有する。処理装置（不図示）は、制御プログラムを実行することにより、制御装置１５０にロボット１０１の制御機能を発現させる。なお、制御プログラムは、例えば、ＲＯＭ（不図示）に記憶され、それを処理装置が読み出してＲＡＭに展開することで起動される。通信装置（不図示）は、例えばロボット１０１と無線通信する装置である。通信装置により制御信号をロボット１０１に送信することで、ロボット１０１が制御される。制御装置１５０は、撮像部１５１、解析部１５２、学習部１５３、制御部１５４を発現する。
【００２２】
撮像部１５１は、撮像装置１３３を用いてワーク９０を撮影する。これによりワーク９０の画像及び（奥行き方向に関する）深度マップを得ることができる。
【００２３】
解析部１５２は、画像に基づいてワーク９０を特定し、深度マップのうちの特定したワーク９０に対応するワーク部分に基づいてワーク９０の位置及び向きを決定する。ワーク９０の位置及び向きを決定する方法については後述する。ここで、解析部１５２は、学習部１５３による機械学習により画像に基づいてワークを特定してよい。
【００２４】
学習部１５３は、ワーク９０を特定済みの正解画像を用いて、解析部１５２に採用される機械学習モデルを生成する。機械学習モデルとして、例えば深層学習を採用することができる。学習用画像として、例えば１００枚のワーク９０の画像を用いてよい。正解画像として、それらの学習用画像の中から例えば数枚の画像を任意の画像処理ソフトウェアを用いてポリゴン処理することにより、ワーク９０が特定された画像を用いてよい。具体的には、画像処理ソフトを用いて、画像に写っているワークに対し、それを囲うように頂点を手動で作成し、それを元にポリゴンを作成する。なお、ポリゴン処理のための画像処理ソフトとしては、例えば、VGG Image Annotator (VIA)を用いることができる。これにより、解析部１５２が、不定形で変形し得るワーク９０の画像認識を高速処理することが可能になる。なお、コンテナの内壁及び仕切りも特定するよう機械学習してもよい。
【００２５】
制御部１５４は、解析部１５２により決定されたワーク９０の位置及び向きに基づいてロボットアーム１２０を駆動制御する。制御部１５４は、制御信号をロボット１０１に送信することで、ロボット１０１の駆動装置１４０により本体１１０の向きを変えるとともにロボットアーム１２０を前後に延ばし、固定部材１３４内の駆動装置により吸着パッド１３５を上下方向に傾け、吸着パッド１３５をオンオフしてワーク９０をピック及びプレイスする。
【００２６】
なお、制御部１５４は、複数の吸着パッド１３５のうちワーク９０に吸着した吸着パッド１３５の数に応じてロボットアーム１２０の駆動速度を決定する。ワーク９０に吸着した吸着パッド１３５の数が多い場合、例えば２つの吸着パッド１３５の両方がワーク９０に吸着した場合にロボットアーム１２０の駆動速度を高く、少ない場合、例えば２つの吸着パッド１３５の一方のみがワーク９０に吸着した場合に低くすることで、ワークを安定に高速で搬送することができる。
【００２７】
図２に、ワーク分離装置２００の構成を示す。なお、ワーク分離装置２００は、コンテナ７０に対してセットされている。コンテナ７０は、一例として、仕切り７９により長手方向（図面斜め方向）に３及び短手方向（図面左右方向）に４、計１２の区画に区画化され、それらのうちの区画Ｓａ内にワーク９０、区画Ｓｂ内にワーク９１が表面を短手方向に向けて収容されている。ワーク分離装置２００は、ワーク９０の少なくとも上部を一方向に寄せて他のワークから分離する装置であり、一組の支持具駆動装置２１０及び棒状部材２２０を含む。
【００２８】
一組の支持具駆動装置２１０は、棒状部材２２０をコンテナの短手方向に駆動する装置であり、それぞれコンテナ７０の長手方向の一側及び他側に配置される。各支持具駆動装置２１０は、本体２１１、テーブル２１２、及び支持具２１３を含む。
【００２９】
本体２１１は、その上面上にテーブル２１２を支持し、その底部に固定されたガイドロックを通るボールねじを電動モータ（いずれも不図示）により回転することでテーブル２１２を一軸方向に駆動する。
【００３０】
テーブル２１２は、本体２１１上に支持具２１３を支持して一軸方向に移動する部材である。
【００３１】
支持具２１３は、テーブル２１２上に立設し、棒状部材２２０の一端を支持する部材である。支持具２１３は、上方に延び、コンテナ７０の内側に向かって屈曲し、コンテナ７０の内壁にそって下方に延びる形状を有し、その先端に棒状部材２２０の一端を固定する。支持具２１３の先端は棒状部材２２０を支持して駆動装置（不図示）により上下動する。
【００３２】
棒状部材２２０は、一組の支持具駆動装置２１０のそれぞれの支持具２１３に両端が固定されて、コンテナ７０内で仕切り７９の上方に支持される。棒状部材２２０は、金属、プラスチック等の素材から形成されてよいし、これに代えてワイヤであってもよい。
【００３３】
ワーク分離装置２００は、支持具２１３により棒状部材２２０を上げ、本体２１１により支持具２１３を図面左右方向に駆動し、棒状部材２２０を下げてワーク９０，９１の間に配し、本体２１１により支持具２１３を図面左方に駆動することで、ワーク９０の少なくとも上部を図面左方に寄せて他のワーク９１から分離する。これにより、ワーク９０，９１の間にスペースを設けて、ワーク９０或いはワーク９１の表面を撮像することができるようになるとともに、ロボットハンド１３０の吸着パッド１３５を挿入するスペースを確保することができる。
【００３４】
なお、ワーク分離装置２００は、棒状部材２２０を動かして、ワーク９０の少なくとも上部を左方に寄せるだけでなく、ワーク９１の少なくとも上部を右方に寄せるものでもよい。これにより、ワーク９０の上部とワーク９１の上部とがさらに遠ざかるので、ワーク９０の撮像の際に、ワーク９１が映り込む可能性を低減できる。
【００３５】
図３に、本実施形態に係るピッキングシステム１００におけるロボット１０１、コンテナ７０，８０、及びＱＲコード（登録商標）リーダ６０の配置を示す。上面視において、ロボット１０１の左にコンテナ７０、上にコンテナ８０、左上にＱＲコード（登録商標）リーダ６０が配置されている。
【００３６】
コンテナ７０は、並べ替え対象のワークを収容するコンテナであり、その内部は仕切り７９により一例として１２の区画７１に分割されている。ワークは１２の区画７１に雑然と収容されているとする。なお、コンテナ７０にワーク分離装置２００が設置されている。
【００３７】
コンテナ８０は、プレイス用コンテナであり、その内部は仕切り８９により一例として１２の区画に分割されている。ワークは、それぞれ、１２の区画８１のうちの定められた区画に収容される。
【００３８】
ＱＲコード（登録商標）リーダ６０は、ＱＲコード（登録商標）を読み取る装置である。各ワークの表面には、その収容物、収容量等が記録したＱＲコード（登録商標）が貼付されている。ＱＲコード（登録商標）リーダ６０により各ワークのＱＲコード（登録商標）を読み取り、その記録より収容すべきコンテナ８０の区画８１が決定される。
【００３９】
解析部１５２によるワークの識別について説明する。
【００４０】
図４Ａに、コンテナ７０内に収容されたワーク９１〜９７を示す。なお、コンテナ７０の内壁は省略されている。コンテナ７０の区画７１内には、３つのワーク９１，９５，９６が、図面右方を向いて、互いに上部を重ねつつコンテナ７０の左内壁又は仕切り（不図示）に寄りかけて収容されている。ここで、ワーク９１が最も上に、その下にワーク９５，９６が重なっている。区画７２，７３内には、各１つのワーク９２，９３が、図面下方を向いて、上部をコンテナ７０の上内壁又は仕切り（不図示）に寄りかけて収容されている。区画７４内には、２つのワーク９４，９７が、図面左方を向いて、互いに上部を重ねつつコンテナ７０の右内壁又は仕切り（不図示）に寄りかけて収容されている。ここで、ワーク９４が上に、その下にワーク９７が重なっている。一例としてこれらのワーク９１〜９７の収容状態が、撮像部１５１により上方から撮像され、その結果として画像及び深度マップが得られる。
【００４１】
図４Ｂに、画像認識によるコンテナ７０内のワーク９１〜９７の識別結果を示す。解析部１５２は、ワーク９１〜９７の画像を画像認識することで個々のワーク９１〜９７を識別する。具体的に、解析部１５２は、ワークを特定済みの正解画像から生成された機械学習モデルを用いて、画像に基づいてワーク９１〜９７を特定する。特定する方法として、例えばセマンティック・セグメンテーション、本例では特にインスタンス・セグメンテーションを採用することができる。インスタンス・セグメンテーションでは、画像の各ピクセルをオブジェクトクラスに割り当て、各オブジェクトの形状を捉えることで、個々のワークが識別される。要するに、解析部１５２は、画像におけるワーク９１〜９７の占めるピクセルを認識することでワーク９１〜９７を特定する。
【００４２】
本例では、区画７１内のワーク９１〜９３のうち、その表面９１ａのほぼ全体を認識することができるワーク９１が特定されている。また、区画７２，７３内で表面９２ａ，９３ａのほぼ全体を認識することができるワーク９２，９３が特定されている。また、区画７４内のワーク９４，９７のうち、その表面９４ａのほぼ全体を認識することができるワーク９４が特定されている。インスタンス・セグメンテーションにより、コンテナ７０の上方から表面のほぼ全体を認識することができるワークを最も上に重ねられたワークとして特定することができる。なお、表面の一部のみ認識することができるワーク９５〜９７は、下に重ねられたワークとして特定され、吸着パッド１３５により吸着保持することのできる十分広い表面上の領域を上方に露出していないため、ピック対象のワークから除外される。
【００４３】
また、解析部１５２は、セマンティック・セグメンテーションではなく、オブジェクト輪郭検出（Object Contour Detection）によりワークを識別するものでもよい。
【００４４】
また、解析部は、機械学習ではなくルールベースによる画像認識の方法によりワークを識別するものであってもよい。
【００４５】
なお、深度マップからでは通常、重なったワークを識別することができない。上述のように、画像の境界認識により個々のワークを識別し、それらの中から目的のワークを特定し、その結果に基づいて深度マップから目的のワークに対応するワーク部分を特定することができる。
【００４６】
解析部１５２によるワークの位置及び向きの算出について説明する。
【００４７】
図５Ａに、ピッキングシステム１００において撮像部１５１によりコンテナ７０内のワークの画像（左図）及び深度マップ（右図）の一例を示す。画像は、ＲＧＢ画像であってよい。本例では、コンテナ７０の仕切り７９により区画された１つの区画７１に１つのワーク９１、その他の周囲の区画にも各１のワークが収容されている。解析部１５２は、画像に対して上述の画像認識を適用してコンテナ７０内のワーク９１及びその他のワークを仕切り７９等から識別する。解析部１５２は、識別したワークの中からピック対象のワーク９１を特定する。
【００４８】
図５Ｂに、画像から特定されたワーク９１（左図）及び深度マップ内のワーク部分９１Ｄ（右図）の一例を示す。解析部１５２は、画像の中から特定したワーク９１を抽出し、これをマスクとして使用して深度マップから対応するワーク部分９１Ｄを切り出す。
【００４９】
図５Ｃに、深度マップ内のワーク部分９１Ｄを再構成して得られる点群データ９１Ｐの一例を示す。解析部１５２は、撮像装置１３３の位置に基づいて深度マップを３次元点群に、すなわち撮像装置１３３を基準とする奥行き方向の位置情報を３次元空間内の位置情報に変換する。これにより、深度マップから、空間基準のワークの３次元位置情報が得られる。
【００５０】
解析部１５２は、適宜、点群データ９１Ｐをダウンサンプリングしてよい。サンプリングレートは例えば１０分の１であってよい。点群データ９１Ｐのデータ量を減らすことで、ワーク９１の位置及び向きの解析を高速化することができる。さらに、解析部１５２は、点群データ９１Ｐに対してスタティスティックアウトライヤ処理（統計的外れ値処理）をしてよい。点群データ９１Ｐから外れ値を除去することで、ワーク９１の位置及び向きを正確に決定することが可能となる。なお、再構成前の深度マップに対してダウンサンプリング及びアウトライヤを除去する処理を施してもよい。
【００５１】
図５Ｄに、点群データ９１Ｐからワーク９１の向きを決定するために取得したデータ点Ｐ１〜Ｐ３の一例を示す。まず、解析部１５２は、ワーク部分９１Ｄから再構成された点群データ９１Ｐのすべて又はほとんどを内側に含む矩形区域Ｓを決定する。次いで、解析部１５２は、矩形区域Ｓを上下に３つ、左右３つ、計９つの区域Ｓ１〜Ｓ９に分割する。ここで、上下方向に等間隔に分割してもよいし、左右方向に等間隔に分割してもよい。ただし、少なくとも中央の区域Ｓ５の上下方向及び左右方向の幅をそれぞれ最小幅より大きく定めることとする。次いで、解析部１５２は、９つの区域Ｓ１〜Ｓ９から互いに隣接しない３つの区域を選択する。一例として、逆三角配置における区域Ｓ１，Ｓ３，Ｓ８を選択する。或いは、三角配置における区域Ｓ２，Ｓ７，Ｓ９、左向き三角配置における区域Ｓ３，Ｓ４，Ｓ９、右向き三角配置における区域Ｓ１，Ｓ６，Ｓ７を選択してもよい。次いで、解析部１５２は、３つの区域Ｓ１，Ｓ３，Ｓ８からそれぞれ１つのデータ点Ｐ１〜Ｐ３を取得する。データ点Ｐ１〜Ｐ３は、各区域内のデータ点からランダムに選択してよいし、各区域について予め定められた点から最近接のデータ点を選択してもよい。
【００５２】
図５Ｅに、３つのデータ点Ｐ１〜Ｐ３を用いて決定したワーク９１の向きの一例を示す。解析部１５２は、選択した３つのデータ点Ｐ１〜Ｐ３を用いて、３つのデータ点Ｐ１〜Ｐ３により規定される三角区域Ｔの法線ベクトルＶｎを算出する。法線ベクトルＶｎより、ワーク９１の表面の向きが定められる。
【００５３】
このように、ワーク９１の向き、すなわち法線ベクトルＶｎを算出するための３つのデータ点Ｐ１〜Ｐ３を、ワーク部分９１Ｄを９分割した区域Ｓ１〜Ｓ９のうちの互いに隣接しない３つの区域から取得してデータ点Ｐ１〜Ｐ３を離間させることで、フレキシブルなワーク９１の場合に局所的な凹凸が影響することなく、ワーク９１の表面の全体的な向きを決定することが可能となる。
【００５４】
なお、解析部１５２は、法線ベクトルを算出するためのデータ点Ｐ１〜Ｐ３を取得できなかった場合に３つの区域を変更してもよい。斯かる場合、決定点を取得できなかった区域のみを別の区域に変更してよい。ただし、３つの区域は互いに隣接しないものとする。或いは、逆三角配置における区域Ｓ１，Ｓ３，Ｓ８を、三角配置における区域Ｓ２，Ｓ７，Ｓ９、左向き三角配置における区域Ｓ３，Ｓ４，Ｓ９、右向き三角配置における区域Ｓ１，Ｓ６，Ｓ７のいずれかに変更してもよい。これにより、例えば不定形なワーク９１に対して深度マップが部分的に得られず、決定点を取得できない場合にあっても、区域を変更して決定点を取得することで、ワークの表面の全体的な向きを決定することが可能となる。
【００５５】
また、解析部１５２は、矩形区域Ｓを略均等に９分割するものでもよい。矩形区域Ｓを略均等に９分割することで、所定値以上の大きさの三角区域Ｔを得ることができ、ロバスト性の高い法線ベクトルを算出することができる。
【００５６】
なお、上記説明では、解析部１５２が矩形区域Ｓを計９つの区域Ｓ１〜Ｓ９に分割するとしたが、矩形区域Ｓの分割数は９つに限定されるものではない。解析部１５２は、ワーク部分９１Ｄを７以上の区画に分割するものではあればよい。
【００５７】
図５Ｆに、点群データ９１Ｐから決定したワーク表面上の吸着点（すなわち、位置決定点）Ｐａの一例を示す。解析部１５２は、ワーク９１の向きに基づいてワーク９１の表面に沿った方向（三角区域Ｔの平面内の方向を定義する単位長さのベクトルの鉛直下向き成分が略最大となる方向）を決定し、その方向に基づいてワーク部分９１Ｄ内の吸着点Ｐａ（この位置をワーク９１の位置と呼ぶ）を決定する。より詳細には、吸着パッド１３５のサイズに応じて、収容物が集中してないワーク９１の上側に吸着点Ｐａを決定するよう、法線ベクトルＶｎから接線ベクトルＶｔを定め、矩形区域Ｓの上端中央から接線ベクトルＶｔに沿って下方に距離ｄの位置を吸着点Ｐａと定める。ここで、距離ｄは、吸着パッド１３５のサイズより大きく、例えば３ｃｍと定めることとする。
【００５８】
図６に、ロボットハンド１３０（吸着パッド１３５）によるワーク９１の吸着の一例を示す。制御部１５４は、解析部１５２からワーク９１の位置及び向きの算出結果を受信し、ロボットアーム１２０を制御して吸着パッド１３５の向きをワーク９１の向き（すなわち、法線ベクトルＶｎの方向）に合わせ、吸着パッド１３５をワーク９１の表面上の吸着点Ｐａに向けて駆動する。吸着パッド１３５の向きをワーク９１の向きに合わせることで、ワーク表面を吸着して安定にピッキングすることが可能となる。
【００５９】
図７に、本実施形態に係るピッキング方法のフローを示す。
【００６０】
ステップＳ１０２にて、制御部１５４は、ロボットハンド１３０をコンテナ７０の上方に移動する。或いは、コンテナ７０内の複数の区画７１のうちの１つの区画７１の上方に移動してもよい。
【００６１】
ステップＳ１０４にて、撮像部１５１は、コンテナ７０内のワークを撮影して画像及び深度マップを得る。
【００６２】
ステップＳ１０６にて、制御部１５４は、画像を解析してワーク９０が見えるか否か、つまり画像内にワーク９０が含まれているか否か判断する。ワーク９０が見える場合、次のステップに進む。見えない場合、フローを終了する。或いは、ステップＳ１０２に戻り、制御部１５４は、ロボットハンド１３０を、コンテナ７０内の複数の区画７１のうちの次の区画７１の上方に移動してもよい。
【００６３】
なお、ワーク９０は認識できるが、例えば他のワーク９１と重なっているために吸着パッド１３５により吸着保持することのできる十分広い表面上の領域を上方に露出していないと判断される場合には、制御部１５４は、ワーク分離装置２００により、ワーク９０の少なくとも上部を一方向に寄せて他のワーク９１から分離してもよい。それにより、他のワーク９１との間にスペースを設けて、ワーク９０の表面を撮像することができるようになるとともに、ロボットハンド１３０の吸着パッド１３５を挿入するスペースを確保することができる。ワーク分離後、ステップＳ１０４に戻る。
【００６４】
ステップＳ１０８にて、解析部１５２は、画像に基づいてワーク９０を特定し、深度マップのうちの特定したワーク９０に対応するワーク部分９１Ｄに基づいてワーク９０の位置及び向きを算出する。詳細は先述のとおりである。
【００６５】
解析部１５２は、図４Ａ及び図４Ｂを用いて説明したように、ワーク９１〜９７の画像を画像認識（特に、境界認識）することで個々のワーク９１〜９７を識別する。次いで、解析部１５２は、図５Ａの画像（左図）において識別したワークの中からピック対象のワーク９１を特定する。次いで、解析部１５２は、図５Ｂの画像（左図）の中から特定したワーク９１を抽出し、これをマスクとして使用して深度マップ（右図）から対応するワーク部分９１Ｄを切り出す。次いで、解析部１５２は、図５Ｃに示すように、撮像装置１３３の位置に基づいて深度マップ（のワーク部分９１Ｄ）を３次元点群に変換する。ここで、解析部１５２は、適宜、点群データ９１Ｐをダウンサンプリングしてよい。さらに、解析部１５２は、点群データ９１Ｐに対してスタティスティックアウトライヤ処理（統計的外れ値処理）をしてよい。なお、再構成前の深度マップに対してダウンサンプリング及びアウトライヤ処理を施してもよい。
【００６６】
次いで、解析部１５２は、図５Ｄに示すように、ワーク部分９１Ｄから再構成された点群データ９１Ｐのすべて又はほとんどを内側に含む矩形区域Ｓを決定し、矩形区域Ｓを上下に３つ、左右３つ、計９つの区域Ｓ１〜Ｓ９に分割し、それらのなかから互いに隣接しない３つの区域、例えば３つの区域Ｓ１，Ｓ３，Ｓ８からそれぞれ１つのデータ点Ｐ１〜Ｐ３を取得する。次いで、解析部１５２は、図５Ｅに示すように、選択した３つのデータ点Ｐ１〜Ｐ３を用いて、３つのデータ点Ｐ１〜Ｐ３により規定される三角区域Ｔの法線ベクトルＶｎを算出する。法線ベクトルＶｎより、ワーク９１の表面の向きが定められる。なお、解析部１５２は、法線ベクトルＶｎを算出するためのデータ点Ｐ１〜Ｐ３を取得できなかった場合に３つの区域を変更してもよい。次いで、解析部１５２は、図５Ｆに示すように、ワーク９１の向きに基づいてワーク９１の表面に沿った方向（三角区域Ｔの平面内の方向を定義する単位長さのベクトルの鉛直下向き成分が略最大となる方向）を決定し、その方向に基づいてワーク部分９１Ｄ内の吸着点Ｐａ（この位置をワーク９１の位置と呼ぶ）を決定する。
【００６７】
ステップＳ１１０にて、制御部１５４は、ステップＳ１０８にて算出したワーク９１の位置に基づいてロボットハンド１３０を目的のワーク９１の上方に移動する。
【００６８】
ステップＳ１１２にて、制御部１５４は、吸着パッド１３５をオンする。
【００６９】
ステップＳ１１４にて、制御部１５４は、図６に示すように、ステップＳ１０８にて算出したワーク９１の位置及び向きに基づいてロボットアーム１２０を制御して、吸着パッド１３５の向きをワーク９１の向き（すなわち、法線ベクトルＶｎの方向）に合わせ、吸着パッド１３５をワーク９１の表面上の吸着点Ｐａに向けて駆動する。吸着パッド１３５の向きをワーク９１の向きに合わせることで、ワーク表面を吸着して安定にピッキングする。
【００７０】
ステップＳ１１６にて、制御部１５４は、吸着パッド１３５によりワーク９１の吸着に成功したか否か判断する。成功した場合、ステップＳ１１８に進む。失敗した場合、ステップＳ１０４に戻る。なお、複数回失敗した場合、フローを終了してもよい。
【００７１】
ステップＳ１１８にて、制御部１５４は、複数の吸着パッド１３５のうちワーク９１に吸着した吸着パッド１３５の数を判断する。２つの吸着パッド１３５の両方がワーク９１に吸着した場合、ステップＳ１２０に進み、制御部１５４はロボットアーム１２０の駆動速度を高くしてワーク９１を高速に搬送し、２つの吸着パッド１３５の一方のみがワーク９０に吸着した場合、ステップＳ１２２に進み、ロボットアーム１２０の駆動速度を低くしてワーク９１を安定に搬送する。ワーク９１がフレキシブルであるため一方の吸着パッド１３５による吸着に失敗した場合であってもワーク９１を安定に搬送することが可能となる。
【００７２】
ステップＳ１２４にて、制御部１５４は、ワーク９１をＱＲコード（登録商標）リーダ６０に搬送し、これを用いてワーク表面に貼付されたＱＲコード（登録商標）を読み取る。制御部１５４は、ＱＲコード（登録商標）による記録より収容すべきコンテナ８０の区画８１を決定する。
【００７３】
ステップＳ１２６にて、制御部１５４は、ワーク９１を目的の区画８１に搬送する。
【００７４】
ステップＳ１２８にて、制御部１５４は、吸着パッド１３５をオフしてワーク９１を区画８１内にプレイスする。
【００７５】
制御部１５４は、ステップＳ１０２に戻り、上記のステップを繰り返す。制御部１５４は、コンテナ７０内のすべてのワークをコンテナ８０に搬送し、ステップＳ１０６においてコンテナ７０内にワークが確認できなくなることで、フローを終了する。
【００７６】
なお、上記のピッキング方法のフローに先立って、学習部１５３により、ワークを特定済みの正解画像を用いて機械学習モデルを生成する。ただし、解析部１５２は、機械学習ではなくルールベースによる画像認識の方法により画像に基づいてワークを特定するものでもよい。
【００７７】
以上説明したように、本実施形態に係るピッキングシステム１００は、ワークを撮影して画像及び深度マップを得る撮像部１５１、画像に基づいてワークを特定し、深度マップのうちの特定したワークに対応するワーク部分に基づいてワークの位置及び向きを決定する解析部１５２、及びワークの位置及び向きに基づいてロボットアーム１２０を駆動制御する制御部１５４を備える。解析部１５２により、画像認識によりワークを特定し、深度マップのうちの特定したワークに対応する部分に基づいてワークの位置及び向きを決定し、制御部１５４によりロボットアーム１２０を制御して、ワークの向きに合わせてその位置に駆動することで、不定形なワークであっても、これをロボットアーム１２０により安定にピッキングすることが可能となる。
【００７８】
なお、本実施形態に係るピッキングシステム１００において、ワークを保持するロボットハンド１３０に吸着パッド１３５を使用したが、これに限らずワークの上部を挟持する構成のハンドを使用してもよい。
【００７９】
また、本実施形態に係るピッキングシステム１００では、制御装置１５０が学習部１５３を具備する構成としたが、制御装置１５０の構成はこれに限定されるものではない。制御装置１５０は解析部１５２がワークを特定できるものであればよく、予め学習済みの機械学習モデルを記憶しておくものでもよい。この場合、制御装置１５０は学習部１５３を具備しない構成となる。また、学習部１５３が別の装置として存在し、ネットワークを介して接続されている構成でも良い。
【００８０】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および／またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび／またはアナログハードウェア回路を含んでよく、集積回路（ＩＣ）および／またはディスクリート回路を含んでよい。プログラマブル回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【００８１】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー（登録商標）ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（ＲＴＭ）ディスク、メモリスティック、集積回路カード等が含まれてよい。
【００８２】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ、ＪＡＶＡ（登録商標）、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、１または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【００８３】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク（ＬＡＮ）、インターネット等のようなワイドエリアネットワーク（ＷＡＮ）を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【００８４】
図８は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ２２００の例を示す。コンピュータ２２００にインストールされたプログラムは、コンピュータ２２００に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の１または複数のセクションとして機能させることができ、または当該操作または当該１または複数のセクションを実行させることができ、および／またはコンピュータ２２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ２２００に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、ＣＰＵ２２１２によって実行されてよい。
【００８５】
本実施形態によるコンピュータ２２００は、ＣＰＵ２２１２、ＲＡＭ２２１４、グラフィックコントローラ２２１６、およびディスプレイデバイス２２１８を含み、それらはホストコントローラ２２１０によって相互に接続されている。コンピュータ２２００はまた、通信インタフェース２２２２、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６、およびＩＣカードドライブのような入／出力ユニットを含み、それらは入／出力コントローラ２２２０を介してホストコントローラ２２１０に接続されている。コンピュータはまた、ＲＯＭ２２３０およびキーボード２２４２のようなレガシの入／出力ユニットを含み、それらは入／出力チップ２２４０を介して入／出力コントローラ２２２０に接続されている。
【００８６】
ＣＰＵ２２１２は、ＲＯＭ２２３０およびＲＡＭ２２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ２２１６は、ＲＡＭ２２１４内に提供されるフレームバッファ等またはそれ自体の中にＣＰＵ２２１２によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス２２１８上に表示されるようにする。
【００８７】
通信インタフェース２２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ２２２４は、コンピュータ２２００内のＣＰＵ２２１２によって使用されるプログラムおよびデータを格納する。ＤＶＤ−ＲＯＭドライブ２２２６は、プログラムまたはデータをＤＶＤ−ＲＯＭ２２０１から読み取り、ハードディスクドライブ２２２４にＲＡＭ２２１４を介してプログラムまたはデータを提供する。ＩＣカードドライブは、プログラムおよびデータをＩＣカードから読み取り、および／またはプログラムおよびデータをＩＣカードに書き込む。
【００８８】
ＲＯＭ２２３０はその中に、アクティブ化時にコンピュータ２２００によって実行されるブートプログラム等、および／またはコンピュータ２２００のハードウェアに依存するプログラムを格納する。入／出力チップ２２４０はまた、様々な入／出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入／出力コントローラ２２２０に接続してよい。
【００８９】
プログラムが、ＤＶＤ−ＲＯＭ２２０１またはＩＣカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ２２２４、ＲＡＭ２２１４、またはＲＯＭ２２３０にインストールされ、ＣＰＵ２２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ２２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ２２００の使用に従い情報の操作または処理を実現することによって構成されてよい。
【００９０】
例えば、通信がコンピュータ２２００および外部デバイス間で実行される場合、ＣＰＵ２２１２は、ＲＡＭ２２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース２２２２に対し、通信処理を命令してよい。通信インタフェース２２２２は、ＣＰＵ２２１２の制御下、ＲＡＭ２２１４、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭ２２０１、またはＩＣカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【００９１】
また、ＣＰＵ２２１２は、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６（ＤＶＤ−ＲＯＭ２２０１）、ＩＣカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ２２１４に読み取られるようにし、ＲＡＭ２２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ２２１２は次に、処理されたデータを外部記録媒体にライトバックする。
【００９２】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ２２１２は、ＲＡＭ２２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ２２１４に対しライトバックする。また、ＣＰＵ２２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ２２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【００９３】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ２２００上またはコンピュータ２２００近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ２２００に提供する。
【００９４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００９５】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００９６】
６０…ＱＲコード（登録商標）リーダ、７０，８０…コンテナ、７１〜７４…区画、７９…仕切り、８０…コンテナ、８１…区画、８９…仕切り、９０〜９７…ワーク、９１ａ〜９４ａ…表面、９１Ｄ…ワーク部分、９１Ｐ…点群データ、１００…ピッキングシステム、１０１…ロボット、１１０…本体、１１１…ベース、１２０…ロボットアーム、１３０…ロボットハンド、１３１…基部、１３２…シャフト、１３３…撮像装置、１３３ａ…支持部材、１３４…固定部材、１３５…吸着パッド、１３５ａ…支持部材、１４０…駆動装置、１５０…制御装置、１５１…撮像部、１５２…解析部、１５３…学習部、１５４…制御部、２００…ワーク分離装置、２１０…支持具駆動装置、２１１…本体、２１２…テーブル、２１３…支持具、２２０…棒状部材、２２００…コンピュータ、２２０１…ＤＶＤ−ＲＯＭ、２２１０…ホストコントローラ、２２１４…ＲＡＭ、２２１６…グラフィックコントローラ、２２１８…ディスプレイデバイス、２２２０…入／出力コントローラ、２２２２…通信インタフェース、２２２４…ハードディスクドライブ、２２２６…ＤＶＤ−ＲＯＭドライブ、２２４０…入／出力チップ、２２４２…キーボード、Ｐ１〜Ｐ３…データ点、Ｐａ…吸着点（位置決定点）、Ｓ…矩形区域、Ｓ１〜Ｓ９…区域、Ｓａ，Ｓｂ…区画、Ｔ…三角区域、Ｖｎ…法線ベクトル、Ｖｔ…接線ベクトル。
【図１Ａ】
0006924448.tif 000002
【図１Ｂ】
0006924448.tif 000003
【図１Ｃ】
0006924448.tif 000004
【図２】
0006924448.tif 000005
【図３】
0006924448.tif 000006
【図４Ａ】
0006924448.tif 000007
【図４Ｂ】
0006924448.tif 000008
【図５Ａ】
0006924448.tif 000009
【図５Ｂ】
0006924448.tif 000010
【図５Ｃ】
0006924448.tif 000011
【図５Ｄ】
0006924448.tif 000012
【図５Ｅ】
0006924448.tif 000013
【図５Ｆ】
0006924448.tif 000014
【図６】
0006924448.tif 000015
【図７】
0006924448.tif 000016
【図８】
0006924448.tif 000017