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