(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-05
(45)【発行日】2024-07-16
(54)【発明の名称】スルービーム自動ティーチング
(51)【国際特許分類】
B25J 9/22 20060101AFI20240708BHJP
【FI】
B25J9/22 A
(21)【出願番号】P 2021545891
(86)(22)【出願日】2020-02-06
(86)【国際出願番号】 US2020017097
(87)【国際公開番号】W WO2020163657
(87)【国際公開日】2020-08-13
【審査請求日】2023-02-01
(32)【優先日】2019-02-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515151756
【氏名又は名称】ヤスカワ アメリカ インコーポレイティッド
【氏名又は名称原語表記】Yaskawa America, Inc.
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100142871
【氏名又は名称】和田 哲昌
(74)【代理人】
【識別番号】100094743
【氏名又は名称】森 昌康
(72)【発明者】
【氏名】ジョン チャールズ ロジャース
【審査官】臼井 卓巳
(56)【参考文献】
【文献】国際公開第2016/178300(WO,A1)
【文献】国際公開第2003/022534(WO,A1)
【文献】特表2009-506518(JP,A)
【文献】米国特許出願公開第2017/0291302(US,A1)
【文献】国際公開第2013/080500(WO,A1)
【文献】特開2007-038360(JP,A)
【文献】国際公開第2007/010725(WO,A1)
【文献】米国特許出願公開第2005/0021177(US,A1)
【文献】特開昭63-106804(JP,A)
【文献】特開昭63-300883(JP,A)
【文献】特開2003-220586(JP,A)
【文献】特開2004-148433(JP,A)
【文献】国際公開第2016/189565(WO,A1)
【文献】米国特許出願公開第2005/0034288(US,A1)
【文献】米国特許出願公開第2007/0065144(US,A1)
【文献】米国特許出願公開第2016/0318182(US,A1)
【文献】独国特許出願公開第102009016811(DE,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/08-19/00
G05B 19/42
H01L 21/02-21/68
(57)【特許請求の範囲】
【請求項1】
ワークステーション内の第1の位置に第1のピンを提供する工程と、
多関節ロボットを前記ワークステーションに隣接する領域に提供する工程であって、前記多関節ロボットは座標系を有し、前記多関節ロボットは、アームと、前記アームに対して旋回するように構成されたエンドエフェクタとを有し、前記エンドエフェクタは、第1突出部材および第2突出部材を有するワーク受け部を有し、前記エンドエフェクタは、前記第1突出部材および前記第2突出部材の一方に設けられた発光器を含むスルービームセンサを有し、前記スルービームセンサは、前記第1突出部材および前記第2突出部材の他方に設けられた受光器をさらに含み、前記スルービームセンサは、前記発光器と前記受光器との間に物体が存在するときを検知するように構成される工程と、
前記スルービームセンサが前記第1のピンを検知する検知動作を実行するように前記多関節ロボットを作動させる工程であって、前記検知動作は、検知された位置および向きデータを収集するために前記第1のピンの検知ごとに前記エンドエフェクタの位置および/または向きが変化する間に実行され、前記検知動作は、前記多関節ロボットが前記スルービームセンサを前記第1のピンにわたって複数の平行移動をさせるときに前記第1のピンが前記発光器と前記受光器との間の異なる距離に位置するように実行される工程と、
前記多関節ロボットの前記座標系に対する前記第1のピンの前記第1の位置を決定するために、前記検知された位置および配向データに対して計算を行う工程と、
を備え、
前記複数の平行移動は、
前記第1のピンが前記発光器と前記受光器が第1の距離になるように前記多関節ロボットが前記スルービームセンサを前記第1のピンを完全に跨ぐように第1の経路に沿った第1の方向に動かす第1の移動と、
前記多関節ロボットが前記スルービームセンサを前記第1のピンを完全に跨ぐように前記第1の方向と反対の第2方向に動かす第2の移動と、
前記第1のピンが前記発光器と前記受光器が前記第1の距離と異なる第2の距離になるように前記多関節ロボットが前記スルービームセンサを前記第1のピンを完全に跨ぐように前記第1の経路に対して平行な第2の経路に沿った第3の方向に動かす第3の移動とを含む、多関節ロボットを教示する方法。
【請求項2】
前記エンドエフェクタは、前記アームに対して旋回軸を中心に旋回するように構成され、
前記方法は、前記検知された位置および向きデータに対して計算を実行して、前記発光器の光ビームに対して垂直な方向に前記旋回軸まで延在する距離と、前記エンドエフェクタの角度誤差を含む、前記多関節ロボットの前記座標系に対する前記光ビームに対して垂直な方向の角度とを決定する工程をさらに含む、
請求項1に記載の方法。
【請求項3】
前記アームに対して旋回するように構成された前記エンドエフェクタの旋回軸上に光学ターゲットを提供する工程と、
前記多関節ロボットの前記座標系に対して固定された位置に走査装置を設ける工程と、
前記多関節ロボットが運動範囲を通って移動するときに前記光学ターゲットの位置データを測定するために前記走査装置を使用する工程と、
前記
多関節ロボット
の前記アームのリンクのリンク長を決定するために、前記位置データに対して回帰分析を実行する工程と、
を備える請求項1に記載の方法。
【請求項4】
前記
多関節ロボット
の前記アームの前記リンクを回転させるためのモータのそれぞれのエンコーダ上に前記リンク長を記憶する工程を備える請求項3に記載の方法。
【請求項5】
前記ワークステーションは、前記第1のピンの前記第1の位置に対して所定の位置および配向に作業場所を有し、
前記方法は、前記第1のピンの前記第1の位置を使用して、前記多関節ロボットの前記座標系に対する前記作業
場所を決定する工程をさらに含む、
請求項1に記載の方法。
【請求項6】
前記作業
場所は、水平面において前記第1のピンの前記第1の位置と重複する、請求項5に記載の方法。
【請求項7】
前記多関節ロボットは、
前記ワークステーションに隣接する領域に取り付けられた基部と、
第1旋回軸を中心として前記基部に旋回可能に取り付けられた第1アーム部材と、第2旋回軸を中心として前記第1アーム部材に枢動可能に取り付けられた第2アーム部材と、第3の旋回軸を中心として前記第2アーム部材に枢動可能に取り付けられた第3アーム部材と、を有する前記アームと、を備え、
前記エンドエフェクタが、第4旋回軸の周りに旋回可能に前記第3アーム部材に装着される、
請求項1に記載の方法。
【請求項8】
前記検知動作は、前記エンドエフェクタを第1の向きに向けた状態で、前記多関節ロボットが前記スルービームセンサを前記第1のピンを横切って第1の直線移動で移動させる第1の検知動作と、
前記エンドエフェクタを前記第1の向きに向けた状態で、前記多関節ロボットが前記スルービームセンサを前記第1のピンを横切って第2の直線移動で移動させる第2の検知動作と、
を有し、
前記第1の直線移動と前記第2の直線移動とは前記エンドエフェクタの前記平行移動を構成する、
請求項1に記載の方法。
【請求項9】
前記第1の検知動作において、前記第1のピンは、前記スルービームセンサが前記第1のピンを横切って移動したときに前記発光器と前記受光器との間の第1の距離であり、
前記第2の検知動作において、前記第1のピンは、前記スルービームセンサが前記第1のピンを横切って移動されるときに前記発光器と前記受光器との間の第2の距離であり、前記第2の距離は前記第1の距離とは異なる、
請求項8に記載の方法。
【請求項10】
前記検知動作は、
前記エンドエフェクタを前記第1の向きとは異なる第2の向きに向けた状態で、前記多関節ロボットが前記スルービームセンサを前記第1のピンを横切って第3の直線移動で移動させる第3の検知動作と、
前記多関節ロボットが、前記エンドエフェクタを前記第2の向きに向けた状態で、前記多関節ロボットが前記スルービームセンサを前記第1のピンを横切って第4の直線移動で移動させる第4の検知動作と、
を有し、
前記第3の直線移動と前記第4の直線移動とは前記エンドエフェクタの平行直線移動を構成し、
前記第3の直線移動と前記第4の直線移動とは前記第1の直線移動と前記第2の直線移動と非平行である、
請求項8に記載の方法。
【請求項11】
前記検知動作を行うために前記多関節ロボットを動作させることは、
最初に、前記エンドエフェクタを前記第1のピンの所定の近似位置に移動させる工程と、
前記スルービームセンサが前記第1のピンを検知するまで、前記第1のピンの前記所定の近似位置の周囲の領域内で前記エンドエフェクタを移動させる工程と、
を含む請求項1に記載の方法。
【請求項12】
ワークステーション内の第2の位置に第2のピンを提供する工程と、
前記スルービームセンサが前記第2のピンを検知するさらなる検知動作を実行するように前記多関節ロボットを動作させる工程であって、前記さらなる検知動作は、さらなる検知された位置および向きデータを収集するために前記第2のピンの検知ごとに前記エンドエフェクタの前記位置および/または前記向きが変化する間に実行され、前記さらなる検知動作は、前記多関節ロボットが前記スルービームセンサを前記第2のピンにわたって移動させるときに前記第2のピンが前記発光器と前記受光器との間の異なる距離に位置するように実行される工程と、
前記多関節ロボットの前記座標系に対する前記第2のピンの前記第2の
位置を決定するために、前記さらに検知された位置および配向データに対して計算を行う工程と、
を含む請求項1に記載の方法。
【請求項13】
前記ワークステーションは、前記第1のピンの前記第1の位置および前記第2のピンの前記第2の位置に対して所定の位置および配向で作業場所を有し、
前記方法は、前記第1のピンの前記第1の位置および前記第2のピンの前記第2の位置を使用して、前記多関節ロボットの前記座標系に対する前記作業
場所を決定する工程をさらに含む、
請求項12に記載の方法。
【請求項14】
前記多関節ロボットを作動させて20回以上の検知動作を行い、
前記検知された位置および向きデータに対して計算を実行することは、前記検知された位置および向きデータに対して回帰分析を実行することを含む、
請求項1に記載の方法。
【請求項15】
前記検知された位置および配向データに対して計算を実行する工程は、前記検知された位置および配向データに対して最小二乗近似および数値探索を実行して、前記多関節ロボットの前記座標系に対する前記第1のピンの前記第1の位置を決定する工程を含む、
請求項1に記載の方法。
【請求項16】
前記検知動作は、
前記スルービームセンサが前記第1のピンを横切って第1の方向に移動するように、前記エンドエフェクタを前記第1のピンから離れるように移動させ、
前記スルービームセンサが前記第1のピンを横切って前記第1の方向とは反対の第2の方向に移動するように、前記エンドエフェクタを前記第1のピンに向かって移動させることにより実施され、
前記方法は、前記エンドエフェクタを前記第1のピンから離れるように移動させ、前記エンドエフェクタを前記第1のピンに向かって移動させることによって得られた前記検知された位置および配向データを使用して、前記スルービームセンサにおけるヒステリシス誤差を決定する工程をさらに含む、
請求項1に記載の方法。
【請求項17】
アームと、
前記アームに対して枢動するように構成されたエンドエフェクタであって、第1突出部材及び第2突出部材を有するワークピースレシーバを有するエンドエフェクタと、
前記アームおよび前記エンドエフェクタを移動させるように構成される1つ以上のモータと、
前記エンドエフェクタに設けられ、前記第1突出部材及び前記第2突出部材の一方に設けられた発光器と、前記第1突出部材及び前記第2突出部材の他方に設けられた受光器とを有し、前記発光器と前記受光器との間に物体が存在することを検知するスルービームセンサと、
多関節ロボットの座標系を定義する少なくとも1つのプロセッサを含むコントローラであって、前記少なくとも1つのプロセッサは、前記1つ以上のモータを制御して、前記アームおよび前記エンドエフェクタを移動させて、検知動作を実行するように構成され、前記検知動作は、前記エンドエフェクタの位置および/または向き
が第1のピンの各検知に対して変化している間に実行され、検知された位置および向きデータを収集し、前記検知動作は、前記第1のピンを横切って前記スルービームセンサの複数の平行移動をさせる際に、前記第1のピンが前記発光器と前記受光器との間の異なる距離に位置するように実行され、前記少なくとも1つのプロセッサは、前記検知された位置および向きデータに対して計算を実行して、前記座標系に対する前記第1のピン
の第1の位置を決定するように構成される、コントローラと、
を備え、
前記複数の平行移動は、
前記第1のピンが前記発光器と前記受光器が第1の距離になるように前記スルービームセンサを前記第1のピンを完全に跨ぐように第1の経路に沿った第1の方向に動かす第1の移動と、
前記スルービームセンサを前記第1のピンを完全に跨ぐように前記第1の方向と反対の第2方向に動かす第2の移動と、
前記第1のピンが前記発光器と前記受光器が前記第1の距離と異なる第2の距離になるように前記スルービームセンサを前記第1のピンを完全に跨ぐように前記第1の経路に対して平行な第2の経路に沿った第3の方向に動かす第3の移動とを含む、
多関節ロボット。
【請求項18】
前記エンドエフェクタは、前記アームに対して旋回軸を中心に旋回するように構成され、
前記少なくとも1つのプロセッサは、前記検知された位置および配向データに対して計算を実行して、前記旋回軸までの前記発光器の光ビームに垂直な方向に延在する距離と、前記エンドエフェクタの角度誤差を含む、前記多関節ロボットの前記座標系に対する前記光ビームに垂直な方向の角度とを決定するようにさらに構成される、
請求項17に記載の多関節ロボット。
【請求項19】
前記アームに対して旋回するように構成された前記エンドエフェクタの旋回軸上に設けられた光学ターゲットと、
前記多関節ロボットの前記座標系に対して固定された位置にある走査装置であって、前記多関節ロボットが動作範囲を通って移動するときに前記光学ターゲットの位置データを測定するように構成された走査装置と、をさらに備え、
前記少なくとも1つのプロセッサは、前
記アームのリンクのリンク長を決定するために、前記位置データに対して回帰分析を実行するようにさらに構成される、
請求項17に記載の多関節ロボット。
【請求項20】
前記リンク長は、前
記アームの前記リンクを回転させるための前記1つ以上のモータのそれぞれのエンコーダに記憶される、
請求項19に記載の多関節ロボット。
【請求項21】
ワークステーションに隣接する領域に取り付けられた基部をさらに備え、
前記アームは、
第1の旋回軸を中心として前記基部に旋回可能に取り付けられた第1アーム部材と、
第2の旋回軸を中心として前記第1アーム部材に旋回可能に取り付けられた第2アーム部材と、
第3の旋回軸を中心として前記第2アーム部材に旋回可能に取り付けられた第3アーム部材とを有し、
前記エンドエフェクタは、第4の旋回軸を中心として前記第3アーム部材に旋回可能に取り付けられる、
請求項17に記載の多関節ロボット。
【請求項22】
前記少なくとも1つのプロセッサは、前記多関節ロボットの1つまたは複数の前記モータを制御して、
前記エンドエフェクタを第1の向きに向けた状態で、前記スルービームセンサを前記第1のピンを横切って第1の直線移動で移動させる第1の検知動作と、
前記エンドエフェクタを前記第1の向きに向けた状態で、前記スルービームセンサを前記第1のピンを横切って第2の直線移動で移動させる第2の検知動作と、を前記多関節ロボットに実施させるよう動作させ、
前記第1の検知動作において、前記第1のピンは、前記スルービームセンサが前記第1のピンを横切って移動したときに前記発光器と前記受光器との間の第1の距離であり、
前記第2の検知動作において、前記第1のピンは、前記スルービームセンサが前記第1のピンを横切って移動されるときに前記発光器と前記受光器との間の第2の距離であり、前記第2の距離は前記第1の距離とは異なり、
前記第1の直線移動と前記第2の直線移動とは前記エンドエフェクタの前記平行移動を構成する、
請求項17に記載の多関節ロボット。
【請求項23】
前記少なくとも1つのプロセッサは、前記多関節ロボットの前記1つまたは複数のモータを制御して、
前記エンドエフェクタを第1の向きに向けた状態で、前記スルービームセンサを前記第1のピンを横切って第1
の直線移動で移動させる第1の検知動作と、
前記エンドエフェクタを前記第1の向きに向けた状態で、前記スルービームセンサを前記第1のピンを横切って第2
の直線移動で移動させる第2の検知動作と、
前記エンドエフェクタを前記第1の向きとは異なる第2の向きに向けた状態で、前記スルービームセンサを前記第1のピンを横切って第3
の直線移動で移動させる第3の検知動作と、
前記エンドエフェクタを前記第2の向きに向けた状態で、前記スルービームセンサを前記第1のピンを横切って第4
の直線移動で移動させる第4の検知動作と、
を前記多関節ロボットに実施させるよう動作させ、
前記第1の直線移動と前記第2の直線移動とは前記エンドエフェクタの前記平行移動を構成し、
前記第3の直線移動と前記第4の直線移動とは前記エンドエフェクタの平行直線移動を構成し、
前記第3の直線移動と前記第4の直線移動とは前記第1の直線移動と前記第2の直線移動と非平行である、
請求項17に記載の多関節ロボット。
【請求項24】
前記少なくとも1つのプロセッサは、前記多関節ロボットの前記1つまたは複数のモータを制御し、前記アームおよび前記エンドエフェクタを移動させて、前記スルービームセンサがワークステーション内の第2
の位置に設けられた第2
のピンを検知する、検知動作を実行するように構成され、
前記さらなる検知動作は、前記エンドエフェクタの前記位置および/または前記向きが前記第2のピンの検知ごとに変化する間に実行されて、さらなる検知された位置および向きデータを収集し、前記さらなる検知動作は、前記多関節ロボットが前記スルービームセンサを前記第2のピンにわたって移動させるときに、前記第2のピンが前記発光器と前記受光器との間の異なる距離に位置するように実行され、前記少なくとも1つのプロセッサは、前記多関節ロボットの前記座標系に対する前記第2のピンの前記第2の位置を決定するために、前記さらなる検知された位置および向きデータに対して計算を実行するように構成され、前記少なくとも1つのプロセッサは、前記多関節ロボットの前記座標系に対す
る作業
場所を決定するために、
前記第1のピンの前記第1の位置と前記第2のピンの前記第2の位置とを利用するように構成される、
請求項17に記載の多関節ロボット。
【請求項25】
前記少なくとも1つのプロセッサは、前記多関節ロボットの1つまたは複数のモータを制御して、前記アームおよび前記エンドエフェクタを移動させて20回以上の検知動作を実行するように構成され、
前記少なくとも1つのプロセッサは、前記検知された位置および配向データに対して回帰分析を実行するように構成される、
請求項17に記載の多関節ロボット。
【請求項26】
前記少なくとも1つのプロセッサは、前記多関節ロボットの前記座標系に対する前記第1のピンの前記第1の位置を決定するために、前記検知された位置および向きデータに対して最小二乗近似および数値探索を実行するように構成される、
請求項25に記載の多関節ロボット。
【請求項27】
前記少なくとも1つのプロセッサは、前記多関節ロボットの前記1つ以上のモータを制御して、
前記スルービームセンサが前記第1のピンを横切って第1の方向に移動するように、前記エンドエフェクタを前記第1のピンから離れるように移動させ、
前記スルービームセンサが前記第1のピンを横切って前記第1の方向とは反対の第2の方向に移動するように、前記エンドエフェクタを前記第1のピンに向かって移動させることにより、前記アームおよび前記エンドエフェクタを移動させ、
前記少なくとも1つのプロセッサは、前記エンドエフェクタを前記第1のピンから離れるように移動させることと、前記エンドエフェクタを前記第1のピンに向かって移動させることによって得られた前記検知された位置および向きデータを使用して、前記スルービームセンサにおけるヒステリシス誤差を決定するように構成される、
請求項17に記載の多関節ロボット。
【請求項28】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに複数の処理を実行させるプログラムを記憶する非一時的コンピュータ可読媒体であって、前記複数の処理は、
多関節ロボットのための座標系を定義し、前記多関節ロボットは、
アームと、
前記アームに対して枢動するように構成されたエンドエフェクタであって、第1突出部材及び第2突出部材を備えたワークピースレシーバを有するエンドエフェクタと、
前記エンドエフェクタに設けられ、前記第1突出部材及び前記第2突出部材の一方に設けられた発光器と、前記第1突出部材及び前記第2突出部材の他方に設けられた受光器とを有し、前記発光器と前記受光器との間に物体が存在することを検知するスルービームセンサと、を備え、
前記多関節ロボットの1つまたは複数のモータを制御して、前記アームおよび前記エンドエフェクタを移動させて、前記スルービームセンサがワークステーション内の第1の位置に設けられた第1のピンを検知する検知動作を実行させ、前記検知動作は、検知された位置および向きデータを収集するために前記第1のピンの検知ごとに前記エンドエフェクタの位置および/または向きが変化する間に実行され、前記検知動作は、前記多関節ロボットが前記スルービームセンサを前記第1のピンにわたって複数の平行移動をさせるときに前記第1のピンが前記発光器と前記受光器との間の異なる距離に位置するように実行され、
前記多関節ロボットの前記座標系に対する前記第1のピンの前記第1の位置を判定するために、前記検知された位置および配向データに対して計算を行う
ことを含み、
前記複数の平行移動は、
前記第1のピンが前記発光器と前記受光器が第1の距離になるように前記多関節ロボットが前記スルービームセンサを前記第1のピンを完全に跨ぐように第1の経路に沿った第1の方向に動かす第1の移動と、
前記多関節ロボットが前記スルービームセンサを前記第1のピンを完全に跨ぐように前記第1の方向と反対の第2方向に動かす第2の移動と、
前記第1のピンが前記発光器と前記受光器が前記第1の距離と異なる第2の距離になるように前記多関節ロボットが前記スルービームセンサを前記第1のピンを完全に跨ぐように前記第1の経路に対して平行な第2の経路に沿った第3の方向に動かす第3の移動とを含む、非一時的コンピュータ可読媒体。
【請求項29】
前記エンドエフェクタは、前記アームに対して旋回軸を中心に旋回するように構成され、
前記1つまたは複数のプロセッサに、前記検知された位置および配向データに対して計算を実行させて、前記旋回軸までの前記発光器の光ビームに垂直な方向に延在する距離と、前記エンドエフェクタの角度誤差を含む前記多関節ロボットの前記座標系に対する前記光ビームに垂直な方向の角度とを決定させる、
請求項28に記載のプログラムを記憶する非一時的コンピュータ可読媒体。
【請求項30】
前記アームに対して旋回するように構成された前記エンドエフェクタの旋回軸上に光学ターゲットが設けられ
前記多関節ロボットの前記座標系に対して固定された位置に走査装置が設けられ、前記走査装置は、前記多関節ロボットが運動範囲を通って移動するときに前記光学ターゲットの位置データを測定するように構成され、
前記1つ以上のプロセッサに、前記位置データに対して回帰分析を実行させて、前
記アームのリンクのリンク長を決定させる、
請求項28に記載のプログラムを記憶する非一時的コンピュータ可読媒体。
【請求項31】
前記リンク長は、前
記アームの前記リンクを回転させるための前記1つ以上のモータのそれぞれのエンコーダに記憶される、
請求項30に記載のプログラムを記憶する非一時的コンピュータ可読媒体。
【請求項32】
前記1つ以上のプロセッサに、前記多関節ロボットの1つ以上のモータを制御させて、前記アーム及び前記エンドエフェクタを移動させて20回以上の検知動作を行わせ、
前記1つまたは複数のプロセッサに、前記検知された位置および配向データに対して回帰分析を実行させる、
請求項28に記載のプログラムを記憶する非一時的コンピュータ可読媒体。
【請求項33】
前記複数の平行移動は、前記エンドエフェクタの複数の平行直線移動である、
請求項1に記載の方法。
【請求項34】
前記複数の平行移動は、前記エンドエフェクタの複数の平行直線移動である、
請求項17に記載の多関節ロボット。
【請求項35】
前記複数の平行移動は、前記エンドエフェクタの複数の平行直線移動である、
請求項28に記載のプログラムを記憶する非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの教示及び制御に関する。
【背景技術】
【0002】
ロボットは、多くの異なるタイプの物体を取り扱うために使用される。例えば、ロボットは、半導体デバイスの製造中に半導体ウェハをワークステーション間で搬送するために使用される。ロボットの正確な移動は、ワークピース、ロボット、および作業環境内の任意の他の物体への損傷を防止するために重要である。したがって、ロボットが作業環境内に取り付けられると、作業環境内の様々な特徴のロボット位置を教示することが重要となり得る。このような位置を手動で教示することは、時間がかかり、ヒューマンエラーの可能性がある。したがって、改善された教示方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示では、多関節ロボットを教示する方法を有利に提供する。この方法は、ワークステーション内の第1の位置に第1のピンを設ける工程と、ワークステーションに隣接する領域に多関節ロボットを設ける工程とを含む。多関節ロボットは座標系を有し、多関節ロボットは、アームと、アームに対して旋回するように構成されたエンドエフェクタとを有する。エンドエフェクタは、第1突出部材及び第2突出部材を有するワーク受け部と、第1突出部材及び第2突出部材の一方に設けられた発光器を含むスルービームセンサとを有する。スルービームセンサは、第1突出部材および第2突出部材の他方に設けられた受光器をさらに備える。スルービームセンサは、発光器と受光器との間に物体が存在するときを検知するように構成される。方法は、スルービームセンサが第1のピンを検知する検知動作を実行するように多関節ロボットを移動させる工程をさらに含む。検知動作は、エンドエフェクタの位置および/または向きが、検知された位置および向きのデータを収集するために第1のピンの検知毎に変動させられている間に行われ、検知動作は、多関節ロボットが第1のピンを跨ぐようにスルービームセンサを移動させ、第1のピンが発光器と受光器との間で異なる距離に位置するように行われる。方法はまた、検知された位置および向きのデータに対して計算を行って、多関節ロボットが有する座標系に対する第1のピンの第1の位置を決定する工程を含む。
【0004】
エンドエフェクタがアームに対して旋回軸の周りに旋回するように構成され、本方法の実施形態では、検知された位置及び向きのデータに対して計算を実行して、発光器の光ビームに対して垂直な方向における旋回軸までの距離と、エンドエフェクタの角度誤差を含む、光ビームに対して垂直な方向の、多関節ロボットの座標系に対する角度とを決定することを更に含む。
【0005】
本方法の実施形態では、アームに対して旋回するように構成されたエンドエフェクタの旋回軸上に光学ターゲットを設ける工程と、多関節ロボットの座標系に対して不変の位置に走査装置を設ける工程と、走査装置を使用して、多関節ロボットが動作範囲を通って移動する際に光学ターゲットの位置データを測定する工程と、位置データに対して回帰分析を実行して、ロボットアームのリンクのリンク長を決定する工程とをさらに含む。
【0006】
本方法の実施形態において、ロボットアームのリンクを回転させるためのモータのそれぞれのエンコーダに対してリンク長を記憶する工程をさらに含むことが提供される。
【0007】
本方法の実施形態において、ワークステーションが、第1のピンの第1の位置に対する所定の位置および向きに設けられた作業位置を有し、本方法が、第1のピンの第1の位置を使用して、多関節ロボットの座標系に対する作業位置を判定する工程をさらに含むように提供される。
【0008】
本実施形態において、作業位置が水平面において第1のピンの第1の位置と重複する方法が提供される。
【0009】
本実施形態において、多関節ロボットは、ワークステーションに隣接する領域に据え付けられた基部を含み、第1旋回軸周りに旋回可能に基部に取り付けられた第1アーム部材と、第2旋回軸周りに旋回可能に第1アーム部材に取り付けられた第2アーム部材と、第3旋回軸の周りに旋回可能に第2アーム部材に取り付けられた第3アーム部材とを備え、エンドエフェクタが、第4旋回軸の周りに旋回可能に第3アーム部材に装着される、方法が提供される。
【0010】
本方法の実施形態では、検知動作が、エンドエフェクタが第1の向きかつ第1の位置にある状態、多関節ロボットがスルービームセンサを第1のピンを跨ぐように移動させる第1の検知動作と、エンドエフェクタが第1の向きかつ第1の位置とは異なる第2の位置として、多関節ロボットがスルービームセンサを第1のピンを跨ぐように移動させる第2の検知動作とを含むことが提供される。
【0011】
本方法の実施形態では、第1の検知動作において、第1のピンは、スルービームセンサが第1のピンを跨ぐように移動したときに、発光器と受光器との間で第1距離に位置し、第2の検知動作において、第1のピンは、スルービームセンサが第1のピンを跨ぐように移動されるときに発光器と受光器との間で第2距離に位置し、第2距離が第1距離とは異なるものとして提供される。
【0012】
本実施形態では、多関節ロボットが、エンドエフェクタを第2の向きかつ第3の位置として、スルービームセンサを第1のピンを跨ぐように移動させる第3の検知動作と、多関節ロボットが、エンドエフェクタを第2の向きかつ第3の位置とは異なる第4の位置として、スルービームセンサを第1のピンを跨ぐように移動させる第4の検知動作とを含む、方法が提供される。
【0013】
本実施形態では、検知動作を実行するために多関節ロボットを動作させることは、最初に、エンドエフェクタを第1のピンの所定の近似位置に移動させる工程と、スルービームセンサが第1のピンを検知するまで、第1のピンの所定の近似位置の周囲の領域内でエンドエフェクタを移動させる工程とを含む方法が提供される。
【0014】
本方法の実施形態では、ワークステーション内の第2の位置に第2のピンを設ける工程と、エンドエフェクタの位置および/または向きを変化させ、スルービームセンサを第2のピンを跨ぐように移動させて第2のピンが発光器と受光器との間で異なる距離に位置するようにして、スルービームセンサが第2のピンを検知する複数のさらなる検知動作を実行し、さらに検知された位置および向きのデータを収集するように、多関節ロボットを動作させる工程であって、さらに検知された位置および向きのデータに対して計算を行って、多関節ロボットが有する座標系に対する第2のピンの第2の位置を決定する工程とを含む。
【0015】
本方法の実施形態は、ワークステーションは、第1のピンの第1の位置および第2のピンの第2の位置に対して所定の位置および向きに設けられた作業位置を有し、方法はさらに、第1のピンの第1の位置および第2のピンの第2の位置を使用して、多関節ロボットの座標系に対する作業位置を決定する工程を含む。
【0016】
本方法の実施形態では、多関節ロボットを作動させて20回以上の検知動作を行い、検知された位置および向きデータに対して計算を実行することは、検知された位置および向きのデータに対して回帰分析を実行することを含むことが提供される。
【0017】
本方法の実施形態では、検知された位置および向きのデータに対して計算を実行する工程は、検知された位置および向きのデータに対して最小二乗近似および数値探索を実行し、多関節ロボットの座標系に対する第1のピンの第1の位置を決定する工程を含むことが提供される。
【0018】
本実施形態の方法では、検知動作が以下の両方の工程によって実行されることが提供される。スルービームセンサが第1のピンを跨ぐように第1の方向に移動するように、エンドエフェクタを第1のピンから離すように移動させる工程と、スルービームセンサが第1のピンを跨ぐように第1の方向とは反対の第2の方向に移動するように、エンドエフェクタを第1のピンに向かって移動させる工程の両方を含み、前記方法は、エンドエフェクタを第1のピンから離すように移動させ、エンドエフェクタを第1のピンに向かって移動させることによって得られた検知された位置および向きのデータを使用して、スルービームセンサにおけるヒステリシス誤差を決定する工程をさらに含む。
【0019】
本開示では、さらに有利に、以下を有する多関節ロボットを提供する。アームと、アームに対して旋回するように構成され、第1突出部材および第2突出部材を有するワーク受け部を有するエンドエフェクタと、エンドエフェクタに設けられ、第1突出部材および第2突出部材の一方に設けられた発光器と、第1突出部材および第2突出部材の他方に設けられた受光器とを有し、発光器と受光器との間に物体が存在するときを検知するように構成されるスルービームセンサと、多関節ロボットの1つまたは複数のモータを制御して、アームおよびエンドエフェクタを移動させて、エンドエフェクタの位置および/または向きを変化させ、スルービームセンサを、ワークステーション内の第1の位置に設けられた第1のピンを跨ぐように移動させて第1のピンが発光器と受光器との間で異なる距離に位置するようにして、スルービームセンサが第1のピンを検知する複数の検知動作を実行し、検知された位置および向きのデータを収集し、検知された位置および向きのデータに対して計算を行って、多関節ロボットのために定義された座標系に対する第1のピンの第1の位置を決定するように構成される少なくとも1つのプロセッサを含むコントローラと、を備える多関節ロボットを提供する。
【0020】
本実施形態におけるロボットでは、エンドエフェクタは、アームに対して旋回軸の周りに旋回するように構成され、少なくとも1つのプロセッサは、検知された位置および向きのデータに対して計算を実行して、発光器の光ビームに垂直な方向における旋回軸までの距離と、エンドエフェクタの角度誤差を含む、光ビームに垂直な方向の、多関節ロボットの座標系に対する角度とを決定するようにさらに構成される。
【0021】
本実施形態のロボットは、アームに対して旋回するように構成されたエンドエフェクタの旋回軸上に設けられた光学ターゲットと、多関節ロボットの座標系に対して不変の位置に設けられ、多関節ロボットが動作範囲を通って移動するときに光学ターゲットの位置データを測定するように構成された走査装置とをさらに備え、少なくとも1つのプロセッサは、位置データに対して回帰分析を実行してロボットアームのリンクのリンク長を決定するようにさらに構成される。
【0022】
ロボットアームのリンクを回転させるための1つまたは複数のモータのそれぞれのエンコーダに対して、リンク長が記憶されるロボットの実施形態が提供される。
【0023】
本実施形態において、ロボットは、ワークステーションに隣接する領域に取り付けられた基部をさらに備え、アームは、第1旋回軸の周りに旋回可能に基部に取り付けられた第1アーム部材と、第2旋回軸の周りに旋回可能に第1アーム部材に取り付けられた第2アーム部材と、第3旋回軸の周りに旋回可能に第2アーム部材に取り付けられた第3アーム部材とを有し、エンドエフェクタは、第4旋回軸の周りに旋回可能に第3アーム部材に取り付けられる。
【0024】
本ロボットの実施形態では、少なくとも1つのプロセッサは、多関節ロボットに以下の動作をさせるように多関節ロボットの1つまたは複数のモータを制御するように構成される。エンドエフェクタを第1の向きおよび第1の位置にある状態として、スルービームセンサが第1のピンを跨ぐように移動される第1の検知動作と、エンドエフェクタが第1の向きおよび第1の位置とは異なる第2の位置にあるとして、スルービームセンサが第1のピンを跨ぐように移動される第2の検知動作とを実行し、第1検知動作において、第1ピンは、スルービームセンサが第1ピンを跨ぐように移動されるときに発光器と受光器との間で第1距離に位置し、第2の検知動作において、第1のピンは、スルービームセンサが第1のピンを跨ぐように移動されるときに発光器と受光器との間の第2距離に位置し,第2距離は第1距離とは異なる。
【0025】
本ロボットの実施形態では、少なくとも1つのプロセッサは、多関節ロボットの1つまたは複数のモータを制御して、エンドエフェクタを第1の向きかつ第1の位置にあるとして、スルービームセンサが第1のピンを跨ぐように移動される第1の検知動作と、エンドエフェクタを第1の向きかつ第1の位置とは異なる第2の位置にあるとして、スルービームセンサが第1のピンを跨ぐように移動される第2の検知動作と、エンドエフェクタを第2の向きかつ第3の位置にあるとして、スルービームセンサが第1のピンを跨ぐ曜日移動される第3の検知動作と、エンドエフェクタが第2の向きかつ第3の位置とは異なる第4の位置として、スルービームセンサが第1のピンを跨ぐように移動される第4の検知動作とを多関節ロボットに実行させるように動作させる。
【0026】
本ロボットの実施形態では、少なくとも1つのプロセッサが、多関節ロボットの1つまたは複数のモータを制御して、アームおよびエンドエフェクタを移動させ、エンドエフェクタの位置および/または向きを変化させ、スルービームセンサをワークステーション内の第2の位置に設けられた第2のピンを跨ぐように移動させて第2のピンが発光器と受光器との間で異なる距離に位置するようにして、第2のピンを検知する複数のさらなる検知動作を実行し、さらに検知された位置および向きデータを収集するように構成され、少なくとも1つのプロセッサは、検知された位置および向きデータに対して計算を行って、多関節ロボットのために定義された座標系に対する第2のピンの第2の位置を決定し、多関節ロボットの座標系に対する作業位置を決定するように構成される。
【0027】
本ロボットの実施形態では、少なくとも1つのプロセッサは、多関節ロボットの1つまたは複数のモータを制御して、アームおよびエンドエフェクタを移動させて20回以上の検知動作を実行するように構成され、少なくとも1つのプロセッサは、検知された位置および向きデータに対して回帰分析を実行するように構成される。
【0028】
本ロボットの実施形態では、少なくとも1つのプロセッサは、検知された位置および向きデータに対して最小二乗近似および数値探索を実行して、多関節ロボットの座標系に対する第1のピンの第1の位置を決定するように構成される。
【0029】
本ロボットの実施形態では、少なくとも1つのプロセッサは、多関節ロボットの1つまたは複数のモータを制御して、スルービームセンサが第1の位置において第1のピンを跨ぐように第1の方向に移動するように、エンドエフェクタを第1のピンから離すように移動させ、前記スルービームセンサが前記第1のピンを跨ぐように第1の方向とは反対の第2の方向に移動するように、前記エンドエフェクタを第1のピンに向かって移動させることの両方により、アームおよびエンドエフェクタを移動させ、少なくとも1つのプロセッサは、前記エンドエフェクタを前記第1のピンから離すように移動させ、前記エンドエフェクタを前記第1のピンに向かって移動させることによって得られた前記検知された位置および向きのデータを使用して、前記スルービームセンサにおけるヒステリシス誤差を決定するように構成される。
【0030】
本開示では、アームと、前記アームに対して旋回するように構成され、第1突出部材及び第2突出部材を有するワーク受け部を有するエンドエフェクタと、前記エンドエフェクタに設けられ、前記第1突出部材及び前記第2突出部材の一方に設けられた発光器と、前記第1突出部材及び前記第2突出部材の他方に設けられた受光器とを有し、前記発光器と前記受光器との間に物体が存在するときを検知するように構成されるスルービームセンサと、を備える、多関節ロボットのための座標系を定義する処理と、前記多関節ロボットの1つまたは複数のモータを制御して前記アームおよび前記エンドエフェクタを移動させて、前記エンドエフェクタの位置および/または向きを変化させ、前記スルービームセンサを、ワークステーション内の第1の位置に設けられた第1のピンを跨ぐように移動させて前記第1のピンが前記発光器と前記受光器との間で異なる距離に位置するようにして、前記スルービームセンサが前記第1のピンを検知する複数の検知動作を実行し、検知された位置及び向きのデータを収集する処理と、前記検知された位置及び向きのデータに対して計算を行って、前記多関節ロボットのために定義された座標系に対する前記第1のピンの前記第1の位置を決定する処理と、を1つまたは複数のプロセッサによって実行させるプログラムを記憶する、非一時的コンピュータ読み取り可能な記憶媒体を提供する。
【0031】
本実施形態では、エンドエフェクタは、アームに対して旋回軸の周りに旋回するように構成され、1つまたは複数のプロセッサに、検知された位置及び向きのデータに対して計算を実行させて、発光器の光ビームに垂直な方向における旋回軸までの距離と、エンドエフェクタの角度誤差を含む、光ビームに垂直な方向の、多関節ロボットの座標系に対する角度とを決定させる、プログラムを記憶する非一時的コンピュータ可読媒体が提供される。
【0032】
プログラムを記憶する非一時的コンピュータ可読媒体の実施形態では、アームに対して旋回するように構成されたエンドエフェクタの旋回軸上に光学ターゲットが設けられ、多関節ロボットの座標系に対して不変の位置に走査装置が設けられ、走査装置は、多関節ロボットが動作範囲を通って移動するときに光学ターゲットの位置データを測定するように構成され、1つまたは複数のプロセッサに位置データに対して回帰分析を実行させて、ロボットアームのリンクのリンク長を決定する。
【0033】
プログラムを記憶する非一時的コンピュータ可読媒体の実施形態では、ロボットアームのリンクを回転させるための1つまたは複数のモータのそれぞれのエンコーダに対して、リンク長が記憶される。
【0034】
プログラムを記憶する非一時的コンピュータ可読媒体の実施形態では、1つまたは複数のプロセッサに、多関節ロボットの1つまたは複数のモータを制御させて、アームおよびエンドエフェクタを移動させて20回以上の検知動作を行わせ、1つまたは複数のプロセッサに、検知された位置及び向きのデータに対して回帰分析を実行する。
【図面の簡単な説明】
【0035】
本発明のより完全な理解およびその付随する多くの利点は、以下の詳細な説明を参照し、特に添付の図面と併せて考慮すると、容易に明瞭となる。
【
図1】ロボットを自動教示するためのシステムの一実施形態の上面図である。
【
図2】ロボットを自動的に教示するためのシステムにおいて使用するコントローラおよび関連デバイスの実施形態の概略図である。
【
図3】ロボットおよびロボットを自動教示するためのシステムで使用するコントローラの追加の実施形態の側面図である。
【
図4】ロボットおよびロボットを自動教示するためのシステムで使用するコントローラの追加の実施形態の側面図である。
【
図5】ロボットを自動的に教示するためのシステムにおいて使用するロボットの追加の実施形態の上面図である。
【
図6A-6H】ピンに対して検知動作を行う
図5のエンドエフェクタの上面図である。
【
図7】ピン上で検知動作を行う、種々の重ね合った位置および向きにおけるエンドエフェクタの上面図である。
【
図8】ロボット教示方法の一実施形態を示すフローチャートである。
【
図9A-9B】ロボットの特徴とアライメントピンとの関係を示す。
【
図10】ピンの両側からピンに接近するスルービームセンサの2つの説明図である。
【
図11】胴体、肩、肘、手首を含むロボットの特徴の関係を示す図である。
【
図12】ロボットの特徴と、アライメントピンと、中心を有する作業位置との間の関係を示す。
【
図13】中心を有する半導体ウェハと、ウェハプリアライナと、さらなるアライメントピンとの間の関係を示す。
【
図14】ロボット、アライメントピン、中心を有する作業位置、中心を有する半導体ウェハ、ウェハプリアライナ、およびさらなるアライメントピンの特徴間の関係を示す。
【
図15A】z位置を決定する方法を示すピンおよびエンドエフェクタを示す上面図である。
【
図16】ベータサーチ数値シミュレーションの結果を示す図である。
【
図17】経験的テストによってテストされたロボット精度/誤差を示すチャートである。
【
図18】
図17のチャートの一部を拡大したものであり、経験的テストによってテストされたロボットの精度/誤差を示している。
【発明を実施するための形態】
【0036】
本出願は、2019年2月8日に出願された米国仮出願第62/802759号の優先権を主張するものであり、その全内容は参照により本明細書に組み込まれる。以下、本発明の実施形態について図面を参照して説明する。なお、以下の説明において、実質的に同一の機能及び構成を有する構成要素については、同一の符号を付し、必要な場合にのみ重複説明する。
【0037】
本明細書で説明される実施形態では、ロボット上のセンサを使用して、関心領域(FI)の周りの1つ以上のステーションのロボット位置を自動的に教示するための方法、装置、プログラムを記憶する非一時的コンピュータ可読媒体、およびシステムを有利に提供する。
【0038】
本明細書に記載の実施形態は、ワークピースをワークステーション内の所望の位置に正確に配置することを可能にする。例えば、本明細書に記載の実施形態は、処理ステーション、保管ステーション、または半導体製造中に利用される他のワークステーションなどのワークステーション内の所望の位置に、多関節ロボットによって半導体ウェハを正確に配置することを可能にする。このような状況では、ワークステーションを含む関心領域内でのウェハの正確かつ安全な移動を保証するために、多関節ロボットに対するステーションの位置を正確に特定することが望ましい。ステーションの位置を手動で教示することは時間がかかり、ヒューマンエラーの可能性がある。本実施形態は、ピン位置を正確に決定することを可能にし、それによって、数ミリメートル以内、好ましくは100ミクロン以内で、ウェハ配置/回収位置(本明細書では作業位置とも呼ばれる)へのウェハの移動を可能にする。
【0039】
本実施形態では、新しいロボットが関心領域に取り付けられるか、または関心領域(またはツール環境)において(損傷後に)手動で調整されるときはいつでも使用することができる。本実施形態では、多関節ロボットは、1つ以上のワークステーションに関連して配置される関心領域にそれ自体を向ける。ワークステーションは、半導体処理装置であってもよいし、ワークピースの配置及び/又は取り出しのために指定された関心領域内の領域であってもよい。本実施形態では、ロボットがステーションと正確に相互作用することができるように、ロボットが、異なるステーションが関心領域(FI)内のどこにあるかを正確に「感じる」ことを可能にする。ロボットは、ピンの所定のおおよその位置をロボットに与えることによって、ロボットが所与の構成を大まかに探し始めるべき場所を前もって知らされる。ワークピースまたはウェハは、自動教示プロセス中に存在する必要はないが、必要に応じて存在することができる。エンドエフェクタを使用して関心領域をマッピングするために使用されている状況では、そのようなプロセスは、エンドエフェクタ上のウェハなしで実行され得る。自動教示プロセスは、ロボットの性能を検証または追跡するために周期的に使用されることができる。例えば、熱膨張が特定の環境内の特定のロボットにとって重要である場合、自動教示プロセスは、ロボットが加熱するにつれて経時的に繰り返されることができる。ロボットは、そのような後続のプロセス中に識別された位置の変化に基づいて調整を行うことができる。
【0040】
自動ティーチング処理は、1つのピンのみを用いて実行されてもよいし、複数のピンを用いて実行されてもよい。ピンを、ワークピースが配置または回収される場所に位置付けることができる場合、単一のピンが使用されることができ、ピンの場所は、自動教示プロセスを使用して識別できる。ワークピースがピンの正確な位置以外の位置に配置されるか、またはそこから回収される場合(例えば、ウェハを配置または回収したい位置へのピンの配置がウェハとの干渉を引き起こす場合)、2つのピンを使用することができる。理想的には、ピンは、ウェハ配置/回収位置からオフセットされないが、干渉のために、ピンは、ウェハ配置/回収位置の側面、正面、背面等にオフセットされる必要があり得る。したがって、ウェハ配置/取り出し位置からオフセットされたピンが使用される場合、複数のピンからウェハ配置/取り出し位置までの位置および向きを知ることが必要であり、これは平面内の2つの点(すなわち、ピン)で達成することができる。このような状況では、ピンが基準として使用され、次いで、ロボットのエンドエフェクタは、設置/回収場所における最終目的地に移動されることができる。
【0041】
ピンの位置を決定することによって、ワークステーションの全体のレイアウトを決定することができる。ピンの位置が決定されると、ロボットは、ウェハがステーション内のどこに配置されるか、またはウェハがステーション内からどこに取り出されるかを正確に決定することができる。ピンの位置および向きが決定されると、ロボットがワークピース配置/取り出し位置の位置を含むステーション内の構成要素のレイアウトを決定することができるように、ステーションのレイアウトはピンの位置に対して厳密に許容される。
【0042】
図1は、取り付け領域110と、取り付け領域110に隣接するワークステーション200と、取り付け領域110に取り付けられた多関節ロボット300とを含むシステム100の実施形態を示す。取り付け領域110は、ロボット300が設けられる閉鎖領域または開放領域であり得る。取り付け領域110は、ロボット300を固定することができる床または天井などの取り付け面112を含む。
【0043】
ワークステーション200は、半導体処理装置とすることができ、またはワークステーションは、単に、ワークピースの配置および/または回収のために指定された関心領域内のエリアとすることができる。
図1に示すワークステーション200は、側壁212、214、216および218を有するハウジング210を含む。側壁212は、開閉可能なドア213を有し、ドア213は、ロボット300によるアクセスを可能にするために開放され、ワークピースの処理中に閉鎖され得る。ワークステーション200は、ワークピース配置/回収位置220と、第1のピン230と、第2のピン240とを含む。上述したように、ワークステーション200のレイアウトは、第1のピン230および/または第2のピン240に対して厳密に許容され、ピンの位置および向きが、側壁212、214、216、および218、ドア213、ならびにワークピース配置/取り出し位置220などのワークステーション200の他の構成要素の位置および向きに対して既知であるようにする。したがって、ワークステーション200は、第1のピン230および/または第2のピン240の位置に対して所定の位置および向きに作業位置220を有する。
【0044】
取付け領域110の周囲に、または取付け領域110内に追加のワークステーションを設けることができる。このような追加のワークステーション内の作業位置の位置は、このような位置関係が既知であれば、ワークステーション200およびその中のピンに対する位置によって、または追加のワークステーションとの動作を検知するために追加のワークステーション内に追加のピンを設けることによって決定することができる。
【0045】
代替の実施形態では、第1のピンは、第1のピンが水平面内でワークピース配置/回収位置220に重なるように、ワークピース配置/回収位置220に設けることができる。ワークピース配置/回収位置220における第1のピンのそのような配置が、ワークピース配置/回収位置220の使用または動作に干渉する場合、第1のピンが水平面においてワークピース配置/回収位置220と重複するように、第1のピンをワークピース配置/回収位置220の上方または下方に配置することが可能であり得る。このような場合、第1のピンを使用して、ワークピースの配置/取り出し位置220を正確に決定することができ、次いで、エンドエフェクタのz軸調整を行って、ワークピースの配置/取り出し位置220を第1のピンの干渉なしに使用することができる。しかしながら、そのような構成が依然としてワークピース配置/回収場所220の使用または動作と干渉する結果となる場合、自動教示プロセスは、第1のピン230および第2のピン240の両方を使用することができる。
【0046】
図1に示す多関節ロボット300は、ワークステーション200に隣接する領域110に取り付けられた基部310と、アーム320とを含む。この実施形態では、アーム320は、旋回軸336の周りで基部310に旋回可能に取り付けられたアーム部材330と、旋回軸346の周りでアーム部材330に旋回可能に取り付けられたアーム部材340とを含む。エンドエフェクタ360は、旋回軸(または手首軸)366の周りでアーム部材340に旋回可能に取り付けられる。(旋回軸366は、代替的に、この実施形態に示すようにz方向ではなくx-y平面内に延びることができることに留意されたい。)エンドエフェクタ360は、アーム320に対して旋回するように構成され、エンドエフェクタ360は、以下でより詳細に説明するように、エンドエフェクタ360上に取り付けられたスルービームセンサ380を有するワーク受け部370を有する。スルービームセンサ380は、光ビーム390を発する発光器と受光器とを含む。スルービームセンサ380は、以下でより詳細に説明するように、発光器と受光器との間に物体が存在するときを検知するように構成される。
【0047】
図1に示すシステム100には、コントローラ400が設けられている。コントローラは、基部に隣接して設けられてもよいし、基部またはロボットの他の部分内に組み込まれてもよいし、ネットワークを介して接続されて遠隔地に設けられてもよい。
【0048】
図2は、本発明の実施形態を実施することができるコントローラ(コンピュータ)400の実施形態を示す。コントローラ400は、特定のデバイスまたは機器に関して示されているが、
図2内の他のデバイスまたは機器(たとえば、ネットワーク要素、サーバなど)が、コントローラ400の図示されたハードウェアおよび構成要素を展開できることが考えられる。コントローラ400は、本明細書に記載の機能を提供するようにプログラムされ(例えば、コンピュータプログラムコードまたは命令を介して)、コントローラ400の他の内部構成要素と外部構成要素との間で情報を渡すためのバス402などの通信機構を含む。情報を処理するための1つまたは複数のプロセッサ404は、バス402に結合されて、コンピュータプログラムコードによって指定された情報に対する動作のセットを実行する。
【0049】
コントローラ400はまた、バス410に結合されたメモリ406を含む。ランダムアクセスメモリ(RAM)または他の動的記憶デバイスなどのメモリ406は、プロセッサ命令を含む情報を記憶する。メモリ406はまた、プロセッサ命令の実行中に一時的な値を記憶するためにプロセッサ404によって使用される。コントローラ400はまた、コントローラ400によって変更されない命令を含む静的情報を記憶するためのバス402に結合された、読み出し専用メモリ(ROM)408または他の静的記憶装置を含む。コントローラ400は、コントローラ400が他のデバイスまたは機器(例えば、ネットワーク要素、サーバ)と通信することを可能にする通信インターフェース410を含む。
【0050】
ユーザ入力命令を含む情報は、人間のユーザによって操作される英数字キーを含むキーボード、ディスプレイデバイス、ポインティングデバイス(マウスまたはトラックボールまたはカーソル方向キーなど)などのユーザインターフェース412から、プロセッサ404による使用のためにバス402に設けられる。
【0051】
駆動モータ414(例えば、以下で議論されるロボットのアーム部材(リンク)を回転させるために使用され、
図3記載のモータ312A、338A、348A、358A)は、エンコーダを含むことができ、データ、動作命令/コマンド、または他の情報をそれらの間で送受信するために、バス402を介してプロセッサ404と通信することができる。プロセッサ404は、駆動モータ414の出力シャフトの回転(例えば、開始、停止、方向(例えば、時計回り、反時計回り)、速度等)を制御するために、動作命令/コマンドを使用して、駆動モータ414の動作を制御することができる。
【0052】
外部測定装置416(例えば、Automated Precision Inc.(API)トラッカー(センサ、走査装置)など)は、データ、動作命令/コマンド、または他の情報をそれらの間で送受信するために、バス402を介してプロセッサ404と通信することができる。プロセッサ404は、外部測定装置416の作動を制御するために、動作指令命令/コマンドを使用して外部測定装置416の動作を制御することができる。
【0053】
スルービームセンサ380は、バス402を介してプロセッサ404と通信して、それらの間でデータ、動作命令/コマンド、または他の情報を送受信することができる。プロセッサ404は、駆動モータ414および/または外部測定装置416の動作と併せてスルービームセンサ380の動作を制御するために、動作命令/コマンドを使用してスルービームセンサ380の動作を制御することができる。
【0054】
コントローラ400は、多関節ロボットの座標系を定義する少なくとも1つのプロセッサ404を含む。ワークピースの配置/取り出し位置(作業位置)におけるウェハの正確な配置および/または取り出しを実行するために、コントローラ400は、多関節ロボットの座標系に対する作業位置を正確に決定するために、作業位置に対して所定の位置および向きを有するワークステーション内の1つ以上のピンの位置を決定する必要がある。したがって、少なくとも1つのプロセッサ404は、多関節ロボットの1つまたは複数のモータを制御して、アームおよびエンドエフェクタを移動させて、スルービームセンサがワークステーション内の第1の位置に設けられた第1のピンを検知し、検知動作を実行する。以下でより詳細に説明するように、検知動作は、エンドエフェクタの位置及び/又は向きが第1のピンの検知ごとに変化して検知された位置及び向きデータを収集する間に実行され、検知動作は、多関節ロボットが第1のピンを跨ぐようにスルービームセンサを動作させるときに第1のピンが発光器と受光器との間の異なる距離に位置するように実行される。少なくとも1つのプロセッサ404は、次いで、検知された位置および向きのデータに対して計算を行い、多関節ロボットの座標系に対する第1のピンの第1の位置を判定する。
【0055】
したがって、コントローラ400は、プログラムを記憶する非一時的コンピュータ可読媒体(たとえば、メモリ406、ROM408を参照)を含み、プログラムは、1つまたは複数のプロセッサ(たとえば、プロセッサ404を参照)によって実行されると、1つまたは複数のプロセッサに、本実施形態に記載した多関節ロボットの座標系を特定し、多関節ロボットの1つ以上のモータ(例えば、駆動モータ414を参照)を制御して、アームおよびエンドエフェクタを移動させてスルービームセンサ(例えば、スルービームセンタ380)はワークステーション内の第1位置にある第1ピンを検知する検知動作を実行する。記検知動作は、第1のピンが検知された位置および向きデータを収集するそれぞれの検知に対して、エンドエフェクタの位置および/または向きが変化する間に実行され、検知動作は、多関節ロボットが第1のピンを跨ぐようにスルービームセンサを動作させるにつれて、第1のピンが発光器と受光器との間の異なる距離に位置するように実行され、検知された位置および向きデータに対して計算を実行し、本明細書に記載されるように、多関節ロボットの座標系に対する第1のピンの第1の位置を決定する。
【0056】
図3は、取り付け領域内の搭載面112A上に搭載され、コントローラ400Aを含む多関節ロボット300Aの追加の実施形態を示す。多関節ロボット300Aは、第2基部314Aの上部に設けられた第1基部310Aを有する。第2の基部314Aは、固定マウントであってもよいし、第1の基部310Aをz方向に昇降させ、それによってアーム320A及びエンドエフェクタ360Aを昇降させることができるリフト装置を含んでもよい。
【0057】
多関節ロボット300Aは、旋回軸(または第1旋回軸)336Aの周りに旋回可能に第1の基部310Aに取り付けられたアーム部材(または第1アーム部材)330Aを含むアーム320Aと、旋回軸(または第2旋回軸)346Aの周りに旋回可能にアーム部材330Aに取り付けられたアーム部材(または第2アーム部材)340Aと、旋回軸(または第3旋回軸)356Aの周りにアーム部材340Aに旋回可能に取り付けられたアーム部材(または第3アーム部材)350Aとを含む。エンドエフェクタ360Aは、旋回軸(または第4旋回軸)366Aの周りでアーム部材350Aに旋回可能に取り付けられる。エンドエフェクタ360Aは、エンドエフェクタ360Aの上面に取り付けられたスルービームセンサ380Aを有するワーク受け部370Aを有する。
【0058】
アーム部材330Aは、旋回軸336Aの周りで第1基部310Aに旋回可能に取り付けられた第1端部332Aを有し、エンコーダ313Aを有する駆動モータ312Aによって回転駆動される。アーム部材340Aは、回軸346Aの周りでアーム部材330Aの第2端部334Aに旋回可能に取り付けられた第1端部342Aを有し、エンコーダ339Aを有する駆動モータ338Aによって回転駆動される。アーム部材350Aは、アーム部材340Aの第2端部344Aに旋回可能に取り付けられた第1端部352Aを有し、エンコーダ349Aを有する駆動モータ348Aによって回転駆動される。エンドエフェクタ360Aは、アーム部材350Aの第2端部354Aに旋回可能に取り付けられた第1の端部362Aを有し、エンコーダ359Aを有する駆動モータ358Aによって回転駆動される。スルービームセンサ380Aは、エンドエフェクタ360Aの第2端部364Aに取り付けられる。
【0059】
図4は、取り付け領域内の搭載面112B上に搭載され、コントローラ400Bを含む、多関節ロボット300Bのさらなる実施形態を描写する。多関節ロボット300Bは、第2基部314Bの側方に設けられた第1基部310Bを備える。第2基部314Bは、第1基部310Bをz方向に昇降させることによりアーム320B及びエンドエフェクタ360Bを昇降させることができる昇降装置を備えている。リフト装置は、側面314Bを有するハウジングと、ハウジング内に設けられた螺旋状にねじ切りされたロッド(または複数の平行ロッド)316Bと、ロッド(または複数のロッド)316Bをその長手方向軸の周りで回転させるように構成された駆動モータ318Bとを含む。第1基部310Bは、ロッド(または複数のロッド) 316Bの回転が、ロッド(または複数のロッド)316Bの時計回りまたは反時計回りの回転に応じて、第1の基部310Bをz方向に上昇および下降させるように、ロッド(または複数のロッド)316Bと螺合係合するブラケット311Bを有する。ブラケット311Bは、側面314Bに沿って垂直に延在するスロット(またはスロット)を通って延在し、z方向における第1基部310Bの移動を誘導する。
【0060】
多関節ロボット300Bは、旋回軸(または第1旋回軸)336Bの周りに基部310Bに旋回可能に取り付けられたアーム部材(または第1アーム部材)330Bと、旋回軸(または第2旋回軸)346Bの周りにアーム部材330Bに旋回可能に取り付けられたアーム部材(または第2アーム部材)340Bと、旋回軸(または第3旋回軸)356Bの周りにアーム部材340Bに旋回可能に取り付けられたアーム部材(または第3アーム部材)350Bとを含むアーム320Bを有する。エンドエフェクタ360Bは、旋回軸(または第4旋回軸)366Bの周りで旋回可能にアーム部材350Bに取り付けられる。エンドエフェクタ360Bは、エンドエフェクタ360Bの下面に取り付けられたスルービームセンサ380Bを有するワーク受け部370Bを有する。
図4に示す実施形態の駆動モータおよび旋回軸の構成は、
図3に示し、
図3に関して説明したものと同じである。
【0061】
図5は、多関節ロボット300Cのさらなる実施形態を示す。多関節ロボット300Cは、基部310Cと、アーム320Cとを備える。この実施形態では、アーム320Cは、旋回軸336Cの周りで基部310Cに旋回可能に取り付けられたアーム部材330Cと、旋回軸346Cの周りでアーム部材330Cに旋回可能に取り付けられたアーム部材340Cとを含む。エンドエフェクタ360Cは、旋回軸366Cの周りでアーム部材340Cに旋回可能に取り付けられる。エンドエフェクタ360Cは、アーム320Cに対して旋回するように構成され、エンドエフェクタ360Cは、エンドエフェクタ360Cに取り付けられたスルービームセンサ380Cを有するワーク受け部370Cを有する。ワーク受け部370Cは、半導体ウェハなどのワークピースを搬送するために使用することができる。
【0062】
ワーク受け部370Cは、第1突出部材372Cと第2突出部材374Cとを有し、第1突出部材372Cと第2突出部材374Cとの間に開放空間376Cが設けられている。スルービームセンサ380Cは、光ビーム390Cを発する発光器382Cと受光器384Cとを含む。スルービームセンサ380Cは、以下でより詳細に説明するように、発光器382Cと受光器384Cとの間に物体が存在する際に検知するように構成される。なお、本実施形態では、発光器382Cを第1突出部材372Cに設け、受光器384Cを第2突出部材374Cに設けたが、発光器を第2突出部材374Cに設け、受光器を第1突出部材372Cに設けてもよい。エンドエフェクタ360Cは、重心368Cを有する。
【0063】
ロボットのコントローラは、エンドエフェクタ360Cの旋回軸366Cを、エンドエフェクタ360C上に取り付けられた任意の他の構成要素(例えば、スルービームセンサ380C)を含むエンドエフェクタ360Cのレイアウト全体に対するエンドエフェクタ360C上の既知の位置として利用することができる。したがって、旋回軸366Cは、多関節ロボットの座標系内でエンドエフェクタ360Cの移動を制御するために使用される基準点として利用することができる。
【0064】
図5は、
図1のワークステーション200内に設けられたピン230のようなピン230Cを示す。アーム320C及びエンドエフェクタ360Cは、スルービームセンサ380Cの光ビーム390Cが発光器382Cと受光器384Cとの間を通過して、ピン230Cが発光器と受光器との間に存在するときを検知し、ピン230Cがスルービームセンサ380Cによって検知されたときにエンドエフェクタ360Cの位置及び向き(例えば、旋回軸366Cにおける)を決定するように、ロボットのコントローラを使用して動作させることができる。
【0065】
図6A―
図6Hは、ピン230Cに対するエンドエフェクタ360Cの一連の動きを示す(ロボットの残りの部分は、説明を簡単にするために図示せず)。このような運動は、レーキング運動と呼ぶことができる。
図6A―
図6Hは、スルービームセンサ380Cがピンを検知する検知動作の例示的な実施形態を示す。これらの図では、多関節ロボットを動作させて、スルービームセンサがピンを検知する検知動作を行い、ピンの検知毎にエンドエフェクタの位置及び/又は姿勢を変化させながら検知動作を行い、検知した位置姿勢データを収集する。
【0066】
図6Aは、ピンーエンドエフェクタ間位置関係(すなわち、ピンとエンドエフェクタとの間の位置関係)230C-1がピンーエンドエフェクタ間位置関係230C-2(
図6Aの移動が完了した後にこの位置関係が達成されるため、
図6Aに破線で示される)に変化するように、矢印10によって示されるy方向にピンに向かって移動されるエンドエフェクタ360Cを描写する。(この移動は、y方向に沿って生じる必要はなく、むしろ、x方向およびy方向に垂直なz軸に対する任意の半径方向であり得ることに留意されたい。) 位置関係230C-1が位置関係230C-2に変化するにつれて、ピンは、発光器382Cから距離D1-1および受光器384Cから距離D2-1で光ビーム390Cを横断する。特定の距離値は重要ではないが、そのような距離は、
図6Cおよび
図6Dに関して以下で説明する距離の変化に関して重要である。エンドエフェクタ360Cがピンに向かって移動し、光ビーム390Cがピンを横切って移動すると、スルービームセンサ380Cがピンを検知し、エンドエフェクタ360C及びピンの位置及び向きデータが検出され、記憶される。
【0067】
図6Bは、ピンーエンドエフェクタ間位置関係360C-2がピンーエンドエフェクタ間位置関係230C-3に変化するように、矢印12によって示されるy方向に沿って(
図6Aの矢印10によって示される方向と反対の方向に)ピンから離れるように移動されるエンドエフェクタ230Cを描写する。位置関係230C-2から位置関係230C-3に変化すると、ピンは、発光器382Cから距離D1-1で、かつ受光器384Cから距離D2-1で光線390Cと交差する。エンドエフェクタ360Cがピンから離れるように移動し、光ビーム390Cがピンを跨いで移動すると、スルービームセンサ380Cがピンを検知し、エンドエフェクタ360Cおよびピンの位置および向きデータが検出され、記憶される。
図6Bに示される移動のような逆の移動は、自動教示プロセスには必要ではないが、
図6Aに示される移動の逆の移動であるこの移動は、有利には、以下により詳細に議論されるように、スルービームセンサにおける任意のヒステリシス誤差の識別を可能にすることに留意されたい。
【0068】
図6Cは、ピンーエンドエフェクタ間位置関係230C-3がピンーエンドエフェクタ間位置関係230C-4に変化するように、矢印14によって示されるようにx方向に沿って移動されるエンドエフェクタ360Cを描写する。(
図6Bに示す移動が行われない場合、前の段落で述べたように、
図6Cの移動と同様のy方向の移動は位置関係230C-2から行うことができる。)
図6Dは、ピンーエンドエフェクタ間位置関係360C-4がピン-エンドエフェクタ位置関係230C-5に変化するように、矢印16によって示されるy方向に沿ってピンに向かって移動されるエンドエフェクタ230Cを示す。位置関係230C-4から位置関係230C-5に変化すると、ピンは、発光器382Cから距離D1-2、受光器384Cから距離D2-2で光線390Cと交差する。エンドエフェクタ360Cがピンに向かって移動し、光ビーム390Cがピンを横切って移動すると、スルービームセンサ380Cがピンを検知し、エンドエフェクタ360C及びピンの位置及び向きデータが検出され、記憶される。
【0069】
図6Eは、ピンーエンドエフェクタ間位置関係360C-5がピンーエンドエフェクタ間位置関係230C-6に変化するように、矢印18によって示されるy方向に沿って(
図6Dの矢印16によって示される方向と反対の方向に)ピンから離れるように移動されるエンドエフェクタ230Cを描写する。位置関係230C-5から位置関係230C-6に変化するにつれて、ピンは、発光器382Cから距離D1-2で、かつ受光器384Cから距離D2-2で光ビーム390Cを横切る。エンドエフェクタ360Cがピンから離れるように移動し、光ビーム390Cがピンを跨ぐように移動すると、スルービームセンサ380Cがピンを検知し、エンドエフェクタ360Cおよびピンの位置および向きデータが検出され、記憶される。
【0070】
図6C―
図6Eに示されるような追加の移動は、追加の位置及び向きデータを収集するために、ピンーエンドエフェクタ間位置関係が開放空間376C内の第2突出部374Cにますます近づくように行われ得る。
図6A―
図6Eの動きは、エンドエフェクタ360Cの向きが一定に保たれつつ、エンドエフェクタ360Cの位置がx-y平面内で変化する検知動作を示す。
【0071】
図6Fは、ピンーエンドエフェクタ間位置関係230C-7が達成されるように、矢印20に示されるz軸の周りに回転され、矢印22に示されるx-y方向に沿って移動されるエンドエフェクタ230Cを描写する。
図6Fに示される移動は、エンドエフェクタ360Cの位置および向きを変化させる。
【0072】
図6Gは、ピンーエンドエフェクタ間位置関係230C-7がピンーエンドエフェクタ間位置関係230C-8に変化するように、ピンに向かって矢印24に示されるx-y方向に沿って移動されるエンドエフェクタ360Cを描写する。位置関係230C-7が位置関係230C-8に変化すると、ピンは、発光器382Cから距離D1-3で、かつ受光器384Cから距離D2-3で光ビーム390Cを横切る。エンドエフェクタ360Cがピンに向かって移動し、光ビーム390Cがピンを跨ぐように移動すると、スルービームセンサ380Cがピンを検知し、エンドエフェクタ360C及びピンの位置及び向きデータが検出され、記憶される。距離D1-3および距離D2-3の場合の特定の距離値は重要ではなく、距離D1-1および距離D2-1と同じであっても、類似していても、または明確に異なっていてもよい。
【0073】
図6Hは、ピンーエンドエフェクタ間位置関係230C-8がピンーエンドエフェクタ間位置関係230C-9に変化するように、矢印26に示されるx-y方向に沿って(
図6Gの矢印24に示される方向と反対の方向に)ピンから離れるように移動されるエンドエフェクタ360Cを描写する。位置関係230C-8から位置関係230C-9に変化すると、ピンは、発光器382Cから距離D1-3で、かつ受光器384Cから距離D2-3で光ビーム390Cと交差する。エンドエフェクタ360Cがピンから離れるように移動し、光ビーム390Cがピンを跨ぐように移動すると、スルービームセンサ380Cがピンを検知し、エンドエフェクタ360Cおよびピンの位置および向きデータが検出され、記憶される。
【0074】
上述したように、
図6A―
図6Hは、ピン230Cに対するエンドエフェクタ360Cの一連の動きを示しており、このような動きは、複数又は並列の線形平行パスが同じ向きで行われ、次に向きが新しい向きに変更され、複数又は並列の線形平行パスが新しい向きで行われ、これが必要に応じて繰り返されてデータが収集されるレーキング運動と呼ぶことができる。これらの移動は、エンドエフェクタをピンに向かって前方に移動させ(例えば、
図6A参照)、ピンが検知されると前方への移動が停止し、ピンから離れるように逆方向に移動させ(例えば、
図6B参照)、次に移動させ(例えば、
図6C参照)、そして、ピンが検知されると前方への移動が停止するようにピンに向かい移動させ(例えば、
図6D参照)、ピンが第2突出部材374Cに到達するまでピンから離れるように逆方向に移動させ(例えば、
図6E参照)など)、位置および向きを変更し(例えば、
図6F参照)、新しい向きでプロセスを繰り返すことによって行うことができる。代替的に、これらの移動は、ピンが第2突出部材374Cに到達するまで、エンドエフェクタをピンに向かって前方に移動させ、次に移動させ、次にピンから離れるように逆方向に移動させ、次に移動させ、次にピンに向かって前方に移動させ、次に移動させるなどし、次に位置及び向きを変更し、新しい向きでプロセスを繰り返すことによって行うことができる。
【0075】
図7は、第1のピン230D及び第2のピン240Dに対するエンドエフェクタ360Dの一連の動きを示す。
図7は、光ビーム390Cがピン240Dを横切って移動するときのエンドエフェクタ360Dの様々な位置および向きのオーバーレイを示し、エンドエフェクタ360Dおよびピンの位置および向きデータが検出され、記憶される。この図では、エンドエフェクタ360Dが第1の向きでかつ増分的に異なる位置にある状態でエンドエフェクタ360Dによって複数のパスが行われ、次いで、向きが第2の向きに変更され、エンドエフェクタ360Dが第2の向きでかつ増分的に異なる位置にある状態でエンドエフェクタ360Dによって複数のパスが行われ、これが合計6つの異なる向きについて繰り返される。エンドエフェクタ360Dは、必要に応じて、第1のピン230Dに対して同じプロセスを実行することができる。
【0076】
図7は、測定されている複数の位置を示す。収集されるデータが多いほど、使用されるモデルはより正確になる。このプロセスは自動化されているので、このプロセスは、できるだけ多くの検知動作を実行できるように、できるだけ長くロボットによって実行することができる。好ましくは、20個以上のデータは、20以上の検知動作を用いて収集され得る。より好ましくは、200以上のデータ点を収集することができる。
【0077】
図8は、多関節ロボットを教示する方法500の一実施形態を示すフローチャートである。
【0078】
方法500は、例えば
図1に示すように、ワークステーション内の位置にピンを設ける工程510を含む。ステーションのレイアウトは、ピンの位置および向きが決定されると、ロボットがワークピース配置/取り出し位置の位置を含むステーション内の構成要素のレイアウトを決定することができるように、ピンの位置に対して厳密に許容される。
【0079】
方法500は、多関節ロボットがロボットの動きを制御することができる座標系を有するワークステーションに隣接する領域に、多関節ロボットを提供する工程512を含む。多関節ロボットは、アームと、アームに対して旋回可能に構成されたエンドエフェクタとを有し、エンドエフェクタは、第1突出部材及び第2突出部材を有するワーク受け部を有する。エンドエフェクタは、第1突出部材及び第2突出部材の一方に設けられた発光器を含むスルービームセンサを有する。スルービームセンサは、第1突出部材および第2突出部材の他方に設けられた受光器をさらに備える。スルービームセンサは、物体(ピンなど)が発光器と受光器との間に存在するときを検知するように構成される。
【0080】
方法500は、スルービームセンサがピンを検知する検知動作を実行するように多関節ロボットを動作させる工程514を含む。検知動作は、例えば、
図6A―
図6Hおよび
図7に関して上述したように、ピンの検知ごとにエンドエフェクタの位置および/または向きを変化させて、検知された位置および向きデータを収集しながら行われる。検知動作は、多関節ロボットがピンを跨ぐようにスルービームセンサを移動させるときに、ピンが発光器と受光器との間の異なる距離に位置するように実行される。このような検知動作については、以下で詳細に説明する。
【0081】
方法500は、多関節ロボットの座標系に対するピンの位置を決定するために、検知された位置および向きデータに対して計算を実行する工程516を含む。このような計算については、以下で詳細に説明する。
【0082】
単一位置へのピンティーチングは、水平面内に2自由度を有する極座標多関節ロボットに適している。しかしながら、1つまたは複数の関節式手首を有するロボットは、所望の配置の位置および向きの両方を教示される必要がある。そのような場合、ロボットは、2つのピンの位置を識別して、所望の絶対位置および向きを決定することができる。
【0083】
ロボットは、スルービームセンサを使用してピン(本明細書では「ティーチングピン」、「アライメントピン」、または「基準ピン」とも呼ばれる)の位置を識別することが可能であり得る。しかしながら、ウェハがステーション内に配置される領域の中心にピンを配置することは必ずしも可能ではない。さらに、マッピングに使用されるスルービームの位置は、理想的かつ典型的にはエンドエフェクタの端部に配置される。これらの理由から、ロボットは、教示ピンの位置を正確に特定し、次いで、教示ピンに対する位置および向きに正確に移動しなければならない。この移動の精度は、ロボットの運動学の完全な識別に依存する。
【0084】
以下に記載される検知された位置および向きのデータに対する検知動作および計算の議論では、第1に、水平面内のロボット手首(例えば、
図1旋回軸366における関節)の知識を前提として、エンドエフェクタの運動学を識別することに焦点を当てるであろう。エンドエフェクタ(本明細書では「ブレード」と記載)は、典型的には、現場でロボット手首上に配置され、位置合わせされる。手首中心に対するスルービームエミッタおよびレシーバの位置および向きは、累積公差による誤差を受ける。一旦設置されたロボット手首に対するエンドエフェクタの手首中心の位置および向きもまた誤差を受ける。関節式手首の場合、4つの線形独立変数、すなわち、教示ピンX位置、教示ピンY位置、エンドエフェクタ手首中心(すなわち、手首が旋回する旋回軸)からスルービームまでの半径方向距離、およびスルービームトリガ誤差が存在する。さらに、1つの非線形変数:エンドエフェクタ向きが存在する。関節式手首を有するロボットは、水平面(x, y, θ)において3つの制御された自由度を有する。
【0085】
本明細書に記載される方法の一実施形態では、スルービームセンサは、制御された自由度が異なる位置および向きからピンに近づくように、プログラム的に変更される多数のサンプルについて、ピンの位置を識別するために使用される。データは、コントローラによって収集され、次いで、線形独立変数を決定するための最小二乗近似、および非線形変数を決定するための最適化検索等の回帰モデルを使用して後処理される。本質的に、ロボットはピンの周りを移動しており、ピンの位置だけでなく、スルービームセンサおよびエンドエフェクタの誤差を含むロボット自体の誤差も最もよく理解するために、異なる位置および向き(例えば、
図6A―
図6Hおよび
図7参照)からその位置を特定する。以下の方法の実施形態の説明では、まず、水平面におけるロボット手首の位置を正確に知ることを仮定する。次に、この情報の取得方法について説明する。
【0086】
広範囲の多様な情報が、回帰モデルの精度に役立ちます。データは、3自由度(x、y、θ(またはL、r、θ))の範囲にわたってエンドエフェクタを位置決めすることによって収集される。一連の異なる運動を通して多くの点を取ることによって、合計5つの異なるパラメータについて、ヒステリシスおよび回転軸からの垂直距離を含む追加情報も見つける。さらに、回帰分析を使用して最良適合を見つけるために結果を平均化するので、見つけられる情報は他のプロセスよりも正確である。本明細書で説明される例示的な回帰分析は、最小二乗法の使用を伴うが、他の数値最適化を利用して、これらの追加のパラメータを見出すことができる。
【0087】
ロボットリンケージ(例えば、上述のアーム部材およびエンドエフェクタを参照)は、典型的には、ロボットが工場を出ると変更されない。ロボットは、関節角度に関連する駆動モータのエンコーダ位置からのフィードバックに基づいて命令される。結果として得られる手首の実際の位置は、運動学的モデル、リンク長およびエンコーダオフセット角が既知である精度に依存する。整列ジグは、真のロボット運動(すなわち、ロボットのホーミング)に対応する角度オフセット識別を試みるために使用できる。しかし、位置合わせジグは機械的公差を必要とし、誤差を受けやすい。さらに、整列ジグはリンク長を識別しない。本明細書に記載の方法の実施形態では、外部測定装置(APIトラッカなど)を使用し、多種多様な動きを通じて間接が操作される際のロボット手首の実際の位置を特定することができる。エンコーダデータおよび位置データが収集され、時間的に同期される。次いで、そのようなデータは、最小二乗近似を使用して後処理され、ロボットの運動学的モデル、すなわち、リンク長および角度オフセットを判定することができる。これらの値はロボットに記憶され、コントローラによって読み取られて使用され、ロボットのより正確な制御を提供する。
【0088】
スルービーム自動ティーチングプロセスでは、1つのアライメントピンまたは2つのアライメントピンが、機械加工公差を通してステーション内に正確に配置される。
図9Aは、ロボットの特徴とアライメントピン230Eとの間の関係を示す。
図9Aは、ロボットの座標系302Eと、ロボット手首回転軸366Eと、光ビーム390Eを発する発光器382Eおよび受光器384Eを含むスルービームセンサ380Eとを含むロボットの特徴を示す。スルービームセンサ380Eは、上述の実施形態で説明したようにエンドエフェクタ上に設けられる。スルービーム自動教示プロセスでは、
図9Aに示すベクトルPによって表されるロボットの慣性座標フレーム(本明細書では座標系とも呼ばれる)内のピンの位置を決定したい。
【0089】
ロボットは、ベクトルWによって表される慣性座標フレーム内のその手首の位置のそれ自体の知識を有する。スルービームセンサは、典型的には、ウェハの垂直マッピングのために存在し、したがって、そのようなスルービームセンサは、本明細書に説明されるプロセスにおいて好都合に使用されることができる。ロボットが意図するエンドエフェクタの絶対的な向きは、角度θによって表される。光ビーム390Eと直交し、手首回転軸366Eを通過するベクトルRが存在する。ベクトルRは、公称ビーム中心から手首の回転軸366Eまでの法線距離である(回転軸からビームまでの最小距離でもある)。ピン230Eは半径rを有する。値sは、光ビーム390Eが手首から最も遠いまたは手首に最も近いピン290Eの側にそれぞれ接触しているとき、1または-1に等しいことに留意されたい。角度γによって表されるように、光ビーム390Eに対するエンドエフェクタの実際の向きには、何らかの位置ずれ誤差(本明細書では向き誤差、角度オフセット、角度誤差とも呼ばれる)が存在し得る。(エンコーダによって読み取られるエンドエフェクタの向きには、何らかのミスアライメント(又は向き)誤差が存在し得る。これは、現場で交換されるエンドエフェクタに特に当てはまる。スルービームセンサはエンドエフェクタに(ある程度の妥当な精度で)取り付けられ、ブレードは手首に取り付けられ、手首はロボットに取り付けられ、基準はエンコーダ位置である。エンコーダと、スルービームセンサにつながる部品のそのようなスタックアップとの間には、ほぼ確実にミスアライメント誤差があり、したがって、本明細書で説明される方法は、エンドエフェクタの角度を最良に決定することを可能にする。最終的に、エンドエフェクタの中心に対してウェハを位置決めする必要があり、その結果、角度が決まる。光ビーム390Eがアライメントピン230Eによって最初に遮断される接触点が特定される。ジオメトリはさらに、
図9Bにさらに示される関係のように表すことができる。
【0090】
接触点における距離のスカラー方程式は、次のように書くことができる。
【0091】
【0092】
【0093】
【0094】
半径Rおよびr、向きs、手首の位置および向きWx、Wy、およびθ、さらには向き誤差γを知ると仮定する。
【0095】
未知数PxおよびPyを決定したい。上式は、3つのロボット自由度Wx, Wy, θを変化させたn個の計測事例を用いて解くことができる。
【0096】
【0097】
【0098】
【0099】
【0100】
【0101】
【0102】
Aを用いて、ピン位置の最小二乗近似が得られる。
【0103】
解の精度は、行列XおよびベクトルBの多様性に依存する。
【0104】
自動教示プロセスは、ピン230Eの正確な位置を見つけることを意図する。しかし、+/-15mm以内のピンのおおよその位置のみが分かる可能性が高い。ロボットは、光ビーム390Eがトリップされるまで、ピンの全体領域を探索しなければならない。例えば、ロボットは、最初に与えられたおおよその位置で開始し、次いで、ピンがスルービームセンサによって検知されるまで、
図6A―
図6Hに示された移動と同様の様式でエンドエフェクタを移動させることができる。ロボットは、水平面において3つの自由度、すなわちx、y、およびθを有する。光ビーム390Eをピン230Eの近似された遠い側または近い側に接するように強制することによって、1つの制約を課すことができる。したがって、行列XおよびベクトルBにおいて必要とするデータの多様性を生成するために、2つの残りの自由度がある。第1に、エンドエフェクタの角度θを変化させることができる。第2に、光ビーム390E自体は、+/-Lの安全な長さを有する。+/-Lの範囲で距離lを変化させることができる。
【0105】
したがって、固定された角度θおよび減少する半径rについて、命令された手首位置を解くことができる。
【0106】
探索された動作範囲について、我々は、スルービームがトリップされる位置を決定する。
【0107】
図7の描写から、データは、エンドエフェクタ360Dが多数の異なる向きにあり、ピン240Dがスルービームセンサの光ビーム390Dの長さに沿った様々な位置(すなわち、スルービームセンサのエミッタおよびレシーバが取り付けられるエンドエフェクタ360Dの突出部材(またはフォーク)の開放空間の幅に沿った様々な位置)でスルービームセンサの光ビーム390Dと交差する状態で収集されることに留意されたい。
【0108】
スルービームセンサの前方接近および後方(または逆)接近の両方からデータを得ることが可能であるが、必須ではないことに留意されたい。前方アプローチおよび後方アプローチの両方からデータを得る必要はないが、前方アプローチおよび後方アプローチの両方からのデータは、スルービームセンサ内の任意のヒステリシス誤差を識別するのに役立つであろう。すなわち、光ビームが光ビームの中心で正確にトリガしない場合、前方および後方アプローチの両方からのデータは、
図10に関して以下で議論されるように、その誤差をδbとして識別する。これは、スルービームセンサに対するエンドエフェクタの中心を知る必要があるので有利である。
【0109】
フローにおいて、エンドエフェクタにおける誤差の解決を説明する。
図7、
図9Aおよび
図9Bに示すように、エンドエフェクタには、半径方向距離Rおよび角度誤差γという2つの潜在的な未知数が存在する。エンドエフェクタは、典型的には、ユーザによってロボット上に平行になるように設置および整列されるであろう。したがって、工場でこれらの値を特徴付ける機会はない。ダウエルピンは、潜在的に参照のために使用され得るが、ダウエルピンの使用は、調節可能であるエンドエフェクタ能力に影響を与え得る。
【0110】
図10は、ピンの両側からピンに接近するスルービームセンサの2つの表示を図示する。
図10は、光ビーム390F-1の後方側からピン230Fの第1表面部231Fに接近するスルービームセンサ380F-1の第1の表示(例えば、
図6Bに示される運動と同様)と、光ビーム390F-2の前方側からピン230Fの第2表面部232Fに接近するスルービームセンサ380F-2の第2の表示(例えば、
図6Aに示される運動と同様)とを図示する。第1および第2の表示は、ピン230Fに対して2つの異なる関係で設けられた同じスルービームセンサの表示であり、したがって、第1および第2の表示は、説明および描写を容易にするために異なる参照文字で描写されている。
【0111】
スルービームセンサ380F-1の第1の表示は、光ビーム390F-1を放出する発光器382F-1と、受光器384F-1とを含む。光ビーム390F-1は、後述するように、ビーム中心線392F-1および後方トリッピング点394Fを有する。ビーム中心線390F-1は、図示されるように、手首中心軸366F-1から半径Rで提供される。
【0112】
スルービームセンサ380F-2の第2の表示は、光ビーム390F-2を放出する発光器382F-2と、受光器384F-2とを含む。光ビーム390F-2は、後述するように、ビーム中心線392F-2及び前方トリッピング点396Fを有する。ビーム中心線390F-2は、図示されるように、手首中心軸366F-2から半径Rで提供される。
【0113】
手首軸からスルービームセンサの光ビームまでの真の距離は、手首回転中心軸に対するスルービームセンサの位置合わせと、光ビームがトリップされる距離とに依存する。スルービームセンサの一方の側で、発光器が光を発する。スルービームセンサの反対側では、受光器が光を受光する。ある閾値において、受光器は、コントローラへの入力/出力(I/O)信号をトリガするために、減少した量の全光を受光する。これはトリップ点と呼ばれる。トリップ点は正確にビーム中心線になくてもよい。
【0114】
トリップ点は、ビーム中心線からある距離δbで生じ得る。ここで、距離δbはビーム中心線に対して対称であると仮定する。光ビームの両側から接近することにより、半径Rの誤差を距離δbから区別しようとする。距離δbはまた、ピンの半径に関連する誤差の成分を特定するが、このような誤差は小さいと考えられることに留意されたい。
【0115】
【0116】
さらに2つの未知数Rおよびrを先の式に加える。なお、以下の説明ではガンマを扱うことに留意されたい。
【0117】
【0118】
【0119】
【0120】
【0121】
【0122】
【0123】
Aを用いて、ピン位置、半径R、および有効ピン半径rの最小二乗近似が得られる。
【0124】
ここで、βを探索する。
【0125】
【0126】
【0127】
また、線形独立変数PyおよびPxは、角度βのsinまたはcosによっても乗算されることに留意されたい。最小二乗法のみを用いてPx及びPy及びβを同時に解くことはできない。
【0128】
しかし、γの任意の値について、最小二乗法が以下の式を満たす精度を計算することができる。
【0129】
我々は、関数Eを最小化するγについて反復的に解くことができる。これは、力まかせ探索、勾配降下、または何らかの他の最適化を通して行うことができる。
【0130】
アルゴリズムの能力を証明する数値シミュレーションは、後述するベータ探索数値シミュレーションに含まれる。
【0131】
ここで、ホーミングおよびエンコーダ空間eの議論を含む、ロボットの精度の議論が提供される。
【0132】
図11は、胴体336G、肩346G、肘356Gおよび手首366Gを含むロボットの特徴間の関係を示す。(そのような特徴は、
図2の旋回軸336A、旋回軸346A、旋回軸356A、および旋回軸366Aなどの特徴に対応する。) ロボットは、第1リンクL
1と、第2リンクL
2と、第3リンクL
3と、第4リンクL
4とを有する。(そのようなリンクは、
図2のアーム部材330A、アーム部材340A、アーム部材350A、およびエンドエフェクタ360Aなどの特徴のリンク長(すなわち、旋回軸から旋回軸、またはスルービームセンサなどの対象点への旋回軸)の数学的表現である)。
【0133】
球状マウントレトロリフレクタ(SMR)367Gなどの光学ターゲットがロボットの手首366Gに設けられる。レーザトラッカ(または走査装置)369Gは、ロボットセンター(または胴体336G)に対して任意の固定位置に配置される。レーザトラッカ369Gは、手首366G上のSMRの動きを追跡するために旋回および傾斜することができる。トラッカ369Gは、レーザまたは飛行時間のいずれかを使用して、SMRからの距離を決定することができる。半径方向距離と共にトラッカ上のエンコーダフィードバックにより、トラッカは、3次元空間におけるSMRの位置を40ミクロン以内の精度で決定することができる。ロボットは、運動の全範囲にわたって移動され、それによって、多様な情報配列を作成する。運動学的モデルがそのデータに適合され、データに最も正確に適合する角度オフセットおよびリンク長が、例えば、最小二乗近似などの回帰適合を使用して、運動学的モデルから抽出される。
【0134】
この分析の結果として、ロボットの各関節は、関連する角度調整およびリンク長を有する。各関節は関連するモータを有するので、そのリンクに特有の角度調整およびリンク長は、その関節に関連するモータのエンコーダに記憶することができる。このようにして、任意のコントローラをロボットと対にすることができ、コントローラは、ロボットに固有の情報をロボットから読み取ることができる。代替的に、情報はまた、ロボット内のメモリ(例えば、メモリ406参照)に記憶され得る。
【0135】
ピン位置を正確に決定するために、ロボット手首の位置、ベクトルWも正確に知らなければならない。q、b、およびs空間を見出した。リンクが位置合わせされ、リンクが取り付けられたリンクから外側に拡張されるとき、sの値を0と定義した。しかしながら、各関節の0位置は、関節におけるエンコーダによって定義され、生エンコーダ出力は、
図11に表されるように組み立てられると、必ずしも理想的モデルに一致しないであろう。
【0136】
【0137】
関連技術のシステムは、典型的には、整列ジグまたはピンを使用して、ロボットリンクを既知の姿勢に配置する。位置合わせの品質は、ジグおよびアーム自体の公差に依存する。従来技術では、公称リンク長を想定している。リンク長は、回転軸を運動連鎖における次の回転軸に分離する距離によって定義される。従来技術では、回転軸は、アームハウジングに対する位置にあると仮定される。以下の実施において、真の回転軸は、水平面におけるロボットの観察された動きの運動学から位置付けられる。APIセンサを使用して、xy平面内の位置を複素数値として書くロボット動作Pを観察する。
【0138】
ここで、PoはAPIの座標フレームにおけるロボットセンターの複素原点であり、qは絶対座標フレームにある。
【0139】
先に見出された定義を使用して、s空間に代入することができる。
【0140】
上記で見出された定義を使用して、e空間を以下のように置き換えることができる。
【0141】
【0142】
を決定したいリンク長および角度オフセットから既知のエンコーダ情報を分離する。
【0143】
既知の値はP、e
1、e
2、e
3、e
4であり、未知の値はP
0、L
1、L
2、L
3、L
4、Δs
1、Δs
2、Δs
3、Δs
4である。 次に、以下をまとめる。
【0144】
(上記において、既知の値はP、Σe1、Σe12、Σe13、Σe14であり、未知の値はX0、L1、L2、L3、L4、Δq1、Δq2、Δq3、Δq4である。
【0145】
【0146】
n行の既知のエンコーダおよび位置情報を上記に加え、オフセットの単一列ベクトルを維持する。(ここで、既知の値はP、Σe1、Σe12、Σe13、Σe14であり、未知の値はX0、L1、L2、L3、L4、Δq1、Δq2、Δq3、Δq4である。
【0147】
また、x、yおよびzを含むように、上記を実数で書き直すことができる。
【0148】
【0149】
ここで、Pはn×1の複素列ベクトルであり、Xはn×5の複素行列であり、Aは5×1の複素列ベクトルである。X行列の転置行列を乗算する。
【0150】
【0151】
【0152】
(上記では、既知の値はP、X、X
Tであり、未知の値はAである。) 上記はベクトルAの最小二乗近似である。
【0153】
なお、上記の符号に留意されたい。次に、個々のエンコーダオフセットについて解く。
【0154】
ロボットの製造において、LiおよびΔsiパラメータは、駆動モータのエンコーダのEPROM上に2つの別個のパラメータとして記憶され得る。コントローラは、これらのパラメータにアクセスし、ホーミングを必要とせずに電源投入時にそれらを使用することができる。
【0155】
角度オフセットは重要である。リンク長の絶対精度が、大気半導体ロボット用途におけるロボットの全体的な精度にとって重要であるかどうかは、依然として理解されている。
【0156】
ウェハがデカルト座標フレームで命令されていると仮定すると、リンク長の偏差を識別することは、総誤差を低減し、したがってロボットとロボットが動作する環境との間のより大きな「バッファ」空間の必要性を低減するのに役立つはずである。リンク長の変動がわずか0.25mmである場合、潜在的な偏差および節約の合計は1mmであり得る。
【0157】
この実施の前に、リンク長はソフトウェア/ファームウェアにおいてハードコードされている。特異点位置は公称リンク長に基づいた。運動学において実際のリンク長を使用する場合、ロボットが問題なく特異点を数学的に通過できることを保証するために、教示位置として特異点位置を更新する必要がある。
【0158】
問題があることが判明し、精度に対する利益が有意でない場合、実際のリンク長は無視することができ、角度オフセットのみが使用される。
【0159】
ユーザは、ロボットが何らかの衝撃を受けてエンコーダがアームと相対的に変位したかどうかを質問することができる。機構が変位したか否かを判定する方法が必要となる可能性が高い。これは、位置合わせジグを用いて行うことができる。ロボットはまた、ツール内の元のアライメントピンに再教示され得る。ピンが移動していないと仮定すると、一貫したピン位置識別は、ロボットが損傷を受けていないことを意味する。
【0160】
今日の現場で行われていることと同様に、アームは現場で修復可能ではない。ロボットは、アーム交換のために製造業者に戻されることができ、ロボットは、再較正され、エンコーダEPROMは、交換されたモータのために更新されることができる。これには、ロボットを修理する人は誰でもAPIセンサまたは相当なコストがかかる等価物を利用する必要があることに留意されたい。
【0161】
図12―
図14の以下の説明は、ワークステーション内のピン配置およびピン位置の識別を説明する。
【0162】
図12は、ロボットの特徴と、アライメントピン230Hおよび240Hと、中心221Hを有する作業位置220Hとの間の関係を示す。
図12は、ロボットの座標系302Hと、ロボット手首回転軸366Hと、光ビーム390Hを発する発光器382Hおよび受光器384Hを含むスルービームセンサ380Hとを含むロボットの特徴を示す。スルービームセンサ380Hは、上述の実施形態で説明したように、エンドエフェクタ上に設けられる。
【0163】
ピン位置の識別は、作業環境内でロボットを向けるために使用される。1つまたは複数のピンは、無期限に環境内に残され、必要に応じて後で再較正に使用され得る。しかしながら、ピン自体が障害物となり得る。したがって、
図12に示す2ピンの状況では、プロセスは、ピンから離れた、ウェハを配置する作業位置を正確に特定する。平面空間内のこのような作業位置を特定するために、
図12に示すように2つのピンが使用される。
【0164】
ピン230Hおよび240Hは、x-y平面におけるウェハステーション座標フレームCの位置および向きを識別する。ウェハステーション内のピン230Hおよび240Hの位置は、環境の機械加工公差を通して作業位置220Hに対して正確に配置され、ベクトルCによって定義される。したがって、ロボットは、C座標フレームによって定義される向きを用いて、
図12に示されるような位置P
11+C
1にウェハを配置すべきであることを理解するであろう。これは次のベクトル方程式で表される。
【0165】
ロボット手首366Hに対するブレード上のウェハの中心は、ベクトルLによって画定される。エッジグリップエンドエフェクタの場合、ベクトルLの大きさ及び向きは、エッジグリップエンドエフェクタのフィンガ及びプランジャによって画定される。ウェハが所与の位置にピックされると、プランジャはウェハを固定された反復可能な位置に押し込む。この場合、ベクトルRとベクトルLとの間の関係は、機械加工公差またはさらなる較正によって知られていなければならない。摩擦グリップまたは真空グリップエンドエフェクタの場合、ベクトルLは、ロボットによって取り上げられるときのブレード上のウェハの位置によってのみ定義される。最終的に、1つのステーションでウェハの位置を正確に決定し、それを次のステーションに正確に配置することが望まれる。
【0166】
図13は、中心22Jを有する半導体ウェハ20Jと、ウェハプリアライナ260Jと、さらなるアライメントピン250Jとの間の関係を示す。プリアライナは、ウェハ中心22Jの位置およびウェハ外周上のノッチ(図示せず)に対するウェハ20Jの向きを決定するために、ワークステーションとともに使用されることが多い。ウェハは回転され、ベクトルDの大きさ及び向きが
図13に示すように決定される。
【0167】
プリアライナの絶対位置および向きは、2つのピンを測定することによって識別されることができる。簡単にするために、プリアライナシャフト260Jおよびピン250Jを使用して、プリアライナの絶対位置および向きを決定することができる。ピン250Jは、プリアライナの基部に取り付けることができ、したがって、プリアライナの向きを決定するために使用することができる。工場で、エンコーダの向きは、位置決め特徴を有するピンに対して教示され得る。
【0168】
プリアライナからプロセスステーション(またはワークステーション)への移動の一例を
図14に示す。
【0169】
図14は、ロボット、アライメントピン230Kおよび240K、中心221Kを有する作業位置220K、中心22Kを有する半導体ウェハ20K、ウェハプリアライナ260K、およびさらなるアライメントピン250Kの特徴間の関係を示す。
図14は、ロボットの座標系302Kと、ロボット手首回転軸366Kと、光ビーム390Kを発する発光器382Kおよび受光器384Kを含むスルービームセンサ380Kとを含むロボットの特徴を示す。スルービームセンサ380Kは、上述の実施形態で説明したように、エンドエフェクタ上に設けられる。
【0170】
ベクトルDは、プリアライナによって決定されるプリアライナに対するウェハの位置であることに留意されたい。
【0171】
【0172】
図15Aおよび
図15Bは、z位置を決定する方法を示す。
図15Aは、ピン230Lおよびエンドエフェクタ360Lを示す平面図である。エンドエフェクタ360Lは、第1突出部材372Lと第2突出部材374Lとを含む。様々な実施形態に関して上述したように、第1突出部材372L及び第2突出部材374L上には、光ビーム390Lを放出する発光及び受光器を含むスルービームセンサ380Lが設けられる。
図15Bは、
図15Aに示されるピン230Lおよびエンドエフェクタ360Lの側面図である。
【0173】
ピン230Lが上述のようにx-y平面空間内に配置されると、ピン230Lのz位置および環境114L(ワークステーションの既知の表面またはロボットが装着される装着表面を含むことができる)は、スルービームセンサ380Lがピン230Lを検知するようにエンドエフェクタ360Lがx-y平面内に位置付けられ、次いで、スルービームセンサ380Lがピン230Lをもはや検知せず、そのようなデータが記憶されるまで、エンドエフェクタがz方向に上昇される、
図15Aおよび15Bに示されるような従来のマッピングによって、スルービームセンサ380Lによって識別されることができる。
【0174】
ベータサーチ数値シミュレーションを行い、その結果を
図16に示す。ベータ探索数値シミュレーションでは、1.5度のガンマ(γ)および1mmのデルタ_b(δb)を人工的に課す。ロボットによって収集されたかのように108点のデータを人工的に生成し、以下に示す方法でPx、Py、R、delta_b、およびgammaをバックアウトするアルゴリズムを使用する。
clear
clc
Px_actual=125/1000;
Py_actual=300/1000;
%the exact radius
R_actual=500/1000;
%the nominal pin radius
r_nominal=15/1000;
%the radial disturbance associated with the beam and the pin
delta_b_actual=1/1000;
%the angular missalignment of the end effector
gamma_actual=1.5*pi/180;
r_actual=r_nominal+delta_b_actual;
%the +/- operable distance of the emitter and receiver
L=75/1000;
theta=[];
l=[];
s=[];
r_s=[];
%create the range of the search
for S=[-1 1]
for THETA=60*pi/180:15*pi/180:135*pi/180
for L_search=[-L*.8:15/1000:L*.8];
%if you want to animate the motion to the pin use the range
%if you just want to specify the pin location
for R_search=r_actual; %r+r_search:-.002:r
l=[l; L_search];
theta=[theta; THETA];
r_s = [r_s; R_search];
s=[s; S];
end
end
end
end
%define the wrist vector for all points at which the I/O is tripped
%this information is essentially determined by the encoders
Wx = Px_actual + (s.*r_s-R_actual).*cos(gamma_actual+theta)+l.*cos(gamma_actual+theta-pi/2);
Wy = Py_actual + (s.*r_s-R_actual).*sin(gamma_actual+theta)+l.*sin(gamma_actual+theta-pi/2);
gamma_search=-2*pi/180:.0001:2*pi/180;
E_best=inf;
gamma_best=NaN;
tic
for j=1:length(gamma_search)
%theta is the data we are getting back from the encoder which will not
%inherently have gamma
beta=-gamma_search(j)-theta+pi/2;
X=[sin(beta) cos(beta) -ones(length(beta),1) s];
%we only know the nominal value of r
B=Wy.*cos(beta)+Wx.*sin(beta)-s.*r_nominal;
A=inv(transpose(X)*X)*transpose(X)*B;
E=X*A-B;
Esum(j)=sum(abs(E));
if Esum(j)<E_best
E_best=Esum(j);
gamma=gamma_search(j);
Px=A(1);
Py=A(2);
R=A(3);
delta_b=A(4);
end
end
toc
figure(2)
plot(gamma_search*180/pi,Esum*1000,'b.-',...
gamma*180/pi,E_best*1000,'ro',...
gamma_actual*180/pi,0,'gv')
xlabel('gamma [deg]')
ylabel('integral of error [mm]')
legend('search','calculated optimal','actual')
Px_error=(Px-Px_actual)*1000
Py_error=(Py-Py_actual)*1000
R_error = (R-R_actual)*1000
delta_b_error = (delta_b-delta_b_actual)*1000
gamma_error=gamma*180/pi-gamma_actual*180/pi
1mmのdelta_bおよび1.5度のgammaを課す。一次元ブルートフォース最適化は、コンピュータ上で完了するのに0.023秒かかり、結果を
図16に示す。以下を計算することができる。
Px_error = 7.827072323607354e-12
Py_error = -5.628830734849544e-11
R_error = -4.544681297957709e-08
delta_b_error = -1.452637272622570e-09
gamma_error = 7.721282493300397e-04
次に、ロボットの精度を実証的検査を通して試験され、結果が
図17および18に示され、両方とも、秒単位の時間に対するミリメートル単位のAPIを伴う左右誤差のグラフを示す。(なお、
図18は、
図17のチャートの一部を拡大したものである。
図17および
図18の凡例は、コントローラ誤差、次いでモデル適合、次いでmax、次いでminを示す。
【0175】
我々は、手首の中心にSMRを配置し、関心領域による典型的な動きを表す一連の動作にてロボットを起動した。Pp_homing2.mを実行して、正確なリンク長およびオフセット角を抽出した。
%rotate and translate the API data so that it best fits the iec data using
%SVD
XAPI_W = jr_3D_fit([x_W y_W z_W],Xiec);
x_W=XAPI_W(:,1);
y_W=XAPI_W(:,2);
z_W=XAPI_W(:,3);
P=x_W + y_W*i;
X=[ 1+encoder(:,1)*0 ... exp(i*(encoder(:,1))) ... exp(i*sum(encoder(:,1:2)')') ... exp(i*sum(encoder(:,1:3)')')]; %exp(i*sum(encoder(:,1:4)')')];
A=inv(transpose(X)*X)*transpose(X)*P;
L=abs(A);
delta_q=atan2(imag(A),real(A));
delta_s1=delta_q(2); %torso adjustment
delta_s2=delta_q(3)-delta_q(2); %shoulder adjustment
delta_s3=delta_q(4)-delta_q(3); %elbow adjustment
% %delta_s4=delta_q(5)-delta_q(4); %wrist adjustment
%
L_error=(L-[0; L1; L2; L3])*1000
offsets=[delta_s1; delta_s2; delta_s3]*180/pi
L_error =
1.4805
-0.1308
1.2454
0.2283
offsets =
-0.2789
0.0432
0.4340
Lおよびdelta_sのこれらの値は、アプリケーションコードの運動学において実装される。試験の目的のために、同じまたは類似の運動プロファイルが、コントローラ上で命令されるべきであるが、運動学における調節を伴う。ここで、APIデータは、ロボットがどこに位置するかについてのコントローラの認識と正確に一致することが分かるはずである。
【0176】
本明細書に示され記載された例示的な実施形態は、本発明の好ましい実施形態を説明しており、本発明の範囲を限定するものではないことに留意されたい。上記の教示に照らして、本発明の多数の修正および変形が可能である。
【0177】
本明細書に示され記載された例示的な実施形態は、好ましい実施形態を説明しており、特許請求の範囲をいかなる形でもこれに限定するものではないことに留意されたい。上記の教示に照らして多数の修正および変形が可能である。したがって、添付の特許請求の範囲内で、本発明は、本明細書に具体的に記載された以外の方法で実施されてもよいことを理解されたい。