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

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

▶ 株式会社安川電機の特許一覧

特開2024-118194ロボットシステム、キャリブレーションツール、及びキャリブレーション方法
<>
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図1
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図2
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図3
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図4
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図5
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図6
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図7
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図8
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図9
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図10
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図11
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図12
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図13
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図14
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図15
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図16
  • 特開-ロボットシステム、キャリブレーションツール、及びキャリブレーション方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118194
(43)【公開日】2024-08-30
(54)【発明の名称】ロボットシステム、キャリブレーションツール、及びキャリブレーション方法
(51)【国際特許分類】
   H01L 21/677 20060101AFI20240823BHJP
   B25J 9/10 20060101ALI20240823BHJP
【FI】
H01L21/68 A
B25J9/10 A
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2023024485
(22)【出願日】2023-02-20
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】長渕 皓二
(72)【発明者】
【氏名】實政 泰樹
(72)【発明者】
【氏名】南 孝
【テーマコード(参考)】
3C707
5F131
【Fターム(参考)】
3C707AS24
3C707BS15
3C707DS01
3C707ES17
3C707HS23
3C707HT02
3C707HT11
3C707HT21
3C707KS01
3C707KS03
3C707KS04
3C707KS36
3C707KV11
3C707KX07
3C707LT17
3C707LV19
3C707MT02
3C707MT04
3C707NS13
5F131AA02
5F131AA03
5F131AA12
5F131CA45
5F131CA49
5F131DA07
5F131DA32
5F131DA42
5F131DB02
5F131DB43
5F131DB52
5F131DB62
5F131DB76
5F131DB82
5F131DB92
5F131DD03
5F131DD26
5F131DD28
5F131DD33
5F131DD43
5F131DD57
5F131DD72
5F131DD76
5F131KA16
5F131KA43
5F131KA47
5F131KA52
5F131KA72
5F131KB12
5F131KB32
5F131KB58
(57)【要約】
【課題】キャリブレーションを容易に行うことができるロボットシステムを提供する。
【解決手段】ロボットシステム1は、基板Wをハンド10により支持して搬送するロボット2と、基板Wの代わりに配置可能なターゲット320,420と、ハンド10に設けられ、ターゲット320,420に対向し非接触でターゲット320,420を検出するセンサ60と、第1方向に沿ってターゲット320,420に対向したセンサ60の検出結果と、センサ60の位置とに基づいて、第1方向におけるターゲット320,420の位置を検出する第1検出部113と、第1方向に垂直な第2方向に沿ってセンサ60を移動させるようにロボット2を制御し、第2方向に沿った移動によるセンサ60の検出結果の変化と、センサ60の位置とに基づいて、第2方向におけるターゲット320,420の位置を検出する第2検出部114と、を備える。
【選択図】図4

