(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-02
(45)【発行日】2024-02-13
(54)【発明の名称】ロボットアーム吸引制御機構を有するロボットシステムおよびその動作方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20240205BHJP
B25J 15/06 20060101ALI20240205BHJP
【FI】
B25J13/00 Z
B25J15/06 M
【外国語出願】
(21)【出願番号】P 2019194169
(22)【出願日】2019-10-25
(62)【分割の表示】P 2019117710の分割
【原出願日】2019-06-25
【審査請求日】2022-06-17
(32)【優先日】2019-05-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】デアンコウ,ロセン
(72)【発明者】
【氏名】カヌニコフ,デニス
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2016-132521(JP,A)
【文献】特開2014-161965(JP,A)
【文献】特開2019-063984(JP,A)
【文献】特開2019-051575(JP,A)
【文献】特表2017-520417(JP,A)
【文献】特開2014-210311(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットシステムの動作方法であって、
対象オブジェクトに関連したセンサ読取り値を受信することと、
前記対象オブジェクトに対して作業を実行するためのベースプランを生成することであって、前記ベースプランを生成することは、前記対象オブジェクトを
吸引によりグリップするための、グリップ点と、前記グリップ点に関連した1つまたは複数のグリップパターンとを決定することを含むことと、
前記作業を実行するための前記ベースプランをグリップパターンランクに従って実施して、前記対象オブジェクトに対する確立された
吸引によるグリップをグリップパターン箇所で生成することと、
前記確立されたグリップを測定することと、
前記確立されたグリップを力閾値と比較することと、
前記確立されたグリップが前記力閾値を下回ったことに基づいて、前記対象オブジェクトを再グリップすることと、を含む、方法。
【請求項2】
反復カウンタが反復閾値未満であることに基づいて、前記対象オブジェクトを再グリップすること、をさらに含む、請求項1に記載の方法。
【請求項3】
反復カウンタが反復閾値を超えたことに基づいて、エラーを生成すること、をさらに含む、請求項1又は2に記載の方法。
【請求項4】
前記対象オブジェクトの質量中心に基づいて、前記グリップ点を識別すること、をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記対象オブジェクトの質量中心と、前記対象オブジェクトの表面外形、前記対象オブジェクトの表面の厚さ、前記対象オブジェクトの表面の組成、またはそれらの組み合わせとに基づいて、前記グリップ点を識別すること、をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項6】
吸引カップの幾何学的中心および重み係数に基づいて、前記グリップパターン箇所を決定すること、をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記対象オブジェクトを前記グリップパターン箇所に位置合わせすることに基づいて、前記グリップパターンランクを生成すること、をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ベースプランを実施する間に前記確立されたグリップを監視することと、
前記確立されたグリップが前記力閾値を下回ることに基づいて、アームユニットの速度および加速度を調整するための命令を生成することと、をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
ロボットシステムであって、
対象オブジェクトに関連したセンサ読取り値を受信するように構成された通信ユニットと、
前記通信ユニットに接続された制御ユニットと、を備え、
前記制御ユニットは、
前記対象オブジェクトに対して作業を実行するためのベースプランを生成するように構成され、前記ベースプランを生成することは、前記対象オブジェクトを
吸引によりグリップするための、グリップ点と、前記グリップ点に関連した1つまたは複数のグリップパターンとを決定することを含み、
前記制御ユニットは、
前記作業を実行するための前記ベースプランをグリップパターンランクに従って実施して、前記対象オブジェクトに対する確立された
吸引によるグリップをグリップパターン箇所で生成し、
前記確立されたグリップを測定し、
前記確立されたグリップを力閾値と比較し、かつ、
前記確立されたグリップが前記力閾値を下回ったことに基づいて、前記対象オブジェクトを再グリップするように構成される、ロボットシステム。
【請求項10】
前記制御ユニットは、さらに、反復カウンタが反復閾値未満であることに基づいて、前記対象オブジェクトを再グリップするように構成される、請求項9に記載のロボットシステム。
【請求項11】
前記制御ユニットは、さらに、反復カウンタが反復閾値を超えたことに基づいて、エラーを生成するように構成される、請求項9又は10に記載のロボットシステム。
【請求項12】
前記制御ユニットは、さらに、前記対象オブジェクトの質量中心に基づいて、前記グリップ点を識別するように構成される、請求項9から11のいずれか一項に記載のロボットシステム。
【請求項13】
前記制御ユニットは、さらに、前記対象オブジェクトの質量中心と、前記対象オブジェクトの表面外形、前記対象オブジェクトの表面の厚さ、前記対象オブジェクトの前記表面の組成、またはそれらの組み合わせとに基づいて、前記グリップ点を識別するように構成される、請求項9から11のいずれか一項に記載のロボットシステム。
【請求項14】
前記制御ユニットは、さらに、吸引カップの幾何学的中心および重み係数に基づいて、前記グリップパターン箇所を決定するように構成される、請求項9から13のいずれか一項に記載のロボットシステム。
【請求項15】
前記制御ユニットは、さらに、前記対象オブジェクトを前記グリップパターン箇所に位置合わせすることに基づいて、前記グリップパターンランクを生成するように構成される、請求項9から14のいずれか一項に記載のロボットシステム。
【請求項16】
ロボットシステムのための命令を含む非一時的なコンピュータ可読媒体であって、
前記命令は、
対象オブジェクトに関連したセンサ読取り値を受信することと、
前記対象オブジェクトに対して作業を実行するためのベースプランを生成することであって、前記対象オブジェクトを
吸引によりグリップするための、前記ベースプランを生成することは、グリップ点と、前記グリップ点に関連した1つまたは複数のグリップパターンとを決定することを含むことと、
前記作業を実行するための前記ベースプランをグリップパターンランクに従って実施して、前記対象オブジェクトに対する確立された
吸引によるグリップをグリップパターン箇所で生成することと、
前記確立されたグリップを測定することと、
前記確立されたグリップを力閾値と比較することと、
前記確立されたグリップが前記力閾値を下回ったことに基づいて、前記対象オブジェクトを再グリップすることと、を含む、非一時的なコンピュータ可読媒体。
【請求項17】
前記対象オブジェクトの質量中心に基づいて、前記グリップ点を識別することをさらに含む命令を有する、請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記対象オブジェクトの質量中心と、前記対象オブジェクトの表面外形、前記対象オブジェクトの表面の厚さ、前記対象オブジェクトの前記表面の組成、またはそれらの組み合わせとに基づいて、前記グリップ点を識別することをさらに含む命令を有する、請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項19】
吸引カップの幾何学的中心および重み係数に基づいて、前記グリップパターン箇所を決定することをさらに含む命令を有する、請求項16から18のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記対象オブジェクトを前記グリップパターン箇所に位置合わせすることに基づいて、前記グリップパターンランクを生成することをさらに含む命令を有する、請求項16から19のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本発明の実施形態は、概して、ロボットシステムに関し、より具体的には、ロボットアーム吸引制御機構を有するロボットシステムに関する。
【背景技術】
【0002】
[0002] ロボットは、その絶えず向上する性能および低下するコストにより、多くの分野で広範囲にわたり使用されている。例えば、ロボットは、オブジェクトをある場所から別の場所へと操縦または移送することを含む多様な作業を実行するために使用することができる。このような作業は、特に、製造、組立、パッキング、パッケージング、倉庫業務および輸送において有用である。これらの作業の実行にあたって、ロボットは、人間の動作を再現することができ、それにより、人間が危険な作業または反復的な作業を行うことが必要になるような人間の関与を置き換えたり、低減させたりする。しかし、技術的な進歩に関わらず、ロボットは、より複雑な作業を実行するために必要な人間の感受性、適応性および技巧性を再現するのに必要な洗練さが未だ欠如している。例えば、ロボットハンドまたはグリッパは、しばしば、接触センサの感度不足または力制御の不十分な粒度(granularity)のため、比較的柔らかい表面または不規則な表面を持つオブジェクトを把持することが困難である。
【0003】
[0003] したがって、オブジェクトをグリップし、取り扱うためのロボットの性能を制御および管理するための技術には改善の余地がある。増大し続ける商業上の競争圧力と、高まりつつある消費者の期待および市場における有意義な商品差別化の機会の減少とを併せて考慮すると、これらの問題に対する答えを見出すことがますます重要になっている。さらに、コストを削減し、効率および性能を改善し、かつ競争圧力に応じることの必要性から、これらの問題に対する答えを見つけることの重大な必要性が一層急務となっている。
【0004】
[0004] これらの問題の解決策が長期にわたり模索されてきたが、従来の開発は解決策を教示あるいは示唆するものではなかったため、当業者は長い間これらの問題の解決に至っていない。
【発明の概要】
【0005】
[0005] 本発明の一実施形態は、ロボットシステムの動作方法を提供し、この動作方法は、対象オブジェクトに関連したセンサ読取り値を受信することと、対象オブジェクトに対して作業を実行するためのベースプランを生成することであって、ベースプランを生成することは、対象オブジェクトをグリップするための、グリップ点とグリップ点に関連した1つまたは複数のグリップパターンとを、指定エリア、作業場所、および別の対象オブジェクトに対する前記グリップ点の場所に基づいて、決定することを含むことと、作動ユニットおよび1つまたは複数の吸引グリッパをグリップパターンランクに従って動作させることにより、作業を実行するためのベースプランを実施して、対象オブジェクトに対する確立されたグリップを生成することであって、確立されたグリップは、グリップパターンに関連したグリップパターン箇所にあることと、確立されたグリップを測定することと、確立されたグリップを力閾値と比較することと、確立されたグリップが閾値を下回ったことに基づいて、対象オブジェクトを再グリップすることと、を含む。
【0006】
[0006] 本発明の一実施形態は、ロボットシステムを提供し、このロボットシステムは、対象オブジェクトに関連したセンサ読取り値を受信するように構成された通信ユニットと、通信ユニットに接続された制御ユニットと、を備え、制御ユニットは、対象オブジェクトに対して作業を実行するためのベースプランを生成するように構成され、ベースプランを生成することは、対象オブジェクトをグリップするための、グリップ点と、グリップ点に関連した1つまたは複数のグリップパターンとを、指定エリア、作業場所、および別の対象オブジェクトに対する前記グリップ点の場所に基づいて決定することを含み、制御ユニットは、作動ユニットおよび1つまたは複数の吸引グリッパをグリップパターンランクに従って動作させることにより、作業を実行するためのベースプランを実施して、対象オブジェクトに対する確立されたグリップを生成するように構成され、確立されたグリップは、グリップパターンに関連したグリップパターン箇所にあり、制御ユニットは、確立されたグリップを測定し、確立されたグリップを力閾値と比較し、かつ、確立されたグリップが前記閾値を下回ったことに基づいて、前記対象オブジェクトを再グリップするように構成される。
【0007】
[0007] 本発明の一実施形態は、ロボットシステムのための命令を含む非一時的なコンピュータ可読媒体を提供し、対象オブジェクトに関連したセンサ読取り値を受信することと、対象オブジェクトに対して作業を実行するためのベースプランを生成することであって、ベースプランを生成することは、対象オブジェクトをグリップするための、グリップ点と、グリップ点に関連した1つまたは複数のグリップパターンとを、指定エリア、作業場所、および別の対象オブジェクトに対するグリップ点の場所に基づいて決定することを含むことと、作動ユニットおよび1つまたは複数の吸引グリッパをグリップパターンランクに従って動作させることにより、作業を実行するためのベースプランを実施して、対象オブジェクトに対する確立されたグリップを生成することであって、確立されたグリップは、グリップパターンに関連したグリップパターン箇所にあることと、確立されたグリップを測定することと、確立されたグリップを力閾値と比較することと、確立されたグリップが閾値を下回ったことに基づいて、対象オブジェクトを再グリップすることと、を含む、非一時的なコンピュータ可読媒体。
【0008】
[0008] 本発明のある実施形態は、上述した工程または要素に加えて、あるいは上述した工程または要素の代わりに、他の工程または要素を有する。それらの工程または要素は、添付の図面を参照して、以下の詳細な説明を読むことにより、当業者に明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】[0009] ロボットアーム吸引制御機構を有するロボットシステムが動作可能な例示的環境である。
【
図2】[0010] ロボットシステムの構成要素の例示的なブロック図である。
【
図3】[0011] 本発明の1つまたは複数の実施形態に係るアームユニットの例である。
【
図4】[0012] 本発明の一実施形態におけるロボットシステムの動作ステージの例示的な制御フローである。
【
図5】[0013] 本発明の一実施形態における吸引制御パターン生成機構の例示的な制御フローである。
【
図6】[0014] 本発明の1つまたは複数の実施形態に従ってグリップ点をグリップパターンにマッピングする例である。
【
図7】[0015] 本発明の一実施形態におけるロボットシステムのオンライン状態の例示的な制御フローである。
【
図8】[0016] 本発明の一実施形態におけるロボットシステムの動作方法のフローチャートである。
【発明を実施するための形態】
【0010】
[0017] 以下の実施形態は、当業者が本発明を成し、使用することができるように十分に詳細に記載されている。当然のことながら、本開示に基づき、他の実施形態が明らかであり、本発明の実施形態の範囲から逸脱しない限り、システム上、プロセス上、または機械上の変更を加えてもよい。
【0011】
[0018] 以下の説明において、本発明に関する完全な理解与えるために、数々の具体的詳細が示される。しかし、本発明が、これらの具体的詳細の一部を含まなくとも実施できることは明らかであろう。本発明の実施形態を不明確にすることを避けるため、一部の周知の構造、回路、システム構成、およびプロセス工程の詳細な開示は省略される。
【0012】
[0019] システムおよび方法の実施形態を示す図面は、半概略的であり、縮尺通りではない。一部の寸法は、明確な提示を目的とし、図面において誇張して示されている。同様に、図面内の一部の図は、説明を容易にするためのものであり、典型的には同様の向きを示しているが、この図面における描写は大部分が恣意的なものである。一般的には、本発明は任意の向きで動作可能である。実施形態には、説明の便宜上、一実施形態、第2実施形態等というように番号が付されているが、その他の意義を有すること、または本発明の実施形態に限定を加えることを意図したものではない。
【0013】
[0020] 本明細書で使用される「モジュール」または「ユニット」という用語は、その用語が使用される文脈に応じて、本発明の実施形態におけるソフトウェア、ハードウェア、機械的機構、またはそれらの組合せを含み得る。また、例えば、ソフトウェアは、機械コード、ファームウェア、埋め込みコード、またはアプリケーションソフトウェアであり得る。また、例えば、ハードウェアは、回路、プロセッサ、専用コンピュータ、集積回路、集積回路コア、圧力センサ、慣性センサ、微小電子機械システム(MEMS)、受動素子、またはそれらの組み合わせであってよい。さらにまた、機械的機構には、アクチュエータ、モータ、アーム、継手、ハンドル、エンドエフェクタ、ガイド、ミラー、アンカベース、真空ライン、真空ジェネレータ、光源ライン、またはストッパが含まれ得る。さらに、「モジュール」または「ユニット」が後述のシステムクレームの欄に記載される場合、そのような「モジュール」または「ユニット」は、システムクレームの目的および範囲において、ハードウェア回路を含むものとみなされる。
【0014】
[0021] 以下の実施形態の説明において、モジュールまたはユニットは、説明または図示されるように互いに対して接続または取付けられ得る。このような接続または取付けは、接続または取付けられるモジュールまたはユニット間に介在物を含む間接的なものであってもよく、あるいは、介在物を含まない直接的なものであってもよい。また、このような接続または取付けは、モジュールまたはユニット間において、物理的接触によるものであってもよく、あるいは通信によるものであってもよい。
【0015】
[0022] ここで、
図1を参照すると、ロボットアーム吸引制御機構を有するロボットシステム100が動作可能な例示的環境が示されている。ロボットシステム100は、1つまたは複数の作業118を実行するように構成されたロボットまたはロボットデバイスなどの1つまたは複数の構造またはユニットを含み得る。ロボットアーム吸引制御機構の態様は、多様な構造によって実現または実施され得る。一実施形態において、ロボットシステム100は、倉庫、流通センター、または出荷ハブ内で、アームユニット102、移送ユニット104、搬送ユニット106、荷積みユニット108、またはそれらの組み合わせを備えることができる。
【0016】
[0023] ロボットシステム100またはロボットシステム100の一部は、作業118を実行するように構成され得る。作業118は、アームユニット102、移送ユニット104、搬送ユニット106、荷積みユニット108、またはそれらの組み合わせに対する物理的変換のためにロボットシステム100によって実行または実施される機能である。例えば、作業118は、アームユニット102、移送ユニット104、搬送ユニット106、荷積みユニット108、またはそれらの組み合わせに対する物理的変換に基づいて、コンテナ、大箱、ケージ、バスケット、棚、プラットフォーム、パレット、またはコンベアベルトなどの場所から、別の場所へと対象オブジェクト112を移動することを含み得る。複数の作業118を順次組み合わせて、対象オブジェクト112の荷積みまたは荷降ろしを含む目標を達成する動作を実行することができる。
【0017】
[0024] 対象オブジェクト112は、ロボットシステム100によって取り扱われることになる、または取り扱われている物品である。例えば、対象オブジェクト112は、箱、ケース、剛体、半剛体、可撓性表面を有する物品、またはそれらの組み合わせを含み得る。別の例として、作業118は、ロボットシステム100に、対象オブジェクト112を、倉庫内に保管するために、トラック、トレーラ、バン、または列車車両等の車両に対して荷積みまたは荷降ろしさせたり、あるいは、出荷のために、保管場所から対象オブジェクト112を荷降ろしして車両へと荷積みさせたりすることができる。ロボットシステム100の複数の部分は、ロボットシステム100の1つまたは複数の構成要素を動作させるなどの一連のアクションを実行して、作業118を実行するように構成され得る。一例として、ロボットシステム100の複数の部分は、互いに対して独立的に、個別に、または別々に構成されることができる。また、一例として、ロボットシステム100の複数の部分は、まとまってグループとして、連係した態様、連続した態様、またはそれらの組み合わせの態様で構成されてもよい。
図1は、対象オブジェクト112を取り扱う際に、ロボットシステム100の多様なユニットによって実行され得る可能な機能および動作の例を示しており、環境および条件は、以下に記載するものとは異なる場合もあることが理解されよう。
【0018】
[0025] アームユニット102は、対象オブジェクト112を取り扱うように構成されたロボットアームであり得る。アームユニット102は、対象オブジェクト112をある場所から別の場所へと移送するように構成された車両積荷降ろしロボットして使用され得る。一例として、アームユニット102は、対象オブジェクト112をあるコンテナから別のコンテナへと移送するように構成されたピースピッキングロボットであってよい。別の例では、アームユニット102は、例えば、パレタイズロボットであってもよい。一例として、アームユニット102は、トラックまたはコンテナといったキャリア内のある場所から、コンベアベルト上の場所へと対象オブジェクト112を移送することができる。また、例えば、アームユニット102を使用して、キャリア上に対象オブジェクト112を荷積みすることができる。アームユニット102の更なる詳細については、以下で説明する。
【0019】
[0026] 移送ユニット104は、対象オブジェクト112をある場所から別の場所(例えば、コンベアベルト)へと移動させる機械式取り扱い装置の固定部分であり得る。一例として、移送ユニット104は、対象オブジェクト112を搬送ユニット106上のパレットに荷積みするなどのために、コンベアベルト上の対象オブジェクト112を搬送ユニット106上のある場所へと移動させることができる。
【0020】
[0027] 搬送ユニット106は、対象オブジェクト112を移送ユニット104に関連するエリアから荷積みユニット108に関連するエリアまで搬送するために使用される可動ロボットであり得る。搬送ユニット106は、例えば、搬送ロボット、配達ドローン、配達ロボット、フォークリフト、またはそれらの組み合わせであってよい。
【0021】
[0028] 荷積みユニット108は、対象オブジェクト112を保持するパレットを、搬送ユニット106から、1つまたは複数の棚上の場所などのさらに別の保管場所へと移動させるなどして、対象オブジェクト112を移送するように構成され得る。荷積みユニット108は、例えば、貨物エレベータ、倉庫エレベータ、カーゴリフト、またはそれらの組み合わせであり得る。
【0022】
[0029] さらなる例として、作業118は、1つまたは複数の指定エリア114から作業場所116へと対象オブジェクト112を移送することを含む。例えば、指定エリア114には、ケージ、大箱、箱、パレット、またはそれらの組み合わせ等の、対象オブジェクト112を保管するための入れ物を含み得る。指定エリア114は、数多くの構成および形態を含み得る。例えば、指定エリア114は、パレット、棚、またはコンベアベルトといった、対象オブジェクト112をその上に配置またはスタックすることが可能な、壁付きまたは壁無しのプラットフォームであり得る。別の例として、指定エリア114は、大箱、ケージ、またはバスケットといった、対象オブジェクト112をその内部に配置することが可能な、壁付きまたは蓋付きの部分的または完全に囲まれた入れ物であってもよい。いくつかの実施形態において、部分的または完全に囲まれた入れ物である指定エリア114の壁は、透明であるか、または多様なサイズの開口もしくは間隙を有し、その内部に収容された対象オブジェクト112の部分がその壁を通して視認可能あるいは部分的に視認可能であってもよい。作業場所116は、対象オブジェクト112が配置されて作業118を実行させるエリア、または、対象オブジェクト112に対して作業118が行われる終了地点または開始地点として指定されたエリアであり得る。
【0023】
[0030] 例示のために、ロボットシステム100は、出荷センターの文脈で説明されるが、ロボットシステム100は、他の環境において、あるいは他の目的のために作業118を実行するように構成され得ることを理解されたい。例として、ロボットシステム100は、製造、組立、パッケージング、ヘルスケア、または他のタイプのオートメーションを目的とした環境で動作することができる。また、ロボットシステム100は、
図1には示されていない、マニピュレータ、サービスロボット、モジュール式ロボットなどの、他のユニットを含むことができることも理解されたい。例えば、いくつかの実施形態では、ロボットシステム100は、ケージカートまたはパレットから、コンベアまたは他のパレットに対象オブジェクト112を移送するためのデパレタイズユニット、あるコンテナから別のコンテナに対象オブジェクト112を移送するためのコンテナ切替えユニット、対象オブジェクト112をラッピングするためのパッケージングユニット、対象オブジェクト112の1つまたは複数の特徴に応じて対象オブジェクト112をグループ化するための仕分けユニット、対象オブジェクト112の1つまたは複数の特徴に応じて様々に対象オブジェクト112を操縦するため(例えば、仕分け、グループ化、または移送のため)のピースピッキングユニット、またはそれらの組合せを含むことができる。
【0024】
[0031] 次に、
図2を参照すると、ロボットシステム100の構成要素の例示的なブロック図が示されている。一実施形態において、ロボットシステム100は、制御ユニット202、ストレージユニット206、通信ユニット212、ユーザインタフェース216、作動ユニット220、およびセンサユニット230を備えることができる。一実施形態では、これら構成要素の1つまたは複数は、エンクロージャ234内で組み合わされていてもよい。
【0025】
[0032] エンクロージャ234は、ロボットシステム100の一部が収容された収容部であり得る。エンクロージャ234は、内部に収容されたロボットシステム100の部分を、エンクロージャ234の外部にある他の部分から分離することができる。例えば、エンクロージャ234は、ケース、シャーシ、箱、コンソール、コンピュータタワー、コンピュータマザーボードであってよい。一実施形態において、例えば、制御ユニット202、ストレージユニット206、通信ユニット212、またはそれらの組み合わせは、エンクロージャ234内に収容され得る。別の実施形態では、制御ユニット202、ストレージユニット206、通信ユニット212、またはそれらの組み合わせはエンクロージャ234内に収容され、ユーザインタフェース216がエンクロージャ234の外部からアクセス可能であってもよい。
【0026】
[0033] ロボットシステム100の1つまたは複数の構成要素がエンクロージャ234内またはエンクロージャ234上に収容され得る一方、ロボットシステム100の他の構成要素はエンクロージャ234の外部にあってもよい。例えば、一実施形態では、ユーザインタフェース216、作動ユニット220、センサユニット230、またはそれらの組み合わせがエンクロージャ234の外部にある一方、制御ユニット202、ストレージユニット206、および通信ユニット212はエンクロージャ234内に収容され得る。上述したものは、単に、エンクロージャ234内またはエンクロージャ234上に収容され得る構成要素の例であって、限定を意図したものではない。他の構成要素の組み合わせがエンクロージャ234内に収容されてもよい。
【0027】
[0034] 制御ユニット202は、ソフトウェア210を実行して、ロボットシステム100の知能を提供することができる。制御ユニット202は、ロボットシステム100の他の機能を目的としてソフトウェア210を実行することもできる。制御ユニット202は、多様な様式で実施され得る。例えば、制御ユニット202は、プロセッサ、特定用途向け集積回路(ASIC)、組み込みプロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェア有限状態機械(FSM)、デジタル信号プロセッサ(DSP)、またはそれらの組み合わせであってよい。
【0028】
[0035] 制御ユニット202は、制御インタフェース204を含み得る。制御インタフェース204は、制御ユニット202とロボットシステム100の他の機能ユニットとの間の通信に使用することができる。制御インタフェース204は、また、ロボットシステム100の外部との通信にも使用することができる。制御インタフェース204は、他の機能ユニットまたは外部の送信元から情報を受信したり、あるいは、他の機能ユニットまたは外部の送信先に向けて情報を送信したりすることができる。外部の送信元および外部の送信先は、ロボットシステム100の外部にある送信元および送信先を指している。
【0029】
[0036] 制御インタフェース204は、この制御インタフェース204のインタフェース対象となる機能ユニットまたは外部のユニットによって、異なる様式で実施され、また、異なる実装形態を含むことができる。例えば、制御インタフェース204は、圧力センサ、慣性センサ、微小電子機械システム(MEMS)、光学回路、導波管、無線回路、有線回路、アプリケーションプログラムインタフェース、またはそれらの組み合わせにより実施され得る。
【0030】
[0037] ストレージユニット206は、ソフトウェア210、マスタデータ226、オブジェクト追跡データ228、構成データ248、またはそれらの組み合わせを記憶し得る。例示を目的として、ストレージユニット206は単一の要素として図示されているが、ストレージユニット206は分散された複数のストレージ要素であってもよいことを理解されたい。また、例示のために、単一の階層ストレージシステムとしてストレージユニット206を有するロボットシステム100が図示されているが、ロボットシステム100は、異なる構成のストレージユニット206を有してもよいことを理解されたい。例えば、ストレージユニット206は、異なる階層のキャッシング、メインメモリ、回転媒体、またはオフラインストレージを含むメモリ階層システムを形成する異なるストレージ技術によって形成されてもよい。
【0031】
[0038] ストレージユニット206は、揮発性メモリ、不揮発性メモリ、内部メモリ、外部メモリ、またはそれらの組み合わせであり得る。例えば、ストレージユニット206は、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、ディスクストレージなどの不揮発性ストレージ、または、静的ランダムアクセスメモリ(SRAM)などの揮発性ストレージであり得る。
【0032】
[0039] ストレージユニット206は、ストレージインタフェース208を備え得る。ストレージインタフェース208は、ストレージユニット206とロボットシステム100の他の機能ユニットとの間の通信に使用され得る。ストレージインタフェース208は、ロボットシステム100の外部との通信にも使用され得る。ストレージインタフェース208は、ロボットシステム100の他の機能ユニットまたは外部の送信元からの情報を受信したり、あるいは、ロボットシステム100の他の機能ユニットまたは外部の送信先に向けて情報を送信したりすることができる。外部の送信元および外部の送信先は、ロボットシステム100の外部にある送信元および送信先を指している。
【0033】
[0040] ストレージインタフェース208は、ストレージユニット206のインタフェース対象となる機能ユニットまたは外部のユニットによって異なる実装形態を含むことができる。ストレージインタフェース208は、制御インタフェース204の実装形態と同様の技術および手法で実施され得る。
【0034】
[0041] 一実施形態において、ストレージユニット206は、処理結果、データ、閾値、またはそれらの組み合わせをさらに記憶し、アクセスを提供するために使用することができる。処理結果、データ、閾値、またはそれらの組み合わせは、マスタデータ226を構成し得る。マスタデータ226は、例えば、箱、箱タイプ、ケース、ケースタイプ、製品、またはそれらの組み合わせといった
図1の対象オブジェクト112の説明を含み得る。一実施形態では、マスタデータ226は、対象オブジェクト112の寸法、形状(例えば、対象オブジェクト112の潜在的な向きに関するテンプレートまたは多様な向きの対象オブジェクト112を認識するためのコンピュータ生成モデル)、配色、画像、識別情報(例えば、バーコード、クイックレスポンス(QR)コード(登録商標)、ロゴ)、予測される寸法、予測される重量、またはそれらの組み合わせを含み得る。一実施形態において、マスタデータ226は、さらに、対象オブジェクト112上の質量中心236の場所や、1つまたは複数のアクション、操縦、またはそれらの組み合わせに対応する、予測されるセンサ測定値(例えば、力、トルク、圧力、または接触測定値)といった、対象オブジェクト112の操縦関連情報を含んでもよい。
【0035】
[0042] 一実施形態において、ストレージユニット206は、さらに、構成データ248を記憶し得る。構成データ248は、ロボットシステム100の1つまたは複数の構成要素またはロボットシステム100の外部の1つまたは複数の構成要素を動作させるのに必要な、ロボットシステム100の1つまたは複数の構成要素または1つまたは複数の外部の構成要素に関するパラメータおよび初期設定情報を指す。例えば、このような構成情報には、どの構成要素をONおよび/またはOFFにするか、いつ構成要素を作動させるか(例えば、いつ1つまたは複数の構成要素をONおよび/またはOFFにするか)に関する情報や、あるいは、他の設定変数、閾値、または1つまたは複数の構成要素を動作させるのに必要な動作データを含み得る。一実施形態において、構成データ248は、構成ファイル250内に記憶され得る。構成ファイル250は、パラメータおよび初期設定情報を含むテキストファイルなどのコンピュータファイルを指す。
【0036】
[0043] 一実施形態において、ストレージユニット206は、さらにオブジェクト追跡データ228を記憶することができる。オブジェクト追跡データ228は、対象オブジェクト112の場所、位置、状態、またはそれらの組み合わせを示すデータであり得る。オブジェクト追跡データ228は、スキャンまたは操縦された対象オブジェクト112のログを含み得る。いくつかの実施形態では、オブジェクト追跡データ228は、1つまたは複数の場所(例えば、指定されたピックアップ位置もしくはドロップ位置、またはコンベアベルト)における対象オブジェクト112の撮像データ(例えば、写真、ポイントクラウド/深度図、ライブビデオフィード)が含まれ得る。いくつかの実施形態では、オブジェクト追跡データ228には、1つまたは複数の場所における対象オブジェクト112の位置および向きが含まれ得る。
【0037】
[0044] 通信ユニット212は、ロボットシステム100の機能ユニット間の通信、外部のデバイス間の通信、それらの組み合わせを含む、ロボットシステム100へおよびロボットシステム100からの通信を可能にし得る。例えば、通信ユニット212は、ロボットシステム100が外部のコンピュータ、外部のデータベース、外部のマシン、外部の周辺デバイス、またはそれらの組み合わせといった、外部のデバイスと、通信パス238を介して通信することを可能にし得る。
【0038】
[0045] 通信パス238は、多様なネットワークおよびネットワークトポロジに広がり、これらネットワークおよびネットワークトポロジを表し得る。例えば、通信パス238は、無線通信、有線通信、光通信、超音波通信、またはそれらの組み合わせを含み得る。例えば、衛星通信、セルラ通信、Bluetooth(登録商標)、赤外線データ協会標準、(IrDA)(登録商標)、ワイヤレスフィデリティ(WiFi)(登録商標)、およびワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ(WiMAX)(登録商標)は、通信パス238に含まれ得る無線通信の例である。ケーブル、イーサネット、デジタル加入者線(DSL)、光ファイバー線、ファイバー・ツー・ザ・ホーム線(FTTH)、従来の電話サービス(POTS)は、通信パス238に含まれ得る有線通信の例である。さらに、通信パス238は、多数の通信トポロジおよび距離に亘り得る。例えば、通信パス238は、直接接続、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、またはそれらの組み合わせを含み得る。制御ユニット202は、さらに、通信ユニット212を介した通信パス238との相互作用のためにソフトウェア210を実行することができる。
【0039】
[0046] 通信ユニット212は、ロボットシステム100が通信パス238の一部として機能すること可能にし、かつ、通信パス238へのエンドポイントまたは端末装置に限定されない、通信ハブとしても機能することができる。通信ユニット212は、通信パス238との相互作用のために、マイクロエレクトロニクスまたはアンテナなどの能動部品および受動部品を備え得る。
【0040】
[0047] 通信ユニット212は、通信インタフェース214を備え得る。通信インタフェース214は、通信ユニット212とロボットシステム100の他の機能ユニットとの間の通信のために使用することができる。通信インタフェース214は、ロボットシステム100の他の機能ユニットまたは外部の送信元から情報を受信したり、あるいは、ロボットシステム100の他の機能ユニットまたは外部の送信先に向けて情報を送信したりすることができる。通信インタフェース214は、通信ユニット212のインタフェース対象となる機能ユニットによって異なる実装形態を含むことができる。通信インタフェース214は、制御インタフェース204の実装形態と同様の技術および手法で実施され得る。
【0041】
[0048] 制御ユニット202は、ユーザインタフェース216を動作させて、ロボットシステム100によって生成された情報を提示または受信することができる。ユーザインタフェース216は、入力デバイスおよび出力デバイスを含み得る。ユーザインタフェース216の入力デバイスの例には、データおよび通信の入力を提供するためのキーパッド、タッチパッド、ソフトキー、キーボード、マイクロフォン、遠隔信号を受信するためのセンサ、動作コマンドを受信するためのカメラ、またはそれらの任意の組み合わせが含まれ得る。出力デバイスの例には、ディスプレイインタフェース218およびオーディオインタフェース232が含まれ得る。
【0042】
[0049] ディスプレイインタフェース218は、ディスプレイ、プロジェクタ、ビデオスクリーン、またはそれらの任意の組み合わせなどの任意のグラフィカルユーザインタフェースであり得る。オーディオインタフェース232は、スピーカ、マイクロフォン、ヘッドフォン、サブウーファ、サウンドコンポーネント、トランスデューサ、またはそれらの任意の組み合わせを含み得る。ディスプレイインタフェース218およびオーディオインタフェース232によって、ロボットシステム100のユーザは、ロボットシステム100との対話をすることができる。ディスプレイインタフェース218およびオーディオインタフェース232は、任意選択でよい。
【0043】
[0050] ロボットシステム100は、作動ユニット220も備えることができる。作動ユニット220は、例えば、デバイス(例えば、モータ、バネ、歯車、プーリ、チェーン、レール、ワイヤ、人工筋肉、電気活性ポリマー、またはそれらの組み合わせ)であって、ロボットシステム100の構造的部材または機械的構成要素を、対応する機械継手を中心に、または、この機械継手において、駆動、操縦、変位、配向、再配向、またはそれらの組み合わせを行うように構成されたデバイスを含むことができる。制御ユニット202は、作動ユニット220を動作させて、作動ユニット220を制御または操縦することができる。
【0044】
[0051] 作動ユニット220は、作動インタフェース222を備え得る。作動インタフェース222は、作動ユニット220とロボットシステム100の他の機能ユニットとの間の通信のために使用することができる。作動インタフェース222は、ロボットシステム100の外部との通信にも使用することができる。作動インタフェース222は、ロボットシステム100の他の機能ユニットまたは外部の送信元から情報を受信したり、あるいは、他の機能ユニットまたは外部の送信先に向けて情報を送信したりすることができる。
【0045】
[0052] 作動インタフェース222は、作動ユニット222のインタフェース対象となるロボットシステム100の機能ユニットまたは外部ユニットによって異なる実装形態を含むことができる。作動インタフェース222は、制御インタフェース204の実装形態と同様の技術および手法で実施され得る。
【0046】
[0053] ロボットシステム100は、構造的部材の操縦するためなどの、作業118と動作とを実行するために使用されるセンサ読取り値246を取得するように構成されたセンサユニット230を備え得る。センサ読取り値246は、センサユニット230によって取得された情報またはデータであり得て、センサユニット230の目的は、ロボットシステム100の環境における事象や変化を検出し、その情報をロボットシステム100の構成要素、外部デバイス、またはそれらの組み合わせに向けて送信して、作業118を容易にすることである。センサ読取り値246は、例えば、デジタル画像またはポイントクラウド/深度図等の画像読取り値を含み得る。センサ読取り値246は、さらに、力、トルク、回転、速度、距離、またはそれらの組み合わせの測定値等の定量化された測定値を含み得る。
【0047】
[0054] センサユニット230は、センサ読取り値246の検出または測定用に構成されたデバイスを備えることができる。例えば、センサユニット230は、状態、条件、1つまたは複数の構造的な部材もしくは継手の場所、オブジェクトもしくは周囲環境の情報、またはそれらの組み合わせなどの、ロボットシステム100の1つまたは複数の物理的特性を検出または測定するように構成される。一例として、センサユニット230は、撮像デバイス240、システムセンサ242、接触センサ244、またはそれらの組み合わせを含む多様なセンサを備え得る。
【0048】
[0055] いくつかの実施形態において、センサユニット230は、1つまたは複数の撮像デバイス240を備え得る。撮像デバイス240は、ロボットシステム100の周囲環境の捕捉、認識、検出、またはそれらの組み合わせを行うように構成されたデバイスである。例えば、撮像デバイス240は、共に、可視および赤外性能を備え得る2次元(2D)カメラおよび3次元(3D)カメラ、ライダ、レーダ、他の距離測定、ならびに他の撮像デバイスを含み得る。撮像デバイス240は、例えば、自動的な検査、ロボットガイダンス、または他のロボットの応用のためのマシン/コンピュータの視覚を実施するために使用される、デジタル画像またはポイントクラウド/深度図といったロボットシステム100の環境の表示を生成することができる。
【0049】
[0056] いくつかの実施形態において、センサユニット230は、システムセンサ242を備え得る。システムセンサ242は、ロボットシステム100を監視するように構成されたデバイスである。例えば、システムセンサ242は、ロボットシステム100の構造的な部材(ロボット構成要素およびエンドエフェクタなど)、対応する継手、またはそれらの組み合わせの位置を検出および監視するユニットまたはデバイスを含み得る。さらに別の例として、ロボットシステム100は、システムセンサ242を使用して、作業118の実行中、構造的な部材および継手の場所、向き、またはそれらの組み合わせを追跡することができる。システムセンサ242の例には、加速度計、ジャイロスコープ、または位置エンコーダが含まれ得る。
【0050】
[0057] いくつかの実施形態において、センサユニット230は、複数の物理的構造または表面間の直接の接触に関連する特徴を測定するように構成された、圧力センサ、力センサ、歪みゲージ、圧電抵抗性/圧電性センサ、容量性センサ、弾性抵抗センサ、トルクセンサ、直線力センサまたは他の触覚センサ等の、接触センサ244を含むことができる。
【0051】
[0058] センサユニット230は、センサユニットインタフェース224を備え得る。センサユニットインタフェース224は、センサユニット230とロボットシステム100の他の機能ユニットとの間の通信のために使用することができる。センサユニットインタフェース224は、ロボットシステム100の外部との通信にも使用することができる。センサユニットインタフェース224は、ロボットシステム100の他の機能ユニットまたは外部の送信元から情報を受信したり、あるいは、ロボットシステム100の他の機能ユニットまたは外部の送信先に向けて情報を送信したりすることができる。
【0052】
[0059] センサユニットインタフェース224は、センサユニット230のインタフェース対象となるロボットシステム100の機能ユニットまたは外部ユニットによって異なる実装形態を含むことができる。センサユニットインタフェース224は、制御インタフェース204の実装形態と同様の技術および手法で実施され得る。
【0053】
[0060] 次に、
図3を参照すると、本発明の1つまたは複数の実施形態に係るアームユニット102の例が示されている。アームユニット102は、ロボットアーム310を備え得る。アームユニッ102は、さらに、センサユニット230、グリップユニット306、および1つまたは複数の吸引グリッパ308を備えることができる。
【0054】
[0061] 一実施形態において、センサユニット230は、ロボットアーム310、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせに取り付けられ得る。グリップユニット306もロボットアーム310に取り付けられ得る。吸引グリッパ308もまた、グリップユニット306に取り付けられて、対象オブジェクト112をグリップするように構成され得る。
【0055】
[0062] ロボットアーム310は、グリップユニット306、吸引グリッパ308、センサユニット230、またはそれらの組み合わせを介して対象オブジェクト112の操縦を可能にするように機能する。ロボットアーム310は、ロボットアーム310の機械的な小区分である1つまたは複数のアーム部分314を備えることができ、これらは全体としてロボットアーム310を構成する。一実施形態において、ロボットアーム310は、アーム部分314に接続する1つまたは複数の機械式の構造継手312も備え得る。構造継手312は、アーム部分314どうしを互いに接続し、アーム部分314、グリップユニット306、センサユニット、またはそれらの組み合わせの回転運動および並進運動を可能にし得る回動中心として作用することができる。一実施形態において、構造継手312は、アーム部分314、グリップユニット306、センサユニット230、またはそれらの組み合わせを操縦するように構成される運動連鎖を形成することができる。
【0056】
[0063] 一実施形態において、アームユニット102は、構造継手312、アーム部分314、グリップユニット306、センサユニット230、またはそれらの組み合わせを、構造継手312を中心に、構造継手312において、または構造継手312に接続されて、駆動または操縦するように構成された作動ユニット220も備え得る。作動ユニット220は、構造継手312、アーム部分314、グリップユニット306、吸引グリッパ308、センサユニット230、またはそれらの組み合わせに、回転運動および並進運動を実行させるか、または回転運動および並進運動を受けさせるように機能する。一実施形態において、作動ユニット220は、構造継手312、アーム部分314、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせに組み込まれ得る。別の実施形態では、作動ユニット220は、構造継手312、アーム部分314、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせの外部にあってもよい。
【0057】
[0064] アームユニット102は、センサユニット230も備え得る。一実施形態において、センサユニット230は、センサ読取り値246を検出または測定するように構成されたデバイスを備えることができる。例えば、アームユニット102は、
図2のシステムセンサ242のような、ロボットシステム100の1つまたは複数の物理的特性を検出および測定するように構成されたデバイスを備え得る。物理的特性の例には、構造継手312の状態、条件、もしくは場所、アーム部分314の場所、グリップユニット306の場所、吸引グリッパ308の状態、またはそれらの組み合わせが含まれ得る。システムセンサ242を使用して、構造継手312の場所、アーム部分314の場所、グリップユニット306の場所、またはそれらの組み合わせを検出することができる。ロボットシステム100は、作業118の実行中、システムセンサ242を使用して、構造継手312、アーム部分314、グリップユニット306、またはそれらの組み合わせの場所および向きを追跡し、センサ読取り値246をオブジェクト追跡データ228の一部として保存することができる。
【0058】
[0065] また、例えば、センサユニット230は、さらに、
図2の一つ又は複数の撮像デバイス240を備えてもよい。撮像デバイス240は、例えば、自動的な検査、ロボットガイダンス、または他のロボットの応用のためのマシンまたはコンピュータの視覚を実施するためにさらに使用され得る、デジタル画像またはポイントクラウド/深度図などの検出環境の表示を生成することができる。ロボットシステム100は、このデジタル画像またはポイントクラウド/深度図を記憶および処理して、対象オブジェクト112の操縦または搬送を、識別し、把握し及び容易にすることができる。一実施形態において、デジタル画像またはポイントクラウド/深度図は、ストレージユニット206に記憶され得る。
【0059】
[0066] 例えば、一実施形態において、センサユニット230は、トラックの内部、コンテナの内部、あるいは対象オブジェクト112のピックアップ位置といった指定エリア114の画像を捕捉し、ロボットシステム100は、その画像を記憶することができる。同様に、センサユニット230は、対象オブジェクト112をコンベアベルト上に配置するためのドロップ場所、対象オブジェクト112をコンテナ内に配置するための場所、または対象オブジェクト112をスタックするためのパレット上の場所といった、指定エリア114または作業場所116の他の例もしくは場所の画像を捕捉し、ロボットシステム100はその画像を記憶することができる。
【0060】
[0067] 別の実施形態において、さらに、センサユニット230を使用して対象オブジェクト112を識別することができる。例えば、センサユニット230は、対象オブジェクト112の画像、対象オブジェクト112を収容するコンテナの画像、またはそれらの組み合わせを捕捉し、ロボットシステム100はその画像を記憶して、どのタイプの対象オブジェクト112であるかを決定することによって、ロボットシステム100は、吸引グリッパ308を使用してどのように対象オブジェクト112を操縦、グリップ、および搬送するかを決定することができる。
【0061】
[0068] 別の実施形態では、センサユニット230は、さらに、
図2の接触センサ244を備えてもよい。接触センサ244は、対象オブジェクト112に対する吸引グリッパ308のグリップに対応する特徴を測定することができる。したがって、接触センサ244は、吸引グリッパ308と対象オブジェクト112との間の吸着に対応する、例えば測定された力、トルク、または位置等の定量化された測定値を表す接触測定値320を出力することができる。例えば、接触測定値320には、吸引グリッパ308によって対象オブジェクト112に加えられた力に関連した1つまたは複数の力、トルク、または圧力の読取り値が含まれ得る。
【0062】
[0069] 一実施形態において、ロボットシステム100は、対象オブジェクト112のグリップ、再グリップ、移動、またはそれらの組み合わせを含む接触測定値320に基づいて、作業118を達成する異なるアクションを実施するための命令を生成することができる。例えば、この命令には、接触測定値320の初期値が力閾値322を上回るまたは下回る値であった場合に、アームユニット102に対象オブジェクト112をグリップまたは再グリップさせるための命令が含まれ得る。また、命令には、作業118中に、アームユニット102に意図的に対象オブジェクト112をドロップさせたり、アーム部分314、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせの場所を調整させたりするための命令が含まれ、さらには、作業118の実行中に、接触測定値320が力閾値322を下回ったまたは上回った場合に、作業118中のアーム部分314の速度、加速度またはそれらの組み合わせをさらに調整する命令が含まれ得る。
【0063】
[0070] 力閾値322は、対象オブジェクト112のグリップが作業118を達成するために維持されることができるか否かを決定するために、ロボットシステム100またはロボットシステム100の1つまたは複数の構成要素が、対象オブジェクト112に対する1つまたは複数の力、トルク、または圧力の読取り値を比較する条件のことを指す。力閾値322は、ロボットシステムのユーザによってあらかじめ決められ、ロボットシステム100が対象オブジェクト112をグリップするために使用する吸引グリッパ308のサイズおよび材質組成に基づいて変わり得る。
【0064】
[0071] 大きい表面積を覆う吸引グリッパ308を使用することで、より大きい力で対象オブジェクト112を保持することができ、それゆえこのような吸引グリッパ308に関連する力閾値322は、より小さい表面積を覆う吸引グリッパよりも値が大きくなり得ることがわかった。吸引グリッパ308に関するさらなる詳細と、力閾値322がどのように使用されるかについて、以下に説明する。
【0065】
[0072] アームユニット102は、グリップユニット306も備えることができる。グリップユニット306は、吸引グリッパ308と共に、引力により対象オブジェクト112のグリップを容易にするように構成されることができ、かかる引力はグリップユニット306、吸引グリッパ308、またはそれらの組み合わせと、対象オブジェクト112との間に真空状態を形成および維持することによって達成される。例えば、グリップユニット306は、対象オブジェクト112の表面と接触し、対象オブジェクト112の表面との間の空間に真空状態を形成するように構成された吸引グリッパ308を備え得る。グリップユニット306および吸引グリッパ308の構成について、以下にさらに詳細に説明する。
【0066】
[0073] 真空状態は、グリップユニット306がロボットアーム310を介して下降され、それにより吸引グリッパ308が対象オブジェクト112の表面に押し付けられ、吸引グリッパ308と対象オブジェクト112の対向面どうしの間の空気や気体が押し出されることによって生成される。一実施形態において、吸引グリッパ308は、ロボットシステム100が対象オブジェクト112に対するグリップが確立されたと決定するまで対象オブジェクト112の表面に押し付けられ得る。例えば、対象オブジェクト112の表面に対する押し付けを停止するタイミングを決定するためには、一実施形態では、接触センサ244が、吸引グリッパ308と対象オブジェクト112の表面との間の圧力を示す接触測定値320を生成することができる。ロボットシステム100は、接触測定値320を力閾値322と比較し、接触測定値320が力閾値322以上であるか否かを決定することができる。接触測定値320が力閾値322以上である場合、ロボットシステム100は、吸引グリッパ308が対象オブジェクト112に対するグリップを維持するのに対象オブジェクト112に十分に押し付けられていると決定することができる。
【0067】
[0074] グリップが確立されると、アームユニット102は対象オブジェクト112を持ち上げようと試みることができる。ロボットアーム310がグリップユニット306を持ち上げると、接触センサ320は、さらに、吸引グリッパ308の内部空間と周囲環境との間の圧力差を測定し、対象オブジェクト112が吸引グリッパ308に吸着した状態を維持するのに十分な圧力であるか否かを決定することができる。したがって、グリップユニット306および吸引グリッパ308の対象オブジェクト112に対するグリップまたは吸着の程度は、適切に真空状態を生成して保持することができる吸引グリッパ308の数に基づき得る。
【0068】
[0075] 一実施形態において、グリップユニット306は吸引グリッパ308を備えることができる。吸引グリッパ308は、空気または水の流体負圧を使用して、非多孔質表面に付着して真空状態を生成する機械的デバイスである。吸引グリッパ308は、引力を介して対象オブジェクト112を保持または固定するように構成される。吸引グリッパ308は、遠位端に取り付けられた1つまたは複数の吸引カップ324を備えることができ、吸引カップ324は、対象オブジェクト112の表面に接触し、吸引カップ324と対象オブジェクト112の表面との間の空間内の真空状態を保持するように構成され得る。
【0069】
[0076] 吸引カップ324は、面、縁、またはある角度338に沿って対象オブジェクト112の表面に接触することができる。さらに、角度338で対象オブジェクト112の表面に接触する能力により、吸引グリッパ308は、移動または変位した後、一辺が水平面に対して角度338で(例えば、対象オブジェクト112が内部または上部に配置された容器の底面と平行な平面に沿って)静止している対象オブジェクト112をグリップすることができる。
【0070】
[0077] 吸引カップ324が角度338で対象オブジェクト112に対するグリップを維持する能力は、吸引カップ324のサイズに依存することが分かった。例えば、吸引カップ324は、サイズが大きいほど、大きい角度338で対象オブジェクト112をグリップすることができる。
【0071】
[0078] 吸引カップ324は、多様な形状およびサイズに応じて実施され得る。吸引カップ324は、さらに、さまざまな材料から作られ得る。例えば、一実施形態では、吸引カップ324は、円形として実施され、対象オブジェクト112をピックアップする時に、吸引カップ324が撓んだり曲がったりすることができるような、プラスチック、シリコーン、ニトリル、バイトン、ビニル、ウレタン、ゴムを含む可撓性材料から作られ得る。
【0072】
[0079] 吸引カップ324によって加えられる力は、吸引カップ324のサイズおよび形状と相関性があり、吸引カップ324が大きいほど、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせによって対象オブジェクト112に加えられる力が大きくなることが分かった。さらに、吸引カップ324の力は、この吸引カップ324によって覆われる有効表面積と直接的に相関することが分かっており、この相関関係は、以下の式によって特徴付けられる。
[0080]
F=(ΔP)(A) (1)
【0073】
[0081] 上記式において、「F」は、真空状態を介して吸引カップ324によって加えられる力を表し、「ΔP」は、大気圧と、吸引カップ324と対象オブジェクト112との間の真空圧との差を表し、「A」は、吸引カップ324によって覆われる有効表面積を表している。したがって、例えば、吸引カップ324が例えば円形として実施される実施形態では、吸引カップ324の直径が大きいほど、対象オブジェクト112に対して大きい力を加えることができる。
【0074】
[0082] さらに、吸引カップ324のサイズおよび形状は、この吸引カップ324が対象オブジェクト112をグリップする能力に影響することも分かった。例えば、吸引カップ324は、サイズが大きいほど、小さい力が加えられた場合に簡単に曲がったり、割れたり、あるいは破損したりするような脆い材料または脆い膜を含む表面を有する対象オブジェクト112をグリップするには適さない。これは、吸引カップ324は、その直径が大きいほど、対象オブジェクト112に加える力が大きくなるため、結果として、対象オブジェクト112の表面を破損させ得るためである。
【0075】
[0083] また、吸引カップ324の材料組成は、吸引カップ324が対象オブジェクト112をグリップする能力に影響することもわかった。例えば、吸引カップ324を可撓性または軟質にする材料から作られている吸引カップ324は、この可撓性または軟質の特徴によって、対象オブジェクト112の表面に対して撓んだり、曲がったりして、対象オブジェクト112に対してよりきついグリップを提供することができるため、例えば袋などの展性のあるオブジェクトをグリップする用途によりふさわしい。
【0076】
[0084] 一実施形態において、アームユニット102は、さらに、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせに取り付けられて真空状態を生成する真空ホース(図示無し)および真空ジェネレータ(図示無し)を備え得る。例えば、一実施形態において、センサユニット230によって吸引カップ324と対象オブジェクト112の表面との間の接触が検出されると、真空ジェネレータは、ロボットシステム100によって作動され、吸引カップ324と対象オブジェクト112の表面との間から空気を抜き取り、真空状態を生成することができる。その結果、吸引グリッパ308と対象オブジェクト112の表面との間の空気圧は、吸引グリッパ308と対象オブジェクト112の表面との間の環境の外側よりも低くなるため、大気圧によって対象オブジェクト112を吸引グリッパ308に対して保持することができる。真空ジェネレータとしては、例えば、吸引カップ324と対象オブジェクト112の表面との間の空気を抜き取って真空状態を生成することができるような、真空エジェクタ、ブロワ、またはポンプが含まれ得る。
【0077】
[0085] 一実施形態において、真空ジェネレータは、空気が抜き取られる速度を調整または変えて、真空状態の強さを変えられるようにしてもよい。したがって、空気が抜き取られる速度が速いほど、吸引カップ324と対象オブジェクト112の表面との間の真空圧と大気圧との差は大きくなり、より強い真空状態が生成される。さらに、真空状態は、吸引カップ324の大きさによっても変わり得る。例えば、吸引カップ324によって覆われる表面積が大きいほど、真空ジェネレータによってより速い速度で空気が抜き取られた際の真空状態がより強くなる。
【0078】
[0086] 一実施形態において、グリップユニット306は、センサユニット230を備えることができる。例えば、グリップユニット306は、接触測定値320を決定するように構成された接触センサ244を備え得る。接触センサ244は、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせの対象オブジェクト112に対する吸着を表すものとして接触測定値320を生成し得る。一実施形態では、接触センサ244は、ある表面が別の表面に接触しているか否かを示すように構成されたタッチセンサまたは触覚センサを備え、別の表面に接触している表面のサイズを決定するように構成され得る。また、接触センサ244は、圧力、例えば、吸引グリッパ308と対象オブジェクト112の表面との間の真空状態を測定するように構成された圧力センサを備えることができる。また、接触センサ244は、吸引グリッパ308によって運搬または支持されている対象オブジェクト112の重量を測定するように構成された直線力センサを備えてもよい。
【0079】
[0087] さらに、接触センサ244は、吸引グリッパ308、グリップユニット306、ロボットアーム310、またはそれらの組み合わせに対するトルクまたは力のモーメントを測定するように構成されたトルクセンサを備えることができる。完全にグリップされた状態と比較して、例えば、いくつかの吸引グリッパ308(例えば、周辺部に配置された吸引グリッパ308)が吸引状態を保持することができない場合など、トルクまたは力のモーメントの測定値が変化(例えば増加または減少)することがある。
【0080】
[0088] トルク測定値は、さらに、作業118の実行中に、アームユニット102の速度340および加速度342を決定する際に使用することができる。例えば、一実施形態において、吸引グリッパ308がグリップされている対象オブジェクト112を一点(例えばグリップされている対象オブジェクト112の質量中心236または他の点)でグリップし、作業118の実行を始めた時、トルクセンサは、以下の式を使用して対象オブジェクト112に対するトルクまたは力のモーメントを測定することができる。
[0089] T=(F)(d) (2)
【0081】
[0090] 上記式において、「T」は、対象オブジェクト112に対するトルクまたは力のモーメントを表し、「F」は、対象オブジェクト112の回転動作の結果、対象オブジェクト112に加わる力を表し、「d」は、点(例えば、グリップされる対象オブジェクト112の質量中心236または他の点)から回動中心(例えば、対象オブジェクト112の回転の中心となる構造継手312)までの距離を表す。
【0082】
[0091] ロボットシステム100は、トルク測定値「T」と、例えば吸引カップ324が対象オブジェクト112を保持する際の最大の力の量を表し得る力閾値322とを比較することができる。この比較に基づいて、ロボットシステム100は、対象オブジェクト112を落下させることなく作業118が正常に実行されているか否かを決定することができる。さらに、トルク測定値に基づいて、ロボットシステム100は、アームユニット102の速度340および加速度342を対象オブジェクト112に対するトルクの影響を打ち消すように調整することによって、対象オブジェクト112に加わるトルクを補償することができる。一例として、一実施形態では、トルク測定値が力閾値322よりも大きい場合、吸引グリッパ308が対象オブジェクト112に対するグリップを失うことになるため、ロボットシステム100は、例えばアームユニット102の速度340および加速度342を落とすことによってアームユニット102の速度340および加速度342を調整してトルクを低減させ、グリッパ308、吸引カップ324、またはそれらの組み合わせが対象オブジェクト112に対するグリップを維持することができるようにし、対象オブジェクト112を落下させることなく運ぶことができる。
【0083】
[0092] 接触センサ244のタイプと場所に応じて、接触測定値320は、それぞれの吸引グリッパ308に関する、例えば、内圧、直線力、トルク、またはそれらの組み合わせの測定値の合計または平均値に対応し得る。一実施形態において、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせに取り付けられた接触センサ244は、吸引グリッパ308によって運搬されている重量に関連するゼロではない読取り値を決定することができる。そのような重量は、直線力またはトルクに対応しており、対象オブジェクト112の移送を含む作業118を行うことができるように、吸引グリッパ308が対象オブジェクト112を十分にグリップしているか否かを決定するために使用することができる。
【0084】
[0093] 別の実施形態において、接触センサ244は、さらに、吸引グリッパ308に対応する真空力を決定することができる。真空力が力閾値322以上である場合、接触センサ244は、吸引グリッパ308に関連したゼロではない読取り値を登録し、グリップユニット306および吸引グリッパ308が対象オブジェクト112に対しグリップを有すると決定することができる。
【0085】
[0094] 一実施形態において、接触センサ244によって決定されるように、真空力、直線力、またはそれらの組み合わせが力閾値322を下回るなど、吸引グリッパ308がグリップを失った場合、接触センサ244は、そのグリップの失敗に起因するゼロ読取り値またはゼロではない読取り値を決定することができる。さらに、力の不均一な分布により、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせに関連付けられたトルクセンサは、ゼロではない読取り値を決定し得る。
【0086】
[0095] 一実施形態において、ロボットシステム100が吸引グリッパ308にグリップの失敗があることを決定した場合、制御ユニット202、通信ユニット212、センサユニット230、またはそれらの組み合わせは、ロボットシステム100のユーザ、ロボットシステム100の他の機能ユニット、またはそれらの組み合わせに対して、対象オブジェクト112のグリップの失敗があることを通知する。その結果、ロボットシステム100のユーザまたは他の機能ユニットは、その失敗の原因を決定することによって問題に対処するか、あるいは、対象オブジェクト112の最較正、再構成、または再グリップを試みることができる。
【0087】
[0096] 一実施形態において、吸引グリッパ308の全てが対象オブジェクト112に対するグリップまたは真空状態を確立および維持している場合、直線力、真空力、またはそれらの組み合わせは、全ての吸引グリッパ308において、ゼロではない大きさを有しており、直線力、真空力、またはそれらの組み合わせ間のずれは比較的小さい範囲内になる。さらに、全吸引グリッパ308にわたり、重量が実質的に均一に分布しているため、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせにおいて測定されたトルクは、ゼロ値に近くなる。したがって、直線力、真空力、トルクの読取り値、またはそれらの組み合わせにおけるずれは、グリップの強度を反対に表し得る。したがって、ロボットシステム100は、接触測定値320の上記例を、グリップユニット306、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせによる対象オブジェクト112に対するグリップを表すものとして使用することができる。
【0088】
[0097] 一実施形態において、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせのいくつかが対象オブジェクト112のグリップに失敗する一方、他の吸引グリッパ308、吸引カップ324、またはそれらの組み合わせが対象オブジェクト112に対するグリップまたは真空状態を確立および維持している場合、接触センサ244は、グリップまたは真空状態を維持している吸引グリッパ308のそれらの例からのグリップが、対象オブジェクト112の安定性を維持して対象オブジェクト112に対する操縦、搬送、またはその他の作業118を実行するのに十分であるか否かを、直線力、真空力、またはそれらの組み合わせを考慮して決定することができる。例えば、対象オブジェクト112が安全に操縦または搬送されることができるように、トルク測定値がゼロ読取り値かゼロ読取り値に近い値である間に、接触センサ244は、直線力、真空力、測定されたトルク、またはそれらの組み合わせが加えられたオブジェクトの重量を力閾値322と比較して、直線力および真空力が力閾値322以上であるか否かを決定することができる。
【0089】
[0098] また、例えば、ロボットシステム100は、グリップユニット306および対象オブジェクト112の様々な向きに応じて予測される読取り値を変換または移行するために、参照テーブルもしくは変換テーブル、データベース、式、プロセス、またはそれらの組み合わせをさらに使用することができる。いくつかの実施形態において、マスタデータ226、構成データ248、またはそれらの組み合わせは、グリップユニット306および対象オブジェクト112の様々な向きの各々に関し、予測される読取り値を含むことができる。ロボットシステム100は、予測される読取り値を使用して、グリップユニット306および対象オブジェクト112の向きに応じて、接触測定値320を評価または処理することができる。
【0090】
[0099] 吸引グリッパ308は、グリップユニット306の遠位端に沿って、レイアウト302に従って実施され得る。レイアウト302は、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせが配置される態様を指す。レイアウト302は、線形、長方形、円形、三角形、正方形、またはそれらの組み合わせを含む、多様な形状および向きに従って実施され得る。例えば、一実施形態では、レイアウト302は、グリップユニット306の遠位端において、第1の方向328に沿ってx個の吸引グリッパ308、および、第1の方向328に垂直な垂直方向322に沿ってy個の吸引グリッパ308がある長方形の格子として実施され得る。結果として、吸引グリッパは、x×y個の長方形の格子を形成することができる。一例として、
図3に示す実施形態では、レイアウト302は、第1の方向328に沿って2つの吸引カップ324の例、および、垂直方向332に沿って2つの吸引カップ324がある2×2の正方形の格子として示されている。他の実施形態では、吸引カップ324の数を増やして、正方形の格子のサイズを変えたり、あるいは長方形の格子を形成したりすることもできる。
【0091】
[0100] 別の実施形態において、レイアウト302は、グリップユニット306の中心から等距離に同じ数の吸引グリッパ308が配置された円形構成で実施されてもよい。別の実施形態では、レイアウト302は、グリップユニット306の遠位端において、各線がその他の2本の線と角度338で接する3本の直線に沿って吸引グリッパ308が位置決めされる三角形構成で実施されてもよい。以下の記載は単なる例であり、他のレイアウト302の構成を使用することもできる。
【0092】
[0101] 吸引グリッパ308は、上述したようなレイアウト302と、対象オブジェクト112をグリップするために使用される吸引グリッパ308の数とに基づいて、個別で、グループもしくはサブグループとして、または全てを一括して制御されることができる。ロボットシステム100は、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせを制御することにより、吸引グリッパ308を制御することができる。一実施形態において、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせは、各吸引グリッパ308に対して個別に、または、複数の吸引グリッパ308のグループに対して取り付けられ得る。作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせによって、吸引グリッパ308にその機能を実行させること、例えば、吸引グリッパ308の機械的運動を引き起こして、対象オブジェクト112上に押し下げてグリップを確立させて、対象オブジェクト112に対するグリップを維持または確立するために必要な吸引および真空状態を生成することができる。
【0093】
[0102] 例えば、一実施形態において、ロボットシステム100は、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせをONまたはOFFにし、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせが対象オブジェクト112上に押し下げられて、グリップを確立し、かつ対象オブジェクト112のグリップの維持または確立に必要な吸引および真空状態を生成することができるようにすることによって、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせを制御することができる。その結果、ロボットシステム100は、吸引グリッパ308が対象オブジェクト112をグリップするための精度を制御することができる。
【0094】
[0103] 吸引グリッパ308は、さらに、吸引グリッパ308の数およびレイアウト302に基づいて制御され得る。例えば、一実施形態において、ロボットシステム100は、吸引グリッパ308の数およびレイアウト302に基づいて、吸引グリッパ308を、個別に、グループもしくはサブグループとして、または全てを一括して制御するための1つまたは複数のグリップパターン330を生成することができる。グリップパターン330は、対象オブジェクト112をグリップするために使用可能な吸引グリッパ308の構成を指す。ロボットシステム100のオンライン状態の間、グリップパターン330を使用して、対象オブジェクト112をグリップすること、および、
図1の作業118を実行することができる。
【0095】
[0104] 例えば、一実施形態において、グリップパターン330は、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせのそれぞれのON/OFF状態の2進表現として表すことができる。その結果、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせの各状態は、「ON」または「OFF」を表す「1」または「0」として表すことができる。吸引グリッパ308の数およびレイアウト302に基づいて、ロボットシステム100は、以下の式を使用して吸引グリッパ308の「ON」および「OFF」状態の組み合わせの数を計算することができる。
[0105]
C=(S)n (3)
【0096】
[0106] 上記式において、「C」は、吸引グリッパ308に関する組み合わせの数を表し、「S」は、作動ユニット220、真空ホース、真空ジェネレータ、またはそれらの組み合わせのそれぞれの状態の数を表し、「n」は、吸引グリッパ308の数を表す。一例として、吸引グリッパ308が2×2の正方形として配置されている場合、ロボットシステム100は、吸引グリッパ308について、C=(2)4すなわち16通りのグリップパターン330を演算することができる。一実施形態において、グリップパターン330は、参照テーブル334として表すことができる。参照テーブル334は、グリップパターン330のアレイまたはマトリックス表示であり得る。例えば、参照テーブル334は、例えば、[1001]、[0000]および[0001]などの2進コード336として表されたグリップパターン330の値を有し得る。2進コード336は、どの吸引グリッパ308がONまたはOFFにされるかを表し得る。例えば、一実施形態において、2進コード336の1つの値[0000]は、全ての吸引グリッパ308がOFFであることを示す一方、2進コード336の別の値[1111]は、全ての吸引グリッパ308がONであることを示すことができる。
【0097】
[0107] 一実施形態において、グリップパターン330は、前もって演算され、構成データ248の一部として記憶され、ロボットシステム100が吸引グリッパ308のレイアウト302の特定の例に対して利用可能な数のグリップパターン330を持つように構成されてもよい。グリップパターン330は、作業118の実行中に、対象オブジェクト112をグリップするために使用することができる。グリップパターン330を使用して対象オブジェクト112をグリップする態様について、以下にさらに詳細に説明する。
【0098】
[0108] 次に、
図4を参照すると、本発明の一実施形態におけるロボットシステム100の動作段階の例示的な制御フローが図示されている。一実施形態において、ロボットシステム100は、事前構成設定状態402およびオンライン状態406を含む、2つの段階で動作され得る。
図4に示す実施形態は、事前構成設定状態402がロボットシステム100のオンライン状態406での動作に先立って実行されることを想定しているが、この動作の順序は、単なる例であり、他の実施形態では、事前構成設定状態402は、オンライン状態406と並行またはリアルタイムで実行されてもよい。リアルタイムとは、製造、組立、パッキング、パッケージング、倉庫業務および輸送のシナリオ中に、ロボットシステム100のパラメータ、変数、
図2の構成データ248、またはそれらの組み合わせが製造、組立、パッキング、パッケージング、倉庫業務および輸送のシナリオ中に決定されるように、ロボットシステム100が使用される例を指す。
【0099】
[0109] 事前構成設定状態402は、ロボットシステム100のパラメータ、変数、構成データ248、またはそれらの組み合わせが決定される動作モードである。パラメータ、変数、構成、またはそれらの組み合わせには、任意の閾値または設定(例えば、
図1の対象オブジェクト112に対して
図1の作業118を実行するために必要な、
図1のアームユニット102、グリップユニット306、吸引グリッパ308、センサユニット230、またはそれらの組み合わせに関連した設定)が含まれ得る。
【0100】
[0110] 例えば、一実施形態において、事前構成設定状態402は、吸引制御パターン生成機構404を含むことができる。吸引制御パターン生成機構404は、例えば、
図3のグリップユニット306、
図3の吸引グリッパ308、
図2のセンサユニット230、またはそれらの組み合わせに関連したパラメータ、変数、構成データ248、またはそれらの組み合わせを決定することができる。ロボットシステム100は、
図2および3に示されるロボットシステム100の多様な機能ユニット、ロボットシステム100の外部の1つまたは複数の構成要素、またはそれらの組み合わせを使用して、吸引制御パターン生成機構404を実施することができる。外部の構成要素とは、ロボットシステム100の外部にある構成要素を指す。吸引制御パターン生成機構404の実施について、以下にさらに詳細に説明する。
【0101】
[0111] オンライン状態406は、製造、組立、パッキング、パッケージング、倉庫業務および輸送のシナリオ中においてロボットシステム100が対象オブジェクト112に対して作業118を実行している時に、ロボットシステム100が使用される動作モードである。オンライン状態406の間に、ロボットシステム100は、事前構成設定状態402中に決定されたロボットシステム100のパラメータ、変数、構成データ248、またはそれらの組み合わせを使用して、対象オブジェクト112に対して作業118を実行することができる。オンライン状態406の実施について、以下にさらに詳細に説明する。
【0102】
[0112] 事前構成設定状態402およびオンライン状態406は、
図2の制御ユニット202、ロボットシステム100の他の機能ユニット、またはそれらの組み合わせによって実行され得る、
図2のソフトウェア202もしくは
図2のストレージユニット206に記憶された命令のセットに基づいて実施され得る。
【0103】
[0113] 次に、
図5を参照すると、本発明の一実施形態に係る吸引制御パターン生成機構404の例示的な制御フローが示されている。ロボットシステム100は、
図1のロボットシステム100の
図2および3に示される多様な機能ユニット、ロボットシステム100の外部の1つまたは複数の構成要素、またはそれらの組み合わせを使用して、吸引制御パターン生成機構404を実施することができる。
【0104】
[0114] 一実施形態において、吸引制御パターン生成機構404は、グリップパターン330を生成するように構成され得る。吸引制御パターン生成機構404は、さらに、ロボットシステム100が
図4のオンライン状態406において対象オブジェクト112に遭遇する前に、
図1の対象オブジェクト112を認識し、対象オブジェクト112に関連したグリップ点518の1つまたは複数の場所をテストするように構成され得る。グリップ点518の1つまたは複数の場所をテストすることによって、吸引制御パターン生成機構404は、オンライン状態406中にどのように対象オブジェクト112を取り扱うかを決定することができる。吸引制御パターン生成機構404は、さらに、グリップ点518に基づいて、対象オブジェクト112に対してどのグリップパターン330を使用すべきかを決定するように構成され得る。グリップ点518とは、
図3の吸引グリッパ308、
図3の吸引カップ324、またはそれらの組み合わせによってグリップされることが可能な対象オブジェクト112の表面上のエリアを指す。
【0105】
[0115] 一実施形態において、吸引制御パターン生成機構404は、グリップパターン生成モジュール510、スキャンモジュール502、グリップ点マッピングモジュール508、外部ユニット514、評価モジュール512、およびストレージユニット206を使用して実施することができる。一実施形態において、スキャンモジュール502は、グリップ点マッピングモジュール508に接続され得る。グリップ点マッピングモジュール508は、評価モジュール512に接続され、任意で、ストレージユニット206および外部ユニット514にも接続され得る。評価モジュール512は、、グリップパターン生成モジュール510およびストレージユニット206に接続され得る。グリップパターン生成モジュール510は、ストレージユニット206と、任意で外部ユニット514に接続され得る。
【0106】
[0116] グリップパターン生成モジュール510は、
図3を参照して説明した態様でのグリップパターン330の生成を可能にし得る。グリップパターン生成モジュール510は、さらに、グリップパターン箇所530の生成を可能にし得る。グリップパターン箇所530は、
図3のレイアウト302において、吸引グリッパ308が均一な力の分布を対象オブジェクト112に加えることができる位置を指す。対象オブジェクト112は、グリップパターン箇所530を使用してグリップされ得る。グリップパターン箇所530は、グリップパターン330、吸引カップ324の物理的特性、またはそれらの組み合わせを含む多くの変数に基づいて変わり得る。一実施形態において、グリップパターン箇所530は、グリップパターン330のレイアウト302および吸引カップデータ534に基づいて決定され得る。
【0107】
[0117] 吸引カップデータ534は、吸引カップ324の物理的特性を特徴付け得る変数、パラメータ、閾値、またはそれらの組み合わせを指す。例えば、吸引カップデータ534には、1つまたは複数の吸引カップ324によって保持することができる最大重量、吸引カップ324の可撓性の程度、引張り強度、摩擦係数、サイズ、またははそれらの組み合わせに関するデータが含まれ得る。吸引カップデータ534は、ロボットシステム100によって把握され、ストレージユニット206、外部ユニット514、またはそれらの組み合わせに記憶され得る。
【0108】
[0118] 外部ユニット514は、ロボットシステム100の外部にあるストレージを指す。ストレージユニット206と同様に、外部ユニット514は、揮発性メモリ、不揮発性メモリ、内部メモリ、外部メモリ、またはそれらの組み合わせであってよい。例えば、外部ユニット514は、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、ディスクストレージなどの不揮発性メモリ、静的ランダムアクセスメモリ(SRAM)などの揮発性ストレージであり得る。別の実施形態では、外部ユニット514は、データベースまたは参照テーブルであってもよい。
【0109】
[0119] さらに例を挙げると、グリップパターン箇所530がグリップパターン330および吸引カップデータ534に基づいて決定される実施形態では、グリップパターン箇所530は、吸引カップ324が保持することができる力の量、および、レイアウト302における吸引カップ324の位置に基づいて具体的に決定され得る。グリップパターン生成モジュール510は、1つまたは複数の吸引カップ324によって保持され得る最大重量を示す変数、パラメータ、またはそれらの組み合わせを取得することによって、グリップパターン箇所530を決定することができる。この最大重量に基づいて、グリップパターン生成モジュール510は、吸引カップ324が最も均一に最大重量を分布させることができるデフォルト位置として吸引カップ324の幾何学的中心542を設定することができる。1つの吸引カップ324のみがONにされて対象オブジェクト112をグリップするグリップパターン330の構成では、グリップパターン生成モジュール510は、この吸引カップ324の幾何学的中心542をグリップパターン箇所530に割り当てることができる。幾何学的中心542は、全座標軸方向における吸引カップ324の全ての点の平均位置を指す。
【0110】
[0120] 吸引グリッパ308の複数の例を使用して対象オブジェクト112をグリップする実施形態では、グリップパターン生成モジュール510は、吸引カップ324の幾何学的中心542および重み係数536を考慮した加重平均に基づいて、グリップパターン箇所530を決定することができる。重み係数536は、吸引カップ324が対象オブジェクト112に対して作用させることができる力の量に基づいて、グリップパターン生成モジュール510によって吸引カップ324に割り当てられるパラメータを指す。重み係数536は、ロボットシステム100のユーザによって予め決定することができる。
【0111】
[0121] 例えば、一実施形態において、吸引カップ324が保持することができる重量が大きいほど、大きな重み係数536が吸引カップ324に割り当てられる。別の実施形態では、吸引カップ324が覆うことができる表面積が大きいほど、大きな重み係数536が吸引カップ324に割り当てられる。その結果、グリップパターン生成モジュール510は、どの吸引カップ324が対象オブジェクト112に最も大きな力を加えるかに基づいてグリップパターン箇所530を演算し、吸引カップ324の複数の例を有するシナリオにおいて、グリップパターン箇所530を吸引カップ324の近くに位置決めすることができる。
【0112】
[0122] 一例として、レイアウト302が2×2の正方形格子であり、全ての吸引カップ324が同一の最大重量を保持することができ、かつ同一のサイズである実施形態では、グリップパターン箇所530は、正方形の四辺のそれぞれから同一距離にある、正方形格子の中心に位置する点にあると決定され得る。別の例として、レイアウト302が2×2の正方形格子であり、吸引カップ324は、サイズが異なるものの同一の最大重量を保持することができる場合、グリップパターン箇所530は、より大きいサイズの吸引カップ324に近い点に割り当てられ得る。結果として、ロボットシステム100は、均一な態様、または均一に近い態様で、対象オブジェクト112に力を分布させることができる。
【0113】
[0123] グリップパターン箇所530で対象オブジェクト112をグリップすると、対象オブジェクト112全体にわたり最も均一に力を分布させることができるため、グリップパターン箇所530に基づく対象オブジェクト112のグリップは、最も安定した対象オブジェクト112のグリップ手段を提供することがわかった。さらに、グリップパターン箇所530に基づいて対象オブジェクト112をグリップしつつ、この対象オブジェクト112に対して作業118を実行することにより、対象オブジェクト112の落下がより少なくなることもわかった。
【0114】
[0124] 一実施形態において、グリップパターン生成モジュール510は、グリップパターン330のそれぞれについて、グリップパターン箇所530を生成することができる。結果として、グリップパターン生成モジュール510は、グリップパターン330と、関連したグリップパターン箇所530の例とのインデックス538を生成することができる。インデックス538は、アレイ、参照テーブル、またはグリップパターン330と関連したグリップパターン箇所530の例との組合せを指す。一実施形態において、グリップパターン330、グリップパターン箇所530、およびインデックス538が生成されると、これらは、更なる処理のために評価モジュール512に送られ得る。評価モジュール512について、以下にさらに詳細に説明する。
【0115】
[0125] スキャンモジュール502は、例えば2次元(2D)カメラ、3次元(3D)カメラ、赤外線カメラ、ライダ、レーダ、他の距離測定もしくは撮像デバイス、またはそれらの組み合わせといった撮像デバイスの1つまたは複数を含む、
図2のセンサユニット230による機能のスキャンまたは撮像を可能にし得る。例えば、スキャンモジュール502は、対象オブジェクト112の周囲環境を検出して、デジタル画像、ポイントクラウド/深度図、またはそれらの組み合わせを含むスキャン画像504を撮影し、対象オブジェクト112、対象オブジェクト112のグリップ点518、またはそれらの組み合わせを識別するように構成され得る。スキャン画像504を使用して、対象オブジェクト112のどこをグリップすべきかを決定する際に使用され得る対象オブジェクト112のデジタルモデル540を生成することができる。
【0116】
[0126] デジタルモデル540は、対象オブジェクト112の物理的特徴を含む、スキャンされた環境の物理的特徴のコンピュータ表現である。デジタルモデル540は、対象オブジェクト112をシミュレートすることができる。デジタルモデル540は、コンピュータファイル、フォーマット、データ構造、またはそれらの組み合わせとして表すことができる。
【0117】
[0127] 一実施形態において、対象オブジェクト112は、例えば、ロボットシステム100が遭遇していない、またはロボットシステム100が把握していないオブジェクトであり得るため、ロボットシステム100にとって未知の物理的特徴を有する場合がある。物理的特徴には、形状、サイズ、寸法、厚さ522、組成506、表面外形520、またはそれらの組み合わせが含まれ得る。
【0118】
[0128] スキャンモジュール502は、対象オブジェクト112の撮像を可能にすることによって、センサユニット230が、対象オブジェクトの物理的な寸法、形状、高さ、幅、深さ、またはそれらの組み合わせを含む、対象オブジェクト112の物理的特徴に関する、
図2のセンサ読取り値246を生成することができるようにし得る。これらのセンサ読取り値246は、スキャン画像504内に示され得る。
【0119】
[0129] さらに別の実施形態では、スキャンモジュール502は、センサユニット230や、X線機械またはスペクトロメータを含む他の外部デバイスと共に、対象オブジェクト112の組成506をさらに示すスキャン画像504を生成し、このスキャン画像504が対象オブジェクト112の組成506に関する詳細を含むことができるようにしてもよい。組成506は、対象オブジェクト112の物理的構成、化学的構成またはそれらの組み合わせを指す。ロボットシステム100は、対象オブジェクト112の組成506に基づいて識別されたグリップ点518において吸引グリッパ308によって加えられ得る力またはグリップを決定し、作業118中に対象オブジェクト112が損傷しないように、あるいは対象オブジェクト112がグリップされ得るグリップ点518を選択するように、釣り合った量の力がグリップ点518にて加えられるようにすることもできる。組成506の識別は、さらに、対象オブジェクト112をグリップすることができない場所を決定するのに使用することもできる。
【0120】
[0130] 例えば、対象オブジェクト112の表面の組成506が、この表面を構成する材料が不可逆的な塑性変形または破壊を受けないようにするには、
図3の力閾値322以下の力にしか耐えることができないと識別された場合、ロボットシステム100は、グリップ点518のその場所を使用すべきか否かを決定すること、あるいは、対象オブジェクト112が損傷しないようなグリップ点518の別の場所を識別することができる。ロボットシステム100は、また、組成506の識別に基づいて、グリップ点518に加えられる力または真空状態を調整することもできる。例えば、一実施形態において、対象オブジェクト112の表面の組成506が、この表面を構成する材料が不可逆的な塑性変形または破壊を受けないようにするには、力閾値322以下の力にしか耐えることができないと識別された場合、ロボットシステム100は、作動ユニット220によって加えられる力または真空状態を調整して、この力が力閾値322未満になるようにすることを決定することができる。一実施形態では、スキャンモジュール502は、スキャン画像504、デジタルモデル540、またはそれらの組み合わせを、生成され次第、さらなる処理のためにグリップ点マッピングモジュール508に引き渡すことができる。
【0121】
[0131] グリップ点マッピングモジュール508は、スキャン画像504、デジタルモデル540、またはそれらの組み合わせに基づいて、対象オブジェクト112のグリップ点518の識別を可能にし得る。グリップ点マッピングモジュール508は、スキャン画像504を処理し、オブジェクトデータ516に基づいて分析を実行することにより、グリップ点518を識別することができる。オブジェクトデータ516は、オブジェクトもしくは形状の既知の物理特性、材料の既知の特性、またはそれらの組み合わせを表すデータを指す。例えば、オブジェクトデータ516には、オブジェクトもしくは形状に関連した式、オブジェクトもしくは形状に関する既知の原子構造、既知のナノ構造、既知のマイクロ構造、、既知のマクロ構造、既知の結合特性、既知の動態、既知の結晶構造、既知の機械的特性等の既知の特性、またはそれらの組み合わせが含まれ得る。一実施形態において、オブジェクトデータ516は、外部ユニット514に記憶され得る。グリップ点マッピングモジュール508は、通信ユニット212を介して外部ユニット514と通信し、オブジェクトデータ516を検索することができる。別の実施形態では、オブジェクトデータ516は、ロボットシステム100のマスタデータ226の一部として、ストレージユニット206に記憶されてもよい。
【0122】
[0132] 一実施形態において、グリップ点マッピングモジュール508は、例えば、スキャン画像504、デジタルモデル540、またはそれらの組み合わせ内の形状を、オブジェクトデータ516の一部であり得る既知の形状のセットと比較することによりスキャン画像504、デジタルモデル540、またはそれらの組み合わせによって示された幾何学的形状を決定することで、分析を実行することができる。この比較に基づき、グリップ点マッピングモジュール508によって、幾何学的形状が対象オブジェクト112の形状と一致するか、ほぼ一致すると認識された場合、グリップ点マッピングモジュール508は、一致した幾何学的形状もしくはオブジェクトと関連したオブジェクトデータ516に基づいて、分析を実行することができる。
【0123】
[0133] グリップ点マッピングモジュール508は、例えば、オブジェクトまたは形状に関する表面積を決定するための式に基づいて、幾何学的形状に関する表面積、
図2の質量中心236、またはそれらの組み合わせを計算するなど、幾何学的形状の物理的特徴を決定することができる。幾何学的形状の物理的特徴に基づいて、グリップ点マッピングモジュール508は、対象オブジェクト112に対するグリップ点518を決定することができる。
【0124】
[0134] 一実施形態において、グリップ点マッピングモジュール508は、質量中心236(推定される質量中心236でもよい)に基づいて、グリップ点518を決定することができる。グリップ点マッピングモジュール508は、対象オブジェクト112に対するグリップ点518を、対象オブジェクト112の質量中心236に近い表面上の点として識別することができる。その結果、グリップ点マッピングモジュール508は、対象オブジェクト112が、確実に、質量が均一に分布された状態でグリップされるようにすることができる。
【0125】
[0135] 一実施形態において、グリップ点マッピングモジュール508は、さらに、質量中心236に加えて他の要因も考慮して、グリップ点518を識別することができる。例えば、一実施形態では、グリップ点マッピングモジュール508は、さらに、対象オブジェクト112の表面の平坦性または曲率を含む表面外形520、対象オブジェクト112の表面の厚さ522、対処オブジェクト112の表面の組成506、対象オブジェクト112の表面積、またはそれらの組み合わせを考慮して、グリップ点518を識別することができる。
【0126】
[0136] 例えば、一実施形態では、グリップ点マッピングモジュール508は、対象オブジェクト112の質量中心236を識別することができる。さらに、グリップ点マッピングモジュール508は、質量中心236に最も近い特定の表面が十分に平坦な表面ではなく(例えば、この表面が曲率または不均一性を有する)、その結果、吸引グリッパ308がこの表面に関連したグリップ点518をグリップすることができないこと、あるいは、表面積が吸引グリッパ308によってグリップするには小さすぎることも決定することができる。そして、グリップ点マッピングモジュール508は、さらに、質量中心236に近い表面上であって、吸引グリッパ308が対象オブジェクト112をグリップすることができるグリップ点518の1つまたは複数の別の場所を識別することができる。そのような別の場所は、例えば、対象オブジェクト112の角(あるいは、「角グリップ」)にある場所、対象オブジェクト112の面上の場所、または対象オブジェクト112に沿った任意の他の表面に沿った場所であり得る。その結果、グリップ点マッピングモジュール508は、グリップが達成できるような、質量中心236に最も近い点を識別するように試みるが、その点でグリップが達成できない場合には、対象オブジェクト112をグリップするために対象オブジェクト112の角に沿った場所など、グリップ点518の異なる場所を決定することができる。
【0127】
[0137] 別の実施形態では、グリップ点マッピングモジュール508は、スキャン画像504、デジタルモデル540、またはそれらの組み合わせによって決定された、対象オブジェクト112の表面の組成506、および、オブジェクトの既知の材料特性をさらに考慮することができる。例えば、一実施形態では、グリップ点518が、脆弱な材料から成る表面であって、損傷を受けないようにするには力閾値322よりも大きな力を加えることができない対象オブジェクト112の表面上にあることが識別された場合、グリップ点マッピングモジュール508は、そのグリップ点518を使用するべきか否かを決定すること、または、吸引グリッパ308が対象オブジェクト112をグリップすることができる、質量中心236に近いグリップ点518の他の場所をさらに識別することができる。そのような別の場所は、例えば、対象オブジェクト112の角(あるいは、「角グリップ」)にある場所、対象オブジェクト112の面上の場所、または、対象オブジェクト112に沿った任意の他の表面に沿った場所であり得る。
【0128】
[0138] 一実施形態において、グリップ点マッピングモジュール708が、スキャン画像504、デジタルモデル540、またはそれらの組み合わせと既知の形状またはオブジェクトのセットとの比較に基づいて対象オブジェクト112に対する一致を発見することができない場合、ロボットシステム100のユーザは、さらに、対象オブジェクト112のグリップ点518を設定することにより、グリップ点518を識別することの補助をすることができる。ロボットシステム100のユーザは、例えばディスプレイインタフェース218上のユーザインタフェース216を使用して、スキャン画像504、デジタルモデル540、またはそれらの組み合わせを分析することによりグリップ点518を指定し、吸引グリッパ308が対象オブジェクト112をグリップするための最適位置がどの位置であるかを決定することができる。一実施形態では、ロボットシステム100のユーザは、ユーザインタフェース216の入力デバイスを使用してグリップ点518を設定することができる。
【0129】
[0139] 一実施形態において、グリップ点マッピングモジュール508は、グリップ点518のランク付け順位524を生成することができる。ランク付け順位524は、対象オブジェクト112をグリップするために最も好適なグリップ点518の場所を示す、アレイ、参照テーブル、またはそれらの組み合わせであり得る。グリップ点518は、質量中心236からの距離、対象オブジェクト112の表面の組成506、グリップユニット306によってグリップすることが可能な表面積、またはそれらの組み合わせを含む、多数の要因に基づいて、最も好適なものから最も不適なものまでがランク付けされ得る。
【0130】
[0140] 例えば、一実施形態において、グリップ点518は、対象オブジェクト112の質量が均一に分布される場合に、最も安定して対象オブジェクト112をグリップするため、質量中心236に近いグリップ点518ほど、ランク付け順位524において高くランク付けされる。しかし、グリップ点マッピングモジュール508が、例えば、表面積が小さすぎること、吸引グリッパ308が角度338でグリップすることができないこと、吸引グリッパ308が力閾値322より大きい力を加えることになる結果、対象オブジェクト112の表面が破損することになるために、表面の組成506が脆すぎて吸引グリッパ308によってグリップされないこと、またはそれらの組み合わせ等の理由から、質量中心236に近い対象オブジェクト112の表面に沿って識別されたグリップ点518を使用することができないと決定した場合、グリップ点マッピングモジュール508はそのようなグリップ点518をランク付け順位524においてより低いランキングを有する点として割り当てることができる。より具体的な例を挙げると、グリップ点マッピングモジュール508は、対象オブジェクト112をグリップするために識別することができるグリップ点518の他の場所を決定し、そのグリップ点518の他の場所に対して、ランク付け順位524におけるより高いランキングを与えることができる。そのような他の場所は、例えば、対象オブジェクト112の角にある場所(あるいは、「角グリップ」)、対象オブジェクト112の面上の場所、または対象オブジェクト112に沿った任意の他の表面に沿った場所であり得る。
【0131】
[0141] その結果、グリップ点マッピングモジュール508は、対象オブジェクト112の所与の例に対して、最も好適なグリップ点518の例を決定することができる。別の実施形態では、ロボットシステム100のユーザは、グリップ点マッピングモジュール508によって決定された1つまたは複数のランキングを無効にしてランク付け順位524を決定することができる。別の実施形態では、ユーザは、グリップ点518のランク付け順位524を設定することができる。
【0132】
[0142] 上述したようにグリップ点518を識別すること、ランク付け順位524を生成すること、またはそれらの組み合わせによって、ロボットシステム100に、対象オブジェクト112をグリップするべきグリップ点518の好適な場所のリストを提供することができることがわかった。さらに、ランク付け順位524により、ロボットシステム100は、対象オブジェクトの向きまたは環境条件にかかわらず、対象オブジェクト112をグリップすることができるように、対象オブジェクト112をグリップするための複数のフォールバックグリップ点を備えることができる。
【0133】
[0143] 一実施形態において、グリップ点518が決定されると、グリップ点518、ランク付け順位524、またはそれらの組み合わせは、評価モジュール512に引き渡され得る。評価モジュール512は、グリップ点518をグリップパターン330にマッピングし、グリップパターンランク528を決定することができる。グリップパターンランク528は、グリップパターン330のどの構成を使用して対象オブジェクト112をグリップすべきかを示すアレイ、参照テーブル、またはそれらの組み合わせであり得る。
【0134】
[0144] 評価モジュール512は、多様な方法での、グリップ点518のグリップパターン330へのマッピング、グリップパターンランク528の決定、またはそれらの組み合わせを可能にする。例えば、一実施形態において、評価モジュール512は、グリップパターン330のそれぞれに対して、グリップ点518をグリップパターン箇所530に位置合わせすることによって、グリップ点518がグリップパターン330の特定の構成によってグリップされることができるか否かを決定することができる。別の例では、評価モジュール512は、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせの全てもしくは大半を使用して対象オブジェクト112をグリップするためのグリップパターン箇所530と関連したグリップパターン330の例があるか否かを決定することができる。例えば、評価モジュール512は、グリップ点518の特定の例において、対象オブジェクト112をグリップするために全ての吸引グリッパ308が使用できるわけではないことを決定した場合、評価モジュール512は、そのグリップ点518の特定の場所に対するグリップパターン330の特定の構成に対して、グリップパターンランク528の低い値を割り当て、グリップ点518の特定の場所において対象オブジェクト112をグリップするために使用することができるグリップパターン330の他の例を検索することができる。しかし、評価モジュール512が、グリップ点518の特定の場所において、対象オブジェクト112をグリップするために1つまたは複数のグリップパターン330の例を使用することができると決定した場合は、評価モジュール512は、グリップ点518の特定の場所におけるグリップのために、グリップパターンランク528のより高い値を有するグリップパターン330を割り当てることができる。
【0135】
[0145] 別の実施形態において、評価モジュール512は、対象オブジェクト112をグリップすることができる吸引カップ324を有する吸引グリッパ308に基づいて、グリップパターンランク528を決定することができる。例えば、一実施形態では、吸引グリッパ308の複数の例を使用して対象オブジェクト112をグリップすることができる。別の例では、吸引グリッパ308は、吸引カップ324の2つ以上の例を有する。具体的には、例として、複数の吸引カップ324が異なる材料、異なるサイズ、またはそれらの組み合わせから形成されて、このことが、吸引カップ324が対象オブジェクト112をグリップする能力に影響することがある。評価モジュール512は、対象オブジェクト112をグリップするのに適さない(例えば、対象オブジェクト112の重量を支えることができない)吸引カップ324を使用したグリップパターン330に対して、グリップパターンランク528のより低い値を割り当てることができる。
【0136】
[0146] 別の実施形態において、評価モジュール512は、ユーザの嗜好に応じてグリップパターンランク528を決定することができる。例えば、ロボットシステム100のユーザは、対象オブジェクト112をグリップする際に使用することが可能な、グリップパターン330の例、吸引グリッパ308の例、またはそれらの組み合わせを設定することができる。評価モジュール512は、ユーザが好むグリップパターン330の例に対して、グリップパターンランク528のより高い値を割り当てることができる。
【0137】
[0147] マッピングに基づいて、評価モジュール512は、グリップ点518および関連したグリップパターン330の例の全てに対して、グリップパターンランク528を決定することができる。一実施形態において、グリップパターンランク528が生成されると、このグリップパターンランク528がストレージユニット206に保存され得る。グリップパターンランク528は、オンライン状態406ロボットシステム100によって、対象オブジェクト112をグリップするのに使用され得る。
【0138】
[0148] 本明細書に記載する吸引制御パターン生成機構404を実施するロボットシステム100は、生成されたグリップパターンランク528により、対象オブジェクト112がグリップされるべきグリップ点518およびグリップパターン330の最適な例のリストが提供されるため、対象オブジェクト112をグリップする際の制御を強化することができることが分かった。さらに、制御の強化により、対象オブジェクト112をグリップする際の落下が少なくなることも分かった。
【0139】
[0149] さらに、本明細書に記載する吸引制御パターン生成機構404を実施するロボットシステム100は、ロボットシステム100の能力に基づくより優れた設定可能性(configurability)およびカスタマイゼーションを備え、識別された対象オブジェクト112がその個別の物理的特性に応じてグリップされることができるように、対象オブジェクト112の各例に対して、個別に設定されたグリップパターン330の構成を生成することが分かった。
【0140】
[0150] さらに、本明細書に記載する吸引制御パターン生成機構404を実施するロボットシステム100は、ロボットシステム100が対象オブジェクト112をグリップするためのいくつかの選択肢を有するように、カスタマイズされたグリップパターン330の構成を生成する能力に基づいて、より高い確率で対象オブジェクト112をグリップすることができることが分かった。
【0141】
[0151] 吸引制御パターン生成機構404は、一例としてのモジュール機能や順序で説明した。ロボットシステム100は、上記とは異なる態様で、モジュールを分けたり、モジュールを順序付けたりしてもよい。例えば、ソフトウェア210は、吸引制御パターン生成機構404のためのモジュールを含むことができる。具体的な例として、ソフトウェア210は、グリップパターン生成モジュール510、スキャンモジュール502、グリップ点マッピングモジュール508、評価モジュール512、および、これらに含まれた関連のサブモジュールを含むことができる。
【0142】
[0152]
図2の制御ユニット202は、ソフトウェア210を実行してモジュールを動作させることができる。例えば、制御ユニット202は、ソフトウェア210を実行して、グリップパターン生成モジュール510、スキャンモジュール502、グリップ点マッピングモジュール508、評価モジュール512、および、これらに含まれた関連のサブモジュールを実施することができる。
【0143】
[0153] 本出願に記載されるモジュールは、制御ユニット202によって実行される非一時的なコンピュータ可読媒体に記憶された命令として実施され得る。非一時的なコンピュータ可読媒体は、ストレージユニット206を含み得る。非一時的なコンピュータ可読媒体は、ハードディスクドライブ、不揮発性ランダムアクセスメモリ(NVRAM)、固体記憶装置(SSD)コンパクトディスク(CD)、デジタルビデオディスク(DVD)、またはユニバーサルシリアルバス(USB)フラッシュメモリデバイスなどの不揮発性メモリを含み得る。非一時的なコンピュータ可読媒体は、ロボットシステム100の一部として一体化されていてもよく、またはロボットシステム100から取り外し可能な部分としてインストールされていてもよい。
【0144】
[0154] 次に、
図6を参照すると、本発明の1つまたは複数の実施形態に従ってグリップ点518をグリップパターン330へマッピングする例が示されている。
図6は、
図5の評価モジュール512が、グリップパターン330のそれぞれについて、グリップ点518をグリップパターン箇所530に位置合わせし、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせの全てまたは大半を対象オブジェクト112のグリップに使用することができるグリップパターン箇所530に関連したグリップパターン330が存在するか否かを決定することにより、グリップ点518がグリップパターン330の特定の構成によってグリップされ得るか否かを決定する実施形態を示している。
図6は、さらに、レイアウト302が2×2の正方形であり、吸引カップ324が多様なサイズである実施形態を示している。
図6は、説明の便宜上の図示にすぎない。レイアウト302およびグリップパターン330の他の例を使用してもよい。
【0145】
[0155]
図6に示すように、マッピングは、対象オブジェクト112の質量中心236において対象オブジェクト112をグリップしようと試みることによって開始することができる。質量中心236が禁止領域602(例えば、対象オブジェクト112の表面を構成する材料の組成506が、ベースラインと比較して、グリップするには脆すぎるため、または、
図5を参照して説明した任意の他の理由のため、グリップすることができない当該表面上の点またはエリア)に位置している場合、評価モジュール512は、対象オブジェクト112がレイアウト302およびグリップパターン330に従ってグリップすることができるように、対象オブジェクト112の表面に沿って質量中心236から離れたグリップ点518を決定することができる。評価モジュール512は、グリップパターン箇所530を、対象オブジェクト112の質量中心236から離れ、潜在的にグリップが可能なグリップ点518に位置合わせするためのオフセット604を決定することができる。オフセット604は、評価モジュール512がグリップパターン箇所530を質量中心236から離れて移動させる分の距離を指す。例えば、
図6において、評価モジュール512は、グリップパターン箇所530を、グリップすることが可能な1つまたは複数のグリップ点518の潜在的な位置として決定された位置「A」に決定することができる。評価モジュール512は、1つまたは複数のグリップ点518をテストして、これらのグリップ点518がグリップパターン330に従ってグリップされることができるか否かを決定することができる。1つまたは複数のグリップ点518がグリップパターン330に従ってグリップされ得る場合、評価モジュール512は、対象オブジェクト112をグリップするためのグリップパターン330の好適な例の1つとして、位置「A」をグリップパターンランク528として割り当てることができる。
【0146】
[0156] 一実施形態において、評価モジュール512は、さらに、グリップすることができるグリップ点518の他の例を決定することができる。例えば、評価モジュール512は、グリップパターン箇所530をグリップ点518の他の場所へと移動させるためのオフセット604を再び決定し、このグリップ点518がグリップ可能であるか否かを決定することができる。例えば、
図6において、グリップ点518が位置「B」として図示されている。上記同様、位置「B」のグリップ点518がグリップ可能である場合、評価モジュール512は、対象オブジェクト112をグリップすることができるグリップパターン330の他の好適な例の1つとして、位置「B」をグリップパターンランク528に割り当てることができる。一実施形態において、評価モジュール512は、上述したのと同様な態様で、グリップ可能なグリップ点518を決定し続けることができる。例えば、評価モジュール512は、グリップ点518の別の場所、例えば位置「C」へとグリップパターン箇所530を移動するためのオフセット604を決定することができる。このグリップ点518がグリップ可能である場合、評価モジュール512は、対象オブジェクト112をグリップすることができるグリップパターン330の他の好適な例の1つとして、位置「C」をグリップパターンランク528に割り当てることができる。
【0147】
[0157] 一実施形態において、評価モジュール512が、いずれのグリップ点518も、例えば禁止領域602の範囲内に入っており、グリップすることができないと決定した場合、評価モジュール512は、これらのグリップ点518を無視し、かつこれらのグリップ点518をグリップパターンランク528に含めないようにすることができる。
【0148】
[0158] 次に、
図7を参照すると、本発明の一実施形態における、
図1のロボットシステム100のオンライン状態406の例示的な制御フローが示されている。
図7に示す実施形態において、
図4および5の吸引制御パターン生成機構404は、
図1の多様な対象オブジェクト112に対する、
図3および5のグリップパターン330、
図5のグリップ点518、
図5のグリップパターンランク528、またはそれらの組み合わせがロボットシステム100に把握され、
図2のマスタデータ226の一部として、
図2のストレージユニット206に記憶されるように実行され得る。
【0149】
[0159] ロボットシステム100は、
図2、3および4のロボットシステム100の多様な機能ユニット、ロボットシステム100の外部の1つまたは複数の構成要素、またはそれらの組み合わせを使用して、オンライン状態406を実施することができる。一実施形態において、オンライン状態406は、スキャンモジュール502、オブジェクト識別モジュール704、ベースプラン生成モジュール706、ベースプラン実行モジュール708、確立グリップ測定モジュール716、ベースプラン実行継続モジュール720、反復カウントモジュール722、オブジェクト再グリップモジュール724、ベースプラン実行停止モジュール726、ストレージユニット206、エラー生成モジュール728、またはそれらの組み合わせを使用して実施され得る。
【0150】
[0160] 一実施形態において、スキャンモジュール502は、オブジェクト識別モジュール704に接続され得る。オブジェクト識別モジュール704は、ベースプラン生成モジュール706に接続され得る。ベースプラン生成モジュール706は、ベースプラン実行モジュール708およびストレージユニット206に接続され得る。ベースプラン実行モジュール708は、確立グリップ測定モジュール716に接続され得る。確立グリップ測定モジュール716は、オブジェクト再グリップモジュール724、ベースプラン実行継続モジュール720、および反復カウントモジュール722に接続され得る。ベースプラン実行継続モジュール720は、スキャンモジュール502に接続され得る。反復カウントモジュール722は、オブジェクト再グリップモジュール724およびベースプラン実行停止モジュール726に接続され得る。ベースプラン実行停止モジュール726は、エラー生成モジュール728に接続され得る。
【0151】
[0161]
図5を参照して説明されたものと同様のスキャンモジュール502は、例えば2次元(2D)カメラ、3次元(3D)カメラ、赤外線カメラ、ライダ、レーダ、他の距離測定デバイスもしくは撮像デバイス、またはそれらの組み合わせ等の1つまたは複数の撮像デバイスを含む、
図2のセンサユニット230が、スキャン機能もしくは撮像機能を実行することを可能にし得る。スキャンモジュール502は、対象オブジェクト112に関して、
図1の指定エリア114または
図1の作業場所116のスキャンを可能にし得る。スキャンは、
図5を参照して説明したものと同様の技術を使用して行うことができる。そして、スキャンモジュール502の実行により、
図2のセンサ読取り値246(例えば、スキャン画像504)の生成を含む、同様の出力が生成され得る。スキャン画像504を使用して、オンライン状態406において、対象オブジェクト112を識別または認識することができる。例えば、スキャンモジュール502は、センサユニット230を使用して、大箱、パレット、箱、コンベアベルト、トラック、またはそれらの組み合わせ内にある対象オブジェクト112のデジタル画像、ポイントクラウド/深度図、またはそれらの組み合わせなどのスキャン画像504を生成することができる。一実施形態において、スキャン画像504を使用して、ロボットシステム100のさらなる構成要素によって対象オブジェクト112を識別するために使用され得る対象オブジェクト112の
図5のデジタルモデルを生成することができる。一実施形態では、スキャンが実行されると、例えばスキャン画像504、デジタルモデル540、またはそれらの組み合わせなどのセンサ読取り値246、ならびに制御は、オブジェクト識別モジュール704に引き渡され得る。
【0152】
[0162] オブジェクト識別モジュール704は、受信したセンサ読取り値246(例えば、スキャン画像504)に基づいて、対象オブジェクト112の識別を可能にし得る。オブジェクト識別モジュール704は、スキャン画像504内の幾何学的形状を決定し、それら幾何学的形状を既知の形状またはオブジェクトのセットと比較するといった、
図5およびグリップ点マッピングモジュール508を参照して説明したものと同様のプロセスで対象オブジェクト112を認識することができる。この比較に基づいて、対象オブジェクト112は幾何学的形状または既知のオブジェクトにマッピングされ得る。一致が見つかった場合、オブジェクト識別モジュール704は、どの既知のオブジェクトまたは幾何学的形状に対して対象オブジェクト112が認識されたかを示すオブジェクトパラメータ702を生成することができる。オブジェクトパラメータ702は、対象オブジェクト112を既知のオブジェクトまたは幾何学的形状にマッピングするためにオブジェクト識別モジュール704によって割り当てられ得る変数、フラグ、またはそれらの組み合わせであり得る。例えば、オブジェクト識別モジュール704が、対象オブジェクト112を「箱」であると認識した場合、ロボットシステム100の更なる構成要素が、この対象オブジェクト112が「箱」であることを認識することができるように、この「箱」にオブジェクトパラメータ702を設定または割り当てることができる。
【0153】
[0163] 別の実施形態において、オブジェクト識別モジュール704は、対象オブジェクト112を識別することが可能な、ロボットシステム100にとって既知のタグまたはラベルを検索することによって、対象オブジェクト112を識別することができる。例えば、タグまたはラベルには、対象オブジェクト112を識別することが可能なバーコード、クイックレスポンス(QR)コード(登録商標)、ロゴ、またはそれらの組み合わせが含まれ得る。タグまたはラベルは、オブジェクトにマッピングまたは関連付けられ、ロボットシステム100に認識され得る。タグまたはラベルは、スキャンモジュール502のスキャン動作の一部としてスキャンされ得るものであり、スキャン画像504、デジタルモデル540、またはそれらの組み合わせの一部として含まれ得る。
図5を参照して説明したものと同様に、一致が見つかった場合、オブジェクト識別モジュール704は、対象オブジェクト112がどのオブジェクトまたは幾何学的形状として認識されたかを示すオブジェクトパラメータ702を生成し、上述したのと同様の態様で、このオブジェクトパラメータ702を設定または割り当てることができる。
【0154】
[0164] 一実施形態において、オブジェクト識別モジュール704が対象オブジェクト112を識別すると、オブジェクト識別モジュール704は、対象オブジェクト112に対して
図1の作業118を実行するためのベースプラン730を生成するために、オブジェクトパラメータ702、スキャン画像704、またはそれらの組み合わせをベースプラン生成モジュール706に引き渡すことができる。ベースプラン生成モジュール706は、オブジェクトパラメータ702、スキャン画像504、またはそれらの組み合わせに基づいて、対象オブジェクト112に対して作業118を実行するためのベースプラン730を生成することができる。
【0155】
[0165] ベースプラン730は、対象オブジェクト112のグリップ、操縦、搬送、またはそれらの組み合わせなどの作業118を実行するために必要な一連の工程を指す。ベースプラン730には、対象オブジェクト112をグリップし、この対象オブジェクト112をある場所から別の場所に搬送するために必要な工程が含まれ得る。例えば、一実施形態において、ベースプラン730は、ロボットシステム100が、スキャン画像504に従って現在の場所から別の場所へと対象オブジェクト112を選択することを含み得る。
【0156】
[0166] ベースプラン730の生成の一部として、ロボットシステム100は、ベースプラン730を実施するために、
図3の構造継手312、
図3のアーム部分314、
図3のグリップユニット306、
図3の吸引グリッパ308、またはそれらの組み合わせを動作させることになる
図2の作動ユニット220のための一連のコマンド、設定、またはそれらの組み合わせを計算することができる。一連のコマンド、設定、またはそれらの組み合わせは、1つまたは複数の制約条件、目標、ルール、またはそれらの組み合わせに基づき得る。例えば、ベースプラン生成モジュール706は、A
*アルゴリズム、D
*アルゴリズム、または他の格子ベースの検索を含む1つまたは複数のプロセスを使用して、ピックアップ場所からドロップ場所まで対象オブジェクト112を移動するための空間を通る経路を計算することができる。一連のコマンド、設定、またはそれらの組み合わせは、さらなるプロセス、機能、式、変換テーブル、またはそれらの組み合わせを使用して、この経路を、作動ユニット220のための一連のコマンドまたは設定に変換させることができる。
【0157】
[0167] ベースプラン730の生成には、対象オブジェクト112のどの表面または位置が吸引グリッパ308、吸引カップ324、またはそれらの組み合わせによってグリップされ得るかを決定することも含まれ得る。例えば、一実施形態において、ベースプラン730は、対象オブジェクト112のどのグリップ点518がグリップに利用可能であるか、指定エリア114から作業場所116に対するグリップ点518の場所および向き、対象オブジェクト112を囲む他のオブジェクト、またはそれらの組み合わせを決定することを含み得る。この決定は、例えば、グリップ点518の特定の場所がグリップできなくなるような、何らかの隣接したオブジェクトまたはグリップ点518に近い表面が存在するか否かを決定することによって、行われ得る。
【0158】
[0168] 別の実施形態では、上記決定は、例えば、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせによってグリップ点518をグリップすることができなくなるような、対象オブジェクト112のグリップ点518をブロックする別のオブジェクトまたは表面があるか否かを決定することによって行われ得る。別の実施形態では、上記決定は、例えば、対象オブジェクト112がコンテナ、箱、またはパレット内にあり、対象オブジェクト112のグリップ点518のある場所が、コンテナ、箱、またはパレットのある側からグリップすることができること、コンテナ、箱、またはパレットのその側のグリップ点518が対象オブジェクト112をグリップするために使用することができること、対象オブジェクト112がグリップ点518のある場所を使用して、コンテナ、箱、またはパレットに対して角度338でグリップされ得ること、またはそれらの組み合わせを決定することによって行われ得る。
【0159】
[0169] 別の実施形態では、上記決定は、例えば、対象オブジェクト112の向きに基づいて行われ得る。例えば、対象オブジェクト112は、その把持可能な表面の1つまたは複数が、ある平面に対して角度338になるようにコンテナ、箱、またはパレット内でシフトした場合、ベースプラン生成モジュール706は、どのグリップ点518が、どのような角度338の例でグリップされるべきかを決定することができる。その結果、ベースプラン730は、このベースプラン730を適切に実施するには対象オブジェクト112のどのエリアまたは表面をグリップすることができるかを決定するように、生成され得る。
【0160】
[0170] 一実施形態において、ベースプラン生成モジュール706は、対象オブジェクト112のどのグリップ点518が他のオブジェクトによってブロックされるかについての決定に基づいて、グリップパターン330の1つまたは複数の例を使用しないことをさらに決定することができる。例えば、一実施形態では、対象オブジェクト112のグリップ点518の1つまたは複数をブロックする隣接したオブジェクトまたは表面が存在する場合、ベースプラン生成モジュール706は、グリップ点518の特定の場所に関連したあるグリップパターン330が対象オブジェクト112をグリップするために使用することができないため、このグリップパターン330を使用して対象オブジェクト112をグリップすることができないと決定することができる。一実施形態において、例えば、ベースプラン生成モジュール706が、表面がブロックされているにもかかわらず、グリップパターン330のある例によってグリップすることができると決定した場合、ベースプラン生成モジュール706は、グリップパターン330の当該例を使用してベースプラン730を生成することができる。
【0161】
[0171] 同様に、対象オブジェクト112が、他のオブジェクトまたは平面に対する角度338で、1つまたは複数のグリップ点518を有する場合、ベースプラン生成モジュール706は、例えばグリップパターン330、吸引グリッパ308、吸引カップ324、またはその組み合わせが角度338の特定の例において動作または使用することができないことから、角度338の特定の例において対象オブジェクト112をグリップするためにグリップパターン330のある例を使用することができるか否かを決定することができる。ベースプラン生成モジュール706が1つまたは複数のグリップパターン330を使用することができないと決定した場合、ベースプラン生成モジュール706は、ベースプラン730を生成する際にそれらのグリップパターン330を無視することができる。
【0162】
[0172] 一実施形態において、ベースプラン生成モジュール706は、さらに、ベースプラン730を生成する際にグリップパターンランク528を使用することができる。例えば、ベースプラン生成モジュール706は、対象オブジェクト112の特定の例に対するグリップパターン330のうち最も高くランク付けされた構成を、ベースプラン730において使用されるグリップパターン330として割り当てることにより、グリップパターンランク528を使用してベースプラン730を生成することができる。ベースプラン生成モジュール706が、1つまたは複数のグリップパターン330を使用することができないと決定した場合、ベースプラン生成モジュール706は、それらのグリップパターン330の例をベースプラン730から除外することができるが、それでもなお、グリップパターンランク528のうち、次に高いランクが付けられた利用可能なグリップパターン330の構成およびグリップ点518を、対象オブジェクト112をグリップするためのベースプラン730で使用されるグリップパターンランク528において割り当てることにより、グリップパターンランク528を維持することができる。
【0163】
[0173] ベースプラン生成モジュール706がベースプラン730を生成すると、制御およびベースプラン730は、ベースプラン実行モジュール708に引き渡され得る。ベースプラン実行モジュール708は、一連のコマンド、設定、またはそれらの組み合わせに従って、作動ユニット220およびロボットシステム100の他の機能ユニットの動作を可能にすることに基づいて、ベースプラン730の実施を可能にすることができる。例えば、ベースプラン実行モジュール708は、ベースプラン730において、第1の組のアクション、コマンド、命令、またはそれらの組み合わせを起動することができる。具体例として、ベースプラン実行モジュール708は、作動ユニット220の動作を可能にし、グリップユニット306、吸引グリッパ308、またはそれらの組み合わせを、対象オブジェクト112をグリップするための、場所にまたは開始場所における向きで配置することができる。一実施形態において、開始位置は、例えば、対象オブジェクト112の質量中心236におけるグリップ点518にデフォルト設定することができる。対象オブジェクト112をベースプラン730に従ってグリップすることができない場合、ベースプラン実行モジュール708は、作動ユニット220が、ベースプラン730に従って対象オブジェクト112をグリップすることができる次の利用可能な表面に移動することを可能にし得る。
【0164】
[0174] ベースプラン実行モジュール708は、作動ユニット220の動作を可能にして、グリップユニット306、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせに対象オブジェクト112に関与または対象オブジェクト112をグリップさせることができる。対象オブジェクト112は、評価モジュール512によって予め決定されたように、グリップパターンランク528およびグリップパターン330に従って関与またはグリップされ得る。
【0165】
[0175] 一実施形態において、ベースプラン実行モジュール708は、ベースプラン730の実行を監視することができる。例えば、ベースプラン730を実施している間に、ベースプラン実行モジュール708が、対象オブジェクト112の表面の1つをグリップまたは関与することができない、またはベースプラン730において対象オブジェクト112をグリップするために割り当てられたグリップパターン330の1つを使用することができないと決定した場合、ベースプラン実行モジュール708は、グリップパターン330およびグリップパターンランク528を巡回し(cycle through)、対象オブジェクト112に関与または対象オブジェクト112をグリップするために使用可能なグリップパターン330の他の例を見つけることができる。
【0166】
[0176] 一実施形態において、ベースプラン実行モジュール708は、さらに、一定数のグリップアクションを追跡するために使用される反復カウンタ732を設定、再設定、または初期化することができる。反復カウンタ732は、ベースプラン実行モジュール708が作動ユニット220の動作を可能にして対象オブジェクト112をグリップしようと試みた回数を追跡し続けるために使用されるパラメータまたは変数であり得る。例えば、対象オブジェクト112の最初のグリップを実行する時、ベースプラン実行モジュール708は、反復カウンタ732を「1」の値に設定することができる。「1」の値は、対象オブジェクト112をグリップするための最初の試みを指す。反復カウンタ732を使用して、ベースプラン730の実行を続けるか、またはベースプラン730の実行を停止するかを決定することができる。反復カウンタ732について、以下により詳細に説明する。
【0167】
[0177] 一実施形態において、ベースプラン実行モジュール708は、作動ユニット220がベースプラン730に従って対象オブジェクト112に関与および対象オブジェクト112をグリップすることできるようにすると、ベースプラン実行モジュール708は、さらに、作動ユニット220がグリップユニット306、吸引グリッパ308、またはそれらの組み合わせの移動を可能にすることにより、最初のリフトを実行することができるようにする。対象オブジェクト112の関与およびグリップは、
図3を参照し、具体的には、グリップユニット306、吸引グリッパ308、吸引カップ324、およびセンサユニット230が対象オブジェクト112の表面に関与し、対象オブジェクト112に対するグリップを確立し、そのグリップが対象オブジェクト112をグリップするのに十分であるか否かを測定する動作に関して説明された原理に従って、実行することができる。
【0168】
[0178] 一実施形態において、ベースプラン実行モジュール708が最初のリフトを可能にすると、反復カウンタ732および制御は、確立グリップ測定モジュール716に引き渡され、ロボットシステム100が、対象オブジェクト112に対して確立されたグリップ710がベースプラン730を実施し続けるのに十分であるか否かを決定することができるようになる。
【0169】
[0179] 確立グリップ測定モジュール716は、
図3に示した多様な方法を使用して確立されたグリップ710の測定を可能にする。確立されたグリップ710は、吸引グリッパ308、吸引カップ324、またはそれらの組み合わせによって対象オブジェクト112に加えられた力およびトルクに関連した量、変数、測定値、またはそれらの組み合わせを指す。確立グリップ測定モジュール716は、
図3を参照して説明したように、通信ユニット212を介してセンサユニット230からセンサ読取り値246を取得して、最初のリフトの結果として吸引グリッパ308、吸引カップ324、またはそれらの組み合わせによって対象オブジェクト112に加えられている力またはトルクを決定することにより、確立されたグリップ710の測定を可能にし得る。確立されたグリップ710は、接触測定値320の例であり得る。
【0170】
[0180] 確立グリップ測定モジュール716が対象オブジェクト112に加えられている力およびトルクを取得すると、確立グリップ測定モジュール716は、吸引グリッパ308および吸引カップ324によって対象オブジェクト112に加えられている力およびトルクが少なくとも
図3の力閾値322を満たし、その結果、対象オブジェクト112が適切にグリップされ且つベースプラン730が実行され続けることができるか否かを決定することができる。確立グリップ測定モジュール716は、上記決定をするために、
図3を参照して説明したのと同一の原理を使用して、力およびトルクを力閾値322と比較し、対象オブジェクト112に対する作業118をベースプラン730に従って実行するのに対象オブジェクト112が十分にグリップされているか否かを決定することができる。
【0171】
[0181] 一実施形態において、例えば、確立グリップ測定モジュール716が、力およびトルクを比較した後、対象オブジェクト112に加えられた力およびトルクが力閾値322よりも低く、この力およびトルクが作業118を実行するのに十分なグリップを維持するための力閾値322を満たしていないと決定した場合、制御が反復カウントモジュール722に引き渡されて反復カウンタ732が増加され、対象オブジェクト112を再グリップするための試みが起動され得る。
【0172】
[0182] 反復カウントモジュール722は、ロボットシステム100による対象オブジェクト112をグリップする試みが失敗すると、反復カウンタ732の値を増加させることができる。一実施形態において、反復カウンタ732が増加されると、反復カウントモジュール722は、さらに、反復カウンタ732が反復閾値736を超えたか否かを評価することができる。反復閾値736は、対象オブジェクト112をグリップするために使用可能なベースプラン730内のグリップパターン330の数を表し得る数字、値、またはパラメータであってよい。一実施形態では、反復カウンタ732が反復閾値736以下である間は、対象オブジェクト112をグリップするために使用可能なグリップパターン330がまだ残っており、ロボットシステム100は、対象オブジェクト112をグリップするために残されたグリップパターン330に基づいて対象オブジェクト112の再グリップを試みることができる。反復カウンタ732が増加されると、制御はオブジェクト再グリップモジュール724に引き渡され得る。
【0173】
[0183] オブジェクト再グリップモジュール724は、対象オブジェクト112の再グリップを可能にし得る。オブジェクト再グリップモジュール724は、対象オブジェクト112を再グリップするための一連のコマンド、設定、またはそれらの組み合わせに従って作動ユニット220を動作させることに基づいて、ベースプラン730を実施し続けることを可能にすることによって、対象オブジェクト112の再グリップを可能にする。一実施形態では、グリップパターン330の特定の構成が対象オブジェクト112をグリップすることに失敗した場合、オブジェクト再グリップモジュール724は、ベースプラン730に従って対象オブジェクト112を再グリップするために実行可能なグリップパターン330を探して、対象オブジェクト112の再グリップを試みることができる。
【0174】
[0184] オブジェクト再グリップモジュール724は、多様な方法でグリップパターン330を巡回することができる。例えば、一実施形態において、グリップの試みが失敗した後、オブジェクト再グリップモジュール724は、可能であればグリップパターン330の異なる構成を使用して、グリップ点518の1つまたは複数の同一場所において対象オブジェクト112の再グリップを試みることができる。別の実施形態では、オブジェクト再グリップモジュール724は、ベースプラン730に従ってグリップが可能であると決定されたことがある、対象オブジェクト112の他のグリップ点518の他の場所を選択し、そのグリップ点518に関連した1つまたは複数のグリップパターン330を使用して、グリップ点518の上記異なる場所において対象オブジェクト112の再グリップを試みることができる。
【0175】
[0185] 一実施形態において、オブジェクト再グリップモジュール724は、さらに、グリップパターンランク528に従って対象オブジェクト112の再グリップを試みることができる。例えば、オブジェクト再グリップモジュール724は、最高ランクのグリップパターン330から最低ランクのグリップパターン330の構成までグリップパターンランク528を巡回し、対象オブジェクト112の表面の関連した場所に沿ったグリップパターン330に基づいて、対象オブジェクト112のグリップを試みることによって、対象オブジェクト112の再グリップを試みることができる。結果として、オブジェクト再グリップモジュール724は、グリップパターンランク528に基づいて、対象オブジェクト112全体に均一な力の分布を提供することになるグリップ点518およびグリップパターン330を使用して、グリップパターンランク528に基づいた対象オブジェクト112の再グリップを試みることができる。
【0176】
[0186] 一実施形態において、対象オブジェクト112の再グリップを試みた後、再び、制御は確立グリップ測定モジュール716に引き渡され、上述したのと同様の態様で、対象オブジェクト112に加えられている力およびトルクを決定することができる。試みた再グリップが、なおも力閾値322を満たさない力およびトルクを生成している場合、ロボットシステム100は、反復カウンタ732が反復閾値736を超えるまで上述したような対象オブジェクト112の再グリップの実行を試みることができる。一実施形態において、反復カウンタ732が反復閾値736を超えると、制御は、ベースプラン実行停止モジュール726に引き渡され得る。
【0177】
[0187] ベースプラン実行停止モジュール726は、反復カウンタ732が反復閾値736を超えたことに基づいて、ベースプラン730の実行を停止することができる。ベースプラン実行停止モジュール726は、ロボットシステム100の真空ホース、真空ジェネレータ、および作動ユニット220をオフにすることにより、ベースプラン730の終了を可能にし得る。一実施形態において、ベースプラン実行停止モジュール726がベースプラン730の終了を可能にすると、制御は、エラー生成モジュール728に引き渡され得る。
【0178】
[0188] エラー生成モジュール728は、対象オブジェクト112のグリップの失敗に基づいて、エラー738の送信を可能にし得る。エラー738は、視覚メッセージもしくは音声メッセージ、信号、数字コード、またはそれらの組み合わせであり得る。一実施形態において、エラー生成モジュール728は、通信ユニット212を介して、ロボットシステム100の他の機能ユニット、ロボットシステム100のユーザ、外部システム、またはそれらの組み合わせに、グリップ失敗を示すエラー738を送信することができる。
【0179】
[0189] さらに例を挙げると、例えば、対象オブジェクト112のグリップまたは再グリップにより、力閾値322以上の力およびトルクが生成された場合、確立グリップ測定モジュール716は、対象オブジェクト112に加えられる力およびトルクがベースプラン730の実施を続けるのに十分に強いと決定し、制御は、ベースプラン実行継続モジュール720に引き渡され、ベースプラン730の実施を続けることができる。したがって、ロボットシステム100は、一連のコマンドまたは設定の残りに従って、ベースプラン730の実施を続けることができる。例えば、ロボットシステム100は、ベースプラン730に従って、例えば垂直方向、水平方向、またはそれらの組み合わせ方向に対象オブジェクト112を移送するか、あるいは対象オブジェクト112の向きを変えることができる。
【0180】
[0190] ベースプラン実行継続モジュール720は、さらに、ベースプラン730の継続実行の間、対象オブジェクト112に対する力およびトルクを監視し続けることにより、ベースプラン730の監視を可能にする。ベースプラン実行継続モジュール720は、ベースプラン730の継続実行中に、確立グリップ測定モジュール716に接続し、確立グリップ測定モジュール716に、対象オブジェクト112に対する確立されたグリップ710がベースプラン730の実行を継続するのに十分であるか否かを決定させることにより、上記監視を行うことができる。一実施形態において、確立グリップ測定モジュール716が、ベースプラン730の継続実行中のいずれかのタイミングで、対象オブジェクト112に対する力およびトルクが力閾値322を下回ったと決定した場合、ベースプラン実行継続モジュール720は、対象オブジェクト112に対する力およびトルクが、対象オブジェクト112を落下させることなくグリップするのに十分な大きさになるように、アームユニット102の
図3の速度340および
図3の加速度342を調整し、
図3を参照して上述したように対象オブジェクト112に対するグリップを再確立することができる。
【0181】
[0191] 一例として、対象オブジェクト112上のトルクが吸引グリッパ308または吸引カップ324によって対象オブジェクト112に対するグリップを維持するために生成された力よりも大きいと決定された場合、ベースプラン実行継続モジュール720は、例えばアームユニット102の速度340および加速度342を下げることにより、アームユニット102の速度を調整し、対象オブジェクト112上のトルクを補償することができる。
【0182】
[0192] 別の実施形態では、ベースプラン730の実行中に、1つまたは複数の吸引グリッパ308が対象オブジェクト112に対するグリップを失った場合、ベースプラン実行継続モジュール720は、対象オブジェクト112を、箱、大箱、もしくはパレット内、または対象オブジェクト112がピックアップされた位置まで対象オブジェクト112を戻し、オブジェクト再グリップモジュール724に対象オブジェクト112の再グリップ試みさせることができる。別の実施形態では、ベースプラン実行継続モジュール720は、さらに、対象オブジェクト112に対するグリップを維持するように、例えばアームユニット102を回転するなどして、アームユニット102の位置を調整することができる。
【0183】
[0193] 一実施形態において、ベースプラン実行継続モジュール720が、ベースプラン730に基づいて対象オブジェクト112が目的地まで安全に搬送されたと決定した場合、ベースプラン実行継続モジュール720は、制御をスキャンモジュール502に引き渡し、対象オブジェクト112の次の例に対するプロセスを再び開始することができる。一実施形態において、ベースプラン730を生成すべき対象オブジェクト112の例がそれ以上存在しない場合は、ロボットシステム100は、動作を停止することができる。
【0184】
[0194] ロボットシステム100は、一例としてのモジュール機能は順序を示して説明してきた。ロボットシステム100は、上記説明とは異なる態様で、モジュールを分けたり、モジュールを順序付けたりしてもよい。例えば、
図2のソフトウェア210は、ロボットシステム100のモジュールを含み得る。具体例として、ソフトウェア210は、スキャンモジュール502、オブジェクト識別モジュール704、ベースプラン生成モジュール706、ベースプラン実行モジュール708、確立グリップ測定モジュール716、ベースプラン実行継続モジュール720、反復カウントモジュール722、オブジェクト再グリップモジュール724、ベースプラン実行停止モジュール726、エラー生成モジュール728、およびこれらに含まれた関連のサブモジュールを含むことができる。
【0185】
[0195]
図2の制御ユニットは、ソフトウェア210を実行させてモジュールを動作させることができる。例えば、制御ユニット202は、ソフトウェアを実行して、スキャンモジュール502、オブジェクト識別モジュール704、ベースプラン生成モジュール706、ベースプラン実行モジュール708、確立グリップ測定モジュール716、ベースプラン実行継続モジュール720、反復カウントモジュール722、オブジェクト再グリップモジュール724、ベースプラン実行停止モジュール726、エラー生成モジュール728、およびこれらに含まれた関連のサブモジュールを実施させることができる。
【0186】
[0196] 本出願に記載されるモジュールは、制御ユニット202によって実行される非一時的なコンピュータ可読媒体に記憶された命令として実施され得る。非一時的なコンピュータ可読媒体は、ストレージユニット206を含み得る。非一時的なコンピュータ可読媒体は、ハードディスクドライブ、不揮発性ランダムアクセスメモリ(NVRAM)、固体記憶装置(SSD)コンパクトディスク(CD)、デジタルビデオディスク(DVD)、またはユニバーサルシリアルバス(USB)フラッシュメモリデバイスなどの不揮発性メモリを含み得る。非一時的なコンピュータ可読媒体は、ロボットシステム100の一部として一体化されていてもよく、またはロボットシステム100から取り外し可能な部分としてインストールされていてもよい。
【0187】
[0197] 次に、
図8を参照すると、本発明の一実施形態におけるロボットシステムの動作方法800のフローチャートが示されている。方法800は、ボックス802において、対象オブジェクトに関連したセンサ読取り値を受信することと、ボックス804において、対象オブジェクトに対して作業を実行するためのベースプランを生成することであって、ベースプランの生成には、対象オブジェクトをグリップするための、グリップ点と、このグリップ点に関連したグリップパターンとを、指定エリア、作業場所、および別の対象オブジェクトに対するグリップ点の位置に基づいて決定することを含むことと、ボックス806において、グリップパターンランクにしたがって作動ユニットおよび1つまたは複数の吸引グリッパを動作させることにより、タスクを実行するためにベースプランを実施して、対象オブジェクトに対する確立されたグリップを生成することであって、確立されたグリップは対象オブジェクトをグリップするために使用されたグリップパターンに関連したグリップパターン箇所にあることと、ボックス808において、確立されたグリップを測定することと、ボックス810において、確立されたグリップを力閾値と比較することと、ボックス812において、確立されたグリップが力閾値を下回ったことに基づいて対象オブジェクトを再グリップすることと、を含む。
【0188】
[0198] ロボットシステム100の上記詳細な説明および実施形態は、網羅的であることを意図したものではなく、開示されたロボットシステム100を、上述した厳密な形態に限定することを意図したものでもない。例示を目的として、ロボットシステム100の具体例を説明したが、当業者は認識するであろうが、開示されたロボットシステム100の範囲内で多様な均等的変形が可能である。例えば、プロセスまたは方法が所与の順序で提供されているが、代替的な実施態様により、異なる順序で、工程を有するルーチンを実施するか、ブロックを有するシステムを採用する場合があり、また、いくつかのプロセスまたは方法は、削除、移動、追加、細分化、結合、および/または変形されて、代替的またはサブの組合せを提供する場合がある。これらプロセスまたは方法の各々は、様々な異なる方法で実施される場合がある。また、プロセスまたは方法が、図示の時点で、連続して実施されるものであるが、これらプロセスまたはブロックは、代わりに、並行して実施されるか実行されてもよく、あるいは、異なる時間に実行されてもよい。
【0189】
[0199] 結果として得られる方法、プロセス、装置、デバイス、製品およびシステムは、費用効果がよく、汎用性が高く、かつ正確であり、容易で、効率的で、かつ経済的な製造、用途、利用のために構成要素を適合させることにより実施することができる。本発明の実施形態の別の重要な態様として、費用の削減、システムの簡素化、および性能の向上といった歴史的な傾向を有益に支持および提供する。
【0190】
[0200] 本明細書の実施形態の上記および他の態様は、結果として、技術の現状を少なくとも次のレベルまで引き上げるものである。本発明を、具体的な最良の形態に関連して説明したが、本明細書の記述に照らして、当業者には、多くの代替、変形、および変更が明らかになるであろう。したがって、そのような代替、変形、および変更の全ては、本明細書に含まれる請求の範囲内に包含されることが意図される。本明細書に記載された、あるいは添付の図面に示された全ての事項は、例示的なものであり、限定的な意味はないものと解釈される。