(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】ロボット関節空間グラフ経路計画および移動実行
(51)【国際特許分類】
B25J 9/22 20060101AFI20240827BHJP
H01L 21/677 20060101ALI20240827BHJP
G05B 19/42 20060101ALI20240827BHJP
【FI】
B25J9/22 A
H01L21/68 A
G05B19/42 J
(21)【出願番号】P 2023505371
(86)(22)【出願日】2021-09-22
(86)【国際出願番号】 US2021051578
(87)【国際公開番号】W WO2022066787
(87)【国際公開日】2022-03-31
【審査請求日】2023-04-14
(32)【優先日】2020-09-23
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390040660
【氏名又は名称】アプライド マテリアルズ インコーポレイテッド
【氏名又は名称原語表記】APPLIED MATERIALS,INCORPORATED
【住所又は居所原語表記】3050 Bowers Avenue Santa Clara CA 95054 U.S.A.
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】アブドゥル-ハーディ, オマー
(72)【発明者】
【氏名】クランマー, アダム クリストファー
(72)【発明者】
【氏名】フリーマン, グレゴリー ジョン
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特開2002-073130(JP,A)
【文献】特表2006-515233(JP,A)
【文献】特表平11-503369(JP,A)
【文献】特表2018-505788(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/42-19/427
H01L 21/67-21/687
(57)【特許請求の範囲】
【請求項1】
複数の関節および1つまたは複数のエンドエフェクタを有するロボットアームを備えるロボットであって、前記1つまたは複数のエンドエフェクタは、基板を運ぶ、ロボットと、
前記ロボットに結合された処理デバイスであって、
前記ロボットアームの関節空間内で、前記基板を移送するための前記ロボットアームの完全な移動のために、前記1つまたは複数のエンドエフェクタの開始点および終了点を決定し、
前記複数の関節および前記1つまたは複数のエンドエフェクタのための前記関節空間に関して、到達可能位置および前記到達可能位置間の副経路のグラフを作成し、前記到達可能位置および前記副経路は、前記関節空間内のデカルト限界を満足し、前記到達可能位置は、前記完全な移動を前記ロボットアームの複数の副移動に分割する粒度で識別され、
グラフ最適化アルゴリズムを前記グラフに対して実行することにより、それぞれ前記副経路のグループからなる複数の経路を決定し、前記複数の経路のそれぞれは、前記開始点と前記終了点との間が最短距離または最低コスト経路のいずれかになるように選択された副経
路を有し、
前記グラフを介して、前記複数の経路の中から、前記開始点と前記終了点との間の前記1つまたは複数のエンドエフェクタの移動時間を最短にする経路を選択する
処理デバイスと
を備え
、
前記1つまたは複数のエンドエフェクタの前記移動時間を最短にするために、前記処理デバイスが、さらに
前記複数の関節のうちのある関節の各移動の速度プロファイルに対する速度制限および加速制限を、最も近隣の到達可能位置間で、前記複数の経路を介して、無作為に変更し、
前記ロボットアームを移動させる1つまたは複数の電動機に対するトルク制限が、変更される前記速度制限および前記加速制限の観点から満たされていることを検証し、
前記1つまたは複数のエンドエフェクタの最大加速制限が満たされていることを検証する、システム。
【請求項2】
前記処理デバイスが、前記関節空間を通る前記経路を使用して前記基板を移送するように前記ロボットアームをさらに導く、請求項1に記載のシステム。
【請求項3】
前記到達可能位置が、ノードとして表され、前記到達可能位置間の前記副経路が、前記グラフの中のエッジとして表され、前記グラフを作成するために、前記処理デバイスが、さらに、
複数のノードを識別し、各ノードは、前記複数の関節または前記1つまたは複数のエンドエフェクタのうちの1つによって到達が可能であり、前記ロボットアームの前記デカルト限界を満足し、
前記複数のノードのうちの最も近隣のノード間を線形補間するエッジを追加し、各エッジも、前記デカルト限界を満足し、
前記グラフ最適化アルゴリズムの実行に使用する前記エッジの距離を計算する、
請求項1に記載のシステム。
【請求項4】
前記処理デバイスが、さらに、前記経路に対する最短移動時間に収束するまで、前記複数の関節の各関節に対する前記速度制限および前記加速制限の
無作為
の前記変更を反復して実施し、その一方で最短移動時間の追跡を維持する、請求項
1に記載のシステム。
【請求項5】
前記処理デバイスが、さらに、
前記複数の経路のうちの、追加終了点への移動時間を最短にする追加経路を識別し、
前記ロボットが起動することに応答して、
前記1つまたは複数のエンドエフェクタの主エンドエフェクタの前記関節空間における場所を決定し、
前記追加終了点のうちの、前記場所に最も近いものを決定し、
前記場所に基づいて前記追加経路のうちのある追加経路を選択し、
選択された前記追加経路を介して前記開始点の定位置へ戻るように前記ロボットアームを導く、
請求項1に記載のシステム。
【請求項6】
前記グラフ最適化アルゴリズムが、DijkstraグラフアルゴリズムまたはA
*探求アルゴリズムのうちの1つを含む、請求項1に記載のシステム。
【請求項7】
前記複数の関節のうちのある関節の距離の4ないし6ラジアン内で、前記到達可能位置の前記粒度が、7個の到達可能位置と15個の到達可能位置との間である、請求項1に記載のシステム。
【請求項8】
前記1つまたは複数のエンドエフェクタが、主エンドエフェクタおよび受動エンドエフェクタを備え、前記経路を選択するために、
前記処理デバイスが、さらに、前記受動エンドエフェクタおよび前記主エンドエフェクタが加速制限を満足することを保証し、その一方で前記主エンドエフェクタの移動時間を最短にする、請求項1に記載のシステム。
【請求項9】
処理デバイスによって、ロボットアームの関節空間内で、1つまたは複数のエンドエフェクタの上に配置された基板を移送するための前記ロボットアームの完全な移動のために、前記1つまたは複数のエンドエフェクタの開始点および終了点を決定することであって、前記ロボットアームは、複数の関節および前記エンドエフェクタを備える、開始点および終了点を決定することと、
前記処理デバイスによって、前記複数の関節の関節レンジ内の関節位置の格子から、第1の粒度を使用して、前記複数の関節および前記1つまたは複数のエンドエフェクタによる複数の到達可能位置を識別することであって、前記格子は、前記関節空間内に存在し、前記開始点および前記終了点を含む、複数の到達可能位置を識別することと、
前記処理デバイスによって、前記複数の到達可能位置のそれぞれの到達可能位置に対する関節位置コンビネーションに基づいて、前記関節空間内の前記ロボットアームのデカルト限界を同じく満足する前記複数の到達可能位置を表すためのノードを含むグラフを作成することと、
前記処理デバイスによって、前記開始点と前記終了点との間の複数の経路を完成する前記ノードのうちの最も近隣のノード間を補間するエッジをグラフに追加することであって、前記エッジは、前記デカルト限界を同じく満足する、エッジをグラフに追加することと、
前記処理デバイスによって、前記グラフの前記エッジの距離を計算することと、
前記処理デバイスによって、前記開始点と前記終了点との間の前記ノードを通る複数の最短経路または最低コスト経路のうちの1つを決定するために、グラフ最適化アルゴリズムを前記グラフに対して実行することと、
前記複数の最短経路の中から、前記開始点と前記終了点との間の前記1つまたは複数のエンドエフェクタのうちの主エンドエフェクタの移動時間を最短にし、その一方で前記複数の関節に対するトルク制限、および前記1つまたは複数のエンドエフェクタに対する加速制限を満足する、前記開始点と前記終了点との間の経路を選択することと、を含
み、
前記経路を選択することが、
前記複数の関節のうちのある関節の各移動の速度プロファイルに対する速度制限および加速制限を、前記最も近隣のノード間で、前記複数の最短経路を介して、無作為に変更することと、
前記ロボットアームを移動させる1つまたは複数の電動機に対するトルク制限が、変更される前記速度制限および前記加速制限の観点から満たされていることを検証することと、
前記1つまたは複数のエンドエフェクタの最大加速制限が満たされていることを検証することと
を含む、方法。
【請求項10】
前記グラフの前記エッジの前記距離を計算することが、前記最も近隣のノードの関節位置値間のユークリッドノルムを使用して実施され、前記第1の粒度が、前記複数の関節のうちのある関節の距離の4ないし6ラジアン内で、7個と15個との間の到達可能位置を含む、請求項
9に記載の方法。
【請求項11】
前記関節空間を通る前記経路を使用して前記基板を移送するように前記ロボットアームを導くことをさらに含む、請求項
9に記載の方法。
【請求項12】
前記経路に対する最短移動時間に収束するまで、前記複数の関節の各関節に対する前記速度制限および前記加速制限の無作為の前記変更を反復して実施し、その一方で最短移動時間の追跡を維持することをさらに含む、請求項
9に記載の方法。
【請求項13】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、処理デバイスによって実行されると、前記処理デバイスに、
ロボットアームの関節空間内で、1つまたは複数のエンドエフェクタの上に配置された基板を移送するための前記ロボットアームの完全な移動のために、前記1つまたは複数のエンドエフェクタの開始点および終了点を決定することであって、前記ロボットアームは、複数の関節および前記1つまたは複数のエンドエフェクタを備える、開始点および終了点を決定することと、
前記複数の関節および前記1つまたは複数のエンドエフェクタのための前記関節空間に関して、到達可能位置および前記到達可能位置間の副経路のグラフを作成することであって、前記到達可能位置および前記副経路は、前記関節空間内のデカルト限界を満足し、前記到達可能位置は、前記完全な移動を前記ロボットアームの複数の副移動に分割する粒度で識別される、グラフを作成することと、
グラフ最適化アルゴリズムを前記グラフに対して実行することにより、それぞれ前記副経路のグループからなる複数の経路を決定することであって、前記複数の経路のそれぞれは、前記開始点と前記終了点との間
が最短距離または最低コスト経路のいずれかになるように選択された副経路を有する複数の経路を決定することと、
前記グラフを介して、前記複数の経路の中から、前記開始点と前記終了点との間の前記1つまたは複数のエンドエフェクタの移動時間を最短にし、その一方で前記複数の関節に対するトルク制限、および前記エンドエフェクタに対する加速制限を満足する経路を選択することと
を含む複数の操作を実行させ
、
前記1つまたは複数のエンドエフェクタの前記移動時間を最短にするために、前記複数の操作が、
前記複数の関節のうちのある関節の各移動の速度プロファイルに対する速度制限および加速制限を、最も近隣の到達可能位置間で、前記複数の経路を介して、無作為に変更することと、
前記ロボットアームを移動させる1つまたは複数の電動機に対するトルク制限が、変更される前記速度制限および前記加速制限の観点から満たされていることを検証することと、
前記1つまたは複数のエンドエフェクタの最大加速制限が満たされていることを検証することと
をさらに含む、非一時的コンピュータ可読媒体。
【請求項14】
前記複数の操作が、前記関節空間を通る前記経路を使用して前記基板を移送するように前記ロボットアームを導くことをさらに含む、請求項
13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記到達可能位置が、ノードとして表され、前記到達可能位置間の前記副経路が、前記グラフの中のエッジとして表され、前記グラフを作成するために、前記複数の操作が、
複数のノードを識別することであって、各ノードが、前記複数の関節または前記1つまたは複数のエンドエフェクタのうちの1つによる到達が可能であり、前記ロボットアームの前記デカルト限界を満足する、複数のノードを識別することと、
前記複数のノードのうちの最も近隣のノード間を線形補間するエッジを追加することであって、各エッジが、前記デカルト限界を同じく満足する、エッジを追加することと、
前記グラフ最適化アルゴリズムの実行に使用する前記エッジの距離を計算することと
をさらに含む、請求項
13に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記複数の操作が、前記経路に対する最短移動時間に収束するまで、前記複数の関節の各関節に対する前記速度制限および前記加速制限の無作為の前記変更を反復して実施し、その一方で最短移動時間の追跡を維持することをさらに含む、請求項
13に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記複数の経路のうちの、追加終了点への移動時間を最短にする追加経路を識別することと、
ロボットが起動することに応答して、
前記1つまたは複数のエンドエフェクタのうちの主エンドエフェクタの前記関節空間における場所を決定することと、
前記追加終了点のうちの、前記場所に最も近いものを決定することと、
前記場所に基づいて前記追加経路のうちのある追加経路を選択することと、
選択された前記追加経路を介して前記開始点の定位置へ戻るように前記ロボットアームを導くことと
をさらに含む、請求項
13に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記1つまたは複数のエンドエフェクタが、主エンドエフェクタおよび受動エンドエフェクタを備え、前記経路を選択することが、前記受動エンドエフェクタおよび前記主エンドエフェクタが加速制限を満足することを保証し、その一方で前記主エンドエフェクタの移動時間を最短にすることを含む、請求項
13に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、ロボット関節空間グラフ計画および実行に関する。
【背景技術】
【0002】
サーボ制御機構は、製造産業において、例えば、製造を自動化するために採用されるロボットツールなどにおいて、広く使用されている。いくつかの事例では、この製造は、半導体デバイスの多重ステップ処理であり、ロボットツールは、ガス抜きプロセス(または洗浄)、堆積プロセスおよびエッチプロセスのステップからステップへ半導体基板を移動させるロボットリンケージに取り付けられた電動機を含む。ロボットリンケージは、例えば、ファクトリインタフェースおよび移送チャンバ等内で基板を移送するために使用されるロボットのアームおよびエンドエフェクタであってもよい。ロボットリンケージは、電動機とアームまたは他のロボットリンケージとの間のトルクの伝達を容易にするプーリベルトをもう1つ含むことも可能である。
【0003】
半導体ウエハハンドリングにおけるロボットツールの多くは、極めて狭い動作空間において作業することを余儀なくされている。運動が慎重に計画されないと、ロボットリンケージの複数の関節のうちの1つまたはエンドエフェクタ(基板またはウエハを運ぶ)が、ロボットのデカルト限界に突き当たることになり得る。デカルト限界は、例えば、ロボットの環境中における、他のロボットまたはその移動部品を含む、壁および他の対象などの障害物によって画定される運動拘束であり、これらの障害物は、基板を1つの場所から別の場所へ移送している間のロボットの移動中、回避されるべきものである。従来、ロボットリンケージの経路は、デカルト限界を回避する方法において手動で計画されている。これは時間を消費し、複数の複雑な移動を使用して、限られた空間において手動で実施することはますます困難になっている。さらに、限られた空間内でロボットを追加移動させる必要がある、新しい障害物、処理チャンバの追加、または他のチャンバあるいは中間ステーションの追加、などの環境の更新毎に手動経路計画を繰り返さなければならない。
【発明の概要】
【0004】
本明細書において説明される実施形態のうちのいくつかは、複数の関節および1つまたは複数のエンドエフェクタを有するロボットアームを含むロボットを含むシステムを包含しており、1つまたは複数のエンドエフェクタは基板を運ぶ。処理デバイスがロボットに結合される。処理デバイスは、ロボットアームの関節空間内で、基板を移送するためのロボットアームの完全な移動のために、1つまたは複数のエンドエフェクタの開始点および終了点を決定する。処理デバイスは、複数の関節および1つまたは複数のエンドエフェクタのための関節空間に関して、到達可能位置およびそれらの到達可能位置間の副経路のグラフを作成し、到達可能位置および副経路は、関節空間内のデカルト限界を満足し、到達可能位置は、完全な移動をロボットアームの複数の副移動に分割する粒度で識別される。処理デバイスは、グラフ最適化アルゴリズムをグラフに対して実行することにより、それぞれ副経路のグループからなる複数の経路を決定し、副経路は、開始点と終了点との間の最短距離を有する。処理デバイスは、グラフを介して、複数の経路の中から、開始点と終了点との間の1つまたは複数のエンドエフェクタの移動時間を最短にする経路を選択する。
【0005】
関連する実施形態では、本明細書において、ロボット関節空間を通る経路を計画するための方法が説明される。方法は、処理デバイスによって、ロボットアームの関節空間内で、1つまたは複数のエンドエフェクタの上に配置された基板を移送するためのロボットアームの完全な移動のために、該1つまたは複数のエンドエフェクタの開始点および終了点を決定することを含むことができ、ロボットアームは、複数の関節および1つまたは複数のエンドエフェクタを備える。方法は、処理デバイスによって、複数の関節の関節レンジ内の関節位置の格子から、第1の粒度を使用して、複数の関節および1つまたは複数のエンドエフェクタによる複数の到達可能位置を識別することをさらに含み、格子は、関節空間内に存在し、開始点および終了点を含む。方法は、処理デバイスによって、複数の到達可能位置のそれぞれの到達可能位置に対する関節位置コンビネーションに基づいて、関節空間内のロボットアームのデカルト限界を同じく満足する複数の到達可能位置を表すためのノードを含むグラフを作成することをさらに含む。方法は、処理デバイスによって、開始点と終了点との間の複数の経路を完成するノードのうちの最も近隣のノード間を線形補間するエッジをグラフに追加することをさらに含み、エッジは、デカルト限界を同じく満足する。方法は、処理デバイスによって、グラフのエッジの距離を計算することをさらに含む。方法は、開始点と終了点との間のノードを通る複数の最短経路を決定するために、処理デバイスによって、グラフ最適化アルゴリズムをグラフに対して実行することをさらに含む。
【0006】
他の実施形態では、非一時的コンピュータ可読ストレージ媒体は、命令を記憶し、命令は、処理デバイスによって実行されると、処理デバイスに、複数の操作を実施させる。これらの複数の操作は、ロボットアームの関節空間内で、1つまたは複数のエンドエフェクタの上に配置された基板を移送するためのロボットアームの完全な移動のために、1つまたは複数のエンドエフェクタの開始点および終了点を決定することを含み、ロボットアームは、複数の関節および1つまたは複数のエンドエフェクタを備える。これらの複数の操作は、複数の関節および1つまたは複数のエンドエフェクタのための関節空間に関して、到達可能位置およびこれらの到達可能位置間の副経路のグラフを作成することをさらに含み、到達可能位置および副経路は、関節空間内のデカルト限界を満足し、到達可能位置は、完全な移動をロボットアームの複数の副移動に分割する粒度で識別される。これらの複数の操作は、グラフ最適化アルゴリズムをグラフに対して実行することにより、それぞれ副経路のグループからなる複数の経路を決定することをさらに含み、副経路は、開始点と終了点との間の最短距離を有する。これらの複数の操作は、グラフを介して、複数の経路の中から、開始点と終了点との間の1つまたは複数のエンドエフェクタの移動時間を最短にし、その一方で複数の関節に対するトルク制限を満足し、かつ、1つまたは複数のエンドエフェクタに対する加速制限を満足する経路を選択することをさらに含む。
【0007】
本開示のこれらおよび他の実施形態に従って多くの他の特徴が提供される。本開示の他の特徴および実施形態については、以下の詳細な説明、特許請求の範囲および添付の図面からより完全に明らかになるであろう。
【0008】
本開示は、制限としてではなく、一例として示されており、添付の図面の図においては、同様の参照は類似の要素を示している。本開示における「実施形態」または「一実施形態」に対する異なる参照は、必ずしも同じ実施形態に対する参照ではなく、このような参照は、少なくとも1つの実施形態を意味していることに留意されたい。
【図面の簡単な説明】
【0009】
【
図1】様々な実施形態による、対応する電動機およびロボットリンケージを駆動するように働く複数の増幅器に結合された運動コントローラを含む制御システムのブロック図である。
【
図2】一実施形態による、デカルト限界を侵害する移動に対して計画される、エンドエフェクタを含む、複数の関節を有するロボットアームのモデルの図である。
【
図3】一実施形態による、デカルト限界を満足しつつ、3つの関節の関節空間を通る可能経路のグラフであり、3つの関節のうちの1つは、エンドエフェクタであってもよい。
【
図4】一実施形態による、デカルト限界を満足する移動に対して計画される、複数の関節およびエンドエフェクタを有するロボットアームのモデルの図である。
【
図5A】一実施形態による、ロボットアームの3つの関節に対する異なる台形速度プロファイルの例示的プロットである。
【
図5B】一実施形態による、ロボットアームの3つの関節の台形速度プロファイル(
図5A)に対応する異なる加速プロファイルの例示的プロットである。
【
図6】一実施形態による、7回の反復の後、ロボットアームの移動時間が10秒未満に最短化される、移動時間最適化のプロットである。
【
図7A】様々な実施形態による、複数の関節および1つまたは複数のエンドエフェクタがデカルト限界を満足する、ロボット関節空間を通る最短経路を決定するための方法のフローチャートである。
【
図7B】様々な実施形態による、最短経路(
図7A)のうちで移動時間を最短化することができる最短経路を決定するための方法のフローチャートである。
【
図8】様々な実施形態による、デカルト限界を満足し、かつ、移動時間を最短化する、ロボット関節空間を通る経路上のロボットアームの移動を計画し、かつ、実行する方法のフローチャートである。
【発明を実施するための形態】
【0010】
本明細書において説明される実施形態は、デカルト限界(Cartesian limits)を満足し、かつ、移動時間を最短化する、ロボット関節空間を通る経路上のロボットリンケージの移動を計画し、かつ、実行するために使用されるシステムおよび方法に関する。例えば、関節空間内のデカルト限界と共にロボットの関節空間へのアクセスを有する処理デバイス(例えば計算システム)は、開始点と終了点との間のロボットリンケージのための経路を計画することができる。関節空間は、ロボットリンケージ(関節を含む)が制御され、関節限界を越えて展開しない座標フレームである。したがって関節空間は電動機空間へ展開し、例えばロボットリンケージを直接駆動し、または間接機械トランスミッションを介してロボットリンケージを駆動する電動機の展開限界を参照することができる。さらに、関節空間は一次自由度空間であってもよいが、運動学的関節空間とロボットリンケージアクチュエータすなわち電動機の間に配置された線形(例えばギヤボックス)および非線形(例えば4-バー、スライダ-クランク等)トランスミッション要素が同じく想定されている。デカルト限界は、例えば、ロボットの環境中における壁および他の対象などの障害物によって画定され、これらの障害物は、基板を1つの場所から別の場所へ移送している間のロボットの移動中、回避されるべきものである。説明を単純にするために、ロボットリンケージは、複数の関節、および上に配置された基板(またはウエハ)を運ぶための1つまたは複数のエンドエフェクタを含むことができる。
【0011】
様々な実施形態では、ロボット関節はプリズム関節および/またはレボリュート関節を含むことができる。プリズム関節は、単一の軸に沿った相対運動を許容する2つの対象の間の接続であり、したがって線形運動が可能である。この軸に対して直角の運動(または何らかの軸の周りの回転)が防止される。ヒンジ関節のピン関節とも呼ばれるレボリュート関節は1自由度運動学的対である。レボリュート関節は、2つの本体の運動を共通軸に沿った純粋な回転に拘束する。ロボットリンケージが2つの点の間を補間すると、計画された移動をプリズム関節およびレボリュート関節のいずれか、またはそれらの組合せによって実施することができ、それにより経路を完成することができる。
【0012】
前もって経路を計画することにより、ロボットは、ロボットアームの何らかの部品がデカルト限界を侵害する壁または他の障害物に突き当たることなく、同じ経路上で、多くの回数にわたって基板を無矛盾に、かつ、安全に移送するための移動を実行することができる。経路が開始点と終了点との間を線形補間することによって単純に計画されると、経路は、デカルト限界を侵害する関節空間の領域へ容易に移動し得ることになる。
【0013】
したがって、様々な実施形態によれば、本開示のシステムおよび方法は、多数の副経路(すなわち完全な経路の区分)を含む経路を計画し、これらの副経路の各々は、デカルト限界を回避し、関節限界に従う。完全な移動のための計画プロセスは、少なくとも2つのフェーズ内で実施することができる。第1のフェーズは、そのノードが複数の関節およびエンドエフェクタの到達可能位置を表すグラフの作成を含むことができる。説明を単純にするために本開示は「エンドエフェクタ」を参照することが可能であるが、ロボットアームは複数のエンドエフェクタを有することができ、計画された経路は、それぞれグラフ中のノードとして表される1つまたは複数のエンドエフェクタを組み込むことができることを理解されたい。複数のエンドエフェクタは、能動的に基板を運ぶ主エンドエフェクタを含むことができ、計画される経路は、この主エンドエフェクタに対して的が絞られ、1つまたは複数の受動エンドエフェクタを含むことができ、この受動エンドエフェクタは基板を運んでも、あるいは運ばなくてもよいが、この受動エンドエフェクタに対しては、計画される特定の経路は的を絞っていない。さらに、最終的に決定され、最適化された経路は、満足する作業空間および/または受動エンドエフェクタおよび主エンドエフェクタに対する加速制限を含むことができ、その一方で、ロボットアームに取り付けられた複数のエンドエフェクタのうちの主エンドエフェクタの移動時間を最短にすることができる。
【0014】
いくつかの実施形態では、到達可能位置は、開始点と終了点との間の関節空間の格子内で識別され、主エンドエフェクタに的が絞られる。各到達可能位置は、関節限界およびデカルト限界の両方を満足することが検証される。到達可能位置は、完全な経路を副経路のグループに分割し、例えばこの副経路は、完全な経路上のロボットアームの完全な移動を複数の副移動に同じく分割する粒度で識別することができる。様々な実施形態では、関節限界は、トルク、速度、加速度、ジャーク、運動の範囲、および構造的自由度限界に対する反作用力およびモーメント限界などの移動パラメータを含むことができる。さらに、関節限界およびデカルト限界は、非線形形状、曲線およびオブジェクトに及び、これらを許容する。したがって本明細書における関節限界およびデカルト限界の例は、場合によってより長方形または直線で出現しているが、非線形特徴も同じく想定されており、位置、トルク、速度、加速度、ジャーク、運動の範囲、力相互作用等などのパラメータを介して経路計画の最適化に統合することができる。
【0015】
同じく第1のフェーズ内で、システムおよび方法は、デカルト限界を同じく満足し、開始点と終了点との間の多くの完全な経路のうちの1つの経路の一部である最も近隣のノード間の副経路をさらに識別することができる。これらの副経路は、グラフ内のエッジとして表すことができる。処理デバイスはこれらのエッジの距離を測定することができ、次にグラフ最適化アルゴリズムをグラフに対して実行して、それぞれ副経路のグループからなる複数の経路を決定することができ、副経路は開始点と終了点との間の最短距離を有する。この方法によれば、処理デバイスは、経路全体を通して関節限界およびデカルト限界を同じく満足する関節空間を通る最短経路の選択を最適化することができる。様々な実施形態では、最短距離の測定に異なるコスト関数を適用することができ、あるいはグラフを最適化している間、最低コストを適用することができる。
【0016】
異なる実施形態では、ユークリッド距離以外のコスト関数を最小化することによって最短経路を見出すことができる。コスト関数の例は、より遅い経路が不利になり、したがって最短時間経路を予測する重みを含むことができる。例えば、コスト関数は、経路曲率を罰則化することができ、したがって罰則化された経路のコストが高くなる。異なるコスト関数を使用することにより、最短経路は、最短移動時間を有する最短経路をより近く近似する。グラフ最適化のために異なるコスト関数を使用することにより、考慮すべき複数の最短経路の数が少なくなり、したがって第2のフェーズ(以下で考察される)の計算効率を改善することができる。いくつかの実施形態は、第2のフェーズを省略して、最短移動時間を直接計算することができる。
【0017】
本明細書における関節限界に関しての「満足する」という用語は、複数の関節の移動の組合せが、複数の関節をこのような移動の組合せで接合することができる意味において許容されることを示している。本明細書におけるデカルト限界に関しての「満足する」という用語は、グラフ内の経路の位置またはエッジが、ロボットの動作環境内の壁などの障害物によって画定された、排除された三次元空間と重畳しないことを示すべく使用されている。関節限界およびデカルト限界の各々は特定の動作尤度内で画定することができ、したがってロボットアームの部品(または他のロボットリンケージ)が所与の限界に近づくことはない。例えば、デカルト限界に関して、この尤度は、例えば1~2cmまたは10~20mm内であってもよい。
【0018】
第2のフェーズによれば、本開示のシステムおよび方法は、開始点と終了点との間の主エンドエフェクタの移動時間を最短にし、その一方で複数の関節に対するトルク制限、および1つまたは複数のエンドエフェクタに対する加速制限を同じく満足するグラフを介して、複数の(最短)経路のうちの第1の(例えば最も速い)経路を選択することができる。そのために、処理デバイスは、複数の関節のうちのある関節の各移動の速度プロファイルに対する速度制限および加速制限(多くの制限およびプロファイルのうちのとりわけ)を最も近隣の到達可能位置間で、複数の経路を介して、無作為に変更することができる。処理デバイスは、さらに、ロボットアームを移動させる1つまたは複数の電動機に対するトルク制限が、変更される速度制限および加速制限の観点から満たされていることを検証することができ、エンドエフェクタの最大加速制限が満たされていることを検証することができる。
【0019】
この方法によれば、本開示は、関節空間を通る安全な経路を手動で計画する必要を不要にし、複数の到達可能位置および介在する副経路の計算処理により、最短経路のうちの1つであるだけでなく、移動時間を最短にする経路、例えば、最適移動経路である経路が選択されることを保証することができる方法で、関節空間を通る安全な経路を手動で計画する必要を不要にする。例えば、所与の最短経路のうちの1つは、最短経路のうちの最も短い経路ではないかもしれないが、それでも、より速い平均速度および/またはより速い達成可能加速度を有することができるため、依然として最短の移動時間を有している。
【0020】
さらに、完全な移動経路の開示される計画は、新しい経路を速やかに再識別し、かつ、それらに限定されないが、ウエハステーション位置、ロボットリンク数、ロボットエンドエフェクタ数、ロボットリンク長さ、質量、慣性、重心およびプーリ比などの処理環境内の設計パラメータ変更として新しい経路を使用することができるため、時間を著しく節約する。さらに、ロボットが定位置以外の位置で起動される場合に、本明細書において開示される経路計画を、定位置へ復帰する予め計算された既知の安全な経路に基づいて実施することにより、処理デバイスは、ロボットアームを定位置、例えば開始点へ戻すために、関節の現在の位置および主エンドエフェクタの現在の位置に基づいて、いくつかの既知の安全な経路の中から速やかに1つの経路を選択することができる。ロボットツールの操作を開始する前に必要なこの定位置への移動の実施は、多くのロボットツールにとって些細な問題ではない。
【0021】
図1は、様々な実施形態による、対応する電動機およびロボットリンケージを駆動するように働く複数の増幅器に結合された運動コントローラを含む制御システム100のブロック図である。より詳細には、制御システム100は、運動コントローラ102(または他の処理デバイスあるいは計算システム)、一組の増幅器150ならびに電動機スタックおよびロボットリンケージ160を含むことができる。増幅器150は、運動コントローラ102によって制御される際の電動機に対するアクチュエータであってもよい。
【0022】
電動機スタックおよびロボットリンケージ160は、複数の電動機およびロボットリンケージ、例えば、第1の電動機160Aおよび第1のロボットリンケージ164A、第2の電動機160Bおよび第2のロボットリンケージ164B、および第Nの電動機160Nおよび第Nのロボットリンケージ164Nを含むことができる。一実施形態では、ロボットリンケージ164A、164B…16Nは相互接続されており、したがって複数の電動機160A、160B…160Nは、運動コントローラ102によって導かれると、電動機およびロボットリンケージからのフィードバックに従って、協同して働いてロボットリンケージを移動させることができる。必ずしも電動機毎にロボットリンケージが存在している必要はなく、したがって電動機のうちのいくつかを1つのロボットリンケージまたはロボットリンケージの組合せに共同して結合し、1つのロボットリンケージまたはロボットリンケージの組合せを移動させることができる場合、異なる実施形態では、それは直列リンケージおよび/または並列リンケージの両方になり得る。別の実施形態では、電動機160A、160B…160Nのうちの1つまたは複数は、直列リンケージであれ、あるいは並列リンケージであれ、それぞれのロボットリンケージのうちの少なくともいくつかを独立して制御する。
【0023】
一実施形態では、ロボットリンケージのうちの1つ、例えばロボットリンケージ164Aなどは、移動しない(「ベース」)ベース位置を有するロボットアームであり、第1の関節(例えばエルボー)、第2の関節(例えばリスト)、第3の関節(例えば主エンドエフェクタ)、および任意選択の第4の関節(例えば受動エンドエフェクタ)である。本明細書においては、1つまたは2つはエンドエフェクタである3つまたは4つの関節が場合によっては参照されているが、もっと多くの、あるいはもっと少ない関節を有するロボットリンケージが想定されており、本明細書において教示される原理によって包含されている。例えば、ロボットアームは、主エンドエフェクタに加えて2つの受動エンドエフェクタを含むことができる。ロボットアームは、デカルト限界10が画定される処理チャンバ内または他の動作空間内に配置される。考察したように、デカルト限界10は、ロボットの環境中の壁および他の対象などの障害物によって画定され、これらの障害物は、基板を1つの場所から別の場所へ移送している間のロボットの移動中、回避されるべきものである。例えば、デカルト限界を満足できない場合、ロボットは物理的対象に突き当たることになり、ロボットアームを損傷することになり得る。
【0024】
増幅器150は、第1の増幅器150A、第2の増幅器150Bおよび第Nの増幅器150Nを含むことができ、これらの増幅器の各々は、運動コントローラ102から受け取ったコマンド(例えば命令)を実行するためのそれぞれのプロセッサ154A、154B…154Nを含む。制御システム100は電動機毎に増幅器を含むことができ、したがっていくつかの実施形態では電動機を協同して動作させることができるにもかかわらず、各電動機を独立して制御することができる。各増幅器150A、150B…150Nは、運動コントローラ102から受け取ったコマンド(すなわち命令)を実行するには十分の局所メモリに記憶されたファームウェアまたは他のソフトウェアコードを含むことができる。増幅器150A、150B…150Nは、それぞれ、例えば比例-積分-微分(PID)コントローラ、PIコントローラまたはトリプル-ループコントローラであってもよい。
【0025】
制御システム100は、運動コントローラ102、増幅器150ならびに電動機スタックおよびロボットリンケージ160の間の実時間フィードバック制御を可能にするだけの十分な応答性で、かつ、決定力のある通信ネットワーク110をさらに含むことができる。例えば、通信ネットワーク110は、1ミリ秒未満のデータ更新時間および10マイクロ秒未満の通信ジッタを含むことができる。したがって通信ネットワーク110は、Ethernet for Controll Automation Technology(EtherCAT)と無矛盾または類似であってもよい。
【0026】
通信ネットワーク110は、さらに、Controller Area Network open(CANopen)プロトコルまたは類似のマスタ-スレーブ通信モデルを使用することができる。1つまたは複数の実施形態による分散された運動ネットワークは分散された運動計画を許容し、その一方で運動コントローラ102(マスタ)からの命令を使用して緊密な連携を提供することができる。ソフトウェアプログラム/ファームウェアは、それぞれ運動コントローラ102(マスタ)およびアクチュエータドライバに記憶することができ、アクチュエータドライバは、本明細書では増幅器150(スレーブ)と称される。これは、マスタおよびスレーブの間の運動計画の分散を許容し、通信ネットワーク上で生じ得るデータ転送の量を少なくすることによってマスタおよび通信ネットワーク110に対する負担を軽減することができる。いくつかの実施形態では、分散された計画が参照される場合、本明細書における方法のうちの1つまたは複数を実施する処理デバイスまたはシステムは、運動コントローラ102と、それぞれ増幅器150A、150B…150N内に配置されているプロセッサ154A、154B…154Nのうちの1つまたは複数との組合せによって実施することができる。
【0027】
例えば、間隙較正に関して、運動コントローラ102(マスタ)によって生成される運動命令は、速度および加速度の定義済み拘束内における第1の位置(例えば安全な開始位置)と第2の位置(例えば期待されるコンタクト位置を越えるターゲット位置)との間の電動機160Aの移動を開始することができる。運動命令は、アクチュエータドライバ(スレーブ)の内部の運動プランナが受け取ることができ、運動プランナは、運動命令データに基づいて、瞬時瞬時に、第1の電動機160Aの運動を正確に記述する運動プロファイルを生成し、それにより速度および加速度の変化を制御して、例えば電動機および取り付けられた構成要素の望ましくない摩耗または振動をもたらし得る「ジャーク(jerk)」すなわち加速度の第1の導関数を制限する。
【0028】
したがって、命令された運動データを、通信ネットワーク110を介して伝送する必要はなく、単にアクチュエータドライバ中の運動プランナを起動する、より高水準の運動コマンドのみである。運動計画の分散された性質は、増幅器150A、電動機160Aおよび/またはロボットリンケージ164Aから運動コントローラ102へ、運動位置決め性能を損なうことなく、運動フィードバックデータを含む実時間処理データを伝送する(1ミリ秒当たり1サンプル、20ミリ秒当たり1サンプル、または何らかの他のサンプリングレートの間であってもよい)ための通信ネットワークトラフィックを解放する。また、この分散された制御は、間隙較正または他の機能のために、運動コントローラ102(マスタ)による複数の電動機の同時制御を同じく許容する。したがって本明細書において開示されている方法は、1つまたは複数の実施形態による運動計画可能アクチュエータドライバを有する運動制御システムの中で実施することができる。
【0029】
いくつかの実施形態では、運動コントローラ102は、電動機、したがってロボットリンケージを制御するために、位置コマンドおよびトルクコマンド(例えばフィードフォワードトルクコマンド)を複数の増幅器150に送る。実時間制御を提供するために、運動コントローラ102は、さらに、サンプリングレートに従う複数の時間ステップの各時間ステップで、一定の時間期間にわたって増幅器150からフィードバックデータ信号を受け取ることができる。各フィードバックデータ信号は、複数のロボットリンケージのうちの少なくとも1つの力、歪み、圧縮、摩擦、共鳴および/または位置を含む多くのハードウェアパラメータ値のうちのとりわけ瞬時トルク値(電動機の)ならびに瞬時速度および加速度値(ロボットリンケージの)を含むことができる。
【0030】
様々な実施形態では、運動コントローラ102は、それには限定されないがプロセッサ104を含み、プロセッサ104は、ロボットリンケージ経路計画および実行を参照して、本明細書において説明されている第1のフェーズを実施するためのグラフビルダ106、および本明細書における第2のフェーズを実施するための移動時間ミニマイザ108を含むハードウェアを含むか、またはグラフビルダ106および移動時間ミニマイザ108を含むファームウェアを含む命令を実行する。いくつかの実施形態では、グラフビルダ106および移動時間ミニマイザ108は、ロボットツールと結合した関節限界およびデカルト限界情報を含む関節空間に基づいて、本明細書において考察されているグラフ計画を実施し、次に、電動機スタックおよびロボットリンケージ160にコマンドを送ることによって実行するために、完成した経路計画を運動コントローラ102に提供するネットワーク化サーバなどの個別の計算デバイス上に配置される。
【0031】
運動コントローラ102は、例えばメモリ130(揮発性、不揮発性またはそれらの組合せ)をさらに含むことができ、プロセッサ104によって実行される命令がこの中に記憶される。メモリ130は、さらに、フィードバックデータ信号によって電動機スタックおよびロボットリンケージ160から受け取られた瞬時トルク値および瞬時ハードウェアパラメータ値の集合体をバッファすることができる。運動コントローラ102は、モニタ、ディスプレイスクリーン等などのディスプレイデバイス134、ディスプレイデバイス134内のオペレータの間の対話を容易にするユーザインターフェース136、通信インターフェース140、複数の入力/出力(I/O)デバイス144およびストレージデバイス148(例えば命令を記憶する非一時的コンピュータ可読媒体である1つまたは複数のディスクドライバおよび/または固体状態ドライバ)をさらに含むことができる。
【0032】
実施形態では、通信インターフェース140は、考察された増幅器150Aとの通信ネットワーク110を介した通信を容易にする。I/Oデバイス144は、キーボード、マウス、タッチパッド、マイクロホン等などの入力デバイス、ならびにスピーカ、ディスプレイデバイス134、プリンタ等などの出力デバイスを含むことができる。ストレージデバイス148は、ソフトウェアを記憶することができ、例えば、命令を記憶する非一時的コンピュータ可読ストレージ媒体であり、瞬時トルク値および瞬時ハードウェアパラメータ値の集合体のための永久ストレージとして作用することができ、この集合体に対してグラフビルダ106および移動時間ミニマイザ108が実施される。運動コントローラ102は、命令を実行して、本明細書において説明されている方法論および/または実施形態のうちの1つまたは複数を実施することができる。メモリが本明細書において参照されている場合、それは、メモリ130(例えばメインメモリ)またはストレージデバイス(例えば不揮発性長期間コンピュータストレージ)のいずれか、または両方を意味していることを理解されたい。
【0033】
運動コントローラ102は、パーソナルコンピュータ、サーバコンピュータ(例えば運動制御サーバ)、プログラム可能な論理制御装置(PLC)、マイクロコントローラ等などの計算デバイスであってもよく、および/またはそれらを含むことができる。運動コントローラ102は、マイクロプロセッサ、中央処理装置等などの1つまたは複数の処理デバイスを含むことができる。より詳細には、処理デバイスは、複雑命令セット計算(CISC)マイクロプロセッサ、縮小命令セット計算(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実現するプロセッサ、あるいは命令セットの組合せを実現するプロセッサであってもよい。また、処理デバイスは、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ等などの1つまたは複数の専用処理デバイスであってもよい。
【0034】
図2は、実施形態による、デカルト限界を侵害する移動に対して計画される、エンドエフェクタを含む、複数の関節を有するロボットアームのモデル200である。ロボットアームは、いくつかの事例では定位置と呼ぶことができる初期姿勢202を有することができる。ロボットアームは、ロボットを取り囲んでいる静止障害物10Aおよび動的障害物10Bによって画定されるデカルト限界10(
図1)によって拘束され得る。例えば静止障害物10Aは、移送チャンバ壁、ロードロック0、ビア1などの多数の他のチャンバまたは部屋の壁、およびロボットアームによる到達が可能な複数の処理チャンバ2~8、およびこれらのチャンバを接続している通路を含むことができる。動的障害物10Bは、作業空間における重畳を生成するロボットアームと共存する他の機械類またはロボットの移動部品であってもよく、ロボットは平行動作ロボットリンケージを含む。様々な実施形態では、ロボットを取り囲んでいる空間を構築している環境(ロボットアームを含む)は、デカルト限界10の再画定を必要とし、したがって、ロボットアームのために計画された安全な経路に対する更新を同じく必要とし得る、他のロボットまたはアセンブリが移動する道を含むオンザフライ再構成を経ることになり得る。さらに、説明されている図のいくつかでは、単一のエンドエフェクタが参照されているが、それは図解を分かり易くするためであり、多くの実施形態は1つまたは複数の追加(すなわち受動)エンドエフェクタを含むことになることを理解されたい。
【0035】
図2を参照すると、ロボットアームは、初期姿勢202から最終姿勢に移動するように命令されると、複数の関節およびエンドエフェクタ(
図1参照)がロボットアームの関節空間内の中間位置を通って同じく移動するように多数の中間位置を通過することができる。運動コントローラ102が初期姿勢202の開始点と最終姿勢の終了点との間の経路を直接線形補間すると、その経路は、デカルト限界を回避するためにその経路が手動で計画されない場合、デカルト限界10を侵害することになり得る。例えば、この事例では、完全な移動の第1の半分における第1の中間姿勢204はデカルト限界を侵害し、完全な移動の第2の半分における第2の中間姿勢208も同じくデカルト限界、例えば、静止障害物10Aの境界を侵害する。したがってデカルト限界を満足することを保証するために、画定された中間姿勢、したがって中間到達可能位置において、より大きい粒度で経路計画を実施することができる。
【0036】
図3は、実施形態による、デカルト限界を満足しつつ3つの関節の関節空間を通る可能経路のグラフ300であり、3つの関節のうちの1つはエンドエフェクタであってもよい。グラフ300はラジアンにおけるグラフであり、第1の軸(例えばY-軸)に沿った関節1(例えばエルボー)、第2の軸(例えばX-軸)に沿った関節2(例えばリスト)、および第3の軸(例えばZ-軸)に沿った関節3(例えばエンドエフェクタ)を示している。グラフ300は、
図1~
図2および
図4に示されているロボットアームの関節空間を構築している格子内の点を示している。
【0037】
関節空間は、従来の直交座標空間とは異なっており、三次元空間のX、YおよびZ座標を包含しているだけでなく、同じくrZ(θとも呼ばれる)を包含しており、このrZは、エンドエフェクタの移動方向を画定する正のX-軸を形成する角度である。グラフ300の関節空間は、関節限界の面積(例えば恐らく到達可能位置の外側の切り離される面積)などのロボットアームに対する除外面積、およびデカルト限界10の第1の面積30Aおよび第2の面積30Bなどのデカルト限界10の1つまたは複数の面積を画定している。
【0038】
示されている実施形態では、例えば、関節空間は、開始点301および終了点303を含み、これらは、通常、主エンドエフェクタの開始点および終了点として画定することができる。単純な線形補間が開始点301と終了点303との間で実施される場合、それらの間で計画された直線経路305は、デカルト限界10の第1の面積30Aおよび第2の面積30Bを通る。ロボットアームのデカルト限界10が満たされないため、この経路計画は不十分である。
【0039】
様々な実施形態では、運動コントローラ102(例えばグラフビルダ106)は、関節および1つまたは複数のエンドエフェクタのための複数の到達可能位置を識別し、したがって到達可能位置のうちのいくつかは1つまたは複数の受動エンドエフェクタを含むことができる。「到達可能」という用語は、その位置がロボットアームの関節のための関節限界を満足していることを示している。ロボットアームの完全な移動を複数の副移動に分割する粒度で複数の到達可能位置を識別することができる。例えば、関節の距離の4ないし6ラジアン内で、到達可能位置の粒度は、7個の到達可能位置と15個の到達可能位置との間であってもよい(示されている到達可能位置は約8個である)。識別される経路毎の到達可能位置が少なすぎる場合、計画された経路がデカルト限界を満足しない領域を紛失する危険が存在する。識別される経路毎の到達可能位置が多すぎる場合、グラフを作成し、グラフ最適化を実施し、後で経路最適化(以下で考察される)を実施するための計算時間が著しく長くなる。
【0040】
運動コントローラ102(例えばグラフビルダ106)は、到達可能位置をもたらす関節コンビネーションに基づいて、関節空間内のロボットアームのデカルト限界を同じく満足する到達可能位置を表すためのノード(開始点301を除くグラフ上のドット)を含むグラフ313を作成することができる。運動コントローラ102は、開始点301と終了点303との間の、デカルト限界面積30Aおよび30Bを同じく満足する複数の経路を完成するノードのうちの最も近隣のノード間を線形補間するグラフにエッジを追加することができる。示されているように、
図3のグラフ313は、各ノードとそれぞれのノードの複数の最も近隣のノードの間のエッジを表す極めて多数のこれらのノードおよびラインを含む。この方法によれば、運動コントローラ102は、開始点301と終了点303との間の移動を完了するための関節およびエンドエフェクタの副移動を可能にするノードを通る複数の経路を識別することができる。
【0041】
運動コントローラ102は、開示されている実施形態の第1のフェーズを同じく使用して、例えば、最も近隣のノードの関節位置値間のユークリッドノルムを使用して実施されたグラフのエッジの距離を計算することができる。運動コントローラ102は、次に、開始点301と終了点303の間のノードを通る複数の最短経路を決定するために、グラフ最適化アルゴリズム(Dijkstraグラフアルゴリズム、A*探求アルゴリズムまたは他のグラフ最適化アルゴリズムなど)をグラフ313に対して実行することができる。
【0042】
様々な実施形態では、運動コントローラ102は、次に、グラフ313を介して、複数の最短経路の中から、開始点301と終了点303の間の主エンドエフェクタの移動時間を最短にし、その一方で複数の関節に対するトルク制限、および1つまたは複数のエンドエフェクタに対する加速制限を満足する経路315を選択することができる。
図3のグラフ313におけるこの経路315は、選択された経路を示すためにより黒い線で強調されている。例えば、所与の最短経路のうちの1つは、最短経路のうちの最も短い
距離を有する経路ではないかもしれないが、それでも、エンドエフェクタにおけるより速い平均速度、より大きい関節トルク値および/またはより速い達成可能加速度を有することができるため、依然として最短の移動時間を有している。したがって経路最適化解析に力学的または運動学的拘束(速度、加速度およびトルクなど)を組み込みことにより、デカルト限界を回避し、かつ、依然として移動時間を最短にするために、最良の最短経路を識別することができる。
【0043】
いくつかの実施形態では、グラフ最適化(すなわち第1のフェーズ)を実施して複数の最短経路を識別するのに要する時間は数秒程度であり、一方、経路最適化を実施して経路315を選択する(第2のフェーズで)のに要する時間は数分程度である。経路最適化を実施する際に、運動コントローラ102による解析のための経路を最短経路に少なくすることにより、経路最適化を実施するために必要な時間を著しく短くすることができる。グラフ最適化および経路最適化は、いずれもオフラインで、かつ、ロボットを動作させる前に実施することができる。
【0044】
追加実施形態では、メモリコントローラ102は、複数の(最短)経路のうちの、追加終了点への移動時間を最短にする追加経路を同じく識別することができる。次に、ロボットがロボットの定位置以外で起動することに応答して、運動コントローラ102は、エンドエフェクタの関節空間における場所を決定することができ、追加終了点のうちの、その場所に最も近いものを決定することができる。運動コントローラ102は、次に、その場所に基づいて複数の追加経路のうちのある追加経路を選択し、かつ、その選択された追加経路を介して定位置へ戻るようにロボットアームを導くことができる。この方法によれば、運動コントローラ102は、予め計画された安全で、かつ、有効な経路を使用して、ロボットアームを定位置、例えば開始点301へ復帰させることができる。
【0045】
図4は、実施形態による、デカルト限界を満足する移動に対して計画される、複数の関節およびエンドエフェクタを有するロボットアームのモデル400である。
図4のモデル400は
図2のモデル200と類似しており、初期姿勢202と同じ初期姿勢402を有している。しかしながら
図2のモデル200とは異なり、
図4のモデル400は、ロボットアームの完全な移動の第1の半分における第1の中間姿勢404、およびロボットアームの完全な移動の第2の半分における第2の中間姿勢408の2つの中間姿勢を示している。これらの2つの中間姿勢は、それぞれ、デカルト限界10を侵害する代わりにデカルト限界10を満足しており、
図3のグラフ313で決定された経路315に沿って配置されている。さらに、経路315に沿ったすべての他の中間姿勢(図解を単純にするために示されていない)も同様にデカルト限界10を満足している。
【0046】
図5Aは、実施形態による、ロボットアームの3つの関節に対する異なる台形速度プロファイルの例示的プロット500Aである。プロット500Aは、ロボットアームの複数の関節に対する速度(y-軸)対時間(s-軸)をプロットしたものである。例えば、関節1は、第1の台形速度プロファイル503Aを有することができ、関節2は、第2の台形速度プロファイル505Aを有することができ、関節3(エンドエフェクタ)は、第3の台形速度プロファイル507Aを有することができ、それぞれ3つの関節の計画された制御毎にある程度変化している。これらの台形速度プロファイルのエッジ(例えば結合移動の開始および終了)が揃っていない場合、ロボットアームは直線で移動しない。したがって異なる関節に対する速度制限の変化は、速度制限が変化しない場合にはあり得ない、グラフ313のエッジがデカルト限界の中へ移動する原因になり、あるいはデカルト限界の中へ移動し得るエッジがこのような非線形移動のためにデカルト限界の中へ移動しないことになる。したがって動的基準の変化によって実施される経路最適化は、デカルト限界の観点で実施することも可能である。しかしながらいくつかの実施形態では、デカルト限界チェック内に尤度を含むことによってこの問題を解決することができ、デカルト限界の個別の他のチェックは不要であり得る。
【0047】
図5Bは、実施形態による、ロボットアームの3つの関節の台形速度プロファイル(
図5A)に対応する異なる加速プロファイルの例示的プロット500Bである。プロット500Bは、エンドエフェクタの加速度(y-軸)対時間(x-軸)をプロットしたものである。移動を開始するための初期加速の後に一定の速度が続き、ロボットアームを停止させるための最終減速で終了していることに留意されたい。加速および減速の階段に基づく形状は、実際にはもっと変化しており、したがってより湾曲した形状を有しているが、単に説明の目的で、この方法で示されているにすぎない。
【0048】
図5Bをさらに参照すると、関節1は第1の加速プロファイル503Bを有することができ、関節2は第2の加速プロファイル505Bを有することができ、関節3(エンドエフェクタ)は第3の加速プロファイル507Bを有することができる。ロボットアームのベースにより近い関節はより速い加速制限およびより遅い速度制限を有し、一方、ロボットアームのべースから遠い関節はより遅い加速制限およびより速い速度制限を有していることに留意されたい。したがって関節1は関節3(エンドエフェクタ)よりも速い加速制限を有し、関節3は関節1よりも速い速度制限を有している。関節3すなわちエンドエフェクタに対する加速制限は、とりわけ、ロボットアーム移動を実行している間、基板がエンドエフェクタをフライオフするのを防止することができる場合に適用することができる。
【0049】
様々な実施形態では、運動コントローラ102(例えば移動時間ミニマイザ108)は、複数の関節のうちのある関節の各移動の速度プロファイルに対する速度制限(例えば最高速度)および加速制限(最大加速度)などのプロファイル移動パラメータを、最も近隣の到達可能位置間で、複数の(最短)経路を介して、無作為に変更する。一実施形態では、これらの速度プロファイルは台形速度プロファイルであるが、
図7Bを参照して考察されるように他の速度プロファイルが同じく想定されている。この無作為変更が実施されている間、運動コントローラ102は、さらに、ロボットアームを移動させる1つまたは複数の電動機に対するトルク制限が、変更される速度制限および加速制限の観点から満たされていることを検証することができる。この方法によれば、運動コントローラ102は、移動が高速であり、その一方で電動機に対するトルクまたはエンドエフェクタの加速度を超過しない最適組合せの発見を探求することができる。これらのトルク制限は、例えば各関節に対して独立して適用することができる。様々な実施形態では、運動コントローラ102は、エンドエフェクタの最大加速制限が同じく満たされていることを検証することができる。
【0050】
いくつかの実施形態では、運動コントローラ102は、第1の経路315(
図3)に対する最短移動時間に収束するまで、複数の関節の各関節に対する速度制限および加速制限の無作為変更を反復して実施し、その一方で最短移動時間の追跡を維持することができる。
図6は、実施形態による、7回の反復の後、ロボットアームの移動時間が10秒未満に最短化される、移動時間最適化のプロット600である。プロット600に示されている反復の数および移動時間は、単に説明のための一例にすぎず、同じまたは異なる最短移動時間を達成するための追加反復またはもっと少ない反復が想定されている。
【0051】
図7Aは、様々な実施形態による、複数の関節およびエンドエフェクタがデカルト限界を満足する、ロボット関節空間を通る最短経路を決定するための方法700Aのフローチャートである。方法700Aは、ハードウェア(例えば処理デバイス、回路機構、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路等)、ソフトウェア(例えば処理デバイス上で走り、または実行される命令)またはそれらの組合せを含むことができる処理論理によって実施することができる。いくつかの実施形態では、方法700Aは、運動コントローラ102(
図1)によって、または処理デバイスを有する他の計算システムによって実施される。図には特定のシーケンスまたは順序で示されているが、特に明記されていない限り、プロセスの順序は修正することが可能である。したがって示されている実施形態は単なる例として理解されるべきであり、示されているプロセスは異なる順序で実施することができ、いくつかのプロセスは同時に実施することができる。さらに、様々な実施形態では1つまたは複数のプロセスを省略することができる。したがって必ずしもすべてのプロセスがすべての実施形態に必要であるわけではない。他のプロセスフローも可能である。
【0052】
操作710で、処理論理は、ロボットアームの関節空間内で、1つまたは複数のエンドエフェクタの上に配置された基板を移送するためのロボットアームの完全な移動のために、1つまたは複数のエンドエフェクタの開始点および終了点を決定する。
【0053】
操作715で、処理論理は、複数の関節の関節レンジ内の関節位置の格子から、第1の粒度を使用して、複数の関節および1つまたは複数のエンドエフェクタによる複数の到達可能位置を識別する。格子は、
図3を参照して考察したように、関節空間内に存在し、開始点および終了点を含む。第1の粒度は、複数の関節のうちのある関節の距離の4ないし6ラジアン内で、7個と15個との間の到達可能位置を含むことができる。
【0054】
操作720で、処理論理は、複数の到達可能位置のそれぞれの到達可能位置に対する関節位置コンビネーションに基づいて、関節空間内のロボットアームのデカルト限界を同じく満足する複数の到達可能位置を表すためのノードを含むグラフを作成する。
【0055】
操作725で、処理論理は、開始点と終了点との間の複数の経路を完成するノードのうちの最も近隣のノード間を補間するエッジをグラフに追加し、エッジは同じくデカルト限界を満足する。
【0056】
操作730で、処理論理は、処理デバイスによって、例えば最も近隣のノードの関節位置値間のユークリッドノルムを使用してグラフのエッジの距離を計算する。
【0057】
操作735で、処理論理は、開始と終了点の間のノードを通る複数の最短経路または最低コスト経路のうちの1つを決定するために、グラフ最適化アルゴリズム(DijkstraグラフアルゴリズムまたはA
*探求アルゴリズムなど)をグラフに対して実行する。考察したように、最低コスト経路は、さらに、コスト関数を距離計算に統合することができ(例えば重み付けされた経路を使用して)、その距離計算は、コスト関数および様々な基準に応じて異なる経路に報酬を与え、または罰則を与える。例えば、コスト関数は、とりわけ短い経路および/または直線の経路に報酬を与え、とりわけ長い経路に罰則を与え、および/または曲率を有する経路に対しては、曲率の程度に応じて罰則を与える。さらに、コスト関数は、より遅い速度を見ることが期待される経路に罰則を与え、より速い速度を見ることが期待される経路に報酬を与えることができる。異なるコスト関数を使用することにより、最短経路は、最短移動時間と結合した最短経路をより近く近似する。グラフ最適化のために異なるコスト関数を使用することにより、考慮すべき複数の最短経路の数が少なくなり、したがって第2のフェーズ(
図7Bを参照して考察される)の計算効率を改善することができる。いくつかの実施形態は、第2のフェーズを省略して、最短移動時間を直接計算することができる。
【0058】
図7Bは、様々な実施形態による、最短経路(
図7A)のうちで移動時間を最短化することができる最短経路を決定するための方法700Bのフローチャートである。方法700Bは、ハードウェア(例えば処理デバイス、回路機構、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路等)、ソフトウェア(例えば処理デバイス上で走り、または実行される命令)またはそれらの組合せを含むことができる処理論理によって実施することができる。いくつかの実施形態では、方法700Bは、運動コントローラ102(
図1)によって、または処理デバイスを有する他の計算システムによって実施される。図には特定のシーケンスまたは順序で示されているが、特に明記されていない限り、プロセスの順序は修正することが可能である。したがって示されている実施形態は単なる例として理解されるべきであり、示されているプロセスは異なる順序で実施することができ、いくつかのプロセスは同時に実施することができる。さらに、様々な実施形態では1つまたは複数のプロセスを省略することができる。したがって必ずしもすべてのプロセスがすべての実施形態に必要であるわけではない。他のプロセスフローも可能である。
【0059】
操作755で、処理論理は、開始点と終了点との間の複数の最短経路のうちの、開始点と終了点との間の主エンドエフェクタの移動時間を最短にする経路(例えば最適移動経路)を選択する。処理論理は、さらに、関節空間を通る経路を使用して基板を移送するようにロボットアームを導くことができる。
【0060】
操作755を実行している間、処理論理は、操作760で、さらに、複数の関節のうちのある関節の各移動の速度プロファイルに対する速度制限および加速制限を最も近隣のノード間で、複数の最短経路を介して、無作為に変更することができる。一実施形態では、速度プロファイルは、
図5A~
図5Bを参照して考察された台形プロファイルである。代替実施形態では、速度プロファイルは、SCurve、Jerk制限、Quintic多項式(QCurve)、例えば5次多項式、または同様の速度プロファイルである。
【0061】
操作765で、処理論理は、ロボットアームを移動させる1つまたは複数の電動機に対するトルク制限が、変更される速度制限および加速制限の観点から満たされていることを検証する。これらのトルク制限は、例えば複数の関節に適用することができる。操作770で、処理論理は、1つまたは複数のエンドエフェクタの最大加速制限が満たされていることを検証する。
【0062】
図8は、様々な実施形態による、デカルト限界を満足し、かつ、移動時間を最短化するロボット関節空間を通る経路上のロボットアームの移動を計画し、かつ、実行する方法800のフローチャートである。方法800は、ハードウェア(例えば処理デバイス、回路機構、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路等)、ソフトウェア(例えば処理デバイス上で走り、または実行される命令)またはそれらの組合せを含むことができる処理論理によって実施することができる。いくつかの実施形態では、方法800は、運動コントローラ102(
図1)によって、または処理デバイスを有する他の計算システムによって実施される。図には特定のシーケンスまたは順序で示されているが、特に明記されていない限り、プロセスの順序は修正することが可能である。したがって示されている実施形態は単なる例として理解されるべきであり、示されているプロセスは異なる順序で実施することができ、いくつかのプロセスは同時に実施することができる。さらに、様々な実施形態では1つまたは複数のプロセスを省略することができる。したがって必ずしもすべてのプロセスがすべての実施形態に必要であるわけではない。他のプロセスフローも可能である。
【0063】
操作810で、処理論理は、ロボットアームの関節空間内で、基板を移送するためのロボットアームの完全な移動のために、1つまたは複数のエンドエフェクタの開始点および終了点を決定する。
【0064】
操作815で、処理論理は、複数の関節および1つまたは複数のエンドエフェクタのための関節空間に関して、到達可能位置およびそれらの到達可能位置間の副経路のグラフを作成する。到達可能位置および副経路は関節空間内のデカルト限界を満足し、到達可能位置は、完全な移動をロボットアームの複数の副移動に分割する粒度で識別される。例えば複数の関節のうちのある関節の距離の4ないし6ラジアン内で、到達可能位置の粒度は7個の到達可能位置と15個の到達可能位置の間である。
【0065】
操作820で、処理論理は、グラフ最適化アルゴリズムをグラフに対して実行することにより、それぞれ副経路のグループからなる複数の経路を決定し、副経路は開始点と終了点との間の最短距離または最低コストのうちの1つを有する。異なるコスト関数を使用した最低コスト経路の決定については既に考察された。
【0066】
操作825で、処理論理は、グラフを介して、複数の経路の中から、開始点と終了点との間の1つまたは複数のエンドエフェクタの移動時間を最短にし、その一方で複数の関節に対するトルク制限、およびエンドエフェクタに対する加速制限を満足する経路(例えば最適移動経路)を選択する。一実施形態では、1つまたは複数のエンドエフェクタは主エンドエフェクタおよび受動エンドエフェクタを含む。さらに、経路を選択するために、処理論理は、さらに、受動エンドエフェクタおよび主エンドエフェクタが加速制限を満足することを保証し、その一方で主エンドエフェクタの移動時間を最短にする。
【0067】
操作830で、処理論理は、任意選択で、関節空間を通る経路を使用して基板を移送するようにロボットアームを導く。
【0068】
以上の説明は、本開示のいくつかの実施形態についての良好な理解を提供するために、特定のシステム、構成要素、方法等の例などの多くの特定の詳細を示している。しかしながら本開示の少なくともいくつかの実施形態は、これらの特定の詳細がなくても実践することができることは当業者には明らかであろう。他の実例では、よく知られている構成要素または方法は、本開示を不必要に曖昧にすることを回避するために詳細には説明されていないか、あるいは単純なブロック図形式で提示されている。したがって示されている特定の詳細は単に例示的なものにすぎない。特定の実装態様はこれらの例示的な詳細から変化し得るが、依然として本開示の範囲内にあることが企図されている。
【0069】
本明細書全体を通して、「一実施形態」または「実施形態」に対する参照は、実施形態に関連して説明されている特定の特徴、構造または特性は、少なくとも1つの実施形態に含まれていることを意味している。したがって本明細書全体を通した様々な場所における「一実施形態では」または「実施形態では」という語句の出現は、必ずしもすべてが同じ実施形態を参照しているわけではない。さらに、「または」という用語には、排他的な「または」ではなく、包含的な「または」を意味することが意図されている。「約」または「ほぼ」という用語が本明細書において使用されている場合、その使用には、提示されている公称値の正確性が±10%内であることを意味することが意図されている。
【0070】
本明細書における方法の操作は、特定の順序で示され、かつ、説明されているが、各方法の操作の順序は、変更が可能であり、したがって、特定の操作を少なくとも部分的に他の操作と同時に実施することができるよう、特定の操作を逆の順序で実施することができる。別の実施形態では、全く異なる操作の命令または副操作を断続方式または交互方式で実施することも可能である。
【0071】
上記説明に、制限的なものとしてではなく、例証的なものとして意図されていることが理解される。上記説明を読み、かつ、理解すれば、当業者には多くの他の実施形態が明らかであろう。したがって、本開示の範囲は、添付の特許請求の範囲、ならびにこのような特許請求の範囲に権利が与えられる均等物の全範囲を参照して決定されるものとする。