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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-11
(45)【発行日】2022-07-20
(54)【発明の名称】搬送システム及び搬送制御方法
(51)【国際特許分類】
   H01L 21/677 20060101AFI20220712BHJP
   B25J 9/10 20060101ALI20220712BHJP
【FI】
H01L21/68 A
B25J9/10 A
【請求項の数】 9
(21)【出願番号】P 2018236119
(22)【出願日】2018-12-18
(65)【公開番号】P2020098851
(43)【公開日】2020-06-25
【審査請求日】2021-05-19
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】南 孝
(72)【発明者】
【氏名】木村 吉希
【審査官】内田 正和
(56)【参考文献】
【文献】特開2005-123261(JP,A)
【文献】特開2011-183492(JP,A)
【文献】国際公開第2016/189740(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H01L 21/677
B25J 9/10
(57)【特許請求の範囲】
【請求項1】
搬送対象の基板を支持するハンドと、
前記ハンドを移動させるアームと、
前記ハンドに固定された互いに非平行な第1ライン及び第2ラインが、前記基板の搬送経路における既知の基準位置を通過するように、前記第1ライン及び前記第2ラインに交差するスキャン方向に沿って前記ハンドを前記アームにより移動させるスキャン制御部と、
前記スキャン制御部が前記ハンドを移動させているときに、前記第1ラインが前記基準位置に達したタイミングと、前記第2ラインが前記基準位置に達したタイミングとに基づいて、前記スキャン方向と交差する方向における前記ハンドの位置ずれを検出する位置検出部と、を備える搬送システム。
【請求項2】
前記位置検出部は、前記スキャン制御部が前記ハンドを移動させているときに前記第1ラインが前記基準位置に達したタイミングに基づいて、前記スキャン方向における前記ハンドの位置ずれを更に検出する、請求項1記載の搬送システム。
【請求項3】
前記スキャン制御部は、
前記スキャン方向に交差する方向で互いに異なる第1スキャン位置と第2スキャン位置とのそれぞれにおいて前記スキャン方向に沿って前記ハンドを移動させ、
前記位置検出部は、
前記スキャン制御部が前記第1スキャン位置において前記ハンドを移動させているときに前記第1ラインが前記基準位置に達したタイミングと、前記スキャン制御部が前記第2スキャン位置において前記ハンドを移動させているときに前記第1ラインが前記基準位置に達したタイミングとに基づいて、前記ハンドの傾きを更に検出する、請求項1又は2記載の搬送システム。
【請求項4】
前記位置検出部は、前記ハンドの傾きの検出結果に基づいて、前記ハンドの位置ずれの検出結果を補正する、請求項3記載の搬送システム。
【請求項5】
互いに異なる第1位置及び第2位置のそれぞれを前記基準位置として、前記スキャン制御部による前記ハンドの移動を実行させ、前記スキャン制御部が前記第1位置を前記基準位置として前記ハンドを移動させているときに前記第1ラインが前記第1位置に達したタイミングと、前記スキャン制御部が前記第2位置を前記基準位置として前記ハンドを移動させているときに前記第1ラインが前記第2位置に達したタイミングとに基づいて前記アームの基部の傾きを検出するアーム傾き検出部を更に備える、請求項1~4のいずれか一項記載の搬送システム。
【請求項6】
前記アーム傾き検出部が検出した前記基部の傾きに起因する前記ハンドの位置ずれを縮小するように、前記アームの制御指令を補正する指令補正部を更に備え、
前記スキャン制御部は、前記指令補正部により補正された前記制御指令に基づいて、前記第1ライン及び前記第2ラインが前記基準位置を再度通過するように前記スキャン方向に沿って前記ハンドを前記アームにより移動させ、
前記位置検出部は、前記第1ラインが前記基準位置に再度達したタイミングと、前記第2ラインが前記基準位置に再度達したタイミングとに基づいて前記ハンドの位置ずれを再度検出する、請求項5記載の搬送システム。
【請求項7】
前記第1ライン及び前記第2ラインのいずれか一方と、前記ハンドに固定され、前記第1ライン及び前記第2ラインのいずれにも非平行な第3ラインとが前記基準位置を通過するように、前記スキャン方向に交差する交差スキャン方向に沿って前記ハンドを前記アームにより移動させる交差スキャン制御部を更に備え、
前記位置検出部は、前記交差スキャン制御部が前記ハンドを移動させているときに前記第1ライン及び前記第2ラインの少なくとも一方が前記基準位置に達したタイミングと、前記第3ラインが前記基準位置に達したタイミングとに基づいて、前記交差スキャン方向と交差する方向における前記ハンドの位置ずれを更に検出する、請求項1~6のいずれか一項記載の搬送システム。
【請求項8】
前記位置検出部は、前記第3ラインが前記基準位置に達したタイミングに基づいて前記交差スキャン方向における前記ハンドの位置ずれを更に検出する、請求項7記載の搬送システム。
【請求項9】
搬送対象の基板を支持するハンドに固定された互いに非平行な第1ライン及び第2ラインが、前記基板の搬送経路における既知の基準位置を通過するように、前記第1ライン及び前記第2ラインに交差するスキャン方向に沿って前記ハンドをアームにより移動させることと、
前記スキャン方向に沿って前記ハンドが移動しているときに前記第1ラインが前記基準位置に達したタイミングと、前記第2ラインが前記基準位置に達したタイミングとに基づいて、前記スキャン方向と交差する方向における前記ハンドの位置ずれを検出することと、を含む搬送制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、搬送システム及び搬送制御方法に関する。
【背景技術】
【0002】
特許文献1には、実物のウェハと同一寸法の教示冶具をウェハの代わりに処理装置等に配置して、その教示冶具の位置をロボットのエンドエフェクタに設けたセンサで検出して、ロボットに位置を教示する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2005-123261号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、基板を支持するハンドの位置のキャリブレーションを簡素な構成で高精度に行うのに有効な搬送システムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本開示の一側面に係る搬送システムは、搬送対象の基板を支持するハンドと、ハンドを移動させるアームと、ハンドに固定された互いに非平行な第1ライン及び第2ラインが、基板の搬送経路における既知の基準位置を通過するように、第1ライン及び第2ラインに交差するスキャン方向に沿ってハンドをアームにより移動させるスキャン制御部と、スキャン制御部がハンドを移動させているときに、第1ラインが基準位置に達したタイミングと、第2ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンドの位置ずれを検出する位置検出部と、を備える。
【0006】
本開示の他の側面に係る搬送制御方法は、搬送対象の基板を支持するハンドに固定された互いに非平行な第1ライン及び第2ラインが、基板の搬送経路における既知の基準位置を通過するように、第1ライン及び第2ラインに交差するスキャン方向に沿ってハンドをアームにより移動させることと、スキャン方向に沿ってハンドが移動しているときに第1ラインが基準位置に達したタイミングと、第2ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンドの位置ずれを検出することと、を含む。
【発明の効果】
【0007】
本開示によれば、基板を支持するハンドの位置のキャリブレーションを簡素な構成で高精度に行うのに有効な搬送システムを提供することができる。
【図面の簡単な説明】
【0008】
図1】基板処理システムの概略構成を示す模式図である。
図2】処理ステーションの搬入口の模式図である。
図3】指標部を例示する拡大図である。
図4】コントローラの機能的な構成を例示するブロック図である。
図5】コントローラのハードウェア構成を例示するブロック図である。
図6】キャリブレーション手順を例示するフローチャートである。
図7】基台の傾き検出手順を例示するフローチャートである。
図8】到達位置の座標と基台の傾きとの関係を示す模式図である。
図9】ハンドの位置ずれ検出手順を例示するフローチャートである。
図10】第1スキャン制御の手順を例示するフローチャートである。
図11】第2スキャン制御の手順を例示するフローチャートである。
図12】第1スキャン制御及び第2スキャン制御におけるハンドの動きを例示する模式図である。
図13】ハンドの位置ずれ算出手順を例示するフローチャートである。
図14】ハンドの傾きと補正前後の移動ストロークとの関係を例示する模式図である。
図15】移動ストロークとハンドの位置ずれとの関係を例示する模式図である。
図16】交差スキャン制御によるハンドの位置ずれ検出手順を例示するフローチャートである。
図17】第3スキャン制御の手順を例示するフローチャートである。
図18】第4スキャン制御の手順を例示するフローチャートである。
図19】第3スキャン制御及び第4スキャン制御におけるハンドの動きを例示する模式図である。
図20】ハンドの位置ずれ算出手順を例示するフローチャートである。
図21】ハンドの高さずれ検出手順を例示するフローチャートである。
図22】第1高さスキャン制御の手順を例示するフローチャートである。
図23】第2高さスキャン制御の手順を例示するフローチャートである。
図24】第1高さスキャン制御及び第2高さスキャン制御におけるハンドの動きを例示する模式図である。
図25】ハンドの高さずれ算出手順を例示するフローチャートである。
【発明を実施するための形態】
【0009】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0010】
〔基板処理システム〕
図1に示す基板処理システム1は、基板に液処理、熱処理等を施すシステムである。処理対象の基板の具体例としては、半導体ウェハ、LCD基板又はガラス基板等が挙げられる。以下、処理対象の基板をワークWという。
【0011】
(全体構成)
図1に示すように、基板処理システム1は、複数の処理ステーション10と、搬送システム2とを含む。処理ステーション10の数に特に制限はないが、図1においては説明に必要な二つの処理ステーション10のみを図示している。以下、二つの処理ステーション10を必要に応じ処理ステーション10A,10Bとして区別する。処理ステーション10A,10Bは、水平方向に並んでいる。
【0012】
処理ステーション10は、ワークWに対して所定の処理を実行するように構成されており、ワークWを搬入・搬出するための搬入口11を有する。搬入口11は鉛直面に沿っている。換言すると、搬入口11は水平方向に開口している。処理ステーション10A,10Bの開口は、処理ステーション10A,10Bが並ぶ方向に直交する方向に開口している。
【0013】
搬送システム2は、各処理ステーション10に対しワークWを搬入・搬出するためのシステムである。搬送システム2は、ハンド30と、アーム40と、コントローラ100とを有する。ハンド30は、搬送対象のワークWを支持する。ハンド30は、水平な板状のベース31と、ベース31の外周から一方向に突出した二つの指部32とを有し、ベース31と二つの指部32とでワークWを支持する。以下、ハンド30の説明において二つの指部32側の端部を「先端部」といい、二つの指部32の逆側の端部を「基端部」という。なお、ハンド30の形状は上述したものには限定されず、ワークWを支持できる限り、どのような形状であってもよい。
【0014】
アーム40は、ハンド30を移動させる多関節アームである。例えばアーム40は、基台41と、昇降部42と、第一アーム43と、第二アーム44とを有する。基台41は、基板処理システム1内の所定位置に設置される。基台41は、基板処理システム1内の床面上に固定されていてもよいし、基板処理システム1内を移動する可動部上に固定されていてもよい。
【0015】
昇降部42は、基台41から鉛直上方に突出しており、鉛直な軸線Ax1に沿って昇降可能である。第一アーム43は、昇降部42の上端部から水平方向に延びており、軸線Ax1まわりに揺動可能である。第二アーム44は、第一アーム43の先端部から更に水平方向に延びており、第一アーム43の先端部を通る鉛直な軸線Ax2まわりに揺動可能である。第二アーム44の先端部は、ハンド30の基端部に接続されている。ハンド30は、第二アーム44の先端部を通る鉛直な軸線Ax3まわりに揺動可能である。
【0016】
アーム40は、ハンド30を移動させるための複数のアクチュエータ(不図示)を有する。例えば複数のアクチュエータは、軸線Ax1に沿って昇降部42を昇降させる昇降アクチュエータ45と、軸線Ax1まわりに第一アーム43を揺動させる回転アクチュエータ46と、軸線Ax2まわりに第二アーム44を揺動させる回転アクチュエータ47と、軸線Ax3まわりにハンド30を揺動させる回転アクチュエータ48とを含む(図4参照)。なお、アーム40の構成はあくまで一例であり、水平方向におけるハンド30の位置及び向きと、ハンド30の高さとを自在に調節できる限りどのように構成されていてもよい。
【0017】
コントローラ100は、ロボット座標系を基準にしてハンド30を目標位置・目標姿勢・目標高さに移動させるようにアーム40を制御する。ロボット座標系は、例えば基台41に固定され、処理ステーション10にワークWを進入させる方向をX軸の正方向とし、鉛直上方をZ軸の正方向とする三次元の直交座標系である。コントローラ100の構成については後に詳述する。
【0018】
図2に示すように、処理ステーション10には、予め基準位置RPが設定されている。基準位置RPは、処理ステーション10に対するハンド30の位置のキャリブレーションに用いられる。例えば処理ステーション10Aにおいては搬入口11の中心である第1位置RP1が基準位置RPとされており、処理ステーション10Bにおいては搬入口11の中心である第2位置RP2が基準位置RPとされている。
【0019】
処理ステーション10は、基準位置RPにおける物体の有無を検出するための鉛直センサ12と水平センサ13とを更に有する。鉛直センサ12は、発光部12aと受光部12bとを有する。発光部12a及び受光部12bは、搬入口11の縁において、基準位置RPの鉛直上方及び鉛直下方にそれぞれ設けられている。発光部12aは、基準位置RPを通る光を鉛直下方に出射する。以下、この光を「鉛直検出光」という。受光部12bは、鉛直検出光を受光する。なお、発光部12aが基準位置RPの鉛直下方に設けられていてもよい。
【0020】
搬入口11内において、水平方向で基準位置RPと重複する位置に物体が存在しない場合には受光部12bが鉛直検出光を受光する。搬入口11内において、水平方向で基準位置RPと重複する位置に物体が存在する場合には受光部12bが鉛直検出光を受光しない。従って、水平方向で基準位置RPと重複する位置に物体が存在するか否かを受光部12bの受光状態に基づいて検出することができる。
【0021】
水平センサ13は、発光部13aと受光部13bとを有する。発光部13a及び受光部13bは、搬入口11の縁において基準位置RPと同じ高さの二カ所(図示右側部及び左側部)にそれぞれ設けられている。発光部13aは、基準位置RPを通る光を水平方向に出射する。以下、この光を「水平検出光」という。受光部13bは、水平検出光を受光する。なお、発光部13aが図示左側部に設けられ、受光部13bが図示右側部に設けられていてもよい。
【0022】
搬入口11内において、鉛直方向で基準位置RPと重複する位置に物体が存在しない場合には受光部13bが水平検出光を受光する。搬入口11内において、鉛直方向で基準位置RPと重複する位置に物体が存在する場合には受光部13bが水平検出光を受光しない。従って、鉛直方向で基準位置RPと重複する位置に物体が存在するか否かを受光部13bの受光状態に基づいて検出することができる。
【0023】
図3に示すように、ハンド30には、鉛直センサ12による検出対象となる指標部33が設けられている。以下、指標部33の説明においては、ハンド30に固定されたハンド座標系を用いる。ハンド座標系は、指部32の指部の突出方向をx軸の正方向とし、鉛直上方をz軸の正方向とする座標系である。指標部33は、少なくとも互いに非平行な第1ラインと第2ラインとを有する。第1ライン及び第2ラインは、いずれもx軸に交差する。指標部33は、第1ライン及び第2ラインのいずれにも非平行な第3ラインを更に有してもよい。
【0024】
例えば指標部33は、ベース31に設けられた三角形状の開口である。より具体的に、指標部33は、x軸に直交する(すなわちy軸に沿った)辺33aと、x軸に沿った(すなわちy軸に直交する)辺33cと、辺33a,33cに交差する辺33bとを有する直角二等辺三角形である。辺33aは上記第1ラインに相当し、辺33bは上記第2ラインに相当し、辺33cは上記第3ラインに相当する。指標部33は、辺33aの中間点が、y軸方向におけるハンド30の中心ラインに位置するように設けられている。
【0025】
なお、図3に示す指標部33はあくまで一例である。指標部33は、鉛直センサ12により検出可能な形態で互いに非平行な第1ラインと第2ラインとを含む限り、どのように設けられていてもよい。また、指標部33は、少なくとも処理ステーション10に対するハンド30の位置のキャリブレーションを実行する際にハンド30に固定されればよいので、例えばハンド30の所定位置に取り付け可能な治具に設けられていてもよい。
【0026】
(コントローラ)
仮に、設計上の設置位置に対してアーム40の設置位置(すなわち基台41の設置位置)がずれている場合、設計上の設置位置を前提とした目標位置・目標姿勢・目標高さに従ってハンド30を移動させると処理ステーション10内のワークWの配置がずれてしまうこととなる。このため、コントローラ100は、実際のアーム40の設置状態に合わせて目標位置・目標姿勢・目標高さを修正するキャリブレーションを更に実行するように構成されている。
【0027】
例えばコントローラ100は、ハンド30の第1ライン及び第2ラインがワークWの搬送経路における既知の基準位置を通過するように、第1ライン及び第2ラインに交差するスキャン方向に沿ってハンド30をアーム40により移動させることと、スキャン方向に沿ってハンド30が移動しているときに第1ラインが基準位置に達したタイミングと、第2ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド30の位置ずれを検出することとを実行するように構成されている。
【0028】
コントローラ100は、スキャン方向に沿ってハンドが移動しているときに第1ラインが基準位置に達したタイミングに基づいて、スキャン方向におけるハンド30の位置ずれを更に検出するように構成されていてもよい。コントローラ100は、スキャン方向に交差する方向で互いに異なる第1スキャン位置と第2スキャン位置とのそれぞれにおいてスキャン方向に沿ってハンド30を移動させ、第1スキャン位置においてハンドが移動しているときに第1ラインが基準位置に達したタイミングと、第2スキャン位置においてハンドが移動しているときに第1ラインが基準位置に達したタイミングとに基づいて、ハンド30の傾きを更に検出するように構成されていてもよい。更にコントローラ100は、ハンド30の傾きの検出結果に基づいて、ハンド30の位置ずれの検出結果を補正するように構成されていてもよい。
【0029】
例えばコントローラ100は、機能上の構成として、目標位置保持部111と、搬送制御部112と、スキャン制御部113と、位置検出部114と、移動指令補正部115と、設置不良報知部116とを有する。目標位置保持部111は、処理位置にワークWを配置するためのハンド30の目標位置・目標姿勢・目標高さを処理ステーション10ごとに記憶している。搬送制御部112及びスキャン制御部113は、いずれも目標位置保持部111が記憶する目標位置・目標姿勢・目標高さに基づいてアーム40を制御する。搬送制御部112は、いずれかの処理ステーション10に対してワークWの搬入又は搬出を行うようにハンド30をアーム40により移動させる。
【0030】
スキャン制御部113は、第1ライン及び第2ラインが基準位置を通過するようにスキャン方向に沿ってハンド30をアーム40により移動させる。例えばスキャン制御部113は、ハンド30の先端部をロボット座標系のX軸正方向に向けた状態で、指標部33の辺33a,33bがいずれかの処理ステーション10の基準位置RPを通過するように、X軸方向に沿ってハンド30をアーム40により移動させる。
【0031】
スキャン制御部113は、スキャン方向に交差する方向で互いに異なる第1スキャン位置と第2スキャン位置とのそれぞれにおいてスキャン方向に沿ってハンド30をアーム40により移動させてもよい。例えばスキャン制御部113は、ハンド30の先端部をロボット座標系のX軸正方向に向けた状態で、Y軸方向で互いに異なる第1スキャン位置と第2スキャン位置とのそれぞれにおいてX軸方向に沿ってハンド30をアーム40により移動させる。第1スキャン位置及び第2スキャン位置は、いずれにおいても辺33a,33bが基準位置RPを通過するように設定される。以下、第1スキャン位置においてスキャン方向に沿ってハンド30を移動させる制御を「第1スキャン制御」といい、第2スキャン位置においてスキャン方向に沿ってハンド30を移動させる制御を「第2スキャン制御」という。
【0032】
位置検出部114は、スキャン制御部113がハンド30を移動させているときに、辺33aが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいて、スキャン方向(X軸方向)と交差する方向(Y軸方向)におけるハンド30の位置ずれを検出する。例えば位置検出部114は、辺33aが基準位置RPに達したタイミングから辺33bが基準位置RPに達したタイミングまでのハンド30の移動ストロークに基づいて、基準位置RPに対するハンド30のY軸方向における相対位置を検出する。より詳細な算出手法については後述する。
【0033】
位置検出部114は、スキャン制御部113がハンド30を移動させているときに辺33aが基準位置RPに達したタイミングに基づいて、スキャン方向(X軸方向)におけるハンド30の位置ずれを更に検出してもよい。具体的には、辺33aが基準位置RPに達したタイミングにおけるハンド30の位置のX座標と、辺33aが基準位置RPに達する予定タイミングにおけるハンド30の位置のX座標との差を算出する。なお、X座標は、ロボット座標系におけるX座標である。予定タイミングは、ロボット座標系における基準位置RPの設計上のX座標に辺33aが達するタイミングである。設計上のX座標とは、基準位置RPに対するアーム40の設計上の設置位置に対する誤差がゼロである場合のX座標を意味する。
【0034】
位置検出部114は、第1スキャン制御において辺33aが基準位置RPに達したタイミングと、第2スキャン制御において辺33aが基準位置RPに達したタイミングとに基づいて、ハンド30の傾き(例えば鉛直軸線まわりの傾き)を更に検出してもよい。ここでのハンド30の傾きは、スキャン方向(X軸方向)に対する指部32の突出方向の傾きである。
【0035】
例えば位置検出部114は、第1スキャン制御において辺33aが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第1スキャン制御における辺33aの到達位置」という。)と、第2スキャン制御において辺33aが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第2スキャン制御における辺33a到達位置」という。)とに基づいてハンド30の傾きを算出する。具体的には、第1スキャン制御における辺33aの到達位置のX座標及びY座標と、第2スキャン制御における辺33aの到達位置のX座標及びY座標とに基づいてハンド30の傾きを算出する。なお、X座標及びY座標は、ロボット座標系におけるX座標及びY座標である。より詳細な算出手法については後述する。位置検出部114は、ハンド30の傾きの検出結果に基づいて、ハンド30の位置ずれの検出結果を補正してもよい。より詳細な補正手法については後述する。
【0036】
移動指令補正部115は、位置検出部114が検出したハンド30の位置ずれを縮小するように、ハンド30の目標位置(目標位置保持部111が記憶する目標位置)を補正する。例えば移動指令補正部115は、上記位置ずれと同じ補正量にて、位置ずれの方向とは逆方向にハンド30の目標位置を補正する。
【0037】
移動指令補正部115は、位置検出部114が検出したハンド30の傾きを縮小するように、ハンド30の目標姿勢(目標位置保持部111が記憶する目標姿勢)を更に補正してもよい。例えば移動指令補正部115は、ハンド30が傾く角度と同じ補正量にて、ハンド30が傾く方向とは逆方向にハンド30の揺動角度目標値を補正する。
【0038】
設置不良報知部116は、ハンド30の位置ずれ及び傾きの少なくとも一方が許容レベルを超えている場合にアーム40の設置不良をユーザに報知する。例えば設置不良報知部116は、位置検出部114が検出したハンド30の傾きが許容レベルを超えている場合にその旨をユーザに報知する。また、設置不良報知部116は、第1スキャン位置及び第2スキャン位置のいずれかにおいて、辺33a,33bが基準位置RPを通過しなかった場合にアーム40の設置不良をユーザに報知する。例えば設置不良報知部116は、液晶モニタ等の表示デバイスへの表示によってアーム40の設置不良をユーザに報知する。
【0039】
スキャン制御部113、位置検出部114及び移動指令補正部115は、スキャン方向に沿ったハンド30の移動と、ハンド30の位置ずれの検出と、ハンド30の目標位置の補正とを所定のタイミングで繰り返してもよい。この場合、設置不良報知部116は、位置検出部114による検出結果と、位置検出部114による前回の検出結果との差が許容レベルを超えている場合に、アーム40の劣化(例えばベアリング、ベルト又は減速機等の劣化)をユーザに報知してもよい。
【0040】
コントローラ100は、互いに異なる第1位置及び第2位置(例えば上記第1位置RP1及び第2位置RP2)のそれぞれを基準位置として、スキャン制御部113によるハンド30の移動を実行させ、スキャン制御部113が第1位置RP1を基準位置としてハンド30を移動させているときに辺33aが第1位置RP1に達したタイミングと、スキャン制御部113が第2位置RP2を基準位置としてハンド30を移動させているときに辺33aが第2位置RP2に達したタイミングとに基づいてアーム40の基台41の傾きを検出する。
【0041】
コントローラ100は、互いに異なる第1位置及び第2位置(例えば上記第1位置RP1及び第2位置RP2)のそれぞれを基準位置として、第1ライン及び第2ラインが基準位置を通過するように、第1ライン及び第2ラインに交差するスキャン方向に沿ってハンド30をアーム40により移動させ、辺33aが第1位置RP1に達したタイミングと、辺33aが第2位置RP2に達したタイミングとに基づいてアーム40の基台41(基部)の傾きを検出するように構成されていてもよい。
【0042】
更にコントローラ100は、基台41の傾きに起因するハンド30の位置ずれを縮小するように、アーム40の制御指令を補正するように構成されていてもよい。例えばコントローラ100は、アーム傾き検出部121と旋回指令補正部122とを有する。
【0043】
アーム傾き検出部121は、第1位置RP1及び第2位置RP2のそれぞれを基準位置として、スキャン制御部113によるハンド30の移動を実行させ、スキャン制御部113が第1位置RP1を基準位置としてハンド30を移動させているときに辺33aが第1位置RP1に達したタイミングと、スキャン制御部113が第2位置RP2を基準位置としてハンド30を移動させているときに辺33aが第2位置RP2に達したタイミングとに基づいてアーム40の基台41の傾きを検出する。
【0044】
例えばアーム傾き検出部121は、辺33aが第1位置RP1に達したタイミングにおけるハンド30の位置(以下、「第1位置RP1への到達位置」という。)と、辺33aが第2位置RP2に達したタイミングにおけるハンド30の位置(以下、「第2位置RP2への到達位置」という。)とに基づいてハンド30の傾きを算出する。具体的には、ロボット座標系における第1位置RP1への到達位置のX座標及びY座標と、ロボット座標系における第2位置RP2への到達位置のX座標及びY座標とに基づいて基台41の傾きを算出する。より詳細な算出手法については後述する。
【0045】
旋回指令補正部122(指令補正部)は、アーム傾き検出部121が検出した基台41の傾きに起因するハンド30の位置ずれを縮小するように、アーム40の制御指令を補正する。例えば旋回指令補正部122は、基台41が傾く角度と同じ補正量にて、基台41が傾く方向とは逆方向に第一アーム43の揺動角度目標値を補正する。スキャン制御部113は、旋回指令補正部122により補正された制御指令に基づいて、辺33a,33bが基準位置RPを再度通過するようにスキャン方向に沿ってハンド30をアーム40により移動させてもよい。位置検出部114は、辺33aが基準位置RPに再度達したタイミングと、辺33bが基準位置RPに再度達したタイミングとに基づいてハンド30の位置を再度検出してもよい。
【0046】
コントローラ100は、第1ライン及び第2ラインのいずれか一方と第3ラインとが基準位置を通過するように、スキャン方向に交差する交差スキャン方向に沿ってハンド30をアーム40により移動させることと、交差スキャン方向に沿ってハンド30が移動しているときに第1ライン及び第2ラインの少なくとも一方が基準位置RPに達したタイミングと、第3ラインが基準位置RPに達したタイミングとに基づいて、交差スキャン方向と交差する方向におけるハンド30の位置ずれを更に検出することとを更に実行するように構成されていてもよい。
【0047】
例えばコントローラ100は、交差スキャン制御部131を更に有する。交差スキャン制御部131は、第2ライン及び第3ラインが基準位置を通過するように、スキャン方向に直交する交差スキャン方向に沿ってハンド30をアーム40により移動させる。例えば交差スキャン制御部131は、ハンド30の先端部をロボット座標系のX軸正方向に向けた状態で、指標部33の辺33c,33bがいずれかの処理ステーション10の基準位置RPを通過するように、Y軸方向に沿ってハンド30をアーム40により移動させる。
【0048】
交差スキャン制御部131は、交差スキャン方向に直交する方向で互いに異なる第3スキャン位置と第4スキャン位置とのそれぞれにおいて交差スキャン方向に沿ってハンド30をアーム40により移動させてもよい。例えば交差スキャン制御部131は、ハンド30の先端部をロボット座標系のX軸正方向に向けた状態で、X軸方向における位置が互いに異なる第3スキャン位置と第4スキャン位置とのそれぞれにおいてY軸方向に沿ってハンド30をアーム40により移動させる。
【0049】
第3スキャン位置及び第4スキャン位置は、いずれにおいても辺33c,33bが基準位置RPを通過するように設定される。以下、第3スキャン位置において交差スキャン方向に沿ってハンド30を移動させる制御を「第3スキャン制御」といい、第4スキャン位置において交差スキャン方向に沿ってハンド30を移動させる制御を「第4スキャン制御」という。
【0050】
位置検出部114は、交差スキャン制御部131がハンド30を移動させているときに、辺33cが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいて、交差スキャン方向(Y軸方向)と直交する方向(X軸方向)におけるハンド30の位置ずれを更に検出してもよい。例えば位置検出部114は、辺33cが基準位置RPに達したタイミングから辺33bが基準位置RPに達したタイミングまでのハンド30の移動ストロークに基づいて、基準位置RPに対するハンド30のX軸方向における相対位置を検出する。より詳細な算出手法については後述する。
【0051】
位置検出部114は、交差スキャン制御部131がハンド30を移動させているときに辺33cが基準位置RPに達したタイミングに基づいて、交差スキャン方向(Y軸方向)におけるハンド30の位置ずれを更に検出してもよい。具体的には、辺33cが基準位置RPに達したタイミングにおけるハンド30の位置のY座標と、辺33cが基準位置RPに達する予定タイミングにおけるハンド30の位置のY座標との差を算出する。なお、Y座標は、ロボット座標系におけるY座標である。予定タイミングは、ロボット座標系における基準位置RPの設計上のY座標に辺33cが達するタイミングである。設計上のY座標とは、基準位置RPに対するアーム40の設計上の設置位置に対する誤差がゼロである場合のY座標を意味する。
【0052】
位置検出部114は、第3スキャン制御において辺33cが基準位置RPに達したタイミングと、第4スキャン制御において辺33cが基準位置RPに達したタイミングとに基づいて、ハンド30の傾き(例えば鉛直軸線まわりの傾き)を更に検出してもよい。ここでのハンド30の傾きは、スキャン方向(X軸方向)に対する指部32の突出方向の傾きである。例えば位置検出部114は、第3スキャン制御において辺33cが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第3スキャン制御における辺33cの到達位置」という。)と、第4スキャン制御において辺33cが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第4スキャン制御における辺33cの到達位置」という。)とに基づいてハンド30の傾きを算出する。具体的には、第3スキャン制御における辺33cの到達位置のX座標及びY座標と、第4スキャン制御における辺33cの到達位置のX座標及びY座標とに基づいてハンド30の傾きを算出する。なお、X座標及びY座標は、ロボット座標系におけるX座標及びY座標である。より詳細な算出手法については後述する。
【0053】
コントローラ100は、ハンド30が基準位置を通過するようにハンド30をアーム40により昇降させることと、昇降するハンド30が基準位置の高さに達したタイミングに基づいてハンド30の高さを検出することとを実行するように構成されていてもよい。 コントローラ100は、ハンド30の上部が基準位置の高さに達したタイミングと、ハンド30の下部が基準位置の高さに達したタイミングとに基づいてハンド30の厚さを検出することを更に実行するように構成されていてもよい。
【0054】
コントローラ100は、水平な所定方向(以下、「シフト方向」という。)で互いに異なる第1高さスキャン位置と第2高さスキャン位置とのそれぞれにおいてハンド30を昇降させ、第1高さスキャン位置において昇降するハンド30が基準位置に達したタイミングと、第2高さスキャン位置において昇降するハンド30が基準位置に達したタイミングとに基づいて、ハンド30の傾きを更に検出するように構成されていてもよい。例えばコントローラ100は、高さスキャン制御部141と、高さ検出部142と、昇降指令補正部143とを更に有する。
【0055】
高さスキャン制御部141は、基準位置を通過するようにハンド30をアーム40により昇降させる。例えば高さスキャン制御部141は、ハンド30の先端部をロボット座標系のX軸正方向に向けた状態で、いずれかの処理ステーション10の基準位置RPを通過するようにハンド30をアーム40により昇降させる。
【0056】
高さスキャン制御部141は、シフト方向で互いに異なる第1高さスキャン位置と第2高さスキャン位置とのそれぞれにおいてハンド30をアーム40により昇降させてもよい。例えば高さスキャン制御部141は、ハンド30の先端部をロボット座標系のX軸正方向に向けた状態で、X軸方向で互いに異なる第1高さスキャン位置と第2高さスキャン位置とのそれぞれにおいてハンド30をアーム40により昇降させる。第1高さスキャン位置及び第2高さスキャン位置は、いずれにおいてもハンド30が基準位置RPを通過するように設定される。以下、第1高さスキャン位置においてハンド30を昇降させる制御を「第1高さスキャン制御」といい、第2高さスキャン位置においてハンド30を昇降させる制御を「第2高さスキャン制御」という。
【0057】
高さ検出部142は、高さスキャン制御部141がハンド30を昇降させているときに、ハンド30が基準位置RPの高さに達したタイミングに基づいてハンド30の高さずれ(Z軸方向におけるハンド30の位置ずれ)を検出する。具体的には、ハンド30の上部又は下部が基準位置RPの高さに達したタイミングにおけるハンド30の位置のZ座標と、ハンド30の上部又は下部が基準位置RPの高さに達する予定タイミングにおけるハンド30の位置のZ座標との差を算出する。なお、Z座標は、ロボット座標系におけるZ座標である。予定タイミングは、ロボット座標系における基準位置RPの設計上のZ座標にハンド30の上部又は下部が達するタイミングである。設計上のZ座標とは、基準位置RPに対するアーム40の設計上の設置高さに対する誤差がゼロである場合のZ座標を意味する。
【0058】
高さ検出部142は、高さスキャン制御部141がハンド30を昇降させているときに、ハンド30の上部が基準位置RPの高さに達したタイミングと、ハンド30の下部が基準位置RPの高さに達したタイミングとに基づいてハンド30の厚さを検出してもよい。例えば高さ検出部142は、ハンド30の下部が基準位置RPの高さに達したタイミングからハンド30の上部が基準位置RPの高さに達したタイミングまでのハンド30の昇降ストロークをハンド30の厚さとして検出する。
【0059】
高さ検出部142は、第1高さスキャン制御においてハンド30の上部又は下部が基準位置RPの高さに達したタイミングと、第2高さスキャン制御においてハンド30の上部又は下部が基準位置RPの高さに達したタイミングとに基づいて、ハンド30の傾きを更に検出してもよい。ここでのハンド30の傾きは、シフト方向(X軸方向)に対する指部32の突出方向の傾きである。例えば高さ検出部142は、第1高さスキャン制御においてハンド30の上部又は下部が基準位置RPの高さに達したタイミングにおけるハンド30の位置のX座標及びZ座標と、第2高さスキャン制御においてハンド30の上部又は下部が基準位置RPの高さに達したタイミングにおけるハンド30の位置のX座標及びZ座標とに基づいてハンド30の傾きを算出する。なお、Z座標は、ロボット座標系におけるZ座標である。設置不良報知部116は、高さ検出部142が検出したハンド30の傾きが許容レベルを超えている場合にその旨をユーザに報知する。
【0060】
昇降指令補正部143は、高さ検出部142が検出したハンド30の高さずれを縮小するように、ハンド30の目標高さ(目標位置保持部111が記憶するZ軸方向の目標位置)を補正する。例えば昇降指令補正部143は、上記高さずれと同じ補正量にて、高さずれの方向とは逆方向にハンド30の目標高さを補正する。
【0061】
図5は、コントローラ100のハードウェア構成を例示するブロック図である。図5に示すように、回路190は、一つ又は複数のプロセッサ191と、メモリ192と、ストレージ193と、ドライバ194と、入出力ポート195と、を含む。ストレージ193は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ193は、第1ライン及び第2ラインが基準位置を通過するように、第1ライン及び第2ラインに交差するスキャン方向に沿ってハンド30をアーム40により移動させることと、スキャン方向に沿ってハンド30が移動しているときに第1ラインが基準位置に達したタイミングと、第2ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド30の位置ずれを検出することとをコントローラ100に実行させるためのプログラムを記憶している。例えばストレージ193は、コントローラ100の各機能モジュールを構成するためのプログラムを記憶している。メモリ192は、ストレージ193の記憶媒体からロードしたプログラム及びプロセッサ191による演算結果を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、コントローラ100の各機能モジュールを構成する。ドライバ194は、プロセッサ191からの指令に従って、アーム40の昇降アクチュエータ45及び回転アクチュエータ46,47,48を駆動する。入出力ポート195は、プロセッサ191からの指令に従って、鉛直センサ12及び水平センサ13との間で電気信号の入出力を行う。なお、回路190は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路190は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0062】
〔キャリブレーション手順〕
コントローラ100は、いずれかの処理ステーション10に対してワークWの搬入又は搬出を行うようにハンド30をアーム40により移動させる搬送制御を実行する。この搬送制御方法は、処理ステーション10に対するハンド30の位置のキャリブレーション手順を含む。キャリブレーション手順は、アーム40が設置されたとき、アーム40が交換されたとき等に実行される。また、キャリブレーション手順は、所定のタイミングで繰り返し実行されてもよい。
【0063】
キャリブレーション手順は、第1ライン及び第2ラインが基準位置を通過するように、第1ライン及び第2ラインに交差するスキャン方向に沿ってハンド30をアーム40により移動させることと、スキャン方向に沿ってハンド30が移動しているときに第1ラインが基準位置に達したタイミングと、第2ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド30の位置ずれを検出することとを含む。
【0064】
例えば図6に示すように、コントローラ100は、まずステップS01,S02を実行する。ステップS01では、アーム傾き検出部121が、第1位置RP1及び第2位置RP2のそれぞれを基準位置として、スキャン制御部113によるハンド30の移動を実行させ、スキャン制御部113が第1位置RP1を基準位置としてハンド30を移動させているときに辺33aが第1位置RP1に達したタイミングと、スキャン制御部113が第2位置RP2を基準位置としてハンド30を移動させているときに辺33aが第2位置RP2に達したタイミングとに基づいてアーム40の基台41の傾きを検出する。ステップS01の具体的内容については後述する。ステップS02では、旋回指令補正部122が、アーム傾き検出部121が検出した基台41の傾きに起因するハンド30の位置ずれを縮小するように、アーム40の制御指令を補正する。例えば旋回指令補正部122は、基台41が傾く角度と同じ補正量にて、基台41が傾く方向とは逆方向に第一アーム43の揺動角度目標値を補正する。
【0065】
次に、コントローラ100はステップS03,S04を実行する。ステップS03では、スキャン制御部113が、辺33a,33bが基準位置RPを通過するようにスキャン方向に沿ってハンド30をアーム40により移動させ、辺33aが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいて位置検出部114がハンド30の位置ずれを検出する。ステップS03の具体的内容については後述する。ステップS04では、設置不良報知部116が、ハンド30の位置ずれ及び傾きが許容レベル以内であるかを確認する。
【0066】
ステップS04においてハンド30の位置ずれ及び傾きが許容レベル以内であると判定した場合、コントローラ100はステップS05を実行する。ステップS05では、位置検出部114が検出したハンド30の位置ずれを縮小するように、移動指令補正部115がハンド30の目標位置(目標位置保持部111が記憶する目標位置)を補正する。例えば移動指令補正部115は、上記位置ずれと同じ補正量にて、位置ずれの方向とは逆方向にハンド30の目標位置を補正する。移動指令補正部115は、位置検出部114が検出したハンド30の傾きを縮小するように、ハンド30の目標姿勢(目標位置保持部111が記憶する目標姿勢)を更に補正してもよい。例えば移動指令補正部115は、ハンド30が傾く角度と同じ補正量にて、ハンド30が傾く方向とは逆方向にハンド30の揺動角度目標値を補正する。
【0067】
次に、コントローラ100はステップS06,S07を実行する。ステップS06では、高さスキャン制御部141が、基準位置RPを通過するようにハンド30をアーム40により昇降させ、ハンド30が基準位置RPの高さに達したタイミングに基づいて高さ検出部142がハンド30の高さずれを検出する。ステップS06の具体的内容については後述する。ステップS07では、高さ検出部142が検出したハンド30の高さずれが許容レベル以内であるかを設置不良報知部116が確認する。
【0068】
ステップS07においてハンド30の高さずれが許容レベル以内であると判定した場合、コントローラ100はステップS08を実行する。ステップS08では、高さ検出部142が検出したハンド30の高さずれを縮小するように、昇降指令補正部143がハンド30の目標高さ(目標位置保持部111が記憶するZ軸方向の目標位置)を補正する。
【0069】
ステップS04においてハンド30の位置ずれ及び傾きが許容レベル以内でないと判定した場合、及びステップS07においてハンド30の高さずれが許容レベル以内でないと判定した場合、コントローラ100はステップS11を実行する。ステップS11では、設置不良報知部116が、アーム40の設置不良をユーザに報知する。以上でキャリブレーション手順が完了する。なお、コントローラ100は、ステップS06,S07,S08をステップS03より前に実行してもよい。また、コントローラ100は、ステップS05,S08の少なくとも一方を省略してもよい。
【0070】
(基台の傾き検出手順)
続いて、ステップS01における基台41の傾き検出手順を具体的に例示する。図7に示すように、コントローラ100は、まずステップS21,S22を実行する。ステップS21では、第1位置RP1を基準位置とした移動の開始位置にハンド30を配置することをアーム傾き検出部121がスキャン制御部113に要求する。これに応じスキャン制御部113は、第1位置RP1の手前側(第1位置RP1よりもX軸方向の負側)において、ハンド30の先端部をX軸正方向に向けるように、アーム40によりハンド30を移動させる。ステップS22では、第1位置RP1を基準位置としたハンド30の移動の開始をアーム傾き検出部121がスキャン制御部113に要求する。これに応じスキャン制御部113は、X軸正方向へのハンド30の移動を開始させるようにアーム40を制御する。
【0071】
次に、コントローラ100はステップS23,S24,S25を実行する。ステップS23では、アーム傾き検出部121が、処理ステーション10Aの鉛直センサ12による辺33aの検出を待機する。ステップS24では、アーム傾き検出部121が、上記第1位置RP1への到達位置のロボット座標系におけるX座標及びY座標(ロボット座標系におけるX座標及びY座標)をスキャン制御部113から取得する。ステップS25では、第1位置RP1を基準位置とした移動の開始位置までハンド30を後退させることをアーム傾き検出部121がスキャン制御部113に要求する。これに応じスキャン制御部113は、当該開始位置に達するまで、アーム40によりハンド30をX軸負方向に移動させる。
【0072】
次に、コントローラ100はステップS26,S27を実行する。ステップS26では、第2位置RP2を基準位置とした移動の開始位置にハンド30を配置することをアーム傾き検出部121がスキャン制御部113に要求する。これに応じスキャン制御部113は、第2位置RP2手前(第2位置RP2よりもX軸方向の負側)において、ハンド30の先端部をX軸正方向に向けるように、アーム40によりハンド30を移動させる。ステップS27では、第2位置RP2を基準位置としたハンド30の移動の開始をアーム傾き検出部121がスキャン制御部113に要求する。これに応じスキャン制御部113は、X軸正方向へのハンド30の移動を開始させるようにアーム40を制御する。
【0073】
次に、コントローラ100はステップS28,S29,S31,S32を実行する。ステップS28では、アーム傾き検出部121が、処理ステーション10Bの鉛直センサ12による辺33aの検出を待機する。ステップS29では、アーム傾き検出部121が、上記第2位置RP2への到達位置のX座標及びY座標(ロボット座標系におけるX座標及びY座標)をスキャン制御部113から取得する。ステップS31では、第2位置RP2を基準位置とした移動の開始位置までハンド30を後退させることをアーム傾き検出部121がスキャン制御部113に要求する。これに応じスキャン制御部113は、当該開始位置に達するまで、アーム40によりハンド30をX軸負方向に移動させる。ステップS32では、アーム傾き検出部121が、ステップS24において取得された第1位置RP1への到達位置のX座標及びY座標と、ステップS29において取得された第2位置RP2への到達位置のX座標及びY座標とに基づいて基台41の傾きを算出する。例えばアーム傾き検出部121は、次式に基づいて基台41の傾きを算出する(図8参照)。
θb=tan-1((X2-X1)/(Y2-Y1))・・・(1)
θb:基台41の傾き角度。
X1:第1位置RP1への到達位置のX座標。
Y1:第1位置RP1への到達位置のY座標。
X2:第2位置RP2への到達位置のX座標。
Y2:第2位置RP2への到達位置のY座標。
以上で基台41の傾きの検出手順が完了する。
【0074】
(ハンド30の位置ずれ検出手順)
続いて、ステップS03におけるハンド30の位置ずれの検出手順を例示する。図9に示すように、コントローラ100は、ステップS41,S42,S43を実行する。ステップS41では、スキャン制御部113が、上記第1スキャン制御を実行し、位置検出部114が第1スキャン制御中の情報取得を行う。ステップS42では、スキャン制御部113が、上記第2スキャン制御を実行し、位置検出部114が第2スキャン制御中の情報取得を行う。ステップS43では、ステップS41,S42で取得した情報に基づいて位置検出部114がハンド30の位置ずれを算出する。
【0075】
図10は、ステップS41の具体的内容を例示するフローチャートである。図10に示すように、コントローラ100は、まずステップS51,S52を実行する。ステップS51では、スキャン制御部113が、基準位置RPの手前側(基準位置RPよりもX軸方向の負側)においてハンド30を第1スキャン位置に配置し、ハンド30の先端部をX軸正方向に向けるようにアーム40を制御する。ステップS52では、スキャン制御部113が、X軸正方向へのハンド30の移動を開始させるようにアーム40を制御する。
【0076】
次に、コントローラ100はステップS53,S54を実行する。ステップS53では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33aの検出を待機する。ステップS54では、位置検出部114が、辺33aが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第1スキャン制御における辺33aの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)をスキャン制御部113から取得する。
【0077】
次に、コントローラ100はステップS55,S56,S57を実行する。ステップS55では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33bの検出を待機する。ステップS56では、位置検出部114が、辺33bが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第1スキャン制御における辺33bの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)をスキャン制御部113から取得する。ステップS57では、スキャン制御部113が、ステップS52における移動の開始位置に達するまで、アーム40によりX軸負方向にハンド30を移動させる。以上により、X軸方向に並ぶ辺33aの点P11と辺33bの点P12とが基準位置RPに達したタイミングにおけるX座標及びY座標が取得される(図12の(a)参照)。
【0078】
図11は、ステップS42の具体的内容を例示するフローチャートである。図11に示すように、コントローラ100は、まずステップS61,S62を実行する。ステップS61では、スキャン制御部113が、基準位置RPの手前側(基準位置RPよりもX軸方向の負側)においてハンド30を第2スキャン位置に配置し、ハンド30の先端部をX軸正方向に向けるようにアーム40を制御する。ステップS62では、スキャン制御部113が、X軸正方向へのハンド30の移動を開始させるようにアーム40を制御する。
【0079】
次に、コントローラ100はステップS63,S64を実行する。ステップS63では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33aの検出を待機する。ステップS64では、位置検出部114が、辺33aが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第2スキャン制御における辺33aの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)をスキャン制御部113から取得する。
【0080】
次に、コントローラ100はステップS65,S66,S67を実行する。ステップS65では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33bの検出を待機する。ステップS66では、位置検出部114が、辺33bが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第2スキャン制御における辺33bの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)をスキャン制御部113から取得する。ステップS67では、スキャン制御部113が、ステップS62における移動の開始位置に達するまで、アーム40によりX軸負方向にハンド30を移動させる。以上により、点P11,P12とは異なる位置でX軸方向に並ぶ辺33aの点P21と辺33bの点P22とが基準位置RPに達したタイミングにおけるX座標及びY座標が取得される(図12の(b)参照)。
【0081】
図13は、ステップS43の具体的内容を例示するフローチャートである。図13に示すように、コントローラ100は、ステップS71,S72,S73を実行する。ステップS71では、辺33aが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「到達位置」という。)のX座標と、辺33aが基準位置RPに達する予定タイミングにおけるハンド30の位置のX座標との差を位置検出部114が算出する。位置検出部114は、第1スキャン制御における辺33aの到達位置のX座標と、第2スキャン制御における辺33bの到達位置のX座標との平均値を算出してもよい。例えば位置検出部114は、次式により到達位置のX座標を算出する。
Xr=(X11+X21)/2・・・(2)
Xr:到達位置のX座標。
X11:第1スキャン制御における辺33aの到達位置のX座標。
X21:第2スキャン制御における辺33aの到達位置のX座標。
【0082】
ステップS72では、位置検出部114が、第1スキャン制御において辺33aが基準位置RPに達したタイミングと、第2スキャン制御において辺33aが基準位置RPに達したタイミングとに基づいて、ハンド30の傾きを検出する。例えば位置検出部114は、第1スキャン制御における辺33aの到達位置のX座標及びY座標と、第2スキャン制御における辺33aの到達位置のX座標及びY座標とに基づいてハンド30の傾きを算出する。具体的に、位置検出部114は、次式によりハンド30の傾きを算出する(図14参照)。
θh=tan-1((X11-X21)/(Y21-Y11))・・・(3)
θh:ハンド30の傾き角度。
Y11:第1スキャン制御における辺33aの到達位置のY座標。
Y21:第2スキャン制御における辺33aの到達位置のY座標。
【0083】
ステップS73では、位置検出部114が、スキャン制御部113がハンド30を移動させているときに、辺33aが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいて、Y軸方向におけるハンド30の位置ずれを検出する。例えば位置検出部114は、辺33aが基準位置RPに達したタイミングから辺33bが基準位置RPに達したタイミングまでのハンド30の移動ストロークに基づいて、基準位置RPに対するハンド30のY軸方向における相対位置を検出する。位置検出部114は、ハンド30の傾きの検出結果に基づいて、ハンド30の位置ずれの検出結果を補正してもよい。具体的に、位置検出部114は、次式によりY軸方向におけるハンド30の上記移動ストロークを算出する。
L11=Y21-Y11・・・(4)
L12=X12-X11・・・(5)
L13=X22-X21・・・(6)
L14=L12・cos(θh)+L12・sin(θh)・・・(7)
L15=L13・cos(θh)+L13・sin(θh)・・・(8)
L16=(L14+L15)/2・・・(9)
L11:Y軸方向における第1スキャン位置から第2スキャン位置へのストローク(以下、「シフトストローク」という。)。
X12:第1スキャン制御における辺33bの到達位置のX座標。
X22:第2スキャン制御における辺33bの到達位置のX座標。
L12:第1スキャン位置における移動ストローク(以下、「第1移動ストローク」という。)。
L13:第2スキャン位置における移動ストローク(以下、「第2移動ストローク」という。)。
L14:ハンド30の傾き角度θhにより補正された第1移動ストローク。
L15:ハンド30の傾き角度θhにより補正された第2移動ストローク。
L16:移動ストローク。
【0084】
なお、ハンド30の傾きによるハンド30の位置ずれの補正は、上記式(7)及び(8)にて行われている。この補正内容により、第1移動ストローク及び第2移動ストロークは、傾き角度θhがゼロである場合のストロークに補正されている。
【0085】
位置検出部114は、移動ストロークに基づいて、Y軸方向におけるハンド30の位置ずれを検出する。例えば図15に示すように、位置検出部114は、Y軸方向における位置ずれがゼロである場合の移動ストロークL17に比較して移動ストロークL16が短い場合、移動ストロークL17と移動ストロークL16とのストローク差L21に相当するずれ量でハンド30がY軸正方向にずれていることを検出する。また、位置検出部114は、移動ストロークL17に比較して移動ストロークL16が長い場合、移動ストロークL16と移動ストロークL17とのストローク差L22に相当するずれ量でハンド30がY軸負方向にずれていることを検出する。
【0086】
なお、上述したように、コントローラ100は、交差スキャン制御部131を更に備えてもよい。位置検出部114は、交差スキャン制御部131がハンド30を移動させているときに、辺33cが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいてハンド30の位置ずれを更に検出してもよい。この場合、位置検出部114は、スキャン制御部113によるハンド30の移動(以下、「スキャン制御」という。)に応じて検出するハンド30の位置ずれと、交差スキャン制御部131によるハンド30の移動(以下、「交差スキャン制御」という。)に応じて検出するハンド30の位置ずれとを平均してハンド30の位置ずれを導出してもよい。以下、交差スキャン制御に応じたハンド30の位置ずれ検出手順を例示する。
【0087】
図16に示すように、コントローラ100は、ステップS81,S82,S83を実行する。ステップS81では、スキャン制御部113が、上記第3スキャン制御を実行し、位置検出部114が第3スキャン制御中の情報取得を行う。ステップS82では、スキャン制御部113が、上記第4スキャン制御を実行し、位置検出部114が第4スキャン制御中の情報取得を行う。ステップS83では、ステップS81,S82で取得した情報に基づいて位置検出部114がハンド30の位置ずれを算出する。
【0088】
図17は、ステップS81の具体的内容を例示するフローチャートである。図17に示すように、コントローラ100は、まずステップS91,S92を実行する。ステップS91では、交差スキャン制御部131が、基準位置RPの手前側(基準位置RPよりもY軸方向の負側)においてハンド30を第3スキャン位置に配置し、ハンド30の先端部をX軸正方向に向けるようにアーム40を制御する。ステップS92では、交差スキャン制御部131が、Y軸正方向へのハンド30の移動を開始させるようにアーム40を制御する。
【0089】
次に、コントローラ100はステップS93,S94を実行する。ステップS93では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33cの検出を待機する。ステップS94では、位置検出部114が、辺33cが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第3スキャン制御における辺33cの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)を交差スキャン制御部131から取得する。
【0090】
次に、コントローラ100はステップS95,S96,S97を実行する。ステップS95では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33bの検出を待機する。ステップS96では、位置検出部114が、辺33bが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第3スキャン制御における辺33bの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)を交差スキャン制御部131から取得する。ステップS97では、交差スキャン制御部131が、ステップS92における移動の開始位置に達するまで、アーム40によりY軸負方向にハンド30を移動させる。以上により、Y軸方向に並ぶ辺33cの点P31と辺33bの点P32とが基準位置RPに達したタイミングにおけるX座標及びY座標が取得される(図19の(a)参照)。
【0091】
図18は、ステップS82の具体的内容を例示するフローチャートである。図18に示すように、コントローラ100は、まずステップS101,S102を実行する。ステップS101では、交差スキャン制御部131が、基準位置RPの手前側(基準位置RPよりもY軸方向の負側)においてハンド30を第4スキャン位置に配置し、ハンド30の先端部をX軸正方向に向けるようにアーム40を制御する。ステップS102では、交差スキャン制御部131が、Y軸正方向へのハンド30の移動を開始させるようにアーム40を制御する。
【0092】
次に、コントローラ100はステップS103,S104を実行する。ステップS103では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33cの検出を待機する。ステップS104では、位置検出部114が、辺33cが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第4スキャン制御における辺33cの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)を交差スキャン制御部131から取得する。
【0093】
次に、コントローラ100はステップS105,S106,S107を実行する。ステップS105では、位置検出部114が、処理ステーション10の鉛直センサ12による辺33bの検出を待機する。ステップS106では、位置検出部114が、辺33bが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「第4スキャン制御における辺33bの到達位置」という。)のX座標及びY座標(ロボット座標系におけるX座標及びY座標)を交差スキャン制御部131から取得する。ステップS107では、交差スキャン制御部131が、ステップS102における移動の開始位置に達するまで、アーム40によりY軸負方向にハンド30を移動させる。以上により、点P31,P32とは異なる位置でY軸方向に並ぶ辺33cの点P41と辺33bの点P42とが基準位置RPに達したタイミングにおけるX座標及びY座標が取得される(図19の(b)参照)。
【0094】
図20は、ステップS83の具体的内容を例示するフローチャートである。図20に示すように、コントローラ100は、ステップS111,S112,S113を実行する。ステップS111では、辺33cが基準位置RPに達したタイミングにおけるハンド30の位置(以下、「到達位置」という。)のY座標と、辺33cが基準位置RPに達する予定タイミングにおけるハンド30の位置のY座標との差を位置検出部114が算出する。位置検出部114は、第3スキャン制御における辺33cの到達位置のY座標と、第4スキャン制御における辺33cの到達位置のY座標との平均値を算出してもよい。例えば位置検出部114は、次式により到達位置のY座標を算出する。
Yr=(Y31+Y41)/2・・・(11)
Yr:到達位置のY座標。
Y31:第3スキャン制御における辺33cの到達位置のY座標。
Y41:第4スキャン制御における辺33cの到達位置のY座標。
【0095】
ステップS112では、位置検出部114が、第3スキャン制御において辺33cが基準位置RPに達したタイミングと、第4スキャン制御において辺33cが基準位置RPに達したタイミングとに基づいて、ハンド30の傾きを検出する。例えば位置検出部114は、第3スキャン制御における辺33cの到達位置のX座標及びY座標と、第4スキャン制御における辺33cの到達位置のX座標及びY座標とに基づいてハンド30の傾きを算出する。具体的に、位置検出部114は、次式によりハンド30の傾きを算出する。
θh=tan-1((Y31-Y41)/(X41-X31))・・・(12)
θh:ハンド30の傾き角度。
X31:第3スキャン制御における辺33cの到達位置のX座標。
X41:第4スキャン制御における辺33cの到達位置のX座標。
【0096】
ステップS113では、位置検出部114が、交差スキャン制御部131がハンド30を移動させているときに、辺33cが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいて、X軸方向におけるハンド30の位置ずれを検出する。例えば位置検出部114は、辺33cが基準位置RPに達したタイミングから辺33bが基準位置RPに達したタイミングまでのハンド30の移動ストロークに基づいて、基準位置RPに対するハンド30のX軸方向における相対位置を検出する。位置検出部114は、ハンド30の傾きの検出結果に基づいて、ハンド30の位置ずれの検出結果を補正してもよい。具体的に、位置検出部114は、次式によりX軸方向におけるハンド30の上記移動ストロークを算出する。
L31=X41-X31・・・(13)
L32=Y32-Y31・・・(14)
L33=Y42-Y41・・・(15)
L34=L32・cos(θh)+L32・sin(θh)・・・(16)
L35=L33・cos(θh)+L33・sin(θh)・・・(17)
L36=(L34+L35)/2・・・(18)
L31:X軸方向における第3スキャン位置から第4スキャン位置へのストローク(以下、「シフトストローク」という。)。
Y32:第3スキャン制御における辺33bの到達位置のY座標。
Y42:第4スキャン制御における辺33bの到達位置のY座標。
L32:第3スキャン位置における移動ストローク(以下、「第3移動ストローク」という。)。
L33:第4スキャン位置における移動ストローク(以下、「第4移動ストローク」という。)。
L34:ハンド30の傾き角度θhにより補正された第3移動ストローク。
L35:ハンド30の傾き角度θhにより補正された第4移動ストローク。
L36:移動ストローク。
【0097】
なお、ハンド30の傾きによるハンド30の位置ずれの補正は、上記式(16)及び(17)にて行われている。この補正内容により、第3移動ストローク及び第4移動ストロークは、傾き角度θhがゼロである場合のストロークに補正されている。
【0098】
位置検出部114は、移動ストロークに基づいて、X軸方向におけるハンド30の位置ずれを検出する。例えば位置検出部114は、X軸方向における位置ずれがゼロである場合の移動ストロークL37に比較して移動ストロークL36が短い場合、移動ストロークL37と移動ストロークL36とのストローク差に相当するずれ量でハンド30がX軸正方向にずれていることを検出する。また、位置検出部114は、移動ストロークL37に比較して移動ストロークL36が長い場合、移動ストロークL36と移動ストロークL37とのストローク差に相当するずれ量でハンド30がX軸負方向にずれていることを検出する。
【0099】
(ハンド30の高さ検出手順)
続いて、ステップS06におけるハンド30の高さずれの検出手順を例示する。図21に示すように、コントローラ100は、ステップS121,S122,S123を実行する。ステップS121では、高さスキャン制御部141が、上記第1高さスキャン制御を実行し、高さ検出部142が第1高さスキャン制御中の情報取得を行う。ステップS122では、高さスキャン制御部141が、上記第2高さスキャン制御を実行し、高さ検出部142が第2高さスキャン制御中の情報取得を行う。ステップS123では、ステップS121,S122で取得した情報に基づいて高さ検出部142がハンド30の高さずれを算出する。
【0100】
図22は、ステップS121の具体的内容を例示するフローチャートである。図22に示すように、コントローラ100は、まずステップS131,S132を実行する。ステップS131では、高さスキャン制御部141が、基準位置RPよりも下方において上記第1高さスキャン位置にハンド30を配置し、ハンド30の先端部をX軸正方向に向けるようにアーム40を制御する。ステップS132では、高さスキャン制御部141が、Z軸正方向へのハンド30の移動(上昇)を開始させるようにアーム40を制御する。
【0101】
次に、コントローラ100はステップS133,S134を実行する。ステップS133では、高さ検出部142が、処理ステーション10の水平センサ13によるハンド30の上部の検出を待機する。ステップS134では、高さ検出部142が、ハンド30の上部が基準位置RPの高さに達したタイミングにおけるハンド30の位置(以下、「第1高さスキャン制御における上部の到達位置」という。)のZ座標(ロボット座標系におけるZ座標)を高さスキャン制御部141から取得する。
【0102】
次に、コントローラ100はステップS135,S136,S137を実行する。ステップS135では、高さ検出部142が、処理ステーション10の水平センサ13によるハンド30の下部の検出を待機する。ステップS136では、高さ検出部142が、ハンド30の下部が基準位置RPの高さに達したタイミングにおけるハンド30の位置(以下、「第1高さスキャン制御における下部の到達位置」という。)のZ座標(ロボット座標系におけるZ座標)を高さスキャン制御部141から取得する。
【0103】
ステップS137では、高さスキャン制御部141が、ステップS132における移動の開始位置に達するまで、アーム40によりZ軸負方向にハンド30を移動(下降)させる。以上により、X軸に垂直な同一面内におけるハンド30上部の点P111とハンド30の下部の点P112とが基準位置RPの高さに達したタイミングにおけるZ座標が取得される(図24の(a)参照)。
【0104】
図23は、ステップS122の具体的内容を例示するフローチャートである。図23に示すように、コントローラ100は、まずステップS141,S142を実行する。ステップS141では、高さスキャン制御部141が、基準位置RPよりも下方において上記第2高さスキャン位置にハンド30を配置し、ハンド30の先端部をX軸正方向に向けるようにアーム40を制御する。ステップS142では、高さスキャン制御部141が、Z軸正方向へのハンド30の移動(上昇)を開始させるようにアーム40を制御する。
【0105】
次に、コントローラ100はステップS143,S144を実行する。ステップS143では、高さ検出部142が、処理ステーション10の水平センサ13によるハンド30の上部の検出を待機する。ステップS144では、高さ検出部142が、ハンド30の上部が基準位置RPの高さに達したタイミングにおけるハンド30の位置(以下、「第2高さスキャン制御における上部の到達位置」という。)のZ座標(ロボット座標系におけるZ座標)を高さスキャン制御部141から取得する。
【0106】
次に、コントローラ100はステップS145,S146,S147を実行する。ステップS145では、高さ検出部142が、処理ステーション10の水平センサ13によるハンド30の下部の検出を待機する。ステップS146では、高さ検出部142が、ハンド30の下部が基準位置RPの高さに達したタイミングにおけるハンド30の位置(以下、「第2高さスキャン制御における下部の到達位置」という。)のZ座標(ロボット座標系におけるZ座標)を高さスキャン制御部141から取得する。ステップS147では、高さスキャン制御部141が、ステップS142における移動の開始位置に達するまで、アーム40によりZ軸負方向にハンド30を移動(下降)させる。以上により、点P111,P112とは異なる位置で、X軸に垂直な同一面内におけるハンド30の上部の点P121とハンド30の下部の点P122とが基準位置RPの高さに達したタイミングにおけるZ座標が取得される(図24の(b)参照)。
【0107】
図25は、ステップS123の具体的内容を例示するフローチャートである。図25に示すように、コントローラ100は、ステップS151,S152,S153を実行する。ステップS151では、高さ検出部142が、ハンド30の上部が基準位置RPの高さに達したタイミングにおけるハンド30の位置(以下、「到達位置」という。)のZ座標と、ハンド30の上部が基準位置RPの高さに達する予定タイミングにおけるハンド30の位置のZ座標との差を算出する。高さ検出部142は、第1高さスキャン制御におけるハンド30の到達位置のZ座標と、第2高さスキャン制御におけるハンド30の到達位置のZ座標との平均値を算出してもよい。例えば高さ検出部142は、次式により到達位置のZ座標を算出する。
Zr=(Z11+Z21)/2・・・(21)
Zr:到達位置のZ座標。
Z11:第1高さスキャン制御における上部の到達位置のZ座標。
Z21:第2高さスキャン制御における上部の到達位置のZ座標。
【0108】
ステップS152では、高さ検出部142が、ハンド30の上部が基準位置RPの高さに達したタイミングと、ハンド30の下部が基準位置RPの高さに達したタイミングとに基づいてハンド30の厚さを検出する。例えば高さ検出部142は、ハンド30の下部が基準位置RPの高さに達したタイミングからハンド30の上部が基準位置RPの高さに達したタイミングまでのハンド30の昇降ストロークをハンド30の厚さとして検出する。高さ検出部142は、第1高さスキャン制御におけるハンド30の厚さと、第2高さスキャン制御におけるハンド30の厚さとの平均値を算出してもよい。例えば高さ検出部142は、次式によりハンド30の厚さを算出する。
T1=Z12-Z11・・・(22)
T2=Z22-Z21・・・(23)
T=(T1+T2)/2・・・(24)
Z12:第1高さスキャン制御における下部の到達位置のZ座標。
Z22:第2高さスキャン制御における下部の到達位置のZ座標。
【0109】
ステップS153では、高さ検出部142が、第1高さスキャン制御においてハンド30の上部が基準位置RPの高さに達したタイミングと、第2高さスキャン制御においてハンド30の上部が基準位置RPの高さに達したタイミングとに基づいて、ハンド30の傾きを検出する。例えば高さ検出部142は、第1高さスキャン制御においてハンド30の上部が基準位置RPの高さに達したタイミングにおけるハンド30の位置のX座標及びZ座標と、第2高さスキャン制御においてハンド30の上部が基準位置RPの高さに達したタイミングにおけるハンド30の位置のX座標及びZ座標とに基づいてハンド30の傾きを算出する。例えば高さ検出部142は、次式によりハンド30の傾きを算出する。
θh2=tan-1((Z11-Z21)/(Xh2-Xh1))・・・(25)
θh2:Y軸に平行な軸線周りのハンド30の傾き角度。
Xh1:第1高さスキャン位置のX座標。
Xh2:第2高さスキャン位置のX座標。
【0110】
〔本実施形態の効果〕
以上に説明したように、搬送システム2は、搬送対象のワークWを支持するハンド30と、ハンド30を移動させるアーム40と、ハンド30に固定された互いに非平行な辺33a及び辺33bが、ワークWの搬送経路における既知の基準位置RPを通過するように、辺33a及び辺33bに交差するスキャン方向に沿ってハンド30をアーム40により移動させるスキャン制御部113と、スキャン制御部113がハンド30を移動させているときに、辺33aが基準位置RPに達したタイミングと、辺33bが基準位置RPに達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド30の位置ずれを検出する位置検出部114と、を備える。
【0111】
基準位置RPへの指標(辺33a及び辺33b)の到達を検出する構成によって、スキャン方向に交差する方向におけるハンド30の位置を検出することができる。従って、ハンド30の位置のキャリブレーションを簡素な構成で高精度に行うのに有効である。
【0112】
位置検出部114は、スキャン制御部113がハンド30を移動させているときに辺33aが基準位置Rpに達したタイミングに基づいて、スキャン方向におけるハンド30の位置ずれを更に検出してもよい。この場合、基準位置RPへの指標(辺33a及び辺33b)の到達を検出する構成によって、スキャン方向におけるハンド30の位置と、スキャン方向に交差する方向におけるハンド30の位置との両方を検出することができる。従って、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0113】
スキャン制御部113は、スキャン方向に交差する方向で互いに異なる第1スキャン位置と第2スキャン位置とのそれぞれにおいてスキャン方向に沿ってハンド30を移動させ、位置検出部114は、スキャン制御部113が第1スキャン位置においてハンド30を移動させているときに辺33aが基準位置RPに達したタイミングと、スキャン制御部113が第2スキャン位置においてハンド30を移動させているときに辺33aが基準位置RPに達したタイミングとに基づいて、ハンド30の傾きを更に検出してもよい。この場合、基準位置RPへの指標(辺33a及び辺33b)の到達を検出する構成によって、ハンド30の傾きをも検出することができる。従って、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0114】
位置検出部114は、ハンド30の傾きの検出結果に基づいて、ハンド30の位置ずれの検出結果を補正してもよい。この場合、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0115】
搬送システム2は、互いに異なる第1位置RP1及び第2位置RP2のそれぞれを基準位置RPとして、スキャン制御部113によるハンド30の移動を実行させ、スキャン制御部113が第1位置RP1を基準位置RPとしてハンド30を移動させているときに辺33aが第1位置RP1に達したタイミングと、スキャン制御部113が第2位置RP2を基準位置RPとしてハンド30を移動させているときに辺33aが第2位置RP2に達したタイミングとに基づいてアーム40の基台41の傾きを検出するアーム傾き検出部121を更に備えていてもよい。この場合、第1位置RP1への指標の到達を検出する構成と、第1位置RP1への指標の到達を検出する構成とによって、アーム40の基台41の傾きをも検出することができる。従って、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0116】
搬送システム2は、アーム傾き検出部121が検出した基台41の傾きに起因するハンド30の位置ずれを縮小するように、アーム40の制御指令を補正する旋回指令補正部122を更に備え、スキャン制御部113は、旋回指令補正部122により補正された制御指令に基づいて、辺33a及び辺33bが基準位置RPを再度通過するようにスキャン方向に沿ってハンド30をアーム40により移動させ、位置検出部114は、辺33aが基準位置RPに再度達したタイミングと、辺33bが基準位置RPに再度達したタイミングとに基づいてハンド30の位置ずれを再度検出してもよい。この場合、アーム40の基台41の傾きに起因するハンド30の位置ずれを縮小するように制御指令が補正され、補正後の制御指令に従ってハンド30の位置が再検出される。従って、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0117】
搬送システム2は、辺33a及び辺33bのいずれか一方と、ハンド30に固定され、辺33a及び辺33bのいずれにも非平行な辺33cとが基準位置RPを通過するように、スキャン方向に交差する交差スキャン方向に沿ってハンド30をアーム40により移動させる交差スキャン制御部131と、を更に備え、位置検出部114は、交差スキャン制御部131がハンド30を移動させているときに辺33a及び辺33bの少なくとも一方が基準位置RPに達したタイミングと、辺33cが基準位置RPに達したタイミングとに基づいて、交差スキャン方向と交差する方向におけるハンド30の位置ずれを更に検出してもよい。この場合、基準位置RPへの指標の到達を検出する構成によって得られる情報が増えるので、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0118】
位置検出部114は、辺33cが基準位置RPに達したタイミングに基づいて交差スキャン方向におけるハンド30の位置ずれを更に検出してもよい。この場合、基準位置RPへの指標の到達を検出する構成によって得られる情報が更に増えるので、ハンド30の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【0119】
以上、実施形態について説明したが、本発明は必ずしも上述した形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【0120】
2…搬送システム、30…ハンド、33a…辺(第1ライン)、33b…辺(第2ライン)、33c…辺(第3ライン)、40…アーム、41…基台(基部)、113…スキャン制御部、114…位置検出部、121…アーム傾き検出部、122…旋回指令補正部(指令補正部)、131…交差スキャン制御部、141…高さスキャン制御部、RP…基準位置、RP1…第1位置、RP2…第2位置、W…ワーク(基板)。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25