JP2006252394A - Information processing system, information processor and processing method and program - Google Patents

Information processing system, information processor and processing method and program Download PDF

Info

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
Application number
JP2005070653A
Other languages
Japanese (ja)
Inventor
Kuniaki Noda
邦昭 野田
Masato Ito
真人 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005070653A priority Critical patent/JP2006252394A/en
Publication of JP2006252394A publication Critical patent/JP2006252394A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To perform calculation processing to time sequential data at a higher speed. <P>SOLUTION: In a step S21, a server node acquires the time sequential data transmitted from terminal equipment as original data 271, divides the time sequential data so that the range is partially overlapped between division data adjacent to each other on a time sequence (data near a boundary are included in both partial data), and distributes the division data 281-284 to client nodes 291-294 respectively. In a step S23, each client node performs prediction calculation to the division data in parallel and transmits an obtained calculated result to the server node. In a step S24, the server node collects the calculated results along the time sequence, prepares one piece of time sequential data 301 for output and outputs it to the terminal equipment. This invention can be applied to a prediction calculation information processing system. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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 Patent Documents 1 to 3).

例えば、図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 original data 1 that is a large chunk of original data in step S1, the original data 1 is obtained in step S2. The data is divided by a predetermined method, and divided data 11 to divided data 14 are generated. And a computer supplies them to the terminal device 21 thru | or terminal device 24 which actually performs arithmetic processing, respectively. In step S3, each of the terminal devices 21 to 24 performs an operation using the supplied divided data, and obtains a calculation result (performs parallel calculation). Each terminal device supplies the obtained calculation result to the computer. In step S <b> 4, the computer aggregates the calculation results supplied from the terminal devices 21 to 24 and obtains one calculation result 31 for the original data 1.

このように、複数の端末装置を用いて、並列に演算処理を行わせることにより、計算機は、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 calculation result 31 is obtained directly from the original data 1. 31 can be obtained.

特開2004−206314号公報JP 2004-206314 A 特開2003−39356号公報JP 2003-39356 A 特開2002−288578号公報JP 2002-288578 A

しかしながら、上述した方法が適用できるのは、予測計算アルゴリズムが並列化に適している場合や、計算対象となる元データの各部分の独立性が保たれており、並列処理するために分割された分割データ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 data 11 to the divided data 14 are independent from each other, and the respective arithmetic processings for them are independent from each other. Further, by simply integrating the obtained calculation results, the original desired result (the original data 1) is obtained. This is limited to the case where the calculation result 31) can be restored.

したがって、例えば、リカレントニューラルネットワークを時系列予測計算アルゴリズムとして用いたときのように、計算アルゴリズムそのものが(マイコンレベルでの並列化には適しても)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 original data 1 changes from moment to moment, unlike the parallel processing of batch processing in which the value of the original data 1 is fixed, a certain range of data is divided by a certain size. Simple processing could not be performed.

つまり、過去に蓄積されたある時間幅の時系列データを後でまとめて処理するのであれば、従来の方法により並列演算処理による効果を得ることができる場合も考えられるが、次にどのような値になるか不明な時系列データを、リアルタイムに、所定の時間間隔で分割して並列処理させ、得られた計算結果群に基づいて目的の時系列データを作成することは困難であった。   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). Data 281 to 284), and the calculation data generating means (for example, the calculation data generating unit in FIG. 7) for generating the calculation data using the partial data, and the calculation data generated by the calculation data generating means Calculation data supply means (for example, the calculation data transmission unit in FIG. 7) for supplying each information processing device so as to be distributed in a predetermined order, and the calculation data creation means The first time-series data is divided so that part of the range overlaps between adjacent partial data.

前記計算データ供給手段により計算データが供給される他の情報処理装置より、計算処理結果を含む計算結果データを取得する計算結果データ取得手段(例えば、図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 information processing system 51 is a time series prediction calculation processing system having a humanoid robot 61 that is a humanoid robot and a control system 62 that controls the operation of the humanoid robot 61. That is, in the information processing system 51, the control system 62 performs a prediction calculation of the motion of the humanoid robot 61 as time series prediction calculation processing, generates control information for controlling the motion based on the prediction, and the humanoid by the control information This is a predictive control system for controlling the robot 61. In other words, the humanoid robot 61 operates under predictive control by the information processing system 51.

ヒューマノイドロボット61および制御システム62の間で無線通信が行われ、センサ情報およびコマンド情報等が授受される。例えば、ヒューマノイドロボット61は、後述するようにセンサ機能を有しており、そのセンサ機能により検出された情報であるセンサ情報を制御システム62に供給する。制御システム62は、そのセンサ情報やユーザ入力等に基づいてヒューマノイドロボット61の将来の最適な動作(将来行うべき動作)を予測し、その様に動作させるような制御コマンドを含むコマンド情報を作成し、それをヒューマノイドロボット61に供給する。ヒューマノイドロボット61は、そのコマンド情報に基づいて各部を動作させ、制御システム62の予測制御に応じた動作を行う。   Wireless communication is performed between the humanoid robot 61 and the control system 62, and sensor information, command information, and the like are exchanged. For example, the humanoid robot 61 has a sensor function as described later, and supplies sensor information, which is information detected by the sensor function, to the control system 62. The control system 62 predicts the future optimal operation (operation to be performed in the future) of the humanoid robot 61 on the basis of the sensor information, user input, etc., and creates command information including a control command for operating in that way. , Supplying it to the humanoid robot 61. The humanoid robot 61 operates each unit based on the command information, and performs an operation according to the predictive control of the control system 62.

制御システム62は、端末装置71およびクラスタコンピュータ72を有している。端末装置71は、アンテナ71Aを介して、ヒューマノイドロボット61と無線通信を行い、センサ情報やコマンド情報を授受し合う。また、端末装置71は、クラスタコンピュータ72と通信を行い、そのセンサ情報やコマンド情報を授受し合う。すなわち、端末装置71は、ヒューマノイドロボット61とクラスタコンピュータ72との通信の仲介処理を行う。また、端末装置71は、ユーザ入力に対する受け付け処理も行う。   The control system 62 includes a terminal device 71 and a cluster computer 72. The terminal device 71 performs wireless communication with the humanoid robot 61 via the antenna 71A, and exchanges sensor information and command information. Further, the terminal device 71 communicates with the cluster computer 72 to exchange sensor information and command information. That is, the terminal device 71 performs a mediation process for communication between the humanoid robot 61 and the cluster computer 72. Further, the terminal device 71 also performs a reception process for user input.

クラスタコンピュータ72は、端末装置71より供給されるセンサ情報を用いて予測計算処理を行い、生成したコマンド情報を、計算結果として端末装置71に供給する。このクラスタコンピュータ72は、サーバノード81、並びに、クライアントノード91乃至クライアントノード93を有しており、並列処理を行うコンピュータシステムである。すなわち、クラスタコンピュータ72は、予測計算処理を細分化して並列に処理することにより、単一の計算機による予測計算処理よりも高速かつ安定的に予測計算処理を行うコンピュータシステムである。   The cluster computer 72 performs prediction calculation processing using the sensor information supplied from the terminal device 71, and supplies the generated command information to the terminal device 71 as a calculation result. The cluster computer 72 includes a server node 81 and client nodes 91 to 93, and is a computer system that performs parallel processing. That is, the cluster computer 72 is a computer system that performs prediction calculation processing at a higher speed and more stably than the prediction calculation processing by a single computer by subdividing the prediction calculation processing in parallel.

サーバノード81は、クライアントノード91乃至クライアントノード93に対してセンサ情報のサーバ処理を行う。すなわち、サーバノード81は、端末装置71より供給されるセンサ情報を分割し、それぞれをクライアントノード91乃至クライアントノード93に供給し、ヒューマノイドロボット61の将来行うべき動作等を予測する予測計算処理を並行に実行させる。また、サーバノード81は、各クライアントノードより供給される計算結果を取得し、それらを結合する。そして、その結合された計算結果からコマンド情報を作成し、それをセンサ情報に対する計算結果として端末装置71に供給する。   The server node 81 performs server processing of sensor information for the client nodes 91 to 93. That is, the server node 81 divides the sensor information supplied from the terminal device 71, supplies each of the sensor information to the client node 91 to the client node 93, and performs prediction calculation processing for predicting a future operation or the like of the humanoid robot 61 in parallel. To run. In addition, the server node 81 acquires the calculation results supplied from the client nodes and combines them. Then, command information is created from the combined calculation result, and it is supplied to the terminal device 71 as the calculation result for the sensor information.

クライアントノード91は、サーバノード81より供給される、分割されたセンサ情報等を用いて予測計算処理を行い、その計算結果をサーバノード81に返す。クライアントノード91は、他のクライアントノード(クライアントノード92およびクライアントノード93)と互いに独立して動作し、他のクライアントノードが実行する予測計算処理と並行して、予測計算処理を行うことができる。   The client node 91 performs prediction calculation processing using the divided sensor information and the like supplied from the server node 81, and returns the calculation result to the server node 81. The client node 91 operates independently of the other client nodes (the client node 92 and the client node 93), and can perform the prediction calculation process in parallel with the prediction calculation process executed by the other client node.

クライアントノード91乃至クライアントノード93は、互いに同様に構成されており、同様の処理を行う。従って、クライアントノード92およびクライアントノード93の説明は省略する。なお、クライアントノード91乃至クライアントノード93を互いに区別して説明する必要の無い場合、例えば、クライアントノード91乃至クライアントノード93のいずれにも適用できる説明の場合、クライアントノード90と称する。   The client nodes 91 to 93 are configured similarly to each other and perform the same processing. Therefore, description of the client node 92 and the client node 93 is omitted. In the case where it is not necessary to separately describe the client node 91 to the client node 93, for example, in the case of the description applicable to any of the client node 91 to the client node 93, the client node 91 is referred to as the client node 90.

このように構成されるクラスタコンピュータ72は、予測計算処理の負荷を複数のノードに分散させることができるので、各ノード(サーバノード81やクライアントノード90)に必要な処理能力を低減させることができる。つまり、各ノードを、安価なパーソナルコンピュータを用いて構成した場合であっても、より多くのノードを設けることにより(より負荷を分散させることにより)、より大規模な処理を、より高速、かつ、より安定的に実行することができる。例えば、1台の計算機で作業させる場合にはスーパーコンピュータ並みの処理能力が必要である大規模な処理でも実行可能な高性能なシステムを安価に構築することができる。   Since the cluster computer 72 configured in this way can distribute the load of prediction calculation processing to a plurality of nodes, the processing capacity required for each node (server node 81 and client node 90) can be reduced. . In other words, even if each node is configured using an inexpensive personal computer, by providing more nodes (by distributing the load), a larger-scale process can be performed at a higher speed. Can be performed more stably. For example, when working with a single computer, a high-performance system capable of executing even a large-scale process that requires a processing capability similar to that of a supercomputer can be constructed at low cost.

なお、図2においては、情報処理システム51が、1つのヒューマノイドロボット61および1つの制御システム62により構成されるように説明したが、これに限らず、ヒューマノイドロボット61および制御システム62の数は、それぞれ、いくつであってもよく、例えば複数であってもよい。   In FIG. 2, the information processing system 51 is described as being configured by one humanoid robot 61 and one control system 62, but not limited thereto, the number of humanoid robots 61 and control systems 62 is as follows. Each may be any number, for example, a plurality.

また、図2においては、制御システム62が、1つの端末装置71および1つのクラスタコンピュータ72により構成されるように説明したが、これに限らず、端末装置71およびクラスタコンピュータ72は、それぞれ、いくつであってもよく、例えば複数であってもよい。   Further, in FIG. 2, the control system 62 has been described as being configured by one terminal device 71 and one cluster computer 72, but the present invention is not limited to this, and the terminal device 71 and the cluster computer 72 may each be any number. For example, there may be a plurality.

さらに、図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 cluster computer 72 is described as being configured by one server node 81 and three client nodes 90 (client node 91 to client node 93). May be any number, for example, a plurality. Also, the number of client nodes 90 may be any number, and may be two or less or four or more if the server node 81 recognizes all the client nodes 90 in advance. . That is, the number of client nodes 90 corresponding to one server node 81 may be any number. For example, when there are a plurality of server nodes 81, the number of client nodes 90 corresponding to each server node 81 may be different from each other. It may be. Furthermore, a plurality of single client nodes 90 may correspond to a plurality of server nodes 81 as long as processing can be performed without delay. In addition, the cluster computer 72 may have any configuration as long as it performs a prediction calculation process on time-series data.

次に、このような構成の情報処理システム51の各装置間で授受される情報について説明する。図3は、図2の情報処理システム51において授受される情報の例を説明する図である。   Next, information exchanged between the devices of the information processing system 51 having such a configuration will be described. FIG. 3 is a diagram illustrating an example of information exchanged in the information processing system 51 of FIG.

ここで、図2の情報処理システム51は、例えば、ヒューマノイドロボット61が環境中のボールに対して動作を行うように、制御システム62がヒューマノイドロボット61を制御するシステムであるものとする。つまり、ヒューマノイドロボット61は、制御システム62の制御に従って、例えば、ボールを掴んだり、投げたり、蹴ったり、または置いたりする等の動作を行う。   Here, it is assumed that the information processing system 51 in FIG. 2 is a system in which the control system 62 controls the humanoid robot 61 such that the humanoid robot 61 performs an operation on a ball in the environment, for example. That is, the humanoid robot 61 performs operations such as grabbing, throwing, kicking, or placing a ball in accordance with the control of the control system 62.

このとき、ヒューマノイドロボット61は、例えば、ステレオカメラ等の図示せぬセンサを有しており、空間上のボールの3次元位置を特定することができる。ヒューマノイドロボット61は、自分自身の関節角に関する情報(すなわち、現在の動作(姿勢)に関する情報)である関節角情報101とともに、このボールの3次元座標に関する情報であるボール座標情報102をセンサ情報として制御システム62の端末装置71に供給する。   At this time, the humanoid robot 61 has a sensor (not shown) such as a stereo camera, and can specify the three-dimensional position of the ball in space. The humanoid robot 61 uses, as sensor information, joint angle information 101 that is information about the ball's own joint angle (that is, information about the current motion (posture)) and ball coordinate information 102 that is information about the three-dimensional coordinates of the ball. This is supplied to the terminal device 71 of the control system 62.

なお、関節角情報101は、ヒューマノイドロボット61の関節角がどのような角度であるか(どのくらい曲がっているか)を示す情報であり、その関節角を制御するサーボモータの制御情報と等価である。従って、この関節角情報101は、サーボモータがどういう状態にあるかを実際に計測するセンサにより得られる情報を適用するようにしてもよいし、サーボモータを制御する制御情報を適用するようにしてもよい。   The joint angle information 101 is information indicating what angle the joint angle of the humanoid robot 61 is (how much it is bent), and is equivalent to the control information of the servo motor that controls the joint angle. Therefore, information obtained by a sensor that actually measures the state of the servo motor may be applied to the joint angle information 101, or control information for controlling the servo motor may be applied. Also good.

図3に示されるように、端末装置71は、ヒューマノイドロボット61より供給されるこれらのセンサ情報(関節角情報101およびボール座標情報102)をクラスタコンピュータ72のサーバノード81に供給する。サーバノード81は、それらのセンサ情報を後述する方法で分割した後、分割された各データをクライアントノード90に供給する。このときクライアントノード90は、時系列予測器111として動作し、供給されたセンサ情報(分割された関節角情報101およびボール座標情報102)に基づいて、それぞれの将来の値を予測する予測処理を行う。そして、クライアントノード90は、その予測計算結果として、関節角の予測値である関節角予測情報103と、ボール座標の予測値であるボール座標予測情報104を生成し、それらをサーバノード81に出力する。   As shown in FIG. 3, the terminal device 71 supplies the sensor information (joint angle information 101 and ball coordinate information 102) supplied from the humanoid robot 61 to the server node 81 of the cluster computer 72. The server node 81 divides the sensor information by a method described later, and then supplies the divided data to the client node 90. At this time, the client node 90 operates as the time series predictor 111 and performs a prediction process for predicting each future value based on the supplied sensor information (the divided joint angle information 101 and the ball coordinate information 102). Do. Then, the client node 90 generates the joint angle prediction information 103 that is the predicted value of the joint angle and the ball coordinate prediction information 104 that is the predicted value of the ball coordinate as the prediction calculation results, and outputs them to the server node 81. To do.

つまり、時系列予測器111は、ヒューマノイドロボット61の行ったボールとのインタラクションの際のセンサ情報時系列データを学習データとし、予測モデルを獲得する。そのため、この情報処理システム51では、ヒューマノイドロボット61自らに行動生成させる前の段階で、人間をはじめとする教示者がロボットのアームを実際に手に取り、ボールとのインタラクションをする状況を生成して学習データを作成し、時系列予測器111の学習を行わせる。その後、時系列予測器111に対して、実際にボール座標、ロボット自身の現在の関節角度時系列情報(関節角情報101)をオンラインで入力することによって、時系列予測データ(関節角予測情報103)が生成される。   That is, the time series predictor 111 uses the sensor information time series data in the interaction with the ball performed by the humanoid robot 61 as learning data, and acquires a prediction model. For this reason, in this information processing system 51, before the humanoid robot 61 generates behavior, the teacher including the human actually picks up the arm of the robot and generates a situation where the robot interacts with the ball. Learning data is created, and the time series predictor 111 is trained. Thereafter, the time series predictor 111 (joint angle prediction information 103) is input to the time series predictor 111 by actually inputting the ball coordinates and the current joint angle time series information (joint angle information 101) of the robot itself. ) Is generated.

