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

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

▶ エックス デベロップメント エルエルシーの特許一覧

<>
  • 特許-工具経路の自動生成 図1
  • 特許-工具経路の自動生成 図2
  • 特許-工具経路の自動生成 図3
  • 特許-工具経路の自動生成 図4A
  • 特許-工具経路の自動生成 図4B
  • 特許-工具経路の自動生成 図5A
  • 特許-工具経路の自動生成 図5B
  • 特許-工具経路の自動生成 図5C
  • 特許-工具経路の自動生成 図5D
  • 特許-工具経路の自動生成 図6
  • 特許-工具経路の自動生成 図7
  • 特許-工具経路の自動生成 図8
  • 特許-工具経路の自動生成 図9
  • 特許-工具経路の自動生成 図10
  • 特許-工具経路の自動生成 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-21
(45)【発行日】2022-01-18
(54)【発明の名称】工具経路の自動生成
(51)【国際特許分類】
   B25J 13/08 20060101AFI20220111BHJP
【FI】
B25J13/08 A
【請求項の数】 18
(21)【出願番号】P 2019554655
(86)(22)【出願日】2018-03-22
(65)【公表番号】
(43)【公表日】2020-07-27
(86)【国際出願番号】 US2018023698
(87)【国際公開番号】W WO2018222250
(87)【国際公開日】2018-12-06
【審査請求日】2019-11-29
(31)【優先権主張番号】15/611,769
(32)【優先日】2017-06-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】リークマンス,エリ
(72)【発明者】
【氏名】ミハウォフスキ,マレク
【審査官】杉田 隼一
(56)【参考文献】
【文献】米国特許出願公開第2006/0181236(US,A1)
【文献】特開2003-330511(JP,A)
【文献】特表2004-528956(JP,A)
【文献】特開平08-016225(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
エンドエフェクタを含むロボットデバイスによる物体への経路ベースタスクのタスク情報を決定することであって、前記タスク情報は、(i)少なくとも1つのタスクパラメータおよび(ii)前記物体の公称表現を備えることと、
前記タスク情報に基づいて、前記エンドエフェクタが前記タスクを実行するための1または複数のパラメトリック命令を決定することであって、前記1または複数のパラメトリック命令は、前記経路ベースタスクの実行時に前記エンドエフェクタが辿るための工具経路を示すことと、
センサデータに基づいて、前記物体の観察表現を生成することと、
前記物体の前記観察表現と前記物体の前記公称表現との間の1または複数の逸脱を識別することと、
前記1または複数の逸脱に少なくとも基づいて、前記経路ベースタスクの遂行をもたらすために前記1または複数のパラメトリック命令を更新することと、
更新された前記1または複数のパラメトリック命令を前記物体の前記観察表現にマッピングすることと、
前記ロボットデバイスに前記経路ベースタスクを実行させるために、前記マッピングされたパラメトリック命令を前記エンドエフェクタへ送信することとを含
前記1または複数のパラメトリック命令は、前記エンドエフェクタが前記工具経路に沿って動く時に前記エンドエフェクタの動作を制御する1または複数の制御パラメータに関する1または複数の値を更に示し、前記1または複数のパラメトリック命令の更新時に前記1または複数の逸脱に基づいて前記1または複数の制御パラメータが更新される、方法。
【請求項2】
前記1または複数のパラメトリック命令は、前記経路ベースタスクを実行する前記エンドエフェクタが前記少なくとも1つのタスクパラメータを満たすように、前記エンドエフェクタのための命令を定義する、請求項1に記載の方法。
【請求項3】
前記エンドエフェクタが前記タスクを実行するための1または複数のパラメトリック命令を決定することは、前記エンドエフェクタの特徴または前記物体の特徴の少なくとも1つに更に基づく、請求項1に記載の方法。
【請求項4】
前記1または複数のパラメトリック命令をマッピングすることは、前記工具経路を前記物体の前記観察表現にマッピングすることを含む、請求項1に記載の方法。
【請求項5】
前記1または複数の制御パラメータは、前記エンドエフェクタの速度、前記エンドエフェクタによって印加される圧力、及び、前記エンドエフェクタによって印加されるトルクの1または複数を含む、請求項に記載の方法。
【請求項6】
前記経路ベースタスクは接着タスクであり、前記エンドエフェクタは、前記物体の表面に接着剤を堆積させるアプリケータを備える、請求項1に記載の方法。
【請求項7】
前記1または複数のパラメトリック命令は、前記接着剤アプリケータが前記工具経路に沿って動く速度、堆積させる接着剤の量、及び、前記接着剤アプリケータが前記接着剤を前記表面に分注する圧力の少なくとも1つを更に示す、請求項に記載の方法。
【請求項8】
前記少なくとも1つのタスクパラメータは、前記表面における所望の堆積被覆領域である、請求項に記載の方法。
【請求項9】
前記工具経路に沿って動く前記接着剤アプリケータは、前記接着剤を堆積パターンに堆積させ、前記堆積パターンは、幅、長さ、および深さを有する、請求項に記載の方法。
【請求項10】
前記経路ベースタスクはサンディングタスクであり、前記エンドエフェクタはサンダであり、前記タスクパラメータは所望の表面仕上がりを含む、請求項1に記載の方法。
【請求項11】
前記物体の材料の種類を示す材料特性情報を決定することと、
前記材料特性情報および前記タスクパラメータに基づいて、(i)前記工具経路に沿って動く間の前記エンドエフェクタの動きの速度、および(ii)前記エンドエフェクタによって付与される圧力を決定することと
を更に含む、請求項10に記載の方法。
【請求項12】
前記物体の前記公称表現は、前記物体の組立て前モデルによって提供され、前記物体の前記観察表現は、前記物体の組立て後の表現を含む、請求項1に記載の方法。
【請求項13】
物体と相互作用するように構成されたエンドエフェクタを備えるロボットデバイスと通信するための少なくとも1つの通信インタフェースと、
スキャナデバイスと通信するための少なくとも1つの通信インタフェースと、
少なくとも1つのプロセッサと、
機能を実行するために前記少なくとも1つのプロセッサによって実行可能なプログラム命令を備える非一時的コンピュータ可読媒体(CRM)と、を備え、
前記機能は、
前記エンドエフェクタによる物体の表面への経路ベースタスクに関する1または複数のパラメトリック命令を決定することであって、前記1または複数のパラメトリック命令は、前記表面における経路を示し、前記表面の公称表現に基づくことと、
前記表面の製作が完了したこと、およびそれに応じて前記スキャナデバイスに前記表面の走査を実行させることを決定することと、
前記走査に基づいて、前記表面の観察表現を決定することと、
前記表面の前記観察表現と前記表面の前記公称表現との間の1または複数の逸脱の識別に少なくとも基づいて、前記表面の前記観察表現に従って前記表面への前記経路ベースタスクの遂行をもたらすために前記1または複数のパラメトリック命令を更新することと、
前記ロボットデバイスに前記表面への前記経路ベースタスクを実行させるために、前記少なくとも1つの通信インタフェースを介して、前記1または複数の更新された命令を前記ロボットデバイスへ送信することとを含
前記1または複数のパラメトリック命令は、前記エンドエフェクタが前記経路に沿って動く時に前記エンドエフェクタの動作を制御する1または複数の制御パラメータに関する1または複数の値を更に示し、前記1または複数のパラメトリック命令の更新時に前記1または複数の逸脱に基づいて前記1または複数の制御パラメータが更新される、システム。
【請求項14】
前記エンドエフェクタが前記タスクを実行するための1または複数のパラメトリック命令を決定することは、前記エンドエフェクタの特徴または前記物体の特徴の少なくとも1つに更に基づく、請求項13に記載のシステム。
【請求項15】
前記1または複数のパラメトリック命令は、前記エンドエフェクタのための前記表面に対する更新された経路を決定することを含む、請求項13に記載のシステム。
【請求項16】
物体のパラメトリックモデルを分析することと、
前記分析に基づいて、(i)エンドエフェクタを含むロボットデバイスによって前記物体に実行される経路ベースタスクのパラメータを決定すること、および(ii)前記エンドエフェクタのためのパラメトリック工具経路を生成することと、
前記経路ベースタスクのランタイムに、前記物体の表現を示すセンサデータを受信することと、
前記センサデータに基づいて、前記物体の表現と前記物体のパラメトリックモデルとの間の1または複数の逸脱を識別することと、
前記1または複数の逸脱に少なくとも基づいて、前記経路ベースタスクの遂行をもたらすために前記パラメトリック工具経路を更新することと、
更新された前記パラメトリック工具経路を前記物体の前記表現にマッピングすることと、
前記エンドエフェクタに、前記マッピングされた工具経路を辿ることによって前記経路ベースタスクを実行させる命令を生成することと、
前記ロボットデバイスに前記物体への前記経路ベースタスクを実行させるために、前記エンドエフェクタへ前記命令を送信することとを含
前記1または複数のパラメトリック命令は、前記エンドエフェクタが前記パラメトリック工具経路に沿って動く時に前記エンドエフェクタの動作を制御する1または複数の制御パラメータに関する1または複数の値を更に示し、前記1または複数のパラメトリック命令の更新時に前記1または複数の逸脱に基づいて前記1または複数の制御パラメータが更新される、方法。
【請求項17】
前記エンドエフェクタのためのパラメトリック工具経路を生成することは、前記物体の1または複数の特徴からの距離の関数として前記パラメトリック工具経路を定義することを備える、請求項16に記載の方法。
【請求項18】
前記パラメトリック工具経路をマッピングすることは、
前記物体の前記1または複数の特徴を特定するために前記表現を用いることと、
前記物体の前記1または複数の特徴に対する前記パラメトリック工具経路をマッピングすることとを含む、請求項17に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] ロボットは、ロボットが物体を操作することを可能にする1または複数のエンドエフェクタ、および物体の操作をガイドする1または複数のセンサを含んでよい。たとえばロボットは、複数の物体を所望の物理構造に組み合わせるためにエンドエフェクタ(複数も可)およびセンサ(複数も可)を用いてよい。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002] ロボットデバイスは、目標物体に関連するタスクを実行するために特定の工具経路を辿るようにエンドエフェクタを制御してよい。実際、エンドエフェクタは一般に、既定の軌道を辿るので、目標物体がそのモデルから逸脱する場合、所定の軌道を辿るエンドエフェクタは、所望のとおりにタスクを実行する可能性が低い。本明細書において、エンドエフェクタが目標物体に関連する経路ベースタスクを実行するための命令を生成するためのシステムおよび方法が開示される。命令は、目標物体のパラメトリックモデルに基づいて生成される。具体的には、システムは、エンドエフェクタのために、パラメトリックモデルの1または複数の特徴に対して定義されたパラメトリック工具経路を決定してよい。その後、ランタイムにおいてシステムは、パラメトリック工具経路をアズビルト目標物体の特徴にマッピングしてよい。物体および/または作業現場に対して工具経路をパラメータ的に定義し、その後、アズビルト目標物体および/または作業現場に工具経路をマッピングすることによって、エンドエフェクタは、目標物体がそのモデルから逸脱する場合でも、所望のとおりに経路ベースタスクを実行することができる。
【0003】
[0003] 1つの態様において、方法が提供される。方法は、エンドエフェクタによる物体への経路ベースタスクのタスク情報を決定することを伴い、タスク情報は、(i)少なくとも1つのタスクパラメータおよび(ii)物体の公称表現を備える。方法は更に、タスク情報に基づいて、エンドエフェクタがタスクを実行するための1または複数のパラメトリック命令を決定することを伴い、1または複数のパラメトリック命令は、経路ベースタスクの実行時にエンドエフェクタが辿るための工具経路を示す。また方法は、センサデータに基づいて、物体の観察表現を生成することも伴う。また更に方法は、物体の観察表現と公称表現とを比較することと、比較に基づいて、1または複数のパラメトリック命令を物体の観察表現にマッピングすることを伴う。方法は更に、ロボットデバイスに経路ベースタスクを実行させるために、マッピングされた命令をエンドエフェクタへ送信することを伴う。
【0004】
[0004] 他の態様において、システムが提供される。システムは、ロボットデバイスと通信するための少なくとも1つの通信インタフェースを含み、ロボットデバイスは、物体表面と相互作用するように構成されたエンドエフェクタを備える。またシステムは、スキャナデバイスと通信するための少なくとも1つの通信インタフェース、および少なくとも1つのプロセッサも含む。システムは更に、機能を実行するために少なくとも1つのプロセッサによって実行可能なプログラム命令を含む非一時的コンピュータ可読媒体(CRM)を含み、機能は、エンドエフェクタによる物体の表面への経路ベースタスクに関する1または複数のパラメトリック命令を決定することであって、1または複数のパラメトリック命令は、表面における経路を示し、表面の公称表現に基づくことを含む。また機能は、表面の製作が完了したこと、およびそれに応じてスキャナデバイスに表面の走査を実行させることを決定することも含む。機能は更に、走査に基づいて表面の観察表現を決定すること、および表面の観察表現と表面の公称表現との比較に基づいて、表面の観察表現に従って表面への経路ベースタスクの遂行をもたらすために1または複数のパラメトリックベース命令を更新することを含む。加えて機能は、ロボットデバイスに表面への経路ベースタスクを実行させるために、少なくとも1つの通信インタフェースを介して、1または複数の更新された命令をロボットデバイスへ送信することを含む。
【0005】
[0005] また他の態様において、方法が提供される。方法は、物体のパラメトリックモデルを分析することを伴う。方法は更に、分析に基づいて、(i)エンドエフェクタによって物体に実行される経路ベースタスクのパラメータを決定すること、および(ii)エンドエフェクタのためのパラメトリック工具経路を生成することを伴う。また方法は、経路ベースタスクのランタイムに、物体の表現を示すセンサデータを受信することも伴う。また更に方法は、センサデータに基づいて、パラメトリック工具経路を物体の表現にマッピングすることを伴う。方法は更に、エンドエフェクタに、マッピングされた工具経路を辿ることによって経路ベースタスクを実行させる命令を生成することを伴う。更に方法は、ロボットデバイスに物体への経路ベースタスクを実行させるために、エンドエフェクタへ命令を送信することを伴う。
【0006】
[0006] これらの態様、利点、および代替例とともに他の態様、利点、代替例は、添付図面を適宜参照して以下の発明を実施するための形態を読み取ることにより、当業者に明らかになる。なお、この発明の概要および本文書のどこかに記載された説明は、特許請求の範囲に記載の主題事項を限定的にではなく例示的に示すことが意図されている。
【図面の簡単な説明】
【0007】
図1】[0007]実施形態例に係る、ロボット制御システムのブロック図を示す。
図2】[0008]実施形態例に係る、ロボットの図を示す。
図3】[0009]実施形態例に係る、生産現場において展開されるロボットデバイスの図を示す。
図4A】[0010]実施形態例に係る、物体のパラメトリックモデルを示す。
図4B】[0011]実施形態例に係る、アズビルト物体を示す。
図5A】[0012]実施形態例に係る、エンドエフェクタによって物体に実行される他のタスクを示す。
図5B】[0013]各々が、実施形態例に係る、それぞれの堆積パターン形状を示す。
図5C】[0013]各々が、実施形態例に係る、それぞれの堆積パターン形状を示す。
図5D】[0013]各々が、実施形態例に係る、それぞれの堆積パターン形状を示す。
図6】[0014]実施形態例に係る、エンドエフェクタによって物体に実行されるさらに他のタスクを示す。
図7】[0015]実施形態例に係る、プロセスのフロー図である。
図8】[0016]実施形態例に係る、他のプロセスのフロー図である。
図9】[0017]実施形態例に係る、他のプロセスのフロー図である。
図10】[0018]実施形態例に係る、さらに他のプロセスのフロー図である。
図11】[0019]実施形態例に係る、ロボットデバイスのブロック図を示す。
【発明を実施するための形態】
【0008】
[0020] 以下の発明を実施するための形態は、添付図面を参照して開示されるシステムおよび方法の様々な特徴および機能を説明する。図において、類似した記号は、文脈が特に指示しない限り、類似した構成要素を識別する。本明細書で説明される例示的なシステムおよび方法の実施形態は、限定的なものとして意図されない。容易に理解され得るように、開示されるシステムおよび方法の特定の態様は、異なる様々な構成で配置および結合されてよく、その全てが本明細書において意図される。
【0009】
I.概要
[0021] ロボット制御システムは、作業現場内にあるロボットデバイスを含んでよく、ロボットデバイスは、物理物体を操作または物理物体に関与することを伴うタスクをロボットデバイスが実行することを可能にする1または複数のエンドエフェクタ(たとえばアームエンド工具)を含んでよい。ロボットデバイスは、エンドエフェクタの物理物体の操作をガイドする他の構成要素(たとえばセンサ)も含んでよい。例において、コントローラは、ロボットデバイスへ、エンドエフェクタ(複数も可)およびセンサ(複数も可)を用いて物理物体の操作または物理物体との相互作用を伴うタスクを実行する命令を送信してよい。タスクは、たとえば作業現場においてシステムが実行する建設プロジェクトなど、より大きなプロセスまたはプロジェクトの一部であってよい。
【0010】
[0022] 具体的には、ロボット制御システムは、たとえば経路ベースタスクなどの様々な種類のタスクを実行するようにエンドエフェクタをプログラムしてよい。経路ベースタスクを実行するために、エンドエフェクタは、規定の軌道(たとえば経路)を辿るようにプログラムされてよく、経路に沿って移動しながら様々な位置またはエリアで行うべき(または行うべきではない)動作に関する命令を提供される。具体的には、タスクは、規定の軌道に沿った様々な地点またはエリアでエンドエフェクタによって実行される複数の動作を含んでよい。軌道は、ユーザ(たとえば設計者)によって予め決定されてよく、または制御システムによって予め決定され得る。なお、ロボットデバイスは、ある種のタスクを実行するときに所定の軌道を反復的に実行するように構成され得る。たとえば、タスクは堆積タスクであってよく、接着剤アプリケータを含むエンドエフェクタは、接着剤を物体に堆積させることを課される。ロボットデバイスは、接着剤を物体に堆積させるためにエンドエフェクタを所定の軌道で動かしてよい。いくつかの例において、ロボットデバイスは、(たとえば製造または処理環境内の)所定の軌道に沿ってエンドエフェクタを動かすことによってタスクを反復的に実行するように構成され得る。
【0011】
[0023] 経路ベースタスクの例は、輪郭を有する表面においてたとえば接着剤、コーキング、モルタルなどの接着剤が表面に堆積される堆積タスクであってよい。タスクを割り当てられたロボットデバイスは、接着剤を表面に分注する機能を持つエンドエフェクタを備えてよい。ロボット命令は、エンドエフェクタを制御するロボットアームの動きを指定する。命令は、ロボットアームに、接着剤を所望のパターンで表面に堆積させるようにエンドエフェクタを動かせてよい。上述したように、実際、ロボットデバイスは、たとえば製造プロセスなどにおいて接着剤堆積タスクを実行するために所定の軌道に沿ってロボットアームを動かす所定の命令を含んでよい。
【0012】
[0024] 場合によっては、ロボットデバイスは、より大きなプロジェクトの一部として経路ベースタスクを実行してよい。ロボットデバイスは、設計に基づいて出力製品を組み立てるプロジェクトを実行するシステムの一部であってよい。出力製品の組立てプロセスの一部は、ロボットデバイスが経路ベースタスクを実行することを伴ってよい。たとえばロボットデバイスは、製品がシステムによって製作または組立てされた後、出力製品の表面を塗装するように構成され得る。
【0013】
[0025] しかし、実際に行われているような工具経路の所定のプログラミングは、たとえば材料堆積、サンディング、バリ取り、研削、厳密な公差による差込み、研磨などの経路ベースタスクに適していない。軌道を予め定義することによるロボットデバイスのプログラミングは、タスクが実行される度にモデルが一致しない限り、経路ベースタスクの実行中に不整合性をもたらし得る。不整合性は、「アズビルト」物理製品がその公称設計から逸脱することによって生じ得る。
【0014】
[0026] 本明細書において、エンドエフェクタが目標物体に関連するタスクを実行する時にエンドエフェクタが辿るためのパラメトリック工具経路を生成し得る方法およびシステムが開示される。実装において、組立て前段階において、システムは、エンドエフェクタがモデルによって指定された結果(すなわちタスクパラメータ)を実現するように物体を操作するためにエンドエフェクタをどのように動かすかを決定するために、物体のモデルを分析してよい。たとえば物体のモデルは、物体の表面が所望の仕上がりを有することを示してよい。システムは、その後、(i)表面の所望の仕上がりを決定するため、および(ii)工具経路を辿る時にエンドエフェクタが表面を所望の仕上がりに磨くことができるようにサンディングエンドエフェクタのための工具経路を生成するために、モデルを分析してよい。具体的には、システムは、1または複数のパラメータの関数として工具経路を定義してよい。たとえば、パラメトリック工具経路は、モデル化物体の1または複数の特徴に対する位置(たとえば距離および/または配向)の関数として定義され得る。
【0015】
[0027] その後、システムが組み立て段階においてタスクを実行するように(すなわちランタイム)スケジュールされると、システムは、作業現場を示すリアルタイムセンサデータを受信してよく、データに基づいて、作業現場の表現を生成してよい。システムは次に、パラメトリック工具経路を作業現場の表現にマッピングしてよい。パラメトリック工具経路のマッピングは、(i)表現上で、それに対する工具経路が定義される特徴を識別すること、および(ii)それらの特徴に対する工具経路を生成することを含む。
【0016】
[0028] システムはその後、エンドエフェクタに経路ベースタスクを実行させる命令を生成してよい。特に、これらの命令は、エンドエフェクタに、タスクの実行時にマッピングされたパラメトリック工具経路に沿って動かせてよい。システムはその後、ロボットデバイスがタスクを実行し得るようにロボットデバイスへ命令を送信してよい。
【0017】
[0029] パラメトリック工具経路を定義することによって、所定の位置命令とは対照的に、システムは、作業現場および/またはアズビルト目標物体における、それらのそれぞれのモデルからの任意の逸脱を考慮に入れることができる。具体的には、パラメトリック工具経路を作業現場のリアルタイム表現にマッピングすることにより、マッピングされた工具経路は、物体および/または作業現場のモデルによって示された位置ではなく実際の位置に対して定義されるので、任意の逸脱が考慮に入れられる。
【0018】
[0030] これを説明するために、接着剤を物体の表面に堆積させるタスクを考える。現在のシステムは、その表面が作業現場内でどこに位置するかを決定するために、物体のモデルを用いる。これらのシステムは次に、表面が位置することをモデルが示す場所に基づいて、工具経路を定義する。しかし、アズビルトがモデルから逸脱し、表面の位置がモデルによって示された位置からずれている状況では、工具経路を辿るエンドエフェクタは、表面の所望のエリアに接着剤を堆積させる可能性が低い。この結果は、工具経路が、表面の実際の位置ではなく、表面が位置することをモデルが示した場所に基づいて定義されたことに起因する。
【0019】
[0031] 対照的に、本明細書に開示されるシステムにおいて、パラメトリック工具経路は、表面の特徴に対して定義され得る。その後、ランタイムにおいてシステムは、物体を走査し、パラメトリック工具経路を表面の特徴にマッピングしてよい。具体的には、工具経路のマッピングは、表面の特徴を識別すること、および工具経路が表面の特徴から規定の距離にあるように工具経路に関する座標を決定することを含む。したがって、特定の表面が、もはや物体のモデルによって示された位置にない場合でも、パラメトリック工具経路はアズビルト目標物体にマッピングされているため、マッピングされたパラメトリック工具経路を辿るエンドエフェクタは、特定の表面に接着剤を堆積させる。よって本明細書に開示されるシステムは、作業現場または物体におけるそれらのそれぞれのモデルからの任意の逸脱または変更に対しオンザフライで調整することができる。オンザフライで調整する能力によって、システムは、モデルからの逸脱または変更の検出に応じてモデルを更新し新たなタスク命令を生成する必要がないので、大幅な遅延なくタスクを実行することが可能である。
【0020】
II.ロボットシステム例
[0032] 図1は、本明細書で説明される実施形態と関連して用いられ得るロボット制御システム100の構成例を示す。ロボット制御システム100は、自律的に、半自律的に、および/またはユーザ(複数も可)によって提供される指示を用いて動作するように構成され得る。ロボット制御システム100は、たとえば建設現場、生産現場、製造現場、検査または品質管理現場などの作業現場の管理を担当してよい。たとえば建設または製造現場において、ロボット制御システム100は、製品(相互置換的に「出力製品」とも称される)の建設または製造の調整を担当してよい。具体的には、そのようなロボット制御システムは、製品を構築するための1または複数のロボットデバイスを制御してよく、1または複数のセンサを用いて環境を監視してもよい。
【0021】
[0033] 図1に示すように、ロボット制御システム100は、エンドエフェクタ120を制御するように構成されたロボットデバイス110を含む。エンドエフェクタ120は、作業面(たとえば出力製品の表面)にタスクを行うように構成された工具エンドエフェクタであってよく、たとえばロボットデバイス110のロボットアームなどの可動部品に取り付けられ得る。ロボットデバイス110は、作業現場(たとえば図3に示す生産現場302)内に位置してよい。
【0022】
[0034] 1つの例によると、作業現場は、ロボットデバイスが製品(たとえばテーブル、飛行機の翼など)を組み立てるための組立ラインにおいてパーツを取り付ける現場であってよい。追加の例によると、作業現場は組立ラインではなく、ロボットデバイスが物理構造を構築するために様々なパーツを組み合わせる現場であってよい。これらの例において、作業現場は一時的な場所であってよく、そこから、完成した物理構造は、組立てが完了すると他の場所(たとえば配送者または顧客位置)へ(たとえば製品として)配達され得る。
【0023】
[0035] また他の例によると、作業現場は、ロボットデバイスが橋または道路を建設するために重い建設材を用いて作業する公営現場であってよい。更なる例によると、作業現場は、ロボットデバイスが家屋または建物を建設するために建設材を用いて作業する建設現場であってよい。作業現場は、ロボットデバイスが家屋の一部を建設するために建材を設置する家屋内部であってもよい。これらの例において、完成した物理構造は、作業現場内に設置される。また他の例によると、作業現場は、ロボットデバイスが、製品が指定の規格を満たすかを決定するために製品を走査する品質または検査管理現場であってよい。
【0024】
[0036] ロボット制御システム100は更に、作業現場を表す環境データを提供するように構成されたローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140を含んでよい。たとえばローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140は、たとえばシステムによって組立て中の製品などの様々な物体の作業現場内の位置を決定してよい。他の例として、ローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140は、ロボット制御システム100が作業現場の「ワールドマップ」を生成するために用いることができるデータをロボット制御システム100に提供してよい。ワールドマップは、作業現場のリアルタイムまたはほぼリアルタイムの表現を示してよい。したがって、ローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140は、ロボット制御システム100がワールドマップを継続的または定期的に更新することができるように、ロボット制御システム100にデータを提供してよい。ロボット制御システム100は、作業現場におけるタスクの遂行を追跡するためにセンサデータおよび/またはワールドマップを用いてもよい。具体的には、ロボット制御システム100は、タスクに関与する任意のロボットデバイス、タスクの実行に用いられた任意の材料、およびタスクの実行の結果であるアズビルト製品への任意の変更を追跡してよい。
【0025】
[0037] また、ローカルセンサ(複数も可)130は、ロボットデバイス110またはロボットデバイス110内に配置されてよく、作業面(たとえば組立て中の製品の表面)に対するエンドエフェクタ120の位置を測定するように構成され得る。ローカルセンサ(複数も可)130は、作業面の特徴を走査または捕捉するようにも構成され得る。一方、グローバルセンサ(複数も可)140は、作業現場内に配置されてよく、生産現場内の座標系に対する出力製品の位置を測定するように構成され得る。グローバルセンサ(複数も可)140は、座標系または他の物体(たとえばロボットデバイスの基部の位置)に対するエンドエフェクタ120の位置を測定するようにも構成され得る。また、グローバルセンサ(複数も可)は、ロボットデバイス110の位置を測定するようにも構成され得る。
【0026】
[0038] 実施形態において、グローバルセンサ(複数も可)140は、非常に高い解像度(たとえば100分の1ミリメートル)のレーザトラッカシステムを含んでよい。レーザトラッカシステムは、作業現場内の物体の位置を決定するために用いられ得る。ただし、グローバルセンサ(複数も可)140はレーザトラッカシステムに限定されず、たとえば特にモーションキャプチャセンサ、スキャナ、光検出測距(LIDAR)センサ、点群センサ、超音波距離センサ、グローバルポジショニングシステム(GPS)受信器、ソナー、光学センサ、無線周波数識別(RFID)システム、近距離通信(NFC)チップ、無線センサ、ラジオセンサ、レーダ、カメラ(たとえばカラーカメラ、グレースケールカメラ、および/または赤外線カメラ)、および/または距離センサ(たとえば超音波および/または赤外線)など、作業現場内に位置する物体の特徴を補足することが可能な任意のセンサを含んでよい。
【0027】
[0039] ローカルセンサ(複数も可)130は、オプティカルフローデータを提供するための高速カメラまたは慣性測定ユニット(IMU)を含んでよい。ただし、ローカルセンサ(複数も可)130は高速カメラまたはIMUに限定されず、作業面に対するエンドエフェクタ120の位置を測定または作業面の特徴を補足することが可能な任意のセンサを含んでよい。そのようなセンサは、特に、力センサ、近接センサ、モーションセンサ(たとえばジャイロスコープおよび/または加速度計)、負荷センサ、位置センサ、熱画像センサ、深さセンサ(たとえばRGB-D、レーザ、構造化光、および/または飛行時間カメラ)、超音波距離センサ、赤外線センサ、光学センサ、無線周波数識別(RFID)システム、近距離通信(NFC)チップ、無線センサ、光センサ、タッチセンサ(たとえば容量式センサ)、スキャナ、カメラ(たとえばカラーカメラ、グレースケールカメラ、および/または赤外線カメラ)、および/または距離センサ(たとえば超音波および/または赤外線)を含む。いくつかの実施形態において、作業面に対するエンドエフェクタ120の位置は、ホイールオドメトリおよび/またはロボット順運動学を用いて決定され得る。
【0028】
[0040] また、ローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140は、可能性のある様々な位置の中でも特に、作業現場内または作業現場の近傍に位置してよい。たとえばローカルセンサ(複数も可)130は、ロボットデバイス110に取り付けられ得る。いくつかの実施形態において、グローバルセンサ(複数も可)140は、たとえば専用感知設備として、作業現場全体にわたる固定位置に配置され得る。また、実装例は、たとえばモバイルフォン、ラップトップ、および/またはタブレットなどの既存のデバイスに組み込まれたセンサを用いてもよい。これらのデバイスは、たとえば建設現場における建設作業員など、生産現場に存在する作業員の所有物であってよい。
【0029】
[0041] 図1は、ローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140からのデータを受信し得るコントローラ150も示す。具体的には、ローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140は、通信ユニット160を通してコントローラ150へセンサデータを提供してよい。通信ユニット160は、(たとえば様々な無線送信器および受信器を用いて)有線リンクおよび/または無線リンクを含んでよい。有線リンクはたとえば、並列バスまたはたとえばユニバーサルシリアルバス(USB)などの直列バスを含んでよい。無線リンクはたとえば、様々な可能性の中でも特に、Bluetooth、IEEE 802.11(IEEE 802.11は、IEEE 802.11-2007、IEEE 802.11n-2009、または他の任意のIEEE 802.11改訂版を指してよい)、Cellular(たとえばGSM、GPRS、CDMA、UMTS、EV-DO、WiMAX、HSPDA、またはLTE)、またはZigbeeを含んでよい。また、たとえばセルラ通信プロトコル(たとえばCDMA、GSM、またはWiMAX、ならびに802.11を用いる「WiFi」接続用)を用いるたとえば「3G」または「4G」データ接続といった、多数の有線および/または無線プロトコルが用いられ得る。
【0030】
[0042] 他の例において、ロボット制御システム100はアクセスポイントを含んでよく、これを介してローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140および/またはコントローラ150はクラウドサーバと通信してよい。アクセスポイントは、たとえば無線アクセスポイント(WAP)または無線ルータの形式などの様々な形式をとってよい。また、たとえばCDMAまたはGSMプロトコルなどのセルラエアインタフェースプロトコルを用いて接続が行われる場合、アクセスポイントは、セルラネットワークを介してインターネット接続を提供するセルラネットワーク内の基地局であってよい。他の例も可能である。
【0031】
[0043] コントローラ150は、1または複数のプロセッサ(複数も可)152、データストレージ154、プログラム命令156、入力/出力ユニット158、および電源162を含むように示される。ただし、コントローラ150は説明のために示されただけであり、本開示の範囲から逸脱することなく、コントローラ150は追加の構成要素を含んでよく、および/または1または複数の構成要素が取り除かれてよいことに留意する。なお、コントローラ150の様々な構成要素は、任意の方法で配置され接続され得ることに留意する。コントローラ150は、ロボットデバイス110に全体的または部分的に組み込まれてよく、あるいは様々な可能性の中でも特にデスクトップコンピュータ、ラップトップ、タブレット、装着型コンピューティングデバイス、および/またはモバイルフォンの形式をとってよい。
【0032】
[0044] 1または複数のプロセッサ(複数も可)152のうちの各プロセッサは、汎用プロセッサまたは専用プロセッサ(たとえばデジタル信号プロセッサ、特定用途向け集積回路など)であってよい。プロセッサ(複数も可)152は、データストレージ154に格納され、本明細書で説明されるコントローラ150の機能を提供するために実行可能なコンピュータ可読プログラム命令156を実行するように構成され得る。たとえばプログラム命令156は、ローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140から受信したセンサデータの処理を提供するために実行可能であってよい。
【0033】
[0045] データストレージ154は、プロセッサ(複数も可)152によって読取りまたはアクセスすることができる1または複数のコンピュータ可読記憶媒体を含み、またはその形式をとってよい。1または複数のコンピュータ可読記憶媒体は、全体的または部分的にプロセッサ(複数も可)152に統合され得る、たとえば光、磁気、有機、または他のメモリまたはディスクストレージなどの揮発性および/または不揮発性記憶部品を含んでよい。いくつかの実施形態において、データストレージ154は、単一の物理デバイス(たとえば1つの光、磁気、有機、または他のメモリまたはディスクストレージユニット)を用いて実装され得るが、他の実施形態において、データストレージ154は、2つ以上の物理デバイスを用いて実装され得る。また、コンピュータ可読プログラム命令156に加えて、データストレージ154は、たとえば様々な可能性の中でも特に診断データなどの追加のデータを含んでよい。またコントローラ150は、コントローラ150の様々な構成要素に電力を供給するように構成された電源162も含んでよい。たとえば電池からの直流電流または電源からの交流電流など、任意の種類の電源が用いられ得る。
【0034】
[0046] データストレージ154は、ロボット制御システム100によって構築または組立てされ得る出力製品の設計(本明細書においてモデルとも称される)164も含んでよい。設計164は、2次元(2D)および/または3次元(3D)コンピュータ支援設計(CAD)であってよい。また設計164は、データストレージ154に格納されたコンピュータ可読プログラム命令として具体化され得る。また、設計164は、ロボットデバイス110が操作および/または相互作用し得る物体の設計であってよい。たとえば建設材(たとえばレンガ、タイルなど)などであるこれらの物体は、作業現場内に位置してよく、出力製品を構築するためにロボットデバイス110によって用いられ得る。
【0035】
[0047] 設計164は、出力製品の物理構造がどのように構成され、ロボットデバイス110によって構築されるとどのように働くかも示してよい。よって、後述するように、コントローラ150は、ロボットデバイス110のための命令を生成するためのガイドとして設計164を用いてよい。命令は、出力製品の一部または全体を構築するためにロボットデバイス110によって行われ得る特定のロボット動作を示してよい。
【0036】
[0048] 設計164は、出力製品の特性のセットも示してよい。たとえば特性のセットは、様々な特性の中でも特に、たとえば色、模様、視覚パターン、および表面加工/性状などの審美性を示してよい。追加または代替として、特性のセットは、様々な特性の中でも特に、たとえば曲げ強度、脆性、体積弾性率、摩擦係数、圧縮強度、クリープ、弾性、疲労強度、可撓性、破壊靭性、硬度、可塑性、弾力、せん断強度、剛性、応力/張力特性、表面粗さ、引張り強度、靭性、粘性、降伏強度、および重量などの機械特性を示してよい。追加および/または代替として、特性のセットは、たとえば形状、サイズ、配向、角度などの幾何学的特性を示してよい。
【0037】
[0049] 追加または代替として、特性のセットは、様々な特性の中でも特に、たとえば静電容量、導電性、密度、絶縁耐力、現場特性、インダクタンス、誘電率、および抵抗などの電気および/または磁気特性を示してよい。追加または代替として、特性のセットは、様々な特性の中でも特に、たとえば耐腐食性、燃焼性、pH、反応性、安定性、表面エネルギ/張力、および毒性などの化学特性を示してよい。追加または代替として、特性のセットは、様々な技術の中でも特に、たとえば塗装、切断、穿孔、形成、および成形プロセス、熱処理、接合、機械加工、回転、サンディング、および溶接に関する製造特性を示してよい。追加または代替として、特性のセットは、様々な特性の中でも特に、たとえば吸光度、蛍光発光、感光性、反射率、屈折率、散乱、および透過率などの光学特性を示してよい。追加または代替として、特性のセットは、様々な特性の中でも特に、たとえば沸点、臨界点、放射率、融解点、比熱、熱伝導率、熱拡散率、および熱膨張などの熱特性を示してよい。
【0038】
[0050] 図1は更に、入力/出力ユニット158を含むコントローラ150を示す。入力/出力ユニット158は、ディスプレイを介してユーザに情報を出力してよい。ディスプレイは、任意の形式をとってよく、コントローラ150のユーザに画像および/またはグラフィックを投影するように配置され得る。配置例において、入力/出力ユニット158内のプロジェクタは、ディスプレイの表面に画像および/またはグラフィックの様々な投影図を投影するように構成され得る。ディスプレイは、たとえばエレクトロルミネセンスディスプレイまたは液晶ディスプレイ、ユーザの目に画像を伝えるための1または複数の導波管、またはユーザに画像を伝えることができる他の光学素子などの不透明または透明(または半透明)マトリックスディスプレイを含んでよい。対応するディスプレイドライバは、そのようなマトリックスディスプレイを駆動するためのコントローラ150内に配置され得る。ディスプレイに関して他の配置も可能であってよい。このように、ディスプレイは、本明細書に開示されるシステムとユーザがインタラクトし得るアプリケーションを提供し得るグラフィカルインタフェースを示してよい。
【0039】
[0051] また、ロボット制御システム100は、入力/出力ユニット158のディスプレイにワールドマップを表示してよい。したがって入力/出力ユニット158は、アズビルト製品を含む作業現場のリアルタイムまたはほぼリアルタイムの表現を表示してよい。その結果ユーザは、出力製品の構築または組立ての進捗を監視してよい。作業現場を示すリアルタイムフィードバックデータ(たとえばローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140からのデータ)に基づいて、表示されたワールドマップは、作業現場におけるリアルタイム変化を反映するように更新され得る。
【0040】
[0052] 入力/出力ユニット158は、タスク制御も含んでよい。タスク制御は、ユーザに、タスク実行のリアルタイム制御を提供してよい。たとえばユーザは、タスクを開始、停止、スキップ、または修正し得る入力を提供することができ得る。たとえば、ディスプレイに表示されたグラフィカルインタフェースは、ロボット制御システム100が行うタスクのタスクキューを含んでよい。グラフィカルインタフェースは、ユーザがタスクを開始、停止、スキップ、または修正することを可能にし得る。いくつかの実装において、グラフィカルインタフェースは、ユーザが出力製品に関するパラメータを入力することを可能にし得る。グラフィカルインタフェースは、ユーザが、寸法、密度、曲率特性、他の幾何学的特性、使用される材料、および/または他の数値入力を含む、出力製品の態様に関連し得るパラメータを入力することを可能にし得る。
【0041】
[0053] 更なる例において、グラフィカルインタフェースは、出力製品の建設のタイムラインを含んでよい。タイムラインは、出力製品の組立てプロセスの特定の時点を表し得る、現在のタイムスタンプを表すカーソルを有してよい。加えて、タイムラインは、特定の速度でプロセスを再生する、またはプロセスを早送りまたは巻き戻しするボタンを含んでよい。タイムラインは、作業現場の幾何学または他の態様がディスプレイに表示される時点を制御するために用いられ得る。またタイムラインは、出力製品をシミュレートするため、または作業現場で行われている実際の物理的組立てプロセスをソフトウェア内で視覚化するために、特定の時点を示すために用いられ得る。またユーザは、グラフィカルインタフェースを介して出力製品の設計を修正してよい。
【0042】
[0054] いくつかの例において、ディスプレイは、作業現場の多数の3Dビューをユーザに提供してよく、ユーザが特定のビューの配向および/またはズームを変更することを可能にし得る。他の例において、ディスプレイは、たとえば数値表現など作業現場の他の種類の表現を更にまたは代わりに提示してよい。更なる例において、ユーザは、作業現場および/または作業現場における建設プロセスに影響を及ぼす所望の出力製品を記述する1または複数の変数をユーザが変更することを可能にする3次元(3D)モデリンググラフィカルインタフェースを提供され得る。
【0043】
[0055] 更なる例において、グラフィカルインタフェースは、ランタイム中のプロセスの態様を記述するパラメータを含んでよい。具体的には、ロボットパラメータは、たとえばロボットデバイス110の位置、ロボットデバイス110によって現在使用中である物理的工具、および/またはロボットデバイス110が作業現場内で現在動作している軸など、ロボットデバイス110の特性を記述するロボットパラメータが表示され得る。また、エンドエフェクタ120の動作特性を記述する工具パラメータが表示され得る。たとえば、スピンドルに供給されている電力量、グリッパとともに用いられている力の量が、グラフィカルインタフェース例に表示され得る。また、グラフィカルインタフェースは、センサデータを表示してよい。グラフィカルインタフェースは、タスクの実行の順序および/または速度に関する制御も含んでよい。更に、グラフィカルインタフェースは、たとえばロボット位置および診断など、ロボットアクタに関する制御も含んでよい。加えてグラフィカルインタフェースは、出力製品の様々な属性の制御を可能にし得る。グラフィカルインタフェースにおいて、制御は、ランタイム中に実行されている1または複数のタスクを操作するために提供され得る。たとえば、ユーザは、リアルタイムまたはほぼリアルタイムで予定のタスクを変更することによって組立てプロセスを修正するために、タッチ入力を用いてグラフィカルとインタラクトすることができ得る。
【0044】
[0056] いくつかの例において、グラフィカルインタフェースは、作業現場内の特性のデバイスを選択するためにデバイス制御を含んでよい。たとえばグラフィカルインタフェースは、作業現場内のロボットアクタを表示してよく、特定のロボットデバイスの選択を可能にし得る。加えてグラフィカルインタフェースは、たとえばロボットデバイスの現在位置を記述する位置情報などのロボットパラメータを含んでよい。いくつかの例において、位置は、デカルト座標として、ロボット軸値として、またはその両方で表示され得る。更なる例において、位置情報は、ロボットアクタのエンドエフェクタまたはロボットのエンドエフェクタに搭載された物理的工具の位置を反映してよい。
【0045】
[0057] 加えて、入力/出力ユニット158は、(たとえばコントローラ150のユーザからの)ユーザ入力を受信してよい。具体的には、入力/出力ユニット158は、様々なインタラクションの中でも特に、たとえばスクロール、テキストの提供、および/またはアプリケーションの様々な特徴の選択といったグラフィカルインタフェースとのインタラクションを可能にし得る。入力/出力ユニット158は、様々な形式をとってよい。1つの例において、入力/出力ユニット158は、グラフィカルインタフェースの制御のために用いられるたとえばコンピューティングマウスなどのポインティングデバイスを含んでよい。ただし、入力/出力ユニット158がタッチスクリーンディスプレイを含む場合、グラフィカルインタフェースの制御を可能にするタッチ入力が(たとえば指またはスタイラスを用いて)受信され得る。他の例において、入力/出力ユニット158は、グラフィカルインタフェースを介して表示される数字、文字、および/または記号の選択を提供するキーボードを含んでよい。たとえば、入力/出力ユニット158がタッチスクリーンディスプレイを含む構成において、ディスプレイの一部がキーボードを表示してよい。したがって、キーボードを含むディスプレイの一部におけるタッチ入力の結果、ディスプレイを介してグラフィカルインタフェースに示されるたとえば特定の数字、文字、および/または記号の選択などのユーザ入力がもたらされ得る。また他の例において、入力/出力ユニット158は、様々な音声認識技術の1つを用いて、ディスプレイを介して示され得る1または複数の文字に解釈可能である、たとえばマイクロフォンを通したユーザからのオーディオ入力を受信する音声入力デバイスを含んでよい。他の例も可能であり得る。
【0046】
III.ロボットデバイス例
[0058] 図2は、実施形態例に係るロボットデバイス200を示す。ロボットデバイス200は、図1に示すロボットデバイス110の態様を含んでよい。図2に示すように、ロボットデバイス200は、エンドエフェクタ204を有するロボットアーム202を含んでよい。エンドエフェクタ204は、1または複数の他の工具、グリッパ、またはガイドを備えてよい。ロボットアーム202は、1または複数の自由度に沿って動いてよい。たとえばロボットアーム202は、図2にA1~A6として示す6自由度に沿って動いてよい。特定の例において、ロボットデバイス200は、たとえば左右の動きを可能にするレール(不図示)に沿って、1または複数の軸A0に沿って動いてよい。
【0047】
[0059] 特定の実施形態において、ロボットアーム202を特定の位置に配置するためにロボットデバイス200へ命令が与えられ得る。本明細書で説明するように、A1~A6に沿ったロボットアーム202の位置および/または1または複数の軸A0に沿ったロボットデバイス200の位置は、関連するコントローラのプロセスによって計算され得る。代替実施形態において、ロボットデバイス200および/またはロボットアーム202の位置制御は、独立した個々の設定および制御コマンドを必要とし得る。いくつかの例において、より少ない自由度で動作するロボットデバイスが更にまたは代わりに用いられ得る。
【0048】
[0060] ロボットデバイス200は、エンドエフェクタを交換することも可能であってよい。エンドエフェクタを交換するために、ロボットデバイス200は、ロボットデバイス200またはその付近に保管され得る複数のエンドエフェクタへのアクセスを有してよい。複数のエンドエフェクタは、たとえば工具、グリッパ、センサ、およびガイドエンドエフェクタなどの様々な種類のエンドエフェクタを含んでよい。よって、エンドエフェクタを交換する能力を有するロボットデバイス200は、様々な種類のエンドエフェクタを必要とする様々なタスクを割り当てられ得る。ロボットデバイス200が割り当てられたタスクは、ロボットデバイス200が選択するエンドエフェクタを決定し得る。
【0049】
[0061] 例において、ロボットデバイス200は、出力製品を組立てまたは構築するタスクを行うために用いられ得る。一般に、タスクは、ロボットデバイス200が、(本明細書において目標物体とも称される)物体と相互作用し、または物体を操作するためにエンドエフェクタを用いることを伴ってよい。タスクを実行するために、ロボットデバイスは、物体と相互作用し、または物体を操作するためにエンドエフェクタを経路に沿って動かしてよい。
【0050】
[0062] 上述したように、一般に既存のロボット制御システムは、エンドエフェクタに、所定の軌道(たとえば生産ラインにおける各物体に繰り返し同じパターンで接着剤を堆積させる、生産ライン内の接着剤デポジッタ)を辿らせる。一般にそのようなロボット制御システムは、出力製品のモデルを分析し、その後、出力製品のモデルに基づいてエンドエフェクタのための所定の工具経路を生成する。
【0051】
[0063] しかし、上述したように、アズビルト製品は、出力製品のモデルから逸脱し得る。したがって、アズビルト製品と相互作用するタスクを実行する際にエンドエフェクタが所定の工具経路を辿る場合、目標物体の操作の結果もまた、製品のモデルから逸脱し得る。よって、所定の工具経路を辿ることによってタスクを実行することは、アズビルト製品にばらつき/誤差を招き得る。ばらつき/誤差がそれ自体は小さいものとして現れ得る場合でも、ばらつき/誤差の自然増加は、生産プロセスが、モデルによって定義されたように最終製品を生産することを妨げ得る。この問題を克服するために、本明細書において、エンドエフェクタのタスクの遂行が出力製品のモデルを満たすようにエンドエフェクタのための工具経路を生成するための様々な実装が開示される。
【0052】
IV.システムおよび方法例
[0064] 図3は、典型的な実施形態に係る、ロボットデバイス200が位置する生産現場302を示す。具体的には、ロボットデバイス200のコントローラ308(たとえばロボット制御システムのコントローラ)は、新たな物体を組み立て、または作業現場内の既存の物体と相互作用する命令を受信してよい。たとえばコントローラ308は、作業現場内の既存の物体を修正する命令を受信してよい。図3に示すように、コントローラ308は、ロボットデバイス200を動作させ、ロボットデバイス200に、場合によっては新たな物体を組み立てまたは既存の物体を修正するために、生産現場302またはその付近に位置する物理的物体と相互作用させ、または物理的物体を操作させ得る。図3は更に、アズビルト製品306を示す。アズビルト製品は、ロボットデバイス200によって組立て中の出力製品の組み立てられた部分であってよい。例において、出力製品を組み立てるプロセスは、設計段階(すなわち組立て前段階)および組立て段階を伴い得る。
【0053】
[0065] 実施形態において、設計段階においてコントローラ308は、ロボットデバイス200が組立ておよび/または操作する(本明細書において出力製品とも称される)物体のモデルを決定してよい。具体的には、コントローラ308は、出力製品のパラメータ設計(たとえば設計156)を決定してよく、出力製品をどのように組立ておよび/または操作するかを決定するために設計を分析してよい。パラメータ設計は、出力製品の材料を示し、パラメータの観点から出力製品を定義し、コントローラ308は、パラメトリックモデルに基づいて、出力製品をどのように構築するかを決定してよい。出力製品を構築することは、(すなわち、機能的特徴によって定義された)出力製品を組み立てること、および出力製品の非機能性(たとえば審美的特徴)を実現するためにアズビルト出力製品を修正することを含む。特に、出力製品は、各々がそれぞれ少なくとも1つの材料から成る1または複数の物理片を含んでよい。これらの片(複数も可)は、たとえば1または複数の工具によって切断され、組み合わせられ、および/または所望の製品に成形されることなどによって、出力製品を生産するために形作られ得る。例として、出力製品は、様々な可能性の中でも特に、組み合わせられおよび/またはそれぞれ成形され得る金属片および木片を含んでよい。
【0054】
[0066] 実施形態において、パラメトリックモデルは、出力製品の様々な特徴を表してよい。一般に、そのような各特徴は、製品の独自の属性または態様であってよい。例として、製品の特徴は、様々な可能性の中でも特に、テーブルの表面、テーブルの脚、および/またはテーブルの表面に形成されたカップホルダであってよい。また、製品の各特徴は、それぞれ1または複数のパラメータによって定義されてもよい。具体的には、パラメータは、製品の特徴および/または製品の動作の条件の定義に役立つ任意の数値因子または他の測定可能因子であってよい。また、各パラメータは、それぞれの特徴が生産されるべき方法を明確に定義するそれぞれの値を有してよい。たとえばテーブルの脚は、長さのパラメータによって定義されてよく、その長さは、テーブルの脚の長さおよび/または脚が有すべき長さを明確に定義する値(たとえば5メートル(5m))を有してよい。よって、製品のモデルは、1または複数の特徴に関する1または複数のパラメータ、ならびにそのような各パラメータに関するそれぞれの値を指定してよく、それによって製品は、それらの仕様に従って生産される。
【0055】
[0067] 加えて、モデルの特徴間の関係は、1または複数のパラメータおよび/またはアルゴリズムによって定義され得る。たとえば2つの要素間の関係は、長さのパラメータによって定義されてよく、その長さは値(たとえば5メートル(5m))を有してよい。よって、製品のモデルは、特徴間の関係を定義する1または複数のパラメータ、ならびにそのような各パラメータに関するそれぞれの値を指定してよく、それによって製品は、それらの仕様に従って生産される。
【0056】
[0068] 実際、様々なパラメータが、製品のためのモデルにおいて実行可能に指定され、および/または生産時または生産中に製品によって示され得る。いくつかのパラメータが例として本明細書に記載されるが、理解すべき点として、本開示の範囲から逸脱することなく他のパラメータも同様に可能である。たとえば他のパラメータは、特に、現在既知であるおよび/または今後開発されるコンピュータ支援設計(CAD)ソフトウェアにおいて指定され得るパラメータのいずれか(たとえば同心度)を含んでよい。
【0057】
[0069] 1つの例において、パラメータは、製品の特徴の位置であってよい。1つの例において、位置は、座標系に対する座標値によって定義され得る。他の例において、位置は、特に、物理空間内の点および/または構造上の点までの距離を示す距離値によって定義され得る。また他の例において、位置は、物理空間内の大きさ(たとえば距離)および方向(たとえば特徴が向くべき方向)の両方を示す空間ベクトルによって定義され得る。
【0058】
[0070] 他の例において、パラメータは、製品の特徴の配向であってよい。1つの例において、配向は、他に対する特徴の角度を示す角度値によって定義され得る。たとえば配向は、他の特徴に対する平行度または垂直度の指示によって定義され得る。
【0059】
[0071] また他の例において、パラメータは、製品の特徴の材料特性であってよい。たとえば材料特性は、特に、材料密度、曲率、材料強度、サイズ、形状、導電性、温度、および/または色の値または他の指示によって定義され得る。
【0060】
[0072] また他の例において、パラメータは、構造の特徴との相互作用の属性であってよい。たとえば相互作用の属性は、特徴に印加されたおよび/または印加されるべき力を示す力値によって定義され得る。他の例において、相互作用の属性は、特徴に印加されたおよび/または印加されるべき圧力を示す圧力値によって定義され得る。また他の例において、相互作用の属性は、特徴を動かすためのアプローチの指示(たとえば構造の生産中、反時計回りに対して時計回りにノブを回す)によって定義され得る。また他の例において、相互作用の属性は、たとえば特徴が回転することができる最大速度など、特徴が示すべき移動特性の指示によって定義され得る。他の場合および例も可能である。
【0061】
[0073] コントローラ308は、パラメトリックモデル出力製品を分析すると、次に、出力製品を組立ておよび/または修正するために実行され得るタスクを生成してよい。タスクは、製品の組立てに関連して実行され得る任意の種類のタスクであってよい。タスクの種類の例は、構築タスク、製造タスク、組立てタスク、処理タスクなどを含む。加えてタスクは、たとえばパーツ、工具、障害物など、作業現場302内にある物体との相互作用を伴ってよい。またタスクは、作業現場302内で利用可能な1または複数の工具を用いて実行され得る。例において、コントローラ308は、ロボットデバイス200によって実行される1または複数の経路ベースタスクを生成してよい。また、設計段階においてコントローラ308は、タスクを実行する順序(すなわち動作の順序)を決定してよい。
【0062】
[0074] タスクの生成において、コントローラ308は、出力製品のパラメトリックモデルの分析に基づいてタスクを定義してよい。たとえば経路ベースタスクの場合、コントローラ308は、パラメトリックモデルに基づいて、経路ベースタスクに関するタスクパラメータを決定してよい。その後コントローラ308は、タスクパラメータが満たされるようにタスクを定義してよい。例として、塗装タスクの場合、コントローラ308は、物体のパラメトリックモデルに基づいて、塗装される物体の1または複数の表面を決定してよい。コントローラ308は、パラメトリックモデルに基づいて、塗装タスクのタスクパラメータを決定してよい。たとえばタスクパラメータは、様々な例の中でも特に、塗装される物体の表面積、使用する特定の塗料、特定の塗装設計を定義してよい。
【0063】
[0075] 加えて、コントローラ308は、経路ベースタスクを実行するためにエンドエフェクタのための工具経路を決定してよい。たとえばコントローラ308は、塗装タスクパラメータを満たす塗装パターンを決定してよい。コントローラ308はその後、塗装ブラシが塗装パターンに従って物体を塗装し得るように塗装ブラシエンドエフェクタのための工具経路を生成してよい。実施形態において、コントローラ308は、生成された工具経路をパラメータ的に定義してよい。たとえば生成された工具経路は、出力製品の特定の特徴からの距離の関数および/または特定の特徴または作業現場内の座標系からの距離の関数として定義され得る。他のパラメータ例も可能である。
【0064】
[0076] コントローラ308は、出力製品に関連して実行される1または複数のタスクを決定すると、その後、出力製品が組立ておよび/または修正される生産段階を(即時にまたは後に)開始してよい。具体的には、コントローラ308はロボットデバイス200に、1または複数のタスクを実行させ得る。たとえば、ロボットデバイス200がタスクを実行するようにスケジュールされた時(すなわちタスクのランタイム)、コントローラ308は、ロボットデバイス200がタスクを実行する命令を生成してよい。
【0065】
[0077] 実施形態において、コントローラ308は、タスクパラメータまたはタスクデータおよびリアルタイム作業現場データに基づいて命令を生成してよい。具体的には、命令は、エンドエフェクタのための工具経路を示す命令を含んでよい。例において、コントローラ308によって生成され、エンドエフェクタにパラメトリック工具経路を辿らせることによってタスクを実行させる命令は、「パラメトリック命令」と称され得る。工具経路を示す命令を生成するために、コントローラ308は、作業現場の表現を受信または生成するためにリアルタイム作業現場データを用いてよい。その後コントローラ308は、特徴(たとえばアズビルトおよび/または作業現場の特徴)を識別してよく、それに対して(設計段階に生成された)工具経路が定義される。特徴が識別されると、コントローラ308は、識別された特徴にパラメトリック工具経路をマッピングしてよい。コントローラ308は、その後、マッピングされた工具経路を示す命令を生成してよい。ランタイムにタスクのための命令を生成/パラメトリック命令をマッピングすることによって、コントローラ308は、作業現場における任意の変更および/またはパラメトリックモデルからの任意の逸脱を考慮に入れることができる。またそうすることで、タスクは、モデル/理想的タスクに対しより正確に実行される。
【0066】
[0078] 図4Aおよび図4Bは、実施形態例に係る、ロボットデバイス200によって実行されるタスク例を示す。この例において、タスクは、接着タスクであり、よってロボットデバイス200のエンドエフェクタ310は、アプリケータまたはディスペンサ工具402を含む。アプリケータ402は、たとえばシール材、接着剤、コーティング、コーキング、結合剤、石膏などの材料を収容する弁を含んでよい。材料は、固体、気体、ゲル、液体、エアゾールなどを含む様々な形態であってよい。
【0067】
[0079] また、アプリケータ402は、開口部(たとえばノズル)を通して材料を塗布または分注するように構成され得る。たとえばアプリケータ402は、材料を物体に塗布してよい。したがってロボットデバイス200は、材料堆積を伴うタスクを実行するためにアプリケータ402を用いるように構成され得る。この例において、ロボットデバイス200に割り当てられたタスクは、ロボットデバイス200が、この例においてタイルである目標物体に接着剤を塗布する接着剤塗布タスクであってよい。
【0068】
[0080] 実施形態において、コントローラ308は、ロボットデバイス200が接着タスクを実行するための命令を生成してよい。具体的には、命令は、図4Aに示すタイルのパラメトリックモデル400Aに基づいてよい。パラメトリックモデル400Aは、出力製品のより大きなパラメトリックモデルの一部であってよい。またパラメトリックモデル400Aは、堆積の所望のパラメータを記述してよい。実装において、システムは、パラメータを決定するためにパラメトリックモデルを分析してよい。例として、パラメトリックモデルは、2つの個別片が互いに接合されて製品となることを示す。したがってシステムは、2つの片が接着剤を用いて互いに結合され得ることを決定してよい。その後システムは、所望の堆積を記述するパラメータを決定してよい。たとえばパラメータは、タイルの表面404Aにおける所望の堆積被覆領域であってよい。所望の堆積被覆領域は、タイルの表面410A上で被覆される特定の領域を含んでよく、あるいは被覆されるタイル表面上の面積のパーセンテージ(たとえば被覆される表面の20%)として定義され得る。他の例において、堆積の所望のパラメータは、堆積の均一性、所望の強度、または所望の引張面積であってよい。
【0069】
[0081] 1または複数のパラメータに基づいて、コントローラ308は、タイルの表面410Aに堆積される接着剤堆積パターンを決定してよい。具体的には、接着剤堆積パターンは、パターンがパラメトリックモデル400Aによって示された所望のパラメータ(たとえば堆積被覆領域)を満たすように決定される。例において、システムは、1または複数のパラメータを満たす接着剤堆積パターンを決定するために、タイルの1または複数の特性および/または作業現場の1または複数の特性を用いてよい。1または複数の物体特性は、タイルのパラメトリックモデル400Aおよび/またはセンサデータ(たとえばローカルセンサおよび/またはグローバルセンサからのデータ)から決定され得る。接着剤塗布タスクに関連する物体特性の例は、目標物体の寸法、目標物体の材料、目標物体の潜在的引張応力、圧縮応力、および/または歪度、目標物体が経得る潜在的効果および振動力、潜在的疲労、他の化学物質との潜在的接触などを含んでよい。また関連する作業現場特性の例は、温度、湿度、気圧、UV露光などを含む。
【0070】
[0082] 図4Aは、堆積パターン例412Aを示す。図4Aに示すように、堆積パターン412Aは、セグメント401A、403A、および405Aを含んでよい。堆積パターン412Aを決定することは、たとえば堆積パターン412Aの各セグメントの厚さ/深さ、幅、および長さなど、パターンの寸法を決定することを伴う。また、たとえば堆積する接着剤の種類など、接着剤の他の特徴を決定することも伴ってよい。他の特徴もまた決定され得る。
【0071】
[0083] システムは、堆積パターンを決定すると、その後、1または複数のパラメータの関数として堆積パターンを定義してよい。この例において、堆積パターンは、タイルの1または複数の特徴からの距離の関数として定義される。図4Aに示すように、表面410A上の堆積パターン412Aは、タイルの辺406Aと堆積パターンのセグメント401Aとの間の距離d、タイルの辺404Aと堆積パターンのセグメント403Aとの間の距離d、およびタイルの辺408Aと堆積パターンのセグメント405Aとの間の距離dが存在するように、辺404A、406A、および408Aに関して定義される。
【0072】
[0084] 追加および/または代替として、コントローラ308は、アプリケータ402に関して、アプリケータ402がパラメトリック堆積パターン412に従って接着剤を堆積させることができるように辿る工具経路を決定してよい。具体的には、コントローラ308は、エンドエフェクタが堆積パターン412Aに接着剤を堆積させるために辿り得る工具経路を決定するために、たとえば運動学的拘束(たとえば衝突、関節範囲など)および/または自由度などのロボットデバイス200の特性を用いてよい。工具経路の決定後、コントローラ308は次に、タイルの1または複数の特徴に対する工具経路を定義してよい。たとえば、堆積パターン412Aと同様、工具経路は、タイルの辺404A、406A、および408Aからの距離の関数として定義され得る。
【0073】
[0085] その後、たとえばランタイムに、コントローラ308は、ロボットデバイス200に接着剤塗布タスクを実行させ得るタスク命令を生成してよい。具体的には、タスク命令は、ロボットデバイス200に、堆積パターン412Aに従って接着剤を堆積させるようにエンドエフェクタを制御させ得る。したがって命令は、堆積パターン412Aに接着剤を堆積させるためにエンドエフェクタ402が辿る工具経路を示してよい。加えて、命令は、エンドエフェクタに堆積パターン412Aに接着剤を堆積させ、堆積の他の特徴(たとえば深さ、接着剤の種類、硬化時間など)を満たさせる制御パラメータを示してよい。
【0074】
[0086] 工具経路を示す命令を決定するために、コントローラ308は、センサを用いて辺の位置を決定してよく、辺に対して工具経路が定義される。たとえばコントローラ308は、タイルの特性(たとえばタイルが製造された材料、表面滑らかさなど)を示す情報を含む、タイルを示す情報を決定するために、センサを用いてよい。加えてコントローラ308は、タイルの2Dまたは3D表現を生成または受信するためにセンサデータを用いてよい。タイルの表現は、たとえばタイルの辺の位置および寸法など、アズビルトタイルの特徴を決定するために用いられ得る。
【0075】
[0087] 図4Bは、典型的な実施形態に係る、アズビルトタイルの表現400Bを示す。図4Bに示すように、アズビルトタイル400Bは、辺404B、辺406B、および辺408Bを含む。アズビルトの辺404B、辺406B、および辺408Bは、それぞれパラメトリックモデルの辺404A、辺406A、および辺408Aに対応する。またアズビルトの表面410Bは、モデルの表面410Aに対応する。ただし、この例において、タイルの作成時の製造誤差によって、アズビルトタイル400Bの寸法は、タイルの公称モデル400Aの寸法から逸脱する。具体的には、アズビルトの辺404B、406B、および408Bの長さは、それぞれパラメトリックモデルの辺404A、406A、および408Aの長さよりも短い。
【0076】
[0088] 例において、コントローラがアズビルトの特徴を識別すると、コントローラ308は次に、接着剤アプリケータ402の工具経路をアズビルトにマッピングしてよい。工具経路のマッピングは、アズビルトタイルの辺404B、406B、および408Bに対する工具経路を定義することを含んでよい。その後、接着剤アプリケータ402がマッピングされた工具経路を辿ると、アプリケータ402は、表面410B上の堆積パターン412Bに接着剤を堆積させ得る。図4Bに示すように、堆積パターン412Bは、タイルの辺406Bと堆積パターンのセグメント401Bとの間の距離d、タイルの辺404Bと堆積パターンのセグメント403Bとの間の距離d、およびタイルの辺408Bと堆積パターンのセグメント405Bとの間の距離dが存在するように、辺404B、406B、および408Bに対して位置する。図4Bに示す距離d、d、およびdは、図4Aに示す距離d、d、およびdと等しい。したがって、辺404B、406B、および408Bの長さにおけるモデル辺404A、406A、および408Aからの逸脱にもかかわらず、堆積パターン412Bは、モデル(すなわち、辺404A、406A、および408Aに対する堆積パターン412Aの位置)によって指定されたように辺404B、406B、および408Bに対して位置する。
【0077】
[0089] コントローラ308は次に、エンドエフェクタに接着剤堆積タスクを実行させる命令を生成してよい。具体的にはコントローラ308は、アプリケータ402の工具経路および1または複数の制御パラメータを示す命令を生成する。アプリケータ402の制御パラメータは、アプリケータ402の速度、アプリケータ402が接着剤を堆積させる圧力、堆積される接着剤の種類などを含んでよい。いくつかの例において、アプリケータ402のノズルのサイズ(すなわち先端サイズ)は、調整可能であってよい。そのような例において、パラメトリック命令は、ノズルのサイズも指定してよい。また命令は、アプリケータ402の分注時間も指定してよい。他の制御パラメータも可能である。
【0078】
[0090] 図4A~4Bは、接着剤アプリケータ402を用いて実行され得る接着剤塗布タスク例を示すが、この例は限定的なものであってはならない。たとえばロボットデバイス200は、アプリケータ402に加えて他の工具を含んでよい。工具は、アプリケータ402によって堆積された任意の材料を成形し、パターン化し、滑らかにし、および/または動かすことができる任意の工具であってよい。そのような例において、アプリケータ402は、表面410Bに材料を堆積させてよく、その後、材料を特定の形状またはパターンに成形するために第2の工具(たとえばこて)が用いられ得る。
【0079】
[0091] 図5Aは、典型的な実施形態に係る、(図3に示す)アズビルト物体306に関して実行される経路ベースタスクの他の例を示す。この例において、コントローラ308は、物体のモデルに基づいて、物体の生産プロセスが、物体500の曲面502に接着剤を堆積させるタスクを含むことを決定してよい。その後システムは、モデルによって示された所望の結果を実現する堆積パターンを生成してよい。例において、堆積パターンは、作業現場の特徴および/または物体500の特徴に基づいてよい。上述したように、接着剤塗布タスクに関連する特徴は、目標物体の寸法、目標物体の材料、目標物体の潜在的引張応力、圧縮応力、および/または歪度、目標物体が経得る潜在的影響および振動力、潜在的疲労、他の化学物質との潜在的接触などを含んでよい。図5Aに示すように、コントローラ306は、セグメント504A、504B、504C、504D、504E、および504Fを含む堆積パターンを生成してよい。例において、コントローラ306は、物体500の1または複数の特徴に関してパターンを定義することによって、堆積パターンをパラメータ的に定義してよい。
【0080】
[0092] 図5Bは、典型的な実施形態に係る物体500の側面図を示す。図5Bに示すように、コントローラ306は、堆積パターンの各セグメントが長方形状を有することを決定してよい。図5Bに更に示すように、堆積パターンのセグメント504Cは、幅(w)、高さ(h)、および長さ(図5Bには不図示)を有してよい。また、堆積パターンのセグメント504Cとセグメント504Dとの間には間隔(s)があってよい。ただし、表面502上の堆積パターンの様々な部分が様々な形状、寸法、および間隔を有し得ることに留意する。
【0081】
[0093] 追加および/または代替として、制御システム306は、エンドエフェクタが堆積パターンに接着剤を堆積させ得るように、エンドエフェクタの1または複数の制御パラメータを決定してよい。制御パラメータは、アプリケータの軌道、アプリケータの速度、アプリケータが接着剤を堆積させる圧力、堆積される接着剤の種類、アプリケータのノズルのサイズ(すなわち先端サイズ)、分注時間、接着剤の種類などを含む。
【0082】
[0094] ランタイムにおいて、コントローラ306は、モデルからの逸脱を決定するために物体500を走査してよい。逸脱の検出に応答して、コントローラ306は、逸脱を考慮に入れた堆積パターンを生成するために1または複数の制御パラメータを更新してよい。たとえばコントローラ306は、図5Cに示す堆積パターンを生成してよい。図5Cに示すように、堆積パターンのセグメントは、長方形状を有してよい。図5Cに示すように、堆積パターンのセグメントは、三角形状を有してよい。図5Cに示すように、堆積パターンのセグメント506は、底幅(w)、高さ(h)、および長さ(図5Cには不図示)を有してよい。また、堆積パターンのセグメント506とセグメント508との間には間隔(s)があってよい。図5Dは、また他の堆積パターン例を示す。図5Dに示すように、堆積パターンのセグメントは、円形または半円形状を有してよい。図5Dに更に示すように、堆積パターンのセグメント510は、直径(d)および長さ(図5Dには不図示)を有してよい。また、堆積パターンのセグメント510とセグメント512との間には間隔(s)があってよい。他の堆積パターン、形状、および寸法が可能である。
【0083】
[0095] 図4A~4Bおよび図5A~5Dは接着タスク例を示すが、これらの例は、限定的なものであってはならない。他の経路ベースタスク例は、エンドエフェクタが特定の軌道において物体の表面に対し動く任意のタスクを含んでよい。そのような経路ベースタスクは、他の種類の工具を用いて実行され得る。そのような工具は、物体を操作(たとえば表面から材料を除去)し、および/または物体を操作することなく物体と相互作用してよい(たとえばセンサ、スキャナなど)。表面から材料を除去することができる工具の例は、サンディング、バリ取り、研磨などを実行するように構成された工具を含む。
【0084】
[0096] 例において、ロボット制御システムは、出力製品の生産プロセスの一部としてサンディングタスクを実行してよい。システムは、サンディングタスクのパラメータを定義するために出力製品のパラメトリックモデルを分析してよい。たとえばシステムは、物体の表面が特定の仕上がりを有することを決定してよく、その後、表面の所望の仕上がりになるパラメータを定義してよい。次にシステムは、物体の表面に沿って、目標物体の所望の仕上がりを実現するサンディングパターンを生成してよい。加えてシステムは、サンディングパターンをパラメータ的に定義してよく、サンダエンドエフェクタのためのパラメトリック工具経路を生成するためにサンディングパターンを用いてよい。
【0085】
[0097] ランタイムにおいて、システムは、物体のパラメトリックモデルからの逸脱を検出するためにセンサデータを用いてよい。たとえばシステムは、工具と表面との間で最初に決定されたものと異なる相互作用をもたらす、作業現場における変更および/またはモデルからの逸脱を検出してよい。例として、たとえば木材硬度などの表面に対する変更によって、システムは、所望の表面仕上がりを実現するためにサンダを用いて加える様々な圧力を決定してよい。また、センサデータに基づいて、システムは、目標物体にパラメトリック工具経路をマッピングしてよい。その後システムは、たとえば工具経路を示す命令および/またはサンダの制御パラメータ(たとえばサンダの回転速度、サンダを用いて印加される圧力など)を示す命令など、サンディングタスクを実行するための命令を決定してよい。
【0086】
[0098] いくつかの実施形態において、ロボット制御システムは、システムがモデルを有さない作業現場内の物体を操作し、またはこれと相互作用してよい。そのような例において、システムは、エンドエフェクタのためのパラメトリック工具経路をリアルタイムで生成してよい。たとえばシステムは、物体の表現を生成するためにセンサデータを用いてよい。システムはその後、物体に関するパラメトリック工具経路を生成するために物体の表現を用いてよい。
【0087】
[0099] 図6は、典型的な実施形態に係る彫刻タスクを示す。この例において、タスクは、表面600に彫刻する彫刻タスクである。システムは、スキャナ(不図示)に表面600を走査させてよく、表面の走査に基づいて、システムは、表面600の関連特徴を決定してよい。彫刻タスクの関連特徴は、目標物体の寸法、目標物体の材料、目標物体の潜在的引張応力、圧縮応力、および/または歪度、目標物体が経得る潜在的影響および振動力、潜在的疲労などを含んでよい。
【0088】
[0100] 特徴に基づいて、システムは、彫刻工具エンドエフェクタのための制御パラメータに関する1または複数の値を決定してよい。制御パラメータは、工具の軌道、工具の速度、工具が表面に印加する圧力、工具または工具先端のサイズなどを含む。具体的には、これらの制御パラメータに関する値を決定することによって、システムは、表面600における彫刻パターン602を決定してよい。彫刻パターンは、表面から除去される指定の材料量をもたらしてよく、それによって表面に彫刻される特定の形状をもたらし得る。いくつかの例において、システムは、彫刻パターンを決定するために走査を用いてよい。その後システムは、所望の彫刻パターンを実現する制御パラメータの値を決定してよい。
【0089】
V.追加の特徴
A.組立て前段階において命令を生成すること
[0101] 上述したように、システムは、タスクに関する命令を組立て段階において(すなわち、その特定のタスクのランタイムに)生成してよい。ただし他の実施形態において、システムは、設計段階において命令を生成してもよい。具体的には、設計段階において1または複数のタスクを生成した後、システムは次に、たとえば経路ベースタスクなどの1または複数のタスクに関する命令を生成してよい。命令を生成するために、システムは、1または複数のタスクパラメータに関して所望の経路ベースタスクを定義してよい。システムはその後、経路ベースタスクの1または複数のタスクパラメータに基づいて、タスクに関するパラメトリック命令を生成してよい。パラメトリック命令は、エンドエフェクタの制御パラメータの値を示してよい。具体的には、エンドエフェクタの制御パラメータが決定された値に設定される場合、エンドエフェクタは、遂行の結果がタスクパラメータを満たすようにタスクを実行する。いくつかの例において、システムは、タスクに関するパラメトリック命令を生成するために、経路ベースタスクのパラメータおよび目標物体の公称モデルを用いてよい。例として、システムは、エンドエフェクタの工具経路を示すパラメトリック命令を生成してよい。そのようなパラメトリック命令は、物体および/または作業現場の1または複数の特徴に対してパラメータ的に工具経路を定義する。
【0090】
[0102] 上述したように、場合によっては、目標物体は、生産現場で構築または組立てされ得る。ただし、「アズビルト」目標物体は、物体の公称モデルから逸脱し得る。公称モデルとアズビルト物理物体との間に存在し得る任意の逸脱を考慮に入れるために、制御システムは、スキャナにアズビルト物理物体を走査させ得る。物体の走査に基づいて、制御システムは、アズビルト物理物体と物体の公称モデルとの間の任意の逸脱を決定してよい。
【0091】
[0103] 制御システムが任意の逸脱を検出すると、制御システムは、逸脱を考慮に入れるためにパラメトリック命令を更新してよい。具体的には、工具経路はパラメータ的に記述されるので、制御システムは、更新された命令がタスクパラメータを満たすように、逸脱を考慮に入れるように迅速に命令を更新してよい。パラメトリック命令を調整するためにシステムに与えられた柔軟性は、所定の位置命令とは対照的に、システムが任意の逸脱または生産現場における変化を考慮に入れることを可能にする。またこれは、システムが、生産プロセスにおける大幅な遅延なしで任意の逸脱を迅速に考慮に入れることも可能にする。
【0092】
VI.動作例
[0104] 上述したロボット制御システムに関する動作は、1または複数のプロセッサによって方法として実装され得る。上述したように、ロボット制御システムは、1または複数のロボットデバイスを動作させ得る。したがって、ロボットデバイスとロボット制御システムとの間に信号交換が存在してよい。ロボット制御システムの動作を説明する方法例700、800、900、および1000は、それぞれ図7図8図9、および図10にフローチャートの形式で示される。
【0093】
[0105] 図7は、実施形態例に係る、ロボット制御システムがタスクを実行する方法例700を示す。ブロック702に示すように、方法700は、エンドエフェクタによる物体への経路ベースタスクのタスク情報を決定することを伴い、タスク情報は、(i)少なくとも1つのタスクパラメータ、および(ii)物体の公称表現を備える。ブロック704に示すように、方法700は、タスク情報に基づいて、エンドエフェクタがタスクを実行するための1または複数のパラメトリック命令を決定することも伴い、1または複数のパラメトリック命令は、経路ベースタスクを実行する時にエンドエフェクタが辿るための工具経路を示す。
【0094】
[0106] ブロック706に示すように、方法700は更に、センサデータに基づいて、物体の観察表現を生成することを伴う。ブロック708によって示すように、方法700は更に、物体の観察表現と公称表現とを比較することを伴う。ブロック710によって示すように、方法700は更に、比較に基づいて、物体の観察表現に1または複数のパラメトリック命令をマッピングすることを伴う。いくつかの例において、1または複数のパラメトリック命令は、リアルタイムで更新され得る。ブロック712によって示すように、方法700は更に、ロボットデバイスに経路ベースタスクを実行させるために、マッピングされた命令をエンドエフェクタに送信することを伴う。
【0095】
[0107] 図8は、実施形態例に係る、ロボット制御システムがタスクを実行する他の方法例800を示す。ブロック802に示すように、方法800は、エンドエフェクタによる物体の表面への経路ベースタスクに関する1または複数のパラメトリック命令を決定することを伴い、1または複数のパラメトリック命令は、表面上の経路を示し、表面の公称表現に基づく。ブロック804によって示すように、方法800は、表面の製作が完了し、それに応じてスキャナデバイスに表面の走査を実行させることを決定することも伴う。たとえばロボット制御システムは、製作が完了したことをセンサデータに基づいて決定してよい。追加および/または代替として、ロボット制御システムは、エンドエフェクタが表面の製作を完了したという指示を、エンドエフェクタを制御するロボットデバイスから受信してよい。
【0096】
[0108] ブロック806に示すように、方法800は更に、走査に基づいて、表面の観察表現を決定することを伴う。ブロック808によって示すように、方法800は更に、表面の観察表現と表面の公称表現との比較に基づいて、表面の観察表現に従って表面に経路ベースタスクの遂行をもたらすように、1または複数のパラメトリックベースの命令を更新することを伴う。ブロック810によって示すように、方法800は更に、ロボットデバイスに表面における経路ベースタスクを実行させるために、少なくとも1つの通信インタフェースを介して、1または複数の更新された命令をロボットデバイスへ送信することを伴う。
【0097】
[0109] 図9は、実施形態例に係る、ロボット制御システムがタスクを実行する他の方法例900を示す。ブロック902に示すように、方法900は、設計段階において、ロボットタスクの少なくとも1つのパラメータに基づいて、エンドエフェクタの物体表面へのタスクを定義することを伴う。ブロック904に示すように、方法900は、表面の公称表現およびパラメータ的に定義されたタスクに基づいて、タスクに関する1または複数のパラメトリック命令を決定することも伴い、1または複数のパラメトリック命令は、経路ベースタスクを実行する時にエンドエフェクタが辿るための表面上の経路を示す。
【0098】
[0110] ブロック906に示すように、方法900は更に、組立て段階において、表面の観察表現をスキャナから受信することを伴う。ブロック908に示すように、方法900は更に、表面の観察表現と公称表現とを比較することを伴う。ブロック910によって示すように、方法900は更に、比較に基づいて、表面の観察表現に従って表面への経路ベースタスクの遂行をもたらすように1または複数のパラメトリック命令を更新することを伴う。ブロック912によって示すように、方法900は更に、ロボットデバイスに表面における経路ベースタスクを実行させるために、更新された命令をエンドエフェクタへ送信することを伴う。
【0099】
[0111] 図10は、実施形態例に係る、ロボット制御システムがタスクを実行する他の方法例1000を示す。ブロック1002によって示すように、方法1000は、物体のパラメトリックモデルを分析することを伴う。またブロック1004によって示すように、方法1000は、分析に基づいて、(i)エンドエフェクタによって物体に実行される経路ベースタスクのパラメータを決定すること、および(ii)エンドエフェクタのためのパラメトリック工具経路を生成することを伴う。ブロック1006によって示すように、方法1000は、経路ベースタスクのランタイムに、物体の表現を示すセンサデータを受信することも伴う。またブロック1008によって示すように、方法1000は、センサデータに基づいて、パラメトリック工具経路を物体の表現にマッピングすることを伴う。またブロック1010によって示すように、方法1000は、エンドエフェクタに、マッピングされた工具経路を辿ることによって経路ベースタスクを実行させる命令を生成することを更に伴う。また更に、ブロック1012によって示すように、方法1000は、ロボットデバイスに物体への経路ベースタスクを実行させるためにエンドエフェクタへ命令を送信することも伴う。
【0100】
[0112] 図11は、ロボットデバイス1100の構成例を示す。一般に、ロボットデバイス1100は、特に、計算能力を有し、かつ、作動機能および/またはたとえば光および/または音などの物理現象を放出/生成する能力によって周囲と相互作用する任意のデバイスであってよい。たとえばロボットデバイス1100は、特に、人型ロボット、ロボットアーム、または四足歩行ロボットであってよい。ロボットデバイスは、「ロボット」であるものとして当業者に一般に理解される任意のデバイスであってもよい。ロボットデバイス1100は、特に、ロボットデバイス、ロボットマニピュレータ、ロボットクライアント、またはロボットとも称され得る。
【0101】
[0113] ロボットデバイス1100は、プロセッサ(複数も可)1102、データストレージ1104、プログラム命令1106、コントローラ1108、センサ(複数も可)1110、電源(複数も可)1112、アクチュエータ(複数も可)1114、および可動部品(複数も可)1116を含むように示される。ただし、ロボットデバイス1100は例示のために示されるだけであり、ロボットデバイス1100は、本開示の範囲から逸脱することなく、追加の構成要素を含んでよく、および/または1または複数の構成要素が取り除かれてよいことに留意する。また、ロボットデバイス1100の様々な構成要素は、任意の方法で配置および接続され得ることに留意する。
【0102】
[0114] また、プロセッサ(複数も可)152、データストレージ154、プログラム命令156、センサ(たとえばローカルセンサ(複数も可)130およびグローバルセンサ(複数も可)140)、および/または電源162の上記説明は、他のシステムまたは構成において用いられるそれぞれの構成要素に関する任意の後述にも適用され得る。たとえば上述したように、図11は(様々な図の中でも特に)、プロセッサ、データストレージ、プログラム命令、センサ、および/または電源を他の構成に組み込まれるものとして示す。したがって問題となるこれらの構成部品は、図1に関して上述したそれぞれの構成要素と同じまたは同様の特性(および/または形式)を有し得る。ただし、問題となる構成要素は、本発明の範囲から逸脱することなく、他の特性(および/または形式)を有してもよい。
【0103】
[0115] 上述したように、ロボットデバイス1100は、(たとえばマイクロコントローラの形式をとる)コントローラ1108を含んでよい。コントローラ1108は、処理ユニットおよびデータストレージを含んでよく、様々な動作を(たとえば単独で、またはプロセッサ(複数も可)1102と協働して)管理または実行するように構成され得る。したがってこのコントローラ1108は、上述したコントローラ150と同じまたは同様の特性(および/または形式)を有し得るが、他の特性(および/または形式)を有してもよい。よって、いくつかの実装において、コントローラ150はロボットデバイス1100の一部として組み込まれ得るので、コントローラ150自体がコントローラ1108であってよい。他の実装において、コントローラ1108はロボットデバイス1100の一部として含まれてよく、コントローラ150はロボットデバイス1100から独立してよい。実装に関わらず、これらのコントローラは様々な形式をとってよい。たとえばコントローラは、様々な可能性の中でも特に、チップセット、サーバシステム、デジタル信号プロセッサ、プログラマブルロジックコントローラ、および/またはサンプル値データシステムの形式をとってよい。またコントローラは、本明細書において、特に制御システムとも称され得る。
【0104】
[0116] 加えて、ロボットデバイス1100は、1または複数のアクチュエータ(複数も可)1114も含んでよい。アクチュエータは、機械運動をもたらすために用いられ得る機構である。具体的には、アクチュエータは、蓄積エネルギを1または複数の部品の動きに変換するように構成され得る。アクチュエータを動かすために様々な機構が用いられ得る。たとえばアクチュエータは、様々な可能性の中でも特に、化学物質、圧縮空気、水力学、または電力によって動かされ得る。この構成によって、アクチュエータ(複数も可)1114は、ロボットデバイス1100の様々な可動部品(複数も可)1116の動きをもたらし得る。可動部品(複数も可)1116は、特に、たとえばロボットアーム、レッグ、および/またはハンドなどの付属物/部材を含んでよい。可動部品(複数も可)1116は、特に可動基体、車輪、および/またはエンドエフェクタも含んでよい。また、ロボットデバイス1100が少なくとも1つのエンドエフェクタを含む場合、そのようなエンドエフェクタは、上述したように、特に工具(たとえばねじ回し、ドリル、溶接用こて、またはそれらの何らかの組み合わせ)および/またはグリッパであってよい。
【0105】
VII.結論
[0117] 本開示は、様々な態様の例示として意図された、本出願において説明された特定の実施形態に関して限定されるものではない。当業者には明らかであるように、多数の修正および変形例が本開示の主旨および範囲から逸脱することなく生み出され得る。本開示の範囲内の機能的に同等である方法および装置は、本明細書に挙げられた方法および装置に加えて、上記説明から当業者に明らかになる。そのような修正および変形例は、添付の特許請求の範囲の範囲内に収まることが意図される。
【0106】
[0118] 上述した、発明を実施するための形態は、添付図面を参照して開示されるシステム、デバイス、および方法の様々な特徴および機能を説明する。図において、類似した記号は一般に、文脈が特に指示しない限り、類似した構成要素を識別する。本明細書および図面において説明される実施形態例は、限定的なものとみなされない。本明細書に提示された主題事項の主旨または範囲から逸脱することなく、他の実施形態が用いられてよく、他の変更がなされてよい。容易に理解されるように、本開示の態様は、本明細書で一般に説明し、図面に例示したように、異なる様々な構成で配置、代替、結合、分離、および設計されてよく、それら全てが本明細書において明確に意図される。
【0107】
[0119] たとえば上述した方法のブロックなど、情報の処理を表すブロックは、本明細書で説明した方法または技術の特定の論理機能を実行するように構成され得る回路に対応してよい。代替または追加として、情報の処理を表すブロックは、モジュール、セグメント、または(関連データを含む)プログラムコードの一部に対応してよい。プログラムコードは、方法または技術における特定の論理機能または動作を実装するためにプロセッサによって実行可能な1または複数の命令を含んでよい。プログラムコードおよび/または関連データは、たとえばディスクまたはハードドライブまたは他の記憶媒体を含むストレージデバイスなど任意の種類のコンピュータ可読媒体に格納され得る。
【0108】
[0120] コンピュータ可読媒体は、たとえばレジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ(RAM)のようにデータを短期間格納するコンピュータ可読媒体などの非一時的コンピュータ可読媒体も含んでよい。またコンピュータ可読媒体は、たとえば読取専用メモリ(ROM)、光または磁気ディスク、コンパクトディスク読取専用メモリ(CD-ROM)のような二次または持続性長期間ストレージなど、プログラムコードおよび/またはデータを長期間格納する非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、他の任意の揮発性または不揮発性ストレージシステムであってもよい。コンピュータ可読媒体は、たとえばコンピュータ可読記憶媒体、または有形ストレージデバイスであると考えられ得る。
【0109】
[0121] なお、1または複数の情報伝達を表すブロックは、同じ物理デバイス内のソフトウェアおよび/またはハードウェアモジュール間での情報伝達に対応してよい。ただし、異なる物理デバイス内のソフトウェアモジュールおよび/またはハードウェアモジュール間で他の情報伝達があってよい。
【0110】
[0122] 図に示す特定の構成は、限定的なものとしてみなされてはならない。他の実施形態は、所与の図に示す各要素より多いまたは少ない要素を含み得ることを理解すべきである。また、示された要素のいくつかは、結合され、または省かれ得る。なお、実施形態例は、図に示されない要素を含んでよい。
【0111】
[0123] 様々な態様および実施形態が本明細書に開示されたが、他の態様および実施形態が当業者には明らかである。本明細書に開示された様々な態様および実施形態は、限定的なものとして意図されておらず、適正な範囲は、以下の特許請求の範囲によって示される。
図1
図2
図3
図4A
図4B
図5A
図5B
図5C
図5D
図6
図7
図8
図9
図10
図11