(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-19
(54)【発明の名称】ロボットのための機械学習ロジックベースの調整技術
(51)【国際特許分類】
B25J 9/16 20060101AFI20241112BHJP
G06N 20/00 20190101ALI20241112BHJP
【FI】
B25J9/16
G06N20/00 130
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024529489
(86)(22)【出願日】2022-11-17
(85)【翻訳文提出日】2024-07-01
(86)【国際出願番号】 IB2022061107
(87)【国際公開番号】W WO2023089536
(87)【国際公開日】2023-05-25
(32)【優先日】2021-11-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523323491
【氏名又は名称】パス ロボティクス, インコーポレイテッド
(74)【代理人】
【識別番号】100102978
【氏名又は名称】清水 初志
(74)【代理人】
【識別番号】100205707
【氏名又は名称】小寺 秀紀
(74)【代理人】
【識別番号】100160923
【氏名又は名称】山口 裕孝
(74)【代理人】
【識別番号】100119507
【氏名又は名称】刑部 俊
(74)【代理人】
【識別番号】100142929
【氏名又は名称】井上 隆一
(74)【代理人】
【識別番号】100148699
【氏名又は名称】佐藤 利光
(74)【代理人】
【識別番号】100188433
【氏名又は名称】梅村 幸輔
(74)【代理人】
【識別番号】100128048
【氏名又は名称】新見 浩一
(74)【代理人】
【識別番号】100129506
【氏名又は名称】小林 智彦
(74)【代理人】
【識別番号】100114340
【氏名又は名称】大関 雅人
(74)【代理人】
【識別番号】100214396
【氏名又は名称】塩田 真紀
(74)【代理人】
【識別番号】100121072
【氏名又は名称】川本 和弥
(74)【代理人】
【識別番号】100221741
【氏名又は名称】酒井 直子
(74)【代理人】
【識別番号】100114926
【氏名又は名称】枝松 義恵
(72)【発明者】
【氏名】ロンズベリー アレクサンダー
(72)【発明者】
【氏名】ロンズベリー アンドリュー
(72)【発明者】
【氏名】アジャム ガード ニマ
(72)【発明者】
【氏名】ヴァス マドハヴァン カンダダイ
(72)【発明者】
【氏名】シュヴェンカー エリック
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS11
3C707AS13
3C707BS12
3C707DS02
3C707DS03
3C707ES04
3C707GS00
3C707HS13
3C707HS27
3C707KS01
3C707KS15
3C707KT00
3C707KT05
3C707KT06
3C707KV11
3C707LS17
3C707LS20
3C707LV01
3C707LW12
3C707LW15
3C707MT02
(57)【要約】
本開示は、製造ロボット環境で行われる製造プロセスをモデル化するための、人工ニューラルネットワークなどの機械学習ロジックの訓練、実行、または更新を提供する、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、システム、方法、および装置を提供する。例えば、機械学習ロジックは、製造ロボット環境に関連する1つもしくは複数の動作特性から学習するか、またはそれらに基づいて調整を行うように訓練および実行されてもよい。別の例として、訓練されたニューラルネットワークなどの機械学習ロジックは、製造プロセスをモデル化し、製造結果を生成するために、半自律型または自律型の製造ロボット環境において実行されてもよい。別の例として、訓練されたニューラルネットワークなどの機械学習ロジックは、取り込まれた、製造結果に関連するデータに基づいて、更新されてもよい。他の局面および特徴も特許請求され、かつ説明される。
【特許請求の範囲】
【請求項1】
製造ロボットを動作させるための、コンピュータによって実行される方法であって、
1つまたは複数のセンサから、第1の製造アウトプットに関する情報を受け取る工程であって、前記第1の製造アウトプットが、第1のプロファイル、第1の軌道、第1の1つもしくは複数の製造パラメータ、またはそれらの組合せに基づいて、前記製造ロボットによって生成されたものである、工程;
第2の軌道または第2の1つもしくは複数の製造パラメータを生成するために、前記第1の製造アウトプットに関する前記情報、および前記第1のプロファイル、前記第1の軌道、前記第1の1つもしくは複数の製造パラメータ、またはそれらの組合せをプロセッサによって処理する工程;ならびに
前記第2の軌道、前記第2の1つもしくは複数の製造パラメータ、またはそれらの組合せに基づく前記製造ロボットによる第2の製造アウトプットの生成を開始させる工程
を含む、方法。
【請求項2】
前記第1のプロファイル、前記第1の軌道、前記第1の1つもしくは複数の製造パラメータ、またはそれらの組合せを受け取る工程
をさらに含む、請求項1記載のコンピュータによって実行される方法。
【請求項3】
前記第1のプロファイル、前記第1の軌道、前記第1の1つもしくは複数の製造パラメータ、またはそれらの組合せに基づいて第1の制御情報を生成する工程
をさらに含む、請求項2記載のコンピュータによって実行される方法。
【請求項4】
前記第1の制御情報が1つまたは複数の溶接命令を含む、請求項3記載のコンピュータによって実行される方法。
【請求項5】
製造作業スペース内に位置決めされた第1の部品に対する前記製造ロボットによる第1の製造タスクを開始させて前記第1の製造アウトプットを生成させるために、前記第1の制御情報を前記製造ロボットに送る工程
をさらに含む、請求項3記載のコンピュータによって実行される方法。
【請求項6】
前記第2の軌道、前記第2の1つもしくは複数の製造パラメータ、またはそれらの組合せを生成する工程
をさらに含む、請求項1記載のコンピュータによって実行される方法。
【請求項7】
前記第2の軌道、前記第2の1つもしくは複数の製造パラメータ、またはそれらの組合せに基づいて第2の制御情報を生成する工程;および
製造作業スペース内に位置決めされた第2の部品に対する前記製造ロボットによる第2の製造タスクを開始させて前記第2の製造アウトプットを生成させるために、前記第2の制御情報を前記製造ロボットに送る工程
をさらに含む、請求項1記載のコンピュータによって実行される方法。
【請求項8】
溶接ロボットを動作させる、コンピュータによって実行される方法であって、
機械学習ロジックを使用して、1つもしくは複数の溶接パラメータ、基準溶接プロファイル、継ぎ目の場所、軌道、またはそれらの組合せに基づいて、第1の溶接プロファイルを推定する工程;
前記1つもしくは複数の溶接パラメータ、前記第1の溶接プロファイルと前記基準溶接プロファイルとに基づく比較に基づいて生成された差分プロファイルに基づいて、1つまたは複数の更新された溶接パラメータを生成する工程;
1つまたは複数のセンサから受け取られたセンサデータに基づいて第2の溶接プロファイルを決定する工程であって、前記センサデータが、前記1つまたは複数の更新された溶接パラメータに基づいて前記溶接ロボットによって形成された溶接部に関連する、工程;ならびに
前記第1の溶接プロファイル、前記第2の溶接プロファイル、前記差分プロファイル、前記軌道、またはそれらの組合せに基づいて、前記機械学習ロジックを更新する工程
を含む、方法。
【請求項9】
前記機械学習ロジックが、1つまたは複数の動作を実施するプロセスによって実行されるように構成されている、請求項8記載のコンピュータによって実行される方法。
【請求項10】
前記1つもしくは複数の溶接パラメータ、前記基準溶接プロファイル、前記継ぎ目の場所、前記軌道、前記基準溶接プロファイル、またはそれらの組合せを含むか、または示すデータを受け取る工程
をさらに含む、請求項8記載のコンピュータによって実行される方法。
【請求項11】
受け取る工程が、
前記1つまたは複数のセンサから、溶接される部品の画像データを受け取ること;および
前記画像データに基づいて前記場所を決定すること
を含む、請求項11記載のコンピュータによって実行される方法。
【請求項12】
受け取る工程が、
ユーザインターフェースを介して、前記1つまたは複数の溶接パラメータのうちの少なくとも1つの溶接パラメータを受け取ること;および
経路計画ロジックを使用して、ロボットが前記継ぎ目を溶接するために辿るように構成された前記軌道を決定すること
を含む、請求項12記載のコンピュータによって実行される方法。
【請求項13】
前記方法が、
前記第1の溶接プロファイルおよび前記基準溶接プロファイルに基づいて前記比較を行う工程;ならびに
前記比較に基づいて前記差分プロファイルを生成する工程
をさらに含み、
前記1つまたは複数の更新された溶接パラメータを生成する工程が、前記差分プロファイルを処理することを含む、
請求項8記載のコンピュータによって実行される方法。
【請求項14】
前記継ぎ目に対して溶接作業を行って溶接部を形成するよう前記溶接ロボットに命令する制御情報を、前記溶接ロボットに送る工程であって、前記制御情報が、前記1つまたは複数の更新された溶接パラメータを示す、工程;および
前記1つまたは複数のセンサから、前記センサデータを受け取る工程
をさらに含む、請求項8記載のコンピュータによって実行される方法。
【請求項15】
前記機械学習ロジックに、前記溶接ロボットに固有の学習された動作特性を提供する工程をさらに含む、請求項8記載のコンピュータによって実行される方法。
【請求項16】
前記機械学習ロジックに、前記溶接ロボットを含む複数の溶接ロボットの学習された動作特性を提供する工程をさらに含む、請求項8記載のコンピュータによって実行される方法。
【請求項17】
溶接ロボットを動作させるための、コンピュータによって実行される方法であって、
基準溶接プロファイルと、前記溶接ロボットによって形成された第1の溶接部の第1の溶接プロファイルとに基づいて、第1の差分プロファイルを生成する工程;
前記第1の差分プロファイル、1つもしくは複数の入力パラメータ、またはそれらの組合せに基づいて、少なくとも1つの更新された溶接パラメータを生成する工程;
前記少なくとも1つの更新された溶接パラメータに基づいて前記溶接ロボットによって形成された第2の溶接部の第2の溶接プロファイルを決定する工程であって、前記第2の溶接プロファイルが、1つまたは複数のセンサから受け取られた第1のセンサデータに基づいて決定されたものである、工程;
前記基準溶接プロファイルおよび前記第2の溶接プロファイルに基づいて、第2の差分プロファイルを生成する工程、ならびに;
前記第1の差分プロファイル、前記1つまたは複数の入力パラメータ、前記第2の差分プロファイル、および前記少なくとも1つの更新された溶接パラメータに基づいて、機械学習ロジックを更新する工程
を含む、方法。
【請求項18】
前記第1の溶接プロファイル、前記基準溶接プロファイル、溶接される継ぎ目の場所、前記1つもしくは複数の入力パラメータ、計画された軌道、またはそれらの組合せを示す、第1の情報を受け取る工程;および
溶接作業を行って前記第2の溶接部を形成するよう前記溶接ロボットに命令する制御情報を、前記溶接ロボットに送る工程であって、前記制御情報が、前記少なくとも1つの更新された溶接パラメータを示す、工程
をさらに含む、請求項17記載のコンピュータによって実行される方法。
【請求項19】
前記1つまたは複数のセンサから前記第1のセンサデータを受け取る工程であって、前記第1のセンサデータが前記第2の溶接部に基づいて生成されたものである、工程
をさらに含む、請求項18記載のコンピュータによって実行される方法。
【請求項20】
前記第1の差分プロファイルを生成する工程の前に、
前記機械学習ロジックを使用して、1つもしくは複数の溶接パラメータ、前記基準溶接プロファイル、溶接される継ぎ目の場所、計画された軌道、またはそれらの組合せに基づいて、第3の溶接プロファイルを推定する工程;
前記1つもしくは複数の溶接パラメータ、前記第3の溶接プロファイルと前記基準溶接プロファイルとに基づく比較に基づいて生成された第3の差分プロファイルに基づいて、1つまたは複数の更新された溶接パラメータを生成する工程;
溶接作業を行って第3の溶接部を形成するよう前記溶接ロボットに命令する制御情報を、前記溶接ロボットに送る工程であって、前記制御情報が、前記1つまたは複数の更新された溶接パラメータを示す、工程;ならびに
前記1つまたは複数のセンサから受け取られた第2のセンサデータに基づいて前記第1の溶接プロファイルを決定する工程であって、前記第2のセンサデータが、前記1つまたは複数の更新された溶接パラメータに基づいて前記溶接ロボットによって形成された前記第3の溶接部に関連するものである、工程
をさらに含む、請求項17記載のコンピュータによって実行される方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年11月19日に出願された「ADAPTIVE MACHINE LEARNING LOGIC-BASED ADJUSTMENT TECHNIQUES FOR MANUFACTURING ROBOTS」と題する米国仮特許出願第63/281,573号の利益を主張し、その全体が参照により明示的に本明細書に組み入れられる。
【0002】
技術分野
本開示の局面は、概して製造ロボットの分野に関し、より具体的には、限定はされないが、溶接ロボットなどの製造ロボットのための機械学習ロジックベースの調整技術に関する。
【背景技術】
【0003】
緒言
従来のロボットは、一般に、これらに限定されるわけではないが、分離した物体、表面、継ぎ目、空隙、または空間を互いに接合または接着するための塗装作業、組立作業、溶接作業、ろう付け作業、または接合作業を含む何らかの1つまたは複数の製造作業を行うように動作することができる。例えば、1つまたは複数の電気的または機械的構成要素を有する製造ロボットなどのロボットは、溶接部品などの製造アウトプット(製造成果物)を生産するために、製造タスク(例えば、溶接)を達成するように構成され得る。例示すると、ロボット(例えば、ソフトウェア、プログラム、方法、またはアルゴリズム)は、ロボットの運動学的モデルを使用して、ロボットが製造タスクを達成するために辿るべき軌道を生成し得る。軌道は、ロボットの溶接ヘッドや溶接チップなどの部分を1つまたは複数の特定の点、位置、または姿勢(ポーズ)に動かすまたは移動させるのに使用するために決定される。
【0004】
ロボットによる製造は、製造タスクを達成するために使用されるロボットの複雑さのために、いくつかの課題に直面している。例えば各ロボットまたは製造ロボット環境は、ロボットまたは製造ロボット環境に固有の1つまたは複数の動作特性を含む。1つまたは複数の動作特性はまた、ロボットに含まれる機械的または電気的構成要素に関連するか、またはそれらに基づくものである場合もあり、それらは製造アウトプットを生産するロボットの動作に影響を与えるか、または寄与する。1つまたは複数の動作特性は、能力、品質、仕様、公差、制限、別のロボットもしくは環境と比較した変動、較正関連の公差/不正確度/不精密度、またはそれらの組合せを含み得る。較正関連の公差、不正確度、不精密度を、本明細書では「較正関連の誤差」または「較正誤差」とも呼び、これらは、ロボットがある製造タスクを達成するために辿るべき軌道を生成するために使用されるある数学的モデル(例えば、ロボットの運動学的モデル)と完全には一致しない/同一ではないロボットを指し得る。運動学的モデルがロボットの物理的ハードウェアと精密には一致しない場合、ロボットは、1つまたは複数の所望の姿勢、状態、または場所に適切に走行または移動しない可能性があり、そのため、製造タスクが十分に達成されない(例えば、溶接に関しては、低品質であるかまもしくは溶接位置がずれた溶接部品が生産され得る)か、ロボットとの衝突、または別の有害な事象が発生する。加えて、または代替として、ボルトがどれだけきつく締め付けられたか、電気構成要素またはシステムの変動などといったロボット自体の製造が、ロボットの1つもしくは複数の動作特性、ロボットによる製造アウトプットの生産、またはそれらの組合せに影響を与えるか、または寄与する場合もある。状況によっては、1つまたは複数の動作特性は、ロボットの構築または設計に固有のものであり得る不完全さまたは限界とみなされる場合もある。
【0005】
製造ツールおよびセンサなどを含む個々のロボットの組立ておよび/または製造における差異はまた、異なる製造アウトプットや、同じ製造機能(例えば、溶接)を遂行するように設計された2つの製造ロボットのアウトプット間の不一致にもつながる可能性がある。したがって、電流、電圧、および供給速度などの溶接パラメータは、ロボットごとに決定または適合される必要がある場合があり、それによってロボットの設置および操作の複雑さが増す。しかしながら、1つまたは複数の動作特性は、多くの場合、複数の同様の製造ロボットについて一般化されることが困難であるため、ロボットに適切な溶接パラメータを決定することは、時間がかかる困難なタスクであり得る。
【発明の概要】
【0006】
いくつかの例の簡単な概要
論述する技術の基本的な理解を提供するために、以下に本開示のいくつかの局面の概要を示す。この概要は、本開示の企図される特徴すべての広範にわたる概説ではなく、本開示のすべての局面の主要または重要な要素を特定することも、本開示のいずれかまたはすべての局面の範囲を正確に示すことも意図されていない。その唯一の目的は、後で提示される、より詳細な説明の前置きとして、本開示の1つまたは複数の局面のいくつかの概念を概要形式で提示することである。
【0007】
本開示は、製造ロボット環境で実施される製造プロセスをモデル化または調整する、人工ニューラルネットワークなどの機械学習ロジックの訓練、実行、または更新を提供する装置、システム、および方法に関する。例えば、機械学習ロジックは、製造ロボット環境に関連する1つもしくは複数の動作特性から学習するか、またはそれらに基づいて調整を行うように、訓練および実行されてもよい。別の例として、訓練されたニューラルネットワークなどの機械学習ロジックは、製造プロセスをモデル化し、製造結果を生成するために、半自律型または自律型の製造ロボット環境において実行されてもよい。例示すると、機械学習ロジックは、溶接作業または溶接のためのプロセスを実施するために実行されてもよい。別の例として、訓練されたニューラルネットワークなどの機械学習ロジックは、取り込まれ、製造結果に関連するデータに基づいて更新されてもよい。いくつかの実施態様では、機械学習ロジックは、製造ロボットに固有であってもよい。他の実施態様では、ロボット固有でなくてもよい。例えば、機械学習ロジックは、2つ以上の同様の製造ロボットや、ロボットシステムの2つ以上のロボットなど、複数の製造ロボットに対して訓練されてもよい。機械学習ロジックを訓練および/または更新することによって、更新機械学習ロジックに基づいて生成された後続の製造結果の品質は、(更新される前の)機械学習ロジックに基づいて生成された前の製造結果と比較して改善され得る。少なくともこの意味において、訓練されたニューラルネットワークなどの機械学習ロジックは、本質的に適応的とみなされ得る。
【0008】
いくつかの実施態様では、(製造ロボットを含む)製造ロボット環境に関連する機械学習ロジックは、訓練されていないニューラルネットワークなど、訓練されていないロジックとして訓練プロセスを開始し得る。機械学習ロジックは、製造ロボットの動作中の製造ロボット環境に基づいて、製造ロボット環境における製造ロボットの動作から学習するために、1つまたは複数の入力を受け取り得る。いくつかの実施態様では、1つまたは複数の入力は、製造ロボットに関連する較正誤差や固有誤差など、1つまたは複数の動作特性に関連し得る。いくつかの実施態様では、1つまたは複数の入力は、製造プロセス(例えば、溶接)および製造プロセスの結果(例えば、溶接部)に関連し得る。
【0009】
いくつかの実施態様では、機械学習ロジックは、機械学習ロジックが非線形回帰として機能するよう構成されるように、デルタ入力を使用して訓練または更新され得る。あるそのような実施態様では、機械学習ロジックは、機械学習ロジックを訓練または更新するために、製造環境内の製造ロボットに関連する1つまたは複数のデルタ入力(例えば、1つまたは複数のデルタパラメータ)を受け取り得る。機械学習ロジックを訓練するために、閾値数の入力が訓練データとして機械学習ロジックに提供され得る。機械学習ロジックが訓練された後、機械学習ロジック(または機械学習ロジックの出力)は、製造ロボットによって1つまたは複数の動作を実施するために使用され得る。1つまたは複数の動作に基づいて、1つまたは複数の追加の入力が機械学習ロジックに提供されるか、またはフィードバックされて、機械学習ロジックを更新し得る。1つまたは複数の追加の入力は、画像データ、入力パラメータデータ、または製造ロボットの製造結果に関連する他のデータを含んでもよいし、それに相当してもよい。
【0010】
いくつかの実施態様では、機械学習ロジックは、ロボットによって生産される製造アウトプットに関連する情報のセットを受け取り得る。例えば、情報のセットは、継ぎ目の場所、軌道(例えば、経路計画、動作計画、作業角度、先端位置など)、1つもしくは複数の溶接パラメータ(例えば、電圧、電流、供給速度など)、基準溶接プロファイル、またはそれらの組合せを含んでもよい。基準溶接プロファイルは、継ぎ目の溶接部の幾何学的表現の1つまたは複数の特徴を含むか、または示し得る。例えば、基準溶接プロファイルなどの溶接プロファイルは、溶接部のジオメトリまたは形状を含むか、または示してもよいし、(溶接されている)部品もしくは部品の一部分、またはそれらの組合せを含んでもよい。いくつかの実施態様では、基準溶接プロファイルは、製造アウトプットの製造仕様(例えば、所望のアウトプット)を含む。加えて、または代替として、基準溶接プロファイルは、ロボットからの溶接部の溶接プロファイルであってもよい。
【0011】
機械学習ロジックは、受け取った軌道、1つもしくは複数の溶接パラメータ、またはそれらの組合せに基づいて第1の溶接プロファイルを生成するか、またはシミュレートし得る。機械学習ロジックは、第1の溶接プロファイルおよび基準溶接プロファイルに基づいて第1の比較を行い、第1の比較に基づいて第1の差分を決定し得る。第1の差分に基づいて、機械学習ロジックは、軌道、1つもしくは複数の溶接パラメータ、またはそれらの組合せを更新し得る。ロボットは、更新された軌道、更新された1つもしくは複数の溶接パラメータ、またはそれらの組合せに基づいて製造作業を行って、第1の製造アウトプットを生産し得る。ロボットを含む製造ロボット環境に関連する1つまたは複数のセンサは、ロボット、製造ロボット環境、第1の製造アウトプット、またはそれらの組合せに関連する情報を取り込み得る。いくつかの実施態様では、情報は、画像データ、温度データ、音声データ、位置データ、電気データ、溶接された後の溶接ビードの形状、溶接プロセスに起因して変形し得る溶接された部品の形状、表面に見える熱影響部、溶接部の表面に観察されるポロシティ、溶接ヘッドまたは溶接部もしくは溶接部の周囲領域に関連する熱シグネチャ、溶接部の音響指紋、溶接部の表面下構造もしくは品質を予測し得る任意の他の情報、またはそれらの組合せを含み得る。機械学習ロジックは、取り込みデータを受け取り、取り込みデータに基づいて、第1の製造アウトプットの第2の溶接プロファイルなどの溶接プロファイルを決定し得る。機械学習ロジックは、第2の溶接プロファイルおよび基準溶接プロファイルに基づいて第2の比較を行い、第2の比較に基づいて第2の差分を決定し得る。第2の差分、受け取った取り込みデータ、またはそれらの組合せに基づいて、機械学習ロジックは、後続の製造作業中に使用するために、軌道、1つもしくは複数の溶接パラメータ、またはそれらの組合せを更新し得る。いくつかの実施態様では、各製造作業後に、機械学習ロジックは、取り込みデータを受け取り、受け取った取り込みデータに基づいて、軌道、1つもしくは複数の溶接パラメータ、またはそれらの組合せを更新し得る。
【0012】
本開示で説明される主題の特定の実施態様は、以下の潜在的な利点または利益のうちの1つまたは複数を実現するために実施され得る。いくつかの局面では、本開示は、機械学習ロジックを訓練または更新するための技術を提供する。機械学習モデルの訓練および更新により、製造アウトプットの品質が改善され得るか、ロボットまたはロボットシステムの効率が改善され得るか、無駄な時間および材料が削減され得るか、またはそれらの組合せがなされ得る。実施態様において、機械学習モデルの訓練または更新は、強化学習を使用して行われ得る。
【0013】
本開示の一局面において、製造ロボットを動作させるための、コンピュータによって実行される方法は、1つまたは複数のセンサから、第1の製造アウトプットに関する情報を受け取ることを含む。第1の製造アウトプットは、第1の溶接プロファイル、第1の軌道、第1の1つもしくは複数の製造パラメータ、またはそれらの組合せに基づいて、製造ロボットによって生成される。コンピュータによって実行される方法はまた、第1の製造アウトプットに関する情報、および第1のプロファイル、第1の軌道、第1の1つもしくは複数の製造パラメータ、またはそれらの組合せをプロセッサによって処理して、第2の軌道または第2の1つもしくは複数の製造パラメータを生成することも含む。コンピュータによって実行される方法は、第2の軌道、第2の1つもしくは複数の製造パラメータ、またはそれらの組合せに基づく製造ロボットによる第2の製造アウトプットの生成を開始させることをさらに含む。
【0014】
本開示のさらなる局面では、溶接ロボットを動作させる、コンピュータによって実行される方法は、機械学習ロジックを使用して、1つもしくは複数の溶接パラメータ、基準溶接プロファイル、継ぎ目の場所、軌道、またはそれらの組合せに基づいて第1の溶接プロファイルを推定することを含む。コンピュータによって実行される方法はまた、1つもしくは複数の溶接パラメータ、第1の溶接プロファイルおよび基準溶接プロファイルに基づく比較に基づいて生成された差分プロファイルに基づいて、1つまたは複数の更新された溶接パラメータを生成することも含む。コンピュータによって実行される方法は、1つまたは複数のセンサから受け取られたセンサデータに基づいて第2の溶接プロファイルを決定することをさらに含む。センサデータは、1つまたは複数の更新された溶接パラメータに基づいて溶接ロボットによって形成された溶接部に関連する。コンピュータによって実行される方法はまた、第1の溶接プロファイル、第2の溶接プロファイル、差分プロファイル、軌道、またはそれらの組合せに基づいて機械学習ロジックを更新することも含む。
【0015】
本開示のさらなる局面では、溶接ロボットを動作させるための、コンピュータによって実行される方法は、基準溶接プロファイルと、溶接ロボットによって形成された第1の溶接部の第1の溶接プロファイルとに基づいて第1の差分プロファイルを生成すること、ならびに第1の差分プロファイル、1つもしくは複数の入力パラメータ、またはそれらの組合せに基づいて少なくとも1つの更新された溶接パラメータを生成することを含む。コンピュータによって実行される方法は、少なくとも1つの更新された溶接パラメータに基づいて溶接ロボットによって形成された第2の溶接部の第2の溶接プロファイルを決定することをさらに含む。第2の溶接プロファイルは、1つまたは複数のセンサから受け取られた第1のセンサデータに基づいて決定される。コンピュータによって実行される方法はまた、基準溶接プロファイルおよび第2の溶接プロファイルに基づいて第2の差分プロファイルを生成すること、ならびに第1の差分プロファイル、1つまたは複数の入力パラメータ、第2の差分プロファイル、および少なくとも1つの更新された溶接パラメータに基づいて機械学習ロジックを更新することも含む。
【0016】
上記は、以下の詳細な説明がよりよく理解され得るように、本開示による例の特徴および技術的利点をある程度広く概説している。さらなる特徴および利点を以下で説明する。開示される概念および具体例は、本開示の同じ目的を実行するための他の構造を修正するか、または設計するための基礎として容易に利用され得る。そのような同等の構造は、添付の特許請求の範囲から逸脱しない。以下の説明を添付の図面との関連で考察すれば、本明細書に開示される概念の特徴、それらの編成と動作方法の両方が、関連する利点と共によりよく理解されるであろう。図の各々は、例示および説明の目的で提供されており、特許請求の範囲の限定の定義としてではない。
【図面の簡単な説明】
【0017】
本開示の性質および利点のさらなる理解は、以下の図面を参照することによって実現され得る。添付の図面において、類似の構成要素または特徴は、同じ参照ラベルを有する場合がある。簡潔および明瞭にするために、所与の構造のすべての特徴が、その構造が現れるすべての図においてラベル付けされているとは限らない。同一の参照符号は、必ずしも同一の構造を示すものではない。むしろ、同じ参照符号は、同一ではない参照符号と同様に、類似の特徴または類似の機能を有する特徴を示すために使用される場合がある。
【0018】
【
図1】
図1は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを実行するように構成されたシステムを示すブロック図である。
【0019】
【
図2】
図2は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを実行するように構成された別のシステムを示すブロック図である。
【0020】
【
図3】
図3は、1つまたは複数の局面によるグラフ探索法の概略図である。
【0021】
【
図4】
図4は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを動作させる例示的なプロセスを示す流れ図である。
【0022】
【
図5】
図5は、1つまたは複数の局面による、位置の更新の一例を示す図。
【0023】
【
図6】
図6は、1つまたは複数の局面による、溶接プロファイルの変更を示すグラフの一例である。
【0024】
【
図7】
図7は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを動作させる別の例示的なプロセスを示す流れ図である。
【発明を実施するための形態】
【0025】
詳細な説明
添付の図面に関連して以下に記載される詳細な説明は、様々な構成の説明として意図されており、本開示の範囲を限定することを意図されたものではない。むしろ、詳細な説明は、本発明の主題の完全な理解を提供するための具体的な詳細を含む。これらの具体的な詳細はあらゆる場合に必要とされるわけではないこと、および、場合によっては、提示を明確にするために周知の構造および構成要素がブロック図形式で示されることが当業者に理解されるであろう。
【0026】
本開示は、製造ロボット環境で実施される製造プロセスをモデル化する(および部分的に制御もしくは変更する)ための、人工ニューラルネットワークなどの機械学習ロジックの訓練、実行、または更新を提供する装置、システム、および方法に関する。例えば、機械学習ロジックは、製造ロボット環境に関連する1つもしくは複数の動作特性から学習するか、またはそれらに基づいて調整を行うように訓練および実行されてもよい。
【0027】
本開示で説明される主題の特定の実施態様は、以下の潜在的な利点または利益のうちの1つまたは複数を実現するために実施され得る。いくつかの局面では、本開示は、機械学習ロジックを訓練または更新するための技術を提供する。機械学習モデルの訓練および更新により、製造アウトプットの品質が改善され得るか、ロボットまたはロボットシステムの効率が改善され得るか、無駄な時間および材料が削減され得るか、またはそれらの組合せがなされ得る。
【0028】
図1は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを実行するように構成されたシステム100を示すブロック図である。いくつかの実施態様では、システム100は、プロセッサベースのシステム、組立ロボットシステム、またはそれらの組合せを含み得る。
図1のシステム100は、半自律型または自律型の製造環境で機能する1つまたは複数のロボット(例えば、製造ロボット)のための機械学習ロジックを訓練または調整するように構成される。いくつかの実施態様では、システム100は、機械学習ロジックを調整するための機械学習ロジックベースの調整技術をサポートするか、または実装するように構成される。
【0029】
半自律型もしくは自律型の溶接環境または半自律型もしくは自律型の溶接ロボットなどの製造環境またはロボットは、衝突することなく、識別された継ぎ目を正確にまたは所望通りに溶接するために、いくつかの部品を走査する1つまたは複数のセンサ、溶接される継ぎ目を認識するように構成されたソフトウェアの形態の1つまたは複数のアルゴリズム、ならびに、ロボットの動き、オペレータの制御、および電動式固定具などの任意の他のデバイスをプログラムするソフトウェアの形態の1つまたは複数のアルゴリズムを含み得る。加えて、または代替として、半自律型または自律型の製造環境またはロボットはまた、衝突することなく継ぎ目を正確にまたは所望通りに溶接するために、(1つまたは複数の)部品を走査する1つまたは複数のセンサ、1つまたは複数のセンサを使用して継ぎ目が検出されるか、あるいはおそらくは所与のモデル自体に何らかの方法で既に表示されている場合に(1つまたは複数の)部品の所与のモデルを認識、位置特定、または位置合わせするソフトウェアの形態の1つまたは複数のアルゴリズム、ならびに(1つまたは複数の)ロボットの動き、オペレータの制御、および電動式固定具などの任意の他のデバイスをプログラムするためのソフトウェアの形態の1つまたは複数のアルゴリズムを含んでもよい。半自律型または自律型の溶接ロボットは、これらの能力を部分的に有してもよく、ユーザが付与もしくは選択したパラメータが必要な場合や、他の方法でユーザ(例えば、オペレータ)の関与が必要な場合があることに留意されたい。
【0030】
システム100は、制御システム110、ロボット120(例えば、製造ロボット)、および製造作業スペース130(本明細書では「作業スペース130」とも呼ばれる)を含む。いくつかの実施態様では、システム100は、組立ロボットシステムを含んでもよいし、それに相当してもよい。システム100は、第1の物体135(例えば、第1の部品)と第2の物体136(例えば、第2の部品)を結合するように構成されてもよい。例えば、第1の物体135と第2の物体136は、第1の物体135と第2の物体136の間に継ぎ目144を形成するように設計されてもよい。第1の物体135と第2の物体136の各々は、任意の部品、構成要素、部分構成要素、または部品もしくは構成要素の組合せなどであってもよいが、それらに限定されない。
【0031】
ロボット120は、本明細書では「ロボット120」とも呼ばれ、第1の物体135や第2の物体136などの1つまたは複数の部品に対して溶接作業などの製造作業を行うように構成され得る。いくつかの実施態様では、ロボット120は、アームが取付点を有する六軸ロボットであり得るという点で多自由度を有するロボットとすることができる。ロボット120は、例示的で非限定的な例として、モータ、サーボ、油圧装置、またはそれらの組合せなど、1つまたは複数の構成要素を含んでもよい。
【0032】
いくつかの実施態様では、取付点は、ロボット120に溶接ヘッド(例えば、製造ツール)を取り付け得る。ロボット120は、製造ツールなど、任意の適切なツール121を含んでもよい。いくつかの実施態様では、第1のロボット120は、YASKAWA(登録商標)、ABB(登録商標)IRB、KUKA(登録商標)、またはUniversal Robots(登録商標)によって製造されたロボットアームなどのロボットアームを含む。ロボット120は、取り付けられたツール121に加えて、アーク溶接、抵抗溶接、スポット溶接、TIG溶接、MAG溶接、レーザ溶接、プラズマ溶接、および/またはそれらの組合せなどを行うように構成されることができる。ロボット120は、溶接ヘッド、(1つまたは複数の)センサ、(1つまたは複数の)部品、および/またはそれらの組合せを移動させ、回転させ、並進させ、供給し、かつ/または位置決めする役割を果たすことができる。いくつかの実施態様では、溶接ヘッドを、ロボット120に搭載するか、結合するか、または他の方法で取り付けることができる。
【0033】
いくつかの実施態様では、ロボット120は、1つもしくは複数のツールに結合されてもよいし、それらを含んでもよい。例えば、ロボットが遂行する機能に基づいて、ロボットアームを、その機能を可能にする(例えばその少なくとも一部を遂行する)ように構成されたツールに結合することができる。例示すると、ツール121などのツールが、ロボット120の端部に結合されてもよい。いくつかの実施態様では、ロボット120は、製造ツール(例えば、溶接ツール)、センサ、ピッカもしくはホルダツール、またはそれらの組合せなどの複数のツールに結合されてもよいし、それらを含んでもよい。いくつかの実施態様では、ロボット120は、本明細書でさらに説明するように、別のロボットデバイスなどの別のデバイスと共に動作するように構成されてもよい。
【0034】
ツール121は、1つまたは複数のツールを含んでもよい。例えば、ツール121は、製造ツール(例えば、溶接ツール)、センサ(例えば、109)、ピッカツールもしくはホルダツール、またはそれらの組合せを含んでもよい。図示のように、ツール121は、第1の物体135を含む1つまたは複数の物体の第1のセットなど、1つまたは複数の物体の第1のセットに選択的に結合されるように構成されたピッカツールまたはホルダツールである。いくつかの実施態様では、ピッカツールまたはホルダツールは、例示的で非限定的な例として、グリッパ、クランプ、磁石、またはバキュームを含むかまたはこれらに相当し得る。例えば、ツール121は、OnRobot(登録商標)によって製造されたものなどの3本指グリッパを含んでもよい。
【0035】
いくつかの実施態様では、ロボット120、ツール121、またはそれらの組合せは、第1の物体135がツール121に結合されている間に、第1の物体135の姿勢を変更する(例えば、調整または操作する)ように構成され得る。例えば、ロボット120のコンフィギュレーションが、第1の物体135の姿勢を変更するように修正されてもよい。加えて、または代替として、ツール121は、第1の物体135の姿勢を変えるようにロボット120に対して調整(例えば、回転または傾斜)されてもよい。
【0036】
製造ツール126は、システム100に含まれ、1つまたは複数の製造タスクまたは動作を実施するように構成され得る。1つまたは複数の製造タスクまたは動作は、例示的で非限定的な例として、溶接、ろう付け、はんだ付け、リベット締め、切断、穿孔などを含み得る。いくつかの実施態様では、製造ツール126は、2つ以上の物体を互いに結合させるように構成された溶接ツールである。例えば、溶接ツールは、第1の物体135を第2の物体136に溶接するなど、2つ以上の物体を互いに溶接するように構成されてもよい。例示すると、溶接ツールは、第1の物体135と第2の物体136の間に形成された継ぎ目に沿って溶接金属を施すように構成されてもよい。加えて、または代替として、溶接ツールは、第1の物体135と第2の物体136を互いに結合させるために第1の物体135と第2の物体136の間に形成された継ぎ目を融着するなど、第1の物体135と第2の物体136を互いに融着させるように構成されてもよい。いくつかの実施態様では、製造ツール126は、溶接命令などの製造命令に応答して、1つまたは複数の製造タスクまたは動作を実施するように構成され得る。製造ツール126は、ロボット120とは別個のものとして示されているが、他の実施態様では、ロボット120または別のロボットに結合されていてもよい。
【0037】
作業スペース130は、製造作業スペースと呼ばれることもある。いくつかの実施態様では、作業スペース130は、溶接のための適切な安全対策を考慮して設計された任意の適切な溶接領域であり得る。例えば、作業スペース130は、作業場、現場、製造プラント、組立工場などに位置する溶接領域であり得る。いくつかの実施態様では、システム100の少なくとも一部分は、作業スペース130と共に位置決めされる。例えば、作業スペース130は、その中で1つまたは複数のロボットデバイス(例えば、(1つまたは複数の)ロボットアーム)が1つまたは複数の物体(または部品)に対して動作するように構成されている領域または空間であってもよい。1つまたは複数の物体は、1つまたは複数の台、容器、ビン、ラック、ホルダ、またはポジショナ上に位置決めされるか、それらに結合されるか、それらに格納されるか、または他の方法でそれらによって支持され得る。1つまたは複数の物体(例えば、135または136)は、固定具および/またはクランプ(まとめて「固定具」と呼ばれる)を使用して、作業スペース130内で保持され、位置決めされ、かつ/または操作され得る。固定具は、1つまたは複数の部品をしっかりと保持するように構成され得る。いくつかの実施態様では、固定具を調整可能とすることができる。いくつかの実施態様では、固定具を電動式とすることができる。例えば、固定具は、重力および/またはロボット120に対する部品(したがって継ぎ目)の向きを変更するために使用することができる電動式ポジショナを含んでもよい。いくつかの実施態様では、ロボット120および電動式ポジショナは、部品の向き、よって継ぎ目の向きを変更するように互いに協調して動作するようにプログラムされる。
【0038】
制御システム110は、ロボット120を動作させ、かつ制御して作業スペース130内で製造機能を遂行させるように構成される。例えば、制御システム110は、ロボット120(例えば、溶接ロボット)を動作させ、かつ/または制御して、1つまたは複数の部品に対して溶接作業を行わせることができる。本明細書では溶接環境に関して説明されているが、製造環境は、組立て、塗装、包装などといった任意の様々な環境のうちの1つまたは複数を含んでもよい。いくつかの実施態様では、作業スペース130は、溶接される1つまたは複数の部品(例えば、135または136)を含み得る。1つまたは複数の部品は、1つまたは複数の異なる部品から形成され得る。例えば、1つまたは複数の部品は、第1の部品(例えば、135)および第2の部品(例えば、136)を含んでもよく、第1の部品と第2の部品は、それらの界面に継ぎ目(例えば、144)を形成する。いくつかの実施態様では、第1の部品および第2の部品は、仮付け溶接を用いて一緒に保持され得る。他の実施態様では、第1の部品と第2の部品は溶接されなくてもよく、ロボット120は、これらの部品を互いに軽く接合するために第1の部品と第2の部品との継ぎ目に仮付け溶接を行うだけである。加えて、または代替として、仮付け溶接の形成に続いて、ロボット120は、継ぎ目のさらなる部分を溶接して、部品を互いにしっかりと接合してもよい。
【0039】
いくつかの実施態様では、制御システム110は、ロボット120の外部に実装され得る。例えば、制御システム110は、半自律型または自律型の溶接ロボットなどのロボット120の制御を提供するために、サーバシステム、パーソナルコンピュータシステム、ノートブックコンピュータシステム、タブレットシステム、またはスマートフォンシステムを含んでもよい。制御システム110はロボット120とは別個のものとして示されているが、制御システム110の一部分または全体が、ロボット120の内部に実装されてもよい。例えば、ロボット120の内部にある制御システム110の部分は、ロボット制御ユニット、電子制御ユニット、またはオンボードコンピュータとして含まれてもよく、半自律型または自律型の溶接ロボットなどのロボット120の制御を提供するように構成されてもよい。
【0040】
ロボット120の内部または外部に実装された制御システム110は、本明細書ではまとめて「ロボットコントローラ110」と呼ばれることもある。ロボットコントローラ110は、継ぎ目識別システム、軌道計画システム、溶接シミュレーションシステム、半自律型もしくは自律型の溶接ロボットに関連する別のシステム、またはそれらの組合せを含むか、またはそれらに結合されてもよい。なお、継ぎ目識別システム、軌道計画システム、溶接シミュレーションシステム、または半自律型もしくは自律型の溶接ロボットに関連する別のシステムの1つまたは複数は、制御システム110から独立して、または制御システム110の外部に実装されてもよい。
【0041】
制御システム110は、1つまたは複数の構成要素を含み得る。例えば、制御システム110は、コントローラ152、1つまたは複数の入出力(I/O)および通信アダプタ104(以下、まとめて「I/Oおよび通信アダプタ104」と呼ぶ)、1つまたは複数のユーザインターフェースおよび/またはディスプレイアダプタ106(以下、まとめて「ユーザインターフェースおよびディスプレイアダプタ106」と呼ぶ)、ならびにネットワークインターフェース106を含んでもよい。コントローラ152は、プロセッサ101およびメモリ102を含み得る。プロセッサ101およびメモリ102は両方ともコントローラ152に含まれるものとして説明されているが、他の実施態様では、プロセッサ101またはメモリ102の各々が1つまたは複数の別個の構成要素であり得るように、プロセッサ101、メモリ102、または両方がコントローラ152の外部にあってもよい。
【0042】
コントローラ152は、本明細書で説明するような1つまたは複数の動作を行うように具体的かつ特別に構成された(例えば、プログラムされている)任意の適切な機械であってもよい。いくつかの実施態様では、コントローラ152は、汎用コンピュータではなく、本明細書で説明するような1つまたは複数の動作を実施するように特別にプログラムまたはハードウェア構成される。加えて、または代替として、コントローラ308は、特定用途向け集積回路(ASIC)、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、またはそれらの組合せであるか、またはそれらを含む。
【0043】
いくつかの実施態様では、制御システム110は、バス(図示せず)を含むことができる。バスは、制御システム110の1つまたは複数の構成要素を電気的にまたは通信可能に接続するように構成され得る。例えば、バスは、コントローラ152、プロセッサ101、メモリ102、I/Oおよび通信アダプタ104、ならびにユーザインターフェースおよびディスプレイアダプタ106を接続してもよい。加えて、または代替として、バスは、コントローラ152、プロセッサ101、メモリ102、I/Oおよび通信アダプタ104、ならびにユーザインターフェースおよびディスプレイアダプタ106の1つまたは複数の構成要素または部分を接続してもよい。
【0044】
プロセッサ101は、中央処理装置(CPU)を含んでもよく、CPUは本明細書では処理ユニットと呼ばれることもある。プロセッサ101は、Intel Corporationから入手可能なCOREファミリのプロセッサ、Advanced Micro Devices, Inc.から入手可能なATHLONファミリのプロセッサ、AIM Allianceから入手可能なPOWERPCファミリのプロセッサなどといった汎用CPUを含んでもよい。しかしながら、本開示は、プロセッサ101が本明細書で説明されるような1つまたは複数の動作をサポートする限り、プロセッサ101のアーキテクチャによって制限されない。例えば、プロセッサ101は、特定用途向け集積回路(ASIC)、グラフィックスプロセッシングユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)などといった、1つまたは複数の専用プロセッサを含んでもよい。
【0045】
メモリ102は、ランダムアクセスメモリ(RAM)(例えば、SRAM、DRAM、SDRAMなど)、ROM(例えば、PROM、EPROM、EEPROMなど)、1つまたは複数のHDD、フラッシュメモリデバイス、SSD、永続的もしくは非永続的状態でデータを記憶するように構成された他のデバイス、または異なるメモリデバイスの組合せなどの記憶デバイスを含んでもよい。メモリ102は、機械学習ロジックベースの調整技術の機能を遂行するための前述のプログラムコードの一部または全部、およびそれらに関連するデータを含み得るような、ユーザおよびシステムのデータおよびプログラムを記憶するように構成される。
【0046】
メモリ102は、命令103、製造情報158、溶接プロファイル163、および情報164を含むか、または記憶するように構成される。1つまたは複数の局面において、メモリ102は、本明細書で説明されるように、プロセッサ101によって実行されると、本開示の1つまたは複数の局面による動作をプロセッサ101に実施させる実行可能コードなどの命令103を記憶し得る。いくつかの実施態様では、命令103(例えば、実行可能コード)は、単一の自己完結型プログラムである。他の実施態様では、命令(例えば、実行可能コード)は、記憶装置または他の場所に記憶され得る他の実行可能コードに対する1つまたは複数の関数呼出しを有するプログラムである。実行可能コードの実行に帰せられる1つまたは複数の関数が、ハードウェアによって実装されてもよい。例えば、実行可能コードの1つまたは複数の個別のタスクを実施するために、複数のプロセッサが使用されてもよい。
【0047】
命令103は、機械学習ロジック107および経路計画ロジック105を含み得る。加えて、または代替として、命令103は、認識ロジック(図示せず)などの他のロジックを含んでもよい。経路計画ロジック105および機械学習ロジック107は、別々のロジックブロック(論理ブロック)として示されているが、メモリ102の一部であってもよく、それぞれ経路計画および機械学習の機能を遂行するためのプログラムコード(およびそれに関連するデータ)を含んでもよい。例えば、経路計画ロジック105は、これに限定されないが、溶接を完成させるためにロボット120の動きを最適化することを含めて、継ぎ目に沿ったロボット120の経路を生成するように構成される。
【0048】
例示的で非限定的な例として、経路計画ロジック105は、識別された継ぎ目に適合する経路または軌道を生成するために、グラフマッチング手法またはグラフ探索手法用に構成されてもよい。溶接の場合、ロボットアームに結合された溶接ヘッドを用いた溶接のタスクは、5自由度で指定され得る。システムのハードウェア能力(ロボットアームの5自由度およびポジショナによって提供される自由度)は、5自由度を超える。いくつかの実施態様では、経路計画ロジック105は、例えば衝突回避を考慮する場合に、5自由度を超える自由度を使用して探索を行い得る。この冗長性を回避する方法は複数あり、まず、より高い次元でタスクを指定することによって、冗長な入力を有するシステム(over-actuated system)を抑制するか、または冗長性を用いて複数の選択肢を検討する。従来、経路計画(パスプランニング)は、一般的にグラフ探索問題として提起される。それは、冗長な入力を有する計画(over-actuated planning)とみなされ得、いくつかの実施態様では、冗長自由度を離散化することができ、グラフを構築する際に各サンプルを一意のノードとして扱うことができる。結果として得られるグラフの構造は、高速なグラフ探索アルゴリズムを可能にし得る。継ぎ目上の各点は、梯子の段に類似した、グラフ内の層とみなすことができる。経路計画問題の性質上、ロボットは常に順方向にこれらの段の間を遷移しなければならない。これが、グラフ探索をより単純にする問題の第1の局面である。経路計画ロジック105は、継ぎ目上の各点について複数のジョイント空間解を生成する。所与の点に対するすべての解は同じ層に属する。同じ段の異なる解の間をロボットが遷移するための点は存在せず、したがって、グラフでは、これらのノードは接続されない。これは、グラフの構造にさらなる制限を加える。
【0049】
図3は、1つまたは複数の局面によるグラフ探索法の概略
図300である。いくつかの実施態様では、概略図は、ロボット120の経路計画を決定し得るグラフ探索法を表す(例えば、コントローラ152)。
【0050】
いくつかの実施態様では、概略
図300の別の例として、
図300の各円は、溶接要件を満たすジョイント(ロボットおよびポジショナ)のコンフィギュレーションなど、ロボット120の異なる状態を表す。各矢印は、ロボットが継ぎ目に沿って移動するために取ることができる経路である。例示すると、各円は、作業スペース130内のロボット120の特定の場所(例えば、3D空間内のロボット120の溶接ヘッドの場所)およびロボット120のアームの異なるコンフィギュレーション、ならびに、ポジショナ、クランプなどといった部品を支持する固定具の位置またはコンフィギュレーションであってもよい。各列302、306、および310は、溶接される継ぎ目に沿った異なる点を表す。よって、列302に対応する継ぎ目点については、ロボット120は、状態304A~304Dのいずれかにあり得る。同様に、列306に対応する継ぎ目点については、ロボット120は、状態308A~308Dのいずれかにあり得る。同様に、列310に対応する継ぎ目点については、ロボット120は、状態312A~312Dのいずれかにあり得る。例えば、ロボット120が列302に対応する継ぎ目点にあるときに状態304Aにある場合、ロボット120は、次いで、列306に対応する次の継ぎ目点についての状態308A~308Dのいずれかに遷移してもよい。同様に、状態308A~308Dに入ると、ロボット120は、続いて、列310に対応する次の継ぎ目点についての状態312A~312Dのいずれかに遷移してもよく、以下同様である。いくつかの例では、特定の状態に入ることは、他の状態に入ることを排除し得る。例えば、状態304Aに入ることは、続いて状態308A~308Cに入る可能性を許容し得るが、308Dに入る可能性は許容せず、一方、状態304Bに入ることは、続いて状態308Cおよび308Dに入る可能性を許容し得るが、状態308A~308Bに入る可能性は許容しない。本開示の範囲は、いかなる特定の数の継ぎ目点にも、いかなる特定の数のロボット状態にも限定されない。
【0051】
いくつかの例では、(例えば、
図300に示す技法による)グラフ探索法を用いてロボット120の経路計画を決定するために、コントローラ152は、状態304A~304Dから継ぎ目点Nに対応する状態(例えば、状態312A~312D)への最短経路を決定し得る。各状態および状態間の各遷移にコストを割り当てることにより、ユーザまたはコントローラ152は目的関数を設計することができる。コントローラ152は、目的関数の最小のコスト値をもたらす経路を見つける。複数の始点および終点を自由に選択できるため、ダイクストラのアルゴリズムやA*のようなグラフ探索法が実行され得る。いくつかの例では、適切な経路計画を決定するのに総当たり法が有用であり得る。総当たり法は、制御システム110(例えば、コントローラ152やプロセッサ101)が、(例えば、
図300を通る)すべての可能な経路を計算し、(例えば、目的関数を最小化または最大化することによって)最短経路を選択することを必要とする。簡単に言えば、総当たり法は、このグラフを通るすべての可能な経路を計算し、最短経路を選択する。総当たり法の複雑さはO(E)とすることができ、ここでEはグラフ内のエッジの数である。継ぎ目にN個の点があり、点ごとにM個の選択肢があると仮定する。任意の2つの層の間には、M*M個のエッジがある。よって、すべての層を考慮すると、N*M*M個のエッジがある。時間複雑度は、O(NM
2)、すなわちO(E)である。
【0052】
図1に戻ると、機械学習ロジック107は、ロボット120の動作特性(例えば、較正誤差、ロボットに固有の固有誤差など)から学習して、それらに適応するように構成される。システム100の動作中に、または当該動作に基づいて、1つまたは複数の製造機能(例えば、溶接、塗装など)をモデル化または遂行するために、機械学習ロジック(例えば、機械学習ロジック107)が、溶接ロボットなどのロボット120に対して提供される。機械学習ロジック107は、後続の製造結果の品質を改善するために、前の製造結果からの1つまたは複数の取り込みデータに基づいて更新されるように構成される。
【0053】
機械学習ロジック107は、例えば、これに限定されないが、機械学習ロジック107が非線形回帰として機能することを可能にし得るデルタ入力を使用して、訓練され得る。デルタ入力は、数列の連続微分可能な関数の正規近似(正規の中心極限のタイプまたは結果、すなわち正規分布への分布収束)を可能にする。別の言い方をすれば、(例えば、デルタ入力を使用する)デルタ法は、入力の変化および入力の導関数の特性評価を可能にする。
【0054】
いくつかの実施態様では、機械学習ロジック107は、訓練されていないロジック(例えば、ニューラルネットワーク)として訓練プロセスを開始し得る。ロボット120が製造活動(例えば、溶接)を行うために使用されるにつれて、時間の経過と共に、ロボット120は、ロボット120の動作特性(例えば、較正誤差、固有誤差)から学習するように機械学習ロジック107を訓練するために、1つまたは複数のデルタ入力(例えば、デルタパラメータ)などの訓練データを機械学習ロジック107に提供する。有限量の訓練データの提供後、機械学習ロジック107は「訓練された」とみなされ得る。実施態様においては、ロボット120の製造結果(例えば、溶接部品)に関連するいくつかのデータ(例えば、画像データおよび/または入力パラメータデータおよび/または任意の関連データ)が、訓練された機械学習ロジック107を更新するために利用され得る。このフィードバックプロセスは、訓練された機械学習ロジック107を適応させるか、またはさらに訓練するために使用され得る。機械学習ロジック107を訓練または更新するためのシステム100の1つまたは複数の構成要素の動作の例については、少なくとも
図4および
図7を参照して本明細書でさらに説明する。
【0055】
例として、限定ではなく、機械学習ロジック107(例えば、人工ニューラルネットワーク)は、溶接ロボットなどのロボット120に関連する動作特性に適応するように訓練および更新され、それによってロボット120のアウトプット(例えば、溶接部)の品質(例えば、溶接品質)を改善することができる。ロボット120に関連するそのような機械学習ロジック107のいくつかの実施態様では、製造情報158などの情報のセットが、ロボット120に提供されるか、またはロボット120によって決定され得る。情報のセットは、継ぎ目の場所(例えば、159)、ロボット120が辿ることになる軌道160(例えば、経路計画、動作計画、作業角度、先端位置など)、1つまたは複数の溶接パラメータ161(例えば、電圧、電流、供給速度など)、および基準溶接プロファイル162(例えば、識別された継ぎ目の溶接部の幾何学的表現)を含み得る。
【0056】
そのような機械学習ロジック107のいくつかの実施態様では、シミュレートまたは推定された溶接プロファイル(例えば、163)を生成するために、上記の情報の一部または全部が機械学習ロジック107に提供され得る。いくつかの実施態様では、シミュレートまたは推定された溶接プロファイル(例えば、163)は、次いで、基準溶接プロファイル162と比較されて、「差分溶接プロファイル」(溶接プロファイル163の一部としてメモリ102に記憶され得る)を生成し得る。差分溶接プロファイルは、基準溶接プロファイル162と、シミュレートまたは推定された溶接プロファイルとの間の差分を含み得る。いくつかの実施態様では、差分溶接プロファイルは、2つ以上の溶接プロファイルの間の平均溶接プロファイルまたは平均誤差であり得る。その後、ロボット120は、更新された溶接パラメータ161(例えば、溶接パラメータのデルタ)、更新された軌道160、またはそれらの組合せを出力するために、1つまたは複数の入力パラメータに対する差分溶接プロファイルの1つまたは複数の導関数を決定し得る。いくつかの実施態様では、ロボット120は、更新された溶接パラメータまたは更新された軌道を使用して、第1の物体135、第2の物体136、またはその両方などの部品に対して溶接機能(例えば、溶接)を遂行し得る。次の溶接部に移る前に、ロボット120は、前の溶接部からのセンサデータ180などのデータ(例えば、画像データおよび/または入力パラメータデータおよび/または製造結果に関連する任意のデータ)を取り込んで、その溶接部のプロファイル(本明細書では「実際の溶接プロファイル」と呼ばれる)を決定し、それを溶接プロファイル163の一部としてメモリ102に記憶し得る。いくつかの実施態様では、実際の溶接プロファイル、ならびに/または入力パラメータ、初期経路計画、更新されたパラメータ(例えば、161)、および更新された軌道160を含む他の情報のうちの1つまたは複数が、次いで、溶接パラメータ161および軌道160を溶接プロファイル(例えば、162または163)の形状によりよくマッピングする、よりよく学習されたロジックを構築するために、フィードバック情報として機械学習ロジック107に提供され得る。取り込みデータに基づく機械学習ロジック107の更新により、後続の溶接部の品質が改善される。
【0057】
加えて、または代替として、機械学習ロジック107のいくつかの実施態様では、情報のセット(例えば、158)がロボット120(例えば、溶接ロボット)に提供されるか、またはロボット120によって決定される。情報のセットは、継ぎ目の場所(例えば、159)、前の溶接部の溶接プロファイル(例えば、ロボット120によって前に行われた溶接の幾何学的コンフィギュレーション)、基準溶接部の基準溶接プロファイル162、1つまたは複数の溶接パラメータ161、ロボット120が辿ることになる軌道160(例えば、経路計画、動作計画、作業角度、先端位置など)を含み得る。いくつかの実施態様では、前の溶接プロファイル(例えば、163)および基準溶接プロファイル162は、差分溶接プロファイル(または残差溶接プロファイル)を生成するように処理され得る。いくつかの実施態様では、差分溶接プロファイルは、溶接パラメータにおける提示されたデルタ(差分)(ロボット120に最初に提供されたか、またはロボット120によって決定された溶接パラメータに対するデルタ)を含むデルタ溶接パラメータを生成するために機械学習ロジック107に提供され得る。他の実施態様では、生成されたパラメータは、更新された溶接パラメータ(例えば、パラメータにおける提示されたデルタを含む新しいパラメータセット)を含み得る。ロボット120は、更新された溶接パラメータ(例えば、161)または更新された軌道(例えば、160)を使用して溶接を行い得る。次の溶接部に移る前に、ロボット120またはセンサ109は、溶接部からデータ(例えば、画像データもしくは入力パラメータデータ、または製造結果に関連する任意のデータ)を取り込んで、(本明細書では「実際の溶接プロファイル」と呼ばれる)行われた溶接の溶接プロファイル(例えば、溶接部の幾何学的コンフィギュレーション)を決定してもよく、これは溶接プロファイル163の一部としてメモリ102に記憶され得る。次いで、ロボット120または制御システム110は、所望の溶接プロファイルを実際の溶接プロファイルと比較して別の差分プロファイルを生成するように構成され得る。いくつかの実施態様では、他の差分プロファイルのうちの1つまたは複数が、差分プロファイルに関連する情報、例えば初期パラメータ、初期経路計画、更新されたパラメータ(またはパラメータのデルタ)、および更新された軌道160と共に、フィードバック情報として機械学習ロジック107に提供され得る。上記のように、フィードバック情報は、よりよく学習されたロジックを構築するために機械学習ロジック107に提供され得る。
【0058】
製造情報158は、(例えば、継ぎ目の)場所159、軌道160、1つまたは複数の溶接パラメータ161(本明細書では「溶接パラメータ161」とも呼ばれる)、および基準溶接プロファイル162を含み得る。場所159は、継ぎ目144などの継ぎ目の場所を含むか、または示し得る。軌道160は、経路計画、動作計画、作業角度、先端位置、またはロボット120の移動に関連する他の情報を含み得る。溶接パラメータ161は、電圧、電流、供給速度、または溶接作業に関連する他の情報を含むか、または示し得る。基準溶接プロファイル162は、継ぎ目の溶接部の幾何学的表現の1つまたは複数の特徴を含むか、または示し得る。例えば、基準溶接プロファイル162は、溶接部のジオメトリまたは形状を含むか、または示してもよいし、(溶接されている)部品もしくは部品の一部分、またはそれらの組合せを含んでもよい。いくつかの実施態様では、基準溶接プロファイル162は、製造アウトプットの製造仕様(例えば、所望のアウトプット)を含む。加えて、または代替として、基準溶接プロファイルは、ロボット120または別のロボットなどのロボットによる溶接部の溶接プロファイルであってもよい。軌道160、溶接パラメータ161、またはそれらの組合せは、ロボットに1つまたは複数の動作を行わせるために制御システム110によってロボット120に提供される制御情報182を生成するために使用され得る。例えば、制御システム110(例えば、コントローラ152)は、溶接プロファイル162を解釈し、軌道160、溶接パラメータ161、制御情報182、またはそれらの組合せを生成するように構成されてもよい。加えて、または代替として、制御システム110(例えば、コントローラ152)は、制御情報182を溶接コマンドとしてロボット120に送ってもよい。
【0059】
溶接プロファイル163は、シミュレート、推定、または決定された溶接プロファイルを含むか、または示し得る。溶接プロファイルは、継ぎ目の溶接部の幾何学的表現の1つまたは複数の特徴を含むか、または示し得る。別の言い方をすれば、溶接プロファイルは、溶接部のジオメトリまたは形状を含むか、または示してもよいし、(溶接されている)部品もしくは部品の一部分、またはそれらの組合せを含んでもよい。溶接プロファイル163は、基準溶接プロファイル162、軌道160、溶接パラメータ、センサデータ165もしくは180(例えば、センサ109からのデータ)、またはそれらの組合せに基づいてシミュレートまたは決定され得る。いくつかの実施態様では、溶接プロファイル162は、2つ以上の溶接プロファイルの間の平均溶接プロファイルまたは2つ以上の溶接プロファイルの間の平均誤差などの差分溶接プロファイルを含むか、または示し得る。
【0060】
情報164は、センサデータ165、姿勢情報166、またはシステム情報168を含むか、または示し得る。センサデータ165は、コントローラ152によって受け取られたセンサデータ180を含んでもよいし、それに相当してもよい。姿勢情報166は、第1の物体135、第2の物体136、またはそれらの組合せの姿勢を含んでもよいし、それに相当してもよい。システム情報168は、1つまたは複数のデバイス(例えば、ロボット120、ツール121、製造ツール126、またはセンサ109)に関連する情報を含み得る。例示すると、システム情報168は、例示的で非限定的な例として、ID情報、通信アドレス、1つもしくは複数のパラメータ、またはそれらの組合せを含んでもよい。
【0061】
通信アダプタ104は、制御システム110をネットワーク(例えば、セルラー通信ネットワーク、LAN、WAN、インターネットなど)に接続するように構成される。態様の通信アダプタ104は、例えば、WiFiネットワークアダプタ、Bluetoothインターフェース、セルラー通信インターフェース、メッシュネットワークインターフェース(例えば、ZigBee、Z-Waveなど)、ネットワークインターフェースカード(NIC)などを含み得る。例示の態様のユーザインターフェースアダプタおよびディスプレイアダプタ106は、制御システム110とのユーザインターフェースを容易にするために利用され得る。例えば、ユーザインターフェースおよびディスプレイアダプタ106は、所望されるときに(例えば、1つまたは複数の溶接パラメータに関する情報を収集するときに)ユーザ入力を容易にするために、1つまたは複数のユーザ入力デバイス(例えば、キーボード、ポインティングデバイス、タッチパッド、マイクロフォンなど)を制御システム110に接続してもよい。
【0062】
いくつかの実施態様では、I/Oおよび通信アダプタ104はまた、継ぎ目の場所を検出するか、または他の方法で決定するシステムに対して使用するなどのために、(1つまたは複数の)センサ109(例えば、グローバルセンサ、ローカルセンサなど)をプロセッサ101およびメモリ102に接続し得る。I/Oおよび通信アダプタ104は、加えて、または代替として、所望の機能を容易にする(例えば、システムが、計画された軌道、学習動作の結果、ならびに/または他の情報および文書などの情報の紙コピーを印刷することを可能にする)ために、プリンタ(例えば、ドットマトリックスプリンタ、レーザプリンタ、インクジェットプリンタ、サーマルプリンタなど)などの様々な他のデバイスの接続を提供してもよい。
【0063】
ユーザインターフェースおよびディスプレイアダプタ106は、所望されるときにユーザ出力(例えば、溶接のシミュレーション)を容易にするために、1つまたは複数のユーザ出力デバイス(例えば、フラットパネルディスプレイ、タッチスクリーン、ヘッドアップディスプレイ、ホログラフィックプロジェクタなど)を制御システム110に接続するように構成され得る。制御システム110の前述の機能的局面の様々なものは、システム100の特定のインスタンスの特定の実施態様に応じて、所望されるか、または適切と判定された場合に、含まれてもよいし、省略されてもよいことを理解されたい。
【0064】
ユーザインターフェースおよびディスプレイアダプタ106は、記憶デバイス108、センサ109、別のデバイス、またはそれらの組合せに接続されるように構成される。記憶デバイス108は、ハードドライブ、光学ドライブ、ソリッドステートドライブ、または1つもしくは複数のデータベースのうちの1つまたは複数を含んでもよい。記憶デバイス108は、機械学習ロジックベースの調整技術の機能を遂行するためのプログラムコードおよびそれに関連するデータを交換するなどのために、コントローラ152、プロセッサ101、またはメモリ102に接続されるように構成され得る。
【0065】
いくつかの実施態様では、記憶デバイス108は、例えば、機械学習ロジックのプログラムコード(例えば、プログラムロジック)、機械学習ロジックによって使用されるデータ、例えば、履歴パラメータ情報、溶接環境の属性などを記憶し得る。
【0066】
センサ109は、作業スペース130のデータ(例えば、画像データ)を取り込むように構成され得る。センサ109には、カメラ、スキャナ、レーザスキャナ、内蔵レーザセンサを備えたカメラなどの画像センサが含まれ得る。センサ109は、1つまたは複数の部品または固定具の2Dおよび/または3D画像を取り込むように構成され得る。場合によっては、センサ109は、溶着の前、最中、または後に、ロボット120によって施された溶接部を撮像または監視するように構成されてもよい。別の言い方をすれば、センサ109は、ロボット120によって施された溶接部の幾何学的コンフィギュレーションを取り込んだ1つまたは複数の画像を生成するように構成され得る。幾何学的コンフィギュレーションは、3D点群情報、メッシュ、溶接部のスライスの画像、溶接部のスライスの点群などを含む任意のものであってもよい。本明細書では、前述の技術を「溶接プロファイル生成」と呼ぶ。いくつかの実施態様では、センサ109は、ロボット120に搭載されてもよいし、そうではなく作業スペース130に一体化されてもよい。例えば、センサ109は、ロボット120に取り付けられてもよいし、そうではなくロボットの一部とされてもよい。いくつかの実施態様では、1つまたは複数のセンサ109が、作業スペース130内に位置決めされた別のロボット(
図1には図示せず)に搭載されてもよい。例えば、ロボットは、センサ109が様々な角度から作業スペース130および/または1つもしくは複数の部品(例えば、135や136)および/または固定具の画像データを取り込むことができるように移動(例えば、回転運動や並進運動)するように動作し得る。
【0067】
センサ109は、様々な位置および角度から作業スペース130の画像データを取り込むように構成され得る。より具体的には、センサ109は、複数の角度または視点から1つまたは複数の部品および固定具の画像データを取り込み得る。いくつかの実施態様では、1つまたは複数の部品および固定具は、回転運動または並進運動を有するポジショナ上に配置されてもよいし、それを含んでもよい。例えば、1つまたは複数の部品または固定具は、任意の適切な軸を中心に回転するか、またはx方向、y方向、および/またはz方向に並進することができる溶接テーブル上に配置されてもよい。別の例として、1つまたは複数の部品は、ロボット120と協調してその回転運動または並進運動を調整するようにポジショナ上に位置決めされてもよい。センサ109は、テーブルが移動および/またはスピンするときに(例えば、溶接テーブル上に配置された1つまたは複数の部品または固定具の)画像データを取り込み、収集し得る。
【0068】
加えて、または代替として、センサ109は、回転または並進するように構成された固定具またはホルダに結合されてもよい。例えば、センサ109は、ベースおよびサイドクランプを含むホルダに搭載されてもよい。センサ109は、ベース上に配置され、サイドクランプの間に締め付けられ得る。いくつかの実施態様では、ベースは、少なくとも2つの軸に沿って回転して、1つまたは複数の部品および固定具の画像データを取り込むように構成され得る。いくつかの実施態様では、ベースは、複数の角度から1つまたは複数の部品および固定具の画像データを取り込むために、任意の数の軸を中心に360度回転するように構成され得る。いくつかの実施態様では、センサ109は静止していてもよく、一方、1つまたは複数の部品(例えば、135や136)を保持する固定具は、回転または並進するように構成され得る。例えば、1つまたは複数の部品を保持する固定具は、任意の適切な軸を中心に回転し、かつ/またはx方向、y方向、および/もしくはz方向に並進するように構成されてもよい。別の例として、部品を直接操作するように構成されたロボット120またはポジショナシステムに、1つまたは複数のセンサ109を結合することもできる。センサ109は、センサ固定具が移動または回転するときに画像データを取り込み、収集し得る。
【0069】
いくつかの実施態様では、センサ109は、作業スペース130の点群表現、または作業スペース130に関連する点群表現を生成し得る。点群は、1つまたは複数の部品または固定具の表面上の点の三次元空間内での場所を各々が表す点集合とすることができる。いくつかの態様では、作業スペース130の三次元画像データを再構成および生成するために、1つまたは複数の画像(例えば、1つまたは複数の部品に対して特定の向きでセンサ109によって取り込まれた画像データ)が互いに重ね合わされ得る。三次元画像データは、データから生成された点群が6自由度を有することができるように照合することができる。例えば、点群上の各点は、三次元空間内の無限小の位置を表し得る。上述のように、センサ109は、様々な角度から点の複数の画像を取り込むことができる。これら複数の画像を照合して、その点の平均画像ピクセルを決定することができる。平均化された画像ピクセルを点に付属させることができる。例えば、センサ109が赤、緑、および青のチャネルを有するカラーカメラである場合には、6自由度は{x位置、y位置、z位置、赤色強度、緑色強度、および青色強度}とすることができる。例えば、センサ109が、白黒チャネルを有する白黒カメラである場合には、4自由度が生成され得る。
【0070】
上記のように、センサ109は、プロセッサ101に通信可能に接続されることができる。プロセッサ101、コントローラ152、または制御システム110は、二次元データを組み立てるためのセンサ109からのデータ、1つもしくは複数の部品に対する様々な位置にある1つもしくは複数のセンサ109からのデータ、またはさらなる処理のためにセンサが部品に対して移動するときのセンサ109からのデータを処理するように動作することができる。プロセッサ101などの制御システム110は、画像を重ね合わせ、かつ/またはスティッチングして三次元画像データを再構成および生成することによって点群を生成することができる。三次元画像データを照合して、点群を、点群内の少なくともいくつかの点についての関連する画像データと共に生成することができる。制御システム110は、ロボット120を動作させ、制御するように構成され得る。場合によっては、ロボット120の制御パラメータを、点群からのデータによって決定するか、または知らせることができる。
【0071】
いくつかの実施態様では、メモリ102などの制御システム110が、認識ロジック(
図1には図示せず)を含んでもよい。認識ロジックは、センサ109によって取り込まれた画像データに対してピクセルごとの分類を行うように構成された1つまたは複数のニューラルネットワーク(例えば、畳み込みニューラルネットワーク、ディープニューラルネットワークなど)を含み得る。加えて、または代替として、1つまたは複数のニューラルネットワークは、画像データと深度データなどの空間情報との組合せに対してピクセルごとの分類を行ってもよい。いくつかの実施態様では、認識ロジックは、画像データを含んでも含まなくてもよい点群に対して点ごとの分類を行うことができる1つまたは複数のニューラルネットワークを含み得る。1つまたは複数のニューラルネットワークは、ピクセルごと(例えば、画像データから)または点ごと(例えば、点群データから)の分類を行って、画像または点群内の固定具およびクランプを識別および分類するように構成することができる。ピクセルごとの分類が行われる場合、結果を三次元点群データまたは点群データのメッシュ化バージョン上に投影することができ、それによって空間内の固定具またはクランプの場所に関する情報を提供する。入力データが画像データ(例えば、カラー画像)である場合、ピクセルごとのセグメント化を行うために、深度情報などの空間情報が色データと共に含められてもよい。いくつかの実施態様では、ピクセルごとの分類を行って、1つまたは複数の継ぎ目を識別し、部品に対して継ぎ目を位置特定することができる。いくつかの実施態様では、認識ロジックは、画像データに対して分類、認識、またはセグメント化を行うように構成され得る。画像データは、点群、メッシュ(例えば、頂点および面の集合)、またはその両方のうちの1つまたは複数を含み得る。
【0072】
いくつかの実施態様では、認識ロジック内の1つまたは複数のニューラルネットワークは、U-netモデルなどの点ごとの分類またはピクセルごとの分類を行うことができる任意の適切なニューラルネットワークであってもよい。ニューラルネットワークは、画像データ、点群データ、空間情報データ、またはそれらの組合せで訓練することができる。点群または画像データは様々な角度から取り込まれた情報を含むので、ニューラルネットワーク(例えばU-netモデル)は、固定具もしくはクランプ、または複数の角度もしくは視点からの1つもしくは複数の継ぎ目を分類するように動作することができる。いくつかの実施態様では、ニューラルネットワークは、例えば動的グラフ畳み込みニューラルネットワークなど、点集合で直接動作するように訓練することができ、点群上の未編成の点を解析するために実行され得る。いくつかの実施態様では、第1のニューラルネットワークを、点ごとの分類を行うように点群データで訓練することができ、第2のニューラルネットワークを、ピクセルごとの分類を行うように画像データで訓練することができる。第1のニューラルネットワークおよび第2のニューラルネットワークは、1つまたは複数の継ぎ目を個別に識別し、それらを位置特定することができる。部品に対する継ぎ目の場所および向きを決定するために、第1のニューラルネットワークおよび第2のニューラルネットワークからの出力を最終出力として組み合わせることができる。
【0073】
いくつかの実施態様では、認識ロジックは、部品に関する事前情報なしで(例えば、部品のCADモデルなしで)部品上の1つまたは複数の継ぎ目を識別し、部品に対してそれらを位置特定し得る。1つまたは複数の継ぎ目内の各継ぎ目は、(例えば、点群からの)部品上の点集合の部分集合として識別され得る。例えば、(1つまたは複数の)ニューラルネットワークがピクセルごとの分類を実施して1つまたは複数の継ぎ目のうちの1つを識別することになった場合、識別されたピクセルを三次元空間に投影して、三次元点集合を生成することができる。あるいは、(1つまたは複数の)ニューラルネットワークが点群から点を分類することになった場合、識別された点は三次元点集合になる。認識ロジックに対して、これらの三次元点は、順序付けられていない点集合であってもよい。さらに、これらの三次元点の少なくとも一部が互いに集塊になっている可能性もあり得る。より具体的には、継ぎ目により近い領域において、三次元点は、継ぎ目の幅にわたって集塊になっている可能性がある。このノイズを排除し、継ぎ目を表す連続した切れ目のない点の部分集合を生成するために、Manifold Blurring and Mean Shift(MBMS)技術または同様の方法が適用され得る。この技術は、点を密集させ、ノイズを排除することができる。続いて、1つまたは複数の継ぎ目を個々の継ぎ目に分解するためにクラスタリング法が適用され得る。クラスタリングに続いて、個別の各点部分集合にスプラインが適合され得る。したがって、個別の各点部分集合を個々の個別の継ぎ目とすることができる。
【0074】
いくつかの実施態様では、制御システム110は、(1つまたは複数の)部品について提供された事前情報に基づいて継ぎ目の可能性のある場所を特定するように構成され得る。同様に言えば、部品のCADモデルは、当該部品における溶接される継ぎ目の注釈を含むことができる。CADモデルまたは部品に関する他の情報が利用可能な場合には、制御システム110は、モデルをパースまたは解析して継ぎ目位置を特定するように構成することができる。注釈に基づいて、制御システム110は、オブジェクトマッチングを使用して、部品に対する継ぎ目の予想される位置および予想される向きを決定することができる。例えば、制御システム110は、部品上の構成要素をCADモデル内のこれらの構成要素の表現と照合することができる。したがって、制御システム110は、継ぎ目の予想される位置および予想される向きを決定することができる。
【0075】
以下の説明では、CADモデルを使用して制御システム110によって決定された継ぎ目を第1の継ぎ目と呼び、認識ロジックは、(例えば、ニューラルネットワークを使用して)継ぎ目の位置および向きを決定する。これは第2の継ぎ目と呼ばれ得る。第1の継ぎ目と第2の継ぎ目とは、CADモデルまたは認識ロジックが継ぎ目の場所を正確に予測する場合、ほぼ同じ場所に存在する可能性がある。あるいは、第1の継ぎ目と第2の継ぎ目とは、CADモデルまたは認識エンジンが部分的に正確である場合、部分的に重なり合う可能性がある。さらに別の例では、第1の継ぎ目と第2の継ぎ目とは、例えば、CADモデルまたは認識エンジンが候補継ぎ目を不正確に位置特定するとき、異なる場所にある可能性がある。上記の例のうちの1つでは、制御システム110は、第1の継ぎ目と第2の継ぎ目との比較を行い得る。第1の継ぎ目と第2の継ぎ目とのこの比較は、両方の継ぎ目の形状および空間内の相対的な場所に部分的に基づくものとすることができる。いくつかの実施態様では、第1の継ぎ目または第2の継ぎ目の一方が他方に対して変形し得る。例えば、制御システム110が、第1の継ぎ目がグラウンドトゥルースにより近いと判定し得る場合、第2の継ぎ目は、第1の継ぎ目に適合するように変形し得る。あるいは、制御システム110が、第2の継ぎ目がグラウンドトゥルースにより近いと判定し得る場合、第1の継ぎ目は、第2の継ぎ目に適合するように変形し得る。継ぎ目が識別され最終決定されると、経路計画ロジック105は、これに限定されないが、溶接を完成させるためのロボット120の移動を決定または最適化することを含む、継ぎ目に沿ったロボット120の経路を生成するように構成される。
【0076】
認識ロジックは、画像データまたは点群内の複数の視点に起因する様々な角度からの、固定具もしくはクランプ、または1つもしくは複数の継ぎ目を分類するように構成されるため、検証ロジックは、継ぎ目が実際に継ぎ目であるかどうかをさらに検証するように構成することができる。例えば、認識ロジックが継ぎ目を識別して位置特定した後に、検証ロジックは、この継ぎ目が実際の継ぎ目であるかどうかを判定することができ、これにより偽陽性を排除することができる。
【0077】
図2を参照すると、
図2は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを実行するように構成された別のシステム200を示すブロック図である。システム200は、
図1のシステム100を含んでもよいし、それに相当してもよい。
【0078】
図1のシステム100と比較すると、システム200は複数のロボットを含む。例示すると、複数のロボットは、第1のロボット(例えば、120)、第2のロボット212、第3のロボット214、および第4のロボット216の4台のロボットを含む。さらに、センサ109は、第1のセンサ234および第2のセンサ236などの複数のセンサを含む。システム200は、第1のツール(例えば、121)に加えて、ポジショナ240(例えば、位置決めデバイス)、構造体242、および第2のツール222も含む。
【0079】
システム200の作業スペース130は、システム200の1つまたは複数のデバイスまたは構成要素を含み得る。図示のように、作業スペース130は、第1のロボット120、第1のツール121、第2のロボット212、第2のツール222、第1のセンサ234、および製造ツール126を含む。他の実施態様では、作業スペース130は、
図2に示すよりも少ないか、または多い構成要素またはデバイスを含み得る。例えば、作業スペース130は、第3のロボット214、第4のロボット216、第2のセンサ236、ポジショナ240、構造体242、制御システム110、またはそれらの組合せを含んでもよい。
【0080】
いくつかの実施態様では、複数のロボットデバイスは、ロボット120を含んでもよいし、それに相当してもよい。例えば、複数のロボットデバイス(例えば、120、212、214、216)のうちの少なくとも1つが、非限定的な例として、6自由度を提供するロボットアームを含んでもよい。実施態様において、ロボットアームは、YASKAWA(登録商標)、ABB(登録商標)IRB、KUKA(登録商標)、Universal Robots(登録商標)によって製造されたものであってもよい。加えて、または代替として、ロボットアームは、1つまたは複数のツールに結合されるように構成されてもよい。
【0081】
第2のロボット212は、第2のロボットアームを含み得る。第2のツール222は、第2のロボットアームの端部に結合され得る。いくつかの実施態様では、第2のツール222は、第1のツール121を含んでもよいし、それに相当してもよい。例えば、第2のツール222は、第2の物体136を含む1つまたは複数の物体の第2のセットに選択的に結合されるように構成されてもよい。1つまたは複数の物体の第2のセットは、第1のツール121が結合されるように構成された物体の第1のセットと同じであってもよいし、異なってもよい。
【0082】
第3のロボット214は、第3のロボットアームを含み得る。第1のセンサ234は、第3のロボットアームの端部に結合され得る。いくつかの実施態様では、第1のセンサ234は、第1のセンサデータ(例えば、180)を生成するように構成される。例えば、第1のセンサ234は、第1の物体135、第2の物体136、またはそれらの組合せのうちの1つまたは複数の画像を取り込むように構成される。
【0083】
第4のロボット216は、第4のロボットアームを含む。製造ツール126(例えば、溶接ツール)は、第4のロボットアームの端部に結合される。
【0084】
第2のセンサ236は、第2のセンサデータ(例えば、180)を生成するように構成される。例えば、第2のセンサ236は、第1の物体135、第2の物体136、またはそれらの組合せのうちの1つまたは複数の画像を取り込むように構成される。いくつかの実施態様では、第2のセンサ236は、構造体242上に位置決めされるか、または構造体242に結合される。フレームや溶接物などの構造体242は、動的または静的であり得る。構造体242の動的または静的コンフィギュレーションにおいて、第2のセンサ236は、構造体242に対して動的または静的であるように構成されてもよく、例えば、第2のセンサ236が動的である場合、第2のセンサは、回転する(例えば、パン)または傾くように構成され得る。
【0085】
ポジショナ240は、第1の物体135、第2の物体136、またはそれらの組合せをホストする(例えば、保持するか、またはしっかりと保持する)ように構成され得る。例示すると、ポジショナ240は、動的であるか、またはユーザによって手動で、あるいはモータによって自動的に調整可能であってもよい。例えば、ポジショナ240は、制御システム110から受け取った命令に基づいて、溶接プロセスの前またはその最中にその姿勢(例えば、位置、向き、または他の物理的コンフィギュレーション)を動的に調整し得る。いくつかの実施態様では、ポジショナ240は、物体がポジショナ240によってホストされている間に、ポジショナ240によってホストされている物体の姿勢または場所を調整するように構成される。例えば、ポジショナ240は、第1の物体135、第2の物体136、またはそれらの組合せを保持するか、位置決めするか、または操作するように構成されてもよい。いくつかの実施態様では、ポジショナ240は、例えば、クランプまたは他のタイプの固定具を使用することなどによって、1つまたは複数の物体を保持するか、位置決めするか、または取り付けるように構成され得る。
図2は単一のポジショナを例示しているが、他の実施態様では、ロボットシステムは複数のポジショナを含んでもよい。いくつかの実施態様では、ポジショナ240は、ポジショナ240が物体をホストすることができるビン状の保管ユニットであり得るという点で、本質的に静的であり得る(例えば、ポジショナ240は、物体の姿勢または場所を調整するように構成されなくてもよい)。いくつかのそのような実施態様では、物体は、ユニット内に無作為に(例えば、無作為な姿勢で)位置決めされ得る。
【0086】
システム200の動作中、制御システム110は、システム100を参照して説明したように、1つまたは複数の動作を実施し得る。
【0087】
いくつかの実施態様では、機械学習ロジック107は、ロボット固有であり得る。例えば、第1の機械学習ロジックが第1の製造ロボットについて訓練されるように構成され、第2の機械学習ロジックが第2の製造ロボットについて訓練されるように構成されると仮定する。いくつかの実施態様では、第1の機械学習ロジックと第2の機械学習ロジックは、同じか、または同様の状態(例えば、訓練されていない状態)で訓練プロセスを開始してもよく、時間の経過と共に、すなわち、第1の製造ロボットおよび第2の製造ロボットがそれぞれの製造活動(例えば、溶接や塗装)を行うために個別に使用されるにつれて、第1の機械学習ロジックおよび第2の機械学習ロジックは、それぞれの製造ロボットに固有の動作特性(例えば、較正誤差、製造ロボットに固有の固有誤差)に適応するように学習し得る。いくつかの他の実施態様では、第1の機械学習ロジックは、第1の状態(例えば、訓練されていない状態)で訓練プロセスを開始してもよく、第2の状態(例えば、訓練された状態)に訓練され得る。第1の機械学習ロジックは、第2の状態から第3の状態(例えば、訓練された状態)にさらに訓練されてもよい。第2の機械学習ロジックは、第2の状態で第1の機械学習ロジックを使用して訓練プロセスを開始してもよく、第3の状態とは異なる第4の状態(例えば、訓練された状態)に訓練されてもよい。第1の機械学習ロジックおよび第2の機械学習ロジックは、いくつかの実施態様では、機械学習ロジック(例えば、ニューラルネットワーク)を訓練するために関連する1つまたは複数のパラメータのデルタ値が使用されるデルタ法を使用して訓練され得る。例えば、デルタ法は、後続の溶接作業を行うために使用することができる更新されたパラメータを生成するために、1つまたは複数のデルタパラメータ(例えば、差分プロファイル、差分溶接パラメータ)の導関数(例えば、デルタ)を決定する。これは、
図4のブロック410により明確に説明されている。
【0088】
いくつかの実施態様では、機械学習ロジック107は、ロボット固有でなくてもよい。そのような実施態様では、機械学習ロジック107は、複数(例えば、2つ以上)の類似した製造ロボットの動作特性を近似(例えば、推定)するように訓練され得る。例示すると、機械学習ロジック107は、第1の製造ロボットと第2の製造ロボットの両方に関連する動作特性を推定するように訓練されてもよい。この意味で、機械学習ロジック107は、第1の製造ロボットと第2の製造ロボットの両方の動作特性に適応し得る。別の言い方をすれば、第1の製造ロボットと第2の製造ロボットは、構造的に類似していてもよく(例えば、それらは、同じ製造タスクを遂行するために、溶接を行うためのモータまたはロボットアームなどの類似した部品を使用して構築されてもよく)、第1の製造ロボットおよび第2の製造ロボットの各々が異なる動作特性を有していても、同じ機械学習ロジック107が、第1の製造ロボットと第2の製造ロボットの両方に対して訓練され得る。
【0089】
いくつかの実施態様では、溶接ロボット(例えば、ロボット120)などの製造ロボットのための溶接命令を更新するための、コンピュータによって実行される方法が提供される。コンピュータによって実行される方法は、作業スペース130内に位置決めされた第1の部品に対して製造ロボットを使用して第1の製造タスク(例えば、溶接)を遂行することを含む。第1の製造タスクは、第1の部品に対して第1の製造アウトプット(例えば、溶接部)をもたらす。第1の製造タスクは、第1のプロファイル(例えば、162または161)、第1の軌道(例えば、160)、第1の1つもしくは複数の製造パラメータ(例えば、161)、またはそれらの組合せに基づくものである。方法は、1つまたは複数のセンサ109によって、第1の製造アウトプットに関する情報164を受け取ることをさらに含む。方法はまた、プロセッサ101によって、第1のプロファイル、第1の軌道、第1の1つまたは複数の製造パラメータ、および第1の製造アウトプットに関する情報を処理して、第2の軌道(例えば、160)または第2の1つもしくは複数の製造パラメータ(例えば、161)を生成することも含む。方法は、第2の軌道および第2の1つもしくは複数の製造パラメータのうちの1つまたは複数を使用して、第2の部品に対して製造ロボットを使用して第2の製造タスクを実施することを含む。
【0090】
次に
図4を参照すると、
図4は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを動作させる例示的なプロセス400を示す流れ図である。いくつかの実施態様では、機械学習ロジックは、ロボットによる製造環境(例えば、ロボット120を使用する環境)における機械学習ロジックを含んでもよいし、それに相当してもよい。プロセス400は、機械学習ロジック107を含むロボット120によって実施され得る。製造タスク(例えば、溶接)が遂行される1つまたは複数の部品(例えば、135または136)は、固定具を使用して、製造作業スペース130内の別のポジショナ上に位置決めされるか、または固定されると仮定する。例えば、ポジショナは、ポジショナ240を含んでもよいし、それに相当してもよい。1つまたは複数の部品の配置後に、プロセス400が開始し得る。
【0091】
402で、プロセス400は、1つまたは複数の部品を走査する工程を含む。走査する工程は、1つまたは複数のセンサ109によって実施され得る。いくつかの実施態様では、制御システム110は、センサ109から取得された画像データまたは画像もしくはセンサデータから導出された点群を使用して、1つまたは複数の部品上の1つまたは複数の継ぎ目を識別するように構成され得る。継ぎ目144などの継ぎ目は、
図1に関して説明した技術のうちの1つに基づいて識別され得る。
【0092】
継ぎ目または継ぎ目の場所が決定されると、制御システム110の経路計画ロジック105は、溶接を完成させるためのロボット120の移動を決定または最適化することを含む、識別された継ぎ目に沿ったロボット120の初期経路をプロットする。経路または軌道は、
図1に関して説明した経路計画技術のうちの1つに基づいて計画され得る。いくつかの実施態様では、継ぎ目に関する関連情報、例えば、継ぎ目の場所、継ぎ目として識別された継ぎ目の形状なども、404における後続の処理のために機械学習ロジックに提供され得る。
【0093】
加えて、または代替として、いくつかの実施態様では、後続の処理のために、403で1つまたは複数の溶接パラメータ161も提供され得る。例えば、部品を走査して継ぎ目を識別した後、制御システム110は、ユーザインターフェースを介して選択するための1つまたは複数の溶接パラメータをオペレータに提供してもよい。オペレータは、ユーザインターフェースを介して、1つまたは複数の溶接パラメータを選択してもよく、次いで、404で、選択された溶接パラメータは機械学習ロジックに提供され得る。他の実施態様では、制御システム110は、継ぎ目を識別した後、後続の処理で機械学習ロジック404が使用するための1つまたは複数の溶接パラメータを物理的に入力するようオペレータに指示し得る。あるいは、ユーザは関与しなくてもよく、制御システム110が自律的に動作してもよい。いくつかの実施態様では、制御システム110のメモリ102に記憶され得る基準溶接プロファイル162もまた、403で、後続の処理のために機械学習ロジック404に提供され得る。
【0094】
いくつかの実施態様では、404の機械学習ロジックは、次いで、ロボットに提供することができるか、またはロボット120によって決定することができる情報のうちの1つまたは複数を受け取り得る。情報のうちの1つまたは複数は、識別された継ぎ目の場所(例えば、場所159)、ロボット120が辿ることになる軌道160、1つまたは複数の溶接パラメータ161、および基準溶接プロファイル162を含み得る。加えて、または代替として、いくつかの実施態様では、404で、第2の1つまたは複数の情報が、機械学習ロジックに提供されるか、または機械学習ロジックによって受け取られてもよい。この第2の1つまたは複数の情報は、溶接ヘッドまたは溶接部または溶接部の周囲領域に関連する熱シグネチャを含み得る。第2の1つまたは複数の情報はまた、溶接部の音響指紋または溶接部に関する他の詳細も含み得る。
【0095】
406で、プロセス400は、機械学習ロジックによって提供または決定された情報のうちの1つまたは複数を使用して、機械学習ロジックによって第1の溶接プロファイルを推定する工程を含む。第1の溶接プロファイルは、製造ロボットの現在の状態に基づいてロボット120が出力し得ると制御システム110が推定する溶接プロファイルを反映し得る。製造ロボットの現在の状態は、機械学習ロジックの現在の訓練状態、および製造ロボットが1つもしくは複数の以前の溶接部、識別された継ぎ目の場所、軌道、1つもしくは複数の溶接パラメータ、基準溶接プロファイル、またはそれらの組合せからの学習に基づいて修正することを計画している誤差を反映し得る。
【0096】
408で、プロセス400は、推定された溶接プロファイルを(403で提供された)基準溶接プロファイル162と比較して差分プロファイルを生成する工程を含む。差分プロファイルは、座標(例えば、極、デカルトなど)または画像に関する差分を反映し得る(または含み得る)。
【0097】
410で、プロセス400は、差分プロファイル(例えば、所望のプロファイルと実際のプロファイルとの間の誤差を反映する差分プロファイル)に対して逆伝播法を行う工程を含む。例示すると、逆伝播法は、プロセッサ101や機械学習ロジック107などの制御システム110によって行われ得る。逆伝播は、「誤差の逆伝播」とみなされてもよく、この技術は、勾配降下を使用して学習するためのアルゴリズムを含む。例えば、逆伝播法は、ニューラルネットワーク(または機械学習ロジック)の重みに対する誤差関数の勾配を計算する。逆伝播はまた、403で提供された1つまたは複数の溶接パラメータ161や基準溶接プロファイル162などの、1つまたは複数の入力パラメータに対する差分プロファイルの導関数を決定することとみなされてもよい。いくつかの実施態様では、408で実施される1つまたは複数の動作は、溶接プロファイルの一次導関数を生成すること(例えば、差分プロファイルを生成すること)とみなされてもよく、410で実施される1つまたは複数の動作は、推定された溶接プロファイルの二次導関数を生成ことととみなされてもよい。
【0098】
いくつかの実施態様では、プロセス400は、412で、制御システム110が、決定された導関数に少なくとも基づいて更新された溶接パラメータを生成する工程を含み得る。加えて、または代替として、いくつかの実施態様では、制御システム110はまた、決定された導関数に少なくとも基づいて更新された軌道を生成してもよい。更新された軌道は、経路計画、動作計画、作業角度、先端位置などといった、1つまたは複数の局面における初期軌道と類似する場合もある(または異なる場合もある)。他の実施態様では、更新軌道は、コントローラ110が更新されたパラメータに基づいて軌道を再計画することを必要とし得る。いくつかの実施態様では、初期軌道と更新された軌道との間の差が比較的小さい場合、制御システム110は、更新された軌道において推奨された変更を含むように初期軌道を直接更新し得る。そのようなシナリオの一例を
図5を参照して示す。
【0099】
1つまたは複数の局面による、位置の更新の一例を示す図である、
図5を参照すると、
図5に示すように、溶接ヘッドの初期先端位置または溶接角度は、更新された軌道に基づいて更新され、初期軌道からの詳細の残りの部分は同じままである。
【0100】
再び
図4を参照すると、414で、ロボット120は、更新された溶接パラメータまたは軌道を使用して、溶接などの製造タスクを実施し得る。416で、次の溶接部に移動する前に、ロボット120またはセンサ109は、414で実施された溶接からデータ(例えば、画像データ)を取り込んで、その溶接部のプロファイル(例えば、溶接プロファイル163)を決定し得る。データは、制御システム110によって、414で実施された溶接の実際の溶接プロファイル(例えば、溶接プロファイル163)を生成するために使用され得る。いくつかの実施態様では、実際の溶接プロファイル(例えば、溶接プロファイル163)、または1つもしくは複数の入力パラメータ、初期経路計画、更新された1つもしくは複数のパラメータ、および更新された軌道を含む、実際の溶接プロファイルに関連するいくつかの情報は、416から404への矢印で示されるように、フィードバック情報として機械学習ロジックに提供され得る。
【0101】
次に、プロセス400で使用される機械学習アルゴリズムの訓練プロセスについて説明する。
図6を参照すると、1つまたは複数の局面による溶接プロファイルの変化を示すグラフ600の一例。様々な溶接パラメータ161、軌道160、ジョイントジオメトリ、溶接プロファイル163の走査の収集を前提として、目標は、形状のセット(例えば、形状のデルタまたは差分)を受け取り、パラメータのセット(例えば、更新されたパラメータ)を出力する機械学習ロジック(例えば、108)を生成することである。所望の溶接プロファイルS
iを所与のウェイポイントにおける走査された溶接プロファイルS
kに変形させるのに必要な変化をΔSで表す。形状変化ΔSは、ΔWで表されるパラメータ(例えば、溶接パラメータ161)の変化によって課される。次いで、機械学習ロジック107は、形状の変化を符号化し、そのような変化を生成する必要なパラメータ更新(例えば、1つまたは複数の初期入力パラメータにおける更新されたパラメータまたはデルタ)を出力する方法を学習し得る。
【0102】
デルタ形状は、極座標またはデカルト座標または画像などの様々な方法で表され得る。いくつかの実施態様では、デルタ形状に対して畳み込み演算が行われ得る。損失関数は、L1またはL2のいずれかであり得る。このように訓練された機械学習ロジック107は、グラウンドトゥルースデルタパラメータが溶接スライスまたは完全な溶接部に対するコマンドで指定されたパラメータから作成されるため、手作業のラベリングを必要としない場合がある。機械学習ロジック107の訓練は、それらの溶接部の各々に関連するすべてのパラメータと共に、多数の溶接部(例えば、製造ロボットによって行われた有限個の以前の溶接部)の走査データを必要とし得る。このデータセットは、補助データセットと呼ばれることがある。
【0103】
機械学習ロジック107の訓練は、最初に、完全にまたは実質的に完全に較正されたシステムなどの較正されたシステムで部品を走査することを含み得る。較正されたシステムで行われる最初の走査は、基準溶接と呼ばれることがあり、すなわち、これは、ロボット120が較正されていないときの補正のための至適基準とみなされ得る。後続の走査中に、最初の走査からのパラメータが使用され得る。三番目の走査中には、二番目の走査からの更新されたパラメータが使用され得る。走査n中には、走査(n-1)からの更新されたパラメータが使用され得る。この訓練手法では、機械学習ロジック(例えば、ニューラルネットワーク)の重みが、溶接プロファイルの形状とその関連するパラメータとの間の関係を符号化する。この関係は異なるセル、異なる時点で異なり得るため、ロボット120は、溶接の前後に製造ロボットで取得された走査を使用して継続的に訓練されてもよく、その機械学習ロジックを更新する。この手法は、製造ロボットが能動的に使用されているときに較正ドリフトを処理し得る。
【0104】
いくつかの実施態様では、溶接ロボット(例えば、ロボット120)などの製造ロボットのための溶接命令を更新するための、コンピュータによって実行される方法が提供される。コンピュータによって実行される方法は、プロセッサ101によって、基準溶接プロファイル162、1つもしくは複数の所望の溶接パラメータ161、継ぎ目の場所(例えば、159)、または最初に計画された軌道を受け取る工程を含む。方法はまた、プロセッサ101によって実行された機械学習ロジック107によって、継ぎ目144の場所(例えば、159)、初期軌道(例えば、160)、基準溶接プロファイル162、および1つまたは複数の所望のパラメータ(例えば、161)に基づいて第1の溶接プロファイルを推定する工程も含む。方法は次いで、プロセッサ101によって、第1の溶接プロファイルを基準溶接プロファイル162と比較して差分プロファイル(または残差プロファイル)を生成する工程を含む。方法は次いで、プロセッサ101によって、差分溶接プロファイルを処理して、1つまたは複数の入力パラメータに対するデルタプロファイルの導関数を決定する工程を含む。方法は、決定された導関数に基づいて更新された溶接パラメータ(例えば、161)または軌道(例えば、160)を生成する工程をさらに含む。方法は、ロボット120によって、更新された溶接パラメータを使用して継ぎ目を溶接する工程、およびプロセッサ101によって、更新された溶接パラメータを用いて行われた溶接の第2の溶接プロファイルを受け取る工程を含む。方法は次いで、少なくとも第1の溶接プロファイルおよび第2の溶接プロファイル、第1の溶接プロファイルおよび第2の溶接プロファイルに関連する他の詳細、またはそれらの組合せに基づいて機械学習ロジック107を更新する工程を含む。
【0105】
次に
図7を参照すると、
図7は、1つまたは複数の局面によるロボットによる製造環境で機械学習ロジックを動作させる別の例示的なプロセス700を示す流れ図である。例えば、プロセス700は、ロボット(例えば、120)、制御システム110、機械学習ロジック107、またはそれらの組合せによって実施され得る。
図4の説明と同様に、プロセス700は、製造作業スペース130内のポジショナ上への1つまたは複数の部品(例えば、135や136)の配置または固定に続いて開始し得ると仮定する。ポジショナは、ポジショナ240を含んでもよいし、それに相当してもよい。
【0106】
702で、プロセス700は、1つまたは複数の部品を走査する工程を含む。走査する工程は、1つまたは複数のセンサ109によって実施され得る。制御システム110は、センサ109から取得された画像データまたは画像もしくはセンサデータ180から導出された点群を使用して、1つまたは複数の部品(例えば、135、136)上の1つまたは複数の継ぎ目を識別するように構成され得る。継ぎ目(例えば、144)は、
図1に関して説明した技術のうちの1つに基づいて識別され得る。
【0107】
継ぎ目または継ぎ目の場所が決定された後で、制御システム110の経路計画ロジック105は、溶接を完成させるためのロボット120の移動を決定または最適化することを含む、識別された継ぎ目に沿ったロボット120の初期経路をプロットする。いくつかの実施態様では、継ぎ目に関する関連情報、例えば、継ぎ目の場所、継ぎ目識別された継ぎ目の形状などが、後続の処理のために制御システム110によって使用され得る。
【0108】
いくつかの実施態様では、702における走査の前、最中、または後に、703で、入力として制御システム110に情報が提供され得る。情報は、以前の溶接プロファイル(例えば、163)、基準溶接プロファイル162、1つもしくは複数の溶接パラメータ161、またはそれらの組合せを含み得る。加えて、または代替として、いくつかの実施態様では、後続の処理のために、1つまたは複数の溶接パラメータ161もまた、制御システム110によって利用され得る。例えば、部品を走査して継ぎ目を識別した後、制御システム110は、ユーザインターフェースを介して選択するための1つまたは複数の溶接パラメータ161をオペレータに提供してもよく、次いで、選択された1つまたは複数の溶接パラメータ161は、さらなる処理のために制御システム110によって使用されてもよい。いくつかの実施態様では、部品を走査して継ぎ目を識別した後、制御システム110は、継ぎ目識別中に取り込まれた1つまたは複数の情報に基づいて1つまたは複数のパラメータを決定し得る。例えば、制御システム110は、材料もしくは材料タイプ、材料の厚さ、ジョイントジオメトリおよび材料断面ジオメトリ、溶接ワイヤ、機械内に存在する溶接ガス、溶接電源の能力、部品が取り付けられる電動式ポジショナもしくはその欠如を前提とした重力に対する部品の達成可能な位置、またはロボットが衝突なしで動作するために利用可能な空間などの、部品の特性のうちの1つまたは複数に基づいて1つまたは複数のパラメータを決定し得る。他の実施態様では、制御システム110は、継ぎ目を識別した後、制御システム110が使用するための1つまたは複数の溶接パラメータを物理的に入力するようオペレータに指示し得る。いくつかの実施態様では、すべてが制御システム110のメモリ102に記憶され得る、1つまたは複数の以前の溶接部の基準溶接プロファイル162および溶接プロファイル163もまた、制御システム110によって後続の処理のために使用され得る。
【0109】
上述の情報を取り込んだ後、704で、プロセス700は、以前の溶接プロファイル163を基準溶接プロファイル162と比較して、差分プロファイルを生成し得る。差分プロファイルは、座標(例えば、極、デカルトなど)または画像に関する差分を反映し得る(または含み得る)。702または704において提供されるか、処理されるか、または決定された情報のうちの1つまたは複数が、706で機械学習ロジックに提供され得る。
【0110】
708で、プロセス700は、更新されたパラメータまたは軌道を生成する工程を含み得る。いくつかの実施態様では、更新されたパラメータまたは軌道は、ロボット120によって、溶接機能(例えば、溶接)を遂行する際に使用され得る。
【0111】
710で、プロセス700は、ロボット120が、708で行われた溶接からのデータ(例えば、画像データ)を、センサ109を使用して取り込むか、または受け取って、その溶接部のプロファイル(「実際の溶接プロファイル」)を決定する工程を含み得る。いくつかの実施態様では、712で、実際の溶接プロファイル(例えば、163)は、別の差分プロファイルを生成するために、基準溶接プロファイル162と再度比較され得る。いくつかの実施態様では、この別の差分プロファイル、または1つもしくは複数の入力パラメータ、初期経路計画、更新された1つもしくは複数のパラメータ、実際の溶接、基準溶接、または更新された軌道を含む、その別の溶接プロファイルに関連するいくつかの情報は、712から706への矢印で示されるように、フィードバック情報として機械学習ロジックに提供され得る。
【0112】
次に、プロセス700で使用される機械学習アルゴリズムの訓練プロセスについて説明する。様々な溶接パラメータ、軌道、ジョイントジオメトリ、溶接プロファイルの走査の収集を前提として、目標は、パラメータのセットを受け取り、形状のセットを出力する機械学習ロジックを生成することである。機械学習アルゴリズムは、1つまたは複数の溶接パラメータと、軌道160を含むかまたはそれに相当してもよい関連する軌道(例えば、初期軌道)とで訓練され得る。アウトプット(出力)は、点群として極座標またはデカルト座標のいずれかで表された溶接部(またはそのスライス)であり得る。いくつかの実施態様では、アウトプットは溶接スライスであり得るので、走査された溶接部および走査された溶接部から取り込まれた情報はグラウンドトゥルースとして使用され得る。この機械学習アルゴリズムは、手作業のラベリングを必要としない場合がある。プロセス400で説明した機械学習アルゴリズムとは異なり、
図7に関して説明した機械学習アルゴリズムは、補助データセットなしで動作し得る。
【0113】
図7を参照して説明した機械学習ロジックの訓練は、較正されたシステムまたは実質的に完全に較正されたシステムなどの較正されたシステムで部品を走査すること(例えば、初期走査)を含み得る。較正されたシステムで行われる走査は、基準溶接プロファイル162と呼ばれることがあり、すなわち、これは、製造ロボットが較正されていないときの補正のための至適基準とみなされ得る。特定のタスクに機械学習ロジックの出力を直接使用することは従来通りであり得る。しかしながら、
図7に記載の機械学習ロジックは、最初に溶接プロファイルを生成し、次いで、溶接パラメータ161などのパラメータを更新するために、パラメータに対するプロファイルの勾配(例えば、デルタプロファイル)が計算される。
【0114】
更新される必要があるパラメータのセットをwとし、wの予測される形状をS(w)とし、所望の形状をS
Dとする。所望の溶接部をもたらすこれらのパラメータの値の予測は、次のように計算される。
【0115】
パラメータに対する形状の勾配は、上述した逆伝播プロセスまたは技術によって計算され得る。この手法では、機械学習ロジックの重みが、パラメータを前提として溶接プロファイルを予測することによって溶接プロセスを符号化し、ある意味では、これは溶接シミュレータである。パラメータと溶接プロファイルとの間の関係は、異なるセル、異なる時点で異なり得るため、ロボット120は、溶接の前後にセルで取得された走査を使用して継続的に訓練され、それ自体を更新する。
【0116】
上述の機械学習ロジックのいずれにおいても、トーチおよび走行角度は、機械学習ロジック107が上述の手法を介して更新し得るパラメータの中にあり得る。そのような実施態様では、機械学習ロジック107は、それらの値を入力として直接使用し得る。入力値をより良好に正規化するために、トーチおよび走行角度から作成されたローカル座標フレームが定義され得る。各ウェイポイントで、コマンドで指定された角度を使用して、サンプリングされた溶接プロファイルおよびジョイント形状点がローカルに記述され得る。前述したように、点は極座標またはデカルト座標とすることができる。極座標の点を表すために、溶接プロファイルは、等しい角度または等しい測地距離間隔でサンプリングされ得る。各点について、その点および原点からの半径rが計算され得る。角度αは、フレームの基底eoと原点から点までのベクトルとの間の角度である。
【0117】
いくつかの実施態様では、溶接ロボット(例えば、ロボット120)などの製造ロボットのための溶接命令を更新するための、コンピュータによって実行される方法が提供される。コンピュータによって実行される方法は、以前の溶接プロファイル(例えば、163)、基準溶接プロファイル162、継ぎ目の場所(例えば、159)、1つもしくは複数の入力パラメータ、最初に計画された軌道、またはそれらの組合せを受け取る工程を含む。方法は、以前の溶接プロファイル(例えば、163)および基準溶接プロファイル162を処理して第1の差分プロファイルを生成する工程をさらに含む。方法はまた、差分溶接プロファイルを処理して少なくとも更新された溶接パラメータ161を生成する工程も含む。方法は次いで、更新された溶接パラメータを使用して継ぎ目の場所で溶接する工程を含む。方法は、溶接に基づいて、更新された溶接パラメータ161を用いて行われた溶接の観察された溶接プロファイルを受け取る工程を含む。方法は、観察された溶接プロファイル(例えば、163)および基準溶接プロファイル162を処理して第2の差分プロファイルを生成する工程、ならびに第1の差分プロファイル、1つもしくは複数の入力パラメータ、第2の差分プロファイル、更新されたパラメータ(例えば、161)、またはそれらの組合せに基づいて機械学習ロジック107を更新する工程を含む。
【0118】
本開示の部分は、溶接プロファイルデータを使用して機械学習ロジック107を訓練し、1つまたは複数の更新されたパラメータおよび軌道を生成するもこととして説明されているが、機械学習ロジック107は、加えて、または代替として、溶接された後の溶接ビードの形状、溶接プロセスに起因して変形し得る溶接された部品の形状、表面に見える熱影響部、溶接部の表面に観察されるポロシティ、溶接ヘッドまたは溶接部もしくは溶接部の周囲領域に関連する熱シグネチャ、溶接部の音響指紋、または溶接部の表面下構造もしくは品質を予測し得る任意の他の情報を使用して訓練されてもよい。任意のシナリオにおいて、訓練された機械学習ロジック107への入力として(参照パラメータ、絶対値、またはデルタとして)、以下のうちの1つまたは複数が使用され得る:溶接された後の溶接ビードの形状、溶接プロセスに起因して変形し得る溶接された部品の形状、表面に見える熱影響部、溶接部の表面に観察されるポロシティ、溶接ヘッドまたは溶接部もしくは溶接部の周囲領域に関連する熱シグネチャ、溶接部の音響指紋、または溶接部の表面下構造もしくは品質を予測し得る任意の他の情報。
【0119】
上述の実施態様は、概して、組み立てタスクを自律的に実施するように構成されたロボットに関する。半自律型または自律型の溶接ロボットは、典型的には、いくつかの所与の物体を走査するセンサ、溶接される物体を自動的に識別し、位置決めするソフトウェアの形態のアルゴリズム、および物体をピックするために(1つまたは複数の)ロボットの動きを制御する機械可読コードの形態のアルゴリズム、および(1つまたは複数の)ロボットの動きを制御して溶接を行うための機械可読コードの形態のアルゴリズムを含むことを含むがこれらに限定されない能力を有する。機械可読コードの形態のアルゴリズムはまた、溶接を行うために物体の姿勢を変更するために、電動式ポジショナなどの任意の他のデバイスを制御するようにも構成され得る。加えて、または代替として、半自律型または自律型の溶接ロボットはまた、いくつかの所与の物体を走査するセンサ、(1つまたは複数の)物体の所与のモデルを自動的に認識し、位置特定し、かつ登録するソフトウェアの形態のアルゴリズムであって、物体が、おそらくは所与のモデル自体に何らかの方法で既に表示されている(または注釈を付けられている)可能性がある(例えば、仮付け溶接位置に注釈を付けられていてもよい)、アルゴリズム、ならびに継ぎ目を正確にまたは所望のように溶接するために、(1つまたは複数の)ロボットの動き、ピッキングロボット、溶接ロボット、および電動式ポジショナなどの任意の他のデバイスを自動的にプログラムするソフトウェアの形態のアルゴリズムを含むことを含むがこれらに限定されない能力も有し得る。
【0120】
なお、半自律型または自律型のロボットは、これらの上述の能力を部分的にのみ有する場合もあり、いくつかのユーザにより付与もしくは選択されたパラメータが必要とされるか、または物体を(1つもしくは複数の)ポジショナに配置したり、モデル(例えば、コンピュータ支援設計(CAD)モデル)に注釈を提供したりするなど、他の方法でユーザの関与が必要とされる場合がある。
【0121】
本出願の局面およびそれらの利点を詳細に説明されているが、添付の特許請求の範囲によって定義される本開示の精神および範囲から逸脱することなく、本明細書において様々な変更、置換および改変を行うことができることを理解されたい。さらに、本出願の範囲は、本明細書に記載のプロセス、機械、製造、組成物、手段、方法および工程の特定の実施態様に限定されることを意図されていない。当業者であれば、上記の開示から容易に理解するように、本明細書に記載の対応する実施態様と実質的に同じ機能を遂行するか、または実質的に同じ結果を達成する、現存するか、または今後開発されるプロセス、機械、製造、組成物、手段、方法、または工程が利用され得る。したがって、添付の特許請求の範囲は、そのようなプロセス、機械、製造、組成物、手段、方法、または工程をその範囲内に含むことを意図されている。
【0122】
上記の明細書は、例示的な構成の構造および使用の完全な説明を提供している。特定の構成が、ある程度の特殊性を伴って、または1つもしくは複数の個々の構成を参照して上述されているが、当業者は、本発明の範囲から逸脱することなく、開示の態様に多数の改変を加えることができる。よって、方法およびシステムの様々な例示的な構成は、開示の特定の形態に限定されることを意図されていない。むしろ、それらは特許請求の範囲内に入るすべての修正例および代替例を含み、図示されたもの以外の構成は、図示された構成の特徴の一部または全部を含んでもよい。例えば、要素が省略されるか、または一体構造として組み合わされてもよく、接続部が置き換えられてもよく、またはその両方であってもよい。さらに、適切な場合には、同等の、または異なる特性および/または機能を有し、同じか、または異なる問題に対処するさらなる例を形成するために、上述した例のいずれかの局面が説明したその他の例のいずれかの局面と組み合わされてもよい。同様に、上述した利益および利点は、1つの構成に関連してもよいし、またはいくつかの構成に関連してもよいことが理解されよう。したがって、本明細書に記載のいかなる単一の実施態様も限定として解釈されるべきではなく、本開示の実施態様は、本開示の教示から逸脱することなく適切に組み合わせられ得る。
【0123】
様々な実施態様が上述されているが、これらは例として提示されているにすぎず、限定ではないことを理解されたい。様々な実施態様が特定の特徴および/または構成要素の組合せを有するものとして説明されているが、適切な場合には、例のいずれかからの任意の特徴および/または構成要素の組合せ、ならびに追加の特徴および/または構成要素を有する他の実施態様も可能である。
【0124】
本明細書で別々の実施態様の文脈において記載されている特定の特徴を、単一の実施態様において組み合わせて実施することもできる。逆に、単一の実施態様の文脈において記載されている様々な特徴を、複数の実施態様において別々に、または任意の適切な部分的組合せとして実施することもできる。上述した方法が、特定のイベントが特定の順序で行われることを示している場合、その特定のイベントの順序は修正され得る。さらに、イベントのいくつかは、上述したように順次に行われるばかりでなく、可能な場合には同時に並行プロセスとして行われ得る。
【0125】
同様に、各動作は図面において特定の順序で図示されているが、これは、望ましい結果を達成するために、そうした動作が図示の特定の順序で、もしくは順番に実施されること、または図示の動作すべてが実施されることを必要とするものとして理解されるべきではない。さらに、図面は、流れ図の形態のもう1つの例示的なプロセスを概略的に図示している場合がある。しかしながら、概略的に例示されている例示的なプロセスに図示されていない他の動作を組み込むことができる。例えば、1つまたは複数の追加の動作を、例示の動作のいずれかの前、後、同時に、またはそれらの間に実施することもできる。特定の状況では、マルチタスク処理および並列処理が有利な場合もある。さらに、上述した実施態様における様々なシステム構成要素の分離は、そうした分離をすべての実施態様において必要とするものとして理解されるべきではなく、記載のプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に統合することもできるし、複数のソフトウェア製品にパッケージ化することもできることを理解されたい。さらに、以下の特許請求の範囲には、いくつかの他の実施態様が含まれる。場合によっては、請求項に記載されている動作を、異なる順序で実施し、それでも望ましい結果を達成することもできる。
【0126】
当業者は、情報、メッセージ、および信号が、様々な異なる技術および技法のいずれかを使用して表され得ることを理解するであろう。例えば、上記の説明を通して参照され得るデータ、命令、コマンド、情報、および信号は、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光粒子、またはそれらの任意の組合せによって表されてもよい。
【0127】
本明細書で図を用いて説明される構成要素、機能ブロック、およびモジュールは、中でも特に、プロセッサ、電子デバイス、ハードウェアデバイス、電子構成要素、ロジック回路、メモリ、ソフトウェアコード、ファームウェアコード、またはそれらの任意の組合せを含む。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、またはそれ以外で呼ばれるかどうかにかかわらず、中でも特に、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、手続き、または関数を意味すると広く解釈されるものとする。さらに、本明細書で論じる特徴は、専用のプロセッサ回路、実行可能命令、またはそれらの組合せを介して実装され得る。
【0128】
本明細書の開示に関連して説明された様々な例示的なロジックブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアとのこの互換性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、および工程が、それらの機能に関して一般的に上述されている。本明細書に開示された実施態様に関連して説明された様々な例示的なロジック、ロジックブロック、モジュール、回路、およびアルゴリズムプロセスは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。1つまたは複数の局面において、記載の機能は、本明細書において開示される構造およびそれらの構造的均等物を含む、ハードウェア、デジタル電子回路、コンピュータソフトウェア、ファームウェアにおいて、またはそれらの任意の組合せにおいて実装され得る。本明細書に記載の主題の実施態様はまた、データ処理装置によって実行されるために、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装されることもできる。
【0129】
本明細書に開示された局面に関連して説明された様々な例示的なロジック、ロジックブロック、モジュール、および回路を実装するために使用される、ハードウェアおよびデータ処理装置は、汎用のシングルチップもしくはマルチチッププロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、またはそれらの任意の組合せ(本明細書に記載の機能を遂行するように設計されたもの)を用いて、実装または実施され得る。汎用プロセッサは、マイクロプロセッサ、または任意の従来のプロセッサ、コントローラ、マイクロコントローラ、もしくは状態機械であってもよい。いくつかの実施態様では、プロセッサは、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと併用される1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成など、コンピューティングデバイスの組合せとして実装され得る。いくつかの実施態様では、特定のプロセスおよび方法が、所与の機能に固有の回路によって実施され得る。
【0130】
ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶または伝送され得る。本明細書に開示された方法またはアルゴリズムのプロセスは、コンピュータ可読媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて実装され得る。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムをある場所から別の場所に転送することを可能にすることができる任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気記憶デバイス、または、所望のプログラムコードを命令もしくはデータ構造の形式で記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を含んでもよい。また、任意の接続を、「コンピュータ可読媒体」と適切に呼ぶこともできる。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、機械可読媒体およびコンピュータ可読媒体上のコードおよび命令のうちの1つまたは任意の組合せまたはセットとしても存在し得る。
【0131】
本明細書に記載のいくつかの実施態様は、方法または処理イベントに関する。そのような方法または処理イベントは、コンピュータによって実行されることができることを理解されたい。すなわち、方法または他のイベントが本明細書に記載されている場合、それらは、プロセッサおよびメモリを有する計算デバイスによって実施され得ることを理解されたい。本明細書に記載の方法は、ローカルで、例えば、物理的にロボットと同じ場所に配置された計算デバイスにおいて、またはロボットに不随するローカルコンピュータ/コントローラにおいて、かつ/またはリモートで、例えば、サーバ上および/もしくは「クラウド」において、実施されことができる。
【0132】
計算デバイスのメモリは、非一時的コンピュータ可読媒体とも呼ばれ、様々なコンピュータ実行動作を実施するための命令またはコンピュータコードを含むことができる。コンピュータ可読媒体(またはプロセッサ可読媒体)は、一時的な伝播信号自体(例えば、空間やケーブルなどの伝送媒体上で情報を搬送する伝搬電磁波)を含まないという意味で非一時的である。媒体およびコンピュータコード(コードと呼ぶこともできる)は、特定の目的のために設計および構築されたものであってもよい。非一時的コンピュータ可読媒体の例には、これらに限定されないが、ハードディスク、フロッピーディスク、および磁気テープなどの磁気記憶媒体、コンパクトディスク/デジタルビデオディスク(CD/DVD)、コンパクトディスク読み出し専用メモリ(CD-ROM)、およびホログラフィックデバイスなどの光記憶媒体、光ディスクなどの光磁気記憶媒体、搬送波信号処理モジュール、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)などが含まれる。1つまたは複数のプロセッサは、メモリに通信可能に接続することができ、非一時的プロセッサ可読媒体上に記憶されたコードを実行するように動作することができる。プロセッサの例には、汎用プロセッサ(例えば、CPU)、グラフィッカルプロセッシングユニット、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、プログラマブルロジックデバイス(PLD)などが含まれる。コンピュータコードの例には、マイクロコードまたはマイクロ命令、コンパイラによって生成されるような機械命令、ウェブサービスを生成するために使用されるコード、およびインタプリタを使用してコンピュータによって実行されるより高いレベルの命令を含むファイルが含まれるが、これらに限定されない。例示すると、例は、命令型プログラミング言語(例えば、C、Fortranなど)、関数型プログラミング言語(Haskell、Erlangなど)、論理型プログラミング言語(例えば、Prolog)、オブジェクト指向プログラミング言語(例えば、Java、C++など)、または他の適切なプログラミング言語および/もしくは開発ツールを使用して実装されてもよい。コンピュータコードのさらなる例には、制御信号、暗号化コード、および圧縮コードが含まれるが、これらに限定されない。
【0133】
本明細書で使用される場合、様々な用語は、特定の実施態様を説明する目的のためのものにすぎず、実施態様を限定することは意図されていない。例えば、本明細書で使用される場合、構造、構成要素、動作などの要素を修飾するために使用される順序語(例えば、「第1の」、「第2の」、「第3の」など)は、それ自体ではその要素の別の要素に対する優先順位または順序を示さず、単にその要素を、(順序語の使用を除いて)同じ名前を有する別の要素と区別するにすぎない。「結合された」という用語は、必ずしも直接的にではなく、必ずしも機械的ではないが、連結された、と定義され、「結合された」2つのものは、互いに一体であり得る。「a」および「an」という用語は、本開示が特に明示的に必要としない限り、1つまたは複数として定義される。
【0134】
本明細書で使用される「約」という用語は、値または範囲のある程度の変動、例えば、記載された値の、または範囲の記載された限界の10%以内、5%以内、または1%以内を許容することができ、正確に記載された値または範囲を含む。「実質的に(substantially)」という用語は、当業者によって理解されるように、指定されたものの大部分であるが、必ずしも全部ではないとして定義される(また、指定されたものを含み、例えば、実質的に90度は90度を含み、実質的に平行は平行を含む)。任意の開示の実施態様において、「実質的に」という用語は、指定されたもの「の[パーセンテージ]以内」に置き換えられてもよく、パーセンテージは、0.1、1、5、または10%を含み、「およそ」という用語は、指定されたもの「の10%以内」に置き換えられてもよい。「実質的にX~Y」という記述は、特に断らない限り、「実質的にX~実質的にY」と同義である。同様に、「実質的にX、Y、または実質的にZ」という記述は、特に断らない限り、「実質的にX、実質的にY、または実質的にZ」と同義である。特に明記しない限り、本明細書で使用される「または」という語は、包含的な「または」であり、「および/または」と交換可能であり、よって、「または」が2つ以上の項目のリストで使用される場合、列挙された項目のうちのいずれか1つを単独で使用することもできるし、列挙された項目のうちの2つ以上の任意の組合せを使用することもできることを意味する。例示すると、A、B、および/またはCは、A単独、B単独、C単独、AとBの組合せ、AとCの組合せ、BとCの組合せ、またはA、B、およびCの組合せを含む。同様に、「A、B、C、またはそれらの組合せ」または「A、B、C、またはそれらの任意の組合せ」という句は、A単独、B単独、C単独、AとBの組合せ、AとCの組合せ、BとCの組合せ、またはA、B、およびCの組合せを含む。
【0135】
本明細書を通して、範囲形式で表された値は、範囲の限界として明示的に挙げられた数値を含むだけでなく、各数値および部分範囲が明示的に挙げられているかのように、その範囲内に包含されるすべての個々の数値または部分範囲も含むように柔軟に解釈されるべきである。例えば、「約0.1%~約5%」または「約0.1%~5%」の範囲は、約0.1%~約5%だけでなく、示された範囲内の個々の値(例えば、1%、2%、3%、および4%)ならびに部分範囲(例えば、0.1%~0.5%、1.1%~2.2%、3.3%~4.4%)も含むと解釈されるべきである。
【0136】
「含む(comprise)」という用語(およびcompriseの任意の形態、例えば「comprises」や「comprising」)、「有する(have)」という用語(およびhaveの任意の形態、例えば「has」や「having」)、「含む(include)」という用語(およびincludeの任意の形態、例えば「includes」や「including」)、ならびに「含有する(contain)」という用語(およびcontainの任意の形態、例えば「contains」や「containing」)。結果として、1つまたは複数の要素を「含む(comprises)」か、「有する(has)」か、「含む(includes)」か、または「含有する(contains)」装置は、それら1つまたは複数の要素を保有するが、それら1つまたは複数の要素のみを保有することに限定されない。同様に、1つまたは複数の工程を「含む(comprises)」か、「有する(has)」か、または「含む(includes)」方法は、それら1つまたは複数の工程を有するが、それら1つまたは複数の工程のみを有することに限定されない。
【0137】
システム、方法、および製造品のいずれかの任意の実施態様は、記載の工程、要素、および/または特徴のいずれかを含む/有する/含むのではなく、記載の工程、要素、または特徴のいずれかからなるか、または記載の工程、要素、または特徴のいずれかから本質的になることができる。よって、請求項のいずれかにおいて、所与の請求項の範囲を、そうでなければオープンエンドの連結動詞を使用することになるものから変更するために、「からなる(consisting of)」または「から本質的になる(consisting essentially of)」という用語を、上記のオープンエンドの連結動詞の代わりに使用することができる。さらに、「ここで(wherein)」という用語は、「ここで(where)」と互換的に使用され得る。
【0138】
さらに、特定の方法で構成されるデバイスまたはシステムは、少なくともその方法で構成されるが、具体的に記載されたもの以外の他の方法で構成することもできる。一実施態様の1つまたは複数の特徴は、本開示またはその実施態様の性質によって明示的に禁止されるのでない限り、記載または例示されていなくても、他の実施態様に適用されてもよい。
【0139】
特許請求の範囲は、そのような限定が、それぞれ、「~する手段(means for)」または「~する工程(step for)」という(1つまたは複数の)語句を使用して所与の請求項に明示的に記載されているのでない限り、ミーンズプラスファンクションまたはステッププラスファンクションの限定を含むことを意図されておらず、かつそのような限定を含むと解釈されるべきではない。
【0140】
本開示の前述の説明は、当業者が本開示を作成または使用することを可能にするために提供されている。本開示に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義される一般的な原理は、本開示の精神または範囲から逸脱することなく他の変形例に適用され得る。よって、本開示および以下の特許請求の範囲は、本明細書に記載された例および設計に限定されることを意図されておらず、本明細書に開示された原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【国際調査報告】