(57)【要約】【課題】実際の設置位置に設置されるエンドエフェクタ付きのロボットの振動を効率的に低減することができる振動解析装置および振動解析方法を提供する。【解決手段】この振動解析装置は、ロボット１０の先端部によって支持されているエンドエフェクタ３０の振動を測定するセンサ４０と、ロボット１０の振動計算モデルを格納している記憶部と、ロボット１０の振動計算モデルを用いて、センサ４０によって測定された処理対象の振動を、ロボット１０の振動データとエンドエフェクタ３０の振動データとに分離する分離処理を行う制御部２０と、を備えている。【選択図】図１
2019141967.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの先端部によって支持されているエンドエフェクタの振動を測定するセンサと、
前記ロボットの振動計算モデルを格納している記憶部と、
前記ロボットの振動計算モデルを用いて、前記センサによって測定された処理対象の振動を、前記ロボットの振動データと前記エンドエフェクタの振動データとに分離する分離処理を行う制御部と、を備えている振動解析装置。
【請求項２】
前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記ロボットの前記振動計算モデルとを用いて、前記ロボットの前記先端部に生ずる振動を計算し、計算された前記振動を用いて前記分離処理を行う、請求項１に記載の振動解析装置。
【請求項３】
前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記ロボットの前記振動計算モデルと、前記エンドエフェクタの仮に設定された振動計算モデルとを用いて、前記センサによって測定された前記処理対象の振動を、前記ロボットの振動データと前記エンドエフェクタの振動データとに分離する、請求項１に記載の振動解析装置。
【請求項４】
ロボットの振動を測定するセンサと、
前記ロボットの先端部によって支持されているエンドエフェクタの振動計算モデルを格納している記憶部と、
前記エンドエフェクタの振動計算モデルを用いて、前記センサによって測定された処理対象の振動から、前記ロボットの振動データと前記エンドエフェクタの振動データとを計算によって得る分離処理を行う制御部と、を備えている振動解析装置。
【請求項５】
前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記エンドエフェクタの前記振動計算モデルとを用いて、前記エンドエフェクタに生ずる振動を計算し、計算された前記振動を用いて前記分離処理を行う、請求項４に記載の振動解析装置。
【請求項６】
前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記ロボットの仮に設定された前記振動計算モデルと、前記エンドエフェクタの振動計算モデルとを用いて、前記センサによって測定された前記処理対象の振動から、前記ロボットの振動データと前記エンドエフェクタの振動データとを計算によって得る、請求項４に記載の振動解析装置。
【請求項７】
前記ロボットが、前記記憶部に格納されている動作プログラムに基づき所定の動作を行うものであり、
前記制御部が、前記ロボットの振動データおよび前記エンドエフェクタの振動データの少なくとも一方を用いて、前記動作プログラムの再設定又は新たな動作プログラムの設定を行う、請求項１〜６の何れかに記載の振動解析装置。
【請求項８】
ロボットの振動計算モデルと、前記ロボットによって支持されているエンドエフェクタの振動計算モデルとを格納している記憶部と、
制御部とを備え、
前記ロボットおよび前記エンドエフェクタは、前記エンドエフェクタの所定の位置への配置が行われる時に、前記配置の前の前記ロボットの動作に応じて様々な振動が発生するものであり、
前記制御部が、前記ロボットの振動計算モデルおよび前記エンドエフェクタの振動計算モデルを用いて、前記様々な振動の各々について、前記ロボットの振動データと、前記エンドエフェクタの振動データとを計算する振動計算処理と、
前記ロボットの振動および前記エンドエフェクタの振動の少なくとも一方を用いて、前記配置を行うための前記ロボットの動作プログラムを設定又は再設定する動作プログラム設定処理と、を行うように構成されている振動解析装置。
【請求項９】
ロボットの先端部によって支持されているエンドエフェクタの振動を測定するセンサによって実測される振動を制御部が解析する振動解析方法であって、
前記制御部が、記憶部に格納されているロボットの振動計算モデルを用いて、前記センサによって測定された処理対象の振動を、前記ロボットの振動データと前記エンドエフェクタの振動データとに分離する分離処理を行う、振動解析方法。
【請求項１０】
エンドエフェクタが取付けられたロボットの振動を測定するセンサによって実測される振動を制御部が解析する振動解析方法であって、
前記制御部が、記憶部に格納されている前記エンドエフェクタの振動計算モデルを用いて、前記センサによって測定された処理対象の振動から、前記ロボットの振動データと前記エンドエフェクタの振動データとを計算によって得る分離処理を行う、振動解析方法。
【請求項１１】
ロボットおよび前記ロボットによって支持されたエンドエフェクタの振動を制御部が解析する振動解析方法であって、
前記ロボットおよび前記エンドエフェクタは、前記エンドエフェクタの所定の位置への配置が行われる時に、前記配置の前の前記ロボットの動作に応じて様々な振動が発生するものであり、
前記制御部が、前記ロボットの振動計算モデルおよび前記エンドエフェクタの振動計算モデルを用いて、前記様々な振動の各々について、前記ロボットの振動データと、前記エンドエフェクタの振動データとを計算する振動計算処理と、
前記制御部が、前記ロボットの振動データおよび前記エンドエフェクタの振動データの少なくとも一方を用いて、前記配置を行うための前記ロボットの動作プログラムを設定又は再設定する動作プログラム設定処理と、を行う振動解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は振動解析装置および振動解析方法に関する。
【背景技術】
【０００２】
ロボットの高速動作は、タクトタイムの短縮および生産効率の向上に寄与する。一方、ロボットアーム、減速機等の剛性に応じて、ロボットが高速動作を行った時に、ロボットの先端部に振動が生ずる場合がある。
従来、ロボットの動作中にロボットの所定位置の振動を加速度センサによって測定し、測定結果を学習制御に用いることにより、ロボットの振動を低減する方法が知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１６７８１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前記方法では、ロボットの先端部に取付けられたエンドエフェクタのツールセンターポイント（ＴＣＰ）に加速度センサが取付けられることが多い。この場合、加速度センサによって測定される振動は、ロボットの振動とエンドエフェクタの振動を組合せたものとなる。特許文献１の方法は、加速度センサの測定結果として周波数応答データを得る。そして、特許文献１では、得られた周波数応答データを用いて学習コントローラを設計する方法が提案されている。
【０００５】
しかし、周波数応答の測定は時間と手間を要するものであり、ロボットの実際の設置位置において周波数応答を測定することは難しい。このように、実際の設置位置において周波数応答を測定することができないので、代表的なエンドエフェクタを用いて周波数応答の測定が行われ、このように測定された周波数応答のデータが学習コントローラに用いられている。つまり、実際の設置位置においてロボットに他のエンドエフェクタが取付けられた場合でも、学習コントローラは代表的なエンドエフェクタの周波数応答のデータを用いている。
【０００６】
また、近年、サーボガン等のエンドエフェクタの軽量化が行われ、エンドエフェクタの種類も多くなってきている。また、軽量化によりエンドエフェクタの振動が大きくなる傾向がある。このため、代表的なエンドエフェクタの周波数応答に基づいた学習コントローラが機能しない場面が増えている。このような場面では、例えば、振動を除去するために必要な学習回数が多くなる状況、学習制御を行うことによって振動が逆に大きくなる状況等が発生する。
【０００７】
本発明は、前述の事情に鑑みてなされている。本発明の目的の一つは、実際の設置位置に設置されるエンドエフェクタ付きのロボットの振動を効率的に低減することができる振動解析装置および振動解析方法の提供を目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明の第１態様の振動解析装置は、ロボットの先端部によって支持されているエンドエフェクタの振動を測定するセンサと、前記ロボットの振動計算モデルを格納している記憶部と、前記ロボットの振動計算モデルを用いて、前記センサによって測定された処理対象の振動を、前記ロボットの振動データと前記エンドエフェクタの振動データとに分離する分離処理を行う制御部と、を備えている。
【０００９】
第１態様では、記憶部にロボットの振動計算モデルが格納されている。また、制御部は、センサによって測定されたエンドエフェクタの実際の振動を、ロボットの振動計算モデルを用いて、ロボットの振動データとエンドエフェクタの振動データとに分離する。ここで、エンドエフェクタの振動計算モデルはロボットの振動計算モデルに比べて単純である場合が多い。
【００１０】
例えば、エンドエフェクタの振動計算モデルとして１つのバネと１つのマスを有するバネ−マスモデルを用いることができる。バネは３軸方向のバネ定数および３軸周りのバネ定数を有するものであってもよい。バネは所定の減衰係数を有するものであってもよい。このようにエンドエフェクタの振動計算モデルはロボットの振動計算モデルに比べて単純である場合が多いので、前記分離を用いてエンドエフェクタ単独の振動データが得られることよって、エンドエフェクタの振動低減を効率的に行うことが可能となる。
【００１１】
上記態様において、好ましくは、前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記ロボットの前記振動計算モデルとを用いて、前記ロボットの前記先端部に生ずる振動を計算し、計算された前記振動を用いて前記分離処理を行う。
この場合、ロボットの先端部の振動状態を用いて、エンドエフェクタ単独の振動データを得ることができる。このように得られたエンドエフェクタの振動データは、エンドエフェクタの振動低減を効率的に行う上で有用である。
【００１２】
上記態様において、好ましくは、前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記ロボットの前記振動計算モデルと、前記エンドエフェクタの仮に設定された振動計算モデルとを用いて、前記センサによって測定された前記処理対象の振動を、前記ロボットの振動データと前記エンドエフェクタの振動データとに分離する。
この場合、エンドエフェクタ単独の振動データおよびロボット単独の振動データを得ることができる。つまり、エンドエフェクタ単独の振動データおよび／又はロボット単独の振動データを用いて、エンドエフェクタの振動低減を効率的に行うことが可能となる。
【００１３】
本発明の第２態様の振動解析装置は、ロボットの振動を測定するセンサと、前記ロボットの先端部によって支持されているエンドエフェクタの振動計算モデルを格納している記憶部と、前記エンドエフェクタの振動計算モデルを用いて、前記センサによって測定された処理対象の振動から、前記ロボットの振動データと前記エンドエフェクタの振動データとを計算によって得る分離処理を行う制御部と、を備えている。
【００１４】
第２態様では、記憶部にエンドエフェクタの振動計算モデルが格納されている。また、制御部は、センサによって測定されたロボットの先端部の実際の振動から、エンドエフェクタの振動計算モデルを用いて、ロボットの振動データとエンドエフェクタの振動データとを算出する。
【００１５】
ここで、エンドエフェクタの振動計算モデルが既知である。このため、エンドエフェクタを所定の位置に配置する前のロボットの先端部の移動方向、移動の速度、移動の加速度、姿勢等と、エンドエフェクタの振動計算モデルとを用いて、エンドエフェクタ単独の振動を比較的正確に計算することができる。このため、前記分離によって、ロボット単独の振動データも比較的正確に計算することができる。このため、エンドエフェクタの振動低減を効率的に行うことが可能となる。
【００１６】
第２態様において、好ましくは、前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記エンドエフェクタの前記振動計算モデルとを用いて、前記エンドエフェクタに生ずる振動を計算し、計算された前記振動を用いて前記分離処理を行う。
【００１７】
エンドエフェクタの振動計算モデルはロボットの振動計算モデルに比べて単純である場合が多い。このため、エンドエフェクタを所定の位置に配置する前のロボットの先端部の移動方向、移動の速度、移動の加速度、姿勢等と、エンドエフェクタの振動計算モデルとを用いて、エンドエフェクタ単独の振動を比較的正確に計算することができる。
【００１８】
例えば、エンドエフェクタの振動計算モデルとして１つのバネと１つのマスを有するバネ−マスモデルを用いることができる。バネは３軸方向のバネ定数および３軸周りのバネ定数を有するものであってもよい。バネは所定の減衰係数を有するものであってもよい。このようにエンドエフェクタの振動計算モデルはロボットの振動計算モデルに比べて単純である場合が多い。このため、前記分離を用いてエンドエフェクタ単独の振動データが得られることよって、ロボット単独の振動データも比較的正確に計算することができる。このため、エンドエフェクタの振動低減を効率的に行うことが可能となる。
【００１９】
第２態様において、好ましくは、前記制御部が、前記処理対象の振動を発生させる前記ロボットの動作と、前記ロボットの仮に設定された前記振動計算モデルと、前記エンドエフェクタの振動計算モデルとを用いて、前記センサによって測定された前記処理対象の振動から、前記ロボットの振動データと前記エンドエフェクタの振動データとを計算によって得る。
【００２０】
ここで、配線、カバー等の付属品が取付けられていないロボットのモデルは既知であることが多い。例えば、配線、付属品等が取付けられていないロボットのモデルを仮に設定された振動計算モデルとして用いることも可能である。配線および付属品に応じた質量を所定位置に加えたロボットのモデルを振動計算モデルとして用いることも可能である。この場合も、エンドエフェクタ単独の振動データおよびロボット単独の振動データを計算することができる。つまり、エンドエフェクタ単独の振動データおよび／又はロボット単独の振動データを用いて、エンドエフェクタの振動低減を効率的に行うことが可能となる。
【００２１】
第１態様および第２態様において、好ましくは、前記ロボットが、前記記憶部に格納されている動作プログラムに基づき所定の動作を行うものであり、前記制御部が、前記ロボットの振動データおよび前記エンドエフェクタの振動データの少なくとも一方を用いて、前記動作プログラムの再設定又は新たな動作プログラムの設定を行う。
この場合、エンドエフェクタの振動を低減するための動作プログラムの再設定又はエンドエフェクタの振動が小さい新たな動作プログラムの設定が効率的に行われる。
【００２２】
本発明の第３態様の振動解析装置は、ロボットの振動計算モデルと、前記ロボットによって支持されているエンドエフェクタの振動計算モデルとを格納している記憶部と、制御部とを備え、前記ロボットおよび前記エンドエフェクタは、前記エンドエフェクタの所定の位置への配置が行われる時に、前記配置の前の前記ロボットの動作に応じて様々な振動が発生するものであり、前記制御部が、前記ロボットの振動計算モデルおよび前記エンドエフェクタの振動計算モデルを用いて、前記様々な振動の各々について、前記ロボットの振動データと、前記エンドエフェクタの振動データとを計算する振動計算処理と、前記ロボットの振動および前記エンドエフェクタの振動の少なくとも一方を用いて、前記配置を行うための前記ロボットの動作プログラムを設定又は再設定する動作プログラム設定処理と、を行うように構成されている。
【００２３】
第３態様では、記憶部にロボットの振動計算モデルおよびエンドエフェクタの振動計算モデルが格納されている。また、制御部は、所定の位置への配置が行われる時のロボットおよびエンドエフェクタに発生する振動から、ロボットの振動データと、エンドエフェクタの振動データとを計算する。
【００２４】
ここで、ロボットの振動計算モデルが既知である。また、エンドエフェクタの振動計算モデルも既知である。このため、前記配置前のロボットの先端部の移動方向、移動の速度、移動の加速度、姿勢等と、ロボットの振動計算モデルと、エンドエフェクタのモデルとを用いて、ロボット単独の振動およびエンドエフェクタ単独の振動を比較的正確に計算することができる。このため、エンドエフェクタの振動低減を効率的に行うことが可能となる。
【００２５】
本発明の第４態様は、ロボットの先端部によって支持されているエンドエフェクタの振動を測定するセンサによって実測される振動を制御部が解析する振動解析方法であって、前記制御部が、記憶部に格納されているロボットの振動計算モデルを用いて、前記センサによって測定された処理対象の振動を、前記ロボットの振動データと前記エンドエフェクタの振動データとに分離する分離処理を行う。
【００２６】
本発明の第５態様は、エンドエフェクタが取付けられたロボットの振動を測定するセンサによって実測される振動を制御部が解析する振動解析方法であって、前記制御部が、記憶部に格納されている前記エンドエフェクタの振動計算モデルを用いて、前記センサによって測定された処理対象の振動から、前記ロボットの振動データと前記エンドエフェクタの振動データとを計算によって得る分離処理を行う。
【００２７】
本発明の第６態様は、ロボットおよび前記ロボットによって支持されたエンドエフェクタの振動を制御部が解析する振動解析方法であって、前記ロボットおよび前記エンドエフェクタは、前記エンドエフェクタの所定の位置への配置が行われる時に、前記配置の前の前記ロボットの動作に応じて様々な振動が発生するものであり、前記制御部が、前記ロボットの振動計算モデルおよび前記エンドエフェクタの振動計算モデルを用いて、前記様々な振動の各々について、前記ロボットの振動データと、前記エンドエフェクタの振動データとを計算する振動計算処理と、前記制御部が、前記ロボットの振動データおよび前記エンドエフェクタの振動データの少なくとも一方を用いて、前記配置を行うための前記ロボットの動作プログラムを設定又は再設定する動作プログラム設定処理と、を行う。
【発明の効果】
【００２８】
本発明によれば、実際の設置位置に設置されるエンドエフェクタ付きのロボットの振動を効率的に低減することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１実施形態の振動解析装置の概略構成図である。
【図２】第１実施形態の振動解析装置の制御装置のブロック図である。
【図３】第１実施形態の振動解析装置の機能ブロック図である。
【図４】第１実施形態の振動解析装置の制御装置の処理を示すフローチャートである。
【図５】本発明の第２実施形態の振動解析装置の概略構成図である。
【図６】第２実施形態の振動解析装置の制御装置の処理を示すフローチャートである。
【図７】本発明の第３実施形態の振動解析装置の概略構成図である。
【図８】第３実施形態の振動解析装置の制御装置の処理を示すフローチャートである。
【発明を実施するための形態】
【００３０】
本発明の第１実施形態に係る振動解析装置が、図面を用いながら以下説明されている。
本実施形態の振動解析装置は、図１に示されるように、エンドエフェクタ３０の作用部３１の近傍に取付けられた加速度センサ４０と、加速度センサ４０によって実測された振動を解析する制御装置２０とを備えている。エンドエフェクタ３０はロボット１０の先端部に取付けられている。つまり、エンドエフェクタ３０はロボット１０によって支持されている。
【００３１】
加速度センサ４０は、エンドエフェクタ３０の作用部３１の振動を検出するためのセンサである。このようなセンサとして、作用部３１の近傍に取付けられたジャイロセンサ、慣性センサ等を用いることも可能である。また、このようなセンサとして、エンドエフェクタ３０に加わる慣性力を検出する力センサを用いることも可能である。また、このようなセンサとして、作用部３１の振動を視覚的に検出するビジョンシステムを用いることも可能であり、作用部３１の振動を非接触で検出するレーザトラッカー、モーションキャプチャ等を用いることが可能である。なお、作用部３１は、図示しないワークに接触又は近接し、ワークに対し所定の加工を行う部分である。
【００３２】
ロボット１０は、可動部としてのアーム１０ａを備えている。アーム１０ａは、複数のアーム部材および複数の関節を備えている。また、アーム１０ａは、複数の関節をそれぞれ駆動する複数のサーボモータ１１を備えている（図２参照）。各サーボモータ１１として、回転モータ、直動モータ等の各種のサーボモータが用いられ得る。各サーボモータ１１はその作動位置および作動速度を検出するための作動位置検出装置を有し、作動位置検出装置は一例としてエンコーダである。作動位置検出装置の検出値は制御装置２０に送信される。
【００３３】
エンドエフェクタ３０として、周知のエンドエフェクタを用いることが可能である。エンドエフェクタ３０は、例えば、溶接用のサーボガン、ハンド、様々な種類の加工ツールである。エンドエフェクタ３０は、ワーク、機械等に対し所定の作業を行うその他のツールであってもよい。
本実施形態では加速度センサ４０はエンドエフェクタ３０の作用部３１の近傍に取付けられているが、加速度センサ４０がエンドエフェクタ３０のその他の部分に取付けられていてもよい。
【００３４】
制御装置２０は、図２に示されるように、プロセッサ等を有する制御部２１と、表示装置２２と、不揮発性ストレージ、ＲＯＭ、ＲＡＭ等を有する記憶部２３と、キーボード、タッチパネル、操作盤等である入力装置２４と、信号の送受信を行うための送受信部２５とを備えている。入力装置２４および送受信部２５は入力部として機能する。
【００３５】
本実施形態では、制御装置２０はロボット１０の動作を制御するロボット制御装置である。制御装置２０は、ロボット制御装置内に設けられ、上記の構成を有する制御装置であってもよい。また、制御装置２０は、ロボット１０の動作プログラムを作成するためにロボット１０とは別の場所に設けられた教示装置であってもよく、ロボット１０の振動を解析することができるシミュレーション装置であってもよい。制御装置２０が教示装置又はシミュレーション装置である場合、下記ステップＳ１−２は制御装置２０ではなくロボット制御装置が行ってもよい。
【００３６】
記憶部２３にはシステムプログラム２３ａが格納されており、システムプログラム２３ａは振動解析装置の基本機能を担っている。また、記憶部２３には振動解析プログラム２３ｂが格納されている。また、記憶装置２３には、振動シミュレーションモデル２３ｃと、ロボット１０用の動作プログラム２３ｄと、動作プログラム２３ｄの設定および再設定を行う動作設定プログラム２３ｅとが格納されている。動作プログラム２３ｄは、エンドエフェクタ３０を用いた所定の作業を行う際にロボット１０を動作させるための制御指令群である。
【００３７】
本実施形態では、制御部２１が、動作プログラム２３ｄに基づいて、各サーボモータ１１のサーボ制御器１１ａ（図２参照）に制御指令を送信する。これにより、所定の作業を行うために、ロボット１０がエンドエフェクタ３０の位置および姿勢を動作プログラム２３ｄに沿って変化させる。
【００３８】
振動シミュレーションモデル２３ｃは、ワークのモデルと、ワークに対して所定の作業を行うためのエンドエフェクタ３０の仮に設定された振動計算モデルと、エンドエフェクタ１０が先端部に取付けられたロボット１０の振動計算モデルとを有する。ロボット１０の振動計算モデルは、ロボット１０の振動を計算するためのモデルであり、エンドエフェクタ３０の仮に設定された振動計算モデルは、エンドエフェクタ３０の振動を計算するためのモデルである。
【００３９】
ロボット１０の振動計算モデルは、ロボット１０の各部位の剛性、質量、慣性質量等を有するモデルである。エンドエフェクタ３０の仮に設定された振動計算モデルは、エンドエフェクタ３０の各部位の仮に設定された剛性、仮に設定された質量、仮に設定された慣性質量等を有するモデルである。ロボット１０およびエンドエフェクタ３０の振動計算モデルは簡易的なモデルであってもよい。
【００４０】
本実施形態では、振動シミュレーションモデル２３ｃ内のロボット１０の振動計算モデルは、実際のロボット１０に実質的に一致している。つまり、ロボット１０のモデルは既知である。一方、振動シミュレーションモデル２３ｃ内のエンドエフェクタ３０の仮に設定された振動計算モデルは、実際のエンドエフェクタ３０に完全には一致していない。
【００４１】
例えば、ロボットメーカがロボット１０を出荷し、製造メーカがロボット１０にエンドエフェクタ３０を取付ける時に、上記の状況となる。特に、エンドエフェクタ３０の仕様、エンドエフェクタ３０に取付けられる配線等は、製造する製品に応じて変化する。このため、振動シミュレーションモデル２３ｃが実際のエンドエフェクタ３０に完全に一致している振動計算モデルを持っていない場合がある。
【００４２】
前述の状況において、エンドエフェクタ３０の作用部３１の振動を低減するために、制御部２１は、振動解析プログラム２３ｂ、動作プログラム２３ｄ、および動作設定プログラム２３ｅに基づいて、以下の処理を行う。以下の処理は図４のフローチャートに示されている。また、以下の処理に対応する機能ブロック図は図３に示されている。
【００４３】
先ず、制御部２１が、入力装置２４、送受信部２５等を用いて入力される開始信号を受付けると（ステップＳ１−１）、制御部２１は動作プログラム２３ｄに基づいた制御指令を各サーボ制御器１１ａに送信する（ステップＳ１−２）。これにより、ロボット１０が動作プログラム２３ｄに基づいて動作する。この時、周知のロボット制御と同様に、各サーボモータ１１の作動位置検出装置の検出値を用いたフィードバック制御が行われ、各サーボ制御器１１ａからの電流値を用いたフィードバック制御も行われる。以下の説明は、ロボット１０の動作プログラム２３ｄに基づく動作のうちの所定の動作に関して説明されているが、その他の動作についても同様の処理が行われる。
【００４４】
所定の動作は、例えば、エンドエフェクタ３０を所定の位置および姿勢に向かって移動し、エンドエフェクタ３０を前記所定の位置および姿勢に到達させる動作である。このようにエンドエフェクタ３０を配置した時に、ロボット１０およびエンドエフェクタ３０が振動する場合がある。
【００４５】
制御部２１は、振動解析プログラム２３ｂに基づいて、前記配置が行われた時に加速度センサ４０によって実測される振動を分離する（ステップＳ１−３）。具体的に、制御部２１は、加速度センサ４０によって実測される振動を、ロボット１０の振動計算モデルを用いて、ロボット１０の振動データとエンドエフェクタ３０の振動データとに分離する。当該処理は、図３における前処理に対応している。
【００４６】
ロボット１０の振動データは、例えば、ロボット１０の先端部の主な振動の方向、周波数、振幅、加速度等の情報を含む。主な振動が複数の方向の振動を含む場合、ロボット１０の振動データは、複数の方向の振動の各々について、周波数、振幅、加速度等の情報を含む。ロボット１０の振動データは、ロボット１０の他の部分の主な振動の方向、周波数、振幅、加速度等の情報を含むデータであってもよい。
【００４７】
エンドエフェクタ３０の振動データは、例えば、エンドエフェクタ３０の作用部３１の主な振動の方向、周波数、振幅、加速度等の情報を含む。主な振動が複数の方向の振動を含む場合、エンドエフェクタ３０の振動データは、複数の方向の振動の各々について、周波数、振幅、加速度等の情報を含む。エンドエフェクタ３０の振動データは、エンドエフェクタ３０の他の部分の主な振動の方向、周波数、振幅、加速度等の情報を含むデータであってもよい。
【００４８】
ここで、ロボット１０は動作プログラム２３ｄに基づいて動作するので、ロボット１０の所定の動作は既知である。つまり、前記配置の前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等は既知である。ここで述べる配置は、エンドエフェクタ３０を前記所定の位置および姿勢とすることである。また、前記配置前のロボット１０の他の部分の移動方向、移動の速度、移動の加速度、姿勢等も既知である。これらの移動方向、移動の速度、移動の加速度、姿勢等は、加速度センサ４０によって実測される振動、つまり処理対象の振動を発生させるロボット１０の動作を示す。このため、制御部２１は、前記配置が行われた時について、エンドエフェクタ３０が取付けられていないロボット１０の先端部の振動の方向、振幅、加速度、周波数等を計算できる。
【００４９】
また、多くの場合に、ロボット１０の質量および慣性質量は、エンドエフェクタ３０の質量および慣性質量よりも十分に大きい。このため、一例として、制御部２１は、加速度センサ４０によって実測される振動を、エンドエフェクタ３０が取付けられていないロボット１０の先端部の振動に起因するエンドエフェクタ３０の振動とみなすことができる。つまり、ロボット１０の先端部の振動データが計算によって求められ、ロボットの先端部に取付けられたエンドエフェクタ３０の振動データが計算によって求められる。
【００５０】
他の例として、ロボット１０の振動計算モデルの先端部にエンドエフェクタ３０に対応した質量、慣性質量等を設定した状態で、前記配置が行われた時について、ロボット１０の先端部の振動の方向、振幅、加速度、周波数等を計算することができる。この場合も、制御部２１は、加速度センサ４０によって実測される振動を、ロボット１０の先端部の振動に起因するエンドエフェクタ３０の振動とみなすことができる。つまり、ロボット１０の先端部の振動データが計算によって求められ、ロボット１０の先端部に取付けられたエンドエフェクタ３０の振動データが計算によって求められる。
【００５１】
さらに他の例では、ロボット１０の振動計算モデルの先端部にエンドエフェクタ３０の仮に設定された振動計算モデルが取付けられたモデルを設定することができる。エンドエフェクタ３０の仮に設定された振動計算モデルは、周波数応答が既知である代表的なエンドエフェクタの振動計算モデルであってもよい。この場合、制御部２１は、加速度センサ４０によって実測される振動を、ロボット１０の振動計算モデルの先端部に取付けられたエンドエフェクタ３０の仮に設定された振動計算モデルの振動とみなすことができる。つまり、ロボット１０の先端部の振動データが計算によって求められ、ロボット１０の先端部に取付けられたエンドエフェクタ３０の振動データが計算によって求められる。
前記分離のための前述の具体的な計算方法の組合せを用いて、ロボット１０の先端部の振動データおよびエンドエフェクタ３０の振動データを求めることもできる。
【００５２】
続いて、制御部２１は、振動解析プログラム２３ｂに基づいて、前記配置時におけるエンドエフェクタ３０の作用部３１の振動を低減するためのロボット１０の動作を求める（ステップＳ１−４）。ステップＳ１−４を行う際に、制御部２１は、上記のロボット１０の振動データおよびエンドエフェクタ３０の振動データを用いる。なお、ステップＳ１−４を行う際に、制御部２１は、ロボット１０の振動データだけを用いてもよく、エンドエフェクタ３０の振動データだけを用いてもよい。
【００５３】
簡単な例では、ロボット１０の先端部の振動の方向がエンドエフェクタ３０の作用部３１の振動の方向と一致している。この場合、ロボット１０の先端部の振動が無くなる動作が行われると、エンドエフェクタ３０の作用部３１の振動が低減され又は無くなる可能性が高い。ロボット１０の先端部の振動が無くなる動作の一例は、ロボット１０の先端部を所定の配置位置の直前で瞬間的に停止又は減速させ、当該停止又は減速によってロボット１０の先端部に生ずる振動を打ち消すタイミング、速度等を用いて、ロボット１０の先端部を所定の配置位置に移動させる動作である。
【００５４】
複雑な例では、ロボット１０の先端部の振動の方向がエンドエフェクタ３０の作用部３１の振動の方向と異なっている。ロボット１０の先端部の振動の周波数等がエンドエフェクタ３０の作用部３１の振動の周波数等と異なっている場合もある。これらの場合は、所定の配置位置の直前でロボット１０の先端部を瞬間的に停止又は減速させ、当該停止又は減速によってエンドエフェクタ３０の作用部３１に生ずる振動を打ち消すタイミング、速度等を用いて、ロボット１０の先端部を所定の配置位置に移動させる。エンドエフェクタ３０の作用部３１に生ずる振動を低減させるために、周知のＰＩＤ制御を用いてもよい。
【００５５】
続いて、制御部２１は、動作設定プログラム２３ｅに基づいて、ステップＳ１−４によって設定された動作をロボット１０に行わせる制御指令を作成し（ステップＳ１−５）、作成した制御指令を用いて動作プログラム２３ｄを再設定する（ステップＳ１−６）。なおステップＳ１−６において、制御部２１が新たな動作プログラムを設定してもよい。
続いて、制御部２１は、加速度センサ４０の検出値が基準値未満となるまで、ステップＳ１−２〜Ｓ１−６を繰り返す（ステップＳ１−７）。
【００５６】
上記の例では、ステップＳ１−４〜Ｓ１−６の処理は、図３における学習制御に対応している。
なお、記憶部２３に、前記配置の前のロボット１０の動作が異なる複数の動作プログラムが格納されていてもよい。つまり、複数の動作プログラムはロボット１０の前記配置前の動作が互いに異なる。この場合、制御部２１は、ステップＳ１−４を省きながら、ステップＳ１−２〜Ｓ１−６が繰り返される時に、ステップＳ１−２において複数の動作プログラムを順次用いる。
【００５７】
そして、制御部２１は、ステップＳ１−３において、加速度センサ４０によって実測される様々な振動をそれぞれ分離する。また、制御部２１は、ステップＳ１−５において、ステップＳ１−３によって得られる様々なロボット１０の振動データおよび様々なエンドエフェクタ３０の振動データから傾向を得て、前記配置時におけるエンドエフェクタ３０の作用部３１の振動を低減するためのロボット１０の動作を求めてもよい。この時、制御部２１は、様々なロボット１０の振動データだけを用いてもよく、様々なエンドエフェクタ３０の振動データだけを用いてもよい。
【００５８】
このように、本実施形態では、記憶部２３にロボット１０の振動計算モデルが格納されている。また、制御部２１は、加速度センサ４０によって測定されたエンドエフェクタ３０の実際の振動を、ロボット１０の振動計算モデルを用いて、ロボット１０の振動データとエンドエフェクタ３０の振動データとに分離する。ここで、エンドエフェクタ３０の振動計算モデルはロボット１０の振動計算モデルに比べて単純である場合が多い。
【００５９】
例えば、エンドエフェクタ３０の振動計算モデルとして１つのバネと１つのマスを有するバネ−マスモデルを用いることができる。バネは３軸方向のバネ定数および３軸周りのバネ定数を有するものであってもよい。バネは所定の減衰係数を有するものであってもよい。このようにエンドエフェクタ３０の振動計算モデルはロボット１０の振動計算モデルに比べて単純である場合が多いので、前記分離を用いてエンドエフェクタ３０単独の振動データが得られることよって、エンドエフェクタ３０の振動低減を効率的に行うことが可能となる。
【００６０】
また、本実施形態では、制御部２１が、処理対象の振動を発生させるロボット１０の動作と、ロボット１０の振動計算モデルとを用いて、ロボット１０の先端部に生ずる振動を計算し、計算された振動を用いて前記分離を行う。この時、ロボット１０の振動計算モデルを、その先端にエンドエフェクタ３０に対応した質量、慣性質量等を設定した状態で、用いることもできる。この場合、ロボット１０の先端部の振動状態を用いて、エンドエフェクタ３０単独の振動データを得ることができる。このように得られたエンドエフェクタ３０の振動データは、エンドエフェクタ３０の振動低減を効率的に行う上で有用である。
【００６１】
本実施形態の他の例では、制御部２１が、処理対象の振動を発生させるロボット１０の動作と、ロボット１０の振動計算モデルと、エンドエフェクタ３０の仮に設定された振動計算モデルとを用いて、加速度センサ４０によって測定された処理対象の振動を、ロボット１０の振動データとエンドエフェクタ３０の振動データとに分離する。この場合も、エンドエフェクタ３０単独の振動データおよびロボット１０単独の振動データを得ることができる。つまり、エンドエフェクタ３０単独の振動データおよび／又はロボット１０単独の振動データを用いて、エンドエフェクタ３０の振動低減を効率的に行うことが可能となる。
【００６２】
また、本実施形態では、制御部２１が、ロボット１０の振動データおよびエンドエフェクタ３０の振動データの少なくとも一方を用いて、動作プログラム２３ｄの再設定又は新たな動作プログラムの設定を行う。このため、エンドエフェクタ３０の振動を低減するための動作プログラムの再設定又はエンドエフェクタ３０の振動が小さい新たな動作プログラムの設定が効率的に行われる。
【００６３】
本発明の第２実施形態に係る振動解析装置が、図面を用いながら以下説明されている。
第２実施形態において、第１実施形態と同様の構成には同一の符号が付され、第１実施形態と同様の構成および処理の説明は省略されている。また、第２実施形態も、第１実施形態と同様に変形することができる。例えば、加速度センサ４０をビジョンシステム等の他のセンサに変更すること、制御装置２０をシミュレーション装置等に変更すること等が可能である。
【００６４】
第１実施形態では、加速度センサ４０はエンドエフェクタ３０に取付けられていたが、第２実施形態では、図５に示されるように、加速度センサ４０はロボット１０の先端部の振動を測定するものである。加速度センサ４０は例えばロボット１０の先端部に取付けられている。また、第２実施形態では、振動シミュレーションモデル２３ｃは、ワークのモデルと、ワークに対して所定の作業を行うためのエンドエフェクタ３０の振動計算モデルと、エンドエフェクタ３０が先端部に取付けられたロボット１０の仮に設定された振動計算モデルとを有する。
【００６５】
ロボット１０の仮に設定された振動計算モデルは、ロボット１０の各部位の仮に設定された剛性、仮に設定された質量、仮に設定された慣性質量等を有するモデルである。エンドエフェクタ３０の振動計算モデルは、エンドエフェクタ３０の各部位の剛性、質量、慣性質量等を有するモデルである。ロボット１０およびエンドエフェクタ３０の振動計算モデルは簡易的なモデルであってもよい。
【００６６】
第２実施形態では、振動シミュレーションモデル２３ｃ内のエンドエフェクタ３０の振動計算モデルは、実際のエンドエフェクタ３０に実質的に一致している。つまり、エンドエフェクタ３０のモデルは既知である。一方、振動シミュレーションモデル２３ｃ内のロボット１０の仮に設定された振動計算モデルは、実際に設置されたロボット１０に完全には一致していない。
【００６７】
例えば、ロボットメーカがロボット１０を出荷し、製造メーカがロボット１０を設置する時に、上記の状況となる。特に、ロボット１０のアーム１０ａの外周面によって各種の配線が支持される場合、ロボット１０のアーム１０ａ内に各種の配線が支持される場合、ロボット１０に防塵、汚れ防止、防爆等の目的でカバーが取付けられる場合等に、上記の状態となる。ロボット１０の付属品の仕様、ロボット１０に取付けられる配線等は、製造する製品に応じて変化する。このため、振動シミュレーションモデル２３ｃが実際に設置されたロボット１０に完全に一致している振動計算モデルを持っていない場合がある。
【００６８】
前述の状況において、エンドエフェクタ３０の作用部３１の振動を低減するために、制御部２１は、振動解析プログラム２３ｂ、動作プログラム２３ｄ、および動作設定プログラム２３ｅに基づいて、以下の処理を行う。以下の処理は図６のフローチャートに示されている。
【００６９】
先ず、制御部２１が、入力装置２４、送受信部２５等を用いて入力される開始信号を受付けると（ステップＳ２−１）、制御部２１は動作プログラム２３ｄに基づいた制御指令を各サーボ制御器１１ａに送信する（ステップＳ２−２）。これにより、ロボット１０が動作プログラム２３ｄに基づいて動作する。以下の説明は、ロボット１０の動作プログラム２３ｄに基づく動作のうちの所定の動作に関して説明されているが、その他の動作についても同様の処理が行われる。
【００７０】
所定の動作は、例えば、エンドエフェクタ３０を所定の位置および姿勢に向かって移動し、エンドエフェクタ３０を前記所定の位置および姿勢に到達させる動作である。このようにエンドエフェクタ３０を配置した時に、ロボット１０およびエンドエフェクタ３０が振動する。
【００７１】
制御部２１は、振動解析プログラム２３ｂに基づいて、前記配置が行われた時に加速度センサ４０によって実測される振動の分離処理を行う（ステップＳ２−３）。具体的に、制御部２１は、加速度センサ４０によって実測される振動から、エンドエフェクタ３０の振動計算モデルを用いて、ロボット１０の振動データとエンドエフェクタ３０の振動データとを計算する。
【００７２】
ここで、ロボット１０は動作プログラム２３ｄに基づいて動作するので、ロボット１０の所定の動作は既知である。つまり、前記配置前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等は既知である。前記移動方向、移動の速度、移動の加速度、姿勢等は、加速度センサ４０によって実測される振動、つまり処理対象の振動を発生させるロボット１０の動作を示す。このため、制御部２１は、前記配置が行われた時について、前記配置前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等に基づくエンドエフェクタ３０の作用部３１等の振動の方向、振幅、加速度、周波数等を計算できる。
【００７３】
ここで、加速度センサ４０によって実測される振動を、前記計算により求められるエンドエフェクタ３０の振動とロボット１０の振動とが影響している振動であるとみなすことができる。つまり、加速度センサ４０によって実測される振動は、エンドエフェクタ３０が取付けられていないロボット１０の先端部の振動ではなく、ロボット１０の先端部の振動がエンドエフェクタ３０の振動により変化した振動であるとみなせる。このため、エンドエフェクタ３０の振動データを用いることによって、当該振動が生じている時にエンドエフェクタ３０からロボット１０の先端部に加わる振動入力がわかる。即ち、エンドエフェクタ３０が取付けられていないロボット１０の先端部の振動データ等が計算によって求められる。当該振動データが、前述のロボット１０の振動データとして用いられ得る。
【００７４】
他の例として、ロボット１０の仮に設定された振動計算モデルの先端部にエンドエフェクタ３０の振動計算モデルが取付けられたモデルを設定することができる。この場合、制御部２１は、加速度センサ４０によって実測される振動を、ロボット１０の仮に設定された振動計算モデルの先端部に取付けられたエンドエフェクタ３０の振動計算モデルの振動とみなすことができる。つまり、エンドエフェクタ３０が取付けられていないロボット１０の先端部の振動データ振動データ等が計算によって求められる。当該振動データが、前述のロボット１０の振動データとして用いられ得る。また、ロボットの先端部に取付けられたエンドエフェクタ３０の振動データも計算によって求められる。
前記分離のための前述の具体的な計算方法の組合せを用いて、ロボット１０の振動データおよびエンドエフェクタ３０の振動データを求めることもできる。
【００７５】
続いて、制御部２１は、振動解析プログラム２３ｂに基づいて、前記配置時におけるエンドエフェクタ３０の作用部３１の振動を低減するためのロボット１０の動作を求める（ステップＳ２−４）。ステップＳ２−４を行う際に、制御部２１は、上記のロボット１０の振動データおよびエンドエフェクタ３０の振動データを用いる。なお、ステップＳ２−４を行う際に、制御部２１は、ロボット１０の振動データだけを用いてもよく、エンドエフェクタ３０の振動データだけを用いてもよい。
【００７６】
続いて、制御部２１は、動作設定プログラム２３ｅに基づいて、ステップＳ２−４によって設定された動作をロボット１０に行わせる制御指令を作成し（ステップＳ２−５）、作成した制御指令を用いて動作プログラム２３ｄを再設定する（ステップＳ２−６）。なおステップＳ２−６において、制御部２１が新たな動作プログラムを設定してもよい。
続いて、制御部２１は、加速度センサ４０の検出値が基準値未満となるまで、ステップＳ２−２〜Ｓ２−６を繰り返す（ステップＳ２−７）。
【００７７】
上記の例では、ステップＳ２−４〜Ｓ２−６の処理は、図３における学習制御に対応している。
なお、記憶部２３に、前記配置の前のロボット１０の動作が異なる複数の動作プログラムが格納されていてもよい。つまり、複数の動作プログラムはロボット１０の前記配置前の動作が互いに異なる。この場合、制御部２１は、ステップＳ２−４を省きながら、ステップＳ２−２〜Ｓ２−６が繰り返される時に、ステップＳ２−２において複数の動作プログラムを順次用いる。
【００７８】
そして、制御部２１は、ステップＳ２−３において、加速度センサ４０によって実測される様々な振動をそれぞれ分離する。また、制御部２１は、ステップＳ２−５において、ステップＳ２−３によって得られる様々なロボット１０の振動データおよび様々なエンドエフェクタ３０の振動データから傾向を得て、前記配置時におけるエンドエフェクタ３０の作用部３１の振動を低減するためのロボット１０の動作を求めてもよい。この時、制御部２１は、様々なロボット１０の振動データだけを用いてもよく、様々なエンドエフェクタ３０の振動データだけを用いてもよい。
【００７９】
このように、第２実施形態では、記憶部２３にエンドエフェクタ３０の振動計算モデルが格納されている。また、制御部２１は、加速度センサ４０によって測定されたロボット１０の先端部の実際の振動から、エンドエフェクタ３０の振動計算モデルを用いて、ロボット１０の振動データとエンドエフェクタ３０の振動データとを算出する。
【００８０】
ここで、エンドエフェクタ３０の振動計算モデルが既知である。このため、前記配置前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等と、エンドエフェクタ３０の振動計算モデルとを用いて、エンドエフェクタ３０単独の振動を比較的正確に計算することができる。このため、前記分離によって、例えばエンドエフェクタ３０が取付けられていない状態のロボット１０の振動データも比較的正確に計算できる。このため、エンドエフェクタ３０の振動低減を効率的に行うことが可能となる。
【００８１】
また、第２実施形態では、制御部２１が、処理対象の振動を発生させる前記ロボット１０の動作と、エンドエフェクタ３０の振動計算モデルとを用いて、エンドエフェクタ３０に生ずる振動を計算し、計算された振動を用いて前記分離を行う。
エンドエフェクタ３０の振動計算モデルはロボット１０の振動計算モデルに比べて単純である場合が多い。このため、前記配置前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等と、エンドエフェクタ３０の振動計算モデルとを用いて、エンドエフェクタ３０単独の振動を比較的正確に計算することができる。
【００８２】
例えば、エンドエフェクタ３０の振動計算モデルとして１つのバネと１つのマスを有するバネ−マスモデルを用いることができる。バネは３軸方向のバネ定数および３軸周りのバネ定数を有するものであってもよい。バネは所定の減衰係数を有するものであってもよい。このようにエンドエフェクタ３０の振動計算モデルはロボット１０の振動計算モデルに比べて単純である場合が多い。このため、前記分離を用いてエンドエフェクタ３０単独の振動データが得られることよって、ロボット１０単独の振動データも比較的正確に計算できる。このため、エンドエフェクタ３０の振動低減を効率的に行うことが可能となる。
【００８３】
第２実施形態の他の例では、制御部２１が、処理対象の振動を発生させるロボット１０の動作と、ロボット１０の仮に設定された振動計算モデルと、エンドエフェクタ３０の振動計算モデルとを用いて、加速度センサ４０によって測定された処理対象の振動を、ロボット１０の振動データとエンドエフェクタ３０の振動データとを計算によって得る。
【００８４】
ここで、配線、カバー等の付属品が取付けられていないロボット１０のモデルは既知であることが多い。例えば、配線、付属品等が取付けられていないロボット１０のモデルを仮に設定された振動計算モデルとして用いることも可能である。配線および付属品に応じた質量を所定位置に加えたロボット１０のモデルを振動計算モデルとして用いることも可能である。この場合も、エンドエフェクタ３０単独の振動データおよびロボット１０単独の振動データを計算することができる。つまり、エンドエフェクタ３０単独の振動データおよび／又はロボット１０単独の振動データを用いて、エンドエフェクタ３０の振動低減を効率的に行うことが可能となる。
【００８５】
また、第２実施形態では、制御部２１が、ロボット１０の振動データおよびエンドエフェクタ３０の振動データの少なくとも一方を用いて、動作プログラム２３ｄの再設定又は新たな動作プログラムの設定を行う。このため、エンドエフェクタ３０の振動を低減するための動作プログラムの再設定又はエンドエフェクタ３０の振動が小さい新たな動作プログラムの設定が効率的に行われる。
【００８６】
本発明の第３実施形態に係る振動解析装置が、図面を用いながら以下説明されている。
第３実施形態において、第１実施形態と同様の構成には同一の符号が付され、第１実施形態と同様の構成および処理の説明は省略されている。また、第３実施形態も、第１実施形態と同様に変形することができる。例えば、制御装置２０をシミュレーション装置等に変更すること等が可能である。
【００８７】
第１実施形態では加速度センサ４０が用いられているが、図７に示されるように、第３実施形態では加速度センサ４０は用いられない。また、第３実施形態では、振動シミュレーションモデル２３ｃは、ワークのモデルと、ワークに対して所定の作業を行うためのエンドエフェクタ３０の振動計算モデルと、エンドエフェクタ３０が先端部に取付けられたロボット１０の振動計算モデルとを有する。
【００８８】
ロボット１０の振動計算モデルは、ロボット１０の各部位の剛性、質量、慣性質量等を有するモデルである。エンドエフェクタ３０の振動計算モデルは、エンドエフェクタ３０の各部位の剛性、質量、慣性質量等を有するモデルである。ロボット１０およびエンドエフェクタ３０の振動計算モデルは簡易的なモデルであってもよい。
【００８９】
第３実施形態では、振動シミュレーションモデル２３ｃ内のロボット１０の振動計算モデルは、実際のロボット１０に実質的に一致している。つまり、ロボット１０のモデルは既知である。ロボット１０の振動計算モデルには、ロボット１０の付属品の仕様、ロボット１０に取付けられる配線等により変化するパラメータも含まれている。また、振動シミュレーションモデル２３ｃ内のエンドエフェクタ３０の振動計算モデルは、実際のエンドエフェクタ３０に実質的に一致している。つまり、エンドエフェクタ３０のモデルも既知である。
【００９０】
前述の状況において、エンドエフェクタ３０の作用部３１の振動を低減するために、制御部２１は、振動解析プログラム２３ｂ、動作プログラム２３ｄ、および動作設定プログラム２３ｅに基づいて、以下の処理を行う。以下の処理は図８のフローチャートに示されている。
【００９１】
先ず、制御部２１が、入力装置２４、送受信部２５等を用いて入力される開始信号を受付けると（ステップＳ３−１）、制御部２１は動作プログラム２３ｄに基づいて、振動シミュレーションモデル２３ｃ内においてロボット１０を動作させる（ステップＳ３−２）。これにより、振動シミュレーションモデル２３ｃ内において、ロボット１０が動作プログラム２３ｄに基づいて動作する。以下の説明は、ロボット１０の動作プログラム２３ｄに基づく動作のうちの所定の動作に関して説明されているが、その他の動作についても同様の処理が行われる。
【００９２】
所定の動作は、例えば、エンドエフェクタ３０を所定の位置および姿勢に向かって移動し、エンドエフェクタ３０を前記所定の位置および姿勢に到達させる動作である。このようにエンドエフェクタ３０を配置した時に、ロボット１０およびエンドエフェクタ３０が振動する。
【００９３】
制御部２１は、振動解析プログラム２３ｂに基づいて、前記配置が行われた時に振動シミュレーションモデル２３ｃ内のロボット１０およびエンドエフェクタ３０に発生する振動から、ロボット１０の振動データと、エンドエフェクタ１０の振動データとを計算する（ステップＳ３−３；振動計算処理）。具体的に、制御部２１は、ロボット１０の振動計算モデルおよびエンドエフェクタ３０の振動計算モデルを用いて、ロボット１０の振動データとエンドエフェクタ３０の振動データとを求める。
【００９４】
ここで、ロボット１０は動作プログラム２３ｄに基づいて動作するので、ロボット１０の所定の動作は既知である。つまり、前記配置前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等は既知である。前記移動方向、移動の速度、移動の加速度、姿勢等は、ロボット１０およびエンドエフェクタ３０の振動、つまり処理対象の振動を発生させるロボット１０の動作を示す。
【００９５】
このため、制御部２１は、前記配置が行われた時について、エンドエフェクタ３０の作用部３１の振動の方向、振幅、加速度、周波数等を計算できる。また、制御部２１は、前記配置が行われた時について、ロボット１０の先端部の振動の方向、振幅、加速度、周波数等を計算できる。つまり、ロボット１０の先端部の振動データが計算によって求められ、ロボットの先端部に取付けられたエンドエフェクタ３０の振動データが計算によって求められる。
【００９６】
続いて、制御部２１は、振動解析プログラム２３ｂに基づいて、前記配置時におけるエンドエフェクタ３０の作用部３１の振動を低減するためのロボット１０の動作を求める（ステップＳ３−４）。ステップＳ３−４を行う際に、制御部２１は、上記のロボット１０の振動データおよびエンドエフェクタ３０の振動データを用いる。なお、ステップＳ３−４を行う際に、制御部２１は、ロボット１０の振動データだけを用いてもよく、エンドエフェクタ３０の振動データだけを用いてもよい。
【００９７】
続いて、制御部２１は、動作設定プログラム２３ｅに基づいて、ステップＳ３−４によって設定された動作をロボット１０に行わせる制御指令を作成し（ステップＳ３−５）、作成した制御指令を用いて動作プログラム２３ｄを再設定する（ステップＳ３−６）。なおステップＳ３−６において、制御部２１が新たな動作プログラムを設定してもよい。
続いて、制御部２１は、エンドエフェクタ３０の作用部３１の振動が基準値未満となるまで、ステップＳ３−２〜Ｓ３−６を繰り返す（ステップＳ３−７）。
【００９８】
上記の例では、ステップＳ３−４〜Ｓ３−６の処理は、図３における学習制御に対応しており、動作プログラム設定処理とも言える。
なお、記憶部２３に、前記配置の前のロボット１０の動作が異なる複数の動作プログラムが格納されていてもよい。つまり、複数の動作プログラムはロボット１０の前記配置前の動作が互いに異なる。この場合、制御部２１は、ステップＳ３−４を省きながら、ステップＳ３−２〜Ｓ３−６が繰り返される時に、ステップＳ３−２において複数の動作プログラムを順次用いる。
【００９９】
そして、制御部２１は、ステップＳ３−３において、ロボット１０の様々な振動データと、エンドエフェクタ１０の様々な振動データとを計算する。また、制御部２１は、ステップＳ３−５において、ステップＳ３−３によって得られる様々なロボット１０の振動データおよび様々なエンドエフェクタ３０の振動データから傾向を得て、前記配置時におけるエンドエフェクタ３０の作用部３１の振動を低減するためのロボット１０の動作を求めてもよい。この時、制御部２１は、様々なロボット１０の振動データだけを用いてもよく、様々なエンドエフェクタ３０の振動データだけを用いてもよい。
【０１００】
このように、第３実施形態では、記憶部２３にロボット１０の振動計算モデルおよびエンドエフェクタ３０の振動計算モデルが格納されている。また、制御部２１は、振動シミュレーションモデル２３ｃ内のロボット１０およびエンドエフェクタ３０に発生する振動から、ロボット１０の振動データと、エンドエフェクタ１０の振動データとを計算する。
【０１０１】
ここで、ロボット１０の振動計算モデルが既知である。また、エンドエフェクタ３０の振動計算モデルも既知である。このため、前記配置前のロボット１０の先端部の移動方向、移動の速度、移動の加速度、姿勢等と、ロボット１０の振動計算モデルと、エンドエフェクタ３０のモデルとを用いて、ロボット１０単独の振動およびエンドエフェクタ３０単独の振動を比較的正確に計算することができる。このため、エンドエフェクタ３０の振動低減を効率的に行うことが可能となる。
【０１０２】
なお、図１、図５、および図７では、ロボット１０は垂直多関節ロボットであるが、ロボット１０が水平多関節ロボット又は他のタイプのロボットであってもよい。この場合でも前述と同様の効果が達成される。
【符号の説明】
【０１０３】
１０  ロボット
１０ａ  アーム
１１  サーボモータ
１１ａ  サーボ制御器
２０  制御装置
２１  制御部
２２  表示装置
２３  記憶部
２３ａ  システムプログラム
２３ｂ  振動解析プログラム
２３ｃ  振動シミュレーションモデル
２３ｄ  動作プログラム
２３ｅ  動作設定プログラム
２４  入力装置
２５  送受信部
３０  エンドエフェクタ
３１  作用部
４０  加速度センサ
【図１】
2019141967.tif 000003
【図２】
2019141967.tif 000004
【図３】
2019141967.tif 000005
【図４】
2019141967.tif 000006
【図５】
2019141967.tif 000007
【図６】
2019141967.tif 000008
【図７】
2019141967.tif 000009
【図８】
2019141967.tif 000010