サーバノード81は、それらの予測値から、関節角の目標値(予測値)であり、サーボモータ用の制御情報である関節角コマンド105を生成し、それを端末装置71に供給する。端末装置71は、その供給された関節角コマンド105をコマンド情報としてヒューマノイドロボット61に供給する。ヒューマノイドロボット61は、その関節角コマンド105に基づいて、サーボモータを動作させ、ボールに対する動作を行う。   The server node 81 generates a joint angle command 105 that is a target value (predicted value) of the joint angle from the predicted values and is control information for the servo motor, and supplies it to the terminal device 71. The terminal device 71 supplies the supplied joint angle command 105 to the humanoid robot 61 as command information. Based on the joint angle command 105, the humanoid robot 61 operates a servo motor to perform an operation on the ball.

次に、各装置の詳細な構成について説明する。図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 humanoid robot 61.

図4において、ヒューマノイドロボット61は、センサ部121、制御部122、無線通信部123、およびモータ部124を有している。   In FIG. 4, the humanoid robot 61 includes a sensor unit 121, a control unit 122, a wireless communication unit 123, and a motor unit 124.

センサ部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 sensor unit 121 includes one or a plurality of sensors (not shown) such as the above-described stereo camera. When each sensor is operated and sensor information is generated, the sensor unit 121 supplies the sensor information to the control unit 122. The control unit 122 is a processing unit that controls each unit of the humanoid robot 61 and performs control processing for the entire humanoid robot 61. The control unit 122 may incorporate a RAM (Random Access Memory) and a ROM (Read Only Memory) (not shown). When acquiring the sensor information from the sensor unit 121, the control unit 122 controls the wireless communication unit 123 to transmit the sensor information to the terminal device 71. Further, when the command information is acquired from the wireless communication unit 122, the control unit 122 supplies the command information to the motor unit 124, drives the motor unit 124, and controls the joint angle of the humanoid robot 61 as instructed by the command information. To do.

無線通信部123は、例えば、IEEE(Institute of Electrical and Electronic Engineers)802.11x等の所定の無線通信規格を用いて無線通信処理を行う処理部である。無線通信部123は、図示せぬRAMやROMを内蔵するようにしてもよい。無線通信部123は、制御部122に制御されて端末装置71と無線通信を行い、制御部122より供給されるセンサ情報を、アンテナ123Aを介して端末装置71に送信する。また、無線通信部123は、アンテナ123Aを介して端末装置71よりコマンド情報を受信すると、それを制御部122に供給する。   The wireless communication unit 123 is a processing unit that performs wireless communication processing using a predetermined wireless communication standard such as IEEE (Institute of Electrical and Electronic Engineers) 802.11x. The wireless communication unit 123 may incorporate a RAM or ROM (not shown). The wireless communication unit 123 performs wireless communication with the terminal device 71 under the control of the control unit 122, and transmits sensor information supplied from the control unit 122 to the terminal device 71 via the antenna 123A. Further, upon receiving command information from the terminal device 71 via the antenna 123A, the wireless communication unit 123 supplies the command information to the control unit 122.

モータ部124は、1つまたは複数のサーボモータを有している。各サーボモータは、ヒューマノイドロボット61の各関節(可動部)に対応する。つまり、モータ部124は、制御部122より供給されるコマンド情報に基づいて、ヒューマノイドロボット61が有する各関節(可動部)の角度を調整する。換言すると、制御部122がコマンド情報を用いてモータ部124が有する各サーボモータの動作を制御することにより、ヒューマノイドロボット61は、制御システム62の制御どおりに動作する。   The motor unit 124 has one or a plurality of servo motors. Each servo motor corresponds to each joint (movable part) of the humanoid robot 61. That is, the motor unit 124 adjusts the angle of each joint (movable unit) included in the humanoid robot 61 based on command information supplied from the control unit 122. In other words, the humanoid robot 61 operates as controlled by the control system 62 when the control unit 122 controls the operation of each servo motor included in the motor unit 124 using the command information.

図5は、端末装置71の一実施形態に係る、本発明に関する構成例を示すブロック図である。   FIG. 5 is a block diagram illustrating a configuration example relating to the present invention, according to an embodiment of the terminal device 71.

図5において、端末装置71は、CPU(Central Processing Unit)131、ROM132、RAM133、バス134、入出力インタフェース140、入力部141、出力部142、記憶部143、無線通信部144、通信部145、およびドライブ146を有している。   5, the terminal device 71 includes a CPU (Central Processing Unit) 131, a ROM 132, a RAM 133, a bus 134, an input / output interface 140, an input unit 141, an output unit 142, a storage unit 143, a wireless communication unit 144, a communication unit 145, And a drive 146.

CPU131は、ROM132に記憶されているプログラム、または記憶部143からRAM133にロードされたプログラムに従って各種の処理を実行する。RAM133にはまた、CPU131が各種の処理を実行する上において必要なデータなども適宜記憶される。   The CPU 131 executes various processes according to a program stored in the ROM 132 or a program loaded from the storage unit 143 to the RAM 133. The RAM 133 also appropriately stores data necessary for the CPU 131 to execute various processes.

CPU131、ROM132、およびRAM133は、バス134を介して相互に接続されている。このバス134にはまた、入出力インタフェース140も接続されている。   The CPU 131, ROM 132, and RAM 133 are connected to each other via a bus 134. An input / output interface 140 is also connected to the bus 134.

入出力インタフェース140には、キーボード、マウスなどよりなる入力部141、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部142、ハードディスクなどより構成される記憶部143、IEEE802.11x等の所定の無線通信規格に基づいて、ヒューマノイドロボット61と無線通信を行う無線通信部144、並びに、イーサネット(登録商標)(Ethernet(登録商標))等の所定の通信規格に基づいて、サーバノード81と通信処理を行う通信部145が接続されている。   The input / output interface 140 includes an input unit 141 including a keyboard and a mouse, a display including a CRT (Cathode Ray Tube) and an LCD (Liquid Crystal Display), an output unit 142 including a speaker, and a hard disk. Based on a predetermined wireless communication standard such as the storage unit 143, IEEE802.11x, a wireless communication unit 144 that performs wireless communication with the humanoid robot 61, and predetermined communication such as Ethernet (registered trademark) A communication unit 145 that performs communication processing is connected to the server node 81 based on the standard.

入出力インタフェース140にはまた、必要に応じてドライブ146が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア151が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部143にインストールされる。   A drive 146 is connected to the input / output interface 140 as necessary, and a removable medium 151 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted, and a computer program read from them is loaded. Installed in the storage unit 143 as necessary.

なお、端末装置71と、ヒューマノイドロボット61やサーバノード81との間の通信は、電波や赤外線信号等を利用する無線通信であっても、有線を介して電気信号や光信号等を授受する有線通信であってもよい。また、無線通信部144および通信部145がヒューマノイドロボット61およびサーバノード81以外の装置とも通信することができるようにしてもよい。さらに、必要に応じて、無線通信部144または通信部145を介して他の装置より取得したコンピュータプログラムが記憶部143にインストールされるようにしてもよい。   Note that the communication between the terminal device 71 and the humanoid robot 61 or the server node 81 is a wireless communication that uses an electric wave, an infrared signal, or the like. Communication may be used. Further, the wireless communication unit 144 and the communication unit 145 may be able to communicate with devices other than the humanoid robot 61 and the server node 81. Furthermore, a computer program acquired from another device via the wireless communication unit 144 or the communication unit 145 may be installed in the storage unit 143 as necessary.

CPU131は、ROM132や記憶部143からRAM133に読み出されたプログラムを実行することにより、ユーザ入力を受け付ける処理や、ヒューマノイドロボット61とサーバノード81との通信を中継する処理等を行う。つまり、CPU131は、主に入力部141を制御して、ユーザ入力を受け付け、例えばそのユーザ入力をヒューマノイドロボット61やサーバノード81に供給する等、受け付けた指示に基づいた処理を行う。また、CPU131は、主に無線通信部144および通信部145を制御して、ヒューマノイドロボット61とサーバノード81との通信を中継する。もちろん、CPU131がこれら以外の処理も行うことができるようにしてもよい。   The CPU 131 executes a program read from the ROM 132 or the storage unit 143 to the RAM 133 to perform a process of accepting a user input, a process of relaying communication between the humanoid robot 61 and the server node 81, or the like. That is, the CPU 131 mainly controls the input unit 141 to accept a user input, and performs processing based on the accepted instruction, for example, supplying the user input to the humanoid robot 61 or the server node 81. In addition, the CPU 131 mainly controls the wireless communication unit 144 and the communication unit 145 to relay communication between the humanoid robot 61 and the server node 81. Of course, the CPU 131 may be able to perform processes other than these.

図6は、クラスタコンピュータ72のサーバノード81の一実施形態に係る、本発明に関する構成例を示すブロック図である。   FIG. 6 is a block diagram showing a configuration example relating to the present invention according to an embodiment of the server node 81 of the cluster computer 72.

図6において、サーバノード81は、通信部161、データプール162、制御部163、通信部164、データバッファ165、ROM166、RAM167、入力部168、出力部169、記憶部170、およびドライブ171を有している。   6, the server node 81 includes a communication unit 161, a data pool 162, a control unit 163, a communication unit 164, a data buffer 165, a ROM 166, a RAM 167, an input unit 168, an output unit 169, a storage unit 170, and a drive 171. is doing.

通信部161は、イーサネット(登録商標)等の所定の通信規格に基づいて、端末装置71と通信処理を行う。例えば、通信部161は、端末装置71より供給されるセンサ情報を受信すると、それをデータプール162に供給して蓄積させる。また、例えば、通信部161は、データプール162に蓄積されているヒューマノイドロボット61用のコマンド情報を定期的または不定期に読み出し、それを端末装置71に送信する。   The communication unit 161 performs communication processing with the terminal device 71 based on a predetermined communication standard such as Ethernet (registered trademark). For example, when the communication unit 161 receives sensor information supplied from the terminal device 71, the communication unit 161 supplies the sensor information to the data pool 162 and accumulates it. Further, for example, the communication unit 161 reads the command information for the humanoid robot 61 stored in the data pool 162 regularly or irregularly and transmits it to the terminal device 71.

データプール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 joint angle information 101 and ball coordinate information 102 supplied from the terminal device 71). This sensor information is read by the control unit 163. Further, command information (joint angle command 105 and the like) supplied from the control unit 163 is temporarily stored in the data pool 162. This command information is read by the communication unit 161 and transmitted to the terminal device 71. The exchange of these data is periodically repeated at a predetermined cycle, for example. That is, the data pool 162 operates as a buffer for absorbing the difference between the data exchange cycle with the terminal device 71 and the data exchange cycle with the control unit 163. Of course, the above-described data exchange may be performed irregularly.

制御部163は、サーバノード81の各部を制御して各種の処理を実行させるだけでなく、さらに、データプール162に蓄積されるデータを取得し、分割してクライアントノード90に分配(送信)したり、各クライアントノード90からデータを収集(受信)し、それらを結合してデータプール162に供給して蓄積させたりするサーバ処理を行ったりする。   The control unit 163 not only controls each part of the server node 81 to execute various processes, but also acquires data accumulated in the data pool 162, divides it, and distributes (transmits) it to the client node 90. Or server processing for collecting (receiving) data from each client node 90, combining them, supplying them to the data pool 162, and storing them.

例えば、制御部163は、データプール162に蓄積されるセンサ情報(端末装置71より送信されたセンサ情報)を定期的または不定期に取得し、それをデータバッファ165に蓄積させたり、そのデータバッファ165に蓄積したセンサ情報や後述するコンテキストデータの部分データを用いて計算データ生成し、それをクライアントノード90に分配する処理を行ったり、データバッファ165に保持される、後述する送信履歴テーブルの管理を行ったりする。また、制御部163は、例えば、クライアントノード90より送信された計算結果データ(関節角予測情報103やボール座標予測情報104等の予測値、およびコンテキストデータ)等の情報からコマンド情報を生成し、それをデータプール162に供給して保持させたり、コンテキストデータをデータバッファ165に保持させたりする。さらに、制御部163がその他の処理を行うようにしてもよい。   For example, the control unit 163 acquires sensor information (sensor information transmitted from the terminal device 71) accumulated in the data pool 162 periodically or irregularly, and accumulates the sensor information in the data buffer 165 or the data buffer. Calculation data is generated using sensor information stored in 165 or partial data of context data described later, and distributed to client nodes 90, or management of a transmission history table described later stored in the data buffer 165 is performed. Or do. In addition, the control unit 163 generates command information from information such as calculation result data (predicted values such as joint angle prediction information 103 and ball coordinate prediction information 104, and context data) transmitted from the client node 90, and the like. It is supplied to the data pool 162 and held, or context data is held in the data buffer 165. Further, the control unit 163 may perform other processing.

通信部164は、制御部163に制御されて、所定の通信規格に基づいて、クライアントノード90(クライアントノード91乃至クライアントノード93のそれぞれ)と通信を行い、計算データや計算結果データの送受信を行う。   The communication unit 164 is controlled by the control unit 163 and communicates with the client node 90 (each of the client nodes 91 to 93) based on a predetermined communication standard, and transmits and receives calculation data and calculation result data. .

データバッファ165は、DRAMやSRAM等の半導体メモリを有し、所定の容量の記憶領域を有している。その記憶領域には、センサ情報バッファ181、送信履歴テーブルバッファ182、およびコンテキストデータバッファ183が含まれる。   The data buffer 165 has a semiconductor memory such as DRAM or SRAM, and has a storage area with a predetermined capacity. The storage area includes a sensor information buffer 181, a transmission history table buffer 182, and a context data buffer 183.

センサ情報バッファ181は、制御部163によりデータプール162より読み出されたセンサ情報を保持するバッファである。つまりセンサ情報バッファ181には、クライアントノード90に送信する前の(未送信の)データが保持される。送信履歴テーブルバッファ182は、計算データ(センサ情報やコンテキストデータ)のクライアントノード90への送信状況を示す送信履歴情報のテーブル情報である送信履歴テーブルを保持するバッファである。この送信履歴情報には、例えば、計算データを送信したクライアントノードのノード番号や、その送信時刻に関する情報等が含まれる。この送信履歴情報は、クライアントノード90より供給される計算結果データの有効性を確認するため等に利用される。送信履歴情報テーブルの詳細については後述する。コンテキストデータバッファ183は、各クライアントノード90より計算結果データとして供給される、クライアントノード90の内部状態に関する情報であるコンテキストデータを保持するバッファである。このコンテキストデータは、制御部163により読み出されてクライアントノード90に供給される。コンテキストデータは、例えば、クライアントノード90間で学習結果を関連付けるために利用される。詳細については後述する。   The sensor information buffer 181 is a buffer that holds sensor information read from the data pool 162 by the control unit 163. That is, the sensor information buffer 181 holds data (not yet transmitted) before being transmitted to the client node 90. The transmission history table buffer 182 is a buffer that holds a transmission history table that is table information of transmission history information indicating the transmission status of calculation data (sensor information and context data) to the client node 90. The transmission history information includes, for example, the node number of the client node that transmitted the calculation data, information about the transmission time, and the like. This transmission history information is used to confirm the validity of the calculation result data supplied from the client node 90. Details of the transmission history information table will be described later. The context data buffer 183 is a buffer that holds context data that is information relating to the internal state of the client node 90 and is supplied as calculation result data from each client node 90. This context data is read by the control unit 163 and supplied to the client node 90. The context data is used for associating learning results between the client nodes 90, for example. Details will be described later.

