以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は相当要素には同一の符号を付し、重複する説明を省略する。
図1は、本発明の好適な一実施形態に係る情報処理システムの構成概略図である。同図に示される情報処理システム1は、プラント内の設備(例えば、ガスタービンシステム)、物流管理システム、機器類(例えば、ジェットエンジン、ロボット等)、工場における生産装置の制御・診断システム、又はIoTシステムなどに使用される。情報処理システム1は、情報処理装置10(情報処理装置)と、複数のデバイス30(複数の演算装置)を含む。情報処理装置10は、複数のセンサ50(センサ50a,50b,50c,50d…)から取得されたセンサ値の演算をさせるデバイス30を複数のデバイス30(デバイス30a,30b,30c…)の中から決定する処理を実行する。情報処理装置10は、情報処理を実行可能な装置であり、具体的には、サーバ装置等である。情報処理装置10は、1又は複数の装置によって構成される。デバイス30は、複数のセンサ50から取得されたセンサ値(検出結果)を統合して統合情報の推定値を生成し、その統合情報の推定値を情報処理装置10へ出力することが可能な装置である。情報処理装置10は、デバイス30から出力された統合情報の推定値を利用して、ガスタービン、ジェットエンジン、ロボット等の制御対象機器(不図示)を制御する。センサ50は、センシング対象の物理量やその変化を検出し、センシングデータとして記録または出力するデバイスである。すなわち、本実施形態におけるセンサ50は、実センサである。ただし、センサ50は、任意の情報源であってもよく、例えば、シミュレーションの出力や仮想センサの出力、プログラムの出力を取得する機構をもってセンサとしてもよい。デバイス30は、統合情報を推定する際に、公知のカルマンフィルタ、情報フィルタ、パーティクルフィルタ等を用いた情報統合処理によって行う。本実施形態においては、パーティクルフィルタを使用するが、これに限定するものではない。パーティクルフィルタは入力値からある知りたい値を推定する際に使用する手法である。推定には常に推定誤差が伴うため、パーティクルフィルタにおいては、各パーティクル(粒子)に“重み”と呼ぶ情報をもたせ、推定値がその各パーティクルフィルタが示す値をとる確率をその重みで表現する。パーティクルフィルタにおいては、パーティクルが分布しているところに推定値は存在し、パーティクルの“重み”の大きいところに、推定値はより高い確率で存在することを表現する。例えば、デバイス30は、統合情報の取り得る範囲をパーティクル分布で表現し、その分布の重みを反映した重み付き平均値又は重心値を算出することにより、統合情報を推定する。また、その分布の広がりを示す指標を使って、推定値の正確さ(誤差)を表現する。広がりを示す指標としては、そのパーティクルのエントロピーを計算する手法、又はパーティクルの存在部分をヒストグラム化して、近似する正規分布の標準偏差σを使用する方法がある。
各デバイス30は、デバイス30を識別するIDを有している。例えば、デバイス30aは、「デバイス−01」というIDを有する。また、各センサ50は、センサ50を識別するIDを有している。例えば、センサ50aは、「センサ−01」というIDを有する。デバイス30aは、温度を計測するセンサであるセンサ50a〜センサ50eと接続しており、センサ50a〜センサ50eから温度の計測値であるセンサ値を取得することができる。また、デバイス30bは、ある物体の位置をメッシュ(予め定められた区域)単位で計測するセンサであるセンサ50fと接続しており、当該センサ50fからある物体のメッシュ上における存在する区域を示すセンサ値を取得することができる。また、デバイス30cは、ある物体の位置をメッシュより精度の高い単位で計測するセンサであるセンサ50gと接続しており、当該センサ50gからある物体の位置を示すセンサ値を取得することができる。また、デバイス30は、他のデバイス30と通信することもできる。これにより、それぞれのデバイス30が接続している実センサのセンサ値も互いに送受信することができる。例えば、デバイス30aとデバイス30bは、近距離無線通信などの通信手段により互いに通信することができ、デバイス30aは、デバイス30bからセンサ50fのセンサ値を取得することができる。また、各デバイス30は、実センサのセンサ値を取得するだけでなく、それぞれのデバイス30が仮想センサとなり、自デバイス30以外の仮想センサからセンサ値を取得することもできる。なお、各デバイス30は、予め周囲のデバイス30のIDと、当該デバイス30のアドレスとを対応付けたアドレス情報を記憶しており、当該アドレス情報を用いて周囲のデバイス30と通信することができる。
次に、情報処理装置10の機能構成について説明する。図2は、情報処理装置10の機能構成を示すブロック図である。情報処理装置10は、機能的には、デバイス情報取得部11(コスト取得部)、デバイス情報DB12、センサ情報取得部13、センサ情報DB14、生成部15、判断情報DB16、決定部17、アルゴリズム情報DB18、通知部19、及び送付先情報DB20を備えている。以下、情報処理装置10の各機能部の機能について詳細に説明する。
デバイス情報取得部11は、デバイス30の情報を取得する部分である。デバイス情報取得部11は、所定のタイミング(例えば、新たにデバイス30が追加されたタイミング)で、各デバイス30に対してデバイスの情報の送信要求をする。デバイス情報取得部11は、予めデバイス30のアドレスを示すアドレス情報を記憶しており、記憶しているアドレス情報に基づいて、各デバイス30に対してデバイスの情報の送信要求をする。上記のデバイスの情報には、デバイス30の処理性能を示す情報(性能情報)、デバイス30と接続するセンサ50からセンサ情報を取得するための処理時間を示す計測レイテンシ(計測情報)、及びデバイス30の周囲の他のデバイス30と通信するための処理時間を示す通信レイテンシ(通信情報)が含まれる。ここで、計測レイテンシとは、センサ50が事象の計測開始時間を0とし、当該センサ50のセンサ値が計測されるまでの時間である。また、通信レイテンシとは、あるデバイス30と他のデバイス30とが通信するのに要する時間である。なお、計測レイテンシには、センサ50が計測した結果を当該センサ50が接続されているデバイス30まで送信する通信に要する時間をさらに含めてもよい。
デバイス情報取得部11が上記の送信要求をすると、デバイス30は、これに応じてデバイスの情報を情報処理装置10へ送信する。デバイス情報取得部11は、当該デバイスの情報を受信することにより、デバイス30の情報を取得する。デバイス情報取得部11は、性能情報として、デバイス30のデバイスIDと、デバイス30の性能情報とが対応付けられた情報を取得する。また、デバイス情報取得部11は、計測情報として、デバイス30のデバイスIDと、センサ50のセンサ種別と、センサ50のセンサIDと、計測レイテンシとを対応付けた情報を取得する。通信情報として、対となるデバイス30の2つのデバイスIDと、通信レイテンシとを対応付けた情報を取得する。上記の性能情報を用いることでセンサ情報を統合させるための処理時間を推定することができる。また、計測レイテンシを用いることで、当該デバイス30でセンサの情報を取得するための処理時間を取得する。また、通信レイテンシを用いることで、当該デバイス30で周囲のデバイスと通信するための処理時間を取得する。このように、デバイス情報取得部11は、複数のデバイス30の各々が特定の演算の結果を得るためのコストに関する情報を取得する。デバイス情報取得部11は、取得したデバイスの情報をデバイス情報DB12へ登録する。ここでいうコストとは、処理時間又は使用する演算資源の積み上げなど、システム利用者又は管理者が最小化したい指標を数値的に表現するものである。このコストを小さくできている状態が“効率的”な状態となっている。例えば、リアルタイム性を重要視し、できるだけ早く情報統合結果を取得する必要があるシステムにおいては、通信レイテンシや計測レイテンシ等の情報統合までに費やす時間の総合計をコストとして利用できる。また、例えば、各デバイス30にそれぞれ異なる単位時間あたりの利用料金が設定されており、金銭的な出費を最小限にしたい場合には、その利用料金の積み上げた結果をコストとしてもよい。このようにして、情報処理装置10においてコストの定義式を入れ替えることによって、その数値を最小化する構成を調べるだけで、どのデバイス30に情報統合を行わせるのがよいかを自動的に決定できる。
センサ情報取得部13は、デバイス30に対してセンサ情報の送信要求をする。具体的に、センサ情報取得部13は、センサ50に接続するデバイス30に対して、センサ情報の送信要求をする。センサ情報取得部13は、当該送信要求に応じてデバイス30から取得したセンサ情報をセンサ情報DB14へ登録する。このセンサ情報には、センサ50のセンサID、デバイス30のデバイスID、センサ50のセンサ種別、及びセンサ50で取得されたセンサ値が含まれる。なお、このセンサ値は実際のセンサを通して取得したデータであることが好ましいが、多様な運用モードを持つシステムにおいては、その多様な運用環境を再現しながら実際のデータをバランス良く集めることは難しい。その場合は、シミュレーションの出力などを使って代用してもよい。
生成部15は、複数のデバイス30の各々が複数のセンサ50の検出結果を演算した結果の確からしさに関する情報を生成する部分である。生成部15は、複数のセンサ50の検出結果を演算した結果の確からしさに関する情報として、推定値の取り得る値の広がり度合いを示す代表値であるエントロピーを確からしさに関する情報(エントロピー情報)として特定する。より詳細には、生成部15は、各パーティクルが推定結果の取り得る確率を示すように対応させ、そのパーティクルの分布を基にエントロピーを算出することができる。生成部15は、統合処理を実行するためのプログラムであるアルゴリズム毎に、各デバイス30で情報統合を実施した場合のエントロピー情報を生成する。なお、上記アルゴリズムのインタフェースとして、統合処理に必要となる入力値の変数、当該入力値として必要とされる情報の種類(例えば、温度情報、位置情報)が定められている。また、各アルゴリズムのインタフェースに関する情報(インタフェース情報)は、アルゴリズム情報DB18に記憶される。
生成部15は、最初に対象とするアルゴリズムを決定する。生成部15は、当該アルゴリズムのインタフェース情報を参照し、入力対象の情報の種類(例えば、位置情報と、温度情報)を特定する。続いて、生成部15は、デバイス情報DB12を参照して、各デバイス30の情報(性能情報、計測情報、通信情報)を取得する。続いて、生成部15は、あるデバイス30を基準として、上記入力対象の情報を取得するためのコストを算出する。ここで、図3にデバイス30とセンサ50との間の計測レイテンシ及びデバイス30間の通信レイテンシの関係を示す。図3に示した図は、デバイス情報DB12に記憶されている情報(計測情報及び通信情報)に基づいたものである。
例えば、デバイス30rは、自デバイス30が接続するセンサ50kとの間の計測レイテンシが0.6秒である。すなわち、デバイス30rは、センサ50kのセンサ値を取得するために0.6秒かかることを意味する。また、デバイス30qに接続されているセンサ50qの計測レイテンシが0.5秒であり、デバイス30qとデバイス30rとの間の通信レイテンシが0.1秒であるので、デバイス30rがセンサ50qのセンサ値を取得するためのレイテンシ(通信レイテンシと計測レイテンシとを合算した合計レイテンシ)は、0.5秒と0.1秒とを合算した0.6秒となる。
生成部15は、デバイス30毎に、図3に示したような、デバイス30とセンサ50との間の計測レイテンシ及びデバイス30間の通信レイテンシに基づいて、各入力値を最短で取得する経路を特定する。この経路を特定するための方法は、公知の経路探索技術(例えば、ダイクストラ法)により特定できる。このように、生成部15は、デバイス30がアルゴリズムを実行するために必要な入力値を取得するための経路(取得元となるセンサ50、転送箇所となるデバイス30)及び各入力値の取得タイミング(統合処理を開始したタイミングを0とした場合における、各入力値を最短で取得する合計レイテンシ)を特定する。生成部15は、特定した経路に関する情報を記憶しておく。なお、生成部15は、通信レイテンシ及び計測レイテンシの何れか一方に基づいて経路を特定するようにしてもよい。また、生成部15は、各デバイス30の性能情報も加味して経路を特定するようにしてもよい。例えば、処理性能が低いデバイス30を経由する場合、当該デバイス30を経由する通信レイテンシをさらに増加させるようにしてもよい。
生成部15は、上記経路により特定した入力値の取得タイミングにおけるセンサ情報をセンサ情報DB14から取得する。生成部15は、例えば、取得元となるセンサ50のセンサIDを検索キーとしてセンサ情報を取得する。続いて、生成部15は、取得したセンサ情報(センサ種別、センサ値)と、当該センサ値と推定したい情報との関係性を数式として表現したモデルとに基づいて、パーティクル情報すなわち推定値の取り得る範囲を更新する。この更新する方法は、パーティクルフィルタの公知の方法に従い、重みの更新とリサンプルにより行う。生成部15は、この更新した結果を、統合情報が取り得る範囲を示すパーティクル分布に適用して、パーティクル分布を更新する。すなわち、生成部15は、上記更新した結果に基づいて、パーティクル分布を狭めるように更新する。このように、生成部15は、特定した経路による入力値順(合計レイテンシが少ない順)に、パーティクル分布を更新していく。生成部15は、特定したパーティクル分布に基づいて、公知の算出方法によりパーティクルの広がりの程度を示すエントロピーの値を算出する。生成部15は、デバイスIDと、アルゴリズムIDと、通信レイテンシ及び計測レイテンシに基づいたセンサ値の取得タイミングを示す時刻と、当該時刻において取得されるセンサ情報によって更新されたパーティクル分布を示す情報とを対応付けた情報(パーティクル情報)を判断情報DB16へ記憶する。このとき、特定の共通した基準時間を設けて、その基準時間に対する時刻変化として記憶してもよい。また、生成部15は、デバイス30のデバイスIDと、対象アルゴリズムを特定するアルゴリズムIDと、通信レイテンシ及び計測レイテンシに基づいたセンサ値の取得タイミングを示す時刻と、エントロピーの値とを対応付けた情報(エントロピー情報)を判断情報DB16へ記憶(登録)する。また、生成部15は、あるアルゴリズムについて、各デバイス30を基準したエントロピー情報の登録が完了した場合、その旨を決定部17へ通知する。
ここで、図4及び図5を用いて、統合情報を生成するデバイス30を決定する例を説明する。図4は、プレートに各種センサ及びワークピースWPが配置されている例を示す図である。この例では、温度センサが貼り付けられたプレート上をワークピースWPが移動している。このワークピースWPの位置におけるプレートの温度を出力するデバイス30(仮想センサ)を決定する。プレート上の任意の位置の温度は、各温度センサの重み付き平均で計算できるものとする。重みは各温度センサであるセンサ50a〜センサ50eまでの距離で一意に決まる関数で与えられる。この温度の計算はモデル式を用いて行われる。モデル式は、温度センサの値とワークピースWPの位置を引数(変数)として、任意の位置の温度を計算するために用いられる。位置情報を得るセンサとしては、粗い情報のみ出力するメッシュセンサ(ワークピースがおおよそどの領域にいるかを判定するセンサ)であるセンサ50fと正確な位置情報を出力する位置センサであるセンサ50gが配置されているものとする。
ここで、各センサ50の応答速度が異なっているものとする。デバイス30から計測指令を出した後に、計測値が最寄りのデバイス30まで戻ってくるまでの時間は、温度センサが最も早く、メッシュセンサがその次に早く、位置センサは画像解析などを実行するので最も遅いものとする。また、プレートの温度変化はさほど大きくなく、ワークピースWPは常に移動しているものとする。
図5は、各センサ値が届く度に仮想センサにおける位置及び温度の推定値が変化することを示す図である。図5は、仮想センサが推定した温度(Y軸)と、仮想センサが推定した位置(X軸)とを示すグラフである。推定値の広がりをパーティクルの分布で表現し、パーティクルの有無で推定値が取り得るかどうかを示し、各パーティクルが持つ“重み”(図示せず)でその値を取り得る確率を示している。図5(a)は、最初に何も情報が無い状態では、推定値の取り得る値を示す各パーティクルPが、温度及び位置が物理的に取り得る値全体に広がっている。正確には、パーティクルは無限個存在するが、計算資源の関係で公知のパーティクルフィルタの手法にならい、有限個のパーティクルで代表して表現している。温度データが取得されると、図5(b)に示すように、位置が不明であるが、温度の取り得る範囲が絞られる。図5(c)に示すようにメッシュセンサのデータが先に取得された場合、おおよその位置が分かるので、X軸方向のパーティクルPの範囲が絞られる。また、温度データとメッシュデータが取得された場合には、図5(d)に示すように、温度とおおよその位置の両方が分かるので、パーティクルPの範囲がX軸方向とY軸方向の双方向で絞られる。
上記の例の場合、温度センサからのセンサ値は、早く取得できるので、位置情報をより早く取得することがより確からしい統合情報の推定値を早く生成するために重要となる。また、位置センサからデータを取得するのに時間がかかりすぎるので、統合情報の生成にかかる時間を考慮すると、できるだけ早く確からしさを向上させるには、情報処理装置10は、メッシュセンサであるセンサ50fに接続しているデバイス30bで統合情報を生成することが最もよいと判断する。以下、情報処理装置10による統合情報を生成するデバイス30を決定する機能を詳細に説明する。
図2に戻って、決定部17は、コストに基づいて、特定の演算を実行する演算装置を決定する部分である。この実施形態では、情報統合にかかる時間と推定誤差の積をコストとしている。すなわち、推定誤差ができるだけ早く小さくなるようにすればコストが小さくなる。決定部17は、各デバイス30の複数のセンサ毎の取得タイミングからエントロピーの時間変化を計算し、その時間変化の積分値を基に統合処理を実行するデバイス30を決定する。決定部17は、生成部15によってあるアルゴリズムについて各デバイス30を基準したエントロピー情報を登録した旨の通知を受けると、判断情報DB16を参照して、各デバイス30のエントロピー情報を取得する。ここで、図6にエントロピーの時間変化のグラフを示す。Y軸にエントロピーの値を示し、X軸に時間を示す。この図の例では、3つの変数の入力値により統合処理を実行する場合の例を示す。t0の取得タイミングで最初の変数の値が入力され、t1の取得タイミングで次の変数の値が入力され、t2の取得タイミングで最後の変数の値が入力されることが予測される。各データが入力される度に統合情報の取り得る範囲が狭まるため、時間経過とともにエントロピーの値が小さくなることが予測される。エントロピーの値が早く小さくなることは、効率的に統合処理が実行されることを示している。従って、決定部17は、取得したエントロピー情報を用いて、各デバイス30の複数のセンサ毎の取得タイミングからエントロピーの時間変化を計算し、その時間変化の積分値(図6に示すグラフの面積)を算出し、当該積分値が最も小さいデバイス30を統合処理装置として決定する。この積分値が最も小さくなるデバイス30は、初期条件又はセンサ取得値のゆらぎによって別のデバイスに変わることもある。デバイス30を選定する際は様々な条件下でこの処理を複数回繰り返し安定して効率が良かったデバイス30を選定するようにしてもよい。
決定部17は、統合処理装置となるデバイス30を決定すると、対象となるアルゴリズムのアルゴリズムIDとデバイス30を特定するデバイスIDを通知部19へ通知する。また、決定部17は、統合処理装置のデバイス30が他のデバイス30からセンサ情報を取得する必要がある場合、生成部15が生成した経路に基づいてセンサ情報送付先情報を生成する。ここで、センサ情報送付先情報の例を図7に示す。センサ情報送付先情報は、情報統合アルゴリズムを特定する情報統合アルゴリズムIDと、当該情報アルゴリズムの変数を特定する変数IDと、当該変数の入力値となるセンサ情報の取得元となるセンサ50を特定するセンサIDと、送信先のデバイス30を特定する送信先デバイスと、送信元のデバイス30を特定する送信元デバイスと、情報統合装置となるデバイス30を特定する情報統合装置と、を含む情報である。なお、さらにセンサ情報送付先情報には、当該センサ情報送付先情報を送付する対象のデバイス30を示す情報も対応付けられている。
例えば、デバイスIDが「デバイス−01」のデバイス30が温度センサと接続しており、デバイスIDが「デバイス−02」のデバイス30を経由して、温度センサの値を情報統合装置であるデバイスIDが「デバイス−06」であるデバイス30へ送信する場合を考える。まず、決定部17は、デバイスID「デバイス−01」宛てのデータとして、情報統合アルゴリズムIDと、変数IDと、センサID(温度センサのID)と、送信先のデバイス30のID(上記例では、「デバイス−02」)と、送信元デバイス(上記例では、自デバイス30なので、自デバイスであることを示す「SELF」)と、情報統合装置を示すデバイス30のID(上記例では「デバイス−06」)とを含む情報(センサ情報送付先情報)を生成する。また、決定部17は、デバイスID「デバイス−02」宛てのデータもさらに作成する。この場合、情報統合アルゴリズムID、変数ID、センサID、及び情報統合装置は、上記の例と同様であり、送信先デバイスが「デバイス−06」となり、送信元デバイスが「デバイス−01」となる。決定部17は、生成したセンサ情報送付先情報を送付先情報DB20へ登録する。
通知部19は、決定部17によって決定された情報統合装置となるデバイス30へ対象となる情報統合アルゴリズムの処理(特定の演算)を実行する旨の通知を出力する部分である。具体的に、通知部19は、決定部17からアルゴリズムIDとデバイスIDとを取得すると、アルゴリズム情報DB18を参照して、当該アルゴリズムIDに対応するアルゴリズムを取得する。続いて、通知部19は、送付先情報DB20を参照して、アルゴリズムIDに対応するセンサ情報送付先情報と、当該センサ情報送付先情報の送付対象とを取得する。通知部19は、決定部17によって決定された情報統合装置なるデバイス30宛てに、取得したアルゴリズムを送信すると共に、当該アルゴリズムを実行する旨の通知を送信(出力)する。また、通知部19は、センサ情報送付先情報の送付対象となるデバイス30に対して、センサ情報送付先情報を送信する。
次に、デバイス30の機能構成について説明をする。図8は、デバイス30の機能構成を示すブロック図である。デバイス30は、機能的には、デバイス情報制御部31(送信部)、性能情報DB32、レイテンシDB33、センサ情報制御部34、実行部35、アルゴリズム情報DB36、転送部37及び送付先情報DB38を備えている。
デバイス情報制御部31は、デバイスの情報の制御をする部分である。具体的には、デバイス情報制御部31は、情報処理装置10からのデバイスの情報の送信要求を受け付けると、デバイスの情報を取得する。まず、デバイス情報制御部31は、性能情報DB32から性能情報を取得し、取得した性能情報を情報処理装置10へ送信する。また、デバイス情報制御部31は、周囲のデバイス30に対して通信要求をして、通信レイテンシを算出する。具体的には、デバイス情報制御部31は、予め周囲のデバイス30のアドレスを記憶しておき、当該アドレス宛に通信要求をする。デバイス情報制御部31は、当該アドレスに対応するデバイス30(相手側デバイス30)から送信時刻を受信して、当該送信時刻と通信要求に対する応答を受信した時刻との差分値を当該デバイス30との通信レイテンシとして、自デバイス30のデバイスIDと、相手側デバイス30のデバイスIDと、通信レイテンシとを対応付けた情報を生成し、その情報をレイテンシDB33に登録する。デバイス情報制御部31は、レイテンシDB33に登録した通信情報を情報処理装置10へ送信する。
また、デバイス情報制御部31は、センサ情報制御部34へ計測レイテンシを含むセンサ情報の取得要求をして、センサ情報制御部34から接続している各センサ50のセンサ情報を取得する。デバイス情報制御部31は、当該センサ情報にデバイス30のデバイスIDを対応付けた計測情報をレイテンシDB33に記憶すると共に、情報処理装置10へ送信する。デバイス情報制御部31は、他のデバイス30からの通信要求がなされると、通信要求を受信した時刻を要求元のデバイス30へ送信する。性能情報DB32は、自デバイス30の性能情報を記憶する部分である。上述のように、デバイス情報制御部31は、特定のアルゴリズムにより演算した結果を得るためのコストに関する情報を算出し、当該コストを情報処理装置10へ送信する。情報統合の効率を正しく見積もるには全センサがタイミングを同期させながらデータを取る必要がある場合もある。この場合は、複数のデバイス30が連携して互いにタイミングを調整しながらセンシングをしてもよい。
センサ情報制御部34は、自デバイス30と接続しているセンサ50からセンサ値を取得する部分である。情報処理装置10からセンサ情報の送信要求を受け付けた場合、接続しているセンサ50のセンサ値を取得し、当該センサ値を情報処理装置10へ送信する。また、センサ情報制御部34は、デバイス情報制御部31からセンサ情報の取得要求を受け付けた場合、デバイス30と接続するセンサ50からセンサ値を取得するための処理時間を計測することにより計測レイテンシを算出し、予め記憶しているセンサ種別とセンサIDとを計測レイテンシに対応付けてセンサ情報を生成し、当該センサ情報をデバイス情報制御部31へ送信する。
実行部35は、情報処理装置10から統合処理(統合情報を生成する処理)を実行する旨の通知を受け付けて、当該通知に応じて当該統合処理を実行する部分である。実行部35は、情報処理装置10から統合処理を実行する旨の通知を受け付けると共に、アルゴリズムを取得する。実行部35は、当該アルゴリズムをアルゴリズム情報DB36に記憶する。
すなわち、実行部35は、実行タイミング(例えば、上記通知を受信した直後、情報処理装置10から開始依頼を受けた後)になると、アルゴリズム情報DB36に記憶されているアルゴリズムを実行し、統合処理を実行する。
転送部37は、情報処理装置10から受信したセンサ情報送付先情報に基づいてセンサ値を転送する部分である。転送部37は、情報処理装置10からセンサ情報送付先情報を受信すると、当該センサ情報送付先情報を送付先情報DB38に登録する。転送部37は、送付先情報DB38に記憶されているセンサ情報送付先情報を参照し、センサ情報送付先情報の送信元デバイスが「SELF」であるセンサ情報送付先情報がある場合、当該センサ情報送付先情報のセンサIDに対応するセンサ50からセンサ値を取得する。続いて、転送部37は、図9に示すパケット情報を生成する。具体的には、転送部37は、パケット情報の送信元デバイスとして、自デバイス30のデバイスIDを入力する。また、転送部37は、パケット情報の情報統合アルゴリズムIDとして、センサ情報送付先情報の情報統合アルゴリズムIDを入力する。また、転送部37は、パケット情報の変数IDとして、当該センサ情報送付先情報の変数IDを入力する。また、転送部37は、パケット情報のセンサIDとして、当該センサ情報送付先情報のセンサIDを入力する。また、転送部37は、センサ値として、上記のように取得したセンサ値を入力する。また、転送部37は、パケット情報のセンサ計測時刻として、センサを計測した時刻を入力する。そして、転送部37は、パケット情報の情報統合装置として、センサ情報送付先情報の情報統合装置を入力する。このように、転送部37は、パケット情報を生成する。転送部37は、生成したパケット情報をセンサ情報送付先情報の送付先のデバイス宛てに送信する。
また、転送部37は、他のデバイス30からパケット情報を受信した場合、パケット情報の情報統合アルゴリズムIDと、変数IDと、情報統合装置とを特定し、送付先情報DB38を参照し、これらの3つの情報に対応する送付先情報の送付先デバイスを特定する。続いて、転送部37は、受信したパケット情報の送信元を自デバイス30のデバイスIDに変更し、送付先のデバイス30へパケット情報を送信する。
図10は、情報処理装置10及びデバイス30を構成するコンピュータのハードウェア構成を示すブロック図である。同図に示すように、物理的には、CPU101、主記憶装置であるRAM102及びROM103、入力キー、タッチセンサ等の入力デバイスである入力装置104、タッチパネルディスプレイ、液晶ディスプレイ等の出力装置105、データ送受信デバイスである通信モジュール106、半導体メモリ等の補助記憶装置108、などを含むコンピュータシステム(情報処理プロセッサ)として構成されている。情報処理装置10及びデバイス30の上述した処理機能は、図10に示されるCPU101、RAM102等のハードウェア上に1又は複数の所定のコンピュータソフトウェアを読み込ませることにより、CPU101の制御のもとで入力装置104、出力装置105、及び通信モジュール106を動作させるとともに、RAM102や補助記憶装置108におけるデータの読み出し及び書き込みを行うことで実現される。なお、情報処理装置10及びデバイス30は、1つのコンピュータによって構成されてもよいし、階層的に接続された複数のコンピュータによって構成されてもよい。センサ50にセンシング要求を出したり、データを取得したりする部分には入力装置104、出力装置105、及び通信モジュール106の何れかを使用する。これらは接続するセンサの個数に応じて複数設けてもよい。
次に、図11〜図14を参照して、情報処理装置10による統合処理装置を決定する処理手順を説明する。まず、図11を用いてデバイスの情報を取得する処理手順を説明する。図11は、情報処理装置10によるデバイスの情報を取得する処理手順を示すフローチャートである。
まず、デバイス情報取得部11は、各デバイス30に対して、デバイスの情報の送信要求をして、各デバイス30からデバイスの情報を取得する(ステップS1)。デバイス情報取得部11は、取得した各デバイス30のデバイスの情報をデバイス情報DB12に記憶する(ステップS2)。
続いて、図12を用いて情報処理装置10において各デバイス30での複数のセンサ50の検出結果を用いた演算の確からしさを算出する処理の手順を説明する。図12は、複数のセンサ50の検出結果を演算した確からしさを算出する処理の手順を示すフローチャートである。まず、生成部15は、あるアルゴリズムを参照し、そのアルゴリズムのインタフェース情報を取得する(ステップS3)。続いて、生成部15は、デバイス情報DB12を参照して、デバイスの情報を取得する(ステップS4)。続いて、生成部15は、あるデバイス30における、変数毎の最短経路及び各変数の合計レイテンシを特定する(ステップS5)。続いて、生成部15は、直近のパーティクル情報を取得し(ステップS6)、合計レイテンシが少ない順に各変数に対応するセンサ値を取得する(ステップS7)。続いて、生成部15は、直近のパーティクル情報と、センサ情報と、推定したい情報と当該センサ情報との関係性を示すモデル式とにより、新たなパーティクル情報を生成する(ステップS8)。続いて、生成部15は、生成したパーティクル情報に基づいてエントロピー情報を生成する(ステップS9)。全ての入力値となるセンサ情報を取得していない場合(ステップS10:No)、ステップS6へ進む。一方、全ての入力変数のセンサ値を取得した場合(ステップS10:Yes)、処理を終了する。なお、全てのデバイス30のエントロピー情報を取得するために、全てのデバイス30について、ステップS4〜ステップS10の処理を繰り返す。ステップS6において直近のパーティクル情報が無い場合には、パーティクルを広範囲に一様に分布させた初期分布を使ったり、仮説をもとに作成した初期分布を使ったりしてもよい。
続いて、図13を用いて各デバイス30から情報統合装置となるデバイス30を決定する処理の手順を説明する。まず、決定部17は、あるアルゴリズムについて、判断情報DB16に記憶されている全てのデバイス30のエントロピー情報を取得する(ステップS11)。続いて、決定部17は、取得したエントロピー情報を用いて、デバイス30毎の時間変化によるエントロピー情報の変化に基づく面積を算出する(ステップS12)。決定部17は、面積が最小となるデバイス30を情報統合装置に決定して(ステップS13)、処理を終了する。
続いて、図14を用いて情報統合装置となるデバイス30へ統合処理を実行する旨を通知する処理の手順を説明する。まず、通知部19は、対象となるアルゴリズムをアルゴリズム情報DB18から取得する(ステップS14)。続いて、通知部19は、取得したアルゴリズムを情報統合装置となるデバイス30へ送信すると共に、情報統合処理を実行する旨を通知する(ステップS15)。また、通知部19は、情報統合装置となるデバイス30へセンサ情報を転送するデバイス30へ送付先情報を送信する(ステップS16)。
続いて、デバイス30側の処理の手順について説明する。まず、図15を用いて、デバイスの情報を情報処理装置10へ送信する処理手順を説明する。まず、デバイス30のデバイス情報制御部31は、自デバイスのセンサ値を取得するための計測レイテンシを測定する(ステップS21)。続いて、デバイス情報制御部31は、周辺デバイス30との通信レイテンシを測定する(ステップS22)。続いて、デバイス情報制御部31は、性能情報と、測定情報と、通信情報とを情報処理装置10へ送信する(ステップS23)。
続いて、図16を用いて、情報統合装置である旨通知を受けたデバイス30が統合処理を実行する処理手順を説明する。まず、デバイス30の実行部35は、情報処理装置10から自デバイス30が情報統合装置である旨と実行されたアルゴリズムとを受信する(ステップS24)。続いて、実行部35は、自デバイス30と接続しているセンサ50又は他のデバイス30からセンサ値を取得する(ステップS25)。実行部35は、取得したセンサ値を統合し(ステップS26)、当該統合した結果を情報処理装置10へ出力する(ステップS27)。ステップS27完了後も継続して、情報統合を実施する場合には、次のセンサ値受信待ち状態に戻り、ステップS25から繰り返す。
上述した情報処理装置10或いは情報処理装置10における情報処理方法によれば、デバイス情報取得部11によって複数のデバイス30の各々が特定のアルゴリズムの結果を得るためのレイテンシが取得され、決定部17によって当該レイテンシに基づいて、特定のアルゴリズムが実行されるデバイス30が決定される。そして、通知部19によって決定されたデバイス30へ当該特定のアルゴリズムを実行する旨の通知出力がなされる。このように、特定のアルゴリズムの結果を得るためのレイテンシに基づいてデバイス30を決定するので、複数のセンサの検出結果を効率的に演算するデバイス30を適切に決定することができる。
また、生成部15によれば、複数のデバイス30の各々が複数のセンサ50の検出結果を演算した結果の確からしさに関する情報が生成され、デバイス情報取得部11によって、複数のデバイス30の各々が複数のセンサ50の検出結果を取得するまでの時間を示すレイテンシが取得されるので、より適切に統合処理装置を決定することができる。
さらに、生成部15が、確からしさに関する情報として推定値の誤差あるいはエントロピーに関する情報を生成するので、より適切に統合処理装置を決定することができる。
さらに、決定部17は、複数のセンサ50毎の取得時間からエントロピーの時間変化を計算し、当該時間変化の積分値を基に統合処理装置を決定するので、簡易な計算方法により統合処理装置を適切に決定することができる。
なお、本発明は上述した実施形態に限定されるものではない。例えば、生成部15は、センサ値の取り得る範囲を確率分布等の広がりを持った分布で与えてもよい。より詳細には、モンテカルロ・シミュレーションなどを実施し、その分布に従った乱数を予測値として算出してもよい。生成部15は、上記のような確率分布に基づく誤差範囲を特定して、決定部17は、当該誤差範囲に基づいて統合処理装置を決定するようにしてもよい。また、決定部17は、エントロピー情報を用いる代わりに、パーティクルの分布の広がりを示す別の情報を用いて統合情報を生成するデバイス30を決定するようにしてもよい。例えば、決定部17は、パーティクルの分布を正規分布などの組み合わせで近似し、その分散の時間変化を計算し、その時間変化の積分値を基に統合処理を実行するデバイス30を決定するようにしてもよい。