【特許請求の範囲】
【請求項1】
基板をハンドにより支持して搬送するロボットと、
前記ロボットによる搬送前又は搬送後の前記基板が配置される基板支持部に、前記基板の代わりに配置可能なターゲットと、
前記ハンドに設けられ、前記ターゲットに対向し非接触で前記ターゲットを検出するセンサと、
第1方向に沿って前記センサを前記ターゲットに対向させるように前記ロボットを制御し、前記第1方向に沿って前記ターゲットに対向した前記センサの検出結果と、前記センサの位置とに基づいて、前記第1方向における前記ターゲットの位置を検出する第1検出部と、
前記第1方向に垂直な第2方向に沿って前記センサを移動させるように前記ロボットを制御し、前記第2方向に沿った移動による前記センサの検出結果の変化と、前記センサの位置とに基づいて、前記第2方向における前記ターゲットの位置を検出する第2検出部と、
を備えるロボットシステム。
【請求項2】
前記第2検出部は、前記第1検出部により前記第1方向における前記ターゲットの位置が検出された後に、前記第2方向に沿って前記センサを移動させるように前記ロボットを制御する、
請求項1記載のロボットシステム。
【請求項3】
前記第2検出部は、
前記第2方向に沿った移動による前記センサの検出結果の変化に基づいて、前記ターゲットのアウトラインを認識し、
前記アウトラインを認識した際の前記センサの位置に基づいて、前記第2方向における前記ターゲットの位置を検出する、
請求項1記載のロボットシステム。
【請求項4】
前記第1方向に沿って前記ターゲットと対向する視点から見て、前記アウトラインは、互いに非平行でそれぞれが前記第2方向に交差する第1ラインと第2ラインとを有し、
前記第2検出部は、
前記第2方向に沿って移動する前記センサの検出結果に基づいて前記第1ラインと前記第2ラインとを認識し、
前記第1ラインを認識した際の前記センサの位置と、前記第2ラインを認識した際の前記センサの位置とに基づいて、前記第1方向と前記第2方向とに垂直な第3方向における前記ターゲットの位置を更に検出する、
請求項3記載のロボットシステム。
【請求項5】
前記第1検出部と、前記第2検出部とは、同一の平面に沿って前記センサを移動させるように前記ロボットを制御する、
請求項4記載のロボットシステム。
【請求項6】
前記第1方向及び前記第2方向はいずれも水平であり、
前記第1検出部と、前記第2検出部とは、水平な前記平面に沿って前記センサを移動させるように前記ロボットを制御する、
請求項5記載のロボットシステム。
【請求項7】
前記第1検出部と、前記第2検出部とは、前記第1方向における前記ターゲットの位置を検出するための前記センサの移動パスと、前記第2方向における前記ターゲットの位置を検出するための前記センサの移動パスとが連続するように前記ロボットを制御する、
請求項6記載のロボットシステム。
【請求項8】
前記ターゲットは、前記第2方向に沿って並び、それぞれが前記第1方向に交差する第1表面と第2表面とを有し、
前記第1ラインと前記第2ラインとは、前記第1表面と前記第2表面との間に位置している、
請求項4記載のロボットシステム。
【請求項9】
前記ロボットは、前記ハンドに接続された多関節アームを有し、
前記多関節アームは、
前記第1方向における前記ハンドの位置と、
前記第2方向における前記ハンドの位置と、
前記第1方向及び前記第2方向に垂直な軸線まわりの前記ハンドの姿勢と、
を1以上の関節の回転により変更し得るように構成されている、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項10】
前記センサは、前記ターゲットまでの距離が所定距離よりも大きい場合には第1信号を出力し、前記ターゲットまでの距離が前記所定距離よりも小さい場合には第2信号を出力するように構成されており、
前記第1検出部は、
前記所定距離よりも大きい距離にて前記センサを前記ターゲットに対向させた後、前記第1方向に沿って前記センサを前記ターゲットに近付けるように前記ロボットを制御し、
前記センサの出力が前記第1信号から前記第2信号に切り替わったときの前記センサの位置に基づいて、前記第1方向における前記ターゲットの位置を検出する、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項11】
前記第1検出部は、前記センサの出力が前記第1信号から前記第2信号に切り替わった後に、前記第1方向に沿って更に前記ターゲットに近付いたセンシング位置まで前記センサを移動させるように前記ロボットを停止させ、
前記第2検出部は、前記センシング位置に配置された前記センサを前記第2方向に沿って移動させるように前記ロボットを制御する、
請求項10記載のロボットシステム。
【請求項12】
前記センサは、前記ターゲットに対向した状態にて、前記ターゲットまでの距離を表す信号を出力するように構成されており、
前記第1検出部は、前記第1方向に沿って前記ターゲットに対向した前記センサが出力する信号と、前記センサの位置とに基づいて、前記第1方向における前記ターゲットの位置を検出する、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項13】
前記ターゲットは、前記第2方向に沿って互いに離れた第1部分と第2部分とを有し、
前記第1検出部は、
前記第1部分と前記第2部分とのそれぞれに対して、前記第1方向に沿って前記センサを対向させるように前記ロボットを制御し、
前記第1方向に沿って前記第1部分に対向した前記センサの検出結果と、前記第1方向に沿って前記第1部分に対向した前記センサの位置とに基づいて、前記第1方向における前記第1部分の位置を検出し、
前記第1方向に沿って前記第2部分に対向した前記センサの検出結果と、前記第1方向に沿って前記第2部分に対向した前記センサの位置とに基づいて、前記第1方向における前記第2部分の位置を検出し、
前記第1方向における前記第1部分の位置と、前記第1方向における前記第2部分の位置とに基づいて、前記第1方向と前記第2方向とに垂直な軸線まわりの前記ターゲットの傾きを検出する、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項14】
前記センサは、互いに離れて位置し、それぞれが非接触で前記ターゲットを検出する第1センシング部と第2センシング部とを有し、
前記第2センシング部は、前記第1方向に沿って前記第1部分が前記第1センシング部に対向する際に、前記第1方向に沿って前記第2部分に対向し、
前記第1検出部は、
前記第1方向に沿って前記第1センシング部及び前記第2センシング部を前記第1部分及び前記第2部分にそれぞれ対向させるように前記ロボットを制御し、
前記第1方向に沿って前記第1部分に対向した前記第1センシング部の検出結果と、前記第1方向に沿って前記第1部分に対向した前記第1センシング部の位置とに基づいて、前記第1方向における前記第1部分の位置を検出し、
前記第1方向に沿って前記第2部分に対向した前記第2センシング部の検出結果と、前記第1方向に沿って前記第2部分に対向した前記第2センシング部の位置とに基づいて、前記第1方向における前記第2部分の位置を検出する、
請求項13記載のロボットシステム。
【請求項15】
前記第1センシング部と前記第2センシング部とのそれぞれは、前記ターゲットまでの距離が所定距離よりも大きい場合には第1信号を出力し、前記ターゲットまでの距離が前記所定距離よりも小さい場合には第2信号を出力するように構成されており、
前記第1検出部は、
前記所定距離よりも大きい距離にて前記第1センシング部及び前記第2センシング部を前記第1部分及び前記第2部分にそれぞれ対向させた後、前記第1方向に沿って前記第1センシング部及び前記第2センシング部を前記第1部分及び前記第2部分にそれぞれ近付けるように前記ロボットを制御し、
前記第1センシング部の出力が前記第1信号から前記第2信号に切り替わったときの前記第1センシング部の位置に基づいて、前記第1方向における前記第1部分の位置を検出し、
前記第2センシング部の出力が前記第1信号から前記第2信号に切り替わったときの前記第2センシング部の位置に基づいて、前記第1方向における前記第2部分の位置を検出する、
請求項14記載のロボットシステム。
【請求項16】
前記第1方向に沿って前記第1部分と対向する視点から見て、前記第1部分のアウトラインは、互いに非平行でそれぞれが前記第2方向に交差する第1ラインと第2ラインとを有し、
前記第1方向に沿って前記第2部分と対向する視点から見て、前記第2部分の前記アウトラインは、互いに非平行でそれぞれが前記第2方向に交差する第3ラインと第4ラインとを有し、
前記第2検出部は、
前記第2方向に沿って移動する前記第1センシング部の検出結果の変化に基づいて前記第1ラインと前記第2ラインとを認識し、
前記第1ラインを認識した際の前記第1センシング部の位置と、前記第2ラインを認識した際の前記第1センシング部の位置とに基づいて、前記第1方向と前記第2方向とに垂直な第3方向における前記第1部分の位置を検出し、
前記第2方向に沿って移動する前記第2センシング部の検出結果の変化に基づいて前記第3ラインと前記第4ラインとを認識し、
前記第3ラインを認識した際の前記第2センシング部の位置と、前記第4ラインを認識した際の前記第2センシング部の位置とに基づいて、前記第3方向における前記第2部分の位置を検出する、
請求項15記載のロボットシステム。
【請求項17】
前記第1検出部は、前記第1方向に沿って前記第1部分に対向した前記センサの検出結果に基づいて前記第1方向における前記第1部分の位置を検出した後、前記第2方向に沿って移動し前記第1方向に沿って前記第2部分に対向した前記センサの検出結果に基づいて前記第1方向における前記第2部分の位置を検出する、
請求項13記載のロボットシステム。
【請求項18】
前記センサは、前記ターゲットまでの距離が所定距離よりも大きい場合には第1信号を出力し、前記ターゲットまでの距離が前記所定距離よりも小さい場合には第2信号を出力するように構成されており、
前記第1検出部は、
前記所定距離よりも大きい距離にて前記センサを前記第1部分に対向させた後、前記第1方向に沿って前記センサを前記ターゲットに近付けるように前記ロボットを制御し、
前記センサの出力が前記第1信号から前記第2信号に切り替わったときの前記センサの位置に基づいて、前記第1方向における前記第1部分の位置を検出し、
前記第2方向に沿った前記センサの移動を、前記第1方向に沿って前記第2部分に前記センサが対向した状態で停止させ、
前記第2部分に対向した前記センサを、前記第1方向に沿って前記ターゲットから遠ざけるように前記ロボットを制御し、
前記センサの出力が前記第2信号から前記第1信号に切り替わったときの前記センサの位置に基づいて、前記第1方向における前記第2部分の位置を検出する、
請求項17記載のロボットシステム。
【請求項19】
前記基板支持部は、基板を収容する基板収容部内に設けられ、
前記ロボットシステムは、前記基板の代わりに前記基板収容部内の前記基板支持部に配置可能なターゲットベースを更に備え、
前記ターゲットは、前記ターゲットベースが前記基板支持部に指示された状態にて、前記基板収容部の外から前記センサにより検出可能な位置に配置されるように前記ターゲットベースに設けられている、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項20】
前記基板支持部は、それぞれが前記基板を水平にして支持可能となるように基板収容部内に設けられた多段の基板支持部のいずれかであり、
前記ロボットシステムは、
前記センサを前記基板収容部に向けながら鉛直方向に沿って移動させるように前記ロボットを制御するスキャン制御部と、
鉛直方向に沿って移動する前記センサによる検出結果に基づいて、前記多段の基板支持部のそれぞれに前記基板が支持されているか否かを検出するマッピング部と、
を更に備える、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項21】
基板をハンドにより支持し、水平な第1方向に沿って基板収容部に出し入れするロボットの前記ハンドに設けられ、ターゲットに対向し非接触で前記ターゲットを検出するセンサの検出結果に基づいて、前記ロボットと前記基板収容部との位置関係を特定するためのキャリブレーションツールであって、
前記第1方向に沿って前記基板の代わりに前記基板収容部に出し入れ可能なターゲットベースと、
前記ターゲットベースが前記基板収容部に収容された状態にて、前記基板収容部の外から前記センサにより検出可能な位置に配置されるように前記ターゲットベースに設けられた前記ターゲットと、
を備え、
前記第1方向に沿って前記ターゲットと対向する視点から見て、前記ターゲットのアウトラインは、互いに非平行でそれぞれが水平方向に交差する第1ラインと第2ラインとを有する、キャリブレーションツール。
【請求項22】
基板をハンドにより支持して搬送するロボットの前記ハンドに設けられたセンサの検出結果に基づいて、前記ロボットによる搬送前又は搬送後の前記基板が配置される基板支持部と、前記ロボットとの位置関係を特定する方法であって、
前記基板支持部にターゲットを配置することと、
第1方向に沿って前記センサを非接触で前記ターゲットに対向させるように前記ロボットを制御し、前記第1方向に沿って非接触で前記ターゲットに対向した前記センサの検出結果と、前記センサの位置とに基づいて、前記第1方向における前記ターゲットの位置を検出することと、
前記第1方向に垂直な第2方向に沿って前記センサを移動させるように前記ロボットを制御し、前記第2方向に沿った移動による前記センサの検出結果の変化と、前記センサの位置とに基づいて、前記第2方向における前記ターゲットの位置を検出することと、
を含むキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットシステム、キャリブレーションツール、及びキャリブレーション方法に関する。
【背景技術】
【0002】
特許文献1には、ワークピースハンドリングロボットをステーションに対して校正するロボット校正装置が開示されている。ワークピースハンドリングロボットは、エンドエフェクタに取り付けられたセンサを含む。ロボット校正装置は、目標物を含む。目標物の片側には黒の領域と白の領域とを含むパターンが設けられる。ロボット校正装置は、エンドエフェクタを移動させ、センサは黒の領域と白の領域との切り替わりに基づいて目標物の中心を決定する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2004-536443号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、キャリブレーションを容易に行うことができるロボットシステムを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットシステムは、基板をハンドにより支持して搬送するロボットと、ロボットによる搬送前又は搬送後の基板が配置される基板支持部に、基板の代わりに配置可能なターゲットと、ハンドに設けられ、ターゲットに対向し非接触でターゲットを検出するセンサと、第1方向に沿ってセンサをターゲットに対向させるようにロボットを制御し、第1方向に沿ってターゲットに対向したセンサの検出結果と、センサの位置とに基づいて、第1方向におけるターゲットの位置を検出する第1検出部と、第1方向に垂直な第2方向に沿ってセンサを移動させるようにロボットを制御し、第2方向に沿った移動によるセンサの検出結果の変化と、センサの位置とに基づいて、第2方向におけるターゲットの位置を検出する第2検出部と、を備える。
【0006】
本開示の他の側面に係るキャリブレーションツールは、基板をハンドにより支持し、水平な第1方向に沿って基板収容部に出し入れするロボットのハンドに設けられ、ターゲットに対向し非接触でターゲットを検出するセンサの検出結果に基づいて、ロボットと基板収容部との位置関係を特定するためのキャリブレーションツールであって、第1方向に沿って基板の代わりに基板収容部に出し入れ可能なターゲットベースと、ターゲットベースが基板収容部に収容された状態にて、基板収容部の外からセンサにより検出可能な位置に配置されるようにターゲットベースに設けられたターゲットと、を備え、第1方向に沿ってターゲットと対向する視点から見て、ターゲットのアウトラインは、互いに非平行でそれぞれが水平方向に交差する第1ラインと第2ラインとを有する。
【0007】
本開示の更に他の側面に係るキャリブレーション方法は、基板をハンドにより支持して搬送するロボットのハンドに設けられたセンサの検出結果に基づいて、ロボットによる搬送前又は搬送後の基板が配置される基板支持部と、ロボットとの位置関係を特定する方法であって、基板支持部にターゲットを配置することと、第1方向に沿ってセンサを非接触でターゲットに対向させるようにロボットを制御し、第1方向に沿って非接触でターゲットに対向したセンサの検出結果と、センサの位置とに基づいて、第1方向におけるターゲットの位置を検出することと、第1方向に垂直な第2方向に沿ってセンサを移動させるようにロボットを制御し、第2方向に沿った移動によるセンサの検出結果の変化と、センサの位置とに基づいて、第2方向におけるターゲットの位置を検出することと、を含む。
【発明の効果】
【0008】
本開示によれば、キャリブレーションを容易に行うことができるロボットシステムを提供することができる。
【図面の簡単な説明】
【0009】
図1】ロボットシステムの構成を例示する模式図である。
図2】基板支持部に配置されたキャリブレーションツールの正面図である。
図3図2中のIII-III線に沿う断面図である。
図4】ロボットコントローラの機能的な構成を例示するブロック図である。
図5】キャリブレーションのための2の動作を例示する模式図である。
図6】第1ライン及び第2ラインの認識結果とセンサの高さとの関係を表す模式図である。
図7】スキャン制御による2の動作を例示する模式図である。
図8】キャリブレーションツールの変形例を示す小メンズである。
図9図8のキャリブレーションツールに対応する2の動作を例示する模式図である。
図10】1のセンシング部によりキャリブレーションを行うための動作を例示する模式図である。
図11】1のセンシング部によりキャリブレーションを行うための動作の変形例を示す模式図である。
図12】1のセンシング部によりキャリブレーションを行うための動作の変形例を示すグラフである。
図13】ロボットコントローラのハードウェア構成を例示するブロック図である。
図14】キャリブレーション手順を例示するフローチャートである。
図15】キャリブレーション手順を例示するフローチャートである。
図16】マッピング手順を例示するフローチャートである。
図17】搬送手順を例示するフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
〔ロボットシステム〕
図1に示すロボットシステム1は、例えば基板処理装置において、処理対象の基板Wをハンドにより支持して搬送するシステムである。基板Wの例としては、ガラスエポキシ等の樹脂材料またはガラスにより形成された矩形状のパネルが挙げられるが、これに限られない。基板Wは半導体基板であってもよい。
【0012】
例えばロボットシステム1は、基板支持部から基板Wを受け取って搬送するか、又は基板Wを搬送して基板支持部に引き渡す。例えば、基板支持部は、基板収容部9内に設けられていてもよい。例えば基板収容部9は、複数の基板Wを収容するカセットであり、多段の基板支持部92を有する。多段の基板支持部92のそれぞれは、水平方向に沿わされた基板Wを支持する。多段の基板支持部92によって、基板収容部9内が多段のスロット93に区画されている。
【0013】
基板収容部9は、開口91を更に有する。開口91は、多段のスロット93のそれぞれに対して、水平な一方向に沿って基板Wを搬入・搬出可能とするように開口している。上記水平な一方向を、以下においては「基板収容部9の奥行方向」という。また、鉛直方向と基板収容部9の奥行方向とに垂直な方向を、「基板収容部9の幅方向」という。多段の基板支持部92のそれぞれは、複数本(例えば3本)のロッド94,95,96を有する。ロッド94,95,96は、互いに平行であり、同一の高さでそれぞれが水平方向(例えば基板収容部9の奥行方向)に沿って延びている。
【0014】
基板支持部は、ロボットシステム1との間で受け渡し可能となるように基板Wを支持する部分であればよく、基板収容部9内の基板支持部92には限定されない。例えば基板支持部は、基板Wに対し処理が行われるチャンバー内において基板Wを支持する部分であってもよい。
【0015】
ロボットシステム1は、ロボット2と、ロボットコントローラ100とを有する。ロボット2は、基板Wをハンドにより支持して搬送する。例えばロボット2は、ハンド10と、多関節アーム20とを有する。
【0016】
ハンド10は、水平方向に沿って基板Wの下に配置され、基板Wを支持する。例えばハンド10は、上方から見てフォーク状であり、フォークソケット11と、一対のフォークティン12,13とを有する。フォークソケット11は、水平方向に沿って広がっており、フォークティン12,13は、上方から見て互いに平行になるように、フォークソケット11から水平な一方向に延びている。基板Wは、フォークティン12,13、によって支持される。なお、ハンド10は、基板Wを載置して搬送でき、基板収容部9に対して基板Wを搬入・搬出できるものであれば、以上の形態に限られない。
【0017】
多関節アーム20は、基板支持部92から基板Wを受け取って搬送するか、基板Wを搬送して基板支持部92に引き渡すようにハンド10を移動させる。例えば多関節アーム20は、基板支持部92から基板Wを受け取って搬送するか、基板Wを搬送して基板支持部92に引き渡すために、開口91を介して基板収容部9内に対してハンド10を出し入れする。以下、ロボット2の説明においては、開口91から基板収容部9内に進入する方向をY軸正方向とし、鉛直上方をZ軸正方向とするXYZ座標系を用いる。XYZ座標系は、ロボット2を基準とする(例えば後述の基部21を基準とする)ロボット座標系であるものとする。
【0018】
多関節アーム20は、Y方向(第1方向)におけるハンド10の位置と、X方向(第2方向)におけるハンド10の位置と、Z方向(第1方向及び第2方向に垂直な方向)に沿った軸線まわりのハンド10の姿勢とを1以上の関節の回転により変更し得るように構成されている。
【0019】
例えば多関節アーム20は、基部21と、第1アーム22と、第2アーム23と、アクチュエータ51,52,53とを有する。基部21は、基板収容部9の周囲に固定されている。第1アーム22は、鉛直な軸線31まわりに回転可能となるように基部21に接続されており、軸線31から遠ざかる方向に延びている。第2アーム23は、鉛直な軸線32まわりに回転可能となるように第1アーム22の端部に接続されており、軸線32から遠ざかる方向に延びている。
【0020】
第2アーム23の端部には、ハンド10のフォークソケット11が接続される。例えばフォークソケット11は、鉛直な軸線33まわりに回転可能となるように、第2アーム23の端部に接続されている。以上の例において、多関節アーム20は、基部21と第1アーム22とを接続する関節41と、第1アーム22と第2アーム23とを接続する関節42と、第2アーム23とフォークソケット11とを接続する関節43と、の3関節を有する。
【0021】
アクチュエータ51,52,53は、関節41,42,43をそれぞれ駆動する。例えばアクチュエータ51は軸線31まわりに第1アーム22を回転させ、アクチュエータ52は軸線32まわりに第2アーム23を回転させ、アクチュエータ53は軸線33まわりにフォークソケット11を回転させる。多関節アーム20は、アクチュエータ54を更に有してもよい。アクチュエータ54は、軸線31に沿って第1アーム22を昇降させる。アクチュエータ51,52,53,54は、例えば電動式であるがこれに限られない。
【0022】
図1においては、アクチュエータ51,52,53,54のそれぞれが駆動対象と同じ位置に示されているが、アクチュエータ51,52,53,54の少なくともいずれかは、駆動対象から離れた位置に配置され、リンク、タイミングベルト、ギヤ等の動力伝達機構を介して駆動対象に接続されていてもよい。
【0023】
第1方向におけるハンド10の位置と、第2方向におけるハンド10の位置と、第1方向及び第2方向に垂直な軸線まわりのハンド10の姿勢とを変更し得る限りにおいて、多関節アーム20の構成は変更可能である。例えば多関節アーム20は、より多くの関節を有していてもよい。関節41,42,43のいずれか2以上が、リンクなどを介して共通のアクチュエータにより駆動されてもよい。
【0024】
ロボット2は、センサ60を更に有する。センサ60は、ハンド10に設けられ、物体に対向し非接触で物体を検出する。例えばセンサ60は、反射型レーザセンサであり、水平方向へレーザ光を出射し、物体から反射して戻ってくる反射光を検出する。レーザ光の出射方向に物体が存在するか否か、又はセンサ60から物体までの距離等によって、センサ60に戻ってくる反射光は変化する。このため、反射光に基づいて、物体を検出することができる。
【0025】
センサ60は、レーザ光の出射と反射光の検出とを複数箇所で行うように構成されていてもよい。例えばセンサ60は、第1センシング部61と、第2センシング部62とを有する。第1センシング部61はフォークティン12の端部に設けられており、フォークソケット11からフォークティン12が延びる方向にレーザ光を出射して反射光を検出する。第2センシング部62はフォークティン13の端部に設けられており、フォークソケット11からフォークティン13が延びる方向にレーザ光を出射して反射光を検出する。
【0026】
センサ60は、物体までの距離が所定距離よりも大きい場合には第1信号を出力し、物体までの距離が所定距離よりも小さい場合には第2信号を出力するように構成されていてもよい。センサ60が第1センシング部61と第2センシング部62とを有する場合、第1センシング部61と第2センシング部62とのそれぞれが、物体までの距離が所定距離よりも大きい場合には第1信号を出力し、物体までの距離が所定距離よりも小さい場合には第2信号を出力するように構成されていてもよい。
【0027】
センサ60は、非接触で基板Wの存否を確認することに利用可能である。例えば、フォークティン12,13の端部を、基板収容部9外からスロット93に対向させ、基板Wが存在すべき位置にセンサ60を向けて反射光を検出し、反射光の強度に基づいて、スロット93内に基板Wが存在するか否かを確認することができる。
【0028】
ロボットコントローラ100は、予め定められた動作プログラムに基づいて、基板Wを搬送するようにロボット2を動作させる。動作プログラムは、例えば時系列に並ぶ複数の動作コマンドを含む。複数の動作コマンドは、少なくともハンド10の目標位置・目標姿勢を含む。目標位置・目標姿勢は、ロボット2と基板支持部との位置関係に基づいて定められている。
【0029】
ロボット2と基板支持部との実際の位置関係と、目標位置・目標姿勢が前提とする上記位置関係との間には僅かなずれが生じ得る。以下、このずれを「位置関係のずれ」という。位置関係のずれが生じている場合、基板支持部に対してハンド10を正確に配置することができないので、搬送後における基板Wの位置決め精度が低下することになる。そこで、基板Wの正確な搬送のためには、上記位置関係のずれを縮小するキャリブレーションが必要である。
【0030】
キャリブレーションを容易に行うために、ロボットシステム1は、基板支持部に基板Wの代わりに配置可能なターゲットを更に備える。ロボットコントローラ100は、第1方向に沿ってセンサ60をターゲットに対向させるようにロボット2を制御し、第1方向に沿ってターゲットに対向したセンサ60の検出結果と、センサ60の位置とに基づいて、第1方向におけるターゲットの位置を検出することと、第1方向に垂直な第2方向に沿ってセンサ60を移動させるようにロボット2を制御し、第2方向に沿った移動によるセンサ60の検出結果の変化と、センサ60の位置とに基づいて、第2方向におけるターゲットの位置を検出することと、を実行するように構成されている。
【0031】
1つのセンサ60によって、第1方向におけるターゲットの位置と、第2方向におけるターゲットの位置との両方を検出し、第1方向におけるターゲットの位置と、第2方向におけるターゲットの位置とに基づいて、ロボット2と基板支持部との実際の位置関係を特定することができる。従って、キャリブレーションを容易に行うことができる。以下、ターゲットの構成と、ロボットコントローラ100の構成とを詳細に例示する。
【0032】
(ターゲット)
ロボットシステム1は、上記ターゲットを含むキャリブレーションツール3を備える。図2は、基板収容部9内において基板支持部92に配置されたキャリブレーションツール3を例示する模式図である。図3は、図2中のIII-III線に沿う断面図である。図2及び図3に示すように、キャリブレーションツール3は、ターゲットベース200と、第1ブロック300と、第2ブロック400とを有する。
【0033】
ターゲットベース200は、基板Wの代わりに基板収容部9内の基板支持部92に配置される。例えばターゲットベース200は板状であり、水平方向に沿わされて基板支持部92上に配置される。ターゲットベース200は、予め定められた配置ルールに従って、基板支持部92に配置される。配置ルールは、少なくとも、何段目の基板支持部92の上にターゲットベース200を配置するかを定めるルールと、基板支持部92の上のいかなる位置にターゲットベース200を配置するかを定めるルールとを含む。
【0034】
ターゲットベース200は、上面201と、第1エッジライン202とを有する。上面201は、上記配置ルールに従ってターゲットベース200が基板支持部92上に配置された状態で上方に向かう。第1エッジライン202は、ターゲットベース200のアウトラインの一部を構成する直線状のラインである。第1エッジライン202は、上記配置ルールに従ってターゲットベース200が基板支持部92上に配置された状態で最も開口91寄りに位置し、基板収容部9の幅方向に沿う。
【0035】
第1ブロック300と、第2ブロック400とは、第1エッジライン202に平行なラインに沿って並ぶように、上面201の上に設けられている。上面201の上において、第1ブロック300と、第2ブロック400とは、第1エッジライン202寄りに位置している。第1ブロック300と第2ブロック400とは、上述したセンサ60の第1センシング部61と第2センシング部62とにそれぞれ対応するように配置されている。例えば第1ブロック300と第2ブロック400とは、第1センシング部61が第1ブロック300に対向する際に、第2センシング部62が第2ブロック400に対向するように配置されている。例えば、第1エッジライン202に平行な方向における第1ブロック300と第2ブロック400との中心間距離は、第1センシング部61と第2センシング部62との中心間距離に一致している。
【0036】
第1ブロック300は、底面311と、表面312と、裏面313とを有する。底面311は、上面201に対向する。表面312は、ターゲットベース200が上記配置ルールに従って基板支持部92に配置された状態で、基板収容部9の奥行方向に直交し、開口91の外に面する。裏面313は、表面312が面する方向とは反対の方向に面する。
【0037】
第1ブロック300と同様に、第2ブロック400は、底面411と、表面412と、裏面413とを有する。底面411は、上面201に対向する。表面412は、ターゲットベース200が上記配置ルールに従って基板支持部92に配置された状態で、基板収容部9の奥行方向に直交し、開口91の外に面する。裏面413は、表面412が面する方向とは反対の方向に面する。
【0038】
ターゲットベース200が上記配置ルールに従って基板支持部92に配置された状態において、表面312,412は、基板収容部9の外からセンサ60により検出可能な位置に配置される。基板収容部9の外からセンサ60により検出可能であるとは、基板収容部9内にセンサ60を進入させることなく検出可能であることを意味する。例えば表面312,412は、開口91から表面312,412までの距離が、センサ60の上記所定距離よりも小さくなるように配置される。
【0039】
以上の構成によれば、表面312,412が、基板収容部9の外からセンサ60により検出可能なターゲットとなる。以下、ターゲットのうち表面312により構成される部分をターゲット320とし、ターゲットのうち表面412により構成される部分をターゲット420として互いに区別する。
【0040】
基板収容部9の奥行方向に沿ってターゲット320と対向する視点から見て、ターゲット320のアウトライン330は、互いに非平行でそれぞれが基板収容部9の幅方向に交差する第1ライン331と第2ライン332とを有していてもよい。例えば底面311には、表面312と裏面313とに垂直な方向に沿ったV字状の溝314が形成されている。溝314は、上面201から遠ざかるにつれて互いに近付く第1内面315と第2内面316とを有する。底面311に溝314が形成されることによって、アウトライン330には、第1内面315に対応する第1ライン331と、第2内面316に対応する第2ライン332とがそれぞれ形成される。
【0041】
また、底面311に溝314が形成されることによって、ターゲット320は、基板収容部9の幅方向に沿って並ぶ第1表面321と第2表面322とに区画され、第1ライン331と第2ライン332とが第1表面321と第2表面322との間に位置する。
【0042】
基板収容部9の奥行方向に沿ってターゲット420と対向する視点から見て、ターゲット420のアウトライン430は、互いに非平行でそれぞれが基板収容部9の幅方向に交差する第3ライン431と第4ライン432とを有していてもよい。例えば底面411には、表面412と裏面413とに垂直な方向に沿ったV字状の溝414が形成されている。溝414は、上面201から遠ざかるにつれて互いに近付く第3内面415と第4内面416とを有する。底面411に溝414が形成されることによって、アウトライン430には、第3内面415に対応する第3ライン431と、第4内面416に対応する第4ライン432とがそれぞれ形成される。
【0043】
また、底面411に溝414が形成されることによって、ターゲット420は、基板収容部9の幅方向に沿って並ぶ第3表面421と第4表面422とに区画され、第3ライン431と第4ライン432とが第3表面421と第4表面422との間に位置する。
【0044】
なお、上記位置関係のずれが僅かである限り、基板収容部9の幅方向はロボット座標系におけるX方向に概ね一致し、基板収容部9の奥行方向はロボット座標系におけるY方向に概ね一致する。このため、基板収容部9の幅方向に交差する第1ライン331と第2ライン332とは、X方向に交差する。また、基板収容部9の幅方向に沿って並ぶ第1表面321と第2表面322とは、X方向に沿って並ぶ。同様に、基板収容部9の幅方向に交差する第3ライン431と第4ライン432とは、X方向に交差する。また、基板収容部9の幅方向に沿って並ぶ第3表面421と第4表面422とは、X方向に沿って並ぶ。
【0045】
以上においては、ターゲット320のアウトライン330が第1ブロック300の外形によって形成され、ターゲット420のアウトライン430が第2ブロック400の外形によって形成されている。アウトライン330,430は、必ずしもブロックの外形によって形成されなくてよい。例えば、表面312,412のそれぞれに、レーザ光の反射率が異なる2領域が形成され、アウトライン330,430のそれぞれが2領域の境界により構成されていてもよい。例えば、表面312,412のそれぞれに、黒色領域及び白色領域が形成され、アウトライン330,430のそれぞれが黒色領域と白色領域との境界により構成されていてもよい。
【0046】
(ロボットコントローラ)
図4は、ロボットコントローラ100の機能的な構成を例示するブロック図である。図4に示すように、ロボットコントローラ100は、機能上の構成要素(以下、「機能ブロック」という。)として、プログラム記憶部111と、ロボット制御部112と、第1検出部113と、第2検出部114と、キャリブレーション部115と、を有する。プログラム記憶部111は、上記動作プログラムを記憶する。上記動作プログラムにおいて、上記複数の動作コマンドの少なくとも一部の目標位置・目標姿勢は、基板収容部9を基準とする座標系により定められていてもよい。以下、基板収容部9を基準とする座標系を、外部座標系という。
【0047】
この場合、上記動作プログラムは、上記複数の動作コマンドに加えて、座標変換パラメータを更に含む。座標変換パラメータは、ロボット座標系と、外部座標系との間の座標変換を行うためのパラメータである。このような動作プログラムによれば、上記位置関係が、座標変換パラメータにより表されることとなる。
【0048】
プログラム記憶部111は、複数種類の動作にそれぞれ対応する複数の動作プログラムを記憶していてもよい。複数の動作プログラムの例としては、上記キャリブレーションのためにロボット2を動作させるためのプログラム(以下、「キャリブレーションプログラム」という。)、ロボット2に基板Wを搬送させるためのプログラム(以下、「搬送プログラム」という。)、後述のマッピングのためにロボット2を動作させるためのプログラム(以下、「スキャンプログラム」という。)等が挙げられる。
【0049】
ロボット制御部112は、プログラム記憶部111が記憶する動作プログラムに基づいて、ロボット2を動作させる。プログラム記憶部111が複数の動作プログラムを記憶する場合、ロボット制御部112は、指定された動作に対応する動作プログラムを選択し、選択した動作プログラムに基づいてロボット2を動作させる。
【0050】
上述したように、目標位置・目標姿勢が外部座標系により定められている場合、ロボット制御部112は、上記座標変換パラメータに基づいて、目標位置・目標姿勢をロボット座標系における目標位置・目標姿勢に変換し、変換済みの目標位置・目標姿勢までハンド10を移動させるようにロボット2を制御する。例えばロボット制御部112は、目標位置・目標姿勢までハンド10を移動させるためのアクチュエータ51,52,53の動作角度と、アクチュエータ54による第1アーム22の昇降高さとを逆運動学演算により算出し、算出結果に基づいてアクチュエータ51,52,53,54を動作させる。
【0051】
第1検出部113と、第2検出部114とは、ターゲットベース200が上記配置ルールに従って基板支持部92に配置された状態にて、キャリブレーションのために少なくともターゲット320の位置を検出する。第1検出部113は、第1方向(例えばY方向)に沿ってセンサ60(例えば第1センシング部61)をターゲット320,420の一部(例えばターゲット320の第1表面321)に対向させるようにロボット2を制御し、第1方向に沿って第1表面321に対向した第1センシング部61の検出結果と、第1センシング部61の位置とに基づいて、第1方向における第1表面321の位置を検出する。例えば第1検出部113は、第1方向に沿って第1センシング部61を第1表面321に対向させることをロボット制御部112に要求する。ロボット制御部112は、上記キャリブレーションプログラムに基づいて、第1方向に沿って第1センシング部61を第1表面321に対向させるようにロボット2を制御する。
【0052】
例えばロボット制御部112は、上記所定距離よりも大きい距離にて第1センシング部61を第1表面321に対向させた後、第1方向に沿って第1センシング部61を第1表面321に近付けるようにロボット2を制御する(図5の(a)参照)。第1検出部113は、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向における第1表面321の位置を検出する。
【0053】
第1センシング部61の位置は、例えばロボット座標系におけるセンサ60の位置である。例えば第1検出部113は、アクチュエータ51,52,53,54の動作結果に基づく順道学演算により、ロボット座標系におけるハンド10の位置・姿勢を算出し、ハンド10の位置・姿勢と、ハンド10を基準とした第1センシング部61の位置とに基づいて、第1センシング部61のY座標を算出する。ハンド10を基準とした第1センシング部61の位置は、予め定められ、記憶されている。
【0054】
同様に、第1方向における第1表面321の位置は、ロボット座標系における第1表面321の位置である。第1センシング部61の出力が第1信号から第2信号に切り替わったときに、第1センシング部61から第1表面321までの距離は、上記所定距離にほぼ一致する。そこで、第1検出部113は、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61のY座標に、上記所定距離を加算して、第1表面321のY座標を算出する。
【0055】
センサ60は、ターゲットに対向した状態にて、ターゲットまでの距離を表す信号を出力するように構成されていてもよい。第1センシング部61と第2センシング部62とのそれぞれが、ターゲットに対向した状態にて、ターゲットまでの距離を表す信号を出力するように構成されていてもよい。この場合、第1検出部113は、第1方向に沿ってターゲット320に対向した第1センシング部61が出力する信号と、第1センシング部61の位置とに基づいて、第1方向におけるターゲット320の位置を検出してもよい。例えば第1検出部113は、第1方向に沿ってターゲット320に対向した第1センシング部61のY座標に、第1センシング部61が出力する信号に基づく距離を加算して、第1方向におけるターゲット320のY座標を算出してもよい。
【0056】
第2検出部114は、第1方向に垂直な第2方向(例えばX方向)に沿ってセンサ60(例えば第1センシング部61)を移動させるようにロボット2を制御し、第2方向に沿った移動による第1センシング部61の検出結果の変化と、第1センシング部61の位置とに基づいて、第2方向におけるターゲット320の位置を検出する。第2検出部114は、第1検出部113により第1方向におけるターゲット320の位置が検出された後に、第2方向に沿って第1センシング部61を移動させるようにロボット2を制御してもよい。第1方向におけるターゲット320の位置が検出された後であれば、ターゲット320からの反射光が確実にセンサ60に届いているので、第2方向に沿って第1センシング部61が移動する際に、第1表面321に対向する状態における第1センシング部61の検出結果と、第1表面321に対向しない状態における第1センシング部61の検出結果とに差が表れ易くなる。このため、第2方向における第1表面321の位置を、第1センシング部61による検出結果の変化に基づいてより高い信頼性で検出することができる。
【0057】
例えば第2検出部114は、第1方向における第1表面321の位置が検出された後に、第2方向に沿って第1センシング部61を移動させることをロボット制御部112に要求する。ロボット制御部112は、上記キャリブレーションプログラムに基づいて、第2方向に沿って第1センシング部61を移動させるようにロボット2を制御する。例えばロボット制御部112は、第1表面321に対向する位置から第2表面322に対向する位置に向かって第1センシング部61を移動させるようにロボット2を制御する(図5の(b)参照)。
【0058】
第2検出部114は、第2方向に沿った移動による第1センシング部61の検出結果の変化に基づいて、ターゲット320のアウトライン330を認識し、アウトライン330を認識した際のセンサ60の位置に基づいて、第2方向におけるターゲットの位置を検出する。例えば第2検出部114は、第2方向に沿ったセンサ60の移動によって、センサ60の出力が第2信号から第1信号又は第1信号から第2信号に切り替わったことに基づいてアウトライン330を認識する。
【0059】
第2方向におけるターゲット320,420の位置も、ロボット座標系におけるターゲット320,420の位置である。例えば第2検出部114は、アクチュエータ51,52,53,54の動作結果に基づく順道学演算により、ロボット座標系におけるハンド10の位置・姿勢を算出し、ハンド10の位置・姿勢と、ハンド10を基準としたセンサ60の位置とに基づいて、ロボット座標系におけるセンサ60のX座標を算出する。第2検出部114は、アウトライン330を認識した際のセンサ60のX座標に基づいて、ターゲット320のX座標を算出する。
【0060】
第2検出部114は、第2方向に沿って移動する第1センシング部61の検出結果に基づいて第1ライン331と第2ライン332とを認識し、第1ライン331を認識した際の第1センシング部61の位置と、第2ライン332を認識した際の第1センシング部61の位置とに基づいて、第1方向と第2方向とに垂直な第3方向(例えばZ方向)におけるターゲット320の位置を更に検出してもよい。1つのセンサ60によって、第3方向におけるターゲット320の位置に更に基づくキャリブレーションを行うことができる。
【0061】
第3方向におけるターゲット320の位置も、ロボット座標系におけるターゲット320の位置である。例えば第2検出部114は、アクチュエータ51,52,53,54の動作結果に基づく順道学演算により、ロボット座標系におけるハンド10の位置・姿勢を算出し、ハンド10の位置・姿勢と、ハンド10を基準としたセンサ60の位置とに基づいて、ロボット座標系におけるセンサ60のX座標及びZ座標を算出する。第2検出部114は、第1ライン331を認識した際のセンサ60のX座標及びZ座標と、第2ライン332を認識した際のセンサ60のX座標及びZ座標とに基づいて、ターゲット320のZ座標を算出する。
【0062】
例えば図6に示すように、第2検出部114は、第1ライン331を認識した際のセンサ60のX座標及びZ座標として図中の(X1,Z1)を算出し、第2ライン332を認識した際のセンサ60のX座標及びZ座標として図中の(X2,Z2)を算出する。第2検出部114は、次式に基づいて、底面311からのセンサの高さH1を算出する。
H1=D1-D1・|X2-X1|/W1
D1: 溝314の深さ。
W1: 溝314の開口幅。
その後、第2検出部114は、センサ60のZ座標から高さH1を減算して、底面311のZ座標を算出する。センサ60のZ座標は、上記Z1であってもよく、上記Z2であってもよく、Z1とZ2との平均値であってもよい。
【0063】
第2検出部114は、第1ライン331を認識した際のセンサ60のX座標と、第2ライン332を認識した際のセンサ60のX座標とに基づいて、ターゲット320のX座標を算出してもよい。例えば第2検出部114は、上記X1と上記X2との平均値をターゲット320のX座標値して算出する。
【0064】
第1検出部113と、第2検出部114とは、第1センシング部61が第1表面321に対向した状態を起点として、同一の平面に沿って第1センシング部61を移動させるようにロボット2を制御してもよい。例えばロボット制御部112は、第1表面321に対向した状態にて第1方向に沿って第1表面321に近付く際の第1センシング部61の移動パスと、第2方向に沿って移動する際の第1センシング部61の移動パスとが同一の平面に含まれるように構成されたキャリブレーションプログラムに基づいてロボット2を制御する。第3方向への第1センシング部61の移動がないので、第3方向における第1センシング部61の振動を抑制することができる。従って、第3方向におけるターゲット320の位置をより高い信頼性で検出することができる。
【0065】
第1方向がY方向であり、第2方向がX方向である場合、第1検出部113と、第2検出部114とは、第1センシング部61が第1表面321に対向した状態を起点として、水平な上記平面に沿って第1センシング部61を移動させることとなる。このため、第3方向における第1センシング部61の振動を更に抑制することができる。従って、第3方向におけるターゲット320の位置をより高い信頼性で検出することができる。
【0066】
第1方向がY方向であり、第2方向がX方向であることはあくまで一例であり、第1方向及び第1方向の少なくとも一方は必ずしも水平でなくてもよい。
【0067】
第1検出部113と、第2検出部114とは、第1方向におけるターゲット320の位置を検出するための第1センシング部61の移動パスと、第2方向におけるターゲット320の位置を検出するための第1センシング部61の移動パスとが連続するようにロボット2を制御してもよい。例えばロボット制御部112は、第1表面321に対向する位置までの第1センシング部61の移動パスと、第1表面321に対向した状態にて第1方向に沿って第1表面321に近付く際の第1センシング部61の移動パスと、第2方向に沿って移動する際の第1センシング部61の移動パスとが連続するように構成されたキャリブレーションプログラムに基づいてロボット2を制御する。キャリブレーションを更に容易に行うことができる。
【0068】
第1検出部113は、第1センシング部61の出力が第1信号から第2信号に切り替わった後に、第1方向に沿って更にターゲット320に近付いたセンシング位置まで第1センシング部61を移動させるようにロボット2を制御し、第2検出部114は、センシング位置に配置された第1センシング部61を第2方向に沿って移動させるようにロボット2を制御してもよい。ターゲット320に対向する状態における第1センシング部61の検出結果と、ターゲット320に対向しない状態における第1センシング部61の検出結果との差をより確実に出現させることができる。例えば、ターゲット320が、第1方向に垂直な平面に対し僅かに傾斜している場合、第2方向への移動に伴って第1センシング部61がターゲット320から遠ざかり、第1センシング部61の出力が第2信号から第1信号に切り替わってしまうことも考えられる。この場合、未だターゲット320に対向しているにもかかわらず、ターゲット320に対向しない状態になったことを誤検出することとなり、ターゲット320のアウトライン330を正確に認識できない。第2方向に沿って第1センシング部61を移動させる前に、第1センシング部61を更にターゲット320に近付けておくことで、ターゲット320の傾きに起因するアウトライン330の誤認識を防ぐことができる。
【0069】
第1検出部113は、第2方向に沿って互いに離れた第1部分と第2部分とのそれぞれに対して、第1方向における位置の検出を行い、第1部分に対する検出結果と第2部分に対する検出結果とに基づいて第1方向と第2方向とに垂直な軸線(例えばZ軸)まわりのターゲット320,420の傾きを検出してもよい。ターゲットの傾きに更に基づくキャリブレーションを行うことができる。第1部分と第2部分との両方がターゲット320に属していてもよく、第1部分がターゲット320に属し、第2部分がターゲット420に属していてもよい。
【0070】
例えば第1検出部113は、第1部分と第2部分とのそれぞれに対して、第1方向に沿ってセンサ60を対向させるようにロボット2を制御し、第1方向に沿って第1部分に対向したセンサ60の検出結果と、第1方向に沿って第1部分に対向したセンサ60の位置とに基づいて、第1方向における第1部分の位置(例えばロボット座標系のY座標)を検出し、第1方向に沿って第2部分に対向したセンサ60の検出結果と、第1方向に沿って第2部分に対向したセンサ60の位置とに基づいて、第1方向における第2部分の位置(例えばロボット座標系のY座標)を検出し、第1方向における第1部分の位置と、第1方向における第2部分の位置とに基づいて、第1方向と第2方向とに垂直な軸線まわりのターゲット320,420の傾きを検出する。
【0071】
例えば第1検出部113は、第1部分のY座標と第2部分のY座標との差分を、第1部分と第2部分との間隔で除算し、除算結果の反余弦又は反正接をターゲット320,420の傾き角度として算出する。
【0072】
第1検出部113は、第1部分に対する検出を第1センシング部61により行い、第2部分に対する検出を第2センシング部62により行ってもよい。例えば第1検出部113は、第1方向に沿って第1センシング部61及び第2センシング部62を第1部分(例えば第1表面321)及び第2部分(例えば第3表面421)にそれぞれ対向させるようにロボット2を制御し、第1方向に沿って第1表面321に対向した第1センシング部61の検出結果と、第1方向に沿って第1表面321に対向した第1センシング部61の位置とに基づいて、第1方向における第1表面321の位置(例えばロボット座標系のY座標)を検出し、第1方向に沿って第3表面421に対向した第2センシング部62の検出結果と、第1方向に沿って第3表面421に対向した第2センシング部62の位置とに基づいて、第1方向における第3表面421の位置(例えばロボット座標系のY座標)を検出する。第1部分を検出するためのロボット2の動作と、第2部分を検出するためのロボット2の動作とを同時に進行させることができる。従って、傾きを短時間で検出することができる。第1部分と第2部分との間隔を大きくすると、ターゲット320,420の傾きの検出精度は高くなるが、第1部分と第2部分とをロボットシステム1のセンシング部で検出する場合、第1部分と第2部分との間におけるセンサの移動時間が長くなる。これに対し、第1センシング部と第2センシング部とを備える構成によれば、第1部分と第2部分との間でセンサを移動させる必要が無いので、ターゲットの傾きの検出精度の向上と、検出時間の短縮との両立を図ることができる。
【0073】
例えば第1検出部113は、所定距離よりも大きい距離にて第1センシング部61及び第2センシング部62を第1表面321及び第3表面421にそれぞれ対向させた後、第1方向に沿って第1センシング部61及び第2センシング部62を第1表面321及び第3表面421にそれぞれ近付けるようにロボット2を制御し、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向における第1表面321の位置(例えばロボット座標系のY座標)を検出し、第2センシング部62の出力が第1信号から第2信号に切り替わったときの第2センシング部62の位置に基づいて、第1方向における第3表面421の位置(例えばロボット座標系のY座標)を検出する。
【0074】
以上のように、第1検出部113による検出に第1センシング部61及び第2センシング部62の両方を用いる場合、第2検出部114による検出に第1センシング部61及び第2センシング部62の両方を用いてもよい。例えば第2検出部114は、上述したように、第2方向に沿って移動する第1センシング部61の検出結果の変化に基づいて第1ライン331と第2ライン332とを認識するのに加えて、第2方向に沿って移動する第2センシング部62の検出結果の変化に基づいて第3ライン431と第4ライン432とを認識し、第3ライン431を認識した際の第2センシング部62の位置と、第4ライン432を認識した際の第2センシング部62の位置とに基づいて、第3方向におけるターゲット420の位置を検出する。第3方向におけるターゲット420の位置の検出手法は、第1ライン331を認識した際の第1センシング部61の位置と、第2ライン332を認識した際の第2センシング部62の位置とに基づいて、第3方向におけるターゲット320の位置を検出する上述の手法と同じである。
【0075】
第1センシング部61と第2センシング部62とを利用して、第3方向におけるターゲット320の位置と、第3方向におけるターゲット420の位置とに更に基づくキャリブレーションを行うことができる。これにより、例えば、ターゲット320の位置とターゲット420の位置との平均値を検出結果とすることで、第3方向におけるターゲット320,420の位置の検出結果の信頼性を高めることができる。また、第3方向におけるターゲット320の位置と、第3方向におけるターゲット420の位置との差を織り込んだキャリブレーションを行うことができる。
【0076】
キャリブレーション部115は、第1検出部113による検出結果と、第2検出部114による検出結果とに基づいて、上記座標変換パラメータを算出する。例えばキャリブレーション部115は、ロボット座標系におけるターゲット320,420の座標と、Z軸まわりのターゲット320,420の傾きとに基づいて、ロボット座標系を基準とした外部座標系の位置及び姿勢を算出する。キャリブレーション部115は、算出した座標変換パラメータによって、プログラム記憶部111が記憶する座標変換パラメータを更新する。これにより、上記位置関係のずれが縮小される。
【0077】
ロボットコントローラ100は、スキャン制御部116と、マッピング部117と、マップ情報記憶部118とを更に有してもよい。スキャン制御部116は、センサ60(例えば第1センシング部61及び第2センシング部62の少なくともいずれか)を基板収容部9に向けながら鉛直方向に沿って移動させるようにロボット2を制御する。例えばスキャン制御部116は、基板収容部9における最上部のスロット93に、開口91の外からY方向に沿って第1センシング部61及び第2センシング部62を対向させた後、基板収容部9における最下部のスロット93に対向するまで第1センシング部61及び第2センシング部62を下降させるスキャン制御をロボット制御部112に要求する。スキャン制御部116は、基板収容部9における最下部のスロット93に、開口91の外からY方向に沿って第1センシング部61及び第2センシング部62を対向させた後、基板収容部9における最上部のスロット93に対向するまで第1センシング部61及び第2センシング部62を上昇させるスキャン制御をロボット制御部112に要求してもよい。ロボット制御部112は、上記スキャンプログラムをプログラム記憶部111が記憶する複数の動作プログラムから選択し、選択したスキャンプログラムに基づいてスキャン制御を実行する(図7参照)。
【0078】
スキャン制御部116は、キャリブレーション部115により座標変換パラメータが更新された後に、上記スキャン制御をロボット制御部112に要求する。ロボット制御部112は、スキャン制御部116から要求されたスキャン制御を、更新された座標変換パラメータを含むスキャン制御プログラムに基づいて実行する。
【0079】
マッピング部117は、上記スキャン制御によって、鉛直方向に沿って移動する第1センシング部61及び第2センシング部62による検出結果に基づいて、多段の基板支持部92のそれぞれに基板Wが支持されているか否か(多段のスロット93のそれぞれに基板Wが収容されているか否か)を検出し、検出結果を基板収容部9のマップ情報としてマップ情報記憶部118に記憶させる。これにより、マップ情報記憶部118が記憶するマップ情報が更新される。多段のスロット93のそれぞれに基板が収容されているか否かの検出にもセンサを有効活用することができる。
【0080】
搬送制御部119は、例えば上位コントローラ900からの指令に基づいて、基板支持部92から基板Wを受け取って搬送するか、又は基板Wを搬送して基板支持部92に引き渡すようにロボット2を制御する。以下、基板支持部92から基板Wを受け取って搬送するか、又は基板Wを搬送して基板支持部92に引き渡すようにロボット2を制御することを「搬送制御」という。例えば搬送制御部119は、搬送制御をロボット制御部112に実行する。ロボット制御部112は、要求された搬送制御に対応する上記搬送プログラムをプログラム記憶部111が記憶する複数の動作プログラムから選択し、選択した搬送プログラムに基づいて搬送制御を実行する。
【0081】
搬送制御部119は、キャリブレーション部115により座標変換パラメータが更新され、マッピング部117によりマップ情報が更新された後に、上記搬送制御をロボット制御部112に要求する。ロボット制御部112は、搬送制御部119から要求された搬送制御を、更新された座標変換パラメータを含む搬送プログラムと、更新されたマップ情報とに基づいて実行する。
【0082】
(ターゲットの変形例)
以上においては、第1ライン331と第2ライン332とが、第1表面321と第2表面322との間に位置し、第3ライン431と第4ライン432とが第3表面421と第4表面422との間に位置するターゲット320,420を例示したがこれに限られない。図8に示すように、ターゲット320が第1ライン331と第2ライン332との間に位置し、ターゲット420が第3ライン431と第4ライン432との間に位置していてもよい。
【0083】
この場合、第1検出部113は、図9の(a)に示すように、所定距離よりも大きい距離にて第1センシング部61及び第2センシング部62をターゲット320及びターゲット420とにそれぞれ対向させた後、第1方向に沿って第1センシング部61及び第2センシング部62を第1表面321及び第2表面322にそれぞれ近付けるようにロボット2を制御し、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向におけるターゲット320の位置(例えばロボット座標系のY座標)を検出し、第2センシング部62の出力が第1信号から第2信号に切り替わったときの第2センシング部62の位置に基づいて、第1方向におけるターゲット420の位置(例えばロボット座標系のY座標)を検出する。
【0084】
図9の(b)に示すように、第2検出部114は、第2方向に沿って一方側に第1センシング部61及び第2センシング部62を移動させるようにロボット2を制御し、第1センシング部61の出力信号が第2信号から第1信号に切り替わったことにより第1ライン331を認識する。第2センシング部62の出力信号が第2信号から第1信号に切り替わったことにより第3ライン431を認識する。その後、第2検出部114は、図9の(c)に示すように、第2方向に沿って反対側に第1センシング部61及び第2センシング部62を移動させるようにロボット2を制御し、第1センシング部61の出力信号が第2信号から第1信号に切り替わったことにより第2ライン332を認識する。第2センシング部62の出力信号が第2信号から第1信号に切り替わったことにより第4ライン432を認識する。
【0085】
第2検出部114は、第1ライン331を認識した際の第1センシング部61のX座標及びZ座標と、第2ライン332を認識した際の第1センシング部61のX座標及びZ座標とに基づいて、ターゲット320のX座標とZ座標とを検出する。同様に、第2検出部114は、第3ライン431を認識した際の第2センシング部62のX座標及びZ座標と、第4ライン432を認識した際の第2センシング部62のX座標及びZ座標とに基づいて、ターゲット420のX座標とZ座標とを検出する。
【0086】
図10に示すように、キャリブレーションツール3は第1ブロック300及び第2ブロック400のいずれか一方を有していなくてもよい。センサ60は、第1センシング部61及び第2センシング部62のいずれか一方を有していなくてもよい。図10においては、第2ブロック400及び第2センシング部62が省略されている。この場合、第1検出部113は、上記第1部分に対する検出と、上記第2部分に対する検出との両方を第1センシング部61により行ってもよい。この場合、例えば第1表面321が上記第1部分として用いられ、第2表面322が上記第2部分として用いられる。
【0087】
例えば第1検出部113は、第1方向に沿って第1表面321に対向した第1センシング部61の検出結果に基づいて第1方向における第1表面321の位置(例えばロボット座標系のY座標)を検出した後、第2方向に沿って移動し第1方向に沿って第2部分に対向した第1センシング部61の検出結果に基づいて第1方向における第2表面322の位置を検出する。例えば第1検出部113は、上記所定距離よりも大きい距離にて第1センシング部61を第1表面321に対向させた後、第1方向に沿って第1センシング部61を第1表面321に近付けるようにロボット2を制御し(図10の(a)参照)、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向における第1表面321の位置を検出し、第2方向に沿った第1センシング部61の移動を、第1方向に沿って第2表面322に第1センシング部61が対向した状態で停止させ(図10の(b)参照)、第2部分に対向した第1センシング部61を、第1方向に沿って第2表面322から遠ざけるようにロボット2を制御し(図10の(c)参照)、第1センシング部61の出力が第2信号から第1信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向における第2表面322の位置を検出する。第2方向に沿った第1センシング部61の移動は、例えば第2検出部114がロボット2に実行させる移動である。ロボットシステム1のセンシング部によって、ターゲット320の傾きに更に基づくキャリブレーションを行うことができる。
【0088】
ターゲット320が第1ライン331と第2ライン332との間に位置し、ターゲット420が第3ライン431と第4ライン432との間に位置する場合においても、キャリブレーションツール3は第1ブロック300及び第2ブロック400のいずれか一方を有していなくてもよく、センサ60は第1センシング部61及び第2センシング部62のいずれか一方を有していなくてもよい。図11は、第2ブロック400及び第2センシング部62が省略され、第1ライン331と第2ライン332との間にターゲット320が位置する場合を例示している。この場合、例えば第1検出部113及び第2検出部114は、上記所定距離よりも大きい距離でターゲット320から離れ、且つターゲット320には対向しない位置において、第1センシング部61をY軸正方向に向けるようにロボット2を制御する。その後、第1検出部113及び第2検出部114は、ターゲット320を毎回通過するように、第2方向に沿って第1センシング部61を往復させることを、片道ごとに第1センシング部61をターゲット320に近付けながら実行するようにロボット2を制御する。図12の二点鎖線は、第1センシング部61の移動軌跡を表している。図12の縦軸はY軸に沿い、図12の横軸はX軸に沿っている。
【0089】
ターゲット320がZ軸まわりに傾いた状態において、図12の軌跡で第1センシング部61を移動させる場合、第1センシング部61が第2信号となる区間が、ターゲット320に近くなるにつれて長くなった後、一定値となる。以下、第1センシング部61が第2信号となる区間を「第2信号区間」という。図12において、第2信号区間は実線で表されている。第2信号区間が一定となったことは、第1ライン331と第2ライン332との間の全域において、第1センシング部61が第2信号となったことを意味する。第1検出部113は、例えば、第2信号区間が最初に生じた際の第1センシング部61のY座標である位置P1と、第2信号空間が最初に上記一定値となった際の第1センシング部61のY座標である位置P2とを認識する。第1検出部113は、位置P2における第2信号区間の長さと位置P1における第2信号区間の長さとの差分である未検出長さL2と、位置P1から位置P2までの前進長さL1とに基づいて、Z軸周りのターゲット320の傾きを検出する。例えば第1検出部113は、前進長さL1を未検出長さL2で除算し、除算結果の反余弦又は反正接を、Z軸まわりのターゲット320の傾き角度として算出する。
【0090】
(ハードウェア構成)
図13は、ロボットコントローラ100のハードウェア構成を例示するブロック図である。図13に示すように、ロボットコントローラ100は、回路190を有する。回路190は、プロセッサ191と、メモリ192と、ストレージ193と、ドライバ回路194と、通信ポート195とを有する。ストレージ193は、フラッシュメモリ、又はハードディスク等の1以上の不揮発性メモリデバイスにより構成されている。ストレージ193は、第1方向に沿ってセンサ60をターゲットに対向させるようにロボット2を制御し、第1方向に沿ってターゲットに対向したセンサ60の検出結果と、センサ60の位置とに基づいて、第1方向におけるターゲットの位置を検出することと、第1方向に垂直な第2方向に沿ってセンサ60を移動させるようにロボット2を制御し、第2方向に沿った移動によるセンサ60の検出結果の変化と、センサ60の位置とに基づいて、第2方向におけるターゲットの位置を検出することと、をロボットコントローラ100に実行させるプログラムを記憶している。例えばストレージ193は、上述した機能ブロックをロボットコントローラ100に構成させるためのプログラムを記憶している。
【0091】
メモリ192は、例えばランダムアクセスメモリ等の1以上の揮発性メモリデバイスにより構成されている。メモリ192は、ストレージ193からロードされたプログラムを一時的に記憶する。プロセッサ191は、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)等の1以上の演算デバイスにより構成されている。プロセッサ191は、メモリ192にロードされたプログラムを実行することで、上述した各機能ブロックを第2ブロック400に構成させる。プロセッサ191による演算結果は一時的にメモリ192に格納される。
【0092】
ドライバ回路194は、プロセッサ191からの要求に応じてロボット2を動作させる。通信ポート195は、プロセッサ191からの要求に応じ、上位コントローラ900と通信する。入出力ポート196は、プロセッサ191からの要求に応じ、センサ60との間で情報の入出力を行う。
【0093】
〔制御手順〕
制御方法の例として、ロボットコントローラ100が実行する制御手順を例示する。この制御手順は、キャリブレーション方法の一例であるキャリブレーション手順と、マッピング手順と、搬送手順とを含む。マッピング手順はキャリブレーション手順の後に実行され、搬送手順はマッピング手順及びキャリブレーション手順の後に実行される。以下、各手順を例示する。
【0094】
(キャリブレーション手順)
キャリブレーション手順は、第1方向に沿ってセンサ60を非接触でターゲット320に対向させるようにロボット2を制御し、第1方向に沿って非接触でターゲット320に対向したセンサ60の検出結果と、センサ60の位置とに基づいて、第1方向におけるターゲット320の位置を検出することと、第1方向に垂直な第2方向に沿ってセンサ60を移動させるようにロボット2を制御し、第2方向に沿った移動によるセンサ60の検出結果の変化と、センサ60の位置とに基づいて、第2方向におけるターゲット320の位置を検出することと、を含む。
【0095】
例えばロボットコントローラ100は、図14に示すように、ステップS01,S02を実行する。ステップS01では、第1検出部113が、所定距離よりも大きい距離にて第1センシング部61及び第2センシング部62を第1表面321及び第3表面421にそれぞれ対向させるようにロボット2を制御し、ステップS02では、第1検出部113が、第1方向に沿って第1センシング部61及び第2センシング部62を第1表面321及び第3表面421にそれぞれ近付ける動作をロボット2に開始させる。
【0096】
次に、ロボットコントローラ100はステップS04を実行する。ステップS04では、第1センシング部61により第1表面321が検出されたか否かを第1検出部113が確認する。例えば第1検出部113は、第1センシング部61の出力が第1信号から第2信号に切り替わったか否かを確認する。
【0097】
ステップS04において、第1センシング部61により第1表面321が検出されたと判定した場合、ロボットコントローラ100はステップS05を実行する。ステップS05では、第1検出部113が、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向における第1表面321の位置(例えばロボット座標系のY座標)を算出する。
【0098】
ステップS04において、第1センシング部61により第1表面321は検出されていないと判定した場合、ロボットコントローラ100はステップS06を実行する。ステップS06では、第2センシング部62により第3表面421が検出されたか否かを第1検出部113が確認する。例えば第1検出部113は、第2センシング部62の出力が第1信号から第2信号に切り替わったか否かを確認する。
【0099】
ステップS06において、第2センシング部62により第3表面421が検出されたと判定した場合、ロボットコントローラ100はステップS07を実行する。ステップS07では、第1検出部113が、第2センシング部62の出力が第1信号から第2信号に切り替わったときの第2センシング部62の位置に基づいて、第1方向における第3表面421の位置(例えばロボット座標系のY座標)を算出する。
【0100】
次に、ロボットコントローラ100はステップS08を実行する。ステップS06において、第2センシング部62により第3表面421は検出されていないと判定した場合、ロボットコントローラ100はステップS07を実行することなくステップS08を実行する。ステップS08では、第1センシング部61による第1表面321の検出と、第2センシング部62による第3表面421の検出との両方が完了したか否かを第1検出部113が確認する。
【0101】
ステップS08において、第1センシング部61による第1表面321の検出と、第2センシング部62による第3表面421の検出との少なくともいずれかが完了していないと判定した場合、ロボットコントローラ100は処理をステップS04に戻す。ステップS08において、第1センシング部61による第1表面321の検出と、第2センシング部62による第3表面421の検出との両方が完了したと判定した場合、ロボットコントローラ100はステップS11,S12を実行する。
【0102】
ステップS11では、第1表面321のY座標と、第3表面421のY座標とに基づいて、Z軸まわりのターゲット320,420の傾きを第1検出部113が算出する。ステップS12では、第1方向に沿って更にターゲット320,420に近付いたセンシング位置までセンサ60を移動させるようにロボット2を制御する。
【0103】
図15に示すように、ロボットコントローラ100は、次にステップS21を実行する。ステップS21では、第2検出部114が、第2方向に沿って第1センシング部61及び第2センシング部62を移動させる動作をロボット2に開始させる。
【0104】
次に、ロボットコントローラ100はステップS22を実行する。ステップS22では、第2検出部114が、第1センシング部61により第1ライン331を認識できたか否かを確認する。例えば第2検出部114は、第1センシング部61の出力が第2信号から第1信号に切り替わったか否かを確認する。
【0105】
ステップS22において、第1センシング部61により第1ライン331を認識できたと判定した場合、ロボットコントローラ100はステップS23を実行する。ステップS23では、第1ライン331を認識した際における第1センシング部61のX座標及びZ座標を第2検出部114が算出する。
【0106】
ステップS22において、第1センシング部61により第1ライン331を認識できなかったと判定した場合、ロボットコントローラ100はステップS24を実行する。ステップS24では、第2検出部114が、第1センシング部61により第2ライン332を認識できたか否かを確認する。例えば第2検出部114は、第1センシング部61の出力が第1信号から第2信号に切り替わったか否かを確認する。
【0107】
ステップS24において、第1センシング部61により第2ライン332を認識できたと判定した場合、ロボットコントローラ100はステップS25を実行する。ステップS25では、第2ライン332を認識した際における第1センシング部61のX座標及びZ座標を第2検出部114が算出する。
【0108】
ステップS24において、第1センシング部61により第2ライン332を認識できなかったと判定した場合、ロボットコントローラ100はステップS26を実行する。ステップS26では、第2検出部114が、第2センシング部62により第3ライン431を認識できたか否かを確認する。例えば第2検出部114は、第2センシング部62の出力が第2信号から第1信号に切り替わったか否かを確認する。
【0109】
ステップS26において、第2センシング部62により第3ライン431を認識できたと判定した場合、ロボットコントローラ100はステップS27を実行する。ステップS27では、第3ライン431を認識した際における第2センシング部62のX座標及びZ座標を第2検出部114が算出する。
【0110】
ステップS26において、第2センシング部62により第3ライン431を認識できなかったと判定した場合、ロボットコントローラ100はステップS28を実行する。ステップS28では、第2検出部114が、第2センシング部62により第4ライン432を認識できたか否かを確認する。例えば第2検出部114は、第2センシング部62の出力が第1信号から第2信号に切り替わったか否かを確認する。
【0111】
ステップS28において、第2センシング部62により第4ライン432を認識できたと判定した場合、ロボットコントローラ100はステップS29を実行する。ステップS29では、第4ライン432を認識した際における第2センシング部62のX座標及びZ座標を第2検出部114が算出する。
【0112】
次に、ロボットコントローラ100はステップS31を実行する。ステップS28において、第2センシング部62により第4ライン432を認識できなかったと判定した場合、ロボットコントローラ100はステップS29を実行することなくステップS31を実行する。ステップS31では、第1ライン331を認識した際における第1センシング部61のX座標及びZ座標と、第2ライン332を認識した際における第1センシング部61のX座標及びZ座標と、第3ライン431を認識した際における第2センシング部62のX座標及びZ座標と、第4ライン432を認識した際における第2センシング部62のX座標及びZ座標との全ての算出が完了したか否かを第2検出部114が確認する。
【0113】
ステップS31において、いずれかの算出が完了していないと判定した場合、ロボットコントローラ100は処理をステップS22に戻す。ステップS31において、全ての算出が完了したと判定した場合、ロボットコントローラ100はステップS32,S33,S34を実行する。ステップS32では、第1検出部113が、第2方向に沿った第1センシング部61及び第2センシング部62の移動をロボット2に停止させる。
【0114】
ステップS33では、第2検出部114が、第1ライン331を認識した際における第1センシング部61のX座標及びZ座標と、第2ライン332を認識した際における第1センシング部61のX座標及びZ座標とに基づいて、上述のようにターゲット320のX座標及びZ座標を産出する。また、第2検出部114は、第3ライン431を認識した際における第2センシング部62のX座標及びZ座標と、第4ライン432を認識した際における第2センシング部62のX座標及びZ座標とに基づいて、上述のようにターゲット420のX座標及びZ座標を算出する。
【0115】
ステップS34では、キャリブレーション部115が、キャリブレーション部115は、第1検出部113による検出結果と、第2検出部114による検出結果とに基づいて、上記座標変換パラメータを算出する。算出した座標変換パラメータによって、プログラム記憶部111が記憶する座標変換パラメータを更新する。以上でキャリブレーション手順が完了する。
【0116】
(マッピング手順)
マッピング手順は、上記マップ情報をマップ情報記憶部118に記憶させる手順である。図16に示すように、ロボットコントローラ100は、ステップS41,S42,S43を実行する。ステップS41では、スキャン制御部116が、基板収容部9における最上部のスロット93に、開口91の外からY方向に沿って第1センシング部61及び第2センシング部62を対向させるようにロボット2を制御する。ステップS42では、スキャン制御部116が、第1センシング部61及び第2センシング部62の下降を開始させるようにロボット2を制御する。ステップS43では、マッピング部117が、第1センシング部61及び第2センシング部62により基板Wを検出できたか否かを確認する。例えばマッピング部117は、第1センシング部61及び第2センシング部62の出力が第1信号から第2信号に切り替わったか否かを確認する。
【0117】
ステップS43において、第1センシング部61及び第2センシング部62により基板Wを検出できたと判定した場合、ロボットコントローラ100はステップS44を実行する。ステップS44では、第1センシング部61及び第2センシング部62により基板Wを検出できた時点で第1センシング部61及び第2センシング部62が対向するスロット93の識別情報を、マッピング部117がマップ情報記憶部118に記憶させる。
【0118】
次に、ロボットコントローラ100はステップS45を実行する。ステップS43において、第1センシング部61及び第2センシング部62により基板Wを検出できなかったと判定した場合、ロボットコントローラ100はステップS44を実行することなくステップS45を実行する。ステップS45では、スキャン制御部116が、第1センシング部61及び第2センシング部62が、基板収容部9における最下部のスロット93に対応する高さに達したか否かをスキャン制御部116が確認する。ステップS45において、スキャン制御部116は最下部のスロット93に対応する高さに達していないと判定した場合、ロボットコントローラ100は処理をステップS43に戻す。ステップS45において、スキャン制御部116が最下部のスロット93に対応する高さに達したと判定した場合、ロボットコントローラ100はステップS46を実行する。ステップS46では、スキャン制御部116が、第1センシング部61及び第2センシング部62の下降をロボット2に停止させる。
【0119】
以上でマッピング手順が完了する。スキャン制御部116は、ステップS41において、基板収容部9における最下部のスロット93に第1センシング部61及び第2センシング部62を対向させ、ステップS42~ステップS46において、第1センシング部61及び第2センシング部62を上昇させてもよい。
【0120】
(搬送手順)
搬送手順は、ロボット2に基板Wを搬送させる手順である。図17に示すよう、ロボットコントローラ100は、ステップS51,S52を実行する。、ステップS51では、搬送制御部119が、上位コントローラ900からの搬送指令を待機する。S52では、第1検出部113が、上位コントローラ900からの搬送指令に応じた搬送制御をロボット2に実行させる。ロボットコントローラ100は、以上を繰り返す。
【0121】
〔まとめ〕
例示した実施形態は、以下の構成を含む。
(1) 基板Wをハンド10により支持して搬送するロボット2と、ロボット2による搬送前又は搬送後の基板Wが配置される基板支持部92に、基板Wの代わりに配置可能なターゲット320,420と、ハンド10に設けられ、ターゲット320,420に対向し非接触でターゲット320,420を検出するセンサ60と、第1方向に沿ってセンサ60をターゲット320,420に対向させるようにロボット2を制御し、第1方向に沿ってターゲット320,420に対向したセンサ60の検出結果と、センサ60の位置とに基づいて、第1方向におけるターゲット320,420の位置を検出する第1検出部113と、第1方向に垂直な第2方向に沿ってセンサ60を移動させるようにロボット2を制御し、第2方向に沿った移動によるセンサ60の検出結果の変化と、センサ60の位置とに基づいて、第2方向におけるターゲット320,420の位置を検出する第2検出部114と、を備えるロボットシステム1。
ロボットシステム1によれば、1つのセンサ60によって、第1方向におけるターゲット320,420の位置と、第2方向におけるターゲット320,420の位置との両方を検出し、第1方向におけるターゲット320,420の位置と、第2方向におけるターゲット320,420の位置とに基づいて、ロボット2と搬送先との位置関係を特定することができる。従って、キャリブレーションを容易に行うことができる。
【0122】
(2) 第2検出部114は、第1検出部113により第1方向におけるターゲット320,420の位置が検出された後に、第2方向に沿ってセンサ60を移動させるようにロボット2を制御する、(1)記載のロボットシステム1。
第2方向に沿ってセンサ60が移動する際に、ターゲット320,420に対向する状態におけるセンサ60の検出結果と、ターゲット320,420に対向しない状態におけるセンサ60の検出結果とに差が表れ易くなる。従って、第2方向におけるターゲット320,420の位置をより高い信頼性で検出することができる。
【0123】
(3) 第2検出部114は、第2方向に沿った移動によるセンサ60の検出結果の変化に基づいて、ターゲット320,420のアウトラインを認識し、アウトラインを認識した際のセンサ60の位置に基づいて、第2方向におけるターゲット320,420の位置を検出する、(1)又は(2)記載のロボットシステム1。
第2方向におけるターゲット320,420の位置を容易に検出することができる。
【0124】
(4) 第1方向に沿ってターゲット320,420と対向する視点から見て、アウトラインは、互いに非平行でそれぞれが第2方向に交差する第1ライン331と第2ライン332とを有し、第2検出部114は、第2方向に沿って移動するセンサ60の検出結果に基づいて第1ライン331と第2ライン332とを認識し、第1ライン331を認識した際のセンサ60の位置と、第2ライン332を認識した際のセンサ60の位置とに基づいて、第1方向と第2方向とに垂直な第3方向におけるターゲット320,420の位置を更に検出する、(3)記載のロボットシステム1。
1つのセンサ60によって、第3方向におけるターゲット320,420の位置に更に基づくキャリブレーションを行うことができる。
【0125】
(5) 第1検出部113と、第2検出部114とは、同一の平面に沿ってセンサ60を移動させるようにロボット2を制御する、(4)記載のロボットシステム1。
第3方向への移動がないので、第3方向におけるセンサ60の振動を抑制することができる。従って、第3方向におけるターゲット320,420の位置をより高い信頼性で検出することができる。
【0126】
(6) 第1方向及び第2方向はいずれも水平であり、第1検出部113と、第2検出部114とは、水平な平面に沿ってセンサ60を移動させるようにロボット2を制御する、(5)記載のロボットシステム1。
第3方向におけるセンサ60の振動を更に抑制することができる。従って、第3方向におけるターゲット320,420の位置をより高い信頼性で検出することができる。
【0127】
(7) 第1検出部113と、第2検出部114とは、第1方向におけるターゲット320,420の位置を検出するためのセンサ60の移動パスと、第2方向におけるターゲット320,420の位置を検出するためのセンサ60の移動パスとが連続するようにロボット2を制御する、(6)記載のロボットシステム1。
キャリブレーションを更に容易に行うことができる。
【0128】
(8) ターゲット320,420は、第2方向に沿って並び、それぞれが第1方向に交差する第1表面321と第2表面322とを有し、第1ライン331と第2ライン332とは、第1表面321と第2表面322との間に位置している、(4)~(7)のいずれか記載のロボットシステム1。
第1表面321に対向する位置から第2表面322に対向する位置への片道の移動、又は第2表面322に対向する位置から第1表面321に対向する位置への片道の移動によって、第1ライン331と第2ライン332とをセンサ60に認識させることができる。従って、キャリブレーションの効率を向上させることができる。
【0129】
(9) ロボット2は、ハンド10に接続された多関節アーム20を有し、多関節アーム20は、第1方向におけるハンド10の位置と、第2方向におけるハンド10の位置と、第1方向及び第2方向に垂直な軸線まわりのハンド10の姿勢と、を1以上の関節の回転により変更し得るように構成されている、(1)~(8)のいずれか記載のロボットシステム1。
多関節アーム20をキャリブレーションに有効活用することができる。
【0130】
(10) センサ60は、ターゲット320,420までの距離が所定距離よりも大きい場合には第1信号を出力し、ターゲット320,420までの距離が所定距離よりも小さい場合には第2信号を出力するように構成されており、第1検出部113は、所定距離よりも大きい距離にてセンサ60をターゲット320,420に対向させた後、第1方向に沿ってセンサ60をターゲット320,420に近付けるようにロボット2を制御し、センサ60の出力が第1信号から第2信号に切り替わったときのセンサ60の位置に基づいて、第1方向におけるターゲット320,420の位置を検出する、(1)~(9)のいずれか記載のロボットシステム1。
【0131】
(11) 第1検出部113は、センサ60の出力が第1信号から第2信号に切り替わった後に、第1方向に沿って更にターゲット320,420に近付いたセンシング位置までセンサ60を移動させるようにロボット2を停止させ、第2検出部114は、センシング位置に配置されたセンサ60を第2方向に沿って移動させるようにロボット2を制御する、(10)記載のロボットシステム1。
ターゲット320,420に対向する状態におけるセンサ60の検出結果と、ターゲット320,420に対向しない状態におけるセンサ60の検出結果との差をより確実に出現させることができる。例えば、ターゲット320,420が、第1方向に垂直な平面に対し僅かに傾斜している場合、第2方向への移動に伴ってセンサ60がターゲット320,420から遠ざかり、センサ60の出力が第2信号から第1信号に切り替わってしまうことも考えられる。この場合、未だターゲット320,420に対向しているにもかかわらず、ターゲット320,420に対向しない状態になったことをご検出することとなり、ターゲット320,420のアウトラインを正確に認識できない。第2方向に沿ってセンサ60を移動させる前に、センサ60を更にターゲット320,420に近付けておくことで、ターゲット320,420の傾きに起因するアウトラインの誤認識を防ぐことができる。
【0132】
(12) センサ60は、ターゲット320,420に対向した状態にて、ターゲット320,420までの距離を表す信号を出力するように構成されており、第1検出部113は、第1方向に沿ってターゲット320,420に対向したセンサ60が出力する信号と、センサ60の位置とに基づいて、第1方向におけるターゲット320,420の位置を検出する、(1)~(9)のいずれか記載のロボットシステム1。
第1方向におけるターゲット320,420の位置を検出するためのロボット2の動作を減らすることができる。
【0133】
(13) ターゲット320,420は、第2方向に沿って互いに離れた第1部分と第2部分とを有し、第1検出部113は、第1部分と第2部分とのそれぞれに対して、第1方向に沿ってセンサ60を対向させるようにロボット2を制御し、第1方向に沿って第1部分に対向したセンサ60の検出結果と、第1方向に沿って第1部分に対向したセンサ60の位置とに基づいて、第1方向における第1部分の位置を検出し、第1方向に沿って第2部分に対向したセンサ60の検出結果と、第1方向に沿って第2部分に対向したセンサ60の位置とに基づいて、第1方向における第2部分の位置を検出し、第1方向における第1部分の位置と、第1方向における第2部分の位置とに基づいて、第1方向と第2方向とに垂直な軸線まわりのターゲット320,420の傾きを検出する、(1)~(12)のいずれか記載のロボットシステム1。
ターゲット320,420の傾きに更に基づくキャリブレーションを行うことができる。
【0134】
(14) センサ60は、互いに離れて位置し、それぞれが非接触でターゲット320,420を検出する第1センシング部61と第2センシング部62とを有し、第2センシング部62は、第1方向に沿って第1部分が第1センシング部61に対向する際に、第1方向に沿って第2部分に対向し、第1検出部113は、第1方向に沿って第1センシング部61及び第2センシング部62を第1部分及び第2部分にそれぞれ対向させるようにロボット2を制御し、第1方向に沿って第1部分に対向した第1センシング部61の検出結果と、第1方向に沿って第1部分に対向した第1センシング部61の位置とに基づいて、第1方向における第1部分の位置を検出し、第1方向に沿って第2部分に対向した第2センシング部62の検出結果と、第1方向に沿って第2部分に対向した第2センシング部62の位置とに基づいて、第1方向における第2部分の位置を検出する、(13)記載のロボットシステム1。
第1部分を検出するためのロボット2の動作と、第2部分を検出するためのロボット2の動作とを同時に進行させることができる。従って、傾きを短時間で検出することができる。第1部分と第2部分との間隔を大きくすると、ターゲット320,420の傾きの検出精度は高くなるが、第1部分と第2部分とを1のセンシング部で検出する場合、第1部分と第2部分との間におけるセンサ60の移動時間が長くなる。これに対し、第1センシング部61と第2センシング部62とを備える構成によれば、第1部分と第2部分との間でセンサ60を移動させる必要が無いので、ターゲット320,420の傾きの検出精度の向上と、検出時間の短縮との両立を図ることができる。
【0135】
(15) 第1センシング部61と第2センシング部62とのそれぞれは、ターゲット320,420までの距離が所定距離よりも大きい場合には第1信号を出力し、ターゲット320,420までの距離が所定距離よりも小さい場合には第2信号を出力するように構成されており、第1検出部113は、所定距離よりも大きい距離にて第1センシング部61及び第2センシング部62を第1部分及び第2部分にそれぞれ対向させた後、第1方向に沿って第1センシング部61及び第2センシング部62を第1部分及び第2部分にそれぞれ近付けるようにロボット2を制御し、第1センシング部61の出力が第1信号から第2信号に切り替わったときの第1センシング部61の位置に基づいて、第1方向における第1部分の位置を検出し、第2センシング部62の出力が第1信号から第2信号に切り替わったときの第2センシング部62の位置に基づいて、第1方向における第2部分の位置を検出する、(14)記載のロボットシステム1。
ターゲット320,420までの距離が所定距離よりも大きいか小さいかを検出するセンサ60を、ターゲット320,420の傾きの検出に有効活用することができる。
【0136】
(16) 第1方向に沿って第1部分と対向する視点から見て、第1部分のアウトラインは、互いに非平行でそれぞれが第2方向に交差する第1ライン331と第2ライン332とを有し、第1方向に沿って第2部分と対向する視点から見て、第2部分のアウトラインは、互いに非平行でそれぞれが第2方向に交差する第3ライン431と第4ライン432とを有し、第2検出部114は、第2方向に沿って移動する第1センシング部61の検出結果の変化に基づいて第1ライン331と第2ライン332とを認識し、第1ライン331を認識した際の第1センシング部61の位置と、第2ライン332を認識した際の第1センシング部61の位置とに基づいて、第1方向と第2方向とに垂直な第3方向における第1部分の位置を検出し、第2方向に沿って移動する第2センシング部62の検出結果の変化に基づいて第3ライン431と第4ライン432とを認識し、第3ライン431を認識した際の第2センシング部62の位置と、第4ライン432を認識した際の第2センシング部62の位置とに基づいて、第3方向における第2部分の位置を検出する、(15)記載のロボットシステム1。
第1センシング部61と第2センシング部62とを利用して、第3方向における第1部分の位置と、第3方向における第2部分の位置とに更に基づくキャリブレーションを行うことができる。これにより、例えば、第1部分の位置と第2部分の位置との平均値を検出結果とすることで、第3方向におけるターゲット320,420の位置の検出結果の信頼性を高めることができる。また、第3方向における第1部分の位置と、第3方向における第2部分の位置との差を織り込んだキャリブレーションを行うことができる。
【0137】
(17) 第1検出部113は、第1方向に沿って第1部分に対向したセンサ60の検出結果に基づいて第1方向における第1部分の位置を検出した後、第2方向に沿って移動し第1方向に沿って第2部分に対向したセンサ60の検出結果に基づいて第1方向における第2部分の位置を検出する、(13)記載のロボットシステム1。
1のセンシング部によって、ターゲット320,420の傾きに更に基づくキャリブレーションを行うことができる。
【0138】
(18) センサ60は、ターゲット320,420までの距離が所定距離よりも大きい場合には第1信号を出力し、ターゲット320,420までの距離が所定距離よりも小さい場合には第2信号を出力するように構成されており、第1検出部113は、所定距離よりも大きい距離にてセンサ60を第1部分に対向させた後、第1方向に沿ってセンサ60をターゲット320,420に近付けるようにロボット2を制御し、センサ60の出力が第1信号から第2信号に切り替わったときのセンサ60の位置に基づいて、第1方向における第1部分の位置を検出し、第2方向に沿ったセンサ60の移動を、第1方向に沿って第2部分にセンサ60が対向した状態で停止させ、第2部分に対向したセンサ60を、第1方向に沿ってターゲット320,420から遠ざけるようにロボット2を制御し、センサ60の出力が第2信号から第1信号に切り替わったときのセンサ60の位置に基づいて、第1方向における第2部分の位置を検出する、(17)記載のロボットシステム1。
【0139】
(19) 基板支持部92は、基板Wを収容する基板収容部9内に設けられ、ロボットシステム1は、基板Wの代わりに基板収容部9内の基板支持部92に配置可能なターゲットベース200を更に備え、ターゲット320,420は、ターゲットベース200が基板支持部92に指示された状態にて、基板収容部9の外からセンサ60により検出可能な位置に配置されるようにターゲットベース200に設けられている、(1)~(18)のいずれか記載のロボットシステム1。
キャリブレーションの効率を更に向上させることができる。また、キャリブレーション前に基板収容部9にセンサ60を進入させる際に、ハンド10を基板収容部9の周囲に衝突させてしまう事態を回避することもできる。
【0140】
(20) 基板支持部92は、それぞれが基板Wを水平にして支持可能となるように基板収容部9内に設けられた多段の基板支持部92のいずれかであり、ロボットシステム1は、センサ60を基板収容部9に向けながら鉛直方向に沿って移動させるようにロボット2を制御するスキャン制御部116と、鉛直方向に沿って移動するセンサ60による検出結果に基づいて、多段の基板支持部92のそれぞれに基板Wが支持されているか否かを検出するマッピング部117と、を更に備える、(1)~(19)のいずれか記載のロボットシステム1。
多段のスロットのそれぞれに基板Wが収容されているか否かの検出にもセンサ60を有効活用することができる。
【0141】
(21) 基板Wをハンド10により支持し、水平な第1方向に沿って基板収容部9に出し入れするロボット2のハンド10に設けられ、ターゲット320,420に対向し非接触でターゲット320,420を検出するセンサ60の検出結果に基づいて、ロボット2と基板収容部9との位置関係を特定するためのキャリブレーションツール3であって、第1方向に沿って基板Wの代わりに基板収容部9に出し入れ可能なターゲットベース200と、ターゲットベース200が基板収容部9に収容された状態にて、基板収容部9の外からセンサ60により検出可能な位置に配置されるようにターゲットベース200に設けられたターゲット320,420と、を備え、第1方向に沿ってターゲット320,420と対向する視点から見て、ターゲット320,420のアウトラインは、互いに非平行でそれぞれが水平方向に交差する第1ライン331と第2ライン332とを有する、キャリブレーションツール3。
【0142】
(22) 基板Wをハンド10により支持して搬送するロボット2のハンド10に設けられたセンサ60の検出結果に基づいて、ロボット2による搬送前又は搬送後の基板Wが配置される基板支持部92と、ロボット2との位置関係を特定する方法であって、基板支持部92にターゲット320,420を配置することと、第1方向に沿ってセンサ60を非接触でターゲット320,420に対向させるようにロボット2を制御し、第1方向に沿って非接触でターゲット320,420に対向したセンサ60の検出結果と、センサ60の位置とに基づいて、第1方向におけるターゲット320,420の位置を検出することと、第1方向に垂直な第2方向に沿ってセンサ60を移動させるようにロボット2を制御し、第2方向に沿った移動によるセンサ60の検出結果の変化と、センサ60の位置とに基づいて、第2方向におけるターゲット320,420の位置を検出することと、を含むキャリブレーション方法。
【0143】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【0144】
W…基板、9…基板収容部、92…基板支持部、1…ロボットシステム、2…ロボット、10…ハンド、20…多関節アーム、60…センサ、61…第1センシング部、62…第2センシング部、3…キャリブレーションツール、200…ターゲットベース、331…第1ライン、332…第2ライン、321…第1表面、322…第2表面、431…第3ライン、432…第4ライン、421…第3表面、422…第4表面、320,420…ターゲット、330,430…アウトライン、113…第1検出部、114…第2検出部、116…スキャン制御部、117…マッピング部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17