なお、データバッファ165は、バッファとして機能する構成(記憶領域)を有していればよく、そのための記憶素子であれば、例えば、ハードディスクやフラッシュメモリ等のように、上述した以外の記憶素子を有するようにしてもよい。どの記憶素子を採用するかは、データの入出力速度、記憶容量、または素子のサイズ等の基準に基づいて最適なものを選択するようにすればよい。   Note that the data buffer 165 only needs to have a configuration (storage area) that functions as a buffer, and any storage element other than those described above, such as a hard disk or a flash memory, may be used as long as it is a storage element therefor. You may make it have. Which storage element is to be used may be selected based on criteria such as data input / output speed, storage capacity, or element size.

ROM166は、制御部163により実行されるプログラムやデータを予め記憶しており、制御部163の要求に基づいて、それらを制御部163に供給する。RAM167は、制御部163が実行するプログラムやデータが一時的に保持される。つまり、制御部163は、ROM166に記憶されているプログラムやデータを読み出し、それをRAM167にロードして実行する。   The ROM 166 stores programs and data executed by the control unit 163 in advance, and supplies them to the control unit 163 based on requests from the control unit 163. The RAM 167 temporarily stores programs and data executed by the control unit 163. That is, the control unit 163 reads out programs and data stored in the ROM 166, loads them into the RAM 167, and executes them.

入力部168は、制御部163に制御され、キーボードやマウス等の入力デバイス、または入力端子等を有しており、ユーザ入力や外部入力等を受け付け、その受け付けた情報を制御部163に供給する。出力部169は、例えば、CRTやLCD等のディスプレイやスピーカ等の出力デバイスを有しており、制御部163より供給された情報を出力する。記憶部170は、例えば、ハードディスクやフラッシュメモリ等の記録媒体を有しており、制御部163が実行するプログラムやデータの情報を記憶し、必要に応じてそれらの情報を制御部163に供給する。つまり、制御部163は、ROM166だけでなく、記憶部170に記憶されているプログラムやデータも、それらを読み出してRAM167にロードして実行することもできる。ドライブ171は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア172が適宜装着されるデバイスであり、制御部163に制御され、その装着されたリムーバブルメディア172からプログラムやデータを読み出して制御部163に供給する。例えば、制御部163は、そのプログラムやデータを記憶部170に供給してインストールする。   The input unit 168 is controlled by the control unit 163 and includes an input device such as a keyboard and a mouse, an input terminal, and the like. The input unit 168 receives user input, external input, and the like, and supplies the received information to the control unit 163. . The output unit 169 includes, for example, an output device such as a display such as a CRT or LCD and a speaker, and outputs information supplied from the control unit 163. The storage unit 170 includes, for example, a recording medium such as a hard disk and a flash memory, stores information about programs executed by the control unit 163 and data, and supplies the information to the control unit 163 as necessary. . That is, the control unit 163 can read not only the ROM 166 but also programs and data stored in the storage unit 170, load them into the RAM 167, and execute them. The drive 171 is a device to which a removable medium 172 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted. The drive 171 is controlled by the control unit 163 and reads programs and data from the mounted removable medium 172. To the control unit 163. For example, the control unit 163 supplies the program and data to the storage unit 170 for installation.

なお、データバッファ165をデータプール162、RAM167、または記憶部170と一体に構成するようにしてもよい。その場合、そのデバイスの記憶領域全体が分割され、その一部がデータバッファ165として割り当てられ、その他の部分が他の領域として割り当てられる。なお、データプール162がRAM167や記憶部170と一体に構成されるようにしてもよい。   The data buffer 165 may be configured integrally with the data pool 162, the RAM 167, or the storage unit 170. In that case, the entire storage area of the device is divided, a part thereof is allocated as the data buffer 165, and the other part is allocated as another area. The data pool 162 may be configured integrally with the RAM 167 and the storage unit 170.

図7は、図6の制御部163の内部の構成例を示すブロック図である。   FIG. 7 is a block diagram illustrating an internal configuration example of the control unit 163 in FIG. 6.

図7において制御部163は、制御部201、計算結果データ受信制御部202、送信元特定部203、有効性確認部204、無効値化部205、コンテキストデータ保持制御部206、コマンド情報作成部207、センサ情報受信部208、センサ情報更新確認部209、計算データ作成部210、送信履歴テーブル更新部211、および計算データ送信部212を有している。   In FIG. 7, the control unit 163 includes a control unit 201, a calculation result data reception control unit 202, a transmission source identification unit 203, a validity confirmation unit 204, an invalid value conversion unit 205, a context data holding control unit 206, and a command information creation unit 207. A sensor information reception unit 208, a sensor information update confirmation unit 209, a calculation data creation unit 210, a transmission history table update unit 211, and a calculation data transmission unit 212.

制御部201は、制御部163内の各部を制御する制御処理を行う。計算結果データ受信制御部202は、通信部164を制御し、クライアントノード90より計算結果データを受信する処理を行う。   The control unit 201 performs control processing for controlling each unit in the control unit 163. The calculation result data reception control unit 202 controls the communication unit 164 to perform processing for receiving calculation result data from the client node 90.

送信元特定部203は、計算結果データ受信部202が通信部164を介して受信した計算結果データを参照し、その送信元となるクライアントノード90を特定する。   The transmission source specifying unit 203 refers to the calculation result data received by the calculation result data receiving unit 202 via the communication unit 164 and specifies the client node 90 that is the transmission source.

有効性確認部204は、計算結果データ受信部202が通信部164を介して受信した計算結果データが有効なデータであるか否かを確認する構成を少なくとも有する。ここではさらに、有効性確認部204は、その計算結果データの有効性を、計算結果データ受信部202によるその取得順と、計算データ送信部212による、その計算結果データに対応する計算データの送信順に基づいて確認する構成も有する。つまり、有効性確認部204は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルの送信履歴情報を参照し、計算結果データの取得順が、計算データの送信順に対して遅延している場合、その計算結果データを無効と判定する。有効性確認部204は、無効と判定した計算結果データを破棄する。   The validity confirmation unit 204 has at least a configuration for confirming whether or not the calculation result data received by the calculation result data receiving unit 202 via the communication unit 164 is valid data. Here, further, the validity confirmation unit 204 determines the validity of the calculation result data based on the order of acquisition by the calculation result data reception unit 202 and the transmission of calculation data corresponding to the calculation result data by the calculation data transmission unit 212. It also has a configuration for checking based on the order. In other words, the validity checking unit 204 refers to the transmission history information in the transmission history table held in the transmission history table buffer 182, and the acquisition order of the calculation result data is delayed with respect to the transmission order of the calculation data. The calculation result data is determined to be invalid. The validity confirmation unit 204 discards the calculation result data determined to be invalid.

無効値化部205は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、計算結果データ受信制御部202が計算結果データを受信することにより、無効となるその他の計算結果データが存在するか否かを確認し、必要な場合は、その送信履歴情報を無効値に設定する(無効値化する)。詳細については後述するが、制御部163は、送信履歴情報テーブルを用いて、クライアントノード90より供給される計算結果データの順番を管理する。つまり、制御部163は、計算データを送信した順番と同じ順番で受信した計算結果データを有効とし、順番が入れ替わった計算結果データを無効とする。制御部163は、この有効・無効の情報を、送信履歴情報テーブルを用いて管理する。無効値化部205は、受信順が、その対応する計算データの送信順と異なる計算結果データ(受信が送信に比べて遅延した計算結果データ)を無効値とするように、送信履歴情報を更新する。   The invalid value conversion unit 205 refers to the transmission history table held in the transmission history table buffer 182, and the calculation result data reception control unit 202 receives the calculation result data. It is confirmed whether or not it exists, and if necessary, the transmission history information is set to an invalid value (set to an invalid value). Although details will be described later, the control unit 163 manages the order of the calculation result data supplied from the client node 90 using the transmission history information table. That is, the control unit 163 validates the calculation result data received in the same order as the transmission order of the calculation data, and invalidates the calculation result data whose order has been changed. The control unit 163 manages this valid / invalid information using a transmission history information table. The invalid value conversion unit 205 updates the transmission history information so that the calculation result data (calculation result data in which reception is delayed compared to transmission) whose reception order is different from the transmission order of the corresponding calculation data is set as an invalid value. To do.

コンテキストデータ保持制御部206は、計算結果データ受信制御部202が受信した計算結果データに含まれるコンテキストデータ(送信元のクライアントノード90の内部状態を示す情報)をコンテキストデータバッファ183に供給し、保持させる。また、コンテキストデータ保持制御部206は、計算結果データが無効である場合、コンテキストデータバッファ183に保持されている、その1つ前の(最新の)コンテキストデータを複製し、新たなコンテキストデータとして保持させる。   The context data holding control unit 206 supplies the context data included in the calculation result data received by the calculation result data reception control unit 202 (information indicating the internal state of the transmission source client node 90) to the context data buffer 183 and holds it. Let When the calculation result data is invalid, the context data holding control unit 206 copies the previous (latest) context data held in the context data buffer 183 and holds it as new context data. Let

コマンド情報作成部207は、計算結果データ受信制御部202が受信した計算結果データより、ヒューマノイドロボット61に供給するコマンド情報を生成し、それをデータプール162に供給して保持させる。センサ情報受信部208は、ヒューマノイドロボット61より送信され、データプール162に保持されているセンサ情報を取得(受信)し、それをセンサ情報バッファ181に供給して保持させる。センサ情報更新確認部209は、センサ情報受信部208が取得(受信)したセンサ情報が更新されている(新たなセンサ情報である)ことを確認する。   The command information creation unit 207 generates command information to be supplied to the humanoid robot 61 from the calculation result data received by the calculation result data reception control unit 202, and supplies the command information to the data pool 162 for holding. The sensor information receiving unit 208 acquires (receives) sensor information transmitted from the humanoid robot 61 and stored in the data pool 162, and supplies the sensor information to the sensor information buffer 181 for storage. The sensor information update confirmation unit 209 confirms that the sensor information acquired (received) by the sensor information reception unit 208 has been updated (new sensor information).

計算データ作成部210は、センサ情報バッファ181に保持されているセンサ情報と、コンテキストデータバッファ183に保持されているコンテキストデータを用いて、クライアントノード90に供給する計算データを作成する。つまり、計算データ作成部210は、時系列に沿って因果関係を有する内容の時系列データ(センサ情報)を、その時系列に沿って複数の部分データに分割し、その部分データを用いて計算データを作成する構成を少なくとも有する。ここで、計算データ作成部210は、さらにコンテキストデータも用いて計算データを作成する。また、ここではさらに、計算データ作成部210は、送信履歴テーブル更新部211により更新される送信履歴テーブル(送信履歴テーブルバッファ182に保持されている送信履歴テーブル)を参照し、その送信履歴テーブルに含まれる計算データの送信時刻に基づいて計算データに含めるセンサ情報の時系列上の範囲を決定する構成も有する。例えば、計算データ作成部210は、同じクライアントノード90に対する前回の送信時刻より後のセンサ情報を用いて計算データを作成する。もちろんこれ以外の決定方法であってもよい。   The calculation data creation unit 210 creates calculation data to be supplied to the client node 90 using the sensor information held in the sensor information buffer 181 and the context data held in the context data buffer 183. That is, the calculation data creation unit 210 divides the time series data (sensor information) having the causal relationship along the time series into a plurality of partial data along the time series, and uses the partial data to calculate the calculation data. It has at least the structure which produces. Here, the calculation data creation unit 210 creates calculation data using context data. Further, here, the calculation data creation unit 210 refers to the transmission history table (transmission history table held in the transmission history table buffer 182) updated by the transmission history table update unit 211, and stores the transmission history table in the transmission history table. It has the structure which determines the range on the time series of the sensor information included in calculation data based on the transmission time of the calculation data contained. For example, the calculation data creation unit 210 creates calculation data using sensor information after the previous transmission time for the same client node 90. Of course, other determination methods may be used.

送信履歴テーブル更新部211は、計算データ作成部210が作成した計算データを送信することを送信履歴テーブルに反映させるために、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを読み出して送信時刻を更新し、その更新済みの送信履歴テーブルを送信履歴テーブルバッファ182に供給して保持させる。つまり、送信履歴テーブル更新部211は、計算データ送信部212による計算データの送信時刻を、クライアントノード90毎に管理する。   The transmission history table update unit 211 reads the transmission history table held in the transmission history table buffer 182 and reflects the transmission time in order to reflect the transmission of the calculation data created by the calculation data creation unit 210 to the transmission history table. And the updated transmission history table is supplied to and held in the transmission history table buffer 182. That is, the transmission history table update unit 211 manages the transmission time of calculation data by the calculation data transmission unit 212 for each client node 90.

計算データ送信部212は、計算データ作成部210が作成した計算データを、通信部164を介してクライアントノード90に所定の順番で送信する。   The calculation data transmission unit 212 transmits the calculation data created by the calculation data creation unit 210 to the client node 90 via the communication unit 164 in a predetermined order.

次に、図7の制御部163の各部の動作について説明する。制御部201は、例えばユーザ入力等に基づいて、サーバ処理を行うか否かを判定し、行うと判定した場合、計算結果データ受信制御部を制御し、クライアントノード90より送信される計算結果データの受信に関する処理を実行させる。計算結果データ受信制御部202は、制御部201の制御に基づいて、通信部164を制御し、クライアントノード90より送信される計算結果データの受信処理を行う。なお、後述するように、制御部163の各部により実行されるサーバ処理は、最初待機状態である。そして、計算結果データ受信制御部202が、最初に、通信部164を制御し、クライアントノード90から空の計算結果データ(ダミーデータ)を受信すると、制御部163の各部は、それをきっかけとして、実質的なサーバ処理を開始する。計算結果データを受信すると場合、計算結果データ受信制御部202は、その計算結果データを送信元特定部203に供給する。   Next, the operation of each unit of the control unit 163 in FIG. 7 will be described. For example, the control unit 201 determines whether or not to perform server processing based on user input or the like, and controls the calculation result data reception control unit and determines the calculation result data transmitted from the client node 90 when it is determined to perform the server process. Process related to the reception of. The calculation result data reception control unit 202 controls the communication unit 164 based on the control of the control unit 201 and performs processing for receiving calculation result data transmitted from the client node 90. As will be described later, the server process executed by each unit of the control unit 163 is initially in a standby state. Then, when the calculation result data reception control unit 202 first controls the communication unit 164 and receives empty calculation result data (dummy data) from the client node 90, each unit of the control unit 163 uses it as a trigger. Starts substantial server processing. When the calculation result data is received, the calculation result data reception control unit 202 supplies the calculation result data to the transmission source specifying unit 203.

送信元特定部203は、計算結果データを参照し、ヘッダ情報等に基づいて、送信元のクライアントノード90を特定する。送信元特定部203は、その送信元の情報とともに、計算結果データを有効性確認部204に供給する。有効性確認部204は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルの、計算結果データの送信元に対応する送信履歴情報を参照し、送信元特定部203より供給された計算結果データの有効性を確認し、計算結果データが有効である場合、その計算結果データと送信元の情報を無効値化部205に供給する。また、計算結果データが無効である場合、その計算結果データを破棄し、その旨をコンテキストデータ保持制御部206に通知する。なお、受信した計算結果データがダミーデータの場合、当然、送信履歴情報の送信時刻は有効なものでは無く、計算結果データは無効なものと判断される。   The transmission source identifying unit 203 refers to the calculation result data and identifies the transmission source client node 90 based on the header information and the like. The transmission source specifying unit 203 supplies the calculation result data to the validity checking unit 204 together with the transmission source information. The validity checking unit 204 refers to the transmission history information corresponding to the transmission source of the calculation result data in the transmission history table held in the transmission history table buffer 182, and calculates the calculation result data supplied from the transmission source specifying unit 203. If the calculation result data is valid, the calculation result data and the transmission source information are supplied to the invalidation unit 205. If the calculation result data is invalid, the calculation result data is discarded, and a notification to that effect is sent to the context data holding control unit 206. When the received calculation result data is dummy data, naturally, the transmission time of the transmission history information is not valid, and the calculation result data is determined to be invalid.

