(57)【要約】【課題】基板を支持するハンドの位置のキャリブレーションを簡素な構成で高精度に行うのに有効な搬送システムを提供する。【解決手段】搬送システム２は、搬送対象のワークＷを支持するハンド３０と、ハンド３０を移動させるアーム４０と、ハンド３０に固定された互いに非平行な辺３３ａ及び辺３３ｂが、ワークＷの搬送経路における既知の基準位置ＲＰを通過するように、辺３３ａ及び辺３３ｂに交差するスキャン方向に沿ってハンド３０をアーム４０により移動させるスキャン制御部１１３と、スキャン制御部１１３がハンド３０を移動させているときに、辺３３ａが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド３０の位置ずれを検出する位置検出部１１４と、を備える。【選択図】図４
2020098851.tif 000002
【特許請求の範囲】
【請求項１】
搬送対象の基板を支持するハンドと、
前記ハンドを移動させるアームと、
前記ハンドに固定された互いに非平行な第１ライン及び第２ラインが、前記基板の搬送経路における既知の基準位置を通過するように、前記第１ライン及び前記第２ラインに交差するスキャン方向に沿って前記ハンドを前記アームにより移動させるスキャン制御部と、
前記スキャン制御部が前記ハンドを移動させているときに、前記第１ラインが前記基準位置に達したタイミングと、前記第２ラインが前記基準位置に達したタイミングとに基づいて、前記スキャン方向と交差する方向における前記ハンドの位置ずれを検出する位置検出部と、を備える搬送システム。
【請求項２】
前記位置検出部は、前記スキャン制御部が前記ハンドを移動させているときに前記第１ラインが前記基準位置に達したタイミングに基づいて、前記スキャン方向における前記ハンドの位置ずれを更に検出する、請求項１記載の搬送システム。
【請求項３】
前記スキャン制御部は、
前記スキャン方向に交差する方向で互いに異なる第１スキャン位置と第２スキャン位置とのそれぞれにおいて前記スキャン方向に沿って前記ハンドを移動させ、
前記位置検出部は、
前記スキャン制御部が前記第１スキャン位置において前記ハンドを移動させているときに前記第１ラインが前記基準位置に達したタイミングと、前記スキャン制御部が前記第２スキャン位置において前記ハンドを移動させているときに前記第１ラインが前記基準位置に達したタイミングとに基づいて、前記ハンドの傾きを更に検出する、請求項１又は２記載の搬送システム。
【請求項４】
前記位置検出部は、前記ハンドの傾きの検出結果に基づいて、前記ハンドの位置ずれの検出結果を補正する、請求項３記載の搬送システム。
【請求項５】
互いに異なる第１位置及び第２位置のそれぞれを前記基準位置として、前記スキャン制御部による前記ハンドの移動を実行させ、前記スキャン制御部が前記第１位置を前記基準位置として前記ハンドを移動させているときに前記第１ラインが前記第１位置に達したタイミングと、前記スキャン制御部が前記第２位置を前記基準位置として前記ハンドを移動させているときに前記第１ラインが前記第２位置に達したタイミングとに基づいて前記アームの基部の傾きを検出するアーム傾き検出部を更に備える、請求項１〜４のいずれか一項記載の搬送システム。
【請求項６】
前記アーム傾き検出部が検出した前記基部の傾きに起因する前記ハンドの位置ずれを縮小するように、前記アームの制御指令を補正する指令補正部を更に備え、
前記スキャン制御部は、前記指令補正部により補正された前記制御指令に基づいて、前記第１ライン及び前記第２ラインが前記基準位置を再度通過するように前記スキャン方向に沿って前記ハンドを前記アームにより移動させ、
前記位置検出部は、前記第１ラインが前記基準位置に再度達したタイミングと、前記第２ラインが前記基準位置に再度達したタイミングとに基づいて前記ハンドの位置ずれを再度検出する、請求項５記載の搬送システム。
【請求項７】
前記第１ライン及び前記第２ラインのいずれか一方と、前記ハンドに固定され、前記第１ライン及び前記第２ラインのいずれにも非平行な第３ラインとが前記基準位置を通過するように、前記スキャン方向に交差する交差スキャン方向に沿って前記ハンドを前記アームにより移動させる交差スキャン制御部を更に備え、
前記位置検出部は、前記交差スキャン制御部が前記ハンドを移動させているときに前記第１ライン及び前記第２ラインの少なくとも一方が前記基準位置に達したタイミングと、前記第３ラインが前記基準位置に達したタイミングとに基づいて、前記交差スキャン方向と交差する方向における前記ハンドの位置ずれを更に検出する、請求項１〜６のいずれか一項記載の搬送システム。
【請求項８】
前記位置検出部は、前記第３ラインが前記基準位置に達したタイミングに基づいて前記交差スキャン方向における前記ハンドの位置ずれを更に検出する、請求項７記載の搬送システム。
【請求項９】
搬送対象の基板を支持するハンドに固定された互いに非平行な第１ライン及び第２ラインが、前記基板の搬送経路における既知の基準位置を通過するように、前記第１ライン及び前記第２ラインに交差するスキャン方向に沿って前記ハンドをアームにより移動させることと、
前記スキャン方向に沿って前記ハンドが移動しているときに前記第１ラインが前記基準位置に達したタイミングと、前記第２ラインが前記基準位置に達したタイミングとに基づいて、前記スキャン方向と交差する方向における前記ハンドの位置ずれを検出することと、を含む搬送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、搬送システム及び搬送制御方法に関する。
【背景技術】
【０００２】
特許文献１には、実物のウェハと同一寸法の教示冶具をウェハの代わりに処理装置等に配置して、その教示冶具の位置をロボットのエンドエフェクタに設けたセンサで検出して、ロボットに位置を教示する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１２３２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、基板を支持するハンドの位置のキャリブレーションを簡素な構成で高精度に行うのに有効な搬送システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示の一側面に係る搬送システムは、搬送対象の基板を支持するハンドと、ハンドを移動させるアームと、ハンドに固定された互いに非平行な第１ライン及び第２ラインが、基板の搬送経路における既知の基準位置を通過するように、第１ライン及び第２ラインに交差するスキャン方向に沿ってハンドをアームにより移動させるスキャン制御部と、スキャン制御部がハンドを移動させているときに、第１ラインが基準位置に達したタイミングと、第２ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンドの位置ずれを検出する位置検出部と、を備える。
【０００６】
本開示の他の側面に係る搬送制御方法は、搬送対象の基板を支持するハンドに固定された互いに非平行な第１ライン及び第２ラインが、基板の搬送経路における既知の基準位置を通過するように、第１ライン及び第２ラインに交差するスキャン方向に沿ってハンドをアームにより移動させることと、スキャン方向に沿ってハンドが移動しているときに第１ラインが基準位置に達したタイミングと、第２ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンドの位置ずれを検出することと、を含む。
【発明の効果】
【０００７】
本開示によれば、基板を支持するハンドの位置のキャリブレーションを簡素な構成で高精度に行うのに有効な搬送システムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】基板処理システムの概略構成を示す模式図である。
【図２】処理ステーションの搬入口の模式図である。
【図３】指標部を例示する拡大図である。
【図４】コントローラの機能的な構成を例示するブロック図である。
【図５】コントローラのハードウェア構成を例示するブロック図である。
【図６】キャリブレーション手順を例示するフローチャートである。
【図７】基台の傾き検出手順を例示するフローチャートである。
【図８】到達位置の座標と基台の傾きとの関係を示す模式図である。
【図９】ハンドの位置ずれ検出手順を例示するフローチャートである。
【図１０】第１スキャン制御の手順を例示するフローチャートである。
【図１１】第２スキャン制御の手順を例示するフローチャートである。
【図１２】第１スキャン制御及び第２スキャン制御におけるハンドの動きを例示する模式図である。
【図１３】ハンドの位置ずれ算出手順を例示するフローチャートである。
【図１４】ハンドの傾きと補正前後の移動ストロークとの関係を例示する模式図である。
【図１５】移動ストロークとハンドの位置ずれとの関係を例示する模式図である。
【図１６】交差スキャン制御によるハンドの位置ずれ検出手順を例示するフローチャートである。
【図１７】第３スキャン制御の手順を例示するフローチャートである。
【図１８】第４スキャン制御の手順を例示するフローチャートである。
【図１９】第３スキャン制御及び第４スキャン制御におけるハンドの動きを例示する模式図である。
【図２０】ハンドの位置ずれ算出手順を例示するフローチャートである。
【図２１】ハンドの高さずれ検出手順を例示するフローチャートである。
【図２２】第１高さスキャン制御の手順を例示するフローチャートである。
【図２３】第２高さスキャン制御の手順を例示するフローチャートである。
【図２４】第１高さスキャン制御及び第２高さスキャン制御におけるハンドの動きを例示する模式図である。
【図２５】ハンドの高さずれ算出手順を例示するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【００１０】
〔基板処理システム〕
図１に示す基板処理システム１は、基板に液処理、熱処理等を施すシステムである。処理対象の基板の具体例としては、半導体ウェハ、ＬＣＤ基板又はガラス基板等が挙げられる。以下、処理対象の基板をワークＷという。
【００１１】
（全体構成）
図１に示すように、基板処理システム１は、複数の処理ステーション１０と、搬送システム２とを含む。処理ステーション１０の数に特に制限はないが、図１においては説明に必要な二つの処理ステーション１０のみを図示している。以下、二つの処理ステーション１０を必要に応じ処理ステーション１０Ａ，１０Ｂとして区別する。処理ステーション１０Ａ，１０Ｂは、水平方向に並んでいる。
【００１２】
処理ステーション１０は、ワークＷに対して所定の処理を実行するように構成されており、ワークＷを搬入・搬出するための搬入口１１を有する。搬入口１１は鉛直面に沿っている。換言すると、搬入口１１は水平方向に開口している。処理ステーション１０Ａ，１０Ｂの開口は、処理ステーション１０Ａ，１０Ｂが並ぶ方向に直交する方向に開口している。
【００１３】
搬送システム２は、各処理ステーション１０に対しワークＷを搬入・搬出するためのシステムである。搬送システム２は、ハンド３０と、アーム４０と、コントローラ１００とを有する。ハンド３０は、搬送対象のワークＷを支持する。ハンド３０は、水平な板状のベース３１と、ベース３１の外周から一方向に突出した二つの指部３２とを有し、ベース３１と二つの指部３２とでワークＷを支持する。以下、ハンド３０の説明において二つの指部３２側の端部を「先端部」といい、二つの指部３２の逆側の端部を「基端部」という。なお、ハンド３０の形状は上述したものには限定されず、ワークＷを支持できる限り、どのような形状であってもよい。
【００１４】
アーム４０は、ハンド３０を移動させる多関節アームである。例えばアーム４０は、基台４１と、昇降部４２と、第一アーム４３と、第二アーム４４とを有する。基台４１は、基板処理システム１内の所定位置に設置される。基台４１は、基板処理システム１内の床面上に固定されていてもよいし、基板処理システム１内を移動する可動部上に固定されていてもよい。
【００１５】
昇降部４２は、基台４１から鉛直上方に突出しており、鉛直な軸線Ａｘ１に沿って昇降可能である。第一アーム４３は、昇降部４２の上端部から水平方向に延びており、軸線Ａｘ１まわりに揺動可能である。第二アーム４４は、第一アーム４３の先端部から更に水平方向に延びており、第一アーム４３の先端部を通る鉛直な軸線Ａｘ２まわりに揺動可能である。第二アーム４４の先端部は、ハンド３０の基端部に接続されている。ハンド３０は、第二アーム４４の先端部を通る鉛直な軸線Ａｘ３まわりに揺動可能である。
【００１６】
アーム４０は、ハンド３０を移動させるための複数のアクチュエータ（不図示）を有する。例えば複数のアクチュエータは、軸線Ａｘ１に沿って昇降部４２を昇降させる昇降アクチュエータ４５と、軸線Ａｘ１まわりに第一アーム４３を揺動させる回転アクチュエータ４６と、軸線Ａｘ２まわりに第二アーム４４を揺動させる回転アクチュエータ４７と、軸線Ａｘ３まわりにハンド３０を揺動させる回転アクチュエータ４８とを含む（図４参照）。なお、アーム４０の構成はあくまで一例であり、水平方向におけるハンド３０の位置及び向きと、ハンド３０の高さとを自在に調節できる限りどのように構成されていてもよい。
【００１７】
コントローラ１００は、ロボット座標系を基準にしてハンド３０を目標位置・目標姿勢・目標高さに移動させるようにアーム４０を制御する。ロボット座標系は、例えば基台４１に固定され、処理ステーション１０にワークＷを進入させる方向をＸ軸の正方向とし、鉛直上方をＺ軸の正方向とする三次元の直交座標系である。コントローラ１００の構成については後に詳述する。
【００１８】
図２に示すように、処理ステーション１０には、予め基準位置ＲＰが設定されている。基準位置ＲＰは、処理ステーション１０に対するハンド３０の位置のキャリブレーションに用いられる。例えば処理ステーション１０Ａにおいては搬入口１１の中心である第１位置ＲＰ１が基準位置ＲＰとされており、処理ステーション１０Ｂにおいては搬入口１１の中心である第２位置ＲＰ２が基準位置ＲＰとされている。
【００１９】
処理ステーション１０は、基準位置ＲＰにおける物体の有無を検出するための鉛直センサ１２と水平センサ１３とを更に有する。鉛直センサ１２は、発光部１２ａと受光部１２ｂとを有する。発光部１２ａ及び受光部１２ｂは、搬入口１１の縁において、基準位置ＲＰの鉛直上方及び鉛直下方にそれぞれ設けられている。発光部１２ａは、基準位置ＲＰを通る光を鉛直下方に出射する。以下、この光を「鉛直検出光」という。受光部１２ｂは、鉛直検出光を受光する。なお、発光部１２ａが基準位置ＲＰの鉛直下方に設けられていてもよい。
【００２０】
搬入口１１内において、水平方向で基準位置ＲＰと重複する位置に物体が存在しない場合には受光部１２ｂが鉛直検出光を受光する。搬入口１１内において、水平方向で基準位置ＲＰと重複する位置に物体が存在する場合には受光部１２ｂが鉛直検出光を受光しない。従って、水平方向で基準位置ＲＰと重複する位置に物体が存在するか否かを受光部１２ｂの受光状態に基づいて検出することができる。
【００２１】
水平センサ１３は、発光部１３ａと受光部１３ｂとを有する。発光部１３ａ及び受光部１３ｂは、搬入口１１の縁において基準位置ＲＰと同じ高さの二カ所（図示右側部及び左側部）にそれぞれ設けられている。発光部１３ａは、基準位置ＲＰを通る光を水平方向に出射する。以下、この光を「水平検出光」という。受光部１３ｂは、水平検出光を受光する。なお、発光部１３ａが図示左側部に設けられ、受光部１３ｂが図示右側部に設けられていてもよい。
【００２２】
搬入口１１内において、鉛直方向で基準位置ＲＰと重複する位置に物体が存在しない場合には受光部１３ｂが水平検出光を受光する。搬入口１１内において、鉛直方向で基準位置ＲＰと重複する位置に物体が存在する場合には受光部１３ｂが水平検出光を受光しない。従って、鉛直方向で基準位置ＲＰと重複する位置に物体が存在するか否かを受光部１３ｂの受光状態に基づいて検出することができる。
【００２３】
図３に示すように、ハンド３０には、鉛直センサ１２による検出対象となる指標部３３が設けられている。以下、指標部３３の説明においては、ハンド３０に固定されたハンド座標系を用いる。ハンド座標系は、指部３２の指部の突出方向をｘ軸の正方向とし、鉛直上方をｚ軸の正方向とする座標系である。指標部３３は、少なくとも互いに非平行な第１ラインと第２ラインとを有する。第１ライン及び第２ラインは、いずれもｘ軸に交差する。指標部３３は、第１ライン及び第２ラインのいずれにも非平行な第３ラインを更に有してもよい。
【００２４】
例えば指標部３３は、ベース３１に設けられた三角形状の開口である。より具体的に、指標部３３は、ｘ軸に直交する（すなわちｙ軸に沿った）辺３３ａと、ｘ軸に沿った（すなわちｙ軸に直交する）辺３３ｃと、辺３３ａ，３３ｃに交差する辺３３ｂとを有する直角二等辺三角形である。辺３３ａは上記第１ラインに相当し、辺３３ｂは上記第２ラインに相当し、辺３３ｃは上記第３ラインに相当する。指標部３３は、辺３３ａの中間点が、ｙ軸方向におけるハンド３０の中心ラインに位置するように設けられている。
【００２５】
なお、図３に示す指標部３３はあくまで一例である。指標部３３は、鉛直センサ１２により検出可能な形態で互いに非平行な第１ラインと第２ラインとを含む限り、どのように設けられていてもよい。また、指標部３３は、少なくとも処理ステーション１０に対するハンド３０の位置のキャリブレーションを実行する際にハンド３０に固定されればよいので、例えばハンド３０の所定位置に取り付け可能な治具に設けられていてもよい。
【００２６】
（コントローラ）
仮に、設計上の設置位置に対してアーム４０の設置位置（すなわち基台４１の設置位置）がずれている場合、設計上の設置位置を前提とした目標位置・目標姿勢・目標高さに従ってハンド３０を移動させると処理ステーション１０内のワークＷの配置がずれてしまうこととなる。このため、コントローラ１００は、実際のアーム４０の設置状態に合わせて目標位置・目標姿勢・目標高さを修正するキャリブレーションを更に実行するように構成されている。
【００２７】
例えばコントローラ１００は、ハンド３０の第１ライン及び第２ラインがワークＷの搬送経路における既知の基準位置を通過するように、第１ライン及び第２ラインに交差するスキャン方向に沿ってハンド３０をアーム４０により移動させることと、スキャン方向に沿ってハンド３０が移動しているときに第１ラインが基準位置に達したタイミングと、第２ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド３０の位置ずれを検出することとを実行するように構成されている。
【００２８】
コントローラ１００は、スキャン方向に沿ってハンドが移動しているときに第１ラインが基準位置に達したタイミングに基づいて、スキャン方向におけるハンド３０の位置ずれを更に検出するように構成されていてもよい。コントローラ１００は、スキャン方向に交差する方向で互いに異なる第１スキャン位置と第２スキャン位置とのそれぞれにおいてスキャン方向に沿ってハンド３０を移動させ、第１スキャン位置においてハンドが移動しているときに第１ラインが基準位置に達したタイミングと、第２スキャン位置においてハンドが移動しているときに第１ラインが基準位置に達したタイミングとに基づいて、ハンド３０の傾きを更に検出するように構成されていてもよい。更にコントローラ１００は、ハンド３０の傾きの検出結果に基づいて、ハンド３０の位置ずれの検出結果を補正するように構成されていてもよい。
【００２９】
例えばコントローラ１００は、機能上の構成として、目標位置保持部１１１と、搬送制御部１１２と、スキャン制御部１１３と、位置検出部１１４と、移動指令補正部１１５と、設置不良報知部１１６とを有する。目標位置保持部１１１は、処理位置にワークＷを配置するためのハンド３０の目標位置・目標姿勢・目標高さを処理ステーション１０ごとに記憶している。搬送制御部１１２及びスキャン制御部１１３は、いずれも目標位置保持部１１１が記憶する目標位置・目標姿勢・目標高さに基づいてアーム４０を制御する。搬送制御部１１２は、いずれかの処理ステーション１０に対してワークＷの搬入又は搬出を行うようにハンド３０をアーム４０により移動させる。
【００３０】
スキャン制御部１１３は、第１ライン及び第２ラインが基準位置を通過するようにスキャン方向に沿ってハンド３０をアーム４０により移動させる。例えばスキャン制御部１１３は、ハンド３０の先端部をロボット座標系のＸ軸正方向に向けた状態で、指標部３３の辺３３ａ，３３ｂがいずれかの処理ステーション１０の基準位置ＲＰを通過するように、Ｘ軸方向に沿ってハンド３０をアーム４０により移動させる。
【００３１】
スキャン制御部１１３は、スキャン方向に交差する方向で互いに異なる第１スキャン位置と第２スキャン位置とのそれぞれにおいてスキャン方向に沿ってハンド３０をアーム４０により移動させてもよい。例えばスキャン制御部１１３は、ハンド３０の先端部をロボット座標系のＸ軸正方向に向けた状態で、Ｙ軸方向で互いに異なる第１スキャン位置と第２スキャン位置とのそれぞれにおいてＸ軸方向に沿ってハンド３０をアーム４０により移動させる。第１スキャン位置及び第２スキャン位置は、いずれにおいても辺３３ａ，３３ｂが基準位置ＲＰを通過するように設定される。以下、第１スキャン位置においてスキャン方向に沿ってハンド３０を移動させる制御を「第１スキャン制御」といい、第２スキャン位置においてスキャン方向に沿ってハンド３０を移動させる制御を「第２スキャン制御」という。
【００３２】
位置検出部１１４は、スキャン制御部１１３がハンド３０を移動させているときに、辺３３ａが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて、スキャン方向（Ｘ軸方向）と交差する方向（Ｙ軸方向）におけるハンド３０の位置ずれを検出する。例えば位置検出部１１４は、辺３３ａが基準位置ＲＰに達したタイミングから辺３３ｂが基準位置ＲＰに達したタイミングまでのハンド３０の移動ストロークに基づいて、基準位置ＲＰに対するハンド３０のＹ軸方向における相対位置を検出する。より詳細な算出手法については後述する。
【００３３】
位置検出部１１４は、スキャン制御部１１３がハンド３０を移動させているときに辺３３ａが基準位置ＲＰに達したタイミングに基づいて、スキャン方向（Ｘ軸方向）におけるハンド３０の位置ずれを更に検出してもよい。具体的には、辺３３ａが基準位置ＲＰに達したタイミングにおけるハンド３０の位置のＸ座標と、辺３３ａが基準位置ＲＰに達する予定タイミングにおけるハンド３０の位置のＸ座標との差を算出する。なお、Ｘ座標は、ロボット座標系におけるＸ座標である。予定タイミングは、ロボット座標系における基準位置ＲＰの設計上のＸ座標に辺３３ａが達するタイミングである。設計上のＸ座標とは、基準位置ＲＰに対するアーム４０の設計上の設置位置に対する誤差がゼロである場合のＸ座標を意味する。
【００３４】
位置検出部１１４は、第１スキャン制御において辺３３ａが基準位置ＲＰに達したタイミングと、第２スキャン制御において辺３３ａが基準位置ＲＰに達したタイミングとに基づいて、ハンド３０の傾き（例えば鉛直軸線まわりの傾き）を更に検出してもよい。ここでのハンド３０の傾きは、スキャン方向（Ｘ軸方向）に対する指部３２の突出方向の傾きである。
【００３５】
例えば位置検出部１１４は、第１スキャン制御において辺３３ａが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第１スキャン制御における辺３３ａの到達位置」という。）と、第２スキャン制御において辺３３ａが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第２スキャン制御における辺３３ａ到達位置」という。）とに基づいてハンド３０の傾きを算出する。具体的には、第１スキャン制御における辺３３ａの到達位置のＸ座標及びＹ座標と、第２スキャン制御における辺３３ａの到達位置のＸ座標及びＹ座標とに基づいてハンド３０の傾きを算出する。なお、Ｘ座標及びＹ座標は、ロボット座標系におけるＸ座標及びＹ座標である。より詳細な算出手法については後述する。位置検出部１１４は、ハンド３０の傾きの検出結果に基づいて、ハンド３０の位置ずれの検出結果を補正してもよい。より詳細な補正手法については後述する。
【００３６】
移動指令補正部１１５は、位置検出部１１４が検出したハンド３０の位置ずれを縮小するように、ハンド３０の目標位置（目標位置保持部１１１が記憶する目標位置）を補正する。例えば移動指令補正部１１５は、上記位置ずれと同じ補正量にて、位置ずれの方向とは逆方向にハンド３０の目標位置を補正する。
【００３７】
移動指令補正部１１５は、位置検出部１１４が検出したハンド３０の傾きを縮小するように、ハンド３０の目標姿勢（目標位置保持部１１１が記憶する目標姿勢）を更に補正してもよい。例えば移動指令補正部１１５は、ハンド３０が傾く角度と同じ補正量にて、ハンド３０が傾く方向とは逆方向にハンド３０の揺動角度目標値を補正する。
【００３８】
設置不良報知部１１６は、ハンド３０の位置ずれ及び傾きの少なくとも一方が許容レベルを超えている場合にアーム４０の設置不良をユーザに報知する。例えば設置不良報知部１１６は、位置検出部１１４が検出したハンド３０の傾きが許容レベルを超えている場合にその旨をユーザに報知する。また、設置不良報知部１１６は、第１スキャン位置及び第２スキャン位置のいずれかにおいて、辺３３ａ，３３ｂが基準位置ＲＰを通過しなかった場合にアーム４０の設置不良をユーザに報知する。例えば設置不良報知部１１６は、液晶モニタ等の表示デバイスへの表示によってアーム４０の設置不良をユーザに報知する。
【００３９】
スキャン制御部１１３、位置検出部１１４及び移動指令補正部１１５は、スキャン方向に沿ったハンド３０の移動と、ハンド３０の位置ずれの検出と、ハンド３０の目標位置の補正とを所定のタイミングで繰り返してもよい。この場合、設置不良報知部１１６は、位置検出部１１４による検出結果と、位置検出部１１４による前回の検出結果との差が許容レベルを超えている場合に、アーム４０の劣化（例えばベアリング、ベルト又は減速機等の劣化）をユーザに報知してもよい。
【００４０】
コントローラ１００は、互いに異なる第１位置及び第２位置（例えば上記第１位置ＲＰ１及び第２位置ＲＰ２）のそれぞれを基準位置として、スキャン制御部１１３によるハンド３０の移動を実行させ、スキャン制御部１１３が第１位置ＲＰ１を基準位置としてハンド３０を移動させているときに辺３３ａが第１位置ＲＰ１に達したタイミングと、スキャン制御部１１３が第２位置ＲＰ２を基準位置としてハンド３０を移動させているときに辺３３ａが第２位置ＲＰ２に達したタイミングとに基づいてアーム４０の基台４１の傾きを検出する。
【００４１】
コントローラ１００は、互いに異なる第１位置及び第２位置（例えば上記第１位置ＲＰ１及び第２位置ＲＰ２）のそれぞれを基準位置として、第１ライン及び第２ラインが基準位置を通過するように、第１ライン及び第２ラインに交差するスキャン方向に沿ってハンド３０をアーム４０により移動させ、辺３３ａが第１位置ＲＰ１に達したタイミングと、辺３３ａが第２位置ＲＰ２に達したタイミングとに基づいてアーム４０の基台４１（基部）の傾きを検出するように構成されていてもよい。
【００４２】
更にコントローラ１００は、基台４１の傾きに起因するハンド３０の位置ずれを縮小するように、アーム４０の制御指令を補正するように構成されていてもよい。例えばコントローラ１００は、アーム傾き検出部１２１と旋回指令補正部１２２とを有する。
【００４３】
アーム傾き検出部１２１は、第１位置ＲＰ１及び第２位置ＲＰ２のそれぞれを基準位置として、スキャン制御部１１３によるハンド３０の移動を実行させ、スキャン制御部１１３が第１位置ＲＰ１を基準位置としてハンド３０を移動させているときに辺３３ａが第１位置ＲＰ１に達したタイミングと、スキャン制御部１１３が第２位置ＲＰ２を基準位置としてハンド３０を移動させているときに辺３３ａが第２位置ＲＰ２に達したタイミングとに基づいてアーム４０の基台４１の傾きを検出する。
【００４４】
例えばアーム傾き検出部１２１は、辺３３ａが第１位置ＲＰ１に達したタイミングにおけるハンド３０の位置（以下、「第１位置ＲＰ１への到達位置」という。）と、辺３３ａが第２位置ＲＰ２に達したタイミングにおけるハンド３０の位置（以下、「第２位置ＲＰ２への到達位置」という。）とに基づいてハンド３０の傾きを算出する。具体的には、ロボット座標系における第１位置ＲＰ１への到達位置のＸ座標及びＹ座標と、ロボット座標系における第２位置ＲＰ２への到達位置のＸ座標及びＹ座標とに基づいて基台４１の傾きを算出する。より詳細な算出手法については後述する。
【００４５】
旋回指令補正部１２２（指令補正部）は、アーム傾き検出部１２１が検出した基台４１の傾きに起因するハンド３０の位置ずれを縮小するように、アーム４０の制御指令を補正する。例えば旋回指令補正部１２２は、基台４１が傾く角度と同じ補正量にて、基台４１が傾く方向とは逆方向に第一アーム４３の揺動角度目標値を補正する。スキャン制御部１１３は、旋回指令補正部１２２により補正された制御指令に基づいて、辺３３ａ，３３ｂが基準位置ＲＰを再度通過するようにスキャン方向に沿ってハンド３０をアーム４０により移動させてもよい。位置検出部１１４は、辺３３ａが基準位置ＲＰに再度達したタイミングと、辺３３ｂが基準位置ＲＰに再度達したタイミングとに基づいてハンド３０の位置を再度検出してもよい。
【００４６】
コントローラ１００は、第１ライン及び第２ラインのいずれか一方と第３ラインとが基準位置を通過するように、スキャン方向に交差する交差スキャン方向に沿ってハンド３０をアーム４０により移動させることと、交差スキャン方向に沿ってハンド３０が移動しているときに第１ライン及び第２ラインの少なくとも一方が基準位置ＲＰに達したタイミングと、第３ラインが基準位置ＲＰに達したタイミングとに基づいて、交差スキャン方向と交差する方向におけるハンド３０の位置ずれを更に検出することとを更に実行するように構成されていてもよい。
【００４７】
例えばコントローラ１００は、交差スキャン制御部１３１を更に有する。交差スキャン制御部１３１は、第２ライン及び第３ラインが基準位置を通過するように、スキャン方向に直交する交差スキャン方向に沿ってハンド３０をアーム４０により移動させる。例えば交差スキャン制御部１３１は、ハンド３０の先端部をロボット座標系のＸ軸正方向に向けた状態で、指標部３３の辺３３ｃ，３３ｂがいずれかの処理ステーション１０の基準位置ＲＰを通過するように、Ｙ軸方向に沿ってハンド３０をアーム４０により移動させる。
【００４８】
交差スキャン制御部１３１は、交差スキャン方向に直交する方向で互いに異なる第３スキャン位置と第４スキャン位置とのそれぞれにおいて交差スキャン方向に沿ってハンド３０をアーム４０により移動させてもよい。例えば交差スキャン制御部１３１は、ハンド３０の先端部をロボット座標系のＸ軸正方向に向けた状態で、Ｘ軸方向における位置が互いに異なる第３スキャン位置と第４スキャン位置とのそれぞれにおいてＹ軸方向に沿ってハンド３０をアーム４０により移動させる。
【００４９】
第３スキャン位置及び第４スキャン位置は、いずれにおいても辺３３ｃ，３３ｂが基準位置ＲＰを通過するように設定される。以下、第３スキャン位置において交差スキャン方向に沿ってハンド３０を移動させる制御を「第３スキャン制御」といい、第４スキャン位置において交差スキャン方向に沿ってハンド３０を移動させる制御を「第４スキャン制御」という。
【００５０】
位置検出部１１４は、交差スキャン制御部１３１がハンド３０を移動させているときに、辺３３ｃが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて、交差スキャン方向（Ｙ軸方向）と直交する方向（Ｘ軸方向）におけるハンド３０の位置ずれを更に検出してもよい。例えば位置検出部１１４は、辺３３ｃが基準位置ＲＰに達したタイミングから辺３３ｂが基準位置ＲＰに達したタイミングまでのハンド３０の移動ストロークに基づいて、基準位置ＲＰに対するハンド３０のＸ軸方向における相対位置を検出する。より詳細な算出手法については後述する。
【００５１】
位置検出部１１４は、交差スキャン制御部１３１がハンド３０を移動させているときに辺３３ｃが基準位置ＲＰに達したタイミングに基づいて、交差スキャン方向（Ｙ軸方向）におけるハンド３０の位置ずれを更に検出してもよい。具体的には、辺３３ｃが基準位置ＲＰに達したタイミングにおけるハンド３０の位置のＹ座標と、辺３３ｃが基準位置ＲＰに達する予定タイミングにおけるハンド３０の位置のＹ座標との差を算出する。なお、Ｙ座標は、ロボット座標系におけるＹ座標である。予定タイミングは、ロボット座標系における基準位置ＲＰの設計上のＹ座標に辺３３ｃが達するタイミングである。設計上のＹ座標とは、基準位置ＲＰに対するアーム４０の設計上の設置位置に対する誤差がゼロである場合のＹ座標を意味する。
【００５２】
位置検出部１１４は、第３スキャン制御において辺３３ｃが基準位置ＲＰに達したタイミングと、第４スキャン制御において辺３３ｃが基準位置ＲＰに達したタイミングとに基づいて、ハンド３０の傾き（例えば鉛直軸線まわりの傾き）を更に検出してもよい。ここでのハンド３０の傾きは、スキャン方向（Ｘ軸方向）に対する指部３２の突出方向の傾きである。例えば位置検出部１１４は、第３スキャン制御において辺３３ｃが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第３スキャン制御における辺３３ｃの到達位置」という。）と、第４スキャン制御において辺３３ｃが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第４スキャン制御における辺３３ｃの到達位置」という。）とに基づいてハンド３０の傾きを算出する。具体的には、第３スキャン制御における辺３３ｃの到達位置のＸ座標及びＹ座標と、第４スキャン制御における辺３３ｃの到達位置のＸ座標及びＹ座標とに基づいてハンド３０の傾きを算出する。なお、Ｘ座標及びＹ座標は、ロボット座標系におけるＸ座標及びＹ座標である。より詳細な算出手法については後述する。
【００５３】
コントローラ１００は、ハンド３０が基準位置を通過するようにハンド３０をアーム４０により昇降させることと、昇降するハンド３０が基準位置の高さに達したタイミングに基づいてハンド３０の高さを検出することとを実行するように構成されていてもよい。  コントローラ１００は、ハンド３０の上部が基準位置の高さに達したタイミングと、ハンド３０の下部が基準位置の高さに達したタイミングとに基づいてハンド３０の厚さを検出することを更に実行するように構成されていてもよい。
【００５４】
コントローラ１００は、水平な所定方向（以下、「シフト方向」という。）で互いに異なる第１高さスキャン位置と第２高さスキャン位置とのそれぞれにおいてハンド３０を昇降させ、第１高さスキャン位置において昇降するハンド３０が基準位置に達したタイミングと、第２高さスキャン位置において昇降するハンド３０が基準位置に達したタイミングとに基づいて、ハンド３０の傾きを更に検出するように構成されていてもよい。例えばコントローラ１００は、高さスキャン制御部１４１と、高さ検出部１４２と、昇降指令補正部１４３とを更に有する。
【００５５】
高さスキャン制御部１４１は、基準位置を通過するようにハンド３０をアーム４０により昇降させる。例えば高さスキャン制御部１４１は、ハンド３０の先端部をロボット座標系のＸ軸正方向に向けた状態で、いずれかの処理ステーション１０の基準位置ＲＰを通過するようにハンド３０をアーム４０により昇降させる。
【００５６】
高さスキャン制御部１４１は、シフト方向で互いに異なる第１高さスキャン位置と第２高さスキャン位置とのそれぞれにおいてハンド３０をアーム４０により昇降させてもよい。例えば高さスキャン制御部１４１は、ハンド３０の先端部をロボット座標系のＸ軸正方向に向けた状態で、Ｘ軸方向で互いに異なる第１高さスキャン位置と第２高さスキャン位置とのそれぞれにおいてハンド３０をアーム４０により昇降させる。第１高さスキャン位置及び第２高さスキャン位置は、いずれにおいてもハンド３０が基準位置ＲＰを通過するように設定される。以下、第１高さスキャン位置においてハンド３０を昇降させる制御を「第１高さスキャン制御」といい、第２高さスキャン位置においてハンド３０を昇降させる制御を「第２高さスキャン制御」という。
【００５７】
高さ検出部１４２は、高さスキャン制御部１４１がハンド３０を昇降させているときに、ハンド３０が基準位置ＲＰの高さに達したタイミングに基づいてハンド３０の高さずれ（Ｚ軸方向におけるハンド３０の位置ずれ）を検出する。具体的には、ハンド３０の上部又は下部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置のＺ座標と、ハンド３０の上部又は下部が基準位置ＲＰの高さに達する予定タイミングにおけるハンド３０の位置のＺ座標との差を算出する。なお、Ｚ座標は、ロボット座標系におけるＺ座標である。予定タイミングは、ロボット座標系における基準位置ＲＰの設計上のＺ座標にハンド３０の上部又は下部が達するタイミングである。設計上のＺ座標とは、基準位置ＲＰに対するアーム４０の設計上の設置高さに対する誤差がゼロである場合のＺ座標を意味する。
【００５８】
高さ検出部１４２は、高さスキャン制御部１４１がハンド３０を昇降させているときに、ハンド３０の上部が基準位置ＲＰの高さに達したタイミングと、ハンド３０の下部が基準位置ＲＰの高さに達したタイミングとに基づいてハンド３０の厚さを検出してもよい。例えば高さ検出部１４２は、ハンド３０の下部が基準位置ＲＰの高さに達したタイミングからハンド３０の上部が基準位置ＲＰの高さに達したタイミングまでのハンド３０の昇降ストロークをハンド３０の厚さとして検出する。
【００５９】
高さ検出部１４２は、第１高さスキャン制御においてハンド３０の上部又は下部が基準位置ＲＰの高さに達したタイミングと、第２高さスキャン制御においてハンド３０の上部又は下部が基準位置ＲＰの高さに達したタイミングとに基づいて、ハンド３０の傾きを更に検出してもよい。ここでのハンド３０の傾きは、シフト方向（Ｘ軸方向）に対する指部３２の突出方向の傾きである。例えば高さ検出部１４２は、第１高さスキャン制御においてハンド３０の上部又は下部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置のＸ座標及びＺ座標と、第２高さスキャン制御においてハンド３０の上部又は下部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置のＸ座標及びＺ座標とに基づいてハンド３０の傾きを算出する。なお、Ｚ座標は、ロボット座標系におけるＺ座標である。設置不良報知部１１６は、高さ検出部１４２が検出したハンド３０の傾きが許容レベルを超えている場合にその旨をユーザに報知する。
【００６０】
昇降指令補正部１４３は、高さ検出部１４２が検出したハンド３０の高さずれを縮小するように、ハンド３０の目標高さ（目標位置保持部１１１が記憶するＺ軸方向の目標位置）を補正する。例えば昇降指令補正部１４３は、上記高さずれと同じ補正量にて、高さずれの方向とは逆方向にハンド３０の目標高さを補正する。
【００６１】
図５は、コントローラ１００のハードウェア構成を例示するブロック図である。図５に示すように、回路１９０は、一つ又は複数のプロセッサ１９１と、メモリ１９２と、ストレージ１９３と、ドライバ１９４と、入出力ポート１９５と、を含む。ストレージ１９３は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ１９３は、第１ライン及び第２ラインが基準位置を通過するように、第１ライン及び第２ラインに交差するスキャン方向に沿ってハンド３０をアーム４０により移動させることと、スキャン方向に沿ってハンド３０が移動しているときに第１ラインが基準位置に達したタイミングと、第２ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド３０の位置ずれを検出することとをコントローラ１００に実行させるためのプログラムを記憶している。例えばストレージ１９３は、コントローラ１００の各機能モジュールを構成するためのプログラムを記憶している。メモリ１９２は、ストレージ１９３の記憶媒体からロードしたプログラム及びプロセッサ１９１による演算結果を一時的に記憶する。プロセッサ１９１は、メモリ１９２と協働して上記プログラムを実行することで、コントローラ１００の各機能モジュールを構成する。ドライバ１９４は、プロセッサ１９１からの指令に従って、アーム４０の昇降アクチュエータ４５及び回転アクチュエータ４６，４７，４８を駆動する。入出力ポート１９５は、プロセッサ１９１からの指令に従って、鉛直センサ１２及び水平センサ１３との間で電気信号の入出力を行う。なお、回路１９０は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路１９０は、専用の論理回路又はこれを集積したＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により少なくとも一部の機能を構成してもよい。
【００６２】
〔キャリブレーション手順〕
コントローラ１００は、いずれかの処理ステーション１０に対してワークＷの搬入又は搬出を行うようにハンド３０をアーム４０により移動させる搬送制御を実行する。この搬送制御方法は、処理ステーション１０に対するハンド３０の位置のキャリブレーション手順を含む。キャリブレーション手順は、アーム４０が設置されたとき、アーム４０が交換されたとき等に実行される。また、キャリブレーション手順は、所定のタイミングで繰り返し実行されてもよい。
【００６３】
キャリブレーション手順は、第１ライン及び第２ラインが基準位置を通過するように、第１ライン及び第２ラインに交差するスキャン方向に沿ってハンド３０をアーム４０により移動させることと、スキャン方向に沿ってハンド３０が移動しているときに第１ラインが基準位置に達したタイミングと、第２ラインが基準位置に達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド３０の位置ずれを検出することとを含む。
【００６４】
例えば図６に示すように、コントローラ１００は、まずステップＳ０１，Ｓ０２を実行する。ステップＳ０１では、アーム傾き検出部１２１が、第１位置ＲＰ１及び第２位置ＲＰ２のそれぞれを基準位置として、スキャン制御部１１３によるハンド３０の移動を実行させ、スキャン制御部１１３が第１位置ＲＰ１を基準位置としてハンド３０を移動させているときに辺３３ａが第１位置ＲＰ１に達したタイミングと、スキャン制御部１１３が第２位置ＲＰ２を基準位置としてハンド３０を移動させているときに辺３３ａが第２位置ＲＰ２に達したタイミングとに基づいてアーム４０の基台４１の傾きを検出する。ステップＳ０１の具体的内容については後述する。ステップＳ０２では、旋回指令補正部１２２が、アーム傾き検出部１２１が検出した基台４１の傾きに起因するハンド３０の位置ずれを縮小するように、アーム４０の制御指令を補正する。例えば旋回指令補正部１２２は、基台４１が傾く角度と同じ補正量にて、基台４１が傾く方向とは逆方向に第一アーム４３の揺動角度目標値を補正する。
【００６５】
次に、コントローラ１００はステップＳ０３，Ｓ０４を実行する。ステップＳ０３では、スキャン制御部１１３が、辺３３ａ，３３ｂが基準位置ＲＰを通過するようにスキャン方向に沿ってハンド３０をアーム４０により移動させ、辺３３ａが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて位置検出部１１４がハンド３０の位置ずれを検出する。ステップＳ０３の具体的内容については後述する。ステップＳ０４では、設置不良報知部１１６が、ハンド３０の位置ずれ及び傾きが許容レベル以内であるかを確認する。
【００６６】
ステップＳ０４においてハンド３０の位置ずれ及び傾きが許容レベル以内であると判定した場合、コントローラ１００はステップＳ０５を実行する。ステップＳ０５では、位置検出部１１４が検出したハンド３０の位置ずれを縮小するように、移動指令補正部１１５がハンド３０の目標位置（目標位置保持部１１１が記憶する目標位置）を補正する。例えば移動指令補正部１１５は、上記位置ずれと同じ補正量にて、位置ずれの方向とは逆方向にハンド３０の目標位置を補正する。移動指令補正部１１５は、位置検出部１１４が検出したハンド３０の傾きを縮小するように、ハンド３０の目標姿勢（目標位置保持部１１１が記憶する目標姿勢）を更に補正してもよい。例えば移動指令補正部１１５は、ハンド３０が傾く角度と同じ補正量にて、ハンド３０が傾く方向とは逆方向にハンド３０の揺動角度目標値を補正する。
【００６７】
次に、コントローラ１００はステップＳ０６，Ｓ０７を実行する。ステップＳ０６では、高さスキャン制御部１４１が、基準位置ＲＰを通過するようにハンド３０をアーム４０により昇降させ、ハンド３０が基準位置ＲＰの高さに達したタイミングに基づいて高さ検出部１４２がハンド３０の高さずれを検出する。ステップＳ０６の具体的内容については後述する。ステップＳ０７では、高さ検出部１４２が検出したハンド３０の高さずれが許容レベル以内であるかを設置不良報知部１１６が確認する。
【００６８】
ステップＳ０７においてハンド３０の高さずれが許容レベル以内であると判定した場合、コントローラ１００はステップＳ０８を実行する。ステップＳ０８では、高さ検出部１４２が検出したハンド３０の高さずれを縮小するように、昇降指令補正部１４３がハンド３０の目標高さ（目標位置保持部１１１が記憶するＺ軸方向の目標位置）を補正する。
【００６９】
ステップＳ０４においてハンド３０の位置ずれ及び傾きが許容レベル以内でないと判定した場合、及びステップＳ０７においてハンド３０の高さずれが許容レベル以内でないと判定した場合、コントローラ１００はステップＳ１１を実行する。ステップＳ１１では、設置不良報知部１１６が、アーム４０の設置不良をユーザに報知する。以上でキャリブレーション手順が完了する。なお、コントローラ１００は、ステップＳ０６，Ｓ０７，Ｓ０８をステップＳ０３より前に実行してもよい。また、コントローラ１００は、ステップＳ０５，Ｓ０８の少なくとも一方を省略してもよい。
【００７０】
（基台の傾き検出手順）
続いて、ステップＳ０１における基台４１の傾き検出手順を具体的に例示する。図７に示すように、コントローラ１００は、まずステップＳ２１，Ｓ２２を実行する。ステップＳ２１では、第１位置ＲＰ１を基準位置とした移動の開始位置にハンド３０を配置することをアーム傾き検出部１２１がスキャン制御部１１３に要求する。これに応じスキャン制御部１１３は、第１位置ＲＰ１の手前側（第１位置ＲＰ１よりもＸ軸方向の負側）において、ハンド３０の先端部をＸ軸正方向に向けるように、アーム４０によりハンド３０を移動させる。ステップＳ２２では、第１位置ＲＰ１を基準位置としたハンド３０の移動の開始をアーム傾き検出部１２１がスキャン制御部１１３に要求する。これに応じスキャン制御部１１３は、Ｘ軸正方向へのハンド３０の移動を開始させるようにアーム４０を制御する。
【００７１】
次に、コントローラ１００はステップＳ２３，Ｓ２４，Ｓ２５を実行する。ステップＳ２３では、アーム傾き検出部１２１が、処理ステーション１０Ａの鉛直センサ１２による辺３３ａの検出を待機する。ステップＳ２４では、アーム傾き検出部１２１が、上記第１位置ＲＰ１への到達位置のロボット座標系におけるＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）をスキャン制御部１１３から取得する。ステップＳ２５では、第１位置ＲＰ１を基準位置とした移動の開始位置までハンド３０を後退させることをアーム傾き検出部１２１がスキャン制御部１１３に要求する。これに応じスキャン制御部１１３は、当該開始位置に達するまで、アーム４０によりハンド３０をＸ軸負方向に移動させる。
【００７２】
次に、コントローラ１００はステップＳ２６，Ｓ２７を実行する。ステップＳ２６では、第２位置ＲＰ２を基準位置とした移動の開始位置にハンド３０を配置することをアーム傾き検出部１２１がスキャン制御部１１３に要求する。これに応じスキャン制御部１１３は、第２位置ＲＰ２手前（第２位置ＲＰ２よりもＸ軸方向の負側）において、ハンド３０の先端部をＸ軸正方向に向けるように、アーム４０によりハンド３０を移動させる。ステップＳ２７では、第２位置ＲＰ２を基準位置としたハンド３０の移動の開始をアーム傾き検出部１２１がスキャン制御部１１３に要求する。これに応じスキャン制御部１１３は、Ｘ軸正方向へのハンド３０の移動を開始させるようにアーム４０を制御する。
【００７３】
次に、コントローラ１００はステップＳ２８，Ｓ２９，Ｓ３１，Ｓ３２を実行する。ステップＳ２８では、アーム傾き検出部１２１が、処理ステーション１０Ｂの鉛直センサ１２による辺３３ａの検出を待機する。ステップＳ２９では、アーム傾き検出部１２１が、上記第２位置ＲＰ２への到達位置のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）をスキャン制御部１１３から取得する。ステップＳ３１では、第２位置ＲＰ２を基準位置とした移動の開始位置までハンド３０を後退させることをアーム傾き検出部１２１がスキャン制御部１１３に要求する。これに応じスキャン制御部１１３は、当該開始位置に達するまで、アーム４０によりハンド３０をＸ軸負方向に移動させる。ステップＳ３２では、アーム傾き検出部１２１が、ステップＳ２４において取得された第１位置ＲＰ１への到達位置のＸ座標及びＹ座標と、ステップＳ２９において取得された第２位置ＲＰ２への到達位置のＸ座標及びＹ座標とに基づいて基台４１の傾きを算出する。例えばアーム傾き検出部１２１は、次式に基づいて基台４１の傾きを算出する（図８参照）。
θｂ＝ｔａｎ−１（（Ｘ２−Ｘ１）／（Ｙ２−Ｙ１））・・・（１）
θｂ：基台４１の傾き角度。
Ｘ１：第１位置ＲＰ１への到達位置のＸ座標。
Ｙ１：第１位置ＲＰ１への到達位置のＹ座標。
Ｘ２：第２位置ＲＰ２への到達位置のＸ座標。
Ｙ２：第２位置ＲＰ２への到達位置のＹ座標。
以上で基台４１の傾きの検出手順が完了する。
【００７４】
（ハンド３０の位置ずれ検出手順）
続いて、ステップＳ０３におけるハンド３０の位置ずれの検出手順を例示する。図９に示すように、コントローラ１００は、ステップＳ４１，Ｓ４２，Ｓ４３を実行する。ステップＳ４１では、スキャン制御部１１３が、上記第１スキャン制御を実行し、位置検出部１１４が第１スキャン制御中の情報取得を行う。ステップＳ４２では、スキャン制御部１１３が、上記第２スキャン制御を実行し、位置検出部１１４が第２スキャン制御中の情報取得を行う。ステップＳ４３では、ステップＳ４１，Ｓ４２で取得した情報に基づいて位置検出部１１４がハンド３０の位置ずれを算出する。
【００７５】
図１０は、ステップＳ４１の具体的内容を例示するフローチャートである。図１０に示すように、コントローラ１００は、まずステップＳ５１，Ｓ５２を実行する。ステップＳ５１では、スキャン制御部１１３が、基準位置ＲＰの手前側（基準位置ＲＰよりもＸ軸方向の負側）においてハンド３０を第１スキャン位置に配置し、ハンド３０の先端部をＸ軸正方向に向けるようにアーム４０を制御する。ステップＳ５２では、スキャン制御部１１３が、Ｘ軸正方向へのハンド３０の移動を開始させるようにアーム４０を制御する。
【００７６】
次に、コントローラ１００はステップＳ５３，Ｓ５４を実行する。ステップＳ５３では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ａの検出を待機する。ステップＳ５４では、位置検出部１１４が、辺３３ａが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第１スキャン制御における辺３３ａの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）をスキャン制御部１１３から取得する。
【００７７】
次に、コントローラ１００はステップＳ５５，Ｓ５６，Ｓ５７を実行する。ステップＳ５５では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ｂの検出を待機する。ステップＳ５６では、位置検出部１１４が、辺３３ｂが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第１スキャン制御における辺３３ｂの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）をスキャン制御部１１３から取得する。ステップＳ５７では、スキャン制御部１１３が、ステップＳ５２における移動の開始位置に達するまで、アーム４０によりＸ軸負方向にハンド３０を移動させる。以上により、Ｘ軸方向に並ぶ辺３３ａの点Ｐ１１と辺３３ｂの点Ｐ１２とが基準位置ＲＰに達したタイミングにおけるＸ座標及びＹ座標が取得される（図１２の（ａ）参照）。
【００７８】
図１１は、ステップＳ４２の具体的内容を例示するフローチャートである。図１１に示すように、コントローラ１００は、まずステップＳ６１，Ｓ６２を実行する。ステップＳ６１では、スキャン制御部１１３が、基準位置ＲＰの手前側（基準位置ＲＰよりもＸ軸方向の負側）においてハンド３０を第２スキャン位置に配置し、ハンド３０の先端部をＸ軸正方向に向けるようにアーム４０を制御する。ステップＳ６２では、スキャン制御部１１３が、Ｘ軸正方向へのハンド３０の移動を開始させるようにアーム４０を制御する。
【００７９】
次に、コントローラ１００はステップＳ６３，Ｓ６４を実行する。ステップＳ６３では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ａの検出を待機する。ステップＳ６４では、位置検出部１１４が、辺３３ａが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第２スキャン制御における辺３３ａの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）をスキャン制御部１１３から取得する。
【００８０】
次に、コントローラ１００はステップＳ６５，Ｓ６６，Ｓ６７を実行する。ステップＳ６５では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ｂの検出を待機する。ステップＳ６６では、位置検出部１１４が、辺３３ｂが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第２スキャン制御における辺３３ｂの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）をスキャン制御部１１３から取得する。ステップＳ６７では、スキャン制御部１１３が、ステップＳ６２における移動の開始位置に達するまで、アーム４０によりＸ軸負方向にハンド３０を移動させる。以上により、点Ｐ１１，Ｐ１２とは異なる位置でＸ軸方向に並ぶ辺３３ａの点Ｐ２１と辺３３ｂの点Ｐ２２とが基準位置ＲＰに達したタイミングにおけるＸ座標及びＹ座標が取得される（図１２の（ｂ）参照）。
【００８１】
図１３は、ステップＳ４３の具体的内容を例示するフローチャートである。図１３に示すように、コントローラ１００は、ステップＳ７１，Ｓ７２，Ｓ７３を実行する。ステップＳ７１では、辺３３ａが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「到達位置」という。）のＸ座標と、辺３３ａが基準位置ＲＰに達する予定タイミングにおけるハンド３０の位置のＸ座標との差を位置検出部１１４が算出する。位置検出部１１４は、第１スキャン制御における辺３３ａの到達位置のＸ座標と、第２スキャン制御における辺３３ｂの到達位置のＸ座標との平均値を算出してもよい。例えば位置検出部１１４は、次式により到達位置のＸ座標を算出する。
Ｘｒ＝（Ｘ１１＋Ｘ２１）／２・・・（２）
Ｘｒ：到達位置のＸ座標。
Ｘ１１：第１スキャン制御における辺３３ａの到達位置のＸ座標。
Ｘ２１：第２スキャン制御における辺３３ａの到達位置のＸ座標。
【００８２】
ステップＳ７２では、位置検出部１１４が、第１スキャン制御において辺３３ａが基準位置ＲＰに達したタイミングと、第２スキャン制御において辺３３ａが基準位置ＲＰに達したタイミングとに基づいて、ハンド３０の傾きを検出する。例えば位置検出部１１４は、第１スキャン制御における辺３３ａの到達位置のＸ座標及びＹ座標と、第２スキャン制御における辺３３ａの到達位置のＸ座標及びＹ座標とに基づいてハンド３０の傾きを算出する。具体的に、位置検出部１１４は、次式によりハンド３０の傾きを算出する（図１４参照）。
θｈ＝ｔａｎ−１（（Ｘ１１−Ｘ２１）／（Ｙ２１−Ｙ１１））・・・（３）
θｈ：ハンド３０の傾き角度。
Ｙ１１：第１スキャン制御における辺３３ａの到達位置のＹ座標。
Ｙ２１：第２スキャン制御における辺３３ａの到達位置のＹ座標。
【００８３】
ステップＳ７３では、位置検出部１１４が、スキャン制御部１１３がハンド３０を移動させているときに、辺３３ａが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて、Ｙ軸方向におけるハンド３０の位置ずれを検出する。例えば位置検出部１１４は、辺３３ａが基準位置ＲＰに達したタイミングから辺３３ｂが基準位置ＲＰに達したタイミングまでのハンド３０の移動ストロークに基づいて、基準位置ＲＰに対するハンド３０のＹ軸方向における相対位置を検出する。位置検出部１１４は、ハンド３０の傾きの検出結果に基づいて、ハンド３０の位置ずれの検出結果を補正してもよい。具体的に、位置検出部１１４は、次式によりＹ軸方向におけるハンド３０の上記移動ストロークを算出する。
Ｌ１１＝Ｙ２１−Ｙ１１・・・（４）
Ｌ１２＝Ｘ１２−Ｘ１１・・・（５）
Ｌ１３＝Ｘ２２−Ｘ２１・・・（６）
Ｌ１４＝Ｌ１２・ｃｏｓ（θｈ）＋Ｌ１２・ｓｉｎ（θｈ）・・・（７）
Ｌ１５＝Ｌ１３・ｃｏｓ（θｈ）＋Ｌ１３・ｓｉｎ（θｈ）・・・（８）
Ｌ１６＝（Ｌ１４＋Ｌ１５）／２・・・（９）
Ｌ１１：Ｙ軸方向における第１スキャン位置から第２スキャン位置へのストローク（以下、「シフトストローク」という。）。
Ｘ１２：第１スキャン制御における辺３３ｂの到達位置のＸ座標。
Ｘ２２：第２スキャン制御における辺３３ｂの到達位置のＸ座標。
Ｌ１２：第１スキャン位置における移動ストローク（以下、「第１移動ストローク」という。）。
Ｌ１３：第２スキャン位置における移動ストローク（以下、「第２移動ストローク」という。）。
Ｌ１４：ハンド３０の傾き角度θｈにより補正された第１移動ストローク。
Ｌ１５：ハンド３０の傾き角度θｈにより補正された第２移動ストローク。
Ｌ１６：移動ストローク。
【００８４】
なお、ハンド３０の傾きによるハンド３０の位置ずれの補正は、上記式（７）及び（８）にて行われている。この補正内容により、第１移動ストローク及び第２移動ストロークは、傾き角度θｈがゼロである場合のストロークに補正されている。
【００８５】
位置検出部１１４は、移動ストロークに基づいて、Ｙ軸方向におけるハンド３０の位置ずれを検出する。例えば図１５に示すように、位置検出部１１４は、Ｙ軸方向における位置ずれがゼロである場合の移動ストロークＬ１７に比較して移動ストロークＬ１６が短い場合、移動ストロークＬ１７と移動ストロークＬ１６とのストローク差Ｌ２１に相当するずれ量でハンド３０がＹ軸正方向にずれていることを検出する。また、位置検出部１１４は、移動ストロークＬ１７に比較して移動ストロークＬ１６が長い場合、移動ストロークＬ１６と移動ストロークＬ１７とのストローク差Ｌ２２に相当するずれ量でハンド３０がＹ軸負方向にずれていることを検出する。
【００８６】
なお、上述したように、コントローラ１００は、交差スキャン制御部１３１を更に備えてもよい。位置検出部１１４は、交差スキャン制御部１３１がハンド３０を移動させているときに、辺３３ｃが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいてハンド３０の位置ずれを更に検出してもよい。この場合、位置検出部１１４は、スキャン制御部１１３によるハンド３０の移動（以下、「スキャン制御」という。）に応じて検出するハンド３０の位置ずれと、交差スキャン制御部１３１によるハンド３０の移動（以下、「交差スキャン制御」という。）に応じて検出するハンド３０の位置ずれとを平均してハンド３０の位置ずれを導出してもよい。以下、交差スキャン制御に応じたハンド３０の位置ずれ検出手順を例示する。
【００８７】
図１６に示すように、コントローラ１００は、ステップＳ８１，Ｓ８２，Ｓ８３を実行する。ステップＳ８１では、スキャン制御部１１３が、上記第３スキャン制御を実行し、位置検出部１１４が第３スキャン制御中の情報取得を行う。ステップＳ８２では、スキャン制御部１１３が、上記第４スキャン制御を実行し、位置検出部１１４が第４スキャン制御中の情報取得を行う。ステップＳ８３では、ステップＳ８１，Ｓ８２で取得した情報に基づいて位置検出部１１４がハンド３０の位置ずれを算出する。
【００８８】
図１７は、ステップＳ８１の具体的内容を例示するフローチャートである。図１７に示すように、コントローラ１００は、まずステップＳ９１，Ｓ９２を実行する。ステップＳ９１では、交差スキャン制御部１３１が、基準位置ＲＰの手前側（基準位置ＲＰよりもＹ軸方向の負側）においてハンド３０を第３スキャン位置に配置し、ハンド３０の先端部をＸ軸正方向に向けるようにアーム４０を制御する。ステップＳ９２では、交差スキャン制御部１３１が、Ｙ軸正方向へのハンド３０の移動を開始させるようにアーム４０を制御する。
【００８９】
次に、コントローラ１００はステップＳ９３，Ｓ９４を実行する。ステップＳ９３では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ｃの検出を待機する。ステップＳ９４では、位置検出部１１４が、辺３３ｃが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第３スキャン制御における辺３３ｃの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）を交差スキャン制御部１３１から取得する。
【００９０】
次に、コントローラ１００はステップＳ９５，Ｓ９６，Ｓ９７を実行する。ステップＳ９５では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ｂの検出を待機する。ステップＳ９６では、位置検出部１１４が、辺３３ｂが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第３スキャン制御における辺３３ｂの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）を交差スキャン制御部１３１から取得する。ステップＳ９７では、交差スキャン制御部１３１が、ステップＳ９２における移動の開始位置に達するまで、アーム４０によりＹ軸負方向にハンド３０を移動させる。以上により、Ｙ軸方向に並ぶ辺３３ｃの点Ｐ３１と辺３３ｂの点Ｐ３２とが基準位置ＲＰに達したタイミングにおけるＸ座標及びＹ座標が取得される（図１９の（ａ）参照）。
【００９１】
図１８は、ステップＳ８２の具体的内容を例示するフローチャートである。図１８に示すように、コントローラ１００は、まずステップＳ１０１，Ｓ１０２を実行する。ステップＳ１０１では、交差スキャン制御部１３１が、基準位置ＲＰの手前側（基準位置ＲＰよりもＹ軸方向の負側）においてハンド３０を第４スキャン位置に配置し、ハンド３０の先端部をＸ軸正方向に向けるようにアーム４０を制御する。ステップＳ１０２では、交差スキャン制御部１３１が、Ｙ軸正方向へのハンド３０の移動を開始させるようにアーム４０を制御する。
【００９２】
次に、コントローラ１００はステップＳ１０３，Ｓ１０４を実行する。ステップＳ１０３では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ｃの検出を待機する。ステップＳ１０４では、位置検出部１１４が、辺３３ｃが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第４スキャン制御における辺３３ｃの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）を交差スキャン制御部１３１から取得する。
【００９３】
次に、コントローラ１００はステップＳ１０５，Ｓ１０６，Ｓ１０７を実行する。ステップＳ１０５では、位置検出部１１４が、処理ステーション１０の鉛直センサ１２による辺３３ｂの検出を待機する。ステップＳ１０６では、位置検出部１１４が、辺３３ｂが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「第４スキャン制御における辺３３ｂの到達位置」という。）のＸ座標及びＹ座標（ロボット座標系におけるＸ座標及びＹ座標）を交差スキャン制御部１３１から取得する。ステップＳ１０７では、交差スキャン制御部１３１が、ステップＳ１０２における移動の開始位置に達するまで、アーム４０によりＹ軸負方向にハンド３０を移動させる。以上により、点Ｐ３１，Ｐ３２とは異なる位置でＹ軸方向に並ぶ辺３３ｃの点Ｐ４１と辺３３ｂの点Ｐ４２とが基準位置ＲＰに達したタイミングにおけるＸ座標及びＹ座標が取得される（図１９の（ｂ）参照）。
【００９４】
図２０は、ステップＳ８３の具体的内容を例示するフローチャートである。図２０に示すように、コントローラ１００は、ステップＳ１１１，Ｓ１１２，Ｓ１１３を実行する。ステップＳ１１１では、辺３３ｃが基準位置ＲＰに達したタイミングにおけるハンド３０の位置（以下、「到達位置」という。）のＹ座標と、辺３３ｃが基準位置ＲＰに達する予定タイミングにおけるハンド３０の位置のＹ座標との差を位置検出部１１４が算出する。位置検出部１１４は、第３スキャン制御における辺３３ｃの到達位置のＹ座標と、第４スキャン制御における辺３３ｃの到達位置のＹ座標との平均値を算出してもよい。例えば位置検出部１１４は、次式により到達位置のＹ座標を算出する。
Ｙｒ＝（Ｙ３１＋Ｙ４１）／２・・・（１１）
Ｙｒ：到達位置のＹ座標。
Ｙ３１：第３スキャン制御における辺３３ｃの到達位置のＹ座標。
Ｙ４１：第４スキャン制御における辺３３ｃの到達位置のＹ座標。
【００９５】
ステップＳ１１２では、位置検出部１１４が、第３スキャン制御において辺３３ｃが基準位置ＲＰに達したタイミングと、第４スキャン制御において辺３３ｃが基準位置ＲＰに達したタイミングとに基づいて、ハンド３０の傾きを検出する。例えば位置検出部１１４は、第３スキャン制御における辺３３ｃの到達位置のＸ座標及びＹ座標と、第４スキャン制御における辺３３ｃの到達位置のＸ座標及びＹ座標とに基づいてハンド３０の傾きを算出する。具体的に、位置検出部１１４は、次式によりハンド３０の傾きを算出する。
θｈ＝ｔａｎ−１（（Ｙ３１−Ｙ４１）／（Ｘ４１−Ｘ３１））・・・（１２）
θｈ：ハンド３０の傾き角度。
Ｘ３１：第３スキャン制御における辺３３ｃの到達位置のＸ座標。
Ｘ４１：第４スキャン制御における辺３３ｃの到達位置のＸ座標。
【００９６】
ステップＳ１１３では、位置検出部１１４が、交差スキャン制御部１３１がハンド３０を移動させているときに、辺３３ｃが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて、Ｘ軸方向におけるハンド３０の位置ずれを検出する。例えば位置検出部１１４は、辺３３ｃが基準位置ＲＰに達したタイミングから辺３３ｂが基準位置ＲＰに達したタイミングまでのハンド３０の移動ストロークに基づいて、基準位置ＲＰに対するハンド３０のＸ軸方向における相対位置を検出する。位置検出部１１４は、ハンド３０の傾きの検出結果に基づいて、ハンド３０の位置ずれの検出結果を補正してもよい。具体的に、位置検出部１１４は、次式によりＸ軸方向におけるハンド３０の上記移動ストロークを算出する。
Ｌ３１＝Ｘ４１−Ｘ３１・・・（１３）
Ｌ３２＝Ｙ３２−Ｙ３１・・・（１４）
Ｌ３３＝Ｙ４２−Ｙ４１・・・（１５）
Ｌ３４＝Ｌ３２・ｃｏｓ（θｈ）＋Ｌ３２・ｓｉｎ（θｈ）・・・（１６）
Ｌ３５＝Ｌ３３・ｃｏｓ（θｈ）＋Ｌ３３・ｓｉｎ（θｈ）・・・（１７）
Ｌ３６＝（Ｌ３４＋Ｌ３５）／２・・・（１８）
Ｌ３１：Ｘ軸方向における第３スキャン位置から第４スキャン位置へのストローク（以下、「シフトストローク」という。）。
Ｙ３２：第３スキャン制御における辺３３ｂの到達位置のＹ座標。
Ｙ４２：第４スキャン制御における辺３３ｂの到達位置のＹ座標。
Ｌ３２：第３スキャン位置における移動ストローク（以下、「第３移動ストローク」という。）。
Ｌ３３：第４スキャン位置における移動ストローク（以下、「第４移動ストローク」という。）。
Ｌ３４：ハンド３０の傾き角度θｈにより補正された第３移動ストローク。
Ｌ３５：ハンド３０の傾き角度θｈにより補正された第４移動ストローク。
Ｌ３６：移動ストローク。
【００９７】
なお、ハンド３０の傾きによるハンド３０の位置ずれの補正は、上記式（１６）及び（１７）にて行われている。この補正内容により、第３移動ストローク及び第４移動ストロークは、傾き角度θｈがゼロである場合のストロークに補正されている。
【００９８】
位置検出部１１４は、移動ストロークに基づいて、Ｘ軸方向におけるハンド３０の位置ずれを検出する。例えば位置検出部１１４は、Ｘ軸方向における位置ずれがゼロである場合の移動ストロークＬ３７に比較して移動ストロークＬ３６が短い場合、移動ストロークＬ３７と移動ストロークＬ３６とのストローク差に相当するずれ量でハンド３０がＸ軸正方向にずれていることを検出する。また、位置検出部１１４は、移動ストロークＬ３７に比較して移動ストロークＬ３６が長い場合、移動ストロークＬ３６と移動ストロークＬ３７とのストローク差に相当するずれ量でハンド３０がＸ軸負方向にずれていることを検出する。
【００９９】
（ハンド３０の高さ検出手順）
続いて、ステップＳ０６におけるハンド３０の高さずれの検出手順を例示する。図２１に示すように、コントローラ１００は、ステップＳ１２１，Ｓ１２２，Ｓ１２３を実行する。ステップＳ１２１では、高さスキャン制御部１４１が、上記第１高さスキャン制御を実行し、高さ検出部１４２が第１高さスキャン制御中の情報取得を行う。ステップＳ１２２では、高さスキャン制御部１４１が、上記第２高さスキャン制御を実行し、高さ検出部１４２が第２高さスキャン制御中の情報取得を行う。ステップＳ１２３では、ステップＳ１２１，Ｓ１２２で取得した情報に基づいて高さ検出部１４２がハンド３０の高さずれを算出する。
【０１００】
図２２は、ステップＳ１２１の具体的内容を例示するフローチャートである。図２２に示すように、コントローラ１００は、まずステップＳ１３１，Ｓ１３２を実行する。ステップＳ１３１では、高さスキャン制御部１４１が、基準位置ＲＰよりも下方において上記第１高さスキャン位置にハンド３０を配置し、ハンド３０の先端部をＸ軸正方向に向けるようにアーム４０を制御する。ステップＳ１３２では、高さスキャン制御部１４１が、Ｚ軸正方向へのハンド３０の移動（上昇）を開始させるようにアーム４０を制御する。
【０１０１】
次に、コントローラ１００はステップＳ１３３，Ｓ１３４を実行する。ステップＳ１３３では、高さ検出部１４２が、処理ステーション１０の水平センサ１３によるハンド３０の上部の検出を待機する。ステップＳ１３４では、高さ検出部１４２が、ハンド３０の上部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置（以下、「第１高さスキャン制御における上部の到達位置」という。）のＺ座標（ロボット座標系におけるＺ座標）を高さスキャン制御部１４１から取得する。
【０１０２】
次に、コントローラ１００はステップＳ１３５，Ｓ１３６，Ｓ１３７を実行する。ステップＳ１３５では、高さ検出部１４２が、処理ステーション１０の水平センサ１３によるハンド３０の下部の検出を待機する。ステップＳ１３６では、高さ検出部１４２が、ハンド３０の下部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置（以下、「第１高さスキャン制御における下部の到達位置」という。）のＺ座標（ロボット座標系におけるＺ座標）を高さスキャン制御部１４１から取得する。
【０１０３】
ステップＳ１３７では、高さスキャン制御部１４１が、ステップＳ１３２における移動の開始位置に達するまで、アーム４０によりＺ軸負方向にハンド３０を移動（下降）させる。以上により、Ｘ軸に垂直な同一面内におけるハンド３０上部の点Ｐ１１１とハンド３０の下部の点Ｐ１１２とが基準位置ＲＰの高さに達したタイミングにおけるＺ座標が取得される（図２４の（ａ）参照）。
【０１０４】
図２３は、ステップＳ１２２の具体的内容を例示するフローチャートである。図２３に示すように、コントローラ１００は、まずステップＳ１４１，Ｓ１４２を実行する。ステップＳ１４１では、高さスキャン制御部１４１が、基準位置ＲＰよりも下方において上記第２高さスキャン位置にハンド３０を配置し、ハンド３０の先端部をＸ軸正方向に向けるようにアーム４０を制御する。ステップＳ１４２では、高さスキャン制御部１４１が、Ｚ軸正方向へのハンド３０の移動（上昇）を開始させるようにアーム４０を制御する。
【０１０５】
次に、コントローラ１００はステップＳ１４３，Ｓ１４４を実行する。ステップＳ１４３では、高さ検出部１４２が、処理ステーション１０の水平センサ１３によるハンド３０の上部の検出を待機する。ステップＳ１４４では、高さ検出部１４２が、ハンド３０の上部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置（以下、「第２高さスキャン制御における上部の到達位置」という。）のＺ座標（ロボット座標系におけるＺ座標）を高さスキャン制御部１４１から取得する。
【０１０６】
次に、コントローラ１００はステップＳ１４５，Ｓ１４６，Ｓ１４７を実行する。ステップＳ１４５では、高さ検出部１４２が、処理ステーション１０の水平センサ１３によるハンド３０の下部の検出を待機する。ステップＳ１４６では、高さ検出部１４２が、ハンド３０の下部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置（以下、「第２高さスキャン制御における下部の到達位置」という。）のＺ座標（ロボット座標系におけるＺ座標）を高さスキャン制御部１４１から取得する。ステップＳ１４７では、高さスキャン制御部１４１が、ステップＳ１４２における移動の開始位置に達するまで、アーム４０によりＺ軸負方向にハンド３０を移動（下降）させる。以上により、点Ｐ１１１，Ｐ１１２とは異なる位置で、Ｘ軸に垂直な同一面内におけるハンド３０の上部の点Ｐ１２１とハンド３０の下部の点Ｐ１２２とが基準位置ＲＰの高さに達したタイミングにおけるＺ座標が取得される（図２４の（ｂ）参照）。
【０１０７】
図２５は、ステップＳ１２３の具体的内容を例示するフローチャートである。図２５に示すように、コントローラ１００は、ステップＳ１５１，Ｓ１５２，Ｓ１５３を実行する。ステップＳ１５１では、高さ検出部１４２が、ハンド３０の上部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置（以下、「到達位置」という。）のＺ座標と、ハンド３０の上部が基準位置ＲＰの高さに達する予定タイミングにおけるハンド３０の位置のＺ座標との差を算出する。高さ検出部１４２は、第１高さスキャン制御におけるハンド３０の到達位置のＺ座標と、第２高さスキャン制御におけるハンド３０の到達位置のＺ座標との平均値を算出してもよい。例えば高さ検出部１４２は、次式により到達位置のＺ座標を算出する。
Ｚｒ＝（Ｚ１１＋Ｚ２１）／２・・・（２１）
Ｚｒ：到達位置のＺ座標。
Ｚ１１：第１高さスキャン制御における上部の到達位置のＺ座標。
Ｚ２１：第２高さスキャン制御における上部の到達位置のＺ座標。
【０１０８】
ステップＳ１５２では、高さ検出部１４２が、ハンド３０の上部が基準位置ＲＰの高さに達したタイミングと、ハンド３０の下部が基準位置ＲＰの高さに達したタイミングとに基づいてハンド３０の厚さを検出する。例えば高さ検出部１４２は、ハンド３０の下部が基準位置ＲＰの高さに達したタイミングからハンド３０の上部が基準位置ＲＰの高さに達したタイミングまでのハンド３０の昇降ストロークをハンド３０の厚さとして検出する。高さ検出部１４２は、第１高さスキャン制御におけるハンド３０の厚さと、第２高さスキャン制御におけるハンド３０の厚さとの平均値を算出してもよい。例えば高さ検出部１４２は、次式によりハンド３０の厚さを算出する。
Ｔ１＝Ｚ１２−Ｚ１１・・・（２２）
Ｔ２＝Ｚ２２−Ｚ２１・・・（２３）
Ｔ＝（Ｔ１＋Ｔ２）／２・・・（２４）
Ｚ１２：第１高さスキャン制御における下部の到達位置のＺ座標。
Ｚ２２：第２高さスキャン制御における下部の到達位置のＺ座標。
【０１０９】
ステップＳ１５３では、高さ検出部１４２が、第１高さスキャン制御においてハンド３０の上部が基準位置ＲＰの高さに達したタイミングと、第２高さスキャン制御においてハンド３０の上部が基準位置ＲＰの高さに達したタイミングとに基づいて、ハンド３０の傾きを検出する。例えば高さ検出部１４２は、第１高さスキャン制御においてハンド３０の上部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置のＸ座標及びＺ座標と、第２高さスキャン制御においてハンド３０の上部が基準位置ＲＰの高さに達したタイミングにおけるハンド３０の位置のＸ座標及びＺ座標とに基づいてハンド３０の傾きを算出する。例えば高さ検出部１４２は、次式によりハンド３０の傾きを算出する。
θｈ２＝ｔａｎ−１（（Ｚ１１−Ｚ２１）／（Ｘｈ２−Ｘｈ１））・・・（２５）
θｈ２：Ｙ軸に平行な軸線周りのハンド３０の傾き角度。
Ｘｈ１：第１高さスキャン位置のＸ座標。
Ｘｈ２：第２高さスキャン位置のＸ座標。
【０１１０】
〔本実施形態の効果〕
以上に説明したように、搬送システム２は、搬送対象のワークＷを支持するハンド３０と、ハンド３０を移動させるアーム４０と、ハンド３０に固定された互いに非平行な辺３３ａ及び辺３３ｂが、ワークＷの搬送経路における既知の基準位置ＲＰを通過するように、辺３３ａ及び辺３３ｂに交差するスキャン方向に沿ってハンド３０をアーム４０により移動させるスキャン制御部１１３と、スキャン制御部１１３がハンド３０を移動させているときに、辺３３ａが基準位置ＲＰに達したタイミングと、辺３３ｂが基準位置ＲＰに達したタイミングとに基づいて、スキャン方向と交差する方向におけるハンド３０の位置ずれを検出する位置検出部１１４と、を備える。
【０１１１】
基準位置ＲＰへの指標（辺３３ａ及び辺３３ｂ）の到達を検出する構成によって、スキャン方向に交差する方向におけるハンド３０の位置を検出することができる。従って、ハンド３０の位置のキャリブレーションを簡素な構成で高精度に行うのに有効である。
【０１１２】
位置検出部１１４は、スキャン制御部１１３がハンド３０を移動させているときに辺３３ａが基準位置Ｒｐに達したタイミングに基づいて、スキャン方向におけるハンド３０の位置ずれを更に検出してもよい。この場合、基準位置ＲＰへの指標（辺３３ａ及び辺３３ｂ）の到達を検出する構成によって、スキャン方向におけるハンド３０の位置と、スキャン方向に交差する方向におけるハンド３０の位置との両方を検出することができる。従って、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１３】
スキャン制御部１１３は、スキャン方向に交差する方向で互いに異なる第１スキャン位置と第２スキャン位置とのそれぞれにおいてスキャン方向に沿ってハンド３０を移動させ、位置検出部１１４は、スキャン制御部１１３が第１スキャン位置においてハンド３０を移動させているときに辺３３ａが基準位置ＲＰに達したタイミングと、スキャン制御部１１３が第２スキャン位置においてハンド３０を移動させているときに辺３３ａが基準位置ＲＰに達したタイミングとに基づいて、ハンド３０の傾きを更に検出してもよい。この場合、基準位置ＲＰへの指標（辺３３ａ及び辺３３ｂ）の到達を検出する構成によって、ハンド３０の傾きをも検出することができる。従って、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１４】
位置検出部１１４は、ハンド３０の傾きの検出結果に基づいて、ハンド３０の位置ずれの検出結果を補正してもよい。この場合、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１５】
搬送システム２は、互いに異なる第１位置ＲＰ１及び第２位置ＲＰ２のそれぞれを基準位置ＲＰとして、スキャン制御部１１３によるハンド３０の移動を実行させ、スキャン制御部１１３が第１位置ＲＰ１を基準位置ＲＰとしてハンド３０を移動させているときに辺３３ａが第１位置ＲＰ１に達したタイミングと、スキャン制御部１１３が第２位置ＲＰ２を基準位置ＲＰとしてハンド３０を移動させているときに辺３３ａが第２位置ＲＰ２に達したタイミングとに基づいてアーム４０の基台４１の傾きを検出するアーム傾き検出部１２１を更に備えていてもよい。この場合、第１位置ＲＰ１への指標の到達を検出する構成と、第１位置ＲＰ１への指標の到達を検出する構成とによって、アーム４０の基台４１の傾きをも検出することができる。従って、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１６】
搬送システム２は、アーム傾き検出部１２１が検出した基台４１の傾きに起因するハンド３０の位置ずれを縮小するように、アーム４０の制御指令を補正する旋回指令補正部１２２を更に備え、スキャン制御部１１３は、旋回指令補正部１２２により補正された制御指令に基づいて、辺３３ａ及び辺３３ｂが基準位置ＲＰを再度通過するようにスキャン方向に沿ってハンド３０をアーム４０により移動させ、位置検出部１１４は、辺３３ａが基準位置ＲＰに再度達したタイミングと、辺３３ｂが基準位置ＲＰに再度達したタイミングとに基づいてハンド３０の位置ずれを再度検出してもよい。この場合、アーム４０の基台４１の傾きに起因するハンド３０の位置ずれを縮小するように制御指令が補正され、補正後の制御指令に従ってハンド３０の位置が再検出される。従って、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１７】
搬送システム２は、辺３３ａ及び辺３３ｂのいずれか一方と、ハンド３０に固定され、辺３３ａ及び辺３３ｂのいずれにも非平行な辺３３ｃとが基準位置ＲＰを通過するように、スキャン方向に交差する交差スキャン方向に沿ってハンド３０をアーム４０により移動させる交差スキャン制御部１３１と、を更に備え、位置検出部１１４は、交差スキャン制御部１３１がハンド３０を移動させているときに辺３３ａ及び辺３３ｂの少なくとも一方が基準位置ＲＰに達したタイミングと、辺３３ｃが基準位置ＲＰに達したタイミングとに基づいて、交差スキャン方向と交差する方向におけるハンド３０の位置ずれを更に検出してもよい。この場合、基準位置ＲＰへの指標の到達を検出する構成によって得られる情報が増えるので、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１８】
位置検出部１１４は、辺３３ｃが基準位置ＲＰに達したタイミングに基づいて交差スキャン方向におけるハンド３０の位置ずれを更に検出してもよい。この場合、基準位置ＲＰへの指標の到達を検出する構成によって得られる情報が更に増えるので、ハンド３０の位置のキャリブレーションを簡素な構成でより高精度に行うことができる。
【０１１９】
以上、実施形態について説明したが、本発明は必ずしも上述した形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【０１２０】
２…搬送システム、３０…ハンド、３３ａ…辺（第１ライン）、３３ｂ…辺（第２ライン）、３３ｃ…辺（第３ライン）、４０…アーム、４１…基台（基部）、１１３…スキャン制御部、１１４…位置検出部、１２１…アーム傾き検出部、１２２…旋回指令補正部（指令補正部）、１３１…交差スキャン制御部、１４１…高さスキャン制御部、ＲＰ…基準位置、ＲＰ１…第１位置、ＲＰ２…第２位置、Ｗ…ワーク（基板）。
【図１】
2020098851.tif 000003
【図２】
2020098851.tif 000004
【図３】
2020098851.tif 000005
【図４】
2020098851.tif 000006
【図５】
2020098851.tif 000007
【図６】
2020098851.tif 000008
【図７】
2020098851.tif 000009
【図８】
2020098851.tif 000010
【図９】
2020098851.tif 000011
【図１０】
2020098851.tif 000012
【図１１】
2020098851.tif 000013
【図１２】
2020098851.tif 000014
【図１３】
2020098851.tif 000015
【図１４】
2020098851.tif 000016
【図１５】
2020098851.tif 000017
【図１６】
2020098851.tif 000018
【図１７】
2020098851.tif 000019
【図１８】
2020098851.tif 000020
【図１９】
2020098851.tif 000021
【図２０】
2020098851.tif 000022
【図２１】
2020098851.tif 000023
【図２２】
2020098851.tif 000024
【図２３】
2020098851.tif 000025
【図２４】
2020098851.tif 000026
【図２５】
2020098851.tif 000027