(57)【要約】【課題】複数のロボットの協調動作における各ロボット制御装置間の同期を精度良く確立する。【解決手段】複数のロボット４−１〜４−３と、各ロボットを制御する複数のロボット制御装置２、３−１、２とを用い、ロボット制御装置毎に設定される制御周期に同期させて各ロボットを協調動作させるシステムのロボット制御装置であって、マスタ側のロボット制御装置２の制御周期における所定のタイミングで生成された同期信号の入力タイミングと、スレーブ側のロボット制御装置３−１、２の制御周期における所定のタイミングで生成された保持信号の入力タイミングとを検出するタイミング検出部３２と、保持信号の出力から所定期間経過後に同期信号と保持信号の各入力タイミングのタイミング差を読み込み、それ基づいてスレーブ側のロボット制御装置３−１、２の制御周期を変化させる制御部３１とを備えている。【選択図】図１
2011083841.tif 000002
【特許請求の範囲】
【請求項１】
複数のロボットと、各ロボットを制御する複数のロボット制御装置とを用い、前記ロボット制御装置毎に設定される所定の制御周期に同期させて前記複数のロボットを協調動作させる制御システムにおけるロボット制御装置であって、
他のロボット制御装置において当該他のロボット制御装置の前記制御周期における所定のタイミングで生成された同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出するタイミング検出部と、
自ロボット制御装置の前記制御周期における所定のタイミングで前記保持信号を生成して前記タイミング検出部に対して出力し、その出力から所定期間経過後に前記同期信号の入力タイミング及び前記保持信号の入力タイミングを表す情報を前記タイミング検出部から読み込み、前記各入力タイミングのタイミング差に基づき自ロボット制御装置における前記制御周期を変化させる制御部と
を備えることを特徴とするロボット制御装置。
【請求項２】
前記タイミング検出部が、
前記制御周期より短い周期のクロック信号をカウントするカウンターと、
前記同期信号が入力されたタイミングの前記カウンターのカウント値を記憶する同期信号入力タイミングカウント値記憶部と、
前記保持信号が入力されたタイミングの前記カウンターのカウント値を記憶する保持信号入力タイミングカウント値記憶部と
を備えるものであることを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
複数のロボットと、各ロボットを制御する複数のロボット制御装置とを用い、前記ロボット制御装置毎に設定される所定の制御周期に同期させて前記複数のロボットを協調動作させる制御システムであって、
自ロボット制御装置の前記制御周期における所定のタイミングで同期信号を生成し、スレーブロボット制御装置に対して出力する制御部
を有するマスタロボット制御装置と、
前記同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出するタイミング検出部と、
自ロボット制御装置の前記制御周期における所定のタイミングで前記保持信号を生成して前記タイミング検出部に対して出力し、その出力から所定期間経過後に前記同期信号の入力タイミング及び前記保持信号の入力タイミングを表す情報を前記タイミング検出部から読み込み、前記各入力タイミングのタイミング差に基づき自ロボット制御装置における前記制御周期を変化させる制御部と
を有するスレーブロボット制御装置と
を備えることを特徴とするロボット制御システム。
【請求項４】
複数のロボットと、各ロボットを制御する複数のロボット制御装置とを用い、前記ロボット制御装置毎に設定される所定の制御周期に同期させて前記複数のロボットを協調動作させるロボット制御方法であって、
タイミング検出部によって、他のロボット制御装置において当該他のロボット制御装置の前記制御周期における所定のタイミングで生成された同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出し、
自ロボット制御装置の前記制御周期における所定のタイミングで前記保持信号を生成して前記タイミング検出部に対して出力し、その出力から所定期間経過後に前記同期信号の入力タイミング及び前記保持信号の入力タイミングを表す情報を前記タイミング検出部から読み込み、前記各入力タイミングのタイミング差に基づき自ロボット制御装置における前記制御周期を変化させる
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のロボットを複数のロボット制御装置を用いて協調制御するためのロボット制御装置、ロボット制御システム及びロボット制御方法に関する。
【背景技術】
【０００２】
複数のロボットを協調動作させるシステムには、複数のロボットを１台のロボット制御装置を用いて制御するものと、複数のロボット制御装置を用いて制御するものとがある。このうち、複数のロボット制御装置を用いるシステムでは、各ロボット制御装置の同期をとるための手段が必要となる。複数のロボット制御装置間で同期をとるための技術の一例が特許文献１に記載されている。
【０００３】
特許文献１に記載されているロボット制御装置では、マスタ側のロボット制御装置とスレーブ側のロボット制御装置との間の同期をとるため、マスタ側のロボット制御装置から送信された動作指令がスレーブ側のロボット制御装置で受信されるまでの通信遅れ時間が、予め定めた時間となるように、スレーブ側のロボット制御装置の最小割込周期が変化されるようになっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５７７０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の装置では、通信接続手段を用いた動作指令の送信時刻と受信時刻との間の通信遅れ時間を基準として同期がとられており、最小割込周期の３〜５カウント分といった程度の同期精度しか得ることができなかった（特許文献１の段落番号００４８〜００４９参照）。また、完全に同期させるためには、スレーブ側のロボット制御装置だけでなく、マスタ側のロボット制御装置においても制御対象のロボットへの指令の送信時刻を上記の通信遅れ時間分遅らせるといった処理が必要があった（特許文献１の段落番号００５１参照）。
【０００６】
すなわち、特許文献１の装置では、通信遅れ時間を基準として同期をとっていたため精度を高くすることが困難であり、また、スレーブ側の装置だけなくマスタ側の装置においても同期をとるための調整が必要であるため、処理内容が複雑化するという課題があった。特に後者の点については、３台以上の複数のロボット制御装置を用いる場合、すなわち１台のマスタ側装置と２台以上のスレーブ側装置との間での調整が必要となる場合、処理内容がさらに複雑化するという課題があった。
【０００７】
本発明は、上記の課題に鑑みてなされたものであり、複数のロボットを複数のロボット制御装置で制御するシステムにおける各ロボット制御装置間の同期を精度良く確立することができ、また、その際のマスタ側のロボット制御装置における処理を単純化することができるロボット制御装置、ロボット制御システム及びロボット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、請求項１記載の発明は、複数のロボットと、各ロボットを制御する複数のロボット制御装置とを用い、前記ロボット制御装置毎に設定される所定の制御周期に同期させて前記複数のロボットを協調動作させる制御システムにおけるロボット制御装置であって、他のロボット制御装置において当該他のロボット制御装置の前記制御周期における所定のタイミングで生成された同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出するタイミング検出部と、自ロボット制御装置の前記制御周期における所定のタイミングで前記保持信号を生成して前記タイミング検出部に対して出力し、その出力から所定期間経過後に前記同期信号の入力タイミング及び前記保持信号の入力タイミングを前記タイミング検出部から読み込み、前記各入力タイミングのタイミング差に基づき自ロボット制御装置における前記制御周期を変化させる制御部とを備えることを特徴とするロボット制御装置である。
【０００９】
本発明のロボット制御装置では、他のロボット制御装置において当該他のロボット制御装置の前記制御周期における所定のタイミングで生成された同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出するタイミング検出部を設けるとともに、同期信号の入力タイミングと保持信号の入力タイミングのタイミング差に基づいて自ロボット制御装置における制御周期を変化させる制御部を設けている。これによれば、タイミング検出部によって検出された同期信号と保持信号のタイミング差に基づき、保持信号を出力するロボット制御装置における制御周期を、同期信号を出力するロボット制御装置における制御周期に同期させることができる。タイミング検出部は、同期信号と保持信号が入力された各タイミングを検出するだけなので、同期ずれの検出に用いる信号の通信時間遅れを容易に無視できる程度とすることができ、各ロボット制御装置間の同期を精度良くとることができる。また、制御周期の調整は、保持信号を生成する側のロボット制御装置でのみ行えばよいので、同期信号を生成する側のロボット制御装置における処理を単純化することができる。
【００１０】
請求項２記載の発明は、前記タイミング検出部が、前記制御周期より短い周期のクロック信号をカウントするカウンターと、前記同期信号が入力されたタイミングの前記カウンターのカウント値を記憶する同期信号入力タイミングカウント値記憶部と、前記保持信号が入力されたタイミングの前記カウンターのカウント値を記憶する保持信号入力タイミングカウント値記憶部とを備えるものであることを特徴とする。この発明によれば、カウンターと、カウンターのカウント値を同期信号及び保持信号の入力タイミングでそれぞれ保持するための同期信号入力タイミングカウント値記憶部及び保持信号入力タイミングカウント値記憶部とを基本的な構成要素としてタイミング検出部を構成することができ、タイミング検出部の構成を容易に単純化することができる。
【００１１】
請求項３記載の発明は、複数のロボットと、各ロボットを制御する複数のロボット制御装置とを用い、前記ロボット制御装置毎に設定される所定の制御周期に同期させて前記複数のロボットを協調動作させる制御システムであって、自ロボット制御装置の前記制御周期における所定のタイミングで同期信号を生成し、スレーブロボット制御装置に対して出力する制御部を有するマスタロボット制御装置と、前記同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出するタイミング検出部と、自ロボット制御装置の前記制御周期における所定のタイミングで前記保持信号を生成して前記タイミング検出部に対して出力し、その出力から所定期間経過後に前記同期信号の入力タイミング及び前記保持信号の入力タイミングを前記タイミング検出部から読み込み、前記各入力タイミングのタイミング差に基づき自ロボット制御装置における前記制御周期を変化させる制御部とを有するスレーブロボット制御装置とを備えることを特徴とするロボット制御システムである。この発明によれば、同期信号と保持信号のタイミング差に基づき、保持信号を出力するロボット制御装置における制御周期を、同期信号を出力するロボット制御装置における制御周期に同期させることができる。タイミング検出部は、同期信号と保持信号が入力された各タイミングを検出するだけなので、同期ずれの検出に用いる信号の通信時間遅れを容易に無視できる程度とすることができ、各ロボット制御装置間の同期を精度良くとることができる。また、制御周期の調整は、保持信号を生成する側のロボット制御装置でのみ行えばよいので、同期信号を生成する側のロボット制御装置における処理を単純化することができる。
【００１２】
請求項４記載の発明は、複数のロボットと、各ロボットを制御する複数のロボット制御装置とを用い、前記ロボット制御装置毎に設定される所定の制御周期に同期させて前記複数のロボットを協調動作させるロボット制御方法であって、タイミング検出部によって、他のロボット制御装置において当該他のロボット制御装置の前記制御周期における所定のタイミングで生成された同期信号の入力タイミングと、自ロボット制御装置で生成された保持信号の入力タイミングとを検出し、自ロボット制御装置の前記制御周期における所定のタイミングで前記保持信号を生成して前記タイミング検出部に対して出力し、その出力から所定期間経過後に前記同期信号の入力タイミング及び前記保持信号の入力タイミングを表す情報を前記タイミング検出部から読み込み、前記各入力タイミングのタイミング差に基づき自ロボット制御装置における前記制御周期を変化させることを特徴とするロボット制御方法である。この発明によれば、タイミング検出部によって検出された同期信号と保持信号のタイミング差に基づき、保持信号を出力するロボット制御装置における制御周期を、同期信号を出力するロボット制御装置における制御周期に同期させることができる。タイミング検出部は、同期信号と保持信号が入力された各タイミングを検出するだけなので、同期ずれの検出に用いる信号の通信時間遅れを容易に無視できる程度とすることができ、各ロボット制御装置間の同期を精度良くとることができる。また、制御周期の調整は、保持信号を生成する側のロボット制御装置でのみ行えばよいので、同期信号を生成する側のロボット制御装置における処理を単純化することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明のロボット制御システムの実施の形態の構成例を示すブロック図である。
【図２】図１に示すタイミング検出部３２の構成例を示すブロック図である。
【図３】図１のロボット制御装置２（マスタ）における同期処理の流れを示すフローチャートである。
【図４】図１のロボット制御装置３−１、３−２（スレーブ）における同期処理の流れを示すフローチャートである。
【図５】図１のロボット制御システムにおける同期処理の流れを示すタイミングチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明によるロボット制御装置及びロボット制御システムの実施形態について説明する。図１は、本発明によるロボット制御装置及びロボット制御システムの実施形態を示すブロック図である。図１に示すロボット制御システムは、上位制御装置１、ロボット制御装置２、ロボット制御装置３−１〜３−２及びロボット４−１〜４−３から構成されている。複数のロボット４−１〜４−３は、各ロボットを制御する複数のロボット制御装置２、３−１〜３−２によって、ロボット制御装置２、３−１〜３−２毎に設定される所定の制御周期に同期させて協調動作するよう制御される。
【００１５】
上位制御装置１は、パーソナルコンピューター等のコンピューターから構成されていて、所定のプログラムを実行し、操作者による操作等に応じて、ロボット制御装置２及びロボット制御装置３−１〜３−２に対して指令信号等を出力する。
【００１６】
ロボット制御装置２は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等からなる制御部２１を有して構成されている。この場合、制御部２１は、プロセッサ、メモリー、クロック信号発振回路、タイマ、カウンター、Ａ／Ｄ（アナログ・デジタル）変換回路、Ｄ／Ａ（デジタル・アナログ）変換回路、デジタルＩ／Ｏ（入出力）回路、通信回路等を有して構成されていて、メモリーに格納されているプログラムを実行することで信号処理を行う。制御部２１内部のクロック信号発振回路は、水晶振動子等を用いた発振回路、分周回路等から構成されていて各部にクロック信号を供給する。ロボット制御装置２は、上位制御装置１から受信した指令信号等に従い、制御部２１内で生成された所定のクロック信号に基づいて設定される所定の制御周期で、ロボット４−１に対して上位制御装置１から与えられるシーケンスに従い、制御周期間の出力周期毎に制御信号を出力し、ロボット４−１の動作を制御する。また、ロボット制御装置２は、制御部２１によって設定された制御周期における所定のタイミングで同期信号を生成し、ロボット制御装置３−１及び３−２に対して出力する。この同期信号は、所定のパルス幅を有する２値信号（ハイレベル又はローレベルの信号）である。
【００１７】
ロボット制御装置３−１は、制御部３１と、タイミング検出部３２とを有して構成されている。制御部３１は、制御部２１と同様にＤＳＰ等からなり、プロセッサ、メモリー、クロック信号発振回路、タイマ、カウンター、Ａ／Ｄ変換回路、Ｄ／Ａ変換回路、デジタルＩ／Ｏ回路、通信回路等を有して構成されていて、メモリーに格納されているプログラムを実行することで信号処理を行う。制御部３１内部のクロック信号発振回路は、水晶振動子等を用いた発振回路、分周回路等から構成されていて各部にクロック信号を供給する。ロボット制御装置３−１は、上位制御装置１から受信した指令信号等に従い、制御部３１内で生成された所定のクロック信号に基づいて設定される所定の制御周期で、ロボット４−２に対して上位制御装置１から与えられるシーケンスに従い、制御周期間の出力周期毎に制御信号を出力し、ロボット４−２の動作を制御する。また、ロボット制御装置３−１のタイミング検出部３２には、ロボット制御装置２から出力された同期信号が入力される。また、ロボット制御装置３−１は、制御部３１によって、その制御周期における所定のタイミングで保持信号を生成してそのタイミング検出部３２に対して出力する。さらに、ロボット制御装置３−１は、制御部３１によって、保持信号を出力してから所定期間経過後に読込信号を生成してタイミング検出部３２へ出力し、タイミング検出部３２から同期信号の入力タイミング及び保持信号の入力タイミングを表す情報を読み込み、各入力タイミングのタイミング差に基づいて自ロボット制御装置３−１における制御周期を変化させる。
【００１８】
他方、ロボット制御装置３−２は、ロボット制御装置３−１と同一の構成であって、制御部３１と、タイミング検出部３２とを有して構成されている。ロボット制御装置３−２は、上位制御装置１から受信した指令信号等に従い、制御部３１内で生成された所定のクロック信号に基づいて設定される所定の制御周期で、ロボット４−３に対して上位制御装置１から与えられるシーケンスに従い、制御周期間の出力周期毎に制御信号を出力し、ロボット４−３の動作を制御する。また、ロボット制御装置３−２のタイミング検出部３２には、ロボット制御装置２から出力された同期信号が入力される。また、ロボット制御装置３−２は、制御部３１によって、その制御周期における所定のタイミングで保持信号を生成してそのタイミング検出部３２に対して出力する。さらに、ロボット制御装置３−２は、制御部３１によって、保持信号を出力してから所定期間経過後に読込信号を生成してタイミング検出部３２へ出力し、タイミング検出部３２から同期信号の入力タイミング及び保持信号の入力タイミングを表す情報を読み込み、各入力タイミングのタイミング差に基づいて自ロボット制御装置３−２における制御周期を変化させる。
【００１９】
次に、図１に示すタイミング検出部３２の構成例について、図２を参照して説明する。図２に示すタイミング検出部３２は、カウンター制御部３２１、フリーランニングカウンター３２２、同期信号入力タイミングカウント値記憶部３２３、保持信号入力タイミングカウント値記憶部３２４、及びクロック信号発生部３２５から構成されている。カウンター制御部３２１は、ＣＰＵ、メモリー、入出力回路等からなり、所定のプログラムを実行することで各部を制御し、ロボット制御装置２の制御部２１から入力された同期信号の入力タイミングと、ロボット制御装置３−１又は３−２の制御部３１から入力された保持信号の入力タイミングとを検出する。
【００２０】
フリーランニングカウンター３２２は、クロック信号発生部３２５で発生された所定のクロック信号に同期してカウント動作を行う。ただし、フリーランニングカウンター３２２がカウントするクロック信号の発生周期は、制御周期の同期ずれの大きさを検出する際の精度を決定する基準となるものであり、ロボット制御装置２やロボット制御装置３−１及び３−２の制御周期よりも充分短い周期に設定しておく。例えば、制御周期が２ｍｓ（ミリ秒）であるとすれば、フリーランニングカウンター３２２がカウントするクロック信号の発生周期を２０ｎｓ（ナノ秒）程度に設定する。この場合、制御周期の同期ずれを、プラスマイナス２０ｎｓ程度の精度で検出することができる。フリーランニングカウンター３２２は、例えば３２ビットのカウンターとして構成されていて、クロック信号が入力される毎に、０、１、…、４２９４９６７２９５、０、１、…、４２９４９６７２９５（１０進数）とカウント値を変化させる。
【００２１】
同期信号入力タイミングカウント値記憶部３２３は、カウンター制御部３２１の制御によって、制御部２１から同期信号（の１パルス）が入力された場合に、その時点のフリーランニングカウンター３２２のカウント値を格納して保持する。同期信号入力タイミングカウント値記憶部３２３の記憶値は、制御部２１からの同期信号の入力毎に更新される。また、同期信号入力タイミングカウント値記憶部３２３の記憶値は、カウンター制御部３２１に対して制御部３１から読込信号が入力された場合に、制御部３１に対して出力される。ここで、記憶値は、保持信号の入力された時点に、記憶部に記憶されたカウント値である。
【００２２】
保持信号入力タイミングカウント値記憶部３２４は、カウンター制御部３２１の制御によって、制御部３１から保持信号（の１パルス）が入力された場合に、その時点のフリーランニングカウンター３２２のカウント値を格納して保持する。保持信号入力タイミングカウント値記憶部３２４の記憶値は、制御部３１からの保持信号の入力毎に更新される。また、保持信号入力タイミングカウント値記憶部３２４の記憶値は、カウンター制御部３２１に対して制御部３１から読込信号が入力された場合に、制御部３１に対して出力される。なお、制御部３１に対する各記憶値の出力は、同期信号入力タイミングカウント値記憶部３２３と保持信号入力タイミングカウント値記憶部３２４とから順次行われるようになっている。
【００２３】
クロック信号発生部３２５は、水晶振動子等を用いた発振回路、分周回路等から構成されていて各部にクロック信号を供給する。
【００２４】
なお、図２に示すタイミング検出部３２の構成は、一例であって、これに限定されるものではない。例えば、図１のタイミング検出部３２の構成を制御部３１の内部に構成したり、図２のクロック信号発生部３２５の全部又は一部を省略してクロック信号を制御部３１から供給するようにしたりすることができる。また、タイミング検出部３２が、制御部３１から入力された読込信号に応じて、同期信号入力タイミングカウント値記憶部３２３の記憶値と保持信号入力タイミングカウント値記憶部３２４の記憶値をそのまま出力することに代えて、所定の演算処理を行って、各記憶値の差分、すなわち各入力タイミングのタイミング差を表す情報（タイミング差を正負の符号付きの大きさで表す情報）を出力するようにしてもよい。
【００２５】
次に、図３〜図５を参照して、図１の各ロボット制御装置２、３−１及び３−２における同期処理の流れについて説明する。図３は、図１のロボット制御装置２（マスタ）における同期処理の流れを示すフローチャートであり、図４は、図１のロボット制御装置３−１、３−２（スレーブ）における同期処理の流れを示すフローチャートである。また、図５は、図１の各ロボット制御装置２、３−１及び３−２における同期処理の流れを示すタイミングチャートである。
【００２６】
なお、この場合、図５に示すように、ロボット制御装置２では、ロボット制御装置２の制御周期Ｐ１が、時刻ｔ２から開始される状態で動作していることとする。また、ロボット制御装置２で生成される同期信号は、その制御周期Ｐ１の開始タイミングすなわち時刻ｔ２で生成、出力されるようになっていることとする。
【００２７】
ロボット制御装置２の制御部２１における同期信号の生成処理は、図３に示す処理によって行われる。図３は、制御周期Ｐ１における所定の同期信号の生成タイミング毎（この場合、制御周期Ｐ１の開始タイミング毎）に呼び出されるサブルーチンである。制御部２１は、このサブルーチンが呼び出された場合（図５では時刻ｔ２及びｔ９のタイミングで）、同期信号を生成し、ロボット制御装置３−１及び３−２の各タイミング検出部３２に対して出力する（ステップＳ１１）。ここで、このサブルーチンの処理が終了する。
【００２８】
他方、ロボット制御装置３−１では、ロボット制御装置３−１の制御周期Ｐ２が、時刻ｔ３から開始される状態で動作していることとする。また、ロボット制御装置３−１で生成される保持信号は、その制御周期Ｐ２の開始タイミングすなわち時刻ｔ３で生成、出力されるようになっていることとする。また、ロボット制御装置３−２では、ロボット制御装置３−２の制御周期Ｐ３が、時刻ｔ１から開始される状態で動作していることとする。また、ロボット制御装置３−２で生成される保持信号は、その制御周期Ｐ３の開始タイミングすなわち時刻ｔ１で生成、出力されるようになっていることとする。
【００２９】
ロボット制御装置３−１及び３−２の制御部３１における保持信号の生成処理は、図４（ａ）に示す処理によって行われる。図４（ａ）は、制御周期Ｐ２又はＰ３における所定の保持信号の生成タイミング毎（この場合、制御周期Ｐ２又はＰ３の開始タイミング毎）に呼び出されるサブルーチンである。制御部３１では、このサブルーチンが呼び出された場合（図５では例えば時刻ｔ３又はｔ１のタイミングで）保持信号を生成し、ロボット制御装置３−１及び３−２の各タイミング検出部３２に対して出力する（ステップＳ２１）。ここで、このサブルーチンの処理が終了する。
【００３０】
図５に示す例では、ロボット制御装置３−１のタイミング検出部３２に対して、時刻ｔ２で同期信号が入力され、同期信号入力タイミングカウント値記憶部３２３に、その時点のフリーランニングカウンター３２２のカウント値が記憶される。そして、時刻ｔ３で、制御部３１から保持信号がタイミング検出部３２に入力されると、保持信号入力タイミングカウント値記憶部３２４に、その時点のフリーランニングカウンター３２２のカウント値が記憶される。
【００３１】
また、ロボット制御装置３−２では、そのタイミング検出部３２に対して、時刻ｔ１で、制御部３１から保持信号がタイミング検出部３２に入力されると、保持信号入力タイミングカウント値記憶部３２４に、その時点のフリーランニングカウンター３２２のカウント値が記憶される。そして、時刻ｔ２で同期信号が入力されると、同期信号入力タイミングカウント値記憶部３２３に、その時点のフリーランニングカウンター３２２のカウント値が記憶される。
【００３２】
次に、ロボット制御装置３−１及び３−２では、タイミング検出部３２から同期信号と保持信号の入力タイミングの読み出し処理と、各入力タイミングのタイミング差に基づく制御周期Ｐ２及びＰ３の修正処理が実行される。その処理は、図４（ｂ）に示す処理によって行われる。図４（ｂ）は、制御周期Ｐ２又はＰ３における所定の読込信号の生成タイミング毎に呼び出されるサブルーチンである。
【００３３】
ロボット制御装置３−１では、保持信号を生成した時刻ｔ３から所定期間Ｔ２が経過した時刻ｔ６に読込信号が生成され、制御部３１からタイミング検出部３２に対して出力される（ステップＳ３１）。この期間Ｔ２は、通常想定される制御周期Ｐ１と制御周期Ｐ２の同期ずれの大きさ（この場合、時刻ｔ２と時刻ｔ３との時間Ｔ１）よりも充分大きい値となるように設定する。一例を示せば、例えば制御周期Ｐ２の長さの半分の値とする。読込信号が入力されたロボット制御装置３−１のタイミング検出部３２は時刻ｔ７で、同期信号入力タイミングカウント値記憶部３２３の記憶値（この場合、時刻ｔ２のフリーランニングカウンター３２２のカウント値）と、保持信号入力タイミングカウント値記憶部３２４の記憶値（この場合、時刻ｔ３のフリーランニングカウンター３２２のカウント値）が、タイミング検出部３２から出力される。そして、制御部３１にこれらの記憶値が入力される（ステップＳ３２）。
【００３４】
次に、制御部３１は、読み込んだ各カウント値からタイミング差を算出する（ステップＳ３３）。その際、制御部３１は、フリーランニングカウンター３２２がオーバーフローした場合の処理を加えた上で読み込んだ各カウント値の差分を算出する。この場合、同期信号の入力タイミング（時刻ｔ２）よりも保持信号の入力タイミング（時刻ｔ３）が時間Ｔ１に対応する分だけ遅れていることを表す値がタイミング差として求められる。
【００３５】
次に、制御部３１は、ステップＳ３３で算出したタイミング差に基づいて、制御部３１における制御周期Ｐ２の設定値を修正する（ステップ３４）。ここで、このサブルーチンの処理が終了する。図５に示す例では、ロボット制御装置３−１の制御周期Ｐ２の開始時刻ｔ２が、ロボット制御装置２の制御周期Ｐ１の開始時刻ｔ３よりも遅れているので、制御部３１は、制御周期Ｐ２を短くするように設定を行う。図５に示す例では、次の制御周期Ｐ２の開始時刻（すなわち保持信号の出力時刻）における時間差が、算出された時間差Ｔ１の半分程度（図５では時間Ｔ３）となるように次の制御周期Ｐ２の開始時刻ｔ１０が設定されている。このため、制御部３１は、現在の制御周期Ｐ２を、時間Ｔ１−時間Ｔ３の時間を短縮させるため、時刻ｔ７以降におけるロボット４−２をシーケンスに従い駆動する制御信号の出力周期を短縮させる。ここで、制御部３１は、時間Ｔ１−時間Ｔ３の時間を、時刻ｔ７以降における制御信号の出力周期数で除算し、除算結果を各出力周期から減算して新たな駆動周期とする。ただし、この設定は一例であり、次の制御周期Ｐ２の開始時刻が、ロボット制御装置２の制御周期Ｐ１の次の開始時刻と一致するように、次の制御周期Ｐ２の開始時刻を設定するように修正を行う（図５では時刻ｔ１０が時刻ｔ９に一致するように修正を行う）ことも可能である。
【００３６】
一方、ロボット制御装置３−２では、保持信号を生成した時刻ｔ１から所定期間Ｔ５が経過した時刻ｔ４に読込信号が生成され、制御部３１からタイミング検出部３２に対して出力される（ステップＳ３１）。この期間Ｔ４は、通常想定される制御周期Ｐ１と制御周期Ｐ３の同期ずれの大きさ（この場合、時刻ｔ１と時刻ｔ２との時間Ｔ４）よりも充分大きい値となるように設定する。一例を示せば、例えば制御周期Ｐ３の長さの半分の値とする。読込信号が入力されたロボット制御装置３−２のタイミング検出部３２は時刻ｔ５で、同期信号入力タイミングカウント値記憶部３２３の記憶値（この場合、時刻ｔ２のフリーランニングカウンター３２２のカウント値）と、保持信号入力タイミングカウント値記憶部３２４の記憶値（この場合、時刻ｔ１のフリーランニングカウンター３２２のカウント値）が、タイミング検出部３２から出力される。そして、制御部３１にこれらの記憶値が入力される（ステップＳ３２）。
【００３７】
次に、制御部３１は、読み込んだ各カウント値からタイミング差を算出する（ステップＳ３３）。その際、制御部３１は、フリーランニングカウンター３２２がオーバーフローした場合の処理を加えた上で読み込んだ各カウント値の差分を算出する。この場合、同期信号の入力タイミング（時刻ｔ２）よりも保持信号の入力タイミング（時刻ｔ１）が時間Ｔ４に対応する分だけ進んでいることを表す値がタイミング差として求められる。
【００３８】
次に、制御部３１は、ステップＳ３３で算出したタイミング差に基づいて、制御部３１における制御周期の設定値を修正する（ステップＳ３４）。ここで、このサブルーチンの処理が終了する。図５に示す例では、ロボット制御装置３−２の制御周期Ｐ３の開始時刻ｔ１が、ロボット制御装置２の制御周期Ｐ１の開始時刻ｔ２よりも進んでいるので、制御部３１は、制御周期Ｐ３を長くするように設定を行う。図５に示す例では、次の制御周期Ｐ３の開始時刻（すなわち保持信号の出力時刻）における時間差が、算出された時間差Ｔ４の半分程度（図５では時間Ｔ６）となるように次の制御周期Ｐ３の開始時刻ｔ８が設定されている。このため、制御部３１は、現在の制御周期Ｐ３を、時間Ｔ４−時間Ｔ６の時間を短縮させるため、時刻ｔ５以降におけるロボット４−３をシーケンスに従い駆動する制御信号の出力周期を延長させる。ここで、制御部３１は、時間Ｔ４−時間Ｔ６の時間を、時刻ｔ５以降における制御信号の出力周期数で除算し、除算結果を各出力周期に加算して新たな駆動周期とする。ただし、この設定は一例であり、次の制御周期Ｐ３の開始時刻が、ロボット制御装置２の制御周期Ｐ１の次の開始時刻と一致するように、次の制御周期Ｐ３の開始時刻を設定するように修正を行う（図５では時刻ｔ８が時刻ｔ９に一致するように修正を行う）ことも可能である。
【００３９】
以上の同期処理によって、ロボット制御装置３−１及び３−２の制御周期Ｐ２及びＰ３は、ロボット制御装置２の制御周期Ｐ１と同期するように（あるいは同期ずれが少なくなるように）制御周期毎に修正される。
上述した制御周期Ｐ１に対する制御周期Ｐ２または制御周期Ｐ３の同期の修正が必要か否かを、予め閾値を制御部３１に設定しておいても良い。この場合、制御部３１は、この閾値と、同期ずれの時間Ｔ１（あるいは時間Ｔ４）とを比較し、同期ずれが閾値を超えていることを検出すると、制御周期Ｐ１に対する制御周期Ｐ２または制御周期Ｐ３の同期の修正を行う。
【００４０】
以上のように、本実施形態では、マスタ側のロボット制御装置２において当該装置の制御周期の所定のタイミングで同期信号を生成、出力させるとともに、スレーブ側のロボット制御装置３−１及び３−２において当該装置の各制御周期の所定のタイミングで保持信号を生成、出力させ、タイミング検出部３２によって同期信号と保持信号を検出し、それに基づいて、スレーブ側のロボット制御装置３−１及び３−２の各制御周期の長さ（あるいは開始タイミング）を修正するようにしている。これによれば、制御周期レベルでの同期によって、従来よりも高精度の協調動作を実現することができる。また、制御周期の修正処理は、スレーブ側のロボット制御装置３−１及び３−２で行うだけでよく、マスタ側のロボット制御装置２は、同期信号を生成、出力する処理を行うだけでよい。
【００４１】
なお、本発明の実施の形態は、上記のものに限定されず、ロボット制御装置の台数は、マスタ側とスレーブ側各１台の合計２台のロボット制御装置によってシステムを構成するようにしたり、あるいは３台以上のスレーブ側のロボット制御装置を用いたシステムとしたりすることが可能である。また、同期信号等の制御信号は、電気信号以外の、光信号等の信号を使用したり、有線のほか、無線で信号を伝送したりすることが可能である。
【符号の説明】
【００４２】
１  上位制御装置
２  ロボット制御装置（マスタロボット制御装置）
３−１、３−２  ロボット制御装置（スレーブロボット制御装置）
４−１、４−２、４−３  ロボット
２１、３１  制御部
３２  タイミング検出部
３２１  カウンター制御部
３２２  フリーランニングカウンター
３２３  同期信号入力タイミングカウント値記憶部
３２４  保持信号入力タイミングカウント値記憶部
３２５  クロック信号発生部
【図１】
2011083841.tif 000003
【図２】
2011083841.tif 000004
【図３】
2011083841.tif 000005
【図４】
2011083841.tif 000006
【図５】
2011083841.tif 000007