無効値化部205は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、有効性確認部204より供給された計算結果データと送信元の情報に基づいて、それより以前に受信する筈だった他の計算結果データが存在するか否かを確認し、存在する場合は、それらの計算結果データを無効とするように送信履歴テーブルを更新する。そして無効値化部205は、計算結果データをコンテキストデータ保持制御部206に供給する。   The invalid value converting unit 205 refers to the transmission history table held in the transmission history table buffer 182 and receives the previous result based on the calculation result data and the transmission source information supplied from the validity checking unit 204. Whether or not there is other calculation result data that should have been confirmed is confirmed, and if there is, the transmission history table is updated to invalidate the calculation result data. The invalid value converting unit 205 supplies the calculation result data to the context data holding control unit 206.

コンテキストデータ保持制御部206は、無効値化部205より供給される計算結果データに含まれるコンテキストデータをコンテキストデータバッファ183に供給して保持させる。また、コンテキストデータ保持制御部206は、有効性確認部204より無効であることを通知された場合、1つ前のステップにおいてコンテキストデータバッファ183に保持されたコンテキストデータ(その時点で最新のコンテキストデータ)を複製し、新たなコンテキストデータとしてコンテキストデータバッファ183に保持させる。ただし、コンテキストデータバッファ183にコンテキストデータが保持されていない場合、コンテキストデータ保持制御部206は、その複製処理を省略するか、若しくは、ダミーのコンテキストデータを生成して、そのダミーデータをコンテキストデータバッファ183に保持させる。   The context data holding control unit 206 supplies the context data included in the calculation result data supplied from the invalid value generating unit 205 to the context data buffer 183 and holds it. Further, when notified by the validity checking unit 204 that the context data holding control unit 206 is invalid, the context data holding control unit 206 stores the context data held in the context data buffer 183 in the previous step (the latest context data at that time). ) And is stored in the context data buffer 183 as new context data. However, when context data is not held in the context data buffer 183, the context data holding control unit 206 omits the duplication processing or generates dummy context data and uses the dummy data as the context data buffer. 183.

そして、コンテキストデータ保持制御部206は、計算結果データ(少なくとも予測計算結果を含む)をコマンド情報作成部207に供給する。コマンド情報作成部207は、供給された予測計算結果を用いて、ヒューマノイドロボット61に送信するコマンド情報を作成し、それをデータプール162に供給して保持させる。データプール162に保持されたコマンド情報は、所定のタイミングで端末装置71により読み出され、ヒューマノイドロボット61に供給される。コマンド情報作成部207は、コマンド情報をデータプール162に保持させると、処理終了をセンサ情報受信部208に通知する。   Then, the context data retention control unit 206 supplies the calculation result data (including at least the prediction calculation result) to the command information creation unit 207. The command information creation unit 207 creates command information to be transmitted to the humanoid robot 61 using the supplied prediction calculation result, and supplies the command information to the data pool 162 to hold it. The command information held in the data pool 162 is read by the terminal device 71 at a predetermined timing and supplied to the humanoid robot 61. When the command information creation unit 207 holds the command information in the data pool 162, the command information creation unit 207 notifies the sensor information reception unit 208 of the end of the process.

センサ情報受信部208は、データプール162に保持されているセンサ情報を取得し、それをセンサ情報更新確認部209に供給する。センサ情報更新確認部209は、供給されたセンサ情報が、前回供給されたセンサ情報と異なるか否か、すなわち、データプール162に保持されているセンサ情報が更新されているか否か(新たなセンサ情報を受信したか否か)を確認する。センサ情報が更新されていない、すなわち、新たなセンサ情報がヒューマノイドロボット61より供給されていない場合、センサ情報更新確認部209は、センサ情報受信部208のその旨を通知し、再度データプール162よりセンサ情報を取得させる。また、センサ情報が更新された、すなわち、新たなセンサ情報がヒューマノイドロボット61より供給された場合、センサ情報更新確認部209は、センサ情報受信部208にその旨を通知する。センサ情報受信部208は、センサ情報更新確認部209において更新が確認されたセンサ情報をセンサ情報バッファ181に供給し、保持させる。そして、センサ情報更新確認部209は、処理終了を計算データ作成部210に通知する。   The sensor information reception unit 208 acquires the sensor information held in the data pool 162 and supplies it to the sensor information update confirmation unit 209. The sensor information update confirmation unit 209 determines whether or not the supplied sensor information is different from the previously supplied sensor information, that is, whether or not the sensor information held in the data pool 162 has been updated (new sensor Confirm whether or not the information has been received. When the sensor information has not been updated, that is, when new sensor information has not been supplied from the humanoid robot 61, the sensor information update confirmation unit 209 notifies the sensor information reception unit 208 of that fact and again from the data pool 162. Get sensor information. When the sensor information is updated, that is, when new sensor information is supplied from the humanoid robot 61, the sensor information update confirmation unit 209 notifies the sensor information reception unit 208 to that effect. The sensor information reception unit 208 supplies the sensor information whose update has been confirmed by the sensor information update confirmation unit 209 to the sensor information buffer 181 and holds it. Then, the sensor information update confirmation unit 209 notifies the calculation data creation unit 210 of the end of the process.

計算データ作成部210は、センサ情報バッファ181よりセンサ情報を取得し、コンテキストデータバッファ183よりコンテキストデータを取得し、それらを用いて計算データを作成し、それを送信履歴テーブル更新部211に供給する。このとき、計算データ作成部210は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、その送信履歴情報に基づいて、計算データの送信先となるクライアントノード90に未送信のセンサ情報をセンサ情報バッファ181より取得する。また、計算データ作成部210は、計算データの送信先となるクライアントノード以外のクライアントノードのコンテキストデータをコンテキストデータバッファ183より取得する。   The calculation data creation unit 210 acquires sensor information from the sensor information buffer 181, acquires context data from the context data buffer 183, generates calculation data using them, and supplies it to the transmission history table update unit 211. . At this time, the calculation data creation unit 210 refers to the transmission history table held in the transmission history table buffer 182, and based on the transmission history information, the sensor that has not been transmitted to the client node 90 that is the transmission destination of the calculation data. Information is acquired from the sensor information buffer 181. Further, the calculation data creation unit 210 acquires the context data of the client node other than the client node that is the transmission destination of the calculation data from the context data buffer 183.

送信履歴テーブル更新部211は、計算データ作成部210が作成した計算データをクライアントノード90に送信することを、送信履歴テーブルに反映させるために、送信履歴テーブルバッファ182に保持されている送信履歴テーブルの情報を更新する。送信履歴テーブルを更新すると、送信履歴テーブル更新部211は、計算データを計算データ送信部212に供給する。計算データ送信部212は、通信部164を制御し、その計算データをクライアントノード90に送信する。計算データを送信すると、計算データ送信部212は、処理終了を制御部201に通知する。制御部201は、その通知を受け取ると、上述した処理を繰り返す。   The transmission history table update unit 211 stores the transmission history table held in the transmission history table buffer 182 in order to reflect the transmission of the calculation data created by the calculation data creation unit 210 to the client node 90 in the transmission history table. Update the information. When the transmission history table is updated, the transmission history table update unit 211 supplies calculation data to the calculation data transmission unit 212. The calculation data transmission unit 212 controls the communication unit 164 and transmits the calculation data to the client node 90. When the calculation data is transmitted, the calculation data transmission unit 212 notifies the control unit 201 of the end of the process. When the control unit 201 receives the notification, the control unit 201 repeats the above-described processing.

制御部163の各部は以上のように動作する。次に以上のような構成およびその動作の詳細について説明する。最初に計算データ作成部210の処理について図8の模式図を参照して説明する。   Each unit of the control unit 163 operates as described above. Next, the details of the above configuration and its operation will be described. First, the processing of the calculation data creation unit 210 will be described with reference to the schematic diagram of FIG.

計算データ作成部210は、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、その送信履歴情報に基づいて、計算データの送信先となるクライアントノード90に未送信のセンサ情報(送信履歴情報に記録されている送信時刻より後に受信したセンサ情報)をセンサ情報バッファ181より取得し、計算データを作成する。つまり、制御部163は、図8に示されるように、端末装置71を介して供給され、データプール162に保持されるセンサ情報231を取得し、それをセンサ情報バッファ181に記録する。センサ情報バッファ181には、このように供給されるセンサ情報が、図8において示されるセンサ情報A乃至センサ情報Eのように順番に蓄積される。なお、センサ情報バッファ181は、各センサ情報を保持した時刻を管理している。   The calculation data creation unit 210 refers to the transmission history table held in the transmission history table buffer 182, and based on the transmission history information, sensor information (transmission) that has not been transmitted to the client node 90 that is the transmission destination of the calculation data. Sensor information received after the transmission time recorded in the history information) is acquired from the sensor information buffer 181 to create calculation data. That is, as illustrated in FIG. 8, the control unit 163 acquires the sensor information 231 supplied via the terminal device 71 and held in the data pool 162 and records it in the sensor information buffer 181. In the sensor information buffer 181, the sensor information supplied in this way is accumulated in order as sensor information A to sensor information E shown in FIG. The sensor information buffer 181 manages the time when each sensor information is held.

仮に計算データ作成部210が、このように保持されるセンサ情報群のうち、最新のセンサ情報のみを用いて計算データを作成するようにした場合、今回の送信先と同じクライアントノード90に前回送信した時刻より後に蓄積されたセンサ情報(そのクライアントノード90が演算中に蓄積されたセンサ情報)であり、最新でないセンサ情報は、そのクライアントノード90に送信されないことになる。例えば、図8において、両矢印232で示されるセンサ情報C乃至センサ情報Eが、クライアントノード91の演算中に蓄積されたセンサ情報であるとすると、これらのうち、最新のセンサ情報Eのみが計算データとして蓄積され、センサ情報Cおよびセンサ情報Dは、クライアントノード91に供給されないことになる。   If the calculation data creation unit 210 creates calculation data using only the latest sensor information in the sensor information group held in this way, the previous transmission to the same client node 90 as the current transmission destination is performed. The sensor information accumulated after the time (sensor information accumulated during calculation by the client node 90), and sensor information that is not the latest is not transmitted to the client node 90. For example, in FIG. 8, if the sensor information C to sensor information E indicated by the double arrow 232 is sensor information accumulated during the calculation of the client node 91, only the latest sensor information E is calculated. The sensor information C and sensor information D stored as data are not supplied to the client node 91.

このように、あるクライアントノード90が、計算結果データを出力した時点での最新の計算データのみを受け取り、その計算データをもとに次のステップでの予測状態を計算するようにすると、各クライアントノード90には、計算中にセンサ情報バッファ181に蓄積されたセンサ情報が通知されなくなる。元々、センサ情報は連続時間情報であるから、そのセンサ情報に基づいて正しく予測を行う為には、クライアントノードは、全てのセンサ情報を取得する必要がある。しかしながら、この方法では、連続時間情報の一部に欠損が生じることになる。つまり、各クライアントノードは離散時間の時系列情報に対して予測計算を行うことになり、結果として、予測の精度が低下する。   In this way, when a certain client node 90 receives only the latest calculation data at the time of outputting the calculation result data and calculates the predicted state in the next step based on the calculation data, each client node 90 The node 90 is not notified of the sensor information accumulated in the sensor information buffer 181 during the calculation. Originally, the sensor information is continuous time information, so in order to perform prediction correctly based on the sensor information, the client node needs to acquire all the sensor information. However, in this method, a part of the continuous time information is lost. That is, each client node performs prediction calculation for time-series information in discrete time, and as a result, the accuracy of prediction decreases.

なお、サーバノード81は、センサ情報バッファ181に蓄積されるセンサ情報を順番に各クライアントノードに割り当てていく(分配する)ので、クライアントノード90の数が増えれば増えるほど、離散の程度は大きくなることになる。従って、各クライアントノード90が、連続時間の学習データを用いてアルゴリズムの学習を行っている場合には、学習データと実際の予測対象の状態変化との食い違いが大きくなり、予測計算の精度が低下する。   Since the server node 81 sequentially assigns (distributes) the sensor information stored in the sensor information buffer 181 to each client node, the degree of discreteness increases as the number of client nodes 90 increases. It will be. Therefore, when each client node 90 learns an algorithm using continuous-time learning data, the discrepancy between the learning data and the actual state change of the prediction target increases, and the accuracy of the prediction calculation decreases. To do.

そこで、サーバノード81は、送信履歴テーブルを用いて、各クライアントノード90に計算データを送信した時間を記録する。そして、計算データ作成部210は、各クライアントノード90に送信する計算データを作成する際に、最新のセンサ情報だけでなく、その送信時刻の情報を参照して、それより後(計算データを送信するクライアントノード90が計算中に)蓄積されたセンサ情報を全て含めるように計算データを作成する。   Therefore, the server node 81 records the time when the calculation data is transmitted to each client node 90 using the transmission history table. Then, when creating calculation data to be transmitted to each client node 90, the calculation data creation unit 210 refers to not only the latest sensor information but also the information on the transmission time, and thereafter (sends the calculation data). The calculation data is created so as to include all of the accumulated sensor information (during calculation by the client node 90).

図9の場合、計算データ作成部210は、送信履歴テーブルバッファ182を参照し、クライアントノード91に前回送信した時刻を把握し、それより後に蓄積された送信履歴情報であるセンサ情報C乃至センサ情報Eを用いて計算データを作成し、それをクライアントノード91に供給する。他のクライアントノードであるクライアントノード92およびクライアントノード93についても同様である。   In the case of FIG. 9, the calculation data creation unit 210 refers to the transmission history table buffer 182, grasps the time of the previous transmission to the client node 91, and sensor information C to sensor information that are transmission history information accumulated thereafter. E is used to create calculation data and supply it to the client node 91. The same applies to the client nodes 92 and 93 which are other client nodes.

このようにすることにより、各クライアントノード90は、連続する時系列データ(センサ情報)を用いて予測演算処理を行うことができ、より正確な予測結果を求めることができる。   By doing in this way, each client node 90 can perform prediction calculation processing using continuous time-series data (sensor information), and can obtain a more accurate prediction result.

また、コンテキストデータバッファ183には、クライアントノード90より計算結果データとして供給されるコンテキストデータが保持される。例えば、図8の場合、クライアントノード93の内部状態に関する情報であるコンテキストデータ93A、クライアントノード91の内部状態に関する情報であるコンテキストデータ91A、および、クライアントノード92の内部状態に関する情報であるコンテキストデータ92Aがこの順番に繰り返し蓄積される。   The context data buffer 183 holds context data supplied as calculation result data from the client node 90. For example, in the case of FIG. 8, context data 93A that is information about the internal state of the client node 93, context data 91A that is information about the internal state of the client node 91, and context data 92A that is information about the internal state of the client node 92. Are repeatedly accumulated in this order.

例えば、計算対象となる時系列予測計算アルゴリズムが、図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 certain client node 90 retains the context information held inside at the time of outputting the previous calculation result as it is and uses it as it is for the next prediction calculation, the context information becomes new calculation data. May not be optimal for sensor information. That is, the previously held context data is information corresponding to the sensor information used in the previous prediction calculation, and the subsequent sensor information (newly acquired sensor information) is not reflected, so it is newly acquired. There is no relevance to the sensor information, and there is a possibility that the learning results up to that point cannot be inherited correctly. In other words, when learning is performed with the algorithm as described above, each client node learns independently of each other and outputs learning results that are not related to each other, which may cause a large difference in the learning results. There is.

そこで、実際には、そのクライアントノード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 client node 90 that has output the calculation result immediately before the client node 90. Therefore, when the server node 81 receives the predicted calculation result (calculation result data) from each client node 90, the server node 81 receives the latest context data held by the client node 90 simultaneously with the result, and uses it as time-series data. Is stored in the context data buffer 183. When the server node 81 passes the calculation target time-series data (sensor information) to each client node 90, the server node 81 transmits the time-series data of the context data together with the sensor information.

