(58)【調査した分野】(Int.Cl.,DB名)
前記調整されたモーションプランは、前記制御されたドロップを実行した後に、前記ターゲットとなる対象を前記グリッパでグリップし直す、アクチュエータコマンド、アクチュエータ設定、またはそれらの組合せを含む、請求項1に記載の方法。
前記移行グリップ閾値は、前記ターゲットとなる対象を水平移動する前に前記ターゲットとなる対象を最初にグリップすることに関する最初のグリップ閾値よりも小である、請求項1に記載の方法。
【発明を実施するための形態】
【0005】
ピースロス管理メカニズムを有するロボットシステムのためのシステム及び方法が、本明細書に記載されている。いくつかの実施形態に従って構成されたロボットシステム(たとえば、1つまたは複数の専用の作業を実行するデバイスの統合システム)は、接触基準に従って、ターゲットとなる対象について粒度の細かい制御/操縦を実施することにより、ピースロス管理を行う。1つまたは複数のセンサを使用することにより、ロボットシステムは、エンドエフェクタに対するターゲットとなる対象の安定性に対応する、量子化された接触量を示す接触基準を判定することができる。換言すると、接触基準は、エンドエフェクタがターゲットとなる対象に対して有する、量子化されたグリップ量を示すことができる。接触基準に基づき、ロボットシステムは、ターゲットとなる対象を再度グリップし、指定された位置においてターゲットとなる対象の制御されたドロップを実行し、モーションプランを選択及び/または調整し、または、それらの組合せを行うことができる。
【0006】
ロボットシステムは、ターゲットとなる対象を操縦すること(たとえば、物理的移動及び/または再度の方向付け)に基づいて、作業を実行するように構成することができる。たとえば、ロボットシステムは、供給元(たとえば、大箱、パレット、またはコンベアベルト)の位置からターゲットとなる対象を取り上げ、それを目的地の位置に移動させることに基づき、様々な対象を並び替え又は置き換えることができる。いくつかの実施形態では、ターゲットとなる対象を操縦するために、ロボットシステムは、ロボットアームに操作可能に接続されたグリッパを備えることができる。グリッパは、ロボットアームに対してターゲットとなる対象を添付するように構成することができる。換言すると、ロボットシステムは、グリッパを(たとえば、1つまたは複数の関連するモータ/アクチュエータ及びセンサを介して)操作して、ターゲットとなる対象を把持し、この対象をロボットアームに対して保持することができる。ロボットシステムは、ロボットアームを同様に操作して、グリッパ、このグリッパに保持されたターゲットとなる対象、またはそれらの組合せを操縦することができる。
【0007】
作業を実行するために、いくつかの実施形態では、ロボットシステムは、ターゲットとなる対象の位置及び/またはポーズ(たとえば、休止している向き)、及び/または、ターゲットとなる対象の周りの環境を識別するために使用される、撮像デバイス(たとえば、カメラ、赤外センサ/カメラ、レーダー、ライダーなど)を備えることができる。前記位置、ポーズ、またはそれらの組合せに応じて、ロボットシステムは、作業を実行するためのモーションプラン(たとえば、1つまたは複数のリンク及び/またはジョイントを移動させるためのアクチュエータに関する制御のシークエンス)を実施することができる。たとえば、ターゲットとなる対象の並び替え及び/または置き換えのために、モーションプランは、最初に供給元の位置でターゲットとなる対象をグリップすること、空間にわたって対象を操縦すること、及び、対象を目的地の位置に置くことに対応することができる。
【0008】
しかし、いくつかの状況では、ターゲットとなる対象上のグリッパのグリップ(たとえば、固定の程度)が、作業の実行の間、不足する場合がある。結果として、ターゲットとなる対象は、グリッパに対して移動する又はシフトする場合がある。いくつかのケースでは、グリップの欠如は、操縦の間にグリッパがターゲットとなる対象を落とす又は制御を失う場合など、ピース(たとえば、目的地の位置及び/または意図されたポーズに置かれなかったターゲットとなる対象)を失うことにつながる場合がある。グリップの欠如は、たとえば、操縦によって生じる、ターゲットとなる対象に印加された力、及び/または、ターゲットとなる対象の慣性、ターゲットとなる対象(たとえば、ボックス、もしくはボックス内の内容物)のシフト、またはそれらの組合せによって生じる場合がある。また、たとえば、グリップの欠如は、撮像メカニズムの較正エラーによって生じる場合がある。
【0009】
従前のマニピュレータ(たとえば、ピッカーロボット)は、しばしば、作業から外れない、比較的固定されたモーションプランを実施する。従来のマニピュレータが対象の様々な位置及び/またはポーズに対処する場合があるが、いったん対象がピックアップされると、目的地の位置/方向に対象を操縦するためのモーションプランは不変のままである。これに対し、以下に記載のロボットシステムの様々な実施形態は、(たとえば、ターゲットとなる対象がグリップされている場合、及び/または、作業を実行している間に)接触基準(たとえば、グリップの量または程度)を判定し、それに応じて、ターゲットとなる対象について粒度の細かい制御/操縦を実施するように構成されている。接触基準の判定及び粒度の細かい制御/操縦を、以下に詳細に記載する。
【0010】
以下では、複数の特定の詳細が、本開示の技術を完全に理解させるために説明される。他の実施形態では、本明細書で導入された技術を、それら特定の詳細を伴わずに実施することができる。他の例では、特定の機能またはルーチンなど、よく知られている機能は、本開示を不要にわかりにくくすることを避けるために詳細には記載されない。本記載における「実施形態(an embodiment)」、「1つの実施形態(one embodiment)」などの参照は、記載の特定の特徴、構造、材料、または特性が、本開示の少なくとも1つの実施形態に含まれていることを意味している。このため、本明細書におけるそのようなフレーズの表示は、必ずしも、すべてが同じ実施形態を参照してはいない。一方、そのような参照は、必ずしも相互に排他的であることもない。さらに、特定の特徴、構造、材料、または特性は、1つまたは複数の実施形態において、任意の適切な方式で組み合わせることができる。図示の様々な実施形態は、説明的表示に過ぎず、必ずしも正寸して示されていないことを理解されたい。
【0011】
よく知られていてかつロボットシステム及びサブシステムとしばしば関連付けられる構造またはプロセスであって、開示の技術のいくつかの顕著な態様を不要に妨げ得る構造またはプロセスを記載するいくつかの詳細は、明確化の目的のために、以下の記載では説明されない。さらに、以下の開示が、本技術の様々な態様のいくつかの実施形態を説明しているが、いくつかの他の実施形態が、このセクションで記載のものとは異なる構成、または異なる構成要素を有することができる。したがって、開示の技術は、追加の要素を伴うか、以下に記載の要素のいくつかを伴わない、他の実施形態を有することができる。
【0012】
以下に記載の、本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはコントローラによって実行されるルーチンを含み、コンピュータで実行可能であるか又はコントローラで実行可能である命令の形態を取ることができる。関連技術の当業者には、開示の技術が、以下に示すもの及び記載するもの以外のコンピュータまたはコントローラのシステムで実施され得ることを理解されたい。本明細書に記載の技術は、以下に記載のコンピュータで実行可能な1つまたは複数の命令を実行するように、明確にプログラムされたか、構成されたか、構築された、特定用途のコンピュータまたはデータプロセッサ内で実施することができる。したがって、本明細書で通常使用される「コンピュータ(computer)」及び「コントローラ(controller)」との用語は、任意のデータプロセッサに言及し、インターネットの装置及びハンドヘルドデバイス(パームトップ型コンピュータ、ウェアラブルコンピュータ、セルラまたは移動電話、複数プロセッサシステム、プロセッサベースであるかプログラム可能な家庭用電気機械器具、ネットワークコンピュータ、ミニコンピュータなどを含む)を含むことができる。これらコンピュータ及びコントローラによって扱われる情報は、液晶ディスプレイ(LCD)を含む、任意の適切な表示媒体に提供することができる。コンピュータまたはコントローラで実行可能な作業を実行するための命令は、ハードウェア、ファームウェア、またはハードウェアとファームウェアとの組合せを含む、任意の適切なコンピュータ可読媒体に記憶することができる。命令は、たとえば、フラッシュドライブ、USBデバイス、及び/または他の適切な媒体を含む、任意の適切なメモリデバイスに包含することができる。
【0013】
「結合された(coupled)」及び「接続された(connected)」との用語は、その派生形とともに、構成要素間の構造的な関係を記載するために、本明細書で使用することができる。これらの用語が、互いに関して同義であることは意図されていないことを理解されたい。むしろ、特定の実施形態では、「接続された(connected)」は、2つ以上の要素が互いに直接接触していることを示すために使用することができる。文脈から別様に明確にされていない限り、「結合された(coupled)」との用語は、2つ以上の要素が直接的か(それらの間に他の介在要素を伴って)間接的に互いに接触していること、または、(たとえば、信号の送信/受信、もしくは、関数呼び出しに関するものなど、因果関係にあるように)2つ以上の要素が互いに協同するか相互作用すること、またはその両方を示すために使用することができる。
【0014】
適切な環境
図1は、ピースロス管理メカニズムを有するロボットシステム100が作動し得る例示的環境を示す図である。ロボットシステム100は、1つまたは複数の作業を実行するように構成された、1つまたは複数の構造物(たとえば、ロボット)を備えている。ピースロス管理メカニズムの態様は、様々な構造によって実行または実施することができる。
【0015】
図1に示す例に関し、ロボットシステム100は、倉庫または分配/輸送ハブ内に、荷降しユニット102、移送ユニット104、輸送ユニット106、荷積みユニット108、またはそれらの組合せを備えることができる。ロボットシステム100における各々のユニットは、1つまたは複数の作業を実行するように構成することができる。これら作業は、倉庫に貯蔵するために、対象をトラックまたはバンから荷降しするか、対象を貯蔵位置から荷降しして、それら対象を輸送のためにトラックまたはバンに荷積みするなど、目的を達成する操作を実施するように、シークエンスにおいて組み合わせることができる。別の例に関し、作業には、1つのコンテナから別のコンテナに対象を移動させることを含むことができる。各々のユニットは、作業を実行するために、作業のシークエンス(たとえば、1つまたは複数の内部の構成要素を操作すること)を実行するように構成することができる。
【0016】
いくつかの実施形態では、作業は、ターゲットとなる対象112(たとえば、ボックス、ケース、ケージ、パレットなど)の、スタート位置114から作業位置116への操縦(たとえば、移動及び/または再配置)を含むことができる。たとえば、荷降しユニット102(たとえば、デバンニングロボット)は、キャリア(たとえば、トラック)のある位置から、コンベアベルトのある位置まで、ターゲットとなる対象112を移送するように構成することができる。また、移送ユニット104(たとえば、パレットに載せるロボット)は、輸送ユニット106のパレットの上に、ターゲットとなる対象112を積載するなどのために、コンベアベルト上のある位置から、輸送ユニット106上のある位置にターゲットとなる対象112を移送するように構成することができる。別の例に関し、移送ユニット104(たとえば、ピースピッキングロボット)は、1つのコンテナから別のコンテナにターゲットとなる対象112を移送するように構成することができる。操作を完了する際には、輸送ユニット106は、ターゲットとなる対象112を、移送ユニット104に関連するエリアから、荷積みユニット108に関連するエリアに移送することができ、荷積みユニット108は、ターゲットとなる対象112を、(たとえば、ターゲットとなる対象112を載せたパレットを移動することにより)移送ユニット104から貯蔵位置(たとえば、棚上のある位置)に移送することができる。以下に、作業及び関連する動作に関する詳細を記載する。
【0017】
説明の目的のために、ロボットシステム100は、輸送センターの文脈で記載するが、ロボットシステム100は、製造、組立て、パッケージング、ヘルスケア、及び/または他のタイプのオートメーションなど、他の環境/目的で作業を実行するように構成することができることを理解されたい。ロボットシステム100は、
図1に示されていない、マニピュレータ、サービスロボット、モジュール式ロボットなどの、他のユニットを含むことができることも理解されたい。たとえば、いくつかの実施形態では、ロボットシステム100は、ケージカートまたはパレットから、コンベアまたは他のパレットに対象を移送するための、パレットから降ろすユニット、1つのコンテナから別のコンテナに対象を移送するためのコンテナ切替えユニット、対象をラッピングするためのパッケージングユニット、対象の1つまたは複数の特性に応じて対象をグループ化するための並び替えユニット、対象の1つまたは複数の特性に応じて様々に対象を操縦するため(たとえば、並び替え、グループ化、及び/または移送のため)のピースピッキングユニット、またはそれらの組合せを含むことができる。
【0018】
適切なシステム
図2は、本技術の1つまたは複数の実施形態に係るロボットシステム100を示すブロック図である。いくつかの実施形態では、たとえば、ロボットシステム100(たとえば、上述のユニット及び/またはロボットの1つまたは複数におけるシステム)は、1つもしくは複数のプロセッサ202、1つもしくは複数のストレージデバイス204、1つもしくは複数の通信デバイス206、1つもしくは複数の入力−出力デバイス208、1つもしくは複数の作動デバイス212、1つもしくは複数の移送モータ214、1つもしくは複数のセンサ216、またはそれらの組合せなどの、電子デバイス/電気デバイスを備えることができる。その様々なデバイスは、有線接続及び/または無線接続を介して互いに結合することができる。たとえば、ロボットシステム100は、システムバス、周辺部品相互接続(PCI)バスまたはPCI−エクスプレスバス、HyperTransportまたは産業標準構成(ISA)バス、小型コンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、または電気電子技術者協会(IEEE)規格1394のバス(「Firewire」とも呼ばれる)などのバスを含むことができる。また、たとえば、ロボットシステム100は、デバイス間の有線接続を提供するための、ブリッジ、アダプタ、コントローラ、または他の信号に関するデバイスを含むことができる。無線接続は、たとえば、セルラ通信プロトコル(たとえば、3G、4G、LTE、5Gなど)、無線ローカルエリアネットワーク(LAN)プロトコル(たとえば、忠実な無線通信環境(wireless fidelity(WIFI))、ピアツーピアまたはデバイスツーデバイスの通信プロトコル(たとえば、Bluetooth(登録商標)、Near−Field通信(NFC)など)、モノのインターネット(IoT)プロトコル(たとえば、NB−IoT、LTE−Mなど)、及び/または、他の無線通信プロトコルに基づくものとすることができる。
【0019】
プロセッサ202は、ストレージデバイス204(たとえばコンピュータメモリ)に記憶された命令(たとえば、ソフトウェア命令)を実行するように構成されたデータプロセッサ(たとえば、中央処理ユニット(CPU)、特定用途のコンピュータ、及び/またはオンボードサーバ)を含むことができる。プロセッサ202は、他のデバイスを制御/相互作用するようにプログラム命令を実施することができ、それにより、ロボットシステム100に、動作、作業、及び/または操作を実行させる。
【0020】
ストレージデバイス204は、そこに記憶されたプログラム命令(たとえば、ソフトウェア)を有する非一時的なコンピュータ可読媒体を含むことができる。ストレージデバイス204のいくつかの例には、揮発性メモリ(たとえば、キャッシュ及び/またはランダムアクセスメモリ(RAM)及び/または不揮発性メモリ(たとえば、フラッシュメモリ及び/または磁気ディスクドライブ)を含むことができる。ストレージデバイス204の他の例には、ポータブルメモリドライブ及び/またはクラウドストレージデバイスを含むことができる。
【0021】
いくつかの実施形態では、ストレージデバイス204は、処理結果及び/または所定のデータ/閾値をさらに記憶するとともにアクセスを提供するために使用することができる。たとえば、ストレージデバイス204は、ロボットシステム100によって操縦され得る対象(たとえば、ボックス、ケース、及び/または製品)の記載を含むマスターデータを記憶することができる。1つまたは複数の実施形態では、マスターデータは、ロボットシステム100によって操縦されると予期される対象に関する、寸法、形状(たとえば、可能性のあるポーズに関するテンプレート、及び/または、異なるポーズの対象を認識するための、コンピュータで生成されたモデル)、カラースキーム、イメージ、識別情報(たとえば、バーコード、クイックレスポンス(QR)コード(登録商標)、ロゴなど、及び/または、それらの予期される位置)、予期される重さ、またはそれらの組合せを含むことができる。いくつかの実施形態では、マスターデータは、対象各々の質量中心の位置、1つまたは複数の動作/動きに応じた、予期されるセンサの測定値(たとえば、力、トルク、圧力、及び/または接触基準値に関する)、またはそれらの組合せなどの、対象に関する操縦関連情報を含むことができる。また、たとえば、ストレージデバイス204は、対象の追跡データを記憶することができる。いくつかの実施形態では、対象の追跡データには、スキャン又は操縦された対象のログが含まれ得る。いくつかの実施形態では、対象の追跡データには、1つまたは複数の位置(たとえば、指定されたピックアップ位置またはドロップ位置、及び/またはコンベアベルト)における対象の撮像データ(たとえば、写真、ポイントクラウド、ライブビデオの提供など)が含まれ得る。いくつかの実施形態では、対象の追跡データには、1つまたは複数の位置における対象の位置及び/または向きが含まれ得る。
【0022】
通信デバイス206は、外部または遠隔のデバイスとネットワークを介して通信するように構成された回路を含むことができる。たとえば、通信デバイス206は、受信機、送信機、調整器/復調器(モデム)、信号検出器、信号エンコーダ/デコーダ、コネクタポート、ネットワークカードなどを含むことができる。通信デバイス206は、1つまたは複数の通信プロトコル(たとえば、インターネットプロトコル(IP)、無線通信プロトコルなど)に応じて電気信号を送信、受信、及び/または処理するように構成することができる。いくつかの実施形態では、ロボットシステム100は、ロボットシステム100のユニット間での情報の交換、及び/または、ロボットシステム100の外のシステムもしくはデバイスとの(たとえば、レポート、データの収集、分析、及び/またはトラブルシューティングの目的のための)情報の交換をするように、通信デバイス206を使用することができる。
【0023】
入力−出力デバイス208は、人間のオペレータとの情報の通信及び/または人間のオペレータからの情報の受信を行うように構成されたユーザインターフェースデバイスを含むことができる。たとえば、入力−出力デバイス208は、人間のオペレータに情報を通信するためのディスプレイ210及び/または他の出力デバイス(たとえば、スピーカ、触覚回路、またはタクティールフィードバックデバイスなど)を含むことができる。また、入力−出力デバイス208は、キーボード、マウス、タッチスクリーン、マイク、ユーザインターフェース(UI)センサ(たとえば、モーションコマンドを受信するためのカメラ)、ウェアラブル入力デバイスなどの、制御または受信デバイスを含むことができる。いくつかの実施形態では、ロボットシステム100は、動作、作業、操作、またはそれらの組合せを実行する際に、入力−出力デバイス208を使用して、人間のオペレータと相互作用することができる。
【0024】
ロボットシステム100は、モーション(たとえば、回転及び/または平行移動の変位)のためにジョイントで接続された、物理的なまたは構造的な部材(たとえば、ロボットマニピュレータアーム)を含むことができる。構造的部材及びジョイントは、ロボットシステム100の使用/操作に応じた1つまたは複数の作業(たとえば、グリップ、スピン、溶接など)を実行するように構成されたエンドエフェクタ(たとえば、グリッパ)を操縦するように構成された運動学上のチェーンを形成することができる。ロボットシステム100は、対応するジョイントの周り又はジョイントにおいて、構造的部材を駆動又は操縦する(たとえば、変位及び/または再度の方向付け)ように構成された作動デバイス212(たとえば、モータ、アクチュエータ、ワイヤ、人工筋、電気活性ポリマなど)を含むことができる。いくつかの実施形態では、ロボットシステム100は、ある位置から位置に、対応するユニット/シャシーを移送するように構成された移送モータ214を含むことができる。
【0025】
ロボットシステム100は、構造的部材を操縦するため、及び/または、ロボットユニットを移送するためなど、作業を実施するために使用される情報を得るように構成されたセンサ216を含むことができる。センサ216は、ロボットシステム100の1つまたは複数の物理的特性(たとえば、1つまたは複数の構造的部材/そのジョイントの状態、条件、及び/または位置)、及び/または、周囲の環境に関する特性を検出するか測定するように構成されたデバイスを含むことができる。センサ216のいくつかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、タクティールセンサ、トルクセンサ、位置エンコーダなどを含むことができる。
【0026】
いくつかの実施形態では、たとえば、センサ216は、周囲の環境を検出するように構成された1つまたは複数の撮像デバイス222(たとえば、可視及び/または赤外カメラ、ライダー、レーダー、及び/または他の距離測定もしくは撮像デバイスを含む、2次元及び/または3次元カメラ)を含むことができる。撮像デバイス214は、(たとえば、自動的な検査、ロボットのガイダンス、または他のロボットのアプリケーションのための)マシン/コンピュータの視覚を実行するために使用される、デジタル画像及び/またはポイントクラウドなどの検出環境の表示を生成することができる。以下にさらに詳細に記載するように、ロボットシステム100は、(たとえば、プロセッサ202を介して)、デジタル画像及び/またはポイントクラウドを処理して、
図1のターゲットとなる対象112、
図1のスタート位置114、
図1の作業位置116、
図1のターゲットとなる対象112のポーズ、またはそれらの組合せを識別することができる。ターゲットとなる対象112を操縦するために、ロボットシステム100は、(たとえば、様々なユニットを介して)、指定されたエリア(たとえば、トラック内、コンテナ内、または、コンベアベルト上の対象のピックアップ位置)の画像を取得及び分析して、ターゲットとなる対象112及びそのスタート位置114を識別することができる。同様に、ロボットシステム100は、別の指定されたエリア(たとえば、コンベアベルト上に対象を配置するためのドロップ位置、コンテナ内に対象を配置するための位置、または、スタックする目的のためのパレット上の位置)の画像を取得及び分析して、作業位置116を識別することができる。
【0027】
また、たとえば、センサ216は、構造的部材(たとえば、ロボットアーム及び/またはエンドエフェクタ)、及び/または、ロボットシステム100の対応するジョイントの位置を検出するように構成された位置センサ224(たとえば、位置エンコーダ、ポテンショメータなど)を含むことができる。ロボットシステム100は、作業の実行の間、構造的部材及び/またはジョイントの位置及び/または向きを追跡するために、位置センサ224を使用することができる。
【0028】
いくつかの実施形態では、センサ216は、複数の物理的構造または表面間の直接の接触に関連する特性を測定するように構成された接触センサ226(たとえば、圧力センサ、力センサ、ひずみゲージ、圧電抵抗性/圧電性センサ、容量性センサ、弾性抵抗性センサ、及び/または他のタクティールセンサ)を含むことができる。接触センサ226は、ターゲットとなる対象112上のエンドエフェクタ(たとえば、グリッパ)のグリップに対応する特性を測定することができる。したがって、接触センサ226は、グリッパとターゲットとなる対象112との間の接触または取付けの程度に対応する、定量化された測定値(たとえば、測定された力、トルク、位置など)を示す接触基準を出力することができる。たとえば、接触基準は、エンドエフェクタによってターゲットとなる対象112に印加された力に関する、1つまたは複数の力またはトルクの読取り値を含むことができる。接触基準に関する詳細を、以下に記載する。
【0029】
以下にさらに詳述するように、ロボットシステム100は、(たとえば、プロセッサ202を介して)接触基準に基づく作業を達成するように様々な動作を実施することができる。たとえば、ロボットシステム100は、最初の接触基準が閾値未満である場合、ターゲットとなる対象112をグリップし直すことができる。また、ロボットシステム100は、作業の実行の間に接触基準が閾値未満に低下した場合、意図してターゲットとなる対象112をドロップするか、作業位置116を調整するか、動作に関する速度もしくは加速度を調整するか、またはそれらの組合せを行うことができる。
【0030】
接触基準
図3A及び
図3Bは、本技術の1つまたは複数の実施形態に係るグリップ状態の例を示している。いくつかの実施形態では、
図1のロボットシステム100(たとえば、上述の、1つまたは複数のユニットにおいて、パレットに載せる/パレットから降ろすロボット、ピッカーロボットなど)は、ロボットアーム304に接続されたエンドエフェクタ(たとえば、グリッパ)を含むことができる。ロボットアーム304は、エンドエフェクタを操縦するように構成された部材間の構造的部材及び/またはジョイントを含むことができる。エンドエフェクタは、ロボットアーム304の構造的部材及び/またはジョイントに接続された、
図2の作動デバイス212を操作することによって操縦することができる。
【0031】
いくつかの実施形態では、エンドエフェクタ(たとえば、グリッパ)は、対象をグリップするように構成することができ、それにより、エンドエフェクタに対し、対象を固定又は添付する。エンドエフェクタは、エンドエフェクタの1つまたは複数の位置に関連付けられたか又は取り付けられた作動デバイス212の1つまたは複数を操作することにより、(たとえば、把持及び/または開放するために)操作することもできる。
【0032】
1つまたは複数の実施形態では、
図3Aに示すように、エンドエフェクタは、グリッパ302(たとえば、収斂性または吸引性のグリッパ)を含むことができる。このグリッパ302は、グリッパ302とターゲットとなる対象112との間に真空状態を形成及び維持することによって得られるものなど、引付力を介してターゲットとなる対象112を保持又は添付するように構成されている。たとえば、グリッパ302は、吸引カップ306のセットを含むことができる。この吸引カップ306は、ターゲットとなる対象112の表面に接触し、吸引カップ306と表面との間の空間に真空状態を形成/維持するように構成されている。真空状態は、グリッパ302がロボットアーム304を介して下げられ、それにより、吸引カップ306をターゲットとなる対象112の表面に対して押圧し、対向する表面間の気体を外に出す場合に形成することができる。ロボットアーム304がグリッパ302を上昇させると、吸引カップ306の内側の空間と、周囲の環境との間の圧力差により、吸引カップ306に取り付けられたターゲットとなる対象112を維持することができる。したがって、ターゲットとなる対象112上のグリッパ302のグリップまたは取付けの程度は、成功的に真空状態を形成して保持している吸引カップ306の数に基づくものとすることができる。
【0033】
様々な要因により、吸引カップ306が成功的に真空状態を形成して保持することを妨げられ得る。たとえば、
図2の撮像デバイス222における較正エラーにより、グリッパ302をターゲットとなる対象112に対して誤って配置するか、誤って向けることが生じ得る。したがって、1つまたは複数の吸引カップ306は、真空状態を形成するとともに保持するように、ターゲットとなる対象112の表面に(たとえば、分離ギャップ322によって示すように)適切に接触しない場合がある。また、ターゲットとなる対象112の表面上の予期されていない変形または微粒子により、1つまたは複数の吸引カップ306が、真空状態を保持するターゲットとなる対象112の表面のシールされた空間を形成することが妨げられる場合がある。また、ターゲットとなる対象112を操縦している間、1つまたは複数の吸引カップ306は、ターゲットとなる対象112の移動の慣性及び/またはシフト(たとえば、ボックスまたはボックス内の内容物)から生じる力を受ける場合がある。その受けた力が、形成されているシールの完全性より大である場合、吸引カップ306は、真空状態の保持を失う場合がある。
【0034】
いくつかの実施形態では、グリッパ302は、接触基準312を判定するように構成された、
図2の接触センサ226(たとえば、1つまたは複数の力センサ、圧力センサ、トルクセンサ、及び/または他のタクティールセンサ)を含んでいる。接触センサ226は、ターゲットとなる対象112に対するグリッパ302の取付けの程度を示すものとして、接触基準312を生成することができる。換言すると、接触基準312は、ターゲットとなる対象112上の、エンドエフェクタのグリップの測定値または量を示すことができる。たとえば、接触センサ226は、検知された表面が別の表面に接触しているか、及び/または、別の表面に接触している表面積のサイズを判定するように構成されているかを示すように構成された、タッチセンサまたはタクティールセンサを含むことができる。また、接触センサ226は、吸引カップ306の内部の圧力(たとえば、真空状態)を測定するように構成された圧力センサを含むことができる。また、接触センサ226は、吸引カップ306によって保持又は支持されたターゲットとなる対象112の重量(たとえば、破線の線形矢印によって示される)を測定するように構成された直線力センサを含むことができる。さらに、接触センサ226は、吸引カップ306、グリッパ302、及び/またはロボットアーム304のトルク(たとえば、破線の曲線の矢印によって示される)を測定するように構成されたトルクセンサを含むことができる。完全にグリップされた状態と比較すると、吸引カップ306のいくつか(たとえば、周囲に位置する吸引カップ306)が真空状態を保持しない場合、トルクの測定値が変わる(たとえば、増大する)場合がある。接触センサ226のタイプ及び/または位置に応じて、接触基準312は、測定値が真空の閾値を満たす、吸引カップ306、吸引カップ306の量、及び/またはそれらの位置にわたる、測定値(たとえば、内圧、直線力、及び/またはトルク)の合計または平均に対応し得るか、それらの組合せに対応し得る。
【0035】
図示の例として、
図3Aは、(ターゲットとなる対象112を通して横断する矢印によって示されるように)ターゲットとなる対象112上にグリップを有するグリッパ302の遠位端(すなわち、
図3Aの右側に位置している)上の吸引カップを示している。対照的に、グリッパ302の近位端(すなわち、
図3Aの左側に位置している)上の吸引カップは、分離ギャップ322によって分離されて示されている。したがって、遠位端上の吸引カップに対応する直線力センサは、その遠位の吸引カップによって支持された重量に関連する、ゼロではない読取り値を判定することができる。また、近位端上の吸引カップに対応する直線力センサは、グリップの欠如に起因する、ゼロ又はゼロに近い読取り値を判定することができる。さらに、力の均等ではない分布に起因して、グリッパ302に関連付けられたトルクセンサは、ゼロではない読取り値を判定することができる。
【0036】
比較すると、吸引カップ306のすべてがターゲットとなる対象112の表面と真空状態を確立又は維持している場合、直線力の読取り値は、吸引カップ306のすべてにおいてゼロではない大きさを有し、及び/または、直線力の読取り値間の偏差が、比較的小さいレンジ内にあることになる。さらに、重量が、吸引カップ306にわたって実質的に均等な方式で分布することになることから、グリッパ302で測定されるトルクは、ゼロの値に近くなる。
【0037】
したがって、ロボットシステム100は、接触基準312の上述の例を、ターゲットとなる対象112上のグリッパ302のグリップの表示として使用することができる。たとえば、直線力の読取り値及び/またはトルクの読取り値の偏差は、グリップの強度を逆に示し得る。換言すると、予期される読取り値からの、より大である偏差(たとえば、直線力の測定値のゼロに近い偏差、及び/または、ゼロに近いトルクの測定値が、強力なグリップに対応し得る)が、より弱いグリップに対応する場合がある。いくつかの実施形態では、ロボットシステム100は、グリッパ302及びターゲットとなる対象112の異なる向き(たとえば、ポーズ)に従って、予期される読取り値の変換/移行のために、検索/変換テーブル、方程式、プロセス、またはそれらの組合せをさらに使用することができる。いくつかの実施形態では、マスターデータは、グリッパ302及びターゲットとなる対象112の様々な向きの各々に関し、予期される読取り値を含むことができる。ロボットシステム100は、グリッパ302及びターゲットとなる対象112の向きに応じて、接触基準312を評価または処理するように、予期される読取り値を使用することができる。
【0038】
いくつかの実施形態では、
図3Bに示すように、
図1のロボットシステム100(たとえば、上述の、1つまたは複数において、パレットに載せる/パレットから降ろすロボット、ピッカーロボットなど)は、直接的な衝撃を介してターゲットとなる対象112を物理的に把持するように構成されたグリッパ352(たとえば、衝撃によるグリッパ)を含むことができる。たとえば、グリッパ352は、ターゲットとなる対象112に印加される対向又は圧縮する力に基づき、ターゲットとなる対象112をグリップするように構成されたグリッパ顎部356を含むことができる。ターゲットとなる対象112は、グリッパ顎部356の接触表面とターゲットとなる対象112の接触表面との間の、結果として生じる摩擦に基づき、グリップすることができる。
【0039】
様々な要因が、グリッパ顎部356がターゲットとなる対象112を成功的にグリップすることを妨げ得る。たとえば、
図2の撮像デバイス222における較正エラーにより、グリッパ352をターゲットとなる対象112に対して誤って配置するか、誤って向けることが生じ得る。したがって、グリッパ顎部356は、表面特性が、結果として生じる摩擦を低減する場所など、ターゲットとなる対象112の意図されていない部分に接触する場合がある。また、ターゲットとなる対象112の表面上の予期されていない変形または微粒子により、結果として生じる摩擦が低減され得る。また、ターゲットとなる対象112の操縦の間、グリッパ顎部356は、ターゲットとなる対象112の移動の慣性及び/またはシフト(たとえば、ボックスまたはボックス内の内容物)から生じる力を受ける場合がある。その受けた力が摩擦力より大である場合、グリッパ顎部356は、真空状態の保持を失う場合がある。
【0040】
いくつかの実施形態では、グリッパ352は、接触基準312を判定するように構成された、
図2の接触センサ226(たとえば、1つまたは複数の力センサ、圧力センサ、及び/またはトルクセンサ)を含んでいる。たとえば、接触センサ226は、検知した表面と他の表面との間の直接の接触を示し、及び/または、接触面積のサイズを測定するタクティールセンサを含むことができる。また、接触センサ226は、グリッパ顎部356の接触表面上に圧力センサまたはタクティールセンサを含むことができる。このセンサは、グリッパ顎部356によってターゲットとなる対象112に印加された力を測定するように構成されている。さらに、接触センサ226は、ターゲットとなる対象112の重量を測定するように構成された直線力センサを含むことができる。グリップが失われると、ターゲットとなる対象112はスリップし得る。このことは、直線力センサによって検知される重量の低下につながり得る。
【0041】
図3Bに示すように、たとえば、グリップが不適切である又は欠如していることにより、グリッパ352が、ターゲットとなる対象112を持ち上げることを意図して上に移動した際に、ターゲットとなる対象112が動かないまま(すなわち、グリッパ顎部356に対して下にスライドする)の結果となり得る。したがって、直線力センサによって測定された重量または力は、グリップが十分で、かつ、ターゲットとなる対象112がグリッパ顎部356に対して固定されたままである場合に測定される実際の重量またはその一部(たとえば、各顎部にかかる約半分の重量)より少なくなり得る。図示の例として、ロボットシステム100は、グリップ動作の後の最初の持ち上げ動作の間、グリッパ352、ロボットアーム304、及び/またはグリッパ顎部356に関連する直線力センサの測定値を追跡することができる。予期される測定プロファイル(
図3Bに時間に対する力の大きさのプロットにおいて、破線を使用して示されている)は、所定の持続時間の間、ターゲットとなる対象112の重量にマッチするように上昇する、測定された下向きの力に対応する場合がある。しかし、不適切なグリップに関するセンサの読取り値は、予期されたレベルまで上昇せず、かつ、最初の持ち上げの動きの終了によってゼロまたはゼロに近い大きさに達する、測定された下向きの力に対応する。いくつかの状況では、グリップの一瞬のロス(すなわち、全体のグリップが弱い状況を示す)は、検出された直線力の急激な低下または一瞬の低下に対応し得る。
【0042】
いくつかの実施形態では、接触センサ226は、グリッパが水平に向けられた場合など、グリッパ顎部356上でトルクを測定するように構成されたトルクセンサを含むことができる。不適切なグリップは、持ち上げ動作の間、ターゲットとなる対象112に、グリッパ顎部356からシフトさせ(たとえば、離す)、それにより、グリッパ352に対するターゲットとなる対象112の重心の位置を変更する。したがって、グリッパ顎部356に印加されるトルクの量及び/または向きは、シフトした重心に基づいて変化し得る。接触基準312は、接触センサ226のタイプ及び/または位置に従って、上述の測定値に対応する場合がある。
【0043】
システム操作
図4は、本技術の1つまたは複数の実施形態に係るロボットシステム100によって実行される例示的作業402を示す上面図である。上述のように、作業402は、目的を達成するために、ロボットシステム100によって実行される(たとえば、
図1の移送ユニット104など、上述のユニットの1つによって実行される)動作のシークエンスを示し得る。
図4に示すように、たとえば、作業402は、ターゲットとなる対象112を、スタート位置114(たとえば、受領パレットまたは大箱の上/中の位置)から作業位置116(たとえば、並び替えされたパレットまたは大箱の上/中の位置)に移動することを含み得る。
【0044】
いくつかの実施形態では、ロボットシステム100は、スタート位置114を識別及び/または位置特定するために、所定のエリアを撮像することができる。たとえば、ロボットシステム100は、部品調達用のパレットまたは大箱に関して指定されたエリア、及び/または、コンベアベルトの受領側の領域など、ピックアップエリアに向けられたソーススキャナ412(すなわち、
図2の撮像デバイス222の例)を含むことができる。ロボットシステム100は、指定されたエリアの撮像データ(たとえば、取得された画像及び/またはポイントクラウド)を生成するために、ソーススキャナ412を使用することができる。ロボットシステム100は(たとえば、
図2のプロセッサ202を介して)、指定されたエリアに位置する様々な対象(たとえば、ボックスまたはケース)を識別するために、撮像結果について、コンピュータによる視野処理を実施することができる。対象の識別の詳細は以下に記載する。
【0045】
認識された対象から、ロボットシステム100は、作業402の実行のために、ターゲットとなる対象112として、(たとえば、所定のシークエンスまたは規則のセット、及び/または、対象のアウトラインのテンプレートに応じて)1つを選択することができる。選択されたターゲットとなる対象112に関し、ロボットシステム100は、スタート位置114及び/または最初のポーズを判定するために、撮像結果をさらに処理することができる。選択及び位置/ポーズの判定の詳細を以下に記載する。
【0046】
ロボットシステム100は、作業位置116を識別するために、別の所定のエリアをさらに撮像及び処理することができる。いくつかの実施形態では、たとえば、ロボットシステム100は、並び替えされたパレットまたは大箱、及び/または、コンベアベルトの送り側の領域に関して指定されたエリアなど、配置エリアの撮像結果を生成するように構成された撮像デバイス222(図示せず)の別の例を含むことができる。撮像結果は、ターゲットとなる対象112を配置するための作業位置116及び/または対応するポーズを識別するために、(たとえば、プロセッサ202を介して)処理することができる。いくつかの実施形態では、ロボットシステム100は、複数の対象をスタック及び/または配置するための所定のシークエンスまたは規則のセットに従って、作業位置116を(撮像結果に基づくか、または、撮像結果を伴わずに)識別することができる。
【0047】
識別されたスタート位置114及び/または作業位置116を使用して、ロボットシステム100は、作業402を実行するために、対応するユニット(たとえば、移送ユニット104)の1つまたは複数の構造(たとえば、ロボットアーム304及び/またはエンドエフェクタ、
図3Aのグリッパ302及び/または
図3Bのグリッパ352など)を操作することができる。したがって、ロボットシステム100(たとえば、プロセッサ202を介して)は、作業402を実行するために対応するユニットによって実施される1つまたは複数の動作に対応する、ベースのモーションプラン422を(たとえば、モーションプランの規定またはアルゴリズムを介して)計算することができる。たとえば、移送ユニット104に関するベースのモーションプラン422は、ピックアップのためにエンドエフェクタを配置すること、ターゲットとなる対象112をグリップすること、ターゲットとなる対象112を持ち上げること、ターゲットとなる対象112をスタート位置114の上から作業位置116の上に移動すること、ターゲットとなる対象112を下げること、及び、ターゲットとなる対象112を開放することを含むことができる。また、ベースとなるモーションプラン422は、理想的な状況(たとえば、いずれの妨害、エラー、予期しない外部の影響などを伴わない)または実行に関するものなど、作業402を成功して完了するために必要な動作のみを含むことができる。
【0048】
いくつかの実施形態では、ロボットシステム100は、ロボットアーム304及び/またはエンドエフェクタを操作する
図2の1つまたは複数の作動デバイス212のためのコマンド及び/または設定のシークエンスを判定することにより、ベースとなるモーションプラン422を計算することができる。たとえば、ロボットシステム100は、プロセッサ202を使用して、グリッパをスタート位置114周りの特定の位置に置き、エンドエフェクタでターゲットとなる対象112を係合及び把持し、エンドエフェクタを作業位置116周りの特定の位置に置き、ターゲットとなる対象112をエンドエフェクタから開放するように、エンドエフェクタ及びロボットアーム304を操縦するために、作動デバイス212のコマンド及び/または設定を計算することができる。ロボットシステム100は、コマンド及び/または設定の判定されたシークエンスに従って、作動デバイス212を操作することにより、作業402を完了するための動作を実行することができる。
【0049】
いくつかの実施形態では、作業402は、製品のロギングの目的のため、及び/または、ターゲットとなる対象112のさらなる識別のためなど、ターゲットとなる対象112をスキャンすること(たとえば、バーコードまたはQRコード(登録商標)をスキャンすること)を含むことができる。たとえば、ロボットシステム100は、通常はピックアップエリアと配置位置との間の位置において、ターゲットとなる対象112をスキャンするように構成された対象スキャナ416(たとえば、バーコードスキャナまたはQRコードスキャナなど、撮像デバイス222のさらなる例)を含むことができる。したがって、ロボットシステム100は、ターゲットとなる対象112の一部または表面が対象スキャナ416に与えられるように、所定のポーズでスキャン位置にターゲットとなる対象112を配置するように、ベースとなるモーションプラン422を計算することができる。
【0050】
作業402に関する動作を実行するために、ロボットシステム100は、ターゲットとなる対象112の現在の位置424(たとえば、ロボットシステム100によって使用されるグリッドに対応する座標のセット)を追跡することができる。たとえば、ロボットシステム100(たとえば、プロセッサ202を介して)は、
図2の位置センサ224からのデータに従って現在の位置424を追跡することができる。ロボットシステム100は、位置センサ224からのデータに従って、運動学上のチェーンにおいて、ロボットアーム304の1つまたは複数の部分(たとえば、構造的部材及び/またはそれらのジョイント)を配置することができる。ロボットシステム100は、ロボットアーム304の位置及び向きに基づき、エンドエフェクタの位置及び向きをさらに計算することができ、それにより、エンドエフェクタによって保持されるターゲットとなる対象112の現在の位置424を計算することができる。また、ロボットシステム100は、推測位置メカニズムに従って、他のセンサの読取り値(たとえば、力の読取り値または加速度計の読取り値)の処理、実行された作動コマンド/設定、及び/または、関連するタイミング、またはそれらの組合せに基づき、現在の位置424を追跡することができる。
【0051】
また、作業402に関する動作の実行において、ロボットシステム100(たとえば、接触センサ226を介する)は、
図3A/
図3Bの接触基準312を判定することができる。ロボットシステム100は、所定のサンプリングインターバルもしくはタイミング、またはそれらの組合せに従って、ベースとなるモーションプラン422の一部(たとえば、グリップ動作、移動動作、及び/または回転動作)を実行した後など、様々な時点で接触基準312を判定またはサンプリングすることができる。
【0052】
接触基準312に基づき、ロボットシステム100は、作業402を完了するために、様々な動作を実行することができる。換言すると、ロボットシステム100は、接触基準312に従って、ターゲットとなる対象112について粒度の細かい制御/操縦を実施することができる。たとえば、接触基準312が第1の閾値を満たした場合または満たす間、ロボットシステム100は、ベースとなるモーションプラン422を実施することができる。接触基準312が第1の閾値を満たさない(たとえば、閾値未満に低下した)場合、ロボットシステム100は、ベースとなるモーションプラン422から外れ、1つまたは複数の追加及び/または異なる動作を実行することができる。たとえば、(たとえば、
図3Aの吸引カップ306をターゲットとなる対象112に押圧するか、
図3Bのグリッパ顎部356を介して圧縮力を、ターゲットとなる対象112の両側に印加することにより)グリップ動作を実施した後に、接触基準312がグリップ閾値未満である場合、ロボットシステム100は、ターゲットとなる対象112の開放及び/またはエンドエフェクタの位置の調整の後に、グリップ動作を再度実行することができる。ロボットシステム100は、次いで、接触基準312を判定し、接触基準312がグリップ閾値未満のままである場合、所定の限界まで再グリップのプロセスを繰り返すことができる。再度グリップする試みにより、接触基準312がグリップ閾値を満たす結果となる場合、ロボットシステム100は、ベースとなるモーションプラン422の残りの部分を続けることができる。いくつかの実施形態では、限られた数の試みの後に、ロボットシステム100がターゲットとなる対象112を十分にグリップできなかった場合、ロボットシステム100は、ターゲットとなる対象112をドロップして離し、異なる対象で作業を実行することができる(たとえば、次の作業に関し、異なる対象をターゲットとなる対象112として識別する)。
【0053】
また、ロボットシステム100は、ターゲットとなる対象112を操縦している間(たとえば、グリップ動作を実行した後)、移行閾値未満に接触基準312が低下した場合、ベースとなるモーションプラン422から外れることができる。いくつかの実施形態では、ロボットシステム100は、現在の位置424に基づき、次の動作(たとえば、制御されたドロップ)を実行することができる。たとえば、ロボットシステム100は、ターゲットとなる対象112の現在の位置424が1つまたは複数の所定のエリアの上/中にある場合、ターゲットとなる対象112を急激に低下させる、及び/または開放することができる。
【0054】
いくつかの実施形態では、制御されたドロップ動作のために指定された所定のエリアは、供給元のドロップエリア432、目的地のドロップエリア434、及び/または、1つもしくは複数の移行ドロップエリア436を含むことができる。供給元のドロップエリア432は、パレットの縁部または大箱/ケージの壁など、ピックアップエリアの境界によって閉じられたエリアに対応するものとすることができる(たとえば、重なっているか、または、そこからある距離だけ内側にオフセットしている)。同様に、目的地のドロップエリア434は、配置エリアの境界に対応するものとすることができる。移行ドロップエリア436は、ピックアップエリアと、対象が次の作業の実行を妨げないように、ロボットシステム100がターゲットとなる対象112をドロップ又は配置することができる配置エリアとの間のエリアを含むことができる。
図4に示す例に関し、移行ドロップエリア436は、対象スキャナ416の前及び/または後(すなわち、ピックアップエリアから配置エリアに移動している時)とすることができる。
【0055】
したがって、接触基準312が閾値を満たさない場合、ロボットシステム100は、ターゲットとなる対象112を配置するためのドロップエリアの1つに、調整されたドロップ位置442を計算することができる。ロボットシステム100は、調整されたドロップ位置442を、ターゲットとなる対象112を配置するための十分な空間を有する、現在の位置424と作業位置116との間の位置として識別することができる。ロボットシステム100は、作業位置116と同様に、調整されたドロップ位置442を識別することができる。識別された、調整されたドロップ位置442及び現在の位置424に基づき、ロボットシステムは、ターゲットとなる対象112を移動し、これを調整されたドロップ位置442に配置するための、調整されたモーションプラン444を計算することができる。調整されたドロップ位置442の識別、及び、調整されたモーションプラン444の計算に関する詳細を、以下に記載する。
【0056】
操作フロー
図5は、本技術の1つまたは複数の実施形態に係る、
図1のロボットシステム100を操作する方法500のフロー図である。方法500は、
図3A/
図3Bの接触基準312に従って、
図1のターゲットとなる対象112について粒度の細かい制御/操縦を実施するためのものとすることができる。換言すると、方法500により、ロボットシステム100が、接触基準312に従って、
図4のベースとなるモーションプラン422に追従及び/または同プランから外れる(たとえば、ベースとなるモーションプラン422に加えて、及び/または代わりに、他の動作を実施する)ことを許容する。方法500は、
図2の1つまたは複数のプロセッサ202で、
図2の1つまたは複数のストレージデバイス204に記憶された命令を実行することに基づいて、実施することができる。
【0057】
ブロック502では、ロボットシステム100は、指定されたエリアをスキャンすることができる。いくつかの実施形態では、ロボットシステム100は、
図2の1つまたは複数の撮像デバイス222(たとえば、
図4のソーススキャナ412及び/または他のエリアスキャナ)を(たとえば、プロセッサ202によって送信されたコマンド/プロンプトを介して)使用して、ピックアップエリア及び/またはドロップエリアなど(たとえば、
図4の供給元のドロップエリア432、
図4の目的地のドロップエリア434、及び/または、
図4の移行ドロップエリア436)の1つまたは複数の指定されたエリアの撮像結果(たとえば、取得されたデジタル画像及び/またはポイントクラウド)を生成することができる。
【0058】
ブロック504では、ロボットシステム100は、
図1のターゲットとなる対象112及び関連する位置(たとえば、
図1のスタート位置114、及び/または、
図1の作業位置116)を識別することができる。いくつかの実施形態では、たとえば、ロボットシステム100(たとえば、プロセッサ202を介する)は、対象のアウトライン(たとえば、周囲の縁部または表面)を識別するために、パターン認識メカニズム及び/または規則のセットに従って、撮像結果を分析することができる。ロボットシステム100は、対象の特有の例の各々に対応するような、(たとえば、所定の規則及び/またはポーズのテンプレートに従って)対象のアウトラインのグルーピングのさらなる識別を行うことができる。たとえば、ロボットシステム100は、対象のラインにわたり、色、輝度、深さ/位置、またはそれらの組合せにおけるパターン(たとえば、同じ値であるか、既知の割合/パターンで変化する)に対応する、対象のアウトラインのグルーピングを識別することができる。また、たとえば、ロボットシステム100は、マスターデータにおいて規定された所定の形状/ポーズのテンプレートに従って、対象のアウトラインのグルーピングを識別することができる。
【0059】
ピックアップ位置で認識された対象から、ロボットシステム100は、ターゲットとなる対象112として、(たとえば、所定のシークエンスまたは規則のセット、及び/または、対象のアウトラインのテンプレートに従って)1つを選択することができる。たとえば、ロボットシステム100は、(ソーススキャナ412の既知の位置に対する距離/位置を示す)ポイントクラウドに従うなどして、頂部に位置する対象として、ターゲットとなる対象112を選択することができる。また、たとえば、ロボットシステム100は、角/縁部に位置し、撮像結果に露出する/示される、2つ以上の表面を有する対象として、ターゲットとなる対象112を選択することができる。さらに、ロボットシステム100は、所定のパターン(たとえば、基準位置に対し、左から右へ、もっとも近くからもっとも遠くへなど)に従って、ターゲットとなる対象112を選択することができる。
【0060】
選択されたターゲットとなる対象112に関し、ロボットシステム100は、スタート位置114及び/または最初のポーズを判定するために、撮像結果をさらに処理することができる。たとえば、ロボットシステム100は、複数の所定のポーズのテンプレート(たとえば、対応する対象の向きに係る、対象のアウトラインの、異なる、可能性のある配置)から、対象のアウトラインのグルーピングと比較した際の、もっとも少ない差異の測定に対応するものの選択に基づき、ターゲットとなる対象112の最初のポーズを判定することができる。また、ロボットシステム100は、撮像結果の中のターゲットとなる対象112の位置(たとえば、判定されたポーズに関する所定の基準ポイント)を、ロボットシステム100によって使用されるグリッド内の位置へ変換することにより、スタート位置114を判定することができる。ロボットシステム100は、所定の較正マップに従って位置を変換することができる。
【0061】
いくつかの実施形態では、ロボットシステム100は、ドロップエリアの撮像結果を処理して、対象間のあいているスペースを判定することができる。ロボットシステム100は、画像の位置を、現実の位置及び/またはシステムによって使用される座標に変換する所定の較正マップに従って、対象のラインをマッピングすることに基づいて、前記あいているスペースを判定することができる。ロボットシステム100は、異なるグルーピング/対象に属する対象のライン(そしてひいては、対象の表面)間の空間として、あいているスペースを判定することができる。いくつかの実施形態では、ロボットシステム100は、あいているスペースの1つまたは複数の寸法を測定し、測定された寸法をターゲットとなる対象112の1つまたは複数の寸法(たとえば、マスターデータに記憶されているようなもの)と比較することに基づいて、ターゲットとなる対象112にとって適切なあいているスペースを判定することができる。ロボットシステム100は、所定のパターン(たとえば、基準位置に対し、左から右へ、もっとも近くからもっとも遠くへ、底部から頂部へなど)に従って、適切な/あいているスペースの1つを、作業位置116として選択することができる。
【0062】
いくつかの実施形態では、ロボットシステム100は、撮像結果を処理せずにまたは処理することに加えて、作業位置116を判定することができる。たとえば、ロボットシステム100は、エリアを撮像することなく、所定の動作のシークエンス及び位置に従って、配置エリアに対象を配置することができる。また、たとえば、ロボットシステム100は、複数の作業(たとえば、スタックの共通の層/列に位置する対象に関するものなど、複数の対象を移動すること)を実施するために、撮像結果を処理することができる。
【0063】
ブロック506では、ロボットシステム100は、ターゲットとなる対象112に関する
図4の作業402を実行するためのベースとなるプラン(たとえば、
図4のベースとなるモーションプラン422)を計算することができる。たとえば、ロボットシステム100は、
図3A/
図3Bのロボットアーム304、及び/または、エンドエフェクタ(たとえば、
図3Aのグリッパ302、及び/または、
図3Bのグリッパ352)を操作する、
図2の作動デバイス212に関して、コマンドもしくは設定のシークエンスまたはそれらの組合せを計算することに基づいて、ベースとなるモーションプラン422を計算することができる。いくつかの作業に関し、ロボットシステム100は、ロボットアーム304及び/またはエンドエフェクタを操縦して、ターゲットとなる対象112をスタート位置114から作業位置116に移動する、シークエンス及び設定値を計算することができる。ロボットシステム100は、1つまたは複数の規制、ゴール、及び/または規則に従って、空間内の経路を計算するように構成されたモーションプランメカニズム(たとえば、処理、機能、方程式、アルゴリズム、コンピュータで生成された/読取り可能なモデル、またはそれらの組合せ)を実施することができる。たとえば、ロボットシステム100は、ターゲットとなる対象112をスタート位置114から作業位置116に移動するために、空間を通る経路を計算するように、A
*アルゴリズム、D
*アルゴリズム、及び/または他のグリッドに基づく検索を使用することができる。モーションプランメカニズムは、さらなる処理、機能、もしくは方程式、及び/または移行テーブルを使用して、経路を、作動デバイス212に関するコマンドもしくは設定のシークエンス、またはそれらの組合せに変換することができる。モーションプランメカニズムを使用する際、ロボットシステム100は、ロボットアーム304及び/またはエンドエフェクタを操作し、ターゲットとなる対象112に計算された経路をたどらせる、シークエンスを計算することができる。
【0064】
ブロック508では、ロボットシステム100は、ベースとなるプランの実行を開始することができる。ロボットシステム100は、コマンドもしくは設定、またはそれらの組合せのシークエンスに従って作動デバイス212を操作することに基づいて、ベースとなるモーションプラン422の実行を開始することができる。ロボットシステム100は、ベースとなるモーションプラン422の第1の動作セットを実行することができる。たとえば、ロボットシステム100は、ブロック552に示すように、ターゲットとなる対象112をグリップするために、作動デバイス212を操作して、エンドエフェクタを、スタート位置114周りの計算された位置及び/または向きに配置することができる。ブロック554では、ロボットシステム100は、作動デバイス212を操作して、エンドエフェクタ(たとえば、グリッパ302及び/またはグリッパ352)に、ターゲットとなる対象112と係合及びグリップさせることができる。いくつかの実施形態では、ブロック556で示すように、ロボットシステム100は、エンドエフェクタを所定の距離だけ上に移動することにより、最初の持ち上げを実施することができる。いくつかの実施形態では、ロボットシステム100は、グリップ動作の数を追跡するために使用される繰り返しカウンタ「i」をリセットするか初期化することができる。
【0065】
ブロック510では、ロボットシステム100は、確立されたグリップを測定することができる。ロボットシステム100は、
図2の1つまたは複数の接触センサ226を使用して、
図3A/
図3Bの接触基準312を判定することに基づいて、確立されたグリップを測定することができる。ロボットシステム100は、ターゲットとなる対象112をグリップ(ブロック554)した後、及び/または、最初の持ち上げを実施(ブロック556)した後など、ベースとなるモーションプラン422を実行する間、接触基準312を判定することができる。ロボットシステム100は、ロボットアーム304上の1つもしくは複数の位置、エンドエフェクタ上の1つもしくは複数の位置、またはそれらの組合せにおける、力、トルク、圧力、またはそれらの組合せを測定するために、1つまたは複数の接触センサ226を使用することにより、接触基準312を判定することができる。いくつかの実施形態において、グリッパ302(たとえば、
図3Aの吸引カップ306を含む、吸引グリッパ)によって確立されたグリップなどに関しては、接触基準312は、ターゲットとなる対象112の表面に接触して内部に真空状態を保持する吸引カップ306の量、位置、またはそれらの組合せに対応することができる。いくつかの実施形態において、グリッパ352(たとえば、
図3Bのグリッパ顎部356を含む、衝撃性のグリッパ)によって確立されたグリップなどに関しては、接触基準312は、グリッパ顎部356に対するターゲットとなる対象112のシフトに対応することができる。
【0066】
決定ブロック512では、ロボットシステム100は、測定されたグリップを閾値(たとえば、最初のグリップ閾値)と比較することができる。たとえば、ロボットシステム100は、接触基準312を所定の閾値と比較することができる。換言すると、ロボットシステム100は、接触/グリップが、ターゲットとなる対象112の操縦(たとえば、持ち上げ、移動、及び/または再度の方向付け)を続けるのに十分であるかどうかを判定することができる。
【0067】
測定されたグリップが、閾値を満たさない場合、ロボットシステム100は、決定ブロック514に示すように、ターゲットとなる対象112を再度グリップすることに関する繰り返しのカウントが、繰り返しの閾値に達したかどうかを評価することができる。繰り返しのカウントが繰り返しの閾値未満である間、ロボットシステム100は、接触基準312が閾値を満たさない(たとえば、閾値未満である)場合、ベースとなるモーションプラン422から外れることができる。したがって、ブロック520において、ロボットシステム100は、ロボットアーム304及び/またはエンドエフェクタを操作して、ベースとなるモーションプラン422には含まれていない、再度グリップする動作を実行することができる。たとえば、再度グリップする動作には、ロボットアーム304に、エンドエフェクタを下げさせる(たとえば、最初の持ち上げの逆)、及び/または、エンドエフェクタに、ターゲットとなる対象112を開放させ、ターゲットとなる対象112を再度グリップさせる、作動デバイス212に関するコマンドもしくは設定の所定のシークエンス、またはそれらの組合せを含むことができる。いくつかの実施形態では、所定のシークエンスにより、ターゲットとなる対象を開放した後、かつ、ターゲットとなる対象を再度グリップする前に、グリッパの位置を調整するように、ロボットアーム304をさらに操作することができる。再度グリップする動作を実施する際に、ロボットシステム100は、ベースとなるモーションプラン422の実行を中断することができる。再度グリップする動作を実行した後に、ロボットシステム100は、繰り返しのカウントを増大させることができる。
【0068】
対象を再度グリップした後に、ロボットシステム100は、ブロック510に関して上述したように、確立されたグリップを測定し、ブロック512に関して上述したように、確立されたグリップを評価することができる。ロボットシステム100は、繰り返しのカウントが繰り返しの閾値に達するまで、上述のターゲットとなる対象112をグリップし直すように試みることができる。繰り返しのカウントが繰り返しの閾値に達すると、ロボットシステム100は、ブロック516に示すように、ベースとなるモーションプラン422の実行を停止することができる。いくつかの実施形態では、ロボットシステム100は、ブロック518に示すように、オペレータの入力を要請することができる。たとえば、ロボットシステム100は、
図2の通信デバイス206及び/または
図2の入力−出力デバイス208を介して、オペレータに対する通知(たとえば、所定のメッセージ)を生成することができる。ロボットシステム100は、オペレータの入力に従って、作業402及び/またはベースとなるモーションプラン422を処理することができる。いくつかの実施形態では、ロボットシステム100は、ベースとなるモーションプラン422をキャンセルまたは削除するか、対応する作業402に関する所定の状態(たとえば、エラーコード)を記録するか、または、それらの組合せを実行するかすることができる。いくつかの実施形態では、ロボットシステム100は、上述のような、ピックアップ/作業エリアの撮像(ブロック502)、及び/または、ターゲットとなる対象としてのピックアップエリア内の別のアイテムの識別(ブロック504)により、処理を再開することができる。
【0069】
測定されたグリップが閾値を満たすと、ロボットシステム100は、ブロック522に示すように、ベースとなるモーションプラン422の残りの部分/動作の実行を継続することができる。同様に、接触基準312が、ターゲットとなる対象112を再度グリップした後に、閾値を満たした場合、ロボットシステム100は、中断されたベースとなるモーションプラン422の実行を再開することができる。したがって、ロボットシステム100は、コマンド及び/または設定の残りのシークエンスに従って、
図2の作動デバイス212及び/または移送モータ214を操作することにより、ベースとなるモーションプラン422のシークエンス化された動作(すなわち、グリップ及び/または最初の持ち上げの後の動作)の実行を継続することができる。たとえば、ロボットシステム100は、ベースとなるモーションプラン422に従って、ターゲットとなる対象112を移送(たとえば、垂直及び/または水平に移送)及び/または再度方向付けることができる。
【0070】
ベースとなるモーションプラン422を実行している間は、ロボットシステム100は、ターゲットとなる対象112の現在の位置424及び/または現在の向きを追跡することができる。ロボットシステム100は、ロボットアーム304及び/またはエンドエフェクタの1つまたは複数の位置を特定するように、
図2の位置センサ224からの出力に従って、現在の位置424を追跡することができる。いくつかの実施形態では、ロボットシステム100は、コンピュータで生成されたモデル、処理、方程式、位置マップ、またはそれらの組合せを伴って、位置センサ224の出力を処理することにより、現在の位置424を追跡することができる。したがって、ロボットシステム100は、ジョイント及び構造的部材の位置または向きを組み合わせ、その位置をグリッドにさらにマッピングして、現在の位置424を計算及び追跡することができる。いくつかの実施形態では、ベースとなるモーションプラン422は、マルチラテレーションシステムを使用することができる。たとえば、ロボットシステム100は、複数のビーコン源を含むことができる。ロボットシステム100は、ロボットアーム304及び/またはエンドエフェクタの1つまたは複数の位置でビーコン信号を測定し、測定値(たとえば、信号強度、タイムスタンプもしくは伝播遅れ、及び/または位相シフト)を使用して、信号源と測定位置との間の分離距離を計算することができる。ロボットシステム100は、信号源の既知の位置に分離距離をマッピングし、信号の受信位置の現在の位置を、マッピングされた分離距離がオーバーラップする位置として計算することができる。
【0071】
決定ブロック524では、ロボットシステム100は、ベースとなるプランが、終了まで完全に実行されたかを判定することができる。たとえば、ロボットシステム100は、ベースとなるモーションプラン422の動作のすべて(たとえば、コマンド及び/または設定)が完了したかどうかを判定することができる。また、ロボットシステム100は、現在の位置424が作業位置116にマッチした際に、ベースとなるモーションプラン422が完了したことを判定することができる。ロボットシステム100がベースとなるプランの実行を完了した場合、ロボットシステム100は、上述のような、ピックアップ/作業エリアの撮像(ブロック502)、及び/または、ターゲットとなる対象としてのピックアップエリア内の別のアイテムの識別(ブロック504)により、処理を再開することができる。
【0072】
そうでなければ、ブロック526において、ロボットシステム100は、ターゲットとなる対象112の移行の間、グリップを(すなわち、接触基準312を判定することにより)測定することができる。換言すると、ロボットシステム100は、ベースとなるモーションプラン422を実行する間、接触基準312を判定することができる。いくつかの実施形態では、ロボットシステム100は、サンプリング周期に従って、または所定の時間に、接触基準312を判定することができる。いくつかの実施形態では、ロボットシステム100は、所定の数のコマンドまたは設定を作動デバイス212で実行する前及び/または後に、接触基準312を判定することができる。たとえば、ロボットシステム100は、持ち上げまたは回転など、特定のカテゴリの動きの後または間に、接触センサ226をサンプリングすることができる。また、たとえば、ロボットシステム100は、加速度計の出力の方向及び/または大きさが、急激又は迅速な動きを示す所定の閾値にマッチする又は超えた場合、接触センサ226をサンプリングすることができる。ロボットシステム100は、(たとえば、ブロック510に関する)上述の1つまたは複数のプロセスを使用して、接触基準312を判定することができる。
【0073】
いくつかの実施形態では、ロボットシステム100は、グリッパ及び/またはターゲットとなる対象112の向きを判定し、それに応じて接触基準を調整することができる。ロボットシステム100は、接触センサに関する検知方向と、向きに応じてターゲットとなる対象に印加される重力との間の方向関係に対処(account for)するために、向きに基づいて接触基準を調整することができる。たとえば、ロボットシステム100は、検知方向と、向きに応じた基準方向(たとえば、「下」または重力の方向)との間の角度を計算することができる。ロボットシステム100は、計算された角度に対応する因子及び/またはサインに応じて、接触基準をスケーリング又は複数倍にすることができる。
【0074】
決定ブロック528では、ロボットシステム100は、測定されたグリップを閾値(たとえば、移行グリップ閾値)と比較することができる。いくつかの実施形態では、移行グリップ閾値は、ターゲットとなる対象112上の最初の(たとえば、移行前の)グリップを評価することに関する最初のグリップ閾値以下とすることができる。したがって、ロボットシステム100は、ターゲットとなる対象112の移送を開始する前に、グリップの評価に関するより厳格な規則を施行することができる。グリップに関する閾値の要件は、ターゲットとなる対象112をピックアップするのに十分な接触が、ターゲットとなる対象112を移送するのに十分であると考えられることから、最初はより高くすることができる。
【0075】
測定されたグリップが閾値を満たす(たとえば、閾値以上である)と、ロボットシステム100は、ブロック522に示して上述したように、ベースとなるプランの実行を継続することができる。測定されたグリップが、閾値を満たさない(たとえば、閾値未満である)場合、ロボットシステム100は、ベースとなるモーションプラン422から外れ、ブロック530において示したような1つまたは複数の応答性の動作を実行することができる。したがって、測定されたグリップが、閾値に照らして、不十分である場合、ロボットシステム100は、ベースとなるモーションプラン422には含まれていないコマンド及び/または設定に従って、ロボットアーム304、エンドエフェクタ、またはそれらの組合せを操作することができる。いくつかの実施形態では、ロボットシステム100は、現在の位置424に基づき、異なるコマンド及び/または設定を実行することができる。
【0076】
図示の目的のために応答性の動作は、制御されたドロップを使用して記載される。しかし、ロボットシステム100は、ブロック516で示したように、ベースとなるモーションプラン422の実行を停止すること、及び/または、ブロック518で示したように、オペレータの入力を要請することなどにより、他の動作を実行することができることを理解されたい。
【0077】
制御されたドロップには、制御された方式で(すなわち、ターゲットとなる対象112の下降及び/または開放に基づくものであり、グリップの完全な欠落の結果ではない)、ドロップエリアの1つに(たとえば、作業位置116の代わりに)、ターゲットとなる対象112を配置するための1つまたは複数の動作が含まれている。制御されたドロップの実行において、ロボットシステム100は、動的に(すなわち、リアルタイムで、及び/または、ベースとなるモーションプラン422を実行している間に)、現在の位置424に従って、異なる位置、動きもしくは経路、及び/または作動デバイスのコマンドまたは設定を計算することができる。
【0078】
ブロック562では、ロボットシステム100は、
図4の調整されたドロップ位置442、及び/または、ターゲットとなる対象112を配置するための関連するポーズを計算することができる。調整されたドロップ位置442を計算する際に、ロボットシステム100は、現在の位置424の最寄り及び/または前方(たとえば、現在の位置424と作業位置116との間)のドロップエリア(たとえば、
図4の供給元のドロップエリア432、
図4の目的地のドロップエリア434、または、
図4の移行ドロップエリア436)を識別することができる。ロボットシステム100は、ドロップエリアを規定する境界に対し、現在の位置424を比較することに基づいて、適切なドロップエリアを識別することができる。いくつかの実施形態では、現在の位置424がドロップエリアの1つにある場合(たとえば、ターゲットとなる対象112が依然として供給源のパレット/大箱、または、ターゲットのパレット/大箱の上にある場合など)、ロボットシステム100は、現在の位置424として、調整されたドロップ位置442を計算することができる。いくつかの実施形態では、現在の位置424がドロップエリアの1つにある場合、ロボットシステム100は、ターゲットとなる対象112を共用の回廊から離れて配置するなどのために、現在の位置424に対する所定のオフセット距離及び/または方向を付加することに基づいて、調整されたドロップ位置442を計算することができる。
【0079】
また、現在の位置424がドロップエリア間にある(すなわち、ドロップエリアにない)場合、ロボットシステム100は、ドロップエリアまでの距離(たとえば、ドロップエリアに関する代表的な基準位置までの距離)を計算することができる。したがって、ロボットシステム100は、現在の位置424の最寄り、及び/または、現在の位置424の前方のドロップエリアを識別することができる。識別されたドロップエリアに基づき、ロボットシステム100は、調整されたドロップ位置442として、その内部の位置を計算することができる。いくつかの実施形態では、ロボットシステム100は、所定の順番(たとえば、基準位置に対し、左から右へ、底部から頂部へ、及び/または、前方から後方へ)に従って位置を選択することに基づき、調整されたドロップ位置442を計算することができる。
【0080】
いくつかの実施形態では、ロボットシステム100は、現在の位置424からドロップエリア内のあいているスペース(たとえば、ブロック504で識別されるもの、及び/または、対象の進行中の配置に従って追跡されるもの)までの距離を計算することができる。ロボットシステム100は、調整されたドロップ位置442として、現在の位置424の前方、及び/または、現在の位置424の最寄りのあいているスペースを選択することができる。
【0081】
いくつかの実施形態では、ドロップエリア及び/またはあいているスペースを選択する前に、ロボットシステム100は、所定のプロセス及び/または方程式を使用して、接触基準312を最大の移送距離に変換することができる。たとえば、所定のプロセス及び/または方程式は、接触基準312の様々な値に基づき、完全にグリップが失われる前に、対応する最大の移送距離及び/または持続時間を見積もる。したがって、ロボットシステム100は、現在の位置424からの最大の移送距離より離れた、利用可能なドロップエリア及び/またはあいているスペースをフィルタリングすることができる。いくつかの実施形態では、ロボットシステム100が、利用可能なドロップエリア及び/またはあいているスペースを識別できなかった場合(たとえば、アクセス可能なドロップエリアが満杯である場合)、ロボットシステム100は、ブロック516で示すように、ベースとなるモーションプラン422の実行を停止し、及び/または、ブロック518で示すように、オペレータの入力を申請することができる。
【0082】
ブロック566では、ロボットシステム100は、ターゲットとなる対象112を現在の位置424から、調整されたドロップ位置442に移送するために、調整されたモーションプラン444を計算することができる。ロボットシステム100は、ブロック506に関して上述した方法と同様の方法で、調整されたモーションプラン444を計算することができる。たとえば、ロボットシステム100は、A
*またはD
*を使用して、現在の位置424から、調整されたドロップ位置442までの経路を計算し、作動デバイス212に関し、その経路をコマンドもしくは設定、またはそれらの組合せのシークエンスに変換することができる。作動デバイス212は、ロボットアーム304及び/またはエンドエフェクタを操作して、ターゲットとなる対象112がその経路を辿るように動かす。
【0083】
ブロック568では、ロボットシステム100は、ベースとなるモーションプラン422に加えて、及び/または代わりに、調整されたモーションプラン444を実行することができる。たとえば、ロボットシステム100は、コマンドもしくは設定、またはそれらの組合せのシークエンスに応じて、作動デバイス212を操作することができ、それにより、ロボットアーム304及び/またはエンドエフェクタを動かして、ターゲットとなる対象112を経路に沿って移動させる。
【0084】
いくつかの実施形態では、ロボットシステム100は、ベースとなるモーションプラン422の実行を停止し、調整されたモーションプラン444を実行することができる。ターゲットとなる対象112が、調整されたモーションプラン444の実行に基づき、調整されたドロップ位置442に配置される(すなわち、制御されたドロップの実行が完了する)と、いくつかの実施形態では、ロボットシステム100は、ブロック520に関して上述したように、ターゲットとなる対象112を再度グリップし、次いで、ブロック510に関して上述したように、確立されたグリップを測定することを試みることができる。いくつかの実施形態では、ロボットシステム100は、上述のように、繰り返しの限界まで、ターゲットとなる対象112をグリップし直すことを試みることができる。接触基準312が最初のグリップ閾値を満たす場合、ロボットシステム100は、調整されたモーションプラン444を逆転し(たとえば、中断されたポイント/位置に戻り)、中断されたベースとなるモーションプラン422の残りの部分の実行を続けることができる。いくつかの実施形態では、ロボットシステム100は、調整されたモーションプラン444を、現在の位置424(再グリップの後)から作業位置116にアップデート及び再計算し、調整されたモーションプラン444を実行して、作業402の実行を完了することができる。
【0085】
いくつかの実施形態では、ブロック570において、ロボットシステム100は、アクセスされたドロップエリアに関するエリアログ(たとえば、あいているスペース及び/または配置された対象の記録)をアップデートして、配置されたターゲットとなる対象112を反映することができる。たとえば、ロボットシステム100は、対応するドロップエリアに関し、撮像結果を生成し直すことができる。いくつかの実施形態では、ロボットシステム100は、調整されたドロップ位置442における、制御されたドロップの実行、及び、ターゲットとなる対象112の配置の後に、ベースとなるモーションプラン422の残りの動作をキャンセルすることができる。1つまたは複数の実施形態では、移行ドロップエリア436は、
図1の輸送ユニット106の1つの頂部に置かれたパレットまたは大箱を含むことができる。指定された時間において(たとえば、パレット/大箱が満杯である場合、及び/または、続いて来るパレット/大箱が遅れている場合)、対応する輸送ユニットは、ドロップエリアからピックアップエリアに移動することができる。したがって、ロボットシステム100は、方法500を再度実施することができ、それにより、ターゲットとなる対象112としてドロップされたアイテムを再度識別し、それらアイテムを対応する作業位置116に移送する。
【0086】
ターゲットとなる対象112が調整されたドロップ位置442に配置されると、ロボットシステム100は、新たなターゲットとなる対象に関し、方法500を繰り返すことができる。たとえば、ロボットシステム100は、ピックアップエリアにある次の対象を、ターゲットとなる対象112として判定し、新たなターゲットとなる対象を移送するために新たなベースとなるモーションプランを計算するなどすることができる。
【0087】
いくつかの実施形態では、ロボットシステム100は、接触基準312に基づいて経路計算メカニズムをアップデートするフィードバックメカニズムを含むことができる。たとえば、ロボットシステム100が、ターゲットとなる対象112を、(たとえば、ブロック520に関して上述したように)調整された位置でグリップし直す動作を実施すると、ロボットシステム100は、(たとえば、ブロック512に関して上述したように)閾値を満たす接触基準312を生成した、エンドエフェクタの位置を記憶することができる。ロボットシステム100は、ターゲットとなる対象112に関する位置を記憶することができる。ロボットシステム100は、グリップの欠落及び/または成功した再グリップの動作の数が閾値に達した場合、ターゲットとなる対象112をグリップし直すために、(たとえば、最近の動作のセットを分析するための実行ウインドウを使用して)記憶された位置を分析することができる。所定の数の再グリップの動作が、特定の対象に関して生じた場合、ロボットシステム100は、ターゲットとなる対象112に対する新たな位置(たとえば、もっとも多い成功数に対応する位置)にグリッパを配置するように、モーションプランメカニズムを更新することができる。
【0088】
ブロック510及び/またはブロック526に示す動作に基づき、ロボットシステム100(たとえば、プロセッサ202を介する)は、ベースとなるモーションプラン422の実行の進捗を追跡することができる。いくつかの実施形態では、ロボットシステム100は、ターゲットとなる対象112の水平移動に係る進捗を追跡することができる。たとえば、
図5に示すように、ロボットシステム100は、水平移動を開始する前の確立されたグリップの測定(ブロック510)に基づくとともに、水平移動を開始した後の移動の間のグリップの測定(ブロック526)に基づいて、進捗を追跡することができる。したがって、ロボットシステム100は、アクチュエータコマンド、アクチュエータ設定、またはそれらの組合せの新たなセット(すなわち、ベースとなるモーションプラン422とは異なる)を上述のような進捗に基づき、選択的に生成することができる。
【0089】
他の実施形態では、たとえば、ロボットシステム100は、作動デバイス212によって通信及び/または実施されたコマンド、設定、またはそれらの組合せの追跡に基づき、進捗を追跡することができる。進捗に基づき、ロボットシステム100は、再グリップの応答動作及び/または制御されたドロップの応答動作を実行するように、アクチュエータコマンド、アクチュエータ設定、またはそれらの組合せの新たなセットを選択的に生成することができる。たとえば、進捗が、ターゲットとなる対象112の任意の水平移動の前である場合、ロボットシステム100は、最初のグリップ閾値を選択し、(たとえば関数呼び出しまたはジャンプ命令を介して)ブロック512及びその先に示された操作を実行することができる。また、進捗が、ターゲットとなる対象112の水平移動の後である場合、ロボットシステム100は、移行グリップ閾値を選択し、(たとえば関数呼び出しまたはジャンプ命令を介して)ブロック528及びその先に示された操作を実行することができる。
【0090】
接触基準312に係る、ターゲットとなる対象112について粒度の細かい制御/操縦の実施(すなわち、ベースとなるモーションプラン422の実施またはそれから外れることの選択)により、対象を移送することに関する効率、速度、及び精度が向上する。たとえば、接触基準312が最初のグリップ閾値未満である場合、ターゲットとなる対象112をグリップし直すことにより、移送の間にグリップの欠落が生じる可能性が低減され、これにより、移送の間に失われる又は意図せずにドロップする対象の数が低減される。さらに、失われた対象の各々は、結果を修正するために、人間の干渉が必要である(たとえば、失われた対象を、次の作業のために、モーションの経路から移動する、損害のために失われた対象を調査する、及び/または失われた対象に関する作業を完了する)。このため、失われた対象の数を低減することにより、作業及び/または全体の操作を実施するために必要な人間の労力が低減される。
【0091】
さらに、接触基準312が移行グリップ閾値未満である場合、ターゲットとなる対象112を指定されたエリアに置くことにより、追跡されていない障害及び損傷したアイテムの数が低減される。調整されたドロップ位置442の計算、及び、制御されたドロップの実行に基づき、ターゲットとなる対象112は、既知の位置に置くことができる。したがって、ランダムな追跡されない位置になる失われた対象の数は低減され、これにより、失われた対象が、後の作業の実行をブロックする又は妨げる位置となる可能性がさらに低減される。さらに、ロボットシステム100は、上述のように調整されたドロップ位置442を計算する際に、頻繁に使用される経路のセグメントを避けることができ、それにより、不十分なグリップの衝撃がさらに低減される。さらに、ターゲットとなる対象112が、はずみで、ある高さから落とされる代わりに、制御された方式で配置されることから、ターゲットとなる対象112は、より少ない力で配置場所に接触する。したがって、制御されたドロップを実行することにより、対象の損失によって生じる損傷が大きく低減される。
【0092】
まとめ
開示の技術の実施例の上述の発明を実施するための形態は、排他的であるか、開示の技術を上記に開示の明確な形態に限定されることは意図されていない。開示の技術に関する特定の実施例が、説明の目的のために上述されているが、様々な均等の変形形態が、当業者が認識することになるように、開示の技術の範囲内で可能である。たとえば、プロセスまたはブロックが所与の順番で提供されているが、代替的な実施態様により、異なる順番で、ステップを有するルーチンを実施するか、ブロックを有するシステムを採用する場合があり、また、いくつかのプロセスまたはブロックは、削除、移動、追加、細分化、結合、及び/または変形されて、代替的またはサブの組合せを提供する場合がある。これらプロセスまたはブロックの各々は、様々な異なる方法で実施される場合がある。また、プロセスまたはブロックが、図示の時点で、連続して実施されるものであるが、これらプロセスまたはブロックは、代わりに、並行して実施されるか実行される場合があり、あるいは、異なる時間に実施される場合がある。さらに、本明細書に示されたあらゆる特定の数は、実施例にすぎず、代替的実施態様では、異なる値またはレンジが採用される場合がある。
【0093】
これら及び他の変更は、上述の発明を実施するための形態に照らして、開示の技術に行うことができる。発明を実施するための形態には、開示の技術の特定の実施例と、想定されるベストモードとが記載されているが、開示の技術は、上述の説明が、テキストにおいてどれだけ詳細に示されるかに関わらず、多くの方法で実施することができる。本システムの詳細は、その特定の実施態様において、著しく変化する場合があるが、依然として、本明細書に開示の技術に包含されている。上述のように、開示の技術の特定の特徴または態様を記載する際に使用された特定の用語は、その用語が、用語が関連付けられた開示の技術の特定の特性、特徴、または態様のいずれにも限定されるように本明細書で再定義されることを暗示するものとは取られないものとする。したがって、本発明は、添付の特許請求の範囲によるものを除き、限定されない。概して、添付の特許請求の範囲で使用される用語は、上述の発明を実施するための形態のセクションが、そのような用語を明示的に規定していない限り、開示の技術を、明細書に開示の特定の実施例に制限するようには解釈されないものとする。
【0094】
本発明の特定の態様が、特定の特許請求の範囲の形態で添付のように与えられているが、本出願人は、任意の数の請求項の形態で、本発明の様々な態様を想定している。したがって、本出願人は、本出願または継続出願において、本出願を出願した後に、さらなる特許請求の範囲を実行する権利を留保して、そのような追加の請求項の形態を実行する。
【解決手段】ベースとなるモーションプランを計算する。ベースとなるモーションプランは、ロボットアーム及びグリッパを操作して、ターゲットとなる対象をスタート位置から作業位置に移送する、コマンドもしくは設定、またはそれらの組合せのシークエンスを含む。ベースとなるモーションプランを実行している間に、ターゲットとなる対象上のグリッパのグリップの量を示す接触基準を受領する。接触基準が閾値を満たさない場合に、ベースとなるモーションプランから外れた1つまたは複数のアクチュエータコマンド/設定を生成する。その1つまたは複数のアクチュエータコマンド/設定が、ロボットアーム、グリッパ、またはそれらの組合せを操作して、ベースとなるモーションプランに含まれない1つまたは複数の応答動作を実行するように構成されている。