IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

特許7296593エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム
<>
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図1
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図2
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図3
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図4
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図5
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図6
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図7
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図8
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図9
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図10
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図11
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図12
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図13
  • 特許-エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-15
(45)【発行日】2023-06-23
(54)【発明の名称】エンコーダの異常検出方法、作動制御装置、ロボット及びロボットシステム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20230616BHJP
【FI】
B25J19/06
【請求項の数】 13
(21)【出願番号】P 2020518984
(86)(22)【出願日】2019-02-14
(86)【国際出願番号】 JP2019005304
(87)【国際公開番号】W WO2019220719
(87)【国際公開日】2019-11-21
【審査請求日】2021-08-24
(31)【優先権主張番号】P 2018094548
(32)【優先日】2018-05-16
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】衣笠 靖啓
(72)【発明者】
【氏名】橋本 敦実
【審査官】松浦 陽
(56)【参考文献】
【文献】国際公開第2018/079075(WO,A1)
【文献】特開2013-000833(JP,A)
【文献】特開平03-223907(JP,A)
【文献】国際公開第2012/149446(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、
前記モータの単位時間当たりの回転量を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、前記コントローラから出力される前記速度指令及び前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、前記エンコーダの異常を検出する異常検出装置とが設けられており、
前記異常検出装置は、
前記コントローラから、前記作動装置の起振成分が除去され、かつ前記モータの駆動制御の遅れに起因する時間遅れが補償された補正位置情報を、また前記エンコーダから前記出力信号をそれぞれ取得する情報取得ステップと、
前記補正位置情報と前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記補正位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダの異常と判定する異常判定ステップとを行い、
前記コントローラは、前記指令位置情報から前記作動装置が保持する取付負荷の重量に応じた起振成分を除去し、かつ前記時間遅れを補償して前記補正位置情報を得ることを特徴とするエンコーダの異常検出方法。
【請求項2】
請求項1に記載のエンコーダの異常検出方法において、
前記コントローラは、
前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、
当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、
前記異常検出装置は、前記駆動制御モードに応じた処理ルートで処理された前記指令位置情報または前記補正位置情報を受け取ることを特徴とするエンコーダの異常検出方法。
【請求項3】
請求項2に記載のエンコーダの異常検出方法において、
前記処理ルートの切り替えに応じて、前記指令位置情報の時間遅れ補償量と前記補正位置情報の時間遅れ補償量とが異なることを特徴とするエンコーダの異常検出方法。
【請求項4】
請求項1に記載のエンコーダの異常検出方法において、
前記コントローラは、
前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、
当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、
検知された実際の駆動制御モードに対応する第1処理ルートにおいて、前記コントローラから出力された前記指令位置情報を処理する第1処理ルートのステップと、
当該実際の駆動制御モードに対応していない第2処理ルートにおいて、前記モータの原点位置に対応する位置情報を指令位置情報とし、当該指令位置情報を処理するとともに、当該処理を前記第1処理ルートのステップと並列に実行する第2処理ルートのステップと
前記第1処理ルートで処理された前記指令位置情報と前記第2処理ルートで処理された前記指令位置情報とを加算して前記補正位置情報とする加算ステップと、を有し、
前記異常検出装置は、前記加算ステップで得られた前記補正位置情報を受け取ることを特徴とするエンコーダの異常検出方法。
【請求項5】
請求項4に記載のエンコーダの異常検出方法において、
前記第1処理ルート、または前記第2処理ルートの少なくともいずれか一方において、前記指令位置情報の時間遅れを補償する遅れ補償ステップを行い、当該遅れ補償ステップにおいてフィードフォワード制御を行うことを特徴とするエンコーダの異常検出方法。
【請求項6】
請求項1ないし5のいずれか1項に記載のエンコーダの異常検出方法において、
前記作動装置を非常停止するための安全回路がさらに設けられており、
前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、
前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記補正位置情報と前記検出位置情報との間に所定値以上の差があっても、前記エンコーダの異常と判定しないことを特徴とするエンコーダの異常検出方法。
【請求項7】
請求項1ないし6のいずれか1項に記載のエンコーダの異常検出方法において、
前記作動装置はロボットであることを特徴とするエンコーダの異常検出方法。
【請求項8】
作動装置の出力軸を駆動するモータを制御する作動制御装置であって、
前記モータの単位時間当たりの回転量を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、
前記コントローラから出力される速度指令及び前記モータの回転位置を検出するためのエンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、
前記エンコーダの異常を検出する異常検出装置と、
前記指令位置情報から前記作動装置の起振成分を除去するための制振フィルタと、
前記指令位置情報に対して前記モータの駆動制御の遅れに起因する時間遅れを補償するための遅れ制御フィルタと、を備え、
前記制振フィルタは、互いに異なるフィルタ定数を有する複数のフィルタの組で構成され、
前記遅れ制御フィルタは、互いに異なる時定数を有する複数のフィルタの組で構成され、
前記コントローラは、
前記制振フィルタにおける複数のフィルタのうち、前記作動装置が保持する取付負荷の重量に応じたフィルタ定数を有するフィルタを選択する制振フィルタ適用判定部を有し、
前記異常検出装置は、
前記エンコーダから前記出力信号を受ける第1受信部と、
前記コントローラから前記指令位置情報を受け取るか、または前記制振フィルタ適用判定部で選択された制振フィルタと前記遅れ制御フィルタとを経由した補正位置情報を受け取る第2受信部と、
前記補正位置情報と前記出力信号に基づいて算出される前記モータの検出位置情報とを比較し、前記補正位置情報または前記指令位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダが異常であると判定する判定部とを有することを特徴とする作動制御装置。
【請求項9】
請求項8に記載の作動制御装置において、
前記コントローラは、
前記遅れフィルタにおける複数のフィルタのうち、前記制振フィルタ適用判定部で選択された制振フィルタのフィルタ定数に対応する時定数を有するフィルタを選択する遅れ制御フィルタ適用判定部をさらに有し、
前記第2受信部は、前記コントローラから前記指令位置情報を受け取るか、または前記制振フィルタ適用判定部で選択された制振フィルタと前記遅れ制御フィルタ適用判定部で選択された遅れ制御フィルタとを経由した補正位置情報を受け取ることを特徴とする作動制御装置。
【請求項10】
請求項8または9に記載の作動制御装置において、
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知し、前記コントローラから送信される前記指令位置情報の処理ルートを切り替える制御切替部を有し、
前記コントローラと前記第2受信部との間に、前記モータの駆動制御の遅れを補償する第1遅れ制御フィルタと前記制振フィルタとが直列接続される一方、前記第1遅れ制御フィルタと並列に前記モータの駆動制御の遅れを補償する第2遅れ制御フィルタが設けられており、
前記制御切替部での処理ルートの切り替えに応じて、前記指令位置情報が、直列接続された前記第1遅れ制御フィルタ及び前記制振フィルタまたは前記第2遅れ制御フィルタに送られるように構成されていることを特徴とする作動制御装置。
【請求項11】
請求項10に記載の作動制御装置において、
前記第1遅れ制御フィルタと前記第2遅れ制御フィルタとで、時定数が互いに異なることを特徴とする作動制御装置。
【請求項12】
出力軸と該出力軸を駆動するモータとを少なくとも有するロボット機構部と、
前記モータの回転位置を検出するためのエンコーダと、
前記モータの駆動を制御する一方、前記エンコーダの異常を検出する請求項8ないし11のいずれか1項に記載の作動制御装置と、を少なくとも備えたことを特徴とするロボット。
【請求項13】
第1ロボットと前記第1ロボットのコントローラから送られる指令情報に基づいて前記第1ロボットと協調して動作する1または複数の第2ロボットとを備えたロボットシステムであって、
前記第1ロボット及び前記第2ロボットは、請求項12に記載のロボットであり、
前記第1ロボットのコントローラは、
前記第1ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第1周波数と前記第2ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第2周波数と比較し、
前記第1周波数が前記第2周波数以下であれば、前記第1ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第1ロボット及び前記第2ロボットに適用し、
前記第1周波数が前記第2周波数よりも高ければ、前記第2ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第1ロボット及び前記第2ロボットに適用することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、エンコーダの異常を検出する異常検出方法に関し、特に、ロボット等の作動装置の出力軸の駆動に係るモータの回転位置を検出するエンコーダの異常検出方法及び当該異常検出機能を備えた作動制御装置、ロボット、ロボットシステムに関する。
【背景技術】
【0002】
従来からロボット等の作動装置の出力軸を駆動するモータの回転位置を検出するために用いられるエンコーダの故障に係る異常検出技術が知られている。
【0003】
特許文献1には、モータの入力軸の回転を検出する第1のエンコーダと、モータの出力軸の回転を検出する第2のエンコーダを設け、この2つのエンコーダで検出された位置測定値に一定以上の差がある場合にエンコーダの異常と判定する技術が開示されている。
【0004】
また、特許文献2には、モータが正常に制御されていることを監視するセーフティユニットを備えるサーボシステムが開示されている。特許文献2に係るセーフティユニットは、モータを制御しているサーボドライバから受けた指令値やフィードバック値が異常である場合に、上記サーボドライバへの停止信号を生成する。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第5675761号公報
【文献】特許第5367623号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、汎用の作動装置の駆動系(モータ)では単一のエンコーダしか設けられていないものも多く、特許文献1に開示された技術は、これらの汎用モータに対して適用できないという問題がある。また、新規に特許文献1に係るシステムを構成する場合においても、複数のセンサを設ける必要があるため、コストが高くなる。
【0007】
特許文献2に開示された技術においても、異常検出機能を有していない汎用のシステムに対して適用する場合に、サーボドライバに新しい機能を追加する必要があり、サーボドライバ及びセーフティユニット双方の開発が必要である。すなわち、工数がかかるという問題がある。
【0008】
例えば、エンコーダの異常検出装置を有していない汎用ロボットに対して特許文献2に示すような構成を適用する場合、汎用ロボットのサーボドライバは、通常、モータ指令値及びモータ検出値を生成する機能及び生成したモータ指令値及びモータ検出値を出力する機能を有していない。
【0009】
したがって、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み(回路、プログラム、表示等)が必要である。すなわち、手間がかかるとともに処理が複雑化するという問題がある。
【0010】
さらに、ロボットを動作させる場合に、意図しない振動を生じる場合がある。これはロボットアームが動作するときの移動周波数が、ロボットの固有振動数に近づくためであり、通常、この固有振動数を含む所定の周波数帯域を避けてロボットを作動させるか、ロボットを動作させる速度指令等に含まれる当該周波数帯域の成分(以下、起振成分と呼ぶことがある。)をフィルタ等で除去してロボットアームを駆動させる。また、ロボットアームに把持される負荷やロボットアームに取付けられる付属機構等の影響で、ロボットの固有振動数が当初の値より変化することがあるため、フィルタ定数を負荷等の重量に応じて切り替えることで、サーボドライバに送られる速度指令から起振成分を適切に除去している。
【0011】
しかし、セーフティユニットに送られる情報に対しては、通常、このようなフィルタ定数の切替は行われないため、サーボドライバ側で上記の切替が起こった場合に、セーフティユニットがエンコーダの異常を誤検出するおそれがあった。
【0012】
本開示はかかる点に鑑みてなされたもので、その目的は、既存のシステムへの影響を抑えつつ、一般的なエンコーダを使用したシステムに適用可能で、かつロボットに保持される取付負荷の影響を抑制可能なエンコーダの異常検出方法及び作動制御装置、ロボット、ロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0013】
ここに開示する異常検出方法は、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、前記モータの単位時間当たりの回転を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、前記コントローラから出力される前記速度指令及び前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、前記エンコーダの異常を検出する異常検出装置とが設けられており、前記異常検出装置は、前記コントローラから、前記作動装置の起振成分が除去され、かつ前記モータの駆動制御の遅れに起因する時間遅れが補償された補正位置情報を、また前記エンコーダから前記出力信号をそれぞれ取得する情報取得ステップと、前記補正位置情報と前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記補正位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダの異常と判定する異常判定ステップとを行い、前記コントローラは、前記指令位置情報から前記作動装置が保持する取付負荷の重量に応じた起振成分を除去し、かつ前記時間遅れを補償して前記補正位置情報を得ることを特徴とする。
【0014】
この方法によれば、異常検出装置は、コントローラから受けた指令位置情報に基づいた、起振成分や制御遅れの影響を低減した補正位置情報と、エンコーダからの出力信号に基づいて算出された検出位置情報との比較結果に基づいてエンコーダの異常を判定する。これにより、ドライバにエンコーダの異常検出のための新しい構成、機能を追加することなく、エンコーダの異常検出ができるようになる。すなわち、例えば、一般的な作動装置(例えば、ロボットや外部軸)の既存構成、既存回路への影響を最小限に抑えて、エンコーダの異常検出ができるようになる。また、エンコーダにおける誤検出を抑制し、高精度でエンコーダの異常を検出することができる。また、作動装置が保持する取付負荷の重量に応じた補正を異常検出装置が受け取る指令位置情報に対して行うことにより、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。
【0015】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、前記異常検出装置は、前記駆動制御モードに応じた処理ルートで処理された前記指令位置情報または前記補正位置情報を受け取るようにしてもよい。
【0016】
この方法によれば、作動装置の駆動制御モードの違いに伴う指令位置情報または補正位置情報と検出位置情報との誤差を低減し、エンコーダの異常検出精度を高めることができる。
【0017】
前記処理ルートの切り替えに応じて、前記指令位置情報の時間遅れ補償量と前記補正位置情報時間遅れ補償量とが異なっていてもよい。
【0018】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、当該駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、検知された実際の駆動制御モードに対応する第1処理ルートにおいて、前記コントローラから出力された前記指令位置情報を処理する第1処理ルートのステップと、当該実際の駆動制御モードに対応していない第2処理ルートにおいて、前記モータの原点位置に対応する位置情報を指令位置情報とし、当該指令位置情報を処理するとともに、当該処理を前記第1処理ルートのステップと並列に実行する第2処理ルートのステップと、前記第1処理ルートで処理された前記指令位置情報と前記第2処理ルートで処理された前記指令位置情報とを加算して前記補正位置情報とする加算ステップと、を有し、前記異常検出装置は、前記加算ステップで得られた前記補正位置情報を受け取るようにしてもよい。
【0019】
この方法によれば、作動装置の駆動制御モード切り替えにより、指令処理情報の処理ルートが異なる場合においても、当該処理モードの違いによる応答遅れ時間の差異を吸収し、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。
【0020】
前記第1処理ルート、または前記第2処理ルートの少なくともいずれか一方において、前記指令位置情報の時間遅れを補償する遅れ補償ステップを行い、当該遅れ補償ステップにおいてフィードフォワード制御を行ってもよい。
【0021】
この方法によれば、時間遅れ補償時の誤差をさらに低減し、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。
【0022】
前記作動装置を非常停止するための安全回路がさらに設けられており、前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記補正位置情報と前記検出位置情報との間に所定値以上の差があっても、前記エンコーダの異常と判定しないこととしてもよい。
【0023】
この方法によれば、コントローラが非常停止信号を出力した後に、指令位置情報または補正位置情報と検出位置情報との間に所定値以上の差があった場合でもエンコーダの異常と判定しないので、例えば、コントローラが非常停止信号出力後に速度指令及び指令位置情報の出力を停止した場合に、エンコーダが正常に動作しているにも拘わらず、エンコーダの異常と判断することを防ぐことができる。
【0024】
ここに開示する作動制御装置は、作動装置の出力軸を駆動するモータを制御する作動制御装置であって、前記モータの単位時間当たりの回転を指示する速度指令及び該速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、前記コントローラから出力される速度指令及び前記モータの回転位置を検出するためのエンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、前記エンコーダの異常を検出する異常検出装置と、前記指令位置情報から前記作動装置の起振成分を除去するための制振フィルタと、前記指令位置情報に対して前記モータの駆動制御の遅れに起因する時間遅れを補償するための遅れ制御フィルタと、を備え、前記制振フィルタは、互いに異なるフィルタ定数を有する複数のフィルタの組で構成され、前記遅れ制御フィルタは、互いに異なる時定数を有する複数のフィルタの組で構成され、前記コントローラは、前記制振フィルタにおける複数のフィルタのうち、前記作動装置が保持する取付負荷の重量に応じたフィルタ定数を有するフィルタを選択する制振フィルタ適用判定部を有し、前記異常検出装置は、前記エンコーダから前記出力信号を受ける第1受信部と、前記コントローラから前記指令位置情報を受け取るか、または前記制振フィルタ適用判定部で選択された制振フィルタと前記遅れ制御フィルタとを経由した補正位置情報を受け取る第2受信部と、前記補正位置情報と前記出力信号に基づいて算出される前記モータの検出位置情報とを比較し、前記補正位置情報または前記指令位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダが異常であると判定する判定部とを有することを特徴とする。
【0025】
この構成によれば、前述の異常検出方法と同様に、ドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。また、作動装置が保持する取付負荷の重量に影響されることなく、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。
【0026】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知し、前記コントローラから送信される前記指令位置情報の処理ルートを切り替える制御切替部を有し、前記コントローラと前記第2受信部との間に、前記モータの駆動制御の遅れを補償する第1遅れ制御フィルタと前記制振フィルタとが直列接続される一方、前記第1遅れ制御フィルタと並列に前記モータの駆動制御の遅れを補償する第2遅れ制御フィルタが設けられており、前記制御切替部での処理ルートの切り替えに応じて、前記指令位置情報が、直列接続された前記第1遅れ制御フィルタ及び前記制振フィルタまたは前記第2遅れ制御フィルタに送られるように構成されていてもよい。
【0027】
この構成によれば、作動装置の駆動制御モードの違いに伴う指令位置情報または補正位置情報と検出位置情報との誤差を低減し、エンコーダの異常検出精度を高めることができる。
【0028】
前記第1遅れ制御フィルタと前記第2遅れ制御フィルタとで、時定数が互いに異なっていてもよい。
【0029】
ここに開示するロボットは、出力軸と該出力軸を駆動するモータとを少なくとも有するロボット機構部と、前記モータの回転位置を検出するためのエンコーダと、前記モータの駆動を制御する一方、前記エンコーダの異常を検出する上記の作動制御装置と、を少なくとも備えたことを特徴とする。
【0030】
この構成によれば、ドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。また、ロボットが保持する取付負荷の重量に大きく影響されることなく、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。
【0031】
また、ここに開示するロボットシステムは、第1ロボットと前記第1ロボットのコントローラから送られる指令情報に基づいて前記第1ロボットと協調して動作する1または複数の第2ロボットとを備えたロボットシステムであって、前記第1ロボット及び前記第2ロボットは、上記のロボットであり、前記第1ロボットのコントローラは、前記第1ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第1周波数と前記第2ロボットが保持する取付負荷の重量に応じて決まるカットオフ周波数である第2周波数と比較し、前記第1周波数が前記第2周波数以下であれば、前記第1ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第1ロボット及び前記第2ロボットに適用し、前記第1周波数が前記第2周波数よりも高ければ、前記第2ロボットで選択された制振フィルタと遅れ制御フィルタとの組を前記第1ロボット及び前記第2ロボットに適用することを特徴とする。
【0032】
この構成によれば、複数のロボットを協調制御するシステムにおいて、個々のロボットが保持する取付負荷の重量の違いに大きく影響されることなく、システム内の各々のロボットで、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。また、各々のドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。
【発明の効果】
【0033】
以上説明したように、本開示のエンコーダの異常検出方法及び作動制御装置によると、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判断をすることができる。また、作動装置が保持する取付負荷の重量に大きく影響されることなく、異常検出装置でのエンコーダの異常の誤検出を抑制し、エンコーダの異常検出精度を高めることができる。
【図面の簡単な説明】
【0034】
図1図1は、実施形態1に係るロボットの概略構成図である。
図2図2は、実施形態1に係るロボット制御部の構成を示すブロック図である。
図3図3は、セーフティユニットの構成を示すブロック図である。
図4図4は、実施形態1に係るエンコーダの異常判断方法を示すフローチャートである。
図5図5は、制振フィルタ及び1次遅れフィルタの切替手順を示すフローチャートである。
図6図6は、制振フィルタ及び1次遅れフィルタの切替に関するブロック図である。
図7図7は、変形例1に係るエンコーダの異常判断方法を示すフローチャートである。
図8図8は、実施形態2に係るロボット制御部の構成を示すブロック図である。
図9図9は、実施形態2に係るエンコーダの異常判断方法を示すフローチャートである。
図10図10は、実施形態3に係るロボット制御部の構成を示すブロック図である。
図11図11は、実施形態3に係るエンコーダの異常判断方法を示すフローチャートである。
図12図12は、変形例2に係るロボット制御部の構成を示すブロック図である。
図13図13は、実施形態4に係るロボットシステムの概略構成図である。
図14図14は、実施形態4に係るロボットシステムで使用される制振フィルタの設定手順を示すフローチャートである。
【発明を実施するための形態】
【0035】
以下、本開示の実施形態を図面に基づいて詳細に説明する。以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものでは全くない。
【0036】
(実施形態1)
[ロボット及びその制御系の構成]
図1は、本実施形態に係る作動装置としてのロボットの概略構成を示す。また、図2はロボット制御部2の構成を示すブロック図であり、情報又は信号の送信方向がわかるように矢印を記載している。
【0037】
図1に示すように、ロボットAは、ロボット機構部1と、ロボット制御部2と、ディスプレイ付きの操作部3とによって構成されている。ロボット機構部1とロボット制御部2との間は、接続ケーブルCBによって接続されている。なお、図1では、接続ケーブルCBによる有線接続によって情報が伝達されるものとしているが、接続形態は有線接続に限定されず、無線で接続してもよい。各ブロック間の接続も同様である。
【0038】
ロボット機構部1は、複数のロボットアーム11および複数の関節軸12を有している。各ロボットアーム11には、それぞれ、ロボットアーム11を動作させるためのモータ4が取り付けられている。例えば、ロボットAが垂直多関節6軸ロボットである場合、6個のロボットアーム11を有し、各ロボットアーム11に対応するように6個のモータ4が設けられている。各モータ4には、各モータ4の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ5が取り付けられている。また、ロボットアーム11の先端には所定の重量を有する負荷13が把持されている。なお、負荷13には、ロボットアーム11で把持される負荷以外にも、ロボットアーム11に取付けられるワイヤ供給部等の付属機構や部品が含まれる。なお、以降の説明において、負荷13を「取付負荷13」と呼ぶことがあり、取付負荷13はロボットAのロボットアーム11に保持されている。
【0039】
図1では図示しないが、ロボットAに対して、ロボット制御部2からロボット機構部1への駆動制御に基づいて駆動される外部軸が付設されている。外部軸は、ロボットAの可動範囲を拡大させるためにロボット機構部1と組み合わせて用いられるものである。外部軸には、外部軸を動作させるためのモータ4が取り付けられている。モータ4には、モータ4の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ5が取り付けられている。すなわち、複数の関節軸12及び外部軸のそれぞれに対してモータ4が設けられ、各モータ4に対してエンコーダ5が取り付けられる。なお、外部軸の種類は、特に限定されない。例えば、スライダタイプ又はポジショナタイプのどちらであっても本実施形態に係る技術が適用可能であり、それ以外のタイプのものであってもよい。
【0040】
なお、本実施形態では、発明の理解を容易にするために、複数の関節軸12に用いるモータ4及びエンコーダ5と、外部軸に用いるモータ4及びエンコーダ5とを区別せずに図示(図1参照)及び説明している。したがって、以下において、モータ4又はエンコーダ5という場合、複数の関節軸12に用いるものと、外部軸に用いるものとの両方を指すものとする。すなわち、以下において説明するエンコーダ5の異常検出装置及び異常検出方法は、複数の関節軸12用のモータ4に取り付けられるエンコーダ5と、外部軸用のモータ4に取り付けられるエンコーダ5の両方において適用が可能である。
【0041】
エンコーダ5は、後述するセーフティユニット9及びサーボドライバ10に接続されており、セーフティユニット9及びサーボドライバ10に対して、検出した信号を出力(フィードバック)する。
【0042】
操作部3は、ロボットAの操作者の入力操作を受ける入力部(図示しない)とディスプレイ(図示しない)とを備える。操作部3は、操作者からの入力操作に基づいてロボット制御部2との間で通信を行う。これにより、操作者が操作部3を介して、ロボットアーム11の動作設定や動作制御等を行うことができるようになっている。なお、入力部がタッチパネルで構成され、ディスプレイと入力部とが一体的に構成されていてもよい。
【0043】
ロボット制御部2は、コントローラ(例えば、CPU)7と、RAM(Random Access Memory)8と、異常検出装置としてのセーフティユニット9と、各モータ4を駆動させるためのサーボドライバ10と、セーフティユニット9から非常停止を指示する非常停止信号を受けてロボットAの駆動用電源(図示しない)を遮断する安全回路(コントローラ)6を備えている。なお、本開示において、ロボット制御システムとは、エンコーダ5と、ロボット制御部2とを備えている。
【0044】
RAM8には、操作者が操作部3によって作成したロボットAの教示プログラムやロボットAの機能設定等が格納されている。
【0045】
コントローラ7は、RAM8に格納された上記ロボットAの教示プログラムやロボットAの機能設定等に基づいて、サーボドライバ10に速度指令(単位時間あたりに進む距離)を出力してロボットAの動作指令を行う。同様に、コントローラ7は、上記速度指令を原点位置から積算し、その積算値を指令位置情報としてセーフティユニット9に出力する。速度指令は、例えば、ロボットAの減速比、原点位置等に基づいて計算される。
【0046】
また、コントローラ7とセーフティユニット9、具体的には後述するDPRAM95との間に、制振フィルタ21が設けられており、制振フィルタ21に入力された指令位置情報から起振成分を除去する。
【0047】
実際のロボットAの制御において、サーボドライバ10の動作制御の内容によって、より応答性の高い制御(以下、高応答性制御という)を行う場合がある。例えば、レーザーを用いた溶接ロボットにおいて、高速制御かつ軌跡の追従性を高めた制御を行うような場合である。このような高応答性制御を行う場合に、速度指令に含まれる起振成分によってモータ4、ひいてはロボットAのロボット機構部1が振動する場合がある。そこで、この振動を抑制するために、サーボドライバ10とモータ4との間に制振フィルタ21を用いることがよく行われている。そこで、上記のような高応答性制御が行われている場合に、図2に示すような構成を取ることにより、サーボドライバ10による制御と近い指令位置情報を作ることができる。
【0048】
また、コントローラ7とセーフティユニット9、具体的には後述するDPRAM95との間に、制振フィルタ21と直列接続された、一般的な制御遅れを考慮した遅れ制御フィルタとしての1次遅れフィルタ22が設けられている。
【0049】
実際のロボットAの制御において、同じ時間で比較した場合に、セーフティユニット9がコントローラ7から取得した指令位置情報に基づくモータ4の回転位置(モータ指令位置)と、セーフティユニット9がエンコーダ5から取得した出力信号等に基づくモータ4の回転位置(モータ検出位置)とがずれている可能性がある。これは、例えば、モータ制御の特性に起因して発生する。具体的には、ロボット制御部2のコントローラ7が速度指令及び指令位置情報を出力してからサーボドライバ10が実際にモータ4を制御し、その制御に基づいてモータ4が動作するため、一定時間の遅れが生じるためである。一方、図2に示す1次遅れフィルタ22を設けることにより、モータ指令位置とモータ検出位置との差を大きく減少させることができる。
【0050】
このように、コントローラ7とセーフティユニット9との間に、直列接続された制振フィルタ21と1次遅れフィルタ22とを設けることにより、高精度でエンコーダ5の異常を判断することができるようになる。なお、本開示において、コントローラ7とセーフティユニット9とサーボドライバ10と制振フィルタ21と1次遅れフィルタ22とを総称して作動制御装置と呼ぶことがある。
【0051】
なお、制振フィルタ21および1次遅れフィルタ22は、両方を順不同で直接に備えていてもよい。また、図2において、制振フィルタ21と1次遅れフィルタ22との位置が互いに入れ替わってもよく、同様の効果が得られる。
【0052】
なお、制振フィルタ21、1次遅れフィルタ22ともに、起振成分に対応する周波数帯域を除去するためのフィルタ定数や制御の時間遅れに対応する時定数等のパラメータを用いて実現される機能であり、ハードウェア上で実現してもよいし、ソフトウェア上で実現してもよい。例えば、制振フィルタ21、1次遅れフィルタ22の各パラメータは、RAM8に組み込まれている。また、後述するように、RAM8には、互いに異なるフィルタ定数とそれらに対応した時定数等がセットとなった組が複数保存されており、また、コントローラ7内の制振フィルタ適用判定部7a及び遅れフィルタ適用判定部7bによって、これらの複数の組のうち一の組合わせが選択され、制振フィルタ21及び1次遅れフィルタ22にそれぞれ適用される。これらについては後で詳述する(図5,6参照)。
【0053】
サーボドライバ10は、コントローラ7から受けた速度指令及びエンコーダ5からの出力信号に基づいてモータ4を制御することにより、ロボットAの動作を制御する。
【0054】
セーフティユニット9は、エンコーダ5及びコントローラ7に直接接続されている。そして、エンコーダ5から受けた出力信号に基づいて算出されたモータ4の検出位置情報と、コントローラ7から受けた指令位置情報とに基づいて、エンコーダ5が故障しているか否かを判断する。
【0055】
図3はセーフティユニット9の構成を示すブロック図を示し、セーフティユニット9は、判定部としてのCPU92と、RAM93と、第1受信部としてのエンコーダ受信部94と、第2受信部としてのDPRAM(Dual Port RAM)95とを備えている。
【0056】
エンコーダ受信部94は、エンコーダ5に接続されており、エンコーダ5からの出力信号を取得する。
【0057】
DPRAM95は、ロボット制御部2のコントローラ7に接続されており、コントローラ7から出力された指令位置情報または後述する補正位置情報を取得する。この指令位置情報は、コントローラ7からサーボドライバ10に対して出力される速度指令の積算によって求められる。DPRAM95が取得した指令位置情報または補正位置情報は、RAM93に格納される。
【0058】
CPU92は、エンコーダ受信部94からの出力信号を受けて、その出力信号と、ロボットAの減速比、原点位置等とを用いてモータ4の現在位置に関する検出位置情報を計算する。そして、指令位置情報または補正位置情報に基づく指令位置と、検出位置情報に基づく検出位置とを比較してエンコーダ5の異常の有無を確認する。
【0059】
なお、図3において、CPU92、RAM93及びDPRAM95は、同一の構成で接続され、同一の機能を有するものが2セット設けられている。これにより、2つのCPU92を用いた並行処理が可能となる。すなわち、同一の異常判断を2重に行うことができ、1セットの場合と比較して、より信頼性を高めることができる。
【0060】
[エンコーダの異常検出方法]
図4は、ロボット制御部2がロボットAを起動させ、ロボットAが動作を開始した後、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示したフローチャートである。すなわち、図4は、コントローラ7がサーボドライバ10を介してモータ4を回転動作させたときに、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示している。図5は、制振フィルタ及び1次遅れフィルタの切替手順を示し、図4に示す異常検出方法におけるサブルーチンに相当する。また、図6は、制振フィルタ及び1次遅れフィルタの切替に関するブロック図を示す。
【0061】
以下、エンコーダ5の異常検出方法に関して、図4~6を参照しながら説明する。
【0062】
図4のステップST1において、ロボット制御部2のコントローラ7は、ロボットAを起動し、図5に示すサブルーチンに進む。なお、図5では、互いに異なるフィルタ定数を有する制振フィルタ211~213と、互いに異なる時定数を有する1次遅れフィルタ221~223とが準備された例を示している。
【0063】
図5に示すように、コントローラ7の制振フィルタ適用判定部7aは、ロボットAに保持された取付負荷13がXkg以上であるか否かを判定する(ステップST21)。ロボットAの動作プログラムには、取付負荷13の重量値が予め設定されており、この値と、所定のしきい値であるXとを比較して判定を行う。ステップST21での判定結果が肯定的であれば、ステップST22に進んで、ロボットAに保持された取付負荷13がYkg以上であるか否かを判定する。制振フィルタ適用判定部7aは、予め設定された取付負荷13の重量値と、所定のしきい値であるYとを比較して判定を行う。なお、しきい値XとYとは互いに異なる値である。
【0064】
ここで、図6に示すように、制振フィルタ適用判定部7aは、ステップST21及びST22での判定結果に基づいて、RAM8に保存された複数のフィルタ定数のうち、対応するフィルタ定数を選択して、制振フィルタ21に適用するように構成されている。言いかえると、制振フィルタ適用判定部7aは、互いに異なるフィルタ定数を有する複数の制振フィルタ211~21n(nは2以上の整数)の中から対応する1つのフィルタを選択している。このように、ロボットAの制御に適用する制振フィルタ21を切り替えることで、指令位置情報から除去される起振成分の周波数帯域を変更することができる。
【0065】
ステップST22での判定結果が肯定的であれば、制振フィルタ適用判定部7aは、ロボットAの制御に適用される制振フィルタを制振フィルタ212に切り替える(ステップST23)。一方、ステップST22での判定結果が否定的であれば、ロボットAの制御に適用される制振フィルタを制振フィルタ211に切り替える(ステップST25)。また、ステップST21での判定結果が否定的であれば、ロボットAの制御に適用される制振フィルタを制振フィルタ213に切り替える(ステップST27)。
【0066】
また、前述したように、制振フィルタ21のフィルタ定数にそれぞれ対応した時定数が関連付けられてRAM8に保存されている。言いかえると、図6に示すように、制振フィルタ211~21nのそれぞれに対応して1次遅れフィルタ221~22nが準備されており、遅れフィルタ適用判定部7bは、ステップST23,ST25,ST27でそれぞれ選択された制振フィルタ211~213に対応した1次遅れフィルタ221~223をそれぞれ選択する(ステップST24,ST26,ST28)。
【0067】
1次遅れフィルタ221~223のいずれかが選択された時点で、図5に示すサブルーチンを終了して、図4に示すステップST2に進む。
【0068】
ステップST2において、ロボット制御部2は、操作者が操作部3を介して設定した教示プログラム及び機能設定等に基づいてロボットAを動作させる。具体的には、コントローラ7は、RAM8に保存された教示プログラム及び機能設定等に基づいて、サーボドライバ10に速度指令を、セーフティユニット9に、指令位置情報を出力する。なお、コントローラ7からサーボドライバ10に送られる速度指令については、取付負荷13の重量に応じて変化した起振成分が適切に除去されている。
【0069】
一方、セーフティユニット9に出力される指令位置情報は、ロボットAに保持された取付負荷13の重量に応じて、図5に示す手順によって切り替えられた制振フィルタ21j(jは整数で、1≦j≦n)によって起振成分が除去され、1次遅れフィルタ22jによって制御遅れ(時間遅れ)が補償されている。また、以降の説明において、当該指令位置情報を補正位置情報と呼ぶことがある。
【0070】
サーボドライバ10は、コントローラ7から受けた速度指令に基づいて、モータ4を駆動し、ロボットAの関節軸12及び外部軸を動作させる。サーボドライバ10は、モータ4に取り付けられたエンコーダ5からの出力信号を受け、モータ4に対して、速度指令と出力信号との差分に基づくフィードバック制御を行う。このとき、エンコーダ5からの出力信号は、セーフティユニット9にも出力されている。
【0071】
セーフティユニット9では、エンコーダ5からの出力信号を取得すると(ST3)、モータの位置計算を行う(ST4)。具体的には、セーフティユニット9のCPU92は、エンコーダ5から取得した出力信号、モータ4の各軸の減速比及びモータ4の原点情報等に基づいてモータ4の回転位置(現在位置)に変換する位置計算を行う。エンコーダ5から取得する出力信号は、例えばパルス信号の型式で送信される。
【0072】
さらに、セーフティユニット9では、コントローラ7から制振フィルタ21及び1次遅れフィルタ22を介して補正位置情報を受けており(ST5)、ST4で算出されたモータ4の現在位置に関する検出位置情報とコントローラ7からの補正位置情報との比較を行う(ST6)。具体的には、セーフティユニット9のCPU92は、エンコーダ5からの出力信号に基づいて計算されたモータ4の回転位置(モータ検出値)と、コントローラ7から指令されたモータの回転位置(モータ指令値)とを比較する。ただし、当該モータ指令値は制振フィルタ21と1次遅れフィルタ22とを通過した値である。
【0073】
CPU92は、上記比較の結果、モータ指令値とモータ検出値との差が所定値以上の場合(ST7でYES)、エンコーダ5の異常と判定し、ステップST8に進む。一方で、モータ指令値とモータ検出値との差が所定値未満の場合(ST7でNO)、エンコーダ5の異常と判定せず、フローはステップST3に戻る。
【0074】
具体的には、ロボットAの駆動制御において、コントローラ7が指令した位置にモータ4は移動しようとしている。このため、モータ4の回転位置を示すモータ検出値(検出位置情報)と、コントローラ7が指令した回転位置を示すモータ指令値(補正位置情報)との差は、所定の閾値以内に収まっているはずである。そこで、上記モータ検出値に基づくモータの回転位置が、モータ指令値に基づくモータ指令位置から所定の位置以上離れていると判断した場合に、エンコーダが故障していると判断している。
【0075】
ステップST8では、セーフティユニット9のCPU92は、安全回路6に対して非常停止信号を送信する。非常停止信号を受けた安全回路6は、ロボットAの駆動用電源を遮断し、ロボットAを非常停止させる。
【0076】
このように、コントローラ7は、ロボットAを起動させ、ロボットAに動作を開始させた後、セーフティユニット9がステップST3~ST7の処理を繰り返し実行し、エンコーダ5の異常を判断している。
【0077】
[効果等]
以上のように、本実施形態によると、セーフティユニット9は、エンコーダ5の異常検出において、制振フィルタ21及び1次遅れフィルタ22を介してコントローラ7から取得した補正位置情報とエンコーダ5からの出力信号に基づいて算出された位置情報とを比較した結果に基づいてエンコーダ5の異常を検出している。これにより、エンコーダの異常検出装置を有していない汎用ロボット等の作動装置に対して、セーフティユニット9を追加することでエンコーダの故障による異常を検出することができる。さらに、その際に、サーボドライバ10等の既存の汎用ロボットの構成要素に対して設計変更等をする必要がなく、既存のシステムに対する影響を小さくすることができる。したがって、既存のシステムに対してエンコーダの異常判断に係る処理が正しく行われることを示す必要がなく、処理が複雑化することもない。
【0078】
また、コントローラ7とセーフティユニット9との間に、制振フィルタ21及び1次遅れフィルタ22を設けることにより、高精度でエンコーダ5の異常を判断することができる。また、制振フィルタ211~21n及び1次遅れフィルタ221~22nの中から、取付負荷13の重量に応じて、所望のフィルタの組を選択してコントローラ7からセーフティユニット9に送られる指令位置情報に適用することにより、エンコーダ5の異常検出精度をさらに高めることができる。このことについて、以下に説明する。
【0079】
前述したように、ロボットAの動作時の振動を抑制するために、サーボドライバ10に送られる速度指令からは、ロボットAの固有振動数に対応した起振成分を除去している。取付負荷13の重量、例えば、ロボットアーム11に取り付けるフィーダー等の付属機構やロボットアーム11が把持する負荷の重量が変化し、ロボットAの固有振動数が変化した場合も同様である。
【0080】
しかし、通常、セーフティユニット9に送られる指令位置情報は、予めパラメータが設定された制振フィルタ21を通過するのみであるから、取付負荷13の重量が変化した場合に、指令位置情報から起振成分を適切に除去できず、セーフティユニット9において、エンコーダの異常を誤検出する可能性があった。
【0081】
一方、本実施形態によれば、ロボットAに保持された取付負荷13の重量に対応して、起振成分を除去するためのフィルタ定数や制御遅れの時定数等のパラメータをマッチングさせた制振フィルタ21及び1次遅れフィルタ22の組に切り替えて、これらのフィルタをコントローラ7からセーフティユニット9に送られる指令位置情報に適用することで、エンコーダ5における誤検出を抑制し、高精度でエンコーダ5の異常を検出することができる。
【0082】
なお、図5において、ロボットAの制御及び指定位置情報への適用のために、取付負荷13の重量に応じて、制振フィルタ211~213及び1次遅れフィルタ221~223の3つの組から1つの組を選択して、これらを切り替える手順を示したが、選択されるフィルタの組の個数は、特にこれに限定されない。ロボットAに取付けられる付属機構やロボットアーム11で把持される負荷等に応じて適宜変更されうる。また、制振フィルタ211~21nにおける個々のパラメータの変化幅や1次遅れフィルタ221~22nにおける個々のパラメータの変化幅も適宜変更されうる。
【0083】
以上のように、本出願において開示する技術の例示として実施形態1について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。例えば、実施形態1について、以下に示すような構成としてもよい。
【0084】
<変形例1>
また、図4に係る異常判断方法において、図7に示すようなフローとしてもよい。図7において、ステップST1からST6に係る処理は、図4と同様であるため、ここではその詳細な説明を省略する。また、ステップST1とステップST2との間では、取付負荷13の重量に応じて、図5に示すように、制振フィルタ211~21n及び1次遅れフィルタ221~22nから、対応するフィルタの組を選択して、ロボットAの制御及び指定位置情報への適用のために切り替えることは、実施形態1と同様である。
【0085】
図7では、ステップST7において、モータ指令値とモータ検出値との差が所定値以上の場合、すなわち、ステップST7での判定結果が肯定的な場合に、ステップST9に進むようにしている。そして、ステップST9において、セーフティユニット9のCPU92が、コントローラ7がロボットAの非常停止を指示したか否かを判断するようにしている。
【0086】
具体的には、コントローラ7は、ロボットAの非常停止をする場合、安全回路6に対して、非常停止信号(図示しない)を出力する。非常停止信号を受けた安全回路6は、ロボットAの駆動用電源を遮断し、ロボットAを停止させる。本変形例では、セーフティユニット9は、コントローラ7から非常停止信号を取得する。そして、ステップST9において、コントローラ7から非常停止信号が出力されているか否かを判断する。ステップST9での判断結果が肯定的である場合、つまり、コントローラ7から非常停止信号が出力されている場合は、フローはステップST3に戻る。すなわち、モータ指令値とモータ検出値との差が所定値以上の場合でも、エンコーダ5の異常と判定しない。
【0087】
一方で、ステップST9での判断結果が否定的である場合、つまり、コントローラ7から非常停止信号が出力されていない場合は、ステップST8に進む。ステップST8において、セーフティユニット9のCPU92は、安全回路6に対して非常停止信号を送信し、非常停止信号を受けた安全回路6は、ロボットAを非常停止させる。
【0088】
このように、ステップST9の処理をステップST7の後に行うことによって、コントローラ7からの指示による非常停止がなされた場合に、セーフティユニット9が、エンコーダ5の異常と誤って判断することがなくなる。具体的には、コントローラ7が非常停止信号を出力することによりロボットAを停止させた場合、コントローラ7の指令位置情報の出力が停止される。このため、セーフティユニット9において、モータ指令値とモータ検出値との比較を継続すると、エンコーダ5が正常動作しているにもかかわらず、異常と判定してしまう可能性がある。しかしながら、本態様にかかる処理を行うことでこのような問題の発生を防ぐことができる。
【0089】
なお、図4及び図7のフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更したり、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、ステップST3及びST4に係る処理と、ステップST5に係る処理とは、並列に処理を行ってもよい。
【0090】
(実施形態2)
本実施形態と実施形態1に示した構成との違いは、高応答性制御と通常制御との切り替えを考慮して指令位置情報の処理ルートを切り替える点にある。
【0091】
例えば、ロボットAの手先にレーザー射出装置を付けてレーザー溶接を行う場合等の精度の高い動作が要求されるレーザー溶接区間では、ロボットの駆動に関して高応答性制御を行い、それ以外の速度を優先する区間では通常制御を行うことでタクトを短縮するといった、動的制御切り替えを行う場合がある。指令位置情報と検出位置情報との比較時に生じる誤差を低減するため、制振フィルタ21や1次遅れフィルタ22を用いることは既に述べたとおりである。しかし、上記の制御切り替えを行う場合、これらのフィルタをそのまま用いると、実際のロボットAの動作とセーフティユニット9に与える指令位置情報との差が大きくなり、エンコーダ5の異常検出精度が向上しない場合がある。
【0092】
そこで、本実施形態では、コントローラ7が実際に行う制御方法に応じて、セーフティユニット9に送信される指令位置情報を処理するルートを切り替えることにより、ロボットAの制御モードが切り替わっても精度よくエンコーダ5の異常検出ができる構成及び方法を開示する。
【0093】
図8は、本実施形態に係るロボット制御部の構成を示す。この構成と、例えば、図2に示す構成との違いは、コントローラ7がロボットAの駆動制御を切り替えるための制御切替部7cを有していることである。教示プログラムあるいは操作部3からの入力により、ロボットAの駆動制御モードが切り替わると、制御切替部7cはこれを検知して、指令位置情報を送信するルートを切り替える。図8に示すように、通常制御を行う場合は1次遅れフィルタ22を適用してから指令位置情報をセーフティユニット9へと送り、高応答性制御を行う場合は、制振フィルタ21jと1次遅れフィルタ22jとを適用して補正位置情報をセーフティユニット9へと送っている。
【0094】
なお、制御切替部7cの機能は、コントローラ7のハードウェア上で実現してもよいし、ソフトウェア上で実現してもよい。
【0095】
図9は、本実施形態に係るエンコーダ5の異常判断方法を示すフローチャートである。
【0096】
すなわち、図9は、コントローラ7がサーボドライバ10を介してモータ4を回転動作させたときに、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示している。
【0097】
図9において、ステップST1,ST2及びST6からST11に係る処理は、図4に示したステップST1からST8と同様であるため、ここではその詳細な説明を省略する。また、ステップST1とステップST2との間では、取付負荷13の重量に応じて、図5に示すように、制振フィルタ211~21n及び1次遅れフィルタ221~22nから、対応するフィルタの組を選択して、コントローラ7からセーフティユニット9に送られる指令位置情報に適用することは、実施形態1と同様である。
【0098】
ステップST3において、ロボットAの駆動制御モードが高応答性制御であるか、そうでないかを判断する。この判断は、上述したように、コントローラ7における制御切替部7cにより行われる。
【0099】
ステップST3での判断結果が肯定的である場合、すなわち、ロボットAの駆動制御モードが高応答性制御であれば、ステップST4において、制振フィルタ21jと1次遅れフィルタ22jとを適用した上で補正位置情報をセーフティユニット9へ送信する。
【0100】
ステップST3での判断結果が否定的である場合、すなわち、ロボットAの駆動制御モードが通常制御であれば、ステップST5において1次遅れフィルタ22を適用した上で指令位置情報をセーフティユニット9へ送信する。
【0101】
以上説明したように、本実施形態によれば、ロボットAの駆動制御モードに応じて、コントローラ7からセーフティユニット9に送られる指令位置情報の送信ルートを切り替えることで、エンコーダ5の異常検出精度を高めることができる。
【0102】
例えば、ロボットAの駆動制御モードが高応答性制御であれば、指令位置情報に含まれる起振成分を除去するための制振フィルタ21jと、制御の応答遅れを低減するための1次遅れフィルタ22jを指令位置情報に適用することで、エンコーダ5の異常検出精度を高めることができる。さらに、取付負荷13の重量に応じて、所望のフィルタの組を選択し、コントローラ7からセーフティユニット9に送られる指令位置情報に適用することにより、エンコーダ5の異常検出精度をより高めることができる。
【0103】
一方、ロボットAの駆動制御モードが通常制御であれば、指令位置情報に含まれる起振成分の除去をあまり考慮しなくても良いことが多い。よって、制振フィルタ21は適用せずに、1次遅れフィルタ22を指令位置情報に適用する。このことにより、不測の誤差の発生を抑制し、エンコーダ5の異常検出精度を高めることができる。
【0104】
また、取付負荷13の重量は、主にロボットAの起振成分の周波数帯域に影響を与える。従って、取付負荷13の重量に応じて、フィルタ定数の異なる制振フィルタ21を選択することで、起振成分の周波数帯域が変化しても、制振フィルタ21により指令位置情報から適切に起振成分を除去することが可能となる。
【0105】
一方、1次遅れフィルタ22,22jの時定数はそれぞれ異なっていてもよい。モータ4の駆動遅れは、取付負荷13の重量にあまり影響を受けない。従って、通常制御時に適用される1次遅れフィルタ22の時定数は、取付負荷13の重量に関わらず、当初設定時の値が適用される。このようにすることで、ロボット制御装置が簡素化されるとともに安定する。
【0106】
(実施形態3)
図10は本実施形態に係るロボット制御部の構成を示すブロック図であり、図11は本実施形態に係るエンコーダの異常検出方法を示すフローチャートである。
【0107】
図10に示す構成において、コントローラ7から送信される指令位置情報を含む情報が、ロボットAの駆動制御モードに対応じたフィルタで処理されるルートと、上記駆動制御モードに対応していないフィルタで処理されるルートとの2系統で並列に処理されて、セーフティユニット9に送信される点で、図8に示した構成と異なる。また、図10に示す構成において、ロボットAの駆動制御モードに対応していないフィルタには、指令位置情報として「0」を入力している。
【0108】
実際のロボットAの駆動制御において、指令位置情報に制振フィルタ21や1次遅れフィルタ22を適用する処理は一定時間後まで影響が続く。ロボットAの駆動制御モードの切り替えが急であると、フィルタ処理しきれなかった指令位置情報の影響によりセーフティユニットが判定するための指令位置情報に誤差が含まれる可能性がる。
【0109】
そこで、本実施形態では、コントローラ7からの指令位置情報をフィルタ処理するにあたって、図10に示すように、2系統のフィルタを準備する。これら指令位置情報の並列処理を行うとともに、ロボットAの駆動制御モードに応じて、各々の系統で異なる情報を処理し、その加算結果を新たな指令位置情報とするようにしている。
【0110】
以下、図11に示すフローチャートを用いて説明する。なお、図11に示すフローのうち、ステップST1、ST2及びST9からST14における処理は、図4に示したステップST1からST8と同様であるため、ここではその詳細な説明を省略する。また、ステップST1とステップST2との間では、取付負荷13の重量に応じて、図5に示すように、制振フィルタ211~21n及び1次遅れフィルタ221~22nから、対応するフィルタの組を選択して、ロボットAの制御及び指定位置情報への適用のために切り替えることは、実施形態1と同様である。
【0111】
ステップST3で、ロボットAの駆動制御モードを判断し、その判断が高応答性制御であれば、コントローラ7からの指令位置情報に制振フィルタ21jと1次遅れフィルタ22jとを適用して補正位置情報を得る(ステップST4)。
【0112】
ST4での処理と並行して、ステップST5において、コントローラ7からの指令位置情報を「0」とした上で、1次遅れフィルタ22aを適用し処理する。ステップST8において、それぞれの処理結果を加算した上でセーフティユニット9へ送信する補正位置情報としている。
【0113】
一方、ステップST3において、ロボットAの駆動制御モードが通常制御であると判断すれば、コントローラ7からの指令位置情報を1次遅れフィルタ22aに適用してフィルタ処理し(ステップST6)、並行してコントローラ7からの指令位置情報を「0」とした上で、制振フィルタ21k(kは整数で、1≦k≦n)と1次遅れフィルタ22kとを適用し、フィルタ処理する(ステップST7)。ステップST8において、それぞれの処理結果を加算することでセーフティユニット9へ送信する指令位置情報としている。
【0114】
以上説明したように、本実施形態によれば、コントローラ7からの送信情報をロボットAの駆動制御モードに対応したフィルタ及びこの駆動制御モードに対応していないフィルタの両方で常に並列処理する。
【0115】
また、ロボットAの駆動制御モードに対応じたフィルタには、コントローラ7から送信される指令位置情報を直接適用する一方、駆動制御モードに対応していないフィルタには、指令位置情報を「0」として、フィルタ処理を行い、両方の系統でフィルタ処理された結果を加算して、新たな補正位置情報としてセーフティユニット9に送信する。
【0116】
このような処理を行うことで、制御モードの違いによる応答遅れ時間の差異を吸収し、ロボットAの駆動制御モードが異なる場合にも同様に、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。さらに、複数の制振フィルタ21と1次遅れフィルタ22との組において、取付負荷13の重量に応じて、所望のフィルタの組を選択してロボットAの制御に適用することにより、エンコーダ5の異常検出精度をより高めることができる。
【0117】
以上のように、本出願において開示する技術の例示として上記実施形態3について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。例えば、実施形態3について、以下に示すような構成としてもよい。
【0118】
<変形例2>
図12は、本変形例に係るロボット制御部の構成を示すブロック図である。
【0119】
実際のロボットAの制御においては、ロボット制御部2のコントローラ7が速度指令及び指令位置情報を出力してからサーボドライバ10が実際にモータ4を制御し、その制御に基づいてモータ4が動作するため、指令位置情報に対して実際のモータ位置は一定時間の遅れが生じている。
【0120】
この遅れ分を補正するため、上述したように、指令位置情報に対し制御方式に応じた1次遅れフィルタを適用したり、指令位置情報を含む情報に異なるフィルタでの処理を適用したりしている。しかしながら、1次遅れフィルタ22aはサーボドライバ10による制御遅れを簡易的に模擬したものなので、この1次遅れ分の精度を改善できる余地がある。
【0121】
そこで、図12に示す構成では、図10に示す構成において、通常制御時に使用する1次遅れフィルタ22aに対してフィードフォワード制御を行うことにより、1次遅れ分の精度をさらに改善できるようにしたものである。
【0122】
図12に示すように、コントローラ7からの指令位置情報に対して(1-a)倍のゲインをかけた上で1次遅れフィルタ22aに適用して処理を行うのと並行して、指令位置情報にa倍のゲインをかけ、これらの結果を加算してセーフティユニット9に送信する。
【0123】
したがって、本変形例によれば、実施形態3に示した構成と比較して、さらに精度が高くエンコーダの異常を判断することができるようになる。
【0124】
なお、本変形例では、1次遅れフィルタ22aに対してフィードフォワード制御を行う構成を説明したが、1次遅れフィルタ22j,22kに対しても同じようにフィードフォワード制御を行うことにより、同様の効果を得ることも可能である。
【0125】
(実施形態4)
図13は、本実施形態に係るロボットシステムの概略構成図である。
【0126】
部材の加工等において、複数のロボットを協調させながら動作させて(以下、協調動作と呼ぶことがある)加工を行うことが、従来知られている。このとき、図13に示すように、1台のロボット(マスターロボット)に対して1台または複数台のスレーブロボットが設定される。本実施形態では、ロボットIがマスターロボットとして、2台のロボットII,IIIがスレーブロボットとして設定される。このようなロボットシステム100において、ロボットIのコントローラ7からロボットII,IIIのコントローラ71,72にそれぞれ送られる速度指令に基づいて、スレーブロボットであるロボットII,IIIがロボットIと協調して動作する。なお、このような動作制御を協調制御と呼ぶことがある。また、ロボットI~IIIの構成は、実施形態1~3に示すロボットAの構成と同様である。
【0127】
図13に示すロボットシステム100では、個々のロボットでの応答性の違いによってモータ4の位置ずれが生じるおそれがあり、これを防止するために、それぞれのロボットで使用可能な速度指令において、起振成分を避けてカットオフ周波数を合わせる制御が行われる。例えば、ロボットIにおいてカットオフ周波数が8Hz、ロボットIIのカットオフ周波数が6Hz、ロボットCのカットオフ周波数が7Hzの場合、最も低いカットオフ周波数に合わせ、ロボットI~IIIは6Hzで動作する。
【0128】
このようにすることで、ロボットIIでは所定の制振制御がされる一方、ロボットI,IIIに関しては、それぞれのカットオフ周波数よりも低い周波数で動作することで、振動の発生が抑制される。
【0129】
しかし、図13に示すロボットシステム100において、ロボットI~IIIのそれぞれに、実施形態1~3に示す制振フィルタ21及び1次遅れフィルタ22を適用すると、ロボットI~IIIのそれぞれに取付けられる取付負荷13の重量の違いに応じて、ロボットI~IIIがそれぞれ有する制振フィルタ21のフィルタ定数が変化してしまう。つまり、協調制御のために選択されたフィルタ定数と異なるフィルタ定数を有する制振フィルタ21が使用されると、ロボットI~IIIのいずれかのセーフティユニット9において、指令位置情報におけるカットオフ周波数が不適切に設定されてしまい、エンコーダ5の異常を誤検出する可能性があった。
【0130】
そこで、本実施形態では、ロボットシステム100を実際に作動させる前に、ロボットシステム100全体で使用される制振フィルタ21を設定することで、上記の不具合を解消する構成を提案する。
【0131】
図14は、当該ロボットシステムで使用される制振フィルタの設定手順を示すフローチャートである。なお、説明の便宜上、図13に示すロボットI,IIのみを取り上げることとする。
【0132】
まず、ロボットIのコントローラ7は、ロボットIにおける制振フィルタ21及び1次遅れフィルタ22を決定する(ステップST31)。また、ロボットIのコントローラ7は、ロボットIIにおける制振フィルタ21及び1次遅れフィルタ22を決定する(ステップST32)。なお、ステップST31,32における制振フィルタ21及び1次遅れフィルタ22の決定手順は、例えば、図5に示すフローチャートの実行手順と同様である。
【0133】
次に、ロボットIのコントローラ7は、ロボットIが保持する取付負荷13の重量に応じて決まるカットオフ周波数faが、ロボットIIが保持する取付負荷13の重量に応じて決まるカットオフ周波数fb以下かどうかを判定する(ステップST33)。ステップST33での判定結果が肯定的であれば、ロボットシステム100が有するすべてのロボット、この場合は、ロボットI,IIのそれぞれに対して、ステップST31で決定された制振フィルタ21及び1次遅れフィルタ22を適用し(ステップST34)、ステップST33での判定結果が否定的であれば、ロボットI,IIのそれぞれに対して、ステップST32で決定された制振フィルタ21及び1次遅れフィルタ22を適用する(ステップST35)。
【0134】
このようにすることで、ロボットシステム100におけるすべてのロボットに対して、保持された取付負荷13の重量に応じた指令位置情報のカットオフ周波数を比較し、最も低いカットオフ周波数に対応した制振フィルタ21と1次遅れフィルタ22の組が選択され、それぞれのロボットのセーフティユニット9において、エンコーダ5の異常の誤検出を抑制し、エンコーダ5の異常検出精度をさらに高めることができる。
【0135】
(その他の実施形態)
なお、図5,6に示す制振フィルタ21及び1次遅れフィルタ22の切替において、制振フィルタ22jに対応させて1次遅れフィルタ22jを選択するようにしたが、前述したように、モータ4の駆動制御遅れを補償する1次遅れフィルタ22において、その時定数は、取付負荷13の重量に大きく影響を受けない。従って、制振フィルタ適用判定部7aで制振フィルタ22jを選択する代わりに、所定の時定数を有する1次遅れフィルタ22をコントローラ7からセーフティユニット9に送られる指令位置情報に適用するようにしてもよい。
【産業上の利用可能性】
【0136】
本開示のエンコーダの異常検出方法は、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判断をすることができるので、汎用の溶接ロボット等の産業用ロボットやその他の作動装置に係るエンコーダの異常を判断する上で特に有用である。
【符号の説明】
【0137】
A,I~III ロボット(作動装置)
4 モータ
5 エンコーダ
7,71,72 コントローラ
7a 制振フィルタ適用判定部
7b 遅れフィルタ適用判定部
7c 制御切替部
9 セーフティユニット(異常検出装置)
10 サーボドライバ
12 関節軸(出力軸)
13 取付負荷
21、221~22n 制振フィルタ
22,221~22n 1次遅れフィルタ(遅れ制御フィルタ)
92 CPU(判定部)
94 エンコーダ受信部(第1受信部)
95 DPRAM(第2受信部)
100 ロボットシステム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14