具体的には、図8の場合、コンテキストデータバッファ183は、クライアントノード91より新たに供給されたコンテキストデータ91Aを保持する。このとき、計算ノード作成部210は、両矢印233で示される、前回蓄積されたコンテキストデータ91A(図8中において、左から2番目のコンテキストデータ91A)より後に保持され、かつ最新のものでないコンテキストデータ92Aおよびコンテキストデータ93A(右から2番目および3番目のデータ)を含めるように計算データを作成する。つまり、各クライアントノード90には、自分以外のクライアントノードのコンテキストデータが供給される。   Specifically, in the case of FIG. 8, the context data buffer 183 holds the context data 91 </ b> A newly supplied from the client node 91. At this time, the computation node creation unit 210 retains the context data 91A (second context data 91A from the left in FIG. 8) accumulated last time and indicated by a double-headed arrow 233 and is not the latest context. Calculation data is created so as to include data 92A and context data 93A (second and third data from the right). That is, each client node 90 is supplied with context data of a client node other than itself.

図8のクライアントノード91は、以上のようにサーバノード81より送られてきた2ステップ分のコンテキストデータ(時系列データ)を、自己の持つ最新のコンテキストデータの前に挿入して、次の時間の予測計算を実行する。   The client node 91 of FIG. 8 inserts the context data (time-series data) for two steps sent from the server node 81 as described above before the latest context data of its own, and the next time Perform the prediction calculation.

このように、各クライアントノード90が、上述したように他のクライアントノード90のコンテキストデータを取り込むことで、他の影響を自己に含めるようにすることによって、互いのコンテキストデータを共有し、各クライアントノード90内の時系列予測アルゴリズムの持つ内部状態がそれぞれ乖離しないように状態を保つことができる。   In this way, each client node 90 captures the context data of the other client node 90 as described above, thereby including other influences in itself, thereby sharing each other's context data, The state can be maintained so that the internal states of the time series prediction algorithms in the node 90 do not deviate from each other.

なお、コンテキストデータは、クライアントノード90が有する時系列予測計算アルゴリズム自身が生成するデータであるため、予測計算の対象データであるセンサ情報との対応を取ると、クライアントノード90自身が持っているコンテキストデータが最新のコンテキストデータとなる。つまり、各クライアントノード90から得られコンテキストデータを時系列情報としてまとめたものは最新のセンサデータよりも以前の状態までしか決定できない。   Since the context data is data generated by the time series prediction calculation algorithm itself of the client node 90, the context of the client node 90 itself is obtained by taking correspondence with the sensor information that is the target data of the prediction calculation. The data becomes the latest context data. That is, the context data obtained from each client node 90 collected as time series information can only be determined up to a state before the latest sensor data.

図8を参照して説明すると、例えば、クライアントノード91が図中左側の(図中右から4番目の)コンテキストデータ91Aを出力した時点においては、他のクライアントノード92および93はまだ演算中であり、そのコンテキストデータ91Aより時系列において後になる、そのコンテキストデータ91Aの図中右側の(図中右から3番目と2番目の)コンテキストデータ92Aおよびコンテキストデータ93Aは、まだ出力されていない。従ってクライアントノード91は、その先の予測処理(換言すると、その次のコンテキストデータ91Aを算出する処理)を行う為に必要な、コンテキストデータ92Aおよびコンテキストデータ93Aを取得することができない。   Referring to FIG. 8, for example, when the client node 91 outputs the context data 91A on the left side (fourth from the right in the figure), the other client nodes 92 and 93 are still operating. Yes, the context data 92A and the context data 93A on the right side (third and second from the right in the figure) of the context data 91A, which is later in the time series than the context data 91A, have not been output yet. Therefore, the client node 91 cannot acquire the context data 92A and the context data 93A necessary for performing the previous prediction process (in other words, the process for calculating the next context data 91A).

しかしながら、これらの未知の部分のコンテキストデータについては、過去のセンサ情報とコンテキストデータの時系列から予測計算を行うことによって生成することができる。つまり、クライアントノード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 client node 90 generates the context data after the latest stored context data by using the latest context data that the client node 90 has and the sensor information newly supplied from the server node 81 thereafter. can do. As a result, each client node 90 can perform a prediction calculation even if their context data remains unknown.

また、図8に示されるように、サーバノード81の制御部163は、クライアントノード90より計算結果データを取得すると、その中に含まれる予測情報に基づいて、ヒューマノイドロボット61に供給するコマンド情報234を作成し、それをデータプール162に保持させる。データプール162に保持されたコマンド情報234は、所定のタイミングで端末装置71により読み出され、ヒューマノイドロボット61に送信される。   As shown in FIG. 8, when the control unit 163 of the server node 81 acquires the calculation result data from the client node 90, the command information 234 supplied to the humanoid robot 61 based on the prediction information included therein. Is created and held in the data pool 162. The command information 234 held in the data pool 162 is read by the terminal device 71 at a predetermined timing and transmitted to the humanoid robot 61.

このとき、各クライアントノード90とサーバノード81との間の通信時間や、各クライアントノード90の計算処理時間が信頼に足る場合(これらの時間がクライアントノード90間で互いに十分等しい場合)には、サーバノード81が各クライアントノード90より取得する計算結果データの順番は、サーバノード81がそれらの計算結果データに対応する計算データを各クライアントノード90に渡した順番に一致し、それら計算結果データをそのままの順番で結合した結合データは、正しい時系列情報になる。しかしながら、例えば、クラスタコンピュータ72が、この時系列予測計算に特化した計算機システムではなく、他の用途に関する処理が共存し、かつ、この時系列予測計算と並列に動いている場合(汎用のクラスタコンピュータなどで運用する場合)、通信経路の混雑具合や他プロセスの処理の負荷状況、または、計算機の個体差等のような不確定要素が多く働くので、サーバノード81は、必ずしも計算データを送信した順番で、各クライアントノード90から計算結果データを得られるとは限らない。   At this time, when the communication time between each client node 90 and the server node 81 and the calculation processing time of each client node 90 are reliable (when these times are sufficiently equal between the client nodes 90), The order of the calculation result data that the server node 81 acquires from each client node 90 matches the order in which the server node 81 passes the calculation data corresponding to the calculation result data to each client node 90, and the calculation result data is Combined data combined in the same order becomes correct time-series information. However, for example, when the cluster computer 72 is not a computer system specialized for this time series prediction calculation, and other processing related to the coexistence and operates in parallel with this time series prediction calculation (general-purpose cluster When operating on a computer or the like), the server node 81 does not always transmit calculation data because many uncertain factors such as the degree of congestion of the communication path, the processing load of other processes, or individual differences between computers work. In this order, the calculation result data is not always obtained from each client node 90.

そのため、サーバノード81は、各クライアントノード90に計算データを送信した順番を記録し、各クライアントノード90から計算結果データを受信した際に、その受信したデータの順番が送信時の順番と同一であるかを判定することにより、その受信したデータの有効性を確認する。つまり、確認の結果、計算結果データの受信順が、計算データの送信順と同一か、または、送信順より早い場合、サーバノード81は、その計算結果データを採用する。逆に、計算結果データの受信順が、計算データの送信順よりも遅れた場合、サーバノード81は、そのクライアントノード90からの結果は破棄する。このようにすることにより、サーバノード81は、ヒューマノイドロボット61に送信するコマンド情報の時系列を正しい順番に制御し、時間的に逆戻りすることの無いようにすることができる。つまり、このようにすることにより、サーバノード81は、処理の負荷を増大させずに容易に、より正確なコマンド情報を生成し、ヒューマノイドロボット61に提供することができる。   Therefore, the server node 81 records the order in which the calculation data is transmitted to each client node 90, and when the calculation result data is received from each client node 90, the order of the received data is the same as the order at the time of transmission. The validity of the received data is confirmed by determining whether it exists. That is, as a result of the confirmation, when the reception order of the calculation result data is the same as or earlier than the transmission order of the calculation data, the server node 81 adopts the calculation result data. Conversely, when the reception order of the calculation result data is delayed from the transmission order of the calculation data, the server node 81 discards the result from the client node 90. By doing in this way, the server node 81 can control the time series of command information transmitted to the humanoid robot 61 in the correct order so that it does not reverse in time. That is, by doing so, the server node 81 can easily generate more accurate command information and provide it to the humanoid robot 61 without increasing the processing load.

このような制御を行う為に、サーバノード81は、各クライアントノード90に計算データを送信した送信時刻を記録する送信履歴テーブルを作成し、それを送信履歴テーブルバッファ182に保持させる。制御部163は、各クライアントノード90から計算結果データを受信すると、送信履歴テーブルに保持される送信履歴テーブルを参照し、その受信したデータの順番が、送信時の順番と同一であるかを判定する。送信履歴テーブルの、その計算結果データに対応するクライアントノードの送信履歴情報に無効値を示す値が含まれている場合、制御部163は、その計算結果データを無効と判定し、無効値を示す値が含まれていない場合は、その計算結果データを有効と判定する。   In order to perform such control, the server node 81 creates a transmission history table that records the transmission time when the calculation data is transmitted to each client node 90, and stores the transmission history table in the transmission history table buffer 182. When receiving the calculation result data from each client node 90, the control unit 163 refers to the transmission history table held in the transmission history table and determines whether the order of the received data is the same as the order at the time of transmission. To do. When the transmission history information of the client node corresponding to the calculation result data in the transmission history table includes a value indicating an invalid value, the control unit 163 determines that the calculation result data is invalid, and indicates an invalid value. If no value is included, the calculation result data is determined to be valid.

送信履歴テーブルは、クライアントノード分のレコードを有しており、各ノード番号に送信時刻を示す情報が関連付けられている。例えば、クライアントノード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 client nodes 90, the transmission history table has a configuration as shown in FIG. 10A. That is, information on the transmission time at which the calculation data is transmitted is associated with each node number.

このとき、例えば、図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 client node 90 with the node number “3” ends the prediction calculation and transmits the calculation result data at time 72, the control unit 163 first transmits this transmission. The transmission time value of node number “3” in the history table is referred to. As shown in FIG. 10A before that, since the value of the transmission time of the node number “3” is “60” and valid (not an invalid value), the control unit 163 next transmits the transmission time. However, the transmission time of the node number that is earlier than the transmission time of the node number “3” that acquired the calculation result data this time is set to the invalid value “−1”. That is, in the case of FIG. 10B, the control unit 163 invalidates the transmission time values of the node numbers “1” and “2” (sets them to “−1”).

次に、制御部163は、このノード番号「3」のクライアントノード90に対して、新たな計算データを供給するので、そのとき、図10Bに示されるように、送信履歴テーブルのノード番号「3」の送信時刻を「60」から「72」に更新する。   Next, the control unit 163 supplies new calculation data to the client node 90 with the node number “3”. At that time, as shown in FIG. 10B, the node number “3” in the transmission history table is supplied. "Is updated from" 60 "to" 72 ".

次に、図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 client node 90 with the node number “1” finishes the prediction calculation and transmits the calculation result data at time 75, the control unit 163 first transmits the transmission history. The transmission time value of the node number “1” in the table is referred to. As shown in FIG. 10B before that, the transmission time of the node number “1” is an invalid value. Therefore, the control unit 163 deletes the calculation result data of the node number “1”. Then, the control unit 163 supplies new calculation data to the client node 90 with the node number “1”. At that time, as shown in FIG. 10C, the node number “1” in the transmission history table Is updated from “−1” to “75”.

次に、図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 client node 90 with the node number “3” finishes the prediction calculation and transmits the calculation result data at the time 78, the control unit 163 first transmits the transmission history. The transmission time value of the node number “3” in the table is referred to. As shown in FIG. 10B before that, the transmission time of the node number “3” is valid at “72”. Therefore, the control unit 163 next sets the transmission time of the node number whose transmission time is earlier than the transmission time of the node number “3” from which the current calculation result data is acquired to the invalid value “−1”. Set to. That is, in the case of FIG. 10D, the control unit 163 invalidates the transmission time values of the node numbers “4” and “5” (sets them to “−1”).

次に、制御部163は、このノード番号「3」のクライアントノード90に対して、新たな計算データを供給するので、そのとき、図10Dに示されるように、送信履歴テーブルのノード番号「3」の送信時刻を「72」から「78」に更新する。   Next, the control unit 163 supplies new calculation data to the client node 90 with the node number “3”. At that time, as illustrated in FIG. 10D, the node number “3” in the transmission history table. "Is updated from" 72 "to" 78 ".

このように、制御部163は、送信履歴テーブルを用いて送信時刻を管理し、さらに、計算結果データの出力が遅延した演算は無効とするように制御する。このようにすることにより、制御部163は、計算結果データの時系列を容易に管理することができる。また、制御部163は、送信履歴テーブルの送信時刻に無効値「−1」を設定することにより、計算結果データの有効性を管理するので、送信履歴テーブルの情報量を増大させずに計算結果データの時系列を容易に管理することができる。つまり、制御部163は、このような制御処理によって、常に最新の予測結果を採用しつつ、時系列予測結果の情報が時間的に逆戻りすることの無いように計算結果時系列情報を容易に管理することが可能になる。   As described above, the control unit 163 manages the transmission time using the transmission history table, and further controls to invalidate the calculation in which the output of the calculation result data is delayed. By doing in this way, the control part 163 can manage the time series of calculation result data easily. In addition, the control unit 163 manages the validity of the calculation result data by setting an invalid value “−1” as the transmission time of the transmission history table, so that the calculation result can be obtained without increasing the information amount of the transmission history table. Data time series can be easily managed. In other words, the control unit 163 easily manages the calculation result time-series information so that the time-series prediction result information does not reverse in time while always adopting the latest prediction result by such control processing. It becomes possible to do.

図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 (client node 91 to client node 93) of the cluster computer 72.

クライアントノード90は、通信部251、データバッファ252、および演算部253を有している。   The client node 90 includes a communication unit 251, a data buffer 252, and a calculation unit 253.

通信部251は、所定の通信規格により、サーバノード81と通信を行い、上述した計算データや計算結果データのやり取り等を行う。例えば、通信部251は、サーバノード81より送信される計算データを受信し、それをデータバッファ252に供給して保持させる。また、通信部251は、例えば、データバッファ252に保持されている計算結果データを取得し、それをサーバノード81に送信する。データバッファ252は、DRAMやSRAM等の記憶素子を有しており、所定の容量の記憶領域を有している。データバッファ252は、その記憶領域を用いて、通信部251より供給される計算データ、および、演算部253より供給される計算結果データを一時的に保持する。演算部253は、データバッファ252に保持されている計算データを取得すると、その計算データを用いて、上述したように、時系列データに対する予測計算処理を行う。そして演算部253は、その計算結果を計算結果データとしてデータバッファ252に供給し、保持させる。   The communication unit 251 communicates with the server node 81 according to a predetermined communication standard, and exchanges the above-described calculation data and calculation result data. For example, the communication unit 251 receives calculation data transmitted from the server node 81 and supplies it to the data buffer 252 for holding. For example, the communication unit 251 acquires the calculation result data held in the data buffer 252 and transmits it to the server node 81. The data buffer 252 has a storage element such as DRAM or SRAM, and has a storage area of a predetermined capacity. The data buffer 252 temporarily holds calculation data supplied from the communication unit 251 and calculation result data supplied from the calculation unit 253 using the storage area. When the calculation unit 253 acquires the calculation data held in the data buffer 252, the calculation unit 253 performs prediction calculation processing on the time series data as described above using the calculation data. Then, the calculation unit 253 supplies the calculation result to the data buffer 252 as calculation result data and holds it.

すなわち、通信部251、データバッファ252、および演算部253は、図3に示される時系列予測器111として動作し、供給される時系列データに基づいて、その時系列データの時間的に後の値(時系列データのその先の値)を予測し、その予測値を計算結果データとして出力する。   That is, the communication unit 251, the data buffer 252, and the calculation unit 253 operate as the time series predictor 111 shown in FIG. 3, and based on the supplied time series data, the time series data later in time (The value ahead of the time-series data) is predicted, and the predicted value is output as calculation result data.

次に、図2のクラスタコンピュータ72全体の処理について説明する。図12は、クラスタコンピュータ72が実行する処理の全体の流れを説明する図である。   Next, processing of the entire cluster computer 72 in FIG. 2 will be described. FIG. 12 is a diagram for explaining the overall flow of processing executed by the cluster computer 72.

