(57)【要約】【課題】ロボット本体と制御装置との間に設けられる位置情報の伝送路の数を、サーボモータの位置検出を行なうロータリエンコーダの数が増加してもそれとは関係なく、少ない本数で済ます。【解決手段】アーム等の複数の動作軸を駆動する複数のサーボモータ２８〜３１に対し、それぞれの回転位置を検出するロータリエンコーダ４１〜４４を設ける。このロータリエンコーダ４１〜４４は、位置情報をシリアルデータによって出力する。駆動制御装置２２と複数のロータリエンコーダ４１〜４４との間は、一つのシリアル伝送路４５により接続され、駆動制御装置２２からロータリエンコーダ４１〜４４にリクエスト信号を送信することにより、ロータリエンコーダ４１〜４４がそのリクエスト信号の内容に応じて位置情報を駆動制御装置２２に送信する構成とする。【選択図】図１
2006260581.tif 000002
【特許請求の範囲】
【請求項１】
ロボット本体に設けられ、複数の動作軸を駆動する複数のサーボモータと、
これら複数のサーボモータのそれぞれの回転位置を検出し、位置情報をシリアルデータによって出力する複数の位置検出器と、
与えられた位置指令と前記位置情報とに基づき前記各サーボモータを制御する駆動制御装置とを具備し、
前記駆動制御装置と前記複数の位置検出器との間にシリアル伝送路を設けて前記複数の位置検出器を前記シリアル伝送路に並列に接続し、前記駆動制御装置から前記複数の位置検出器にリクエスト信号を送信することにより、前記複数の位置検出器が前記リクエスト信号の内容に応じて前記位置情報を前記駆動制御装置に送信する構成とし、
更に、前記駆動制御装置は、
データフォーマット、検定符号および通信に要した時間をチェックすることにより通信エラーを検出したか否かを判定し、
前記通信エラーの連続検出回数が所定回数以下であるか否かを判定し、
前記通信エラーの連続検出回数が所定回数以下と判定された場合には、前回の位置情報および前回までの位置の変化率に基づいて推定した今回の位置情報により前記各サーボモータを駆動させ、前記通信エラーの連続検出回数が前記所定回数以下でないと判定された場合には、前記各サーボモータを停止させるように構成されていることを特徴とするロボット制御装置。
【請求項２】
前記複数の位置検出器は、前記駆動制御装置から第１のリクエスト信号と共に送信されるＩＤ番号が自身のＩＤ番号と一致する時、位置情報を前記駆動制御装置に送信すると共に、前記駆動制御装置から第２のリクエスト信号が送信された時、前記駆動制御装置に順番に位置情報を送信するように構成されていることを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記サーボモータには、断電時に制動状態にされる電磁ブレーキが設けられ、前記位置検出器の駆動用電源は前記電磁ブレーキの駆動用電源を降圧して得るように構成されていることを特徴とする請求項１または２記載のロボット制御装置。
【請求項４】
前記サーボモータは、そのモータケースの先端のインロウ部にリング状シール部材を装着し、当該シール部材によって前記モータケースと前記ロボット本体との間のシールを行うことにより、前記モータケースの先端面を前記ロボット本体に当接させて当該モータケースをロボット本体を介して接地するように構成されていることを特徴とする請求項１ないし３のいずれかに記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット本体にアーム等の動作軸を駆動するために設けられた複数のサーボモータを制御するロボット制御装置に係り、特に、複数のサーボモータのそれぞれの回転位置を検出する位置検出器と駆動制御装置との間の通信ラインの数を少なくしたものに関する。
【背景技術】
【０００２】
図１２は、従来のロボット制御装置において、ロボット本体側の位置検出器から駆動制御装置への位置情報の送信構成を１台の位置検出器について示したブロック図である。サーボモータの回転位置を検出する位置検出器は、アブソリュート型のロータリエンコーダ１が用いられている。このロータリエンコーダ１は、周知のように、Ａ相、Ｂ相のインクリメンタル信号Ａ，Ｂと、アブソリュート信号Ｒｘとを出力する。
【０００３】
Ａ相、Ｂ相のインクリメンタル信号と、アブソリュート信号とは、それぞれ差動ドライバ２〜４によって二線用の信号に変調され、そして、２本の信号線からなる伝送路５〜７によってロボット本体８側から駆動制御装置９側に送信される。伝送路５〜７によって送信される各信号は、駆動制御装置９に設けられた差動レシーバ１０〜１２によって元のＡ相、Ｂ相のインクリメンタル信号Ａ，Ｂ、アブソリュート信号Ｒｘに復調されて駆動制御装置９のロータリエンコーダ用のＩ／Ｆ（インターフェース）１３に入力される。なお、１４〜１６は伝送路５〜７の断線検出用のイクスクルシブオア回路である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように従来では、ロータリエンコーダ１は、１台当たり６本の信号線によって駆動制御装置９と接続されている。ロボット本体が例えば自由度４である場合、サーボモータは４台、従ってロータリエンコーダ１も４台設けられるので、ロボット本体と駆動制御装置９との間には、ロータリエンコーダ１に関して、合計２４本の信号線が接続されることとなる。更に、自由度が６、或いは８になると、信号線は、３６本、或いは４８にもなる。
【０００５】
それら信号線は、束ねられてロボット本体８内に引き込まれるが、信号線の本数が多いと、その束も相当太くなるので、信号線の束を引き込んで各サーボモータまで導くためには、ロボット本体８内にかなりのスペースを設けなければならず、ロボット本体８が大型になり勝ちである。また、信号線の本数が多いと、それだけ断線等を起こす率が大きくなり、通信エラーを惹起し易くなるという問題を生ずる。
【０００６】
本発明は上記の事情に鑑みてなされたもので、その目的は、ロボット本体側に設けられた位置検出器から駆動制御装置に位置情報を送信するための通信ラインの数を、位置検出器の数が増加してもそれとは関係なく、少ない数で済ますことができるロボット制御装置を提供するにある。
【課題を解決するための手段】
【０００７】
本発明は、  ロボット本体に設けられ、複数の動作軸を駆動する複数のサーボモータと、
これら複数のサーボモータのそれぞれの回転位置を検出し、位置情報をシリアルデータによって出力する複数の位置検出器と、
与えられた位置指令と前記位置情報とに基づき前記各サーボモータを制御する駆動制御装置とを具備し、
前記駆動制御装置と前記複数の位置検出器との間にシリアル伝送路を設けて前記複数の位置検出器を前記シリアル伝送路に並列に接続し、前記駆動制御装置から前記複数の位置検出器にリクエスト信号を送信することにより、前記複数の位置検出器が前記リクエスト信号の内容に応じて前記位置情報を前記駆動制御装置に送信する構成とし、
更に、前記駆動制御装置は、
データフォーマット、検定符号および通信に要した時間をチェックすることにより通信エラーを検出したか否かを判定し、
前記通信エラーの連続検出回数が所定回数以下であるか否かを判定し、
前記通信エラーの連続検出回数が所定回数以下と判定された場合には、前回の位置情報および前回までの位置の変化率に基づいて推定した今回の位置情報により前記各サーボモータを駆動させ、前記通信エラーの連続検出回数が前記所定回数以下でないと判定された場合には、前記各サーボモータを停止させるように構成されていることを特徴とするものである（請求項１）。
【０００８】
この構成によれば、ロボット本体に設けられた複数の位置検出器は、シリアル伝送路により駆動制御装置に接続されており、駆動制御装置と複数の位置検出器との間は、双方向での通信が可能となっている。このため、駆動制御装置から位置検出器側にリクエスト信号を出力することにより、各位置検出器から別々に位置情報を得ることができるので、位置検出器の数とは関係なく、駆動制御装置とロボット本体の位置検出器とを接続する伝送路としては、１つのシリアル伝送路で済む。
【０００９】
この場合、前記複数の位置検出器は、前記駆動制御装置から第１のリクエスト信号と共に送信されるＩＤ番号が自身のＩＤ番号と一致する時、位置情報を前記駆動制御装置に送信すると共に、前記駆動制御装置から第２のリクエスト信号が送信された時、前記駆動制御装置に順番に位置情報を送信するように構成することができる（請求項２）。
【００１０】
この構成によれば、状況に応じて、複数のサーボモータのうちから、特定のサーボモータの回転位置を検出する形態と、全てのサーボモータの回転位置を検出する形態とを選択できる。例えば、ロボット本体の運転を開始する際、各サーボモータの絶対位置を検出してこれを初期位置として記憶する場合には、位置検出器のＩＤ番号を指定してサーボモータの絶対位置を個別に検出し、その後は、全てのサーボモータの回転位置を連続的に検出することにより、個別に位置検出器を指定する無駄時間をなくすことができ、ロボット本体を高精度に位置制御できる。
【００１１】
更に、本発明では、前記位置検出器の駆動用電源は、前記サーボモータに設けられた電磁ブレーキの駆動用電源を降圧して得るように構成することができる（請求項３）。
このように構成した場合には、駆動制御装置から電磁ブレーキの駆動用電源とは別配線で位置検出器の駆動用電源を供給するように構成したものに比べ、駆動制御装置とロボット本体との間を接続する電源線の本数を削減できると共に、駆動制御装置とロボット本体との間の距離が長くとも、位置検出器の駆動用電源の電圧降下がなく、位置検出器に安定した動作電圧を供給することができる。
【００１２】
また、本発明では、前記サーボモータは、そのモータケースの先端のインロウ部にリング状シール部材を装着し、当該シール部材によって前記モータケースと前記ロボット本体との間のシールを行うことにより、前記モータケースの先端面を前記ロボット本体に当接させて当該モータケースをロボット本体を介して接地するように構成することができる（請求項４）。
【００１３】
この構成によれば、サーボモータの接地をそれ専用のリード線を使用することなく行うことができるので、ロボット本体内を通る配線の本数を低減できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施例を図１ないし図１０に基づいて説明する。
ロボットは、図１０に示すように、ロボット本体２１と、このロボット本体２１を制御する駆動制御装置２２とを備えている。この実施例のロボット本体２１は、例えば水平多関節型の組み立て用ロボットとして構成され、ベース２３、このベース２３に旋回可能に設けられた第１アーム２４、この第１アーム２４に旋回可能に設けられた第２アーム２５、この第２アーム２５に上下動可能で且つ回転可能に設けられた手首２６、この手首２６に設けられたハンド２７等から構成されている。そして、動作軸としての第１および第２のアーム２４および２５の旋回動作、手首２６の上下動作および回転動作は、それぞれサーボモータ２８〜３１（図１および図２に示す）を駆動源として行われるようになっている。
【００１５】
一方、ロボット本体２１を制御する駆動制御装置２２は、図２に示すように、制御部としてのＣＰＵ３２、各サーボモータ２８〜３１を駆動する駆動回路３３〜３６等を備えている。上記ＣＰＵ３２には、記憶手段として、ロボット全体のシステムプログラム等を記憶したＲＯＭ３７、ロボット本体１の動作プログラム等を記憶したＲＡＭ３８が接続されている。また、ＣＰＵ３２には、ＣＲＴディスプレイ等からなる表示器３９が接続されていると共に、インターフェース（Ｉ／Ｆ）４０を介してティーチペンダント等の外部機器を接続することができるようになっている。
【００１６】
さて、上記各サーボモータ２８〜３１には、位置検出器としてのロータリエンコーダ４１〜４４が設けられている。これらロータリエンコーダ４１〜４４は、サーボモータ２８〜３１のそれぞれの回転位置を検出し、位置情報を出力する。この位置情報は、後述のシリアル伝送路４５を通じて駆動制御装置２２のロータリエンコーダ用Ｉ／Ｆ４６に与えられるようになっている。
【００１７】
そして、ＣＰＵ３２は、各駆動回路３３〜３６に駆動信号を与え、各駆動回路３３〜３６は、その駆動信号に応じた電流を各サーボモータ２８〜３１に供給してそれらを駆動する。このとき、ＣＰＵ３２は、ＲＡＭ３８に記憶された動作プログラムから各サーボモータ２８〜３１の位置指令を得ると共に、ロータリエンコーダ４１〜４４から入力された位置情報をロータリエンコーダ用Ｉ／Ｆ４６を介して得て各サーボモータ２８〜３１の現在位置を検知し、そして、その現在位置と指令された位置とを比較し、その偏差に応じた駆動信号を各駆動回路３３〜３６に与えるように構成されている。これにより、第１および第２アーム２４および２５、手首２６が動作プログラムに従った動作を実行し、部品の組み立て作業を行うものである。
【００１８】
ここで、前記シリアル伝送路４５について説明する。このシリアル伝送路４５は、半二重の平衡回路に構成されている。
すなわち、図１に示すように、駆動制御装置２２が有するロータリエンコーダ用Ｉ／Ｆ４６の入出力端子は、差動ドライバ４７の入力端子および差動レシーバ４８の出力端子に接続されている。そして、差動ドライバ４７の非反転出力端子と差動レシーバ４８の非反転入力端子は、シリアル伝送路４５を構成する一対の信号線４５ａおよび４５ｂのうち、一方の信号線４５ａに接続されていると共に、差動ドライバ４７の反転出力端子と差動レシーバ４８の反転入力端子は、シリアル伝送路４５の他方の信号線４５ｂに接続されている。
【００１９】
一方、ロボット本体２１側において、各ロータリエンコーダ４１〜４４の通信部４９の入出力端子には、差動ドライバ５０の入力端子および差動レシーバ５１の出力端子が接続されている。そして、差動ドライバ５０の非反転出力端子と差動レシーバ５１の非反転入力端子は、シリアル伝送路４５の一方の信号線４５ａに接続されていると共に、差動ドライバ５０の反転出力端子と差動レシーバ５１の反転入力端子は、シリアル伝送路４５の他方の信号線４５ｂに接続されている。なお、４５ｃは一対の信号線４５ａ，４５ｂ間に接続された終端抵抗である。
【００２０】
このように、ロータリエンコーダ用Ｉ／Ｆ４６および各ロータリエンコーダ４１〜４４の入出力端子が、それぞれ逆並列に接続された差動ドライバ４７，５０および差動レシーバ４８，５１を介して一対の信号線４５ａおよび４５ｂに接続されることにより、ロータリエンコーダ用Ｉ／Ｆ４６から出力される信号は、差動ドライバ４７によりハイロウ反転した二線用の信号に変調され、そして再びロータリエンコーダ４１〜４４側の差動レシーバ５１により元の出力信号に復調される。同様に、各ロータリエンコーダ４１〜４４から出力される信号は、差動ドライバ５０によりハイロウ反転した二線用の信号に変調され、そして再びロータリエンコーダ用インターフェース４６側の差動レシーバ４８により元の出力信号に復調される。
【００２１】
なお、シリアル伝送路４５の配線作業を能率良く行うために、各サーボモータ２８〜３１のロータリエンコーダ４１〜４４には、図３に示すように、シリアル伝送路４５の一部を構成するための二芯コード５２が予め接続されており、その二芯コード５２の両端には、雌側コネクタ５３および雄側コネクタ５４が接続されている。そして、両端に雌側コネクタ５３および雄側コネクタ５４を接続した長短長さのことなる中間二芯コード５５により、駆動制御装置２２と各ロータリエンコーダ４１〜４４の二芯コード５２を接続することにより、各ロータリエンコーダ４１〜４４を並列に接続したシリアル伝送路４５が構成されるようにしている。なお、図３では、残る２個のサーボモータ３０，３１は省略している。
【００２２】
ここで、各ロータリエンコーダ４１〜４４の通信部４９の電気的構成について説明する。まず、通信部４９の電源は、駆動制御装置２２側から供給される。すなわち、図１に示すように、駆動制御装置２２には、商用の交流電源から直流電源を得るための直流電源回路５６が設けられ、この直流電源回路５６は、一対の電源線５７を介してロボット本体２１内に設けられたＤＣ・ＤＣコンバータ５８に接続されている。上記直流電源回路５６の直流出力は、例えば２４ボルトの電圧とされ、ＤＣ・ＤＣコンバータ５８により５ボルトに降圧される。そして、ＤＣ・ＤＣコンバータ５８に対し、各ロータリエンコーダ４１〜４４の通信部４９が並列に接続されている。
【００２３】
ところで、上記の直流電源回路５６は、本来はサーボモータ２８〜３１に設けられている電磁ブレーキ（図示せず）の動作用電源である。電磁ブレーキは、サーボモータのロータ側に設けられた回転摩擦盤と、モータケース側に往復移動可能に設けられた固定摩擦盤と、この固定摩擦盤を回転摩擦盤に押圧して制動状態にするスプリングと、このスプリングの弾発力に抗して固定摩擦盤を回転摩擦盤から離す電磁石とから構成されている。そして、駆動制御装置２２は、サーボモータ２８〜３１の通電時には、電磁ブレーキに通電して制動解除状態とし、サーボモータ２８〜３１の断電時には、電磁ブレーキを断電して制動状態にして動作軸が不用意に回転しないようにする。
【００２４】
このように、ロボット本体２１に２４Ｖで送られてくる直流電源回路５６をＤＣ・ＤＣコンバータ５８で５Ｖに降圧してロータリエンコーダ４１〜４４の動作用電源とするので、電源線５７で電圧降下を起こしたとしても、各ロータリエンコーダ４１〜４４の通信部４９には、５ボルトの安定した動作電圧を供給できるものである。また、ロータリエンコーダ４１〜４４の専用の電源線が不要となるので、ロボット本体２１と駆動制御装置２２との間の配線本数を削減することができる。
【００２５】
さて、ロータリエンコーダ４１〜４４の通信部４９は、図４に示すように、データビット検出回路５９を有しており、差動レシーバ５１から与えられる入力信号は、このデータビット検出回路５９によりスタートビットとストップビットとが判定される。この後、入力信号は、シンクロコード検出回路６０によりシンクロナスコードが解読され、スタートビットおよびストップビットが除かれたシリアル信号となってシリアル・パラレル変換部６１に送られ、ここでシリアル信号からパラレル信号に変換される。
【００２６】
パラレル信号化された入力信号は、コマンドラッチ部６２に送られ、ここでラッチされる。そして、コマンドラッチ部６２にラッチされた信号は、コマンド判定部６３によってその内容が判別されると共に、ＣＲＣ計算部６４によって受信信号にエラーがないかどうかチェックされる。コマンド判定部６３は、ＣＲＣ計算部６４からエラーなしの信号を得ると、判定結果に応じて消去可能な記憶手段としてのＥＥＰＲＯＭ６５にアクセスしたり、タイマ６６をスタートさせたり、ラッチ信号、セレクト信号を出力したりする。なお、上記ＥＥＰＲＯＭ６５は、各ロータリエンコーダ４１〜４４のＩＤ番号を記憶するもので、そのＩＤ番号は、外部から自由に設定できるように構成されている。
【００２７】
ロータリエンコーダ４１〜４４は、サーボモータ２８〜３１と一体に回転するディスク６７、グレイティング６８、多数の発光素子６９、多数の受光素子７０により構成された回転検出部７１を有し、受光素子７０からの各信号は、１回転データ計数部７２に入力される。１回転データ計数部７２は、受光素子７０群から与えられる信号により、サーボモータ２８〜３１の１回転内での回転位置を係数すると共に、原点位置からの回転角度（絶対位置）を多回転データ計数部７３に計数させておく。
【００２８】
上記１回転データ計数部７２、多回転データ計数部７３は、それぞれアラーム検出部７４に接続され、その異常はアラーム検出部７４により検出される。また、前記ＤＣ・ＤＣコンバータ５８から各ロータリエンコーダ４１〜４４に与えられる直流電源は、電源監視回路７５により監視され、直流電源の異常はアラーム検出部７４に報知される。そして、１回転データ計数部７２、多回転データ計数部７３、アラーム検出部７４は、それぞれラッチ部７６〜７８に接続され、各ラッチ部７６〜７８は、前記コマンド判定部６３からラッチ信号が与えられると、その時の１回転データ計数部７２、多回転データ計数部７３、アラーム検出部７４の内容をラッチする。
【００２９】
各ラッチ部７６〜７８にラッチされたデータは、コマンド判定部６３により制御される選択手段としてのセレクト回路７９により選択的に送信データ作成部８０に送られ、ここでＣＲＣ計算部６４から与えられる検定符号としてのＣＲＣ符号が送信データに付加される。この後、送信データは、パラレル・シリアル変換部８１によりシリアル信号に変換され、そして、そのシリアルデータにスタート・ストップビット付加回路８２によってスタートビットおよびストップビットが付加された後、差動ドライバ５０を介してシリアル伝送路４５に送信される。
【００３０】
ここで、駆動制御装置２２から送信される信号のフォーマット、各ロータリエンコーダ４１〜４４から送信されるデータのフォーマットについて説明する。まず、駆動制御装置２２からロータリエンコーダ４１〜４４に送信されるデータのフレームフォーマットは、図５（ａ）に示すように、コントロールフィールドＣＦとステータスフィールドＳＦからなり、駆動制御装置２２は、コントロールフィールドおよびステータスフィールドのデータを同順に送信する。
【００３１】
そのうち、コントロールフィールドＣＦは、図５（ｂ）に示すように、スタートビット、３ビットのシンクロナスコード、５ビットのリクエストコード（リクエスト信号）、ストップビットからなる。また、ステータスフィールドＳＦは、図５（ｃ）に示すように、スタートビット、４ビットのロータリエンコーダのＩＤコード、４ビットのＣＲＣコード（検定符号）、ストップビットからなる。
【００３２】
上記リクエストコードとしては、個別モード、連続モード、エラー情報モードでの個別モードと連続モードのそれぞれを指定する４種類のコードがある。個別モードとは、駆動制御装置２２が、そのリクエストコード（第１のリクエスト信号）を送信すると共に、ロータリエンコーダＩＤコードを送信すると、４台のロータリエンコーダ４１〜４４のうち、ＩＤ番号がそのＩＤコードによって指定された番号と一致したロータリエンコーダがデータを送信するモードである。
【００３３】
連続モードとは、駆動制御装置２２が、そのリクエストコード（第２のリクエスト信号）を送信すると共に、ロータリエンコーダＩＤコードを４台のロータリエンコーダ４１〜４４の全部を指定するコードにして送信すると、全てのロータリエンコーダ４１〜４４が予め設定された順番（ＩＤ番号の並び順）で連続的にデータを送信するモードである。
【００３４】
エラー情報モードでの個別モードとは、駆動制御装置２２が、そのリクエストコード（第３のリクエスト信号）を送信すると共に、ロータリエンコーダＩＤコードを送信すると、４台のロータリエンコーダ４１〜４４のうち、ＩＤ番号がそのＩＤコードによって指定された番号と一致したロータリエンコーダがエラーに関するデータだけを送信するモードである。
【００３５】
エラー情報モードでの連続モードとは、駆動制御装置２２がそのリクエストコード（第４のリクエスト信号）を送信すると共に、ロータリエンコーダＩＤコードを４台のロータリエンコーダ４１〜４４の全部を指定するコードにして送信すると、全てのロータリエンコーダ４１〜４４が予め設定された順番（ＩＤ番号の並び順）でエラーに関する情報を送信するモードである。
【００３６】
一方、ロータリエンコーダ４１〜４４から送信されるデータのフレームフォーマットは、図６（ａ）に示すように、コントロールフィールドＣＦ、ステータスフィールドＳＦ、最高４フィールドからなる位置データフィールドＤＦ、ＣＲＣフィールドＲＦからなり、ロータリエンコーダ４１〜４４は、それらのフィールドのデータを同順に送信する。なお、１回転データを送信する場合には、２つの位置データフィールドＤＦ１，ＤＦ２だけで済み、絶対位置まで送信する場合には、４つの位置データフィールドＤＦ１〜ＤＦ４が使用される。
【００３７】
上記コントロールフィールドＣＦは、図６（ｂ）に示すように、スタートビット、３ビットのシンクロナスコード、送信されて来たリクエストコードの最上位ビットのみ反転したコードを駆動制御装置２２に送り返すための５ビットのリクエストコード、ストップビットからなる。ステータスフィールドＳＦは、図６（ｃ）に示すように、スタートビット、送信元のロータリエンコーダのＩＤ番号を示す４ビットのＩＤコード、２ビットのエラーコード、１ビットの不定ビットを置いて１ビットのプリセットビット、ストップビットからなる。位置データフィールドＤＦは、図６（ｄ）に示すように、スタートビット、８ビットの位置データ、ストップビットからなる。最後のＣＲＣフィールドは、図６（ｅ）に示すように、スタートビット、８ビットのＣＲＣコード、ストップビットからなる。
【００３８】
この実施例では、駆動制御装置２２は、ロボット本体２１の運転を開始するに際し、各サーボモータ２８〜３１の絶対位置を検出するために、各ロータリエンコーダ４１〜４４のそれぞれに対して１回転データと多回転データの双方を要求する。これは、コントロールフィールドＣＦのリクエストコードを第１のリクエスト信号コードに設定すると共に、ステータスフィールドＳＦのＩＤコードをロータリエンコーダ４１〜４４のうち１台のＩＤ番号に設定して送信することにより行なわれる。
【００３９】
すると、４台のロータリエンコーダ４１〜４４は、コマンド判定部６３で受信したリクエストコードの内容を判断し、次にＩＤ番号コードとＥＥＰＲＯＭ６５に記憶されている自身のＩＤ番号とを照合する。そして、ロータリエンコーダ４１〜４４のうち、駆動制御装置２２により指定されたＩＤ番号が自身のＩＤ番号と一致したロータリエンコーダのコマンド判定部６３は、ラッチ信号を各ラッチ部７６〜７８に出力し、次いでセレクト回路７９を順次切り換えることにより、ラッチ部７６にラッチされている１回転データ、ラッチ部７７にラッチされている多回転データ、ラッチ部７８にラッチされているエラーデータが順に送信データ作成部８０に出力されるようにする。
【００４０】
そして、送信データ作成部８０により作成されたパラレルデータは、パラレル・シリアル変換部８１に送られ、ここでシリアルデータに変換され、そして、スタート・ストップビット付加回路８２にてスタートビットとストップビットとが付加され、シリアル伝送路４５を介して駆動制御装置２２へと送信される。駆動制御装置２２は、このようにしてロータリエンコーダを順次指定して得た位置データから各サーボモータ２８〜３１の絶対位置を検知し、そして、動作プログラムに基づく制御を実行し始める。
【００４１】
ロボット本体２１の運転を開始した後にあっては、駆動制御装置２２は、５００μ秒毎に、コントロールフィールドＣＦのリクエストコードを、連続モードを指定する第２のリクエスト信号のコードに設定して送信し、各ロータリエンコーダ４１〜４４から１回転データだけを要求する。このように、ロータリエンコーダ４１〜４４の位置情報を５００μ秒毎というごく短い周期で検知するようにすると、１回転データを累積することにより、絶対位置を検知することができるようになるので、逐一絶対位置のデータを要求しなくとも済む。このため、リクエスト信号を送信してから、位置情報を受信するまでの時間が極短くなるので、位置制御を精度良く行なうことができる。
【００４２】
さて、駆動制御装置２２が、コントロールフィールドＣＦのリクエストコードを第２のリクエスト信号のコードに設定して送信すると、各ロータリエンコーダ４１〜４４は、駆動制御装置２２から送信され信号を同時に受信する。そして、各ロータリエンコーダ４１〜４４のコマンド判定部６３が、リクエストコードの内容を判定する。
【００４３】
駆動制御装置２２から送信されたリクエストコードは、連続モードで位置情報を送信することを要求しているのであるから、各ロータリエンコーダ４１〜４４のコマンド判定部６３は、その連続モードのリクエストコードを判定した時点で、タイマ６６の計時動作を開始させる。この計時動作開始時点を図７にＴ0 で示す。
【００４４】
今、各ロータリエンコーダ４１〜４４のＩＤ番号の順序が図１の下から上のものに向かって付されていたとすると、まず、第１番目のＩＤ番号のロータリエンコーダ４１のタイマ６６が上記Ｔ0 時点から図７のＴs1時間をカウントしたところで、そのロータリエンコーダ４１のコマンド判定部６３は、ラッチ信号を各ラッチ部７６〜７８に与え、その時点の１回転データ計数部７２、多回転データ計数部７３、アラーム検出部７４のデータをラッチ部７６〜７８にラッチさせる。
【００４５】
次に、コマンド判定部６３は、セレクト回路７９にセレクト信号を送り、まず、ラッチ部７２の１回転データを送信データ作成部８０に送り、次に、ラッチ部７４のエラーデータを送信データ作成部８０に送る。このようにして送信データ作成部８０に順次送られた１回転データおよびエラーデータは、図６に示すフォーマットにされてシリアル伝送路４５に送信される。
【００４６】
ロータリエンコーダが以上のような動作を順に実行して１回転データを図６に示すフォーマットにして送信するに要する時間ｔは予め分かっているので、第２番目のロータリエンコーダ４２のタイマ６６が図７の（Ｔs1＋ｔ）時間に若干のずらし時間ｔｏを加味した時間ＴS2（＝Ｔs1＋ｔ＋ｔｏ）をカウントすると、その第２番目のロータリエンコーダ４２が、上述したと同様にしてシリアル伝送路４５にデータを送信する。
【００４７】
以後、同様に第３番目のロータリエンコーダ４３のタイマ６６がＴS3（＝Ｔs1＋２ｔ＋２ｔｏ＝ＴS2＋ｔ）時間をカウントすると、第３番目のロータリエンコーダ４３からデータが送信され、更に第４番目のロータリエンコーダ４４のタイマ６６がＴS4（＝Ｔs1＋３ｔ＋３ｔｏ＝ＴS3＋ｔ）時間をカウントすると、第４番目のロータリエンコーダ４４からデータが送信される。
【００４８】
このようにして４台のロータリエンコーダ４１〜４４から順次データが送信される。そして、駆動制御装置２２が、リクエスト信号を送信し始めてから、４台のロータリエンコーダ４１〜４４の全てからデータを受信し終えるまでの時間Ｔは、予め分かっているので（この実施例では、１００μ秒）、その時間Ｔは予め駆動制御装置２２において記憶されており、その時間Ｔと実際の通信に要した時間を比較することにより、通信エラーの有無判断を行なうようにしている。なお、通信エラーの判断としては、データフォーマットの正否、ＣＲＣ計算によっても行なうようにしている。
【００４９】
次に上記構成の作用を、図８のフローチャートをも参照しながら説明する。駆動制御装置２２は、まずステップＳ１でリクエスト選択を行う。これは、リクエストコードとして連続モードの第１のリクエスト信号のモードとするか、個別モードの第２のリクエスト信号のコードとするか、或いはエラー情報モードの第３または第４のリクエスト信号のモードにするか、のうちから選択される。今、ロボット本体２１は運転中で、連続モードが選択されたとすると、駆動制御装置２２は、次のステップＳ２でリクエストコードを選択したモードのコードにして送信する。
【００５０】
ロータリエンコーダ４１〜４４は、駆動制御装置２２から送信されたリクエスト信号を受信すると、それぞれタイマ６６の計時動作を開始し、その後、Ｔ0 時点で第１番目のロータリエンコーダ４１から順に位置データを送信し、以下、（ｔ＋ｔｏ）時間経過毎に第２番目〜第４番目のロータリエンコーダ４２〜４４からデータが送信される。
【００５１】
駆動制御装置２２は、上述のようにして連続的に送信するロータリエンコーダ４１〜４４からのデータをステップＳ３で受信し、次のステップＳ４で通信エラーがないか否か判断する。この通信エラーは、駆動制御装置２２からロータリエンコーダ４１〜４４への送信にエラーがあった場合には、ロータリエンコーダ４１〜４４から送信されてくるデータ中にその旨のデータがあるので、その返信データにより、また、ロータリエンコーダ４１〜４４から駆動制御装置２２への送信のエラーは、データフォーマットの正否により、ＣＲＣデータの計算処理により、およびリクエスト信号を送信してから４台のロータリエンコーダ４１〜４４の全てからデータを受信終了までの時間Ｔが予め設定された時間Ｔ以下で終了したか否かによって行われる。
【００５２】
そして、通信エラーがなかったとき（ステップＳ４で「ＹＥＳ」）、駆動制御装置２２はステップＳ５に移行してロータリエンコーダ４１〜４４にエラーがなかったか否かを判断する。このロータリエンコーダ４１〜４４のエラーの有無は、それらロータリエンコーダ４１〜４４から送信されるエラーデータによって検出される。ロータリエンコーダ４１〜４４にエラーがなかった場合（ステップＳ５で「ＹＥＳ」）、駆動制御装置２２は、リターンとなり、ステップＳ１の実行後、５００μ秒経過後に再びステップＳ１から図８のルーチンを実行する。なお、以上の処理は、図９（ａ）に通常処理の場合として順に示されている。
【００５３】
一方、通信エラーがあった場合には、駆動制御装置２２は、上記ステップＳ４で「ＮＯ」と判断し、次にステップＳ６に移行してここでロータリエンコーダ４１〜４４の位置を推定する。この位置推定は、前回の受信時のロータリエンコーダ４１〜４４の位置および前回までの位置の変化率によって推定する。この後、駆動制御装置２２は、ステップＳ７で通信エラー有りと判断した回数が所定回数連続、例えば２回以下の連続回数であるか否かを判断する。通信エラーが１回目のときには、駆動制御装置２２は、このステップＳ７で「ＹＥＳ」と判断し、リターンとなる。また、通信エラー有りと判断した回数が２回以下でない場合、駆動制御装置２２は、ステップＳ７で「ＮＯ」となり、次のステップＳ８でサーボモータ２８〜３１を断電してロボット本体２１を停止させ、続いてステップＳ９で表示器３９に通信エラーが原因でロボット本体２１を停止させたことを表示し、エンドとなる。
【００５４】
また、ロータリエンコーダ４１〜４４にエラーがあった場合、駆動制御装置２２は、前記ステップＳ５で「ＮＯ」と判断し、そして、ステップＳ１０に移行してサーボモータ２８〜３１を断電し、続いて表示器３９にロータリエンコーダ４１〜４４のエラーによってロボット本体２１を停止させたことを表示し、エンドとなる。なお、以上の処理は、図９（ｂ）に通信エラー処理の場合として順に示されている。
【００５５】
このように本実施例によれば、ロータリエンコーダ４１〜４４は、駆動制御装置２２とシリアル伝送路４５により接続されていて、個別に駆動制御装置２２と通信することができるので、ロータリエンコーダの数が増加しても、駆動制御装置２２との伝送路の数を増加する必要はない。従って、シリアル伝送路４５を構成する信号線の本数は、ロータリエンコーダの数とは関係なく２本で済むので、断線等の伝送路が原因での通信エラーを起こす確率が小さくなり、信頼性の高いものとなる。また、ロボット本体２１内においても、シリアル伝送路４５を通すためのスペースをそれ程広く確保する必要がないので、ロボット本体２１を小形に構成することができる。
【００５６】
その上、本実施例では、駆動制御装置２２は、各ロータリエンコーダ４１〜４４を選択してデータを受けたり、全てのロータリエンコーダ４１〜４４から連続的にデータを受けたりすることができるので、状況によっていずれかを選択することができる。
【００５７】
また、本実施例では、通信エラーを、ＣＲＣ計算によるチェックと、フォーマットの正否と、通信に要した時間とから判断するようにしたので、断線を含め、考えられる通信エラーのほとんどをエラーとして判別することができる。このため、図１２に示す従来とは異なり、ハードにより断線を判断する構成を採用せずとも済む。
【００５８】
図１１は本発明の他の実施例を示す。これは、サーボモータ２８〜３１のロボット本体１への取付構成を改良して接地用のリード線を省略できるようにしたものである。なお、サーボモータ２８〜３１の取付構成は、いずれも同様であるので、ここでは第１のアーム２４側に取り付けられて第２のアーム２５を駆動するサーボモータ２９の取付構成について説明し、他は省略する。
【００５９】
図１１に示すように、サーボモータ２９のモータケース８３において、その先端面部にインロウ部８３ａが突設されている。上記インロウ部８３ａの外周面には溝８３ｂが形成されており、この溝８３ｂにリング状シール部材としてのＯリング８４が装着されている。
【００６０】
一方、ロボット本体２１の第１のアーム２４において、その先端部のモータ取付部８５には、インロウ部としての嵌合穴８６が形成されている。また、モータ取付部８５には、ギヤケース８７が被せられてボルト８８により固定されており、更に、ギヤケース８７には、第２のアーム２５を取り付ける回転体８９がベアリング９０を介して回転可能に支持されている。
【００６１】
上記ギヤケース８７内には、減速装置、例えば歯車減速装置を構成するハーモニックドライブ（商品名）９１が配設されている。このハーモニックドライブ９１は、ギヤケース８７側に固定され内周に歯を形成した剛性をもったサーキュラスプライン９１ａと、回転体８９に連結され外周にサーキュラスプライン９１ａの内歯に噛み合う歯をもったカップ状の金属弾性体製のフレクスプライン９１ｂと、このフレクスプライン９１ｂの内周にボールベアリング９１ｃを介して嵌合する楕円形のウェブジェネレータ９１ｄとから構成されている。なお、フレクスプライン９１ｂの歯数はサーキュラスプライン９１ａの歯数よりも１〜２枚少なくなっている。
【００６２】
しかして、サーボモータ２９のモータケース８３は、インロウ部８３ａをモータ取付部８５の嵌合穴８６に嵌合し、ボルト９２によってモータ取付部８５に固定されている。この場合、Ｏリング８４は、モータケース８３のインロウ部８３ａとモータ取付部８５の嵌合穴８６の内周面との間で若干潰された状態で存在し、両者間をシールしている。これによりギヤケース８７内に貯留されたグリス等が外部に漏れでないようにしている。
【００６３】
上記のようにしてモータ取付部８５に取り付けられたサーボモータ２９の回転軸２９ａは、前記ハーモニックドライブ９１のウェブジェネレータ９１ｄに嵌着されている。そして、回転軸２９ａが回転し、これと一体にウェブジェネレータ９１ｄが回転すると、その回転がフレクスプライン９１ｂとサーキュラスプライン９１ａとの噛み合わせ構造により減速されてフレクスプライン９１ｂにより回転体８９に伝達され、この回転体８９の回転により第２のアーム２５が旋回されるようになっている。
【００６４】
ところで、従来では、モータケース８３とモータ取付部８５との間のシールは、モータケース８３のインロウ部８３ａの周囲端面とモータ取付部８５の下面との間にガスケットを挟み付けることにより行っていた。この構成では、モータケース８３がガスケットによってロボット本体２１と電気的に絶縁された状態になるため、サーボモータ２９のコイルに２２０Ｖの高電圧が印加されることを考慮すると、モータケース８３を何らかの手段で接地しておく必要がある。そこで、従来では、モータケース８３に接地用リード線を接続し、その接地用リード線をロボット本体２１内を通して接地するようにしていた。しかしながら、これでは、ロボット本体２１内に接地用リード線を通すためのスペースを設けねばならないため、ロボット本体２１が大形化するという問題があった。
【００６５】
これに対し、本実施例では、モータケース８３のインロウ部８３ａに装着されたＯリング８４により、当該モータケース８３とモータ取付部８５の嵌合穴８６の内周面との間をシールするようにしたので、モータケース８３のインロウ部８３ａの周囲端面をモータ取付部８５の下面に接触させることができる。ロボット本体２１はアルミ系合金により形成されているので、モータケース８３はロボット本体２１を通じて接地されるようになる。このため、モータケース８３に接地用リード線を接続し、この接地用リード線をロボット本体２１内を通して接地するという構成を採らずとも済み、ロボット本体２１の小形化を図ることができる。
【００６６】
また、従来の接地用リード線をロボット本体２１内に通す構成では、リード線がノイズを拾い、そのリード線に乗ったノイズによってロボット本体２１に設けられているロータリエンコーダ４１〜４４などの電子機器に悪影響を及ぼすおそれがあるが、本実施例の接地構成によれば、そのようなおそれはなくなる。
【００６７】
なお、本発明は上記し且つ図面に示す実施例に限定されるものではなく、例えば、個別モードのときにも、リクエスト信号を送信してから指定したロータリエンコーダのデータを受信するまでの時間によって通信エラーの有無を判定するようにしても良いなど、その要旨を逸脱しない範囲で種々変更して実施することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施例を示すシリアル伝送路関連部分のブロック図
【図２】全体の電気的構成を示すブロック図
【図３】シリアル伝送路の配線形態を示す斜視図
【図４】ロータリエンコーダの電気的構成を示す機能ブロック図
【図５】制御装置の送信データのフォーマットを示す図
【図６】ロータリエンコーダの送信データのフォーマットを示す図
【図７】ロータリエンコーダからの連続モードでの送信状態を示すタイムチャート
【図８】送受信の制御内容示すフローチャート
【図９】送受信の動作順を示す図
【図１０】ロボット全体の斜視図
【図１１】本発明の他の実施例を示すサーボモータ取付部分の断面図
【図１２】従来の位置データの送信形態を示す図１相当図
【符号の説明】
【００６９】
図中、２１はロボット本体、２２は制御装置、２４，２５は第１，第２のアーム（動作軸）、２６は手首（動作軸）、２８〜３１はサーボモータ、３２はＣＰＵ、４１〜４４はロータリエンコーダ（位置検出器）、４５はシリアル伝送路、８２はモータケース、８２ａはインロウ部、８４はＯリング（リング状シール部材）である。
【図１】
2006260581.tif 000003
【図２】
2006260581.tif 000004
【図３】
2006260581.tif 000005
【図４】
2006260581.tif 000006
【図５】
2006260581.tif 000007
【図６】
2006260581.tif 000008
【図７】
2006260581.tif 000009
【図８】
2006260581.tif 000010
【図９】
2006260581.tif 000011
【図１０】
2006260581.tif 000012
【図１１】
2006260581.tif 000013
【図１２】
2006260581.tif 000014