JP2006252394A - Information processing system, information processor and processing method and program - Google Patents
Information processing system, information processor and processing method and program Download PDFInfo
- Publication number
- JP2006252394A JP2006252394A JP2005070653A JP2005070653A JP2006252394A JP 2006252394 A JP2006252394 A JP 2006252394A JP 2005070653 A JP2005070653 A JP 2005070653A JP 2005070653 A JP2005070653 A JP 2005070653A JP 2006252394 A JP2006252394 A JP 2006252394A
- Authority
- JP
- Japan
- Prior art keywords
- data
- calculation
- information processing
- unit
- information
- 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.)
- Withdrawn
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 116
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000004364 calculation method Methods 0.000 claims abstract description 623
- 238000012545 processing Methods 0.000 claims abstract description 139
- 238000000034 method Methods 0.000 claims description 131
- 230000008569 process Effects 0.000 claims description 118
- 238000012790 confirmation Methods 0.000 claims description 28
- 230000001364 causal effect Effects 0.000 claims description 24
- 230000003111 delayed effect Effects 0.000 claims description 8
- 238000002360 preparation method Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 185
- 238000004891 communication Methods 0.000 description 116
- 238000003860 storage Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000013480 data collection Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
Abstract
Description
本発明は、情報処理システム、情報処理装置および方法、並びにプログラムに関し、特に、時系列データに対する計算処理をより高速に行うことができるようにする情報処理システム、情報処理装置および方法、並びにプログラムに関する。 The present invention relates to an information processing system, an information processing apparatus and method, and a program, and more particularly, to an information processing system, information processing apparatus and method, and program capable of performing calculation processing on time-series data at higher speed. .
単一の計算機に時系列予測計算を行うアルゴリズムを実行させる場合、実時間性(リアルタイム性)を保つように実行させたとしても、状況により、その計算結果をリアルタイムに得る(要求するペースで計算結果を得る)ことが困難になる恐れがあった。例えば、その計算機の処理能力に対して時系列予測計算のアルゴリズムの計算量が大きいと、計算時間が増大してしまい、理想とする時間間隔で計算結果(予測値)が得られない恐れがあった。 When executing an algorithm that performs time series prediction calculation on a single computer, even if it is executed to maintain real-time performance (real-time performance), the calculation result is obtained in real time depending on the situation (calculation at the required pace) It may be difficult to obtain a result. For example, if the calculation amount of the time series prediction calculation algorithm is large relative to the processing capacity of the computer, the calculation time increases, and there is a possibility that calculation results (predicted values) cannot be obtained at ideal time intervals. It was.
このような遅延の発生を抑制するための方法として、アルゴリズム自身の最適化を行ったり、計算能力の高い計算機を利用したり、何らかの手法を用いて隔たりのある出力値を補間するようにしたりする等の方法が存在する。しかしながら、これらの方法を用いた対処では実際には限界がある。例えば、計算時間の長期化の原因が、演算負荷よりも根本的なアルゴリズムにある場合、上述したように演算負荷を軽減させても、待機時間が増加するなどして計算時間を大幅に短縮させることができない。また、例えば、その出力を用いてロボットの高速な運動制御を行うような場合、より正確な演算結果がより正確なタイミングで必要になり、補間処理やアルゴリズムの変形では対応できない場合があった。 In order to suppress the occurrence of such a delay, the algorithm itself is optimized, a computer with a high calculation capability is used, or a certain output value is interpolated using some method. Etc. exist. However, there are actually limitations in the handling using these methods. For example, if the cause of the longer calculation time is due to the underlying algorithm than the calculation load, even if the calculation load is reduced as described above, the calculation time is greatly reduced by increasing the waiting time. I can't. Further, for example, when high-speed motion control of the robot is performed using the output, more accurate calculation results are required at more accurate timing, and there are cases where interpolation processing or algorithm modification cannot be used.
そこで、並列型計算機システムを利用することによって処理を分割し、その分割された処理を並列に実行させ、最後に各演算結果を結合することによって、高速に計算結果を得る手法が提案されている(例えば特許文献1乃至3参照)。
Therefore, a method has been proposed in which processing is divided at high speed by using a parallel computer system, the divided processing is executed in parallel, and finally the operation results are combined. (For example, see
例えば、図1に示されるようにシステムのサーバ処理を行う、図示せぬ計算機は、ステップS1において、元の大きなデータの塊である元データ1を取得すると、ステップS2において、その元データ1を所定の方法で分割し、分割データ11乃至分割データ14を生成する。そして、計算機はそれらを、実際に演算処理を行う端末装置21乃至端末装置24にそれぞれ供給する。端末装置21乃至端末装置24は、それぞれ、ステップS3において、供給された分割データを用いて演算を行い、計算結果を得る(並列計算する)。各端末装置は、それぞれ、得られた計算結果を計算機に供給する。計算機は、ステップS4において、端末装置21乃至端末装置24より供給される計算結果を集約し、元データ1に対する1つの計算結果31を得る。
For example, when a computer (not shown) that performs server processing of the system as shown in FIG. 1 obtains
このように、複数の端末装置を用いて、並列に演算処理を行わせることにより、計算機は、1台で演算処理を行って元データ1より直接計算結果31を得る場合よりも高速に計算結果31を得ることができる。
As described above, by performing arithmetic processing in parallel using a plurality of terminal devices, the computer performs calculation processing at a higher speed than the case where the arithmetic processing is performed by one unit and the
しかしながら、上述した方法が適用できるのは、予測計算アルゴリズムが並列化に適している場合や、計算対象となる元データの各部分の独立性が保たれており、並列処理するために分割された分割データ11乃至分割データ14が互いに独立しており、またそれらに対する各演算処理が互いに独立しており、さらに、得られた計算結果を統合化するだけで、本来あるべき結果(元データ1に対する計算結果31)を復元できる場合に限られてしまう。
However, the above-mentioned method can be applied when the prediction calculation algorithm is suitable for parallelization or when the independence of each part of the original data to be calculated is maintained and divided for parallel processing. The divided
したがって、例えば、リカレントニューラルネットワークを時系列予測計算アルゴリズムとして用いたときのように、計算アルゴリズムそのものが(マイコンレベルでの並列化には適しても)PC(Personal Computer)クラスタなどのような大規模な並列計算環境による並列計算に適さないアルゴリズムである場合、上述したような並列化手法を適用することができなかった。 Therefore, for example, when a recurrent neural network is used as a time series prediction calculation algorithm, the calculation algorithm itself is large-scale such as a PC (Personal Computer) cluster (even if it is suitable for parallelization at the microcomputer level). If the algorithm is not suitable for parallel computing in a parallel computing environment, the parallelization method as described above cannot be applied.
つまり、リカレントニューラルネットワークが大規模なPCクラスタの並列計算環境に適してないとは、ニューラルネットワークのニューロン単位をPCクラスタの各計算ノードに割り当てたとしても、通信によるオーバーヘッドの方が大きくなってしまい、全体として高速化は期待することができないということである。 In other words, if the recurrent neural network is not suitable for the parallel computing environment of a large-scale PC cluster, even if the neuron unit of the neural network is assigned to each computing node of the PC cluster, the overhead due to communication becomes larger. As a whole, speeding up cannot be expected.
さらに、例えば、時系列データの予測演算により得られる予測結果を用いて、実環境で動作するロボットを制御するときのように、時系列予測計算の結果出力に実時間性が求められる場合、計算対象となる元データ1の値が時々刻々変化するので、元データ1の値が固定化されたバッチ処理の並列化とは異なり、ある範囲のデータをある一定の大きさで分割するというような単純な処理を行うことができなかった。
Furthermore, for example, when the real-time property is required for the output of the result of the time series prediction calculation, such as when controlling the robot operating in the real environment, using the prediction result obtained by the prediction calculation of the time series data, the calculation is performed. Since the value of the target
つまり、過去に蓄積されたある時間幅の時系列データを後でまとめて処理するのであれば、従来の方法により並列演算処理による効果を得ることができる場合も考えられるが、次にどのような値になるか不明な時系列データを、リアルタイムに、所定の時間間隔で分割して並列処理させ、得られた計算結果群に基づいて目的の時系列データを作成することは困難であった。 In other words, if time series data of a certain time width accumulated in the past is processed later together, it may be possible to obtain the effect of parallel arithmetic processing by the conventional method. It has been difficult to divide time series data whose value is unknown or not in real time at predetermined time intervals for parallel processing, and to create the desired time series data based on the obtained calculation result group.
以上のように、従来の方法では、時系列予測計算処理をより高速に行うことが困難であった。 As described above, with the conventional method, it is difficult to perform time series prediction calculation processing at higher speed.
本発明はこのような状況に鑑みてなされたものであり、時系列データに対する計算処理をより高速に行うようにするものである。 The present invention has been made in view of such a situation, and is intended to perform calculation processing on time-series data at a higher speed.
本発明の情報処理システムは、所定の計算処理を行うための計算データを送信する第1の情報処理装置と、第1の情報処理装置により送信される計算データを用いて計算処理を行い、計算結果を第1の情報処理装置に返す複数の第2の情報処理装置とを備え、第1の情報処理装置が、時系列に沿って因果関係を有する内容の第1の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、時系列に沿って複数の部分データに分割し、部分データを用いて計算データを作成する計算データ作成手段と、計算データ作成手段により作成される計算データを、第2の情報処理装置のそれぞれに、所定の順番に分配するように供給する計算データ供給手段と、計算データ供給手段により計算データが供給される第2の情報処理装置より、計算処理の結果を含む計算結果データを取得する計算結果データ取得手段と、計算結果データ取得手段により取得される計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データを作成する時系列データ作成手段とを備え、第2の情報処理装置が、計算データ供給手段により供給される計算データを取得する計算データ取得手段と、計算データ取得手段により取得された計算データに基づいて計算処理を行う計算処理手段と、計算処理手段による計算処理の結果を含む計算結果データを第1の情報処理装置に供給する計算結果データ供給手段とを備えることを特徴とする。 An information processing system according to the present invention performs a calculation process using a first information processing apparatus that transmits calculation data for performing a predetermined calculation process, and calculation data transmitted by the first information processing apparatus. A plurality of second information processing devices that return results to the first information processing device, and the first information processing device adjoins the first time-series data having a causal relationship along the time series. The calculation data creation means for dividing the partial data into a plurality of partial data along a time series so that part of the range overlaps with each other and creating the calculation data using the partial data, and the calculation data creation means Calculation data supply means for supplying the calculated data to be distributed to each of the second information processing devices in a predetermined order, and second information processing for which the calculation data is supplied by the calculation data supply means The calculation result data acquisition means for acquiring the calculation result data including the result of the calculation processing and the calculation result data acquired by the calculation result data acquisition means A time-series data creating means for creating time-series data of 2 and the second information processing apparatus obtains a calculation data acquisition means for acquiring calculation data supplied by the calculation data supply means and a calculation data acquisition means Calculation processing means for performing calculation processing based on the calculated calculation data, and calculation result data supply means for supplying calculation result data including a result of the calculation processing by the calculation processing means to the first information processing apparatus. And
本発明の情報処理装置は、時系列に沿って因果関係を有する内容の第1の時系列データを、時系列に沿って複数の部分データに分割し、部分データを用いて計算データを作成する計算データ作成手段と、計算データ作成手段により作成される計算データを、他の情報処理装置のそれぞれに、所定の順番に分配するように供給する計算データ供給手段とを備え、計算データ作成手段は、各部分データの時系列上の範囲の一部が、隣り合う部分データ同士で互いに重複するように、第1の時系列データを分割することを特徴とする。 The information processing apparatus according to the present invention divides first time-series data having a causal relationship along a time series into a plurality of partial data along the time series, and creates calculation data using the partial data. Computation data creation means and calculation data supply means for supplying the computation data created by the computation data creation means to each of the other information processing devices so as to be distributed in a predetermined order. The first time-series data is divided so that a part of the time-series range of each partial data overlaps between adjacent partial data.
前記計算データ供給手段により計算データが供給される他の情報処理装置より、計算処理結果を含む計算結果データを取得する計算結果データ取得手段と、計算結果データ取得手段により取得される計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データを作成する時系列データ作成手段とをさらに備えるようにすることができる。 Calculation result data acquisition means for acquiring calculation result data including calculation processing results from other information processing devices to which calculation data is supplied by the calculation data supply means, and calculation result data acquired by the calculation result data acquisition means It is possible to further include time-series data creating means for creating second time-series data having a causal relationship along the time series.
前記計算結果データ取得手段により取得される計算結果データの有効性を確認する有効性確認手段をさらに備え、時系列データ作成手段は、有効性確認手段により有効であると確認される計算結果データのみを用いて第2の時系列データを作成するようにすることができる。 The apparatus further comprises validity checking means for checking the validity of the calculation result data acquired by the calculation result data acquiring means, and the time series data creating means is only the calculation result data confirmed to be valid by the validity checking means. The second time-series data can be created using.
前記有効性確認手段は、計算結果データ取得手段による取得順が、計算データ供給手段による供給順よりも遅延した計算結果データを無効とするようにすることができる。 The validity check means can invalidate calculation result data in which the acquisition order by the calculation result data acquisition means is delayed from the supply order by the calculation data supply means.
前記計算データ供給手段による計算データの供給時刻を、計算データを供給する他の情報処理装置毎に管理する管理手段をさらに備え、計算データ作成手段は、計算データ供給手段が同じ他の情報処理装置に複数回計算データを供給する場合、管理手段により管理される供給時刻に基づいて時系列上の範囲を決定し、範囲内の部分データを用いて計算データを作成するようにすることができる。 The information processing apparatus further includes a management unit that manages the supply time of the calculation data by the calculation data supply unit for each of the other information processing apparatuses that supply the calculation data. In the case where the calculation data is supplied a plurality of times, a time-series range can be determined based on the supply time managed by the management means, and the calculation data can be created using partial data within the range.
前記計算データ作成手段は、管理手段により管理される供給時刻よりも後の部分データを用いて計算データを作成するようにすることができる。 The calculation data creation means can create the calculation data using partial data after the supply time managed by the management means.
前記計算結果データは、計算処理結果とともに、他の情報処理装置の内部状態に関する情報であるコンテキストデータを含み、計算結果データ取得手段により取得されるコンテキストデータを保持する保持手段をさらに備え、計算データ作成手段は、他の情報処理装置が部分データおよびコンテキストデータを用いて計算処理を行って計算結果データを生成するように、計算データを、部分データだけでなく、保持手段により保持されている、計算データの供給先以外の他の情報処理装置のコンテキストデータを用いて作成することができる。 The calculation result data includes context data that is information related to an internal state of another information processing apparatus together with the calculation processing result, and further includes a holding unit that holds context data acquired by the calculation result data acquisition unit, and the calculation data The creation means holds the calculation data not only by the partial data but also by the holding means so that other information processing devices perform calculation processing using the partial data and the context data to generate calculation result data. It can be created using context data of another information processing apparatus other than the calculation data supply destination.
本発明の情報処理方法は、時系列に沿って因果関係を有する内容の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、時系列に沿って複数の部分データに分割し、部分データを用いて計算データを作成する計算データ作成ステップと、供給部を制御し、計算データ作成ステップの処理により作成された計算データを、他の情報処理装置のそれぞれに所定の順番に分配するように供給させる計算データ供給ステップとを含むことを特徴とする。 According to the information processing method of the present invention, time-series data having content that has a causal relationship along a time series is divided into a plurality of pieces of partial data along the time series so that a part of the range overlaps between adjacent partial data. A calculation data creation step for creating calculation data using partial data, and the calculation data created by the processing of the calculation data creation step for each of the other information processing devices. And a calculation data supply step for supplying the data so as to be distributed in order.
本発明のプログラムは、時系列に沿って因果関係を有する内容の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、時系列に沿って複数の部分データに分割し、部分データを用いて計算データを作成する計算データ作成ステップと、供給部を制御し、計算データ作成ステップの処理により作成された計算データを、他の情報処理装置のそれぞれに所定の順番に分配するように供給させる計算データ供給ステップとを含むことを特徴とする。 The program of the present invention divides time-series data having a causal relationship along a time series into a plurality of partial data along the time series so that a part of the range overlaps between adjacent partial data. The calculation data creation step for creating the calculation data using the partial data, and the calculation data created by the processing of the calculation data creation step for controlling the supply unit are transferred to each of the other information processing devices in a predetermined order. And a calculation data supply step for supplying the data for distribution.
本発明の情報処理システムにおいては、第1の情報処理装置により、時系列に沿って因果関係を有する内容の時系列データが、時系列上の範囲の一部が隣り合う部分データ同士で互いに重複するように、時系列に沿って複数の部分データに分割され、部分データを用いて計算データが作成され、その作成された計算データが、第2の情報処理装置のそれぞれに、所定の順番に分配するように供給され、第2の情報処理装置により、その計算データが取得され、取得された計算データに基づいて計算処理が行われ、計算処理の結果を含む計算結果データが第1の情報処理装置に供給され、さらに、第1の情報処理装置により、その計算結果データが取得され、その取得された前記計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データが作成される。 In the information processing system of the present invention, the first information processing device causes the time series data having the causal relationship along the time series to overlap each other in the partial data in which a part of the range on the time series is adjacent. As described above, the data is divided into a plurality of partial data in time series, and the calculation data is created using the partial data. The created calculation data is sent to each of the second information processing devices in a predetermined order. The calculation data is supplied by the second information processing apparatus, and the calculation processing is performed based on the acquired calculation data. The calculation result data including the calculation processing result is the first information. Content that is supplied to the processing device, and further obtained by the first information processing device, and has a causal relationship in time series using the obtained calculation result data The second time series data is created.
本発明の情報処理装置および方法、並びにプログラムにおいては、時系列に沿って因果関係を有する内容の第1の時系列データが、時系列に沿って複数の部分データに分割され、その部分データを用いて計算データが作成され、その作成された計算データが、他の情報処理装置のそれぞれに、所定の順番に分配するように供給される。このとき、各部分データの時系列上の範囲の一部が、隣り合う部分データ同士で互いに重複するように、第1の時系列データが分割される。 In the information processing apparatus, method, and program of the present invention, the first time-series data having a causal relationship along the time series is divided into a plurality of partial data along the time series, and the partial data is Calculation data is created using the data, and the created calculation data is supplied to each of the other information processing apparatuses so as to be distributed in a predetermined order. At this time, the first time-series data is divided so that a part of the time-series range of each partial data overlaps between adjacent partial data.
本発明によれば、時系列データに対する計算処理をより高速に行うことができる。 According to the present invention, calculation processing for time series data can be performed at higher speed.
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。 Embodiments of the present invention will be described below. The correspondence relationship between the invention described in this specification and the embodiments of the invention is exemplified as follows. This description is intended to assure that embodiments supporting the claimed invention are described in this specification. Therefore, although there is an embodiment which is described in the embodiment of the invention but is not described here as corresponding to the invention, it means that the embodiment is not It does not mean that it does not correspond to the invention. Conversely, even if an embodiment is described herein as corresponding to an invention, that means that the embodiment does not correspond to an invention other than the invention. Absent.
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。 Further, this description does not mean all the inventions described in this specification. In other words, this description is an invention described in the present specification and is not claimed in this application, that is, an invention that will be filed in the future or added by amendment. Is not to deny.
本発明においては、所定の計算処理を行うための計算データを送信する第1の情報処理装置(例えば、図2のサーバノード)と、第1の情報処理装置により送信される計算データを用いて計算処理を行い、計算結果を第1の情報処理装置に返す複数の第2の情報処理装置(例えば、図2のクライアントノード)とを備え、第1の情報処理装置が、各第2の情報処理装置に、互いに異なる計算データを供給し、計算処理を並列に実行させる情報処理システム(例えば、図2のクラスタコンピュータ)が提供される。この情報処理システムでは、第1の情報処理装置が、時系列に沿って因果関係を有する内容の第1の時系列データ(例えば、図12の元データ)を、隣り合う部分データ同士で範囲の一部が互いに重複するように、時系列に沿って複数の部分データ(例えば、図12の分割データ)に分割し、部分データを用いて計算データを作成する計算データ作成手段(例えば、図7の計算データ作成部)と、計算データ作成手段により作成される計算データを、第2の情報処理装置のそれぞれに、所定の順番に分配するように供給する計算データ供給手段(例えば、図7の計算データ送信部)と、計算データ供給手段により計算データが供給される第2の情報処理装置より、計算処理の結果を含む計算結果データを取得する計算結果データ取得手段(例えば、図7の計算結果データ受信制御部)と、計算結果データ取得手段により取得される計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データを作成する時系列データ作成手段(例えば、図7のコマンド情報作成部)とを備え、第2の情報処理装置が、計算データ供給手段により供給される計算データを取得する計算データ取得手段(図18のステップS163の処理を実行する図11の通信部)と、計算データ取得手段により取得された計算データに基づいて計算処理を行う計算処理手段(図18のステップS165の処理を実行する図11の演算部)と、計算処理手段による計算処理の結果を含む計算結果データを第1の情報処理装置に供給する計算結果データ供給手段(図18のステップS161の処理を実行する図11の通信部)とを備える。 In the present invention, a first information processing apparatus (for example, a server node in FIG. 2) that transmits calculation data for performing a predetermined calculation process and calculation data transmitted by the first information processing apparatus are used. A plurality of second information processing apparatuses (for example, client nodes in FIG. 2) that perform calculation processing and return the calculation result to the first information processing apparatus. An information processing system (for example, the cluster computer of FIG. 2) is provided that supplies different calculation data to a processing device and executes the calculation processing in parallel. In this information processing system, the first information processing apparatus converts the first time-series data (for example, the original data in FIG. 12) having a causal relationship along the time series between adjacent partial data. A calculation data creating means (for example, FIG. 7) that divides into a plurality of partial data (for example, the divided data in FIG. 12) along a time series so as to partially overlap each other and creates calculation data using the partial data. Calculation data generation means) and calculation data supply means for supplying the calculation data generated by the calculation data generation means to each of the second information processing devices in a predetermined order (for example, FIG. 7) Calculation result data acquisition means (for example, calculation result data acquisition means for acquiring calculation result data including the result of calculation processing) from the second information processing apparatus to which calculation data is supplied by the calculation data supply means For example, the calculation result data reception control unit in FIG. 7 and the calculation result data acquired by the calculation result data acquisition unit are used to create second time-series data having a causal relationship along the time series. Calculation data acquisition means (step of FIG. 18), which includes time series data generation means (for example, command information generation unit in FIG. 7), and the second information processing apparatus acquires calculation data supplied by the calculation data supply means. The communication unit of FIG. 11 that executes the process of S163) and the calculation processing unit that performs the calculation process based on the calculation data acquired by the calculation data acquisition unit (the calculation unit of FIG. 11 that executes the process of step S165 of FIG. 18) ) And calculation result data supply means for supplying calculation result data including the result of calculation processing by the calculation processing means to the first information processing apparatus (processing in step S161 in FIG. 18). To perform a communication unit) and FIG. 11.
本発明においては、所定の計算処理を行う複数の他の情報処理装置(例えば、図2のクライアントノード)のそれぞれに対して、前記計算処理の処理対象となる計算データを供給する情報処理装置(例えば、図2のサーバノード)が提供される。この情報処理装置では、時系列に沿って因果関係を有する内容の第1の時系列データ(例えば、図12の元データ)を、時系列に沿って複数の部分データ(例えば、図12の分割データ281乃至284)に分割し、部分データを用いて計算データを作成する計算データ作成手段(例えば、図7の計算データ作成部)と、計算データ作成手段により作成される計算データを、他の情報処理装置のそれぞれに、所定の順番に分配するように供給する計算データ供給手段(例えば、図7の計算データ送信部)とを備え、計算データ作成手段は、各部分データの時系列上の範囲の一部が、隣り合う部分データ同士で互いに重複するように、第1の時系列データを分割する。
In the present invention, an information processing apparatus that supplies calculation data to be processed by the calculation process to each of a plurality of other information processing apparatuses (for example, client nodes in FIG. 2) that perform predetermined calculation processing. For example, a server node in FIG. 2 is provided. In this information processing apparatus, the first time-series data (for example, the original data in FIG. 12) having the causal relationship along the time series is converted into a plurality of partial data (for example, the division in FIG. 12).
前記計算データ供給手段により計算データが供給される他の情報処理装置より、計算処理結果を含む計算結果データを取得する計算結果データ取得手段(例えば、図7の計算結果データ受信制御部)と、計算結果データ取得手段により取得される計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データを作成する時系列データ作成手段(例えば、図7のコマンド情報作成部)とをさらに備えるようにすることができる。 Calculation result data acquisition means (for example, the calculation result data reception control unit in FIG. 7) for acquiring calculation result data including calculation processing results from another information processing apparatus to which calculation data is supplied by the calculation data supply means; Using the calculation result data acquired by the calculation result data acquisition means, time-series data creation means for creating second time-series data having a causal relationship along the time series (for example, command information creation in FIG. 7) Part).
前記計算結果データ取得手段により取得される計算結果データの有効性を確認する有効性確認手段(例えば、図7の有効性確認部)をさらに備え、時系列データ作成手段は、有効性確認手段により有効であると確認される計算結果データのみを用いて第2の時系列データを作成するようにすることができる。 The apparatus further comprises validity checking means (for example, the validity checking section in FIG. 7) for checking the validity of the calculation result data acquired by the calculation result data acquiring means, and the time-series data creating means includes the validity checking means. The second time-series data can be generated using only the calculation result data that is confirmed to be valid.
前記有効性確認手段は、計算結果データ取得手段による取得順が、計算データ供給手段による供給順よりも遅延した計算結果データを無効とする(例えば、図15のステップS104)ようにすることができる。 The validity confirmation unit can invalidate the calculation result data in which the acquisition order by the calculation result data acquisition unit is delayed from the supply order by the calculation data supply unit (for example, step S104 in FIG. 15). .
前記計算データ供給手段による計算データの供給時刻(例えば、図10の供給時刻)を、計算データを供給する他の情報処理装置毎に管理する管理手段(例えば、図7の送信履歴テーブル更新部)をさらに備え、計算データ作成手段は、計算データ供給手段が同じ他の情報処理装置に複数回計算データを供給する場合、管理手段により管理される供給時刻に基づいて時系列上の範囲を決定し(例えば、図17のステップS141)、範囲内の部分データを用いて計算データを作成するようにすることができる。 Management means (for example, a transmission history table update unit in FIG. 7) that manages the supply time (for example, the supply time in FIG. 10) of the calculation data by the calculation data supply means for each other information processing apparatus that supplies the calculation data. The calculation data creation means determines a time-series range based on the supply time managed by the management means when the calculation data supply means supplies the calculation data to the same other information processing apparatus a plurality of times. (For example, step S141 in FIG. 17), calculation data can be created using partial data within the range.
前記計算データ作成手段は、管理手段により管理される供給時刻よりも後の部分データを用いて計算データを作成する(例えば、図17のステップS142)ようにすることができる。 The calculation data creation means can create calculation data using partial data after the supply time managed by the management means (for example, step S142 in FIG. 17).
前記計算結果データは、計算処理結果とともに、他の情報処理装置の内部状態に関する情報であるコンテキストデータを含み、計算結果データ取得手段により取得されるコンテキストデータを保持する保持手段(例えば、図6のコンテキストデーバッファ183)をさらに備え、計算データ作成手段は、他の情報処理装置が部分データおよびコンテキストデータを用いて計算処理を行って計算結果データを生成するように、計算データを、部分データだけでなく、保持手段により保持されている、計算データの供給先以外の他の情報処理装置のコンテキストデータを用いて作成する(例えば、図17のステップS144)ようにすることができる。 The calculation result data includes context data that is information related to the internal state of the other information processing apparatus together with the calculation processing result, and holding means for holding the context data acquired by the calculation result data acquisition means (for example, FIG. Context data buffer 183), and the calculation data creating means generates the calculation result data so that the other information processing apparatus performs calculation processing using the partial data and the context data. Instead, it can be created using the context data of another information processing apparatus other than the calculation data supply destination held by the holding means (for example, step S144 in FIG. 17).
本発明においては、所定の計算処理を行う複数の他の情報処理装置(例えば、図2のクライアントノード)のそれぞれに対して、前記計算処理の処理対象となる計算データを供給する情報処理装置(例えば、図2のサーバノード)の情報処理方法が提供される。この情報処理方法においては、時系列に沿って因果関係を有する内容の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、時系列に沿って複数の部分データに分割し、部分データを用いて計算データを作成する計算データ作成ステップ(例えば、図16のステップS124)と、供給部(例えば、図7の計算データ送信部)を制御し、計算データ作成ステップの処理により作成された計算データを、他の情報処理装置のそれぞれに所定の順番に分配するように供給させる計算データ供給ステップ(例えば、図16のステップS126)とを含むことを特徴とする。 In the present invention, an information processing apparatus that supplies calculation data to be processed by the calculation process to each of a plurality of other information processing apparatuses (for example, client nodes in FIG. 2) that perform predetermined calculation processing. For example, an information processing method of the server node in FIG. 2 is provided. In this information processing method, time-series data having a causal relationship along the time series is converted into a plurality of partial data along the time series so that a part of the range overlaps between adjacent partial data. A calculation data generation step (for example, step S124 in FIG. 16) for dividing and generating calculation data using partial data is controlled, and a supply unit (for example, the calculation data transmission unit in FIG. 7) is controlled. And a calculation data supply step (for example, step S126 in FIG. 16) for supplying the calculation data created by the processing so as to be distributed to each of the other information processing apparatuses in a predetermined order.
本発明のプログラムにおいても、各ステップが対応する実施の形態(但し一例)は、本発明の情報処理方法と同様である。 Also in the program of the present invention, the embodiment (however, an example) corresponding to each step is the same as the information processing method of the present invention.
以下、本発明の実施の形態について図を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図2は、本発明を適用した情報処理システムの一実施形態に係る構成例を示す図である。 FIG. 2 is a diagram illustrating a configuration example according to an embodiment of an information processing system to which the present invention is applied.
図2において情報処理システム51は、人間型のロボットであるヒューマノイドロボット61およびそのヒューマノイドロボット61の動作を制御する制御システム62を有する時系列予測計算処理システムである。すなわち、情報処理システム51は、制御システム62が時系列予測計算処理として、ヒューマノイドロボット61の動作の予測計算を行い、その予測に基づいて動作を制御する制御情報を生成し、その制御情報によりヒューマノイドロボット61を制御する予測制御システムである。換言すると、ヒューマノイドロボット61は、情報処理システム51に予測制御されて動作する。
In FIG. 2, the
ヒューマノイドロボット61および制御システム62の間で無線通信が行われ、センサ情報およびコマンド情報等が授受される。例えば、ヒューマノイドロボット61は、後述するようにセンサ機能を有しており、そのセンサ機能により検出された情報であるセンサ情報を制御システム62に供給する。制御システム62は、そのセンサ情報やユーザ入力等に基づいてヒューマノイドロボット61の将来の最適な動作(将来行うべき動作)を予測し、その様に動作させるような制御コマンドを含むコマンド情報を作成し、それをヒューマノイドロボット61に供給する。ヒューマノイドロボット61は、そのコマンド情報に基づいて各部を動作させ、制御システム62の予測制御に応じた動作を行う。
Wireless communication is performed between the
制御システム62は、端末装置71およびクラスタコンピュータ72を有している。端末装置71は、アンテナ71Aを介して、ヒューマノイドロボット61と無線通信を行い、センサ情報やコマンド情報を授受し合う。また、端末装置71は、クラスタコンピュータ72と通信を行い、そのセンサ情報やコマンド情報を授受し合う。すなわち、端末装置71は、ヒューマノイドロボット61とクラスタコンピュータ72との通信の仲介処理を行う。また、端末装置71は、ユーザ入力に対する受け付け処理も行う。
The
クラスタコンピュータ72は、端末装置71より供給されるセンサ情報を用いて予測計算処理を行い、生成したコマンド情報を、計算結果として端末装置71に供給する。このクラスタコンピュータ72は、サーバノード81、並びに、クライアントノード91乃至クライアントノード93を有しており、並列処理を行うコンピュータシステムである。すなわち、クラスタコンピュータ72は、予測計算処理を細分化して並列に処理することにより、単一の計算機による予測計算処理よりも高速かつ安定的に予測計算処理を行うコンピュータシステムである。
The
サーバノード81は、クライアントノード91乃至クライアントノード93に対してセンサ情報のサーバ処理を行う。すなわち、サーバノード81は、端末装置71より供給されるセンサ情報を分割し、それぞれをクライアントノード91乃至クライアントノード93に供給し、ヒューマノイドロボット61の将来行うべき動作等を予測する予測計算処理を並行に実行させる。また、サーバノード81は、各クライアントノードより供給される計算結果を取得し、それらを結合する。そして、その結合された計算結果からコマンド情報を作成し、それをセンサ情報に対する計算結果として端末装置71に供給する。
The
クライアントノード91は、サーバノード81より供給される、分割されたセンサ情報等を用いて予測計算処理を行い、その計算結果をサーバノード81に返す。クライアントノード91は、他のクライアントノード(クライアントノード92およびクライアントノード93)と互いに独立して動作し、他のクライアントノードが実行する予測計算処理と並行して、予測計算処理を行うことができる。
The
クライアントノード91乃至クライアントノード93は、互いに同様に構成されており、同様の処理を行う。従って、クライアントノード92およびクライアントノード93の説明は省略する。なお、クライアントノード91乃至クライアントノード93を互いに区別して説明する必要の無い場合、例えば、クライアントノード91乃至クライアントノード93のいずれにも適用できる説明の場合、クライアントノード90と称する。
The
このように構成されるクラスタコンピュータ72は、予測計算処理の負荷を複数のノードに分散させることができるので、各ノード(サーバノード81やクライアントノード90)に必要な処理能力を低減させることができる。つまり、各ノードを、安価なパーソナルコンピュータを用いて構成した場合であっても、より多くのノードを設けることにより(より負荷を分散させることにより)、より大規模な処理を、より高速、かつ、より安定的に実行することができる。例えば、1台の計算機で作業させる場合にはスーパーコンピュータ並みの処理能力が必要である大規模な処理でも実行可能な高性能なシステムを安価に構築することができる。
Since the
なお、図2においては、情報処理システム51が、1つのヒューマノイドロボット61および1つの制御システム62により構成されるように説明したが、これに限らず、ヒューマノイドロボット61および制御システム62の数は、それぞれ、いくつであってもよく、例えば複数であってもよい。
In FIG. 2, the
また、図2においては、制御システム62が、1つの端末装置71および1つのクラスタコンピュータ72により構成されるように説明したが、これに限らず、端末装置71およびクラスタコンピュータ72は、それぞれ、いくつであってもよく、例えば複数であってもよい。
Further, in FIG. 2, the
さらに、図2においては、クラスタコンピュータ72が、1つのサーバノード81および3つのクライアントノード90(クライアントノード91乃至クライアントノード93)により構成されるように説明したが、これに限らず、サーバノード81は、いくつであってもよく、例えば複数であってもよい。また、クライアントノード90の数もいくつであってもよく、予めサーバノード81が全てのクライアントノード90を認識していれば、2つ以下であってもよいし、4つ以上であってもよい。つまり、1つのサーバノード81に対応するクライアントノード90の数もいくつであってもよく、例えば、サーバノード81が複数存在する場合、各サーバノード81に対応するクライアントノード90の数が互いに異なるようにしてもよい。さらに、滞りなく処理を行えるのであれば、複数の1つのクライアントノード90が複数のサーバノード81に対応するようにしてもよい。さらに付言すると、クラスタコンピュータ72は、時系列データに対して予測計算処理を行うものであればどのような構成であってもよい。
Further, in FIG. 2, the
次に、このような構成の情報処理システム51の各装置間で授受される情報について説明する。図3は、図2の情報処理システム51において授受される情報の例を説明する図である。
Next, information exchanged between the devices of the
ここで、図2の情報処理システム51は、例えば、ヒューマノイドロボット61が環境中のボールに対して動作を行うように、制御システム62がヒューマノイドロボット61を制御するシステムであるものとする。つまり、ヒューマノイドロボット61は、制御システム62の制御に従って、例えば、ボールを掴んだり、投げたり、蹴ったり、または置いたりする等の動作を行う。
Here, it is assumed that the
このとき、ヒューマノイドロボット61は、例えば、ステレオカメラ等の図示せぬセンサを有しており、空間上のボールの3次元位置を特定することができる。ヒューマノイドロボット61は、自分自身の関節角に関する情報(すなわち、現在の動作(姿勢)に関する情報)である関節角情報101とともに、このボールの3次元座標に関する情報であるボール座標情報102をセンサ情報として制御システム62の端末装置71に供給する。
At this time, the
なお、関節角情報101は、ヒューマノイドロボット61の関節角がどのような角度であるか(どのくらい曲がっているか)を示す情報であり、その関節角を制御するサーボモータの制御情報と等価である。従って、この関節角情報101は、サーボモータがどういう状態にあるかを実際に計測するセンサにより得られる情報を適用するようにしてもよいし、サーボモータを制御する制御情報を適用するようにしてもよい。
The
図3に示されるように、端末装置71は、ヒューマノイドロボット61より供給されるこれらのセンサ情報(関節角情報101およびボール座標情報102)をクラスタコンピュータ72のサーバノード81に供給する。サーバノード81は、それらのセンサ情報を後述する方法で分割した後、分割された各データをクライアントノード90に供給する。このときクライアントノード90は、時系列予測器111として動作し、供給されたセンサ情報(分割された関節角情報101およびボール座標情報102)に基づいて、それぞれの将来の値を予測する予測処理を行う。そして、クライアントノード90は、その予測計算結果として、関節角の予測値である関節角予測情報103と、ボール座標の予測値であるボール座標予測情報104を生成し、それらをサーバノード81に出力する。
As shown in FIG. 3, the
つまり、時系列予測器111は、ヒューマノイドロボット61の行ったボールとのインタラクションの際のセンサ情報時系列データを学習データとし、予測モデルを獲得する。そのため、この情報処理システム51では、ヒューマノイドロボット61自らに行動生成させる前の段階で、人間をはじめとする教示者がロボットのアームを実際に手に取り、ボールとのインタラクションをする状況を生成して学習データを作成し、時系列予測器111の学習を行わせる。その後、時系列予測器111に対して、実際にボール座標、ロボット自身の現在の関節角度時系列情報(関節角情報101)をオンラインで入力することによって、時系列予測データ(関節角予測情報103)が生成される。
That is, the
サーバノード81は、それらの予測値から、関節角の目標値(予測値)であり、サーボモータ用の制御情報である関節角コマンド105を生成し、それを端末装置71に供給する。端末装置71は、その供給された関節角コマンド105をコマンド情報としてヒューマノイドロボット61に供給する。ヒューマノイドロボット61は、その関節角コマンド105に基づいて、サーボモータを動作させ、ボールに対する動作を行う。
The
次に、各装置の詳細な構成について説明する。図4は、ヒューマノイドロボット61の一実施形態に係る、本発明に関する構成例を示すブロック図である。
Next, the detailed configuration of each device will be described. FIG. 4 is a block diagram illustrating a configuration example relating to the present invention, according to an embodiment of the
図4において、ヒューマノイドロボット61は、センサ部121、制御部122、無線通信部123、およびモータ部124を有している。
In FIG. 4, the
センサ部121は、例えば、上述したステレオカメラ等の図示せぬセンサを1つまたは複数有しており、各センサを動作させ、センサ情報を生成すると、それを制御部122に供給する。制御部122は、ヒューマノイドロボット61の各部を制御し、ヒューマノイドロボット61全体の制御処理を行う処理部である。制御部122は、図示せぬRAM(Random Access Memory)やROM(Read Only Memory)を内蔵するようにしてもよい。制御部122は、センサ部121よりセンサ情報を取得すると、無線通信部123を制御し、そのセンサ情報を端末装置71に送信させる。また、制御部122は、無線通信部122よりコマンド情報を取得すると、そのコマンド情報をモータ部124に供給し、モータ部124を駆動させ、コマンド情報の指示どおりにヒューマノイドロボット61の関節角を制御する。
For example, the
無線通信部123は、例えば、IEEE(Institute of Electrical and Electronic Engineers)802.11x等の所定の無線通信規格を用いて無線通信処理を行う処理部である。無線通信部123は、図示せぬRAMやROMを内蔵するようにしてもよい。無線通信部123は、制御部122に制御されて端末装置71と無線通信を行い、制御部122より供給されるセンサ情報を、アンテナ123Aを介して端末装置71に送信する。また、無線通信部123は、アンテナ123Aを介して端末装置71よりコマンド情報を受信すると、それを制御部122に供給する。
The
モータ部124は、1つまたは複数のサーボモータを有している。各サーボモータは、ヒューマノイドロボット61の各関節(可動部)に対応する。つまり、モータ部124は、制御部122より供給されるコマンド情報に基づいて、ヒューマノイドロボット61が有する各関節(可動部)の角度を調整する。換言すると、制御部122がコマンド情報を用いてモータ部124が有する各サーボモータの動作を制御することにより、ヒューマノイドロボット61は、制御システム62の制御どおりに動作する。
The
図5は、端末装置71の一実施形態に係る、本発明に関する構成例を示すブロック図である。
FIG. 5 is a block diagram illustrating a configuration example relating to the present invention, according to an embodiment of the
図5において、端末装置71は、CPU(Central Processing Unit)131、ROM132、RAM133、バス134、入出力インタフェース140、入力部141、出力部142、記憶部143、無線通信部144、通信部145、およびドライブ146を有している。
5, the
CPU131は、ROM132に記憶されているプログラム、または記憶部143からRAM133にロードされたプログラムに従って各種の処理を実行する。RAM133にはまた、CPU131が各種の処理を実行する上において必要なデータなども適宜記憶される。
The
CPU131、ROM132、およびRAM133は、バス134を介して相互に接続されている。このバス134にはまた、入出力インタフェース140も接続されている。
The
入出力インタフェース140には、キーボード、マウスなどよりなる入力部141、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部142、ハードディスクなどより構成される記憶部143、IEEE802.11x等の所定の無線通信規格に基づいて、ヒューマノイドロボット61と無線通信を行う無線通信部144、並びに、イーサネット(登録商標)(Ethernet(登録商標))等の所定の通信規格に基づいて、サーバノード81と通信処理を行う通信部145が接続されている。
The input /
入出力インタフェース140にはまた、必要に応じてドライブ146が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア151が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部143にインストールされる。
A
なお、端末装置71と、ヒューマノイドロボット61やサーバノード81との間の通信は、電波や赤外線信号等を利用する無線通信であっても、有線を介して電気信号や光信号等を授受する有線通信であってもよい。また、無線通信部144および通信部145がヒューマノイドロボット61およびサーバノード81以外の装置とも通信することができるようにしてもよい。さらに、必要に応じて、無線通信部144または通信部145を介して他の装置より取得したコンピュータプログラムが記憶部143にインストールされるようにしてもよい。
Note that the communication between the
CPU131は、ROM132や記憶部143からRAM133に読み出されたプログラムを実行することにより、ユーザ入力を受け付ける処理や、ヒューマノイドロボット61とサーバノード81との通信を中継する処理等を行う。つまり、CPU131は、主に入力部141を制御して、ユーザ入力を受け付け、例えばそのユーザ入力をヒューマノイドロボット61やサーバノード81に供給する等、受け付けた指示に基づいた処理を行う。また、CPU131は、主に無線通信部144および通信部145を制御して、ヒューマノイドロボット61とサーバノード81との通信を中継する。もちろん、CPU131がこれら以外の処理も行うことができるようにしてもよい。
The
図6は、クラスタコンピュータ72のサーバノード81の一実施形態に係る、本発明に関する構成例を示すブロック図である。
FIG. 6 is a block diagram showing a configuration example relating to the present invention according to an embodiment of the
図6において、サーバノード81は、通信部161、データプール162、制御部163、通信部164、データバッファ165、ROM166、RAM167、入力部168、出力部169、記憶部170、およびドライブ171を有している。
6, the
通信部161は、イーサネット(登録商標)等の所定の通信規格に基づいて、端末装置71と通信処理を行う。例えば、通信部161は、端末装置71より供給されるセンサ情報を受信すると、それをデータプール162に供給して蓄積させる。また、例えば、通信部161は、データプール162に蓄積されているヒューマノイドロボット61用のコマンド情報を定期的または不定期に読み出し、それを端末装置71に送信する。
The
データプール162は、例えばDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)に代表される半導体メモリ等の記憶素子を有しており、所定の容量の記憶領域を有している。データプール162には、通信部161が受信したセンサ情報(端末装置71より供給された関節角情報101やボール座標情報102等)が一時的に保持される。このセンサ情報は制御部163により読み出される。また、データプール162には、制御部163より供給されるコマンド情報(関節角コマンド105等)も一時的に保持される。このコマンド情報は通信部161により読み出され、端末装置71に送信される。これらのデータの授受は例えば所定の周期で定期的に繰り返し行われる。つまり、データプール162は、端末装置71とのデータの授受の周期と、制御部163とのデータの授受の周期の違いを吸収するためのバッファとして動作する。なお、上述したデータの授受が不定期に行われるようにしてももちろんよい。
The data pool 162 includes storage elements such as semiconductor memories such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory), and has a storage area of a predetermined capacity. The data pool 162 temporarily stores sensor information received by the communication unit 161 (such as
制御部163は、サーバノード81の各部を制御して各種の処理を実行させるだけでなく、さらに、データプール162に蓄積されるデータを取得し、分割してクライアントノード90に分配(送信)したり、各クライアントノード90からデータを収集(受信)し、それらを結合してデータプール162に供給して蓄積させたりするサーバ処理を行ったりする。
The
例えば、制御部163は、データプール162に蓄積されるセンサ情報(端末装置71より送信されたセンサ情報)を定期的または不定期に取得し、それをデータバッファ165に蓄積させたり、そのデータバッファ165に蓄積したセンサ情報や後述するコンテキストデータの部分データを用いて計算データ生成し、それをクライアントノード90に分配する処理を行ったり、データバッファ165に保持される、後述する送信履歴テーブルの管理を行ったりする。また、制御部163は、例えば、クライアントノード90より送信された計算結果データ(関節角予測情報103やボール座標予測情報104等の予測値、およびコンテキストデータ)等の情報からコマンド情報を生成し、それをデータプール162に供給して保持させたり、コンテキストデータをデータバッファ165に保持させたりする。さらに、制御部163がその他の処理を行うようにしてもよい。
For example, the
通信部164は、制御部163に制御されて、所定の通信規格に基づいて、クライアントノード90(クライアントノード91乃至クライアントノード93のそれぞれ)と通信を行い、計算データや計算結果データの送受信を行う。
The
データバッファ165は、DRAMやSRAM等の半導体メモリを有し、所定の容量の記憶領域を有している。その記憶領域には、センサ情報バッファ181、送信履歴テーブルバッファ182、およびコンテキストデータバッファ183が含まれる。
The
センサ情報バッファ181は、制御部163によりデータプール162より読み出されたセンサ情報を保持するバッファである。つまりセンサ情報バッファ181には、クライアントノード90に送信する前の(未送信の)データが保持される。送信履歴テーブルバッファ182は、計算データ(センサ情報やコンテキストデータ)のクライアントノード90への送信状況を示す送信履歴情報のテーブル情報である送信履歴テーブルを保持するバッファである。この送信履歴情報には、例えば、計算データを送信したクライアントノードのノード番号や、その送信時刻に関する情報等が含まれる。この送信履歴情報は、クライアントノード90より供給される計算結果データの有効性を確認するため等に利用される。送信履歴情報テーブルの詳細については後述する。コンテキストデータバッファ183は、各クライアントノード90より計算結果データとして供給される、クライアントノード90の内部状態に関する情報であるコンテキストデータを保持するバッファである。このコンテキストデータは、制御部163により読み出されてクライアントノード90に供給される。コンテキストデータは、例えば、クライアントノード90間で学習結果を関連付けるために利用される。詳細については後述する。
The
なお、データバッファ165は、バッファとして機能する構成(記憶領域)を有していればよく、そのための記憶素子であれば、例えば、ハードディスクやフラッシュメモリ等のように、上述した以外の記憶素子を有するようにしてもよい。どの記憶素子を採用するかは、データの入出力速度、記憶容量、または素子のサイズ等の基準に基づいて最適なものを選択するようにすればよい。
Note that the
ROM166は、制御部163により実行されるプログラムやデータを予め記憶しており、制御部163の要求に基づいて、それらを制御部163に供給する。RAM167は、制御部163が実行するプログラムやデータが一時的に保持される。つまり、制御部163は、ROM166に記憶されているプログラムやデータを読み出し、それをRAM167にロードして実行する。
The
入力部168は、制御部163に制御され、キーボードやマウス等の入力デバイス、または入力端子等を有しており、ユーザ入力や外部入力等を受け付け、その受け付けた情報を制御部163に供給する。出力部169は、例えば、CRTやLCD等のディスプレイやスピーカ等の出力デバイスを有しており、制御部163より供給された情報を出力する。記憶部170は、例えば、ハードディスクやフラッシュメモリ等の記録媒体を有しており、制御部163が実行するプログラムやデータの情報を記憶し、必要に応じてそれらの情報を制御部163に供給する。つまり、制御部163は、ROM166だけでなく、記憶部170に記憶されているプログラムやデータも、それらを読み出してRAM167にロードして実行することもできる。ドライブ171は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア172が適宜装着されるデバイスであり、制御部163に制御され、その装着されたリムーバブルメディア172からプログラムやデータを読み出して制御部163に供給する。例えば、制御部163は、そのプログラムやデータを記憶部170に供給してインストールする。
The
なお、データバッファ165をデータプール162、RAM167、または記憶部170と一体に構成するようにしてもよい。その場合、そのデバイスの記憶領域全体が分割され、その一部がデータバッファ165として割り当てられ、その他の部分が他の領域として割り当てられる。なお、データプール162がRAM167や記憶部170と一体に構成されるようにしてもよい。
The
図7は、図6の制御部163の内部の構成例を示すブロック図である。
FIG. 7 is a block diagram illustrating an internal configuration example of the
図7において制御部163は、制御部201、計算結果データ受信制御部202、送信元特定部203、有効性確認部204、無効値化部205、コンテキストデータ保持制御部206、コマンド情報作成部207、センサ情報受信部208、センサ情報更新確認部209、計算データ作成部210、送信履歴テーブル更新部211、および計算データ送信部212を有している。
In FIG. 7, the
制御部201は、制御部163内の各部を制御する制御処理を行う。計算結果データ受信制御部202は、通信部164を制御し、クライアントノード90より計算結果データを受信する処理を行う。
The
送信元特定部203は、計算結果データ受信部202が通信部164を介して受信した計算結果データを参照し、その送信元となるクライアントノード90を特定する。
The transmission
有効性確認部204は、計算結果データ受信部202が通信部164を介して受信した計算結果データが有効なデータであるか否かを確認する構成を少なくとも有する。ここではさらに、有効性確認部204は、その計算結果データの有効性を、計算結果データ受信部202によるその取得順と、計算データ送信部212による、その計算結果データに対応する計算データの送信順に基づいて確認する構成も有する。つまり、有効性確認部204は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルの送信履歴情報を参照し、計算結果データの取得順が、計算データの送信順に対して遅延している場合、その計算結果データを無効と判定する。有効性確認部204は、無効と判定した計算結果データを破棄する。
The
無効値化部205は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、計算結果データ受信制御部202が計算結果データを受信することにより、無効となるその他の計算結果データが存在するか否かを確認し、必要な場合は、その送信履歴情報を無効値に設定する(無効値化する)。詳細については後述するが、制御部163は、送信履歴情報テーブルを用いて、クライアントノード90より供給される計算結果データの順番を管理する。つまり、制御部163は、計算データを送信した順番と同じ順番で受信した計算結果データを有効とし、順番が入れ替わった計算結果データを無効とする。制御部163は、この有効・無効の情報を、送信履歴情報テーブルを用いて管理する。無効値化部205は、受信順が、その対応する計算データの送信順と異なる計算結果データ(受信が送信に比べて遅延した計算結果データ)を無効値とするように、送信履歴情報を更新する。
The invalid
コンテキストデータ保持制御部206は、計算結果データ受信制御部202が受信した計算結果データに含まれるコンテキストデータ(送信元のクライアントノード90の内部状態を示す情報)をコンテキストデータバッファ183に供給し、保持させる。また、コンテキストデータ保持制御部206は、計算結果データが無効である場合、コンテキストデータバッファ183に保持されている、その1つ前の(最新の)コンテキストデータを複製し、新たなコンテキストデータとして保持させる。
The context data holding
コマンド情報作成部207は、計算結果データ受信制御部202が受信した計算結果データより、ヒューマノイドロボット61に供給するコマンド情報を生成し、それをデータプール162に供給して保持させる。センサ情報受信部208は、ヒューマノイドロボット61より送信され、データプール162に保持されているセンサ情報を取得(受信)し、それをセンサ情報バッファ181に供給して保持させる。センサ情報更新確認部209は、センサ情報受信部208が取得(受信)したセンサ情報が更新されている(新たなセンサ情報である)ことを確認する。
The command information creation unit 207 generates command information to be supplied to the
計算データ作成部210は、センサ情報バッファ181に保持されているセンサ情報と、コンテキストデータバッファ183に保持されているコンテキストデータを用いて、クライアントノード90に供給する計算データを作成する。つまり、計算データ作成部210は、時系列に沿って因果関係を有する内容の時系列データ(センサ情報)を、その時系列に沿って複数の部分データに分割し、その部分データを用いて計算データを作成する構成を少なくとも有する。ここで、計算データ作成部210は、さらにコンテキストデータも用いて計算データを作成する。また、ここではさらに、計算データ作成部210は、送信履歴テーブル更新部211により更新される送信履歴テーブル(送信履歴テーブルバッファ182に保持されている送信履歴テーブル)を参照し、その送信履歴テーブルに含まれる計算データの送信時刻に基づいて計算データに含めるセンサ情報の時系列上の範囲を決定する構成も有する。例えば、計算データ作成部210は、同じクライアントノード90に対する前回の送信時刻より後のセンサ情報を用いて計算データを作成する。もちろんこれ以外の決定方法であってもよい。
The calculation
送信履歴テーブル更新部211は、計算データ作成部210が作成した計算データを送信することを送信履歴テーブルに反映させるために、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを読み出して送信時刻を更新し、その更新済みの送信履歴テーブルを送信履歴テーブルバッファ182に供給して保持させる。つまり、送信履歴テーブル更新部211は、計算データ送信部212による計算データの送信時刻を、クライアントノード90毎に管理する。
The transmission history
計算データ送信部212は、計算データ作成部210が作成した計算データを、通信部164を介してクライアントノード90に所定の順番で送信する。
The calculation data transmission unit 212 transmits the calculation data created by the calculation
次に、図7の制御部163の各部の動作について説明する。制御部201は、例えばユーザ入力等に基づいて、サーバ処理を行うか否かを判定し、行うと判定した場合、計算結果データ受信制御部を制御し、クライアントノード90より送信される計算結果データの受信に関する処理を実行させる。計算結果データ受信制御部202は、制御部201の制御に基づいて、通信部164を制御し、クライアントノード90より送信される計算結果データの受信処理を行う。なお、後述するように、制御部163の各部により実行されるサーバ処理は、最初待機状態である。そして、計算結果データ受信制御部202が、最初に、通信部164を制御し、クライアントノード90から空の計算結果データ(ダミーデータ)を受信すると、制御部163の各部は、それをきっかけとして、実質的なサーバ処理を開始する。計算結果データを受信すると場合、計算結果データ受信制御部202は、その計算結果データを送信元特定部203に供給する。
Next, the operation of each unit of the
送信元特定部203は、計算結果データを参照し、ヘッダ情報等に基づいて、送信元のクライアントノード90を特定する。送信元特定部203は、その送信元の情報とともに、計算結果データを有効性確認部204に供給する。有効性確認部204は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルの、計算結果データの送信元に対応する送信履歴情報を参照し、送信元特定部203より供給された計算結果データの有効性を確認し、計算結果データが有効である場合、その計算結果データと送信元の情報を無効値化部205に供給する。また、計算結果データが無効である場合、その計算結果データを破棄し、その旨をコンテキストデータ保持制御部206に通知する。なお、受信した計算結果データがダミーデータの場合、当然、送信履歴情報の送信時刻は有効なものでは無く、計算結果データは無効なものと判断される。
The transmission
無効値化部205は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、有効性確認部204より供給された計算結果データと送信元の情報に基づいて、それより以前に受信する筈だった他の計算結果データが存在するか否かを確認し、存在する場合は、それらの計算結果データを無効とするように送信履歴テーブルを更新する。そして無効値化部205は、計算結果データをコンテキストデータ保持制御部206に供給する。
The invalid
コンテキストデータ保持制御部206は、無効値化部205より供給される計算結果データに含まれるコンテキストデータをコンテキストデータバッファ183に供給して保持させる。また、コンテキストデータ保持制御部206は、有効性確認部204より無効であることを通知された場合、1つ前のステップにおいてコンテキストデータバッファ183に保持されたコンテキストデータ(その時点で最新のコンテキストデータ)を複製し、新たなコンテキストデータとしてコンテキストデータバッファ183に保持させる。ただし、コンテキストデータバッファ183にコンテキストデータが保持されていない場合、コンテキストデータ保持制御部206は、その複製処理を省略するか、若しくは、ダミーのコンテキストデータを生成して、そのダミーデータをコンテキストデータバッファ183に保持させる。
The context data holding
そして、コンテキストデータ保持制御部206は、計算結果データ(少なくとも予測計算結果を含む)をコマンド情報作成部207に供給する。コマンド情報作成部207は、供給された予測計算結果を用いて、ヒューマノイドロボット61に送信するコマンド情報を作成し、それをデータプール162に供給して保持させる。データプール162に保持されたコマンド情報は、所定のタイミングで端末装置71により読み出され、ヒューマノイドロボット61に供給される。コマンド情報作成部207は、コマンド情報をデータプール162に保持させると、処理終了をセンサ情報受信部208に通知する。
Then, the context data
センサ情報受信部208は、データプール162に保持されているセンサ情報を取得し、それをセンサ情報更新確認部209に供給する。センサ情報更新確認部209は、供給されたセンサ情報が、前回供給されたセンサ情報と異なるか否か、すなわち、データプール162に保持されているセンサ情報が更新されているか否か(新たなセンサ情報を受信したか否か)を確認する。センサ情報が更新されていない、すなわち、新たなセンサ情報がヒューマノイドロボット61より供給されていない場合、センサ情報更新確認部209は、センサ情報受信部208のその旨を通知し、再度データプール162よりセンサ情報を取得させる。また、センサ情報が更新された、すなわち、新たなセンサ情報がヒューマノイドロボット61より供給された場合、センサ情報更新確認部209は、センサ情報受信部208にその旨を通知する。センサ情報受信部208は、センサ情報更新確認部209において更新が確認されたセンサ情報をセンサ情報バッファ181に供給し、保持させる。そして、センサ情報更新確認部209は、処理終了を計算データ作成部210に通知する。
The sensor
計算データ作成部210は、センサ情報バッファ181よりセンサ情報を取得し、コンテキストデータバッファ183よりコンテキストデータを取得し、それらを用いて計算データを作成し、それを送信履歴テーブル更新部211に供給する。このとき、計算データ作成部210は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、その送信履歴情報に基づいて、計算データの送信先となるクライアントノード90に未送信のセンサ情報をセンサ情報バッファ181より取得する。また、計算データ作成部210は、計算データの送信先となるクライアントノード以外のクライアントノードのコンテキストデータをコンテキストデータバッファ183より取得する。
The calculation
送信履歴テーブル更新部211は、計算データ作成部210が作成した計算データをクライアントノード90に送信することを、送信履歴テーブルに反映させるために、送信履歴テーブルバッファ182に保持されている送信履歴テーブルの情報を更新する。送信履歴テーブルを更新すると、送信履歴テーブル更新部211は、計算データを計算データ送信部212に供給する。計算データ送信部212は、通信部164を制御し、その計算データをクライアントノード90に送信する。計算データを送信すると、計算データ送信部212は、処理終了を制御部201に通知する。制御部201は、その通知を受け取ると、上述した処理を繰り返す。
The transmission history
制御部163の各部は以上のように動作する。次に以上のような構成およびその動作の詳細について説明する。最初に計算データ作成部210の処理について図8の模式図を参照して説明する。
Each unit of the
計算データ作成部210は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、その送信履歴情報に基づいて、計算データの送信先となるクライアントノード90に未送信のセンサ情報(送信履歴情報に記録されている送信時刻より後に受信したセンサ情報)をセンサ情報バッファ181より取得し、計算データを作成する。つまり、制御部163は、図8に示されるように、端末装置71を介して供給され、データプール162に保持されるセンサ情報231を取得し、それをセンサ情報バッファ181に記録する。センサ情報バッファ181には、このように供給されるセンサ情報が、図8において示されるセンサ情報A乃至センサ情報Eのように順番に蓄積される。なお、センサ情報バッファ181は、各センサ情報を保持した時刻を管理している。
The calculation
仮に計算データ作成部210が、このように保持されるセンサ情報群のうち、最新のセンサ情報のみを用いて計算データを作成するようにした場合、今回の送信先と同じクライアントノード90に前回送信した時刻より後に蓄積されたセンサ情報(そのクライアントノード90が演算中に蓄積されたセンサ情報)であり、最新でないセンサ情報は、そのクライアントノード90に送信されないことになる。例えば、図8において、両矢印232で示されるセンサ情報C乃至センサ情報Eが、クライアントノード91の演算中に蓄積されたセンサ情報であるとすると、これらのうち、最新のセンサ情報Eのみが計算データとして蓄積され、センサ情報Cおよびセンサ情報Dは、クライアントノード91に供給されないことになる。
If the calculation
このように、あるクライアントノード90が、計算結果データを出力した時点での最新の計算データのみを受け取り、その計算データをもとに次のステップでの予測状態を計算するようにすると、各クライアントノード90には、計算中にセンサ情報バッファ181に蓄積されたセンサ情報が通知されなくなる。元々、センサ情報は連続時間情報であるから、そのセンサ情報に基づいて正しく予測を行う為には、クライアントノードは、全てのセンサ情報を取得する必要がある。しかしながら、この方法では、連続時間情報の一部に欠損が生じることになる。つまり、各クライアントノードは離散時間の時系列情報に対して予測計算を行うことになり、結果として、予測の精度が低下する。
In this way, when a
なお、サーバノード81は、センサ情報バッファ181に蓄積されるセンサ情報を順番に各クライアントノードに割り当てていく(分配する)ので、クライアントノード90の数が増えれば増えるほど、離散の程度は大きくなることになる。従って、各クライアントノード90が、連続時間の学習データを用いてアルゴリズムの学習を行っている場合には、学習データと実際の予測対象の状態変化との食い違いが大きくなり、予測計算の精度が低下する。
Since the
そこで、サーバノード81は、送信履歴テーブルを用いて、各クライアントノード90に計算データを送信した時間を記録する。そして、計算データ作成部210は、各クライアントノード90に送信する計算データを作成する際に、最新のセンサ情報だけでなく、その送信時刻の情報を参照して、それより後(計算データを送信するクライアントノード90が計算中に)蓄積されたセンサ情報を全て含めるように計算データを作成する。
Therefore, the
図9の場合、計算データ作成部210は、送信履歴テーブルバッファ182を参照し、クライアントノード91に前回送信した時刻を把握し、それより後に蓄積された送信履歴情報であるセンサ情報C乃至センサ情報Eを用いて計算データを作成し、それをクライアントノード91に供給する。他のクライアントノードであるクライアントノード92およびクライアントノード93についても同様である。
In the case of FIG. 9, the calculation
このようにすることにより、各クライアントノード90は、連続する時系列データ(センサ情報)を用いて予測演算処理を行うことができ、より正確な予測結果を求めることができる。
By doing in this way, each
また、コンテキストデータバッファ183には、クライアントノード90より計算結果データとして供給されるコンテキストデータが保持される。例えば、図8の場合、クライアントノード93の内部状態に関する情報であるコンテキストデータ93A、クライアントノード91の内部状態に関する情報であるコンテキストデータ91A、および、クライアントノード92の内部状態に関する情報であるコンテキストデータ92Aがこの順番に繰り返し蓄積される。
The
例えば、計算対象となる時系列予測計算アルゴリズムが、図9に示すリカレントニューラルネットワークのように、何らかの形で内部状態として計算出力を行った時点でのコンテキストデータを保持するような特徴を持つものである場合、あるクライアントノード90が、前回計算結果を出力した時点で内部に保持するコンテキスト情報を、そのまま保持し、その次の予測計算にそのまま利用するようにすると、そのコンテキスト情報が新たな計算データのセンサ情報に最適でない恐れがある。つまり、前回保持したコンテキストデータは、その前回予測計算に用いたセンサ情報までに対応する情報であり、それ以降のセンサ情報(新たに取得したセンサ情報)については反映されていないので、新たに取得したセンサ情報とは何ら関連性が無く、それまでの学習結果を正しく受け継ぐことができない恐れがある。換言すると、以上のようなアルゴリズムで学習を行った場合、各クライアントノードが互いに独立して学習を行い、互いに関連性の無い学習結果を出力することになり、各学習結果に大きな乖離が生じる恐れがある。
For example, the time-series prediction calculation algorithm to be calculated has a feature that retains context data at the time when calculation output is performed as an internal state in some form, like the recurrent neural network shown in FIG. In some cases, when a
そこで、実際には、そのクライアントノード90の1つ前に計算結果を出力したクライアントノード90の保持するコンテキストデータを用いて予測計算を行う必要がある。そのために、サーバノード81が各クライアントノード90から予測計算結果(計算結果データ)を受信する際に、その結果と同時にそのクライアントノード90が保持する最新のコンテキストデータを受信し、それを時系列データとしてコンテキストデータバッファ183に蓄積する。そして、サーバノード81は、各クライアントノード90に計算対象時系列データ(センサ情報)を渡す際に、そのセンサ情報とともにコンテキストデータの時系列データを送信する。
Therefore, in practice, it is necessary to perform prediction calculation using the context data held by the
具体的には、図8の場合、コンテキストデータバッファ183は、クライアントノード91より新たに供給されたコンテキストデータ91Aを保持する。このとき、計算ノード作成部210は、両矢印233で示される、前回蓄積されたコンテキストデータ91A(図8中において、左から2番目のコンテキストデータ91A)より後に保持され、かつ最新のものでないコンテキストデータ92Aおよびコンテキストデータ93A(右から2番目および3番目のデータ)を含めるように計算データを作成する。つまり、各クライアントノード90には、自分以外のクライアントノードのコンテキストデータが供給される。
Specifically, in the case of FIG. 8, the
図8のクライアントノード91は、以上のようにサーバノード81より送られてきた2ステップ分のコンテキストデータ(時系列データ)を、自己の持つ最新のコンテキストデータの前に挿入して、次の時間の予測計算を実行する。
The
このように、各クライアントノード90が、上述したように他のクライアントノード90のコンテキストデータを取り込むことで、他の影響を自己に含めるようにすることによって、互いのコンテキストデータを共有し、各クライアントノード90内の時系列予測アルゴリズムの持つ内部状態がそれぞれ乖離しないように状態を保つことができる。
In this way, each
なお、コンテキストデータは、クライアントノード90が有する時系列予測計算アルゴリズム自身が生成するデータであるため、予測計算の対象データであるセンサ情報との対応を取ると、クライアントノード90自身が持っているコンテキストデータが最新のコンテキストデータとなる。つまり、各クライアントノード90から得られコンテキストデータを時系列情報としてまとめたものは最新のセンサデータよりも以前の状態までしか決定できない。
Since the context data is data generated by the time series prediction calculation algorithm itself of the
図8を参照して説明すると、例えば、クライアントノード91が図中左側の(図中右から4番目の)コンテキストデータ91Aを出力した時点においては、他のクライアントノード92および93はまだ演算中であり、そのコンテキストデータ91Aより時系列において後になる、そのコンテキストデータ91Aの図中右側の(図中右から3番目と2番目の)コンテキストデータ92Aおよびコンテキストデータ93Aは、まだ出力されていない。従ってクライアントノード91は、その先の予測処理(換言すると、その次のコンテキストデータ91Aを算出する処理)を行う為に必要な、コンテキストデータ92Aおよびコンテキストデータ93Aを取得することができない。
Referring to FIG. 8, for example, when the
しかしながら、これらの未知の部分のコンテキストデータについては、過去のセンサ情報とコンテキストデータの時系列から予測計算を行うことによって生成することができる。つまり、クライアントノード90は、自身が有する最新のコンテキストデータと、新たにサーバノード81より供給された、それ以降のセンサ情報を用いて、保持している最新のコンテキストデータより後のコンテキストデータを生成することができる。結果として、各クライアントノード90は、それらのコンテキストデータが未知のままでも予測計算を行うことができる。
However, the context data of these unknown parts can be generated by performing a prediction calculation from the time series of past sensor information and context data. That is, the
また、図8に示されるように、サーバノード81の制御部163は、クライアントノード90より計算結果データを取得すると、その中に含まれる予測情報に基づいて、ヒューマノイドロボット61に供給するコマンド情報234を作成し、それをデータプール162に保持させる。データプール162に保持されたコマンド情報234は、所定のタイミングで端末装置71により読み出され、ヒューマノイドロボット61に送信される。
As shown in FIG. 8, when the
このとき、各クライアントノード90とサーバノード81との間の通信時間や、各クライアントノード90の計算処理時間が信頼に足る場合(これらの時間がクライアントノード90間で互いに十分等しい場合)には、サーバノード81が各クライアントノード90より取得する計算結果データの順番は、サーバノード81がそれらの計算結果データに対応する計算データを各クライアントノード90に渡した順番に一致し、それら計算結果データをそのままの順番で結合した結合データは、正しい時系列情報になる。しかしながら、例えば、クラスタコンピュータ72が、この時系列予測計算に特化した計算機システムではなく、他の用途に関する処理が共存し、かつ、この時系列予測計算と並列に動いている場合(汎用のクラスタコンピュータなどで運用する場合)、通信経路の混雑具合や他プロセスの処理の負荷状況、または、計算機の個体差等のような不確定要素が多く働くので、サーバノード81は、必ずしも計算データを送信した順番で、各クライアントノード90から計算結果データを得られるとは限らない。
At this time, when the communication time between each
そのため、サーバノード81は、各クライアントノード90に計算データを送信した順番を記録し、各クライアントノード90から計算結果データを受信した際に、その受信したデータの順番が送信時の順番と同一であるかを判定することにより、その受信したデータの有効性を確認する。つまり、確認の結果、計算結果データの受信順が、計算データの送信順と同一か、または、送信順より早い場合、サーバノード81は、その計算結果データを採用する。逆に、計算結果データの受信順が、計算データの送信順よりも遅れた場合、サーバノード81は、そのクライアントノード90からの結果は破棄する。このようにすることにより、サーバノード81は、ヒューマノイドロボット61に送信するコマンド情報の時系列を正しい順番に制御し、時間的に逆戻りすることの無いようにすることができる。つまり、このようにすることにより、サーバノード81は、処理の負荷を増大させずに容易に、より正確なコマンド情報を生成し、ヒューマノイドロボット61に提供することができる。
Therefore, the
このような制御を行う為に、サーバノード81は、各クライアントノード90に計算データを送信した送信時刻を記録する送信履歴テーブルを作成し、それを送信履歴テーブルバッファ182に保持させる。制御部163は、各クライアントノード90から計算結果データを受信すると、送信履歴テーブルに保持される送信履歴テーブルを参照し、その受信したデータの順番が、送信時の順番と同一であるかを判定する。送信履歴テーブルの、その計算結果データに対応するクライアントノードの送信履歴情報に無効値を示す値が含まれている場合、制御部163は、その計算結果データを無効と判定し、無効値を示す値が含まれていない場合は、その計算結果データを有効と判定する。
In order to perform such control, the
送信履歴テーブルは、クライアントノード分のレコードを有しており、各ノード番号に送信時刻を示す情報が関連付けられている。例えば、クライアントノード90が5つ存在する場合、送信履歴テーブルは、図10Aに示されるような構成となる。つまり、各ノード番号に、計算データが送信された送信時刻の情報が関連付けられている。
The transmission history table has records for client nodes, and information indicating the transmission time is associated with each node number. For example, when there are five
このとき、例えば、図10Bに示されるように、時刻72においてノード番号「3」のクライアントノード90が予測計算を終了し、計算結果データを送信したとすると、制御部163は、まず、この送信履歴テーブルのノード番号「3」の送信時刻の値を参照する。その前の図10Aに示されるように、ノード番号「3」の送信時刻の値は「60」であり、有効であるので(無効値ではないので)、制御部163は、次に、送信時刻が、今回計算結果データを取得したノード番号「3」の送信時刻よりも以前の値となっているノード番号の送信時刻を無効値「−1」に設定する。つまり、図10Bの場合、制御部163は、ノード番号「1」と「2」の送信時刻の値を無効値化する(「−1」に設定する)。
At this time, for example, as shown in FIG. 10B, if the
次に、制御部163は、このノード番号「3」のクライアントノード90に対して、新たな計算データを供給するので、そのとき、図10Bに示されるように、送信履歴テーブルのノード番号「3」の送信時刻を「60」から「72」に更新する。
Next, the
次に、図10Cに示されるように、時刻75において、ノード番号「1」のクライアントノード90が予測計算を終了し、計算結果データを送信したとすると、制御部163は、まず、この送信履歴テーブルのノード番号「1」の送信時刻の値を参照する。その前の図10Bに示されるように、ノード番号「1」の送信時刻は無効値である。従って、制御部163は、このノード番号「1」の計算結果データを削除する。そして、制御部163は、このノード番号「1」のクライアントノード90に対して、新たな計算データを供給するので、そのとき、図10Cに示されるように、送信履歴テーブルのノード番号「1」の送信時刻を「−1」から「75」に更新する。
Next, as illustrated in FIG. 10C, when the
次に、図10Dに示されるように、時刻78において、ノード番号「3」のクライアントノード90が予測計算を終了し、計算結果データを送信したとすると、制御部163は、まず、この送信履歴テーブルのノード番号「3」の送信時刻の値を参照する。その前の図10Bに示されるように、ノード番号「3」の送信時刻は「72」で有効である。従って、制御部163は、次に、送信時刻が、今回計算結果データを取得したノード番号「3」の送信時刻よりも以前の値となっているノード番号の送信時刻を無効値「−1」に設定する。つまり、図10Dの場合、制御部163は、ノード番号「4」と「5」の送信時刻の値を無効値化する(「−1」に設定する)。
Next, as illustrated in FIG. 10D, when the
次に、制御部163は、このノード番号「3」のクライアントノード90に対して、新たな計算データを供給するので、そのとき、図10Dに示されるように、送信履歴テーブルのノード番号「3」の送信時刻を「72」から「78」に更新する。
Next, the
このように、制御部163は、送信履歴テーブルを用いて送信時刻を管理し、さらに、計算結果データの出力が遅延した演算は無効とするように制御する。このようにすることにより、制御部163は、計算結果データの時系列を容易に管理することができる。また、制御部163は、送信履歴テーブルの送信時刻に無効値「−1」を設定することにより、計算結果データの有効性を管理するので、送信履歴テーブルの情報量を増大させずに計算結果データの時系列を容易に管理することができる。つまり、制御部163は、このような制御処理によって、常に最新の予測結果を採用しつつ、時系列予測結果の情報が時間的に逆戻りすることの無いように計算結果時系列情報を容易に管理することが可能になる。
As described above, the
図11は、クラスタコンピュータ72のクライアントノード90(クライアントノード91乃至クライアントノード93)の一実施形態に係る、本発明に関する構成例を示すブロック図である。
FIG. 11 is a block diagram showing a configuration example relating to the present invention according to an embodiment of the client node 90 (
クライアントノード90は、通信部251、データバッファ252、および演算部253を有している。
The
通信部251は、所定の通信規格により、サーバノード81と通信を行い、上述した計算データや計算結果データのやり取り等を行う。例えば、通信部251は、サーバノード81より送信される計算データを受信し、それをデータバッファ252に供給して保持させる。また、通信部251は、例えば、データバッファ252に保持されている計算結果データを取得し、それをサーバノード81に送信する。データバッファ252は、DRAMやSRAM等の記憶素子を有しており、所定の容量の記憶領域を有している。データバッファ252は、その記憶領域を用いて、通信部251より供給される計算データ、および、演算部253より供給される計算結果データを一時的に保持する。演算部253は、データバッファ252に保持されている計算データを取得すると、その計算データを用いて、上述したように、時系列データに対する予測計算処理を行う。そして演算部253は、その計算結果を計算結果データとしてデータバッファ252に供給し、保持させる。
The
すなわち、通信部251、データバッファ252、および演算部253は、図3に示される時系列予測器111として動作し、供給される時系列データに基づいて、その時系列データの時間的に後の値(時系列データのその先の値)を予測し、その予測値を計算結果データとして出力する。
That is, the
次に、図2のクラスタコンピュータ72全体の処理について説明する。図12は、クラスタコンピュータ72が実行する処理の全体の流れを説明する図である。
Next, processing of the
クラスタコンピュータ72において、サーバノード81は、ステップS21において、端末装置71より送信される時系列データを元データ271として取得する。実際には、端末装置71は、この時系列データの部分データ(例えば、ヒューマノイドロボット61の関節角情報101やボール座標情報102等のセンサ情報)をその時系列に沿って、順次、サーバノード81のデータプール162に蓄積させる。サーバノード81の制御部163は、そのデータプール162から部分データ(センサ情報)を取り出し、データバッファ165に蓄積する。ただし、この時点では、蓄積された部分データ群は、保持されているのみであり、換言すると、1つの塊(元データ271)としてまとめて管理されている。
In the
次に、サーバノード81は、ステップS22において、この元データ271を複数の分割データに分割する。例えば、図12の場合、サーバノード81は、元データ271を4つの分割データ(分割データ281乃至分割データ284)に分割している。このとき、サーバノード81は、時系列上において隣り合う分割データ同士でその範囲の一部が重複する(境目付近のデータがどちらの部分データにも含まれる)ように時系列データを分割する。例えば、図12の場合、元データ271の内、点線で挟まれている部分Aは分割データ281と分割データ282の両方に含まれており、部分Bは分割データ282と分割データ283の両方に含まれており、部分Cは分割データ283と分割データ284の両方に含まれている。実際には、サーバノード81の制御部163は、データプール162より取り出した部分データ群を、その部分データの単位で区切ることにより分割データを作成する。つまり、各分割データは、1つまたは複数の部分データにより構成される。
Next, the
時系列データを分割すると、サーバノード81は、分割データをクライアントノード90に分配する。例えば、図12の場合、サーバノード81は、分割データ281をクライアントノード291に送信し、分割データ282をクライアントノード292に送信し、分割データ283をクライアントノード293に送信し、分割データ284をクライアントノード294に送信する。このときサーバノード81は、必要に応じて、コンテキストデータもクライアントノード90に分配する。
When the time series data is divided, the
分割データを供給された各クライアントノード90(図12の場合、クライアントノード291乃至クライアントノード294)は、ステップS23において、分割データに対する予測計算を並列的に(それぞれ互いに独立して)行う(並列計算する)。そして、各クライアントノード90は、得られた計算結果をそれぞれ、サーバノード81に送信する。
Each client node 90 (in the case of FIG. 12,
サーバノード81は、ステップS24において、それらの計算結果を受信すると、それらを時系列に沿って集約し、1つの出力用時系列データ301(例えば、関節角コマンド105等のコマンド情報)を作成し、それを端末装置71に出力する。実際には、サーバノード81の制御部163は、クライアントノード90より供給される計算結果データを、順次、有効性を確認し、有効な場合のみ、その計算結果データに対するコマンド情報を作成し、それをデータプール162に蓄積させる。端末装置71は、そのデータプール162に蓄積されるコマンド情報群(出力用時系列データ)を所定のタイミングで順次読み出し、ヒューマノイドロボット61に転送する。つまり、出力用時系列データ301の出力は、1度に出力されるのではなく、その部分データが時系列に沿って順次出力されるが、出力回数が複数化されているのみであり、本質的には、1つの塊(出力用時系列データ301)としてまとめて管理されている。
When the
このようにサーバノード81が時系列データを、各範囲の一部が重複するように分割し、その分割データを複数のクライアントノード90に並行して処理させることにより、クラスタコンピュータ72は、より高速に予測計算を行うことができる。
As described above, the
このような予測計算処理の効果について具体的に説明する。図13は、予測計算処理の例を説明する図である。図13において、図中上側に示されるグラフは、ヒューマノイドロボット61より送信されるセンサ情報の推移を示すグラフであり、横軸が時刻を示し、縦軸が状態量を示している。つまり、このグラフは、時系列データの値の例を示すグラフである。このグラフにおける実線の曲線は、センサ情報の例を示している。このセンサ情報に基づいて予測計算を行った結果が点線の曲線で示されている。なお点線の直線の縦線は、この処理における時刻の単位である「ステップ」を示している。つまり、クラスタコンピュータ72内においては、この時間間隔でデータの授受や入出力等が行われる。
The effect of such prediction calculation processing will be specifically described. FIG. 13 is a diagram illustrating an example of the prediction calculation process. In FIG. 13, the graph shown on the upper side in the drawing is a graph showing the transition of sensor information transmitted from the
例えば、ある時刻においてその次のステップのセンサ情報の値を予測する場合、入力データとして9ステップ分のセンサ情報を必要とし、さらに予測計算時間として3ステップ分の時間が必要であるとする。例えば、クライアントノード91が時刻Tにおいて時刻T+1のセンサ情報の値(丸で示される点)を予測する場合、入力データとして時刻Aから時刻Bまでのセンサ情報を必要とし、予測計算時間として時刻Bから時刻Tまでの時間が必要になる。つまり、時刻A乃至時刻Bの時間がデータ収集時間となり、時刻B乃至時刻Tの時間が予測計算時間となる。
For example, when predicting the value of the sensor information of the next step at a certain time, it is assumed that sensor information for 9 steps is required as input data, and further, a time for 3 steps is required as a prediction calculation time. For example, when the
このような場合において、1台のクライアントノード90において予測計算を行うようにすると、クラスタコンピュータ72は、9+3=12ステップ毎にしか予測結果を出力することができない。つまり、1台の計算機で時系列状態予測計算を実行し、ヒューマノイドロボット61の実時間制御を実現しようとすると、実際には「環境情報の取得(データ収集)→予測計算→予測結果の出力」をシリアルに繰り返し実行することになる。この繰返し周期(例えば上述の12ステップ)は多くの場合予測計算のスピード(計算能力)に依存する。従って、ヒューマノイドロボット61の制御周期は、長い(ステップ数が多い)だけでなく、計算機(クライアントノード90)の負荷状態等に応じて無視出来ないほど変化してしまい、予測計算処理の安定性も低下する。
In such a case, if the prediction calculation is performed in one
そこで情報処理システム51においては、この予測計算を、クラスタコンピュータ72を利用することによって並列化して実行させる。これにより、情報処理システム51は、各クライアントノード90の担当するデータ量を小さくし、それぞれの計算量を削減することができ、結果として、最終結果を得るまでの時間を短縮することができる。従って、情報処理システム51は、単一の計算機の能力に依存せずに制御周期をより高速化することができる。さらに、情報処理システム51は、複数のクライアントノード90に並行して予測処理を実行させることにより、各ノードの負荷状態等が制御に与える影響の割合を低減し、制御をより安定化することができる。
Therefore, in the
ただし、従来の並列計算において、サーバノードは、ある大きな入力データの塊を、互いに重なりの無いように分割して各計算ノードに割り当てる。この手法は、分割された各データ間、および各データに対する処理間に因果関係がない場合には適用可能であるが、時系列予測計算アルゴリズムのように、前の状態の結果が次の状態に反映されるような計算対象、例えば、時系列に沿って因果関係を有する内容の時系列データであるセンサ情報を計算対象とする場合には適用できない。 However, in the conventional parallel computation, the server node divides a large chunk of input data so as not to overlap each other, and assigns each of the computation nodes. This method can be applied when there is no causal relationship between the divided data and the processing for each data, but the result of the previous state is changed to the next state as in the time series prediction calculation algorithm. It is not applicable when a calculation target that is reflected, for example, sensor information that is time-series data having a causal relationship along the time series is to be calculated.
例えば、第1の計算ノードの処理結果を、第2の計算ノードが参照するような場合、第2の計算ノードは第1の計算ノードが処理を終了するまで待機しなければならない。つまり、このような場合、各計算ノードは並列に処理を行うことができず、1台の計算機で演算するのと等価になってしまう。 For example, when the second calculation node refers to the processing result of the first calculation node, the second calculation node must wait until the first calculation node finishes the processing. That is, in such a case, each computation node cannot perform processing in parallel, which is equivalent to computing with a single computer.
これに対して、サーバノード81は、各クライアントノード90に供給するセンサ情報の範囲が一部重複(オーバーラップ)するようにセンサ情報を分割する。具体的には、計算データ作成部210は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、センサ情報バッファ181に保持されたセンサ情報の内、送信先となるクライアントノード90の送信履歴情報の送信時刻より後に、センサ情報バッファ181に保持されたセンサ情報を取り出し、それに、コンテキストデータバッファ183より取り出したコンテキストデータを合わせて計算データを作成する。
On the other hand, the
つまり、計算データ作成部210は、時系列に沿って因果関係を有する内容の時系列データ(センサ情報)を、その時系列に沿って複数の部分データに、各部分データの時系列上の範囲の一部が、隣り合う(分割(抽出)された順序が連続する)部分データ同士で互いに重複するように、分割する。そして計算データ作成部210は、各部分データについて計算データを作成する。換言すると、計算データ作成部210は、時系列データ(センサ情報バッファ181に保持されたセンサ情報)から、その時系列に沿って抽出範囲をずらしながら、その抽出範囲内の時系列データである部分データを繰り返し抽出することにより、時系列データを分割する。このとき、計算データ作成部210は、今回の抽出範囲と前回の抽出範囲とで、その一部が重複するように抽出範囲をずらす。より具体的には、計算データ作成部210は、毎回、要求される計算結果データの出力間隔に応じた、抽出範囲よりも短い時間分、抽出範囲をずらす。
That is, the calculation
このように、時系列データをその時系列に沿って分割して得られる各部分データの範囲の一部が、時系列上隣り合う(分割(抽出)された順序が連続する)部分データ同士で互いに重複するように、時系列データを分割することにより、時系列データ(センサ情報)内の因果関係を維持しながら並列計算を実現することができ、データ収集時間や予測計算時間より短い時間間隔で、より正確な予測結果を出力することができる。 In this way, part of the range of each partial data obtained by dividing the time series data along the time series is mutually adjacent in the time series (the order of division (extraction) is continuous). By dividing the time series data so as to overlap, parallel calculation can be realized while maintaining the causal relationship in the time series data (sensor information), and at a time interval shorter than the data collection time and the predicted calculation time. More accurate prediction results can be output.
例えば、図13に示されるように、時刻Aよりデータ収集を開始するクライアントノード91に対して、クライアントノード92が時刻A+1よりデータ収集を開始し、クライアントノード93が時刻A+2よりデータ収集を開始するようにする。このようにすることにより、クライアントノード92は、時刻T+1において時刻T+2のセンサ情報の値(四角で示される点)を予測し、クライアントノード93は、時刻T+2において時刻T+3のセンサ情報の値(三角で示される点)を予測することができる。つまり、各クライアントノード90が予測結果を出力するタイミングは1ステップずつズレている。すなわち、クラスタコンピュータ72は、データ収集と予測計算により12ステップも必要であるにも関わらず、1ステップ毎に、より正確な予測結果を出力することができる。
For example, as shown in FIG. 13, for the
より具体的に説明すると、例えば、単一計算機で実行した予測計算の計算時間が500msecであるが、ヒューマノイドロボット61の制御周期はその計算周期より短くする必要があり、結果として、端末装置71は、クラスタコンピュータ72から計算出力を10msec間隔で得る必要があるものとする。この場合、500/10=50なので、クライアントノード90を50ノード用意すればよい。サーバノード81は、ヒューマノイドロボット61より供給されるセンサ情報から、時系列の範囲に沿って切り出し範囲を10msecずつ変えながら部分データを切り出し、各クライアントノード90に送信(分配)する。つまり、サーバノード81は、例えば、切り出した1つ目部分データをクライアントノード91に送信し、切り出した2つ目部分データをクライアントノード92に送信し、切り出した3つ目部分データをクライアントノード93に送信する。さらに、サーバノード81は、クライアントノード91の処理が終了すると、切り出した4つ目部分データをクライアントノード91に送信する。このような処理を繰り返し行うと、サーバノード81には、10msec毎に、各クライアントノード90から計算結果が返ってくる。サーバノード81は、それらの結果をつなげ、時系列予測結果を得、それを端末装置71に供給する。すなわち、制御システム62は、10msecの制御周期を実現することができる。
More specifically, for example, the calculation time of the prediction calculation executed by a single computer is 500 msec. However, the control period of the
なお、上述したように、クライアントノード数は、下記の式(1)のように決定することができる。 As described above, the number of client nodes can be determined as shown in the following equation (1).
クライアントノード数=(単一計算機で1ステップの計算に要する時間)/(必要な計算出力周期) ・・・(1) Number of client nodes = (time required for one step calculation with a single computer) / (necessary calculation output cycle) (1)
なお、図13において、実際にはデータの収集はサーバノード81が行う為、時刻Tにおいて予測計算を終了したクライアントノード91は、時刻Tより次の予測計算を開始することができる。つまり、時刻Tにおいて予測計算を終了したクライアントノード91は、次に、時刻A+3よりデータ収集を開始し、時刻B+3(=T)より予測計算を開始し、時刻T+3において、時刻T+4のセンサ情報の値(丸で示される点)を予測することができる。
In FIG. 13, since the
このようにサーバノード81が時系列データであるセンサ情報を、その範囲が重複するように分割し、それぞれを所定の順番でクライアントノード91乃至クライアントノード93に分配(送信)するようにし、そのデータに対して、クライアントノード91乃至クライアントノード93が順次予測計算を繰り返すことにより、クラスタコンピュータ72は、データ収集と予測計算により12ステップも必要であるにも関わらず、1ステップ毎に予測結果を出力することができる。
In this way, the
つまり、図2の情報処理システム51は、「観測された過去の状態量変化に基づいて次のステップでの状態量を予測する」というアルゴリズム(予測計算)を、並列計算環境(クラスタコンピュータ72)を利用することによって、より高速に計算することができる。
That is, the
以上のようなことから、制御システム62は、より高速に、かつ、より正確に予測計算を行い、より短い制御周期でヒューマノイドロボット61を制御することができる。つまり、制御システム62は、より的確にヒューマノイドロボット61を制御することができる。
As described above, the
以上のような制御処理の流れを説明する。 The flow of the control process as described above will be described.
上述したように、情報処理システム51により実行される処理の流れは大きく2つに分けることができる。つまり、ヒューマノイドロボット61より送信されたセンサ情報が、端末装置71を介して、サーバノード81のデータプール162に蓄積される処理、および、データプール162に蓄積されるコマンド情報が端末装置71を介してヒューマノイドロボット61に供給される処理からなる制御情報の送受信処理と、データプール162に蓄積されるセンサ情報をクライアントノードに分配して予測計算処理を並列に行わせ、それら計算結果を集めて結合し、コマンド情報を生成し、それをデータプール162に蓄積させる時系列予測処理に分けることができる。
As described above, the flow of processing executed by the
まず、端末装置71が中継処理を行う制御情報の送受信処理について説明する。図14は、その送受信処理の例を説明するフローチャートである。
First, transmission / reception processing of control information for which the
最初にステップS61において、端末装置71の入力部141は、CPU131に制御され、制御の開始を指示する入力を受け付ける。例えば、ユーザがキーボードを操作する等してヒューマノイドロボット61の制御の開始を指示すると、入力部141はそれを受け付け、無線通信部144および通信部145に供給する。無線通信部144および通信部145は、その指示を取得すると、それぞれ、それをヒューマノイドロボット61およびサーバノード81に送信(供給)する。
First, in step S <b> 61, the
ヒューマノイドロボット61の無線通信部123は、ステップS41において、制御部122に制御されて、端末装置71から送信(供給)された制御開始指示を受信(取得)すると、それを制御部122に供給する。制御部122は、ステップS42においてセンサ部121よりセンサ情報を取得する。なお、このときモータ部124に対するコマンド情報の一部または全部をセンサ情報に付加するようにしてもよい。センサ情報を取得すると制御部122は、そのセンサ情報を無線通信部123に供給する。無線通信部123は、ステップS43において、そのセンサ情報を端末装置71に送信(供給)する。
When the
端末装置71の無線通信部144は、CPU131に制御され、ステップS62においてそのセンサ情報を取得すると、それを通信部145に供給する。通信部145は、センサ情報を供給されると、ステップS63において、それをサーバノード81に供給する。
When the
サーバノード81の通信部161は、ステップS81において、端末装置71より供給される制御開始指示を取得すると、センサ情報の受け付けを開始する。そして、ステップS82において、端末装置71より供給されたセンサ情報を取得すると、通信部161は、それをデータプール162に供給する。センサ情報を供給されたデータプール162は、ステップS83において、そのセンサ情報を保持する。通信部161は、さらに、データプール162に保持されている、ヒューマノイドロボット61用のコマンド情報を読み出し、ステップS84において、それを端末装置71に供給する。
When the
端末装置71の通信部145は、ステップS64において、そのコマンド情報を取得すると、CPU131に制御されて、それを無線通信部144に供給する。無線通信部144は、コマンド情報を取得すると、ステップS65において、そのコマンド情報をヒューマノイドロボット61に送信(供給)する。ヒューマノイドロボット61の無線通信部123は、ステップS44において、そのコマンド情報を取得すると、それを制御部122に供給する。制御部122は、ステップS45において、そのコマンド情報を適宜モータ部124に供給することにより、モータ制御を行う。このように各装置間で情報を授受することにより、ヒューマノイドロボット61は、センサ情報(例えば、ボールの動きや現在の自分の姿勢)に応じた動作を行うことができる。換言すると、以上のように情報を授受することにより、制御システム62は、ヒューマノイドロボット61の現在の姿勢やボールの動きに応じて、適切にヒューマノイドロボット61の動作を制御することができる。
When the
なお、端末装置71の入力部141は、CPU131に制御され、ステップS66において、制御終了指示の入力を受け付ける。例えば、ユーザがヒューマノイドロボット61の制御を終了するように指示を入力すると、入力部141は、ステップS66においてその指示を受け付け、その指示を無線通信部144および通信部145に供給する。無線通信部144および通信部145は、その指示を受け取ると、その指示をそれぞれヒューマノイドロボット61またはサーバノード81に送信(供給)する。
Note that the
ヒューマノイドロボット61の無線通信部123は、ステップS46においてその指示を受信(取得)すると、その指示を制御部122に供給する。制御部122は、ステップS47において、以上のような制御処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS41に戻し、それ以降の処理を繰り返す。また、例えばステップS46において端末装置71より処理終了指示を受け付けるなどし、ステップS47において制御処理を終了すると判定した場合、制御部122は、制御処理を終了し、上述したデータの送受信処理を終了する。
When the
また、端末装置71のCPU131は、ステップS67において、以上のような制御処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS62に戻し、それ以降の処理を繰り返す。また、例えばステップS66においてユーザより終了指示を受け付けるなどし、ステップS67において制御処理を終了すると判定した場合、CPU131は、制御処理を終了し、上述したデータの送受信処理を終了する。
In step S67, the
サーバノード81の通信部161は、ステップS85において処理終了指示を取得すると、その指示を制御部163に供給する。制御部163は、ステップS86において、以上のような制御処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS82に戻し、それ以降の処理を繰り返す。また、例えばステップS85において端末装置71より処理終了指示を受け付けるなどし、ステップS86において制御処理を終了すると判定した場合、制御部163は、制御処理を終了し、上述したデータの送受信処理を終了する。
When the
次に、クラスタコンピュータ72による時系列予測処理について説明する。この時系列予測処理は、サーバノード81によるサーバ処理と、クライアントノード90によるクライアント処理の2つの処理により構成される。
Next, time series prediction processing by the
最初に、サーバノード81により実行されるサーバ処理について、図15および図16のフローチャートを参照して説明する。
First, server processing executed by the
最初に、制御部163の制御部201は、ステップS101において、サーバ処理を終了するか否かを判定する。終了しないと判定した場合、制御部201は、処理をステップS102に進める。ステップS102において、計算結果データ受信制御部202は、クライアントノード90より計算結果データを受信したか否かを判定する。受信していないと判定した場合、計算結果データ受信制御部202は、処理をステップS101に戻し、それ以降の処理を繰り返す。ステップS102において、計算結果データを受信したと判定した場合、計算結果データ受信制御部202は、処理をステップS103に進める。
First, in step S101, the
つまり、サーバノード81は、クライアントノード90からの計算結果データの送信をきっかけとして、サーバ処理を実質的に開始する。最初は、クライアントノード90には計算データを送信していないので、クライアントノード90からはダミーの計算結果データ(データの内容が空の計算結果データ)が送信されることになる。サーバノード81は、このダミーデータを受信することにより、そのクライアントノード90が動作可能である(予測計算を行うことができる)と判断し、実質的なサーバ処理(初回のステップS103以降の処理)を開始する。このように、ダミーデータを受信することによりサーバ処理を開始するようにすることにより、サーバノード81は、サーバ処理を開始するための構成を新たに設ける必要がなく、製造コストを低減させることができる。
That is, the
ステップS103において、送信元特定部103は、受信した計算結果データの例えばヘッダ等を参照し、その送信元のクライアントノード90を特定する。有効性確認部204は、ステップS104において、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、その計算結果データに対応する送信データの送信履歴情報に基づいて、受信した計算結果データの有効性を確認する。有効性確認部204は、ステップS105において、その確認結果に基づいて、送信履歴情報の送信時刻の値が有効値であるか(無効値であるか)否かを判定する。送信時刻の値が有効値であると判定した場合、有効性確認部204は、その計算結果データが有効であると判定し、処理をステップS106に進める。
In step S103, the transmission
ステップS106において、無効値化部205は、遅延した計算データの送信履歴を無効値化する。つまり、無効値化部205は、受信した計算結果データに対応する計算データよりも先にクライアントノード90に送信された計算データに対応する計算結果データ(本来、受信した計算結果データよりも先に受信する筈であったが未だ受信していない計算結果データ)を無効に設定するために、その計算結果データに対応する送信履歴情報を無効値化する(送信時刻に無効値を挿入する)ように送信履歴テーブルを更新する。
In step S106, the invalid
コンテキストデータ保持制御部206は、ステップS107において、クライアントノード90より受信したコンテキストデータをコンテキストデータバッファ183に保持させる。コンテキストデータは、計算結果であるセンサ予測情報とともに計算結果データとしてクライアントノード90より送信される。
In step S107, the context data holding
コマンド情報作成部207は、ステップS108において、計算結果データを用いて、ヒューマノイドロボット61に送信するコマンド情報を生成し、それをデータプール162に保持させる。ステップS108の処理を終了すると、コマンド情報作成部207は、処理を図16のステップS121に進める。
In step S <b> 108, the command information creation unit 207 generates command information to be transmitted to the
また、図15のステップS105において、送信時刻の値が有効値でない(無効値である)と判定した場合、有効性確認部204は、その計算結果データが無効であると判定し、その計算データを破棄し、処理をステップS109に進める。ステップS109において、コンテキストデータ保持制御部206は、コンテキストデータバッファ183に保持されている1つ前のステップのコンテキスト情報を複製し、それをコンテキストデータバッファ183に保持させる。ステップS109の処理を終了すると、コンテキストデータ保持制御部206は、処理を図16のステップS121に進める。
If it is determined in step S105 of FIG. 15 that the value of the transmission time is not a valid value (invalid value), the
図16のステップS121において、センサ情報受信部208は、データプール162よりセンサ情報を取得(受信)する。センサ情報更新確認部209は、ステップS122において、その取得したセンサ情報を参照し、データプール162のセンサ情報が更新されたか否かを判定する。つまり、センサ情報更新確認部209は、センサ情報受信部208が取得したセンサ情報が、前回取得したセンサ情報と異なるか否かを確認することにより、データプール162に新たなセンサ情報が蓄積されたか否かを確認する。
In step S <b> 121 of FIG. 16, the sensor
そして、データプール162のセンサ情報が更新されていない、すなわち、センサ情報受信部208が取得したセンサ情報が新しいものではないと判定した場合、センサ情報更新確認部209は、処理をステップS121に戻し、それ以降の処理を繰り返す。つまり、センサ情報受信部208は、センサ情報更新確認部209の確認に基づいて新しいセンサ情報を取得したと確認できるまで、データプール162よりセンサ情報を繰り返し取得する。
If it is determined that the sensor information in the
そして、ステップS122において、データプール162のセンサ情報が更新された、すなわち、センサ情報受信部208が取得したセンサ情報が新しいものであると判定した場合、センサ情報更新確認部209は、処理をステップS123に進める。
In step S122, when it is determined that the sensor information of the
ステップS123において、センサ情報受信部208は、新しいものと確認されたセンサ情報をセンサ情報バッファ181に保持させる。ステップS124において、計算データ作成部210は、クライアントノード90に送信する計算データを作成する。計算データの作成処理については、図17のフローチャートを参照して後述する。
In step S123, the sensor
図16のステップS125において、送信履歴テーブル更新部211は、計算データ作成部210が作成した計算データのクライアントノード90への送信を反映させるために、送信履歴テーブル182に保持されている送信履歴テーブルを更新する。ステップS126において、計算データ送信部212は、その計算データを、今回の送信先として選択されたクライアントノード90に送信する。計算データを送信すると、計算データ送信部212は、その旨を制御部201に通知し、処理を図15のステップS101に戻す。
In step S125 of FIG. 16, the transmission history
つまり、制御部163の各部は、ステップS101乃至ステップS109の各処理、並びに、ステップS121乃至ステップS126の各処理を、繰り返し実行することにより、ヒューマノイドロボット61より供給されるセンサ情報に対する予測計算結果であるコマンド情報を出力する。
That is, each unit of the
そして、図15のステップS101において、このサーバ処理を終了すると判定した場合、制御部201は、処理をステップS110に進め、終了処理を行った後、サーバ処理を終了する。
If it is determined in step S101 in FIG. 15 that the server process is to be terminated, the
サーバノード81の制御部163は、以上のようにサーバ処理を行う。
The
次に、図16のステップS124において実行される計算データ作成処理を、図17のフローチャートを参照して説明する。 Next, the calculation data creation process executed in step S124 of FIG. 16 will be described with reference to the flowchart of FIG.
計算データ作成処理を開始すると、図7の計算データ作成部210は、ステップ141において、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、前回の計算データの送信時刻を特定する。
When the calculation data creation process is started, the calculation
次に、ステップS142において、計算データ作成部210は、センサ情報バッファ181に保持されているセンサ情報の中から、ステップS141において特定した前回の送信時刻以降のセンサ情報を選択する。計算データ作成部210は、次に、ステップS143に処理を進め、コンテキストデータバッファ183に保持されているコンテキストデータの中から、ステップS141において特定した前回の送信時刻以降のコンテキスト情報を選択する。そして、計算データ作成部210は、ステップS144において、選択したセンサ情報およびコンテキスト情報を用いて計算データを作成する。計算データを作成した計算データ作成部210は、処理を図16のステップS124に戻し、ステップS125以降の処理を実行させる。
Next, in step S142, the calculation
以上のようにサーバノード81がサーバ処理を行うことにより、制御システム62は、より高速に、かつ、より正確に予測計算を行い、より短い制御周期でヒューマノイドロボット61を制御することができる。つまり、制御システム62は、より的確にヒューマノイドロボット61を制御することができる。
As described above, when the
次に、以上のようなサーバ処理に対応して、クライアントノード90により実行されるクライアント処理について、図18のフローチャートを参照して説明する。
Next, client processing executed by the
クライアントノード90の通信部251は、ステップS161において、計算結果データをサーバノード81に送信する。つまり、通信部251は、クライアントノード処理が開始されると最初に計算結果データをサーバノード81に送信する。もちろん、最初は予測計算が行われていないので、通信部251は、ダミーの計算結果データ(実質的に空の計算結果データ)をサーバノード81に送信する。
The
ステップS162において、通信部251は、クライアント処理を終了するか否かを判定する。終了しないと判定した場合、通信部251は、処理をステップS163に進める。ステップS163において、通信部251は、サーバノード81より新たな計算データを受信したか否かを判定する。受信していないと判定した場合、通信部251は、処理をステップS162に戻し、それ以降の処理を繰り返す。
In step S162, the
ステップS163において、新たな計算データを受信したと判定した場合、通信部251は、処理をステップS164に進める。ステップS164において、通信部251は、受信した計算データをデータバッファ252に供給し、セットする。データバッファ252は、供給された計算データを保持する。ステップS165において、演算部253は、データバッファ252に保持されている計算データを取得し、時系列予測計算処理を実行し、センサ情報の予測値を生成し、それをデータバッファ252に保持させ、処理をステップS161に戻す。ステップS161において、通信部251は、データバッファ252に保持されているセンサ情報の予測値(センサ予測情報)と、クライアントノード90の内部状態の情報(コンテキストデータ)を計算結果データとしてサーバノード81に送信する。つまり、予測計算が行われた後は、通信部251は、本物の(ダミーデータでない)計算結果データをサーバノード81に送信する。
If it is determined in step S163 that new calculation data has been received, the
クライアントノード90の各部は、以上のように、ステップS161乃至ステップS165を繰り返し実行し、サーバノード81より供給される計算データに対して予測計算を行い、計算結果データを返す。そして、ステップS162においてクライアント処理を終了すると判定した場合、通信部251は、処理をステップS166に進め、終了処理を行った後、クライアント処理を終了する。
As described above, each unit of the
以上のようにクライアント処理を行うことにより、クライアントノード90は、サーバノード81より供給される計算データに対して予測計算を行い、計算結果データを返すことができる。これにより、サーバノード81は、ヒューマノイドロボット61より供給されるセンサ情報に対応するコマンド情報をヒューマノイドロボット61に返すことができる。従って、制御システム62は、より高速に、かつ、より正確に予測計算を行い、より短い制御周期でヒューマノイドロボット61を制御することができる。つまり、制御システム62は、より的確にヒューマノイドロボット61を制御することができる。
By performing client processing as described above, the
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、上述した情報処理システム51全体、または情報処理システム51を構成する一部の要素は、それぞれ、図19に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
The series of processes described above can be executed by hardware or can be executed by software. In this case, for example, the entire
図19において、パーソナルコンピュータ400のCPU401は、ROM402に記憶されているプログラム、または記憶部413からRAM403にロードされたプログラムに従って各種の処理を実行する。RAM403にはまた、CPU401が各種の処理を実行する上において必要なデータなども適宜記憶される。
In FIG. 19, the
CPU401、ROM402、およびRAM403は、バス404を介して相互に接続されている。このバス404にはまた、入出力インタフェース410も接続されている。
The
入出力インタフェース410には、キーボード、マウスなどよりなる入力部411、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部412、ハードディスクなどより構成される記憶部413、モデムなどより構成される通信部414が接続されている。通信部414は、インターネットを含むネットワークを介しての通信処理を行う。
The input /
入出力インタフェース410にはまた、必要に応じてドライブ415が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア421が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部413にインストールされる。
A
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。 When the above-described series of processing is executed by software, a program constituting the software is installed from a network or a recording medium.
この記録媒体は、例えば、図19に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア421により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM402や、記憶部413に含まれるハードディスクなどで構成される。
For example, as shown in FIG. 19, the recording medium is distributed to distribute the program to the user separately from the apparatus main body, and includes a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk (
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。 In the present specification, the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but is not necessarily performed in chronological order. It also includes processes that are executed individually.
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。 Further, in this specification, the system represents the entire apparatus composed of a plurality of devices (apparatuses). In the above, the configuration described as one device may be divided and configured as a plurality of devices. Conversely, the configurations described above as a plurality of devices may be combined into a single device. Of course, configurations other than those described above may be added to the configuration of each device. Further, if the configuration and operation of the entire system are substantially the same, a part of the configuration of a certain device may be included in the configuration of another device.
51 情報処理システム, 61 ヒューマノイドロボット, 62 制御システム, 71 端末装置, 72 クラスタコンピュータ, 81 サーバノード, 90乃至93 クライアントノード, 101 関節角情報, 102 ボール座標情報, 103 関節角予測情報, 104 ボール座標予測情報, 105 関節角コマンド, 111 時系列予測器, 121 センサ部, 122 制御部, 123 無線通信部, 124 モータ部, 141 入力部, 144 無線通信部, 145 通信部, 161 通信部, 162 データプール, 163 制御部, 164 通信部, 165 データバッファ, 181 センサ情報バッファ, 182 送信履歴テーブルバッファ, 183 コンテキストデータバッファ, 201 制御部, 202 計算結果データ受信制御部, 203 送信元特定部, 204 有効性確認部, 205 無効値化部, 206 コンテキストデータ保持制御部, 207 コマンド情報作成部, 208 センサ情報受信部, 209 センサ情報更新確認部, 210 計算データ作成部, 211 送信履歴テーブル更新部, 212 計算データ送信部, 251 通信部, 252 データバッファ, 253 演算部, 400 パーソナルコンピュータ
51
Claims (10)
前記第1の情報処理装置により送信される前記計算データを用いて前記計算処理を行い、計算結果を前記第1の情報処理装置に返す複数の第2の情報処理装置と
を備え、
前記第1の情報処理装置が、各第2の情報処理装置に、互いに異なる計算データを供給し、前記計算処理を並列に実行させる情報処理システムであって、
前記第1の情報処理装置は、
時系列に沿って因果関係を有する内容の第1の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、前記時系列に沿って複数の部分データに分割し、前記部分データを用いて前記計算データを作成する計算データ作成手段と、
前記計算データ作成手段により作成される前記計算データを、前記第2の情報処理装置のそれぞれに、所定の順番に分配するように供給する計算データ供給手段と、
前記計算データ供給手段により前記計算データが供給される前記第2の情報処理装置より、前記計算処理の結果を含む計算結果データを取得する計算結果データ取得手段と、
前記計算結果データ取得手段により取得される前記計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データを作成する時系列データ作成手段と
を備え、
前記第2の情報処理装置は、
前記計算データ供給手段により供給される前記計算データを取得する計算データ取得手段と、
前記計算データ取得手段により取得された前記計算データに基づいて前記計算処理を行う計算処理手段と、
前記計算処理手段による前記計算処理の結果を含む前記計算結果データを前記第1の情報処理装置に供給する計算結果データ供給手段と
を備えることを特徴とする情報処理システム。 A first information processing apparatus for transmitting calculation data for performing predetermined calculation processing;
A plurality of second information processing devices that perform the calculation processing using the calculation data transmitted by the first information processing device and return a calculation result to the first information processing device;
The first information processing apparatus is an information processing system that supplies different calculation data to each second information processing apparatus and executes the calculation processing in parallel.
The first information processing apparatus includes:
Dividing the first time-series data having a causal relationship along the time series into a plurality of partial data along the time series so that a part of the range overlaps between adjacent partial data; Calculation data creating means for creating the calculation data using the partial data;
Calculation data supply means for supplying the calculation data created by the calculation data creation means to each of the second information processing devices so as to be distributed in a predetermined order;
Calculation result data acquisition means for acquiring calculation result data including the result of the calculation processing from the second information processing apparatus to which the calculation data is supplied by the calculation data supply means;
Using the calculation result data acquired by the calculation result data acquisition means, and creating time-series data creating means for creating second time-series data having a causal relationship along the time series,
The second information processing apparatus
Calculation data acquisition means for acquiring the calculation data supplied by the calculation data supply means;
Calculation processing means for performing the calculation processing based on the calculation data acquired by the calculation data acquisition means;
An information processing system comprising: calculation result data supply means for supplying the calculation result data including the result of the calculation processing by the calculation processing means to the first information processing apparatus.
時系列に沿って因果関係を有する内容の第1の時系列データを、前記時系列に沿って複数の部分データに分割し、前記部分データを用いて前記計算データを作成する計算データ作成手段と、
前記計算データ作成手段により作成される前記計算データを、前記他の情報処理装置のそれぞれに、所定の順番に分配するように供給する計算データ供給手段と
を備え、
前記計算データ作成手段は、各部分データの時系列上の範囲の一部が、隣り合う部分データ同士で互いに重複するように、前記第1の時系列データを分割する
ことを特徴とする情報処理装置。 An information processing apparatus that supplies calculation data to be processed by the calculation process to each of a plurality of other information processing apparatuses that perform a predetermined calculation process,
Calculation data creating means for dividing first time series data having a causal relationship along a time series into a plurality of partial data along the time series and creating the calculation data using the partial data; ,
Calculation data supply means for supplying the calculation data created by the calculation data creation means to each of the other information processing apparatuses so as to be distributed in a predetermined order; and
The calculation data creating means divides the first time-series data so that a part of a time-series range of each partial data overlaps between adjacent partial data. apparatus.
前記計算結果データ取得手段により取得される前記計算結果データを用いて、時系列に沿って因果関係を有する内容の第2の時系列データを作成する時系列データ作成手段と
をさらに備えることを特徴とする請求項2に記載の情報処理装置。 Calculation result data acquisition means for acquiring calculation result data including the calculation processing result from the other information processing apparatus to which the calculation data is supplied by the calculation data supply means;
And further comprising time series data creating means for creating second time series data having a causal relationship along the time series using the calculation result data obtained by the calculation result data obtaining means. The information processing apparatus according to claim 2.
前記時系列データ作成手段は、前記有効性確認手段により有効であると確認される前記計算結果データのみを用いて前記第2の時系列データを作成する
ことを特徴とする請求項3に記載の情報処理装置。 Further comprising validity checking means for checking the validity of the calculation result data acquired by the calculation result data acquiring means;
The said time series data preparation means produces the said 2nd time series data only using the said calculation result data confirmed that it is effective by the said effectiveness confirmation means. The said 2nd time series data are characterized by the above-mentioned. Information processing device.
ことを特徴とする請求項4に記載の情報処理装置。 The information according to claim 4, wherein the validity confirmation unit invalidates the calculation result data in which the acquisition order by the calculation result data acquisition unit is delayed from the supply order by the calculation data supply unit. Processing equipment.
前記計算データ作成手段は、前記計算データ供給手段が同じ他の情報処理装置に複数回前記計算データを供給する場合、前記管理手段により管理される前記供給時刻に基づいて時系列上の範囲を決定し、前記範囲内の部分データを用いて前記計算データを作成する
ことを特徴とする請求項2に記載の情報処理装置。 Management means for managing the supply time of the calculation data by the calculation data supply means for each of the other information processing devices that supply the calculation data,
The calculation data creation means determines a time-series range based on the supply time managed by the management means when the calculation data supply means supplies the calculation data to the same other information processing apparatus a plurality of times. The information processing apparatus according to claim 2, wherein the calculation data is created using partial data within the range.
ことを特徴とする請求項6に記載の情報処理装置。 The information processing apparatus according to claim 6, wherein the calculation data creation unit creates the calculation data using partial data after the supply time managed by the management unit.
前記計算結果データ取得手段により取得される前記コンテキストデータを保持する保持手段をさらに備え、
前記計算データ作成手段は、前記他の情報処理装置が前記部分データおよび前記コンテキストデータを用いて前記計算処理を行って前記計算結果データを生成するように、前記計算データを、前記部分データだけでなく、前記保持手段により保持されている、前記計算データの供給先以外の他の情報処理装置のコンテキストデータを用いて作成する
ことを特徴とする請求項2に記載の情報処理装置。 The calculation result data includes context data that is information on an internal state of the other information processing apparatus, together with the calculation processing result,
A holding unit for holding the context data acquired by the calculation result data acquiring unit;
The calculation data creating means is configured to use only the partial data so that the other information processing apparatus generates the calculation result data by performing the calculation process using the partial data and the context data. The information processing apparatus according to claim 2, wherein the information processing apparatus is created by using context data of an information processing apparatus other than the calculation data supply destination that is held by the holding unit.
時系列に沿って因果関係を有する内容の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、前記時系列に沿って複数の部分データに分割し、前記部分データを用いて前記計算データを作成する計算データ作成ステップと、
供給部を制御し、前記計算データ作成ステップの処理により作成された前記計算データを、前記他の情報処理装置のそれぞれに所定の順番に分配するように供給させる計算データ供給ステップと
を含むことを特徴とする情報処理方法。 An information processing method of an information processing apparatus that supplies calculation data to be processed by the calculation process to each of a plurality of other information processing apparatuses that perform predetermined calculation processing,
The time series data having a causal relationship along the time series is divided into a plurality of partial data along the time series so that a part of the range overlaps between adjacent partial data, and the partial data A calculation data creation step of creating the calculation data using
A calculation data supply step of controlling a supply unit and supplying the calculation data created by the processing of the calculation data creation step to be distributed to each of the other information processing apparatuses in a predetermined order. A characteristic information processing method.
時系列に沿って因果関係を有する内容の時系列データを、隣り合う部分データ同士で範囲の一部が互いに重複するように、前記時系列に沿って複数の部分データに分割し、前記部分データを用いて前記計算データを作成する計算データ作成ステップと、
供給部を制御し、前記計算データ作成ステップの処理により作成された前記計算データを、前記他の情報処理装置のそれぞれに所定の順番に分配するように供給させる計算データ供給ステップと
を含むことを特徴とするプログラム。 A program that causes a computer to perform a process of supplying calculation data to be processed by the calculation process to each of a plurality of other information processing apparatuses that perform a predetermined calculation process,
The time series data having a causal relationship along the time series is divided into a plurality of partial data along the time series so that a part of the range overlaps between adjacent partial data, and the partial data A calculation data creation step of creating the calculation data using
A calculation data supply step of controlling a supply unit and supplying the calculation data created by the processing of the calculation data creation step to be distributed to each of the other information processing apparatuses in a predetermined order. A featured program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005070653A JP2006252394A (en) | 2005-03-14 | 2005-03-14 | Information processing system, information processor and processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005070653A JP2006252394A (en) | 2005-03-14 | 2005-03-14 | Information processing system, information processor and processing method and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006252394A true JP2006252394A (en) | 2006-09-21 |
Family
ID=37092801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005070653A Withdrawn JP2006252394A (en) | 2005-03-14 | 2005-03-14 | Information processing system, information processor and processing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006252394A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010134370A1 (en) * | 2009-05-21 | 2010-11-25 | 株式会社 日立製作所 | Data processing system, data processing method, and data processing program |
WO2011070910A1 (en) * | 2009-12-07 | 2011-06-16 | 日本電気株式会社 | Data arrangement/calculation system, data arrangement/calculation method, master device, and data arrangement method |
JP2011128818A (en) * | 2009-12-16 | 2011-06-30 | Hitachi Ltd | Stream data processing apparatus and method |
WO2013122338A1 (en) * | 2012-02-14 | 2013-08-22 | 주식회사 케이티 | Method for distributed indexing and searching for efficiently analyzing time series data in search systems |
WO2013132990A1 (en) * | 2012-03-06 | 2013-09-12 | 日本電気株式会社 | Data transfer device, data transfer method and data transfer program |
WO2015001596A1 (en) * | 2013-07-01 | 2015-01-08 | 株式会社日立製作所 | Series data parallel analysis infrastructure and parallel distributed processing method therefor |
JP2015111410A (en) * | 2013-11-01 | 2015-06-18 | 株式会社東芝 | Data pattern analysis optimization processing apparatus and data pattern analysis optimization processing method |
US11195025B2 (en) | 2017-11-27 | 2021-12-07 | Nec Corporation | Information processing device, information processing method, and storage medium for temporally dividing time-series data for analysis |
-
2005
- 2005-03-14 JP JP2005070653A patent/JP2006252394A/en not_active Withdrawn
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010134370A1 (en) * | 2009-05-21 | 2010-11-25 | 株式会社 日立製作所 | Data processing system, data processing method, and data processing program |
JP5799812B2 (en) * | 2009-12-07 | 2015-10-28 | 日本電気株式会社 | Data allocation / calculation system, data allocation / calculation method, master device, and data allocation method |
US8898677B2 (en) | 2009-12-07 | 2014-11-25 | Nec Corporation | Data arrangement calculating system, data arrangement calculating method, master unit and data arranging method |
WO2011070910A1 (en) * | 2009-12-07 | 2011-06-16 | 日本電気株式会社 | Data arrangement/calculation system, data arrangement/calculation method, master device, and data arrangement method |
JP2011128818A (en) * | 2009-12-16 | 2011-06-30 | Hitachi Ltd | Stream data processing apparatus and method |
US8782650B2 (en) | 2009-12-16 | 2014-07-15 | Hitachi, Ltd. | Distributed processing of partitioned stream data including data element group and end data |
WO2013122338A1 (en) * | 2012-02-14 | 2013-08-22 | 주식회사 케이티 | Method for distributed indexing and searching for efficiently analyzing time series data in search systems |
WO2013132990A1 (en) * | 2012-03-06 | 2013-09-12 | 日本電気株式会社 | Data transfer device, data transfer method and data transfer program |
WO2015001596A1 (en) * | 2013-07-01 | 2015-01-08 | 株式会社日立製作所 | Series data parallel analysis infrastructure and parallel distributed processing method therefor |
JP6069503B2 (en) * | 2013-07-01 | 2017-02-01 | 株式会社日立製作所 | Parallel analysis platform for serial data and parallel distributed processing method |
US10048991B2 (en) | 2013-07-01 | 2018-08-14 | Hitachi, Ltd. | System and method for parallel processing data blocks containing sequential label ranges of series data |
JP2015111410A (en) * | 2013-11-01 | 2015-06-18 | 株式会社東芝 | Data pattern analysis optimization processing apparatus and data pattern analysis optimization processing method |
US11195025B2 (en) | 2017-11-27 | 2021-12-07 | Nec Corporation | Information processing device, information processing method, and storage medium for temporally dividing time-series data for analysis |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006252394A (en) | Information processing system, information processor and processing method and program | |
JP6873941B2 (en) | Robot work system and control method of robot work system | |
CN114442510B (en) | Digital twin closed-loop control method, system, computer equipment and storage medium | |
US11460861B2 (en) | Cloud based robotic control systems and methods | |
KR102235167B1 (en) | A realtime device control system based on steps, an appratus for controlling a device system, and a method for controlling a device system based on steps | |
JP6980042B2 (en) | Judgment and use of modifications to robot actions | |
Arumugam et al. | DAvinCi: A cloud computing framework for service robots | |
Foote | tf: The transform library | |
JP4781089B2 (en) | Task assignment method and task assignment device | |
KR20170015377A (en) | Methods and systems for generating instructions for a robotic system to carry out a task | |
JP6559591B2 (en) | Behavior control system, method and program thereof | |
US20220343164A1 (en) | Reinforcement learning with centralized inference and training | |
Ichnowski et al. | Cloud-based motion plan computation for power-constrained robots | |
JP2012056023A (en) | Action generating system and method for robot | |
EP4157590A1 (en) | Apparatus and method for planning contact- interaction trajectories | |
CN113642243A (en) | Multi-robot deep reinforcement learning system, training method, device and medium | |
Melnyk et al. | Remote synthesis of computer devices for FPGA-based IoT nodes | |
Martins et al. | MRGS: A multi-robot SLAM framework for ROS with efficient information sharing | |
US20240054393A1 (en) | Learning Device, Learning Method, Recording Medium Storing Learning Program, Control Program, Control Device, Control Method, and Recording Medium Storing Control Program | |
JP7078901B2 (en) | Control system and control method | |
CN114254735A (en) | Distributed botnet model construction method and device | |
JP2021077219A (en) | Controller | |
CN113211449B (en) | Robot calibration method and system based on path analysis | |
Yoshimoto et al. | Real-time communication for distributed vision processing based on imprecise computation model | |
Slavov et al. | Distributed Machine Learning through Transceiver Competitive Connectivity of Remote Computing Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080603 |