JP2008146149A - 分散システムの同期処理装置および同期処理方法 - Google Patents

分散システムの同期処理装置および同期処理方法 Download PDF

Info

Publication number
JP2008146149A
JP2008146149A JP2006329462A JP2006329462A JP2008146149A JP 2008146149 A JP2008146149 A JP 2008146149A JP 2006329462 A JP2006329462 A JP 2006329462A JP 2006329462 A JP2006329462 A JP 2006329462A JP 2008146149 A JP2008146149 A JP 2008146149A
Authority
JP
Japan
Prior art keywords
time
semaphore
registration
distributed system
release
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006329462A
Other languages
English (en)
Inventor
Hideki Yamamoto
英樹 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2006329462A priority Critical patent/JP2008146149A/ja
Publication of JP2008146149A publication Critical patent/JP2008146149A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Manipulator (AREA)
  • Programmable Controllers (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】複数機器による分散システムにおいて行動の開始を同期させる場合に、指令から開始までの時間を短縮するとともに、各機器が自律的に協調動作するプログラムを各機器内のプログラムに記述することができるようにする。
【解決手段】通信手段121で相互に接続された機器の間で協調動作を行う分散システムにおける同期方法において、各機器に内蔵の時計を同期させ、分散システム100内のうちいずれかの機器111を統括機器として統括機器にカウンタ変数を持ち、各機器112、113が機器内に持つセマフォの取得・開放を統括機器のカウンタ変数により管理し、統括機器のカウンタ変数が0になった時点で各機器のセマフォを時刻指定付で開放する、ものである。
【選択図】図1

Description

本発明は、通信手段で相互に接続された機器の間で協調動作を行う分散システムにおける同期処理に関する。
日常生活において人との関わりの中でも作業をすることができる自律型のロボットの研究・開発が広くなされている。このようなロボットは、与えられた仕事を受けて決まった手順で動作するだけではなく、周囲の状況に応じて作業内容が追加・変更されるようなことがあっても、柔軟かつ即座に対応できる必要がある。このため自律型のロボットを複数台設置し、与えられた指示の内容に応じて複数のロボットが役割を分担したり、または同一作業を複数のロボットが協調的に作業したりといったことを効率的に行う仕組みが種々考案されている。そのような仕組みを実現するためには、複数のロボットの動作の開始を同期させることが必要になっている。
複数機器による分散システムにおいて行動の開始を同期させる従来例を示す(例えば、特許文献1参照)。
図13は従来のロボットシステムの構成図であり、図13の例では、各機器は、ユーザからの指令や周囲の環境に応じて自主的に行動を決定する自立型のロボット3台のロボット701〜703である。
これらのロボットの協調行動の開始タイミングを同期させるには、パーソナルコンピュータ706は、ネットワーク705およびアクセスポイント704を介して、協調行動の開始タイミングを合わせるためのコマンドを含む同期パケットを、UDP(User Datagram Protocol)で、各ロボットにブロードキャストする。パーソナルコンピュータ706はまた、同期パケットの受信を問い合わせるための通信パケットを、TCP(Transmission Control Protocol)で、各ロボットにユニキャストする。
このように協調行動の開始タイミングを合わせるために必要な同期パケットを、UDPで各ロボットにブロードキャストし、各ロボット701〜703が、その同期パケットを同時に受信することができるようにしたので、各ロボットの協調行動の開始タイミングを合わせることができる。
図14は、この間の実際の通信手順を、図17(特許文献1の図17参照)のフローチャートの内容に基づいて明確に示すためにシーケンス図にして示したものである。
図14には、パーソナルコンピュータ706が2台のロボット701、702に対して同期パケットの送信(S711)、同期パケット受信の問い合わせ(S712、S713)、協調行動開始の要求(S714、S715)に係る通信の流れを時間軸に対して表し、所要時間をt2としている。
特開2004−304714号公報(第5−7頁、図2)
従来の方法では、以上のように、同期させて実行する指令を送る際に、(1)同期パケットの送信、(2)同期パケット受信の問い合わせ、(3)協調行動開始の要求といった3段階の手順をとっていたが、パーソナルコンピュータ706からロボット1への指令において、同期パケットの送信(711)から協調行動開始要求(714)までに要した所要時間t2は、3度の通信にかかる時間に相当する。パーソナルコンピュータから各々のロボットに対して3回の通信が必要となり、特に(2)同期パケットの送信および(3)協調行動開始の要求は各ロボットに対して個別に行う必要があったため、ロボットの台数が増えた場合に、パーソナルコンピュータが全てのロボットに指令を送ってから各ロボットが実際に同期した動作を開始するまでに必要な時間が長くなるという問題があった。
また、各ロボットの動作プログラムを作成するプログラム作成者から見ると、複数のロボットに協調動作をさせるにはパーソナルコンピュータや人間などの指令をする主体が必要となり、自律して動作する機器(ロボット)であっても自律的に協調するようなプログラムを機器自身に記述することが困難であった。
また、開始時刻だけ合わせても動作全体が同期しないという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、指令から開始までの時間を短縮するとともに、各機器が自律的に協調動作するプログラムを各機器内のプログラムに記述することができる分散システムの同期処理装置および同期処理方法を提供することを目的とする。
上記問題を解決するため、本発明は、次のようにしたのである。
請求項1記載の発明は、分散システムの同期処理装置に係り、通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理装置において、前記各機器に内蔵する時計を同期させ、
前記分散システム内のいずれかの機器を統括機器として、該統括機器側の同期処理装置は、
同期させる機器の数Nを決めてカウンタを該数Nで初期化し、前記各機器からの同期サービスへの登録要求を受付け前記各機器から引数として渡されたセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、
前記各機器からの登録解除要求によって前記オブジェクト参照登録テーブルの前記各機器の登録を削除する同期登録処理部と、
登録受付終了後に、前記各機器からのセマフォリリース要求メソッド呼出しに対しセマフォリリース要求かを判断するセマフォリリース要求受付部と、
前記各機器からの要求がセマフォリリース要求の場合は、要求各機器毎に1つ前記カウンタの変数を減じて前記カウンタの変数が0になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出すカウンタ変数管理部と、前記取出したセマフォサービスオブジェクト参照により前記各機器の時刻指定リリースメソッドを呼出し、全ての機器に繰返し呼出しを行う時刻指定リリースメソッド呼出部と、 を備え、前記統括機器以外の前記各機器側の同期処理装置は、前記統括機器の同期サービスへの登録要求をセマフォサービスオブジェクト登録メソッドを呼出して行い、同期処理が不要になったら前記統括機器のセマフォサービスオブジェクト登録解除メソッドを呼出し登録解除要求を行う同期登録要求部と、
登録処理終了後に、前記統括機器のセマフォリリース要求メソッドを呼出しセマフォリリース待ち状態に入るセマフォリリース要求メソッド呼出部と、
前記統括機器からの時刻指定リリースメソッド呼出に応じて指定された時刻を内部タイマにセットし、該指定時刻に到達したらセマフォリリースを完了して同期処理を開始するセマフォリリース部と、を備えたことを特徴としている。
また、請求項2記載の発明は、請求項1記載の分散システムの同期処理装置において、前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、1度のメソッド呼出し所要時間として記憶していることを特徴としている。
また、請求項3記載の発明は、請求項1記載の分散システムの同期処理装置において、前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数管理部のカウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソッドと、セマフォリリース要求時に使用されるリリース要求メソッドと、を有することを特徴としている。
また、請求項4記載の発明は、請求項1記載の分散システムの同期処理装置において、前記統括機器以外の前記各機器は、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドと、を有することを特徴としている。
また、請求項5記載の発明は、請求項1記載の分散システムの同期処理装置において、前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照テーブルに記憶する前記各機器の1度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴としている。
また、請求項6記載の発明は、請求項1記載の分散システムの同期処理装置において、前記分散システム内の前記各機器間の時間同期は、2機器間では該2機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴としている。
また、請求項7記載の発明は、請求項1記載の分散システムの同期処理装置において、予め単一の動作を微小時間区間に分割し、微小区間毎の開始時刻を同期させ、微小区間の個数分繰返して動作する微小区間内同期処理部を備えたことを特徴としている。
また、請求項8記載の発明は、請求項1記載の分散システムの同期処理装置において、動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与える移動指令送出部を備えたことを特徴としている。
また、請求項9記載の発明は、分散システムの同期処理方法に係り、通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理方法において、前記各機器に内蔵の時計を同期させ、
前記分散システム内のいずれかの機器を統括機器として、該統括機器は、同期させる機器の数Nを決めてカウンタを該数Nで初期化し、前記各機器からの同期サービスへの登録要求を受付け引数として渡されるセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、前記各機器からの登録解除要求により前記オブジェクト参照登録テーブルの登録を削除し、登録受付終了後に前記各機器からのセマフォリリース要求により要求各機器毎に1つ前記カウンタの変数を減じて前記カウンタの変数が0になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出し、前記各機器の時刻指定リリースメソッドを呼出し、前記セマフォを時刻指定付で開放するという手順で同期処理を行うことを特徴としている。
また、請求項10記載の発明は、請求項9記載の分散システムの同期処理方法において、前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照情報を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、1度のメソッド呼出し所要時間として記憶していることを特徴としている。
請求項11記載の発明は、請求項9記載の分散システムの同期処理方法において、前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソットと、セマフォリリース要求時に使用されるリリース要求メソッドと、を用いて同期サービスを行うことを特徴としている。
また、請求項12記載の発明は、請求項9記載の分散システムの同期処理方法において、前記統括機器以外の前記各機器は、セマフォサービスを行うメソッドとして、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドとを用いてセマフォサービスを行うことを特徴としている。
また、請求項13記載の発明は、請求項9記載の分散システムの同期処理方法において、前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照登録テーブルに記憶する前記各機器の1度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴としている。
また、請求項14記載の発明は、請求項9記載の分散システムの同期処理方法において、前記分散システム内の前記各機器間の時間同期は、2機器間では該2機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴としている。
また、請求項15記載の発明は、請求項9記載の分散システムの同期処理方法において、前記協調動作は,予め単一の動作を微小時間区間に分割し,微小区間毎の開始時刻を同期させ、微小区間の個数分繰り返して動作することを特徴としている。
また、請求項16記載の発明は、請求項9記載の分散システムの同期処理方法において、前記協調動作は,前記協調動作における動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与えることを特徴としている。
本発明によると、協調動作の開始を従来より短い時間で同期させることが可能になり、各機器内に自律的に協調する動作プログラムを記述することが可能になるという効果がある。
また、開始時刻だけではなく、開始時刻と終了時刻が合っているので、動作全体が正確に同期できる効果がある。
以下、本発明の具体的実施例について、図に基づいて説明する。
図1は、本発明の分散システムの構成を示す概念図である。
図において、111、112、113は機器であり、各々通信媒体121によってネットワーク120に接続しており相互に通信が可能な分散システム100を構成している。
図2は、図1に示す分散システムで、機器の1つ(例えば機器111)を統括機器とし(あるいは、別のパーソナルコンピュータ等を統括機器とすることもできる)、他を分散機器(112、113等)として分散システムを構成する装置発明とする場合のクレーム対応図であり、統括機器111と機器112、113の各動作ブロックを図示している。この各ブロックは全て後述の図4に示す各メソッドと、図5、7、10、11に示すフローチャートの処理ステップ、その他に対応している。
統括機器111は、ネットワーク120を介してCORBA(Common Object Request Broker Architecture:分散環境でのオブジェクト間通信をサポートするミドルウェア)等の分散環境で各機器112、113と通信可能に構成されている。
統括機器111の同期登録処理部130は、最初に、機器112の同期登録要求部134から登録要求があると、分散システムへの機器登録又は解除手続きを行う。登録手続き終了後、機器112側のセマフォリリース要求メソッド呼出部135からリリース要求が入るとセマフォリリース要求受付部131は、セマフォリリース要求を受付け、カウンタ変数管理部132は登録済みの機器に対応するカウンタ変数を管理し監視して、受付が完了したら、時刻指定リリースメソッド呼出部133より、各機器112、113の時刻指定リリースメソッド呼出しを行う。呼ばれた機器112、113側では、セマフォリリース部136が、内部タイマに指定時刻をセットし指定時刻に到達したら同期動作を開始する。
次の図3は本発明の同期処理をロボットによる分散システムのロボット間の同期に対して適用する場合の構成を示す概念図である。
図3において210、220、230はロボットであり、各々無線通信部212、カメラ213、ロボットアーム214、ロボットハンド215、移動手段216を備えている。240はパーソナルコンピュータなどの統括機器である。これらはネットワーク250に接続しており、相互に通信が可能となっている。
また、ロボット210は自力で移動するための移動手段216等と、自分の位置を検出する手段とを備えている。移動手段216は電気駆動の車輪などであり、自分の位置を検出する手段とはカメラ213や図示しないグローバルポジショニングシステム(GPS)のことである。無線通信部212を用いて、他のロボット達とネットワーク250を媒体としてIP(Internet Protocol)通信を行うことができる。また、人間の腕と手を模倣して作られた、複数の可動軸を持つロボットアーム214およびその先端に位置するロボットハンド215により、品物を把持・運搬することができる。
2台のロボットで1つの荷物を運搬する場合,1)荷物に近寄る、2)荷物を持つ、3)荷物を持ったまま移動するという手順で行う。このとき、各々の手順を開始する直前で2台のロボットが動作の開始を同期させることが必要になる。
次に本発明の処理内容を説明する。
まず、分散システムを構成する各機器の中から、統括機器を任意の手段で選出する。
図1、図2等における分散システム100では機器111〜113のうち、いずれかを統括機器(例えば、統括機器111等)として、図3における分散システム200では、パーソナルコンピュータ240を統括機器としている。いずれにおいても、統括機器では、同期サービスを起動する。
図4(a)に同期サービス410の概要を示す。同期サービスとは、本発明で定義した統括機器側で同期を取るための仕組みであり、CORBAなどを利用して実装し、ネットワーク上のある機器が提供するソフトウェア機能を、ネットワーク経由で他の機器から呼び出すことができるソフトウェアサービスのひとつである。
ここで使用されるCORBAの概要は、ネットワーク上の分散環境でのオブジェクト間通信をサポートする衆知のミドルウェア技術の1種であって、OMGという標準化機構によって標準化が行われている。これと同じ様な分散オブジェクト環境向けのフレームワークにはマイクロソフト社のDCOMや、Java RMIなどが存在するが、これらは使用範囲が限定されているのに対して、CORBAは環境や言語に依存しないより広範なオープン仕様である点に特徴があり、複数の環境や言語の混在した分散システムでも夫々のデータ形式の違いを吸収して、オブジェクトの位置透過性を実現するインターフェース、ORB(Object Request Broker)等を介して相互に通信することが可能になっている。
こうしたCORBA等を使用する統括機器側の同期サービスは、カウンタリセットメソッド411、セマフォサービスオブジェクト登録メソッド412、セマフォサービスオブジェクト登録解除メソッド413、リリース要求メソッド414などの各メソッドを備える。
なお、ここでセマフォとは、オブジェクト指向プログラムを用いるマルチタスクやマルチプロセッサ等が稼働する分散システム上で、例えば、複数のタスク間の動作の同期を取るためのフラグ、あるいはそれを処理するツール資源を共有して使用するタスク間での処理で、デッドロックを避けるために使用される情報を指す。
また、メソッドは、その分散システム上でオブジェクトの操作を行い、例えば、メソッドに渡されるデータを引数、メソッドを呼出す時に指定する引数を実引数などという。
図5は分散システムにおいて各機器の動作を同期させる処理のうち、初期化時および終了時に関する処理手順を示すフローチャートである。ここで同期サービスが統括機器側の処理ステップ(S301〜S316)であり、セマフォサービスは他の機器側の処理ステップ(S921〜S932)である。
先ず、同期させる機器が、いまN台だとすると、同期数Nsyncを予め定めておく。統括機器では同期サービスを起動し(ステップ301、以下S301と略す)、カウンタをNsyncで初期化する(S302)。
その後、同期サービスに対する各機器からの要求を受け付ける状態になる(S303)。
同期サービスを利用するその他の各機器では、図4(b)に示す自身のセマフォサービスを起動し(S921)、同期サービスのセマフォサービスオブジェクト登録メソッド412を呼び出して同期サービスへ自身のセマフォサービスを登録する(S922)。
このとき,統括機器側の処理では、機器の登録要求であるので(S904)、各機器のセマフォサービスオブジェクト参照を図6に示すようなオブジェクト参照登録テーブル等の記憶領域へ登録する(S905)。
オブジェクト参照登録テーブルには、各機器から引数として渡されたオブジェクト参照(Object_ptrN:Nはテーブル内での位置)を順次格納する。
機器の動作を同期させる処理が不要になったら、同期サービスの登録解除メソッド413を呼び出し(S931)、その後、自身のセマフォサービスを停止させて(S932)終了する。このとき,統括機器の処理では、機器の登録解除要求であるので(S906)、オブジェクト参照登録テーブルから登録されている機器を削除する。その他の動作としては、各機器からのリセット要求411の場合(S314)にはカウンタを初期化し、また何らかの異常等により処理を継続しない場合(S315)にはサービスを停止し(S316)、終了する。
図4(b)にセマフォサービス420の概要を示す。
セマフォサービスとは、本発明で定義した、各機器側で同期を取るための仕組みであり、CORBAなどを用いて実装し、起動確認メソッド421、時刻指定リリースメソッド422などの機能をネットワーク経由で他の機器から呼び出すことのできるソフトウェアサービスを提供する。
各機器は、統括機器への登録が済んだら、他の機器との同期動作をさせるための同期待ちを実行することができる。同期動作に入るまでは、各自で非同期な任意の動作を実行する。非同期動作から同期動作の実行に移った時の同期動作開始までの処理を図7のフローチャートを用いて説明する。
同期動作の実行をするまで、各機器側では非同期な動作を実行してもいいし(S332)、しなくてもよい。実行すべき処理が無ければ,セマフォリリース要求メソッド414を呼び出し(S333)、同期動作の開始までセマフォのリリース待ち状態に入る(S334)。
この時、統括機器側の処理では、リリース要求(S308)であるので、カウンタ変数が1減算される(S309)。
カウンタ変数が0であれば(S311)、参照テーブルに登録された、各機器のセマフォサービスオブジェクト参照等を順次取り出し、時刻指定リリースメソッド422を呼び出す(S312)。全ての機器に対してメソッド呼出しを繰り返す(S313)。
この時、各機器側の処理では、時刻指定リリースメソッド被呼出し(S335)になる。
指定された時刻を内部タイマにセットし(S336)、指定時刻待ちにはいる(S337)。
内部タイマにより、指定時刻に到達したら(S338)、セマフォのリリースを完了し(S339)、同期処理が開始される(S340)。なお、S335からS339の間の処理は、機器側で動作しているセマフォサービス内の処理であり、図2のクレーム対応図ではセマフォリリース部による処理に相当する。
図8は、統括機器をパーソナルコンピュータとして、各機器(ロボット)に対して同期させて実行する指令を送る手順により生じる通信を示すシーケンス図である。
各ロボットは、統括機器からセマフォがリリースされるのを待っている状態であり、統括機器が時刻指定リリースメソッドを呼び出す(S811)場合にのみ通信が行われる。
従って、図14に示す従来方法に比べて、同期させて実行する指令を送る際の通信回数を減らすことで所要時間t1を、t2→t1へ大幅に削減することができる。
統括機器がS312において各機器に対して指定する時刻を算出する処理はいくつか考えられるが,例えば、以下のステップで行う。
各機器から統括機器への同期サービスへの登録(S922)が行われた時に、統括機器から登録処理に引数として渡されたオブジェクト参照を用いて、起動確認メソッド421を呼び出す。このメソッド呼び出しの前後で時刻を取得し、その差分を一度のメソッド呼び出し所要時間(ttN:Nはテーブル内での位置)としておき、オブジェクト参照テーブルに記憶する。各機器に対してこの処理が行われた後、各機器へのメソッド呼び出し所要時間(例ではtt1〜tt3)を全て加算し、呼び出す直前の時刻に加算することで正確なリリース指定時刻を算出することができる。
分散システム内の各機器の時刻を同期させる手順はいくつか考えられるが、例えば、公知技術であるIEEE(Institute of Electrical and Electronic Engineers)1588規格に沿って以下のステップで行う。ここで、時刻を合わせる基準となる機器をマスタ機器、マスタ機器に合わせる機器をスレーブ機器とする。
図9は、マスタ機器とスレーブ機器間の時刻の差を導出するシーケンス図である。図9に示すように、スレーブ機器620がマスタ機器610に対して同期をとるには、スレーブ機器は(A)自分自身とマスタ機器のクロックの差分、および(B)ネットワーク伝播遅延という2つの情報が必要である。
(A)自分自身とマスタ機器のクロックの差分は、Syncメッセージ611およびFollow_upメッセージ612によってタイムスタンプ614と622の差分により求めることができる。
また、(B)ネットワーク伝播遅延は、Delay_Reqメッセージ621およびDelay_Respメッセージ613によるタイムスタンプ623と615の差分によって求めることができる。
これら補正値(A)(B)の値によってマスタ機器とスレーブ機器の時刻の差がわかるので、スレーブ機器は自身の時刻を補正することで時刻の同期を取ることができる。
以上述べたように、時刻を指定して各機器内のセマフォを同時にリリースするので、分散した各機器からの要求で動作開始のタイミングを同期させることができるのである。
次に、本発明の実施例2について図を参照して説明する。
図2に示すブロック図で前実施例と異なる構成は微小区間内同期処理部137を設けたことであり、その他の構成は同一である。
図10は本発明の実施例2に係る同期処理装置の処理手順を示すフローチャートである。
図10において、統括機器の同期サービスは図7と同一である。追加部分は、微小区間内同期処理部137の処理に関する部分であり、予め実行前に機器間で同期して実行させたい動作を、複数の微小時間区間に分割する。
微少時間区間は、図8の手順で示した通信所要時間t1より十分に大きくないとオーバーヘッドが大きくなるため、通信所要時間t1より長い時間を選び一定の値で分割する。
また、複数のロボット間で移動指令を同期させる場合には、運動ベクトルの向きが変化する点を基準にして、動作区間を微小区間に分割することもできる。
微小時間区間内では、機器側のセマフォリリース処理に示す手順で、同期動作を実施する。
同期動作の実行をするまで、各機器側では非同期な動作を実行してもいいし(S332)、しなくてもよい。
同期動作の微小時間区間に入るまでは,実行すべき処理が無ければ,セマフォリリース要求メソッド414を呼び出し(S333)、同期動作の開始までセマフォのリリース待ち状態に入る(S334)。この時、統括機器側の処理ではリリース要求(S308)であるので、カウンタ変数が1減算される(S309)。カウンタ変数が0であれば(S311)、テーブルに登録された、各機器のセマフォサービスオブジェクト参照等を順次取り出し、時刻指定リリースメソッド422を呼び出す(S312)。
全ての機器に対してメソッド呼出しを繰り返す(S313)。この時、各機器側の処理では、時刻指定リリースメソッド被呼び出し(S335)になる。指定された時刻を内部タイマにセットし(S336)、指定時刻待ちにはいる(S337)。内部タイマにより、指定時刻に到達したら(S338)、セマフォのリリースを完了し(S339)、微小区間内の同期動作が開始される(S351)。微小区間内の同期動作が終了(S352)し,残りの微小区間があれば(S353)、S333へ戻り微小区間を全て実行してしまうまで処理を繰り返す。
このような手順をとることで、複数の機器間で複雑な動作を同期して実行させることができるのである。
次に、本発明の実施例3について図を参照して説明する。
図2に示すブロック図で実施例1、2と異なる構成は移動指令送出部138を設けたことである。
図11は本発明の実施例3に係る装置の移動の動作を表すモデル図である。
図11において、台形曲線の各部は、移動時間T、移動距離S、加速度a、減速度d、移動速度Vを夫々表す。ロボットなどの機器における動作では、通常は移動速度Vを指定して目標位置への移動指令を与える。移動動作は,加速度aで加速しながら移動し、指令速度Vに達したら速度Vを保ちながら移動し、目標位置に近づいたら減速度dで減速しながら移動し、目標位置で停止することで達成される。
図12は図11に示す装置の移動距離と移動時間と加速度と減速度より移動速度を求めるためのモデル図である。
図12において、曲線は加速移動距離Sa、等速移動距離Sc、減速移動距離Sd、加速移動時間Ta、等速移動時間Tc、減速移動時間Tdを表す。これらの間に次の関係が成り立つ。
S=Sa+Sc+Sd …(1)
ここで,右辺の各項は,
Sa=Ta・V/2 …(2)
Sc=Tc・V …(3)
Sd=Td・V/2 …(4)
であるので,式(1)より次式を得る。
S=Ta・V/2+Tc・V+Td・V/2 …(5)
加速度および減速度の定義より,次式が成り立つ。
a=V/Ta …(6)
d=V/Td …(7)
上式より,TaおよびTdを求める次式を得る。
Ta=V/a …(8)
Td=V/d …(9)
また,台形の面積を求める公式より,次式が成り立つ。
S=(Tc+T)・V/2 …(10)
上式より, Tcを求める次式を得る。
Tc=2S/V−T …(11)
したがって,式(8)、式(9)、式(11)を式(5)に代入すると、次式に変形できる。
Figure 2008146149
このように、移動距離と移動時間と加速度と減速度より移動速度を求めることができるので、通常の移動指令に与える目標位置の代わりに移動時間を指定しておき,移動速度を計算により求めることで,開始時刻からの相対時間である終了時刻を指定することができる。開始時刻と終了時刻が複数の機器間で同期していれば、複数の機器間で動作全体を同期させることができるのである。
時刻を指定して各機器内のセマフォを同時にリリースするという手順をとるため家庭向けロボットだけではなく、産業用ロボットにおける動作開始の同期方法にも適用できる。
本発明の実施例1に係る分散システムの同期処理装置の構成図である。 図1に示す分散システムの同期処理装置のブロック図である。 図1に示す分散システムをロボットで構成した構成図てある。 図2に示す同期処理装置の同期サービス及びセマフォサービスのメソッドの概要を示す図である。図2に示す同期処理装置の処理手順を示すフローチャートである。 図2に示す同期処理装置の初期化時、終了時の処理手順を示すフローチャードである。 図4に示す同期サービスのオブジェクト参照登録テーブルを示す図である。 図2に示す同期処理装置の処理手順を示すフローチャートである。 図3に示すシステムの通信手順を示すシーケンス図である。 図7に示す時刻同期処理におけるマスタ/スレーブ機器間の時刻差導出のシーケンス図である。 本発明の実施例2に係る分散システムの同期処理装置の処理手順を示すフローチャートである。 本発明の実施例3に係るロボット等の移動時の台形特性を示すモデル図である。 図11に示す特性において移動速度を求める際のモデル図である。 従来のロボットシステムの構成図である。 図13に示す従来の分散システムの通信手順を示すシーケンス図である。
符号の説明
100、200 分散システム
111 統括機器
112、113 機器
120、250、705 ネットワーク
121 通信媒体
130 同期登録処理部
131 セマフォリリース要求受付部
132 カウンタ変数管理部
133 時刻指定リリースメソッド呼出部
134 同期登録要求部
135 セマフォリリース要求メソッド呼出部
136 セマフォリリース部
137 微小区間内同期処理部
138 移動指令送出部
210、220、230、701、702、703 ロボット
212 無線通信部
213 カメラ
214 ロボットアーム
215 ロボットハンド
216 移動手段
240、706 パーソナルコンピュータ
410 同期サービス
411 カウンタリセットメソッド
412 セマフォサービスオブジェクト登録メソッド
413 セマフォサービスオブジェクト登録解除メソッド
414 リリース要求メソッド
420 セマフォサービス
421 起動確認メソッド
422 時刻指定リリースメソッド
704 アクセスポイント

