(57)【要約】【課題】  ロボットに異常が発生した場合に、当該異常を回避するような暫定動作を実現することができるロボット制御装置およびロボット制御方法を提供する。【解決手段】  ロボット制御装置３は、検知部３１と、異常判定部３２と、異常要因特定部３３と、シミュレーション実施部３４と、制御パラメータ設定部３５と、動作制御部３６と、を備え、シミュレーション実施部３４は、異常の要因に関連する複数の制御パラメータに対して当該複数の制御パラメータの値を変更してシミュレーションを行い、ロボット２の動作状態が異常とならない複数の制御パラメータの値の組み合わせを少なくとも１つ抽出するように構成され、制御パラメータ設定部３５は、シミュレーションの結果から、複数の制御パラメータの値を設定するように構成される。【選択図】  図１
2014121759.tif 000002
【特許請求の範囲】
【請求項１】
動作軸を有する関節を少なくとも１つ備えたロボットを複数の制御パラメータを用いて制御するためのロボット制御装置であって、
前記ロボットの所定の制御値を検知する検知部と、
前記検知部が検知した前記制御値に基づいて前記ロボットの動作状態が異常か否かを判定する異常判定部と、
前記異常判定部が前記異常と判定した場合に、前記制御値から当該異常の要因を特定する異常要因特定部と、
前記異常要因特定部が特定した異常の要因に関連する複数の制御パラメータを変数として前記異常と判定した時点以降の前記ロボットの動作についてのシミュレーションを行うシミュレーション実施部と、
前記シミュレーション実施部が行った前記シミュレーションの結果に基づいて前記複数の制御パラメータの値を前記ロボットの動作状態が異常とならないような値に設定する制御パラメータ設定部と、
前記異常判定部が前記異常と判定した場合に、前記制御パラメータ設定部により設定された制御パラメータを用いて前記ロボットを暫定動作させる動作制御部と、を備え、
前記シミュレーション実施部は、前記異常の要因に関連する複数の制御パラメータに対して当該複数の制御パラメータの値を変更してシミュレーションを行い、前記ロボットの動作状態が異常とならない複数の制御パラメータの値の組み合わせを少なくとも１つ抽出するように構成され、
前記制御パラメータ設定部は、前記シミュレーションの結果から、前記複数の制御パラメータの値を設定するように構成される、ロボット制御装置。
【請求項２】
前記シミュレーション実施部は、前記異常の要因に関連する複数の制御パラメータに対して予め定められた優先順位に基づいて、前記複数の制御パラメータの値を変更してシミュレーションを行うように構成される、請求項１に記載のロボット制御装置。
【請求項３】
前記制御パラメータ設定部は、前記シミュレーション実施部が前記ロボットの動作状態が異常とならないようにする制御パラメータの値の組み合わせを複数抽出した場合、前記暫定動作に関連して予め定められた優先度に基づいて、抽出された複数の組み合わせの中から前記暫定動作において用いる前記制御パラメータの値の組み合わせを選択する、請求項１または２に記載のロボット制御装置。
【請求項４】
前記優先度は、複数の評価項目に関連して予め定められた重み付けに基づいて定められる、請求項３に記載のロボット制御装置。
【請求項５】
前記異常判定部が前記異常と判定した場合に、前記ロボットの制御を停止させない、請求項１〜４の何れかに記載のロボット制御装置。
【請求項６】
動作軸を有する関節を少なくとも１つ備えたロボットを複数の制御パラメータを用いて制御するロボット制御方法であって、
前記ロボットの所定の制御値を検知し、
前記検知部が検知した前記制御値に基づいて前記ロボットの動作状態が異常か否かを判定し、
前記ロボットの動作状態が異常である場合に、前記制御値から当該異常の要因を特定し、
前記異常の要因に関連する複数の制御パラメータを変数として前記異常と判定した時点以降の前記ロボットの動作についてのシミュレーションを行い、前記ロボットの動作状態が異常とならない複数の制御パラメータの値の組み合わせを少なくとも１つ抽出し、
前記シミュレーションの結果から、前記複数の制御パラメータの値を前記ロボットの動作状態が異常とならないような値に設定し、
前記ロボットの動作状態が異常とならないように、設定された制御パラメータを用いて前記ロボットを暫定動作させる、ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作制御を行うロボット制御装置およびロボット制御方法に関する。
【背景技術】
【０００２】
従来、ロボットの動作を制御するロボット制御装置は、一般的に、ロボット制御中の制御値（例えば移動速度、負荷など）を検出し、予め設定されているしきい値（最大速度、最大負荷など）を超えた場合に何らかの異常が生じたと判断して、停止させる制御を行っている。この場合、オペレータが異常が生じた要因を判断して、対応するパーツを交換したりするなどの対策を行う。
【０００３】
これに対し、ロボットの異常発生時において、なるべくロボットの動作を継続させるために、しきい値を超えた制御値に対して対応する制御パラメータの値を当該制御値が低くなるように変更して暫定動作させる制御方法も開発されている（例えば特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２５７５２０号公報
【特許文献２】特開２００９−２０７３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ロボットの動作は近年複雑化してきており、異常が生じた要因に対して当該異常を回避して暫定動作させる態様（変更すべき制御パラメータ）は必ずしも１つだけとは限らず、そのときのロボットの状態や行うべきロボットの動作によっても暫定動作の態様は異なるものといえる。すなわち、上記特許文献１，２といった方法では、異常発生時における暫定動作が実現できない場合が生じ得る。
【０００６】
本発明は、以上のような課題を解決すべくなされたものであり、ロボットに異常が発生した場合に、当該異常を回避するような暫定動作を実現することができるロボット制御装置およびロボット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るロボット制御装置は、動作軸を有する関節を少なくとも１つ備えたロボットを複数の制御パラメータを用いて制御するためのロボット制御装置であって、前記ロボットの所定の制御値を検知する検知部と、前記検知部が検知した前記制御値に基づいて前記ロボットの動作状態が異常か否かを判定する異常判定部と、前記異常判定部が前記異常と判定した場合に、前記制御値から当該異常の要因を特定する異常要因特定部と、前記異常要因特定部が特定した異常の要因に関連する複数の制御パラメータを変数として前記異常と判定した時点以降の前記ロボットの動作についてのシミュレーションを行うシミュレーション実施部と、前記シミュレーション実施部が行った前記シミュレーションの結果に基づいて前記複数の制御パラメータの値を前記ロボットの動作状態が異常とならないような値に設定する制御パラメータ設定部と、前記異常判定部が前記異常と判定した場合に、前記制御パラメータ設定部により設定された制御パラメータを用いて前記ロボットを暫定動作させる動作制御部と、を備え、前記シミュレーション実施部は、前記異常の要因に関連する複数の制御パラメータに対して当該複数の制御パラメータの値を変更してシミュレーションを行い、前記ロボットの動作状態が異常とならない複数の制御パラメータの値の組み合わせを少なくとも１つ抽出するように構成され、前記制御パラメータ設定部は、前記シミュレーションの結果から、前記複数の制御パラメータの値を設定するように構成されるものである。
【０００８】
上記構成によれば、ロボットの動作状態が異常と判定された場合に、異常となった制御値から異常の要因を特定し、当該異常の要因に関連する複数の制御パラメータを変数として、当該異常と判定した時点以降のロボットの動作についてのシミュレーションが行われる。このシミュレーションの結果に応じて、以降のロボットの動作状態が異常とならない複数の制御パラメータの値の組み合わせが少なくとも１つ抽出される。これにより、異常が生じた要因に応じた暫定動作の態様を自動的に見つけ出すことができ、異常を回避するような暫定動作を実現することができる。
【０００９】
前記シミュレーション実施部は、前記異常の要因に関連する複数の制御パラメータに対して予め定められた優先順位に基づいて、前記複数の制御パラメータの値を変更してシミュレーションを行うように構成されてもよい。このように、異常の要因に関連する複数の制御パラメータに対して優先順位を設けることにより、異常の要因に応じた暫定動作を最適化することができるとともに、最適な暫定動作の態様を抽出するためのシミュレーションの実行回数を低減し、迅速な暫定動作への移行を実現することができる。
【００１０】
前記制御パラメータ設定部は、前記制御パラメータ設定部は、前記シミュレーション実施部が前記ロボットの動作状態が異常とならないようにする制御パラメータの値の組み合わせを複数抽出した場合、前記暫定動作に関連して予め定められた優先度に基づいて、抽出された複数の組み合わせの中から前記暫定動作において用いる前記制御パラメータの値の組み合わせを選択してもよい。これにより、最適な暫定動作を迅速に開始することができる。
【００１１】
前記優先度は、複数の評価項目に関連して予め定められた重み付けに基づいて定められてもよい。これにより、複数の評価項目を勘案してより最適な暫定動作を採用することができる。
【００１２】
前記異常判定部が前記異常と判定した場合に、前記ロボットの制御を停止させないこととしてもよい。これにより、異常と判定された場合でも速やかに暫定動作に移行して時間的ロスを少なくすることができる。
【００１３】
また、本発明の他の態様に係るロボット制御方法は、動作軸を有する関節を少なくとも１つ備えたロボットを複数の制御パラメータを用いて制御するロボット制御方法であって、前記ロボットの所定の制御値を検知し、前記検知部が検知した前記制御値に基づいて前記ロボットの動作状態が異常か否かを判定し、前記ロボットの動作状態が異常である場合に、前記制御値から当該異常の要因を特定し、前記異常の要因に関連する複数の制御パラメータを変数として前記異常と判定した時点以降の前記ロボットの動作についてのシミュレーションを行い、前記ロボットの動作状態が異常とならない複数の制御パラメータの値の組み合わせを少なくとも１つ抽出し、前記シミュレーションの結果から、前記複数の制御パラメータの値を前記ロボットの動作状態が異常とならないような値に設定し、前記ロボットの動作状態が異常とならないように、設定された制御パラメータを用いて前記ロボットを暫定動作させるものである。
【００１４】
上記方法によれば、ロボットの動作状態が異常と判定された場合に、異常となった制御値から異常の要因を特定し、当該異常の要因に関連する複数の制御パラメータを変数として、当該異常と判定した時点以降のロボットの動作についてのシミュレーションが行われる。このシミュレーションの結果に応じて、以降のロボットの動作状態が異常とならない複数の制御パラメータの値の組み合わせが少なくとも１つ抽出される。これにより、異常が生じた要因に応じた暫定動作の態様を自動的に見つけ出すことができ、異常を回避するような暫定動作を実現することができる。
【発明の効果】
【００１５】
本発明は以上に説明したように構成され、ロボットに異常が発生した場合に、当該異常を回避するような暫定動作を実現することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るロボット制御装置が適用されたロボット制御システムの概略構成を示すブロック図である。
【図２】図１に示すロボット制御装置におけるロボット異常処理の流れを示すフローチャートである。
【図３】図１に示すロボット制御装置における暫定動作可能な関連パラメータ群の抽出処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、以下では全ての図を通じて同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【００１８】
図１は本発明の一実施形態に係るロボット制御装置が適用されたロボット制御システムの概略構成を示すブロック図である。図１に示すように、本実施形態のロボット制御システム１は、ロボット２およびこれに接続されるロボット制御装置３を備えている。なお、本実施形態においては、図１に示すようにロボット制御システム１を構成するロボット２が１つである場合の例について説明するが、ロボット制御システム１を構成するロボット２が複数ある態様にも適用可能である。また、ロボット制御装置３は、図１に示すようにロボット２とは別に設けられており、ネットワークやシリアル通信線などにより通信可能に接続されていてもよいし、ロボット２内にロボット制御装置３を組み込むこととしてもよい。
【００１９】
ロボット２は少なくとも１つの動作軸２１によって構成される関節を有している。動作軸２１はサーボモータ、油圧モータ、またはエア圧モータ（図示せず）などの駆動機構により駆動される。ロボット制御装置３は、ロボット２の各駆動機構に複数の制御パラメータを有する制御指令（指令値）を与えることにより、各動作軸２１の動作を制御する。制御パラメータには、例えば、最大速度、定常速度、最大加（減）速度、最大負荷、最大動作電流、最大動作電圧、最大（小）油圧、最大（小）エア圧、最高（低）温度などが含まれる。
【００２０】
また、各動作軸２１の動作は、各種のセンサにより検出され、ロボット制御装置３にフィードバックされる。例えば、ロボット２には、当該動作軸２１に取り付けられ、速度や加減速度を計測するエンコーダなどの位置センサ、サーボモータの負荷を計測する負荷センサ、動作電流または動作電圧を計測する電流または電圧センサ、油圧やエア圧を計測する圧力センサなどが、動作軸２１の構造などに応じて設けられる。
【００２１】
ロボット制御装置３は、マイクロコントローラなどで構成される制御部３ａと、制御部３ａで演算された結果や、外部からの情報を記憶する記憶部３ｂとを備えている。記憶部３ｂには、本実施形態におけるロボット制御方法に基づく制御プログラムも記憶されている。制御部３ａは、当該制御プログラムに従って各種演算を行うことにより、検知部３１、異常判定部３２、異常要因特定部３３、シミュレーション実施部３４、制御パラメータ設定部３５および動作制御部３６として機能する。
【００２２】
上記各構成として機能するロボット制御装置３は、ロボット２における動作が異常であると判断した場合に、ロボット停止処理を開始するが、当該異常に関連する制御パラメータ（以下、関連パラメータ）の少なくとも１つを制限してロボット２を暫定動作させることが可能であれば、当該ロボット停止処理を中止して暫定動作させる。
【００２３】
まず、上記ロボット制御装置３におけるロボット異常処理の全体的な流れについて説明する。図２は図１に示すロボット制御装置におけるロボット異常処理の流れを示すフローチャートである。
【００２４】
前提として、検知部３１は、所定のタイミングごとに、ロボット２に設けられた各種センサから所定の制御値を検知する。所定の制御値には、例えば、移動速度、加減速度、モータ負荷、動作電流、動作電圧、油圧、エア圧、温度などが含まれる。なお、ロボット２に設けられたセンサにおいて、これらの制御値が生成される（検知部３１がこれらの制御値を受信する）こととしてもよいし、ロボット２に設けられたセンサ信号からこれらの制御値が検知部３１にて生成される（例えばエンコーダから検知部３１に送られた位置情報から検知部３１が動作速度、加減速度などを演算する）こととしてもよい。
【００２５】
異常判定部３２は、検知部３１が検知した制御値に基づいてロボット２の動作状態が異常か否かを判定する。具体的には、異常判定部３２は、検知部３１が検知した制御値が所定の範囲（制御パラメータにおいて設定された範囲）内かどうかを判定し、当該範囲外であれば異常として検出する（ステップＱ１）。
【００２６】
ロボット制御装置３は、異常判定部３２が異常と判定した場合（ステップＱ１でＹｅｓ）に、ロボット２の動作を停止させるためのロボット停止処理を開始する（ステップＱ２）。ここで、ロボット停止処理の開始とは、ロボット制御装置３が、異常と判定されたロボット２に対して停止制御信号を送信して最終的にロボット２を停止させるための演算および処理を開始することを意味する。このため、ロボット停止処理の開始後の状態には、実際にロボット２が減速動作を行っている状態および停止状態だけでなく、ロボット２に停止信号を送信する前の状態（ロボット制御装置３における演算中の状態）も含まれる。
【００２７】
このロボット停止処理と並行して、ロボット制御装置３は、後述する図３に示すような、暫定動作可能な関連パラメータ群の抽出処理を行う（ステップＱ３）。なお、図２においては図示の便宜上、ロボット停止処理が開始された後に、抽出処理を行うように記載しているが、ロボット停止処理の開始と抽出処理の開始とは同時であってもよいし、抽出処理の開始後、ロボット停止処理を開始することとしてもよい。
【００２８】
ロボット制御装置３は、暫定動作可能な関連パラメータ群の抽出処理の結果、暫定動作可能な関連パラメータ群を少なくとも１つ抽出できたかどうかを判定する（ステップＱ４）。暫定動作可能な関連パラメータ群を抽出できた場合（ステップＱ４でＹｅｓ）、ロボット制御装置３は、抽出された少なくとも１つの関連パラメータ群の中から、後述するような所定の方法に基づいて暫定動作のための関連パラメータ群を選択する（ステップＱ５）。さらに、ロボット制御装置３は、ロボット停止処理を解除（中止）する（ステップＱ６）とともに、選択された関連パラメータ群を用いてロボット２に暫定動作を開始させる（ステップＱ７）。
【００２９】
一方、暫定動作可能な関連パラメータ群の抽出処理の結果、暫定動作可能な関連パラメータ群が１つも抽出できなかった場合（ステップＱ４でＮｏ）、ロボット停止処理を継続し（ステップＱ８）、ロボット２を停止させる。
【００３０】
次に、本実施形態における暫定動作可能な関連パラメータ群の抽出処理の流れについて説明する。図３は図１に示すロボット制御装置により実行される暫定動作可能な関連パラメータ群の抽出処理の流れを示すフローチャートである。
【００３１】
図３におけるステップＳ１は、図２におけるステップＱ１と同様の処理を便宜上示したものである。すなわち、異常判定部３２は、検知部３１が検知した制御値に基づいてロボット２の動作状態が異常か否かを判定する。具体的には、異常判定部３２は、検知部３１が検知した制御値が所定の範囲（制御パラメータにおいて設定された範囲）内かどうかを判定し、当該範囲外であれば異常として検出する（ステップＳ１）。
【００３２】
異常要因特定部３３は、異常判定部３２が異常と判定した場合（ステップＳ１でＹｅｓ）に、当該所定の範囲を超えた制御値から当該異常の要因を特定する（ステップＳ２）。具体的には、記憶部３ｂに、値が異常となった制御値に、異常の要因が予め関連付けられて記憶されている。例えば、移動速度が所定のしきい値を超えた場合には、速度エラー、加減速度が所定のしきい値を超えた場合には、加減速度エラーといったように、制御値と異常の要因が一対一に対応していてもよいし、移動速度、加減速度、モータ電流およびモータ電圧の少なくともいずれか１つが所定のしきい値を超えた場合には、サーボモータエラー、エア圧または油圧が所定のしきい値を超えた場合には、アクチュエータエラーといったように、異常の要因に対して複数の制御値に対して異常の要因が１つ関連付けられることとしてもよい。また、複数の制御値が同時にそれぞれのしきい値を超えた場合には、単独の場合とは異なる異常の要因が関連付けられることとしてもよい。
【００３３】
さらに、記憶部３ｂには、異常の要因に応じて関連する複数の制御パラメータ（関連パラメータ）および各関連パラメータ内の優先順位が関連付けられて記憶されている。すなわち、優先順位は、異常の要因ごとに設けられる。そして、異常要因特定部３３は、特定された異常の要因に関連する制御パラメータの組み合わせ（以下、関連パラメータ群と称する場合がある）を記憶部３ｂから読み出す（ステップＳ３）。例えば、異常の要因が速度エラーの場合には、関連パラメータとして、最大速度、最大加減速度および最大動作電流を読み出す。例えば、速度エラーの際の各関連パラメータの優先順位は、１：最大速度、２：最大動作電流、３：最大加減速度とする。また、暫定動作可能な関連パラメータの組み合わせの数Ｎを初期値０に設定する。
【００３４】
シミュレーション実施部３４は、異常要因特定部３３が特定した異常の要因に関連する複数の制御パラメータを変数として異常と判定した時点以降のロボット２の動作についてのシミュレーションを行う。具体的には、まず、シミュレーション実施部３４は、初期設定として優先順位ｙ＝１を設定する（ステップＳ４）。そして、シミュレーション実施部３４は、優先順位ｙ（＝１）の関連パラメータの値（最大値など）Ｐｉを下記式の値に置き換えて、置き換えた値を記憶部３ｂに記憶する（ステップＳ５）。
【００３５】
【数１】
2014121759.tif 000003
【００３６】
ここで、ｘｉは、関連パラメータごとに設定される制限度（能力を低減させる割合（％））を示す。例えばｘｉ＝５に設定される。また、Ｐｉｏは、制御パラメータＰｉの初期値を示すものである。この初期値Ｐｉｏは、通常動作の制御パラメータの値（最大値など）を示す。
【００３７】
なお、関連パラメータによっては、上記式（１）に代えて、通常動作時よりも能力を上げる演算式（例えば式（１）における「−」を「＋」に変えた式）を用いることとしてもよい。例えば、異常の要因が負荷エラーの場合において、負荷を低減させるために、最大加減速度および最大負荷は低減させるが、サイクルタイム（ロボット２の一連の動作工程における所要時間）があまり長くならないように、最大速度を通常動作時より上げることも考えられる。
【００３８】
そして、シミュレーション実施部３４は、上記置き換えられた関連パラメータの値Ｐｉを含む関連パラメータ群ＧＰを用いて、暫定動作シミュレーションを行う（ステップＳ６）。シミュレーションは、通常動作時におけるシミュレーションと同様のシミュレーションにおいて、上記関連パラメータの値を変更することで実現できるものであり、ロボット２の動作をモデル化し、コンピュータ上で公知の方法が利用可能である。なお、関連パラメータ群ＧＰ以外の制御パラメータについては、変更なし（あるいはシミュレーションに用いないこと）とする。
【００３９】
シミュレーション実施部３４は、このようなシミュレーションの結果、当該シミュレーションに用いられた関連パラメータ群ＧＰを採用した場合に、異常と判定した時点以降のロボット２の動作状態が再び異常となるか否かを判定する（ステップＳ７）。具体的には、シミュレーション実施部３４は、シミュレーションにおいて再び何れかの制御値が所定の範囲外とならないかどうかを判定する。なお、範囲外かどうか判定する対象は、関連パラメータと直接関係する制御値のみでもよいし、関連パラメータに直接関係しない制御値を含むこととしてもよい。
【００４０】
シミュレーションの結果、異常判定時点以降の動作状態が異常にはならないと判定された場合には（ステップＳ７でＮｏ）、シミュレーション実施部３４は、当該シミュレーションに用いられた関連パラメータ群ＧＰの各値（暫定動作可能な関連パラメータの組み合わせ）を記憶部３ｂに記憶する（ステップＳ８）。
【００４１】
また、暫定動作可能な組み合わせの数Ｎに１を加える（Ｎ←Ｎ＋１とする）。そして、シミュレーション実施部３４は、当該暫定動作可能な組み合わせの数Ｎが予め設定された最大値Ｎｍａｘ以上となったかを判定する（ステップＳ９）。暫定動作可能な組み合わせの数Ｎが最大値Ｎｍａｘ以上となった場合（ステップＳ９でＹｅｓ）、本抽出処理を終了する。例えば暫定動作可能な関連パラメータの組み合わせが１つでよい場合は、Ｎｍａｘ＝１が設定され、暫定動作可能な関連パラメータの組み合わせが１つ見つかった時点（ステップＳ８を１回実行した時点）で本抽出処理を終了する。
【００４２】
一方、シミュレーションの結果、異常判定時点以降の動作状態が再び異常になると判定された場合（ステップＳ７でＹｅｓ）または暫定動作可能な組み合わせの数Ｎが最大値Ｎｍａｘに達していない場合（ステップＳ９でＮｏ）には、シミュレーション実施部３４は、優先順位ｙが関連パラメータ群ＧＰの数Ｉに達していないかどうか判定する（ステップＳ１０）。そして、優先順位ｙが関連パラメータ群ＧＰの数Ｉに達していないならば（ステップＳ１０でＹｅｓ）、シミュレーション実施部３４は、優先順位の値ｙを１つ増やして（ステップＳ１１）、優先順位の１つ低い関連パラメータの値Ｐｉを式（１）を用いて置き換え、記憶部３ｂに記憶する（ステップＳ５）。この際、制限度ｘｉは、関連パラメータの種類に応じて異なることとしてもよい。その上で、このステップで値を置き換えた関連パラメータおよび以前のステップで値を置き換えた関連パラメータを含む関連パラメータ群ＧＰを用いて、シミュレーション実施部３４は、再度暫定動作シミュレーションを行う（ステップＳ６）。このように、シミュレーション実施部３４は、異常の要因に関連する複数の制御パラメータに対して予め定められた優先順位に基づいて、複数の制御パラメータの値を変更してシミュレーションを行う。
【００４３】
また、優先順位ｙが関連パラメータ群ＧＰの数Ｉに達している場合（ステップＳ１０でＮｏ）、シミュレーション実施部３４は、関連パラメータの各値Ｐｉが予め定められた下限値に到達しているかどうか判定する（ステップＳ１２）。関連パラメータの各値Ｐｉが下限値に到達しているかどうかは、変更後の関連パラメータの現在値Ｐｉが所定の下限値（例えば下限値Ｐｉｍｉｎ＝０．８Ｐｉｏ等）に到達しているかどうかを判定することにより判定することとしてもよいし、後述する優先順位ｙを初期値１に戻す回数をカウントして当該カウントが所定のしきい値に達したかどうかを判定することにより判定することとしてもよい。
【００４４】
関連パラメータの各値Ｐｉが下限値に到達している場合（ステップＳ１２でＹｅｓ）、シミュレーション実施部３４は、暫定動作可能な組み合わせの数Ｎが０か否かを判定する（ステップＳ１３）。暫定動作可能な組み合わせの数Ｎが０でない場合、すなわち、暫定動作可能な組み合わせが少なくとも１つ抽出できた場合（ステップＳ１３でＮｏ）、本抽出処理は終了する。一方、暫定動作可能な組み合わせの数Ｎが０である場合、すなわち、暫定動作可能な組み合わせが１つも抽出できなかった場合（ステップＳ１３でＹｅｓ）、ロボット制御装置３は、本抽出処理を中止し、ロボット２を停止させるロボット停止処理を継続する（図２のステップＱ４でＮｏ→ステップＱ８）。
【００４５】
優先順位ｙが関連パラメータ群ＧＰの数Ｉに達しており、関連パラメータの各値Ｐｉが下限値に到達していない場合（ステップＳ１２でＮｏ）、シミュレーション実施部３４は、優先順位ｙを１に戻し（ステップＳ４）、優先順位が１番目のパラメータＰｉを再度式（１）で置き換える（ステップＳ５）。すなわち、２回目の置き換えた際の関連パラメータの値は、通常動作時の関連パラメータの値Ｐｉｏに比べて２ｘｉ／１００少ない値となる。以下、同様に、ステップＳ６〜Ｓ１３を実行する。
【００４６】
具体例として、速度エラーに関連する制御パラメータがＰ１：最大速度（優先順位１）、Ｐ２：最大加減速度（優先順位３）、およびＰ３：最大動作電流（優先順位２）であるとする（関連パラメータ群ＧＰの数Ｉ＝３）。この場合において、制御値である動作速度がしきい値以上となり異常（速度エラー）と判定された際に、ステップＳ５において優先順位１の最大速度についての関連パラメータＰ１を式（１）を用いて置き換える（例えば通常動作時の９５％の最高速度とする）。その上で、シミュレーション実施部３４は、ステップＳ６の暫定動作シミュレーションを行う。この際、残りの２つの関連パラメータの値Ｐ２，Ｐ３は通常動作時と同じ（１００％の）状態のままである。このシミュレーションの結果、以降の動作状態が異常となれば（ステップＳ７でＹｅｓ）、さらに、優先順位２である最大動作電流についての関連パラメータＰ３を式（１）を用いて置き換える（ステップＳ１１→Ｓ５）。本例ではｘ１＝ｘ２＝ｘ３＝５とすると、最大動作電流についての関連パラメータＰ３は通常動作時の９５％となる。したがって、シミュレーション実施部３４は、関連パラメータＰ１およびＰ３がそれぞれ９５％、関連パラメータＰ２が１００％の状態の暫定動作シミュレーションを行う。
【００４７】
以下、シミュレーションの結果が異常状態とならないような関連パラメータ群ＧＰの組み合わせを見つけるために、各パラメータの値Ｐｉを所定割合ずつ（５％ずつ）下げていく。すべての関連パラメータの値Ｐｉが５％下がってもシミュレーションの結果が異常状態となる場合（ステップＳ１０でＮｏ）には、再び優先順位を１に戻して、優先順位の高い関連パラメータから当該パラメータの値を再度下げる（ステップＳ１０→Ｓ１２→Ｓ４→Ｓ５）。すなわち、通常動作時の９５％だった関連パラメータＰ１を９０％にして、暫定動作シミュレーションを行う。まとめると、シミュレーション実施部３４は、関連パラメータ群ＧＰにおける各関連パラメータ値の組み合わせとして（Ｐ１，Ｐ２，Ｐ３）＝（９５％，１００％，１００％）→（９５％，１００％，９５％）→（９５％，９５％，９５％）→（９０％，９５％，９５％）→（９０％，９５％，９０％）→（９０％，９０％，９０％）→（８５％，９０％，９０％）→…といった順で値を変化させた上で、繰り返し暫定動作シミュレーションを行い、異常とならない組み合わせを抽出する。
【００４８】
なお、変更後の各関連パラメータの値が所定の範囲外（例えば初期値Ｐｉｏの８０％以下）となっても異常状態とならない組み合わせが実現できない場合には、ロボット制御装置３は、暫定動作を行わず、ロボット２に対する停止処理を継続させる。
【００４９】
制御パラメータ設定部３５は、複数の制御パラメータの値をロボット２の動作状態が異常とならないような値に設定する。本実施形態において、制御パラメータ設定部３５は、以上のような暫定動作シミュレーションの結果、抽出された少なくとも１つの関連パラメータ群ＧＰの中から暫定動作に用いる関連パラメータ群ＧＰを選択し、当該関連パラメータ群ＧＰの各値を暫定動作における制御パラメータとして設定することにより、暫定動作に関連して予め定められた優先度に基づいて、複数の制御パラメータの値が設定される。例えば、一番先に抽出された制御パラメータの組み合わせが暫定動作における制御パラメータとして採用される。動作制御部３６は、ロボット停止処理を解除しつつ、設定された複数の制御パラメータを用いてロボット２を制御する制御指令（指令値）を生成し、ロボット２に送信する（図２のステップＱ６，Ｑ７）。このようにしてロボット制御装置３は、ロボット２において異常が発生した場合でも、所定の工程が終了するまでロボット２を暫定動作させるように制御する。
【００５０】
なお、暫定動作させる期間は、１サイクルの工程が終了するまでとしてもよいし、予め設定された複数サイクルの工程が終了するまでとしてもよい。例えば、ロボット２が１０回同じ工程を繰り返すように予め設定されていた場合において、６回目の途中で動作異常が生じた場合、６回目の工程の終了まで暫定動作させることとしてもよいし、さらに、１０回目の工程の終了まで暫定動作させることとしてもよい。
【００５１】
上記構成によれば、ロボット２の動作状態が異常と判定された場合に、異常となった制御値から異常の要因を特定し、当該異常の要因に関連する複数の制御パラメータを変数として、当該異常と判定した時点以降のロボット２の動作についてのシミュレーションが行われる。このシミュレーションの結果に応じて、以降のロボット２の動作状態が異常とならない複数の制御パラメータの値の組み合わせが少なくとも１つ抽出される。これにより、異常が生じた要因に応じた暫定動作の態様を自動的に見つけ出すことができ、異常を回避するような暫定動作を実現することができる。また、暫定動作に関連して予め定められた優先度に基づいて暫定動作において用いる制御パラメータの値の組み合わせが選択されるため、異常の要因に応じて暫定動作を最適化することができるとともに、最適な暫定動作を迅速に開始することができる。
【００５２】
具体的には、例えば、通常動作時は、サイクルタイムを短くすることを最優先として最大負荷および最大加減速度を高めに設定しているのに対し、負荷が異常と判定された場合に、負荷低減を優先したい状況となる。ここで、負荷低減のためには、最大負荷のみを低くするのか、最大負荷および最大速度を低くするのか、最大負荷および最大加減速度を低くするのか、最大速度および最大加減速度を低くするのかなど、暫定動作として採用し得る関連パラメータの組み合わせが複数存在する場合がある。このため、本実施形態においては上述したような優先順位に基づく暫定動作シミュレーションを行うことにより、異常状態を回避するような暫定動作における関連パラメータの値の最適な組み合わせを短時間で抽出することができる。
【００５３】
また、異常判定部３２がロボット２の動作状態を異常と判定した場合に、ロボット２の制御を停止させないこととしてもよい。これにより、異常と判定された場合でも速やかに暫定動作に移行して時間的ロスを少なくすることができる。
【００５４】
＜変形例＞
上記実施形態においては、優先順位が高い順に関連パラメータの値を変更し、シミュレーションを行うことにより、異常とならない関連パラメータの値の組み合わせを１つ抽出した場合には、それをそのまま暫定動作における制御パラメータとして使用することにより、暫定動作に関連して予め定められた優先度に基づいて複数の制御パラメータの値が設定される態様（暫定動作に関連する優先度＝関連パラメータの優先順位となる態様）について説明したが、これには限られない。
【００５５】
例えば、シミュレーション実施部３４がロボット２の動作状態が異常とならないようにする制御パラメータの値の組み合わせを複数抽出することとし、制御パラメータ設定部３５が、複数の評価項目（暫定動作時に考えられるリスクなど）を予め定められた重み付けに基づいて評価することにより、抽出された複数の組み合わせの中から暫定動作において用いる制御パラメータの値の組み合わせを選択してもよい。
【００５６】
この場合、まず、ロボット制御装置２は、図３に示すような暫定動作可能な関連パラメータ群の抽出処理と同様の処理を行う。ただし、本変形例においては、異常判定時点以降の動作が異常とならない関連パラメータ群ＧＰが１つ抽出できても、そこで処理を終了せず、各関連パラメータの値を所定の範囲内で変化させた場合の関連パラメータの値の組み合わせについて暫定動作シミュレーションを行い、異常判定時点以降の動作が異常とならない関連パラメータ群ＧＰをすべて記憶部３ｂに記憶する。したがって、本変形例においては上記実施形態のように優先順位がより高い関連パラメータの変更後の値を必ずしも使用しなくてよい。例えば、優先順位がより高い関連パラメータＰｉが初期値Ｐｉｏから変更された後であっても（例えばＰｉ＝０．９５Ｐｉｏに変更された後であっても）、それ以降の暫定動作シミュレーションの際に、当該関連パラメータＰｉにおいて変更前の値（例えば初期値Ｐｉｏ）を使用することとしてもよい。以下では、このようなシミュレーション態様に基づいて説明する。
【００５７】
ここでは、異常判定時点以降の動作が異常とならない関連パラメータ群ＧＰをＨ個抽出するように暫定動作シミュレーションを行う場合を例示する。このときの各関連パラメータ群をＧＰｈ［Ｐ１ｈ，Ｐ２ｈ，…，Ｐｉｈ，ＰＩｈ］（ｈ：１〜Ｈ）と表す。また、複数（Ｊ個）の評価項目Ｒｊｈが予め設定されているとすると、評価項目Ｒｊｈは以下の式で表せる。
【００５８】
【数２】
2014121759.tif 000004
【００５９】
ここで、Ｓｉｊは、ｊ番目の評価項目における関連パラメータＰｉに関する評価係数を示す。評価係数Ｓｉｊは、各評価項目について関連パラメータＰｉごとに独立して予め定められ、例えば０．５〜２．０の範囲で設定される。評価係数が大きいほど、対応する評価項目に関して、当該評価係数が掛けられる関連パラメータＰｉにおける優先度が高い（リスクが大きくなり易い）と言える。また、Ｐｉｈ０は、各関連パラメータにおける通常動作時（１００％動作時）のパラメータの値を示す。
【００６０】
複数の評価項目としては、例えば安全性（Ｒ１）、ロボット故障率（Ｒ２）、サイクルタイム（Ｒ３）、暫定動作時間（Ｒ４）、ロボット動作を継続する必要度（Ｒ５）等が挙げられる。安全性とは、ロボット２がロボット２以外の物（他のロボットや壁など）と衝突した場合の衝撃度を意味する。例えば、異常の要因が速度エラーである場合、衝撃度に直接関係する最大速度および最大加減速度については評価係数が大きくなり、最大動作電流については評価係数が小さくなる。
【００６１】
ロボット故障率とは、ロボットへのダメージの尺度を意味する。例えば、異常の要因が負荷エラーである場合、最大速度を低減してもロボット２へのダメージは大して変わらないが、最大加減速度および負荷を低減するとロボット２へのダメージがより軽減される。このため、負荷エラーの際のロボット故障率における最大速度に関する評価係数は小さくなり、最大加減速度および負荷に関する評価係数が大きくなる。また、サイクルタイムとは、前述の通り、ロボット２の一連の動作工程における所要時間を意味する。例えば、異常の要因が速度エラーである場合、サイクルタイムに直接反映される最大速度および最大加減速度については評価係数が大きくなり、最大動作電流については評価係数が小さくなる。暫定動作時間とは、暫定動作の終了までに要する時間を意味する。暫定動作時間についても、サイクルタイムと同様、異常の要因が速度エラーである場合、サイクルタイムに直接反映される最大速度および最大加減速度に関する評価係数は大きくなり、最大動作電流および最大動作電圧に関する評価係数は小さくなる。
【００６２】
ロボット動作を継続する必要度とは、ユーザにおける当該ロボット２の作業工程の重要度を意味する。例えば、ロボット２が複数設けられ、複数のロボットが連動して１つの工程（ライン作業）を行うような場合には、必要度が高く、ロボット２がスタンドアローンで使用されているような場合には、必要度が低く設定される。このため、例えば異常の要因が速度エラーである場合、他のロボットとの協調性が必要な場合には、ロボット２の動作速度をなるべく維持する必要性から、最大速度および最大加減速度に関する評価係数は小さくなり、最大動作電流に関する評価係数は相対的に大きくなる。
【００６３】
制御パラメータ設定部３５は、このような各評価項目についてそれぞれ上記式（２）を用いてＲｉｊの値を算出する。さらに、制御パラメータ設定部３５は、求められたＲｉｊの値から関連パラメータ群ＧＰｈごとに下記式で表される評価指標Ｔｈを算出する。
【００６４】
【数３】
2014121759.tif 000005
【００６５】
ここで、ｗｊは、複数の評価項目Ｒ１〜ＲＪにおける評価項目Ｒｊの重み係数を示す。重み係数ｗｊは、ｗ１＋ｗ２＋…＋ｗＪ＝１とする。重み係数ｗｊは、複数の評価項目のうちどの評価項目を重要視するかによって主にユーザにより設定される。すなわち、例えば、サイクルタイムを重視するなら、サイクルタイムに掛けられる重み係数は、他の評価項目に掛けられる重み係数に対して大きくなり、安全性およびロボット故障率などは重み係数が相対的に小さくなる。また、例えば、安全性を重視するなら、安全性に掛けられる重み係数は、他の評価項目に掛けられる重み係数に対して大きくなり、ロボット故障率およびサイクルタイムなどは重み係数が相対的に小さくなる。
【００６６】
このような式（３）を用いて異常判定時点以降の動作が異常とならない関連パラメータ群ＧＰｈにおける関連パラメータの組み合わせごとに評価指標Ｔｈを算出する。そして、算出された評価指標Ｔｈのうち、最もその値が小さい評価指標となった関連パラメータ群ＧＰｈを暫定動作における制御パラメータとして設定することにより、暫定動作に関連して予め定められた優先度に基づいて、複数の制御パラメータの値が設定される。
【００６７】
以下、具体例として、異常の要因が速度エラーである場合（関連パラメータば、最大速度Ｐ１、最大加減速度Ｐ２および最大動作電流Ｐ３とする場合）に、上記シミュレーションにより、異常判定時点以降の動作が異常とならない関連パラメータ群がＧＰ１［Ｐ１１，Ｐ２１，Ｐ３１］＝［０．９Ｐ１１０，０．９５Ｐ２１０，０．９Ｐ３１０］およびＧＰ２［Ｐ１２，Ｐ２２，Ｐ３２］＝［１．０Ｐ１１０，０．８５Ｐ２１０，０．９Ｐ３１０］の２組（Ｈ＝２）抽出された場合を示す。関連パラメータ群ＧＰ１は、最大速度Ｐ１および最大動作電流Ｐ３を通常動作時の９０%とし、かつ、最大加減速度Ｐ２を通常動作時の９５％とした場合を示し、関連パラメータ群ＧＰ２は、最大速度Ｐ１は通常動作時から変化させず、最大加減速度Ｐ２を通常動作時の８５％とし、かつ、最大動作電流Ｐ３を９０％とした場合を示す。
【００６８】
また、本例においては、評価項目として、安全性Ｒ１、ロボット故障率Ｒ２およびサイクルタイムＲ３を用いる。さらに、速度エラーの際の評価係数Ｓｉｊを各評価項目について関連パラメータＰｉごとに以下のように設定する。
【００６９】
【表１】
2014121759.tif 000006
【００７０】
この場合、式（２）を用いて各評価項目を計算すると、関連パラメータ群ＧＰ１に関して、安全性Ｒ１１＝０．２、ロボット故障率Ｒ２１＝０．２２、サイクルタイムＲ３１＝０．２３となり、関連パラメータ群ＧＰ２に関して、安全性Ｒ１２＝０．２、ロボット故障率Ｒ２２＝０．２５、サイクルタイムＲ３２＝０．２５となる。
【００７１】
さらに、ユーザにより設定される重み係数ｗｊを、安全性Ｒ１に関する重み係数ｗ１：ロボット故障率Ｒ２に関する重み係数ｗ２：サイクルタイムＲ３に関する重み係数ｗ３＝０．５：０．３：０．２とした場合、各評価指標は、関連パラメータ群ＧＰ１に関する評価指標Ｔ１＝０．２１２となり、関連パラメータ群ＧＰ２に関する評価指標Ｔ２＝０．１８０となる。Ｔ２＜Ｔ１であるため、暫定動作に用いる関連パラメータの値として関連パラメータ群ＧＰ２［Ｐ１２，Ｐ２２，Ｐ３２］＝［１．０Ｐ１１０，０．８５Ｐ２１０，０．９Ｐ３１０］を採用すべきという結果が得られる。
【００７２】
一方、上記例においてロボット故障率を優先して、重み係数ｗｊを、ｗ１：ｗ２：ｗ３＝０．３：０．５：０．２とした場合、各評価指標は、関連パラメータ群ＧＰ１に関する評価指標Ｔ１＝０．２１２となり、関連パラメータ群ＧＰ２に関する評価指標Ｔ２＝０．２３５となる。Ｔ１＜Ｔ２であるため、暫定動作に用いる関連パラメータの値として関連パラメータ群ＧＰ１［Ｐ１１，Ｐ２１，Ｐ３１］＝［０．９Ｐ１１０，０．９５Ｐ２１０，０．９Ｐ３１０］を採用すべきという結果が得られる。
【００７３】
このように、本変形例によれば、複数の評価項目を勘案してより最適な暫定動作を採用することができる。
【００７４】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【００７５】
例えば、上記変形例においては、優先順位がより高い関連パラメータＰｉが初期値Ｐｉｏから変更された後であっても、それ以降の暫定動作シミュレーションの際に、当該関連パラメータＰｉにおいて変更前の値を使用する態様について主に説明したが、これに限られない。例えば、図３に示したような、関連パラメータにおいて値が変更された場合に必ず当該変更後の値が使用されるシミュレーション態様によって暫定動作可能な組み合わせを複数抽出した上で、評価係数Ｓｉｊおよび重み係数ｗｊを用いた演算をさらに行うこととしてもよい。
【００７６】
また、上記実施形態および上記変形例においては、異常の要因を特定することにより関連パラメータ群ＧＰを読み出し、読み出された関連パラメータ群ＧＰについて各種演算を行うこととしたが、これに限られない。例えば、異常の要因を選択するための選択係数Ｋを各制御パラメータの値に掛けて演算することとしてもよい。この選択係数Ｋは、特定された異常の要因に関連する制御パラメータに掛けられる選択係数がＫ＝１となり、特定された以上の要因に関連しない制御パラメータに掛けられる選択係数がＫ＝０となるような係数である。具体的には、例えば、制御パラメータとして、最大速度Ｐ１、定常速度Ｐ２、最大加減速度Ｐ３、最大負荷Ｐ４、最大動作電流Ｐ５および最大動作電圧Ｐ６が与えられ、速度エラーの場合における関連パラメータが、最大速度Ｐ１、最大加減速度Ｐ３および最大動作電流Ｐ５である場合には、各制御パラメータＫ１Ｐ１，Ｋ２Ｐ２，Ｋ３Ｐ３，Ｋ４Ｐ４，Ｋ５Ｐ５，Ｋ６Ｐ６において、Ｋ１＝Ｋ３＝Ｋ５＝１，Ｋ２，Ｋ４，Ｋ６＝０となるため、関連パラメータ群ＧＰ＝［Ｐ１，０，Ｐ３，０，Ｐ５］が設定される。これにより、全制御パラメータのうち関連パラメータＰ１，Ｐ３，Ｐ５のみを各種の演算に実質的に関与させることができる。
【産業上の利用可能性】
【００７７】
本発明のロボット制御装置およびロボット制御方法は、ロボットに異常が発生した場合に、当該異常を回避するような暫定動作を実現するために有用である。
【符号の説明】
【００７８】
１  ロボット制御システム
２  ロボット
３  ロボット制御装置
３ａ  制御部
３ｂ  記憶部
３１  検知部
３２  異常判定部
３３  異常要因特定部
３４  シミュレーション実施部
３５  制御パラメータ設定部
３５  動作制御部
【図１】
2014121759.tif 000007
【図２】
2014121759.tif 000008
【図３】
2014121759.tif 000009