(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-10
(54)【発明の名称】速度制御ベースのロボットシステム
(51)【国際特許分類】
B25J 13/00 20060101AFI20231002BHJP
B25J 13/08 20060101ALI20231002BHJP
【FI】
B25J13/00 Z
B25J13/08 A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023518129
(86)(22)【出願日】2021-09-22
(85)【翻訳文提出日】2023-05-16
(86)【国際出願番号】 US2021051595
(87)【国際公開番号】W WO2022066800
(87)【国際公開日】2022-03-31
(32)【優先日】2020-09-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521105662
【氏名又は名称】デクステリティ・インコーポレーテッド
【氏名又は名称原語表記】DEXTERITY,INC.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】サン・チョウエン
(72)【発明者】
【氏名】メノン・サミア
(72)【発明者】
【氏名】チャベス・ケヴィン・ホセ
(72)【発明者】
【氏名】ベイカー・トビー・レナード
(72)【発明者】
【氏名】トンドロー・ザサード・デヴィッド・レオ
(72)【発明者】
【氏名】グエン・アンドリュー
(72)【発明者】
【氏名】サン・カスバート
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707AS02
3C707BS10
3C707DS01
3C707FS01
3C707FT02
3C707FT11
3C707KS03
3C707KS04
3C707KS09
3C707KT02
3C707KT06
3C707KW03
3C707KX19
3C707LT12
3C707LV07
3C707MT02
3C707MT04
(57)【要約】
【解決手段】速度制御ベースのロボットシステムが開示されている。様々な実施形態において、ロボットが位置する物理空間内に配備されている1または複数のセンサからセンサデータが受信される。プロセッサを用いて、センサデータに少なくとも部分的に基づいて、ロボットを構成する要素を移動させる際に沿うべき少なくとも部分的に速度に基づく軌道が決定される。速度に基づく軌道を実行する旨のコマンドが、ロボットへ送信される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ロボットシステムであって、
通信インターフェースと、
前記通信インターフェースに接続されているプロセッサと、
を備え、
前記プロセッサは、
ロボットが位置する物理空間内に配備されている1または複数のセンサから前記通信インターフェースを介してセンサデータを受信し、
前記センサデータに少なくとも部分的に基づいて、前記ロボットを構成する要素を移動させる際に沿うべき少なくとも部分的に速度に基づく軌道を決定し、
前記通信インターフェースを介して、前記速度に基づく軌道を実行する旨のコマンドを前記ロボットへ送信するよう構成されている、システム。
【請求項2】
請求項1に記載のシステムであって、前記センサデータは、画像センサデータを含む、システム。
【請求項3】
請求項1に記載のシステムであって、前記通信インターフェースは、無線インターフェースを含む、システム。
【請求項4】
請求項1に記載のシステムであって、前記プロセッサは、さらに、前記位置での前記ロボットの動作をシミュレートするよう構成されている、システム。
【請求項5】
請求項4に記載のシステムであって、前記プロセッサは、少なくとも部分的には、前記ロボットを構成する前記要素の観測速度を、前記ロボットのシミュレートされた前記動作に従ってシミュレートされた前記要素の対応する速度と比較することによって、前記少なくとも部分的に速度に基づく軌道を決定するよう構成されている、システム。
【請求項6】
請求項1に記載のシステムであって、前記ロボットを構成する前記要素は、エンドエフェクタを含む、システム。
【請求項7】
請求項1に記載のシステムであって、前記プロセッサは、さらに、前記ロボットを構成する前記要素に現在把持されている物体の属性に少なくとも部分的に基づいて、速度制限および加速度制限の内の1または複数を含む制限セットを決定し、前記少なくとも部分的に速度に基づく軌道を決定する際に前記制限セットを課すよう構成されている、システム。
【請求項8】
請求項1に記載のシステムであって、前記コマンドは、前記少なくとも部分的に速度に基づく軌道を達成するために、前記コマンドに関連付けられている関節に印加される計算済みのトルクに関連付けられているトルクベースのコマンドを含む、システム。
【請求項9】
請求項1に記載のシステムであって、前記プロセッサは、さらに、前記位置におけるアイテムまたは構造に関連する帰属反発力に少なくとも部分的に基づいて、前記少なくとも部分的に速度に基づく軌道を決定するよう構成されている、システム。
【請求項10】
請求項9に記載のシステムであって、前記アイテムまたは構造は、前記ロボットを構成するシャーシまたはその他の構造、前記ロボットおよび前記シャーシの内の1または複数が載るように構成されているレールまたはその他の構造、前記位置に存在する第2ロボット、ならびに、前記位置に存在する固定構造、の内の1または複数を含む、システム。
【請求項11】
請求項1に記載のシステムであって、前記プロセッサは、速度に基づく第1軌道に関連する第1タスクから第2タスクへ移行する旨の指示を受信し、前記第2タスクを実行するために速度に基づく第2軌道を決定して実行するよう構成されている、システム。
【請求項12】
請求項11に記載のシステムであって、前記プロセッサは、前記速度に基づく第2軌道内に、前記速度に基づく第1軌道を含む第1方向への前記要素の移動から前記第2タスクに関連する第2方向に向かう軌道への速度に基づく移行を含めるよう構成されている、システム。
【請求項13】
請求項1に記載のシステムであって、前記ロボットは、第1ロボットを含み、前記プロセッサは、前記第1ロボットおよび第2ロボットを用いて物体を把持し、速度制御を用いて、前記物体を移動先位置へ移動させるために前記第1ロボットおよび前記第2ロボットを同期的に移動させるよう構成されている、システム。
【請求項14】
請求項1に記載のシステムであって、前記プロセッサは、少なくとも部分的に速度に基づく軌道の調整を決定して実行するために、前記要素の予測位置と、前記センサデータに少なくとも部分的に基づいて決定された観測位置との間の位置の誤差または差を決定して利用するよう構成されている、システム。
【請求項15】
ロボットシステムを制御するための方法であって、
ロボットが位置する物理空間内に配備されている1または複数のセンサからセンサデータを受信し、
プロセッサを用いて、前記センサデータに少なくとも部分的に基づいて、前記ロボットを構成する要素を移動させる際に沿うべき少なくとも部分的に速度に基づく軌道を決定し、
通信インターフェースを介して、前記速度に基づく軌道を実行する旨のコマンドを前記ロボットへ送信すること、
を備える、方法。
【請求項16】
請求項15に記載の方法であって、さらに、プロセッサを用いて、前記位置での前記ロボットの動作をシミュレートすることを備える、方法。
【請求項17】
請求項16に記載の方法であって、前記少なくとも部分的に速度に基づく軌道は、少なくとも部分的には、前記ロボットを構成する前記要素の観測速度を、前記ロボットのシミュレートされた前記動作に従ってシミュレートされた前記要素の対応する速度と比較することによって決定される、方法。
【請求項18】
請求項17に記載の方法であって、さらに、前記ロボットを構成する前記要素に現在把持されている物体の属性に少なくとも部分的に基づいて、速度制限および加速度制限の内の1または複数を含む制限セットを決定し、プロセッサを用いて、前記少なくとも部分的に速度に基づく軌道を決定する際に前記制限セットを課すこと、を備える、方法。
【請求項19】
コンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能媒体内に具現化され、
ロボットが位置する物理空間内に配備されている1または複数のセンサからセンサデータを受信するためのコンピュータ命令と、
前記センサデータに少なくとも部分的に基づいて、前記ロボットを構成する要素を移動させる際に沿うべき少なくとも部分的に速度に基づく軌道を決定するためのコンピュータ命令と、
通信インターフェースを介して、前記速度に基づく軌道を実行する旨のコマンドを前記ロボットへ送信するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【請求項20】
請求項19に記載のコンピュータプログラム製品であって、さらに、前記位置での前記ロボットの動作をシミュレートするためのコンピュータ命令を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【他の出願への相互参照】
【0001】
本願は、2020年9月23日出願の名称を「VELOCITY CONTROL-BASED ROBOTIC SYSTEM」とする米国仮特許出願第63/082,346号に基づく優先権を主張し、その仮特許出願は、すべての目的のために参照により本明細書に組み込まれる。
【背景技術】
【0002】
典型的には、ロボットアームおよびその他のロボット要素は、位置制御を用いて制御される。ロボットアームまたはその他のロボット要素(「ロボット」とも呼ばれる)のエンドエフェクタが現在/開始位置から移動されることが望まれる(例えば、三次元空間内の)標的または目標位置を制御コンピュータが決定する。ロボットを構成するコンピュータおよび/またはソフトウェアは、エンドエフェクタの位置を変えさせるために、ロボットを構成する1または複数の関節(例えば、アームセグメントを接続しおよび/またはベースセグメントをベースへ取り付けている関節)をどのように回転させるのかを決定する。
【0003】
典型的には、ロボットは、駆動されている終点ポジションから関節がさらに離間するように、関節を駆動するモータにより高いトルクを印加する。結果として、ロボットは、軌道が長いほど、離間している点の間でより迅速に移動し、軌道の始点および終点でより迅速に加速する傾向がある。典型的なアプローチにおいて、ロボット制御コンピュータまたはその他の制御システムは、速度および/または加速度を直接制御できない。移動ならびにより高い速度および/またはより高い加速度は、一部の文脈では、例えば、目標位置に配置されるために、ロボットを用いて把持されたアイテムへの損傷につながりうる。
【0004】
位置制御ロボットにおいて速度、加速度、および、その他のより高次の位置の導関数をよりきめ細かく(間接的でも)制御するための既存の技術は、軌道を一連のより短い軌道に分割することを含む。しかしながら、かかるアプローチは、より連続的な、単一の/長い軌道のアプローチと比べて、複雑さを高め、スループットを低下させる。
【0005】
さらに、テーブル上にある物体を押し下げるなど、動いていない物体へ所望の量の(または、所望の最大値または限界値を超えない量の)力を印加するために、位置制御ロボットを利用することは困難である。1つのアプローチは、物体を移動させることができないことがわかっている位置にある、力が印加されることが望まれる軸に沿った目標位置(テーブルまたはその他の表面の中または下など)を割り当て、その結果として、ロボットが、現在位置と想定目的地との間の距離に比例して力を印加するアプローチでありうる。しかしながら、かかる技術を用いて力を制御することは困難であり、ロボットのエンドエフェクタおよび/または物体の現在位置に関する情報が不正確であるのために、誤差が生じうる。
【図面の簡単な説明】
【0006】
以下の詳細な説明および添付の図面において、本発明の様々な実施形態を開示する。
【0007】
【
図1A】速度制御を用いるロボットキッティングシステムの一実施形態を示す図。
【0008】
【
図1B】速度ベースの制御を用いて、多様なアイテムをパレタイズおよび/またはデパレタイズするためのロボットシステムの一実施形態を示す図。
【0009】
【
図2】速度制御を用いるロボットシンギュレーションシステムの一実施形態を示す図。
【0010】
【
図3】速度制御ベースのロボットシステムの一実施形態を示すブロック図。
【0011】
【
図4】ロボットシステムを制御するための処理の一実施形態を示すフローチャート。
【0012】
【
図5A】速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図。
【0013】
【
図5B】速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図。
【0014】
【
図5C】速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図。
【0015】
【
図6】速度制御ベースのロボットシステムの一実施形態を示すブロック図。
【0016】
【
図7A】ロボットシステムを制御するための制限を決定して課す処理の一実施形態を示すフローチャート。
【0017】
【
図7B】帰属力場を用いてロボットシステムを制御する処理の一実施形態を示すフローチャート。
【0018】
【
図8A】速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図。
【0019】
【
図8B】速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図。
【0020】
【
図8C】ロボットシステムの制御において、位置制御を用いて標的および/または移動先を変更する一例を比較の目的で示す図。
【0021】
【
図8D】本明細書で開示されている速度制御を用いて、ロボットシステムにおいて標的および/または移動先を変更する一例を示す図。
【0022】
【
図9A】速度制御を用いて新たな標的および/または移動先へ方向転換する処理の一実施形態を示すフローチャート。
【0023】
【
図9B】2以上のロボットを用いてタスクを協調的に実行するために速度制御を利用する処理の一実施形態を示すフローチャート。
【0024】
【
図10】速度制御ベースのロボットシステムの一実施形態を示すブロック図。
【発明を実施するための形態】
【0025】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【0026】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0027】
速度制御を用いてロボットアームまたはその他のロボットを操作するロボットシステムが開示されている。様々な実施形態において、本明細書で開示されているロボット制御システムは、ロボットが動く速度を制御するためにコマンドを決定および発行することによってロボットを制御する。いくつかの実施形態において、本明細書で開示されているシステムは、ロボットアームを構成する6つの(もしくは、それより多いまたはそれより少ない)関節が動作される速度を制御することなどによって、制御システムが、ロボットの動く速度および/または加速度をより直接的に制御することを可能にするロボットアームまたはその他のロボットを備える。いくつかの場合に、ロボットは、エンドエフェクタ速度またはその他の形態の速度制御によって制御されてよい。関節、エンドエフェクタ、または、ロボットのその他のメカニズムのどれを制御するのかに関わらず、単純な変換層のみが必要とされるので、結果は同じであり、本書における特許請求の範囲は同じように適用される。ロボットは、速度制御コマンドに応答して、ロボット制御システムから受信したそれぞれの速度制御コマンドに関連付けられているレベルでそれぞれの関節にトルクを印加する。例えば、ロボットは、(例えば、特定の関節に対して)命令された速度と現在の速度との間の差/誤差を算出してよく、その差/誤差を低減するように算出されたトルクを印加してよい。いくつかの実施形態において、制御システムは、ロボットのそれぞれの関節に印加されるトルク(または、電流(例えば、アンペア))をより直接的に制御するコマンドを生成および発行する。本明細書で用いられている「トルク」という用語は、「電流(例えば、アンペア)」と交換可能であると見なされてよく、「トルク」への言及は、「トルクまたは電流(例えば、アンペア)」を意味する。
【0028】
様々な実施形態において、本明細書で開示されているロボット制御システムは、ロボットのモデル(例えば、ロボットの要素(例えば、アームセグメント)、幾何形状、機能、などを表すモデル)を用いて、ロボットの動作を制御するための速度制御コマンドまたはその他の制御コマンドを決定する。例えば、モデルは、様々な実施形態において、各関節について、エンドエフェクタの所望の速度、加速度などを達成する目的でロボットに提供される速度コマンド、トルクコマンド、または、その他のコマンド、もしくは、コマンドセットを決定するために用いられる。
【0029】
様々な実施形態において、ロボット制御システムは、ロボットが動作している(または、動作することになる)作業空間/環境におけるロボットの動作をシミュレートする。システムは、シミュレーションと、作業空間からの(実際のおよび/またはシミュレートされた)センサ読み取り値(画像またはその他の情報など)とを用いて、エンドエフェクタおよび/またはアイテムの現在位置、将来位置、現在速度、予測速度など、アイテムの流れから把持されるアイテム、もしくは、ロボットに把持されたアイテムが配置される先またはアイテムが把持される元の動いているコンベヤ上の位置などの、動的作業空間における移動元位置および/または移動先位置、の内の1または複数を決定する。速度制御は、ロボットのエンドエフェクタを移動元位置/移動先位置まで移動させるために用いられ、移動元位置/移動先位置は、いくつかの実施形態において、動いていてもよい。速度制御は、動いているアイテムまたは位置を捕捉するためのベクトルを決定するために用いられ、動いているアイテムを把持しおよび/または把持したアイテムを動いている移動先位置に配置するなどの目的で、エンドエフェクタをアイテム/位置へ向かって駆動しおよび/またはアイテム/位置の速度を合わせるために連続的に更新される。いくつかの実施形態において、シミュレーションに従ったロボット(例えば、エンドエフェクタ)の所望または予測された速度と、センサデータに基づいて決定された測定速度または観測速度との間の誤差(差)は、シミュレーションに一致するようにロボットの速度を調節するコマンドを迅速に決定してリアルタイムに発行するために用いられる。
【0030】
図1Aは、速度制御を用いるロボットキッティングシステムの一実施形態を示す図である。図の例において、キッティングシステム100は、箱用コンベヤ108と並んで一列に配置された1セットのキッティングマシン102、104、および、106を備えている。箱組み立てマシン110が、箱112、114を組み立てて、それらの箱をコンベヤ108上に置く。様々な実施形態において、箱組み立てマシン110は、例えば、箱のサイズ選択と、箱(例えば、箱112、114)の組み立ておよびコンベヤ108上への配置のタイミングとを連携/同期させるために、キッティングシステム100の他の要素によって、および/または、他の要素と通信して、制御されてよい。
【0031】
図1Aに示す例では、ロボットアーム116が、キャリッジ118上に取り付けられており、キャリッジ118は、キッティングマシン102、104、および、106の向かい側で、コンベヤ108と並んで実質的に平行に配置されたレールまたはその他の直線ガイド120に沿って走るよう構成されている。様々な実施形態において、キッティングマシン102、104、および、106からアイテムを自動取得し、コンベヤ108に沿って箱が移動される間に箱112、114の中にアイテムを配置することを容易にするように、キャリッジ118および取り付けられたロボットアーム116をレールまたはガイド120に沿って移動させるために、モータ、ベルト、鎖、または、その他の原動力源が、コントローラ(
図1では図示せず)を介して適用される。
【0032】
図の例において、キッティングマシン102、104、および、106と、コンベヤ108と、箱組み立てマシン110と、ロボットアーム116および/またはキャリッジ118と、の内の1または複数の動作は、制御コンピュータ122の制御下で協調的に操作される。図の例において、制御コンピュータ122は、コントローラ(
図1では図示せず)と無線通信し、各コントローラは、システム100を構成する対応する要素(例えば、キッティングマシン102、104、および、106、コンベヤ108、箱組み立てマシン110、ならびに、ロボットアーム116および/またはキャリッジ118)の動作を制御するよう構成されている。無線接続が
図1に示されているが、様々な実施形態において、有線接続、もしくは、有線接続および無線接続の組みあわせが用いられてもよい。
【0033】
様々な実施形態において、制御コンピュータ122は、取得されて一緒に梱包されるアイテムの送り状、注文、部品リスト、ピックアップリスト、または、その他のリストに関連するデータを受信し、必要とされるアイテムの取得および梱包を遂行するための戦略/計画を決定し、要求を遂行するように協調して、システム100の要素(例えば、キッティングマシン102、104、および、106、コンベヤ108、箱組み立てマシン110、ならびに、ロボットアーム116および/またはキャリッジ118)を動作させるよう、例えば、制御コンピュータ122上で実行するソフトウェアによって、構成されている。
【0034】
例えば、いくつかの実施形態において、制御コンピュータ122は、梱包されるアイテムのリストを受信するよう構成されている。制御コンピュータ122は、どのアイテムがキッティングマシン102、104、および、106のどれと関連付けられているかを決定し、アイテムを取得して梱包するための計画を立てる。制御コンピュータ122は、箱(例えば、112、114)を組み立ててコンベヤ108上に配置するように箱組み立てマシン110を制御し、1または複数のアイテムを載せる位置に箱を前進させるようにコンベヤ108を制御する。制御コンピュータ122は、1または複数の第1アイテムをキッティングマシン102、104、および、106の内の関連するマシンから取得するためにロボットアーム116を配置する必要に応じて、キャリッジ118および/またはロボットアーム116を制御する。制御コンピュータ122は、必要な数量の必要なアイテムが、コンベヤ108およびロボットアーム116に最も近いキッティングマシン102、104、および、106の端のピックアップゾーンに存在することを確実にするように、キッティングマシン102、104、および、106を制御してよい。制御コンピュータ122は、ロボットアーム116を制御して、対応するピックアップゾーンからアイテムを取得させ、箱(例えば、112、114)の中にアイテムを配置させ、その後、その特定のキットに含める必要のある任意のさらなるアイテムの協調的な取得および梱包を実行するために移動させる。すべてのアイテムが取得され梱包されると、制御コンピュータ122は、コンベヤ108を制御して、箱(例えば、112、114)を遂行(フルフィルメント)の次の段階(
図1には図示されていないが、例えば、箱が密閉され、ラベル付けされ、出荷に向けて送られるステーション)へと進める。
【0035】
図1Aをさらに参照すると、図の例において、システム100は、システム100を構成する要素のビデオ画像をキャプチャするよう構成されているビデオカメラ124を備える。カメラ124は、システム100を構成する要素を制御するために制御コンピュータ122によって用いられる複数のセンサの内の1つであってよい。例えば、図の例において、カメラ124によって生成されて制御コンピュータ122へ送信されたビデオは、十分かつ過剰ではない数のアイテムがピックアップゾーンで利用可能であることを保証するように、および/または、ロボットアーム116による取得に向けてアイテムを配置または再配置するように、キッティングマシン102、104、および、106を構成するコンベヤベルトの速度および/または方向を制御するために制御コンピュータ122によって用いられてよい。さらに、カメラ124および/またはその他のカメラは、ロボットアーム116がアイテムをピックアップし、および/または、箱(例えば、112、114)の中にアイテムを配置することを容易にするために用いられてもよい。様々な実施形態において、複数のカメラが、自動化された(そして、必要に応じて、人間が支援する)キッティング動作を容易にするために、環境内、および、システム100を構成するそれぞれの要素上など、複数の位置に配備されてよい。様々な実施形態において、接触スイッチまたはリミットスイッチ、圧力センサ、重量センサなどを含むがこれらに限定されない、カメラ以外のセンサが配備されてもよい。
【0036】
様々な実施形態において、制御コンピュータ122は、システム100を構成するロボットアーム116およびその他の要素(例えば、キッティングマシン102、104、および、106、コンベヤ108、箱組み立てマシン110、ならびに、ロボットアーム116および/またはキャリッジ118)のモデルに少なくとも部分的に基づいて、キッティング要求を遂行するための計画を決定するようプログラムされている。それぞれのモデルは、様々な実施形態において、それぞれの要素の機能および制限を反映している。例えば、キッティングマシン102、104、および、106は、この例では固定位置にあるが、各々が、前後方向に、および/または、異なる速度で、動かされることが可能であってよいコンベヤベルトを有する。さらに、制御コンピュータ122は、例えば、どのアイテムがどのキッティングマシンのどの位置にあるか、各キッティングマシンおよび/またはそれに関連するピックアップゾーンがどこに配置されるかなど、初期化および/または構成に関連して格納された情報を用いて、要求を遂行するための計画を決定してよい。さらに、制御コンピュータ122は、センサデータ(カメラ124によってキャプチャされたビデオなど)に少なくとも部分的に基づいて決定されたデータを用いて、要求を遂行するための計画を立ててもよい。
【0037】
様々な実施形態において、制御コンピュータ122は、制御コンピュータ122にプログラムされ、および/または、制御コンピュータ122によって学習された(次の)タスクまたはサブタスクを行うための戦略を用いて、要求を遂行するための計画を策定ならびに/もしくは更新または再策定し、その計画を実行するかまたは実行しようとするよう構成されている。例としては、アイテムの属性(剛性、壊れやすさ、形状、向きなど)に基づいて所与のアイテムをピックアップするためにロボットアーム116を用いる戦略が含まれるが、それに限定されない。いくつかの実施形態において、制御コンピュータ122は、第1戦略(例えば、好ましい戦略または最良の戦略)を用いてタスク(例えば、ロボットアーム116でアイテムをピックアップするタスク)を実行しようと試み、それが失敗した場合に、利用可能であれば代替戦略(例えば、ロボットアーム116を用いてアイテムを軽く突いた後に再試行する戦略、キッティングマシン(例えば、102、104、および、106)のコンベヤまたはその他の装置を順方向および/または逆方向に若干動かして再試行する戦略、など)を決定して利用するようプログラムされている。
【0038】
図1に示す例において、制御コンピュータ122は、人間オペレータ128によって操作されるオンデマンド遠隔操作装置126に接続されている。
図1において、遠隔操作装置126は、人間オペレータ128によって操作されているが、いくつかの実施形態において、遠隔操作装置126は、非人間オペレータ(高度な技能を有するロボットなど)によって操作されてもよい。様々な実施形態において、制御コンピュータ122は、キッティング動作および/またはその構成タスクを完全自動動作で継続/完了させるために利用可能な戦略がないとの制御コンピュータ122による決定に少なくとも部分的に基づいて、オンデマンド遠隔操作を呼び出すよう構成されている。例えば、ロボットアーム116が取得できない位置にアイテムが落とされた場合、または、所定の最大試行回数までアイテムのピックアップが試行されても、その取得に成功していない場合、などである。かかる決定に基づいて、制御コンピュータ122は、警告またはその他の通信をオンデマンド遠隔操作装置126へ送信し、人間オペレータ128が遠隔操作装置126を用いて、制御コンピュータ122による完全自動制御下でシステム100が完了できなかったタスクまたはサブタスクを少なくとも実行するために、システム100の1または複数の要素(例えば、キッティングマシン102、104、および、106と、コンベヤ108と、箱組み立てマシン110と、ロボットアーム116および/またはキャリッジ118と、の内の1または複数)を操作するようにプロンプトする。
【0039】
様々な実施形態において、制御コンピュータ122は、本明細書に開示され以下でより完全に説明されるように速度ベースの制御を用いてロボットアーム116および/またはキャリッジ118を制御する。
【0040】
図1Bは、速度ベースの制御を用いて、多様なアイテムをパレタイズおよび/またはデパレタイズするためのロボットシステムの一実施形態を示す図である。図の例において、システム130は、ロボットアーム132を備える。この例において、ロボットアーム132は、固定されているが、様々な別の実施形態において、ロボットアーム132は、例えば、レール上に取り付けられている、モータ駆動シャーシ上で完全に移動可能である、など、完全にまたは部分的に移動可能であってもよい。図に示すように、ロボットアーム132は、コンベヤベルト(またはその他のソース)134から任意のおよび/または異種のアイテムをピックして、パレットまたはその他の容器136に積み重ねるために用いられる。
【0041】
図の例において、ロボットアーム132は、吸着タイプのエンドエフェクタ138を備えている。エンドエフェクタ138は、複数の吸着カップ140を有する。ロボットアーム132は、図に示すように、ピックアップされるアイテムの上にエンドエフェクタ138の吸着カップ140を配置するために用いられ、真空源が、アイテムを把持し、アイテムをそのコンベヤ134から持ち上げ、アイテムを容器136上の移動先位置にプレースするための吸着力を提供する。
【0042】
様々な実施形態において、エンドエフェクタ138に取り付けられた3Dカメラまたはその他のカメラ142と、ロボットシステム130が配備されている空間内に取り付けられたカメラ144、146と、の内の1または複数が、コンベヤ134上のアイテムを識別するため、および/または、アイテムを把持し、ピック/プレースし、容器136上に積み重ねるための計画を決定するために用いられる。様々な実施形態において、図示されていないさらなるセンサ(例えば、コンベヤ134および/またはロボットアーム132の中におよび/または隣接して具現化されている重量センサまたは力センサ、吸着カップ140のx-y平面および/またはz-方向(垂直方向)の力センサ、など)が、例えばシステム130によって、アイテムが配置および/または再配置されうるコンベヤ134および/またはその他の移動元および/またはステージングエリア上のアイテムを識別し、その属性を決定し、把持し、ピックアップし、決定された軌道を通って移動させ、および/または、容器136の上または中の移動先位置にプレースするために用いられてよい。
【0043】
図1Bをさらに参照すると、図の例において、システム130は、この例では無線通信を介して(ただし、様々な実施形態において、有線通信および無線通信の一方または両方で)、ロボットアーム132、コンベヤ134、エフェクタ138、および、センサ(カメラ142、144、および、146、ならびに/もしくは、
図1Bに示していない重量センサ、力センサ、および/または、その他のセンサなど)などの要素と通信するよう構成されている制御コンピュータ148を備える。様々な実施形態において、制御コンピュータ148は、センサ(カメラ142、144、および、146、ならびに/もしくは、
図1Bに示していない重量センサ、力センサ、および/または、その他のセンサなど)からの入力を用いて、容器136へ荷積みおよび/または容器136から荷下ろしされるアイテムの1または複数の属性を観察、識別、および、決定するよう構成されている。様々な実施形態において、制御コンピュータ148は、例えば、画像および/またはその他のセンサデータに基づいて、制御コンピュータ148に格納されたライブラリ内および/または制御コンピュータ148にとってアクセス可能なライブラリ内のアイテムモデルデータを用いて、アイテムおよび/またはその属性を識別する。制御コンピュータ148は、アイテムに対応するモデルを用いて、移動先(容器136など)の中/上に、他のアイテムと共に、アイテムを積み重ねるための計画を決定および実行する。様々な実施形態において、アイテム属性および/またはモデルは、アイテムを把持、移動させて、移動先位置(例えば、容器136の中/上にアイテム積み重ねるための計画/再計画処理の一部として、アイテムがプレースされると決定された位置)にプレースするための戦略を決定するのに利用される。
【0044】
図の例において、制御コンピュータ148は、「オンデマンド」遠隔操作装置152に接続されている。いくつかの実施形態において、制御コンピュータ148が、完全自動モードで続行できない場合、例えば、制御コンピュータ148が完全自動モードでアイテムのピックアンドプレースを完了するための戦略を持たなくなるように、アイテムを把持、移動、および、プレースするための戦略が、決定できなくなり、および/または、失敗した場合、制御コンピュータ148は、例えば、アイテムを把持、移動、および、プレースするために、遠隔操作装置152を用いて、ロボットアーム132および/またはエンドエフェクタ138を操作することによって介入するように人間ユーザ154に指示する。
【0045】
様々な実施形態において、制御コンピュータ148は、本明細書に開示され以下でより完全に説明されるように速度ベースの制御を用いてロボットアーム132を制御する。
【0046】
図2は、速度制御を用いるロボットシンギュレーションシステムの一実施形態を示す図である。様々な実施形態において、本明細書で開示されているロボットシステムは、例えば、シュートもしくはその他の供給または取り込みソースからアイテムを回収して、コンベヤもしくはその他の出力または移動先構造の上の対応する位置に1つずつ各アイテムをプレースするなど、シンギュレーション/誘導を実行するために、1または複数のロボットアームを備えてよい。
【0047】
図2に示す例において、システム200は、吸着ベースのエンドエフェクタ204を備えたロボットアーム202を備える。図の例において、エンドエフェクタ204は、吸着ベースのエンドエフェクタであるが、様々な実施形態において、ピンチベースのエンドエフェクタまたはその他のタイプの作動グリッパを含むがこれらに限定されない、1または複数のその他のタイプのエンドエフェクタが、本明細書で開示されているシンギュレーションシステムで用いられてもよい。様々な実施形態において、エンドエフェクタは、吸着、空気圧、空圧、油圧、または、その他の作動、の内の1または複数によって作動されてよい。ロボットアーム202および204は、シュートまたは大箱206を介して到着した荷物またはその他のアイテムを取り、仕切り付きコンベヤ208上の対応する位置に各アイテムをプレースするために用いられるよう構成されている。この例において、アイテムは、取り入れ端210からシュート206へ供給される。例えば、1または複数の人間および/またはロボットの作業員が、直接的に、もしくは、シュート206へアイテムを供給するよう構成されたコンベヤまたはその他の電気機械構造を介して、シュート206の取り入れ端210へアイテムを供給してよい。
【0048】
図の例において、ロボットアーム202、エンドエフェクタ204、および、コンベヤ208の内の1または複数が、制御コンピュータ212によって協調的に動作される。様々な実施形態において、制御コンピュータ212は、画像センサ(この例では、3Dカメラ214および216など)によって提供される画像データに基づいて、個々のアイテムと、各アイテムの向きとを判別するために用いられるビジョンシステムを備える。ビジョンシステムは、個々のアイテムを把持し、機械識別および仕分けに利用可能な対応する規定された位置(仕切り付きコンベヤ208の仕切られた部分など)に各アイテムをプレースするための戦略を決定するために、ロボットシステムによって用いられる出力を生成する。
【0049】
さらに
図2を参照すると、図の例において、システム200は、さらに、ロボットアーム202、エンドエフェクタ204、および、コンベヤ208、の内の1または複数を遠隔操作によって操作するために、人間の作業員220によって利用可能なオンデマンド遠隔操作装置218を備える。いくつかの実施形態において、制御コンピュータ212は、完全自動モードでアイテムを把持およびプレースすることを試みるよう構成されている。しかしながら、完全自動モードで動作することを試みた後に、制御コンピュータ212が、1または複数のアイテムを把持するために利用可能な(さらなる)戦略がないと判定した場合、様々な実施形態において、制御コンピュータ212は、例えば遠隔操作装置218を用いて人間のオペレータ220によって、遠隔操作で人間のオペレータからの支援を得るために警告を送信する。
【0050】
様々な実施形態において、制御コンピュータ212は、本明細書に開示され以下でより完全に説明されるように速度ベースの制御を用いてロボットアーム202を制御する。
【0051】
図1A、
図1B、および、
図2に示した例によって説明されるように、多くの用途において、ロボットの周りの世界および環境は、常に変化し続けうる。例えば、コンベヤベルトが、予期せず停止または開始する場合あり、もしくは、予期せぬ速度で動作する場合がある。環境内の人間が、予期せぬ形でアイテムを移動させまたは流れを妨げる場合があり、もしくは、環境内の1または複数のロボットまたはその他の装置が、環境内に存在する人間の安全性を確保するために停止または減速しなければならない場合がある。ロボットによって移動または別の方法で操作される物体が、物体の雑然とした山または流れの中にある場合があり、物体が、他の物体のピックアンドプレース、自動供給システムの動作、などによって、位置および/または向きを変える場合がある。
【0052】
様々な実施形態において、本明細書で開示されているロボットシステムは、エンコーダ、カメラ、ゲート/ラッチ、力センサ、および、フィールドバス信号など、様々なセンサを用いてキャプチャされた情報をリアルタイムで連続的に処理する。ロボットシステムは、変化する制約、新たな標的、連続的な信号サーボ、その他のユーザ入力、などに従うように、ロボットを動的かつ適応的に制御する。あらゆる動きが異なっており、オンザフライでリアルタイムに生成される。様々な実施形態において、本明細書で開示されている速度ベースの制御は、ロボット、ロボットによって操作されているアイテム、ならびに、ロボットが配備されている環境内のその他のロボットまたは構造への損傷のリスクを高めることなしに、変化する条件および要件に迅速に対応するために用いられる。
【0053】
様々な実施形態において、本明細書で開示されているロボット制御システムは、少なくとも部分的には、ロボットを常にシミュレートして、システムが実ロボットに従事させたい正確な動き(例えば、ロボット関節の位置、速度、加速度)をリアルタイムで生成することによって、変化する条件へ迅速に適応する。
【0054】
図3は、速度制御ベースのロボットシステムの一実施形態を示すブロック図である。様々な実施形態において、
図3のロボット制御システム300は、少なくとも部分的には、制御コンピュータ(
図1Aのコンピュータ122、
図1Bのコンピュータ148、および/または、
図2のコンピュータ212、など)によって実装される。図の例において、ユーザ入力が、ユーザインターフェース302(例えば、グラフィック、テキストベース、構成ファイルベース、または、その他のインターフェースを介してユーザ入力を提示および受信するよう構成されているコンピュータ(例えば、コンピュータ122、148、212)を構成するプロセッサ上で実行するユーザインターフェースモジュールまたはコード)を介して受信される。様々な実施形態において、ユーザインターフェース302は、
図1Aに示した例のように、実行されるべき1または複数の高レベル目標の指示(1セットのシッピングインボイス、積荷目録、もしくは、それぞれのコンテナまたはキットにまとめられるアイテムおよび数量のその他のリストなど)、
図1Bに示したように、特定のセットのアイテムおよび/または搬送手段もしくはその他のソースまたは構造を介して受信されたアイテムをパレットまたはその他の容器に積み上げる旨の指示、および/または、
図2に示したように、指示されたソースから仕切り付きコンベヤまたはその他の移動先へアイテムをプレースする旨の指示、を受信するよう構成されている。様々な実施形態において、システムによって操作されるアイテムの在庫またはその他のソースのタイプ、数量、位置、および/または、その他の属性を示す在庫情報および/またはその他の情報が、ユーザインターフェース302を介して受信されてよい。
【0055】
図3に示す例において、ユーザインターフェース302を介して受信された高レベル目標およびその他の入力情報が、プランナ304に提供される。様々な実施形態において、プランナ304は、ユーザインターフェース302を介して受信された高レベル目標と、在庫データベース306(またはファイルまたはその他のデータストア)に格納された在庫情報および/またはその他の構成情報および初期設定情報、とに少なくとも部分的に基づいて、高レベル目標を達成するために高レベル計画を生成するよう構成されている1または複数のソフトウェア構成要素を備える。
【0056】
プランナ304は、この例において、制御モジュール308およびシミュレーションエンジン310へ高レベル計画を提供する。様々な実施形態において、プランナ304および/または制御モジュール308は、システムが、完全自動動作で高レベル目標の達成に向かって進むことを可能にするために、一連の特定のタスク(例えば、アイテムA、B、および、Cを把持して、移動先容器Rへ移動させるタスク、または、シュートAからアイテムを把持して、仕切り付きコンベヤCの仕切られた部分に1つずつ各アイテムをプレースするタスク、など)および/またはサブタスク(例えば、アイテムAを把持するサブタスク)を実行するように、特定のロボット要素(例えば、ロボットアーム)をスケジューリングする1または複数のスケジューラを備える。
【0057】
様々な実施形態において、制御モジュール308は、本明細書で開示されている速度ベースの制御を用いてロボット操作を実行するよう構成されている。例えば、アイテムAを把持して移動先Dへ移動させるタスクを実行するために、様々な実施形態において、制御モジュール308は、(例えば、アイテムAを把持する位置へエンドエフェクタ(吸引またはピンサー/フィンガータイプのグリッパ)を移動させ、および/または、アイテムAを把持したエンドエフェクタを移動先Dへ移動させるために)、少なくとも部分的に速度に基づく軌道を決定する。様々な実施形態において、軌道は、エンドエフェクタが移動される際に沿うおよび/または従う一連の1または複数の速度ベクトル(例えば、三次元空間における大きさ/速度および方向)を含む。軌道は、1セットの1または複数の段階または区分の各々について所望の速度(大きさおよび方向)を示してよく、ならびに/もしくは、各区分および/または区分間の各遷移について所望および/または最大の加速度および/またはその他のより高次の位置の導関数(例えば、加加速度など)を示してよい。
【0058】
様々な実施形態において、制御モジュール308は、制御されるロボットのモデル312を用いて、エンドエフェクタが移動されることを制御モジュール308が決定した軌道を構成する速度でエンドエフェクタ(または、ロボットを構成するその他の要素)を移動させるためにロボットに送信される1セットの制御コマンドを決定する。制御モジュール308は、様々な実施形態において、センサ314によって生成および提供された画像またはその他の情報を用いて、軌道を決定および実行し、ロボットが作業している環境の変化(ロボットによって移動されているまたは移動されるアイテムおよび/または空間内のその他のアイテムの状態または条件、空間内のその他のロボットの位置、状態、および、運動、空間内に存在する人間の作業員の位置、ならびに、制御モジュール308によって制御されているロボットおよび/またはロボットを構成する要素の実際の観察された運動、などの予期せぬ変化)に迅速に対応する。
【0059】
様々な実施形態において、制御モジュール308は、決定された軌道を実行するために、ロボット搭載制御サブシステム316へコマンドを送信する。ロボット搭載制御サブシステム316は、次に、対応する関節の(またはその他の)モータコントローラ(モータコントローラ318、320、および、322の内の1または複数など)へロボットの各特定の関節またはその他の駆動要素のためのコマンドを送信する。モータコントローラ(例えば、318、320、および、322)は、ロボット搭載制御サブシステム316からのコマンドに応答して、所定の/指示された期間(例えば、コマンドで指示された期間、または、停止するよう命令されるまで)所望のトルクに関連するレベルの電流を関連する被制御モータへ供給する。いくつかの実施形態において、ロボット搭載制御サブシステム316は、一連のトルクを順に各々対応する期間にわたって印加することで、決定された軌道に従ってロボットのエンドエフェクタおよび/またはその他の作動要素を空間中で移動させるように関節を協調的に回転させるために、コマンドまたはその他の制御信号のセットを各モータコントローラ318、320、および、322へ送信する。
【0060】
様々な実施形態において、シミュレーションエンジン310は、プランナ304から受信した入力、制御モジュール308によって生成された制御信号、ロボットモデル312、および、センサ314からのセンサデータ、の内の1または複数を用いて、ロボットの動作を連続的にシミュレートする。例えば、制御モジュール308からのトルク関連コマンドと、ロボットモデル312が、結果として生じるロボットの動きをシミュレートするために用いられてよい。センサ314からのデータが、空間内でのアイテム(ロボットに把持されているアイテムなど)の属性を評価してシミュレーションに反映するために用いられてよい。様々な実施形態において、制御モジュール308は、(例えば、ロボットのエンドエフェクタまたはその他の要素の)観測された速度を、シミュレーションエンジン310によって生成された対応する予測/シミュレートされた速度と比較する。観測速度が、予測(シミュレート)速度から逸脱する場合、補正が決定され、制御モジュール308は、補正を実行するために、関連コマンドをロボット搭載制御サブシステム316へ送信する。
【0061】
様々な実施形態において、センサ314によって生成されたセンサデータは、プランナ304に提供される。いくつかの実施形態において、プランナ304は、センサデータに基づいて観察された条件に基づいて、プランナ304によって生成された計画を更新するか否かを決定するために、センサデータ304を連続的にモニタリングするよう構成されている。例えば、アイテムが落下された場合、または、予測された通りに/時に作業空間に到着しなかった場合、その情報を考慮に入れた更新計画が生成されてよい。
【0062】
様々な実施形態において、本明細書で開示されているロボットシステムは、適応的/インテリジェントな軌道生成を実行し、これは、ロボットおよび/またはロボットを構成する要素の位置だけではなく、より高次の導関数(速度および加速度)を制御する能力を利用する。リアルタイムの動作計画に正確に従おうとしている時、システムは、速度および/または加速度の制御を用いて、シミュレートされたロボットに非常に正確に従うことで、システムが、変化する環境により迅速に反応することを可能にする。本明細書で開示されているように速度および加速度の追跡が利用されなければ、実ロボット(シミュレーションではないロボット)は、(例えば、シミュレーションによって決定された)所望の経路/位置に追いつかない。所望の位置がもはや変化しない場合、実ロボットは、いくつかの実施形態において、位置制御(のみ)を用いて、最終的に所望の位置へ非常に正確に到達できる。しかし、所望の位置が変化している場合、実ロボットは、位置制御のみを用いて動的に経路を効果的にたどることができず、したがって、様々な実施形態において、速度および/または加速度の制御が利用される。様々な実施形態において、速度および加速度の追跡は、ロボットが、大きい位置誤差を待つことなしに、いつどのように加速するのかを瞬時に知ることを可能にするので、これらのより高次な導関数(すなわち、速度、加速度など)の正確に追跡が可能になる。
【0063】
図4は、ロボットシステムを制御するための処理の一実施形態を示すフローチャートである。様々の実施形態において、
図4の処理400は、制御コンピュータ(
図1Aのコンピュータ122、
図1Bのコンピュータ148、および/または、
図2のコンピュータ212など)によって実行される。図の例において、センサデータが、工程402で受信され、工程404で、現在の/観測された状態、例えば、ロボットおよびそれの関連構成要素(エンドエフェクタなど)の(例えば、位置、姿勢、速度、および、加速度(該当する場合))、作業空間内のアイテム(ロボットによって把持および移動されるアイテムなど)の位置、姿勢、速度、および、加速度(該当する場合)、移動先容器(コンベヤベルト上のコンテナまたは区画など)のそれぞれの位置、速度、および、加速度(該当する場合)、ならびに、作業空間内に存在する構造物または潜在的な危険条件(人間の作業員など)の位置、速度、および、加速度(該当する場合)、を更新するために用いられる。
【0064】
工程406で、エンドエフェクタ(またはその他の要素)の観測速度を、シミュレーションに従った(例えば、
図3に示した例におけるシミュレーションエンジン310による)対応する予測速度と比較した差が決定される。様々な実施形態において、観測された位置、加速度、加加速度などが、シミュレーションによって決定された対応する予測値と比較されてよい。様々な実施形態において、観測速度などは、工程402で受信された画像および/またはその他のセンサデータに基づいて決定される。
【0065】
工程408で、工程406において決定された差に少なくとも部分的に基づいて決定される軌道および/または軌道調整が計算される。工程410で、観測速度とシミュレーションによって示された予測速度との間の差を無くすために、1セットの1または複数のコマンドが決定され、ロボットに提供され、生成され、ロボットに送信される。処理は、完了されるまで(例えば、すべてのタスクが完了されるまで)継続する(工程412)。
【0066】
様々な実施形態において、様々な実施形態において実装および利用される速度制御は、以下の内の1または複数を提供する。
●速度制御を用いた運動の高速かつ適応的な変化
○ロボットは、物体の移動などに起因して即座に運動の方向を変更することを決定しうる
○例えば、シュート上での荷物の滑りまたはコンベヤに沿った移動。速度制御を用いて、ロボットは、ピックすべき新しい荷物へ向かいまたは移動する荷物を捕捉してピックするよう迅速に適応する
●位置制御では、ロボットの前からロボットの背後へ標的を急速に変化させることで、急な動き、物体の落下、ロボットハードウェアへの悪影響、可能性のある誤差の発生が生じる
●ロボットを円滑に(ただし、サイクルタイムを短縮するために、物体/ロボットへの制限を考慮してできる限り速く)減速させて方向するために、より高次の導関数の制御が、様々な実施形態において用いられる
●本明細書で開示されている制御システムは、どのように減速して方向転換し加速するのかを正確に知っているが、本明細書で開示されている速度/加速度制御を利用することなしに、ロボットにこれを行うよう命令することは不可能である
【0067】
以下の内の1または複数を達成するために、時間最適アルゴリズムが、様々な実施形態において、本明細書で開示されている速度制御を用いて実装される。
●本明細書で開示されている速度制御を用いて実現される制御された減速および加速は、全体目標を最も良好に達成するための1セットの高レベルタスクを完了させる時間最適アプローチを決定および実行するために、様々な実施形態において用いられる
○例えば、物体を保持している時、様々な実施形態において、本明細書で開示されているシステムは、損傷、グリップの喪失などを防ぐために物体に与えられうる最大加速度/減速度をリアルタイムに計算する
○これらの制限は、真空圧力センサからの連続的な読み取り値、物体の重量、保持されている向き、ビジョンなどに起因して、方向および大きさを変化させていてよい
●様々な実施形態において、ロボットおよび/または制御システムは、速度制御を用いて、物体に与えられる運動および力を正確に制限する
○位置制御だけでは、これらの加速度を「制御」する保証も能力もない
○したがって、位置制御のみを用いる場合、制御システムは、これらの制限に厳密に収まるように過度に保守的である必要があり、ロボットのサイクルタイムおよび速度を損なう
【0068】
機械学習ガイド付きのビジュアルサーボ(例えば、画像センサおよびビジョンシステムに基づいた自動ロボット制御)が、以下の内の1または複数を実行するために、本明細書で開示されている速度制御を用いて、様々な実施形態において実装される。
●人間とよく似て、ロボットは、環境を見て、現在の状態および所望の状態(物体を梱包するためのタイトネス、把持に向けてハンドが物体の上にあるべきである、など)からずれを検知することによって、自身の位置、把持、力を調整する
○1つのビジョンスナップショットから1回、実行すべきことをロボットに直接伝えるのではなく、様々な実施形態において、本明細書で開示されているシステムは、動作の成功を確実にするためにロボットへの制御コマンドを連続的に調整している
○通常、これらの調整は、「デルタ(差分)」に基づいており、例えば、調整は、所望の視覚的状態(例えば、シミュレーションが示した速度)と、現在の視覚的状態(例えば、観測速度)との間のギャップを縮めるようになされる
○システムが0次導関数(位置)へどれだけ進むべきかを知らないため、位置制御だけでは不十分であることから、これらのデルタ(差分)を縮めるために、速度制御が、様々な実施形態において用いられ、誤差が0になるまで特定の方向(一次導関数)に移動するだけでよい
【0069】
状態に基づく軌道が、例えば以下のように、本明細書で開示されている速度制御を用いて、様々な実施形態において実行される。
●様々な実施形態において、本明細書で開示されているロボットシステムは、ベルトの追跡、移動物体のピックアンドプレース、および、人間との相互作用、衝突回避などによる混乱からの反応を必要としうる応用例など、非常に動的な環境においてロボットを用いてタスクを実行することに関連する課題を克服するために、速度制御を利用する
●様々な実施形態において、本明細書で開示されているシステムは、速度制御を用いて、状態に基づく(またはその他の時変)軌道を実施してよい
●状態に基づく軌道は、時間ではなく、環境およびロボットの状態(ロボットの現在位置、コンベヤベルトの位置および速度、など)によって導かれる運動である
●様々な実施形態において、本明細書で開示されているロボットシステムは、現在の状態の関数として特定の状態を達成するよう連続的に動作する
○しかしながら、この状態を達成するのは、典型的には、所望の位置をその状態に設定するほど簡単ではなく、ロボットは、通常、その速さで移動できず、上記で強調された制約(把持の質など)を受ける
○本明細書で開示されているロボット制御システムは、速度制御を用いて、位置、速度、および、加速度の非常に特有の軌道に沿ってロボットの動きを方向付けることなどによって、所望の状態を達成する(例えば、ロボットの)運動を生成し、それは、位置の変化だけではなく、「運動」の定義をより完全に具現化するものである
○様々な実施形態において、上述の軌道(位置だけではなく、例えば、速度および/または加速度に関する軌道)は、所望の状態および運動(シミュレーションによって決定された運動/軌道など)を達成するために、速度(および/またはその他のより高次の導関数)の制御を用いてフォローされる
●例えば、ベルトの追跡-ベルトは或る速度で移動しており、ベルトスロットは、(連続的に変化する)位置にある
○ロボットは、例えば、移動しているベルトスロットを追跡して追いかけ、グリッパをスロットの真上に維持し、物体をピックまたはプレースする必要がある
○速度制御は、本明細書で開示されているロボットシステムが、位置に関して遅れを取ることなしに、ベルトの位置および速度の両方を正確に追跡することを可能にする
【0070】
インテリジェントな力制御が、例えば以下のように、本明細書で開示されている速度制御を用いて、様々な実施形態において実行される。
●位置制御(のみ)を用いてロボットへの力を制御するには、力の代わりに位置誤差を用いることが必要になる。
●より高次の導関数を用いた力の制御-位置/加速度は、本明細書で開示されているように、力へのより緊密なループを可能にし、力の制御幅および待ち時間を増大させる
●力がモータ電流に直接的に関係しているので、すなわち、位置は、電流を変調させる悪い方法なので、典型的には、ロボット制御システムは、特定の力を及ぼすためにどれだけの位置誤差が必要とされるかを事前には知らない
○システムがより高次の導関数を制御するほど、関節がどれだけの力を印加するのかを決定する能力が高くなる
■1)速度制御を用いれば、実ロボットが、シミュレートされたロボットと、シミュレートされたロボットが印加したい力とに従うことが容易になる
■2)速度は位置不変であるため、位置制御の任意の誤差が、位置制御のみを用いて実行される力制御に影響するが、本明細書で開示されている速度制御を用いることで、制御システムが、位置精度にかかわらず、ロボットから印加される力へより直接的に影響することが可能になる
●力を間接的に制御するために位置制御を用いると、アイテムおよび/または環境(例えば、アイテムが載っているテーブル、床、または、その他の表面)に対するロボット(例えば、エンドエフェクタ)の位置の誤差の結果として、力が所望のベクトル以外のベクトルに沿って印加されうるが、速度制御は、所望の運動のベクトル、ひいては、力が印加される方向を、位置にかかわらず、直接的に指定/制御することを可能にする
●速度制御を用いて実行される力制御は、ロボットが、より迅速に、環境および/または環境中に存在する物体の操作に適応することを可能にする
○何かが押し返す場合、または、表面に接触している場合に、速度制御は、位置制御よりもはるかに速く反応する
○
図1Bに示すように、例えば、箱をパレタイズする
■例えば、配送などのために異種の箱またはその他のアイテムをパレット上に積み重ねる
■速度制御を用いて、本明細書で開示されているシステムは、押しつぶすことなしに、配置されている箱に迅速に反応できることで、システムがより高速で移動し、より速やかに反応することを可能にする
【0071】
図5Aは、速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図である。環境およびシステム500の例において、例えば、ロボットアーム(
図5Aでは図示せず)の遠位端/作用端に取り付けられている、物体504を把持したエンドエフェクタ502が、容器508の中に物体504をプレースするタスクを課せられている。容器508が静止していれば、システムは、位置制御を用いて、エンドエフェクタ502および物体504を、容器508の上方の静止位置(例えば、図の例における点506)へ移動させて物体504を放すことで、容器508の中に物体504をプレースできる。しかしながら、図に示すように、この例において、容器508は、ベクトル510によって表された速度で(図に示すように)右へ移動している。エンドエフェクタ502および物体504を容器508の予測将来位置の上方の予測標的位置へ移動させるために、位置制御を利用できるが、そのアプローチは、例えば、結果として物体504が容器508の中にうまくプレースされないほど十分な量だけ予測位置がずれた場合に、誤差または損傷につながりうる。
【0072】
様々な実施形態において、本明細書で開示されているロボットシステムは、速度制御を用いて、移動している容器508の中に物体504をより迅速かつ正確にプレースする。例えば、いくつかの実施形態において、本明細書で開示されているロボット制御システムは、容器508の速度510を観測して決定し、本明細書で開示されている速度制御によって、容器508を捕捉した後に容器508と平行に移動するための軌道を計算して実行することで、物体504および容器508の両方が速度510で移動し続けている間に、物体504を容器508の中へ成功裏にプレースすることを可能にする。
【0073】
図5Bは、速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図である。
図5Bに示す例520において、点A522のエンドエフェクタ(図示せず)が、標的(図示せず)(物体がプレースされる容器、または、物体が回収される容器など)に関する点B524へ移動されることが望まれている。図に示すように、点B524およびB’526に関連付けられた物体/容器が、ベクトル528で表されている速度で(図に示すように)右へ移動していることから、標的は、点A522で表されているエンドエフェクタが適所に移動されうる時までに、新たな位置である点B’526へ移動する。
図5Bの右側のベクトル図に示されているように、様々な実施形態において、本明細書で開示されている速度制御を用いて、位置B’526で標的を捕捉するための速度ベクトル530を決定し、その結果、ベクトル532で表されている相対運動につながる。様々な実施形態において、その軌道または後続の軌道は、その後、標的速度528と一致する速度を含んでよく、これは、物体が、該当する場合に、解放または把持されうるまで、エンドエフェクタが標的と平行に移動されることを可能にする。
【0074】
図5Cは、速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図である。図の例において、(例えば、センサデータに基づいて計算された)観測速度542が、差544を決定するために、対応するシミュレートされた速度540と比較される。様々な実施形態において、本明細書で開示されている速度制御システムは、シミュレートされた速度540と観測速度542との間の差544を無くす(ゼロまで減らす)ように計算された速度制御信号を決定して提供する。
【0075】
図6は、速度制御ベースのロボットシステムの一実施形態を示すブロック図である。図の例において、制御システム600は、少なくとも部分的には、速度ベースの成分を含む軌道を決定し、決定された軌道を実行するために計算されたトルクに関連付けられた制御信号をインターフェース604を介して提供することによって、速度ベースの制御を実行するよう構成されている制御モジュール602を備える。この例におけるトルクベースの制御信号604は、決定された軌道を可能な限りおよび/または可能な方法で実行するように従来の位置制御ロボット608を制御するための位置制御信号を生成するために、第1タイプのコネクタ606によって変換されてよい。同様に、トルクベースの制御信号604は、決定された軌道をより直接的に実行するように速度制御ロボット612を制御するための速度制御信号を生成するために、第2タイプのコネクタ610によって変換されてよい。最後に、この例において、トルクベースの制御信号604は、トルク制御ロボット614に提供され、トルク制御ロボット614によって直接的に実行されてよい。
【0076】
トルク制御ロボット(トルク制御ロボット614など)が制御されるいくつかの実施形態において、ロボットのトルク制御コマンドは、トルク制御ロボット614へのトルクコマンドへ直接的にマッピングされ、結果としての速度は、ロボットモデル(例えば、
図3のモデル312)のみに基づいてより確実に決定されるので、システムは、(例えば、エンドエフェクタの)シミュレートまたは予測された速度を決定するために、上述したようにシミュレーションを実行する必要がない。
【0077】
様々な実施形態において、ロボット制御タイプ(例えば、位置、速度、トルク)に依存しないアーキテクチャ(
図6のシステム600など)は、単一の制御モジュール602が、異なるタイプのロボット(例えば、608、612、および、614)を制御するために、必要に応じてコネクタありまたはコネクタなしで、利用されることを可能にする。
【0078】
図7Aは、ロボットシステムを制御するための制限を決定して課す処理の一実施形態を示すフローチャートである。様々の実施形態において、
図7Aの処理700は、制御コンピュータ(
図1Aのコンピュータ122、
図1Bのコンピュータ148、および/または、
図2のコンピュータ212など)によって実行される。図の例において、工程702で受信されたセンサデータが、損傷を避けるように、速度、加速度、加加速度などへ適用可能な制限を工程704で決定するために用いられる。例えば、工程702で受信された画像、重量、または、その他のセンサデータは、ロボットに把持されているまたは把持される物体がどの程度の重量、壊れやすさ、または、剛性を有するのか、もしくは、ロボットがどれだけしっかりと物体を把持しているのかまたは把持できるのかに影響しうるその他の属性、を決定するために用いられてよい。把持は、ロボットの把持からのアイテムの実際の滑りまたは潜在的/差し迫った滑りを検出するために、吸引グリッパに関連する圧力または空気流を監視し、もしくは、せん断力を監視または評価することなどによって、アクティブに監視されてよい。センサデータは、例えば(体積、重量などに基づく)タイプまたはクラスで、物体を分類するために用いられてよく、(例えば、速度または位置のその他のより高次な導関数への)適用制限が、分類に基づいて決定されてよい。工程706で、工程704において決定された制限が、実行され課される。例えば、本明細書で開示されている速度ベースの制御を実行するために決定される軌道は、工程704で決定された制限を考慮して、制御システムによって決定されてよい。例えば、常にエンドエフェクタが工程704で決定された速度制限未満にとどまることを保証する軌道が決定されてよい。処理は、完了されるまで(工程708)(例えば、システムによって移動されている物体がもはや無くなるまで)、上述のように継続する(工程702、704、706)。
【0079】
図7Bは、帰属する力場(imputed force field)を用いてロボットシステムを制御する処理の一実施形態を示すフローチャートである。様々の実施形態において、
図7Bの処理720は、制御コンピュータ(
図1Aのコンピュータ122、
図1Bのコンピュータ148、および/または、
図2のコンピュータ212など)によって実行される。様々な実施形態において、処理720は、ロボット要素(例えば、エンドエフェクタ)が、ロボットを構成しまたはロボットに関連している構造(
図1Aに示した例におけるキャリッジ118またはレール120など)、もしくは、別の構造または危険なもの(
図1Aに示した例における人間の作業員128または箱組み立てマシン110など)、と衝突するリスクを回避または最小化するために用いられてよい。
【0080】
図の例において、工程722で、システムは、制御されているロボット要素(エンドエフェクタなど)が、接触/衝突を回避されるべき構造、物体、装置、および/または、人間に近接していることを検出する。工程724で、帰属反発力(imputed force of repulsion)が計算される。様々な実施形態において、計算された帰属反発力は、制御されている要素が、接触を回避されるべき物体などに近い/接近するほど強くなる。工程726で、速度および/または軌道が、工程724において決定された帰属反発力を考慮して決定される。様々な実施形態において、本明細書で開示されている速度ベースのロボット制御システムは、上述したように帰属反発力を考慮する軌道を決定して実行する。例えば、帰属反発力が所定の閾値を超えないことをシミュレーションに基づいて保証する軌道が決定されてよい。
【0081】
図8Aは、速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図である。図に示すシステムおよび環境800において、物体804を保持しているエンドエフェクタ802が、(図に示すように)右へ(この例では第1容器808へ向かって)第1速度806で移動している。例えば、観測された変化または命令された変化の発生時に、システムは、その代わりに、速度806と比較して反対の移動方向にある第2容器810の中に物体804をプレースすると決定してよい。
【0082】
図8Bは、速度制御ベースのロボットシステムの一実施形態における速度制御の一例を示す図である。図に示す状態において、物体804を第1容器808の代わりに第2容器810へ移動させるために、エンドエフェクタは、ベクトル812に関連する方向に移動するよう変更されている。
【0083】
図8Aおよび
図8Bは、様々な実施形態において実施されているように位置制御および速度制御を用いて条件(例えば、移動先位置の変更)へ動的に対応する際の位置制御および速度制御での差を示す一例を提供する。典型的な位置制御ベースのロボットシステムにおいて、結果として反対方向またはそうでなければ実質的に異なる方向の移動先に移動することが望まれる移動先の変更は、典型的には、エンドエフェクタの急速な(ほぼ瞬時の)減速の後に反対方向への急速な加速につながる。さらに、位置制御されるロボットは、エンドエフェクタが新たな標的/移動先から離間しているほど、より積極的におよび/またはより高速に加速しうる。急速でほぼ瞬時の方向転換は、ロボットに把持されている物体を損傷し、および/または、ロボットが物体の把持を失う結果となりうる。対照的に、様々な実施形態において実行される速度制御は、新たな方向(例えば、図の例においてベクトル812によって表されている方向および速度)へ移動するために、より制御された移行を含む軌道を実行するために用いられる。
【0084】
図8Cは、ロボットシステムの制御において、位置制御を用いて標的および/または移動先を変更する一例を比較の目的で示す図である。図の例において、グラフ840は、
図8Aおよび
図8Bに示した例のように標的/移動先を変更する位置制御ロボットについて時間に対して速度を示している。図に示すように、エンドエフェクタは、速度v1(例えば、
図8Aに示したベクトル806)で移動し、(破線846で表されている)時刻t1でほぼ瞬時に、速度v1と反対向きでv1よりも大きい速度v2 844に変化している。
【0085】
図8Dは、本明細書で開示されている速度制御を用いて、ロボットシステムにおいて標的および/または移動先を変更する一例を示す図である。図の例において、グラフ860は、
図8Aおよび
図8Bに示した例のように標的/移動先を変更する本明細書に開示の速度制御ロボットについて時間に対して速度を示している。
図8Cに示した例のように、エンドエフェクタは、新たな標的/移動先へ変更する旨の指示を時間t1で受信する前に、最初は速度v1 862で移動している。本明細書で開示されている速度制御は、軌道が、時間t1 866とt2 868との間で新たな速度v2 864へ移行すると決定され、速度制御によって実行されることを可能にする。t1とt2との間の時間は、エンドエフェクタ速度とより直接的に関連付けられているコマンドが提供されるので、突然の移動も潜在的に過度な加速度または速度もなしに方向転換が実行されることを速度制御が可能にする点を説明するために、
図8Dにおいて誇張されている。
【0086】
図9Aは、速度制御を用いて新たな標的および/または移動先へ方向転換する処理の一実施形態を示すフローチャートである。様々の実施形態において、
図9の処理900は、制御コンピュータ(
図1Aのコンピュータ122、
図1Bのコンピュータ148、および/または、
図2のコンピュータ212など)によって実行される。図の例において、工程902で、標的/移動先を変更する旨の指示が受信される。工程904で、新たな標的/移動先に達する/捕捉するためのベクトル(速度)への速度、加速度などを意識した移行を含む新たな標的/移動先に達する軌道が計算される。例えば、軌道は、徐々に減速した後に、新たな標的/移動先に向かう方向へ制御された方法で加速する第1段階を含んでよい。工程906で、決定された軌道が実行される。
【0087】
図9Bは、2以上のロボットを用いてタスクを協調的に実行するために速度制御を利用する処理の一実施形態を示すフローチャートである。様々の実施形態において、
図9Bの処理920は、制御コンピュータ(
図1Aのコンピュータ122、
図1Bのコンピュータ148、および/または、
図2のコンピュータ212など)によって実行される。図の例において、工程922で、システムは、2以上のロボットで物体を把持することを決定する。例えば、アイテムを収容しているトレイ、パレット、または、その他の容器が、2つのロボットを用いて把持および移動されるように(例えば、容器を移動先位置にプレースするために同期的に、各々のロボットが反対側/反対端を押した後に、持ち上げて移動させるように)決定されてよい。
【0088】
工程924で、ロボットを用いて物体を把持する戦略(例えば、ロボットが係合するよう割り当てられている側面または構造へ計算または他の方法で決定された垂直力を各ロボットが印加する戦略)が決定および実行される。工程926で、アイテム(例えば、容器)を移動先まで一緒に移動させる際に、すべてのロボットとアイテムとの係合を維持するために、速度制御を用いて、ロボットを各々常に同じ速度になるように同期的に移動させる。
【0089】
様々な実施形態において、速度制御は、部分的には速度が位置に依存しないので、複数のロボットを用いたアイテムの協調的/同期的移動を容易にする。例えば、物体もしくはロボットの一方または両方の位置が正確に分からなくても、正反対の方向に押すように2つのロボットを制御できる。位置制御システムにおいては、位置の小さい誤差でも、力が不正確な方向に印加されることにつながりうる。
【0090】
複数ロボットの協働は、様々な実施形態において、速度制御を用いて以下のように速度制御を用いて実行される。
●本明細書で開示されている速度制御で達成される力制御の改善により、ロボットは、より高い処理能力でより効果的に協働することができる
●デュアルロボットが環境/ハードウェアの異常に速やかに反応する能力を実現する
○例えば、1または複数のロボットがハードウェアの不具合または妨げとなる障害物のために急減速した時に、1または複数のその他のロボットが、速度制御によって瞬時に反応して、位置誤差が大きくなるのを待つことなしに、直ちに減速し、反力に応じ、または、他の方法で適応する
○複数のロボットによって(例えば、各々が反対側から力を印加することによって)把持された物体は、潰されることなく、物体への衝撃も少ないため、製品の品質を保つ
【0091】
図10は、速度制御ベースのロボットシステムの一実施形態を示すブロック図である。図の例において、制御モジュールまたはサブシステム1000は、上述のように、速度ベース制御信号/コマンド1004を生成するよう構成されている制御スタック1002を備える。速度誤差/速度差1010(例えば、
図5Cの差544)を生成するために、シミュレーション1006によって生成された予測/シミュレートされた速度V
シミュレートが、センサ1008からのデータに基づいて決定された観測/実速度V
観測と比較される。第1段階においておよび/または第1クロックまたはサンプリング周波数に基づいて、制御スタックは、速度誤差/速度差1010と制御スタック1002の速度制御層とを用いて、誤差/差1010を最小化または排除しようとするために制御信号1004を決定して提供する。第2段階において(例えば、標的または移動先が近くなった時に)、および/または、第1周波数よりも低い第2クロックまたはサンプリング周波数に基づいて、制御スタック1002は、センサ1008から受信されおよび/またはセンサ1008から受信された画像またはその他のデータに基づいて決定された位置情報1012を用いて、例えば、制御スタック1002内の速度制御層の上方の位置制御層において、比較を行い、調整されたおよび/または最終的な軌道を実行するためにさらなる制御信号を生成して提供することなどによって、標的または移動先に到達するための最終軌道を調整および/または決定する。
【0092】
本明細書で開示されている技術は、様々な実施形態において、1または複数のロボットをより正確、効率的、かつ、柔軟/適応的に制御するために用いられてよく、非常に動的な環境内でも、より安全かつ効率的にロボットを利用することを可能にする。
【0093】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供されている詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定を意図するものではない。
【国際調査報告】