(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、
図1〜
図13を参照して本発明の実施形態について説明する。
図1は、本発明の実施形態に係るロボットプログラム修正システム100の概略構成を示す図である。ロボットプログラム修正システム100は、動作プログラムPRに従いロボット1を制御するロボット制御装置10と、ロボット制御装置10と通信し、動作プログラムPRを修正するプログラム修正装置20とを備える。
【0009】
図1に示すロボット1は、多関節型の産業用ロボットであり、アーム先端部に把持部2が設けられ、把持部2によりワークを把持し、搬送することができる。ロボット1は、複数の駆動軸を有し、各駆動軸はサーボモータ(各軸モータ)により駆動される。ロボット制御装置10には、教示操作盤3が接続され、ユーザは教示操作盤3の操作によりロボット1の動作を教示することができる。
【0010】
本実施形態では、プログラム修正装置20が、ロボット制御装置10から動作プログラムPRを取得して動作プログラムPRに基づきシミュレーションを行う。さらに、ロボット制御装置10から取得したサーボモータの速度や電流値等のロボット検出情報に基づき動作プログラムPRを修正する。すなわち、ロボット1を実際に動作させ、オフラインではなくオンラインで動作プログラムPRを修正する。
【0011】
図2は、
図1のロボット制御装置10およびプログラム修正装置20の構成を示すブロック図である。ロボット制御装置10およびプログラム修正装置20は、それぞれCPU,ROM,RAM,その他の周辺回路などを有する演算処理装置を含んで構成されるコンピュータを有する。ロボット制御装置10は、機能的構成としてロボット制御部11と、情報取得部12と、通信部13と、プログラム更新部14とを有する。プログラム修正装置20は、機能的構成としてシミュレーション部21と、プログラム修正部22と、通信部23とを有する。
【0012】
ロボット制御部11は、予め記憶された動作プログラムPRに従いサーボモータに制御信号を出力し、ロボット1の動きを制御する。動作プログラムPRは、教示操作盤3により教示された教示点における指令速度および指令加速度を含む。
【0013】
情報取得部12は、ロボット1に設けられた各種検出器からの信号およびロボット制御部11から出力された制御信号等に基づき、ロボット検出情報を取得する。ロボット検出情報は、ロボット1の動作に伴い変化するロボット1の動作状態を表す物理量を含む。一例として、ロボット検出情報は、各軸モータの速度および電流値を含む。モータ速度は、例えば各サーボモータに設けられたロータリーエンコーダからの信号により得られる。電流値は、例えばサーボアンプからサーボモータに供給される電流を電流計によって検出することにより得られる。情報取得部12で取得したロボット検出情報は、一旦、ロボット制御装置10の記憶部に記憶される。
【0014】
通信部13は、プログラム修正装置20に信号を送信する送信部と、プログラム修正装置20から信号を受信する受信部とを有する。ロボット制御装置10とプログラム修正装置20とは、通信部13,23を介して有線で接続されている。なお、両者を無線で接続することもできる。情報取得部12により取得され、記憶部に記憶されたロボット検出情報は、通信部13(送信部)からプログラム修正装置20に送信される。なお、情報取得部12により取得されたロボット検出情報を、記憶部に記憶せずにそのまま通信部13を介して送信することもできる。さらに通信部13は、動作プログラムPR等のロボット構成情報をプログラム修正装置20に送信する。ロボット構成情報は、動作プログラムPRの他、ロボット1の状態を表す変数や各種パラメータを含むロボット固有の情報である。
【0015】
通信部13は、動作プログラムPRの修正に用いる各種情報もプログラム修正装置20に送信する。この情報は、動作プログラムPRの修正の基準となる評価基準を含み、評価基準は教示操作盤3を介してユーザが入力することができる。評価基準は、動作プログラムPRのサイクルタイム、各軸モータの温度、平均電流、最大電流、最大速度、消費電力、サーボモータに連結された減速機の寿命などのパラメータにより定めることができる。ユーザは、プログラム修正のために、これらパラメータのいずれか1つまたは複数を選択し、評価基準を指定する。例えば、サイクルタイムの許容時間、モータ温度の許容値、減速機の目標寿命、消費電力の許容値等を評価基準として指定する。サイクルタイムを最短とすることを、評価基準として指定することもできる。プログラム修正に用いる評価基準を、ユーザが指定せずに、予めロボット制御装置10またはプログラム修正装置20に設定しておくこともできる。
【0016】
プログラム更新部14は、通信部13を介してプログラム修正装置20から修正後の動作プログラムPR1を受信し、動作プログラムPRを更新する。プログラム更新部14におけるプログラム更新処理の許可または禁止を、教示操作盤3の操作によりユーザが指令することもできる。
【0017】
シミュレーション部21は、ロボット制御装置10の通信部13から送信された動作プログラムPRに基づきシミュレーションを実行する。シミュレーションは、通信部13より送信されたロボット構成情報を用いて実行する。このシミュレーションによりロボット1の各部の動作情報、すなわち各プログラム行に対応したロボット1の各部の位置、速度、加速度や、サーボモータの負荷、消費電力、サイクルタイム等を取得できる。なお、シミュレーション結果は、プログラム修正装置20に設けられた表示部上に表示することができる。
【0018】
プログラム修正部22は、シミュレーション部21でシミュレーションを繰り返しながら、シミュレーションの結果がロボット制御装置10で指定された評価基準を満たすように、ロボット検出情報(各軸モータの速度、電流値等)に基づき動作プログラムPRを修正する。例えば、評価基準としてサイクルタイムが指定されると、プログラム修正部22は、ロボット制御装置10から得られた各軸モータの速度、電流値等を用いてサイクルタイムが最短となるように、動作プログラムPRの教示点における指令速度および指令加速度を修正する。
【0019】
通信部23は、ロボット制御装置10に信号を送信する送信部と、ロボット制御装置10から信号を受信する受信部とを有する。プログラム修正部22により修正された動作プログラム(修正動作プログラムPR1)は、通信部23(送信部)からプログラム修正装置20に送信される。なお、修正動作プログラムPR1をプログラム修正装置20の記憶部に一旦記憶した後、この記憶された修正動作プログラムPR1を、通信部23を介して送信してもよい。動作プログラムPRの修正箇所のみをロボット制御装置10に送信してもよい。この場合、ロボット制御装置(プログラム更新部14)は、動作プログラムPRの一部を修正することで動作プログラムPRを更新すればよい。
【0020】
図3は、ロボット制御装置10およびプログラム修正装置20で実行される処理の一例を示すフローチャートである。このフローチャートに示す処理は、例えば教示操作盤3によりプログラム修正指令が入力される開始される。ステップS1では、ロボット制御装置10とプログラム修正装置20とが互いに通信を開始する。
【0021】
ステップS2では、ロボット制御部11が予め定められた動作プログラムPRに従いサーボモータに制御信号を出力するとともに(プログラムを実行)、情報取得部12が所定時間時間毎にロボット検出情報(各軸モータの速度および電流値)を取得し、取得したロボット検出情報を時系列で記憶部に記憶する。
【0022】
ステップS3では、ステップS2で記憶したロボット検出情報および予め記憶されたロボット構成情報(動作プログラムPR等)を、通信部13を介してプログラム修正装置20に送信する。
【0023】
ステップS4では、予め教示操作盤3を介して入力された評価基準を読み込み、この評価基準を、通信部13を介してプログラム修正装置20に送信する。
【0024】
ステップS5では、ステップS3でロボット制御装置10から送信されたロボット構成情報(動作プログラムPR等)に基づき、プログラム修正装置20のシミュレーション部21がシミュレーションを繰り返し実行する。
【0025】
ステップS6では、ステップS4でロボット制御装置10から送信された評価基準に基づき、プログラム修正装置20のプログラム修正部21が動作プログラムPRを修正する。すなわち、ステップS5のシミュレーションの結果が評価基準を満たすように動作プログラムPRを修正する。
【0026】
ステップS7では、ステップS6で修正した修正動作プログラムPR1の妥当性を評価し、通信部を介してロボット制御装置10に送信する。その後、ロボット制御装置10は、動作プログラムPRを修正動作プログラムPR1に更新する。
【0027】
図4は、
図3のステップS4〜ステップS6の処理をより具体的に示すフローチャートの一例であり、評価基準としてサーボモータの許容負荷(モータ許容負荷)とサイクルタイムとが指定された例を示している。なお、サイクルタイムを指定とは、サイクルタイムを最短とすることを評価基準として指定した場合である。
図3のステップS3の処理が終了すると、
図4のステップS11へ進む。ステップS11では、予め教示操作盤3を介して入力された評価基準、すなわち、モータ許容負荷とサイクルタイムとをプログラム修正装置20に送信する。
【0028】
ステップS12では、サイクルタイムを最短とするため、動作プログラムPRの指令速度および指令加速度を最大値に変更する。ステップS13では、動作プログラムPRに基づきシミュレーションを実行する。ステップS14では、各軸モータの所定時間ごとの負荷を算出する。このモータ負荷は、ロボット制御装置10から送信されたロボット検出情報、すなわち各軸モータの速度および電流値を用いて周知の演算式により算出する。ステップS15では、ステップS14で算出した各軸モータの負荷と、動作プログラムPRの指令速度と指令加速度および各プラグラム行の実行時間とを関連付けて、プログラム修正装置20の記憶部に時系列で記憶する。なお、ステップS12〜ステップS15の処理は、シミュレーション部21が実行する。
【0029】
ステップS16では、ステップS14に記憶された各軸モータの負荷がモータ許容負荷以内であるか否かを判定する。ステップS16が否定されるとステップS17に進む。ステップS17では、モータ負荷が許容範囲内にないと判定された動作について、指令速度および指令加速度を所定量だけ下げてステップS13に戻る。これによりシミュレーションによって算出されるモータ負荷が低減される。ステップS13〜ステップS17の処理は、モータ負荷が許容負荷内となるまで動作プログラムPRを修正しながら繰り返される。ステップS16が肯定されると、
図3のステップS7に進む。なお、ステップS16、ステップS17の処理は、プログラム修正部22が実行する。
【0030】
図5は、
図4の変形例を示す図である。
図5では、減速機の目標寿命が評価基準として追加されている。ステップS21では、予め教示操作盤3を介して入力された評価基準であるモータ許容負荷、サイクルタイム、および減速機の目標寿命をプログラム修正装置20に送信する。減速機寿命は、モータの速度、加速度、トルク、平均トルク等の物理量と対応関係を有する。したがって、これら物理量の1つまたは複数により減速機の目標寿命を表すことができる。ステップS22では、サイクルタイムおよびモータ許容負荷を評価基準として動作プログラムPRを修正する。すなわち、
図4のステップS12〜ステップS17と同様の処理を行い、動作プログラムPRを修正する。
【0031】
ステップS23では、ステップS22で修正された動作プログラムを用いてシミュレーションを行う。ステップS24では、ロボット制御装置10から送信されたロボット情報を用いて減速機寿命を算出する。この場合、ステップS21の目標寿命を表す物理量と同一の物理量により減速寿命が表される。ステップS25では、ステップS24で算出した減速機寿命がステップS21の目標寿命以上か否かを判定する。ステップS25が否定されるとステップS26に進み、肯定されると
図3のステップS7に進む。ステップS26では、負荷の大きい動作について、指令速度および指令加速度を所定量だけ下げ、ステップS23に戻る。これにより減速機寿命を目標寿命にした上で、サイクルタイムを短縮することができる。
【0032】
図6は、
図5の変形例を示す図である。
図6では、消費電力の許容値(許容消費電力)がさらに評価基準として追加されている。ステップS31では、予め教示操作盤3を介して入力された評価基準であるモータ許容負荷、サイクルタイム、減速機の目標寿命、および許容消費電力をプログラム修正装置20に送信する。許容消費電力は、モータの速度、加速度および電流値等の物理量と相関関係を有する。したがって、これら物理量の1つまたは複数により許容消費電力を表すことができる。ステップS32では、
図5のステップS22と同様、サイクルタイムおよびモータ許容負荷を評価基準として動作プログラムPRを修正する。ステップS33では、さらに減速機の目標寿命を評価基準として動作プログラムPRを修正する。すなわち、
図5のステップS23〜ステップS26と同様の処理を行い、動作プログラムPRを修正する。
【0033】
ステップS34では、ステップS33で修正された動作プログラムを用いてシミュレーションを行う。ステップS35では、ロボット制御装置10から送信されたロボット情報を用いて消費電力を算出する。この場合、ステップS31の許容消費電力を表す物理量と同一の物理量により消費電力が表される。ステップS36では、ステップS35で算出した消費電力がステップS31の許容消費電力以下か否かを判定する。ステップS36が否定されるとステップS37に進み、肯定されると
図3のステップS7に進む。ステップS37では、負荷の大きい動作について、指令速度および指令加速度を所定量だけ下げ、ステップS34に戻る。これにより消費電力を許容消費電力以下に抑えた上で、サイクルタイムを短縮することができる。
【0034】
以上の実施形態によれば、ロボット制御装置10が、教示点における指令速度および指令加速度を含む動作プログラムPRを実行し、モータの速度および電流値を含むロボット検出情報を取得する情報取得部12と、情報取得部12で取得されたロボット検出情報をプログラム修正装置20に送信する通信部13とを有し、プログラム修正装置20が、動作プログラムPRに基づきシミュレーションを実行するシミュレーション部21と、シミュレーション部21でシミュレーションを繰り返しながら、シミュレーションの結果が予め定めた評価基準(例えばサイクルタイムが最短)を満たすように、通信部13より送信されたロボット検出情報に基づき動作プログラムPRを修正するプログラム修正部22と、修正動作プログラムPR1をロボット制御装置10に送信する通信部23とを有する。このように実際にロボット1を動作させて得られたロボット情報を用いて動作プログラムPRを修正するため、モータ負荷の判定等を精度よく行うことができ、動作プログラムPRを精度よく修正することができる。
【0035】
また、プログラム修正装置20は、通信部13,23を介してロボット制御装置10から動作プログラムPRを取得し、シミュレーション部21は、この取得した動作プログラムPRに基づきシミュレーションを実行する。したがって、プログラム修正装置20は、ロボット構成情報(動作プログラムPR)が異なる種々のロボット制御装置10に適用することができ、汎用性が高い。なお、予め動作プログラムPR等のロボット構成情報を、ロボット制御装置10とプログラム修正装置20の双方に記憶するようにしてもよい。これによりロボット制御装置10からロボット構成情報を送信する処理が不要となる。
【0036】
さらに本実施形態では、ロボット制御装置10ではなく、ロボット制御装置10に接続されたプログラム修正装置20で動作プログラムPRを繰り返し実行して動作プログラムPRを修正するので、動作プログラムPRの修正に要する時間を短縮することができる。プログラム修正の際に、稼働中のロボット1の動作を停止させる必要がないため、ロボット1の稼働による生産性に悪影響を与えることを防止できる。
【0037】
なお、上述のロボットプログラム修正システム100は、以下のような変形が可能である。
図7は、
図3の変形例を示すフローチャートである。
図7の変形例では、ロボット制御装置10から送信されたロボット検出情報に含まれる各軸モータの速度および電流値が、予め定められた許容値以内にあることを条件として、シミュレーション部21がシミュレーションを行う。
図7のステップS41の処理は、例えば
図3のステップS4の処理の後に実行される。
【0038】
ステップS41では、予め定めた許容値内か否かを判定する。ステップS41が肯定されると
図3のステップS5に進み、否定されると処理を終了する。すなわち、各軸モータの速度及び電流値が許容値を超えているとき、このロボット検出情報を用いて動作プログラムPRを修正しても良好な修正動作プログラムが得られない。したがって、この場合には、シミュレーション部21によるシミュレーションが無駄にならないように、シミュレーションを行わずに処理を終了する。
【0039】
図8は、プログラム修正装置20の変形例を示すブロック図であり、
図9は、このプログラム修正装置20で実行される処理の一例を示すフローチャートである。なお、
図9には、
図3との相違点を主に示す。
図8のプログラム修正装置20は、ロボット制御装置10から送信されたロボット検出情報に含まれるモータの電流値に基づき、シミュレーション部21によって算出されたモータの電流値を補正する補正部24をさらに有する。プログラム修正部22は、補正後の電流値に基づき動作プログラムPRを修正する。
【0040】
図9のステップS51の処理は、例えば
図3のステップS5で、ロボット構成情報(動作プログラムPR等)に基づきシミュレーションが1回実行された後に、実行される。ステップS51では、補正部24が、ロボット制御装置10から送信された各軸モータの電流値(第1電流値)と、ステップS5のシミュレーションにより算出した各軸モータの電流値(第2電流値)とを比較し、第2電流値を第1電流値に一致させるための各軸モータの電流値の補正係数を算出する。補正係数は、例えば以下のような最小二乗法によって算出することができる。
【数1】
【0041】
上式(I)で、e(t)は誤差、r(t)はロボット1から取得した電流値、s(t)はシミュレーションによって算出した電流値、αおよびβは補正係数、tは時間である。ステップS51では、誤差e(t)が最小になるように補正係数α,βを求める。
【0042】
次いで、ステップS52で、補正係数α,βを用いて電流値を補正してシミュレーションを繰り返し実行しながら、ステップS6で、プログラム修正部22が動作プログラムPRを修正する。この場合、シミュレーションを繰り返す場合に、モータの電流値をロボット制御装置10から再度読み込む必要がない。このため、ロボット1の動作中にモータの電流値が変化する場合であっても、動作プログラムPRを安定して修正することができる。すなわち、ロボット1の動作を停止させることなく、容易かつ精度よく動作プログラムPRを修正することができる。
【0043】
図10は、プログラム修正装置20のさらなる変形例を示す図であり、
図11は、このプログラム修正装置20で実行される処理の一例を示すフローチャートである。なお、
図11には、
図3との相違点を主に示す。
図10のプログラム修正装置20は、修正動作プログラムPR1に基づきシミュレーションを実行して、動作プログラムPRの有効性を評価する修正評価部25をさらに有する。プログラム修正装置20は、修正評価部25による評価結果を、通信部23を介してロボット制御装置10に送信する。
【0044】
図11のステップS61の処理は、例えば
図3のステップS7の処理の後に実行される。ステップS61では、動作プログラムPRのサイクルタイム、各軸モータの負荷、オーバーヒートの程度、モータ電流、減速機寿命、消費電力等の評価基準のパラメータの値が、動作プログラムPRの修正の前後でどの程度変化したかを算出する。例えば、プログラム修正前のパラメータ値に対するプログラム修正後のパラメータの値の変化率を算出する。これにより修正動作プログラムPR1の有効性を評価することができる。ステップS62では、通信部23を介して、修正評価部25による評価結果(パラメータの値の変化率)をロボット制御装置10に送信する。
【0045】
図12は、ロボット制御装置10の変形例を示すブロック図であり、
図13は、このロボット制御装置10で実行される処理の一例を示すフローチャートである。なお、
図13には、
図3との相違点を主に示す。
図12のロボット制御装置10は、動作プログラムPRの更新の許可または禁止を指令する更新許可指令部15と、更新許可指令部15により動作プログラムPRの更新が許可されているとき、通信部23を介してプログラム修正装置20から送信された修正動作プログラムPR1に動作プログラムPRを更新するプログラム更新部16とをさらに有する。
【0046】
図13のステップS71の処理は、例えば
図3のステップS7の処理の後に実行される。ステップS71では、ロボット制御装置10のプログラム更新部16が、動作プログラムPRの更新を許可しているか否か、すなわち更新許可指令部15によりプログラムの更新許可が指令されているか否かを判定する。ステップS71が肯定されるとステップS72に進み、通信部を介してロボット制御装置10に修正動作プログラムを転送する。ステップS73では、プログラム更新部16が修正動作プログラムに動作プログラムを更新する。
【0047】
なお、
図13では、動作プログラムPRの更新が許可されているか否かを判定し、許可されている場合に、動作プログラムPRを更新するようにしたが、この判定を省略し、プログラム更新部16で常に動作プログラムPRを更新するようにしてもよい。
図13の処理を
図11のステップS62の処理の後に行ってもよい。すなわち、ロボット制御装置10は、修正評価部25による評価結果が送信されると、プログラム更新が許可されているか否かを判定するようにしてもよい。
【0048】
なお、ロボット1の教示点における指令速度および指令加速度を含む動作プログラムPRを実行し、モータの速度および電流値を含む、ロボット1から得られるロボット検出情報を取得するのであれば、情報取得部12の構成はいかなるものでもよい。また、情報取得部12で取得されたロボット検出情報をプログラム修正装置20に送信する通信部13(第1通信部)の構成もいかなるものでもよい。したがって、情報取得部と第1送信部とを有するロボット制御装置10の構成は上述したものに限らない。
【0049】
動作プログラムPRに基づきシミュレーションを実行するのであれば、シミュレーション部21の構成はいかなるものでもよい。シミュレーション部21でシミュレーションを繰り返しながら、シミュレーションの結果が予め定めた評価基準を満たすように、通信部13より送信されたロボット検出情報に基づき動作プログラムPRを修正するのであれば、プログラム修正部22の構成もいかなるものでもよい。プログラム修正部22によって修正された修正動作プログラムPR1をロボット制御装置10に送信するのであれば、通信部23(第2通信部)の構成もいかなるものでもよい。したがって、シミュレーションとプログラム修正部と第2送信部とを有するプログラム修正装置20の構成は上述したものに限らない。
【0050】
以上の説明はあくまで一例であり、本発明の特徴を損なわない限り、上述した実施形態および変形例により本発明が限定されるものではない。上記実施形態および変形例の構成要素には、発明の同一性を維持しつつ置換可能かつ置換自明なものが含まれる。すなわち、本発明の技術的思想の範囲内で考えられる他の形態についても、本発明の範囲内に含まれる。また、上記実施形態と変形例の1つまたは複数を任意に組み合わせることも可能である。