クラスタコンピュータ72において、サーバノード81は、ステップS21において、端末装置71より送信される時系列データを元データ271として取得する。実際には、端末装置71は、この時系列データの部分データ(例えば、ヒューマノイドロボット61の関節角情報101やボール座標情報102等のセンサ情報)をその時系列に沿って、順次、サーバノード81のデータプール162に蓄積させる。サーバノード81の制御部163は、そのデータプール162から部分データ(センサ情報)を取り出し、データバッファ165に蓄積する。ただし、この時点では、蓄積された部分データ群は、保持されているのみであり、換言すると、1つの塊(元データ271)としてまとめて管理されている。   In the cluster computer 72, the server node 81 acquires the time series data transmitted from the terminal device 71 as the original data 271 in step S21. Actually, the terminal device 71 sequentially transmits the partial data of the time series data (for example, sensor information such as the joint angle information 101 and the ball coordinate information 102 of the humanoid robot 61) along the time series of the server node 81. Accumulate in the data pool 162. The control unit 163 of the server node 81 extracts partial data (sensor information) from the data pool 162 and stores it in the data buffer 165. However, at this point, the accumulated partial data group is only held, and in other words, is managed collectively as one lump (original data 271).

次に、サーバノード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 server node 81 divides the original data 271 into a plurality of divided data in step S22. For example, in the case of FIG. 12, the server node 81 divides the original data 271 into four pieces of divided data (divided data 281 to divided data 284). At this time, the server node 81 divides the time-series data so that part of the range overlaps between the divided data adjacent in time series (data near the boundary is included in both partial data). For example, in the case of FIG. 12, the portion A sandwiched by dotted lines in the original data 271 is included in both the divided data 281 and the divided data 282, and the portion B is included in both the divided data 282 and the divided data 283. The portion C is included in both the divided data 283 and the divided data 284. Actually, the control unit 163 of the server node 81 creates divided data by dividing the partial data group extracted from the data pool 162 in units of the partial data. That is, each divided data is composed of one or a plurality of partial data.

時系列データを分割すると、サーバノード81は、分割データをクライアントノード90に分配する。例えば、図12の場合、サーバノード81は、分割データ281をクライアントノード291に送信し、分割データ282をクライアントノード292に送信し、分割データ283をクライアントノード293に送信し、分割データ284をクライアントノード294に送信する。このときサーバノード81は、必要に応じて、コンテキストデータもクライアントノード90に分配する。   When the time series data is divided, the server node 81 distributes the divided data to the client nodes 90. For example, in the case of FIG. 12, the server node 81 transmits the divided data 281 to the client node 291, transmits the divided data 282 to the client node 292, transmits the divided data 283 to the client node 293, and transmits the divided data 284 to the client node 292. Transmit to node 294. At this time, the server node 81 distributes the context data to the client nodes 90 as necessary.

分割データを供給された各クライアントノード90(図12の場合、クライアントノード291乃至クライアントノード294)は、ステップS23において、分割データに対する予測計算を並列的に(それぞれ互いに独立して)行う(並列計算する)。そして、各クライアントノード90は、得られた計算結果をそれぞれ、サーバノード81に送信する。   Each client node 90 (in the case of FIG. 12, client node 291 to client node 294) supplied with the divided data performs prediction calculation for the divided data in parallel (independently from each other) in step S23 (parallel calculation). To do). Each client node 90 transmits the obtained calculation result to the server node 81.

サーバノード81は、ステップS24において、それらの計算結果を受信すると、それらを時系列に沿って集約し、1つの出力用時系列データ301(例えば、関節角コマンド105等のコマンド情報)を作成し、それを端末装置71に出力する。実際には、サーバノード81の制御部163は、クライアントノード90より供給される計算結果データを、順次、有効性を確認し、有効な場合のみ、その計算結果データに対するコマンド情報を作成し、それをデータプール162に蓄積させる。端末装置71は、そのデータプール162に蓄積されるコマンド情報群(出力用時系列データ)を所定のタイミングで順次読み出し、ヒューマノイドロボット61に転送する。つまり、出力用時系列データ301の出力は、1度に出力されるのではなく、その部分データが時系列に沿って順次出力されるが、出力回数が複数化されているのみであり、本質的には、1つの塊(出力用時系列データ301)としてまとめて管理されている。   When the server node 81 receives the calculation results in step S24, the server node 81 aggregates them along the time series and creates one output time series data 301 (for example, command information such as the joint angle command 105). , It is output to the terminal device 71. Actually, the control unit 163 of the server node 81 sequentially checks the validity of the calculation result data supplied from the client node 90, and creates command information for the calculation result data only when it is valid. Are stored in the data pool 162. The terminal device 71 sequentially reads out the command information group (output time-series data) accumulated in the data pool 162 at a predetermined timing and transfers it to the humanoid robot 61. That is, the output of the output time-series data 301 is not output at a time, but the partial data is sequentially output along the time series, but only the number of outputs is made plural. Specifically, they are collectively managed as one lump (output time-series data 301).

このようにサーバノード81が時系列データを、各範囲の一部が重複するように分割し、その分割データを複数のクライアントノード90に並行して処理させることにより、クラスタコンピュータ72は、より高速に予測計算を行うことができる。   As described above, the server node 81 divides the time-series data so that a part of each range overlaps, and causes the plurality of client nodes 90 to process the divided data in parallel. Predictive calculations can be performed.

このような予測計算処理の効果について具体的に説明する。図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 humanoid robot 61, the horizontal axis shows time, and the vertical axis shows the state quantity. That is, this graph is a graph showing an example of the value of time series data. The solid curve in this graph shows an example of sensor information. The result of predictive calculation based on this sensor information is indicated by a dotted curve. Note that the dotted vertical line indicates “step” which is a unit of time in this processing. That is, in the cluster computer 72, data exchange and input / output are performed at this time interval.

例えば、ある時刻においてその次のステップのセンサ情報の値を予測する場合、入力データとして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 client node 91 predicts the value of sensor information at time T + 1 at time T (point indicated by a circle), sensor information from time A to time B is required as input data, and time B as predicted calculation time. To time T is required. That is, the time from time A to time B is the data collection time, and the time from time B to time T is the predicted calculation time.

このような場合において、1台のクライアントノード90において予測計算を行うようにすると、クラスタコンピュータ72は、9+3=12ステップ毎にしか予測結果を出力することができない。つまり、1台の計算機で時系列状態予測計算を実行し、ヒューマノイドロボット61の実時間制御を実現しようとすると、実際には「環境情報の取得(データ収集)→予測計算→予測結果の出力」をシリアルに繰り返し実行することになる。この繰返し周期(例えば上述の12ステップ)は多くの場合予測計算のスピード(計算能力)に依存する。従って、ヒューマノイドロボット61の制御周期は、長い(ステップ数が多い)だけでなく、計算機(クライアントノード90)の負荷状態等に応じて無視出来ないほど変化してしまい、予測計算処理の安定性も低下する。   In such a case, if the prediction calculation is performed in one client node 90, the cluster computer 72 can output the prediction result only every 9 + 3 = 12 steps. In other words, when executing the time series state prediction calculation with one computer and realizing the real-time control of the humanoid robot 61, actually, “acquisition of environmental information (data collection) → prediction calculation → output of prediction result” Will be repeated serially. This repetition period (for example, the above-mentioned 12 steps) often depends on the speed of prediction calculation (computation capability). Therefore, the control cycle of the humanoid robot 61 is not only long (the number of steps is large) but also changes so as not to be ignored depending on the load state of the computer (client node 90) and the stability of the prediction calculation process is also improved. descend.

そこで情報処理システム51においては、この予測計算を、クラスタコンピュータ72を利用することによって並列化して実行させる。これにより、情報処理システム51は、各クライアントノード90の担当するデータ量を小さくし、それぞれの計算量を削減することができ、結果として、最終結果を得るまでの時間を短縮することができる。従って、情報処理システム51は、単一の計算機の能力に依存せずに制御周期をより高速化することができる。さらに、情報処理システム51は、複数のクライアントノード90に並行して予測処理を実行させることにより、各ノードの負荷状態等が制御に与える影響の割合を低減し、制御をより安定化することができる。   Therefore, in the information processing system 51, the prediction calculation is executed in parallel by using the cluster computer 72. As a result, the information processing system 51 can reduce the amount of data handled by each client node 90, reduce the amount of each calculation, and as a result, shorten the time until the final result is obtained. Therefore, the information processing system 51 can further speed up the control cycle without depending on the ability of a single computer. Furthermore, the information processing system 51 can reduce the ratio of the influence of the load state of each node on the control by causing the plurality of client nodes 90 to execute the prediction process in parallel, thereby further stabilizing the control. it can.

ただし、従来の並列計算において、サーバノードは、ある大きな入力データの塊を、互いに重なりの無いように分割して各計算ノードに割り当てる。この手法は、分割された各データ間、および各データに対する処理間に因果関係がない場合には適用可能であるが、時系列予測計算アルゴリズムのように、前の状態の結果が次の状態に反映されるような計算対象、例えば、時系列に沿って因果関係を有する内容の時系列データであるセンサ情報を計算対象とする場合には適用できない。   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 server node 81 divides the sensor information so that the range of sensor information supplied to each client node 90 partially overlaps. Specifically, the calculation data creation unit 210 refers to the transmission history table held in the transmission history table buffer 182, and among the sensor information held in the sensor information buffer 181, the client node 90 that is the transmission destination. The sensor information held in the sensor information buffer 181 is extracted after the transmission time of the transmission history information, and calculation data is created by combining the context data extracted from the context data buffer 183 with the sensor information.

つまり、計算データ作成部210は、時系列に沿って因果関係を有する内容の時系列データ(センサ情報)を、その時系列に沿って複数の部分データに、各部分データの時系列上の範囲の一部が、隣り合う(分割(抽出)された順序が連続する)部分データ同士で互いに重複するように、分割する。そして計算データ作成部210は、各部分データについて計算データを作成する。換言すると、計算データ作成部210は、時系列データ(センサ情報バッファ181に保持されたセンサ情報)から、その時系列に沿って抽出範囲をずらしながら、その抽出範囲内の時系列データである部分データを繰り返し抽出することにより、時系列データを分割する。このとき、計算データ作成部210は、今回の抽出範囲と前回の抽出範囲とで、その一部が重複するように抽出範囲をずらす。より具体的には、計算データ作成部210は、毎回、要求される計算結果データの出力間隔に応じた、抽出範囲よりも短い時間分、抽出範囲をずらす。   That is, the calculation data creation unit 210 converts time-series data (sensor information) having a causal relationship along a time series into a plurality of partial data along the time series. The data is divided so that a part of the data partially overlaps each other (the order of division (extraction) continues). Then, the calculation data creation unit 210 creates calculation data for each partial data. In other words, the calculation data creation unit 210 shifts the extraction range from the time series data (sensor information held in the sensor information buffer 181) along the time series, and the partial data that is the time series data in the extraction range. Is repeatedly extracted to divide the time series data. At this time, the calculation data creation unit 210 shifts the extraction range so that a part of the current extraction range and the previous extraction range overlap. More specifically, the calculation data creation unit 210 shifts the extraction range by a time shorter than the extraction range according to the required output interval of the calculation result data each time.

このように、時系列データをその時系列に沿って分割して得られる各部分データの範囲の一部が、時系列上隣り合う(分割(抽出)された順序が連続する)部分データ同士で互いに重複するように、時系列データを分割することにより、時系列データ(センサ情報)内の因果関係を維持しながら並列計算を実現することができ、データ収集時間や予測計算時間より短い時間間隔で、より正確な予測結果を出力することができる。   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 client node 91 that starts data collection from time A, the client node 92 starts data collection from time A + 1, and the client node 93 starts data collection from time A + 2. Like that. In this way, the client node 92 predicts the value of sensor information at time T + 2 (point indicated by a square) at time T + 1, and the client node 93 determines the value of sensor information at time T + 3 (triangle) at time T + 2. Can be predicted. That is, the timing at which each client node 90 outputs the prediction result is shifted by one step. That is, the cluster computer 72 can output a more accurate prediction result for each step, although 12 steps are required by data collection and prediction calculation.

より具体的に説明すると、例えば、単一計算機で実行した予測計算の計算時間が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 humanoid robot 61 needs to be shorter than the calculation period. Assume that it is necessary to obtain calculation outputs from the cluster computer 72 at intervals of 10 msec. In this case, since 500/10 = 50, 50 client nodes 90 may be prepared. The server node 81 cuts out partial data from the sensor information supplied from the humanoid robot 61 while changing the cutout range by 10 msec along the time-series range, and transmits (distributes) the partial data to each client node 90. That is, for example, the server node 81 transmits the cut first partial data to the client node 91, transmits the cut second partial data to the client node 92, and transmits the cut third partial data to the client node 93. Send to. Furthermore, when the processing of the client node 91 ends, the server node 81 transmits the cut-out fourth partial data to the client node 91. If such processing is repeated, the calculation result is returned from each client node 90 to the server node 81 every 10 msec. The server node 81 connects these results, obtains a time series prediction result, and supplies it to the terminal device 71. That is, the control system 62 can realize a control cycle of 10 msec.

