(57)【特許請求の範囲】
【請求項１】
複数の関節軸を有するアームを備える水平多関節型の搬送用ロボットの当該アームの先端部の所定部位の移動時におけるぶれを自動的に調整する装置であって、
目標軌跡及び当該目標軌跡に従って前記所定部位が直線移動するよう前記アームの各軸の動作を制御するための複数の制御パラメータを予め記憶する記憶部と、
前記複数の制御パラメータの値をそれぞれ設定する制御パラメータ設定部と、
前記目標軌跡及び前記設定された複数の制御パラメータに基づいて、前記所定部位が直線移動するように前記アームの各軸の動作を制御するロボット制御部と、
前記直線移動における１以上の時刻にそれぞれ対応する前記目標軌跡上の点と前記所定部位の前記直線移動時の軌跡上の点との間の偏差から得られる偏倚量のうち目標軌道に直交する横方向の偏倚量をそれぞれ前記ぶれとして取得するぶれ取得部と、
前記ぶれ取得部により取得された前記偏倚量であるぶれ又は当該ぶれの重み付けされた値であるぶれ評価値が所定の閾値以下であるか否かを判定する判定部と、
前記ぶれ評価値が前記所定の閾値よりも大きい場合は、前記制御パラメータ設定部に前記複数の制御パラメータのいずれか一つを新たに設定させ、前記ぶれ評価値が前記所定の閾値以下になるまで、前記制御パラメータの新たな設定、前記所定部位の直線移動、前記ぶれの取得、及び前記判定を、それぞれ、前記制御パラメータ設定部、前記ロボット制御部、前記ぶれ取得部、及び前記判定部に繰り返し行わせ、前記複数の制御パラメータの組み合わせを最適化するパラメータ最適化部と、
を備え、
前記横方向の偏倚量は、前記所定部位に配置され、前記所定部位の目標軌跡に平行な面を備えた計測治具に対する前記所定部位の距離を計測する距離センサの測定データに基づいて取得される、ロボットのぶれ自動調整装置。
【請求項２】
前記アームは、前記複数の関節軸の各々を駆動するサーボモータを備え、
前記パラメータ最適化部は、前記各軸のサーボモータの回転子の速度及び加速度に関する制御パラメータを優先的に変更する、請求項１に記載のロボットのぶれ自動調整装置。
【請求項３】
前記判定部は、前記ぶれ評価値が前記所定の閾値以下になった後、前記ぶれ取得部により取得されたぶれ評価値が前記所定の閾値よりも小さい第２閾値以下であるか否かを判定し、
前記パラメータ最適化部は、前記ぶれ評価値が前記第２閾値よりも大きい場合は、前記制御パラメータ設定部に前記複数の制御パラメータのいずれか一つを新たに設定させ、前記ぶれ評価値が前記第２閾値以下になるまで、前記制御パラメータの新たな設定、前記所定部位の直線移動、前記ぶれの取得、及び前記判定を、それぞれ、前記制御パラメータ設定部、前記ロボット制御部、前記ぶれ取得部、及び前記判定部に繰り返し行わせ、前記複数の制御パラメータの組み合わせを最適化する、請求項１又は２に記載のロボットのぶれ自動調整装置。
【請求項４】
前記所定部位は、前記ロボットの前記アーム先端に取り付けられたエンドエフェクタである、請求項１乃至３のいずれか一項に記載のロボットのぶれ自動調整装置。
【請求項５】
複数の関節軸を有するアームを備える水平多関節型の搬送用ロボットの当該アームの先端部の所定部位の直線移動時におけるぶれを自動的に調整するぶれ自動調整装置により実行される方法であって、
前記所定部位を直線移動させる目標軌跡及び当該目標軌跡に従って前記所定部位が直線移動するよう前記アームの各軸の動作を制御するための複数の制御パラメータを予め記憶部に記憶しておくステップと、
前記複数の制御パラメータの値をそれぞれ設定するステップと、
前記目標軌跡及び前記設定された複数の制御パラメータに基づいて、前記所定部位が直線移動するように前記アームの各軸の動作を制御するステップと、
前記直線移動における１以上の時刻にそれぞれ対応する前記目標軌跡上の点と前記所定部位の前記直線移動時の軌跡上の点との間の偏差から得られる偏倚量のうち目標軌道に直交する横方向の偏倚量をそれぞれ前記ぶれとして取得するステップと、
前記取得されたぶれ又は当該ぶれの重み付けされた値であるぶれ評価値が所定の閾値以下であるか否かを判定するステップと、
前記ぶれ評価値が前記所定の閾値よりも大きい場合は、前記複数の制御パラメータのいずれか一つを新たに設定し、前記ぶれ評価値が前記所定の閾値以下になるまで、前記制御パラメータの新たな設定、前記所定部位の直線移動、前記ぶれの取得、及び前記判定を、それぞれ、繰り返し行い、前記複数の制御パラメータの組み合わせを最適化するステップと、
を含み、
前記横方向の偏倚量は、前記所定部位に配置され、前記所定部位の目標軌跡に平行な面を備えた計測治具に対する前記所定部位の距離を計測する距離センサの測定データに基づいて取得される、ロボットのぶれ自動調整方法。
【請求項６】
前記所定部位は、前記ロボットの前記アーム先端に取り付けられたエンドエフェクタである、請求項５に記載のロボットのぶれ自動調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのぶれ自動調整装置及びロボットのぶれ自動調整方法に関する。
【背景技術】
【０００２】
一般に、半導体処理設備において半導体ウェハ、表示パネル用のガラス基板等を搬送する際にはリンク系の水平多関節型の搬送ロボットが使用される。リンク系の搬送ロボットにおいては、直線動作時にはロボットの動作軌跡に対する横方向のぶれ（以下、横ぶれともいう）が発生する。【０００３】
リンク系の搬送ロボットでは、各関節軸の動作を制御するための数種類のパラメータによりハンドの動作が決まる。このため、従来は、計測器を用いて、直線動作パターン全てのパラメータを手動で調整し、ロボットの横ぶれを調整していた。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来の方法では、計測器の調整や計測にはノウハウや熟練が必要であり、作業者の能力により作業時間にばらつきがあり、正確さに欠ける場合もあった。このような課題は、直線動作を行うロボット全般に共通する課題である。更に、このような課題は、上記横ぶれだけでなく、縦方向、斜め方向を含む全体的なロボットのぶれに共通する課題である。【０００５】
そこで、本発明では、ロボットのぶれを簡単に自動調整することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係るロボットのぶれ自動調整装置は、複数の関節軸を有するアームを備えるロボットの当該アームの先端部の所定部位の直線移動時におけるぶれを自動的に調整する装置であって、前記所定部位を直線移動させる目標軌跡及び当該目標軌跡に従って前記所定部位が直線移動するよう前記アームの各軸の動作を制御するための複数の制御パラメータを予め記憶する記憶部と、前記複数の制御パラメータの値をそれぞれ設定する制御パラメータ設定部と、前記目標軌跡及び前記設定された複数の制御パラメータに基づいて、前記所定部位が直線移動するように前記アームの各軸の動作を制御するロボット制御部と、前記直線移動における１以上の時刻にそれぞれ対応する前記目標軌跡上の点と前記所定部位の前記直線移動時の軌跡上の点との当該目標軌跡に対する前記所定部位の軌跡の偏倚量をそれぞれ前記ぶれとして取得するぶれ取得部と、前記ぶれ取得部により取得されたぶれ又は当該ぶれの重み付けされた値であるぶれ評価値が所定の閾値以下であるか否かを判定する判定部と、前記ぶれ評価値が前記所定の閾値よりも大きい場合は、前記制御パラメータ設定部に前記複数の制御パラメータのいずれか一つを新たに設定させ、前記ぶれ評価値が前記所定の閾値以下になるまで、前記制御パラメータの新たな設定、前記所定部位の直線移動、前記ぶれの取得、及び前記判定を、それぞれ、前記制御パラメータ設定部、前記ロボット制御部、前記ぶれ取得部、及び前記判定部に繰り返し行わせ、前記複数の制御パラメータの組み合わせを最適化するパラメータ最適化部と、を備える。【０００７】
ここでぶれとは、直線移動させる所定部位の目標軌跡に対する所定部位の位置の偏倚量をいう。つまり、ぶれは、目標軌跡に対する横方向、縦方向、及び斜め方向のうちの少なくとも一つの方向のぶれを含む。【０００８】
上記構成によれば、複数の制御パラメータを網羅的に繰り返し変更することにより、直線移動する所定部位（例えばエンドエフェクタ）のぶれを所定範囲内に収束させることができるので、最適な制御パラメータの組み合わせを決定できる。その結果、従来の人手によらず、ロボットの所定部位の制御パラメータを自動調整できる。【０００９】
前記アームは、前記複数の関節軸の各々を駆動するサーボモータを備え、前記パラメータ最適化部は、前記各軸のサーボモータの回転子の速度及び加速度に関する制御パラメータを優先的に変更してもよい。
【００１０】
上記構成によれば、直線移動軌跡のぶれに対する寄与の大きい制御パラメータを優先的に変更するので、ぶれを好適に収束させることができる。【００１１】
前記判定部は、前記ぶれ評価値が前記所定の閾値以下になった後、前記ぶれ取得部により取得されたぶれ評価値が前記所定の閾値よりも小さい第２閾値以下であるか否かを判定し、前記パラメータ最適化部は、前記ぶれ評価値が前記第２閾値よりも大きい場合は、前記制御パラメータ設定部に前記複数の制御パラメータのいずれか一つを新たに設定させ、前記ぶれ評価値が前記第２閾値以下になるまで、前記制御パラメータの新たな設定、前記エンドエフェクタの直線移動、前記ぶれの取得、及び前記判定を、それぞれ、前記制御パラメータ設定部、前記ロボット制御部、前記ぶれ取得部、及び前記判定部に繰り返し行わせ、前記複数の制御パラメータの組み合わせを最適化してもよい。
【００１２】
上記構成によれば、閾値を多段階に分けて徐々に閾値を小さくしていくことで、より安定的な解に収束しやすくなる。【００１３】
前記所定部位の軌跡の偏倚量は、前記所定部位の目標軌跡に平行な面を備えた計測治具と、前記所定部位に配置され、前記計測治具に対する前記所定部位の相対位置を計測する距離センサとに基づいて取得されてもよい。【００１４】
上記構成によれば、動作軌跡の偏倚量を好適に計測することができる。【００１５】
前記ロボットは、水平多関節型ロボットでもよい。前記所定部位は、前記ロボットの前記アーム先端に取り付けられたエンドエフェクタでもよい。前記ぶれ取得部は、前記エンドエフェクタの前記直線移動における１以上の時刻にそれぞれ対応する前記目標軌跡上の点と前記エンドエフェクタの前記直線移動時の軌跡上の点との当該目標軌跡に対する当該目標軌跡に直交する横方向の前記エンドエフェクタの軌跡の偏倚量をそれぞれ横ぶれとして取得してもよい。【００１６】
本発明のその他の態様に係るロボットのぶれ自動調整方法は、複数の関節軸を備えるロボットの当該アームの先端の所定部位の直線移動時におけるぶれを自動的に調整する装置により実行される方法であって、前記所定部位を直線移動させる目標軌跡及び当該目標軌跡に従って前記所定部位が直線移動するよう前記アームの各軸の動作を制御するための複数の制御パラメータを予め記憶部に記憶しておくステップと、前記複数の制御パラメータの値をそれぞれ設定するステップと、前記目標軌跡及び前記設定された複数の制御パラメータに基づいて、前記所定部位が直線移動するように前記アームの各軸の動作を制御するステップと、前記直線移動における１以上の時刻にそれぞれ対応する前記目標軌跡上の点と前記所定部位の前記直線移動時の軌跡上の点との当該目標軌跡に対する前記所定部位の軌跡の偏倚量をそれぞれ前記ぶれとして取得するステップと、前記取得されたぶれ又は当該ぶれの重み付けされた値であるぶれ評価値が所定の閾値以下であるか否かを判定するステップと、前記ぶれ評価値が前記所定の閾値よりも大きい場合は、前記複数の制御パラメータのいずれか一つを新たに設定し、前記ぶれ評価値が前記所定の閾値以下になるまで、前記制御パラメータの新たな設定、前記所定部位の直線移動、前記ぶれの取得、及び前記判定を、それぞれ、繰り返し行い、前記複数の制御パラメータの組み合わせを最適化するステップと、を含む。【００１７】
前記所定部位は、前記ロボットの前記アーム先端に取り付けられたエンドエフェクタでもよい。前記ぶれを取得するステップでは、前記エンドエフェクタの前記直線移動における１以上の時刻にそれぞれ対応する前記目標軌跡上の点と前記エンドエフェクタの前記直線移動時の軌跡上の点との当該目標軌跡に対する当該目標軌跡に直交する横方向の前記エンドエフェクタの軌跡の偏倚量をそれぞれ横ぶれとして取得してもよい。
【発明の効果】
【００１８】
本発明によれば、ロボットのぶれを簡単に自動調整することができる。【００１９】
本発明の上記目的、他の目的、特徴、及び利点は、添付図面参照の下、以下の好適な実施態様の詳細な説明から明らかにされる。
【図面の簡単な説明】
【００２０】
【図１】図１は、一実施形態に係るロボットのぶれ自動調整システムの構成を示す概略図である。
【図２】図２は、図１のロボットの制御装置の構成を示すブロック図である。
【図３】図３は、図２の制御装置の一部の構成例を示したブロック図である。
【図４】図４は、ロボットの横ぶれ自動調整処理の一例を示すフローチャートである。
【図５】図５は、横ぶれの測定結果の一例を示したグラフである。
【発明を実施するための形態】
【００２１】
以下、本発明に係る実施形態について図面を参照しつつ説明する。以下では、全ての図面を通じて同一又は相当する要素には同じ符号を付して、重複する説明は省略する。
【００２２】
図１は、一実施形態に係るロボットのぶれ自動調整システムの構成を示す概略図である。図１に示すように、ロボットのぶれ自動調整システム（ぶれ自動調整装置）１００は、制御装置２と、計測治具３と、距離センサ４を備える。参照符号１は、ぶれ調整の対象であるロボットである。
【００２３】
ロボット１は、例えば、複数の関節軸を有するアーム６と、アーム６の先端部に設けられたエンドエフェクタ１５を有する。ロボット１は、複数の関節軸を有するアームを備えるロボットであれば、特に限定されない。ここで「関節軸」とは、いわゆるジョイント(joint)であり、回転運動を行う回転ジョイントと、直進運動を行う直進ジョイントとを含む。従って、ロボット１は、いわゆる多関節ロボットの他、直動系のロボットも含む。本実施形態では、水平多関節型の搬送用ロボットである。ロボット１は、例えば、半導体処理設備において半導体ウェハ、表示パネル用のガラス基板等を搬送する。ここではロボット１のアーム６は、基台１０に設けられた昇降軸１１と、昇降軸１１に設けられた第１リンク１２と、第１リンク１２の先端部に設けられた第２リンク１３と、第２リンク１３の先端部に設けられた第３リンク１４と、第３リンク１４の先端に設けられたエンドエフェクタ１５で構成される。アーム６の関節軸（図示しない）にはそれぞれ駆動用のサーボモータ及び関節の角度を検出可能な角度検出器の一例であるエンコーダ等が組み込まれる（いずれも図示せず）。エンドエフェクタ１５は、例えば、ハンドである。搬送時にはハンドは半導体ウェハ等の基板（図示せず）を把持するが、その代り、ここでは測定用の距離センサ４を把持する。
【００２４】
制御装置２は、エンドエフェクタ１５を直線移動させる目標軌跡５に従ってエンドエフェクタ１５が直線移動するようアーム６の各軸の動作を制御する。エンドエフェクタ１５の目標軌跡５は、点Ｐ１と点Ｐ２を結ぶ点線で示した直線であり、点Ｐ１から点Ｐ２までの往路と、点Ｐ２から点Ｐ１までの復路で構成される。つまりアーム６を伸縮動作させることにより、エンドエフェクタ１５は始点Ｐ１（待機位置）から点Ｐ２（教示位置）までの往路を直線移動し、その後点Ｐ２から点Ｐ１まで復路を直線移動して元の待機位置に戻る。図１では一つの目標軌跡５のみを示しているが、搬送時にはＦＯＵＰ等の位置、高さの異なる複数のポートの各々に対して目標軌跡が設定される。
【００２５】
計測治具３は、エンドエフェクタ１５の目標軌跡５に沿って配置され、この目標軌跡５に平行な壁面３ａを備えている。
【００２６】
距離センサ４は、エンドエフェクタ１５に配置され、且つ把持される。本実施形態では、距離センサ４はセンサヘッド、センサアンプなどの構成要素を備える。センサヘッドから計測治具３の壁面３ａに赤外線が照射され、距離センサ４と計測治具３の壁面３ａ間の距離が測定される。これをロボット１の動作中に行うことで、横ぶれを測定する。ここで横ぶれとは、直線移動における１以上の時刻にそれぞれ対応する目標軌跡５上の点とエンドエフェクタ１５の直線移動時の軌跡上の点との当該目標軌跡５に対する当該目標軌跡５に直交する横方向のエンドエフェクタ１５の軌跡の偏倚量(偏差)をいう。つまり、ぶれは、目標軌跡５に対する横方向、縦方向、及び斜め方向のうちの少なくとも一つの方向のぶれを含むが、本実施形態では目標軌跡５に直交する横方向のぶれが測定される。
【００２７】
距離センサ４は、無線又は有線通信により、制御装置２に測定結果を出力するように構成される。
【００２８】
図２は、制御装置２の構成を示すブロック図である。図２に示すように、制御装置２は、演算部２１と、サーボ制御部２２と、記憶部２３と、通信インターフェース（図示しない）を備える。制御装置２は、ロボット１と制御線（図示しない）を介して接続され、例えばマイクロコントローラ等のコンピュータを備えたロボットコントローラである。本実施形態では、制御装置２は、ロボット１の横ぶれを自動的に調整する機能を備える。制御装置２は単一の装置とは限らず、後述するぶれの自動調整機能を備えた装置を含む複数の装置で構成されてもよい。ここではアーム６の各関節軸に内蔵された複数のサーボモータ２０を位置制御しながらサーボモータ２０によってアーム６を駆動するよう構成される。
【００２９】
記憶部２３は、制御装置２の基本プログラム、ロボットの動作プログラム、目標軌跡５及び制御パラメータを予め記憶する。
【００３０】
演算部２１は、ロボット制御のための各種の演算処理を実行する演算装置であり、制御装置２の基本プログラム、ロボットの動作プログラム及びぶれ自動調整プログラムを実行してロボットの制御指令を生成し、サーボ制御部２２に出力する。また、演算部２１は、制御パラメータ設定部２４と、ぶれ取得部２５と、判定部２６と、パラメータ最適化部２７を含む各機能ブロックを実現する（各機能ブロックとして動作する）ように構成されている。
【００３１】
制御パラメータ設定部２４は、複数の制御パラメータの値をそれぞれ設定する。ここで制御パラメータとは、目標軌跡５に従ってエンドエフェクタ１５が直線移動するようアーム６の各軸の動作を制御するための複数の調整パラメータである。なお、制御パラメータは、ロボット１の「ぶれ」に影響する調整パラメータであればどのようなものでもよい。
【００３２】
サーボ制御部２２は、目標軌跡５及び設定された複数の制御パラメータに基づいて、エンドエフェクタ１５が直線移動するようにアーム６の各軸の動作を制御する。
【００３３】
ぶれ取得部２５は、ぶれ又は当該ぶれの重み付けされた値であるぶれ評価値を取得する。具体的には、距離センサ４からぶれに関する測定データを受け取り、それに基づいてぶれ評価値を算出する。
【００３４】
判定部２６は、ぶれ取得部２５により取得されたぶれ又は当該ぶれの重み付けされた値であるぶれ評価値が所定の閾値以下であるか否かを判定する。
【００３５】
パラメータ最適化部２７は、ぶれ評価値が所定の閾値よりも大きい場合は、制御パラメータ設定部２４に複数の制御パラメータのいずれか一つを新たに設定させ、ぶれ評価値が所定の閾値以下になるまで、制御パラメータの新たな設定、エンドエフェクタ１５の直線移動、ぶれの取得、及び判定を、それぞれ、制御パラメータ設定部２４、サーボ制御部２２、ぶれ取得部２５、及び判定部２６に繰り返し行わせ、複数の制御パラメータの組み合わせを最適化する。
【００３６】
図３は、制御装置２における制御パラメータ設定部２４及びサーボ制御部２２の一部の構成例を示すブロック図である。図３では、図１の第３リンク１４の関節軸（以下、Ａ軸という）とエンドエフェクタ（ハンド）１５の関節軸（以下、Ｂ軸という）のモータ制御についてのみ示しているが、他の関節軸についても同様であるのでその説明を省略する。
【００３７】
図３に示すように、制御パラメータ設定部２４は、デジタルフィルタ部３１、３２と、加算器３３，３４と、速度及び加速度のパラメータ設定部４０〜４５と、Ａ軸及びＢ軸のモータ制御部５０，５１を備える。ここで速度及び加速度は、Ａ軸及びＢ軸のサーボモータ２０の回転子の速度及び加速度である。制御パラメータは、例えば、Ａ軸の速度フィードフォワードゲインＫｖ１、Ａ軸の加速度フィードフォワードゲインＫａ１、Ａ軸の動作をＢ軸に作用させるための速度フィードフォワードゲインＫｖ２、Ａ軸の動作をＢ軸に作用させるための加速度フィードフォワードゲインＫａ２、Ｂ軸の速度フィードフォワードゲインＫｖ３、Ｂ軸の加速度フィードフォワードゲインＫａ３である。
【００３８】
デジタルフィルタ部３１は、演算部２１から入力されたＡ軸位置指令信号にフィルタリング処理を施し、これを加算器３３、速度パラメータ設定部４０、加速度パラメータ設定部４１、速度パラメータ設定部４２、及び、加速度パラメータ設定部４３に出力する。デジタルフィルタ部３１は、例えばＦＩＲフィルタである。
【００３９】
速度パラメータ設定部４０は、デジタルフィルタ部３１から入力されたフィルタ後のＡ軸位置指令信号に速度フィードフォワードゲインＫｖ１を重み付けし、これを加算器３３に出力する。加速度パラメータ設定部４１は、デジタルフィルタ部３１から入力されたフィルタ後のＡ軸位置指令信号に加速度フィードフォワードゲインＫａ１を重み付けし、これを加算器３３に出力する。
【００４０】
加算器３３は、デジタルフィルタ部３１、速度パラメータ設定部４０、及び、加速度パラメータ設定部４１から入力された各々の演算結果を加算し、これをモータ制御部５０に出力する。このように、Ａ軸の位置制御の前段において、Ａ軸位置指令信号に速度及び加速度の制御パラメータ加算することによりフィードフォワード補償を行うように構成されている。
【００４１】
モータ制御部５０は、加算器３３から入力されたフィードフォワード補償後のＡ軸位置指令に基づいてＡ軸のサーボモータ２０の動作をフィードバック制御する。
【００４２】
速度パラメータ設定部４２は、デジタルフィルタ部３１から入力されたＡ軸位置指令信号に速度フィードフォワードゲインＫｖ２を重み付けし、これを加算器３４に出力する。
【００４３】
加速度パラメータ設定部４３は、デジタルフィルタ部３１から入力されたＡ軸位置指令信号に加速度フィードフォワードゲインＫａ２を重み付けし、これを加算器３４に出力する。
【００４４】
デジタルフィルタ部３２は、演算部２１から入力されたＢ軸位置指令信号にフィルタリング処理を施し、これを加算器３４、速度パラメータ設定部４４、加速度パラメータ設定部４５に出力する。デジタルフィルタ部３２は、例えばＦＩＲフィルタである。
【００４５】
速度パラメータ設定部４４は、デジタルフィルタ部３２から入力されたフィルタ後のＢ軸位置指令信号に速度フィードフォワードゲインＫｖ３を重み付けし、これを加算器３４に出力する。
【００４６】
加速度パラメータ設定部４５は、デジタルフィルタ部３２から入力されたフィルタ後のＢ軸位置指令信号に加速度フィードフォワードゲインＫａ３を重み付けし、これを加算器３４に出力する。
【００４７】
加算器３４は、速度パラメータ設定部４２、加速度パラメータ設定部４３、デジタルフィルタ部３２、速度パラメータ設定部４４、及び、加速度パラメータ設定部４５から入力された各々の演算結果を加算し、これをＢ軸のモータ制御部５１に出力する。このように、Ｂ軸の位置制御の前段において、Ｂ軸位置指令信号にＡ軸に関する速度及び加速度の制御パラメータと、Ｂ軸に関する速度及び加速度の制御パラメータとを加算することによりフィードフォワード補償を行うように構成されている。
【００４８】
モータ制御部５１は、加算器３４から入力されたフィードフォワード補償後のＢ軸位置指令に基づいてＢ軸のサーボモータ２０の動作をフィードバック制御する。
【００４９】
本実施形態では、制御パラメータ設定部２４によりフィードフォワード補償を施した後に、サーボ制御部２２により通常の位置制御を行って各軸のサーボモータ２０を制御するように構成されている。
【００５０】
そして、図３に示す制御パラメータ設定部２４では、上記制御パラメータの値をそれぞれ設定することにより、第３リンク１４の動作が、ハンドの動作の位置指令へのフィードフォワード制御として与えられる。つまり、各軸の位置指令信号に対して、制御パラメータの値を適切な値に設定することにより、エンドエフェクタ１５の目標軌跡５（図１）を維持しつつアーム６の各軸の角度、位置を互いに変更することができる。
【００５１】
本実施形態では、このような仕組みを利用して、エンドエフェクタ１５の直線移動時における横ぶれを自動的に調整する。以下では、制御装置２によるロボット１の横ぶれ自動調整処理について図４のフローチャートを用いて説明する。
【００５２】
まず、最初に初期設定を行う（ステップＳ１）。具体的には距離センサ４のゼロイング及び距離センサ４と計測治具３との間の距離のオフセットを調整する。距離センサ４の測定範囲は予め仕様により決まっているので測定前に測定範囲内に入るように両者の位置を補正する。
【００５３】
次に、制御パラメータを変更する（ステップＳ２）。制御パラメータ設定部２４は、複数の制御パラメータの値をそれぞれ設定又は変更する。最初は初期値として予め定められた値が設定される。尚、制御パラメータの設定は図３で示した、各軸のサーボモータ２０の回転子の速度、及び加速度に関する制御パラメータを優先的に変更する。これらの制御パラメータは直線移動軌跡の横ぶれに対する寄与が大きいので、横ぶれを好適に収束させることができる。
【００５４】
次に、横ぶれの測定を行う（ステップＳ３）。サーボ制御部２２は、目標軌跡５及びステップＳ２で設定された複数の制御パラメータに基づいて、エンドエフェクタ１５が直線移動するようにアーム６の各軸の動作を制御する。アーム６を伸縮動作させることにより、エンドエフェクタ１５は点Ｐ１から点Ｐ２までの往路を直線移動し、その後点Ｐ２から点Ｐ１まで復路を直線移動して元の待機位置に戻る（図１参照）。この動作中に距離センサ４による横ぶれの測定を行い、ぶれ取得部２５は、距離センサ４から横ぶれに関する測定データを受け取る。
【００５５】
図５は、横ぶれの測定結果の一例を示したグラフである。同グラフの横軸は時間、縦軸は計測治具３と距離センサ４との間の距離を示している。尚、測定値の中心値は、距離センサ４や計測治具３の取り付け誤差によりずれが生じるが、ここで示した測定値はデジタル処理により補正されている。ここでＭＡＸは、中心値ＭＩＤを基準としたプラス方向の最大値である。ＭＩＮは、中心値ＭＩＤを基準としたマイナス方向の最小値である。
【００５６】
図５に示すように、横ぶれには目標軌跡５上の中心値ＭＩＤ（一点鎖線）からプラス方向の横ぶれとマイナス方向の横ぶれがある。横ぶれは、エンドエフェクタ１５の直線移動における１以上の時刻にそれぞれ対応する目標軌跡５上の点とエンドエフェクタ１５の直線移動時の軌跡上の点との当該目標軌跡５に対する当該目標軌跡５に直交する横方向のエンドエフェクタ１５の軌跡の偏倚量である。
【００５７】
次に、距離の振幅が減少したか否かの判定を行う（ステップＳ４）。判定部２６は横ぶれ又はその横ぶれの重み付けされた値である横ぶれ評価値を用いて判定する。このため、本実施形態では、ぶれ取得部２５は、横ぶれの重み付けされた値である横ぶれ評価値を算出する。横ぶれ評価値の算出式は任意である。横ぶれの測定値が中心に近づくほど、評価値が低くなり、閾値以下に収まるような算出式であればよい。ここでは図５に示すように評価ラインを設定し、プラス方向の評価ラインを下回る、又はマイナス方向の評価ラインを上回ると、横ぶれ評価値は低くなるように重み付けされる。
【００５８】
そして、判定部２６は、横ぶれ評価値が所定の閾値以下であるか否かを判定する。
【００５９】
パラメータ最適化部２７は、評価値が前回計測時の評価値よりも減少していれば、次のステップＳ５に進む。一方、評価値が前回値と同じ又は増加していればステップＳ２に戻る。
【００６０】
次に、評価値が瞬間閾値を満たしたか否かを判定する（ステップＳ５）。本実施形態では、判定は、瞬間閾値と安定閾値を用いて行われる。例えば第１段階では瞬間閾値ａ１と安定閾値ｂ１が用いられ、安定閾値ｂ１は瞬間閾値ａ１よりも大きな値に設定される。判定部２６は、評価値が瞬間閾値を満たしているか否かを判定し、パラメータ最適化部２７は、満たしている場合は次のステップに進み、満たしていない場合はステップＳ２に戻る。
【００６１】
パラメータ最適化部２７は、更に、横ぶれの計測を５回実行させる（ステップＳ６）。そして、判定部２６は、これらの測定による評価値が安定閾値を満たしているか否かを判定する（ステップＳ７）。このように、最初に値の小さい瞬間閾値で判定し、これを満たしている場合のみ大きい安定閾値の判定を行うことによりノイズの影響を除去することができる。パラメータ最適化部２７は、評価値が安定閾値を満たしている場合は次のステップに進み、満たしていない場合はステップＳ２に戻る。
【００６２】
次に、パラメータ最適化部２７は、ステップＳ７で使用した安定閾値が最終閾値（最終段階の安定閾値）であるか否かを確認する（ステップＳ８）。安定閾値が最終閾値で無ければ次の段階の閾値を設定し（ステップＳ９）、ステップＳ２に戻る。本実施の形態では、３段階の瞬間閾値と安定閾値が設定される。第１段階では瞬間閾値ａ１と安定閾値ｂ１が設定され、第２段階では瞬間閾値ａ２と安定閾値ｂ２が設定され、第３段階では瞬間閾値ａ３と安定閾値ｂ３が設定される。各閾値は、以下の関係式（１）を満たす。
ａ１＜ｂ１，ａ２＜ｂ２，ａ３＜ｂ３  ，ａ１＞ａ２＞ａ３  ，ｂ１＞ｂ２＞ｂ３・・・（１）
関係式（１）より、段階が上がるごとに瞬間閾値と安定閾値は小さくなるように設定されている。このように閾値を多段階に分けて徐々に閾値を小さくしていくことで、より安定的な解に収束しやすくなる。
【００６３】
そして、パラメータ最適化部２７は、評価値が最終閾値であった場合は制御パラメータを保存して終了する（ステップＳ１０）。以上のように、パラメータ最適化部２７は、横ぶれ評価値が最終閾値以下になるまで、制御パラメータの新たな設定、エンドエフェクタ１５の直線移動、横ぶれの測定（取得）、及び判定を、それぞれ、繰り返し行い、複数の制御パラメータの組み合わせを最適化する。
【００６４】
本実施形態によれば、複数の制御パラメータを網羅的に繰り返し変更することにより、エンドエフェクタ１５の横ぶれを所定範囲内に収束させることができるので、最適な制御パラメータの組み合わせを決定できる。その結果、従来の人手によらず、ロボット１のエンドエフェクタ１５の制御パラメータを自動調整できる。
【００６５】
尚、本実施形態では、一つの目標軌跡５（図１）について横ぶれを自動調整する場合について説明したが、位置、高さの異なる複数のポートの各々に対して目標軌跡５を設定し、各ポート毎に横ぶれの自動調整処理を行ってもよい。例えば全２４ポートの各ポートについて目標軌跡５を設定した場合には、第１段階の閾値（瞬間閾値及び安定閾値）で１〜２４ポートまで順次調整を行い、次に第２段階の閾値で１〜２４ポートまで順次調整を行い、最後の第３段階の閾値で１〜２４ポートまで順次調整を行うようにしてもよい。これにより、ロボット１が同一ポートについて同じ動作を繰り返して調整を行うよりも、ノイズの影響を除去することができ最適解に収束し易くなる。また、各段階で、最初に値の小さい瞬間閾値で判定し、これを満たしている場合のみ大きい安定閾値の判定を行うことによりノイズの影響を効果的に除去することができる。
【００６６】
尚、本実施形態では、エンドエフェクタ１５の横ぶれは、エンドエフェクタ１５の目標軌跡５に平行な面５ａを備えた計測治具３と、距離センサ４とにより計測されたが、これに限定されない。例えばその他の加速度センサ、ＧＰＳにより目標軌跡５に対して横方向、縦方向、及び斜め方向のうちの少なくとも一つの方向のぶれが計測されてもよい。
【００６７】
尚、本実施形態では、制御パラメータ設定部２４によりフィードフォワード補償を施した後に、サーボ制御部２２により通常の位置制御を行って各軸のサーボモータ２０を制御するように構成され、制御パラメータは、各軸の速度及び加速度のフィードフォワードゲインとしたが、ロボット１のぶれに影響する制御パラメータであればこれに限定されない。
以上
【００６８】
尚、本実施形態では、ロボット１は、水平多関節型の搬送用ロボットとしたが、直線移動可能なロボット全般であればこれに限定されない。例えば直動機構を備えたロボットでもよい。このようなロボットでは、直線移動させる目標軌跡に対してあらゆる方向のぶれが発生し得るからである。また目標軌跡は二次元平面上に限られることなく、３次元空間上の任意の軌跡でもよいし、直線でなくても曲線でもよい。
【００６９】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び機能の一方又は双方の詳細を実質的に変更できる。
【産業上の利用可能性】
【００７０】
本発明は、直線移動可能なロボット全般に有用である。
【符号の説明】
【００７１】
１  ロボット 
２  制御装置
３  計測治具 
４  距離センサ 
５  目標軌跡 
１０  ベース 
１１  昇降軸 
１２  第１リンク 
１３  第２リンク 
１４  第３リンク 
１５  エンドエフェクタ（ハンド） 
２０  サーボモータ 
２１  演算部 
２２  サーボ制御部 
２３  記憶部 
２４  制御パラメータ設定部 
２５  ぶれ取得部   
２６  判定部   
２７  パラメータ最適化部 
３１，３２  デジタルフィルタ部 
３３，３４  加算器 
４０  速度パラメータ設定部（Ａ軸） 
４１  加速度パラメータ設定部（Ａ軸） 
４２  速度パラメータ設定部（Ａ軸〜Ｂ軸） 
４３  加速度パラメータ設定部（Ａ軸〜Ｂ軸） 
４４  速度パラメータ設定部（Ａ軸） 
４５  加速度パラメータ設定部（Ａ軸） 
５０  モータ制御部（Ａ軸） 
５１  モータ制御部（Ｂ軸） 
１００  ぶれ自動調整システム
【図１】
0006475756.tif 000002
【図２】
0006475756.tif 000003
【図３】
0006475756.tif 000004
【図４】
0006475756.tif 000005
【図５】
0006475756.tif 000006