(57)【要約】【課題】ロボットアームの異常をより正確に検出することを可能とする。【解決手段】駆動電流から実際の駆動トルクを算出するトルク算出手段１０，１１と、指令位置情報から駆動トルクを算出するとともに、トルク変動パラメータにより駆動トルクを補正して駆動トルクを推測するトルク推測手段１０，１１と、他の演算処理部１０，１１において推測された推測トルクを取得する推測トルク取得手段１０，１１と、推測した推測トルクと取得した推測トルクとの一致判断を行う推測トルク一致判断手段１０，１１と、推測トルクが一致すると判断された場合に、推測トルクと算出された実際の駆動トルクとの差を算出するトルク差算出手段１０，１１と、算出されたトルクの差が所定値以上である場合又は推測トルクが一致しないと判断された場合に、切り替え部１８，１９によりサーボモータ２４への電力供給を遮断する電力遮断手段１０，１１と、を有する。【選択図】図１
2007301680.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームの位置を検出する位置検出手段からの検出出力に応じてサーボ制御部により制御されるサーボモータを駆動源とするロボットアームの異常を診断するロボットアーム診断装置において、
前記サーボモータに対する電力の供給と遮断とを切り替え可能な切り替え部と、
前記サーボモータの駆動電流を検出する電流検出手段と、
二つの演算処理部と、
前記サーボモータの駆動トルクに影響を与えるトルク変動パラメータを記憶する記憶手段と、
前記サーボ制御部からの前記ロボットアームに対する指令位置情報を受信する制御情報受信手段と、
前記制御情報受信手段により受信した指令位置情報及び前記記憶手段に記憶されたトルク変動パラメータを一方又は双方の演算処理部に送信する制御情報送信手段と、を有し、
各演算処理部は、
前記電流検出手段により検出された前記サーボモータの駆動電流から当該サーボモータの実際の駆動トルクを算出するトルク算出手段と、
前記制御情報受信手段により受信した指令位置情報から前記サーボモータの駆動トルクを算出するとともに、前記記憶手段に記憶された前記トルク変動パラメータにより算出された駆動トルクを補正して当該サーボモータが発揮する駆動トルクを推測するトルク推測手段と、
他の演算処理部における前記トルク推測手段により推測された前記サーボモータの推測トルクを取得する推測トルク取得手段と、
前記トルク推測手段により推測した前記サーボモータの推測トルクと前記推測トルク取得手段により取得した推測トルクとが一致するか否かを判断する推測トルク一致判断手段と、
前記推測トルク一致判断手段により前記サーボモータの推測トルクが一致すると判断された場合に、前記推測トルクと前記トルク算出手段により算出された前記サーボモータの実際の駆動トルクとの差を算出するトルク差算出手段と、
前記トルク差算出手段により算出されたトルクの差が所定値以上である場合又は前記推測トルク一致判断手段により前記サーボモータの推測トルクが一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断する電力遮断手段と、
を有することを特徴とするロボットアーム診断装置。
【請求項２】
各演算処理部は、
受信した指令位置情報が異常であるか否かを判断する指令位置情報異常判断手段と、
他の演算処理部において受信した指令位置情報を取得する指令位置情報取得手段と、
受信した指令位置情報と前記指令位置情報取得手段により取得した指令位置情報とが一致するか否かを判断する指令位置情報一致判断手段と、
前記指令位置情報異常判断手段によって受信した指令位置情報が異常であると判断された場合又は前記指令位置情報一致判断手段によって指令位置情報が一致しないと判断された場合に、指令位置情報の受信エラーである旨をユーザに報知する報知手段と、
を有することを特徴とする請求項１に記載のロボットアーム診断装置。
【請求項３】
前記サーボ制御部と別個に構成したことを特徴とする請求項１又は２に記載のロボットアーム診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のロボットアームを有するロボットにおけるロボットアームの異常を診断するロボットアーム診断装置に関する。
【背景技術】
【０００２】
一般的に、複数のロボットアームを備える産業用ロボットは、各ロボットアームに当該ロボットアームを駆動させるサーボモータが取り付けられ、このサーボモータにエンコーダやレゾルバ等の位置検出器が取り付けられて構成されている。サーボモータはサーボ制御部により制御されており、サーボ制御においては、ロボットアームへの指令位置に対して現在位置が追従動作するフィードバック制御が行われており、ロボットアームの位置を監視することでロボットアームの異常を検出することができる。
ロボットアームの異常を検出するものとして、例えば、サーボ制御部からのロボットアームへの指令位置と、位置検出器から検出されたロボットアームの現在位置とを比較することで、ロボットアームの異常を検出するという提案がなされている（例えば、特許文献１参照。）。
【特許文献１】特開２００５−１８６１８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、一般的な産業用ロボットにおいては、サーボモータの出力軸には回転減速機、ロボットアームが機械要素として設けられており、エンコーダやレゾルバ等の位置検出器からの現在位置に関するデータだけではロボットアーム先端の状態を監視することができない。
上記の特許文献１では、サーボ制御部からの指令位置と位置検出器からの現在位置とを比較しているため、サーボモータの出力軸の故障、減速機の故障、ロボットアームで発生する異常を検出することができない。具体的には、ロボットアームが折れている場合であっても、サーボ制御部からの指令位置と位置検出器からの現在位置は一致するため、ロボットアームの異常を検出することができない。
【０００４】
本発明は、上記課題を解決するためになされたものであり、ロボットアームの異常をより正確に検出することを可能としたロボットアーム診断装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、ロボットアームの位置を検出する位置検出手段からの検出出力に応じてサーボ制御部により制御されるサーボモータを駆動源とするロボットアームの異常を診断するロボットアーム診断装置において、前記サーボモータに対する電力の供給と遮断とを切り替え可能な切り替え部と、前記サーボモータの駆動電流を検出する電流検出手段と、二つの演算処理部と、前記サーボモータの駆動トルクに影響を与えるトルク変動パラメータを記憶する記憶手段と、前記サーボ制御部からの前記ロボットアームに対する指令位置情報を受信する制御情報受信手段と、前記制御情報受信手段により受信した指令位置情報及び前記記憶手段に記憶されたトルク変動パラメータを一方又は双方の演算処理部に送信する制御情報送信手段と、を有し、各演算処理部は、前記電流検出手段により検出された前記サーボモータの駆動電流から当該サーボモータの実際の駆動トルクを算出するトルク算出手段と、前記制御情報受信手段により受信した指令位置情報から前記サーボモータの駆動トルクを算出するとともに、前記記憶手段に記憶された前記トルク変動パラメータにより算出された駆動トルクを補正して当該サーボモータが発揮する駆動トルクを推測するトルク推測手段と、他の演算処理部における前記トルク推測手段により推測された前記サーボモータの推測トルクを取得する推測トルク取得手段と、前記トルク推測手段により推測した前記サーボモータの推測トルクと前記推測トルク取得手段により取得した推測トルクとが一致するか否かを判断する推測トルク一致判断手段と、前記推測トルク一致判断手段により前記サーボモータの推測トルクが一致すると判断された場合に、前記推測トルクと前記トルク算出手段により算出された前記サーボモータの実際の駆動トルクとの差を算出するトルク差算出手段と、前記トルク差算出手段により算出されたトルクの差が所定値以上である場合又は前記推測トルク一致判断手段により前記サーボモータの推測トルクが一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断する電力遮断手段と、を有することを特徴とする。
ここで、指令位置情報とは、サーボ制御部からサーボモータに送信される駆動信号であり、ロボットアームを目標とする位置まで動かすために必要なサーボモータの駆動量に関する信号の情報をいう。
また、トルク変動パラメータとは、サーボゲイン、ロボットアームの重量、ロボットアームの重心、ロボットアームの先端に設けられたツールの重量等のサーボモータの駆動トルクに影響を与えるパラメータをいう。
【０００６】
請求項２に記載の発明は、請求項１に記載のロボットアーム診断装置において、各演算処理部は、受信した指令位置情報が異常であるか否かを判断する指令位置情報異常判断手段と、他の演算処理部において受信した指令位置情報を取得する指令位置情報取得手段と、受信した指令位置情報と前記指令位置情報取得手段により取得した指令位置情報とが一致するか否かを判断する指令位置情報一致判断手段と、前記指令位置情報異常判断手段によって受信した指令位置情報が異常であると判断された場合又は前記指令位置情報一致判断手段によって指令位置情報が一致しないと判断された場合に、指令位置情報の受信エラーである旨をユーザに報知する報知手段と、を有することを特徴とする。
【０００７】
請求項３に記載の発明は、請求項１又は２に記載のロボットアーム診断装置において、前記サーボ制御部と別個に構成したことを特徴とする。
【発明の効果】
【０００８】
請求項１に記載の発明では、ロボットアームは、位置検出手段からの検出出力に応じてサーボ制御部に制御されるサーボモータの駆動により動作する。
このようなロボットアームの動作時に、電流検出手段は、サーボモータの駆動電流を検出し、トルク算出手段は、電流検出手段により検出されたサーボモータの駆動電流からサーボモータの実際の駆動トルクを算出する。
そして、トルク推測手段は、制御情報受信手段により受信した指令位置情報からサーボモータの駆動トルクを算出するとともに、記憶手段に記憶されたトルク変動パラメータにより、算出された駆動トルクを補正してサーボモータが発揮する駆動トルクを推測する。
【０００９】
ここで、二つの演算処理部は、推測トルク取得手段によってそれぞれ他の演算処理部におけるトルク推測手段により推測されたサーボモータの推測トルクを取得する。
そして、推測トルク一致判断手段は、トルク推測手段により推測したサーボモータの推測トルクと推測トルク取得手段により取得した推測トルクとが一致するか否かを判断する。ここで、推測トルク一致判断手段によりサーボモータの推測トルクが一致しないと判断された場合には、電力遮断手段は、切り替え部によりサーボモータに対する電力の供給を遮断する。
【００１０】
一方、推測トルク一致判断手段によりサーボモータの推測トルクが一致すると判断された場合には、トルク差算出手段は、推測トルクとトルク算出手段により算出されたサーボモータの実際の駆動トルクとの差を算出する。ここで、トルク差算出手段により算出されたトルクの差が所定値以上である場合には、電力遮断手段は、切り替え部によりサーボモータに対する電力の供給を遮断する。
【００１１】
これにより、各演算処理部は、サーボ制御部から受信した指令位置情報に基づいて、トルク変動パラメータも考慮した状態でサーボモータの駆動トルクを推測し、実際にサーボモータに接続された電流検出手段から検出された電流値に基づいて算出されたサーボモータの駆動トルクと比較して、そのトルクの差に応じてロボットアームが異常であると診断してサーボモータの駆動を停止させることができる。よって、従来は位置検出器がサーボモータの出力軸に設けられていることにより、サーボモータの出力軸の故障、減速機の故障、ロボットアームで発生する異常を検出することができなかったが、これらの異常もサーボモータのトルクの変動により検出することができるようになるので、ロボットアームの異常をより確実かつ正確に検出することができる。
また、二つの演算処理部により互いに推測したサーボモータの駆動トルクが一致するか否かを判断しているので、ロボットアーム診断装置の信頼性を向上させることができる。
【００１２】
請求項２に記載の発明では、指令位置情報異常判断手段は、受信した指令位置情報が異常であるか否かを判断し、指令位置情報が異常であると判断された場合には、報知手段が指令位置情報の受信エラーである旨をユーザに報知する。指令位置情報取得手段は他の演算処理部において受信した指令位置情報を取得し、指令位置情報一致判断手段は、受信した指令位置情報と指令位置情報取得手段により取得した指令位置情報とが一致するか否かを判断する。そして、指令位置情報一致判断手段により指令位置情報が一致しないと判断された場合には、報知手段は指令位置情報の受信エラーである旨をユーザに報知する。
【００１３】
これにより、指令位置情報を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各演算処理部が互いの指令位置情報を相互に比較して異常の有無を判断しているので、サーボ制御部の異常を迅速かつ的確に検出することができ、ロボットアーム診断装置の信頼性を向上させることができる。
また、二つの演算処理部により互いに受信した指令位置情報の異常の有無を判断しているので、ロボットアーム診断装置の信頼性を向上させることができる。
【００１４】
請求項３に記載の発明では、ロボットアーム診断装置をサーボ制御部と別個に構成することにより、ロボットアーム診断装置及びサーボ制御部にかかる演算処理負担を減らすことができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明に係るロボットアーム診断装置の最良の形態について詳細に説明する。なお、本実施形態においては、スポット溶接ガンを備える溶接ロボットにおけるロボットアームの診断装置を例に挙げて説明する。
【００１６】
＜ロボット＞
図１に示すように、ロボットアーム診断装置１による診断対象となるロボット２は、土台となるベース２１と、複数の関節２３で連結された複数のロボットアーム２２と、それぞれの関節２３ごとに設けられた駆動源としてのサーボモータ２４と、各サーボモータ２４の軸角度、すなわちロボットアーム２２の位置をそれぞれ検出する位置検出手段としてのエンコーダ２５と、を備えている。そして、連結されたロボットアーム２２の最先端部にはロボット２の用途に応じたツール２６（例えば溶接ガンやハンド等）が装備されている。
各関節２３は、ロボットアーム２２の一端部を揺動可能として他端部を軸支する揺動関節と、ロボットアーム２２自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット２はいわゆる多関節型ロボットに相当する。
また、ロボット２は、例えば、六つの関節２３を備えており、その先端部のツール２６を任意の位置に位置決めし、任意の姿勢を取らせることが可能となっている。
【００１７】
＜ロボット制御装置＞
図１に示すように、ロボット２には、当該ロボット２の駆動制御を行うロボット制御装置３に接続され、ロボット制御装置３から送信される指令信号によりその駆動が制御される。
ロボット制御装置３は、ティーチング或いはプログラミングにより設定されたロボット２の教示動作データに従って、ロボット２の制御指令を出力する位置制御部４と、位置制御部４からの制御指令に従ってロボット２の各サーボモータ２４の制御を行うサーボアンプ５と、を備えている。
【００１８】
（位置制御部）
位置制御部４は、ロボット２の動作制御を行うために各サーボモータ２４に対する制御指令を生成するための各種の処理プログラム及び各種のデータが記憶されたメモリ４１と、処理プログラムを実行するＣＰＵと、サーボアンプ５との指令やデータの送受信を行うためのインターフェイスとを主に備えている。
【００１９】
メモリ４１には、ロボット２の各種の処理プログラムの他、設定されたロボットの教示動作データ、ロボット２に関する各種の制御情報（各部の寸法、重量、イナーシャ、エンコーダ２５の出力コードと当該出力コードが示す関節角度（角度位置）との対応関係を示すテーブル、ロボットの各関節２３における関節角度の上限値、下限値（許容動作位置）、各関節２３の関節動作速度の上限値（許容速度）、各関節２３のトルクの上限値（許容値）、指令位置等）が記憶されている。さらに、メモリ４１には、サーボゲイン、ロボットアーム２２の重量、ロボットアーム２２の重心、ツール２６の重量、ツール２６の重心等のようにサーボモータ２４の駆動トルクに影響を与えるトルク変動パラメータが記憶されている。すなわち、このメモリ４１は記憶手段として機能する。
教示動作データは、ロボット２が所定の動作を実行するための制御指令であり、例えば、事前にロボット２に目的となる動作（ティーチング）を行わせ、当該動作軌跡の各点で関節角度のサンプリングを行い、その実行動作を再現するために演算により求められた移動軌跡のデータである。
位置制御部４のＣＰＵは、ロボット２の制御の際には、教示動作データに基づいて、サーボアンプ５に対して各サーボモータ２４の指令位置を所定の周期で順番に出力する。
なお、教示動作データは、ティーチングに限らず、記録メディアの読み出し装置、オペレータによる入力装置又は外部に対する通信手段によりロボット制御装置３の外部から取得される場合もある。
【００２０】
また、メモリ４１内の各種の制御情報である各部の寸法、重量、イナーシャ、エンコーダ２５の出力コードと当該出力コードが示す関節角度との対応関係を示すテーブル、ロボットの各関節２３における関節角度の上限値、下限値、各関節２３の関節動作速度の上限値、各関節２３のトルクの上限値等のデータ、そして、ロボット２への指令位置やトルク変動パラメータ等は、ロボットアーム診断装置１に出力される。その際、ＣＰＵは、各データについて所定のデータ単位ごとにＣＲＣコード（Cyclic Redundancy Check）を生成し、これを添付してロボットアーム診断装置１に送信する。
【００２１】
（サーボアンプ）
サーボアンプ５は、ロボット２の各関節２３のエンコーダ２５から回転角度位置の検出信号を受信する受信回路と、各サーボモータ２４に対する制御信号と帰還信号の送受信を行うモータ制御回路とを備えている。そして、サーボアンプ５は、位置制御部４から入力される指令位置と各エンコーダ２５の検出信号と各サーボモータ２４からの帰還信号とに基づいて、各サーボモータ２４の位置、速度、トルクについてフィードバック制御を行う。なお、このサーボアンプ５と上述の位置制御部４とが、サーボモータ２４をエンコーダ２５からの検出出力に応じて制御するサーボ制御部として機能する。
【００２２】
＜ロボットアーム診断装置＞
図１に示すように、ロボットアーム診断装置１は、ロボットアーム２２の異常を診断するものであり、後述する各種の処理を実行する二つの演算処理部としての第一のＣＰＵ１０及び第二のＣＰＵ１１と、サーボ制御部を構成する位置制御部４からロボット２への指令位置及びサーボゲイン、ロボットアーム２２の重量、ロボットアーム２２の重心、ロボットアーム２２の先端に設けられたツール２６の重量等のサーボモータ２４の駆動トルクに影響を与えるトルク変動パラメータを含む制御情報を受信する制御情報受信手段としての制御情報受信回路１３と、サーボモータ２４とサーボアンプ５とを接続する配線上に設けられ、サーボモータ２４の駆動電流を検出する電流検出手段としての電流計１４，１５と、電流計１４，１５にて検出された電流に関するデータを第一のＣＰＵ１０及び第二のＣＰＵ１１にて演算処理するためにデータ変換を行うＡＤコンバータ１６，１７と、電源から各サーボモータ２４への電力の供給と遮断とを切り替え可能な切り替え部としてのマグネットスイッチ１８，１９と、第一と第二のＣＰＵ１０，１１の演算処理の実行状態を個別に監視するウォッチドッグ回路３０，３１と、異常検知が行われた場合にオペレータに異常発生を報知するための報知部３２と、を備えている。
ここで、ロボットアーム診断装置１、位置制御部４、サーボアンプ５は、それぞれ別個に構成されている。
【００２３】
（各ＣＰＵの機能）
各ＣＰＵ１０，１１は、それぞれ内部メモリ３５，３６を有しており、各内部メモリ３５，３６は、ＣＰＵ１０，１１がそれぞれ実行する処理プログラムを記憶すると共に各処理における作業領域として機能する。
また、第一のＣＰＵ１０と第二のＣＰＵ１１とは、それぞれのデータの送受信を行う通信手段であるバスにより互いに接続されている。
【００２４】
第一のＣＰＵ１０及び第二のＣＰＵ１１は、電流計１４，１５により検出されたサーボモータ２４の駆動電流から当該サーボモータ２４の実際の駆動トルクを算出するトルク算出手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、制御情報受信回路１３により受信した指令位置情報からサーボモータ２４の駆動トルクを算出するとともに、メモリ４１に記憶されたトルク変動パラメータにより算出された駆動トルクを補正して当該サーボモータ２４が発揮する駆動トルクを推測するトルク推測手段として機能する。なお、指令位置情報からの駆動トルクの算出は、公知のNewton-Euler法を用いて算出するが、もちろんその他の方法により算出してもよい。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、他のＣＰＵにおいて推測されたサーボモータ２４の推測トルクを取得する推測トルク取得手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、推測したサーボモータ２４の推測トルクと取得した推測トルクとが一致するか否かを判断する推測トルク一致判断手段として機能する。
【００２５】
第一のＣＰＵ１０及び第二のＣＰＵ１１は、サーボモータ２４の推測トルクが一致すると判断された場合に、推測トルクと電流計１４，１５の電流値から算出されたサーボモータ２４の実際の駆動トルクとの差を算出するトルク差算出手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、算出されたトルクの差が所定値以上である場合又はサーボモータ２４の推測トルクが一致しないと判断された場合に、マグネットスイッチ１８，１９によりサーボモータ２４に対する電力の供給を遮断する電力遮断手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、受信した指令位置情報が異常であるか否かを判断する指令位置情報異常判断手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、他のＣＰＵにおいて受信した指令位置情報を取得する指令位置情報取得手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、受信した指令位置情報と取得した指令位置情報とが一致するか否かを判断する指令位置情報一致判断手段として機能する。
【００２６】
（制御情報受信回路）
制御情報受信回路１３は、サーボアンプ５からのサーボモータ２４への指令位置及びトルク変動パラメータを、位置制御部４を介して受信し、受信した指令位置及びトルク変動パラメータを第一のＣＰＵ１０に送信する。すなわち、制御情報受信回路１３は、制御情報送信手段としても機能する。
【００２７】
（電流計及びＡＤコンバータ）
電流計１４，１５は、各サーボモータ２４に二つずつ設けられ、各電流計１４，１５にはそれぞれ検出された電流値データをＣＰＵ１０，１１で処理するためのデータに変換するＡＤコンバータ１６，１７が接続されている。電流計１４にて検出された電流値データはＡＤコンバータ１６にて変換され、第一のＣＰＵ１０に送られる。電流計１５にて検出された電流値データはＡＤコンバータ１７にて変換され、第二のＣＰＵ１１に送られる。
【００２８】
（ウォッチドッグ回路）
ウォッチドッグ回路３０は第一のＣＰＵ１０を監視し、ウォッチドッグ回路３１は第二のＣＰＵ１１の監視を行う。
すなわち、各ウォッチドッグ回路３０，３１は、ロボット２の制御実行時において、それぞれが監視対象とするＣＰＵ１０，１１に対して周期的にウォッチドッグ要求信号を出力し、これに対して各ＣＰＵ１０，１１が所定期間内に応答信号を返信しないときには、監視対象であるＣＰＵ１０，１１が停止しているものとして、タイムアップ信号を監視対象ではないＣＰＵ１０，１１に出力する機能を有している。
【００２９】
（報知部）
報知部３２は、処理において異常を検知したときに、その異常をオペレータに報知するための報知手段として機能する。具体的には、異常発生を表示するモニタ、報知ランプ又は警報機等が報知部３２として使用される。
報知部３２は、各ＣＰＵ１０，１１が、他のウォッチドッグ回路３０，３１を通じて不良停止状態を検知すると、当該他のＣＰＵ１０，１１が不良停止状態である旨をユーザに報知する。
報知部３２は、第一のＣＰＵ１０及び第二のＣＰＵ１１により、受信した指令位置情報が異常であると判断された場合、又は、受信した指令位置情報と取得した指令位置情報とが一致するか否かを判断した際に指令位置情報が一致しないと判断された場合に、指令位置情報の受信エラーである旨をユーザに報知する。
【００３０】
＜制御情報の受信処理＞
図２は、ロボットアーム診断装置１の各ＣＰＵ１０，１１が行うロボット制御における制御情報の受信処理を示したものである。
最初に、第一のＣＰＵ１０は、制御情報受信回路１３を介して位置制御部４のＣＰＵに対して制御情報の要求を行い、その結果、位置制御部４から制御情報を受信する（ステップＳ１０１）。
【００３１】
このとき、位置制御部４のＣＰＵは制御情報について所定のデータ単位でＣＲＣコードを付与して送信する。これに対して、第一のＣＰＵ１０は受信した制御情報について位置制御部３と同じ条件でＣＲＣコードを生成すると共に、位置制御部４で生成されたＣＲＣコードと一致するか否かの判断を行う（ステップＳ１０２）。
このＣＲＣコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
【００３２】
そして、第一のＣＰＵ１０が、ＣＲＣコードが一致しない（ＣＲＣコード異常）と判断した場合（ステップＳ１０２：ＹＥＳ）、第一のＣＰＵ１０は報知部３２に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１０３）。異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第一のＣＰＵ１０が、ＣＲＣコードが一致した（ＣＲＣコード正常）と判断した場合（ステップＳ１０２：ＮＯ）、第一のＣＰＵ１０は、内部メモリ３５に受信した制御情報を格納し（ステップＳ１０４）、さらに、第二のＣＰＵ１１に対して受信した制御情報とそのＣＲＣコードを送信する（ステップＳ１０５）。
【００３３】
第一のＣＰＵ１０からの制御情報とＣＲＣコードを受信すると、第二のＣＰＵ１１は、受信した制御情報について位置制御部４と同じ条件でＣＲＣコードを生成すると共に、受信した制御情報のＣＲＣコードと一致するか否かの判断を行う（ステップＳ１０６）。
そして、第二のＣＰＵ１１が、ＣＲＣコードが一致しない（ＣＲＣコード異常）と判断した場合（ステップＳ１０６：ＹＥＳ）、第二のＣＰＵ１１は報知部３２に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１０７）。このときも、異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第二のＣＰＵ１１が、ＣＲＣコードが一致した（ＣＲＣコード正常）と判断した場合（ステップＳ１０６：ＹＥＳ）、第二のＣＰＵ１１は、内部メモリ３６に受信した制御情報を格納する（ステップＳ１０８）。
【００３４】
また、第一のＣＰＵ１０は、制御情報を内部メモリ３５に格納後、バスを介して第二のＣＰＵ１１に送信した制御情報との相互比較を行い（ステップＳ１０９）、第二のＣＰＵ１１は、制御情報を内部メモリ３６に格納後、バスを介して第一のＣＰＵ１１が保有する制御情報との相互比較を行う（ステップＳ１１０）。
【００３５】
そして、第一のＣＰＵ１０は、自己の制御情報と第二のＣＰＵ１１の制御情報とが一致するか否かを判断し（ステップＳ１１１）、第一のＣＰＵ１０が一致すると判断した場合（ステップＳ１１１：ＹＥＳ）、これをもって本処理を終了する。一方、第一のＣＰＵ１０が一致しないと判断した場合（ステップＳ１１１：ＮＯ）、第一のＣＰＵ１０は、報知部３２に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１１３）。このときも、異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
【００３６】
また、同様にして、第二のＣＰＵ１１は、自己の制御情報と第一のＣＰＵ１０の制御情報とが一致するか否かを判断し（ステップＳ１１２）、第二のＣＰＵ１１が一致すると判断した場合（ステップＳ１１２：ＹＥＳ）、これをもって本処理を終了する。一方、第二のＣＰＵ１１が一致しないと判断した場合（ステップＳ１１２：ＮＯ）、第二のＣＰＵ１１は、報知部３２に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１１４）。このときも、異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
【００３７】
＜ロボットアームの診断処理＞
図３は、ロボットアーム診断装置１の各ＣＰＵ１０，１１が行うロボットアーム２２の診断処理を示したフローチャートである。
第一のＣＰＵ１０は、電流計１４にて検出された電流値のデータをＡＤコンバータ１６によって演算処理可能なデータに変換する（ステップＳ２０１）。また、第二のＣＰＵ１１も、電流計１５にて検出された電流値のデータをＡＤコンバータ１７によって演算処理可能なデータに変換する（ステップＳ２０２）。
次いで、第一のＣＰＵ１０は、ＡＤ変換された電流値のデータを、バスを介して第二のＣＰＵ１１に送信する（ステップＳ２０３）。また、第二のＣＰＵ１１も、ＡＤ変換された電流値のデータを、バスを介して第一のＣＰＵ１０に送信する（ステップＳ２０４）。
次いで、第一のＣＰＵ１０は、自らＡＤ変換した電流値のデータ及び第二のＣＰＵ１１から受信したＡＤ変換された電流値のデータに基づいて、サーボモータ２４の実際の駆動トルクを算出する（ステップＳ２０５）。また、第二のＣＰＵ１１も、自らＡＤ変換した電流値のデータ及び第一のＣＰＵ１０から受信したＡＤ変換された電流値のデータに基づいて、サーボモータ２４の実際の駆動トルクを算出する（ステップＳ２０６）。
【００３８】
次いで、第一のＣＰＵ１０は、位置制御部４から受信した制御情報のうち、指令位置情報に基づいてサーボモータ２４の駆動トルクを推測する（ステップＳ２０７）。ここで、駆動トルクの推測にあたっては、上述したように公知のNewton-Euler法を用いて算出する。また、第二のＣＰＵ１１も、第一のＣＰＵ１０から受信した制御情報のうち、指令位置情報に基づいてサーボモータ２４の駆動トルクを推測する（ステップＳ２０８）。
次いで、第一のＣＰＵ１０は、ステップＳ２０７で推測された駆動トルクをより現実のトルク値に近づけるため、位置制御部４から受信した制御情報のうち、トルク変動パラメータに基づいて、ステップＳ２０７で推測された駆動トルクを補正する（ステップＳ２０９）。また、第二のＣＰＵ１１も、ステップＳ２０８で推測された駆動トルクをより現実のトルク値に近づけるため、位置制御部４から受信した制御情報のうち、トルク変動パラメータに基づいて、ステップＳ２０８で推測された駆動トルクを補正する（ステップＳ２１０）。
【００３９】
次いで、第一のＣＰＵ１０は、サーボモータ２４の駆動トルクを推測した後、バスを介して、第二のＣＰＵ１１で推測したサーボモータ２４の駆動トルクとの相互比較を行い（ステップＳ２１１）、第一のＣＰＵ１０で推測したサーボモータ２４の駆動トルクと第二のＣＰＵ１１で推測したサーボモータ２４の駆動トルクとが一致するか否かの判断を行う（ステップＳ２１３）。
同様に、第二のＣＰＵ１１は、サーボモータ２４の駆動トルクを推測した後、バスを介して、第一のＣＰＵ１０が推測したサーボモータ２４の駆動トルクとの相互比較を行い（ステップＳ２１２）、第二のＣＰＵ１１で推測したサーボモータ２４の駆動トルクと第一のＣＰＵ１０で推測したサーボモータ２４の駆動トルクとが一致するか否かの判断を行う（ステップＳ２１４）。
【００４０】
そして、第一のＣＰＵ１０が、相互の推測トルクが一致しないと判断した場合（ステップＳ２１３：ＮＯ）、第一のＣＰＵ１０は、マグネットスイッチ１８に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２の駆動を停止させる（ステップＳ２１５）。
同様に、第二のＣＰＵ１１が、相互の推測トルクが一致しないと判断した場合（ステップＳ２１４：ＮＯ）、第二のＣＰＵ１１は、マグネットスイッチ１９に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ２１６）。
【００４１】
一方、第一のＣＰＵ１０が、相互の推測トルクが一致したと判断した場合（ステップＳ２１３：ＹＥＳ）、第一のＣＰＵ１０は、ステップＳ２０５にて算出されたサーボモータ２４の実際の駆動トルクとステップＳ２０７、Ｓ２０９にて推測、補正された推測トルクとの差分を算出し、その差分が内部メモリ３５に格納していた所定の閾値未満であるか（許容されるトルク差の限界を超えていないか否か）否かを判断する（ステップＳ２１７）。
同様に、第二のＣＰＵ１１が、相互の推測トルクが一致したと判断した場合（ステップＳ２１４：ＹＥＳ）、第二のＣＰＵ１１は、ステップＳ２０６にて算出されたサーボモータ２４の実際の駆動トルクとステップＳ２０８、Ｓ２１０にて推測、補正された推測トルクとの差分を算出し、その差分が内部メモリ３６に格納していた所定の閾値未満であるか（許容される位置差の限界を超えていないか否か）否かを判断する（ステップＳ２１８）。
【００４２】
そして、第一のＣＰＵ１０が、実際の駆動トルクと推測トルクとの差分値が所定の閾値以上であったと判断した場合（ステップＳ２１７：ＮＯ）、第一のＣＰＵ１０は、マグネットスイッチ１８に切替信号を出力し、ロボット２を停止させる（ステップＳ２１９）。また、第一のＣＰＵ１０が、実際の駆動トルクと推測トルクとの差分値が所定の閾値未満であったと判断した場合（ステップＳ２１７：ＹＥＳ）、第一のＣＰＵ１０は、本処理を終了させる。
同様に、第二のＣＰＵ１１が、実際の駆動トルクと推測トルクとの差分値が所定の閾値以上であったと判断した場合（ステップＳ２１８：ＮＯ）、第二のＣＰＵ１１は、マグネットスイッチ１９に切替信号を出力し、ロボット２を停止させる（ステップＳ２２０）。また、第二のＣＰＵ１１が、実際の駆動トルクと推測トルクとの差分値が閾値未満であったと判断した場合（ステップＳ２１８：ＹＥＳ）、第二のＣＰＵ１１は、本処理を終了させる。
【００４３】
＜実施形態の効果＞
以上のように、ロボットアーム診断装置１によれば、ロボットアーム２２は、エンコーダ２５からの検出出力に応じてロボット制御装置３に制御されるサーボモータ２４の駆動により動作する。
このようなロボットアーム２２の動作時に、電流計１４，１５は、サーボモータ２４の駆動電流を検出し、各ＣＰＵ１０，１１は、電流計１４，１５により検出されたサーボモータ２４の駆動電流からサーボモータ２４の実際の駆動トルクを算出する。
そして、各ＣＰＵ１０，１１は、制御情報受信回路１３により受信した指令位置情報からサーボモータ２４の駆動トルクを算出するとともに、メモリ４１に記憶されたトルク変動パラメータにより、算出された駆動トルクを補正してサーボモータ２４が発揮する駆動トルクを推測する。
【００４４】
ここで、各ＣＰＵ１０，１１は、それぞれ他のＣＰＵ１０，１１において推測されたサーボモータ２４の推測トルクを取得する。
そして、各ＣＰＵ１０，１１は、推測したサーボモータ２４の推測トルクと取得した推測トルクとが一致するか否かを判断する。ここで、サーボモータ２４の推測トルクが一致しないと判断された場合には、各ＣＰＵ１０，１１は、マグネットスイッチ１８，１９によりサーボモータ２４に対する電力の供給を遮断する。
【００４５】
一方、各ＣＰＵ１０，１１によりサーボモータ２４の推測トルクが一致すると判断された場合には、各ＣＰＵ１０，１１は、推測トルクと算出されたサーボモータ２４の実際の駆動トルクとの差を算出する。ここで、算出されたトルクの差が内部メモリ３５，３６に記憶された所定の閾値以上である場合には、各ＣＰＵ１０，１１は、マグネットスイッチ１８，１９によりサーボモータ２４に対する電力の供給を遮断する。
【００４６】
これにより、各ＣＰＵ１０，１１は、位置制御部４から受信した指令位置情報に基づいて、トルク変動パラメータも考慮した状態でサーボモータ２４の駆動トルクを推測し、実際にサーボモータ２４に接続された電流計１４，１５から検出された電流値に基づいて算出されたサーボモータ２４の駆動トルクと比較して、そのトルクの差に応じてロボットアーム２２が異常であると診断してサーボモータ２４の駆動を停止させることができる。よって、従来はエンコーダ２５がサーボモータ２４の出力軸に設けられていることにより、サーボモータ２４の出力軸の故障、減速機の故障、ロボットアーム２２で発生する異常を検出することができなかったが、これらの異常もサーボモータ２４のトルクの変動により検出することができるようになるので、ロボットアーム２２の異常をより確実かつ正確に検出することができる。
また、各ＣＰＵ１０，１１により互いに推測したサーボモータ２４の駆動トルクが一致するか否かを判断しているので、ロボットアーム診断装置１の信頼性を向上させることができる。
また、ロボット２が周辺機器に干渉したり作業者に不意に接触したりした場合にも、推測したトルクと駆動トルクに差が発生し、異常を検出することができる。
【００４７】
また、各ＣＰＵ１０，１１は、受信した指令位置情報が異常であるか否かを判断し、指令位置情報が異常であると判断された場合には、報知部３２が指令位置情報の受信エラーである旨をユーザに報知する。各ＣＰＵ１０，１１は他のＣＰＵ１０，１１において受信した指令位置情報を取得し、各ＣＰＵ１０，１１は、受信した指令位置情報と取得した指令位置情報とが一致するか否かを判断する。そして、各ＣＰＵ１０，１１は、指令位置情報が一致しないと判断した場合には、報知部３２は指令位置情報の受信エラーである旨をユーザに報知する。
【００４８】
これにより、指令位置情報を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各ＣＰＵ１０，１１が互いの指令位置情報を相互に比較して異常の有無を判断しているので、ロボット制御装置３の異常を迅速かつ的確に検出することができ、ロボットアーム診断装置１の信頼性を向上させることができる。
また、各ＣＰＵ１０，１１により互いに受信した指令位置情報の異常の有無を判断しているので、ロボットアーム診断装置１の信頼性を向上させることができる。
【００４９】
また、ロボットアーム診断装置１をロボット制御装置３と別個に構成することにより、ロボットアーム診断装置１及びロボット制御装置３にかかる演算処理負担を減らすことができる。
【００５０】
＜その他＞
上記構成では、図１において、サーボモータ２４及びエンコーダ２５が一組しか図示されていないが、これらは各関節２３に設けられている。従って、ロボットアーム診断装置１は、図２、図３に示す全ての処理を、タイミングをずらして各サーボモータ２４ごとに実行していることはいうまでもない。
【００５１】
また、上記構成では、第二のＣＰＵ１１が位置制御部４からの制御情報（指令位置情報及びトルク変動パラメータ）を第一のＣＰＵ１０を介して受信する構成となっているが、第二のＣＰＵ１１が第一のＣＰＵ１０を介することなく位置制御部４から直接受信する構成としても良い。その場合、第二のＣＰＵ１１も位置制御部４からの制御情報に対してＣＲＣコードによる確認処理を実行することが望ましい。
【００５２】
また、ロボット２の制御精度を向上させるため、図３におけるロボットアーム２２の診断処理において、実際の駆動トルクと推測トルクが一致しない限りサーボモータ２４を停止させる構成としてもよい。
また、マグネットスイッチ１８，１９を切ることで異常を通知することができるようにしたが、位置制御部４に対して異常を通知するようにしてもよい。
【００５３】
また、上記構成では、各演算処理を二つのＣＰＵ１０，１１により行っていたが、ＣＰＵの数は三つ以上であってもよい。これにより、ロボットアーム２２の診断処理のレベルを向上させることができる。
【図面の簡単な説明】
【００５４】
【図１】ロボット、ロボット制御装置、ロボットアーム診断装置の全体構成図。
【図２】ロボットアーム診断装置の各ＣＰＵが行うロボットの制御情報の受信処理のフローチャート。
【図３】ロボットアーム診断装置の各ＣＰＵが行うロボットアームの診断処理のフローチャート。
【符号の説明】
【００５５】
１  ロボットアーム診断装置
２  ロボット
３  ロボット制御装置
４  位置制御部（サーボ制御部）
５  サーボアンプ（サーボ制御部）
１０  第一のＣＰＵ（トルク算出手段、トルク推測手段、推測トルク取得手段、推測トルク一致判断手段、トルク差算出手段、電力遮断手段、指令位置情報異常判断手段、指令位置情報取得手段、指令位置情報一致判断手段）
１１  第二のＣＰＵ（トルク算出手段、トルク推測手段、推測トルク取得手段、推測トルク一致判断手段、トルク差算出手段、電力遮断手段、指令位置情報異常判断手段、指令位置情報取得手段、指令位置情報一致判断手段）
１３  制御情報受信回路（制御情報受信手段、制御情報送信手段）
１４  電流計（電流検出手段）
１５  電流計（電流検出手段）
１８  マグネットスイッチ（切り替え部）
１９  マグネットスイッチ（切り替え部）
２２  ロボットアーム
２４  サーボモータ
２５  エンコーダ（位置検出手段）
３０  ウォッチドッグ回路
３１  ウォッチドッグ回路
３２  報知部（報知手段）
４１  メモリ（記憶手段）
【図１】
2007301680.tif 000003
【図２】
2007301680.tif 000004
【図３】
2007301680.tif 000005