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