IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ デクステリティ・インコーポレーテッドの特許一覧

特許7508655未知の物体の自律的ピックアンドプレース
<>
  • 特許-未知の物体の自律的ピックアンドプレース 図1
  • 特許-未知の物体の自律的ピックアンドプレース 図2
  • 特許-未知の物体の自律的ピックアンドプレース 図3
  • 特許-未知の物体の自律的ピックアンドプレース 図4
  • 特許-未知の物体の自律的ピックアンドプレース 図5
  • 特許-未知の物体の自律的ピックアンドプレース 図6
  • 特許-未知の物体の自律的ピックアンドプレース 図7
  • 特許-未知の物体の自律的ピックアンドプレース 図8
  • 特許-未知の物体の自律的ピックアンドプレース 図9
  • 特許-未知の物体の自律的ピックアンドプレース 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-21
(45)【発行日】2024-07-01
(54)【発明の名称】未知の物体の自律的ピックアンドプレース
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240624BHJP
   B25J 13/00 20060101ALI20240624BHJP
【FI】
B25J13/08 A
B25J13/00 Z
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2023100423
(22)【出願日】2023-06-20
(62)【分割の表示】P 2021552534の分割
【原出願日】2020-03-31
(65)【公開番号】P2023116741
(43)【公開日】2023-08-22
【審査請求日】2023-07-04
(31)【優先権主張番号】62/829,969
(32)【優先日】2019-04-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/834,115
(32)【優先日】2020-03-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521105662
【氏名又は名称】デクステリティ・インコーポレーテッド
【氏名又は名称原語表記】DEXTERITY,INC.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】チャベス・ケヴィン・ホセ
(72)【発明者】
【氏名】サン・チョウエン
(72)【発明者】
【氏名】ピダパーシ・ロイット・アルカ
(72)【発明者】
【氏名】モリス-ダウニング・タルボット
(72)【発明者】
【氏名】スー・ハリー・ツェ
(72)【発明者】
【氏名】ポッテイル・ベン・バーキー・ベンジャミン
(72)【発明者】
【氏名】メノン・サミア
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2018-158391(JP,A)
【文献】米国特許出願公開第2019/0061158(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
方法であって、
複数のセンサから受信されたセンサデータに基づいて、作業空間エリアに存在する1または複数の物体について、1セットの1または複数の潜在的に把持可能な特徴部を決定し、
少なくとも前記1または複数の潜在的に把持可能な特徴部のサブセットのそれぞれについて、特徴部をロボットアームおよびエンドエフェクタで把持するための1または複数の対応する把持戦略を決定し、
少なくとも前記1または複数の対応する把持戦略のサブセットのそれぞれに関して、対応する特徴部の把持成功の確率に関連付けられているスコアを決定し、
選択された把持戦略を用いて前記1または複数の潜在的に把持可能な特徴部の内の第1特徴部を把持するよう選択し、前記選択された把持戦略は、前記第1特徴部に関する前記選択された把持戦略に関連付けられた対応するスコアに少なくとも部分的に基づいて選択され、
前記選択された把持戦略を用いて前記第1特徴部の把持を試みるよう、前記ロボットアームおよびエンドエフェクタを制御することを備え、前記選択された把持戦略を用いて前記第1特徴部を把持することは、
前記第1特徴部の把持が成功したか否かを判定し、前記第1特徴部の前記把持が成功しなかったと判定された判定に応答して、前記選択された把持戦略を用いて前記第1特徴部の把持を反復的に再試行し、または、前記第1特徴部を把持する閾値回数の試行がなされるまで、前記第1特徴部を把持するために異なる把持戦略を実施し、
前記閾値回数の試行がなされたことに応答して、前記1または複数の潜在的に把持可能な特徴部の第2特徴部を把持するよう選択すること、を備える、方法。
【請求項2】
請求項1に記載の方法であって、前記複数のセンサから受信された前記センサデータは、点群データを含む、方法。
【請求項3】
請求項1に記載の方法であって、さらに、前記複数のセンサから受信された前記センサデータに基づいて、前記1または複数の物体に関連付けられている境界情報を決定することを備える、方法。
【請求項4】
請求項3に記載の方法であって、前記選択された把持戦略は、前記1または複数の物体に関連付けられている前記決定された境界情報に部分的に基づいて選択される、方法。
【請求項5】
請求項1に記載の方法であって、さらに、前記1または複数の物体の内の1つを複数の形状に分割することを備える、方法。
【請求項6】
請求項1に記載の方法であって、前記第1特徴部は、前記対応する特徴部の前記把持成功の前記確率に関連付けられた最高スコアを有する、方法。
【請求項7】
請求項1に記載の方法であって、前記選択された把持戦略を用いて前記第1特徴部を把持することは、前記第1特徴部の把持が成功したか否かを判定することを含む、方法。
【請求項8】
請求項7に記載の方法であって、前記第1特徴部の前記把持が成功したと判定された場合に、前記第1特徴部に関連付けられている物体が荷下ろしエリアに移動される、方法。
【請求項9】
請求項7に記載の方法であって、前記第1特徴部の前記把持が成功しなかったと判定された場合に、前記第1特徴部を把持する閾値回数の試行がなされたか否かが判定される、方法。
【請求項10】
請求項9に記載の方法であって、前記第1特徴部を把持する前記閾値回数の試行がなされたと判定された場合に、前記1または複数の潜在的に把持可能な特徴部の内の第2特徴部を把持するよう選択する、方法。
【請求項11】
請求項9に記載の方法であって、前記第1特徴部を把持する前記閾値回数の試行がなされていなかった場合に、前記第1特徴部を把持するために、同じまたは異なる把持技術を実施する、方法。
【請求項12】
請求項1に記載の方法であって、さらに、
前記作業空間エリア内で人間を検出し、
前記人間が、第1物体に関連付けられている前記第1特徴部と同じ区域にいるか否かに基づいて、第2物体に関連付けられている第2特徴部を選択すること、
を備える、方法。
【請求項13】
請求項1に記載の方法であって、さらに、
前記作業空間エリア内で人間を検出し、
前記人間が、物体に関連付けられている前記第1特徴部と同じ区域で検出された場合に、前記ロボットアームの動作を停止すること、
を備える、方法。
【請求項14】
請求項1に記載の方法であって、さらに、前記第1特徴部に関連付けられている物体を荷下ろしエリアに移動させることを備える、方法。
【請求項15】
請求項14に記載の方法であって、さらに、前記物体が落下したか否かを判定することを備える、方法。
【請求項16】
請求項1に記載の方法であって、さらに、前記第1特徴部に関連付けられている物体を荷下ろしエリアにプレースすることを備える、方法。
【請求項17】
請求項1に記載の方法であって、さらに、誤較正条件が生じたか否かに基づいて、前記ロボットアームおよび前記エンドエフェクタに関連付けられているロボットシステムを再較正することを備える、方法。
【請求項18】
請求項1に記載の方法であって、さらに、新たな物体が前記作業空間エリアで検出されたか否かに基づいて、前記ロボットアームおよび前記エンドエフェクタに関連付けられているロボットシステムの動作を更新することを備える、方法。
【請求項19】
システムであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサと、
を備え、
前記プロセッサは、
複数のセンサから受信されたセンサデータに基づいて、作業空間エリアに存在する1または複数の物体について、1セットの1または複数の潜在的に把持可能な特徴部を決定し、
少なくとも前記1または複数の潜在的に把持可能な特徴部のサブセットのそれぞれについて、特徴部をロボットアームおよびエンドエフェクタで把持するための1または複数の対応する把持戦略を決定し、
少なくとも前記1または複数の対応する把持戦略のサブセットのそれぞれに関して、対応する特徴部の把持成功の確率に関連付けられたスコアを決定し、
選択された把持戦略を用いて前記1または複数の潜在的に把持可能な特徴部の内の第1特徴部を把持するよう選択し、前記選択された把持戦略は、前記第1特徴部に関する前記選択された把持戦略に関連付けられた対応するスコアに少なくとも部分的に基づいて選択され、
前記選択された把持戦略を用いて前記第1特徴部の把持を試みるよう、前記ロボットアームおよびエンドエフェクタを制御するよう構成され、前記選択された把持戦略を用いて前記第1特徴部を把持するために、前記プロセッサは、
前記第1特徴部の把持が成功したか否かを判定し、前記第1特徴部の前記把持が成功しなかったと判定された判定に応答して、前記選択された把持戦略を用いて前記第1特徴部の把持を反復的に再試行し、または、前記第1特徴部を把持する閾値回数の試行がなされるまで、前記第1特徴部を把持するために異なる把持戦略を実施し、
前記閾値回数の試行がなされたことに応答して、前記1または複数の潜在的に把持可能な特徴部の第2特徴部を把持するよう選択するように構成されている、システム。
【請求項20】
コンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能媒体内に具現化され、
複数のセンサから受信されたセンサデータに基づいて、作業空間エリアに存在する1または複数の物体について、1セットの1または複数の潜在的に把持可能な特徴部を決定するための命令と、
少なくとも前記1または複数の潜在的に把持可能な特徴部のサブセットのそれぞれについて、特徴部をロボットアームおよびエンドエフェクタで把持するための1または複数の対応する把持戦略を決定するための命令と、
少なくとも前記1または複数の対応する把持戦略のサブセットのそれぞれに関して、対応する特徴部の把持成功の確率に関連付けられたスコアを決定するための命令と、
選択された把持戦略を用いて前記1または複数の潜在的に把持可能な特徴部の内の第1特徴部を把持するよう選択するための命令であって、前記選択された把持戦略は、前記第1特徴部に関する前記選択された把持戦略に関連付けられた対応するスコアに少なくとも部分的に基づいて選択される、命令と、
前記選択された把持戦略を用いて前記第1特徴部の把持を試みるよう、前記ロボットアームおよび前記エンドエフェクタを制御するための命令と、を備え、前記選択された把持戦略を用いて前記第1特徴部を把持することは、
前記第1特徴部の把持が成功したか否かを判定し、前記第1特徴部の前記把持が成功しなかったと判定された判定に応答して、前記選択された把持戦略を用いて前記第1特徴部の把持を反復的に再試行し、または、前記第1特徴部を把持する閾値回数の試行がなされるまで、前記第1特徴部を把持するために異なる把持戦略を実施し、
前記閾値回数の試行がなされたことに応答して、前記1または複数の潜在的に把持可能な特徴部の第2特徴部を把持するよう選択することを含む、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
他の出願への相互参照
本願は、2019年4月5日出願の名称を「AUTONOMOUS UNKNOWN OBJECT PICK AND PLACE」とする米国仮特許出願第62/829,969号に基づく優先権を主張し、その仮特許出願は、すべての目的のために参照により本明細書に組み込まれる。
【0002】
長年にわたって、人類は、物体をある位置から別の位置へ移動させる必要のあるタスクに従事してきた。物体移動のスループットは、人間の力、スタミナ、および、技術に依存していた。ツールおよび機械が、物体移動のスループットの向上に役立てるために導入されたが、かかるツールおよび機械は、通常、人間によって操作または部分的に操作されていた。自律ロボットが、ある位置から別の位置へ物体を移動させるために利用されうる。自律ロボットは、休息の必要なしに、週7日、1日24時間働く能力など、人間を超える著しい利点を提供する。自律ロボットは、人間の労働を超える利点を提供するが、自律ロボットの利用は、或る位置から別の位置へ物体を移動させようとする時に新たな問題を生じる。
【図面の簡単な説明】
【0003】
以下の詳細な説明および添付の図面において、本発明の様々な実施形態を開示する。
【0004】
図1】いくつかの実施形態に従って、物体を自律的にピックアンドプレースするためのシステムを示すブロック図。
【0005】
図2】いくつかの実施形態に従って、物体をピックアンドプレースするための処理を示すフローチャート。
【0006】
図3】いくつかの実施形態に従って、物体を把持および移動するための処理を示すフローチャート。
【0007】
図4】いくつかの実施形態に従って、特徴部を把持するための処理を示すフローチャート。
【0008】
図5】いくつかの実施形態に従って、把持技術を選択するための処理を示すフローチャート。
【0009】
図6】いくつかの実施形態に従って、物体を把持および移動するための処理を示すフローチャート。
【0010】
図7】いくつかの実施形態に従って、物体を移動させるための処理を示すフローチャート。
【0011】
図8】いくつかの実施形態に従って、ロボットシステムの動作を更新するための処理を示すフローチャート。
【0012】
図9】いくつかの実施形態に従って、吸着ベースのエンドエフェクタを示すブロック図。
【0013】
図10】いくつかの実施形態に従って、グリッパ式のエンドエフェクタを示すブロック図。
【発明を実施するための形態】
【0014】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されているプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成されている一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成されている処理コアを指すものとする。
【0015】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0016】
ロボットシステムが、第1位置から第2位置へ未知の物体を自律的にピックアンドプレースするタスクを課せられている。ロボットシステムは、1または複数のカメラからの視覚データを用いて、第1位置にある物体を可視化しうる。しかしながら、場合によっては、物体は、無作為および/または雑然と積み重ねられていることがあり、それにより、作業空間エリア内のすべての物体について、物体の境界を識別し、ならびに/もしくは、形状および位置の情報を取得することが、困難または不可能になる。
【0017】
様々な実施形態において、本明細書で開示されているロボットシステムは、作用端にアクチュエータ(例えば、グリッパ、吸着器、など)を備えたロボットアームを用いて、任意の既知ではない物体を第1位置からピックアップし(取り上げ)、次いで、それらの物体を第2位置にプレース(配置)する。ロボットシステムのスループットは、ロボットシステムが、処理において物体を損傷することなしに、最初の試行で物体の把持に成功し、荷下ろしエリアに移動させる能力に依存する。しかしながら、物体は、第1位置で雑然としている場合があり、それにより、カメラに基づいて物体の境界を決定することが困難になる。ロボットシステムは、不適切な位置で物体を把持することで、ロボットシステムによる物体の落下を引き起こす場合があり、それにより、その物体および/または第1位置にある1以上の他の物体を損傷しうる。
【0018】
他のシステムは、ピックアンドプレース処理を開始する前に、第1位置に配置されているすべての物体を具体的に識別しうる(例えば、物体が特定の種類の石けんである、物体が特定の種類のステープラである、など)。しかしながら、かかる処理は、実行の際にすべての物体を識別するのに必要な計算時間が長くかかりうるため、ロボットシステムのスループットを低下させる。さらに、物体が間違って識別された場合、ロボットシステムは、ピックアンドプレース処理が再開する前に、それの識別処理をやり直しうる。
【0019】
本明細書で開示されている技術は、未知の物体を第1位置から第2位置へ自律的にピックアンドプレースするロボットシステムのスループットを改善するために用いられる。ロボットシステムは、作業空間エリア(例えば、第1位置)を見るために用いられる複数のカメラに接続されている。1または複数の物体が、作業空間エリア内にあると判定される。1または複数の物体に含まれる物体は、任意の色、幾何形状、テクスチャ、などを含む。
【0020】
1または複数の物体の各々の幾何形状は、複数のカメラのデータに基づいて決定される。例えば、複数のカメラのデータは、点群情報を含んでよい。潜在的に把持可能な特徴部(例えば、ハンドル、突起、空所、など)が、1または複数の物体の幾何形状に基づいて、作業空間エリア内の1または複数の物体の各々に対して決定される。
【0021】
対応する把持戦略が、把持可能な特徴部の各々に対して決定される。例えば、ロボットシステムは、様々なそれぞれの形状および/または寸法を有する特徴部のための1または複数の把持技術を格納してよい。いくつかの実施形態において、特徴部は、物体の一部に対応する。いくつかの実施形態において、特徴部は、物体全体に対応する。
【0022】
対応する把持成功スコアが、各々対応する潜在的に把持可能な特徴部に関して決定された戦略の各々に対して決定される。把持戦略の内の1つが、それのスコアに基づいて選択され、選択された把持戦略に関連付けられた物体は、ピックアップを試みられる。ロボットシステムが物体の把持に成功した場合、ロボットシステムは、作業空間エリアから第2位置(例えば、荷下ろしエリア)へ物体を移動させる。ロボットシステムが物体の把持に失敗した場合、ロボットシステムは、その物体のための別の把持戦略を試みるか、または、別の物体を把持するよう試みる。作業空間エリアから荷下ろしエリアへ物体をピックアンドプレースする処理は、作業空間エリアからのすべての物体が荷下ろしエリアにプレースされるまで、継続する。
【0023】
ロボットシステムは、物体を様々な形状と関連付け、様々な形状の各々のための把持戦略を利用することにより、ロボットシステムのスループットを改善することができる。かかる技術は、物体の任意のセットに適応可能であり、物体をピックアンドプレースする前に物体の特定のセットに合わせてロボットシステムをプログラムすることを必要としない。
【0024】
図1は、いくつかの実施形態に従って、物体を自律的にピックアンドプレースするためのシステムを示すブロック図である。図の例において、ロボットシステム101が、環境100内で動作している。ロボットシステム101は、固定ベース104上に取り付けられたロボットアーム102を構成する複数のジョイントされたセグメントと、エンドエフェクタ108と、1または複数のセンサ134と、コントローラ106と、を備える。ロボットアーム102は、ロボットアーム102とロボットアーム102の遠位端に取り付けられたエンドエフェクタ108とを操作するよう構成されているコントローラ106に接続されている。いくつかの実施形態において、コントローラ106は、ロボットアーム102および/またはエンドエフェクタ108を含む剛体要素の間のそれぞれのジョイントの各々に設定されているモータへ、電圧および/またはその他の信号、入力など供給して、対応するトルクをそれぞれのモータに印加させることで、モータの回転子に結合された要素をモータの非回転子が結合された要素に対して移動させることにより、ロボットアーム102およびエンドエフェクタ108を制御する。エンドエフェクタ108は、吸着グリッパ、平行グリッパ、ソフトグリッパ、器用グリッパ(dexterous gripper)、などを含んでよい。ロボットシステム101は、複数のエンドエフェクタを備え、物体を把持するのに最も適したエンドエフェクタを選択してよい。例えば、エンドエフェクタは、物体のテクスチャに基づいて選択されてよい。ロボットシステム101は、物体があまりに多くのしわくちゃの領域を有する場合に、吸着グリッパの代わりに平行グリッパを選択してよい。
【0025】
図1に示す例において、ロボットアーム102は、テーブルまたはその他の表面110(例えば、作業空間エリア)から、物体(図の例では、異なる形状の物体112、114、および、116など)をピックアップして、コンベヤベルト118(荷下ろしエリア)の上にそれらをプレースするために用いられている。図に示すように、ロボットアーム102は、以前に、コンベヤベルト118上にアイテム120をプレースするために用いられ、コンベヤベルト118は、物体120がまもなくコンベヤベルト118から移動先122へ落ちるような方向に回転している。作業空間エリアは、動くプラットフォーム(ベルトコンベヤまたは回転するプラットフォームなど)もしくは動かないエリアを含んでよく、そこに、山積みの物体(安定または不安定)が配置されている。
【0026】
様々な実施形態において、図1に示す「ピックアンドプレース」動作は、ロボットアーム102と、エンドエフェクタ108と、コントローラ106とを備えたロボットシステム101によって、少なくとも部分的には自律動作モードで実行される。例えば、いくつかの実施形態において、コントローラ106および/または1以上のその他の制御装置(プロセッサ、メモリ、および、その他の構成要素を備えたコンピュータなど)は、図1に示すピックアンドプレース動作を実行するようプログラムされている。例えば、いくつかの実施形態において、プログラマまたはその他のオペレータは、ロボットシステム101が、自身の環境100と、一方ではテーブル110上の物体(または、いくつかの実施形態においては、テーブル110に関連付けられている座標のセットまたはその他の位置)に対する自身の位置、および、コンベヤベルト118に対する自身の位置と、を認識させるよう、ロボットシステム101をプログラムまたはその他の方法で構成した場合がある。
【0027】
いくつかの実施形態において、ロボットシステム101は、戦略のライブラリまたはその他のリポジトリを用いて、ピックアンドプレース動作および/またはその一部を実行するようプログラムされ、または、その他の方法で構成されている。例えば、ロボットシステム101は、その現在位置および環境100の認識を用いてテーブル110の上方の位置にエンドエフェクタ108を配置するよう構成されていてよい。コンピュータビジョンまたはその他の技術が、次にピックアップする物体の識別および選択のために用いられてよく、物体をピックアップするための戦略が、自律的に(例えば、物体の位置、形状、向き、提示された側面、テクスチャ、剛性、などに基づいて)選択されてよい。
【0028】
例えば、図1に示す例において、ロボットシステム101は、物体112に関連付けられている特徴は立方体形状を有することであると認識し、物体112をピックアップする前に、立方体形状のための把持戦略を選択した可能性がある。ロボットは、ピラミッド形状を有するものとして物体114を認識し、ピラミッド形状のための把持戦略を選択してもよい。ロボットは、円柱形状を有するものとして物体116を認識し、円柱形状のための把持戦略を選択してもよい。
【0029】
環境100は、複数のカメラ(カメラ115、117など)を備える。図1は、2個のカメラを有する環境100を示しているが、環境100は、n個のカメラを備えてよく、ここで、nは、1より大きい数である。複数のカメラは、ロボットシステム101に有線または無線で接続されていてよい。いくつかの実施形態において、複数のカメラの内の少なくとも1つは、固定位置にある。いくつかの実施形態において、複数のカメラの内の少なくとも1つは、動的に移動している(例えば、ドローンなどの移動物体に取り付けられている)。いくつかの実施形態において、複数のカメラの内の少なくとも1つは、静止することと、異なる位置へ移動されることが可能である(例えば、第1位置で物体を検出し、カメラを第2位置に移動させ、第2位置で物体を検出する)。いくつかの実施形態において、1または複数の物体の認識された表面特徴部の変化を検出するために、様々な照明条件が環境100内で用いられる。
【0030】
複数のカメラを用いることで、ロボットシステム101は、異なる視点から環境100を見ることができるようになる。これは、物体が隠されることを防ぎ、物体の幾何形状および物体の境界のより正確な評価を与える。例えば、カメラが大きい物体の隣の小さい物体を捕らえることを阻むように、大きい物体が配置されている場合がある。異なる位置から複数のカメラを用いることで、小さい物体が見えるようになり、小さい物体に関連付けられている境界情報を決定できようになる。広い作業空間は、単一のカメラでは網羅されえない。複数のカメラに関連付けられているビューが、作業空間エリア110のより完全なビューをロボットシステム101に与えるために、マージされてよい。カメラの内の1つが遮られても、ロボットシステム101は、物体をピックアンドプレースすることができる。また、複数のカメラを利用することで、ロボットシステム101は、本明細書に記載のように、ロボットシステムが再較正される必要があるか否かを判定できるようになる。例えば、ArUcoマーカ(例えば、バイナリ正方形基準マーカ)が、複数のカメラを最初に整列させるために用いられてよい。
【0031】
いくつかの実施形態において、ロボットシステム101は、複数のカメラの内の1または複数によって生成された点群に基づいて、物体を分割する。ロボットシステム101は、RBGまたはマルチスペクトルカメラ画像(例えば、RGB、Depth、および/または、赤外線の組みあわせ、など)に基づいて、物体を分割できる。分割された物体は、潜在的に把持可能な領域を決定できるように、点群に逆投影されうる。これにより、点群情報のみに基づいて物体を分割した場合には利用できないさらなる情報(物体タイプ、予測される重量/材料、好ましい把持戦略、など)が提供される。この複合的な分割戦略は、深度のみでは区別しにくい物体(例えば、密に詰められた小さい箱は、点群としては1つの平面に見えうる)をピックする際にうまく機能するが、点群情報と組み合わせて画像分割を利用することで、ロボットシステム101は、各箱を識別し、入力から箱を抽出することができる。
【0032】
いくつかの実施形態において、ロボットシステム101は、テーブル110(例えば、作業空間エリア)からコンベヤベルト118(例えば、荷下ろしエリア)へ未知の物体を自律的にピックアンドプレースする。ロボットシステム101は、カメラ115、117を用いて、物体112、114、116が、テーブル110に配置されたことを判定してよい。コントローラ106は、カメラ115、117から受信された視覚データ(例えば、点群データ)に基づいて、幾何情報を決定する。コントローラ106は、カメラ115、117から受信された視覚データから決定された幾何情報に対応する物体112、114、116について、対応する潜在的に把持可能な特徴部を選択する。例えば、カメラ115、117から受信された視覚データに基づいて、コントローラ106は、物体112が立方体形状に対応する把持可能な特徴部を備え、物体114がピラミッド形状に対応する把持可能な特徴部を備え、物体116が円柱形状を備える、と判定しうる。コントローラ106は、閾値の範囲内で幾何学的物体と最もよく似ている把持可能な特徴部を選択してよい。例えば、コントローラ106は、決定された幾何情報を既知の特徴部のライブラリと比較し、その比較に基づいて、物体の特徴部を選択してよい。いくつかの実施形態において、特徴部は、カノニカル形状である。コントローラ106は、把持される物体上にカノニカル形状を重ね合わせてよい。
【0033】
物体に関連付けられている1または複数の把持可能な特徴部を決定するために、コントローラ106は、物体の平面をランダムに切断して、物体を複数のサブセグメントに分解してよい。物体は、点群のデータ点の占有率が最小の平面で切断されてよい(物体の上部にある尖った特徴部を把持することに関連付けられている)。物体の平面は、物体の色または外観の強い勾配に基づいて切断されてよい。いくつかの実施形態において、一般的な生成済みのサブ領域内の点群に外れ値があるかどうかを判定するために、メンバーシップ関数が用いられる。さらなる切断平面が、追加されてよく、または、物体が、高い剰余を持つ分離領域に分けられてよい。サブセグメントは、別々に処理されてよい。例えば、外れ値検出技術が、サブセグメントに適用されてよい。いくつかの実施形態において、5σが、ガウス分布を点にフィットさせ、平均から5σ(標準偏差)離れた点を識別し、識別された点を外れ値としてマークする。いくつかの実施形態において、点群にサブサンプリング法を利用し、平均に再フィットさせる。次いで、それらの点は、平均から特定の距離だけ離れた点を見つけるために用いられる。
【0034】
いくつかの実施形態において、物体のサブセグメントが、エンドエフェクタ108による物体との相互作用のリーチに基づいて、決定される。例えば、エンドエフェクタ108が、幅の広い物体全体を把持することができない場合、コントローラ108は、物体の幅広部分で物体を把持しないことを決定する。吸着グリッパエンドエフェクタが利用されている場合、比較的滑らかな平面が探される。空所ベースのピック戦略または最小占有切断平面が、回避されてよい。プリミティブが、新たに分割された点群に再フィットされる。処理は、あるレベルの品質または再帰制限が満たされるまで、反復的に繰り返されてよい。
【0035】
コントローラ106は、カメラ115、117から受信された視覚データに基づいて、物体に関連付けられているネガティブスペース情報(例えば、空所)を決定してよい。例えば、コントローラ106は、コーヒーマグの取っ手がネガティブスペースを含むこと、または、車のタイヤがネガティブスペースを含むことを決定してよい。複数のカメラからのデータを用いるコンピュータビジョンアルゴリズムが、カップ、マグカップ、巻かれたワイヤ、テープなどの物体の空所(例えば、穴)を決定してよい。空所が検出された場合、グリッパを空所に挿入して、物体の側壁から物体をピックすることにより、物体を把持することができる。
【0036】
コントローラ106は、カメラ115、117から受信された視覚データに基づいて、ピックされる物体の湾曲を判定してよい。コントローラ106は、物体が湾曲していると判定した場合、コントローラ106は、プレース時に物体が転がって行くのを防ぐために、湾曲した物体をより慎重にプレースし、ゆっくりと把持解除するように、物体のプレースに関連付けられている制御戦略を変更してよい。カメラ115、117から受信された視覚データにより、物体の把持が最初に解放された後に、プレースされた物体が転がっている、または、動いていることが示唆された場合、コントローラ106は、物体を再び把持し、把持が再び解放される前に物体を安定させようとしてよい。コントローラ106が閾値回数を超えて物体の把持/再把持を試みた場合、警告が、ユーザ130に提供され、物体が転がって行く可能性があることをユーザ130に警告してよい。
【0037】
コントローラ106は、カメラ115,117から受信された視覚データに基づいて、物体112、114、116に関連付けられている対応する特徴部を決定する。例えば、コントローラ106は、物体が取っ手を備えると判定しうる。カメラから受信された視覚データは、物体に関連付けられている最小境界と、物体に関連付けられている最大境界とを決定するために用いられてよい。物体の境界は、物体に関連付けられている高さ、幅、または、奥行きを備えうる。視覚データは、物体の境界の内の1または複数を決定することを可能にするデータを提供しうる。例えば、第1カメラが、第1角度で物体の方を向いていてよい。第1カメラは、物体の高さおよび幅に関する情報を提供しうるが、物体の奥行き情報を提供できない。第2カメラが、第2角度で物体の方を向いていてよい。第2カメラは、物体の奥行きおよび高さに関する情報を提供しうるが、物体の幅に関する情報を提供できない。コントローラ106は、物体に関連付けられている境界情報(推定、近似、または、正確な情報)を決定するために、複数のカメラから受信した視覚情報をマージしてよい。例えば、コントローラ106は、物体の高さおよび幅を決定できるが、奥行きを決定できないことがある。コントローラ106は、物体の奥行きが特定の範囲の値内にあると決定してよい。
【0038】
物体に関連付けられている最小境界は、物体が有しうる特定の寸法の最小値に対応する。物体に関連付けられている最大境界は、物体が有しうる特定の寸法の最大値に対応する。例えば、第1カメラは、第1物体と、第1物体の背後にある第2物体とを検出しうる。コントローラ106は、第1カメラからの視覚データに基づいて、第2物体が第1物体の12インチ後方にあると判定しうる。第1物体および第2物体が接触している場合、第1物体が有しうる奥行き寸法の最大値は12インチ(304.8ミリメートル)である。第1物体が有しうる奥行き寸法の最小値は、その寸法の閾値最小サイズ(例えば、1/8インチ(3.175ミリメートル)、1/4インチ(6.35ミリメートル)、1/2インチ(12.7ミリメートル)、1インチ(25.4ミリメートル)、など)である。閾値最小サイズは、履歴的に既知の物体、同様の寸法を持つ既知の物体、物体のコンテキスト、物体のタイプ、などに基づいてよい。
【0039】
コントローラ106は、把持戦略を特徴部と関連付けるデータ構造を格納するメモリ(図示せず)に関連付けられている。把持戦略は、把持技術、および、その把持技術を用いて特徴部を把持する方法、で構成されてよい。いくつかの実施形態において、把持戦略は、物体/セグメントの幾何推定にフィットされうる境界ボックスの長軸および短軸を把持することを含む。いくつかの実施形態において、把持戦略は、あるZ方向の高さで物体/セグメント推定を切断し、境界ボックスを再計算することを含む。次いで、再計算された境界ボックスの長軸および短軸が把持されてよい。これは、物体が幅広いベースを有するが、中間のどこかに小さいタワーを有し、ロボットシステムが、そのタウンを正確に把持したい場合に、有効である。メモリは、把持技術を実行する方法に関する命令も格納する。それらの命令は、他の物体への衝突を避けるために必要に応じて、グリッパを部分的に事前に閉じる指示を含んでよい。メモリは、プレース技術を実行する方法に関する命令も格納する。それらの命令は、エンドエフェクタ108が、荷下ろしエリアで物体をプレースする際に他の物体を乱さないように、エンドエフェクタ108のグリッパ指を部分的に開く命令を備えてよい。メモリは、エンドエフェクタのメカニズムおよび幾何形状に関する情報も格納する(例えば、平行グリッパ対吸着グリッパ、グリッパ指の幅/長さ、など)。
【0040】
把持技術は、1または複数の特徴部に関連付けられてよい。例えば、ピラミッド形状に対応する把持可能な特徴部、立方体形状に対応する把持可能な特徴部、または、平行六面体形状に対応する把持可能な特徴部を備えた物体には、吸着技術が用いられてよい。球形状に対応する把持可能な特徴部を備えた物体には、平行把持技術が用いられてよい。特徴部は、1または複数の把持技術に関連付けられてよい。例えば、球形状に対応する把持可能な特徴部には、平行把持技術またはすくい上げ技術が用いられてよい。様々なタイプのグリッパが、特定の形状を有する特徴部を把持するために用いられてよい。例えば、第1把持技術が、平行グリッパを利用してよく、第2把持技術が、吸着グリッパを利用してよい。いくつかの実施形態において、グリッパのタイプは、ピックアンドプレース動作中にグリッパタイプの間で自律的に切り替えられる。把持技術は、特徴部の様々な部分に用いられてよい。例えば、平行把持技術が、物体の上部、中間部、または、底部に用いられてよい。コントローラ106は、特徴部に関連付けられた把持戦略の各々に対して、対応するスコアを決定する。いくつかの実施形態において、物体は、複数の特徴部に関連付けられる。コントローラ106は、複数の特徴部の各々に対する1または複数の把持技術を決定し、決定した把持技術に対して、対応するスコアを決定してよい。
【0041】
把持技術に関連付けられるスコアは、把持戦略が特徴部の把持の成功につながる確率に基づいてよい。把持戦略が特徴部の把持の成功につながる確率は、1または複数の要因(環境に関するコンテキスト情報、環境に対する履歴把持情報、ロボットアームが特徴部を把持する角度(他の物体との衝突を避けるため)、ロボットアームが特徴部を把持する高さ(グリッパの上部における衝突を防ぐため)、把持幅、把持点における表面法線の向き、把持可能な特徴部の量、材料特性、など)に基づいてよい。環境に関するコンテキスト情報は、物体の近くにあるまたは隣接する他の物体の存在、物体の近くにあるまたは隣接する他の物体がロボットアームによる特徴部の把持の能力を妨げる程度、さらなる物体が作業空間エリアに連続的に追加されているか否か、などを含む。材料特性は、物体の重心、物体の摩擦特性、色、反射率、などを含みうる。例えば、ロボットシステム101は、大きい物体を安定してプレースすることができるように、大きい支持面を構築してよい。ロボットシステム101は、物体およびプレース支持面の摩擦係数を考慮して、物体が傾いたプレース支持面から滑り落ちる可能性があることを検出した場合、(例えば、滑りを避けるために)十分に高い摩擦係数を持つ物体のみをピックするように選択するよう構成されていてよい。
【0042】
コントローラ106は、把持戦略の各々に関連付けられている対応するスコアに基づいて、把持戦略の1つを選択する。物体は、雑然と山積みにされた物体の多様な集まりでありうる。物体は、サイズ、色、robotight、幾何形状、テクスチャ、剛性、などが異なりうる。物体は、一つずつ山から取り去られる。物体のいくつかは、少なくとも部分的に遮蔽されている。雑然とした山の中のすべての物体が、事前には未知である。コントローラ106は、最高スコアを持つ把持戦略を選択する。2以上の把持戦略が同じ高スコアを有する場合、コントローラ106は、把持戦略の1つを選択し、その把持戦略に関連付けられた特徴部をピックし、物体を荷下ろしエリアに移動させ、次いで、他の把持戦略に関連付けられた残りの物体を選択する。
【0043】
コントローラ106は、物体に関連付けられている特徴部をエンドエフェクタ108に把持させる。図の例において、コントローラ106は、エンドエフェクタ108に物体112をすでに把持させている。コントローラ106は、グリッパメカニズムおよび幾何形状に関する事前知識を用いて、把持予測問題を単純化してよい。例えば、エンドエフェクタ108が、上方から物体(物体112など)にアプローチする場合、コントローラ106は、把持可能な突起を識別するために点群の上部分を解析する。いくつかの実施形態において、ロボットシステムが移動するにつれて、カメラ115、117は、さらなるデータ(例えば、より近い場所、異なる角度、異なる照明、反射率、など)を収集し、ロボットシステム101は、新しいデータに基づいてエンドエフェクタ108に物体を把持させる方法を調整する。
【0044】
物体の把持点が、物体のメッシュ化または分割されたバージョンを用いて決定されてよい。把持される物体の近似が構築され、ライブラリまたは機械学習法を用いたモデルマッチングが、物体の最適な把持位置を決定するために用いられる。把持点は、ランク付けされる。コントローラ106は、エンドエフェクタ108に、把持点の1つで物体を把持させる。
【0045】
いくつかの実施形態において、圧力センサおよび/または真空センサが、把持品質を評価する目的で漏れを検出するために用いられる。例えば、ロボットシステム101は、吸着グリッパをエンドエフェクタ108として用いて、裂けたプラスチック袋をピックアップしうる。圧力/真空情報が、これらのアイテムへのピック動作を中止するためにロボットシステム101によって用いられてよく、これにより、吸着グリッパの損傷および/またはこれらのプラスチック袋内に梱包された商品の汚染が回避されうる。
【0046】
エンドエフェクタ108は、物体(この例では、物体112)を荷下ろしエリア(コンベヤベルト118など)へ移動させる。エンドエフェクタ108は、物体を荷下ろしエリアにプレースする。ロボットシステム101は、複数のカメラを用いて、ロボットシステム101が物体をプレースすべきと考える場所の近くの位置に物体をプレースしてよい。ロボットシステム101は、荷下ろし位置に物体を降ろし、荷下ろしエリアの力が物体を押し戻したことをロボットシステム101が感知したのを検出してよい。ロボットシステム101は、荷下ろしエリアに到達したことを検出すると、エンドエフェクタ108を開き、または、吸着を停止して、物体を穏やかに降ろす。エンドエフェクタ108を開いている間に、ロボットシステム101は、プレースする力を制御するために上下に移動してよい(接触している間にグリッパを開くと、物体を潰すことがある)。これにより、ロボットシステム101は、プレース面の高さの推定値が誤差を含みやすくまたは未知である場合に、物体を積み重ねること、もしくは、プレース高さを動的に調整することができるようになる。これは、他の物体が邪魔になる場合にも役立つ。いくつかの実施形態において、ロボットシステム101は、転がり落ちうる任意の物体が荷下ろしエリアにプレースされるか否かを判定する。転がり落ちる可能性のある物体がない場合、コントローラ106は、ロボットアーム102およびエンドエフェクタ108を制御して、1または複数の他の物体をプレースするためのスペースを作るように、荷下ろしエリアにすでにある物体を押して互いに近づける。
【0047】
様々な実施形態において、ロボットアーム102と、エンドエフェクタ108と、コントローラ106とを備えたロボットシステム101は、遠隔操作による介入を自動的に指示する。いくつかの実施形態において、図1に示すピックアンドプレース動作を実行する過程で、ロボットシステム101がその動作を(さらに)実行するための(次の)戦略を決定できない状態に至った場合、ロボットシステム101は、遠隔操作で手助けするように(この例では)遠隔オペレータに指示する。
【0048】
図の例において、コントローラ106は、ネットワーク124を介して遠隔操作コンピュータ126に接続されている。いくつかの実施形態において、遠隔操作コンピュータ126は、例えば、ネットワーク124を介してコントローラ106へ高レベル命令を通信することによって、自律モードでのロボットシステム101の動作に関与してよい。様々な実施形態において、コントローラ106および遠隔操作コンピュータ126の一方または両方は、例えば、ロボットシステム101が動作の中の次のタスクまたはステップを実行(完了)するために利用可能な戦略を持たない状態に至った場合に、遠隔操作による介入を指示してよい。
【0049】
例えば、図1をさらに参照すると、物体114が落とされて、三角形の側面をロボットに提示する向きで、平坦な側の1つを下にして着地した場合に、いくつかの実施形態において、ロボットシステム101は、物体114をピックアップするために利用可能な戦略を持たない可能性があり、ならびに/もしくは、タイムアウトするか、または、物体114をピックアップするための試みについて設定された回数を使い果たしている可能性がある。それに応じて、遠隔操作オペレータ130は、遠隔操作を通して介入するよう指示されてよく、手動入力装置128を用いて、ロボットの動作を制御してよい。例えば、遠隔操作オペレータ130は、物体114をピックアップして、物体をコンベヤベルト118上にプレースするように、ロボットシステム101を操作してよい。また、遠隔操作オペレータは、ロボットシステム101を用いて、物体114の向きを、自律ロボットシステム101が物体114をピックアップするために利用可能な戦略を持つと期待される(または可能性が高い)向きに変更してもよい。
【0050】
図の例において、遠隔操作は、手動入力装置128(例えば、ハプティック入力装置)の操作を通して人間のオペレータ130によって実行されてよい。人間のオペレータ130(時に、遠隔操作オペレータとも呼ばれる)は、遠隔操作コンピュータ126を構成するおよび/または関連付けられている表示装置に表示された情報によって、遠隔操作を開始するように指示されてよい。1または複数のセンサ134からのデータが、ネットワーク124および遠隔操作コンピュータ126を介して人間のオペレータ130に提供されてよい。いくつかの実施形態において、センサ134は、ロボット上のカメラ(図示せず)またはカメラ115、117を含み、遠隔操作オペレータ130に表示されて、遠隔操作を介して動作または動作の一部の実行を行うおよび/または完了するために用いられるビデオフィードを生成するよう構成されている。様々な実施形態において、カメラは、低遅延、高スループットの接続で接続されており、かかる接続は、例えば、アナログRFベース通信、WiFi、Bluetooth、および、サブGHzの内の1または複数を含むが、それらに限定されない。いくつかの実施形態において、異なるタイプのカメラが併用される。例えば、2つのRGB可視化カメラ、4つの深度カメラ、2つのIRカメラなど、異なる通信速度、帯域幅、および/または、その他の特徴を持つ複数のカメラが用いられてもよい。
【0051】
様々な実施形態において、様々な異なるセンサ134を用いて遠隔操作が実行されてよい。いくつかの実施形態において、これらのセンサは、ロボットシステム101が「スタック」しているか否かを判定する際にロボットを導きうる、および/または、遠隔操作を簡単にしうる。いくつかの実施形態において、センサは、遠隔操作の様式を、直接的なハプティック制御から、ますます抽象的なエグゼクティブコマンド(ピックする対象物をマウスでクリックする、または、音声転写装置に向かって「棚を開け(open shelf)」と言う、など)へ移行させるのに役立つ。
【0052】
様々な実施形態において用いられるセンサ134の例は、環境との相互作用および特定の「スタック」シナリオ、および/または、ロボットシステム101(または遠隔操作オペレータ)の近くの未知のエージェントの存在、を検出するよう構成されているデジタルスイッチを含む。さらなる例は、動作(把持など)の成功または失敗を判定する手またはロボット上の力センサまたは圧力センサを含む。一連の失敗の後に、ロボットシステム101は、自身が「スタック」していると判定する。別の例は、計画されたおよび/または他の形で期待される動きの軌道を正確に辿っているか否かを知るためにロボットシステム101によって利用されうる1または複数のセンサ(ロボット関節上の位置センサなど)である。期待された軌道を正確に辿っていない場合、環境100との接触を起こした可能性があり、ロボットシステム101は、「スタック」したので人的介入を求める必要があると結論づけるようプログラムされていてよい。
【0053】
複数のカメラを備えたビジョンシステムが、マルチモードの手段(例えば、RGBインスタンストラッキング、RGBフィーチャマッチング、RGBオプティカルフロー、点群マッチング、など)によって作業空間エリア内の各物体を追跡し、ハンガリアンペアマッチングなどの方法を用いて、ロボットシステム101がピックする物体を追跡するよう構成されている。ロボットシステム101は、速度、落下する/滑っていく可能性、および、運動の軌道など、各追跡対象物体の状態を推定するよう構成されている。ロボットシステム101は、より高い精度で物体の状態を更新するために、運搬システムおよびセンサ134の現在の速度および大きさなど、他の既知の情報を用いてよい。決定された物体の状態は、どこでどの物体をピックするか、および、どこで/いつ/どのように物体をプレースするか、に関して情報に基づいて決定するために、ロボットシステム101によって用いられてよい。例えば、ロボットシステム101は、ロボットアーム102の動作時間および移動する物体の速度を補償するために、将来的に推定される物体の位置から、ピック(把持)するのに、あるいは、(移動中でも)ピックするのに、より安定した物体を選択できる。ロボットシステム101は、環境100から推定される初速度で物体をプレースすることにより、物体を落下させず、転がすことなしに、より着実に、移動プラットフォームの荷下ろしエリアに物体をプレースできる。また、ロボットシステム101は、荷下ろしエリア118に物体をプレースするために、無衝突区域を選択してよい。衝突区域は、追跡対象物体の推定軌道から決定されてよい。複数のカメラに関連付けられているデータを用いて、ロボットシステム101は、把持された物体および環境100の形状を理解することができる。これは、ロボットシステム101が、ピックされた物体と環境100との間の衝突を回避する軌道をインテリジェントに計画することを可能にする。
【0054】
いくつかの実施形態において、複数のロボットシステムが、物体をピックアンドプレースするために共に作業している。複数のロボットシステムを用いることで、システムの総スループットが向上しうる。
【0055】
図2は、いくつかの実施形態に従って、物体をピックアンドプレースするための処理を示すフローチャートである。いくつかの実施形態において、処理200は、ロボットシステム(ロボットシステム101など)によって実施される。
【0056】
工程202において、作業空間エリアに配置された1または複数の物体に関連付けられているセンサデータ(画像データなど)が受信される。いくつかの実施形態において、センサデータは、複数のカメラによって生成される。複数のカメラは、異なる視点から1または複数の物体を見て検出するよう構成されている。いくつかの実施形態において、カメラの内の1または複数が、1または複数の物体の1または複数の点群を生成する。複数の点群が生成された場合、複数の点群はマージされる。様々な実施形態において、1または複数の物体は、雑然とした山に置かれた複数の物体、離間した複数の物体、および/または、複数の物体の内の1または複数の他の物体によって視界から隠されている1または複数の物体、を含みうる。
【0057】
幾何情報が、複数の物体の各々に対して決定される。幾何情報は、複数のカメラの内の1または複数に関連するデータから取得された点群情報に基づいて決定されてよい。
【0058】
工程204において、1または複数の潜在的に把持可能な特徴部が、1または複数の物体に対して決定される。複数の特徴部の各々に関連付けられている対応する幾何情報が、把持戦略が既知である幾何形状のライブラリと比較されてよい。決定された特徴部の幾何形状と最もよく似ている(例えば、類似度閾値の範囲内である)形状に関連付けられた戦略が選択されてよい。いくつかの実施形態において、物体は、単一の特徴部に関連している(例えば、ペーパータオルのロールは、円筒に対応する)。いくつかの実施形態において、物体は、複数のサブセグメント(本明細書ではサブ物体とも呼ぶ)に分割され、複数のサブセグメントの各々に対応する特徴部が決定される(例えば、ゴルフクラブは、本体セグメントおよびヘッドセグメントを備える)。
【0059】
作業空間エリアの端または隅の近くにある物体は、物体をどこで/どのようにピックするのかについて、物理的またはその他の制約を有しうる。いくつかの実施形態において、物体に関連付けられている環境の境界に応じて、最適ではないが実現可能なピック角度が選択されてもよい。より広い長手方向把持が、より狭い短手方向把持よりも選択されてよく、これは、より広い長手方向把持が、エンドエフェクタを環境の境界内に維持しうるからである。
【0060】
工程206において、対応する把持成功スコアが、決定された把持戦略の各々に対して決定される。ロボットシステムは、様々な把持ツール(例えば、吸着グリッパ、平行グリッパ、その他のエンドエフェクタ、など)を用いて、物体または特徴部を把持するよう構成されていてよい。ロボットシステムは、把持ツールを用いて、物体の様々な位置で物体を把持してよい。例えば、把持ツールは、物体の上部、中間部、または、底部で物体を把持するために用いられてよい。一部の把持ツールが、特定の形状を把持する場合に他の把持ツールよりも成功する場合がある。
【0061】
フィーチャの把持成功スコアは、把持戦略が把持成功につながる確率に基づいていてよい。(複数のツールが利用可能である実施形態において)把持ツールおよび把持位置の異なる組みあわせに対して確率が決定される。把持戦略が物体の把持の成功につながる確率は、1または複数の要因(環境に関するコンテキスト情報、環境に対する履歴把持情報、ロボットアームが物体を把持する角度(他の物体との衝突を避けるため)、ロボットアームが物体を把持する高さ(グリッパの上部における衝突を防ぐため)、把持幅、把持点における表面法線の向き、把持可能な物体の量、など)に基づいてよい。環境に関するコンテキスト情報は、物体の近くにあるまたは隣接する他の物体の存在、物体の近くにあるまたは隣接する他の物体がロボットアームによる物体の把持の能力を妨げる程度、さらなる物体が作業空間エリアに連続的に追加されているか否か、などを含む。
【0062】
工程208において、決定された把持戦略の内の1つが、決定された対応するスコアに基づいて、試行されるよう選択される。物体/特徴部および対応する把持戦略が、対応するスコアに基づいてランク付けされる。複数の物体の中で最高スコアを持つ物体/特徴部が、把持されるよう選択される。複数の潜在的な把持が同じスコアを有する場合、複数の把持の内の1つが選択される。把持された物体が移動された後、同じスコアを有する他の把持の内の1つが選択される。
【0063】
複数の物体から、物体が選択され、把持、移動、そして、荷下ろしエリアにプレースされると、次にスコアが高い把持が試行に向けて選択される。
【0064】
工程210において、選択された把持が実行/試行される。複数のカメラからの視覚データを用いて、ロボットシステムは、把持された物体が移動されたか否かを判定できる。移動されていない場合、ロボットシステムは、把持が失敗したと判定する。いくつかの実施形態において、エンドエフェクタは、特徴部が把持されたか否かを判定するために圧力センサを有する。いくつかの実施形態において、エンドエフェクタは、特徴部が把持されたか否かを判定するために、静電容量を用いて物体の外皮表面の変形を感知する。いくつかの実施形態において、エンドエフェクタは、吸着グリッパであり、ロボットシステムは、特徴部が把持されたか否かを判定するために、圧力センサを用いて吸着圧力の変化を検出する。
【0065】
いくつかの実施形態において、表面に非常に近くまたはつまむ必要のある薄い物体または把持特徴部(例えば、薄い布)に対して、ロボットシステムは、特定の接触力を感知して制御することにより、エンドエフェクタがピック表面と接触することを保証できる。この接触は、ピック表面上の単一点の位置の正確な推定をロボットシステムに提供し、それは、ロボットシステムの較正を微調整するために利用されうる。
【0066】
工程212において、選択された把持に関連付けられた物体が、作業空間エリアから荷下ろしエリアまで移動される。工程214において、選択された把持に関連付けられた物体が、作業空間エリアから荷下ろしエリアまで物体を移動する際に落下したか否かが判定される。物体は、物体に関連付けられている特徴部が把持されたか否かを判定するためにロボットシステムが利用するエンドエフェクタに備えられたセンサの測定値(例えば、圧力、力、静電容量、など)に基づいて、落下したと判定されてよい。センサ測定値は、物体が落下したか否かを判定するために、閾値と比較されてよい。
【0067】
物体が落下した場合、処理200は、工程208へ戻る。物体が落下しなかった場合、処理200は、工程216へ進む。
【0068】
工程216において、物体は、荷下ろしエリアにプレースされる。物体は、荷下ろしエリアに関連付けられている境界とエンドエフェクタが衝突するのを防ぐようにプレースされてよい。いくつかの実施形態において、物体は、荷下ろしエリアに他の物体と共に雑然とプレースされる。ロボットシステムは、荷下ろしエリアに物体をランダムにプレースしてよい。次いで、ロボットシステムは、グリッパ上の力センサを用いて、ロボットシステムに保護的な停止を実行させることなしに、雑然とした山に物体を穏やかにプレースしてよい。ロボットシステムは、小さいエリア内の荷下ろしエリアにランダムな動揺を加えて、物体のより良い分布を作り出してよい。ロボットシステムは、力センサを用いて緊密詰め込み戦略を実現することにより、荷下ろしエリアの箱の中に物体を密に梱包しうる。
【0069】
いくつかの実施形態において、物体は、荷下ろしエリアに他の物体から離間されてプレースされる。ロボットシステムは、荷下ろしエリアにおける配置スペースを複数のサブエリアに分割し、選択された物体をサブエリアの1つにプレースしてよい。サブエリアの各々の間に緩衝エリアが存在してよい。いくつかの実施形態において、緩衝エリアは調整可能である。
【0070】
いくつかの実施形態において、ロボットシステムに関連付けられたビジョンシステムが、どのように物体を降ろすのかを決定するよう構成されている。例えば、一部の物体は剛体ではなく、物体(例えば、布または柔らかいおもちゃ)に関連付けられている範囲が、物体の把持および移動の後に変化する。ビジョンシステムは、物体を潰すこと、そして、物体を損傷し、もしくは、絡まった配置または好ましくない配置に物体を収める可能性のある高さから物体を落とすことを防止するように、物体をプレースする方法を選択するために、範囲がどうであるか、および、材料情報を決定するよう構成されている。
【0071】
ロボットシステムは、把持/ピック動作中の様々な時点の点群情報を比較してよい。ロボットシステムに関連付けられたビジョンシステムは、初期点群を決定してよく、物体が把持および移動される際に、初期点群と現在の点群との間の差が決定されてよい。決定された差により、物体に関連付けられている範囲の変化が閾値以上であることが示唆された場合、ロボットシステムは、物体が非剛性物体であると判定してよい。物体が非剛性物体であるとの判定に応答して、ロボットシステムは、物体が剛性物体である場合とは異なるプレース戦略を実施してよい。選択された物体の剛性に応じて、物体は、より高速で移動されてもよく、ロボットシステムのピック速度/スループットを上げるために、物体をプレースする方法をより積極的な方法にしてよい。決定された差により、物体に関連付けられている範囲の変化が閾値未満であることが示唆された場合、ロボットシステムは、物体が剛性物体であると判定してよい。物体をプレースする方法は、物体が壊れ、転がり、および/または、絡まった配置に収まることを防ぐために、物体の底面が荷下ろしエリアに近づくように制御されるよう、異なっていてよい。
【0072】
プレースされる物体に十分なオープンスペースが存在する場所を決定するために、荷下ろしエリアの点群情報が用いられてよい。また、点群情報は、梱包効率を最大化する目的で、各物体をプレースすべき場所を決定するために用いられてもよい。
【0073】
工程218において、作業空間エリアに配置されているさらなる物体が存在するか否かが判定される。作業空間エリアに配置されているさらなる物体が存在する場合、処理200は、工程208へ戻る。作業空間エリアに配置されているさらなる物体が存在しない場合、処理200は終了する。
【0074】
図3は、いくつかの実施形態に従って、物体を把持および移動するための処理を示すフローチャートである。いくつかの実施形態において、処理300は、ロボットシステム(ロボットシステム101など)によって実施される。いくつかの実施形態において、処理300は、処理200の工程210および212の一部または全部を実行するために実施される。
【0075】
工程302において、物体に関連付けられている特徴部が把持される。ロボットシステムのコントローラが、物体に関連付けられている特徴部をエンドエフェクタに把持させる。エンドエフェクタは、1または複数のセンサ(力センサ、圧力センサ、静電容量センサなど)を備えてよい。物体に関連付けられている特徴部は、決定された最適把持位置で把持されてよい。最適把持位置は、ロボットシステムの1または複数のカメラから受信された視覚データから決定された物体のメッシュ化または分割されたバージョンを用いて決定されてよい。
【0076】
いくつかの実施形態において、視覚情報および/または触覚情報が、物体のテクスチャ(しわあり、など)を検出するために用いられる。ロボットシステムは、視覚情報および/または触覚情報を用いて、質の高いピック点(例えば、把持の成功確率が閾値を超える)を選択してよい(吸着グリッパを用いてシワのある部分で物体を把持することを回避する、など)。
【0077】
工程304において、把持が成功したか否かが判定される。いくつかの実施形態において、ロボットシステムは、コンピュータビジョンを用いて、物体が移動したか否か、すなわち、把持が成功したか否か、を判定する。いくつかの実施形態において、ロボットシステムは、力センサを用いる。力センサによって検出された質量が増加し、その増加量が、静的閾値または物体の体積/外観に基づく一般的な推定値のいずれかと異なる場合、ロボットシステムは、誤った物体が把持されたと判断し、その物体を落下させる。いくつかの実施形態において、ロボットシステムのエンドエフェクタは、物体が把持されたか否かを判定するために、圧力センサを有し、または、静電容量を用いて物体の外皮表面の変形を感知する。センサの出力は、物体に関連付けられている特徴部が把持されたか否かを判定するために、把持閾値と比較される。いくつかの実施形態において、エンドエフェクタ上の電気センサまたは容量センサが、エンドエフェクタの完全に閉じた接触を示すために用いられる。これは、エンドエフェクタが物体を把持しなかったことを示す。いくつかの実施形態において、ロボットシステムは、吸着グリッパエンドエフェクタを用いて物体をピックし、圧力センサを用いて吸着圧力の変化を検出する。ロボットシステムは、圧力センサの出力に基づいて、物体が把持されたか否かを判定してよい。いくつかの実施形態において、ロボットシステムは、センサおよびコンピュータビジョンの組み合わせに基づいて、物体が把持されたか否かを判定する。投票システムが、検出のエラー率を低減するために用いられてよい。検出方法の大多数によって、物体が把持されたと判定された場合、ロボットシステムは、物体に関連付けられている特徴部が把持されたと判定してよい。
【0078】
いくつかの実施形態において、物体の穏やかなプレースを保証するために、視覚情報および指先センサ情報を組み合わせて、物体を最初に把持した後に物体が滑って移動したか否かが判定される。これらの組み合わせられた情報は、ピック/把持からプレースまでの動作の間に物体が滑ったことを判定するために用いられてよい。物体が滑ったと判定された場合、物体の範囲は、荷下ろしエリアにおいて物体を破壊することを回避するために再計算されてよい。
【0079】
ロボットおよびセンサの状態情報の幾何モデルが、ロボットアームおよびエンドエフェクタの3D構成を決定するために用いられてよい。3D物体に関連付けられた点群またはRGBピクセルは、フィルタアウトされてよく、ピックに成功した物体だけを残し、把持に失敗した場合には何も残らない。
【0080】
把持が成功した場合、処理300は工程306へ進む。把持が成功しなかった場合、処理300は工程308へ進む。工程306において、物体は、荷下ろしエリアに移動される。工程308において、閾値回数の把持試行が実行されたか否かが判定される。閾値回数の把持試行が実行された場合、処理300は工程312へ移行する。閾値回数の把持試行が実行されていない場合、処理300は工程310へ移行する。
【0081】
工程310において、同じ把持技術または異なる把持技術が実施される。物体の1つの特徴部が、複数の把持技術に関連付けられていてよい。把持技術の各々は、対応するスコアに関連付けられている。複数の把持技術の内、最高スコアを有する把持技術が最初に選択される。その把持技術が失敗した場合、次に高いスコアを有する把持技術が実施されてよい。いくつかの実施形態では、同じ把持技術が再び試される。
【0082】
工程312において、次の特徴部が選択される。複数の特徴部を有する複数の物体が、作業空間エリアに配置されてよい。複数の特徴部の各々は、対応する把持成功スコアを有する。複数の特徴部が、それらに対応するスコアに基づいて選択される。次の特徴部が、それに対応するスコアに基づいて選択される。いくつかの実施形態において、次の特徴部は、別の物体に関連している。いくつかの実施形態において、次の特徴部は、同じ物体に関連している。次の特徴部は、前に選択された特徴部よりも低いスコアを有するが、複数の特徴部の内の他の残りの特徴部のスコア以上のスコアを有する。
【0083】
図4は、いくつかの実施形態に従って、特徴部を把持するための処理を示すフローチャートである。図の例において、処理400は、ロボットシステム(ロボットシステム101など)によって実施されてよい。いくつかの実施形態において、処理400は、処理200の工程210または処理300の工程302の一部または全部を実行するために実施される。
【0084】
工程402において、把持戦略が、特徴部に関連付けられている幾何形状に対して決定される。いくつかの実施形態において、特徴部は、決定された形状に関連付けられる。いくつかの実施形態において、物体または特徴部が複数のサブセグメントに分割され、複数のサブセグメントの各々に対応する形状が決定される。特徴部に対する把持技術は、特徴部の幾何形状に基づいて異なっていてよい。例えば、球形状を有する特徴部に対する把持技術は、平行六面体形状を有する特徴部の把持技術とは異なっていてよい。
【0085】
ロボットシステムは、特徴部を1または複数の把持戦略に関連付けるデータ構造を格納してよい。例えば、データ構造は、第1特徴部を第1把持戦略および第2把持戦略に関連付けるエントリを含んでよい。把持戦略は、特徴部の様々な部分に適用されてよい。データ構造は、特徴部を1または複数の把持戦略ならびに特徴部の1または複数の部分に関連付けるエントリを含んでよい。例えば、データ構造は、第1特徴部をその特徴部の上部における第1把持戦略に関連付ける第1エントリと、第1特徴部をその特徴部の中間部における第1把持戦略に関連付ける第2エントリと、第1特徴部をその特徴部の底部における第1把持戦略に関連付ける第3エントリと、第1特徴部をその特徴部の上部における第2把持戦略に関連付ける第4エントリと、第1特徴部をその特徴部の中間部における第2把持戦略に関連付ける第5エントリと、第1特徴部を物体の底部における第2把持方法に関連付ける第6エントリと、などを含んでよい。
【0086】
いくつかの実施形態において、特徴部に関連付けられた把持戦略の一部は、エンドエフェクタが特徴部の特定の位置を把持するのを1または複数の他の物体が阻むことから、利用不可能である。ロボットシステムは、作業空間エリアに配置されている1または複数の物体の現在の配置に基づいて、物体に関連付けられている特徴部に対して1または複数の利用可能な把持戦略を決定するよう構成されている(例えば、把持戦略の一部がフィルタアウトされる)。
【0087】
工程404において、対応する把持成功スコアが、把持戦略の各々に対して決定される。特徴部の把持成功スコアは、把持戦略が特徴部の把持の成功につながる確率に基づいてよい。把持ツールおよび把持位置の異なる組みあわせに対して確率が決定される。把持戦略が特徴部の把持の成功につながる確率は、1または複数の要因(環境に関するコンテキスト情報、環境に対する履歴把持情報、ロボットアームが特徴部を把持する角度(他の物体との衝突を避けるため)、ロボットアームが特徴部を把持する高さ(グリッパの上部における衝突を防ぐため)、把持幅、把持点における表面法線の向き、把持可能な特徴部の量、など)に基づいてよい。環境に関するコンテキスト情報は、物体の近くにあるまたは隣接する他の物体の存在、物体の近くにあるまたは隣接する他の物体がロボットアームによる特徴部の把持の能力を妨げる程度、さらなる物体が作業空間に連続的に追加されているか否か、などを含む。
【0088】
工程406において、特徴部に関連付けられている幾何形状に対する最高スコアの把持戦略が選択される。
【0089】
図5は、いくつかの実施形態に従って、把持技術を選択するための処理を示すフローチャートである。図の例において、処理500は、ロボットシステム(ロボットシステム101など)によって実施されてよい。いくつかの実施形態において、処理500は、処理400の工程402の一部を実行するために実施される。
【0090】
1または複数のカメラの視覚データが、物体の境界の内の1または複数を決定することを可能にするデータを提供しうる。例えば、第1カメラが、第1角度で物体の方を向いていてよい。第1カメラは、物体の高さおよび幅に関する情報を提供しうるが、物体の奥行き情報を提供できない。第2カメラが、第2角度で物体の方を向いていてよい。第2カメラは、物体の奥行きおよび高さに関する情報を提供しうるが、物体の幅に関する情報を提供できない。複数のカメラから受信された視覚データは、物体に関連付けられている(推定、近似、または、正確な)境界情報を決定するためにマージされてよい。
【0091】
工程502において、物体に関連付けられている最小境界が決定される。物体の最小境界は、物体が有しうる特定の寸法の最小値に対応する。
【0092】
工程504において、物体に関連付けられている最大境界が決定される。物体の最大境界は、物体が有しうる特定の寸法の最大値に対応する。物体の最大境界は、物体が有しうる特定の寸法の最大値に対応する。
【0093】
工程506において、物体に対する把持戦略が、決定された最小境界および決定された最大境界に基づいて選択される。複数の把持戦略が、決定された最小境界および決定された最大境界に基づいて、物体を把持するために実施されてよい。例えば、物体に関連付けられている特徴部が、その長軸または短軸に沿って把持されてよい。エンドエフェクタは、エンドエフェクタの寸法に起因して、長軸に沿っては特徴部を把持できないが、短軸に沿って特徴部を把持できる場合がある。このシナリオでは、短軸に沿って特徴部を把持する把持戦略が選択されることになる。
【0094】
履歴データが、把持戦略を選択するために用いられてよい。例えば、同等の最小境界および最大境界を有する以前の物体の実際の寸法と、以前の物体に対応する把持戦略が、データ構造内に格納されてよい。以前の物体の実際の寸法は、ロボットシステムが物体をエリアに移動させた後に遮蔽されていない状態で決定されてよい。以前の物体の内の1つに対する把持戦略が、同等の最小境界および最大境界を有する物体に対して成功した場合、成功した把持戦略は、同等の最小境界および最大境界を有する現在の物体に対して選択されてよい。
【0095】
図6は、いくつかの実施形態に従って、物体を把持および移動するための処理を示すフローチャートである。図の例において、処理600は、ロボットシステム(ロボットシステム101など)によって実施されてよい。
【0096】
作業空間エリアに配置された物体を補充するため、または、荷下ろしエリアから物体を取り除くために、人的介入が必要になりうる。かかる相互作用は、ロボットシステムの範囲内に人間を入らせる。ロボットシステムの制御は、人間が作業空間エリアに入ったことを検出し、条件を人間にとって安全にするように反応してよい。
【0097】
工程602において、複数の物体を作業空間エリアからピックして荷下ろしエリアへ移動させる処理が開始される。
【0098】
工程604において、作業空間エリア内に人間がいるか否かが判定される。ロボットシステムの複数のカメラの内の1または複数が、人間の身体の一部を検出してよい。いくつかの実施形態において、人間は、高解像度RGB画像を用いて検出される。いくつかの実施形態において、人間は、人間の赤外線シグネチャに基づいてIRセンサを用いて感知される。1または複数の検出ソースからのデータは、作業空間エリアに人間がいる確率を決定するために用いられてよい。確率が検出閾値を超えた場合、人間が作業空間エリアにいると判定される。
【0099】
作業空間エリアに人間がいると判定された場合、処理600は、工程606へ進む。作業空間エリアに人間がいないと判定された場合、処理600は、工程610へ進む。
【0100】
工程606において、物体に関連付けられている区域に人間がいるか否かが判定される。作業空間エリアは、複数の区域で構成されてよい。ロボットシステムは、第1区域から物体をピックしていてよい。第1区域に人間がいるか否かが判定される。
【0101】
物体に関連付けられている区域に人間がいないと判定された場合、処理600は、工程610へ移行する。物体に関連付けられている区域に人間がいると判定された場合、処理600は、工程608へ移行する。
【0102】
工程608において、別の区域内の物体が選択される。ロボットシステムは、人間を傷つけないように、物体に関連付けられている区域内でロボットアームを減速してよい。ロボットシステムは、人間を傷つけないように、物体に関連付けられている区域内でロボットアームを停止してもよい。ロボットシステムは、ロボットアームを減速または停止した後に、ロボットアームの軌道が人間を回避するように、別の区域に向かうロボットアームの軌道を変更してよい。ロボットシステムは、人間に警告するために、人間が検出された後に警報(聴覚警報および/または視覚警報)を発してよい。
【0103】
工程610において、物体は、荷下ろしエリアに移動される。
【0104】
図7は、いくつかの実施形態に従って、物体を移動させるための処理を示すフローチャートである。図の例において、処理700は、ロボットシステム(ロボットシステム101など)によって実施されてよい。いくつかの実施形態において、処理700は、処理300の工程304の一部を実行するために実施される。
【0105】
人間オペレータまたはその他の物体が、ロボットシステムまたはロボットスタンドのカメラにぶつかる場合があり、それにより、ロボットシステムの誤較正が起こりうる。1または複数のロボットシステムが通常動作を実行している時に、固定カメラ、作業空間、および、ロボットシステムを連続的に相互位置決めするために、ロボットシステム上の複数の基準マーカが、さらなる情報(例えば、深度または点群データ)と共に、利用されてよい。かかる連続的な相互位置決めは、固定/移動マーカおよび/または固定/移動カメラの任意の組みあわせを用いて実行されてよい。いくつかの実施形態において、連続的な相互位置決めは、基準マーカを利用せず、正常なシーンからの情報を用いて実行される。連続的な相互位置決めは、カメラの誤配置、センサのドリフト、作業空間の再配置などの不具合の検出および補正を可能にする。この較正方法は、正常動作中のカメラのホットスワップ、追加、または、除去を可能にする。
【0106】
工程702において、カメラの向きが検出される。ArUcoマーカが、ロボットシステムの複数のカメラを整列させるために用いられてよい。ロボットシステムが物体に関連付けられている特徴部を把持する前に、ロボットシステムのアライメントがチェックされてよい。カメラの向きが検出され、カメラの初期アライメントと比較される。
【0107】
工程704において、いずれかの誤較正条件が満たされたか否かが判定される。いくつかの実施形態において、ロボットベース位置が較正されたロボットベース位置から移動したことを、複数のカメラが検出した場合に、誤較正条件が発生する。いくつかの実施形態において、カメラの内の1以上のカメラおよび/またはカメラスタンドの内の1以上のカメラスタンドが移動したことを、複数のカメラの内のハンドカメラが検出した場合に、誤較正条件が発生する。いくつかの実施形態において、ロボットアームが、或る物体に関連付けられている特徴部を閾値回数の試行の後に把持できなかった場合に、誤較正条件が発生する。
【0108】
誤較正条件のいずれかが満たされた場合、処理700は、工程708へ移行する。誤較正条件のいずれも満たされていない場合、処理700は、工程706へ移行する。
【0109】
工程706において、物体は、荷下ろしエリアに移動される。
【0110】
工程708において、ロボットシステムは再較正される。いくつかの実施形態において、ロボットシステムは、複数のカメラの内のハンドカメラを用いて作業空間のArUcoマーカを再位置特定することで、再較正される。いくつかの実施形態において、ロボットシステムは、基準マーカ(ArUcoなど)を用いたカメラから作業空間への変換を用いて再推定することにより、再較正される。いくつかの実施形態において、ロボットシステムは、ロボット上のマーカに合わせて再較正される。いくつかの実施形態において、ロボットシステムは、以前の較正パラメータをシード変換として用いて、反復最近接点(ICP)アルゴリズムで、再較正される。いくつかの実施形態において、ロボットシステムは、ハンドアイを用いて再較正される。
【0111】
図8は、いくつかの実施形態に従って、ロボットシステムの動作を更新するための処理を示すフローチャートである。図の例において、処理800は、ロボットシステム(ロボットシステム101など)によって実施されてよい。
【0112】
工程802において、1または複数の物体が、作業空間エリア内で検出される。工程804において、1または複数の検出された物体の内の1つが、作業空間エリアにおける新たな物体であるか否かが判定される。1または複数の検出された物体の内の1つが、作業空間エリアにおける新たな物体ではない場合、処理800は、工程806に移行する。1または複数の検出された物体の内の1つが、作業空間エリアにおける新たな物体である場合、処理800は、工程808に移行する。工程806において、ロボットシステムの動作が、現在の構成に従って維持される。工程808において、ロボットシステムの動作が更新される。いくつかの実施形態において、作業空間エリアのシーンが、新たな物体を含むように再計算される。いくつかの実施形態において、シーンは、新たな物体が人間である場合に再計算される。いくつかの実施形態において、作業空間エリアのシーンは、1または複数の既存の物体および新たな物体によって何らかの変化があった場合に、再計算される。
【0113】
図9は、いくつかの実施形態に従って、吸着ベースのエンドエフェクタを示すブロック図である。様々な実施形態において、図9のロボットアームエンドエフェクタ900は、図1のエンドエフェクタ108を実施するために用いられてよい。
【0114】
図の例において、エンドエフェクタ900は、回転可能なカップリングを介してロボットアーム904に取り付けられている本体またはハウジング902を備える。いくつかの実施形態において、ハウジング902とロボットアーム904との間の接続は、制御コンピュータ(図1のコントローラ106など)によって制御されるモータ駆動ジョイントを備えてよい。エンドエフェクタ900は、さらに、吸着制御モジュール908へ真空源を供給するために、ロボットアーム904を通してハウジング902の中へ至る吸引ラインまたはその他の空気ライン906を備える。様々な実施形態において、制御モジュール908は、例えば、無線および/または有線通信によってて、通信インターフェース914を通してエンドエフェクタ900の外部の制御コンピュータ(例えば、図1のコントローラ106)に接続されている。制御モジュール908は、例えば、エンドエフェクタ900を用いてピックアップ、移動、および、プレースされるアイテムへ吸着によってエンドエフェクタをアイテムに付着させるために、吸着カップ910、912に吸着力を提供するよう動作可能な電子要素および/または電気機械要素を備える。
【0115】
図の例において、ハウジング902の側面に取り付けられたカメラ916が、エンドエフェクタ900の下方の視野の画像データを提供する。複数の力センサ918、920、922、924、926、およ、928が、それぞれ、吸着カップ910および912に印加されている力を測定する。様々な実施形態において、力の測定値は、通信インターフェース914を介して、外部および/またはリモートの制御コンピュータへ通信される。センサの読み取り値は、様々な実施形態において、ロボットアーム904およびエンドエフェクタ900を用いて、アイテムを他のアイテムおよび/または側壁またはその他の構造に隣接する場所にぴったり収めることを可能にするため、ならびに/もしくは、不安定性(例えば、まだ吸着下であるが、アイテムがプレースされて安定すると期待された場所にある時に、アイテムが押し下げられる不十分な押し返し)を検出するために、用いられる。様々な実施形態において、水平に取り付けられた力センサのペア(例えば、918および922、924および928)は、すべての水平方向において力を決定することを可能にするために、x-y平面において直角に配置されている。
【0116】
図10は、いくつかの実施形態に従って、グリッパ式のエンドエフェクタを示すブロック図である。様々な実施形態において、図10のロボットアームエンドエフェクタ1000は、図1のエンドエフェクタ108を実施するために用いられてよい。
【0117】
図の例において、エンドエフェクタ1000は、回転可能なカップリングを介してロボットアーム1004に取り付けられている本体またはハウジング1002を備える。いくつかの実施形態において、ハウジング1002とロボットアーム1004との間の接続は、制御コンピュータ(図1のコントローラ106など)によって制御されるモータ駆動ジョイントを備えてよい。エンドエフェクタ1000は、さらに、関節のある指1010および1012を備えたグリッパと、グリッパ制御モジュール1008に電力を供給するためにロボットアーム1004を通ってハウジング1002に至る電力ライン1006と、を備える。様々な実施形態において、制御モジュール1008は、例えば、無線および/または有線通信によって、通信インターフェース1014を通してエンドエフェクタ1000の外部の制御コンピュータ(例えば、図1のコントローラ106)に接続されている。制御モジュール1008は、例えば、エンドエフェクタ1000を用いて、ピックアップ、移動、および、プレースされるアイテムを把持するために、グリッパ指1010、1012を操作するよう動作可能な電子要素および/または電気機械要素を備える。
【0118】
図の例において、ハウジング1002の側面に取り付けられたカメラ1016が、エンドエフェクタ1000の下方の視野の画像データを提供する。複数の力センサ1018、1020、1022、1024、1026、および、1028が、それぞれ、指1010および1012のマウント点に印加されている力を測定する。様々な実施形態において、力の測定値は、通信インターフェース1014を介して、外部および/またはリモートの制御コンピュータへ通信される。センサの読み取り値は、様々な実施形態において、ロボットアーム1004およびエンドエフェクタ1000を用いて、アイテムを他のアイテムおよび/または側壁またはその他の構造に隣接する場所にぴったり収めることを可能にするため、ならびに/もしくは、不安定性(例えば、まだ吸着下であるが、アイテムがプレースされて安定すると期待された場所にある時に、アイテムが押し下げられる不十分な押し返し)を検出するために、用いられる。
【0119】
吸着タイプのエフェクタが図9に示され、グリッパタイプのエフェクタは図10に示されているが、様々な実施形態において、1または複数のその他のおよび/または異なるタイプのエンドエフェクタが、本明細書で開示されているように未知の物体をピックアンドプレースするためにロボットシステムで用いられてもよい。
【0120】
いくつかの実施形態において、他のアイテム、荷役台、および/または、環境との衝突を検出するため、ならびに、軌道の「コンプライアントな」調整によって自動動作を継続するために、センサが利用される。例えば、壁またはその他の構造にぶつかった場合、いくつかの実施形態において、ロボットアームは、力を弱め、障害物から離れるまで障害物に沿って辿るように軌道を調整する。
【0121】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供されている詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定を意図するものではない。
[適用例1]方法であって、
複数のカメラから受信された視覚データに基づいて、作業空間エリアに存在する1または複数の物体について、1セットの1または複数の潜在的に把持可能な特徴部を決定し、
少なくとも前記1または複数の潜在的に把持可能な特徴部のサブセットのそれぞれについて、前記特徴部をロボットアームおよびエンドエフェクタで把持するための1または複数の対応する把持戦略を決定し、
少なくとも前記把持戦略のサブセットのそれぞれに関して、対応する特徴部の把持成功の確率に関連付けられているスコアを決定し、
選択された把持戦略を用いて前記1または複数の潜在的に把持可能な特徴部の内の第1特徴部を把持するよう選択し、前記選択された把持戦略は、前記第1特徴部に関する前記選択された把持戦略に関連付けられた対応するスコアに少なくとも部分的に基づいて選択され、
前記選択された把持戦略を用いて前記第1特徴部の把持を試みるよう、前記ロボットアームおよびエンドエフェクタを制御すること、
を備える、方法。
[適用例2]適用例1に記載の方法であって、前記複数のカメラから受信された前記視覚データは、点群データを含む、方法。
[適用例3]適用例1に記載の方法であって、さらに、前記複数のカメラから受信された前記視覚データに基づいて、前記1または複数の物体に関連付けられている境界情報を決定することを備える、方法。
[適用例4]適用例3に記載の方法であって、前記選択された把持戦略は、前記1または複数の物体に関連付けられている前記決定された境界情報に部分的に基づいて選択される、方法。
[適用例5]適用例1に記載の方法であって、さらに、前記1または複数の物体の内の1つを複数の形状に分割することを備える、方法。
[適用例6]適用例1に記載の方法であって、前記第1特徴部は、前記対応する特徴部の前記把持成功の前記確率に関連付けられた最高スコアを有する、方法。
[適用例7]適用例1に記載の方法であって、前記選択された把持戦略を用いて前記第1特徴部を把持することは、前記第1特徴部の把持が成功したか否かを判定することを含む、方法。
[適用例8]適用例7に記載の方法であって、前記第1特徴部の前記把持が成功したと判定された場合に、前記第1特徴部に関連付けられている物体が荷下ろしエリアに移動される、方法。
[適用例9]適用例7に記載の方法であって、前記第1特徴部の前記把持が成功しなかったと判定された場合に、前記第1特徴部を把持する閾値回数の試行がなされたか否かが判定される、方法。
[適用例10]適用例9に記載の方法であって、前記第1特徴部を把持する前記閾値回数の試行がなされたと判定された場合に、前記1または複数の潜在的に把持可能な特徴部の内の第2特徴部を把持するよう選択する、方法。
[適用例11]適用例9に記載の方法であって、前記第1特徴部を把持する前記閾値回数の試行がなされていなかった場合に、前記第1特徴部を把持するために、同じまたは異なる把持技術を実施する、方法。
[適用例12]適用例1に記載の方法であって、さらに、
前記作業空間エリア内で人間を検出し、
前記人間が、第1物体に関連付けられている前記第1特徴部と同じ区域にいるか否かに基づいて、第2物体に関連付けられている第2特徴部を選択すること、
を備える、方法。
[適用例13]適用例1に記載の方法であって、さらに、
前記作業空間エリア内で人間を検出し、
前記人間が、物体に関連付けられている前記第1特徴部と同じ区域で検出された場合に、前記ロボットアームの動作を停止すること、
を備える、方法。
[適用例14]適用例1に記載の方法であって、さらに、前記第1特徴部に関連付けられている物体を荷下ろしエリアに移動させることを備える、方法。
[適用例15]適用例14に記載の方法であって、さらに、前記物体が落下したか否かを判定することを備える、方法。
[適用例16]適用例1に記載の方法であって、さらに、前記第1特徴部に関連付けられている物体を荷下ろしエリアにプレースすることを備える、方法。
[適用例17]適用例1に記載の方法であって、さらに、誤較正条件が生じたか否かに基づいて、前記ロボットアームおよび前記エンドエフェクタに関連付けられているロボットシステムを再較正することを備える、方法。
[適用例18]適用例1に記載の方法であって、さらに、新たな物体が前記作業空間で検出されたか否かに基づいて、前記ロボットアームおよび前記エンドエフェクタに関連付けられているロボットシステムの動作を更新することを備える、方法。
[適用例19]システムであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサと、
を備え、
前記プロセッサは、
複数のカメラから受信された視覚データに基づいて、作業空間エリアに存在する1または複数の物体について、1セットの1または複数の潜在的に把持可能な特徴部を決定し、
少なくとも前記1または複数の潜在的に把持可能な特徴部のサブセットのそれぞれについて、前記特徴部をロボットアームおよびエンドエフェクタで把持するための1または複数の対応する把持戦略を決定し、
少なくとも前記把持戦略のサブセットのそれぞれに関して、対応する特徴部の把持成功の確率に関連付けられたスコアを決定し、
選択された把持戦略を用いて前記1または複数の潜在的に把持可能な特徴部の内の第1特徴部を把持するよう選択し、
前記選択された把持戦略は、前記第1特徴部に関する前記選択された把持戦略に関連付けられた対応するスコアに少なくとも部分的に基づいて選択され、
前記選択された把持戦略を用いて前記第1特徴部の把持を試みるよう、前記ロボットアームおよびエンドエフェクタを制御するよう構成されている、システム。
[適用例20]コンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能媒体内に具現化され、
複数のカメラから受信された視覚データに基づいて、作業空間エリアに存在する1または複数の物体について、1セットの1または複数の潜在的に把持可能な特徴部を決定するための命令と、
少なくとも前記1または複数の潜在的に把持可能な特徴部のサブセットのそれぞれについて、前記特徴部をロボットアームおよびエンドエフェクタで把持するための1または複数の対応する把持戦略を決定するための命令と、
少なくとも前記把持戦略のサブセットのそれぞれに関して、対応する特徴部の把持成功の確率に関連付けられたスコアを決定するための命令と、
選択された把持戦略を用いて前記1または複数の潜在的に把持可能な特徴部の内の第1特徴部を把持するよう選択するための命令と、前記選択された把持戦略は、前記第1特徴部に関する前記選択された把持戦略に関連付けられた対応するスコアに少なくとも部分的に基づいて選択され、
前記選択された把持戦略を用いて前記第1特徴部の把持を試みるよう、前記ロボットアームおよび前記エンドエフェクタを制御するための命令と、
を備える、コンピュータプログラム製品。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10