(57)【特許請求の範囲】
【請求項１】
ロボット駆動用のモータを制御するロボット制御装置と、
前記ロボット制御装置と通信するプログラム修正装置とを備えるロボットプログラム修正システムであって、
前記ロボット制御装置は、
ロボットの教示点における指令速度および指令加速度を含む動作プログラムを実行し、前記モータの速度および電流値を含む、前記ロボットから得られるロボット検出情報を取得する情報取得部と、
前記情報取得部で取得されたロボット検出情報を前記プログラム修正装置に送信する第１通信部と、を有し、
前記プログラム修正装置は、
前記動作プログラムに基づきシミュレーションを実行するシミュレーション部と、
前記第１通信部により送信された前記ロボット検出情報に含まれる前記モータの電流値に基づき、前記シミュレーション部によって算出された前記モータの電流値を補正する補正部と、
前記シミュレーション部でシミュレーションを繰り返しながら、シミュレーションの結果が予め定めた評価基準を満たすように、前記第１通信部より送信されたロボット検出情報および前記補正部で補正された電流値に基づき前記動作プログラムを修正するプログラム修正部と、
前記プログラム修正部によって修正された修正動作プログラムを前記ロボット制御装置に送信する第２通信部と、を有することを特徴とするロボットプログラム修正システム。
【請求項２】
請求項１に記載のロボットプログラム修正システムにおいて、
前記シミュレーション部は、前記第１通信部により送信された前記ロボット検出情報に含まれる前記モータの速度および電流値が予め定められた許容値以内にあることを条件として、前記動作プログラムに基づきシミュレーションを実行することを特徴とするロボットプログラム修正システム。
【請求項３】
請求項１または２に記載のロボットプログラム修正システムにおいて、
前記プログラム修正装置は、前記修正動作プログラムに基づきシミュレーションを実行し、シミュレーションの結果から前記修正動作プログラムの有効性を評価する修正評価部をさらに有し、
前記第２通信部は、さらに前記修正評価部による評価結果を前記ロボット制御装置に送信することを特徴とするロボットプログラム修正システム。
【請求項４】
請求項１から３のいずれか１項に記載のロボットプログラム修正システムにおいて、
前記ロボット制御装置は、
前記動作プログラムの更新の許可または禁止を指令する更新許可指令部と、
前記更新許可指令部により前記動作プログラムの更新が許可されているとき、前記第２通信部から送信された前記修正動作プログラムにより前記動作プログラムを更新するプログラム更新部と、をさらに有することを特徴とするロボットプログラム修正システム。
【請求項５】
請求項１から４のいずれか１項に記載のロボットプログラム修正システムにおいて、
前記プログラム修正部は、前記動作プログラムのサイクルタイムが最短となるように前記動作プログラムを修正することを特徴とするロボットプログラム修正システム。
【請求項６】
請求項１から５のいずれか１項に記載のロボットプログラム修正システムにおいて、
前記プログラム修正装置は、前記第１通信部および前記第２通信部を介して前記ロボット制御装置から前記動作プログラムを取得し、
前記シミュレーション部は、取得した動作プログラムに基づきシミュレーションを実行することを特徴とするロボットプログラム修正システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作プログラムを修正するロボットプログラム修正システムに関する。
【背景技術】
【０００２】
従来、ロボットプログラムを修正する装置として、サーボモータの負荷が許容範囲内においてロボットのサイクルタイムが最小となるように、サーボモータに対する指令速度及び指令加速度を修正するようにした装置が知られている（例えば特許文献１参照）。この特許文献１記載の装置は、オフラインで作成された動作プログラムをオフラインで修正するものであり、ロボットの動作プログラムに基づきシミュレーションを実行してサーボモータの負荷トルクを算出し、この負荷トルクに基づきプログラムの指令速度および指令加速度を修正する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−５４９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１記載の装置は、オフラインでシミュレーションを行うため、モータ負荷の判定等を精度よく行うことができず、プログラムを高精度に修正することが困難である。
【課題を解決するための手段】
【０００５】
本発明の一態様であるロボットプログラム修正システムは、ロボット駆動用のモータを制御するロボット制御装置と、ロボット制御装置と通信するプログラム修正装置とを備える。ロボット制御装置は、ロボットの教示点における指令速度および指令加速度を含む動作プログラムを実行し、モータの速度および電流値を含む、ロボットから得られるロボット検出情報を取得する情報取得部と、情報取得部で取得されたロボット検出情報をプログラム修正装置に送信する第１通信部と、を有し、プログラム修正装置は、動作プログラムに基づきシミュレーションを実行するシミュレーション部と、第１通信部により送信されたロボット検出情報に含まれるモータの電流値に基づき、シミュレーション部によって算出されたモータの電流値を補正する補正部と、シミュレーション部でシミュレーションを繰り返しながら、シミュレーションの結果が予め定めた評価基準を満たすように、第１通信部より送信されたロボット検出情報および補正部で補正された電流値に基づき動作プログラムを修正するプログラム修正部と、プログラム修正部によって修正された修正動作プログラムをロボット制御装置に送信する第２通信部と、を有する。
【発明の効果】
【０００６】
本発明によれば、プログラム修正装置が、動作プログラムに基づきシミュレーションを行いながら、ロボット制御装置で取得されたロボット検出情報を用いて、予め定めた評価パラメータが所定の評価基準を満たすように動作プログラムを修正するので、動作プログラムを精度よく修正することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係るロボットプログラム修正システムの概略構成を示す図。
【図２】図１のロボット制御装置およびプログラム修正装置の構成を示すブロック図。
【図３】図１のロボット制御装置およびプログラム修正装置で実行される処理の一例を示すフローチャート。
【図４】図３の処理の一部を具体的に示すフローチャート。
【図５】図４の変形例を示すフローチャート。
【図６】図４のさらなる変形例を示すブローチャート。
【図７】図３の変形例を示すフローチャート。
【図８】図２のプログラム修正装置の変形例を示すブロック図。
【図９】図８のプログラム修正装置で実行される処理の一例を示すフローチャート。
【図１０】図２のプログラム修正装置のさらなる変形例を示すブロック図。
【図１１】図１０のプログラム修正装置で実行される処理の一例を示すフローチャート。
【図１２】図２のロボット制御装置の変形例を示すブロック図。
【図１３】図２のプログラム修正装置の変形例を示すブロック図。
【発明を実施するための形態】
【０００８】
以下、図１〜図１３を参照して本発明の実施形態について説明する。図１は、本発明の実施形態に係るロボットプログラム修正システム１００の概略構成を示す図である。ロボットプログラム修正システム１００は、動作プログラムＰＲに従いロボット１を制御するロボット制御装置１０と、ロボット制御装置１０と通信し、動作プログラムＰＲを修正するプログラム修正装置２０とを備える。
【０００９】
図１に示すロボット１は、多関節型の産業用ロボットであり、アーム先端部に把持部２が設けられ、把持部２によりワークを把持し、搬送することができる。ロボット１は、複数の駆動軸を有し、各駆動軸はサーボモータ（各軸モータ）により駆動される。ロボット制御装置１０には、教示操作盤３が接続され、ユーザは教示操作盤３の操作によりロボット１の動作を教示することができる。
【００１０】
本実施形態では、プログラム修正装置２０が、ロボット制御装置１０から動作プログラムＰＲを取得して動作プログラムＰＲに基づきシミュレーションを行う。さらに、ロボット制御装置１０から取得したサーボモータの速度や電流値等のロボット検出情報に基づき動作プログラムＰＲを修正する。すなわち、ロボット１を実際に動作させ、オフラインではなくオンラインで動作プログラムＰＲを修正する。
【００１１】
図２は、図１のロボット制御装置１０およびプログラム修正装置２０の構成を示すブロック図である。ロボット制御装置１０およびプログラム修正装置２０は、それぞれＣＰＵ，ＲＯＭ，ＲＡＭ，その他の周辺回路などを有する演算処理装置を含んで構成されるコンピュータを有する。ロボット制御装置１０は、機能的構成としてロボット制御部１１と、情報取得部１２と、通信部１３と、プログラム更新部１４とを有する。プログラム修正装置２０は、機能的構成としてシミュレーション部２１と、プログラム修正部２２と、通信部２３とを有する。
【００１２】
ロボット制御部１１は、予め記憶された動作プログラムＰＲに従いサーボモータに制御信号を出力し、ロボット１の動きを制御する。動作プログラムＰＲは、教示操作盤３により教示された教示点における指令速度および指令加速度を含む。
【００１３】
情報取得部１２は、ロボット１に設けられた各種検出器からの信号およびロボット制御部１１から出力された制御信号等に基づき、ロボット検出情報を取得する。ロボット検出情報は、ロボット１の動作に伴い変化するロボット１の動作状態を表す物理量を含む。一例として、ロボット検出情報は、各軸モータの速度および電流値を含む。モータ速度は、例えば各サーボモータに設けられたロータリーエンコーダからの信号により得られる。電流値は、例えばサーボアンプからサーボモータに供給される電流を電流計によって検出することにより得られる。情報取得部１２で取得したロボット検出情報は、一旦、ロボット制御装置１０の記憶部に記憶される。
【００１４】
通信部１３は、プログラム修正装置２０に信号を送信する送信部と、プログラム修正装置２０から信号を受信する受信部とを有する。ロボット制御装置１０とプログラム修正装置２０とは、通信部１３，２３を介して有線で接続されている。なお、両者を無線で接続することもできる。情報取得部１２により取得され、記憶部に記憶されたロボット検出情報は、通信部１３（送信部）からプログラム修正装置２０に送信される。なお、情報取得部１２により取得されたロボット検出情報を、記憶部に記憶せずにそのまま通信部１３を介して送信することもできる。さらに通信部１３は、動作プログラムＰＲ等のロボット構成情報をプログラム修正装置２０に送信する。ロボット構成情報は、動作プログラムＰＲの他、ロボット１の状態を表す変数や各種パラメータを含むロボット固有の情報である。
【００１５】
通信部１３は、動作プログラムＰＲの修正に用いる各種情報もプログラム修正装置２０に送信する。この情報は、動作プログラムＰＲの修正の基準となる評価基準を含み、評価基準は教示操作盤３を介してユーザが入力することができる。評価基準は、動作プログラムＰＲのサイクルタイム、各軸モータの温度、平均電流、最大電流、最大速度、消費電力、サーボモータに連結された減速機の寿命などのパラメータにより定めることができる。ユーザは、プログラム修正のために、これらパラメータのいずれか１つまたは複数を選択し、評価基準を指定する。例えば、サイクルタイムの許容時間、モータ温度の許容値、減速機の目標寿命、消費電力の許容値等を評価基準として指定する。サイクルタイムを最短とすることを、評価基準として指定することもできる。プログラム修正に用いる評価基準を、ユーザが指定せずに、予めロボット制御装置１０またはプログラム修正装置２０に設定しておくこともできる。
【００１６】
プログラム更新部１４は、通信部１３を介してプログラム修正装置２０から修正後の動作プログラムＰＲ１を受信し、動作プログラムＰＲを更新する。プログラム更新部１４におけるプログラム更新処理の許可または禁止を、教示操作盤３の操作によりユーザが指令することもできる。
【００１７】
シミュレーション部２１は、ロボット制御装置１０の通信部１３から送信された動作プログラムＰＲに基づきシミュレーションを実行する。シミュレーションは、通信部１３より送信されたロボット構成情報を用いて実行する。このシミュレーションによりロボット１の各部の動作情報、すなわち各プログラム行に対応したロボット１の各部の位置、速度、加速度や、サーボモータの負荷、消費電力、サイクルタイム等を取得できる。なお、シミュレーション結果は、プログラム修正装置２０に設けられた表示部上に表示することができる。
【００１８】
プログラム修正部２２は、シミュレーション部２１でシミュレーションを繰り返しながら、シミュレーションの結果がロボット制御装置１０で指定された評価基準を満たすように、ロボット検出情報（各軸モータの速度、電流値等）に基づき動作プログラムＰＲを修正する。例えば、評価基準としてサイクルタイムが指定されると、プログラム修正部２２は、ロボット制御装置１０から得られた各軸モータの速度、電流値等を用いてサイクルタイムが最短となるように、動作プログラムＰＲの教示点における指令速度および指令加速度を修正する。
【００１９】
通信部２３は、ロボット制御装置１０に信号を送信する送信部と、ロボット制御装置１０から信号を受信する受信部とを有する。プログラム修正部２２により修正された動作プログラム（修正動作プログラムＰＲ１）は、通信部２３（送信部）からプログラム修正装置２０に送信される。なお、修正動作プログラムＰＲ１をプログラム修正装置２０の記憶部に一旦記憶した後、この記憶された修正動作プログラムＰＲ１を、通信部２３を介して送信してもよい。動作プログラムＰＲの修正箇所のみをロボット制御装置１０に送信してもよい。この場合、ロボット制御装置（プログラム更新部１４）は、動作プログラムＰＲの一部を修正することで動作プログラムＰＲを更新すればよい。
【００２０】
図３は、ロボット制御装置１０およびプログラム修正装置２０で実行される処理の一例を示すフローチャートである。このフローチャートに示す処理は、例えば教示操作盤３によりプログラム修正指令が入力される開始される。ステップＳ１では、ロボット制御装置１０とプログラム修正装置２０とが互いに通信を開始する。
【００２１】
ステップＳ２では、ロボット制御部１１が予め定められた動作プログラムＰＲに従いサーボモータに制御信号を出力するとともに（プログラムを実行）、情報取得部１２が所定時間時間毎にロボット検出情報（各軸モータの速度および電流値）を取得し、取得したロボット検出情報を時系列で記憶部に記憶する。
【００２２】
ステップＳ３では、ステップＳ２で記憶したロボット検出情報および予め記憶されたロボット構成情報（動作プログラムＰＲ等）を、通信部１３を介してプログラム修正装置２０に送信する。
【００２３】
ステップＳ４では、予め教示操作盤３を介して入力された評価基準を読み込み、この評価基準を、通信部１３を介してプログラム修正装置２０に送信する。
【００２４】
ステップＳ５では、ステップＳ３でロボット制御装置１０から送信されたロボット構成情報（動作プログラムＰＲ等）に基づき、プログラム修正装置２０のシミュレーション部２１がシミュレーションを繰り返し実行する。
【００２５】
ステップＳ６では、ステップＳ４でロボット制御装置１０から送信された評価基準に基づき、プログラム修正装置２０のプログラム修正部２１が動作プログラムＰＲを修正する。すなわち、ステップＳ５のシミュレーションの結果が評価基準を満たすように動作プログラムＰＲを修正する。
【００２６】
ステップＳ７では、ステップＳ６で修正した修正動作プログラムＰＲ１の妥当性を評価し、通信部を介してロボット制御装置１０に送信する。その後、ロボット制御装置１０は、動作プログラムＰＲを修正動作プログラムＰＲ１に更新する。
【００２７】
図４は、図３のステップＳ４〜ステップＳ６の処理をより具体的に示すフローチャートの一例であり、評価基準としてサーボモータの許容負荷（モータ許容負荷）とサイクルタイムとが指定された例を示している。なお、サイクルタイムを指定とは、サイクルタイムを最短とすることを評価基準として指定した場合である。図３のステップＳ３の処理が終了すると、図４のステップＳ１１へ進む。ステップＳ１１では、予め教示操作盤３を介して入力された評価基準、すなわち、モータ許容負荷とサイクルタイムとをプログラム修正装置２０に送信する。
【００２８】
ステップＳ１２では、サイクルタイムを最短とするため、動作プログラムＰＲの指令速度および指令加速度を最大値に変更する。ステップＳ１３では、動作プログラムＰＲに基づきシミュレーションを実行する。ステップＳ１４では、各軸モータの所定時間ごとの負荷を算出する。このモータ負荷は、ロボット制御装置１０から送信されたロボット検出情報、すなわち各軸モータの速度および電流値を用いて周知の演算式により算出する。ステップＳ１５では、ステップＳ１４で算出した各軸モータの負荷と、動作プログラムＰＲの指令速度と指令加速度および各プラグラム行の実行時間とを関連付けて、プログラム修正装置２０の記憶部に時系列で記憶する。なお、ステップＳ１２〜ステップＳ１５の処理は、シミュレーション部２１が実行する。
【００２９】
ステップＳ１６では、ステップＳ１４に記憶された各軸モータの負荷がモータ許容負荷以内であるか否かを判定する。ステップＳ１６が否定されるとステップＳ１７に進む。ステップＳ１７では、モータ負荷が許容範囲内にないと判定された動作について、指令速度および指令加速度を所定量だけ下げてステップＳ１３に戻る。これによりシミュレーションによって算出されるモータ負荷が低減される。ステップＳ１３〜ステップＳ１７の処理は、モータ負荷が許容負荷内となるまで動作プログラムＰＲを修正しながら繰り返される。ステップＳ１６が肯定されると、図３のステップＳ７に進む。なお、ステップＳ１６、ステップＳ１７の処理は、プログラム修正部２２が実行する。
【００３０】
図５は、図４の変形例を示す図である。図５では、減速機の目標寿命が評価基準として追加されている。ステップＳ２１では、予め教示操作盤３を介して入力された評価基準であるモータ許容負荷、サイクルタイム、および減速機の目標寿命をプログラム修正装置２０に送信する。減速機寿命は、モータの速度、加速度、トルク、平均トルク等の物理量と対応関係を有する。したがって、これら物理量の１つまたは複数により減速機の目標寿命を表すことができる。ステップＳ２２では、サイクルタイムおよびモータ許容負荷を評価基準として動作プログラムＰＲを修正する。すなわち、図４のステップＳ１２〜ステップＳ１７と同様の処理を行い、動作プログラムＰＲを修正する。
【００３１】
ステップＳ２３では、ステップＳ２２で修正された動作プログラムを用いてシミュレーションを行う。ステップＳ２４では、ロボット制御装置１０から送信されたロボット情報を用いて減速機寿命を算出する。この場合、ステップＳ２１の目標寿命を表す物理量と同一の物理量により減速寿命が表される。ステップＳ２５では、ステップＳ２４で算出した減速機寿命がステップＳ２１の目標寿命以上か否かを判定する。ステップＳ２５が否定されるとステップＳ２６に進み、肯定されると図３のステップＳ７に進む。ステップＳ２６では、負荷の大きい動作について、指令速度および指令加速度を所定量だけ下げ、ステップＳ２３に戻る。これにより減速機寿命を目標寿命にした上で、サイクルタイムを短縮することができる。
【００３２】
図６は、図５の変形例を示す図である。図６では、消費電力の許容値（許容消費電力）がさらに評価基準として追加されている。ステップＳ３１では、予め教示操作盤３を介して入力された評価基準であるモータ許容負荷、サイクルタイム、減速機の目標寿命、および許容消費電力をプログラム修正装置２０に送信する。許容消費電力は、モータの速度、加速度および電流値等の物理量と相関関係を有する。したがって、これら物理量の１つまたは複数により許容消費電力を表すことができる。ステップＳ３２では、図５のステップＳ２２と同様、サイクルタイムおよびモータ許容負荷を評価基準として動作プログラムＰＲを修正する。ステップＳ３３では、さらに減速機の目標寿命を評価基準として動作プログラムＰＲを修正する。すなわち、図５のステップＳ２３〜ステップＳ２６と同様の処理を行い、動作プログラムＰＲを修正する。
【００３３】
ステップＳ３４では、ステップＳ３３で修正された動作プログラムを用いてシミュレーションを行う。ステップＳ３５では、ロボット制御装置１０から送信されたロボット情報を用いて消費電力を算出する。この場合、ステップＳ３１の許容消費電力を表す物理量と同一の物理量により消費電力が表される。ステップＳ３６では、ステップＳ３５で算出した消費電力がステップＳ３１の許容消費電力以下か否かを判定する。ステップＳ３６が否定されるとステップＳ３７に進み、肯定されると図３のステップＳ７に進む。ステップＳ３７では、負荷の大きい動作について、指令速度および指令加速度を所定量だけ下げ、ステップＳ３４に戻る。これにより消費電力を許容消費電力以下に抑えた上で、サイクルタイムを短縮することができる。
【００３４】
以上の実施形態によれば、ロボット制御装置１０が、教示点における指令速度および指令加速度を含む動作プログラムＰＲを実行し、モータの速度および電流値を含むロボット検出情報を取得する情報取得部１２と、情報取得部１２で取得されたロボット検出情報をプログラム修正装置２０に送信する通信部１３とを有し、プログラム修正装置２０が、動作プログラムＰＲに基づきシミュレーションを実行するシミュレーション部２１と、シミュレーション部２１でシミュレーションを繰り返しながら、シミュレーションの結果が予め定めた評価基準（例えばサイクルタイムが最短）を満たすように、通信部１３より送信されたロボット検出情報に基づき動作プログラムＰＲを修正するプログラム修正部２２と、修正動作プログラムＰＲ１をロボット制御装置１０に送信する通信部２３とを有する。このように実際にロボット１を動作させて得られたロボット情報を用いて動作プログラムＰＲを修正するため、モータ負荷の判定等を精度よく行うことができ、動作プログラムＰＲを精度よく修正することができる。
【００３５】
また、プログラム修正装置２０は、通信部１３，２３を介してロボット制御装置１０から動作プログラムＰＲを取得し、シミュレーション部２１は、この取得した動作プログラムＰＲに基づきシミュレーションを実行する。したがって、プログラム修正装置２０は、ロボット構成情報（動作プログラムＰＲ）が異なる種々のロボット制御装置１０に適用することができ、汎用性が高い。なお、予め動作プログラムＰＲ等のロボット構成情報を、ロボット制御装置１０とプログラム修正装置２０の双方に記憶するようにしてもよい。これによりロボット制御装置１０からロボット構成情報を送信する処理が不要となる。
【００３６】
さらに本実施形態では、ロボット制御装置１０ではなく、ロボット制御装置１０に接続されたプログラム修正装置２０で動作プログラムＰＲを繰り返し実行して動作プログラムＰＲを修正するので、動作プログラムＰＲの修正に要する時間を短縮することができる。プログラム修正の際に、稼働中のロボット１の動作を停止させる必要がないため、ロボット１の稼働による生産性に悪影響を与えることを防止できる。
【００３７】
なお、上述のロボットプログラム修正システム１００は、以下のような変形が可能である。図７は、図３の変形例を示すフローチャートである。図７の変形例では、ロボット制御装置１０から送信されたロボット検出情報に含まれる各軸モータの速度および電流値が、予め定められた許容値以内にあることを条件として、シミュレーション部２１がシミュレーションを行う。図７のステップＳ４１の処理は、例えば図３のステップＳ４の処理の後に実行される。
【００３８】
ステップＳ４１では、予め定めた許容値内か否かを判定する。ステップＳ４１が肯定されると図３のステップＳ５に進み、否定されると処理を終了する。すなわち、各軸モータの速度及び電流値が許容値を超えているとき、このロボット検出情報を用いて動作プログラムＰＲを修正しても良好な修正動作プログラムが得られない。したがって、この場合には、シミュレーション部２１によるシミュレーションが無駄にならないように、シミュレーションを行わずに処理を終了する。
【００３９】
図８は、プログラム修正装置２０の変形例を示すブロック図であり、図９は、このプログラム修正装置２０で実行される処理の一例を示すフローチャートである。なお、図９には、図３との相違点を主に示す。図８のプログラム修正装置２０は、ロボット制御装置１０から送信されたロボット検出情報に含まれるモータの電流値に基づき、シミュレーション部２１によって算出されたモータの電流値を補正する補正部２４をさらに有する。プログラム修正部２２は、補正後の電流値に基づき動作プログラムＰＲを修正する。
【００４０】
図９のステップＳ５１の処理は、例えば図３のステップＳ５で、ロボット構成情報（動作プログラムＰＲ等）に基づきシミュレーションが１回実行された後に、実行される。ステップＳ５１では、補正部２４が、ロボット制御装置１０から送信された各軸モータの電流値（第１電流値）と、ステップＳ５のシミュレーションにより算出した各軸モータの電流値（第２電流値）とを比較し、第２電流値を第１電流値に一致させるための各軸モータの電流値の補正係数を算出する。補正係数は、例えば以下のような最小二乗法によって算出することができる。
【数１】
0005890477.tif 000002
【００４１】
上式(I)で、ｅ（ｔ）は誤差、ｒ（ｔ）はロボット１から取得した電流値、ｓ（ｔ）はシミュレーションによって算出した電流値、αおよびβは補正係数、ｔは時間である。ステップＳ５１では、誤差ｅ（ｔ）が最小になるように補正係数α，βを求める。
【００４２】
次いで、ステップＳ５２で、補正係数α，βを用いて電流値を補正してシミュレーションを繰り返し実行しながら、ステップＳ６で、プログラム修正部２２が動作プログラムＰＲを修正する。この場合、シミュレーションを繰り返す場合に、モータの電流値をロボット制御装置１０から再度読み込む必要がない。このため、ロボット１の動作中にモータの電流値が変化する場合であっても、動作プログラムＰＲを安定して修正することができる。すなわち、ロボット１の動作を停止させることなく、容易かつ精度よく動作プログラムＰＲを修正することができる。
【００４３】
図１０は、プログラム修正装置２０のさらなる変形例を示す図であり、図１１は、このプログラム修正装置２０で実行される処理の一例を示すフローチャートである。なお、図１１には、図３との相違点を主に示す。図１０のプログラム修正装置２０は、修正動作プログラムＰＲ１に基づきシミュレーションを実行して、動作プログラムＰＲの有効性を評価する修正評価部２５をさらに有する。プログラム修正装置２０は、修正評価部２５による評価結果を、通信部２３を介してロボット制御装置１０に送信する。
【００４４】
図１１のステップＳ６１の処理は、例えば図３のステップＳ７の処理の後に実行される。ステップＳ６１では、動作プログラムＰＲのサイクルタイム、各軸モータの負荷、オーバーヒートの程度、モータ電流、減速機寿命、消費電力等の評価基準のパラメータの値が、動作プログラムＰＲの修正の前後でどの程度変化したかを算出する。例えば、プログラム修正前のパラメータ値に対するプログラム修正後のパラメータの値の変化率を算出する。これにより修正動作プログラムＰＲ１の有効性を評価することができる。ステップＳ６２では、通信部２３を介して、修正評価部２５による評価結果（パラメータの値の変化率）をロボット制御装置１０に送信する。
【００４５】
図１２は、ロボット制御装置１０の変形例を示すブロック図であり、図１３は、このロボット制御装置１０で実行される処理の一例を示すフローチャートである。なお、図１３には、図３との相違点を主に示す。図１２のロボット制御装置１０は、動作プログラムＰＲの更新の許可または禁止を指令する更新許可指令部１５と、更新許可指令部１５により動作プログラムＰＲの更新が許可されているとき、通信部２３を介してプログラム修正装置２０から送信された修正動作プログラムＰＲ１に動作プログラムＰＲを更新するプログラム更新部１６とをさらに有する。
【００４６】
図１３のステップＳ７１の処理は、例えば図３のステップＳ７の処理の後に実行される。ステップＳ７１では、ロボット制御装置１０のプログラム更新部１６が、動作プログラムＰＲの更新を許可しているか否か、すなわち更新許可指令部１５によりプログラムの更新許可が指令されているか否かを判定する。ステップＳ７１が肯定されるとステップＳ７２に進み、通信部を介してロボット制御装置１０に修正動作プログラムを転送する。ステップＳ７３では、プログラム更新部１６が修正動作プログラムに動作プログラムを更新する。
【００４７】
なお、図１３では、動作プログラムＰＲの更新が許可されているか否かを判定し、許可されている場合に、動作プログラムＰＲを更新するようにしたが、この判定を省略し、プログラム更新部１６で常に動作プログラムＰＲを更新するようにしてもよい。図１３の処理を図１１のステップＳ６２の処理の後に行ってもよい。すなわち、ロボット制御装置１０は、修正評価部２５による評価結果が送信されると、プログラム更新が許可されているか否かを判定するようにしてもよい。
【００４８】
なお、ロボット１の教示点における指令速度および指令加速度を含む動作プログラムＰＲを実行し、モータの速度および電流値を含む、ロボット１から得られるロボット検出情報を取得するのであれば、情報取得部１２の構成はいかなるものでもよい。また、情報取得部１２で取得されたロボット検出情報をプログラム修正装置２０に送信する通信部１３（第１通信部）の構成もいかなるものでもよい。したがって、情報取得部と第１送信部とを有するロボット制御装置１０の構成は上述したものに限らない。
【００４９】
動作プログラムＰＲに基づきシミュレーションを実行するのであれば、シミュレーション部２１の構成はいかなるものでもよい。シミュレーション部２１でシミュレーションを繰り返しながら、シミュレーションの結果が予め定めた評価基準を満たすように、通信部１３より送信されたロボット検出情報に基づき動作プログラムＰＲを修正するのであれば、プログラム修正部２２の構成もいかなるものでもよい。プログラム修正部２２によって修正された修正動作プログラムＰＲ１をロボット制御装置１０に送信するのであれば、通信部２３（第２通信部）の構成もいかなるものでもよい。したがって、シミュレーションとプログラム修正部と第２送信部とを有するプログラム修正装置２０の構成は上述したものに限らない。
【００５０】
以上の説明はあくまで一例であり、本発明の特徴を損なわない限り、上述した実施形態および変形例により本発明が限定されるものではない。上記実施形態および変形例の構成要素には、発明の同一性を維持しつつ置換可能かつ置換自明なものが含まれる。すなわち、本発明の技術的思想の範囲内で考えられる他の形態についても、本発明の範囲内に含まれる。また、上記実施形態と変形例の１つまたは複数を任意に組み合わせることも可能である。
【符号の説明】
【００５１】
１０    ロボット制御装置
１１    ロボット制御部
１２    情報取得部
１３    通信部
１４    プログラム更新部
１５    更新許可指令部
１６    プログラム更新部
２０    プログラム修正装置
２１    シミュレーション部
２２    プログラム修正部
２３    通信部
２４    補正部
２５    修正評価部
【図１】
0005890477.tif 000003
【図２】
0005890477.tif 000004
【図３】
0005890477.tif 000005
【図４】
0005890477.tif 000006
【図５】
0005890477.tif 000007
【図６】
0005890477.tif 000008
【図７】
0005890477.tif 000009
【図８】
0005890477.tif 000010
【図９】
0005890477.tif 000011
【図１０】
0005890477.tif 000012
【図１１】
0005890477.tif 000013
【図１２】
0005890477.tif 000014
【図１３】
0005890477.tif 000015