(57)【要約】  ロボットＡに設けられたエンコーダ５の異常を検出する異常検出方法は、モータ４の回転位置を指示するコントローラ７から出力された指令位置情報に基づく補正位置情報を、またエンコーダ５から出力される出力信号をそれぞれ取得する情報取得ステップと、補正位置情報とエンコーダ５からの出力信号に基づく検出位置情報とを比較し、補正位置情報と検出位置情報との間に所定値以上の差があった場合にエンコーダ５の異常と判定する異常判定ステップを備えている。コントローラ７は、指令位置情報から取付負荷１３の重量に応じたロボットＡの起振成分を除去し、かつ時間遅れを補償して補正位置情報を得る。
2019220719.tif 000002
【特許請求の範囲】
【請求項１】
作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、
前記モータの回転位置を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、前記コントローラから出力される前記速度指令及び前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、前記エンコーダの異常を検出する異常検出装置とが設けられており、
前記異常検出装置は、
前記コントローラから、前記作動装置の起振成分が除去され、かつ前記モータの駆動制御の遅れに起因する時間遅れが補償された補正位置情報を、また前記エンコーダから前記出力信号をそれぞれ取得する情報取得ステップと、
前記補正位置情報と前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記補正位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダの異常と判定する異常判定ステップとを行い、
前記コントローラは、前記指令位置情報から前記作動装置が保持する取付負荷の重量に応じた起振成分を除去し、かつ前記時間遅れを補償して前記補正位置情報を得ることを特徴とするエンコーダの異常検出方法。
【請求項２】
請求項１に記載のエンコーダの異常検出方法において、
前記コントローラは、
前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、
当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、
前記異常検出装置は、前記駆動制御モードに応じた処理ルートで処理された前記指令位置情報または前記補正位置情報を受け取ることを特徴とするエンコーダの異常検出方法。
【請求項３】
請求項２に記載のエンコーダの異常検出方法において、
前記処理ルートの切り替えに応じて、前記指令位置情報の時間遅れ補償量と前記補正位置情報と時間遅れ補償量とが異なることを特徴とするエンコーダの異常検出方法。
【請求項４】
請求項１に記載のエンコーダの異常検出方法において、
前記コントローラは、
前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、
当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、
検知された実際の駆動制御モードに対応する第１処理ルートでは、前記コントローラから出力された前記指令位置情報を処理するステップと、
当該実際の駆動制御モードに対応していない第２処理ルートでは、前記モータの原点位置に対応する位置情報を指令位置情報とし、当該指令位置情報を処理するステップと、
前記第１処理ルートで処理された前記指令位置情報と前記補正位置情報とを加算し、前記第２処理ルートで処理された前記指令位置情報とは前記補正位置情報とを加算する加算ステップと、を有し、
前記異常検出装置は、加算ステップで加算された指令位置情報及び補正位置情報を受け取ることを特徴とするエンコーダの異常検出方法。
【請求項５】
請求項４に記載のエンコーダの異常検出方法において、
前記第１処理ルート、または前記第２処理ルートの少なくともいずれか一方において、前記指令位置情報の時間遅れを補償する遅れ補償ステップを行い、当該遅れ補償ステップにおいてフィードフォワード制御を行うことを特徴とするエンコーダの異常検出方法。
【請求項６】
請求項１ないし５のいずれか１項に記載のエンコーダの異常検出方法において、
前記作動装置を非常停止するための安全回路がさらに設けられており、
前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、
前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記補正位置情報と前記検出位置情報との間に所定値以上の差があっても、前記エンコーダの異常と判定しないことを特徴とするエンコーダの異常検出方法。
【請求項７】
請求項１ないし６のいずれか１項に記載のエンコーダの異常検出方法において、
前記作動装置はロボットであることを特徴とするエンコーダの異常検出方法。
【請求項８】
作動装置の出力軸を駆動するモータを制御する作動制御装置であって、
前記モータの回転位置を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、
前記コントローラから出力される速度指令及び前記モータの回転位置を検出するためのエンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、
前記エンコーダの異常を検出する異常検出装置と、
前記指令位置情報から前記作動装置の起振成分を除去するための制振フィルタと、
前記指令位置情報に対して前記モータの駆動制御の遅れに起因する時間遅れを補償するための遅れ制御フィルタと、を備え、
前記制振フィルタは、互いに異なるフィルタ定数を有する複数のフィルタの組で構成され、
前記遅れ制御フィルタは、互いに異なる時定数を有する複数のフィルタの組で構成され、
前記コントローラは、
前記制振フィルタにおける複数のフィルタのうち、前記作動装置が保持する取付負荷の重量に応じたフィルタ定数を有するフィルタを選択する制振フィルタ適用判定部を有し、
前記異常検出装置は、
前記エンコーダから前記出力信号を受ける第１受信部と、
前記コントローラから前記指令位置情報を受け取るか、または前記制振フィルタ適用判定部で選択された制振フィルタと前記遅れ制御フィルタとを経由した補正位置情報を受け取る第２受信部と、
前記補正位置情報と前記出力信号に基づいて算出される前記モータの検出位置情報とを比較し、前記補正位置情報または前記指令位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダが異常であると判定する判定部とを有することを特徴とする作動制御装置。
【請求項９】
請求項８に記載の作動制御装置において、
前記コントローラは、
前記遅れフィルタにおける複数のフィルタのうち、前記制振フィルタ適用判定部で選択された制振フィルタのフィルタ定数に対応する時定数を有するフィルタを選択する遅れ制御フィルタ適用判定部をさらに有し、
前記第２受信部は、前記コントローラから前記指令位置情報を受け取るか、または前記制振フィルタ適用判定部で選択された制振フィルタと前記遅れ制御フィルタ適用判定部で選択された遅れ制御フィルタとを経由した補正位置情報を受け取ることを特徴とする作動制御装置。
【請求項１０】
請求項８または９に記載の作動制御装置において、
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知し、前記コントローラから送信される前記指令位置情報の処理ルートを切り替える制御切替部を有し、
前記コントローラと前記第２受信部との間に、前記モータの駆動制御の遅れを補償する第１遅れ制御フィルタと前記制振フィルタとが直列接続される一方、前記第１遅れ制御フィルタと並列に前記モータの駆動制御の遅れを補償する第２遅れ制御フィルタが設けられており、
前記制御切替部での処理ルートの切り替えに応じて、前記指令位置情報が、直列接続された前記第１遅れ制御フィルタ及び前記制振フィルタまたは前記第２遅れ制御フィルタに送られるように構成されていることを特徴とする作動制御装置。
【請求項１１】
請求項１０に記載の作動制御装置において、
前記第１遅れ制御フィルタと前記第２遅れ制御フィルタとで、時定数が互いに異なることを特徴とする作動制御装置。
【請求項１２】
出力軸と該出力軸を駆動するモータとを少なくとも有するロボット機構部と、
前記モータの回転位置を検出するためのエンコーダと、
前記モータの駆動を制御する一方、前記エンコーダの異常を検出する請求項８ないし１１のいずれか１項に記載の作動制御装置と、を少なくとも備えたことを特徴とするロボット。
【請求項１３】
第１ロボットと前記第１ロボットのコントローラから送られる指令情報に基づいて前記第１ロボットと協調して動作する１または複数の第２ロボットとを備えたロボットシステムであって、
前記第１ロボット及び前記第２ロボットは、請求項１２に記載のロボットであり、
前記第１ロボットのコントローラは、
前記第１ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第１周波数と前記第２ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第２周波数と比較し、
前記第１周波数が前記第２周波数以下であれば、前記第１ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第１ロボット及び前記第２ロボットに適用し、
前記第１周波数が前記第２周波数よりも高ければ、前記第２ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第１ロボット及び前記第２ロボットに適用することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、エンコーダの異常を検出する異常検出方法に関し、特に、ロボット等の作動装置の出力軸の駆動に係るモータの回転位置を検出するエンコーダの異常検出方法及び当該異常検出機能を備えた作動制御装置、ロボット、ロボットシステムに関する。
【背景技術】
【０００２】
従来からロボット等の作動装置の出力軸を駆動するモータの回転位置を検出するために用いられるエンコーダの故障に係る異常検出技術が知られている。【０００３】
特許文献１には、モータの入力軸の回転を検出する第１のエンコーダと、モータの出力軸の回転を検出する第２のエンコーダを設け、この２つのエンコーダで検出された位置測定値に一定以上の差がある場合にエンコーダの異常と判定する技術が開示されている。【０００４】
また、特許文献２には、モータが正常に制御されていることを監視するセーフティユニットを備えるサーボシステムが開示されている。特許文献２に係るセーフティユニットは、モータを制御しているサーボドライバから受けた指令値やフィードバック値が異常である場合に、上記サーボドライバへの停止信号を生成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５６７５７６１号公報
【特許文献２】特許第５３６７６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、汎用の作動装置の駆動系（モータ）では単一のエンコーダしか設けられていないものも多く、特許文献１に開示された技術は、これらの汎用モータに対して適用できないという問題がある。また、新規に特許文献１に係るシステムを構成する場合においても、複数のセンサを設ける必要があるため、コストが高くなる。【０００７】
特許文献２に開示された技術においても、異常検出機能を有していない汎用のシステムに対して適用する場合に、サーボドライバに新しい機能を追加する必要があり、サーボドライバ及びセーフティユニット双方の開発が必要である。すなわち、工数がかかるという問題がある。【０００８】
例えば、エンコーダの異常検出装置を有していない汎用ロボットに対して特許文献２に示すような構成を適用する場合、汎用ロボットのサーボドライバは、通常、モータ指令値及びモータ検出値を生成する機能及び生成したモータ指令値及びモータ検出値を出力する機能を有していない。【０００９】
したがって、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み（回路、プログラム、表示等）が必要である。すなわち、手間がかかるとともに処理が複雑化するという問題がある。【００１０】
さらに、ロボットを動作させる場合に、意図しない振動を生じる場合がある。これはロボットアームが動作するときの移動周波数が、ロボットの固有振動数に近づくためであり、通常、この固有振動数を含む所定の周波数帯域を避けてロボットを作動させるか、ロボットを動作させる速度指令等に含まれる当該周波数帯域の成分（以下、起振成分と呼ぶことがある。）をフィルタ等で除去してロボットアームを駆動させる。また、ロボットアームに把持される負荷やロボットアームに取付けられる付属機構等の影響で、ロボットの固有振動数が当初の値より変化することがあるため、フィルタ定数を負荷等の重量に応じて切り替えることで、サーボドライバに送られる速度指令から起振成分を適切に除去している。【００１１】
しかし、セーフティユニットに送られる情報に対しては、通常、このようなフィルタ定数の切替は行われないため、サーボドライバ側で上記の切替が起こった場合に、セーフティユニットがエンコーダの異常を誤検出するおそれがあった。【００１２】
本開示はかかる点に鑑みてなされたもので、その目的は、既存のシステムへの影響を抑えつつ、一般的なエンコーダを使用したシステムに適用可能で、かつロボットに保持される取付負荷の影響を抑制可能なエンコーダの異常検出方法及び作動制御装置、ロボット、ロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
ここに開示する異常検出方法は、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、前記モータの回転位置を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、前記コントローラから出力される前記速度指令及び前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、前記エンコーダの異常を検出する異常検出装置とが設けられており、前記異常検出装置は、前記コントローラから、前記作動装置の起振成分が除去され、かつ前記モータの駆動制御の遅れに起因する時間遅れが補償された補正位置情報を、また前記エンコーダから前記出力信号をそれぞれ取得する情報取得ステップと、前記補正位置情報と前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記補正位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダの異常と判定する異常判定ステップとを行い、前記コントローラは、前記指令位置情報から前記作動装置が保持する取付負荷の重量に応じた起振成分を除去し、かつ前記時間遅れを補償して前記補正位置情報を得ることを特徴とする。【００１４】
この方法によれば、異常検出装置は、コントローラから受けた指令位置情報に基づいた、起振成分や制御遅れの影響を低減した補正位置情報と、エンコーダからの出力信号に基づいて算出された検出位置情報との比較結果に基づいてエンコーダの異常を判定する。これにより、ドライバにエンコーダの異常検出のための新しい構成、機能を追加することなく、エンコーダの異常検出ができるようになる。すなわち、例えば、一般的な作動装置（例えば、ロボットや外部軸）の既存構成、既存回路への影響を最小限に抑えて、エンコーダの異常検出ができるようになる。また、エンコーダにおける誤検出を抑制し、高精度でエンコーダの異常を検出することができる。また、作動装置が保持する取付負荷の重量に応じた補正を異常検出装置が受け取る指令位置情報に対して行うことにより、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。【００１５】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、前記異常検出装置は、前記駆動制御モードに応じた処理ルートで処理された前記指令位置情報または前記補正位置情報を受け取るようにしてもよい。【００１６】
この方法によれば、作動装置の駆動制御モードの違いに伴う指令位置情報または補正位置情報と検出位置情報との誤差を低減し、エンコーダの異常検出精度を高めることができる。【００１７】
前記処理ルートの切り替えに応じて、前記指令位置情報の時間遅れ補償量と前記補正位置情報と時間遅れ補償量とが異なっていてもよい。【００１８】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、検知された実際の駆動制御モードに対応する第１処理ルートでは、前記コントローラから出力された前記指令位置情報を処理するステップと、当該実際の駆動制御モードに対応していない第２処理ルートでは、前記モータの原点位置に対応する位置情報を指令位置情報とし、当該指令位置情報を処理するステップと、前記第１処理ルートで処理された前記指令位置情報と前記補正位置情報とを加算し、前記第２処理ルートで処理された前記指令位置情報とは前記補正位置情報とを加算する加算ステップと、を有し、前記異常検出装置は、加算ステップで加算された指令位置情報及び補正位置情報を受け取るようにしてもよい。【００１９】
この方法によれば、作動装置の駆動制御モード切り替えにより、指令処理情報の処理ルートが異なる場合においても、当該処理モードの違いによる応答遅れ時間の差異を吸収し、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。【００２０】
前記第１処理ルート、または前記第２処理ルートの少なくともいずれか一方において、前記指令位置情報の時間遅れを補償する遅れ補償ステップを行い、当該遅れ補償ステップにおいてフィードフォワード制御を行ってもよい。【００２１】
この方法によれば、時間遅れ補償時の誤差をさらに低減し、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。【００２２】
前記作動装置を非常停止するための安全回路がさらに設けられており、前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記補正位置情報と前記検出位置情報との間に所定値以上の差があっても、前記エンコーダの異常と判定しないこととしてもよい。【００２３】
この方法によれば、コントローラが非常停止信号を出力した後に、指令位置情報または補正位置情報と検出位置情報との間に所定値以上の差があった場合でもエンコーダの異常と判定しないので、例えば、コントローラが非常停止信号出力後に速度指令及び指令位置情報の出力を停止した場合に、エンコーダが正常に動作しているにも拘わらず、エンコーダの異常と判断することを防ぐことができる。【００２４】
ここに開示する作動制御装置は、作動装置の出力軸を駆動するモータを制御する作動制御装置であって、前記モータの回転位置を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、前記コントローラから出力される速度指令及び前記モータの回転位置を検出するためのエンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、前記エンコーダの異常を検出する異常検出装置と、前記指令位置情報から前記作動装置の起振成分を除去するための制振フィルタと、前記指令位置情報に対して前記モータの駆動制御の遅れに起因する時間遅れを補償するための遅れ制御フィルタと、を備え、前記制振フィルタは、互いに異なるフィルタ定数を有する複数のフィルタの組で構成され、前記遅れ制御フィルタは、互いに異なる時定数を有する複数のフィルタの組で構成され、前記コントローラは、前記制振フィルタにおける複数のフィルタのうち、前記作動装置が保持する取付負荷の重量に応じたフィルタ定数を有するフィルタを選択する制振フィルタ適用判定部を有し、前記異常検出装置は、前記エンコーダから前記出力信号を受ける第１受信部と、前記コントローラから前記指令位置情報を受け取るか、または前記制振フィルタ適用判定部で選択された制振フィルタと前記遅れ制御フィルタとを経由した補正位置情報を受け取る第２受信部と、前記補正位置情報と前記出力信号に基づいて算出される前記モータの検出位置情報とを比較し、前記補正位置情報または前記指令位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダが異常であると判定する判定部とを有することを特徴とする。【００２５】
この構成によれば、前述の異常検出方法と同様に、ドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。また、作動装置が保持する取付負荷の重量に影響されることなく、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。【００２６】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知し、前記コントローラから送信される前記指令位置情報の処理ルートを切り替える制御切替部を有し、前記コントローラと前記第２受信部との間に、前記モータの駆動制御の遅れを補償する第１遅れ制御フィルタと前記制振フィルタとが直列接続される一方、前記第１遅れ制御フィルタと並列に前記モータの駆動制御の遅れを補償する第２遅れ制御フィルタが設けられており、前記制御切替部での処理ルートの切り替えに応じて、前記指令位置情報が、直列接続された前記第１遅れ制御フィルタ及び前記制振フィルタまたは前記第２遅れ制御フィルタに送られるように構成されていてもよい。【００２７】
この構成によれば、作動装置の駆動制御モードの違いに伴う指令位置情報または補正位置情報と検出位置情報との誤差を低減し、エンコーダの異常検出精度を高めることができる。【００２８】
前記第１遅れ制御フィルタと前記第２遅れ制御フィルタとで、時定数が互いに異なっていてもよい。【００２９】
ここに開示するロボットは、出力軸と該出力軸を駆動するモータとを少なくとも有するロボット機構部と、前記モータの回転位置を検出するためのエンコーダと、前記モータの駆動を制御する一方、前記エンコーダの異常を検出する上記の作動制御装置と、を少なくとも備えたことを特徴とする。【００３０】
この構成によれば、ドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。また、ロボットが保持する取付負荷の重量に大きく影響されることなく、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。【００３１】
また、ここに開示するロボットシステムは、第１ロボットと前記第１ロボットのコントローラから送られる指令情報に基づいて前記第１ロボットと協調して動作する１または複数の第２ロボットとを備えたロボットシステムであって、前記第１ロボット及び前記第２ロボットは、上記のロボットであり、前記第１ロボットのコントローラは、前記第１ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第１周波数と前記第２ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第２周波数と比較し、前記第１周波数が前記第２周波数以下であれば、前記第１ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第１ロボット及び前記第２ロボットに適用し、前記第１周波数が前記第２周波数よりも高ければ、前記第２ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第１ロボット及び前記第２ロボットに適用することを特徴とする。【００３２】
この構成によれば、複数のロボットを協調制御するシステムにおいて、個々のロボットが保持する取付負荷の重量の違いに大きく影響されることなく、システム内の各々のロボットで、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。また、各々のドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。
【発明の効果】
【００３３】
以上説明したように、本開示のエンコーダの異常検出方法及び作動制御装置によると、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判断をすることができる。また、作動装置が保持する取付負荷の重量に大きく影響されることなく、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。
【図面の簡単な説明】
【００３４】
【図１】図１は、実施形態１に係るロボットの概略構成図である。
【図２】図２は、実施形態１に係るロボット制御部の構成を示すブロック図である。
【図３】図３は、セーフティユニットの構成を示すブロック図である。
【図４】図４は、実施形態１に係るエンコーダの異常判断方法を示すフローチャートである。
【図５】図５は、制振フィルタ及び１次遅れフィルタの切替手順を示すフローチャートである。
【図６】図６は、制振フィルタ及び１次遅れフィルタの切替に関するブロック図である。
【図７】図７は、変形例１に係るエンコーダの異常判断方法を示すフローチャートである。
【図８】図８は、実施形態２に係るロボット制御部の構成を示すブロック図である。
【図９】図９は、実施形態２に係るエンコーダの異常判断方法を示すフローチャートである。
【図１０】図１０は、実施形態３に係るロボット制御部の構成を示すブロック図である。
【図１１】図１１は、実施形態３に係るエンコーダの異常判断方法を示すフローチャートである。
【図１２】図１２は、変形例２に係るロボット制御部の構成を示すブロック図である。
【図１３】図１３は、実施形態４に係るロボットシステムの概略構成図である。
【図１４】図１４は、実施形態４に係るロボットシステムで使用される制振フィルタの設定手順を示すフローチャートである。
【発明を実施するための形態】
【００３５】
以下、本開示の実施形態を図面に基づいて詳細に説明する。以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものでは全くない。
【００３６】
（実施形態１）
［ロボット及びその制御系の構成］
図１は、本実施形態に係る作動装置としてのロボットの概略構成を示す。また、図２はロボット制御部２の構成を示すブロック図であり、情報又は信号の送信方向がわかるように矢印を記載している。
【００３７】
図１に示すように、ロボットＡは、ロボット機構部１と、ロボット制御部２と、ディスプレイ付きの操作部３とによって構成されている。ロボット機構部１とロボット制御部２との間は、接続ケーブルＣＢによって接続されている。なお、図１では、接続ケーブルＣＢによる有線接続によって情報が伝達されるものとしているが、接続形態は有線接続に限定されず、無線で接続してもよい。各ブロック間の接続も同様である。
【００３８】
ロボット機構部１は、複数のロボットアーム１１および複数の関節軸１２を有している。各ロボットアーム１１には、それぞれ、ロボットアーム１１を動作させるためのモータ４が取り付けられている。例えば、ロボットＡが垂直多関節６軸ロボットである場合、６個のロボットアーム１１を有し、各ロボットアーム１１に対応するように６個のモータ４が設けられている。各モータ４には、各モータ４の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ５が取り付けられている。また、ロボットアーム１１の先端には所定の重量を有する負荷１３が把持されている。なお、負荷１３には、ロボットアーム１１で把持される負荷以外にも、ロボットアーム１１に取付けられるワイヤ供給部等の付属機構や部品が含まれる。なお、以降の説明において、負荷１３を「取付負荷１３」と呼ぶことがあり、取付負荷１３はロボットＡのロボットアーム１１に保持されている。
【００３９】
図１では図示しないが、ロボットＡに対して、ロボット制御部２からロボット機構部１への駆動制御に基づいて駆動される外部軸が付設されている。外部軸は、ロボットＡの可動範囲を拡大させるためにロボット機構部１と組み合わせて用いられるものである。外部軸には、外部軸を動作させるためのモータ４が取り付けられている。モータ４には、モータ４の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ５が取り付けられている。すなわち、複数の関節軸１２及び外部軸のそれぞれに対してモータ４が設けられ、各モータ４に対してエンコーダ５が取り付けられる。なお、外部軸の種類は、特に限定されない。例えば、スライダタイプ又はポジショナタイプのどちらであっても本実施形態に係る技術が適用可能であり、それ以外のタイプのものであってもよい。
【００４０】
なお、本実施形態では、発明の理解を容易にするために、複数の関節軸１２に用いるモータ４及びエンコーダ５と、外部軸に用いるモータ４及びエンコーダ５とを区別せずに図示（図１参照）及び説明している。したがって、以下において、モータ４又はエンコーダ５という場合、複数の関節軸１２に用いるものと、外部軸に用いるものとの両方を指すものとする。すなわち、以下において説明するエンコーダ５の異常検出装置及び異常検出方法は、複数の関節軸１２用のモータ４に取り付けられるエンコーダ５と、外部軸用のモータ４に取り付けられるエンコーダ５の両方において適用が可能である。
【００４１】
エンコーダ５は、後述するセーフティユニット９及びサーボドライバ１０に接続されており、セーフティユニット９及びサーボドライバ１０に対して、検出した信号を出力（フィードバック）する。
【００４２】
操作部３は、ロボットＡの操作者の入力操作を受ける入力部（図示しない）とディスプレイ（図示しない）とを備える。操作部３は、操作者からの入力操作に基づいてロボット制御部２との間で通信を行う。これにより、操作者が操作部３を介して、ロボットアーム１１の動作設定や動作制御等を行うことができるようになっている。なお、入力部がタッチパネルで構成され、ディスプレイと入力部とが一体的に構成されていてもよい。
【００４３】
ロボット制御部２は、コントローラ（例えば、ＣＰＵ）７と、ＲＡＭ（Random Access Memory）８と、異常検出装置としてのセーフティユニット９と、各モータ４を駆動させるためのサーボドライバ１０と、セーフティユニット９から非常停止を指示する非常停止信号を受けてロボットＡの駆動用電源（図示しない）を遮断する安全回路（コントローラ）６を備えている。なお、本開示において、ロボット制御システムとは、エンコーダ５と、ロボット制御部２とを備えている。
【００４４】
ＲＡＭ８には、操作者が操作部３によって作成したロボットＡの教示プログラムやロボットＡの機能設定等が格納されている。
【００４５】
コントローラ７は、ＲＡＭ８に格納された上記ロボットＡの教示プログラムやロボットＡの機能設定等に基づいて、サーボドライバ１０に速度指令（単位時間あたりに進む距離）を出力してロボットＡの動作指令を行う。同様に、コントローラ７は、上記速度指令を原点位置から積算し、その積算値を指令位置情報としてセーフティユニット９に出力する。速度指令は、例えば、ロボットＡの減速比、原点位置等に基づいて計算される。
【００４６】
また、コントローラ７とセーフティユニット９、具体的には後述するＤＰＲＡＭ９５との間に、制振フィルタ２１が設けられており、制振フィルタ２１に入力された指令位置情報から起振成分を除去する。
【００４７】
実際のロボットＡの制御において、サーボドライバ１０の動作制御の内容によって、より応答性の高い制御（以下、高応答性制御という）を行う場合がある。例えば、レーザーを用いた溶接ロボットにおいて、高速制御かつ軌跡の追従性を高めた制御を行うような場合である。このような高応答性制御を行う場合に、速度指令に含まれる起振成分によってモータ４、ひいてはロボットＡのロボット機構部１が振動する場合がある。そこで、この振動を抑制するために、サーボドライバ１０とモータ４との間に制振フィルタ２１を用いることがよく行われている。そこで、上記のような高応答性制御が行われている場合に、図２に示すような構成を取ることにより、サーボドライバ１０による制御と近い指令位置情報を作ることができる。
【００４８】
また、コントローラ７とセーフティユニット９、具体的には後述するＤＰＲＡＭ９５との間に、制振フィルタ２１と直列接続された、一般的な制御遅れを考慮した遅れ制御フィルタとしての１次遅れフィルタ２２が設けられている。
【００４９】
実際のロボットＡの制御において、同じ時間で比較した場合に、セーフティユニット９がコントローラ７から取得した指令位置情報に基づくモータ４の回転位置（モータ指令位置）と、セーフティユニット９がエンコーダ５から取得した出力信号等に基づくモータ４の回転位置（モータ検出位置）とがずれている可能性がある。これは、例えば、モータ制御の特性に起因して発生する。具体的には、ロボット制御部２のコントローラ７が速度指令及び指令位置情報を出力してからサーボドライバ１０が実際にモータ４を制御し、その制御に基づいてモータ４が動作するため、一定時間の遅れが生じるためである。一方、図２に示す１次遅れフィルタ２２を設けることにより、モータ指令位置とモータ検出位置との差を大きく減少させることができる。
【００５０】
このように、コントローラ７とセーフティユニット９との間に、直列接続された制振フィルタ２１と１次遅れフィルタ２２とを設けることにより、高精度でエンコーダ５の異常を判断することができるようになる。なお、本開示において、コントローラ７とセーフティユニット９とサーボドライバ１０と制振フィルタ２１と１次遅れフィルタ２２とを総称して作動制御装置と呼ぶことがある。
【００５１】
なお、制振フィルタ２１および１次遅れフィルタ２２は、両方を順不同で直接に備えていてもよい。また、図２において、制振フィルタ２１と１次遅れフィルタ２２との位置が互いに入れ替わってもよく、同様の効果が得られる。
【００５２】
なお、制振フィルタ２１、１次遅れフィルタ２２ともに、起振成分に対応する周波数帯域を除去するためのフィルタ定数や制御の時間遅れに対応する時定数等のパラメータを用いて実現される機能であり、ハードウェア上で実現してもよいし、ソフトウェア上で実現してもよい。例えば、制振フィルタ２１、１次遅れフィルタ２２の各パラメータは、ＲＡＭ８に組み込まれている。また、後述するように、ＲＡＭ８には、互いに異なるフィルタ定数とそれらに対応した時定数等がセットとなった組が複数保存されており、また、コントローラ７内の制振フィルタ適用判定部７ａ及び遅れフィルタ適用判定部７ｂによって、これらの複数の組のうち一の組合わせが選択され、制振フィルタ２１及び１次遅れフィルタ２２にそれぞれ適用される。これらについては後で詳述する（図５，６参照）。
【００５３】
サーボドライバ１０は、コントローラ７から受けた速度指令及びエンコーダ５からの出力信号に基づいてモータ４を制御することにより、ロボットＡの動作を制御する。
【００５４】
セーフティユニット９は、エンコーダ５及びコントローラ７に直接接続されている。そして、エンコーダ５から受けた出力信号に基づいて算出されたモータ４の検出位置情報と、コントローラ７から受けた指令位置情報とに基づいて、エンコーダ５が故障しているか否かを判断する。
【００５５】
図３はセーフティユニット９の構成を示すブロック図を示し、セーフティユニット９は、判定部としてのＣＰＵ９２と、ＲＡＭ９３と、第１受信部としてのエンコーダ受信部９４と、第２受信部としてのＤＰＲＡＭ（Dual Port RAM）９５とを備えている。
【００５６】
エンコーダ受信部９４は、エンコーダ５に接続されており、エンコーダ５からの出力信号を取得する。
【００５７】
ＤＰＲＡＭ９５は、ロボット制御部２のコントローラ７に接続されており、コントローラ７から出力された指令位置情報または後述する補正位置情報を取得する。この指令位置情報は、コントローラ７からサーボドライバ１０に対して出力される速度指令の積算によって求められる。ＤＰＲＡＭ９５が取得した指令位置情報または補正位置情報は、ＲＡＭ９３に格納される。
【００５８】
ＣＰＵ９２は、エンコーダ受信部９４からの出力信号を受けて、その出力信号と、ロボットＡの減速比、原点位置等とを用いてモータ４の現在位置に関する検出位置情報を計算する。そして、指令位置情報または補正位置情報に基づく指令位置と、検出位置情報に基づく検出位置とを比較してエンコーダ５の異常の有無を確認する。
【００５９】
なお、図３において、ＣＰＵ９２、ＲＡＭ９３及びＤＰＲＡＭ９５は、同一の構成で接続され、同一の機能を有するものが２セット設けられている。これにより、２つのＣＰＵ９２を用いた並行処理が可能となる。すなわち、同一の異常判断を２重に行うことができ、１セットの場合と比較して、より信頼性を高めることができる。
【００６０】
［エンコーダの異常検出方法］
図４は、ロボット制御部２がロボットＡを起動させ、ロボットＡが動作を開始した後、セーフティユニット９がエンコーダ５の異常をどのように監視しているかを示したフローチャートである。すなわち、図４は、コントローラ７がサーボドライバ１０を介してモータ４を回転動作させたときに、セーフティユニット９がエンコーダ５の異常をどのように監視しているかを示している。図５は、制振フィルタ及び１次遅れフィルタの切替手順を示し、図４に示す異常検出方法におけるサブルーチンに相当する。また、図６は、制振フィルタ及び１次遅れフィルタの切替に関するブロック図を示す。
【００６１】
以下、エンコーダ５の異常検出方法に関して、図４〜６を参照しながら説明する。
【００６２】
図４のステップＳＴ１において、ロボット制御部２のコントローラ７は、ロボットＡを起動し、図５に示すサブルーチンに進む。なお、図５では、互いに異なるフィルタ定数を有する制振フィルタ２１１〜２１３と、互いに異なる時定数を有する１次遅れフィルタ２２１〜２２３とが準備された例を示している。
【００６３】
図５に示すように、コントローラ７の制振フィルタ適用判定部７ａは、ロボットＡに保持された取付負荷１３がＸｋｇ以上であるか否かを判定する（ステップＳＴ２１）。ロボットＡの動作プログラムには、取付負荷１３の重量値が予め設定されており、この値と、所定のしきい値であるＸとを比較して判定を行う。ステップＳＴ２１での判定結果が肯定的であれば、ステップＳＴ２２に進んで、ロボットＡに保持された取付負荷１３がＹｋｇ以上であるか否かを判定する。制振フィルタ適用判定部７ａは、予め設定された取付負荷１３の重量値と、所定のしきい値であるＹとを比較して判定を行う。なお、しきい値ＸとＹとは互いに異なる値である。
【００６４】
ここで、図６に示すように、制振フィルタ適用判定部７ａは、ステップＳＴ２１及びＳＴ２２での判定結果に基づいて、ＲＡＭ８に保存された複数のフィルタ定数のうち、対応するフィルタ定数を選択して、制振フィルタ２１に適用するように構成されている。言いかえると、制振フィルタ適用判定部７ａは、互いに異なるフィルタ定数を有する複数の制振フィルタ２１１〜２１ｎ（ｎは２以上の整数）の中から対応する１つのフィルタを選択している。このように、ロボットＡの制御に適用する制振フィルタ２１を切り替えることで、指令位置情報から除去される起振成分の周波数帯域を変更することができる。
【００６５】
ステップＳＴ２２での判定結果が肯定的であれば、制振フィルタ適用判定部７ａは、ロボットＡの制御に適用される制振フィルタを制振フィルタ２１２に切り替える（ステップＳＴ２３）。一方、ステップＳＴ２２での判定結果が否定的であれば、ロボットＡの制御に適用される制振フィルタを制振フィルタ２１１に切り替える（ステップＳＴ２５）。また、ステップＳＴ２１での判定結果が否定的であれば、ロボットＡの制御に適用される制振フィルタを制振フィルタ２１３に切り替える（ステップＳＴ２７）。
【００６６】
また、前述したように、制振フィルタ２１のフィルタ定数にそれぞれ対応した時定数が関連付けられてＲＡＭ８に保存されている。言いかえると、図６に示すように、制振フィルタ２１１〜２１ｎのそれぞれに対応して１次遅れフィルタ２２１〜２２ｎが準備されており、遅れフィルタ適用判定部７ｂは、ステップＳＴ２３，ＳＴ２５，ＳＴ２７でそれぞれ選択された制振フィルタ２１１〜２１３に対応した１次遅れフィルタ２２１〜２２３をそれぞれ選択する（ステップＳＴ２４，ＳＴ２６，ＳＴ２８）。
【００６７】
１次遅れフィルタ２２１〜２２３のいずれかが選択された時点で、図５に示すサブルーチンを終了して、図４に示すステップＳＴ２に進む。
【００６８】
ステップＳＴ２において、ロボット制御部２は、操作者が操作部３を介して設定した教示プログラム及び機能設定等に基づいてロボットＡを動作させる。具体的には、コントローラ７は、ＲＡＭ８に保存された教示プログラム及び機能設定等に基づいて、サーボドライバ１０に速度指令を、セーフティユニット９に、指令位置情報を出力する。なお、コントローラ７からサーボドライバ１０に送られる速度指令については、取付負荷１３の重量に応じて変化した起振成分が適切に除去されている。
【００６９】
一方、セーフティユニット９に出力される指令位置情報は、ロボットＡに保持された取付負荷１３の重量に応じて、図５に示す手順によって切り替えられた制振フィルタ２１ｊ（jは整数で、１≦ｊ≦ｎ）によって起振成分が除去され、１次遅れフィルタ２２ｊによって制御遅れ（時間遅れ）が補償されている。また、以降の説明において、当該指令位置情報を補正位置情報と呼ぶことがある。
【００７０】
サーボドライバ１０は、コントローラ７から受けた速度指令に基づいて、モータ４を駆動し、ロボットＡの関節軸１２及び外部軸を動作させる。サーボドライバ１０は、モータ４に取り付けられたエンコーダ５からの出力信号を受け、モータ４に対して、速度指令と出力信号との差分に基づくフィードバック制御を行う。このとき、エンコーダ５からの出力信号は、セーフティユニット９にも出力されている。
【００７１】
セーフティユニット９では、エンコーダ５からの出力信号を取得すると（ＳＴ３）、モータの位置計算を行う（ＳＴ４）。具体的には、セーフティユニット９のＣＰＵ９２は、エンコーダ５から取得した出力信号、モータ４の各軸の減速比及びモータ４の原点情報等に基づいてモータ４の回転位置（現在位置）に変換する位置計算を行う。エンコーダ５から取得する出力信号は、例えばパルス信号の型式で送信される。
【００７２】
さらに、セーフティユニット９では、コントローラ７から制振フィルタ２１及び１次遅れフィルタ２２を介して補正位置情報を受けており（ＳＴ５）、ＳＴ４で算出されたモータ４の現在位置に関する検出位置情報とコントローラ７からの補正位置情報との比較を行う（ＳＴ６）。具体的には、セーフティユニット９のＣＰＵ９２は、エンコーダ５からの出力信号に基づいて計算されたモータ４の回転位置（モータ検出値）と、コントローラ７から指令されたモータの回転位置（モータ指令値）とを比較する。ただし、当該モータ指令値は制振フィルタ２１と１次遅れフィルタ２２とを通過した値である。
【００７３】
ＣＰＵ９２は、上記比較の結果、モータ指令値とモータ検出値との差が所定値以上の場合（ＳＴ７でＹＥＳ）、エンコーダ５の異常と判定し、ステップＳＴ８に進む。一方で、モータ指令値とモータ検出値との差が所定値未満の場合（ＳＴ７でＮＯ）、エンコーダ５の異常と判定せず、フローはステップＳＴ３に戻る。
【００７４】
具体的には、ロボットＡの駆動制御において、コントローラ７が指令した位置にモータ４は移動しようとしている。このため、モータ４の回転位置を示すモータ検出値（検出位置情報）と、コントローラ７が指令した回転位置を示すモータ指令値（補正位置情報）との差は、所定の閾値以内に収まっているはずである。そこで、上記モータ検出値に基づくモータの回転位置が、モータ指令値に基づくモータ指令位置から所定の位置以上離れていると判断した場合に、エンコーダが故障していると判断している。
【００７５】
ステップＳＴ８では、セーフティユニット９のＣＰＵ９２は、安全回路６に対して非常停止信号を送信する。非常停止信号を受けた安全回路６は、ロボットＡの駆動用電源を遮断し、ロボットＡを非常停止させる。
【００７６】
このように、コントローラ７は、ロボットＡを起動させ、ロボットＡに動作を開始させた後、セーフティユニット９がステップＳＴ３〜ＳＴ７の処理を繰り返し実行し、エンコーダ５の異常を判断している。
【００７７】
［効果等］
以上のように、本実施形態によると、セーフティユニット９は、エンコーダ５の異常検出において、制振フィルタ２１及び１次遅れフィルタ２２を介してコントローラ７から取得した補正位置情報とエンコーダ５からの出力信号に基づいて算出された位置情報とを比較した結果に基づいてエンコーダ５の異常を検出している。これにより、エンコーダの異常検出装置を有していない汎用ロボット等の作動装置に対して、セーフティユニット９を追加することでエンコーダの故障による異常を検出することができる。さらに、その際に、サーボドライバ１０等の既存の汎用ロボットの構成要素に対して設計変更等をする必要がなく、既存のシステムに対する影響を小さくすることができる。したがって、既存のシステムに対してエンコーダの異常判断に係る処理が正しく行われることを示す必要がなく、処理が複雑化することもない。
【００７８】
また、コントローラ７とセーフティユニット９との間に、制振フィルタ２１及び１次遅れフィルタ２２を設けることにより、高精度でエンコーダ５の異常を判断することができる。また、制振フィルタ２１１〜２１ｎ及び１次遅れフィルタ２２１〜２２ｎの中から、取付負荷１３の重量に応じて、所望のフィルタの組を選択してコントローラ７からセーフティユニット９に送られる指令位置情報に適用することにより、エンコーダ５の異常検出精度をさらに高めることができる。このことについて、以下に説明する。
【００７９】
前述したように、ロボットＡの動作時の振動を抑制するために、サーボドライバ１０に送られる速度指令からは、ロボットＡの固有振動数に対応した起振成分を除去している。取付負荷１３の重量、例えば、ロボットアーム１１に取り付けるフィーダー等の付属機構やロボットアーム１１が把持する負荷の重量が変化し、ロボットＡの固有振動数が変化した場合も同様である。
【００８０】
しかし、通常、セーフティユニット９に送られる指令位置情報は、予めパラメータが設定された制振フィルタ２１を通過するのみであるから、取付負荷１３の重量が変化した場合に、指令位置情報から起振成分を適切に除去できず、セーフティユニット９において、エンコーダの異常を誤検出する可能性があった。
【００８１】
一方、本実施形態によれば、ロボットＡに保持された取付負荷１３の重量に対応して、起振成分を除去するためのフィルタ定数や制御遅れの時定数等のパラメータをマッチングさせた制振フィルタ２１及び１次遅れフィルタ２２の組に切り替えて、これらのフィルタをコントローラ７からセーフティユニット９に送られる指令位置情報に適用することで、エンコーダ５における誤検出を抑制し、高精度でエンコーダ５の異常を検出することができる。
【００８２】
なお、図５において、ロボットＡの制御及び指定位置情報への適用のために、取付負荷１３の重量に応じて、制振フィルタ２１１〜２１３及び１次遅れフィルタ２２１〜２２３の３つの組から１つの組を選択して、これらを切り替える手順を示したが、選択されるフィルタの組の個数は、特にこれに限定されない。ロボットＡに取付けられる付属機構やロボットアーム１１で把持される負荷等に応じて適宜変更されうる。また、制振フィルタ２１１〜２１ｎにおける個々のパラメータの変化幅や１次遅れフィルタ２２１〜２２ｎにおける個々のパラメータの変化幅も適宜変更されうる。
【００８３】
以上のように、本出願において開示する技術の例示として実施形態１について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。例えば、実施形態１について、以下に示すような構成としてもよい。
【００８４】
＜変形例１＞
また、図４に係る異常判断方法において、図７に示すようなフローとしてもよい。図７において、ステップＳＴ１からＳＴ６に係る処理は、図４と同様であるため、ここではその詳細な説明を省略する。また、ステップＳＴ１とステップＳＴ２との間では、取付負荷１３の重量に応じて、図５に示すように、制振フィルタ２１１〜２１ｎ及び１次遅れフィルタ２２１〜２２ｎから、対応するフィルタの組を選択して、ロボットＡの制御及び指定位置情報への適用のために切り替えることは、実施形態１と同様である。
【００８５】
図７では、ステップＳＴ７において、モータ指令値とモータ検出値との差が所定値以上の場合、すなわち、ステップＳＴ７での判定結果が肯定的な場合に、ステップＳＴ９に進むようにしている。そして、ステップＳＴ９において、セーフティユニット９のＣＰＵ９２が、コントローラ７がロボットＡの非常停止を指示したか否かを判断するようにしている。
【００８６】
具体的には、コントローラ７は、ロボットＡの非常停止をする場合、安全回路６に対して、非常停止信号（図示しない）を出力する。非常停止信号を受けた安全回路６は、ロボットＡの駆動用電源を遮断し、ロボットＡを停止させる。本変形例では、セーフティユニット９は、コントローラ７から非常停止信号を取得する。そして、ステップＳＴ９において、コントローラ７から非常停止信号が出力されているか否かを判断する。ステップＳＴ９での判断結果が肯定的である場合、つまり、コントローラ７から非常停止信号が出力されている場合は、フローはステップＳＴ３に戻る。すなわち、モータ指令値とモータ検出値との差が所定値以上の場合でも、エンコーダ５の異常と判定しない。
【００８７】
一方で、ステップＳＴ９での判断結果が否定的である場合、つまり、コントローラ７から非常停止信号が出力されていない場合は、ステップＳＴ８に進む。ステップＳＴ８において、セーフティユニット９のＣＰＵ９２は、安全回路６に対して非常停止信号を送信し、非常停止信号を受けた安全回路６は、ロボットＡを非常停止させる。
【００８８】
このように、ステップＳＴ９の処理をステップＳＴ７の後に行うことによって、コントローラ７からの指示による非常停止がなされた場合に、セーフティユニット９が、エンコーダ５の異常と誤って判断することがなくなる。具体的には、コントローラ７が非常停止信号を出力することによりロボットＡを停止させた場合、コントローラ７の指令位置情報の出力が停止される。このため、セーフティユニット９において、モータ指令値とモータ検出値との比較を継続すると、エンコーダ５が正常動作しているにもかかわらず、異常と判定してしまう可能性がある。しかしながら、本態様にかかる処理を行うことでこのような問題の発生を防ぐことができる。
【００８９】
なお、図４及び図７のフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更したり、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、ステップＳＴ３及びＳＴ４に係る処理と、ステップＳＴ５に係る処理とは、並列に処理を行ってもよい。
【００９０】
（実施形態２）
本実施形態と実施形態１に示した構成との違いは、高応答性制御と通常制御との切り替えを考慮して指令位置情報の処理ルートを切り替える点にある。
【００９１】
例えば、ロボットＡの手先にレーザー射出装置を付けてレーザー溶接を行う場合等の精度の高い動作が要求されるレーザー溶接区間では、ロボットの駆動に関して高応答性制御を行い、それ以外の速度を優先する区間では通常制御を行うことでタクトを短縮するといった、動的制御切り替えを行う場合がある。指令位置情報と検出位置情報との比較時に生じる誤差を低減するため、制振フィルタ２１や１次遅れフィルタ２２を用いることは既に述べたとおりである。しかし、上記の制御切り替えを行う場合、これらのフィルタをそのまま用いると、実際のロボットＡの動作とセーフティユニット９に与える指令位置情報との差が大きくなり、エンコーダ５の異常検出精度が向上しない場合がある。
【００９２】
そこで、本実施形態では、コントローラ７が実際に行う制御方法に応じて、セーフティユニット９に送信される指令位置情報を処理するルートを切り替えることにより、ロボットＡの制御モードが切り替わっても精度よくエンコーダ５の異常検出ができる構成及び方法を開示する。
【００９３】
図８は、本実施形態に係るロボット制御部の構成を示す。この構成と、例えば、図２に示す構成との違いは、コントローラ７がロボットＡの駆動制御を切り替えるための制御切替部７ｃを有していることである。教示プログラムあるいは操作部３からの入力により、ロボットＡの駆動制御モードが切り替わると、制御切替部７ｃはこれを検知して、指令位置情報を送信するルートを切り替える。図８に示すように、通常制御を行う場合は１次遅れフィルタ２２を適用してから指令位置情報をセーフティユニット９へと送り、高応答性制御を行う場合は、制振フィルタ２１ｊと１次遅れフィルタ２２ｊとを適用して補正位置情報をセーフティユニット９へと送っている。
【００９４】
なお、制御切替部７ｃの機能は、コントローラ７のハードウェア上で実現してもよいし、ソフトウェア上で実現してもよい。
【００９５】
図９は、本実施形態に係るエンコーダ５の異常判断方法を示すフローチャートである。
【００９６】
すなわち、図９は、コントローラ７がサーボドライバ１０を介してモータ４を回転動作させたときに、セーフティユニット９がエンコーダ５の異常をどのように監視しているかを示している。
【００９７】
図９において、ステップＳＴ１，ＳＴ２及びＳＴ６からＳＴ１１に係る処理は、図４に示したステップＳＴ１からＳＴ８と同様であるため、ここではその詳細な説明を省略する。また、ステップＳＴ１とステップＳＴ２との間では、取付負荷１３の重量に応じて、図５に示すように、制振フィルタ２１１〜２１ｎ及び１次遅れフィルタ２２１〜２２ｎから、対応するフィルタの組を選択して、コントローラ７からセーフティユニット９に送られる指令位置情報に適用することは、実施形態１と同様である。
【００９８】
ステップＳＴ３において、ロボットＡの駆動制御モードが高応答性制御であるか、そうでないかを判断する。この判断は、上述したように、コントローラ７における制御切替部７ｃにより行われる。
【００９９】
ステップＳＴ３での判断結果が肯定的である場合、すなわち、ロボットＡの駆動制御モードが高応答性制御であれば、ステップＳＴ４において、制振フィルタ２１ｊと１次遅れフィルタ２２ｊとを適用した上で補正位置情報をセーフティユニット９へ送信する。
【０１００】
ステップＳＴ３での判断結果が否定的である場合、すなわち、ロボットＡの駆動制御モードが通常制御であれば、ステップＳＴ５において１次遅れフィルタ２２を適用した上で指令位置情報をセーフティユニット９へ送信する。
【０１０１】
以上説明したように、本実施形態によれば、ロボットＡの駆動制御モードに応じて、コントローラ７からセーフティユニット９に送られる指令位置情報の送信ルートを切り替えることで、エンコーダ５の異常検出精度を高めることができる。
【０１０２】
例えば、ロボットＡの駆動制御モードが高応答性制御であれば、指令位置情報に含まれる起振成分を除去するための制振フィルタ２１ｊと、制御の応答遅れを低減するための１次遅れフィルタ２２ｊを指令位置情報に適用することで、エンコーダ５の異常検出精度を高めることができる。さらに、取付負荷１３の重量に応じて、所望のフィルタの組を選択し、コントローラ７からセーフティユニット９に送られる指令位置情報に適用することにより、エンコーダ５の異常検出精度をより高めることができる。
【０１０３】
一方、ロボットＡの駆動制御モードが通常制御であれば、指令位置情報に含まれる起振成分の除去をあまり考慮しなくても良いことが多い。よって、制振フィルタ２１は適用せずに、１次遅れフィルタ２２を指令位置情報に適用する。このことにより、不測の誤差の発生を抑制し、エンコーダ５の異常検出精度を高めることができる。
【０１０４】
また、取付負荷１３の重量は、主にロボットＡの起振成分の周波数帯域に影響を与える。従って、取付負荷１３の重量に応じて、フィルタ定数の異なる制振フィルタ２１を選択することで、起振成分の周波数帯域が変化しても、制振フィルタ２１により指令位置情報から適切に起振成分を除去することが可能となる。
【０１０５】
一方、１次遅れフィルタ２２，２２ｊの時定数はそれぞれ異なっていてもよい。モータ４の駆動遅れは、取付負荷１３の重量にあまり影響を受けない。従って、通常制御時に適用される１次遅れフィルタ２２の時定数は、取付負荷１３の重量に関わらず、当初設定時の値が適用される。このようにすることで、ロボット制御装置が簡素化されるとともに安定する。
【０１０６】
（実施形態３）
図１０は本実施形態に係るロボット制御部の構成を示すブロック図であり、図１１は本実施形態に係るエンコーダの異常検出方法を示すフローチャートである。
【０１０７】
図１０に示す構成において、コントローラ７から送信される指令位置情報を含む情報が、ロボットＡの駆動制御モードに対応じたフィルタで処理されるルートと、上記駆動制御モードに対応していないフィルタで処理されるルートとの２系統で並列に処理されて、セーフティユニット９に送信される点で、図８に示した構成と異なる。また、図１０に示す構成において、ロボットＡの駆動制御モードに対応していないフィルタには、指令位置情報として「０」を入力している。
【０１０８】
実際のロボットＡの駆動制御において、指令位置情報に制振フィルタ２１や１次遅れフィルタ２２を適用する処理は一定時間後まで影響が続く。ロボットＡの駆動制御モードの切り替えが急であると、フィルタ処理しきれなかった指令位置情報の影響によりセーフティユニットが判定するための指令位置情報に誤差が含まれる可能性がる。
【０１０９】
そこで、本実施形態では、コントローラ７からの指令位置情報をフィルタ処理するにあたって、図１０に示すように、２系統のフィルタを準備する。これら指令位置情報の並列処理を行うとともに、ロボットＡの駆動制御モードに応じて、各々の系統で異なる情報を処理し、その加算結果を新たな指令位置情報とするようにしている。
【０１１０】
以下、図１１に示すフローチャートを用いて説明する。なお、図１１に示すフローのうち、ステップＳＴ１、ＳＴ２及びＳＴ９からＳＴ１４における処理は、図４に示したステップＳＴ１からＳＴ８と同様であるため、ここではその詳細な説明を省略する。また、ステップＳＴ１とステップＳＴ２との間では、取付負荷１３の重量に応じて、図５に示すように、制振フィルタ２１１〜２１ｎ及び１次遅れフィルタ２２１〜２２ｎから、対応するフィルタの組を選択して、ロボットＡの制御及び指定位置情報への適用のために切り替えることは、実施形態１と同様である。
【０１１１】
ステップＳＴ３で、ロボットＡの駆動制御モードを判断し、その判断が高応答性制御であれば、コントローラ７からの指令位置情報に制振フィルタ２１ｊと１次遅れフィルタ２２ｊとを適用して補正位置情報を得る（ステップＳＴ４）。  
【０１１２】
ＳＴ４での処理と並行して、ステップＳＴ５において、コントローラ７からの指令位置情報を「０」とした上で、１次遅れフィルタ２２ａを適用し処理する。ステップＳＴ８において、それぞれの処理結果を加算した上でセーフティユニット９へ送信する補正位置情報としている。
【０１１３】
一方、ステップＳＴ３において、ロボットＡの駆動制御モードが通常制御であると判断すれば、コントローラ７からの指令位置情報を１次遅れフィルタ２２ａに適用してフィルタ処理し（ステップＳＴ６）、並行してコントローラ７からの指令位置情報を「０」とした上で、制振フィルタ２１ｋ（ｋは整数で、１≦ｋ≦ｎ）と１次遅れフィルタ２２ｋとを適用し、フィルタ処理する（ステップＳＴ７）。ステップＳＴ８において、それぞれの処理結果を加算することでセーフティユニット９へ送信する指令位置情報としている。
【０１１４】
以上説明したように、本実施形態によれば、コントローラ７からの送信情報をロボットＡの駆動制御モードに対応したフィルタ及びこの駆動制御モードに対応していないフィルタの両方で常に並列処理する。
【０１１５】
また、ロボットＡの駆動制御モードに対応じたフィルタには、コントローラ７から送信される指令位置情報を直接適用する一方、駆動制御モードに対応していないフィルタには、指令位置情報を「０」として、フィルタ処理を行い、両方の系統でフィルタ処理された結果を加算して、新たな補正位置情報としてセーフティユニット９に送信する。
【０１１６】
このような処理を行うことで、制御モードの違いによる応答遅れ時間の差異を吸収し、ロボットＡの駆動制御モードが異なる場合にも同様に、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。さらに、複数の制振フィルタ２１と１次遅れフィルタ２２との組において、取付負荷１３の重量に応じて、所望のフィルタの組を選択してロボットＡの制御に適用することにより、エンコーダ５の異常検出精度をより高めることができる。
【０１１７】
以上のように、本出願において開示する技術の例示として上記実施形態３について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。例えば、実施形態３について、以下に示すような構成としてもよい。
【０１１８】
＜変形例２＞
図１２は、本変形例に係るロボット制御部の構成を示すブロック図である。
【０１１９】
実際のロボットＡの制御においては、ロボット制御部２のコントローラ７が速度指令及び指令位置情報を出力してからサーボドライバ１０が実際にモータ４を制御し、その制御に基づいてモータ４が動作するため、指令位置情報に対して実際のモータ位置は一定時間の遅れが生じている。
【０１２０】
この遅れ分を補正するため、上述したように、指令位置情報に対し制御方式に応じた１次遅れフィルタを適用したり、指令位置情報を含む情報に異なるフィルタでの処理を適用したりしている。しかしながら、１次遅れフィルタ２２ａはサーボドライバ１０による制御遅れを簡易的に模擬したものなので、この１次遅れ分の精度を改善できる余地がある。
【０１２１】
そこで、図１２に示す構成では、図１０に示す構成において、通常制御時に使用する１次遅れフィルタ２２ａに対してフィードフォワード制御を行うことにより、１次遅れ分の精度をさらに改善できるようにしたものである。
【０１２２】
図１２に示すように、コントローラ７からの指令位置情報に対して（１−ａ）倍のゲインをかけた上で１次遅れフィルタ２２ａに適用して処理を行うのと並行して、指令位置情報にａ倍のゲインをかけ、これらの結果を加算してセーフティユニット９に送信する。
【０１２３】
したがって、本変形例によれば、実施形態３に示した構成と比較して、さらに精度が高くエンコーダの異常を判断することができるようになる。
【０１２４】
なお、本変形例では、１次遅れフィルタ２２ａに対してフィードフォワード制御を行う構成を説明したが、１次遅れフィルタ２２ｊ，２２ｋに対しても同じようにフィードフォワード制御を行うことにより、同様の効果を得ることも可能である。
【０１２５】
（実施形態４）
図１３は、本実施形態に係るロボットシステムの概略構成図である。
【０１２６】
部材の加工等において、複数のロボットを協調させながら動作させて（以下、協調動作と呼ぶことがある）加工を行うことが、従来知られている。このとき、図１３に示すように、１台のロボット（マスターロボット）に対して１台または複数台のスレーブロボットが設定される。本実施形態では、ロボットＩがマスターロボットとして、２台のロボットＩＩ，ＩＩＩがスレーブロボットとして設定される。このようなロボットシステム１００において、ロボットＩのコントローラ７からロボットＩＩ，ＩＩＩのコントローラ７１，７２にそれぞれ送られる速度指令に基づいて、スレーブロボットであるロボットＩＩ，ＩＩＩがロボットＩと協調して動作する。なお、このような動作制御を協調制御と呼ぶことがある。また、ロボットＩ〜ＩＩＩの構成は、実施形態１〜３に示すロボットＡの構成と同様である。
【０１２７】
図１３に示すロボットシステム１００では、個々のロボットでの応答性の違いによってモータ４の位置ずれが生じるおそれがあり、これを防止するために、それぞれのロボットで使用可能な速度指令において、起振成分を避けてカットオフ周波数を合わせる制御が行われる。例えば、ロボットＩにおいてカットオフ周波数が８Ｈｚ、ロボットＩＩのカットオフ周波数が６Ｈｚ、ロボットＣのカットオフ周波数が７Ｈｚの場合、最も低いカットオフ周波数に合わせ、ロボットＩ〜ＩＩＩは６Ｈｚで動作する。
【０１２８】
このようにすることで、ロボットＩＩでは所定の制振制御がされる一方、ロボットＩ，ＩＩＩに関しては、それぞれのカットオフ周波数よりも低い周波数で動作することで、振動の発生が抑制される。
【０１２９】
しかし、図１３に示すロボットシステム１００において、ロボットＩ〜ＩＩＩのそれぞれに、実施形態１〜３に示す制振フィルタ２１及び１次遅れフィルタ２２を適用すると、ロボットＩ〜ＩＩＩのそれぞれに取付けられる取付負荷１３の重量の違いに応じて、ロボットＩ〜ＩＩＩがそれぞれ有する制振フィルタ２１のフィルタ定数が変化してしまう。つまり、協調制御のために選択されたフィルタ定数と異なるフィルタ定数を有する制振フィルタ２１が使用されると、ロボットＩ〜ＩＩＩのいずれかのセーフティユニット９において、指令位置情報におけるカットオフ周波数が不適切に設定されてしまい、エンコーダ５の異常を誤検出する可能性があった。
【０１３０】
そこで、本実施形態では、ロボットシステム１００を実際に作動させる前に、ロボットシステム１００全体で使用される制振フィルタ２１を設定することで、上記の不具合を解消する構成を提案する。
【０１３１】
図１４は、当該ロボットシステムで使用される制振フィルタの設定手順を示すフローチャートである。なお、説明の便宜上、図１３に示すロボットＩ，ＩＩのみを取り上げることとする。
【０１３２】
まず、ロボットＩのコントローラ７は、ロボットＩにおける制振フィルタ２１及び１次遅れフィルタ２２を決定する（ステップＳＴ３１）。また、ロボットＩのコントローラ７は、ロボットＩＩにおける制振フィルタ２１及び１次遅れフィルタ２２を決定する（ステップＳＴ３２）。なお、ステップＳＴ３１，３２における制振フィルタ２１及び１次遅れフィルタ２２の決定手順は、例えば、図５に示すフローチャートの実行手順と同様である。
【０１３３】
次に、ロボットＩのコントローラ７は、ロボットＩが保持する取付負荷１３の重量に応じて決まるカットオフ周波数ｆａが、ロボットＩＩが保持する取付負荷１３の重量に応じて決まるカットオフ周波数ｆｂ以下かどうかを判定する（ステップＳＴ３３）。ステップＳＴ３３での判定結果が肯定的であれば、ロボットシステム１００が有するすべてのロボット、この場合は、ロボットＩ，ＩＩのそれぞれに対して、ステップＳＴ３１で決定された制振フィルタ２１及び１次遅れフィルタ２２を適用し（ステップＳＴ３４）、ステップＳＴ３３での判定結果が否定的であれば、ロボットＩ，ＩＩのそれぞれに対して、ステップＳＴ３２で決定された制振フィルタ２１及び１次遅れフィルタ２２を適用する（ステップＳＴ３５）。
【０１３４】
このようにすることで、ロボットシステム１００におけるすべてのロボットに対して、保持された取付負荷１３の重量に応じた指令位置情報のカットオフ周波数を比較し、最も低いカットオフ周波数に対応した制振フィルタ２１と１次遅れフィルタ２２の組が選択され、それぞれのロボットのセーフティユニット９において、エンコーダ５の異常の誤検出を抑制し、エンコーダ５の異常検出精度をさらに高めることができる。
【０１３５】
（その他の実施形態）
なお、図５，６に示す制振フィルタ２１及び１次遅れフィルタ２２の切替において、制振フィルタ２２ｊに対応させて１次遅れフィルタ２２ｊを選択するようにしたが、前述したように、モータ４の駆動制御遅れを補償する１次遅れフィルタ２２において、その時定数は、取付負荷１３の重量に大きく影響を受けない。従って、制振フィルタ適用判定部７ａで制振フィルタ２２ｊを選択する代わりに、所定の時定数を有する１次遅れフィルタ２２をコントローラ７からセーフティユニット９に送られる指令位置情報に適用するようにしてもよい。
【産業上の利用可能性】
【０１３６】
本開示のエンコーダの異常検出方法は、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判断をすることができるので、汎用の溶接ロボット等の産業用ロボットやその他の作動装置に係るエンコーダの異常を判断する上で特に有用である。
【符号の説明】
【０１３７】
Ａ，Ｉ〜ＩＩＩ  ロボット（作動装置）
４    モータ
５    エンコーダ
７，７１，７２    コントローラ
７ａ  制振フィルタ適用判定部
７ｂ  遅れフィルタ適用判定部
７ｃ  制御切替部
９    セーフティユニット（異常検出装置）
１０  サーボドライバ
１２  関節軸（出力軸）
１３  取付負荷
２１、２２１〜２２ｎ  制振フィルタ
２２，２２１〜２２ｎ  １次遅れフィルタ（遅れ制御フィルタ）
９２  ＣＰＵ（判定部）
９４  エンコーダ受信部（第１受信部）
９５  ＤＰＲＡＭ（第２受信部）
１００  ロボットシステム
【図１】
2019220719.tif 000003
【図２】
2019220719.tif 000004
【図３】
2019220719.tif 000005
【図４】
2019220719.tif 000006
【図５】
2019220719.tif 000007
【図６】
2019220719.tif 000008
【図７】
2019220719.tif 000009
【図８】
2019220719.tif 000010
【図９】
2019220719.tif 000011
【図１０】
2019220719.tif 000012
【図１１】
2019220719.tif 000013
【図１２】
2019220719.tif 000014
【図１３】
2019220719.tif 000015
【図１４】
2019220719.tif 000016
【手続補正書】
【提出日】令和2年11月5日(2020.11.5)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2019220719.tif 000017
【国際調査報告】
2019220719.tif 000018
2019220719.tif 000019
2019220719.tif 000020
2019220719.tif 000021