Claims (16)

  1. 通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理装置において、
    前記各機器に内蔵する時計を同期させ、
    前記分散システム内のいずれかの機器を統括機器として、該統括機器側の同期処理装置は、
    同期させる機器の数Nを決めてカウンタを該数Nで初期化し、前記各機器からの同期サービスへの登録要求を受付け前記各機器から引数として渡されたセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、
    前記各機器からの登録解除要求によって前記オブジェクト参照登録テーブルの前記各機器の登録を削除する同期登録処理部と、
    登録受付終了後に、前記各機器からのセマフォリリース要求メソッド呼出しに対しセマフォリリース要求かを判断するセマフォリリース要求受付部と、
    前記各機器からの要求がセマフォリリース要求の場合は、要求各機器毎に1つ前記カウンタの変数を減じて前記カウンタの変数が0になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出すカウンタ変数管理部と、
    前記取出したセマフォサービスオブジェクト参照により前記各機器の時刻指定リリースメソッドを呼出し、全ての機器に繰返し呼出しを行う時刻指定リリースメソッド呼出部と、を備え、
    前記統括機器以外の前記各機器側の同期処理装置は、前記統括機器の同期サービスへの登録要求をセマフォサービスオブジェクト登録メソッドを呼出して行い、同期処理が不要になったら前記統括機器のセマフォサービスオブジェクト登録解除メソッドを呼出し登録解除要求を行う同期登録要求部と、
    登録処理終了後に、前記統括機器のセマフォリリース要求メソッドを呼出しセマフォリリース待ち状態に入るセマフォリリース要求メソッド呼出部と、
    前記統括機器からの時刻指定リリースメソッド呼出に応じて指定された時刻を内部タイマにセットし、該指定時刻に到達したらセマフォリリースを完了して同期処理を開始するセマフォリリース部と、を備えたことを特徴とする分散システムの同期処理装置。
  2. 前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照情報を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、1度のメソッド呼出し所要時間として記憶していることを特徴とする請求項1記載の分散システムの同期処理装置。
  3. 前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数管理部のカウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソッドと、セマフォリリース要求時に使用されるリリース要求メソッドと、を有することを特徴とする請求項1記載の分散システムの同期処理装置。
  4. 前記統括機器以外の前記各機器は、セマフォサービスを行うメソッドとして、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドと、を有することを特徴とする請求項1記載の分散システムの同期処理装置。
  5. 前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照テーブルに記憶する前記各機器の1度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴とする請求項1記載の分散システムの同期処理装置、
  6. 前記分散システム内の前記各機器間の時間同期は、2機器間では該2機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴とする請求項1記載の分散システムの同期処理装置。
  7. 予め単一の動作を微小時間区間に分割し、微小区間毎の開始時刻を同期させ、微小区間の個数分繰返して動作する微小区間内同期処理部を備えたことを特徴とする請求項1記載の分散システムの同期処理装置。
  8. 動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与える移動指令送出部を備えたことを特徴とする請求項1記載の分散システムの同期処理装置。
  9. 通信手段で相互に接続された複数の機器間で協調動作を行う分散システムの同期処理方法において、
    前記各機器に内蔵の時計を同期させ、
    前記分散システム内のいずれかの機器を統括機器として、該統括機器は、同期させる機器の数Nを決めてカウンタを該数Nで初期化し、前記各機器からの同期サービスへの登録要求を受付け引数として渡されるセマフォサービスオブジェクト参照をオブジェクト参照登録テーブルに登録し、前記各機器からの登録解除要求により前記オブジェクト参照登録テーブルの登録を削除し、登録受付終了後に前記各機器からのセマフォリリース要求により要求各機器毎に1つ前記カウンタの変数を減じて前記カウンタの変数が0になったら前記オブジェクト参照登録テーブルに登録されているセマフォサービスオブジェクト参照を順次取出し、前記各機器の時刻指定リリースメソッドを呼出し、前記セマフォを時刻指定付で開放するという手順で同期処理を行うことを特徴とする分散システムの同期処理方法。
  10. 前記オブジェクト参照登録テーブルは、前記テーブル内の位置情報を含む、前記各機器より引数として渡されたオブジェクト参照情報と、前記オブジェクト参照情報を用いた起動確認メソッド呼出しの前後で取得した差分時刻を、1度のメソッド呼出し所要時間として記憶していることを特徴とする請求項9記載の分散システムの同期処理方法。
  11. 前記統括機器は、同期サービスを行うメソッドとして、前記カウンタ変数の管理に使用されるカウンタリセットメソッドと、前記各機器が要求するセマフォサービス登録および解除要求に用いるセマフォサービスオブジェクト登録メソッドおよびセマフォサービスオブジェクト登録解除メソッドと、セマフォリリース要求時に使用されるリリース要求メソッドと、を用いて同期サービスを行うことを特徴とする請求項9記載の分散システムの同期処理方法。
  12. 前記統括機器以外の前記各機器は、セマフォサービスを行うメソッドとして、前記各機器の同期動作の起動を確認する起動確認メソッドと、内部タイマーを到達時間にセットして同期処理を行うための時刻指定リリースメソッドと、を用いてセマフォサービスを行うことを特徴とする請求項9記載の分散システムの同期処理方法。
  13. 前記統括機器から前記各機器へのリリース指定時刻の算出は、前記オブジェクト参照テーブルに記憶する前記各機器の1度のメソッド呼出し所要時間を用いて、前記各機器へのメソッド呼出所要時間を全て加算し、呼出す直前の時刻に加算することでリリース指定時刻を算出することを特徴とする請求項9記載の分散システムの同期処理方法。
  14. 前記分散システム内の前記各機器間の時間同期は、2機器間では該2機器間のクロックの差分およびネットワーク伝播遅延量より補正算出することを特徴とする請求項9記載の分散システムの同期処理方法。
  15. 前記協調動作は,予め単一の動作を微小時間区間に分割し,微小区間毎の開始時刻を同期させ、微小区間の個数分繰り返して動作することを特徴とする請求項9記載の分散システムの同期処理方法。
  16. 前記協調動作は,前記協調動作における動作の開始時刻と終了時刻を与え、移動距離と移動時間と加速度と減速度より求めた移動速度を指定して移動指令を与えることを特徴とする請求項9記載の分散システムの同期処理方法。