なお、上述したように、クライアントノード数は、下記の式(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 server node 81 actually collects data, the client node 91 that has finished the prediction calculation at time T can start the next prediction calculation from time T. That is, the client node 91 that has finished the prediction calculation at time T starts data collection at time A + 3, starts prediction calculation at time B + 3 (= T), and at time T + 3, the sensor information at time T + 4 Values (dots) can be predicted.

このようにサーバノード81が時系列データであるセンサ情報を、その範囲が重複するように分割し、それぞれを所定の順番でクライアントノード91乃至クライアントノード93に分配(送信)するようにし、そのデータに対して、クライアントノード91乃至クライアントノード93が順次予測計算を繰り返すことにより、クラスタコンピュータ72は、データ収集と予測計算により12ステップも必要であるにも関わらず、1ステップ毎に予測結果を出力することができる。   In this way, the server node 81 divides the sensor information, which is time-series data, so that the ranges overlap, and distributes (transmits) each of the sensor information to the client nodes 91 to 93 in a predetermined order. On the other hand, when the client node 91 to the client node 93 sequentially repeat the prediction calculation, the cluster computer 72 outputs the prediction result for each step even though 12 steps are required by the data collection and the prediction calculation. can do.

つまり、図2の情報処理システム51は、「観測された過去の状態量変化に基づいて次のステップでの状態量を予測する」というアルゴリズム(予測計算)を、並列計算環境(クラスタコンピュータ72)を利用することによって、より高速に計算することができる。   That is, the information processing system 51 in FIG. 2 uses an algorithm (predictive calculation) of “predicting a state quantity in the next step based on the observed past state quantity change” as a parallel computing environment (cluster computer 72). It is possible to calculate at higher speed by using.

以上のようなことから、制御システム62は、より高速に、かつ、より正確に予測計算を行い、より短い制御周期でヒューマノイドロボット61を制御することができる。つまり、制御システム62は、より的確にヒューマノイドロボット61を制御することができる。   As described above, the control system 62 can perform prediction calculation more quickly and more accurately, and can control the humanoid robot 61 with a shorter control cycle. That is, the control system 62 can control the humanoid robot 61 more accurately.

以上のような制御処理の流れを説明する。   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 information processing system 51 can be roughly divided into two. That is, the sensor information transmitted from the humanoid robot 61 is accumulated in the data pool 162 of the server node 81 via the terminal device 71, and the command information accumulated in the data pool 162 via the terminal device 71. Control information transmission / reception processing consisting of processing supplied to the humanoid robot 61 and sensor information stored in the data pool 162 are distributed to client nodes to perform prediction calculation processing in parallel, and the calculation results are collected and combined. Then, command information can be generated and can be divided into time-series prediction processing for storing the command information in the data pool 162.

まず、端末装置71が中継処理を行う制御情報の送受信処理について説明する。図14は、その送受信処理の例を説明するフローチャートである。   First, transmission / reception processing of control information for which the terminal device 71 performs relay processing will be described. FIG. 14 is a flowchart for explaining an example of the transmission / reception processing.

最初にステップS61において、端末装置71の入力部141は、CPU131に制御され、制御の開始を指示する入力を受け付ける。例えば、ユーザがキーボードを操作する等してヒューマノイドロボット61の制御の開始を指示すると、入力部141はそれを受け付け、無線通信部144および通信部145に供給する。無線通信部144および通信部145は、その指示を取得すると、それぞれ、それをヒューマノイドロボット61およびサーバノード81に送信(供給)する。   First, in step S <b> 61, the input unit 141 of the terminal device 71 is controlled by the CPU 131 and receives an input for instructing the start of control. For example, when the user instructs to start the control of the humanoid robot 61 by operating a keyboard or the like, the input unit 141 accepts it and supplies it to the wireless communication unit 144 and the communication unit 145. When the wireless communication unit 144 and the communication unit 145 acquire the instruction, the wireless communication unit 144 and the communication unit 145 transmit (suppli) them to the humanoid robot 61 and the server node 81, respectively.

ヒューマノイドロボット61の無線通信部123は、ステップS41において、制御部122に制御されて、端末装置71から送信(供給)された制御開始指示を受信(取得)すると、それを制御部122に供給する。制御部122は、ステップS42においてセンサ部121よりセンサ情報を取得する。なお、このときモータ部124に対するコマンド情報の一部または全部をセンサ情報に付加するようにしてもよい。センサ情報を取得すると制御部122は、そのセンサ情報を無線通信部123に供給する。無線通信部123は、ステップS43において、そのセンサ情報を端末装置71に送信(供給)する。   When the wireless communication unit 123 of the humanoid robot 61 receives (acquires) the control start instruction transmitted (supplied) from the terminal device 71 under the control of the control unit 122 in step S <b> 41, the wireless communication unit 123 supplies it to the control unit 122. . The control unit 122 acquires sensor information from the sensor unit 121 in step S42. At this time, part or all of the command information for the motor unit 124 may be added to the sensor information. When the sensor information is acquired, the control unit 122 supplies the sensor information to the wireless communication unit 123. In step S43, the wireless communication unit 123 transmits (supplies) the sensor information to the terminal device 71.

端末装置71の無線通信部144は、CPU131に制御され、ステップS62においてそのセンサ情報を取得すると、それを通信部145に供給する。通信部145は、センサ情報を供給されると、ステップS63において、それをサーバノード81に供給する。   When the wireless communication unit 144 of the terminal device 71 is controlled by the CPU 131 and acquires the sensor information in step S62, the wireless communication unit 144 supplies the sensor information to the communication unit 145. When the sensor information is supplied, the communication unit 145 supplies it to the server node 81 in step S63.

サーバノード81の通信部161は、ステップS81において、端末装置71より供給される制御開始指示を取得すると、センサ情報の受け付けを開始する。そして、ステップS82において、端末装置71より供給されたセンサ情報を取得すると、通信部161は、それをデータプール162に供給する。センサ情報を供給されたデータプール162は、ステップS83において、そのセンサ情報を保持する。通信部161は、さらに、データプール162に保持されている、ヒューマノイドロボット61用のコマンド情報を読み出し、ステップS84において、それを端末装置71に供給する。   When the communication unit 161 of the server node 81 acquires the control start instruction supplied from the terminal device 71 in step S81, the communication unit 161 starts receiving sensor information. In step S <b> 82, when the sensor information supplied from the terminal device 71 is acquired, the communication unit 161 supplies it to the data pool 162. The data pool 162 supplied with the sensor information holds the sensor information in step S83. The communication unit 161 further reads out command information for the humanoid robot 61 held in the data pool 162, and supplies it to the terminal device 71 in step S84.

端末装置71の通信部145は、ステップS64において、そのコマンド情報を取得すると、CPU131に制御されて、それを無線通信部144に供給する。無線通信部144は、コマンド情報を取得すると、ステップS65において、そのコマンド情報をヒューマノイドロボット61に送信(供給)する。ヒューマノイドロボット61の無線通信部123は、ステップS44において、そのコマンド情報を取得すると、それを制御部122に供給する。制御部122は、ステップS45において、そのコマンド情報を適宜モータ部124に供給することにより、モータ制御を行う。このように各装置間で情報を授受することにより、ヒューマノイドロボット61は、センサ情報(例えば、ボールの動きや現在の自分の姿勢)に応じた動作を行うことができる。換言すると、以上のように情報を授受することにより、制御システム62は、ヒューマノイドロボット61の現在の姿勢やボールの動きに応じて、適切にヒューマノイドロボット61の動作を制御することができる。   When the communication unit 145 of the terminal device 71 acquires the command information in step S <b> 64, the communication unit 145 is controlled by the CPU 131 and supplies it to the wireless communication unit 144. When acquiring the command information, the wireless communication unit 144 transmits (supplies) the command information to the humanoid robot 61 in step S65. When the wireless communication unit 123 of the humanoid robot 61 acquires the command information in step S44, the wireless communication unit 123 supplies the command information to the control unit 122. In step S45, the control unit 122 performs motor control by appropriately supplying the command information to the motor unit 124. By exchanging information between the devices as described above, the humanoid robot 61 can perform an operation in accordance with sensor information (for example, the movement of the ball or the current posture of the user). In other words, by exchanging information as described above, the control system 62 can appropriately control the operation of the humanoid robot 61 according to the current posture of the humanoid robot 61 and the movement of the ball.

なお、端末装置71の入力部141は、CPU131に制御され、ステップS66において、制御終了指示の入力を受け付ける。例えば、ユーザがヒューマノイドロボット61の制御を終了するように指示を入力すると、入力部141は、ステップS66においてその指示を受け付け、その指示を無線通信部144および通信部145に供給する。無線通信部144および通信部145は、その指示を受け取ると、その指示をそれぞれヒューマノイドロボット61またはサーバノード81に送信(供給)する。   Note that the input unit 141 of the terminal device 71 is controlled by the CPU 131, and receives an input of a control end instruction in step S66. For example, when the user inputs an instruction to end the control of the humanoid robot 61, the input unit 141 receives the instruction in step S66 and supplies the instruction to the wireless communication unit 144 and the communication unit 145. When receiving the instruction, the wireless communication unit 144 and the communication unit 145 transmit (suppli) the instruction to the humanoid robot 61 or the server node 81, respectively.

ヒューマノイドロボット61の無線通信部123は、ステップS46においてその指示を受信(取得)すると、その指示を制御部122に供給する。制御部122は、ステップS47において、以上のような制御処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS41に戻し、それ以降の処理を繰り返す。また、例えばステップS46において端末装置71より処理終了指示を受け付けるなどし、ステップS47において制御処理を終了すると判定した場合、制御部122は、制御処理を終了し、上述したデータの送受信処理を終了する。   When the wireless communication unit 123 of the humanoid robot 61 receives (acquires) the instruction in step S46, the wireless communication unit 123 supplies the instruction to the control unit 122. In step S47, the control unit 122 determines whether or not to end the control process as described above. If it is determined that the control process is not ended, the control unit 122 returns the process to step S41 and repeats the subsequent processes. For example, when a process end instruction is received from the terminal device 71 in step S46 and it is determined in step S47 that the control process is to be ended, the control unit 122 ends the control process and ends the above-described data transmission / reception process. .

また、端末装置71のCPU131は、ステップS67において、以上のような制御処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS62に戻し、それ以降の処理を繰り返す。また、例えばステップS66においてユーザより終了指示を受け付けるなどし、ステップS67において制御処理を終了すると判定した場合、CPU131は、制御処理を終了し、上述したデータの送受信処理を終了する。   In step S67, the CPU 131 of the terminal device 71 determines whether or not to end the above control process. If it is determined that the control process is not ended, the CPU 131 returns the process to step S62 and repeats the subsequent processes. For example, when an end instruction is received from the user in step S66 and it is determined in step S67 that the control process is to be ended, the CPU 131 ends the control process and ends the data transmission / reception process described above.

サーバノード81の通信部161は、ステップS85において処理終了指示を取得すると、その指示を制御部163に供給する。制御部163は、ステップS86において、以上のような制御処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS82に戻し、それ以降の処理を繰り返す。また、例えばステップS85において端末装置71より処理終了指示を受け付けるなどし、ステップS86において制御処理を終了すると判定した場合、制御部163は、制御処理を終了し、上述したデータの送受信処理を終了する。   When the communication unit 161 of the server node 81 obtains the processing end instruction in step S85, the communication unit 161 supplies the instruction to the control unit 163. In step S86, the control unit 163 determines whether or not to end the control process as described above. If it is determined that the control process is not ended, the control unit 163 returns the process to step S82 and repeats the subsequent processes. For example, when a process end instruction is received from the terminal device 71 in step S85 and it is determined in step S86 that the control process is to be ended, the control unit 163 ends the control process and ends the above-described data transmission / reception process. .

次に、クラスタコンピュータ72による時系列予測処理について説明する。この時系列予測処理は、サーバノード81によるサーバ処理と、クライアントノード90によるクライアント処理の2つの処理により構成される。   Next, time series prediction processing by the cluster computer 72 will be described. This time-series prediction process includes two processes: a server process by the server node 81 and a client process by the client node 90.

最初に、サーバノード81により実行されるサーバ処理について、図15および図16のフローチャートを参照して説明する。   First, server processing executed by the server node 81 will be described with reference to the flowcharts of FIGS. 15 and 16.

最初に、制御部163の制御部201は、ステップS101において、サーバ処理を終了するか否かを判定する。終了しないと判定した場合、制御部201は、処理をステップS102に進める。ステップS102において、計算結果データ受信制御部202は、クライアントノード90より計算結果データを受信したか否かを判定する。受信していないと判定した場合、計算結果データ受信制御部202は、処理をステップS101に戻し、それ以降の処理を繰り返す。ステップS102において、計算結果データを受信したと判定した場合、計算結果データ受信制御部202は、処理をステップS103に進める。   First, in step S101, the control unit 201 of the control unit 163 determines whether to end the server process. When it determines with not complete | finishing, the control part 201 advances a process to step S102. In step S <b> 102, the calculation result data reception control unit 202 determines whether calculation result data has been received from the client node 90. If it is determined that it has not been received, the calculation result data reception control unit 202 returns the process to step S101 and repeats the subsequent processes. If it is determined in step S102 that calculation result data has been received, the calculation result data reception control unit 202 advances the process to step S103.

つまり、サーバノード81は、クライアントノード90からの計算結果データの送信をきっかけとして、サーバ処理を実質的に開始する。最初は、クライアントノード90には計算データを送信していないので、クライアントノード90からはダミーの計算結果データ(データの内容が空の計算結果データ)が送信されることになる。サーバノード81は、このダミーデータを受信することにより、そのクライアントノード90が動作可能である(予測計算を行うことができる)と判断し、実質的なサーバ処理(初回のステップS103以降の処理)を開始する。このように、ダミーデータを受信することによりサーバ処理を開始するようにすることにより、サーバノード81は、サーバ処理を開始するための構成を新たに設ける必要がなく、製造コストを低減させることができる。   That is, the server node 81 substantially starts server processing triggered by transmission of calculation result data from the client node 90. Initially, since calculation data is not transmitted to the client node 90, dummy calculation result data (calculation result data with empty data contents) is transmitted from the client node 90. By receiving this dummy data, the server node 81 determines that the client node 90 is operable (can perform prediction calculation), and performs substantial server processing (processing after the first step S103). To start. As described above, by starting the server process by receiving the dummy data, the server node 81 does not need to newly provide a configuration for starting the server process, thereby reducing the manufacturing cost. it can.

ステップS103において、送信元特定部103は、受信した計算結果データの例えばヘッダ等を参照し、その送信元のクライアントノード90を特定する。有効性確認部204は、ステップS104において、送信履歴テーブルバッファ182に保持されている送信履歴テーブルを参照し、その計算結果データに対応する送信データの送信履歴情報に基づいて、受信した計算結果データの有効性を確認する。有効性確認部204は、ステップS105において、その確認結果に基づいて、送信履歴情報の送信時刻の値が有効値であるか(無効値であるか)否かを判定する。送信時刻の値が有効値であると判定した場合、有効性確認部204は、その計算結果データが有効であると判定し、処理をステップS106に進める。   In step S103, the transmission source specifying unit 103 refers to, for example, a header or the like of the received calculation result data, and specifies the transmission source client node 90. In step S104, the validity checking unit 204 refers to the transmission history table held in the transmission history table buffer 182, and receives the calculation result data received based on the transmission history information of the transmission data corresponding to the calculation result data. Confirm the validity of. In step S105, the validity confirmation unit 204 determines whether the value of the transmission time of the transmission history information is a valid value (invalid value) based on the confirmation result. If it is determined that the value of the transmission time is a valid value, the validity confirmation unit 204 determines that the calculation result data is valid, and the process proceeds to step S106.

ステップS106において、無効値化部205は、遅延した計算データの送信履歴を無効値化する。つまり、無効値化部205は、受信した計算結果データに対応する計算データよりも先にクライアントノード90に送信された計算データに対応する計算結果データ(本来、受信した計算結果データよりも先に受信する筈であったが未だ受信していない計算結果データ)を無効に設定するために、その計算結果データに対応する送信履歴情報を無効値化する(送信時刻に無効値を挿入する)ように送信履歴テーブルを更新する。   In step S106, the invalid value converting unit 205 invalidates the transmission history of the delayed calculation data. In other words, the invalid value conversion unit 205 calculates the calculation result data corresponding to the calculation data transmitted to the client node 90 prior to the calculation data corresponding to the received calculation result data (originally prior to the received calculation result data). To invalidate the calculation result data that was supposed to be received but not yet received), invalidate the transmission history information corresponding to the calculation result data (insert an invalid value at the transmission time) Update the transmission history table.

コンテキストデータ保持制御部206は、ステップS107において、クライアントノード90より受信したコンテキストデータをコンテキストデータバッファ183に保持させる。コンテキストデータは、計算結果であるセンサ予測情報とともに計算結果データとしてクライアントノード90より送信される。   In step S107, the context data holding control unit 206 holds the context data received from the client node 90 in the context data buffer 183. The context data is transmitted from the client node 90 as calculation result data together with sensor prediction information that is a calculation result.

コマンド情報作成部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 humanoid robot 61 using the calculation result data, and stores the command information in the data pool 162. When the process of step S108 ends, the command information creation unit 207 advances the process to step S121 of FIG.

また、図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 validity confirmation unit 204 determines that the calculation result data is invalid, and the calculation data Is discarded, and the process proceeds to step S109. In step S <b> 109, the context data holding control unit 206 duplicates the context information of the previous step held in the context data buffer 183 and causes the context data buffer 183 to hold it. When the process of step S109 ends, the context data holding control unit 206 advances the process to step S121 of FIG.

図16のステップS121において、センサ情報受信部208は、データプール162よりセンサ情報を取得(受信)する。センサ情報更新確認部209は、ステップS122において、その取得したセンサ情報を参照し、データプール162のセンサ情報が更新されたか否かを判定する。つまり、センサ情報更新確認部209は、センサ情報受信部208が取得したセンサ情報が、前回取得したセンサ情報と異なるか否かを確認することにより、データプール162に新たなセンサ情報が蓄積されたか否かを確認する。   In step S <b> 121 of FIG. 16, the sensor information receiving unit 208 acquires (receives) sensor information from the data pool 162. In step S122, the sensor information update confirmation unit 209 refers to the acquired sensor information and determines whether the sensor information in the data pool 162 has been updated. That is, the sensor information update confirmation unit 209 confirms whether the sensor information acquired by the sensor information reception unit 208 is different from the sensor information acquired last time, so that new sensor information is accumulated in the data pool 162. Confirm whether or not.

そして、データプール162のセンサ情報が更新されていない、すなわち、センサ情報受信部208が取得したセンサ情報が新しいものではないと判定した場合、センサ情報更新確認部209は、処理をステップS121に戻し、それ以降の処理を繰り返す。つまり、センサ情報受信部208は、センサ情報更新確認部209の確認に基づいて新しいセンサ情報を取得したと確認できるまで、データプール162よりセンサ情報を繰り返し取得する。   If it is determined that the sensor information in the data pool 162 has not been updated, that is, the sensor information acquired by the sensor information reception unit 208 is not new, the sensor information update confirmation unit 209 returns the process to step S121. Repeat the subsequent processing. That is, the sensor information receiving unit 208 repeatedly acquires sensor information from the data pool 162 until it can be confirmed that new sensor information has been acquired based on the confirmation of the sensor information update confirmation unit 209.

