本発明の第1の局面によれば、本発明は、少なくとも1つのセンサを用いて、対象領域から少なくとも2つのセンサ測定値を取得すること;対象領域の第1の画像を形成すること;少なくとも2つのセンサ測定値の内の少なくとも第1のセンサ測定値に基づいて、対象領域において第1の仕分け動作を行うこと;対象領域の第2の画像を形成すること;対象領域における少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較すること;および、対象領域における少なくとも1つの第2の仕分け動作において、無効領域を避けること(ここで、第2の仕分け動作は少なくとも2つのセンサ測定値の内の少なくとも第2のセンサ測定値に基づく)、を含む方法である。
本発明のさらなる局面によれば、本発明は、少なくとも1つのセンサを用いて、対象領域から少なくとも2つのセンサ測定値を取得する手段;対象領域の第1の画像を形成する手段;少なくとも2つのセンサ測定値の内の第1のセンサ測定値に基づいて、対象領域において第1の仕分け動作を行う手段;対象領域の第2の画像を形成する手段;対象領域における少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較する手段;対象領域における少なくとも1つの第2の仕分け動作において、無効領域を避ける手段(ここで、第2の仕分け動作は少なくとも2つのセンサ測定値の内の少なくとも第2のセンサ測定値に基づく);を含む装置である。
本発明のさらなる局面によれば、本発明は、データ処理システム上で実行された際に、プロセッサに以下のステップを行わせるように構成されたコードを含むコンピュータプログラムであって、少なくとも1つのセンサを用いて、対象領域から少なくとも2つのセンサ測定値を取得するステップ;対象領域の第1の画像を形成するステップ;少なくとも2つのセンサ測定値の内の少なくとも第1のセンサ測定値に基づいて、対象領域において第1の仕分け動作を行うステップ;対象領域の第2の画像を形成するステップと;対象領域における少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較するステップ;および、対象領域における少なくとも1つの第2の仕分け動作において、無効領域を避けるステップ(ここで、第2の仕分け動作は少なくとも2つのセンサ測定値の内の少なくとも第2のセンサ測定値に基づく);を含む。
本発明のさらなる局面によれば、本発明は、少なくとも1つのセンサを用いて、対象領域から少なくとも2つのセンサ測定値を取得すること、対象領域の第1の画像を形成すること、少なくとも2つのセンサ測定値の内の少なくとも第1のセンサ測定値に基づいて、対象領域において第1の仕分け動作を行うこと、対象領域の第2の画像を形成すること、対象領域における少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較すること、対象領域における少なくとも1つの第2の仕分け動作において無効領域を避けること(ここで、第2の仕分け動作は、少なくとも2つのセンサ測定値の内の少なくとも第2のセンサ測定値に基づく)、を行うように構成された少なくとも1つのプロセッサを含む装置である。
本発明のある実施形態では、仕分け動作は、ロボットアームを用いて行われる。
本発明のある実施形態では、第1の画像および第2の画像等の画像は、2次元マトリクスまたはアレイ、あるいは3次元アレイとして表され得る、または解釈され得るどのような種類のセンサデータでもよい。
本発明のある実施形態では、第1および第2の画像等の画像は、モノクロまたは多色写真でもよい。中間色のモノクロ画像は、グレースケールまたは白黒画像と呼ばれる。
本発明のある実施形態では、第1の画像および第2の画像等の画像は、写真および高さマップの少なくとも一方を含み得る。高さマップは、ある点における高さ値の2次元アレイまたはマトリクスを含み得る。高さマップは、対象領域の3次元モデルでもよい。3次元モデルは、例えば、一連の点、一連の線、一連のベクトル、一連の平面、一連の三角形、一連の任意の地理的形状の内の少なくとも1つを含み得る。高さマップは、例えばメタデータとして、画像に関連し得る。
本発明のある実施形態では、第1の画像および第2の画像等の画像は、高さマップでもよい。本発明のある実施形態では、高さマップは、3Dラインスキャナを用いて得られる。
本発明のある実施形態では、画像は、写真画像および高さマップの少なくとも一方を含むデータの一群を意味し得る。写真画像は、2Dまたは3Dでもよい。
本発明のある実施形態では、第1の画像および第2の画像等の画像は、画像の別の表現に加えて、画像の一部として、高さマップを自身に関連付け得る。
本発明のある実施形態では、高さマップは、3Dラインスキャナを用いて得られる。ラインスキャナは、レーザラインスキャナでもよい。例えば、レーザラインスキャナは、位置エンコーダを備えた平衡回転ミラーおよびモータと、取り付け金具を含み得る。スキャナは、センサのレーザ光を90度偏向させ、それが回転する際に、それを一周スイープする。
本発明のある実施形態では、対象領域において少なくとも1つの無効領域を決定するために、第1および第2の画像を比較するステップは、第1の画像および第2の画像における領域の高さを比較することをさらに含む。この領域は、任意のサイズまたは形のものでよい。第1および第2の画像は、高さマップでもよく、あるいは、それらは、自身に別個の高さマップを関連付けてもよい。
本発明のある実施形態では、対象領域において少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較するステップは、更に、第1の画像または第2の画像の高さマップの一方を選択すること;選択された高さマップから2つの新しい高さマップ(これらは、最小マップ(min−map)および最大マップ(max−map)と呼ぶことができ、最小マップは、式:min−map=erode(heightmap)−fudgefactorを用いてピクセルに関して計算され、最大マップは、式:max−map=dilate(heightmap)+fudgefactorを用いてピクセルに関して計算される)を生成すること;第2の高さマップh2、すなわち他方の高さマップを、第2の高さマップにおけるピクセルh2(x,y)ごとに、条件:min−map(x,y)<h2(x,y)<max−map(x,y)が満たされているか否かをチェックすることによって、選択された高さマップh1と比較すること;および、少なくとも1つの無効領域に対して条件が満たされていないピクセル(x,y)を選択すること;を含む。dilate関数は、モルフォロジー膨張演算子である。erode関数は、モルフォロジー収縮演算子である。誤差(fudge factor)は、定数またはピクセルに依存した定数アレイである。
本発明のある実施形態では、対象領域において少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較するステップは、選択された高さマップの上限面を形成すること(ここで、この選択された高さマップは第1の画像または第2の画像の高さマップである);選択された高さマップの下限面を形成すること;および、少なくとも1つの無効領域に対して、他方の高さマップが上限面と下限面との間に当てはまらない領域を選択すること(ここで、他方の高さマップは第1の画像または第2の画像の高さマップである);を含む。
本発明のある実施形態では、対象領域において少なくとも1つの無効領域を決定するために、第1の画像および第2の画像を比較するステップは、更に、第1の画像または第2の画像のどちらか一方に関連する高さマップを第1の高さマップとして指定すること;他方の画像に関連する高さマップを第2の高さマップとして指定すること;第1の高さマップの上限面を形成すること;第1の高さマップの下限面を形成すること;および、少なくとも1つの無効領域に対して、第2の高さマップが上限面と下限面との間に当てはまらない領域を選択すること;を含む。第1の画像に関連する高さマップと、第2の画像に関連する高さマップとが存在する。
本発明のある実施形態では、対象領域において少なくとも1つの無効領域を決定するに、第1の画像および第2の画像を比較するステップは、更に、第1の画像または第2の画像のどちらか一方を第1の高さマップとして指定すること;他方の画像を第2の高さマップとして指定すること;第1の高さマップの上限面を形成すること;第1の高さマップの下限面を形成すること;および、少なくとも1つの無効領域に対して、第2の高さマップが上限面と下限面との間に当てはまらない領域を選択すること;を含む。この実施形態では、第1の画像および第2の画像は、高さマップである。
本発明のある実施形態では、上限面は、モルフォロジー膨張演算子を用いて、ピクセルに関して計算される。膨張関数は、出力ピクセルの値が、入力ピクセルの近傍における全ピクセルの最大値となるように定義され得る。二値画像においては、ピクセルの何れかが値1に設定されると、出力ピクセルは1に設定される。誤差は、膨張関数によって与えられた値に対して、計算において加算または減算され得る。
本発明のある実施形態では、下限面は、モルフォロジー収縮演算子erodeを用いて、ピクセルに関して計算される。erode関数は、出力ピクセルの値が、入力ピクセルの近傍における全ピクセルの最小値となるように定義され得る。二値画像においては、ピクセルの何れかが0に設定されると、出力ピクセルは0に設定される。誤差は、収縮関数によって与えられた値に対して、計算において加算または減算され得る。
本発明のある実施形態では、仕分け動作は、ロボットハンドを用いて行われるピッキング動作である。ピッキング動作は、グリッピングと呼ばれる場合もある。
仕分け動作は、失敗したピッキング動作である場合がある。仕分け動作は、対象領域における少なくとも1つの物体の移動、移動の試み、または接触である場合がある。この移動は、いずれの方向のものでもよい。
本発明のある実施形態では、対象領域における第1の仕分け動作は、少なくとも2つのセンサ測定値の内の少なくとも第1のセンサ測定値および第1の画像に基づいて、ロボットアームを用いて行い得る。
本発明のある実施形態では、第2のピッキング動作は、第1の画像および第2の画像の少なくとも一方と共に、少なくとも2つのセンサ測定値の内の少なくとも第2のセンサ測定値に基づき得る。
本発明のある実施形態では、第1のセンサ測定値は、無効領域において測定され、第2のセンサ測定値は、無効領域では測定されない。
本発明のある実施形態では、第1の画像は、第1のカメラを用いて対象領域の画像を撮影することにより形成され、第2の画像は、第2のカメラを用いて対象領域の画像を撮影することにより形成される。
本発明のある実施形態では、この方法は、更に、対象領域がその上に位置するコンベアベルトを所定の長さ走行させることであって、所定の長さは、第1のカメラおよび第2のカメラ間の距離と一致することを含む。
本発明のある実施形態では、この方法は、更に、透視補正を用いて、第1の画像および第2の画像の少なくとも一方を、第1の画像および第2の画像によって共有される座標系に変換することを含む。透視補正は、コンベアベルトに向けた第1のカメラおよび第2のカメラの画角の少なくとも一方に関する差、およびコンベアベルトまでの第1のカメラおよび第2のカメラの距離に関する差を補償することができる。透視補正は、例えば、第1の画像および第2の画像間の鉛直および水平傾斜の少なくとも一方を補正することを含み得る。
本発明のある実施形態では、この方法は、更に、既知の形を持つテスト物体を用いて、透視補正を求めることを含む。透視補正は、コンベアベルトが走行中に、第1のカメラを用いて複数の第1のテスト画像を撮影し、第2のカメラを用いて複数の第2のテスト画像を撮影すること、およびテスト物体を表す第1のテスト画像および第2のテスト画像の中から最も良く合致した画像を選択することによって定義され得る。透視補正は、最も良く合致した第1のテスト画像と、最も良く合致した第2のテスト画像とを共通の座標系に転換するのに必要な変換として定義され得る。
本発明のある実施形態では、この方法は、更に、コンベアベルトが走行中に、第1のカメラを用いて複数の第1のテスト画像を撮影し、第2のカメラを用いて複数の第2のテスト画像を撮影すること;テスト物体を表す第1のテスト画像および第2のテスト画像の中から最も良く合致した画像を選択すること;および、画像間をコンベアベルトが走行した長さを所定の長さとして記録すること;を含む。
本発明のある実施形態では、この方法は、更に、第1の画像および第2の画像の少なくとも一方を高域フィルタリングすることを含む。
本発明のある実施形態では、第1および第2の画像を比較するステップが、更に、第1の画像および第2の画像の複数の領域を形成すること(ここで、複数の領域は、少なくとも部分的に重複する、または別個のものである)を含む。複数の領域は、窓関数を用いて、第1および第2の画像の領域全体から形成されてもよい。この窓関数は、例えば、矩形でもよく、あるいは、ガウス窓関数でもよい。領域は、例えば30×30ピクセル等の規定の高さおよび幅のピクセルブロックでもよい。複数の領域は、第1および第2の画像において同一ピクセルを有していてもよく、同じサイズを有していてもよい。
本発明のある実施形態では、第1の画像および第2の画像を比較するステップが、更に、平滑化関数を用いて、複数の領域の各々を平滑化することを含む。平滑化関数は、ガウスカーネルでもよい。
本発明のある実施形態では、第1および第2の画像を比較するステップが、更に、第1の画像および第2の画像間の低相関および第1の画像内の高分散に基づいて、少なくとも1つの無効領域として複数の領域を決定することを含む。
本発明のある実施形態では、少なくとも1つの無効領域として複数の領域を決定するステップが、更に、領域ごとに、第1の画像および第2の画像間の変位を生じさせる最大相関を選択すること;変位を生じさせる最大相関を用いて、領域ごとに第1の画像および第2の画像間の相関を計算すること;を含む。変位は、水平または鉛直方向における、あるピクセル数の変位である。ピクセル数は、例えば、どちらか一方の方向における例えば5または3より少ないピクセル数でもよい。変位を生じさせる最大相関は、水平または鉛直方向に別個に各変位を試みることによって決定することができる。
本発明のある実施形態では、第1および第2の画像を比較するステップは、更に、領域内で最も高い分散を持つ第1の画像内の複数の領域を決定することを含む。
本発明のある実施形態では、第1および第2の画像を比較するステップは、更に、第1の画像および第2の画像間で最も低い相関を持つ複数の領域を決定すること;および、最も高い分散および最も低い相関を持つ領域を少なくとも1つの無効領域として決定することを含む。
本発明のある実施形態では、無効領域の選択基準として同様に使用され得るのは、領域が無効領域として見なされるために超過しなければならない第1の画像内の局所分散の閾値および超過してはならない第1の画像および第2のもの間の局所相関の閾値である。
本発明のある実施形態では、少なくとも1つのセンサは、赤外線センサ、金属探知器、およびレーザスキャナを含む。赤外線センサは、近赤外(NIR)センサでもよい。
本発明のある実施形態では、カメラは、可視光カメラ、飛行時間型3Dカメラ、構造化光3Dカメラ、または赤外線カメラ、または3Dカメラである。
本発明のある実施形態では、第1の画像および第2の画像は、例えば、飛行時間型3Dカメラまたは構造化光3Dカメラであり得る単一の3Dカメラを用いて形成される。
本発明のある実施形態では、グリッピングまたはピッキング動作の成功は、センサからのデータを用いて決定される。グリップが成功しなければ、ロボットアームは、別の試みを行うために異なる場所に移動する。
本発明のある実施形態では、システムは、装置内で起動し得る学習システムを利用することによりさらに向上する。
本発明のある実施形態では、コンピュータプログラムがコンピュータ可読媒体に保存される。コンピュータ可読媒体は、リムーバブルメモリカード、リムーバブルメモリモジュール、磁気ディスク、光ディスク、ホログラムメモリ、または磁気テープでもよい。リムーバブルメモリモジュールは、例えば、USBメモリスティック、PCMCIAカード、またはスマートメモリカードでもよい。
本発明のある実施形態では、第1および第2の画像を撮影するための2つのカメラの代わりに、3次元撮像カメラを用いてもよい。3次元撮像カメラは、2つのレンズおよび画像センサを含み得る。
本発明のある実施形態では、第1のセンサアレイおよび第2のセンサアレイは、第1のセンサアレイおよび第2のセンサアレイからのセンサ示度のマトリクスを形成するために、静止対象領域上を移動し得る。この場合、コンベアベルトは存在しない。ピッキングされる物体は、静止対象領域上に配置され得る。この場合、単一の2Dカメラまたは単一の3Dカメラを用いて、第1および第2の画像を撮影してもよい。
本発明のある実施形態では、コンベアベルトは、ピッキングされる物体がその上に配置される回転ディスクまたはプラッタに置き換えられてもよい。この場合、ディスクまたはプラッタの半径方向に沿って、第1のセンサアレイおよび第2のセンサアレイが配置される。
以上に記載した本発明の実施形態は、互いに任意に組み合わせて用いることができる。これらの実施形態の幾つかを共に組み合わせて、本発明のさらなる実施形態を形成することができる。本発明が関係する方法、システム、装置、コンピュータプログラム、またはコンピュータプログラム製品は、以上に記載した本発明の実施形態の少なくとも1つを含み得る。
本発明の利点は、ロボットの動作空間から物体を選択する際の質の向上に関する。後続のピッキング動作のための無効領域に関する情報により、各ピッキング動作後にセンサ情報が部分的に古くなり得る事実に起因した、ロボットアームによる1つ1つのピッキング動作後にコンベアベルトを前後に動かす必要がなくなる。これにより、ロボットシステムのエネルギーおよび処理時間が節約される。
これより、詳細に本発明の実施形態に言及し、その例を添付の図面に図示する。
図1は、本発明のある実施形態における2つのラインセンサアレイを適用したロボットシステムを図示するブロック図である。
図1では、ロボットシステム100は、例えばロボットアーム112を備える産業ロボットであるロボット110を備える。ロボットアーム116に接続されるのは、グリッパ114であり、これは、クランプまたは鉤爪でもよい。ロボットアーム116は、コンベアベルト102の動作領域102B内でグリッパ112を移動させることができる。ロボットアーム112は、多数のモータ、例えば、ロボットアームの回転、上昇、およびグリッピングの制御を可能にするサーボモータを含み得る。ロボットアーム112およびグリッパ114の様々な動作は、アクチュエータによって生じる。一例として、アクチュエータは、電気式、空気圧式、または油圧式、あるいは、これらの何れの組み合わせでもよい。アクチュエータは、ロボット110の様々な要素を移動または回転させることができる。ロボット110に関連して、グリッパ114およびロボットアーム112の目標座標をロボットアーム112およびグリッパ114を制御するアクチュエータに入力された適切な電圧および電力レベルに変換するコンピュータユニット(不図示)が存在する。ロボット110に関連するコンピュータユニットは、例えば、装置120からコンピュータユニットへとグリッピング命令を指定する目標座標を伝えるために使用されるUSBコネクタであるコネクタを用いて制御される。装置120からの制御信号に応答して、アクチュエータは、必ずしも限定されることはないが、動作領域102B内のある特定の場所の上方にグリッパ114を位置付けること、グリッパ114を下げるまたは上げること、およびグリッパ114の開閉を含む様々な機械的機能を行う。ロボット110は、様々なセンサを含み得る。一例として、これらのセンサには、ロボットアーム112およびグリッパ114の位置、並びに、グリッパ114の開/閉状態を示す様々な位置センサ(不図示)が含まれる。グリッパの開/閉状態は、単純なイエス/ノービットに限定されない。本発明のある実施形態では、グリッパ114は、その各指に関するマルチビット開/閉状態を示すことができ、それによって、グリッパ内の1つまたは複数の物体のサイズおよび/または形状の指標を得ることができる。位置センサに加えて、一連のセンサは、ロボットアーム112およびグリッパ114の様々な要素が受ける歪みを示す、歪みゲージまたは力フィードバックセンサとしても知られる歪みセンサを含み得る。例示的であるが非限定的なある実施例では、歪みセンサは、それらに加えられる圧縮の張力に応じて抵抗が変化する可変抵抗を含む。抵抗の変化は、抵抗の絶対値に比べて小さいので、可変抵抗は、一般的に、ホイートストンブリッジ構成で測定される。
図1には、コンベアベルト102が図示されている。コンベアベルト上には、ロボット110によって多数の対象容器(不図示)へと仕分けされる多数の物体、例えば、物体108および物体109が図示されている。コンベアベルト102の上方には、2つのラインセンサアレイ、すなわちセンサアレイ103およびセンサアレイ104が図示されている。センサアレイは、それぞれのセンサの下のコンベアベルト102のストライプから示度アレイを取得する多数の等間隔に配置されたセンサを含む。センサアレイは、コンベアベルト102の側面に直交するように配置され得る。本発明のある実施形態では、センサアレイ内のセンサは、等間隔に配置されなくてもよく、コンベアベルト102の側面に対して非直交角度で配置されてもよい。センサアレイ内のセンサは、静止状態でもよく、あるいは、コンベアベルト102のより広範なストライプをスキャンするために移動してもよい。センサアレイ103は、例えば、近赤外(NIR)センサアレイでもよい。センサアレイ104は、例えば、レーザスキャナアレイでもよい。各センサアレイは、コンベアベルトの長手方向ストライプに関する示度のアレイ、すなわち時系列を取得するよう機能する。各センサアレイからのアレイを組み合わせて、センサ示度のマトリクスを形成することができる。
コンベアベルト102は、2つの論理的領域、すなわち、第1の領域102Aおよび第2の領域102Bに分割される。第1の領域102Aは、コンベアベルト102上の物体が移動されない手付かずの領域と呼ぶことができる。第2の領域102Bは、ロボット110が、物体108等の物体をグリップし得る、またはグリップしようと試み得るロボット110の動作領域である。物体108は、電気コードで接続された2つの部品から成るように図示されている。第1の部品の移動により、第2の部品の移動が生じ、同じく、部分的に物体108の第2の部品上にある物体109の移動が生じる。従って、領域102B内の物体108の移動は、マトリクス内のセンサ示度、すなわち、多数のマトリクス要素の領域の無効化を生じさせる。マトリクス要素ごとに、第2の領域102B内の要素に対応する領域を装置120が知っていることを前提とする。
図1には、領域102Aから撮られる第1の画像を取得するために配置された第1のカメラ105が存在する。同様に領域102Bから撮られる第2の画像を取得するために配置された第2のカメラ106も存在する。第1の画像を撮ることにより、グリッピング動作が行われる前のコンベアベルト102上の物体の配置を求める。第2の画像を撮ることにより、グリッピング動作が行われた後の物体の配置を求める。グリッピング動作は、成功する、または失敗する場合がある。ベルト表面に対して移動されない物体がほぼ同じ位置に見える対応する第1および第2の画像の取得を可能にする、ベルト位置の正確なオフセットを求めるために使用されるベルトエンコーダと呼ばれ得る特定のセンサ101が存在する。ベルトエンコーダ101を用いて、ある時間窓中にコンベアベルト102が走行したステップ数を求める。
ロボット110は、データ処理装置120、省略して装置120に接続される。囲み(box)140を用いて、装置120の内部機能を図示する。装置120は、少なくとも1つのプロセッサ142、ランダムアクセスメモリ(RAM)148、およびハードディスク144を含む。1つまたは複数のプロセッサ142は、ソフトウェアエンティティ150、152、154、および156を実行することによって、ロボットアームを制御する。装置120は、少なくとも、カメラインタフェース147、ロボット110を制御するためのロボットインタフェース146、およびセンサインタフェース145も含む。ロボットインタフェース146は、コンベアベルト102の動作を制御することを前提としてもよい。インタフェース145、146、および147は、例えばユニバーサルシリアルバス(USB)インタフェースであるバスインタフェースでもよい。同様に装置120に接続されるのは、少なくともディスプレイおよびキーボードを含む端末130である。端末130は、ローカルエリアネットワークを用いて装置120に接続されたラップトップでもよい。
装置120のメモリ148は、プログラムまたは一般的に少なくとも1つのプロセッサ142によって実行される一群のソフトウェアエンティティを含む。インタフェース145を介して、センサアレイ103からのセンサ示度のマトリクスおよびセンサアレイ104からのセンサ示度のマトリクスを取得するセンサコントローラエンティティ150が存在する。マトリクス中の要素は、コンベアベルト102が走行中のある瞬間における、あるセンサアレイ内のあるセンサからのセンサ示度を示す。ロボットアーム112およびグリッパ114の回転、上昇、およびグリッピングの制御を行うために、ロボットインタフェース146を介してロボット110に命令を出すアームコントローラエンティティ152が存在する。アームコントローラエンティティ152は、ロボットアーム112およびグリッパ114の測定された回転、上昇、およびグリッピングに関するセンサデータの受信も行い得る。アームコントローラは、受信したフィードバックに基づいてインタフェース146を介して装置120に出された新しい命令を用いて、アームを作動させ得る。アームコントローラエンティティ152は、明確に定義された高度な動作を行うようにロボット110に命令を出すように構成される。高度な動作の一例は、ロボットアームを指定された位置に移動させることである。インタフェース147を用いてカメラ105および106と通信するカメラコントローラエンティティ154も存在する。カメラコントローラエンティティは、指定された瞬間に、カメラ105および106に写真を撮らせる。カメラコントローラエンティティ154は、インタフェース147を介して、カメラ105および106が撮った写真を取得し、メモリ140内に写真を保存する。
センサコントローラエンティティ150は、コンベアベルト102上の対象領域から少なくとも1つのセンサを用いて少なくとも1つのセンサ測定値を取得することができる。カメラコントローラエンティティ154は、第1のカメラを用いて、対象領域の第1の画像を撮影することができる。アームコントローラエンティティ152は、コンベアベルトを所定の長さ走行させることができ、この所定の長さは、第1のカメラおよび第2のカメラ間の距離と一致する。アームコントローラエンティティ152は、少なくとも1つのセンサ測定値および第1の画像の少なくとも一方に基づいて、ロボットアームを用いて、対象領域において第1のピッキングまたは仕分け動作を行うことができる。カメラコントローラエンティティ154は、第2のカメラを用いて、対象領域の第2の画像を撮影することができる。画像分析器エンティティ156は、第1および第2の画像を比較し、対象領域における少なくとも1つの無効領域を決定し、対象領域における少なくとも1つの第2のピッキングまたは仕分け動作において、無効領域を避けるように、アームコントローラエンティティ152に命令し得る。
少なくとも1つのプロセッサが本発明に関連する機能エンティティを実行する時、メモリは、センサコントローラエンティティ150、アームコントローラエンティティ152、カメラコントローラエンティティ154、および画像分析器エンティティ156等のエンティティを含む。図1に図示される装置120内の機能エンティティは、様々な方法で実施され得る。これらは、ネットワークノードのネイティブオペレーティングシステムの下で実行されるプロセスとして実施されてもよい。これらのエンティティは、別個のプロセスまたはスレッドとして実施されてもよく、あるいは、多数の異なるエンティティが1つのプロセスまたはスレッドを用いて実施されるように実施されてもよい。プロセスまたはスレッドは、多数のルーチン、すなわち、例えばプロシージャおよび関数を含むプログラムブロックのインスタンスでもよい。これらの機能エンティティは、別個のコンピュータプログラムとして、または、エンティティを実施する幾つかのルーチンまたは関数を含む単一のコンピュータプログラムとして実施されてもよい。プログラムブロックは、例えば、メモリ回路、メモリカード、磁気または光ディスク等の少なくとも1つのコンピュータ可読媒体に保存される。一部の機能エンティティは、別の機能エンティティにリンクしたプログラムモジュールとして実施され得る。図1の機能エンティティは、別個のメモリに保存され、例えばネットワークノード内のメッセージバスまたは内部ネットワークを介して通信する別個のプロセッサによって実行されてもよい。このようなメッセージバスの一例は、ペリフェラルコンポーネントインターコネクト(PCI)バスである。
本発明のある実施形態では、ソフトウェアエンティティ150〜156は、例えば、サブルーチン、プロセス、スレッド、方法、オブジェクト、モジュール、およびプログラムコードシーケンス等の別個のソフトウェアエンティティとして実施され得る。これらは単に、具体的な別個のサブルーチン、プロセス、スレッド、方法、オブジェクト、モジュール、およびプログラムコードシーケンスにグループ化されていない装置120中のソフトウェア内の論理機能性でもよい。それらの機能は、装置120のソフトウェア全体に広がり得る。一部の機能は、装置120のオペレーティングシステムにおいて行われてもよい。
本発明のある実施形態では、カメラ105および106の代わりに、3次元撮像カメラを用いてもよい。3次元撮像カメラは、2つのレンズおよび画像センサを含み得る。本発明のある実施形態では、カメラは、可視光カメラ、飛行時間型3Dカメラ、構造化光3Dカメラ、または赤外線カメラ、または3Dカメラである。
本発明のある実施形態では、カメラの代わりに、あるいは、カメラに加えて、3Dラインスキャナを用いてもよい。
本発明のある実施形態では、第1の画像および第2の画像等の画像は、2次元マトリクスまたはアレイ、あるいは3次元アレイとして表され得る、または解釈され得るどのような種類のセンサデータでもよい。
本発明のある実施形態では、センサアレイ103およびセンサアレイ104は、センサアレイ103およびセンサアレイ104からのセンサ示度のマトリクスを形成するために、静止対象領域上を移動し得る。この場合、コンベアベルトは存在しない。ピッキングされる物体は、静止対象領域上に配置され得る。この場合、単一の2Dカメラまたは単一の3Dカメラを用いて、第1および第2の画像を撮影してもよい。
本発明のある実施形態では、コンベアベルト102は、ピッキングされる物体がその上に配置される回転ディスクまたはプラッタに置き換えられてもよい。この場合、ディスクまたはプラッタの半径方向に沿って、センサアレイ103およびセンサアレイ104が配置される。この場合、第1の領域102Aおよび第2の領域102Bは、ディスクまたはプラッタの区域である。
図1に関して以上に記載した本発明の実施形態は、互いに任意に組み合わせて用いることができる。これらの実施形態の幾つかを共に組み合わせて、本発明のさらなる実施形態を形成することができる。
図2は、本発明のある実施形態における、コンベアベルト上に配置された校正用物体を用いた2つのカメラの校正を図示する。
図2の配置200では、2つのコンベアベルト102上位置において、物体202Aおよび202Bとして図示される校正用物体が存在する。校正用物体は、カメラ105を真っ直ぐに指すように配置されたアーム203を含む。アーム203は、カメラ105内のレンズの平面に対して垂直となるように配置され得る。カメラ105および106はそれぞれ、コンベアベルト102の走行中に、複数の写真を撮る。これらの画像から、カメラ105からの第1の画像およびカメラ106からの第2の画像が選択される。アーム203が第1の画像においてはカメラ105を、第2の画像においてはカメラ106を真っ直ぐに指すように、第1および第2の画像が選択される。通常、カメラ105および106によって撮られた最も良く合致した画像が、第1の画像および第2の画像として選択される。第1の画像および第2の画像の撮影間にコンベアベルト102が走行した距離は、ベルトオフセット210として記録される。ベルトオフセット210は、ベルトステップ数として記録され得る。ベルトステップは、ベルトエンコーダ101から取得することができる。コンベアベルト102が走行中に、ベルトエンコーダ101は、コンベアベルト102上のタイミングマークまたは標識、あるいは、別のタイミングベルトに遭遇した時を示す一連の信号をセンサコントローラ150に提供し得る。タイミングマークまたは標識は、等間隔に配置され得る。ベルトオフセット210を後で用いて、カメラ105に対する領域102Aにおけるコンベアベルト102上の多数の物体がカメラ106に対する領域102Bにおいて同様の位置を得るために、コンベアベルト102が走行しなければならないベルトステップ数を求めることができる。第1および第2の画像を用いて透視補正を行うことにより、第1および第2の画像を共通の座標系に至らせる。透視補正は、コンベアベルト102の平面に対するカメラ105およびカメラ106の位置の差に関する差が補償される座標系への第1および第2の画像の少なくとも一方における点のマッピングである。第1および第2の画像は、第3の透視平面へと変換され得る。第3の透視平面は、コンベアベルト102の平面に対して直交してもよい。
図2に関して以上に記載した本発明の実施形態は、互いに任意に組み合わせて用いることができる。これらの実施形態の幾つかを共に組み合わせて、本発明のさらなる実施形態を形成することができる。
図3は、本発明のある実施形態における、ロボットシステムにおけるピッキング動作後にセンサ測定値を無効にする方法を図示するフローチャートである。
この方法は、図1および2に図示されるようなロボットシステムに適用することができる。
ステップ300において、コンベアベルト上の対象領域から少なくとも1つのセンサ測定値が取得される。
本発明のある実施形態においては、この少なくとも1つのセンサ測定値は、センサ測定値のマトリクスでもよい。
本発明のある実施形態においては、センサ測定値のマトリクスは、コンベアベルトを走行させることによって、静止センサアレイから取得される。コンベアベルトは、各センサから測定値の時系列を得るように走行されてもよい。時系列がマトリクスの列を表し、センサ識別子がマトリクスの行を表してもよく、あるいは、その逆でもよい。
ステップ302では、コンベアベルトの上方に取り付けられたカメラを用いて、対象領域の第1の画像が撮影される。
本発明のある実施形態では、センサアレイが対象領域全体の画像の撮影を妨げないように、カメラがコンベアベルトの上方に取り付けられる。
ステップ304では、コンベアベルトは所定の長さ走行する。
本発明のある実施形態では、この所定の長さは、第2のカメラが対象領域の第2の画像を撮影することにより、透視補正およびスクロールの少なくとも一方を用いて共通の座標系に第1および第2の画像を変換できるように決定される。
ステップ306において、ロボットアームは、対象領域においてピッキング動作を行う。ピッキング動作は、対象領域内の少なくとも1つの物体の位置を乱し得る。
ステップ308において、ピッキング動作後に、第2のカメラを用いて、対象領域の第2の画像を撮影する。
ステップ310において、第1および第2の画像の比較を用いて、対象領域における少なくとも1つの無効領域を決定する。
本発明のある実施形態では、第1および第2の画像の比較を行う前に、一方の画像の他方の画像に対する透視変換およびスクロールの少なくとも一方を用いて、第1および第2の画像を共通の座標系に変換する。
本発明のある実施形態では、第1の画像および第2の画像は、比較のために、複数の領域に分割されてもよい。
本発明のある実施形態では、複数の領域が第1および第2の画像から形成される。複数の領域は、少なくとも部分的に重複してもよく、あるいは、別個のものでもよい。複数の領域は、窓関数を用いて、第1および第2の画像の領域全体から形成されてもよい。この窓関数は、例えば、矩形窓関数でもよく、あるいは、ガウス窓関数でもよい。ある領域は、窓関数値を用いてピクセル値を乗算できるように、画像の領域全体から得ることができる。ゼロ以外のピクセル値または所定の閾値を超えるピクセル値が、この領域に対する画像の領域全体から選択され得る。領域は、例えば30×30ピクセル等の例えば規定の高さおよび幅のピクセルブロックでもよい。複数の領域は、第1および第2の画像において同一ピクセルを有していてもよく、同じサイズを有していてもよい。
本発明のある実施形態では、ガウスカーネルを用いて、第1および第2の画像の少なくとも一方を比較前に平滑化してもよい。平滑化は、第1および第2の画像から形成された複数の領域において行われてもよい。
本発明のある実施形態では、第1の画像および第2の画像は、比較前に、高域フィルタリングが行なわれてもよい。本発明のある実施形態では、第1の画像において最も高い局所分散を持つ領域が決定される。領域Aの局所分散は、例えば、式[数1]を用いて計算され、式中Sは、例えばガウスカーネルである平滑化関数であり、I1は、第1の画像中のピクセルであり、xおよびyは、ピクセル座標であり、nは、領域Aにおけるピクセル数である。
本発明のある実施形態では、第1の画像および第2の画像間の最も低い局所相関を持つ領域を決定する。第1の画像および第2の画像内の領域Aに関する局所相関は、例えば、式[数2]を用いて計算され、式中、Sは、例えばガウスカーネルである平滑化関数であり、I1は、第1の画像中のピクセルであり、I2は、第2の画像中のピクセルであり、xおよびyは、ピクセル座標であり、nは、領域Aにおけるピクセル数である。
本発明のある実施形態では、領域Aごとに、最も高い局所相関を生じさせる、第1の画像における領域Aと、第2の画像における領域Bとの変位dx,dy(ただし、−m<dx<mおよび−m<dy<mであり、mは、例えば0=<m<5である小さい自然数である)を決定する。ある領域Aに関する最も高い局所相関が、その領域Aに関する局所相関であると見なされる。
本発明のある実施形態では、最も高い局所分散および最も低い局所相関を持つ多数の領域が無効として選択され、メモリに記録される。無効領域は、少なくとも1つの後続のピッキング動作において避けられる。
本発明のある実施形態では、比較において、無効領域として選択されるのは、第1の画像および第2の画像間の低相関を持つ領域である。本発明のある実施形態では、比較において、無効領域として選択されるのは、第1の画像および第2の画像間の低相関を持つ領域、および第1の画像および第2の画像の少なくとも一方内の高局所分散を持つ領域である。
本発明のある実施形態では、無効領域の選択基準として同様に使用され得るのは、領域が無効領域として見なされるために超過しなければならない第1の画像内の局所分散の閾値および超過してはならない第1の画像と第2の画像との間の局所相関の閾値である。
本発明のある実施形態では、マトリクスにおける測定値ごとに、それが無効領域に属するか否かが決定される。
ステップ312において、対象領域における少なくとも1つの無効領域が、ロボットアームによる少なくとも1つの後続のピッキング動作において避けられる。その理由は、無効領域において行われたセンサ測定は、もはやピッキング動作後の物体の位置を反映していないからである。
図4は、本発明のある実施形態における、ロボットシステムにおいてピッキング動作後にセンサ測定値を無効にする方法を図示するフローチャートである。ピッキング動作は、失敗する場合があり、物体の移動または物体の位置または形状の変化しかもたらさない場合がある。ピッキング動作は、物体または対象領域の単なる接触である場合がある。
この方法は、図1および2に図示されるようなロボットシステムに適用することができる。
ステップ400において、対象領域から少なくとも2つのセンサ測定値が取得される。対象領域は、静止状態でもよく、あるいは、コンベアベルト上で移動してもよい。
本発明のある実施形態では、少なくとも2つのセンサ測定値は、センサ測定値のマトリクスでもよい。
本発明のある実施形態においては、センサ測定値のマトリクスは、コンベアベルトを走行させることによって、静止センサアレイから取得される。コンベアベルトは、各センサから測定値の時系列を得るように走行されてもよい。時系列がマトリクスの列を表し、センサ識別子がマトリクスの行を表してもよく、あるいは、その逆でもよい。
本発明のある実施形態では、センサ測定値のマトリクスは、静止対象領域上を移動するセンサアレイを用いて形成される。
ステップ402において、対象領域の上方の画像センサを用いて、対象領域の第1の画像が撮影される。対象領域の上方には、少なくとも1つの画像センサが存在する。少なくとも1つの画像センサは、例えば、カメラ、レーザスキャナ、または3Dカメラでもよい。少なくとも1つの画像センサは、厳密に対象領域の上方ではなく、物体またはセンサが他の物体の視界を妨げる障害物となることなく対象領域の画像の撮影を可能にする位置に存在してもよい。
本発明のある実施形態では、センサアレイが対象領域全体の画像の撮影を妨げないように、カメラがコンベアベルトの上方に取り付けられる。
本発明のある実施形態では、少なくとも2つのセンサ測定値の取得ステップおよび第1の画像の撮影ステップ後に、コンベアベルトが所定の長さ走行し得る。
本発明のある実施形態では、この所定の長さは、第2のカメラが対象領域の第2の画像を撮影することにより、透視補正およびスクロールの少なくとも一方を用いて共通の座標系に第1および第2の画像を変換できるように決定される。
ステップ404において、ロボットアームは、対象領域においてピッキング動作を行う。ピッキング動作は、対象領域内の少なくとも1つの物体の位置を乱し得る。
ステップ406において、ピッキング動作後に、対象領域の上方の画像センサを用いて、対象領域の第2の画像が撮影される。対象領域の上方には、少なくとも1つの画像センサが存在する。少なくとも1つの画像センサは、例えば、カメラ、レーザスキャナ、または3Dカメラでもよい。少なくとも1つの画像センサは、厳密に対象領域の上方ではなく、物体またはセンサが他の物体の視界を妨げる障害物となることなく対象領域の画像の撮影を可能にする位置に存在してもよい。
ステップ408において、第1および第2の画像の比較を用いて、対象領域における少なくとも1つの無効領域を決定する。
本発明のある実施形態では、第1および第2の画像の比較を行う前に、一方の画像の他方の画像に対する透視変換およびスクロールの少なくとも一方を用いて、第1および第2の画像を共通の座標系に変換する。
本発明のある実施形態では、複数の領域が第1および第2の画像から形成される。複数の領域は、少なくとも部分的に重複してもよく、あるいは、別個のものでもよい。これらの領域は、第1および第2の画像の領域全体のサブセットでもよい。第1および第2の画像の領域は、同一ピクセルを有し得るが、第1および第2の画像において異なるピクセル値を有していてもよい。複数の領域は、窓関数を用いて、第1および第2の画像の領域全体から形成されてもよい。この窓関数は、例えば、矩形窓関数でもよく、あるいは、ガウス窓関数でもよい。ある領域は、窓関数値を用いてピクセル値を乗算できるように、画像の領域全体から得ることができる。ゼロ以外のピクセル値または所定の閾値を超えるピクセル値が、この領域に対する画像の領域全体から選択され得る。異なるドメインに対して同じ値を生成する窓関数が形成されるように、異なる領域が画像の領域全体から形成されてもよい。領域は、例えば30×30ピクセル等の例えば規定の高さおよび幅のピクセルブロックでもよい。複数の領域は、第1および第2の画像において同一ピクセルを有していてもよく、同じサイズを有していてもよい。
本発明のある実施形態では、ガウスカーネルを用いて、第1および第2の画像の少なくとも一方を比較前に平滑化してもよい。平滑化は、第1および第2の画像から形成された複数の領域において行われてもよい。
本発明のある実施形態では、第1の画像および第2の画像は、比較前に、高域フィルタリングが行なわれてもよい。領域は、例えば30×30ピクセル等の規定の高さおよび幅のピクセルブロックでもよい。
本発明のある実施形態では、第1の画像において最も高い局所分散を持つ領域が決定される。あるいは、局所分散の所定の閾値を超える領域が決定されてもよい。領域Aの局所分散は、例えば、式[数3]を用いて計算され、式中Sは、例えばガウスカーネルである平滑化関数であり、I1は、第1の画像中のピクセルであり、xおよびyは、ピクセル座標であり、nは、領域Aにおけるピクセル数である。
本発明のある実施形態では、第1の画像および第2の画像間の最も低い局所相関を持つ領域を決定する。あるいは、局所相関の所定の閾値を下回る領域が決定されてもよい。第1の画像および第2の画像内の領域Aに関する局所相関は、例えば、式[数4]を用いて計算され、式中、Sは、例えばガウスカーネルである平滑化関数であり、I1は、第1の画像中のピクセルであり、I2は、第2の画像中のピクセルであり、xおよびyは、ピクセル座標であり、nは、領域Aにおけるピクセル数である。
本発明のある実施形態では、領域Aごとに、最も高い局所相関を生じさせる、第1の画像における領域Aと、第2の画像における領域Bとの変位dx,dy(ただし、−m<dx<mおよび−m<dy<mであり、mは、例えば0=<m<5である小さい自然数である)を決定する。ある領域Aに関する最も高い局所相関が、その領域Aに関する局所相関であると見なされる。
本発明のある実施形態では、最も高い局所分散および最も低い局所相関を持つ多数の領域が無効として選択され、メモリに記録される。無効領域は、少なくとも1つの後続のピッキング動作において避けられる。
本発明のある実施形態では、無効領域の選択基準として同様に使用され得るのは、領域が無効領域として見なされるために超過しなければならない第1の画像内の局所分散の閾値および超過してはならない第1の画像と第2の画像との間の局所相関の閾値である。
本発明のある実施形態では、比較において、無効領域として選択されるのは、第1の画像および第2の画像間の低相関を持つ領域である。本発明のある実施形態では、比較において、無効領域として選択されるのは、第1の画像および第2の画像間の低相関を持つ領域、および第1の画像および第2の画像の少なくとも一方内の高局所分散を持つ領域である。
本発明のある実施形態では、マトリクスにおける測定値ごとに、それが無効領域に属するか否かが決定される。
本発明のある実施形態では、対象領域における少なくとも1つの無効領域を決定するための第1および第2の画像の比較は、更に、第1の画像または第2の画像の高さマップの一方を選択すること;選択された高さマップから2つの新しい高さマップ(これらは、最小マップ(min−map)および最大マップ(max−map)と呼ぶことができ、最小マップは、式:min−map=erode(heightmap)−fudgefactorを用いてピクセルに関して計算され、最大マップは、式:max−map=dilate(heightmap)+fudgefactorを用いてピクセルに関して計算される)を生成すること;第2の高さマップh2、すなわち他方の高さマップを、第2の高さマップにおけるピクセルh2(x,y)ごとに、条件:min−map(x,y)<h2(x,y)<max−map(x,y)が満たされているか否かをチェックすることによって、選択された高さマップh1と比較すること;および、少なくとも1つの無効領域に対して条件が満たされていないピクセル(x,y)を選択すること;を含む。dilate関数は、モルフォロジー膨張演算子である。erode関数は、モルフォロジー収縮演算子である。誤差(fudge factor)は、定数またはピクセルに依存した定数アレイである。
本発明のある実施形態では、対象領域における少なくとも1つの無効領域を決定するための第1の画像および第2の画像の比較は、更に、選択された高さマップの上限面を形成すること(ここで、この選択された高さマップは第1の画像または第2の画像の高さマップである);選択された高さマップの下限面を形成すること;および、少なくとも1つの無効領域に対して、他方の高さマップが上限面と下限面との間に当てはまらない領域を選択すること(ここで、他方の高さマップは第1の画像または第2の画像の高さマップである);を含む。
ステップ410において、対象領域における少なくとも1つの無効領域が、ロボットアームによる少なくとも1つの後続のピッキング動作において避けられる。その理由は、無効領域において行われたセンサ測定は、もはやピッキング動作後の物体の位置を反映していないからである。
図4に関して以上に記載した本発明の実施形態は、互いに任意に組み合わせて用いることができる。これらの実施形態の幾つかを共に組み合わせて、本発明のさらなる実施形態を形成することができる。
図5は、本発明のある実施形態における、ロボットシステムにおいて対象領域内で無効画像領域を決定する方法を図示するフローチャートである。
この方法は、図1および2に図示されるようなロボットシステムにおいて、および図3および4に図示されるような方法において適用することができる。
ステップ500において、第1の画像および第2の画像に関して共通の座標系を求める。第1の画像は、ロボットアームを用いて対象領域に対してピッキング動作が行われる前のコンベアベルト上の対象領域を示す。第2の画像は、ピッキング動作が行われた後の、コンベアベルト上の対象領域を示す。本発明のある実施形態では、既知の形状をしたテスト物体を用いて、共通の座標系が求められる。本発明のある実施形態では、テスト物体は、図2に示されるようなものである。
ステップ502において、透視補正を用いて、第1の画像および第2の画像の少なくとも一方を共通の座標系に変換する。第1および第2の画像を第3の透視平面へと変換してもよい。第3の透視平面は、コンベアベルトの平面に対して直交してもよい。
ステップ504において、第1および第2の画像の少なくとも一方に高域フィルタリングが行なわれる。高域フィルタリングを用いることにより、光の条件および反射の差を除去することができる。
ステップ506において、複数の領域が第1および第2の画像から形成される。複数の領域は、少なくとも部分的に重複してもよく、あるいは、別個のものでもよい。複数の領域は、窓関数を用いて、第1および第2の画像の領域全体から形成されてもよい。この窓関数は、例えば、矩形窓関数でもよく、あるいは、ガウス窓関数でもよい。ある領域は、窓関数値を用いてピクセル値を乗算できるように、画像の領域全体から得ることができる。ゼロ以外のピクセル値または所定の閾値を超えるピクセル値が、この領域に対する画像の領域全体から選択され得る。領域は、例えば30×30ピクセル等の例えば規定の高さおよび幅のピクセルブロックでもよい。複数の領域は、第1および第2の画像において同一ピクセルを有していてもよく、同じサイズを有していてもよい。
ステップ508において、第1の画像において最も高い局所分散を持つ領域が決定される。領域Aの局所分散は、例えば、式[数5]を用いて計算され、式中Sは、例えばガウスカーネルである平滑化関数であり、I1は、第1の画像中のピクセルであり、xおよびyは、ピクセル座標であり、nは、領域Aにおけるピクセル数である。
ステップ510において、第1の画像および第2の画像間の最も低い局所相関を持つ領域を決定する。第1の画像および第2の画像内の領域Aに関する局所相関は、例えば、式[数6]を用いて計算され、式中、Sは、例えばガウスカーネルである平滑化関数であり、I1は、第1の画像中のピクセルであり、I2は、第2の画像中のピクセルであり、xおよびyは、ピクセル座標であり、nは、領域Aにおけるピクセル数である。
本発明のある実施形態では、領域Aごとに、最も高い局所相関を生じさせる、第1の画像における領域Aと、第2の画像における領域Bとの変位dx,dy(ただし、−m<dx<mおよび−m<dy<mであり、mは、例えば0=<m<5である小さい自然数である)を決定する。ある領域Aに関する最も高い局所相関が、その領域Aに関する局所相関であると見なされる。
ステップ512において、最も高い局所分散および最も低い局所相関を持つ多数の領域が無効として選択され、メモリに記録される。無効領域は、少なくとも1つの後続のピッキング動作において避けられる。
本発明のある実施形態では、計算量を減らすために、カメラから受信した画像データは、分析に適するように決定された解像度へとダウンサンプルが行われる。
本発明のある実施形態では、照明条件の変化を補償するために、得られたダウンサンプル画像を次に正規化する。この正規化は、ダウンサンプル画像におけるピクセルごとに別個に行ってもよい。
図5に関して以上に記載した本発明の実施形態は、互いに任意に組み合わせて用いることができる。これらの実施形態の幾つかを共に組み合わせて、本発明のさらなる実施形態を形成することができる。
本発明が関係する方法、システム、装置、コンピュータプログラム、またはコンピュータプログラム製品は、図1、図2、図3、および図4に関連して以上に記載した本発明の実施形態の少なくとも1つを含み得る。
本発明の実施形態例は、実施形態例のプロセスを行うことが可能で、例えばインターネット接続、任意の適切な形態(例えば、声、モデム等)の遠隔通信、ワイヤレス通信媒体、1つまたは複数のワイヤレス通信ネットワーク、セルラー通信ネットワーク、第3世代通信ネットワーク、第4世代通信ネットワーク、公衆交換電話網(PSTN)、パケットデータネットワーク(PDN)、インターネット、イントラネット、これらの組み合わせ等を含む、1つまたは複数のインタフェース機構を介して通信可能な、例えば任意の適切なサーバ、ワークステーション、PC、ラップトップコンピュータ、PDA、インターネット家電、携帯用デバイス、携帯電話、ワイヤレス機器、他のデバイス等を含む任意の適切なデバイス内に含まれ得る。
ハードウェア分野の当業者には理解されるように、これらの実施形態例の実施に使用される具体的なハードウェアの多くのバリエーションが可能であるとして、これらの実施形態例が例示目的であることを理解されたい。例えば、これらの実施形態例の構成要素の内の1つまたは複数の機能性は、1つまたは複数のハードウェアデバイスを用いて実施可能である。
これらの実施形態例は、本明細書に記載の様々なプロセスに関係する情報を保存することができる。この情報は、ハードディスク、光ディスク、光磁気ディスク、RAM等の1つまたは複数のメモリに保存することができる。1つまたは複数のデータベースが、本発明の実施形態例の実施に使用される情報を保存することができる。データベースは、本明細書に記載された1つまたは複数のメモリまたはストレージデバイスに含まれるデータ構造(例えば、レコード、テーブル、アレイ、フィールド、グラフ、階層、リスト等)を用いて編成可能である。これらの実施形態例に関して記載したプロセスは、1つまたは複数のデータベースにおいて、これらの実施形態例のデバイスおよびサブシステムのプロセスによって収集および/または生成されたデータを保存するための適切なデータ構造を含み得る。
これらの実施形態例の全てまたは一部は、特定用途向け集積回路を準備することによって、または、電気分野の当業者には理解されるように、従来の構成要素回路の適切なネットワークの相互接続によって実施可能である。
以上のように、これらの実施形態例の構成要素には、本発明の教示に従い、本明細書に記載のデータ構造、テーブル、レコード、および/または他のデータを保持するためのコンピュータ可読媒体またはメモリが含まれ得る。コンピュータ可読媒体には、プロセッサに対する実行用の命令の提供に関与する任意の適切な媒体が含まれ得る。このような媒体は、限定されることはないが、不揮発性媒体、揮発性媒体、伝送媒体等を含む多くの形を取り得る。不揮発性媒体には、例えば、光または磁気ディスク、光磁気ディスク等が含まれ得る。揮発性媒体には、ダイナミックメモリ等が含まれ得る。伝送媒体には、同軸ケーブル、銅線、光ファイバー等が含まれ得る。伝送媒体は、無線周波数(RF)通信、赤外線(IR)データ通信等の間に生成されるもの等の、音波、光波、電磁波等の形を取ることもできる。コンピュータ可読媒体の一般的形態には、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の適切な磁気媒体、CD−ROM、CDRW、DVD、他の適切な光媒体、パンチカード、紙テープ、光学式マークシート、孔または他の光学的に認識可能な印のパターンを持つ他の適切な物理媒体、RAM、PROM、EPROM、フラッシュEPROM、他の適切なメモリチップまたはカートリッジ、搬送波、またはコンピュータが読み取り可能な他の適切な媒体が含まれ得る。
本発明を多数の実施形態例および実施に関連して説明したが、本発明は、そのように限定されるのではなく、予想される請求項の範囲に入る様々な変更および同等の構成を包含する。
技術の進歩に伴って、本発明の基本的考えが様々な方法で実施可能であることは当業者には明らかである。従って、本発明およびその実施形態は、上記の例に限定されず、むしろ、これらは、請求項の範囲内で変化し得る。