(57)【要約】【課題】複数機器による分散システムにおいて行動の開始を同期させる場合に、指令から開始までの時間を短縮するとともに、各機器が自律的に協調動作するプログラムを各機器内のプログラムに記述することができるようにする。【解決手段】通信手段１２１で相互に接続された機器の間で協調動作を行う分散システムにおける同期方法において、各機器に内蔵の時計を同期させ、分散システム１００内のうちいずれかの機器１１１を統括機器として統括機器にカウンタ変数を持ち、各機器１１２、１１３が機器内に持つセマフォの取得・開放を統括機器のカウンタ変数により管理し、統括機器のカウンタ変数が０になった時点で各機器のセマフォを時刻指定付で開放する、ものである。【選択図】図１
2008146149.tif 000002
【特許請求の範囲】
【請求項１】
通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理装置において、
前記各機器に内蔵する時計を同期させ、
前記分散システム内のいずれかの機器を統括機器として、該統括機器側の同期処理装置は、
同期させる機器の数Ｎを決めてカウンタを該数Ｎで初期化し、前記各機器からの同期サービスへの登録要求を受付け前記各機器から引数として渡されたセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、
前記各機器からの登録解除要求によって前記オブジェクト参照登録テーブルの前記各機器の登録を削除する同期登録処理部と、
登録受付終了後に、前記各機器からのセマフォリリース要求メソッド呼出しに対しセマフォリリース要求かを判断するセマフォリリース要求受付部と、
前記各機器からの要求がセマフォリリース要求の場合は、要求各機器毎に１つ前記カウンタの変数を減じて前記カウンタの変数が０になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出すカウンタ変数管理部と、
前記取出したセマフォサービスオブジェクト参照により前記各機器の時刻指定リリースメソッドを呼出し、全ての機器に繰返し呼出しを行う時刻指定リリースメソッド呼出部と、を備え、
前記統括機器以外の前記各機器側の同期処理装置は、前記統括機器の同期サービスへの登録要求をセマフォサービスオブジェクト登録メソッドを呼出して行い、同期処理が不要になったら前記統括機器のセマフォサービスオブジェクト登録解除メソッドを呼出し登録解除要求を行う同期登録要求部と、
登録処理終了後に、前記統括機器のセマフォリリース要求メソッドを呼出しセマフォリリース待ち状態に入るセマフォリリース要求メソッド呼出部と、
前記統括機器からの時刻指定リリースメソッド呼出に応じて指定された時刻を内部タイマにセットし、該指定時刻に到達したらセマフォリリースを完了して同期処理を開始するセマフォリリース部と、を備えたことを特徴とする分散システムの同期処理装置。
【請求項２】
前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照情報を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、１度のメソッド呼出し所要時間として記憶していることを特徴とする請求項１記載の分散システムの同期処理装置。
【請求項３】
前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数管理部のカウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソッドと、セマフォリリース要求時に使用されるリリース要求メソッドと、を有することを特徴とする請求項１記載の分散システムの同期処理装置。
【請求項４】
前記統括機器以外の前記各機器は、セマフォサービスを行うメソッドとして、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドと、を有することを特徴とする請求項１記載の分散システムの同期処理装置。
【請求項５】
前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照テーブルに記憶する前記各機器の１度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴とする請求項１記載の分散システムの同期処理装置、
【請求項６】
前記分散システム内の前記各機器間の時間同期は、２機器間では該２機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴とする請求項１記載の分散システムの同期処理装置。
【請求項７】
予め単一の動作を微小時間区間に分割し、微小区間毎の開始時刻を同期させ、微小区間の個数分繰返して動作する微小区間内同期処理部を備えたことを特徴とする請求項１記載の分散システムの同期処理装置。
【請求項８】
動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与える移動指令送出部を備えたことを特徴とする請求項１記載の分散システムの同期処理装置。
【請求項９】
通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理方法において、
前記各機器に内蔵の時計を同期させ、
前記分散システム内のいずれかの機器を統括機器として、該統括機器は、同期させる機器の数Ｎを決めてカウンタを該数Ｎで初期化し、前記各機器からの同期サービスへの登録要求を受付け引数として渡されるセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、前記各機器からの登録解除要求により前記オブジェクト参照登録テーブルの登録を削除し、登録受付終了後に前記各機器からのセマフォリリース要求により要求各機器毎に１つ前記カウンタの変数を減じて前記カウンタの変数が０になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出し、前記各機器の時刻指定リリースメソッドを呼出し、前記セマフォを時刻指定付で開放するという手順で同期処理を行うことを特徴とする分散システムの同期処理方法。
【請求項１０】
前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照情報を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、１度のメソッド呼出し所要時間として記憶していることを特徴とする請求項９記載の分散システムの同期処理方法。
【請求項１１】
前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソッドと、セマフォリリース要求時に使用されるリリース要求メソッドと、を用いて同期サービスを行うことを特徴とする請求項９記載の分散システムの同期処理方法。
【請求項１２】
前記統括機器以外の前記各機器は、セマフォサービスを行うメソッドとして、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドと、を用いてセマフォサービスを行うことを特徴とする請求項９記載の分散システムの同期処理方法。
【請求項１３】
前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照テーブルに記憶する前記各機器の１度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴とする請求項９記載の分散システムの同期処理方法。
【請求項１４】
前記分散システム内の前記各機器間の時間同期は、２機器間では該２機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴とする請求項９記載の分散システムの同期処理方法。
【請求項１５】
前記協調動作は，予め単一の動作を微小時間区間に分割し，微小区間毎の開始時刻を同期させ、微小区間の個数分繰り返して動作することを特徴とする請求項９記載の分散システムの同期処理方法。
【請求項１６】
前記協調動作は，前記協調動作における動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与えることを特徴とする請求項９記載の分散システムの同期処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信手段で相互に接続された機器の間で協調動作を行う分散システムにおける同期処理に関する。
【背景技術】
【０００２】
日常生活において人との関わりの中でも作業をすることができる自律型のロボットの研究・開発が広くなされている。このようなロボットは、与えられた仕事を受けて決まった手順で動作するだけではなく、周囲の状況に応じて作業内容が追加・変更されるようなことがあっても、柔軟かつ即座に対応できる必要がある。このため自律型のロボットを複数台設置し、与えられた指示の内容に応じて複数のロボットが役割を分担したり、または同一作業を複数のロボットが協調的に作業したりといったことを効率的に行う仕組みが種々考案されている。そのような仕組みを実現するためには、複数のロボットの動作の開始を同期させることが必要になっている。
複数機器による分散システムにおいて行動の開始を同期させる従来例を示す（例えば、特許文献１参照）。
図１３は従来のロボットシステムの構成図であり、図１３の例では、各機器は、ユーザからの指令や周囲の環境に応じて自主的に行動を決定する自立型のロボット３台のロボット７０１〜７０３である。
これらのロボットの協調行動の開始タイミングを同期させるには、パーソナルコンピュータ７０６は、ネットワーク７０５およびアクセスポイント７０４を介して、協調行動の開始タイミングを合わせるためのコマンドを含む同期パケットを、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）で、各ロボットにブロードキャストする。パーソナルコンピュータ７０６はまた、同期パケットの受信を問い合わせるための通信パケットを、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）で、各ロボットにユニキャストする。
このように協調行動の開始タイミングを合わせるために必要な同期パケットを、ＵＤＰで各ロボットにブロードキャストし、各ロボット７０１〜７０３が、その同期パケットを同時に受信することができるようにしたので、各ロボットの協調行動の開始タイミングを合わせることができる。
図１４は、この間の実際の通信手順を、図１７（特許文献１の図１７参照）のフローチャートの内容に基づいて明確に示すためにシーケンス図にして示したものである。
図１４には、パーソナルコンピュータ７０６が２台のロボット７０１、７０２に対して同期パケットの送信（Ｓ７１１）、同期パケット受信の問い合わせ（Ｓ７１２、Ｓ７１３）、協調行動開始の要求（Ｓ７１４、Ｓ７１５）に係る通信の流れを時間軸に対して表し、所要時間をｔ２としている。
【特許文献１】特開２００４−３０４７１４号公報（第５−７頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の方法では、以上のように、同期させて実行する指令を送る際に、（１）同期パケットの送信、（２）同期パケット受信の問い合わせ、（３）協調行動開始の要求といった３段階の手順をとっていたが、パーソナルコンピュータ７０６からロボット１への指令において、同期パケットの送信（７１１）から協調行動開始要求（７１４）までに要した所要時間ｔ２は、３度の通信にかかる時間に相当する。パーソナルコンピュータから各々のロボットに対して３回の通信が必要となり、特に（２）同期パケットの送信および（３）協調行動開始の要求は各ロボットに対して個別に行う必要があったため、ロボットの台数が増えた場合に、パーソナルコンピュータが全てのロボットに指令を送ってから各ロボットが実際に同期した動作を開始するまでに必要な時間が長くなるという問題があった。
また、各ロボットの動作プログラムを作成するプログラム作成者から見ると、複数のロボットに協調動作をさせるにはパーソナルコンピュータや人間などの指令をする主体が必要となり、自律して動作する機器（ロボット）であっても自律的に協調するようなプログラムを機器自身に記述することが困難であった。
また、開始時刻だけ合わせても動作全体が同期しないという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、指令から開始までの時間を短縮するとともに、各機器が自律的に協調動作するプログラムを各機器内のプログラムに記述することができる分散システムの同期処理装置および同期処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１記載の発明は、分散システムの同期処理装置に係り、通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理装置において、前記各機器に内蔵する時計を同期させ、
前記分散システム内のいずれかの機器を統括機器として、該統括機器側の同期処理装置は、
同期させる機器の数Ｎを決めてカウンタを該数Ｎで初期化し、前記各機器からの同期サービスへの登録要求を受付け前記各機器から引数として渡されたセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、
前記各機器からの登録解除要求によって前記オブジェクト参照登録テーブルの前記各機器の登録を削除する同期登録処理部と、
登録受付終了後に、前記各機器からのセマフォリリース要求メソッド呼出しに対しセマフォリリース要求かを判断するセマフォリリース要求受付部と、
前記各機器からの要求がセマフォリリース要求の場合は、要求各機器毎に１つ前記カウンタの変数を減じて前記カウンタの変数が０になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出すカウンタ変数管理部と、前記取出したセマフォサービスオブジェクト参照により前記各機器の時刻指定リリースメソッドを呼出し、全ての機器に繰返し呼出しを行う時刻指定リリースメソッド呼出部と、  を備え、前記統括機器以外の前記各機器側の同期処理装置は、前記統括機器の同期サービスへの登録要求をセマフォサービスオブジェクト登録メソッドを呼出して行い、同期処理が不要になったら前記統括機器のセマフォサービスオブジェクト登録解除メソッドを呼出し登録解除要求を行う同期登録要求部と、
登録処理終了後に、前記統括機器のセマフォリリース要求メソッドを呼出しセマフォリリース待ち状態に入るセマフォリリース要求メソッド呼出部と、
前記統括機器からの時刻指定リリースメソッド呼出に応じて指定された時刻を内部タイマにセットし、該指定時刻に到達したらセマフォリリースを完了して同期処理を開始するセマフォリリース部と、を備えたことを特徴としている。
また、請求項２記載の発明は、請求項１記載の分散システムの同期処理装置において、前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、１度のメソッド呼出し所要時間として記憶していることを特徴としている。
また、請求項３記載の発明は、請求項１記載の分散システムの同期処理装置において、前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数管理部のカウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソッドと、セマフォリリース要求時に使用されるリリース要求メソッドと、を有することを特徴としている。
また、請求項４記載の発明は、請求項１記載の分散システムの同期処理装置において、前記統括機器以外の前記各機器は、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドと、を有することを特徴としている。
また、請求項５記載の発明は、請求項１記載の分散システムの同期処理装置において、前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照テーブルに記憶する前記各機器の１度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴としている。
また、請求項６記載の発明は、請求項１記載の分散システムの同期処理装置において、前記分散システム内の前記各機器間の時間同期は、２機器間では該２機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴としている。
また、請求項７記載の発明は、請求項１記載の分散システムの同期処理装置において、予め単一の動作を微小時間区間に分割し、微小区間毎の開始時刻を同期させ、微小区間の個数分繰返して動作する微小区間内同期処理部を備えたことを特徴としている。
また、請求項８記載の発明は、請求項１記載の分散システムの同期処理装置において、動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与える移動指令送出部を備えたことを特徴としている。
また、請求項９記載の発明は、分散システムの同期処理方法に係り、通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理方法において、前記各機器に内蔵の時計を同期させ、
前記分散システム内のいずれかの機器を統括機器として、該統括機器は、同期させる機器の数Ｎを決めてカウンタを該数Ｎで初期化し、前記各機器からの同期サービスへの登録要求を受付け引数として渡されるセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、前記各機器からの登録解除要求により前記オブジェクト参照登録テーブルの登録を削除し、登録受付終了後に前記各機器からのセマフォリリース要求により要求各機器毎に１つ前記カウンタの変数を減じて前記カウンタの変数が０になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出し、前記各機器の時刻指定リリースメソッドを呼出し、前記セマフォを時刻指定付で開放するという手順で同期処理を行うことを特徴としている。
また、請求項１０記載の発明は、請求項９記載の分散システムの同期処理方法において、前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照情報を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、１度のメソッド呼出し所要時間として記憶していることを特徴としている。
請求項１１記載の発明は、請求項９記載の分散システムの同期処理方法において、前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソットと、セマフォリリース要求時に使用されるリリース要求メソッドと、を用いて同期サービスを行うことを特徴としている。
また、請求項１２記載の発明は、請求項９記載の分散システムの同期処理方法において、前記統括機器以外の前記各機器は、セマフォサービスを行うメソッドとして、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドとを用いてセマフォサービスを行うことを特徴としている。
また、請求項１３記載の発明は、請求項９記載の分散システムの同期処理方法において、前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照登録テーブルに記憶する前記各機器の１度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴としている。
また、請求項１４記載の発明は、請求項９記載の分散システムの同期処理方法において、前記分散システム内の前記各機器間の時間同期は、２機器間では該２機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴としている。
また、請求項１５記載の発明は、請求項９記載の分散システムの同期処理方法において、前記協調動作は，予め単一の動作を微小時間区間に分割し，微小区間毎の開始時刻を同期させ、微小区間の個数分繰り返して動作することを特徴としている。
また、請求項１６記載の発明は、請求項９記載の分散システムの同期処理方法において、前記協調動作は，前記協調動作における動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与えることを特徴としている。
【発明の効果】
【０００５】
本発明によると、協調動作の開始を従来より短い時間で同期させることが可能になり、各機器内に自律的に協調する動作プログラムを記述することが可能になるという効果がある。
また、開始時刻だけではなく、開始時刻と終了時刻が合っているので、動作全体が正確に同期できる効果がある。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
図１は、本発明の分散システムの構成を示す概念図である。
図において、１１１、１１２、１１３は機器であり、各々通信媒体１２１によってネットワーク１２０に接続しており相互に通信が可能な分散システム１００を構成している。
図２は、図１に示す分散システムで、機器の１つ（例えば機器１１１）を統括機器とし（あるいは、別のパーソナルコンピュータ等を統括機器とすることもできる）、他を分散機器（１１２、１１３等）として分散システムを構成する装置発明とする場合のクレーム対応図であり、統括機器１１１と機器１１２、１１３の各動作ブロックを図示している。この各ブロックは全て後述の図４に示す各メソッドと、図５、７、１０、１１に示すフローチャートの処理ステップ、その他に対応している。
統括機器１１１は、ネットワーク１２０を介してＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：分散環境でのオブジェクト間通信をサポートするミドルウェア）等の分散環境で各機器１１２、１１３と通信可能に構成されている。
【０００８】
統括機器１１１の同期登録処理部１３０は、最初に、機器１１２の同期登録要求部１３４から登録要求があると、分散システムへの機器登録又は解除手続きを行う。登録手続き終了後、機器１１２側のセマフォリリース要求メソッド呼出部１３５からリリース要求が入るとセマフォリリース要求受付部１３１は、セマフォリリース要求を受付け、カウンタ変数管理部１３２は登録済みの機器に対応するカウンタ変数を管理し監視して、受付が完了したら、時刻指定リリースメソッド呼出部１３３より、各機器１１２、１１３の時刻指定リリースメソッド呼出しを行う。呼ばれた機器１１２、１１３側では、セマフォリリース部１３６が、内部タイマに指定時刻をセットし指定時刻に到達したら同期動作を開始する。
【０００９】
次の図３は本発明の同期処理をロボットによる分散システムのロボット間の同期に対して適用する場合の構成を示す概念図である。
図３において２１０、２２０、２３０はロボットであり、各々無線通信部２１２、カメラ２１３、ロボットアーム２１４、ロボットハンド２１５、移動手段２１６を備えている。２４０はパーソナルコンピュータなどの統括機器である。これらはネットワーク２５０に接続しており、相互に通信が可能となっている。
また、ロボット２１０は自力で移動するための移動手段２１６等と、自分の位置を検出する手段とを備えている。移動手段２１６は電気駆動の車輪などであり、自分の位置を検出する手段とはカメラ２１３や図示しないグローバルポジショニングシステム（ＧＰＳ）のことである。無線通信部２１２を用いて、他のロボット達とネットワーク２５０を媒体としてＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信を行うことができる。また、人間の腕と手を模倣して作られた、複数の可動軸を持つロボットアーム２１４およびその先端に位置するロボットハンド２１５により、品物を把持・運搬することができる。
２台のロボットで１つの荷物を運搬する場合，１）荷物に近寄る、２）荷物を持つ、３）荷物を持ったまま移動するという手順で行う。このとき、各々の手順を開始する直前で２台のロボットが動作の開始を同期させることが必要になる。
【００１０】
次に本発明の処理内容を説明する。
まず、分散システムを構成する各機器の中から、統括機器を任意の手段で選出する。
図１、図２等における分散システム１００では機器１１１〜１１３のうち、いずれかを統括機器（例えば、統括機器１１１等）として、図３における分散システム２００では、パーソナルコンピュータ２４０を統括機器としている。いずれにおいても、統括機器では、同期サービスを起動する。
図４（ａ）に同期サービス４１０の概要を示す。同期サービスとは、本発明で定義した統括機器側で同期を取るための仕組みであり、ＣＯＲＢＡなどを利用して実装し、ネットワーク上のある機器が提供するソフトウェア機能を、ネットワーク経由で他の機器から呼び出すことができるソフトウェアサービスのひとつである。
ここで使用されるＣＯＲＢＡの概要は、ネットワーク上の分散環境でのオブジェクト間通信をサポートする衆知のミドルウェア技術の１種であって、ＯＭＧという標準化機構によって標準化が行われている。これと同じ様な分散オブジェクト環境向けのフレームワークにはマイクロソフト社のＤＣＯＭや、Ｊａｖａ  ＲＭＩなどが存在するが、これらは使用範囲が限定されているのに対して、ＣＯＲＢＡは環境や言語に依存しないより広範なオープン仕様である点に特徴があり、複数の環境や言語の混在した分散システムでも夫々のデータ形式の違いを吸収して、オブジェクトの位置透過性を実現するインターフェース、ＯＲＢ（Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ）等を介して相互に通信することが可能になっている。
こうしたＣＯＲＢＡ等を使用する統括機器側の同期サービスは、カウンタリセットメソッド４１１、セマフォサービスオブジェクト登録メソッド４１２、セマフォサービスオブジェクト登録解除メソッド４１３、リリース要求メソッド４１４などの各メソッドを備える。
なお、ここでセマフォとは、オブジェクト指向プログラムを用いるマルチタスクやマルチプロセッサ等が稼働する分散システム上で、例えば、複数のタスク間の動作の同期を取るためのフラグ、あるいはそれを処理するツール資源を共有して使用するタスク間での処理で、デッドロックを避けるために使用される情報を指す。
また、メソッドは、その分散システム上でオブジェクトの操作を行い、例えば、メソッドに渡されるデータを引数、メソッドを呼出す時に指定する引数を実引数などという。
【００１１】
図５は分散システムにおいて各機器の動作を同期させる処理のうち、初期化時および終了時に関する処理手順を示すフローチャートである。ここで同期サービスが統括機器側の処理ステップ（Ｓ３０１〜Ｓ３１６）であり、セマフォサービスは他の機器側の処理ステップ（Ｓ９２１〜Ｓ９３２）である。
先ず、同期させる機器が、いまＮ台だとすると、同期数Ｎｓｙｎｃを予め定めておく。統括機器では同期サービスを起動し（ステップ３０１、以下Ｓ３０１と略す）、カウンタをＮｓｙｎｃで初期化する（Ｓ３０２）。
その後、同期サービスに対する各機器からの要求を受け付ける状態になる（Ｓ３０３）。
同期サービスを利用するその他の各機器では、図４（ｂ）に示す自身のセマフォサービスを起動し（Ｓ９２１）、同期サービスのセマフォサービスオブジェクト登録メソッド４１２を呼び出して同期サービスへ自身のセマフォサービスを登録する（Ｓ９２２）。
このとき，統括機器側の処理では、機器の登録要求であるので（Ｓ９０４）、各機器のセマフォサービスオブジェクト参照を図６に示すようなオブジェクト参照登録テーブル等の記憶領域へ登録する（Ｓ９０５）。
オブジェクト参照登録テーブルには、各機器から引数として渡されたオブジェクト参照（Ｏｂｊｅｃｔ＿ｐｔｒＮ：Ｎはテーブル内での位置）を順次格納する。
機器の動作を同期させる処理が不要になったら、同期サービスの登録解除メソッド４１３を呼び出し（Ｓ９３１）、その後、自身のセマフォサービスを停止させて（Ｓ９３２）終了する。このとき，統括機器の処理では、機器の登録解除要求であるので（Ｓ９０６）、オブジェクト参照登録テーブルから登録されている機器を削除する。その他の動作としては、各機器からのリセット要求４１１の場合（Ｓ３１４）にはカウンタを初期化し、また何らかの異常等により処理を継続しない場合（Ｓ３１５）にはサービスを停止し（Ｓ３１６）、終了する。
図４（ｂ）にセマフォサービス４２０の概要を示す。
セマフォサービスとは、本発明で定義した、各機器側で同期を取るための仕組みであり、ＣＯＲＢＡなどを用いて実装し、起動確認メソッド４２１、時刻指定リリースメソッド４２２などの機能をネットワーク経由で他の機器から呼び出すことのできるソフトウェアサービスを提供する。
各機器は、統括機器への登録が済んだら、他の機器との同期動作をさせるための同期待ちを実行することができる。同期動作に入るまでは、各自で非同期な任意の動作を実行する。非同期動作から同期動作の実行に移った時の同期動作開始までの処理を図７のフローチャートを用いて説明する。
同期動作の実行をするまで、各機器側では非同期な動作を実行してもいいし（Ｓ３３２）、しなくてもよい。実行すべき処理が無ければ，セマフォリリース要求メソッド４１４を呼び出し（Ｓ３３３）、同期動作の開始までセマフォのリリース待ち状態に入る（Ｓ３３４）。
この時、統括機器側の処理では、リリース要求（Ｓ３０８）であるので、カウンタ変数が１減算される（Ｓ３０９）。
カウンタ変数が０であれば（Ｓ３１１）、参照テーブルに登録された、各機器のセマフォサービスオブジェクト参照等を順次取り出し、時刻指定リリースメソッド４２２を呼び出す（Ｓ３１２）。全ての機器に対してメソッド呼出しを繰り返す（Ｓ３１３）。
この時、各機器側の処理では、時刻指定リリースメソッド被呼出し（Ｓ３３５）になる。
指定された時刻を内部タイマにセットし（Ｓ３３６）、指定時刻待ちにはいる（Ｓ３３７）。
内部タイマにより、指定時刻に到達したら（Ｓ３３８）、セマフォのリリースを完了し（Ｓ３３９）、同期処理が開始される（Ｓ３４０）。なお、Ｓ３３５からＳ３３９の間の処理は、機器側で動作しているセマフォサービス内の処理であり、図２のクレーム対応図ではセマフォリリース部による処理に相当する。
図８は、統括機器をパーソナルコンピュータとして、各機器（ロボット）に対して同期させて実行する指令を送る手順により生じる通信を示すシーケンス図である。
各ロボットは、統括機器からセマフォがリリースされるのを待っている状態であり、統括機器が時刻指定リリースメソッドを呼び出す（Ｓ８１１）場合にのみ通信が行われる。
従って、図１４に示す従来方法に比べて、同期させて実行する指令を送る際の通信回数を減らすことで所要時間ｔ１を、ｔ２→ｔ１へ大幅に削減することができる。
【００１２】
統括機器がＳ３１２において各機器に対して指定する時刻を算出する処理はいくつか考えられるが，例えば、以下のステップで行う。
各機器から統括機器への同期サービスへの登録（Ｓ９２２）が行われた時に、統括機器から登録処理に引数として渡されたオブジェクト参照を用いて、起動確認メソッド４２１を呼び出す。このメソッド呼び出しの前後で時刻を取得し、その差分を一度のメソッド呼び出し所要時間（ｔｔＮ：Ｎはテーブル内での位置）としておき、オブジェクト参照テーブルに記憶する。各機器に対してこの処理が行われた後、各機器へのメソッド呼び出し所要時間（例ではｔｔ１〜ｔｔ３）を全て加算し、呼び出す直前の時刻に加算することで正確なリリース指定時刻を算出することができる。
【００１３】
分散システム内の各機器の時刻を同期させる手順はいくつか考えられるが、例えば、公知技術であるＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ）１５８８規格に沿って以下のステップで行う。ここで、時刻を合わせる基準となる機器をマスタ機器、マスタ機器に合わせる機器をスレーブ機器とする。
図９は、マスタ機器とスレーブ機器間の時刻の差を導出するシーケンス図である。図９に示すように、スレーブ機器６２０がマスタ機器６１０に対して同期をとるには、スレーブ機器は（Ａ）自分自身とマスタ機器のクロックの差分、および（Ｂ）ネットワーク伝播遅延という２つの情報が必要である。
（Ａ）自分自身とマスタ機器のクロックの差分は、Ｓｙｎｃメッセージ６１１およびＦｏｌｌｏｗ＿ｕｐメッセージ６１２によってタイムスタンプ６１４と６２２の差分により求めることができる。
また、（Ｂ）ネットワーク伝播遅延は、Ｄｅｌａｙ＿Ｒｅｑメッセージ６２１およびＤｅｌａｙ＿Ｒｅｓｐメッセージ６１３によるタイムスタンプ６２３と６１５の差分によって求めることができる。
これら補正値（Ａ）（Ｂ）の値によってマスタ機器とスレーブ機器の時刻の差がわかるので、スレーブ機器は自身の時刻を補正することで時刻の同期を取ることができる。
以上述べたように、時刻を指定して各機器内のセマフォを同時にリリースするので、分散した各機器からの要求で動作開始のタイミングを同期させることができるのである。
【実施例２】
【００１４】
次に、本発明の実施例２について図を参照して説明する。
図２に示すブロック図で前実施例と異なる構成は微小区間内同期処理部１３７を設けたことであり、その他の構成は同一である。
図１０は本発明の実施例２に係る同期処理装置の処理手順を示すフローチャートである。
図１０において、統括機器の同期サービスは図７と同一である。追加部分は、微小区間内同期処理部１３７の処理に関する部分であり、予め実行前に機器間で同期して実行させたい動作を、複数の微小時間区間に分割する。
微少時間区間は、図８の手順で示した通信所要時間ｔ１より十分に大きくないとオーバーヘッドが大きくなるため、通信所要時間ｔ１より長い時間を選び一定の値で分割する。
また、複数のロボット間で移動指令を同期させる場合には、運動ベクトルの向きが変化する点を基準にして、動作区間を微小区間に分割することもできる。
微小時間区間内では、機器側のセマフォリリース処理に示す手順で、同期動作を実施する。
【００１５】
同期動作の実行をするまで、各機器側では非同期な動作を実行してもいいし（Ｓ３３２）、しなくてもよい。
同期動作の微小時間区間に入るまでは，実行すべき処理が無ければ，セマフォリリース要求メソッド４１４を呼び出し（Ｓ３３３）、同期動作の開始までセマフォのリリース待ち状態に入る（Ｓ３３４）。この時、統括機器側の処理ではリリース要求（Ｓ３０８）であるので、カウンタ変数が１減算される（Ｓ３０９）。カウンタ変数が０であれば（Ｓ３１１）、テーブルに登録された、各機器のセマフォサービスオブジェクト参照等を順次取り出し、時刻指定リリースメソッド４２２を呼び出す（Ｓ３１２）。
全ての機器に対してメソッド呼出しを繰り返す（Ｓ３１３）。この時、各機器側の処理では、時刻指定リリースメソッド被呼び出し（Ｓ３３５）になる。指定された時刻を内部タイマにセットし（Ｓ３３６）、指定時刻待ちにはいる（Ｓ３３７）。内部タイマにより、指定時刻に到達したら（Ｓ３３８）、セマフォのリリースを完了し（Ｓ３３９）、微小区間内の同期動作が開始される（Ｓ３５１）。微小区間内の同期動作が終了（Ｓ３５２）し，残りの微小区間があれば（Ｓ３５３）、Ｓ３３３へ戻り微小区間を全て実行してしまうまで処理を繰り返す。
このような手順をとることで、複数の機器間で複雑な動作を同期して実行させることができるのである。
【実施例３】
【００１６】
次に、本発明の実施例３について図を参照して説明する。
図２に示すブロック図で実施例１、２と異なる構成は移動指令送出部１３８を設けたことである。
図１１は本発明の実施例３に係る装置の移動の動作を表すモデル図である。
図１１において、台形曲線の各部は、移動時間Ｔ、移動距離Ｓ、加速度ａ、減速度ｄ、移動速度Ｖを夫々表す。ロボットなどの機器における動作では、通常は移動速度Ｖを指定して目標位置への移動指令を与える。移動動作は，加速度ａで加速しながら移動し、指令速度Ｖに達したら速度Ｖを保ちながら移動し、目標位置に近づいたら減速度ｄで減速しながら移動し、目標位置で停止することで達成される。
【００１７】
図１２は図１１に示す装置の移動距離と移動時間と加速度と減速度より移動速度を求めるためのモデル図である。
図１２において、曲線は加速移動距離Ｓa、等速移動距離Ｓc、減速移動距離Ｓｄ、加速移動時間Ｔa、等速移動時間Ｔc、減速移動時間Ｔｄを表す。これらの間に次の関係が成り立つ。
【００１８】
Ｓ＝Ｓa＋Ｓc＋Ｓd      …（１）
ここで，右辺の各項は，
Ｓa＝Ｔa・Ｖ／２        …（２）
Ｓc＝Ｔc・Ｖ            …（３）
Ｓd＝Ｔd・Ｖ／２        …（４）
であるので，式（１）より次式を得る。
Ｓ＝Ｔa・Ｖ／２＋Ｔc・Ｖ＋Ｔd・Ｖ／２    …（５）
加速度および減速度の定義より，次式が成り立つ。
ａ＝Ｖ／Ｔa              …（６）
ｄ＝Ｖ／Ｔd              …（７）
上式より，ＴaおよびＴdを求める次式を得る。
Ｔa＝Ｖ／ａ              …（８）
Ｔd＝Ｖ／ｄ              …（９）
また，台形の面積を求める公式より，次式が成り立つ。
Ｓ＝（Ｔc＋Ｔ）・Ｖ／２  …（１０）
上式より, Ｔcを求める次式を得る。
Ｔc＝２Ｓ／Ｖ−Ｔ        …（１１）
したがって，式（８）、式（９）、式（１１）を式（５）に代入すると、次式に変形できる。
【００１９】
【数１】
2008146149.tif 000003
【００２０】
このように、移動距離と移動時間と加速度と減速度より移動速度を求めることができるので、通常の移動指令に与える目標位置の代わりに移動時間を指定しておき，移動速度を計算により求めることで，開始時刻からの相対時間である終了時刻を指定することができる。開始時刻と終了時刻が複数の機器間で同期していれば、複数の機器間で動作全体を同期させることができるのである。
【産業上の利用可能性】
【００２１】
時刻を指定して各機器内のセマフォを同時にリリースするという手順をとるため家庭向けロボットだけではなく、産業用ロボットにおける動作開始の同期方法にも適用できる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施例１に係る分散システムの同期処理装置の構成図である。
【図２】図１に示す分散システムの同期処理装置のブロック図である。
【図３】図１に示す分散システムをロボットで構成した構成図てある。
【図４】図２に示す同期処理装置の同期サービス及びセマフォサービスのメソッドの概要を示す図である。図２に示す同期処理装置の処理手順を示すフローチャートである。
【図５】図２に示す同期処理装置の初期化時、終了時の処理手順を示すフローチャードである。
【図６】図４に示す同期サービスのオブジェクト参照登録テーブルを示す図である。
【図７】図２に示す同期処理装置の処理手順を示すフローチャートである。
【図８】図３に示すシステムの通信手順を示すシーケンス図である。
【図９】図７に示す時刻同期処理におけるマスタ／スレーブ機器間の時刻差導出のシーケンス図である。
【図１０】本発明の実施例２に係る分散システムの同期処理装置の処理手順を示すフローチャートである。
【図１１】本発明の実施例３に係るロボット等の移動時の台形特性を示すモデル図である。
【図１２】図１１に示す特性において移動速度を求める際のモデル図である。
【図１３】従来のロボットシステムの構成図である。
【図１４】図１３に示す従来の分散システムの通信手順を示すシーケンス図である。
【符号の説明】
【００２３】
１００、２００  分散システム
１１１  統括機器
１１２、１１３  機器
１２０、２５０、７０５  ネットワーク
１２１  通信媒体
１３０  同期登録処理部
１３１  セマフォリリース要求受付部
１３２  カウンタ変数管理部
１３３  時刻指定リリースメソッド呼出部
１３４  同期登録要求部
１３５  セマフォリリース要求メソッド呼出部
１３６  セマフォリリース部
１３７  微小区間内同期処理部
１３８  移動指令送出部
２１０、２２０、２３０、７０１、７０２、７０３  ロボット
２１２  無線通信部
２１３  カメラ
２１４  ロボットアーム
２１５  ロボットハンド
２１６  移動手段
２４０、７０６  パーソナルコンピュータ
４１０  同期サービス
４１１  カウンタリセットメソッド
４１２  セマフォサービスオブジェクト登録メソッド
４１３  セマフォサービスオブジェクト登録解除メソッド
４１４  リリース要求メソッド
４２０  セマフォサービス
４２１  起動確認メソッド
４２２  時刻指定リリースメソッド
７０４  アクセスポイント
【図１】
2008146149.tif 000004
【図２】
2008146149.tif 000005
【図３】
2008146149.tif 000006
【図４】
2008146149.tif 000007
【図５】
2008146149.tif 000008
【図６】
2008146149.tif 000009
【図７】
2008146149.tif 000010
【図８】
2008146149.tif 000011
【図９】
2008146149.tif 000012
【図１０】
2008146149.tif 000013
【図１１】
2008146149.tif 000014
【図１２】
2008146149.tif 000015
【図１３】
2008146149.tif 000016
【図１４】
2008146149.tif 000017