JP2006329462A 2006-12-06 2006-12-06 分散システムの同期処理装置および同期処理方法 Pending JP2008146149A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006329462A JP2008146149A (ja) 2006-12-06 2006-12-06 分散システムの同期処理装置および同期処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006329462A JP2008146149A (ja) 2006-12-06 2006-12-06 分散システムの同期処理装置および同期処理方法

Publications (1)

Publication Number Publication Date
JP2008146149A true JP2008146149A (ja) 2008-06-26

Family

ID=39606300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006329462A Pending JP2008146149A (ja) 2006-12-06 2006-12-06 分散システムの同期処理装置および同期処理方法

Country Status (1)

Country Link
JP (1) JP2008146149A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011216085A (ja) * 2010-03-15 2011-10-27 Omron Corp プログラマブルコントローラ
JP2012529706A (ja) * 2009-06-10 2012-11-22 ザ・ボーイング・カンパニー 共有項ベースの分散型タスクの実行
JP2013536095A (ja) * 2010-08-24 2013-09-19 中国科学院深▲しん▼先進技術研究院 クラウドロボットシステムおよびその実現方法
JP2014186586A (ja) * 2013-03-25 2014-10-02 Sumitomo Heavy Ind Ltd 支援装置
JP2016203330A (ja) * 2015-04-27 2016-12-08 日立Geニュークリア・エナジー株式会社 自律型筋肉ロボット
JP2017068353A (ja) * 2015-09-28 2017-04-06 ファナック株式会社 ユニット間での同期制御機能を有する数値制御システム
US9871609B2 (en) 2015-07-08 2018-01-16 Mitsubishi Electric Corporation Network system, time master station, and time slave station
WO2019117249A1 (ja) * 2017-12-13 2019-06-20 株式会社 Preferred Networks 制御装置、制御方法及びプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012529706A (ja) * 2009-06-10 2012-11-22 ザ・ボーイング・カンパニー 共有項ベースの分散型タスクの実行
JP2011216085A (ja) * 2010-03-15 2011-10-27 Omron Corp プログラマブルコントローラ
JP2013536095A (ja) * 2010-08-24 2013-09-19 中国科学院深▲しん▼先進技術研究院 クラウドロボットシステムおよびその実現方法
US9031692B2 (en) 2010-08-24 2015-05-12 Shenzhen Institutes of Advanced Technology Chinese Academy of Science Cloud robot system and method of integrating the same
JP2014186586A (ja) * 2013-03-25 2014-10-02 Sumitomo Heavy Ind Ltd 支援装置
JP2016203330A (ja) * 2015-04-27 2016-12-08 日立Geニュークリア・エナジー株式会社 自律型筋肉ロボット
US9871609B2 (en) 2015-07-08 2018-01-16 Mitsubishi Electric Corporation Network system, time master station, and time slave station
JP2017068353A (ja) * 2015-09-28 2017-04-06 ファナック株式会社 ユニット間での同期制御機能を有する数値制御システム
US10222786B2 (en) 2015-09-28 2019-03-05 Fanuc Corporation Numerical control system having synchronous control function between units
WO2019117249A1 (ja) * 2017-12-13 2019-06-20 株式会社 Preferred Networks 制御装置、制御方法及びプログラム
JPWO2019117249A1 (ja) * 2017-12-13 2020-12-17 株式会社Preferred Networks 制御装置、制御方法及びプログラム

