(57)【要約】【課題】ロボットは、しばしば、様々な現実世界の因子から生じ得る逸脱または不確実性に対処するための、粒度の細かい制御及び柔軟性が欠如している。【解決手段】撮像データに基づき、ターゲットとなる対象の最初のポーズを判定する。最初のポーズは、ピックアップエリア内のターゲットとなる対象の停止した向きを概算するためのものである、次いで、最初のポーズに関する信頼基準を計算し、計算した信頼基準に従ってモーションプランを計算する。信頼基準は、最初のポーズが正確である可能性を示すものである。モーションプランは、ターゲットとなる対象をスタート位置からピックアップすることと、ターゲットとなる対象を作業位置に移動することと、スタート位置と作業位置との間の１つまたは複数の対象識別子をスキャンすることと、に基づき、作業を実行するためのものである。【選択図】図５Ａ
2020121405.tif 000002
【特許請求の範囲】
【請求項１】
ロボットシステムの操作方法であって、
ターゲットとなる対象を含むピックアップエリアを示す撮像データを受信することと、
前記撮像データに基づき、前記ターゲットとなる対象の最初のポーズを判定することと、
前記最初のポーズに関する信頼基準を計算することであって、前記信頼基準が、前記最初のポーズが正確である可能性を示すものである、前記計算することと、
前記信頼基準に基づき、アプローチ位置及び少なくとも１つのスキャン位置を取得することであって、前記アプローチ位置は、前記エンドエフェクタが前記ターゲットとなる対象に接触し及びグリップする位置を規定し、前記スキャン位置は、１つまたは複数の前記対象識別子をスキャンするために、前記エンドエフェクタが１つまたは複数の対応する対象スキャナの前に前記ターゲットとなる対象の１つまたは複数の表面を提供する位置を規定する、前記取得することと、
前記取得されたアプローチ位置及びスキャン位置に基づき、モーションプランを取得することであって、
前記モーションプランは、（１）前記ターゲットとなる対象をスタート位置からピックアップすること、（２）前記ターゲットとなる対象を作業位置に移動すること、及び（３）１つまたは複数の対象識別子を、前記スタート位置と前記作業位置との間に位置する１つまたは複数の対象スキャナに提供することに基づき、作業を実行するようにロボットアーム及びエンドエフェクタを操作するための、コマンド、設定、またはそれらの組合せを含み、
前記モーションプランを取得することは、
前記信頼基準を十分性閾値と比較することと、
前記比較の結果に基づき、性能のメトリック及び／またはスキャンのメトリックに従って、前記アプローチ位置及び前記スキャン位置を選択的に計算することと、を含み、
前記スキャンのメトリックは、前記最初のポーズが正確であるか否かに関わらず、前記対象識別子の少なくとも１つが前記エンドエフェクタによってカバーされないままである可能性に対応するものである、前記取得することと、
前記作業を実行するように１つまたは複数の作動デバイスを操作するための前記モーションプランを実施することと、
を含む、ロボットシステムの操作方法。
【請求項２】
前記アプローチ位置及び前記スキャン位置を取得することは、前記信頼基準が前記十分性閾値を満たさない場合に、前記スキャンのメトリックに従って前記アプローチ位置及び前記スキャン位置を取得することを含む、請求項１に記載の方法。
【請求項３】
前記アプローチ位置及び前記スキャン位置を取得することは、前記信頼基準が前記十分性閾値を満たさない場合に、前記性能のメトリックの前に前記スキャンのメトリックを優先順位付けすることを含む、請求項１に記載の方法。
【請求項４】
前記アプローチ位置及び前記スキャン位置を取得することは、前記信頼基準が前記十分性閾値を満たす場合に、前記性能のメトリックに基づき、前記アプローチ位置及び前記スキャン位置を取得することを含む、請求項１に記載の方法。
【請求項５】
前記アプローチ位置及び前記スキャン位置を取得することは、
前記ターゲットとなる対象に関して、前記スタート位置の周りの利用可能なアプローチ位置のセットを計算することであって、前記利用可能なアプローチ位置のセットは、他の対象を妨げることなく、前記ターゲットとなる対象に接触し及びグリップするように、前記エンドエフェクタを配置するためのものである、前記計算することと、
前記利用可能なアプローチ位置のセットにおける各々の利用可能なアプローチ位置に関して、露出した識別子のセットを計算することであって、前記露出した識別子のセットは、前記最初のポーズが正確であるという第１の仮定に従って、対応するアプローチ位置にある前記エンドエフェクタでカバーされないままである前記対象識別子の対応する位置を示す、前記計算することと、
前記利用可能なアプローチ位置のセットにおける各々の利用可能なアプローチ位置に関して、代替的な識別子のセットを計算することであって、前記代替的な識別子のセットは、前記最初のポーズが正確ではないという第２の仮定に従って、対応するアプローチ位置にある前記エンドエフェクタでカバーされないままである前記対象識別子の位置を示す、前記計算することと、
前記アプローチ位置を選択することであって、前記アプローチ位置は、前記露出した識別子のセットと前記代替的な識別子のセットとの両方における、カバーされていない対象識別子を有する、前記利用可能なアプローチ位置である、前記選択することと、
を含む、請求項１に記載の方法。
【請求項６】
前記対象スキャナに対応するスキャンフィールドを識別することと、
前記スキャンフィールド内または前記スキャンフィールドを通る、前記ターゲットとなる対象の候補のポーズのセットを計算することであって、各候補のポーズは、前記対象スキャナに対して前記ターゲットとなる対象の複数の表面を提供する、前記計算することと、
前記露出した識別子のセット及び前記代替的な識別子のセットを前記候補のポーズの各々にマッピングすることと、
各候補のポーズに関し、前記露出した識別子のセット及び前記代替的な識別子のセットを、前記スキャンフィールドと比較することと、
前記スキャンフィールドに対する前記露出した識別子のセット及び前記代替的な識別子のセットにおける、前記対象識別子を提供する候補のポーズとして、スキャンポーズを識別することと、さらに含み、
前記モーションプランを取得することは、
前記スキャンフィールド内または前記スキャンフィールドを通る、前記スキャンポーズを確立する前記モーションプランを取得することを含む、請求項５に記載の方法。
【請求項７】
スキャンフィールドを識別することは、１つのポーズにおける前記ターゲットとなる対象の様々な表面をスキャンするための、逆向きの方向、直交した方向、またはそれらの組合せを向いたスキャンフィールドを識別することを含み、
前記モーションプランを実施することは、前記スキャンポーズ内の前記ターゲットとなる対象を前記スキャンフィールドにわたって前記スキャンフィールドの向きに直交する方向に移動するための前記モーションプランを実施することを含む、請求項６に記載の方法。
【請求項８】
前記モーションプランを取得することは、少なくとも第１のスキャン位置及び第２のスキャン位置を計算することを含み、
前記第１のスキャン位置は、前記露出した識別子のセット内の位置を、前記対象スキャナの１つに提供するためのものであり、前記第２のスキャン位置は、前記代替的な識別子のセット内の位置を、前記対象スキャナの１つに提供するためのものである、請求項５に記載の方法。
【請求項９】
前記モーションプランを実施することは、
前記第１のスキャン位置まで前記モーションプランを実施した後に、スキャン結果を評価することと、
前記スキャン結果が成功したスキャンを示す場合、前記ターゲットとなる対象を前記作業位置に移動し、前記第２のスキャン位置を無視することと、
を含む、請求項８に記載の方法。
【請求項１０】
前記モーションプランを実施することは、
前記第１のスキャン位置まで前記モーションプランを実施した後に、スキャン結果を評価することと、
前記スキャン結果が失敗したスキャンを示す場合、前記ターゲットとなる対象を前記第２のスキャン位置に移動することと、
を含む、請求項８に記載の方法。
【請求項１１】
前記露出した識別子のセットを前記代替的な識別子のセットと比較して、前記露出した識別子のセット及び前記代替的な識別子のセットが、前記ターゲットとなる対象の対向する表面の位置を含むかどうかを判定することと、
前記対向する表面に直交する第３の表面に関連する前記アプローチ位置を選択することと、
をさらに含む、請求項５に記載の方法。
【請求項１２】
前記アプローチ位置及び前記スキャン位置を取得することは、前記信頼基準が前記十分性閾値を満たす場合に、前記スキャンのメトリックを考慮することなく、前記アプローチ位置及び前記スキャン位置を取得することを含む、請求項１１に記載の方法。
【請求項１３】
前記モーションプランを計算することは、
前記ターゲットとなる対象に関して、前記スタート位置の周りの利用可能なアプローチ位置のセットを計算することであって、前記利用可能なアプローチ位置のセットは、他の対象を妨げることなく、前記ターゲットとなる対象をグリップするように、前記エンドエフェクタを配置するための位置を示す、前記計算することと、
前記利用可能なアプローチ位置のセットにおける各々の利用可能なアプローチ位置に関して候補のプランを計算することであって、前記候補のプランは、候補となるスキャン位置を含む、前記計算することと、
各候補のプランに関して前記性能のメトリックを計算することであって、前記性能のメトリックは、前記ターゲットとなる対象を前記作業位置に配置するために、前記ターゲットとなる対象によって移動される距離、概算の移動時間、コマンドまたは設定の変更の数、前記対応する利用可能なアプローチ位置に関連する達成率、またはそれらの組合せに関連するスループット率に対応する、前記計算することと、
前記アプローチ位置を選択することと、を含み、前記アプローチ位置は、もっとも高い性能のメトリックに対応する、前記セット内の利用可能なアプローチ位置である、請求項１に記載の方法。
【請求項１４】
前記ターゲットとなる対象の前記最初のポーズを判定することは、
前記撮像データ内の前記ターゲットとなる対象の露出表面の縁部のセットを識別することと、
前記セット内の前記縁部を測定することに基づいて、前記ターゲットとなる対象の物理的寸法を概算すると共に、その測定値を標準的な長さにマッピングすることと、
前記露出表面を識別することに基づいて、前記最初のポーズを判定することと、を含み、当該判定することは、前記露出表面の前記概算された物理的寸法を、マスターデータ内の対象の表面の既知の寸法のセットにマッチさせることを含む、請求項１に記載の方法。
【請求項１５】
前記最初のポーズを判定することは、
前記概算された物理的寸法にマッチする、一対の対向する面を識別することと、
前記信頼基準が前記十分性閾値を満たさない場合に、前記最初のポーズに加え、逆のポーズに対処する前記モーションプランを計算することと、を含み、
前記逆のポーズと前記最初のポーズとは、前記一対の対向する面に対応する、請求項１４に記載の方法。
【請求項１６】
前記最初のポーズを判定することは、前記露出表面上の可視のマークを使用して、露出表面、その向き、またはその組合せを識別することに基づいて、前記最初のポーズを判定することを含み、当該判定することは、前記可視のマークを、マスターデータ内の対象の表面上の既知のマークのセットにマッチさせることを含む、請求項１４に記載の方法。
【請求項１７】
前記モーションプランを実施することは、スキャン結果を判定することを含み、
前記スキャン結果が失敗したスキャンを示す場合、前記モーションプランを停止することと、
前記ターゲットとなる対象を、前記スタート位置及び前記作業位置、またはそれらの組合せとは異なる位置に配置するために、オペレータに知らせる失敗解決を実施することと、
をさらに含む、請求項１に記載の方法。
【請求項１８】
ロボットシステムの操作方法であって、
１つまたは複数のスキャンフィールドを識別することであって、前記スキャンフィールドの各々が、対象スキャナに隣接する空間を示す、前記識別することと、
撮像データに基づき、ターゲットとなる対象の最初のポーズを判定することであって、前記ターゲットとなる対象が、１つまたは複数の対象識別子を含む、前記判定することと、
前記最初のポーズが正確であるという第１の仮定に従って、前記対象識別子の１つの、第１の概算の位置を計算することと、
前記最初のポーズが正確ではないという第２の仮定に従って、前記対象識別子の１つの、第２の概算の位置を計算することと、
前記第１の概算の位置及び前記第２の概算の位置を前記スキャンフィールドの１つまたは複数に配置するモーションプランを計算することと、
を含み、
前記モーションプランは、
（１）前記ターゲットとなる対象をピックアップすること、
（２）前記ターゲットとなる対象を移動すること、及び
（３）前記移動の間に、１つまたは複数の対象識別子を、１つまたは複数の前記対象スキャナに提供すること
を行うように、ロボットアーム及びエンドエフェクタを操作するための、作動デバイスのコマンド、作動デバイスの設定、またはその組合せを含む、ロボットシステムの操作方法。
【請求項１９】
有形の非一時的なコンピュータ可読媒体であって、前記コンピュータ可読媒体に記憶されたプロセッサ命令を有する、有形の非一時的なコンピュータ可読媒体であって、
前記プロセッサ命令は、ロボットシステムにより、その１つまたは複数のプロセッサを介して実行された際に、前記ロボットシステムに方法を実施させるものであり、
前記プロセッサ命令は、
ターゲットとなる対象を含むピックアップエリアを示す撮像データを受信する命令と、
前記撮像データに基づき、前記ターゲットとなる対象の最初のポーズを判定する命令と、
前記最初のポーズに関する信頼基準を計算する命令であって、前記信頼基準が、前記最初のポーズが正確である可能性を示すものである、前記計算する命令と、
前記信頼基準に基づき、アプローチ位置及び少なくとも１つのスキャン位置を取得する命令であって、前記アプローチ位置は、前記エンドエフェクタが前記ターゲットとなる対象に接触し及びグリップする位置を規定し、前記スキャン位置は、１つまたは複数の前記対象識別子をスキャンするために、前記エンドエフェクタが１つまたは複数の対応する対象スキャナの前に前記ターゲットとなる対象の１つまたは複数の表面を提供する位置を規定する、前記取得する命令と、
前記取得されたアプローチ位置及びスキャン位置に基づき、モーションプランを取得する命令であって、
前記モーションプランは、（１）前記ターゲットとなる対象をスタート位置からピックアップすること、（２）前記ターゲットとなる対象を作業位置に移動すること、及び（３）１つまたは複数の対象識別子を、前記スタート位置と前記作業位置との間に位置する１つまたは複数の対象スキャナに提供することに基づき、作業を実行するようにロボットアーム及びエンドエフェクタを操作するための、コマンド、設定、またはそれらの組合せを含み、
前記モーションプランを取得する前記命令は、
前記信頼基準を十分性閾値と比較する命令と、
前記比較の結果に基づき、性能のメトリック及び／またはスキャンのメトリックに従って、前記アプローチ位置及び前記スキャン位置を選択的に計算する命令と、を含み、
前記スキャンのメトリックは、前記最初のポーズが正確であるか否かに関わらず、前記対象識別子の少なくとも１つが前記エンドエフェクタによってカバーされないままである可能性に対応するものである、前記取得する命令と、
前記作業を実行するように１つまたは複数の作動デバイスを操作するための前記モーションプランを実施する命令と、
を含む、有形の非一時的なコンピュータ可読媒体。
【請求項２０】
前記アプローチ位置及び前記スキャン位置を得る前記命令は、
前記ターゲットとなる対象に関して、前記スタート位置の周りの利用可能なアプローチ位置のセットを計算する命令であって、前記利用可能なアプローチ位置のセットは、他の対象を妨げることなく、前記ターゲットとなる対象に接触及びグリップするように、前記エンドエフェクタを配置するためのものである、前記計算する命令と、
前記利用可能なアプローチ位置のセットにおける利用可能なアプローチ位置の各々に関して、露出した識別子のセットを計算する命令であって、前記露出した識別子のセットは、前記最初のポーズが正確であるという第１の仮定に従って、対応するアプローチ位置にある前記エンドエフェクタでカバーされないままである前記対象識別子の対応する位置を示す、前記計算する命令と、
前記利用可能なアプローチ位置のセットにおける利用可能なアプローチ位置の各々に関して、代替的な識別子のセットを計算する命令であって、前記代替的な識別子のセットは、前記最初のポーズが正確ではないという第２の仮定に従って、対応するアプローチ位置にある前記エンドエフェクタでカバーされないままである前記対象識別子の位置を示す、前記計算する命令と、
前記露出した識別子のセットと前記代替的な識別子のセットとの両方における、カバーされていない対象識別子を有する、前記利用可能なアプローチ位置を、前記アプローチ位置として選択する命令と、
をさらに含む、請求項１９に記載の有形の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、ロボットシステムを対象とし、より詳細には、対象をスキャンするためのシステム、プロセス、及び技術を対象とする。
【背景技術】
【０００２】
多くのロボット（たとえば、自動的に／独立して物理的動作を実行するように構成されたマシン）は、その絶えず向上する性能及び低下するコストにより、現在、多くの分野で広く使用されている。たとえば、ロボットは、製造及び／または組立て、パッキング及び／またはパッケージング、移送及び／または輸送などにおいて、様々な作業（たとえば、空間を通しての対象の操縦または移動）を実行するように使用することができる。作業の実行において、ロボットは、人間の動作を反復することができ、それにより、そうでなければ危険又は反復的な作業を行うことが要求される人間の関与を置き換えたり、低減したりする。
【０００３】
しかし、技術的な進歩に関わらず、ロボットはしばしば、より複雑な作業を実行するために必要な人間の感受性及び／または適応性を複製するのに必要な洗練さが欠如している。たとえば、操縦ロボットはしばしば、様々な現実世界の因子から生じ得る逸脱または不確実性に対処するための、実行される動作における粒度（granularity）の細かい制御及び柔軟性が欠如している。したがって、様々な現実世界の因子に関わらず、作業を完了するように、ロボットの様々な態様を制御及び管理するための、向上した技術及びシステムが必要とされている。
【図面の簡単な説明】
【０００４】
【図１】高度化したスキャンメカニズムを有するロボットシステムが作動し得る例示的環境を示す図である。
【図２】本開示の１つまたは複数の実施形態に係るロボットシステムを示すブロック図である。
【図３Ａ】第１のポーズにおける対象の図である。
【図３Ｂ】第２のポーズにおける、図３Ａの対象の図である。
【図３Ｃ】第３のポーズにおける、図３Ａの対象の図である。
【図４】本開示の１つまたは複数の実施形態に係るロボットシステムによって実行される例示的作業を示す上面図である。
【図５Ａ】本開示の１つまたは複数の実施形態に係る、図１のロボットシステムを作動するためのフロー図である。
【図５Ｂ】本開示の１つまたは複数の実施形態に係る、スキャンメトリックに基づくモーションプランを得るためのフロー図である。
【発明を実施するための形態】
【０００５】
高度化したスキャンメカニズムを有するロボットシステムのためのシステム及び方法が、本明細書に記載されている。いくつかの実施形態に従って構成されたロボットシステム（たとえば、１つまたは複数の指定された作業を実行するデバイスの統合システム）は、対象の最初のポーズに関連する不確実性に従って、モーションプランを得るとともに実行することにより、高度化したスキャンを提供する。
【０００６】
ロボットシステムは、ターゲットとなる対象を操縦すること（たとえば、物理的移動及び／または再度の方向付け）に基づいて、作業を実行するように構成することができる。たとえば、ロボットシステムは、供給元の位置（たとえば、大箱、パレット、またはコンベアベルト）からターゲットとなる対象を取り上げ、それを目的地の位置に移動させることに基づき、様々な対象を並び替え又は置き換えることができる。いくつかの実施形態では、作業には、ターゲットとなる対象の１つまたは複数の特定の位置及び／または表面上に位置する１つまたは複数の識別子（たとえば、バーコードまたはクイックレスポンス（ＱＲ）コード（登録商標））をスキャナのセットに提供するなどにより、移送の間にターゲットとなる対象をスキャンすることがさらに含まれ得る。したがって、ロボットシステムは、ターゲットとなる対象をグリップするとともにピックアップし、ターゲットとなる対象を提供位置／向きに移送して識別子をスキャナに提供し、ターゲットとなる対象を、（たとえば、対象を作業位置に移送すること、対象のポーズを調整すること、対象を下げること、及び／または対象を開放することにより）、作業位置に配置するように、モーションプランを得るか又は計算することができる。
【０００７】
作業を実行するために、いくつかの実施形態では、ロボットシステムは、ターゲットとなる対象の位置及びポーズ（たとえば、休止している向き）、及び／または、ターゲットとなる対象の周りの環境を識別するために使用される、撮像デバイス（たとえば、カメラ、赤外センサ／カメラ、レーダー、ライダーなど）を備えることができる。いくつかの実施形態では、ロボットシステムは、ポーズに関する信頼基準をさらに計算することができる。信頼基準は、判定されたポーズが、ターゲットとなる対象の実際の現実世界のポーズにマッチすることの確実性または可能性の基準を示し得る。説明の例として、ロボットシステムは、ピックアップエリアから作業エリア（たとえば、移動先の大箱またはパレット）に移送されるように作業がなされる対象の位置及び向きを示す画像（たとえば、供給元の大箱またはパレットなどのピックアップエリアの画像）を得ることができる。ロボットシステムは、ターゲットとなる対象を、所定の順番（たとえば、上から底、及び／または、外側縁及び内側から）に従って、識別または選択するように、画像を処理することができる。ロボットシステムは、（たとえば、隣接するピクセルに対するピクセルの色、輝度、及び／またはそれらの値の変化に従って）対象のラインを識別及びグループ化などすることにより、画像から、最初のポーズをさらに判定することができる。最初のポーズの判定において、ロボットシステムは、所定のプロセス及び／または方程式に従って、信頼基準（たとえば、判定されたポーズに関連する、定量化された確実性の程度）をさらに計算することができる。
【０００８】
その位置、ポーズ、信頼基準、またはそれらの組合せに応じて、ロボットシステムは、作業を実行するためのモーションプラン（たとえば、１つまたは複数のリンク及び／またはジョイントを移動させるためのアクチュエータに関する制御のシークエンス）を得るとともに実行することができる。たとえば、ターゲットとなる対象の並び替え及び／または置き換えのために、モーションプランは、最初に供給元の位置でターゲットとなる対象をグリップすること、空間にわたって対象を操縦すること、及び、対象を目的地の位置に置くことに対応することができる。
【０００９】
従来のシステムは、対象の判定されたポーズに厳格に基づいて、モーションプランを得るとともに実行する。したがって、従来のシステムは、上流で（たとえば、入力データの収集において）生じ得るあらゆる逸脱、エラー、及び／または不確実性に関わらず、モーションプランを得るとともに実行する。したがって、従来のシステムは、上流でもたらされた欠陥を緩和または修正することができない。このことは、作業の失敗（たとえば、対象の識別の失敗、及び／または、移送の間のピースの損失）につながり、このことは、人間による介入／入力を必要とする。
【００１０】
従来のシステムとは異なり、以下に記載の様々な実施形態は、信頼基準に従って、モーションプランを得るとともに実行することができる。換言すると、以下に記載のロボットシステムは、信頼基準に従って、ターゲットとなる対象に対するアプローチを変化させ、ターゲットとなる対象上のグリップ位置を変更し、ターゲットとなる対象の提供のポーズ／位置を変更し、及び／またはモーション経路の他の部分を変更することができる。説明の例として、ロボットシステムは、ターゲットとなる対象として、ピックアップエリアに位置するボックスを選択することができる。この例に関し、ボックスが対応するポーズは、対象頂部表面が概して水平に向くとともに露出し、かつ、対象の側部表面の１つ（すなわち、頂部表面よりも小さい／狭い）が概して垂直に向くとともに露出している。ロボットシステムは、マスターデータにおいて、対象が、１つの識別子を対象底部表面（すなわち、対象頂部表面とは反対側）に有し、かつ、より小さい識別子を対象の側部表面の１つに有していることを含み得る。ロボットシステムが、ターゲットとなる対象の識別においてピックアップ位置の画像を処理する場合、ロボットシステムは、信頼基準を計算することができる。たとえば、信頼基準は、画像において取得されたボックスの１つまたは複数の可視の特性（たとえば、形状、色、画像、デザイン、ロゴ、テキストなど）と、マスターデータ内の所定の情報との間のマッチの基準に対応し得る。信頼基準が閾値を超え、それにより、ロボットシステムが、対象頂部表面がボックスの頂部で露出していることの十分な確実性を認識した場合、ロボットシステムは、エンドエフェクタを、露出した頂部表面の上に配置し、頂部表面をグリップし、スキャナの前に決まった位置で底部表面を提供するように、ターゲットとなる対象を回転させることができる。信頼基準が閾値未満であり、それにより、ロボットシステムが、頂部表面と底部表面とのいずれが露出しているかを認識できない場合、ロボットシステムは、対象の側部表面の１つに沿ってエンドエフェクタを配置し、対象の側部表面をグリップし、対向するスキャナのセットの間を通すように、ターゲットとなる対象を回転させることができる。
【００１１】
空間内（たとえば、スタート位置と作業位置との間の位置）でターゲットとなる対象をスキャンすることにより、作業を実行することに関する効率及び速度が向上される。スキャン位置を含むモーションプランであって、対象スキャナと協同もするモーションプランを計算することにより、ロボットシステムは、ターゲットとなる対象を移動するための作業を、ターゲットとなる対象をスキャンするための作業と効果的に組み合わせることができる。さらに、最初の向きの信頼基準に基づくモーションプランの取得により、スキャン作業に関する効率、速度及び精度がさらに向上する。ロボットシステムは、最初のポーズが正確ではないという仮定に対応する代替的な向きに対処するモーションプランを計算することができる。したがって、ロボットシステムは、ポーズの判定のエラー（たとえば、較正エラー、予期しないポーズ、予期しない光の条件などの結果の判定のエラー）を伴う場合であっても、ターゲットとなる対象を正確に／成功的にスキャンする可能性を増大させることができる。正確なスキャンの可能性の増大は、ロボットシステムに関する全体のスループットの増大につながるとともに、操作者の労力／介入をさらに低減することができる。信頼性計算及び関連した経路計算に関する詳細を、以下に記載する。
【００１２】
以下の記載では、複数の特定の詳細が、本開示を完全に理解させるために説明される。他の実施形態では、本明細書で導入された技術を、それら特定の詳細を伴わずに実施することができる。他の例では、特定の機能またはルーチンなど、よく知られている機能は、本開示を不要にわかりにくくすることを避けるために詳細には記載されない。本記載における「実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「１つの実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」などの参照は、記載の特定の特徴、構造、材料、または特性が、本開示の少なくとも１つの実施形態に含まれていることを意味している。このため、本明細書におけるそのようなフレーズの表示は、必ずしも、すべてが同じ実施形態を参照してはいない。一方、そのような参照は、必ずしも相互に排他的であることもない。さらに、特定の特徴、構造、材料、または特性は、１つまたは複数の実施形態において、任意の適切な方式で組み合わせることができる。図示の様々な実施形態は、説明的表示に過ぎず、必ずしも正寸して示されていないことを理解されたい。
【００１３】
よく知られていてかつロボットシステム及びサブシステムとしばしば関連付けられる構造またはプロセスであって、開示の技術のいくつかの顕著な態様を不要に妨げ得る構造またはプロセスを記載するいくつかの詳細は、明確化の目的のために、以下の記載では説明されない。さらに、以下の開示が、本開示の様々な態様のいくつかの実施形態を説明しているが、いくつかの他の実施形態が、このセクションで記載のものとは異なる構成、または異なる構成要素を有することができる。したがって、開示の技術は、追加の要素を伴うか、以下に記載の要素のいくつかを伴わない、他の実施形態を有することができる。
【００１４】
以下に記載の、本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはコントローラによって実行されるルーチンを含み、コンピュータで実行可能であるか又はコントローラで実行可能である命令の形態を取ることができる。関連技術の当業者には、開示の技術が、以下に示すもの及び記載するもの以外のコンピュータまたはコントローラのシステムで実施され得ることを理解されたい。本明細書に記載の技術は、以下に記載のコンピュータで実行可能な１つまたは複数の命令を実行するように、明確にプログラムされたか、構成されたか、構築された、特定用途のコンピュータまたはデータプロセッサ内で実施することができる。したがって、本明細書で通常使用される「コンピュータ（ｃｏｍｐｕｔｅｒ）」及び「コントローラ（ｃｏｎｔｒｏｌｌｅｒ）」との用語は、任意のデータプロセッサに言及し、インターネットの装置及びハンドヘルドデバイス（パームトップ型コンピュータ、ウェアラブルコンピュータ、セルラまたは移動電話、複数プロセッサシステム、プロセッサベースであるかプログラム可能な家庭用電気機械器具、ネットワークコンピュータ、ミニコンピュータなどを含む）を含むことができる。これらコンピュータ及びコントローラによって扱われる情報は、液晶ディスプレイ（ＬＣＤ）を含む、任意の適切な表示媒体に提供することができる。コンピュータまたはコントローラで実行可能な作業を実行するための命令は、ハードウェア、ファームウェア、またはハードウェアとファームウェアとの組合せを含む、任意の適切なコンピュータ可読媒体に記憶することができる。命令は、たとえば、フラッシュドライブ、及び／または他の適切な媒体を含む、任意の適切なメモリデバイスに包含することができる。
【００１５】
「結合された（ｃｏｕｐｌｅｄ）」及び「接続された（ｃｏｎｎｅｃｔｅｄ）」との用語は、その派生形とともに、構成要素間の構造的な関係を記載するために、本明細書で使用することができる。これらの用語が、互いに関して同義であることは意図されていないことを理解されたい。むしろ、特定の実施形態では、「接続された（ｃｏｎｎｅｃｔｅｄ）」は、２つ以上の要素が互いに直接接触していることを示すために使用することができる。文脈から別様に明確にされていない限り、「結合された（ｃｏｕｐｌｅｄ）」との用語は、２つ以上の要素が直接的か（それらの間に他の介在要素を伴って）間接的に互いに接触していること、または、（たとえば、信号の送信／受信、もしくは、関数呼び出しに関するものなど、因果関係にあるように）２つ以上の要素が互いに協同するか相互作用すること、またはその両方を示すために使用することができる。
【００１６】
適切な環境
図１は、高度化したスキャンメカニズムを有するロボットシステム１００が作動し得る例示的環境を示す図である。ロボットシステム１００は、１つまたは複数の作業を実行するように構成された、１つまたは複数の構造物（たとえば、ロボット）を備えている。高度化したスキャンメカニズムの態様は、様々な構造によって実行または実施することができる。
【００１７】
図１に示す例に関し、ロボットシステム１００は、倉庫または分配／輸送ハブ内の、荷降しユニット１０２、移送ユニット１０４（たとえば、パレットに載せるロボット及び／またはピースピッキングロボット）、輸送ユニット１０６、荷積みユニット１０８、またはそれらの組合せを備えることができる。ロボットシステム１００における各々のユニットは、１つまたは複数の作業を実行するように構成することができる。これら作業は、倉庫に貯蔵するために、対象をトラックまたはバンから荷降しするか、対象を貯蔵位置から荷降しして、それら対象を輸送のためにトラックまたはバンに荷積みするなど、目的を達成する操作を実施するように、シークエンスにおいて組み合わせることができる。別の例に関し、作業には、１つのコンテナから別のコンテナに対象を移動させることを含むことができる。各々のユニットは、作業を実行するために、作業のシークエンス（たとえば、１つまたは複数の内部の構成要素を操作すること）を実行するように構成することができる。
【００１８】
いくつかの実施形態では、作業は、ターゲットとなる対象１１２（たとえば、操縦に関してターゲットとされる、ボックス、ケース、ケージ、パレットなど）の、スタート位置１１４から作業位置１１６への操縦（たとえば、移動及び／または再度の方向付け）を含むことができる。たとえば、荷降しユニット１０２（たとえば、デバンニングロボット）は、キャリア（たとえば、トラック）内のある位置から、コンベアベルト上のある位置まで、ターゲットとなる対象１１２を移送するように構成することができる。また、移送ユニット１０４は、１つの位置（たとえば、コンベアベルト、パレット、または大箱）から別の位置（たとえば、輸送ユニット１０６上のパレット、大箱、またはケージ）に、ターゲットとなる対象１１２を移送するように構成することができる。別の例に関し、移送ユニット１０４（たとえば、ピースピッキングロボット）は、１つのコンテナから別のコンテナに、ターゲットとなる対象１１２を移送するように構成することができる。操作を完了する際には、輸送ユニット１０６は、ターゲットとなる対象１１２を、移送ユニット１０４に関連するエリアから、荷積みユニット１０８に関連するエリアに移送することができ、荷積みユニット１０８は、ターゲットとなる対象１１２を、（たとえば、ターゲットとなる対象１１２を載せたパレットを移動することにより）移送ユニット１０４から貯蔵位置（たとえば、棚上のある位置）に移送することができる。以下に、作業及び関連する動作に関する詳細を記載する。
【００１９】
説明の目的のために、ロボットシステム１００は、輸送センターの文脈で記載するが、ロボットシステム１００は、製造、組立て、パッケージング、ヘルスケア、及び／または他のタイプのオートメーションなどのために、他の環境で／他の目的で作業を実行するように構成することができることを理解されたい。ロボットシステム１００が、図１に示されていない、マニピュレータ、サービスロボット、モジュール式ロボットなどの、他のユニットを含むことができることも理解されたい。たとえば、いくつかの実施形態では、ロボットシステム１００は、ケージカートまたはパレットから、コンベアまたは他のパレットに対象を移送するための、パレットから降ろすユニット、１つのコンテナから別のコンテナに対象を移送するためのコンテナ切替えユニット、対象をラッピングするためのパッケージングユニット、対象の１つまたは複数の特性に応じて対象をグループ化するための並び替えユニット、対象の１つまたは複数の特性に応じて様々に対象を操縦するため（たとえば、並び替え、グループ化、及び／または移送のため）のピースピッキングユニット、またはそれらの組合せを含むことができる。
【００２０】
適切なシステム
図２は、本開示の１つまたは複数の実施形態に係るロボットシステム１００を示すブロック図である。いくつかの実施形態では、たとえば、ロボットシステム１００（たとえば、上述のユニット及び／またはロボットの１つまたは複数におけるシステム）は、１つもしくは複数のプロセッサ２０２、１つもしくは複数のストレージデバイス２０４、１つもしくは複数の通信デバイス２０６、１つもしくは複数の入力−出力デバイス２０８、１つもしくは複数の作動デバイス２１２、１つもしくは複数の移送モータ２１４、１つもしくは複数のセンサ２１６、またはそれらの組合せなどの、電子デバイス／電気デバイスを備えることができる。その様々なデバイスは、有線接続及び／または無線接続を介して互いに結合することができる。たとえば、ロボットシステム１００は、システムバス、周辺部品相互接続（ＰＣＩ）バスまたはＰＣＩ−エクスプレスバス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔまたは産業標準構成（ＩＳＡ）バス、小型コンピュータシステムインターフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、または電気電子技術者協会（ＩＥＥＥ）規格１３９４のバス（「Ｆｉｒｅｗｉｒｅ」とも呼ばれる）などのバスを含むことができる。また、たとえば、ロボットシステム１００は、デバイス間の有線接続を提供するための、ブリッジ、アダプタ、コントローラ、または他の信号に関するデバイスを含むことができる。無線接続は、たとえば、セルラ通信プロトコル（たとえば、３Ｇ、４Ｇ、ＬＴＥ、５Ｇなど）、無線ローカルエリアネットワーク（ＬＡＮ）プロトコル（たとえば、忠実な無線通信環境（ｗｉｒｅｌｅｓｓ  ｆｉｄｅｌｉｔｙ（ＷＩＦＩ））、ピアツーピアまたはデバイスツーデバイスの通信プロトコル（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｎｅａｒ−Ｆｉｅｌｄ通信（ＮＦＣ）など）、モノのインターネット（ＩｏＴ）プロトコル（たとえば、ＮＢ−ＩｏＴ、ＬＴＥ−Ｍなど）、及び／または、他の無線通信プロトコルに基づくものとすることができる。
【００２１】
プロセッサ２０２は、ストレージデバイス２０４（たとえばコンピュータメモリ）に記憶された命令（たとえば、ソフトウェア命令）を実行するように構成されたデータプロセッサ（たとえば、中央処理ユニット（ＣＰＵ）、特定用途のコンピュータ、及び／またはオンボードサーバ）を含むことができる。プロセッサ２０２は、他のデバイスを制御／相互作用するようにプログラム命令を実施することができ、それにより、ロボットシステム１００に、動作、作業、及び／または操作を実行させる。
【００２２】
ストレージデバイス２０４は、そこに記憶されたプログラム命令（たとえば、ソフトウェア）を有する非一時的なコンピュータ可読媒体を含むことができる。ストレージデバイス２０４のいくつかの例には、揮発性メモリ（たとえば、キャッシュ及び／またはランダムアクセスメモリ（ＲＡＭ））及び／または不揮発性メモリ（たとえば、フラッシュメモリ及び／または磁気ディスクドライブ）を含むことができる。ストレージデバイス２０４の他の例には、ポータブルメモリドライブ及び／またはクラウドストレージデバイスを含むことができる。
【００２３】
いくつかの実施形態では、ストレージデバイス２０４は、処理結果及び／または所定のデータ／閾値をさらに記憶するとともにアクセスを提供するために使用することができる。たとえば、ストレージデバイス２０４は、ロボットシステム１００によって操縦され得る対象（たとえば、ボックス、ケース、及び／または製品）の記載を含むマスターデータ２５２を記憶することができる。１つまたは複数の実施形態では、マスターデータ２５２は、ロボットシステム１００によって操縦されると予期される対象に関する、寸法、形状（たとえば、可能性のあるポーズに関するテンプレート、及び／または、異なるポーズの対象を認識するための、コンピュータで生成されたモデル）、カラースキーム、イメージ、識別情報（たとえば、バーコード、クイックレスポンス（ＱＲ）コード（登録商標）、ロゴなど、及び／または、それらの予期される位置）、予期される重さ、またはそれらの組合せを含むことができる。いくつかの実施形態では、マスターデータ２５２は、対象各々の質量中心の位置、１つまたは複数の動作／動きに応じた、予期されるセンサの測定値（たとえば、力、トルク、圧力、及び／または接触基準値に関する）、またはそれらの組合せなどの、対象に関する操縦関連情報を含むことができる。また、たとえば、ストレージデバイス２０４は、対象追跡データ２５４を記憶することができる。いくつかの実施形態では、対象追跡データ２５４には、スキャン又は操縦された対象のログが含まれ得る。いくつかの実施形態では、対象追跡データ２５４には、１つまたは複数の位置（たとえば、指定されたピックアップ位置またはドロップ位置、及び／またはコンベアベルト）における対象の撮像データ（たとえば、写真、ポイントクラウド、ライブビデオの提供など）が含まれ得る。いくつかの実施形態では、対象追跡データ２５４には、１つまたは複数の位置における対象の位置及び／または向きが含まれ得る。
【００２４】
通信デバイス２０６は、外部または遠隔のデバイスとネットワークを介して通信するように構成された回路を含むことができる。たとえば、通信デバイス２０６は、受信機、送信機、調整器／復調器（モデム）、信号検出器、信号エンコーダ／デコーダ、コネクタポート、ネットワークカードなどを含むことができる。通信デバイス２０６は、１つまたは複数の通信プロトコル（たとえば、インターネットプロトコル（ＩＰ）、無線通信プロトコルなど）に応じて電気信号を送信、受信、及び／または処理するように構成することができる。いくつかの実施形態では、ロボットシステム１００は、ロボットシステム１００のユニット間での情報の交換、及び／または、ロボットシステム１００の外のシステムもしくはデバイスとの（たとえば、レポート、データの収集、分析、及び／またはトラブルシューティングの目的のための）情報の交換をするように、通信デバイス２０６を使用することができる。
【００２５】
入力−出力デバイス２０８は、人間のオペレータとの情報の通信及び／または人間のオペレータからの情報の受信を行うように構成されたユーザインターフェースデバイスを含むことができる。たとえば、入力−出力デバイス２０８は、人間のオペレータに情報を通信するためのディスプレイ２１０及び／または他の出力デバイス（たとえば、スピーカ、触覚回路、またはタクティールフィードバックデバイスなど）を含むことができる。また、入力−出力デバイス２０８は、キーボード、マウス、タッチスクリーン、マイク、ユーザインターフェース（ＵＩ）センサ（たとえば、モーションコマンドを受信するためのカメラ）、ウェアラブル入力デバイスなどの、制御または受信デバイスを含むことができる。いくつかの実施形態では、ロボットシステム１００は、動作、作業、操作、またはそれらの組合せを実行する際に、入力−出力デバイス２０８を使用して、人間のオペレータと相互作用することができる。
【００２６】
ロボットシステム１００は、モーション（たとえば、回転及び／または平行移動の変位）のためにジョイントで接続された、物理的なまたは構造的な部材（たとえば、ロボットマニピュレータアーム）を含むことができる。構造的部材及びジョイントは、ロボットシステム１００の使用／操作に応じた１つまたは複数の作業（たとえば、グリップ、スピン、溶接など）を実行するように構成されたエンドエフェクタ（たとえば、グリッパ）を操縦するように構成された運動学上のチェーンを形成することができる。ロボットシステム１００は、対応するジョイントの周り又はジョイントにおいて、構造的部材を駆動又は操縦する（たとえば、変位及び／または再度の方向付け）ように構成された作動デバイス２１２（たとえば、モータ、アクチュエータ、ワイヤ、人工筋、電気活性ポリマなど）を含むことができる。いくつかの実施形態では、ロボットシステム１００は、ある位置から位置に、対応するユニット／シャシーを移送するように構成された移送モータ２１４を含むことができる。
【００２７】
ロボットシステム１００は、構造的部材を操縦するため、及び／または、ロボットユニットを移送するためなど、作業を実施するために使用される情報を得るように構成されたセンサ２１６を含むことができる。センサ２１６は、ロボットシステム１００の１つまたは複数の物理的特性（たとえば、１つまたは複数の構造的部材／そのジョイントの状態、条件、及び／または位置）、及び／または、周囲の環境の特性を検出又は測定するように構成されたデバイスを含むことができる。センサ２１６のいくつかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、タクティールセンサ、トルクセンサ、位置エンコーダなどを含むことができる。
【００２８】
いくつかの実施形態では、たとえば、センサ２１６は、周囲の環境を検出するように構成された１つまたは複数の撮像デバイス２２２（たとえば、可視及び／または赤外カメラ、２次元及び／または３次元の撮像カメラ、ライダーまたはレーダーなどの距離測定デバイスなど）を含むことができる。撮像デバイス２２２は、（たとえば、自動的な検査、ロボットのガイダンス、または他のロボットのアプリケーションのための）マシン／コンピュータの視覚を実行するために使用される、デジタル画像及び／またはポイントクラウドなどの検出環境の表示を生成することができる。以下にさらに詳細に記載するように、ロボットシステム１００は、（たとえば、プロセッサ２０２を介して）、デジタル画像及び／またはポイントクラウドを処理して、図１のターゲットとなる対象１１２、図１のスタート位置１１４、図１の作業位置１１６、ターゲットとなる対象１１２のポーズ、スタート位置１１４に関する信頼基準及び／またはポーズ、またはそれらの組合せを識別することができる。
【００２９】
ターゲットとなる対象１１２を操縦するために、ロボットシステム１００は、指定されたエリア（たとえば、トラック内またはコンベアベルト上などのピックアップ位置）の画像を（たとえば、様々なユニットを介して）取得及び分析して、ターゲットとなる対象１１２及びそのスタート位置１１４を識別することができる。同様に、ロボットシステム１００は、別の指定されたエリア（たとえば、コンベアベルト上に対象を配置するためのドロップ位置、コンテナ内に対象を配置するための位置、または、スタックする目的のためのパレット上の位置）の画像を取得及び分析して、作業位置１１６を識別することができる。たとえば、撮像デバイス２２２は、ピックアップエリアの画像を生成するように構成された１つまたは複数のカメラ、及び／または、作業エリア（たとえば、ドロップエリア）の画像を生成するように構成された１つまたは複数のカメラを含むことができる。取得された画像に基づき、以下に記載するように、ロボットシステム１００は、スタート位置１１４、作業位置１１６、関連するポーズ、及び／または信頼基準を判定することができる。
【００３０】
いくつかの実施形態では、作業には、輸送／受領のためにアイテムのロギングのためなど、ターゲットとなる対象１１２をスキャンすることが含まれ得る。作業のうちのスキャン作業部分を達成するために、撮像デバイス２２２は、輸送の間（たとえば、スタート位置１１４と作業位置１１６との間）に識別情報をスキャンするように構成された、１つまたは複数のスキャナ（たとえば、バーコードスキャナ及び／またはＱＲコードスキャナ（登録商標））を含むことができる。したがって、ロボットシステム１００は、１つまたは複数のスキャナに対し、ターゲットとなる対象１１２の１つまたは複数の部分を提供するためのモーションプランを計算することができる。
【００３１】
いくつかの実施形態では、たとえば、センサ２１６は、構造的部材（たとえば、ロボットアーム及び／またはエンドエフェクタ）、及び／または、ロボットシステム１００の対応するジョイントの位置を検出するように構成された位置センサ２２４（たとえば、位置エンコーダ、ポテンショメータなど）を含むことができる。ロボットシステム１００は、作業の実行の間、構造部材及び／またはジョイントの位置及び／または向きを追跡するために、位置センサ２２４を使用することができる。
【００３２】
いくつかの実施形態では、たとえば、センサ２１６は、複数の物理的構造または表面間の直接の接触に関連する特性を測定するように構成された接触センサ２２６（たとえば、圧力センサ、力センサ、ひずみゲージ、圧電抵抗性／圧電性センサ、容量性センサ、弾性抵抗性センサ、及び／または他のタクティールセンサ）を含むことができる。接触センサ２２６は、ターゲットとなる対象１１２上のエンドエフェクタ（たとえば、グリッパ）のグリップに対応する特性を測定することができる。したがって、接触センサ２２６は、グリッパとターゲットとなる対象１１２との間の接触または取付けの程度に対応する、定量化された測定値（たとえば、測定された力、トルク、位置など）を示す接触基準を出力することができる。たとえば、接触基準は、エンドエフェクタによってターゲットとなる対象１１２に印加された力に関する、１つまたは複数の力またはトルクの読取り値を含むことができる。接触基準に関する詳細を、以下に記載する。
【００３３】
最初のポーズ及び不確実性の判定
図３Ａ、図３Ｂ、及び図３Ｃは、様々なポーズ（たとえば、第１のポーズ３１２、第２のポーズ３１４、及び／または第３のポーズ３１６）における対象３０２を示している。ポーズは、対象３０２の位置及び／または向きを示すことができる。換言すると、ポーズは、ロボットシステム１００によって利用されるグリッド系に係る、平行移動の成分及び／または回転の成分を含むことができる。いくつかの実施形態では、ポーズは、ベクトル、角度のセット（たとえば、オイラー角、及び／または、ロール‐ピッチ‐ヨーの角度）、同次変換、またはそれらの組合せによって示すことができる。対象３０２のその変換には、平行移動の成分、回転の成分、それらの変化、またはそれらの組合せの、組合せの表示を含むことができる。ロボットシステム１００は、対象３０２のポーズを識別するために、撮像出力（たとえば、図２の撮像デバイス２２２からの、２次元画像、３次元画像、ポイントクラウド、及び／または他の撮像データ）を処理することができる。たとえば、ロボットシステム１００は、内部に位置する対象３０２（たとえば、図１のターゲットとなる対象１１２）のポーズを識別するために、ピックアップエリアに向けられた１つまたは複数のカメラの撮像出力を分析することができる。
【００３４】
ポーズを識別するために、ロボットシステム１００は、まず、認識メカニズム及び／または規則のセットに従ってパターン撮像データを分析し、対象のアウトライン（たとえば、周囲の縁部または表面）を識別することができる。ロボットシステム１００は、さらに、対象の特有の各例に対応するものとして、（たとえば、所定の規則及び／またはポーズのテンプレートに従って）対象のアウトラインのグルーピングを識別することができる。たとえば、ロボットシステム１００は、対象のラインにわたり、色、輝度、深さ／位置、またはそれらの組合せにおけるパターン（たとえば、同じ値であるか、既知の割合／パターンで変化する）に対応する、対象のアウトラインのグルーピングを識別することができる。また、たとえば、ロボットシステム１００は、図２のマスターデータ２５２において規定された所定の形状／ポーズのテンプレートに従って、対象のアウトラインのグルーピングを識別することができる。
【００３５】
対象のアウトラインがグループ化されると、ロボットシステム１００は、ロボットシステム１００によって使用されるグリッドまたは座標系に従うなどして、１つまたは複数の座標系に対する対象３０２のポーズを識別することができる。たとえば、ロボットシステム１００は、１つまたは複数の座標系に従って、対象３０２の１つまたは複数の表面、縁部、及び／またはポイント、ならびに、それらの向き／位置を識別することができる。
【００３６】
いくつかの実施形態では、ロボットシステム１００は、撮像データ内の対象３０２の１つまたは複数の露出表面（たとえば、第１の露出表面３０４、第２の露出表面３０６など）を識別することができる。たとえば、ロボットシステム１００は、対象のアウトライン及び較正に係る撮像データ、または、撮像デバイス２２２に関するマッピングデータから、対象３０２のアウトラインの形状、及び／または、１つもしくは複数の寸法（たとえば、長さ、幅、及び／または高さ）を判定することができる。ロボットシステム１００は、判定された寸法を、マスターデータ２５２内の対応するデータと比較して、対象３０２を識別することができる。さらに、ロボットシステム１００は、露出表面の寸法が識別された対象の長さ及び幅にマッチする場合に、露出表面を、対象頂部表面３２２、または対象底部表面３２４として識別することができる。また、ロボットシステム１００は、露出表面の寸法の１つが、識別された対象の高さにマッチする場合に、露出表面を、対象外周表面３２６として識別することができる。
【００３７】
いくつかの実施形態では、たとえば、ロボットシステム１００は、１つまたは複数の露出表面に表示された１つまたは複数のマーキング（たとえば、文字、数、形状、可視画像、ロゴ、またはそれらの組合せ）に基づき、対象３０２を識別することができる。ロボットシステム１００は、マーキングを、マスターデータ２５２内の１つまたは複数の所定の画像と比較することに基づき、対象３０２を識別することができる。たとえば、ロボットシステム１００は、パッケージの表面上の製品名、ロゴ、デザイン／画像、またはそれらの組合せの１つまたは複数の画像を、マスターデータ２５２に含むことができる。ロボットシステム１００は、撮像データの一部（たとえば、対象３０２の対象のアウトライン内の部分）を、マスターデータ２５２と比較して、対象３０２を識別することができる。ロボットシステム１００は、同様に、表面に特有の所定の画像パターンに対する、撮像データの一部のマッチングに基づき、対象３０２の向きを識別することができる。
【００３８】
説明の例として、図３Ａ、図３Ｂ、及び図３Ｃは、対象３０２の様々なポーズに対応する例示的な撮像データを示している。図３Ａは、第１の露出表面３０４（たとえば、上を向いた露出表面）が、対象頂部表面３２２であり、第２の露出表面３０６（たとえば、概して撮像データのソースに向いた露出表面）が対象外周表面３２６の１つである場合の、第１のポーズ３１２を示している。
【００３９】
露出表面の識別において、ロボットシステム１００は、図３Ａの撮像データを処理して、第１の露出表面３０４及び／または第２の露出表面３０６の寸法（たとえば、ピクセル数）を比較することができる。ロボットシステム１００は、所定のカメラの較正またはマッピング機能を使用して、撮像データの測定値を現実世界の寸法にマッピングすることができる。ロボットシステム１００は、マッピングされた寸法を、マスターデータ２５２内の既知の／予期される対象の寸法と比較し、寸法のマッチングに基づき、対象を識別することができる。さらに、ロボットシステム１００は、第１の露出表面３０４の境界を定める一対の交差する対象の縁部が、識別された対象の長さ及び幅にマッチすることから、第１の露出表面３０４が、対象頂部表面３２２か対象底部表面３２４かを識別することができる。同様に、ロボットシステム１００は、第２の露出表面３０６を規定する対象の縁部の１つが、識別された対象の高さにマッチすることから、第２の露出表面３０６を対象外周表面３２６として識別することができる。
【００４０】
いくつかの実施形態では、ロボットシステム１００は、図３Ａの撮像データを処理して、対象の表面に特有の１つまたは複数のマーキングを識別することができる。たとえば、ロボットシステム１００は、マスターデータ２５２内に、上述のような、対象の表面及び／または特有のマーキングの１つまたは複数の画像及び／または他の視覚的特性（たとえば、色、寸法、サイズなど）を含むことができる。図３Ａに示すように、ロボットシステム１００は、対象頂部表面３２２に「Ａ」を有することから、対象を、マスターデータ２５２に列挙された対象として識別することができる。したがって、ロボットシステム１００は、さらに、第１の露出表面３０４を対象頂部表面３２２として識別することができる。
【００４１】
いくつかの実施形態では、ロボットシステム１００は、マスターデータ２５２内に、対象識別子３３２（たとえば、対象３０２に特有の、バーコードまたはＱＲコード（登録商標）などのコンピュータ可読の可視識別子）に関する情報を含むことができる。たとえば、マスターデータ２５２は、対象識別子３３２の画像及び／またはコード化されたメッセージ、表面及び／または縁部のセットに対する識別子の位置３３４、それらの１つまたは複数の視覚的特性、またはそれらの組合せを含むことができる。図３Ａに示すように、ロボットシステム１００は、第２の露出表面３０６を、表面上の対象識別子３３２の存在、及び／または、識別子の位置３３４にマッチするそれらの位置に基づき、対象外周表面３２６として識別することができる。
【００４２】
図３Ｂは、対象３０２が図３Ａの方向Ｂに沿う垂直軸周りに９０度回転した第２のポーズ３１４を示している。たとえば、対象３０２の基準ポイント「α」は、図３Ａの左下の角、及び、図３Ｂの右下の角とすることができる。したがって、第１のポーズ３１２との比較において、対象頂部表面３２２は、撮像データにおいて異なる向きに見られ、及び／または、対象識別子３３２を有する対象外周表面３２６は、視覚から隠れ得る。
【００４３】
ロボットシステム１００は、１つまたは複数の視覚的特徴の識別の特定の向きに基づき、様々なポーズを識別することができる。たとえば、ロボットシステム１００は、対象の既知の長さにマッチする寸法が撮像データ内で水平に延び、対象の既知の高さにマッチする寸法が撮像データ内で垂直に延び、及び／または対象の既知の幅にマッチする寸法が撮像データ内の深さの軸に沿って延びる場合、第１のポーズ３１２及び／または第３のポーズ３１６を判定することができる。同様に、ロボットシステム１００は、幅にマッチする寸法が水平に延び、高さにマッチする寸法が垂直に延び、及び／または、長さにマッチする寸法が深さの軸に沿って延びる場合に、第２のポーズ３１４を判定することができる。また、たとえば、ロボットシステム１００は、図３Ａ及び図３Ｂに示す「Ａ」などの視覚的マーキングの向きに基づき、対象３０２が、第１のポーズ３１２または第２のポーズ３１４にあることを判定することができる。また、たとえば、ロボットシステム１００は、対象識別子３３２がマーキング「Ａ」を伴って（すなわち、異なる表面上で）可視である場合など、表面の組合せに見られる視覚的マーキングに従って、対象３０２が第１のポーズ３１２内にあることを判定することができる。
【００４４】
図３Ｃは、対象３０２が図３Ａの方向Ｃに沿う水平軸周りに１８０度回転した第３のポーズ３１６を示している。たとえば、対象３０２の基準ポイント「α」は、図３Ａの左下前方の角、及び、図３Ｃの左上後方の角とすることができる。したがって、第１のポーズ３１２との比較において、第１の露出表面３０４は、対象底部表面３２４であり、また、対象識別子３３２を有する対象頂部表面３２２及び対象外周表面３２６の両方は、視覚から隠れ得る。
【００４５】
上述のように、ロボットシステム１００は、寸法に基づき、対象３０２が第１のポーズ３１２または第３のポーズ３１６にあることを識別することができる。ロボットシステム１００は、頂部表面のマーカ（たとえば、「Ａ」）が可視である場合、対象３０２が第１のポーズ３１２にあることを識別することができる。また、ロボットシステム１００は、底部表面のマーカ（たとえば、対象識別子３３２の例）が可視である場合、対象３０２が第３のポーズ３１６にあることを識別することができる。
【００４６】
対象３０２のポーズを判定する際、現実世界の状況が、判定の正確さに影響する場合がある。たとえば、光の状況が、反射及び／または陰に起因するなどして、表面のマーキングの視認性を低下させる場合がある。また、対象３０２の実際の向きは、１つまたは複数の提供された表面の露出または視認角度を低減させる場合があり、それにより、表面上のいずれのマーキングも、識別不可能である場合がある。したがって、いくつかの実施形態では、ロボットシステム１００は、判定されたポーズに関する信頼基準を計算することができる。信頼基準は、判定されたポーズの正確さの基準を示すことができる。いくつかの実施形態では、信頼基準は、判定されたポーズが、対象３０２の実際のポーズにマッチすることの可能性に対応し得る。
【００４７】
いくつかの実施形態では、たとえば、ロボットシステム１００は、ポーズの判定において使用されるマッチの測定に基づき、信頼基準を計算することができる。たとえば、ロボットシステム１００は、画像内の寸法の測定に係る確実性のインターバルに基づき、信頼基準を計算することができる。いくつかの実施形態では、確実性のインターバルは、対象３０２と撮像元（たとえば、図２の撮像デバイス２２２）との間の距離が減少するにつれて、及び／または、対象３０２の測定された縁部が撮像元から放射する方向に対して直交する方向に近くなるとともに、放射方向に対して平行な方向から離れる際に、増大し得る。また、たとえば、ロボットシステム１００は、撮像データ内のマーカまたはデザインと、マスターデータ２５２内の既知のマーカ／デザインとの間のマッチの程度に基づき、信頼基準を計算することができる。いくつかの実施形態では、ロボットシステム１００は、撮像データまたはその一部と、所定のマーカ／画像との間の、重複または逸脱の測定を使用することができる。ロボットシステム１００は、最小平均自乗誤差（ＭＭＳＥ）のメカニズムに関するものなど、もっとも大である重複、及び／または、もっとも少ない逸脱の測定に従って、対象及び／または向きを識別することができる。さらに、ロボットシステムは、結果として得られる重複／逸脱の測定に基づき、信頼基準を計算することができる。以下にさらに詳細に記載するように、ロボットシステム１００は、信頼基準に従って、モーションの経路を計算することができる。換言すると、ロボットシステム１００は、信頼基準に従って、異なるように対象３０２を移動させることができる。
【００４８】
システム操作
図４は、本開示の１つまたは複数の実施形態に係るロボットシステム１００によって実行される例示的作業４０２を示す上面図である。上述のように、作業４０２は、目的を達成するために、ロボットシステム１００によって実行される（たとえば、図１の移送ユニット１０４など、上述のユニットの１つによって実行される）動作のシークエンスを示し得る。図４に示すように、たとえば、作業４０２は、ターゲットとなる対象１１２を、スタート位置１１４（たとえば、受領パレットまたは大箱の上／中の位置）から作業位置１１６（たとえば、並び替えされたパレットまたは大箱の上／中の位置）に移動することを含み得る。作業４０２は、さらに、スタート位置１１４から作業位置１１６に移動する間に、ターゲットとなる対象１１２をスキャンすることを含むことができる。したがって、ロボットシステム１００は、対象追跡データ２５４からの、スキャンされた対象の追加、除去、及び／または評価などによる、スキャンされた情報に応じて、図２の対象追跡データ２５４をアップデートすることができる。
【００４９】
いくつかの実施形態では、ロボットシステム１００は、スタート位置１１４を識別及び／または位置特定するために、所定のエリアを撮像することができる。たとえば、ロボットシステム１００は、部品調達用のパレットまたは大箱に関して指定されたエリア、及び／または、コンベアベルトの受領側の領域など、ピックアップエリアに向けられたソーススキャナ４１２（すなわち、図２の撮像デバイス２２２の例）を含むことができる。ロボットシステム１００は、指定されたエリアの撮像データ（たとえば、取得された画像及び／またはポイントクラウド）を生成するために、ソーススキャナ４１２を使用することができる。ロボットシステム１００は（たとえば、図２のプロセッサ２０２を介して）、指定されたエリアに位置する様々な対象（たとえば、ボックスまたはケース）を識別するために、撮像データについて、コンピュータによる視野処理を実施することができる。対象の識別の詳細を以下に記載する。
【００５０】
認識された対象から、ロボットシステム１００は、作業４０２の実行のために、ターゲットとなる対象１１２として、（たとえば、所定のシークエンスまたは規則のセット、及び／または、対象のアウトラインのテンプレートに応じて）１つの対象を選択することができる。選択されたターゲットとなる対象１１２に関し、ロボットシステム１００は、スタート位置１１４及び／または最初のポーズを判定するために、撮像データをさらに処理することができる。選択及び位置／ポーズの判定の詳細を以下に記載する。
【００５１】
ロボットシステム１００は、作業位置１１６を識別するために、別の所定のエリアをさらに撮像及び処理することができる。いくつかの実施形態では、たとえば、ロボットシステム１００は、並び替えされたパレットまたは大箱、及び／または、コンベアベルトの送り側の領域に関して指定されたエリアなど、配置エリアの撮像データを生成するように構成された撮像デバイス２２２（図示せず）の別の例を含むことができる。撮像結果は、ターゲットとなる対象１１２を配置するための作業位置１１６及び／または対応するポーズを識別するために、（たとえば、プロセッサ２０２を介して）処理することができる。いくつかの実施形態では、ロボットシステム１００は、複数の対象をスタック及び／または配置するための所定のシークエンスまたは規則のセットに従って、作業位置１１６を（撮像結果に基づくか、または、撮像結果に基づくことなく）識別することができる。
【００５２】
いくつかの実施形態では、作業４０２は、製品のロギングの目的のため、及び／または、ターゲットとなる対象１１２のさらなる識別のために、ターゲットとなる対象１１２をスキャンすること（たとえば、図３Ａ及び／または図３Ｃの対象識別子３３２をスキャンすること）を含むことができる。たとえば、ロボットシステム１００は、通常はピックアップエリアと配置エリアとの間の、１つまたは複数の位置において、ターゲットとなる対象１１２をスキャンするように構成された、１つまたは複数の対象スキャナ４１６（たとえば、バーコードスキャナまたはＱＲコードスキャナ（登録商標）など、撮像デバイス２２２のさらなる例）を備えることができる。いくつかの実施形態では、対象スキャナ４１６は、スキャナに隣接し（たとえば、対応するスキャナ（複数可）の高さに対応する高さにある）且つ垂直に向けられた表面上にあるマークをスキャンするように、水平方向に面することができる。いくつかの実施形態では、対象スキャナ４１６は、スキャナの上／下にあり且つ水平に向いた表面上にあるマークをスキャンするように、垂直方向に面することができる。いくつかの実施形態では、対象スキャナ４１６は、それらスキャナが、対象スキャナ４１６間に置かれた対象の両側をスキャンすることができるように、互いに面することができる。対象スキャナ４１６の位置及び／またはスキャン方向に従って、ロボットシステム１００は、ターゲットとなる対象１１２を提供位置に置くように、及び／または、ターゲットとなる対象１１２の１つまたは複数の表面／部分を対象スキャナ４１６でスキャンするための提供ポーズに従って、ターゲットとなる対象１１２を操縦することができる。
【００５３】
識別されたスタート位置１１４及び／または作業位置１１６を使用して、ロボットシステム１００は、作業４０２を実行するために、対応するユニット（たとえば、移送ユニット１０４）の１つまたは複数の構造（たとえば、ロボットアーム４１４及び／またはエンドエフェクタ）を操作することができる。したがって、ロボットシステム１００は（たとえば、プロセッサ２０２を介して）、作業４０２を実行するために対応するユニットによって実施される１つまたは複数の動作に対応する、モーションプランを（たとえば、モーションプランの規則またはアルゴリズムを介して）計算することができる。たとえば、移送ユニット１０４に関するモーションプランは、アプローチ位置（たとえば、ターゲットとなる対象１１２に接触及びグリップするためのエンドエフェクタを配置するための位置／場所）にエンドエフェクタを配置すること、ターゲットとなる対象１１２をグリップすること、ターゲットとなる対象１１２を持ち上げること、ターゲットとなる対象１１２をスタート位置１１４の上からスキャン操作のための提供位置／ポーズに移動すること、ターゲットとなる対象１１２を提供位置から作業位置１１６の上に移動すること、ターゲットとなる対象１１２を下げること、及び、ターゲットとなる対象１１２を開放することを含むことができる。
【００５４】
いくつかの実施形態では、ロボットシステム１００は、ロボットアーム４１４及び／またはエンドエフェクタを操作する図２の１つまたは複数の作動デバイス２１２のためのコマンド及び／又は設定のシークエンスを判定することにより、モーションプランを計算することができる。たとえば、ロボットシステム１００は、プロセッサ２０２を使用して、エンドエフェクタ（たとえば、グリッパ）をスタート位置１１４周りのアプローチ位置に置き、エンドエフェクタでターゲットとなる対象１１２を係合及び把持し、エンドエフェクタを提供位置周りのスキャン位置（たとえば、指定された位置及び／または向き）に置き、エンドエフェクタを作業位置１１６周りの特定の位置に置き、ターゲットとなる対象１１２をエンドエフェクタから開放するように、エンドエフェクタ及びロボットアーム４１４を操縦するために、作動デバイス２１２のコマンド及び／または設定を計算することができる。ロボットシステム１００は、コマンド及び／または設定の判定されたシークエンスに従って、作動デバイス２１２を操作することにより、作業４０２を完了するための操作を実行することができる。
【００５５】
いくつかの実施形態では、ロボットシステム１００は、判定されたポーズが、ターゲットとなる対象１１２の実際の現実世界のポーズにマッチすることの確実性または可能性の基準を示す信頼基準に基づいて、モーションプランを得ることができる。たとえば、ロボットシステム１００は、信頼基準に従って、異なる表面をグリップ又はカバーするためなど、エンドエフェクタをピックアップのための様々な位置に置くか、ターゲットとなる対象１１２に関する様々な提供位置／ポーズを計算するか、それらの組合せを行うことができる。
【００５６】
説明の例として、ターゲットとなる対象１１２は、図３Ａの第１のポーズ３１２に置かれた図３Ａの対象３０２とすることができる（すなわち、図３Ａの対象頂部表面３２２が、概して上に向くとともに露出している）。信頼基準が高い（すなわち、確実性の程度が閾値を超え、判定されたポーズが正確である可能性が高い）場合、ロボットシステム１００は、第１のアプローチ位置４３２及び第１の提供位置４４２を含む第１のモーションプラン４２２を計算することができる。たとえば、対象頂部表面３２２が上を向いている（すなわち、図３Ｃの対象識別子３３２を有する図３Ｃの対象底部表面３２４が下を向いている）ことの確実性が十分にあることから、ロボットシステム１００は、エンドエフェクタを対象頂部表面３２２の上に直接置くための、第１のアプローチ位置４３２を含む、第１のモーションプラン４２２を計算し得る。したがって、ロボットシステム１００は、対象底部表面３２４が露出するように、対象頂部表面３２２に接触／カバーするエンドエフェクタで、ターゲットとなる対象１１２をグリップすることができる。また、ロボットシステム１００は、ターゲットとなる対象１１２が、対象底部表面３２４に位置する対象識別子３３２をスキャンする上を向いたスキャナの真上になるための第１の提供位置４４２を含む、第１のモーションプラン４２２を計算することができる。
【００５７】
一方、信頼基準が低い（すなわち、確実性の程度が閾値未満であり、判定されたポーズが正確である可能性が低い）場合、ロボットシステム１００は、第２のアプローチ位置４３４及び１つまたは複数の第２の提供位置４４４を含む、第２のモーションプラン４２４（すなわち、第１のモーションプラン４２２とは異なる）を計算することができる。たとえば、ロボットシステム１００は、ターゲットとなる対象１１２の寸法を測定するとともに比較し、対象が図３Ａの第１のポーズ３１２または図３Ｃの第３のポーズ３１６にあることを（たとえば、測定の確実性のレベルが所定の閾値を超える場合）判定することができる。しかし、ロボットシステム１００には、ターゲットとなる対象１１２の表面上にプリントされたマークを撮像／処理するのに困難な場合があり、その結果、判定されたポーズに関する信頼基準が閾値未満となり得る。換言すると、ロボットシステム１００は、上に向いた露出表面が対象頂部表面３２２である（たとえば、第１のポーズ３１２）か、あるいは、対象底部表面３２４（たとえば、第３のポーズ３１６）であるかを、十分に確信していない場合がある。
【００５８】
不確実性の程度が高いために、ロボットシステム１００は、図３Ａの対象外周表面３２６の１つに隣接して（たとえば、対象頂部表面３２２及び／または対象底部表面３２４に対して平行な方向に整列する、及び／または面している）エンドエフェクタを配置するための第２のアプローチ位置４３４を含む第２のモーションプラン４２４を計算し得る。したがって、ロボットシステム１００は、対象外周表面３２６の１つに接触／カバーすると共に対象頂部表面３２２及び対象底部表面３２４の両方を露出させるエンドエフェクタで、ターゲットとなる対象１１２をグリップすることができる。ロボットシステム１００は、対象スキャナ４１６の前（たとえば、スキャンフィールド内、及び／またはスキャンフィールドに面して）に、対象頂部表面３２２及び対象底部表面３２４を同時または連続して提供又は置くことができる。ターゲットとなる対象１１２がスキャンのための位置にある場合、ロボットシステム１００は、対象スキャナ４１６（たとえば、少なくとも、対象頂部表面３２２及び対象底部表面３２４を向いたスキャナ）を操作して、提供された表面を同時に及び／または連続してスキャンし、その上の対象識別子（複数可）３３２を取得することができる。
【００５９】
また、ロボットシステム１００は、第２のモーションプラン４２４を計算することができる。この第２のモーションプラン４２４は、最初は下を向いていた表面（対象底部表面３２４）を水平に、かつ、上を向いたスキャナの真上に配置するため、及び／または、最初は上を向いていた表面（対象頂部表面３２２）を垂直に、かつ、水平に向いたスキャナのすぐ前方に置くための、第２の提供位置（複数可）４４４を含んでいる。第２のモーションプラン４２４は、２つの提供位置／ポーズを提供するために、再度の方向付け／回転の動作（たとえば、破線の中空の円で示したような動作）を含むことができ、それにより、直交して向けられたスキャナを使用して、両側の頂部／底部表面の両方をスキャンする。たとえば、ロボットシステム１００は、連続して、対象頂部表面３２２を上に向いたスキャナに提供するとともにスキャンし、次いで、ターゲットとなる対象１１２を９０度回転させて、対象底部表面３２４を、スキャンのために水平に向いたスキャナに提供することができる。いくつかの実施形態では、再度の方向付け／回転の動作は、第１のスキャンが対象識別子３３２を読み取ることを失敗した場合、ロボットシステム１００が対応するコマンドを実施するように、条件付きのものとすることができる。
【００６０】
代替的には、一例として、ロボットシステム１００は、信頼基準が低い場合に、ターゲットとなる対象１１２の幅に沿う対象外周表面３２６の１つをグリップ／カバーするために、モーションプラン（図示せず）を計算することができる。ロボットシステム１００は、水平に対向した一対の対象スキャナ４１６の間でターゲットとなる対象１１２を移動して、ターゲットとなる対象１１２の長さに沿って対象外周表面３２６を提供し、（たとえば、図３Ａに示すように）そのような外周表面の１つの上の対象識別子３３２をスキャンすることができる。信頼基準に基づくモーションプランに関する詳細を、以下に記載する。
【００６１】
作業４０２に関する動作を実行するために、ロボットシステム１００は、ターゲットとなる対象１１２の現在の位置（たとえば、ロボットシステム１００によって使用されるグリッドに対応する座標のセット）、及び／または現在のポーズを追跡することができる。たとえば、ロボットシステム１００は（たとえば、プロセッサ２０２を介して）、図２の位置センサ２２４からのデータに従って、現在の位置／ポーズを追跡することができる。ロボットシステム１００は、位置センサ２２４からのデータに従って、運動学上のチェーンにおいて、ロボットアーム４１４の１つまたは複数の部分（たとえば、構造部的材及び／またはそれらのジョイント）を配置することができる。ロボットシステム１００は、ロボットアーム４１４の位置及び向きに基づき、エンドエフェクタの位置／ポーズをさらに計算することができ、それにより、エンドエフェクタによって保持されるターゲットとなる対象１１２の現在の位置を計算することができる。また、ロボットシステム１００は、推測メカニズムに従って、他のセンサの読取り値（たとえば、力の読取り値または加速度計の読取り値）の処理、実行された作動コマンド／設定、及び／または、関連するタイミング、またはそれらの組合せに基づき、現在の位置を追跡することができる。
【００６２】
操作フロー
図５Ａは、本開示の１つまたは複数の実施形態に係る、図１のロボットシステム１００を操作する方法５００のフロー図である。方法５００は、最初のポーズの判定に関連する信頼基準に従って、図４の作業４０２を実行するためのものとすることができる。方法５００は、信頼基準に基づくモーションプランの取得／計算、及び実施のためのものとすることができる。方法５００は、図２の１つまたは複数のプロセッサ２０２で、図２の１つまたは複数のストレージデバイス２０４に記憶された命令を実行することに基づいて、実施することができる。
【００６３】
ブロック５０１では、ロボットシステム１００は、図２の１つまたは複数の撮像デバイス２２２のスキャンフィールドを識別することができる。たとえば、ロボットシステム１００は（たとえば、１つまたは複数のプロセッサ２０２を介して）、図４のソーススキャナ４１２及び／または図４の対象スキャナ４１６などの、１つまたは複数の撮像デバイス２２２によってスキャンされ得る空間を識別することができる。いくつかの実施形態では、ロボットシステム１００は、対象スキャナ４１６の向きに従って、逆向きの方向（opposite directions）及び／または直交した方向に向けられたスキャンフィールドを識別することができる。図４に示すように、いくつかの実施形態では、対象スキャナ４１６は、水平方向の両側、または、垂直方向の両側など、互いに反対側に、及び／または互いに面して配置することができる。また、いくつかの実施形態では、対象スキャナ４１６は、１つが上または下に向き、別のものが水平方向を向くなど、互いに垂直に配置することができる。
【００６４】
いくつかの実施形態では、たとえば、ロボットシステム１００は、マスターデータ２５２に従ってスキャンフィールドを識別することができる。マスターデータ２５２は、撮像デバイス２２２及び／または対応するスキャンフィールドを示す、グリッド位置、座標、及び／または他のマーカを含むことができる。マスターデータ２５２は、撮像デバイス２２２のレイアウト及び／または物理的配置、撮像デバイス２２２の能力、環境的因子（たとえば、光の条件、及び／または遮蔽物／構造）、またはそれらの組合せに従って、予め判定することができる。いくつかの実施形態では、ロボットシステム１００は、スキャンフィールドを識別するために、較正プロセスを実施することができる。たとえば、ロボットシステム１００は、図１の移送ユニット１０４を使用して、位置のセットに既知のマークまたはコードを配置し、対応する撮像デバイスが既知のマークを正確にスキャンしたかを判定することができる。ロボットシステム１００は、正確なスキャン結果となった既知のマークの位置に基づいて、スキャンフィールドを識別することができる。
【００６５】
ブロック５０２では、ロボットシステム１００は、指定されたエリアをスキャンすることができる。いくつかの実施形態では、ロボットシステム１００は、１つまたは複数の撮像デバイス２２２（たとえば、図４のソーススキャナ４１２及び／または他のエリアスキャナ）を（たとえば、プロセッサ２０２によって送信されたコマンド／プロンプトを介して）使用して、ピックアップエリア及び／またはドロップエリアなど（たとえば、供給元のパレット／大箱／コンベア、及び／または、作業のパレット／大箱／コンベア）の１つまたは複数の指定されたエリアの撮像データ（たとえば、取得されたデジタル画像及び／またはポイントクラウド）を生成することができる。撮像データは、撮像デバイス２２２から１つまたは複数のプロセッサ２０２に通信することができる。したがって、１つまたは複数のプロセッサ２０２は、さらなる処理のために、ピックアップエリア（たとえば、作業の実行前の対象を含む）、及び／または、ドロップエリア（たとえば、作業の実行後の対象を含む）を示す撮像データを受信することができる。
【００６６】
ブロック５０４では、ロボットシステム１００は、図１のターゲットとなる対象１１２及び関連する位置（たとえば、図１のスタート位置１１４、及び／または、図１の作業位置１１６）、及び／または向き（たとえば、最初のポーズ）を識別することができる。いくつかの実施形態では、たとえば、ロボットシステム１００（たとえば、プロセッサ２０２を介する）は、対象のアウトライン（たとえば、周囲の縁部及び／または表面）を識別するために、パターン認識メカニズム及び／または規則のセットに従って、撮像データを分析することができる。ロボットシステム１００は、さらに、対象の特有の例の各々に対応するような、（たとえば、所定の規則及び／またはポーズのテンプレートに従って）対象のアウトライン及び／または表面のグルーピングを識別することができる。たとえば、ロボットシステム１００は、対象のラインにわたり、色、輝度、深さ／位置、またはそれらの組合せにおけるパターン（たとえば、同じ値であるか、既知の割合／パターンで変化する）に対応する、対象のアウトラインのグルーピングを識別することができる。また、たとえば、ロボットシステム１００は、マスターデータ２５２において規定された所定の形状／ポーズのテンプレート、画像、またはそれらの組合せに従って、対象のアウトライン及び／または表面のグルーピングを識別することができる。
【００６７】
ピックアップ位置で認識された対象から、ロボットシステム１００は、ターゲットとなる対象１１２として、（たとえば、所定のシークエンスまたは規則のセット、及び／または、対象のアウトラインのテンプレートに従って）１つを選択することができる。たとえば、ロボットシステム１００は、（ソーススキャナ４１２の既知の位置に対する距離／位置を示す）ポイントクラウドに従うなどして、頂部に位置する対象として、ターゲットとなる対象１１２を選択することができる。また、たとえば、ロボットシステム１００は、角／縁部に位置し、撮像結果に露出する／示される２つ以上の表面を有する対象として、ターゲットとなる対象１１２を選択することができる。さらに、ロボットシステム１００は、所定のパターンまたはシークエンス（たとえば、基準位置に対し、左から右へ、もっとも近くからもっとも遠くへなど）に従って、ターゲットとなる対象１１２を選択することができる。
【００６８】
選択されたターゲットとなる対象１１２に関し、ロボットシステム１００は、スタート位置１１４及び／または最初のポーズを判定するために、撮像結果をさらに処理することができる。たとえば、ロボットシステム１００は、撮像結果の中のターゲットとなる対象１１２の位置（たとえば、判定されたポーズに関する所定の基準ポイント）を、ロボットシステム１００によって使用されるグリッド内の位置へマッピングすることによりスタート位置１１４を判定することができる。ロボットシステム１００は、所定の較正マップに従って位置をマッピングすることができる。
【００６９】
いくつかの実施形態では、ロボットシステム１００は、ドロップエリアの撮像結果を処理して、対象間のあいているスペースを判定することができる。ロボットシステム１００は、画像の位置を、現実の位置及び／またはシステムによって使用される座標にマッピングする所定の較正マップに従って、対象のラインをマッピングすることに基づいて、前記あいているスペースを判定することができる。ロボットシステム１００は、異なるグルーピング／対象に属する対象のライン（そしてひいては、対象の表面）間の空間として、あいているスペースを判定することができる。いくつかの実施形態では、ロボットシステム１００は、あいているスペースの１つまたは複数の寸法を測定し、測定された寸法をターゲットとなる対象１１２の１つまたは複数の寸法（たとえば、図２のマスターデータ２５２に記憶されているようなもの）と比較することに基づいて、ターゲットとなる対象１１２にとって適切なあいているスペースを判定することができる。ロボットシステム１００は、所定のパターン（たとえば、基準位置に対し、左から右へ、もっとも近くからもっとも遠くへ、底部から頂部へなど）に従って、適切な／あいているスペースの１つを、作業位置１１６として選択することができる。
【００７０】
いくつかの実施形態では、ロボットシステム１００は、撮像結果を処理せずにまたは処理することに加えて、作業位置１１６を判定することができる。たとえば、ロボットシステム１００は、エリアを撮像することなく、所定の動作のシークエンス及び位置に従って、配置エリアに対象を配置することができる。また、たとえば、ロボットシステム１００は、複数の作業（たとえば、スタックの共通の層／列に位置する対象に関するものなど、複数の対象を移動すること）を実施するために、撮像結果を処理することができる。
【００７１】
ブロック５２２では、たとえば、ロボットシステム１００は、撮像データ（たとえば、ソーススキャナ４１２からの撮像データ）の処理に基づき、最初のポーズ（たとえば、ピックアップ位置におけるターゲットとなる対象１１２の停止した向きの推定）を判定することができる。いくつかの実施形態では、ロボットシステム１００は、対象のアウトラインと、マスターデータ２５２の所定のポーズのテンプレートにおけるアウトラインとを比較すること（たとえば、ピクセル値を比較すること）に基づいて、ターゲットとなる対象１１２の最初のポーズを判定することができる。所定のポーズのテンプレートには、たとえば、予期される対象の対応する向きに係る、対象のアウトラインの異なる可能性のある配置を含むことができる。ロボットシステム１００は、ターゲットとなる対象１１２として選択された対象と前に関連付けられた、対象のアウトラインのセット（たとえば、図３Ａ及び／または図３Ｃの第１の露出表面３０４、及び／または、図３Ａの第２の露出表面３０６などの、露出表面の縁部）を識別することができる。ロボットシステム１００は、比較された対象のアウトライン間の、もっとも少ない差異の測定に対応する、ポーズのテンプレートの１つを選択することに基づき、最初のポーズを判定することができる。
【００７２】
いくつかの実施形態では、さらなる例に関し、ロボットシステム１００は、ターゲットとなる対象１１２の物理的寸法に基づき、ターゲットとなる対象１１２の最初のポーズを判定することができる。ロボットシステム１００は、撮像データで取得された露出表面の寸法に基づき、ターゲットとなる対象１１２の物理的寸法を概算することができる。ロボットシステム１００は、撮像データの対象のアウトラインの各々に関する長さ及び／または角度を測定し、次いで、較正マップ、変換テーブルもしくはプロセス、所定の方程式、またはそれらの組合せを使用して、測定された長さを現実世界の長さまたは標準的な長さにマッピング又は変換することができる。ロボットシステム１００は、物理的寸法に対応する、ターゲットとなる対象１１２及び／または露出表面（複数可）を識別するための測定された寸法を使用することができる。ロボットシステム１００は、概算された物理的寸法を、マスターデータ２５２内の対象の既知の寸法のセット（たとえば、高さ、長さ、及び／または幅）ならびにその表面と比較することに基づき、対象及び／または露出表面（複数可）を識別することができる。ロボットシステム１００は、マッチした寸法のセットを使用して、露出表面（複数可）及び対応する向きを識別することができる。たとえば、ロボットシステム１００は、露出表面の寸法が、予期された対象に関する長さ及び幅にマッチする場合に、露出表面を、図３Ａの対象頂部表面３２２、または、図３Ｂの対象底部表面３２４（たとえば、一対の両側の表面）として識別することができる。露出表面の向きに基づき、ロボットシステム１００は、最初のポーズ（たとえば、露出表面が上を向いている場合、第１のポーズ３１２または第３のポーズ３１６）を判定することができる。
【００７３】
いくつかの実施形態では、たとえば、ロボットシステム１００は、ターゲットとなる対象１１２の１つまたは複数の表面、及び／または、その１つまたは複数のマーキングの可視画像に基づき、ターゲットとなる対象１１２の最初のポーズを判定することができる。ロボットシステム１００は、接続されたアウトラインのセットのピクセル値を、マスターデータ２５２の、所定のマーキングベースのポーズのテンプレートと比較することができる。マーキングベースのポーズのテンプレートには、たとえば、様々な異なる向きの予期される対象の、１つまたは複数の特有のマーキングが含まれ得る。ロボットシステム１００は、比較された画像に関するもっとも少ない差異の測定の結果となる、表面、表面の向き、及び／または対応するポーズの１つを選択することに基づいて、最初のポーズを判定することができる。
【００７４】
ブロック５２４では、ロボットシステム１００は、最初のポーズに関する信頼基準を計算することができる。信頼基準は、最初のポーズが、ターゲットとなる対象１１２の実際の現実世界のポーズにマッチすることの確実性または可能性の基準を示し得る。いくつかの実施形態では、ロボットシステム１００は、最初のポーズを判定することの一部として、信頼基準を計算することができる。たとえば、信頼基準は、対象のアウトラインと、上述の選択されたテンプレートのアウトラインとの間の差異の基準に対応し得る。また、たとえば、信頼基準は、上述の概算された物理的寸法及び／または角度に関連する公差レベルに対応し得る。また、たとえば、信頼基準は、撮像データ内の可視マーキングと、上述のテンプレートの画像との間の差異の基準に対応し得る。
【００７５】
ブロック５０６では、ロボットシステム１００は、ターゲットとなる対象１１２に関する作業４０２を実行するためのモーションプラン（たとえば、図４の第１のモーションプラン４２２及び／または図４の第２のモーションプラン４２４）を計算することができる。たとえば、ロボットシステム１００は、図４のロボットアーム４１４及び／またはエンドエフェクタを操作する、図２の作動デバイス２１２に関する、コマンドもしくは設定のシークエンス、またはそれらの組合せを計算することに基づいて、モーションプランを計算することができる。いくつかの作業に関し、ロボットシステム１００は、ロボットアーム４１４及び／またはエンドエフェクタを操縦して、ターゲットとなる対象１１２をスタート位置１１４から作業位置１１６に移動する、シークエンス及び設定値を計算することができる。ロボットシステム１００は、１つまたは複数の規制、ゴール、及び／または規則に従って、空間内の経路を計算するように構成されたモーションプランメカニズム（たとえば、処理、機能、方程式、アルゴリズム、コンピュータで生成された／読取り可能なモデル、またはそれらの組合せ）を実施することができる。たとえば、ロボットシステム１００は、ターゲットとなる対象１１２をスタート位置１１４から作業位置１１６に、１つまたは複数の提供のポーズ／位置（たとえば、エンドエフェクタのための１つまたは複数の対応するスキャン位置）を通して移動するために、空間を通る経路を計算するように、Ａ＊アルゴリズム、Ｄ＊アルゴリズム、及び／または他のグリッドに基づく検索を使用することができる。モーションプランメカニズムは、さらなる処理、機能、もしくは方程式、及び／またはマッピングテーブルを使用して、経路を、作動デバイス２１２に関するコマンドもしくは設定のシークエンス、またはそれらの組合せに変換することができる。モーションプランメカニズムを使用する際、ロボットシステム１００は、ロボットアーム４１４及び／またはエンドエフェクタを操作し、ターゲットとなる対象１１２に計算された経路をたどらせる、シークエンスを計算することができる。
【００７６】
いくつかの実施形態では、ロボットシステム１００は、信頼基準に基づき、モーションプランを選択的に計算／取得することができる。ロボットシステム１００は、信頼基準に従って、アプローチ位置（たとえば、図４の第１のアプローチ位置４３２及び／または図４の第２のアプローチ位置４３４）、１つまたは複数のスキャン位置（たとえば、図４の第１の提供位置４４２及び／または図４の第２の提供位置４４４）、またはそれらの組合せを含むモーションプランを計算することができる。たとえば、ロボットシステム１００は、信頼基準を十分性閾値と比較することの結果に基づいて、メトリック（たとえば、性能のメトリック、及び／または、スキャンのメトリック）に係る、アプローチ位置及び／またはスキャン位置を計算することができる。スキャン位置は、１つまたは複数の対象識別子３３２をスキャンするものである１つまたは複数の対応する対象スキャナ４１６の前（すなわち、そのスキャンフィールド）に、ターゲットとなる対象１１２の１つまたは複数の表面を与えるように、エンドエフェクタを配置するためのものとすることができる。
【００７７】
ブロック５３２では、ロボットシステム１００（たとえば、プロセッサ２０２を介する）は、利用可能なアプローチ位置のセットを計算することができる。利用可能なアプローチ位置は、エンドエフェクタを配置するのに十分な、スタート位置１１４周りに開放されているか又は占められていない空間に対応するものとすることができる。以下にさらに記載するように、ロボットシステム１００は、他の対象を妨げることなく、ターゲットとなる対象１１２に接触及びグリップするために、選択されたアプローチ位置にエンドエフェクタを置くことができる。
【００７８】
いくつかの実施形態では、たとえば、ロボットシステム１００は、ターゲットとなる対象１１２の対象アウトラインと、隣接する対象の対象アウトラインとの間の分離距離を計算することに基づいて、利用可能なアプローチ位置のセットを計算することができる。ロボットシステム１００は、分離距離を、エンドエフェクタの物理的サイズ／形状、及び／または、それらの様々な向きに対応する、所定の距離のセットと比較することができる。ロボットシステムは、対応する分離距離が、エンドエフェクタのサイズに対応する距離の所定のセットを超える場合、利用可能なアプローチ位置の各々を識別することができる。
【００７９】
決定ブロック５３４では、ロボットシステム１００は、信頼基準を１つまたは複数の十分性条件（たとえば、１つまたは複数の閾値）と比較して、これらが満たされているか否かを判定することができる。ブロック５３６で示されるものなど、信頼基準が十分性条件を満たす場合（たとえば、信頼基準が必要とされる閾値を超える場合）、ロボットシステム１００は、性能のメトリックに基づき、モーションプラン（たとえば、第１のモーションプラン４２２）を計算することができる。いくつかの実施形態では、信頼基準が十分性条件を満たす場合、ロボットシステム１００は、最初のポーズが適切であると推定し、少なくとも１つの対象識別子をスキャンすることに関する可能性、及び／または、最初のポーズが不正確である場合があることの可能性に対応する、スキャンのメトリックを考慮することなく、モーションプランを計算することができる。
【００８０】
説明の例として、いくつかの実施形態では、ロボットシステム１００は、ブロック５４２において、候補のプランを計算することができる。候補のプランの各々は、利用可能なアプローチ位置とスキャン位置との特有の組合せ（たとえば、ターゲットとなる対象１１２に関する、対応する提供位置／向き）に対応する、モーションプランの例とすることができる。いくつかの実施形態では、ロボットシステム１００は、マスターデータ２５２内の、識別子の位置（複数可）３３４または対応するモデル／ポーズを回転させるなどにより、最初のポーズに従って、識別子の位置（複数可）３３４を計算することができる。ロボットシステム１００は、エンドエフェクタに識別子の位置（複数可）３３４をカバーさせる（たとえば、直上、前方、及び／または閾値の距離内に置く）、利用可能なアプローチ位置を除去することができる。
【００８１】
ロボットシステム１００は、セット内の残りの利用可能なアプローチ位置（たとえば、ブロック５３２の計算結果）の各々に関し、候補のプランを計算することができる。候補のプランの各々に関し、ロボットシステム１００は、利用可能なアプローチ位置に従って、特有のスキャン位置をさらに計算することができる。いくつかの実施形態では、ロボットシステム１００は、ターゲットとなる対象１１２のモデルの回転及び／または移動に基づき、スキャン位置を計算することができ、それにより、識別子の位置３３４に対応する表面が、スキャンフィールド内にあるとともに、対応する対象スキャナに面する。ロボットシステム１００は、所定のプロセス、方程式、関数などに従って、モデルを回転及び／または移動することができる。
【００８２】
ブロック５４４では、ロボットシステム１００は、各候補のプランに関する性能のメトリックを計算することができる。ロボットシステム１００は、作業４０２を完了することに関するスループット率に対応する性能のメトリックを計算することができる。たとえば、性能のメトリックは、候補のプランに関する、ターゲットとなる対象１１２が移動する距離、概算される移動時間、作動デバイス２１２に関するコマンド及び／または設定の変更の数、達成率（すなわち、ピースロスの量と相補的である）、またはそれらの組合せに関連し得る。ロボットシステム１００は、１つまたは複数の、測定された又は既知のデータ（たとえば、設定／コマンドに関連する加速度／速度、及び／または、グリップ表面及び／または動きに関連するピースロスの割合）、ならびに、所定の計算プロセス、方程式、関数などを使用して、候補のモーションプランに関する対応する値を計算することができる。
【００８３】
ブロック５４６では、ロボットシステム１００は、モーションプランとして、最大の性能のメトリックをもった候補のプラン（すなわち、対応するアプローチ位置を伴う）を選択することができる。たとえば、ロボットシステム１００は、モーションプランとして、候補のプランのセットの中で、もっとも高い達成率、もっとも短い移動距離、もっとも少ないコマンド及び／または設定の変更の数、もっとも速い移動の持続時間、またはそれらの組合せに対応する、候補のプランを選択することができる。したがって、ロボットシステム１００は、アプローチ位置として、もっとも高い性能のメトリックに対応する、セット内の利用可能なアプローチ位置を選択することができる。
【００８４】
比較すると、ロボットシステム１００は、信頼基準が十分性条件を満たさない（たとえば、信頼基準が必要な閾値未満である）場合、異なる基準に従って、候補のプランを計算することができる。いくつかの実施形態では、ブロック５３８で示すように、ロボットシステム１００は、スキャンのメトリックに基づき、モーションプラン（たとえば、第２のモーションプラン４２４）を計算することができる。スキャンのメトリックは、対象識別子３３２の少なくとも１つが、最初のポーズが正確であるかに関わらず、エンドエフェクタによってカバーされないままであり、かつ、スキャン可能であることの可能性に対応する値（たとえば、２要素の値、又は、２要素ではないスコア／パーセンテージ）である。いくつかの実施形態では、たとえば、ロボットシステム１００は、信頼基準が十分性条件を満たさない場合、性能のメトリックに対してスキャンのメトリックを優先させる（たとえば、最初に満たす及び／またはより重い重要度を与える）ことができる。したがって、ロボットシステム１００は、１つまたは複数の対象スキャナの前に、少なくとも１つのカバーされていない対象識別子を提供するための１つまたは複数のスキャン位置（すなわち、スキャンフィールド内にある、及び／または、対応するスキャナに向いている）を含むモーションプランを計算することができる。さらに詳細なプロセスの説明において、図５Ｂは、本開示の１つまたは複数の実施形態に係る、スキャンメトリックに基づき、モーションプラン（たとえば、エンドエフェクタのための１つまたは複数の位置）を選択的に計算するためのフロー図５３８を示している。
【００８５】
いくつかの実施形態では、スキャンのメトリックに基づき、モーションプランを計算することには、ブロック５５２に示したように、露出した識別子の位置のセットを計算することを含むことができる。ロボットシステム１００は、最初のポーズに対し、露出した識別子の位置のセット（たとえば、グリップ位置において、エンドエフェクタでスキャン可能なままであり得る識別子の位置３３４）を計算することができる。ロボットシステム１００は、利用可能なアプローチ位置の各々に関する、露出した識別子の位置を計算することができる。露出した識別子の位置は、最初のポーズが正確であるとの仮定に従って、対応するアプローチ位置において、エンドエフェクタでカバーされないままである対象識別子３３２の位置に対応するものとすることができる。
【００８６】
（ブロック５４２に関して）上述したように、いくつかの実施形態では、マスターデータ２５２は、予期される対象の各々に関する識別子の位置３３４を記載する、コンピュータモデルまたはテンプレート（たとえば、１つまたは複数の対象の縁部及び／または画像に対してのオフセットの測定）を含むことができる。ロボットシステム１００は、最初のポーズにマッチするように、マスターデータ２５２内の所定のモデル／テンプレートを回転及び／または移動させることに基づき、露出した識別子の位置のセットを計算することができる。いくつかの実施形態では、ロボットシステム１００は、エンドエフェクタに識別子の位置３３４をカバーさせる（たとえば、直上、前方、及び／または閾値の距離内に置く）、アプローチ位置を除去することができる。換言すると、ロボットシステム１００は、識別子の位置３３４の直上、前方、及び／または閾値の距離内にある、利用可能なアプローチ位置を除去することができる。
【００８７】
ブロック５５４では、ロボットシステム１００は、代替的な識別子の位置のセットを計算することができる。ロボットシステム１００は、最初のポーズの代替のポーズに関し、代替的な識別子の位置のセット（たとえば、識別子の位置３３４）を計算することができる。利用可能なアプローチ位置の各々に関し、ロボットシステム１００は、代替的ポーズを計算することができ、代替的ポーズの各々に関し、ロボットシステム１００は、代替的な識別子の位置を計算することができる。したがって、代替的な識別子の位置は、最初のポーズが正確ではないとの仮定に従って、対応するアプローチ位置において、エンドエフェクタでカバーされないままである対象識別子３３２の位置に対応するものとすることができる。露出した識別子の位置に関して上述したように、ロボットシステム１００は、代替的なポーズに従って、マスターデータ２５２内の所定のモデル／テンプレートを回転及び／または移動させることに基づいて、代替的な識別子の位置を計算することができる。
【００８８】
ブロック５５６では、ロボットシステム１００は、アプローチ位置の各々、代替的ポーズの各々、対象識別子の各々、またはそれらの組合せに関する露出の可能性を計算することができる。露出の可能性は、１つまたは複数の対象識別子が、露出したままであるとともに、対応するアプローチ位置から、ターゲットとなる対象１１２をグリップしているエンドエフェクタでスキャン可能のままである可能性を示している。露出の可能性は、最初のポーズが正確であるシナリオと、最初のポーズが正確ではないシナリオとの両方を示すことができる。換言すると、露出の可能性は、最初のポーズが正確ではない場合であっても、１つまたは複数の対象識別子が、露出したままであるとともにスキャン可能なままである可能性を示すことができる。
【００８９】
いくつかの実施形態では、たとえば、ロボットシステム１００は、特定の条件（たとえば、アプローチ位置、代替的なポーズ、対象識別子、またはそれらの組合せの特有の例）に対応する確率的な値など、条件に関する確実性として、露出の可能性を計算することができる。いくつかの実施形態では、ロボットシステム１００は、条件に関する確実性を、特定の条件が真であることの確実性／可能性（たとえば、信頼基準に近い値）と合わせること（たとえば、追加及び／または複数倍することを介する）に基づき、露出の可能性を計算することができる。いくつかの実施形態では、ロボットシステム１００は、複数の識別子が、考慮されるアプローチ位置及び／または考慮されるポーズに関して露出した際に、露出していると思われる識別子の各々に関する確実性を付加することに基づき、露出の可能性を計算することができる。
【００９０】
いくつかの実施形態では、ロボットシステム１００は、考慮されるアプローチ位置に関する潜在的なポーズの各々など、露出した識別子の位置と代替的な識別子の位置とに基づく確実性の値を組み合わせることに基づいて、露出の可能性を計算することができる。たとえば、ロボットシステム１００は、露出した識別子の位置と、逆の符号（たとえば、正及び負）を有する代替的な識別子の位置とに関する確実性を使用して、露出の可能性を計算することができる。ロボットシステム１００は、２つの確実性の大きさを加えること、及び／または、符号を伴う確実性を加えることに基づき、露出の可能性を計算することができる。全体の大きさは、１つまたは複数の対象識別子がスキャン可能なままであることの全体の可能性を示し得、符号が付された／ベクトルの可能性は、１つまたは複数の対象識別子が、最初のポーズが正確ではない場合であっても、スキャン可能なままであることの可能性を示し得る。したがって、最初のポーズの正確さに関わらず、対象識別子がスキャン可能であることの類似の可能性を示すためなど、アプローチ位置は、全体の大きさがより大である場合に理想的であり、符号が付された／ベクトルの可能性が、ゼロに近くなる。
【００９１】
ブロック５５８では、ロボットシステム１００は、アプローチ位置を選択することができる。いくつかの実施形態では、ロボットシステム１００は、アプローチ位置として、露出された識別子のセット（たとえば、最初のポーズが正確であることの仮定に従う、対象識別子の概算の位置のセット）と、代替的な識別子のセット（たとえば、最初のポーズが正確ではないことの仮定に従う、対象識別子の概算の位置の１つまたは複数のセット）との両方に、カバーされていない識別子の位置を含む、利用可能なアプローチ位置を選択することができる。換言すると、ロボットシステム１００は、最初のポーズの正確さに関わらず、露出した、スキャン可能である少なくとも１つの対象識別子を残すアプローチ位置を選択することができる。いくつかの実施形態では、ロボットシステム１００は、アプローチ位置として、全体の大きさがもっとも大であるもの、及び／または、符号が付された／ベクトルの可能性がゼロにより近いものなど、ターゲットとされる条件にマッチする、及び／またはもっとも近い露出の可能性に対応する、利用可能なアプローチ位置を選択することができる。
【００９２】
いくつかの実施形態では、ロボットシステム１００は、露出の可能性に基づき、スキャンの可能性（たとえば、露出した対象識別子が、成功してスキャンされる可能性）を計算することができる。たとえば、ロボットシステム１００は、露出の可能性を、対応する露出した対象識別子に関連する評価値（たとえば、成功したスキャンの追跡の割合、物理的サイズ、及び／または識別子のタイプ）と組み合わせることができる。ロボットシステム１００は、アプローチ位置として、もっとも高いスキャンの可能性に対応する、利用可能なアプローチ位置を選択することができる。
【００９３】
いくつかの実施形態では、ロボットシステム１００は、露出した識別子のセットを、代替的な識別子のセットと比較して、露出した識別子のセット及び代替的な識別子のセットが、ターゲットとなる対象１１２の対向する表面の位置（たとえば、第１のポーズ３１２と第３のポーズ３１６との間）を含むかを判定することができる。したがって、ロボットシステム１００は、２つの対向する表面と直交する、第３の表面（たとえば、対象外周表面３２６の１つ）に対応する利用可能なアプローチ位置を選択することができる。
【００９４】
ブロック５６０では、信頼基準が十分性閾値を満たさないなどの場合、ロボットシステム１００は、選択されたアプローチ位置に基づいて、候補となるモーションプランを計算することができる。ロボットシステム１００は、対象識別子を、露出した識別子のセットと代替的な識別子のセットとの両方に置く１つまたは複数の提供位置／向きに対応する、エンドエフェクタに関する１つまたは複数のスキャン位置を含む、候補となるモーションプランを計算することができる。換言すると、ロボットシステム１００は、最初のポーズの正確さに関わらず、ターゲットとなる対象１１２をスキャンすることができる、候補となるモーションプランを計算することができる。
【００９５】
いくつかの実施形態では、ロボットシステム１００は、露出した識別子のセットと、代替的な識別子のセットとの両方において、識別子の位置に対処する、候補となるモーションプランを計算することができる。たとえば、ロボットシステム１００は、対向する及び／または直交する表面の、可能性のある識別子の位置に対処する、候補となるモーションプランを計算することができる。したがって、ロボットシステム１００は、最初のポーズに加え、逆向きのポーズ（たとえば、ターゲットとなる対象のアウトラインが視認位置／角度から同じに置かれている、逆方向に向いたポーズ）、及び／または、回転された他のポーズに対処することができる。説明の例として図３Ａ及び図３Ｃを再び参照すると、ロボットシステム１００は、グリップ位置が対象外周表面３２６の１つに対応する場合、第１のポーズ３１２と第３のポーズ３１６との両方に対処する、候補となるモーションプランを計算することができる。
【００９６】
複数の可能性のあるポーズに対処する（たとえば、最初のポーズにおけるエラーの概算）ために、ロボットシステム１００は、対象識別子を、露出した識別子のセットと、代替的な識別子のセットとの両方に置く、スキャンポーズを計算することができる。いくつかの実施形態では、ブロック５６２で示すように、ロボットシステム１００は、スキャンフィールド内またはスキャンフィールドを通して、ターゲットとなる対象１１２に関する候補のポーズのセットを計算することができる。アプローチ位置が選択されると、ロボットシステム１００は、スキャンフィールド内に識別子の位置３３４を配置するように識別子の位置のモデルを回転及び／または移動させることなどにより、ブロック５４２に関して上述したように、候補となるスキャン位置を計算することができる。
【００９７】
ブロック５６４では、ロボットシステム１００は、露出した識別子のセットと、代替的な識別子のセットとを、候補となるスキャン位置の各々にマッピングすることができる。ロボットシステム１００は、最初のポーズを始点とし、識別子の位置のモデルを回転させることに基づき、露出した識別子のセットをマッピングすることができる。ロボットシステム１００は、代替的なポーズの１つ（たとえば、逆向きのポーズ）を始点とし、識別子の位置のモデルを回転させることに基づき、代替的な識別子のセットをマッピングすることができる。
【００９８】
識別子の位置がマッピングされると、ブロック５６８において、ロボットシステム１００は、露出した識別子のセットと、代替的な識別子のセットとの両方における対象識別子の位置及び／または向きを、スキャンフィールドと比較することができる。決定ブロック５７０では、ロボットシステム１００は、候補のポーズが、露出した識別子のセットと、代替的な識別子のセットとの両方における対象識別子を対象スキャナに同時に提供したかを判定することができる。
【００９９】
ブロック５７２では、ロボットシステム１００は、露出した識別子のセットと代替的な識別子のセットとの両方における対象識別子を、異なる対象スキャナ／スキャンフィールドに同時に提供する候補のポーズを、スキャンポーズとして、識別することができる。たとえば、露出した識別子のセットと代替的な識別子のセットとにおける対象位置が対向する表面上にある状態で、グリップ位置が対象外周表面３２６の１つに対応する場合、ロボットシステム１００は、ターゲットとなる対象１１２の両側の表面の各々が対象スキャナの１つに向いた状態で、対向／対面している一対の対象スキャナの間にターゲットとなる対象１１２を置くスキャンポーズを識別することができる。
【０１００】
ブロック５７４では、候補のポーズのどれも、露出した識別子のセットと代替的な識別子のセットとの両方において、対象識別子を同時に提供しない場合、ロボットシステム１００は、露出した識別子のセット及び代替的な識別子のセットから、各々が少なくとも１つの対象識別子を提供する、複数のスキャン位置（たとえば、第１のスキャン位置及び第２のスキャン位置）を計算することができる。たとえば、第１のスキャン位置は、露出した識別子のセット内の１つまたは複数の対象識別子の位置を、対象スキャナの１つに提供することができ、第２のスキャン位置は、代替的な識別子のセット内の１つまたは複数の対象識別子の位置を、対象スキャナの１つに提供することができる。第２のスキャン位置は、第１のスキャン位置から、エンドエフェクタを軸周りに回転させること、エンドエフェクタを平行移動すること、またはそれらの組合せに関連し得る。
【０１０１】
ふたたび図４に示す例を参照すると、第２のモーションプラン４２４は、上述のように、２つの対向する表面（たとえば、第１のポーズ３１２及び第３のポーズ３１６に関する）に直交する第３の表面（たとえば、対象外周表面３２６の１つ）に対応する、第２のアプローチ位置４３４に対応するものとすることができる。したがって、第１のスキャン位置は、最初のポーズ（たとえば、第１のポーズ３１２）に対応する表面（たとえば、対象底部表面３２４であると概算される）を、上に向いた対象スキャナ４１６の上であるとともにこのスキャナに向く、第２の提供位置４４４の一つの第１の位置に対応し得る。第２のスキャン位置は、ターゲットとなる対象１１２を９０度だけ、（たとえば、概してスタート位置１１４から作業位置１１６への）全体の移動方向に対して反時計回りの方向に回転させた、第２の提供位置４４４の一つの第２の位置に対応するものとすることができる。したがって、第２のスキャン位置は、代替的なポーズ（たとえば、第３のポーズ３１６）に対応する表面（たとえば、対象底部表面３２４であると判断される）を、水平に向いた対象スキャナ４１６の前方及びこのスキャナに向く垂直な向きに配置する、第２の提供位置４４４に対応するものとすることができる。
【０１０２】
結果として得られるスキャンポーズ及び／またはスキャン位置のセットに従って、ロボットシステム１００は、候補のプランを計算することができる。ロボットシステム１００は、上述の１つまたは複数のメカニズム（たとえば、Ａ＊メカニズム）を使用して、エンドエフェクタを選択されたアプローチ位置に置き、それに応じてターゲットとなる対象１１２に接触及びグリップし、また、ターゲットとなる対象１１２を、識別されたスキャンポーズ及び／またはスキャン位置のセットまで、持ち上げるとともに移動する、候補のプランを計算することができる。たとえば、スキャンポーズが識別されると、ロボットシステム１００は、候補のプランを計算して、スキャンフィールド内またはスキャンフィールドを通るターゲットとなる対象１１２に関するスキャンポーズを確立することができる。ロボットシステム１００がスキャンポーズを識別しない場合、ロボットシステム１００は、候補のプランを計算して、複数のスキャン位置のセットを連続して通るようにエンドエフェクタを移動／方向付けすることができ、それにより、複数の提供位置／向きに従って、ターゲットとなる対象１１２を連続して移動／回転させる。
【０１０３】
ブロック５７６では、ロボットシステム１００は、候補のモーションプランの各々に関するスキャンの可能性を再計算またはアップデートすることができる。ロボットシステム１００は、ブロック５４４に関して上述した様々な可能性及び／または優先度（たとえば、アプローチ位置、スキャン位置、利用される対象スキャナ、露出していると思われる識別子、関連するエラー、及び／または損失率、またはそれらの組合せに関する、可能性及び／またはスコア）を組み合わせることに基づくが、性能のメトリックの代わりに、スキャンのメトリックに関して、スキャンの可能性をアップデートすることができる。
【０１０４】
ブロック５７８では、ロボットシステム１００は、スキャンの可能性に従って、候補のプランの選択に基づき、モーションプランを計算することができる。ロボットシステム１００は、モーションプランとして、候補のプランの中でスキャンの可能性が最大である候補のプランを選択することができる。たとえば、ロボットシステム１００は、（たとえば、スタート位置１１４と作業位置１１６との間の空間のスキャンのための）ターゲットとなる対象１１２の移動の間、１つまたは複数のスキャンフィールド（すなわち、１つまたは複数の対象スキャナの前）における、露出した識別子の位置の少なくとも１つ及び代替的な識別子の位置の少なくとも１つを配置することの可能性がもっとも高い、候補のプランを選択することができる。
【０１０５】
比較的小さい差異の値（たとえば、所定の閾値）内で、２つ以上の候補のプランがスキャンの可能性に対応する場合、ロボットシステム１００は、対応する候補のプランに対応する性能のメトリックを（たとえば、ブロック５４４及びブロック５４６に関して上述したように）計算及び評価することができる。ロボットシステム１００は、モーションプランとして、ターゲットとされる条件にもっとも近い候補のプランを選択することができる。
【０１０６】
いくつかの実施形態では、ロボットシステム１００は、図示の例示的フローから外れることができる。たとえば、ロボットシステム１００は、上述のように、アプローチ位置を選択することができる。選択されたアプローチ位置に基づき、ロボットシステム１００は、ターゲットとなる対象１１２をグリップし、持ち上げ、再度の方向付け、水平移動、下に戻すとともに開放する、またはそれらの組合せなど、動きの所定のセットを実施することができる。動きの所定のセットの間または後に、ロボットシステム１００は、（たとえば、ブロック５０２に戻るようにループすることを介して）ピックアップエリアを再度撮像またはスキャンし、最初のポーズ及び信頼基準（たとえば、ブロック５２２及びブロック５２４を介する）を再度判定することができる。
【０１０７】
図５Ａに戻ると、ブロック５０８において、ロボットシステム１００は、結果としてのモーションプランの実施を開始することができる。ロボットシステム１００は、モーションプランのコマンド及び／または設定を他のデバイス（たとえば、対応する作動デバイス２１２及び／または他のプロセッサ）に送信して、作業４０２を実行するように１つまたは複数のプロセッサ２０２を操作することに基づくモーションプランを実施することができる。したがって、ロボットシステム１００は、コマンドもしくは設定、またはそれらの組合せのシークエンスに応じて、作動デバイス２１２を操作することにより、モーションプランを実行することができる。たとえば、ロボットシステム１００は、作動デバイス２１２を操作して、エンドエフェクタをスタート位置１１４周りのアプローチ位置に配置すること、ターゲットとなる対象１１２に接触及びグリップすること、またはそれらの組合せを行うことができる。
【０１０８】
ブロック５８２では、ロボットシステム１００は、エンドエフェクタをスキャン位置に移動することができ、それにより、ターゲットとなる対象１１２を提供位置／向きに移動する。たとえば、ターゲットとなる対象１１２をスタート位置１１４から持ち上げた後、または持ち上げるのに伴い、ロボットシステム１００は、エンドエフェクタを移動して、ターゲットとなる対象１１２に関するスキャンポーズを確立することができる。また、ロボットシステム１００は、エンドエフェクタを第１のスキャン位置に移動することができる。
【０１０９】
ブロック５８４では、ロボットシステム１００は、対象スキャナ４１６を操作して、ターゲットとなる対象１１２をスキャンすることができる。たとえば、１つまたは複数のプロセッサ２０２は、コマンドを対象スキャナ４１６に送信して、スキャンを実施する、及び／または、質問を対象スキャナ４１６に送信して、スキャンステータス及び／またはスキャンされた値を受信することができる。ブロック５８５などにおいて、モーションプランがスキャンポーズを含む場合、ロボットシステム１００は、モーションプランを実施して、スキャンフィールドの向きに直交する方向に、スキャンフィールドにわたって、スキャンポーズのターゲットとなる対象１１２を移動することができる。ターゲットとなる対象１１２が移動される間、対象スキャナ４１６は、対象識別子３３２の複数の可能性のある位置に関する複数の表面を（同時に、及び／または連続して）スキャンすることができる。
【０１１０】
決定ブロック５８６では、ロボットシステム１００は、スキャン結果（たとえば、ステータス及び／またはスキャンされた値）を評価して、ターゲットとなる対象１１２がスキャンされたかどうかを判定することができる。たとえば、ロボットシステム１００は、モーションプランを、第１のスキャン位置まで実施した後に、スキャン結果を評価することができる。ブロック５８８などにおいて、スキャン結果が、ターゲットとなる対象１１２のスキャンが成功したことを示す（たとえば、ステータスが、有効なコード／識別子の検出に対応する、及び／または、スキャンされた値が、識別された／予期された対象にマッチする）場合、ロボットシステム１００は、ターゲットとなる対象１１２を作業位置１１６に移動することができる。いくつかの実施形態では、スキャンが成功したことに基づき、ロボットシステム１００は、任意の後のスキャン位置（たとえば、第２のスキャン位置）を無視し、ターゲットとなる対象１１２を作業位置１１６に直接移動することができる。
【０１１１】
スキャン結果が、スキャンが成功しなかったことを示す場合、ロボットシステム１００は、決定ブロック５９０において、現在のスキャン位置が、モーションプランにおける最後のものであるかどうかを判定することができる。最後のモーションプランではない場合、ロボットシステム１００は、ブロック５８２へ戻るループによって示されるように、ターゲットとなる対象１１２を次の提供位置／向きに移動することができる。
【０１１２】
現在のスキャン位置が、モーションプランにおける最後のものである場合、ロボットシステム１００は、ブロック５９２で示すように、１つまたは複数の改善作業を実施することができる。いくつかの実施形態では、ロボットシステム１００は、モーションプランにおけるスキャン位置のすべてに関するスキャン結果が、スキャンの失敗を示す場合、モーションプランを停止及び／またはキャンセルすることができる。いくつかの実施形態では、ロボットシステム１００は、オペレータに知らせるためのエラーのステータス／メッセージを生成することができる。いくつかの実施形態では、ロボットシステム１００は、スキャンが失敗した対象に関して指定されたエリア内（すなわち、スタート位置１１４及び作業位置１１６とは異なる位置）に、ターゲットとなる対象１１２を配置することができる。
【０１１３】
作業４０２（すなわち、ターゲットとなる対象１１２のスキャンを成功し、作業位置１１６に置くこと）を成功して完了したか、あるいは改善作業を実施したかに基づき、ロボットシステム１００は、次の作業／対象に移動することができる。いくつかの実施形態では、ロボットシステム１００は、ブロック５０２に戻るループによって示すように、指定されたエリアを再スキャンすることができる。いくつかの実施形態では、ロボットシステム１００は、ブロック５０４に戻るループによって示すように、既存の撮像データを使用して、次の対象を、ターゲットとなる対象１１２として選択することができる。
【０１１４】
空間内（たとえば、スタート位置１１４と作業位置１１６との間の位置）でターゲットとなる対象１１２をスキャンすることにより、作業４０２を実行することに関する効率及び速度が向上される。スキャン位置を含むモーションプランであって、対象スキャナ４１６と協同もするモーションプランを計算することにより、ロボットシステム１００は、ターゲットとなる対象を移動するための作業を、ターゲットとなる対象をスキャンするための作業と効果的に組み合わせることができる。さらに、最初の向きの信頼基準に従ってモーションプランを計算することにより、スキャン作業に関する効率、速度、及び精度がさらに向上する。上述のように、ロボットシステム１００は、最初のポーズが正確ではないというシナリオに対応する代替的な向きに対処するモーションプランを計算することができる。したがって、ロボットシステム１００は、較正エラー、予期しないポーズ、予期しない光の条件などに起因するものなど、ポーズの判定のエラーを伴う場合であっても、ターゲットとなる対象を正確に／成功的にスキャンする可能性を増大させることができる。正確なスキャンの可能性の増大は、ロボットシステム１００に関する全体のスループットの増大につながるとともに、操作者の労力／介入をさらに低減することができる。
【０１１５】
まとめ
本開示の実施例の上述の発明を実施するための形態は、排他的であるか、本開示を上記に開示の明確な形態に限定されることは意図されていない。本開示に関する特定の実施例が、説明の目的のために上述されているが、様々な均等の変形形態が、当業者が認識することになるように、本開示の範囲内で可能である。たとえば、プロセスまたはブロックが所与の順番で提供されているが、代替的な実施態様により、異なる順番で、ステップを有するルーチンを実施するか、ブロックを有するシステムを採用する場合があり、また、いくつかのプロセスまたはブロックは、削除、移動、追加、細分化、結合、及び／または変形されて、代替的またはサブの組合せを提供する場合がある。これらプロセスまたはブロックの各々は、様々な異なる方法で実施される場合がある。また、プロセスまたはブロックが、図示の時点で、連続して実施されるものであるが、これらプロセスまたはブロックは、代わりに、並行して実施されるか実行される場合があり、あるいは、異なる時間に実施される場合がある。さらに、本明細書に示されたあらゆる特定の数は、実施例にすぎず、代替的実施態様では、異なる値またはレンジが採用される場合がある。
【０１１６】
これら及び他の変更は、上述の発明を実施するための形態に照らして、本開示に行うことができる。発明を実施するための形態には、本開示の特定の実施例と、想定されるベストモードとが記載されているが、本開示は、上述の説明が、テキストにおいてどれだけ詳細に示されるかに関わらず、多くの方法で実施することができる。本システムの詳細は、その特定の実施態様において、著しく変化する場合があるが、依然として、本明細書に開示の技術に包含されている。上述のように、本開示の特定の特徴または態様を記載する際に使用された特定の用語は、その用語が、用語が関連付けられた本開示の特定の特性、特徴、または態様のいずれにも限定されるように本明細書で再定義されることを暗示するものとは取られないものとする。したがって、本発明は、添付の特許請求の範囲によるものを除き、限定されない。概して、添付の特許請求の範囲で使用される用語は、上述の発明を実施するための形態のセクションが、そのような用語を明示的に規定していない限り、本開示を、明細書に開示の特定の実施例に制限するようには解釈されないものとする。
【０１１７】
本発明の特定の態様が、特定の特許請求の範囲の形態で添付のように与えられているが、本出願人は、任意の数の請求項の形態で、本発明の様々な態様を想定している。したがって、本出願人は、本出願または継続出願において、本出願を出願した後に、さらなる特許請求の範囲を実行する権利を留保して、そのような追加の請求項の形態を実行する。
【図１】
2020121405.tif 000003
【図２】
2020121405.tif 000004
【図３Ａ】
2020121405.tif 000005
【図３Ｂ】
2020121405.tif 000006
【図３Ｃ】
2020121405.tif 000007
【図４】
2020121405.tif 000008
【図５Ａ】
2020121405.tif 000009
【図５Ｂ】
2020121405.tif 000010
【手続補正書】
【提出日】令和2年4月28日(2020.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットシステムの操作方法であって、
撮像データに基づいて、ターゲットとなる対象の最初のポーズを判定することであって、前記撮像データ内に示される前記ターゲットとなる対象は、１つ又は複数の対象識別子を含むことと、
前記最初のポーズに関連する信頼基準を計算することと、
前記信頼基準に基づいて、前記１つ又は複数の対象識別子の位置を概算することと、
前記１つ又は複数の対象識別子の前記概算の位置に基づいて、モーションプランを取得することであって、前記モーションプランは、前記ターゲットとなる対象をスタート位置と作業位置との間で移動する間に、前記概算の位置の少なくとも１つを１つ又は複数の対象スキャナに提供するように、ロボットアーム及びエンドエフェクタを操作するためのものであることと、
を含む、方法。
【請求項２】
前記１つ又は複数の対象識別子を有する前記ターゲットとなる対象を含む、ピックアップエリアを示す前記撮像データを受信することと、
前記ロボットアーム及び／又は前記エンドエフェクタの１つ又は複数の作動デバイスを操作するための前記モーションプランを実行することと、
をさらに含み、
前記信頼基準は、前記最初のポーズが前記ターゲットとなる対象の実際の向きにマッチすることの可能性を示すものであり、
前記モーションプランは、前記ロボットアーム及び／又は前記エンドエフェクタの前記１つ又は複数の作動デバイスのためのコマンド、設定、又はそれらの組み合わせを含み、
前記モーションプランは、アプローチ位置及びスキャン位置に対応しており、前記アプローチ位置及び前記スキャン位置は、前記概算の位置に基づいて、かつ、前記最初のポーズが前記ターゲットとなる対象の前記実際の向きにマッチするか否かにかかわらず、前記対象識別子の少なくとも１つが前記エンドエフェクタによって視覚的に妨害されないままであることの計算された可能性に従って取得される、請求項１に記載の方法。
【請求項３】
前記アプローチ位置は、前記エンドエフェクタが前記ターゲットとなる対象に接触し、当該ターゲットとなる対象をグリップする位置を規定し、
前記スキャン位置は、前記１つ又は複数の対象識別子の少なくとも１つをスキャンするために、前記１つ又は複数の対象スキャナの前に前記ターゲットとなる対象の１つ又は複数の表面を提供するための前記エンドエフェクタの位置を規定し、前記１つ又は複数の表面は、前記１つ又は複数の対象識別子の前記概算の位置の少なくとも１つを含み、
前記モーションプランを取得することは、前記信頼基準が十分性閾値を満たさない場合に、前記計算された可能性に従って、前記アプローチ位置及び前記スキャン位置を取得することを含む、請求項２に記載の方法。
【請求項４】
前記アプローチ位置及び前記スキャン位置は、前記信頼基準が十分性閾値を満たさない場合に、前記対象識別子の少なくとも１つが前記エンドエフェクタによって視覚的に妨害されないままであることの前記計算された可能性を最大化することに基づいて取得される、請求項２に記載の方法。
【請求項５】
前記モーションプランを取得することは、
前記撮像データに基づいて、利用可能なアプローチ位置のセットを取得することと、
前記セット内の前記利用可能なアプローチ位置の各々に関連するスキャンのメトリック及び性能のメトリックを計算することと、
前記信頼基準が十分性閾値を満たさない場合に、前記性能のメトリックの前に前記スキャンのメトリックを優先順位付けすることに基づいて、前記アプローチ位置を選択することと、
を含む、請求項２に記載の方法。
【請求項６】
前記モーションプランを取得することは、
前記撮像データに基づいて、利用可能なアプローチ位置のセットを取得することであって、前記セット内の前記利用可能なアプローチ位置の各々は、グリップ可能な前記ターゲットとなる対象の表面に対応することと、
前記最初のポーズが前記ターゲットとなる対象の前記実際の向きにマッチするという第１の仮定に従って、前記セット内の前記利用可能なアプローチ位置の各々に関して露出した識別子のセットを計算することと、
前記最初のポーズが前記ターゲットとなる対象の前記実際の向きにマッチしないという第２の仮定に従って、前記セット内の前記利用可能なアプローチ位置の各々に関して代替的な識別子のセットを計算することと、
前記露出した識別子のセットと前記代替的な識別子のセットの両方における、視覚的に妨害されていない対象識別子に対応する、前記アプローチ位置を選択することと、
を含み、
前記露出した識別子のセット及び前記代替的な識別子のセットは、それぞれ、前記第１の仮定及び前記第２の仮定に従って、前記ターゲット表面の外側の前記対象識別子の１つ又は複数の概算の位置を示す、請求項２に記載の方法。
【請求項７】
前記対象スキャナに対応するスキャンフィールドを識別することと、
前記スキャンフィールド内又は前記スキャンフィールドを通る、前記ターゲットとなる対象の候補のポーズのセットを計算することであって、前記候補のポーズの各々は、前記対象スキャナの少なくとも１つに対して前記ターゲットとなる対象の１つ又は複数の表面を提供することと、
をさらに含み、
前記モーションプランを取得することは、
前記露出した識別子のセット及び前記代替的な識別子のセットを前記候補のポーズの各々にマッピングすることと、
前記露出した識別子のセット及び前記代替的な識別子のセットにおける前記対象識別子を前記スキャンフィールドに提供するための候補のポーズとして、スキャンポーズを識別することと、
前記スキャンフィールド内又は前記スキャンフィールドを通る、前記スキャンポーズを確立する前記モーションプランを取得することと、
を含む、請求項６に記載の方法。
【請求項８】
前記モーションプランを取得することは、少なくとも第１のスキャン位置及び第２のスキャン位置を計算することを含み、前記第１のスキャン位置は、前記露出した識別子のセット内の位置を、前記対象スキャナの１つに提供するためのものであり、前記第２のスキャン位置は、前記代替的な識別子のセット内の位置を、前記対象スキャナの１つに提供するためのものである、請求項６に記載の方法。
【請求項９】
前記モーションプランを実施することは、前記第１のスキャン位置まで前記モーションプランを実施した後に、スキャン結果を評価することを含み、
当該方法は、前記スキャン結果が成功したスキャンを示す場合、前記ターゲットとなる対象を直接前記作業位置に移動し、かつ、前記第２のスキャン位置を無視するための第２のプランを実施することをさらに含む、請求項８に記載の方法。
【請求項１０】
前記モーションプランを実施することは、
前記第１のスキャン位置まで前記モーションプランを実施した後に、スキャン結果を評価することと、
前記スキャン結果が失敗したスキャンを示す場合、前記ターゲットとなる対象を前記第２のスキャン位置に移動することと、
を含む、請求項８に記載の方法。
【請求項１１】
ロボットシステムであって、
プロセッサと、
前記プロセッサと動作可能に結合され、撮像センサ、対象スキャナのセット及びロボットアームと通信するように構成された通信回路と、
少なくとも１つのプロセッサと接続され、前記プロセッサによって実行可能である命令を記憶する少なくとも１つのメモリデバイスと、
を備え、
前記ロボットアームは、エンドエフェクタを有し、ターゲットとなる対象をスタート位置から作業位置にグリップ及び移動するように構成され、
前記命令は、
撮像データに基づいて、ターゲットとなる対象の最初のポーズを判定することであって、
前記ターゲットとなる対象は、１つ又は複数の対象識別子を含み、
前記最初のポーズは、前記ターゲットとなる対象の概算の向きであることと、
前記最初のポーズが前記ターゲットとなる対象の実際の向きにマッチするという第１の仮定に従って、前記対象識別子の１つの、第１の概算の位置を計算することと、
前記最初のポーズが前記ターゲットとなる対象の前記実際の向きにマッチしないという第２の仮定に従って、前記対象識別子の１つの、第２の概算の位置を計算することと、
前記第１の概算の位置及び前記第２の概算の位置を前記スキャンフィールドの１つ又は複数に配置するモーションプランを取得することであって、前記モーションプランは、前記移動の間に、前記対象識別子の少なくとも１つを対象スキャナのセットに提供するように、ロボットアーム及びエンドエフェクタを操作するためのものであることと、
を行うためのものである、ロボットシステム。
【請求項１２】
前記通信ユニットは、前記ロボットアームを操作するための前記モーションプランを通信するように構成され、前記モーションプランはアプローチ位置及びスキャン位置と関連し、
前記アプローチ位置は、前記エンドエフェクタが前記ターゲットとなる対象に接触し、当該ターゲットとなる対象をグリップする位置を規定し、
前記スキャン位置は、前記１つ又は複数の対象識別子をスキャンするために、前記１つ又は複数の対象スキャナの前に前記ターゲットとなる対象の１つ又は複数の表面を提供するための前記エンドエフェクタの位置を規定し、前記スキャン位置は、前記タスク位置の前に存在する、請求項１１に記載のロボットシステム。
【請求項１３】
前記通信回路は、前記モーションプランの一部分を実施した後に、前記対象スキャナの前記１つ又は複数からスキャン結果を受信するように構成され、
前記少なくとも１つのメモリデバイスは、
前記モーションプランの前記一部分を実施して、前記第１の概算の位置及び前記第２の概算の位置の一方を、前記対象スキャナのセットに提供することと、
前記モーションプランの前記一部分を実施した後に、前記スキャン結果を評価することと、
前記スキャン結果が成功したスキャンを示す場合、前記ターゲットとなる対象を提供位置から直接前記作業位置に移動し、かつ、前記第１の概算の位置及び前記第２の概算の位置の他方を無視するための第２のプランを実施することと、
を行うための、前記プロセッサによって実行可能である命令を含む、請求項１１に記載のロボットシステム。
【請求項１４】
前記通信回路は、１つのポーズにおける前記ターゲットとなる対象の様々な表面をスキャンするための、互いに逆向きの方向、直交した方向、又はそれらの組み合わせを向いた対応するスキャンフィールドを有する、前記対象スキャナのセットと通信するように構成される、請求項１１に記載のロボットシステム。
【請求項１５】
プロセッサ命令を記憶した有形の非一時的なコンピュータ可読媒体であって、前記プロセッサ命令は、ロボットシステムにより、その１つ又は複数のプロセッサを介して実行された際に、前記ロボットシステムに、
撮像データ及び信頼基準に基づいて、ターゲットとなる対象の最初のポーズを判定することであって、前記信頼基準は、前記最初のポーズが前記ターゲットとなる対象の実際の向きにマッチすることの可能性を示すものであることと、
前記信頼基準に基づいて、前記１つ又は複数の対象識別子の位置を概算することと、
前記１つ又は複数の対象識別子の前記概算の位置に基づいて、モーションプランを取得することであって、前記モーションプランは、前記ターゲットとなる対象をスタート位置と作業位置との間で移動する間に、前記概算の位置の少なくとも１つを対象スキャナのセットに提供するように、ロボットアーム及びエンドエフェクタを操作するためのものであることと、
を含む方法を実行させる、有形の非一時的なコンピュータ可読媒体。
【請求項１６】
前記方法はさらに、
１つ又は複数のスキャンフィールドを識別することであって、各々のスキャンフィールドは、前記対象スキャナのセット内の対象スキャナに隣接する空間を示すことと、
前記信頼基準が十分性条件を満たさないと判定することと、
を含み、
前記１つ又は複数の対象識別子の前記位置を概算することは、
前記最初のポーズが正確であるという第１の仮定に従って、前記対象識別子の１つの、第１の概算の位置を計算することと、
前記判定に基づいて、前記最初のポーズが正確ではないという第２の仮定に従って、前記対象識別子の１つの、第２の概算の位置を計算することと、を含み、
前記モーションプランは、前記第１の概算の位置及び前記第２の概算の位置を、前記スキャンフィールドの１つ又は複数に配置するためのものである、請求項１５に記載の有形の非一時的なコンピュータ可読媒体。
【請求項１７】
前記モーションプランは、
（１）前記１つ又は複数の対象識別子の前記概算の位置と、
（２）前記最初のポーズが正確であるか否かにかかわらず、前記対象識別子の少なくとも１つがグリップ表面の外側にあることを示す計算された可能性と
に従って取得された、前記グリップ表面において、前記ターゲットとなる対象をグリップするためのものであり、
前記グリップ表面はさらに、前記エンドエフェクタによってカバーされる前記ターゲットとなる対象の表面を示す、請求項１５に記載の有形の非一時的なコンピュータ可読媒体。
【請求項１８】
前記モーションプランを取得することは、前記信頼基準が十分性条件を満たさない場合に、前記計算された可能性を最大化することを含む、請求項１７に記載の有形の非一時的なコンピュータ可読媒体。
【請求項１９】
前記モーションプランを取得することは、
前記撮像データに基づいて、利用可能なアプローチ位置のセットを計算することであって、前記セット内の各々の利用可能なアプローチ位置は、前記エンドエフェクタを、前記ターゲットとなる対象に接触し且つグリップするように配置するためのものであることと、
前記最初のポーズが正確であるという第１の仮定に従って、前記セット内の各々の利用可能なアプローチ位置に関して露出した識別子のセットを取得することと、
前記最初のポーズが正確ではないという第２の仮定に従って、前記セット内の各々の利用可能なアプローチ位置に関して代替的な識別子のセットを取得することと、
前記露出した識別子のセットと前記代替的な識別子のセットの両方における、カバーされていない対象識別子を有する、前記利用可能なアプローチ位置を選択することと、
を含み、
前記モーションプランは、前記選択された利用可能なアプローチ位置に従って前記ターゲットとなる対象をグリップするためのものであり、
前記露出した識別子のセット及び前記代替的な識別子のセットは、それぞれ、前記第１の仮定及び前記第２の仮定に従って、前記グリップ表面の外側に残る前記対象識別子の概算の位置を示す、請求項１７に記載の有形の非一時的なコンピュータ可読媒体。
【請求項２０】
前記モーションプランを取得することは、
前記露出した識別子のセット及び前記代替的な識別子のセットが、前記ターゲットとなる対象の対向する表面に対応する位置を含むと判定することと、
前記対向する表面に直交する第３の表面に関連する前記利用可能なアプローチ位置を選択することと
を含む、請求項１７に記載の有形の非一時的なコンピュータ可読媒体。
【外国語明細書】
2020121405000001.pdf