そして、ステップS122において、データプール162のセンサ情報が更新された、すなわち、センサ情報受信部208が取得したセンサ情報が新しいものであると判定した場合、センサ情報更新確認部209は、処理をステップS123に進める。   In step S122, when it is determined that the sensor information of the data pool 162 has been updated, that is, the sensor information acquired by the sensor information reception unit 208 is new, the sensor information update confirmation unit 209 performs processing. Proceed to S123.

ステップS123において、センサ情報受信部208は、新しいものと確認されたセンサ情報をセンサ情報バッファ181に保持させる。ステップS124において、計算データ作成部210は、クライアントノード90に送信する計算データを作成する。計算データの作成処理については、図17のフローチャートを参照して後述する。   In step S123, the sensor information receiving unit 208 causes the sensor information buffer 181 to store the sensor information confirmed as new. In step S <b> 124, the calculation data creation unit 210 creates calculation data to be transmitted to the client node 90. The calculation data creation process will be described later with reference to the flowchart of FIG.

図16のステップS125において、送信履歴テーブル更新部211は、計算データ作成部210が作成した計算データのクライアントノード90への送信を反映させるために、送信履歴テーブル182に保持されている送信履歴テーブルを更新する。ステップS126において、計算データ送信部212は、その計算データを、今回の送信先として選択されたクライアントノード90に送信する。計算データを送信すると、計算データ送信部212は、その旨を制御部201に通知し、処理を図15のステップS101に戻す。   In step S125 of FIG. 16, the transmission history table update unit 211 transmits the transmission history table held in the transmission history table 182 to reflect the transmission of the calculation data created by the calculation data creation unit 210 to the client node 90. Update. In step S126, the calculation data transmission unit 212 transmits the calculation data to the client node 90 selected as the current transmission destination. When the calculation data is transmitted, the calculation data transmission unit 212 notifies the control unit 201 to that effect, and returns the process to step S101 in FIG.

つまり、制御部163の各部は、ステップS101乃至ステップS109の各処理、並びに、ステップS121乃至ステップS126の各処理を、繰り返し実行することにより、ヒューマノイドロボット61より供給されるセンサ情報に対する予測計算結果であるコマンド情報を出力する。   That is, each unit of the control unit 163 repeatedly performs the processes of Steps S101 to S109 and the processes of Steps S121 to S126, so that the prediction calculation result for the sensor information supplied from the humanoid robot 61 is obtained. Output some command information.

そして、図15のステップS101において、このサーバ処理を終了すると判定した場合、制御部201は、処理をステップS110に進め、終了処理を行った後、サーバ処理を終了する。   If it is determined in step S101 in FIG. 15 that the server process is to be terminated, the control unit 201 advances the process to step S110, performs the termination process, and then terminates the server process.

サーバノード81の制御部163は、以上のようにサーバ処理を行う。   The control unit 163 of the server node 81 performs server processing as described above.

次に、図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 data creation unit 210 in FIG. 7 refers to the transmission history table held in the transmission history table buffer 182 in step 141 and identifies the transmission time of the previous calculation data.

次に、ステップS142において、計算データ作成部210は、センサ情報バッファ181に保持されているセンサ情報の中から、ステップS141において特定した前回の送信時刻以降のセンサ情報を選択する。計算データ作成部210は、次に、ステップS143に処理を進め、コンテキストデータバッファ183に保持されているコンテキストデータの中から、ステップS141において特定した前回の送信時刻以降のコンテキスト情報を選択する。そして、計算データ作成部210は、ステップS144において、選択したセンサ情報およびコンテキスト情報を用いて計算データを作成する。計算データを作成した計算データ作成部210は、処理を図16のステップS124に戻し、ステップS125以降の処理を実行させる。   Next, in step S142, the calculation data creation unit 210 selects sensor information after the previous transmission time specified in step S141 from the sensor information held in the sensor information buffer 181. Next, the calculation data creation unit 210 proceeds to step S143, and selects the context information after the previous transmission time specified in step S141 from the context data held in the context data buffer 183. Then, in step S144, the calculation data creation unit 210 creates calculation data using the selected sensor information and context information. The calculation data creation unit 210 that created the calculation data returns the process to step S124 in FIG. 16 and causes the processes after step S125 to be executed.

以上のようにサーバノード81がサーバ処理を行うことにより、制御システム62は、より高速に、かつ、より正確に予測計算を行い、より短い制御周期でヒューマノイドロボット61を制御することができる。つまり、制御システム62は、より的確にヒューマノイドロボット61を制御することができる。   As described above, when the server node 81 performs server processing, the control system 62 can perform prediction calculation more quickly and more accurately, and can control the humanoid robot 61 with a shorter control cycle. That is, the control system 62 can control the humanoid robot 61 more accurately.

次に、以上のようなサーバ処理に対応して、クライアントノード90により実行されるクライアント処理について、図18のフローチャートを参照して説明する。   Next, client processing executed by the client node 90 in response to the server processing as described above will be described with reference to the flowchart of FIG.

クライアントノード90の通信部251は、ステップS161において、計算結果データをサーバノード81に送信する。つまり、通信部251は、クライアントノード処理が開始されると最初に計算結果データをサーバノード81に送信する。もちろん、最初は予測計算が行われていないので、通信部251は、ダミーの計算結果データ(実質的に空の計算結果データ)をサーバノード81に送信する。   The communication unit 251 of the client node 90 transmits the calculation result data to the server node 81 in step S161. That is, the communication unit 251 first transmits the calculation result data to the server node 81 when the client node process is started. Of course, since prediction calculation is not performed at first, the communication unit 251 transmits dummy calculation result data (substantially empty calculation result data) to the server node 81.

ステップS162において、通信部251は、クライアント処理を終了するか否かを判定する。終了しないと判定した場合、通信部251は、処理をステップS163に進める。ステップS163において、通信部251は、サーバノード81より新たな計算データを受信したか否かを判定する。受信していないと判定した場合、通信部251は、処理をステップS162に戻し、それ以降の処理を繰り返す。   In step S162, the communication unit 251 determines whether to end the client process. When it determines with not complete | finishing, the communication part 251 advances a process to step S163. In step S <b> 163, the communication unit 251 determines whether new calculation data is received from the server node 81. When it determines with not having received, the communication part 251 returns a process to step S162, and repeats the process after it.

ステップ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 communication unit 251 advances the processing to step S164. In step S164, the communication unit 251 supplies the received calculation data to the data buffer 252 and sets it. The data buffer 252 holds the supplied calculation data. In step S165, the calculation unit 253 acquires calculation data held in the data buffer 252, executes time-series prediction calculation processing, generates a predicted value of sensor information, and holds it in the data buffer 252, The process returns to step S161. In step S161, the communication unit 251 sends the predicted value of sensor information (sensor prediction information) held in the data buffer 252 and the internal state information (context data) of the client node 90 to the server node 81 as calculation result data. Send. That is, after the prediction calculation is performed, the communication unit 251 transmits real calculation result data (not dummy data) to the server node 81.

クライアントノード90の各部は、以上のように、ステップS161乃至ステップS165を繰り返し実行し、サーバノード81より供給される計算データに対して予測計算を行い、計算結果データを返す。そして、ステップS162においてクライアント処理を終了すると判定した場合、通信部251は、処理をステップS166に進め、終了処理を行った後、クライアント処理を終了する。   As described above, each unit of the client node 90 repeatedly executes Steps S161 to S165, performs prediction calculation on the calculation data supplied from the server node 81, and returns calculation result data. If it is determined in step S162 that the client process is to be ended, the communication unit 251 advances the process to step S166, performs the end process, and then ends the client process.

以上のようにクライアント処理を行うことにより、クライアントノード90は、サーバノード81より供給される計算データに対して予測計算を行い、計算結果データを返すことができる。これにより、サーバノード81は、ヒューマノイドロボット61より供給されるセンサ情報に対応するコマンド情報をヒューマノイドロボット61に返すことができる。従って、制御システム62は、より高速に、かつ、より正確に予測計算を行い、より短い制御周期でヒューマノイドロボット61を制御することができる。つまり、制御システム62は、より的確にヒューマノイドロボット61を制御することができる。   By performing client processing as described above, the client node 90 can perform prediction calculation on the calculation data supplied from the server node 81 and return calculation result data. Accordingly, the server node 81 can return command information corresponding to the sensor information supplied from the humanoid robot 61 to the humanoid robot 61. Therefore, the control system 62 can perform the prediction calculation more quickly and more accurately, and can control the humanoid robot 61 with a shorter control cycle. That is, the control system 62 can control the humanoid robot 61 more accurately.

上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、上述した情報処理システム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 information processing system 51 described above or a part of the elements constituting the information processing system 51 may be configured as a personal computer as shown in FIG.

図19において、パーソナルコンピュータ400のCPU401は、ROM402に記憶されているプログラム、または記憶部413からRAM403にロードされたプログラムに従って各種の処理を実行する。RAM403にはまた、CPU401が各種の処理を実行する上において必要なデータなども適宜記憶される。   In FIG. 19, the CPU 401 of the personal computer 400 executes various processes according to a program stored in the ROM 402 or a program loaded from the storage unit 413 to the RAM 403. The RAM 403 also appropriately stores data necessary for the CPU 401 to execute various processes.

CPU401、ROM402、およびRAM403は、バス404を介して相互に接続されている。このバス404にはまた、入出力インタフェース410も接続されている。   The CPU 401, ROM 402, and RAM 403 are connected to each other via a bus 404. An input / output interface 410 is also connected to the bus 404.

入出力インタフェース410には、キーボード、マウスなどよりなる入力部411、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部412、ハードディスクなどより構成される記憶部413、モデムなどより構成される通信部414が接続されている。通信部414は、インターネットを含むネットワークを介しての通信処理を行う。   The input / output interface 410 includes an input unit 411 including a keyboard and a mouse, a display including a CRT (Cathode Ray Tube) and an LCD (Liquid Crystal Display), an output unit 412 including a speaker, and a hard disk. A communication unit 414 including a storage unit 413 and a modem is connected. The communication unit 414 performs communication processing via a network including the Internet.

入出力インタフェース410にはまた、必要に応じてドライブ415が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア421が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部413にインストールされる。   A drive 415 is connected to the input / output interface 410 as necessary, and a removable medium 421 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted, and a computer program read from them is It is installed in the storage unit 413 as necessary.

上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。   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 ( Removable media 421 composed of CD-ROM (compact disk-read only memory), DVD (digital versatile disk), magneto-optical disk (including MD (mini-disk) (registered trademark)), or semiconductor memory In addition to being configured, it is configured by a ROM 402 in which a program is recorded and a hard disk included in the storage unit 413, which is distributed to the user in a state of being pre-installed in the apparatus main body.

なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   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.

従来の並列型計算機システムが実行する処理の流れを説明する図である。It is a figure explaining the flow of the process which the conventional parallel computer system performs. 本発明を適用した情報処理システムの一実施形態に係る構成例を示す図である。It is a figure which shows the structural example which concerns on one Embodiment of the information processing system to which this invention is applied. 図2の情報処理システムにおいて授受される情報の例を説明する図である。It is a figure explaining the example of the information exchanged in the information processing system of FIG. 図2のヒューマノイドロボットの一実施形態に係る、本発明に関する構成例を示すブロック図である。It is a block diagram which shows the structural example regarding this invention based on one Embodiment of the humanoid robot of FIG. 図2の端末装置の一実施形態に係る、本発明に関する構成例を示すブロック図である。It is a block diagram which shows the structural example regarding this invention based on one Embodiment of the terminal device of FIG. 図2のクラスタコンピュータのサーバノードの一実施形態に係る、本発明に関する構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration example related to the present invention according to an embodiment of a server node of the cluster computer of FIG. 2. 図6の制御部の内部の構成例を示すブロック図である。It is a block diagram which shows the example of an internal structure of the control part of FIG. 計算データ作成部の実行する処理について説明する模式図である。It is a schematic diagram explaining the process which a calculation data preparation part performs. リカレントニューラルネットワークの構成例を示す模式図である。It is a schematic diagram which shows the structural example of a recurrent neural network. 送信履歴テーブルの更新の様子を説明する図である。It is a figure explaining the mode of the update of a transmission history table. 図2のクライアントノードの一実施形態に係る、本発明に関する構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration example related to the present invention according to an embodiment of the client node of FIG. 2. クラスタコンピュータが実行する処理の全体の流れを説明する図である。It is a figure explaining the flow of the whole process which a cluster computer performs. 予測計算処理の例を説明する図である。It is a figure explaining the example of a prediction calculation process. データの送受信処理の例を説明するフローチャートである。It is a flowchart explaining the example of the transmission / reception process of data. サーバ処理の例を説明するフローチャートである。It is a flowchart explaining the example of a server process. サーバ処理の例を説明する、図15に続くフローチャートである。It is a flowchart following FIG. 15 explaining the example of a server process. 、図16のステップS124において実行される計算データ作成処理の例を説明するフローチャートである。FIG. 17 is a flowchart for explaining an example of calculation data creation processing executed in step S124 of FIG. クライアント処理の例を説明するフローチャートである。It is a flowchart explaining the example of a client process. 本発明の一実施形態を適用したパーソナルコンピュータの構成例を示す図である。It is a figure which shows the structural example of the personal computer to which one Embodiment of this invention is applied.

符号の説明Explanation of symbols

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 Information processing system 61 Humanoid robot 62 Control system 71 Terminal device 72 Cluster computer 81 Server node 90-93 Client node 101 Joint angle information 102 Ball coordinate information 103 Joint angle prediction information 104 Ball coordinate Prediction information, 105 joint angle command, 111 time series predictor, 121 sensor unit, 122 control unit, 123 wireless communication unit, 124 motor unit, 141 input unit, 144 wireless communication unit, 145 communication unit, 161 communication unit, 162 data Pool, 163 control unit, 164 communication unit, 165 data buffer, 181 sensor information buffer, 182 transmission history table buffer, 183 context data buffer, 201 control unit, 02 calculation result data reception control unit, 203 transmission source identification unit, 204 validity confirmation unit, 205 invalidation value generation unit, 206 context data retention control unit, 207 command information creation unit, 208 sensor information reception unit, 209 sensor information update confirmation Unit, 210 calculation data creation unit, 211 transmission history table update unit, 212 calculation data transmission unit, 251 communication unit, 252 data buffer, 253 calculation unit, 400 personal computer

Claims (10)

所定の計算処理を行うための計算データを送信する第1の情報処理装置と、
前記第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.
JP2005070653A 2005-03-14 2005-03-14 Information processing system, information processor and processing method and program Withdrawn JP2006252394A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (13)

* Cited by examiner, † Cited by third party
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
JP6980042B2 (en) Judgment and use of modifications to robot actions
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
CN114442510B (en) Digital twin closed-loop control method, system, computer equipment and storage medium
KR101945772B1 (en) Methods and systems for generating instructions for a robotic system to carry out a task
Foote tf: The transform library
JP5684911B2 (en) Cloud robot system and realization method thereof
JP2019150911A (en) Robot work system and robot work system control method
JP4781089B2 (en) Task assignment method and task assignment device
US20200233436A1 (en) Cloud based robotic control systems and methods
US9398080B2 (en) Control device, image processing device, control method, computer-readable recording medium, and program
Ichnowski et al. Cloud-based motion plan computation for power-constrained robots
JP2012056023A (en) Action generating system and method for robot
US20220343164A1 (en) Reinforcement learning with centralized inference and training
JP6559591B2 (en) Behavior control system, method and program thereof
WO2021240981A1 (en) Apparatus and method for planning contact- interaction trajectories
Janiak et al. Control system architecture for the investigation of motion control algorithms on an example of the mobile platform Rex
CN113642243A (en) Multi-robot deep reinforcement learning system, training method, device and medium
Martins et al. MRGS: A multi-robot SLAM framework for ROS with efficient information sharing
JP7078901B2 (en) Control system and control method
CN114254735A (en) Distributed botnet model construction method and device
CN113211449B (en) Robot calibration method and system based on path analysis
US20240054393A1 (en) Learning Device, Learning Method, Recording Medium Storing Learning Program, Control Program, Control Device, Control Method, and Recording Medium Storing Control Program
Yoshimoto et al. Real-time communication for distributed vision processing based on imprecise computation model
JP7331769B2 (en) Position estimation system and position estimation method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080603