Similar Documents

Publication Publication Date Title
JP2008146149A (ja) 分散システムの同期処理装置および同期処理方法
US11082197B2 (en) Control system and control device
JP4577422B2 (ja) 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム
KR20170034753A (ko) 스텝 기반 실시간 디바이스 시스템 제어 방법, 디바이스 시스템 제어 장치 및 스텝 기반 디바이스 제어 시스템
Delgado et al. Real-time control architecture based on Xenomai using ROS packages for a service robot
WO2018146909A1 (ja) 演算装置、制御装置および制御方法
EP3055771A1 (en) Method for executing tasks in a computer network
WO2018018760A1 (zh) 一种信息传输方法、设备及计算机存储介质
CN108289003A (zh) 用于高速传感器接口的同步机构
CN108287482A (zh) 一种基于Simulink的仿真控制方法及装置
Moon et al. Real-time EtherCAT master implementation on Xenomai for a robot system
CN109660310B (zh) 一种时钟同步的方法、装置、计算设备及计算机存储介质
Muratore et al. On the design and evaluation of xbotcore, a cross-robot real-time software framework
JP2000010806A (ja) 分散プログラム実行方法及び複数コンピュータ立ち上げ方法
Lee et al. Design and Implementation of an Ethernet-Based Linear Motor Drive for Industrial Transport Systems
Fröhlich et al. Data-centric cyber-physical systems design with smartdata
Rude et al. IRoN: an inter robot network and three examples on multiple mobile robots' motion coordination
Amanatiadis et al. Development of a stereo vision system for remotely operated robots: A control and video streaming architecture
Song et al. CONCORD: A control framework for distributed real-time systems
WO2020089970A1 (ja) センサ装置、情報処理装置、設定付き測定データの出力方法、情報処理方法、プログラム及び設定付き測定データのデータ構造
JP2021514515A (ja) ロボットを相互接続する方法
Lu et al. Ieee 1588-based general and precise time synchronization method for multiple sensors
Lee et al. Performance analysis of software architectures with real-time kernel patches for the Rescue Robot
Balaji et al. Synchronous robotic framework
CN212460509U (zh) 一种虚拟现实设备及虚拟现实系统