(57)【特許請求の範囲】
【請求項１】
診断装置であって、
プロセッサと、メモリと、機器が出力するデータを受け付けるインターフェースと、を有し、
前記機器が測定した物理量の結果を示す指標データ、及び、前記機器による動作の内容を示す指標データの少なくとも一つを示す動作指標を、前記インターフェースを介して受け付け、
前記受け付けた動作指標を前記メモリに格納し、
前記機器の動作を推定するために必要な前記指標データを示すテンプレートと、前記受け付けた動作指標とを照合することによって、前記機器の動作を推定し、
前記推定した動作を診断するために必要な指標データを、前記受け付けた動作指標から抽出し、
前記抽出した指標データに基づいて前記推定した動作の品質を診断することを特徴とする診断装置。
【請求項２】
請求項１に記載の診断装置であって、
前記テンプレートは、前記機器の動作において発生する指標データの項目を含み、
前記受け付けた動作指標は、前記機器の動作において発生した前記指標データの項目を含み、
前記診断装置は、前記照合の結果、前記テンプレートに含まれる指標データの項目が、前記受け付けた動作指標に含まれるか否かを特定することによって、前記機器の動作を推定することを特徴とする診断装置。
【請求項３】
請求項２に記載の診断装置であって、
前記テンプレートは、前記機器の動作において発生する指標データの値の範囲を、さらに示し、
前記受け付けた動作指標が示す指標データは、前記機器の動作において発生するものであって、
前記診断装置は、前記照合の結果、前記受け付けた動作指標に含まれる指標データの値が、前記テンプレートが示す範囲に該当するかを判定することによって、前記機器の動作を推定することを特徴とする診断装置。
【請求項４】
請求項１に記載の診断装置であって、
前記機器が動作した場合に、類似する環境として定められた類似環境において測定されると予測される前記指標データを示す環境情報と、
所定の状態であると過去に診断された指標データを含む指標履歴と、を前記メモリに格納し、
前記類似環境において前記推定した動作が行われる場合に、前記類似環境において測定されると予測される指標データを含む前記指標履歴を、前記メモリから選択し、
前記選択した指標履歴と前記抽出した指標データとに基づいて、前記推定した動作の品質が前記所定の状態であるかを診断することを特徴とする診断装置。
【請求項５】
請求項４に記載の診断装置であって、
前記推定した動作を診断するために必要な指標データの項目に基づく次元を有する多次元空間を生成し、
前記選択した指標履歴が示す指標データを、前記多次元空間においてクラスタリングすることによって、少なくとも一つのクラスタを生成し、
前記クラスタと前記抽出した指標データとの距離に基づいて、前記推定した動作の品質を診断することを特徴とする診断装置。
【請求項６】
請求項１に記載の診断装置であって、
前記メモリは、前記動作を診断するためのアルゴリズムを示すアルゴリズム情報を有し、
前記推定した動作を診断するためのアルゴリズムを、前記アルゴリズム情報から選択し、
前記抽出した指標データと前記選択したアルゴリズムとを用いることによって、前記推定した動作の品質を診断することを特徴とする診断装置。
【請求項７】
診断システムであって、
機器と、前記機器の動作を診断する診断装置とを含み、
前記機器は、
プロセッサと、前記診断装置に向けてデータを出力するためのインターフェースと、を有し、
前記機器が測定した物理量の結果を示す指標データ、及び、前記機器による動作の内容を示す指標データの少なくとも一つを示す動作指標を、前記機器のインターフェースを介して、前記診断装置に向けて出力し、
前記診断装置は、
プロセッサと、メモリと、前記機器が出力するデータを受け付けるインターフェースと、を有し、
前記機器が出力した動作指標を、前記診断装置のインターフェースを介して受け付け、
前記受け付けた動作指標を前記診断装置のメモリに格納し、
前記機器の動作を推定するために必要な前記指標データを示すテンプレートと、前記受け付けた動作指標とを照合することによって、前記機器の動作を推定し、
前記推定した動作を診断するために必要な指標データを、前記受け付けた動作指標から抽出し、
前記抽出した指標データに基づいて前記推定した動作の品質を診断することを特徴とする診断システム。
【請求項８】
請求項７に記載の診断システムであって、
前記テンプレートは、前記機器の動作において発生する指標データの項目を含み、
前記受け付けた動作指標は、前記機器の動作において発生した前記指標データの項目を含み、
前記診断装置は、前記照合の結果、前記テンプレートに含まれる指標データの項目が、前記受け付けた動作指標に含まれるか否かを特定することによって、前記機器の動作を推定することを特徴とする診断システム。
【請求項９】
請求項８に記載の診断システムであって、
前記テンプレートは、前記機器の動作において発生する指標データの値の範囲を、さらに示し、
前記受け付けた動作指標が示す指標データは、前記機器の動作において発生するものであって、
前記診断装置は、前記照合の結果、前記受け付けた動作指標に含まれる指標データの値が、前記テンプレートが示す範囲に該当するかを判定することによって、前記機器の動作を推定することを特徴とする診断システム。
【請求項１０】
請求項７に記載の診断システムであって、
前記診断装置は、
前記機器が動作した場合に、類似する環境として定められた類似環境において測定されると予測される前記指標データを示す環境情報と、
所定の状態であると過去に診断された指標データを含む指標履歴と、を前記診断装置のメモリに格納し、
前記類似環境において前記推定した動作が行われる場合に、前記類似環境において測定されると予測される指標データを含む前記指標履歴を、前記診断装置のメモリから選択し、
前記選択した指標履歴と前記抽出した指標データとに基づいて、前記推定した動作の品質が前記所定の状態であるかを診断することを特徴とする診断システム。
【請求項１１】
請求項１０に記載の診断システムであって、
前記診断装置は、
前記推定した動作を診断するために必要な指標データの項目に基づく次元を有する多次元空間を生成し、
前記選択した指標履歴が示す指標データを、前記多次元空間においてクラスタリングすることによって、少なくとも一つのクラスタを生成し、
前記クラスタと前記抽出した指標データとの距離に基づいて、前記推定した動作の品質を診断することを特徴とする診断システム。
【請求項１２】
請求項７に記載の診断システムであって、
前記診断装置は、
前記動作を診断するためのアルゴリズムを示すアルゴリズム情報を、前記診断装置のメモリに格納し、
前記推定した動作を診断するためのアルゴリズムを、前記アルゴリズム情報から選択し、
前記抽出した指標データと前記選択したアルゴリズムとを用いることによって、前記推定した動作の品質を診断することを特徴とする診断システム。
【請求項１３】
アクチュエータによって動作する機器であって、
プロセッサと、メモリと、診断装置に向けてデータを出力するためのインターフェースと、を有し、
前記機器が測定した物理量の結果を示す指標データ、及び前記動作の内容を示す指標データの少なくとも一つを含む動作指標を取得し、
前記取得した動作指標を前記メモリに格納し、
前記動作を推定するために必要な前記指標データを示すテンプレートと、前記動作指標とを照合することによって、前記動作を推定し、
前記推定した動作を診断するために必要な指標データを、前記取得した動作指標から抽出し、
前記抽出した指標データを、前記インターフェースを介して前記診断装置に向けて出力することを特徴とする機器。
【請求項１４】
診断装置による診断方法であって、
前記診断装置は、プロセッサと、メモリと、機器が出力するデータを受け付けるインターフェースと、を有し、
前記診断方法は、
前記プロセッサが、前記機器が測定した物理量の結果を示す指標データ、及び、前記機器による動作の内容を示す指標データの少なくとも一つを示す動作指標を、前記インターフェースを介して受け付ける手順と、
前記プロセッサが、前記受け付けた動作指標を前記メモリに格納する手順と、
前記プロセッサが、前記機器の動作を推定するために必要な前記指標データを示すテンプレートと、前記受け付けた動作指標とを照合することによって、前記機器の動作を推定する手順と、
前記プロセッサが、前記推定した動作を診断するために必要な指標データを、前記受け付けた動作指標から抽出する手順と、
前記プロセッサが、前記抽出した指標データに基づいて前記推定した動作の品質を診断する手順と、を含むことを特徴とする診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、診断装置、診断システム、機器、及び、診断方法に関する。
【背景技術】
【０００２】
通信技術の発達により、既存の情報関連機器以外の様々な機器もインターネットに接続されるようになっている。このようなインターネットに介してあらゆる機器の情報疎通を提供する技術がＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）と呼ばれ、接続機能を持つ機器がＩｏＴ機器と呼ばれる。ＩｏＴ機器が普及し、社会インフラの一部になり、その動作品質が人々の生活品質に繋がっているため、その動作品質の保証が重要である。
【０００３】
このため、ＩｏＴ機器の動作品質を診断することにより、ＩｏＴ障害の発生を予防できるようになる。また、ＩｏＴ機器の障害発生前に整備計画を立案できるようになる。
【０００４】
ＩｏＴ機器の動作品質を診断する技術として、ネットワークを介して仮想生物を診断する方法が存在する。従来、仮想生物のソフトウェアまたはハードウェアの状態を診断するのに必要なデータを、通信路を介して送信し、診断用データの解析結果に基づいて仮想生物の状態を診断する方法が提案されている（例えば、特許文献１参照）。
【０００５】
また、ＩｏＴ機器に対する操作を診断する技術として、車両操作診断方法が存在する。従来、車両の走行データと該走行データの走行が行われた際の周辺環境を表す情報を取得し、運転者の車両操作が行われた際の前記車両の周辺環境に対応する走行データの履歴を抽出し、前記取得された走行データと前記抽出された走行データの履歴に基づいて、運転者の車両操作を診断する車両操作診断手段が提案されている（例えば、特許文献２参照）。
【０００６】
また、蓄積データの履歴から特定される運転行動パターンを分類することで生成された複数のテンプレートを備え、該テンプレートと取得された運転データとを比較することで、案内ポイントでの運転者の行動を推定する技術が提案されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２８２５７０号公報
【特許文献２】特開２０１３−００３８８７号公報
【特許文献３】特開２００６−１３３２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に挙げられたようなＩｏＴ機器の動作品質を診断する技術では、ＩｏＴ機器の動作を中断し、ＩｏＴ機器が診断プログラムによって既定された動作を実行し、診断データを生成する必要がある。そのため、診断時に中断によるロスコストが発生し、頻繁に診断を行うことが困難である。
【０００９】
また、特許文献２に挙げられたようなＩｏＴ機器に対する操作を診断する技術では、ＩｏＴ機器の動作を中断することなく、周辺環境と動作データを用いてＩｏＴ機器に対する操作の妥当性を診断でき、また、所定の車両操作を診断することは可能であるが、複数の異なる車両操作に対して診断方法を切り替えることができない。このため、このような技術をＩｏＴ機器の動作品質診断に適用したとしても、高精度な診断が困難である。
【００１０】
これは、ＩｏＴ機器の動作品質診断を実行する場合、ＩｏＴ機器の動作の種類ごとに診断する方法を切り変える必要があるためである。これは、例えば、ＩｏＴ機器の一部のパーツは特定の動作時のみ、その劣化の特徴が一部の診断指標値の正常動作時の指標値からのかい離として現れる。そのため、あらゆる動作を、同じ診断指標を分析する同じ診断方法を用いて診断した場合、上記劣化の特徴が診断指標全体に含まれるノイズに埋もれてしまい、動作品質劣化を正確に診断できなくなる可能性があるためである。
【００１１】
また、特許文献３に挙げられたような技術を用いた場合、運転者の行動を推定できるが、運転者の行動による自動車の動作を診断することができない。
【００１２】
本発明は、上記の点を鑑みてなされたものであり、ＩｏＴ機器と動作品質診断装置とを含むシステムにおいて、動作品質劣化が発生したＩｏＴ機器を高精度で診断することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、診断装置であって、プロセッサと、メモリと、機器が出力するデータを受け付けるインターフェースと、を有し、前記機器が測定した物理量の結果を示す指標データ、及び、前記機器による動作の内容を示す指標データの少なくとも一つを示す動作指標を、前記インターフェースを介して受け付け、前記受け付けた動作指標を前記メモリに格納し、前記機器の動作を推定するために必要な前記指標データを示すテンプレートと、前記受け付けた動作指標とを照合することによって、前記機器の動作を推定し、前記推定した動作を診断するために必要な指標データを、前記受け付けた動作指標から抽出し、前記抽出した指標データに基づいて前記推定した動作の品質を診断する。
【発明の効果】
【００１４】
本発明によれば、動作品質劣化が発生した機器を高精度に診断できる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】実施例１の診断システムの構成を示す説明図である。
【図２】実施例１のロボットの構成を示すブロック図を示す。
【図３】実施例１のロボットが保持するアクチュエータ情報テーブルの例を示す説明図である。
【図４】実施例１のロボットが保持するセンサ情報テーブルの例を示す説明図である。
【図５】実施例１のロボットが保持する動作テンプレート情報テーブルの例を示す説明図である。
【図６】実施例１のロボットが保持する動作指標情報テーブルの例を示す説明図である。
【図７】実施例１のロボットの動作指標送信プログラムによる具体的な処理を示すフローチャートである。
【図８】実施例１の診断装置の構成を示すブロック図である。
【図９】実施例１の診断装置が保持する環境指標情報テーブルの例を示す説明図である。
【図１０】実施例１の診断装置が保持する動作効率指標情報テーブルの例を示す説明図である。
【図１１】実施例１の診断装置が保持する動作指標履歴テーブルの例を示す説明図である。
【図１２】実施例１の診断装置の動作品質診断プログラムによる具体的な処理を示すフローチャートである。
【図１３】実施例２の診断システムの構成を示す説明図である。
【図１４】実施例２の診断装置の構成を示すブロック図である。
【図１５】実施例２の診断装置が保持する動作テンプレート情報テーブルの例を示す説明図である。
【図１６】実施例２の診断装置が実施する動作品質診断プログラムの具体的な処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を、図面を用いて説明する。
【００１７】
なお、以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明などの関係にある。
【００１８】
また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良いものとする。
【００１９】
さらに、以下の実施の形態において、その構成要素（要素ステップなどを含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではない。
【００２０】
さらに、以下に示した実施の形態は単独で適用してもよいし、複数もしくはすべての実施の形態を組み合わせて適用しても構わない。
【実施例１】
【００２１】
本実施例では、複数のロボットとロボットの動作品質を診断する診断装置とを含むロボット診断システムに関する。本実施例のロボットは、通信手段を介して動作指標を診断装置に送信する。
【００２２】
また、本実施例の診断装置は、受信した動作指標によりロボットの動作パターンを推定し、推定結果に基づいて、あらかじめ決まった動作指標の履歴を抽出し、受信した動作指標と履歴とに基づいてロボットの動作品質劣化を診断する。
【００２３】
本実施例の動作パターンとは、少なくとも一つの動作を含み、ロボットの動作の単位である。例えば、動作パターンが歩行である場合、動作パターンには、右腿を前方にあげる動作と、右足を地面におろす動作とが含まれる。以下において、本実施例の診断装置は、ロボットの少なくとも一つの動作を推定するが、これを、動作パターンを推定するとして記載する。
【００２４】
図１は、実施例１の診断システムの構成を示す説明図である。
【００２５】
本実施例のシステム構成は、図１に示すように、複数のロボット１０１と、動作指標の指標データを送信する通信手段１０２と、診断装置１０３と、表示装置１０４とを含む。
【００２６】
診断装置１０３は、通信手段１０２を経て、ロボット１０１から動作指標を取得し、各ロボットの動作品質が劣化しているかを診断する。また、診断装置１０３は、動作品質の診断結果を表示装置１０４に提供する。表示装置１０４は、ディスプレイ又はプリンタ等の出力装置を有する。
【００２７】
ロボット１０１は、実施例１のＩｏＴ機器である。ロボット１０１は、能動的に動作する機器である。ロボット１０１は、自らの動作の結果を示す指標、及び、動作中の環境を示す指標を、動作指標として診断装置１０３に送信する。
【００２８】
通信手段１０２は、信号を中継する手段であればいかなる手段であってもよい。通信手段１０２は、例えば、通信ネットワークであってもよいし、サーバであってもよいし、記録メディアであってもよい。
【００２９】
通信手段１０２がサーバである場合、このサーバは、複数のロボット１０１から動作指標を取得し、取得した動作指標をまとめて診断装置１０３に提供してもよい。また、通信手段１０２が記録メディアである場合、ロボット１０１が記録メディアに動作指標を格納し、管理者等がこの記録メディアを用いて診断装置１０３に動作指標を格納してもよい。
【００３０】
ロボット１０１は、常時通信手段１０２と接続してもよいし、動作指標の送信が必要な時だけ通信手段１０２と接続してもよい。
【００３１】
図２は、実施例１のロボット１０１の構成を示すブロック図を示す。
【００３２】
ロボット１０１は、メモリ２０１、及び、ＣＰＵ２０２を含むコンピュータの機能を有する。さらに、実施例１のロボット１０１は、動作品質診断に必要とされる機能を、プログラムソフトウェア又はファームウェアによって実装する。ロボット１０１のＣＰＵ２０２は、ロボット１０１のメモリ２０１上に前述のプログラムソフトウェア又はファームウェアを展開し、実行する。
【００３３】
メモリは、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、補助記憶装置に格納されたプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００３４】
具体的には、メモリ２０１は、動作指標送信プログラム２０６及び動作効率指標計算プログラム２０７等を格納する。これらのプログラムによって機能ブロックが実装される。
【００３５】
また、ロボット１０１は、あらかじめ開発者によって定められたようなロボットの動作を実行するアクチュエータ２０３と、外部環境及びアクチュエータ２０３の情報を測定するセンサ２０４と、通信手段１０２に接続する通信Ｉ／Ｆ２０５とを含む。
【００３６】
実施例１のロボット１０１のメモリ２０１は、動作指標送信プログラム２０６と動作効率指標計算プログラム２０７とを格納する。さらに、ロボット１０１のメモリ２０１は、アクチュエータ２０３の状態情報を格納するアクチュエータ情報テーブル２０８と、センサ２０４が取得したデータを格納するセンサ情報テーブル２０９と、動作パターンのテンプレートを格納する動作テンプレート情報テーブル２１０と、動作パターンが対応する動作指標の項目を格納する動作指標情報テーブル２１１とを格納する。
【００３７】
動作パターンが対応する動作指標とは、動作パターンをロボット１０１が実行した際に取得された指標データを含む情報である。
【００３８】
なお、実施例１において、一つのロボット１０１が、前述のプログラム及び情報をメモリ２０１に格納する構成を示す。しかし、実施例１のロボット１０１は、前述のメモリ２０１に格納される情報を外部記憶装置（図示なし）に格納してもよい。そして、ＣＰＵ２０２は、前述のプログラムの処理の都度、必要な情報を外部記憶装置から読み出し、さらに、それぞれの処理が終了するごとに外部記憶装置に結果を格納してもよい。
【００３９】
ロボット１０１の外部記憶装置は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置である。通信Ｉ／Ｆ２０５は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【００４０】
ＣＰＵ２０２が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介してロボット１０１に提供され、非一時的記憶媒体である外部記憶装置に格納される。このため、ロボット１０１は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００４１】
ロボット１０１は、物理的に一つのコンピュータ上で、又は、論理的又は物理的に複数のコンピュータ上で構成されるコンピュータシステムを有しても良く、前述したプログラムが、同一のコンピュータ上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００４２】
また、動作指標送信プログラム２０６及び動作効率指標計算プログラム２０７による機能は、集積回路等の物理装置によって実装されてもよい。たとえば、ロボット１０１は、動作指標送信プログラム２０６の機能を有する動作指標送信部を有してもよい。
【００４３】
以上のような情報の格納方法の違いは、本発明の本質には影響を与えない。
【００４４】
図３は、実施例１のロボット１０１が保持するアクチュエータ情報テーブル２０８の例を示す説明図である。
【００４５】
アクチュエータ情報テーブル２０８は、アクチュエータ情報を含む。アクチュエータ情報は、ロボット１０１が動作した際の動作の内容を示す指標データである。
【００４６】
アクチュエータ情報は、アクチュエータ２０３の識別子を示すアクチュエータＩＤ３０１と、アクチュエータ２０３の意味を示すアクチュエータ名３０２と、アクチュエータ２０３の状態を示すアクチュエータ状態３０３と、を含む。
【００４７】
アクチュエータＩＤ３０１は、アクチュエータ情報における指標データの項目を示し、アクチュエータ状態３０３は、アクチュエータ情報における指標データの値を示す。
【００４８】
アクチュエータ名３０２は、アクチュエータ２０３が制御するロボット１０１の部位の名称であってもよい。アクチュエータ名３０２は、説明と管理の簡便化とのための情報であり、アクチュエータ情報テーブル２０８に含まれなくてもよい。
【００４９】
図３に示すアクチュエータ状態３０３は、「存在しない（Ｎｕｌｌ）」、数値、又は、バイナリデータ（音声データ）のいずれかを示す。「存在しない（Ｎｕｌｌ）」とは、アクチュエータＩＤ３０１が示すアクチュエータ２０３が動作中ではない状態を示す。
【００５０】
また、アクチュエータ２０３からデータを取得できない場合、動作指標送信プログラム２０６は、アクチュエータ状態３０３に「Ｎｕｌｌ」を格納し、アクチュエータＩＤ３０１にデータを取得できなかったアクチュエータ２０３のＩＤを格納するエントリを、アクチュエータ情報に追加してもよい。
【００５１】
図３に示す例以外に、アクチュエータ状態３０３は、他の任意のフォーマットにより表現される値を格納してもよい。
【００５２】
アクチュエータ状態３０３は、例えば、アクチュエータ２０３がロボット１０１の部位を動作させる程度を数値で示してもよいし、アクチュエータ２０３がロボット１０１の部位を介して出力する音声の内容をバイナリデータによって示してもよい。
【００５３】
図４は、実施例１のロボット１０１が保持するセンサ情報テーブル２０９の例を示す説明図である。
【００５４】
センサ情報テーブル２０９はセンサ情報を含む。センサ情報は、ロボット１０１が動作した際にセンサ２０４が測定した物理量の結果を示す指標データである。
【００５５】
センサ情報は、センサ２０４の識別子を示すセンサＩＤ４０１と、センサ２０４の意味を示すセンサ名４０２と、センサ２０４が収集したデータを示すセンサデータ４０３と、を含む。
センサＩＤ４０１は、センサ情報における指標データの項目を示し、センサデータ４０３は、センサ情報における指標データの値を示す。
【００５６】
センサ名４０２は、センサＩＤ４０１が示すセンサ２０４が測定する内容を示してもよい。センサ名４０２は、説明と管理の簡便化とのための情報であり、センサ情報テーブル２０９に含まれなくてもよい。
【００５７】
センサデータ４０３は、センサ２０４が測定した物理量の結果を示す。図４に示すセンサデータ４０３は、「存在しない」（Ｎｕｌｌ）、単位を含む数値、及び、バイナリデータ（画像データ、音声データ）のいずれかである。「存在しない」とは、センサＩＤ４０１が示すセンサ２０４が動作中ではない状態を示す。
【００５８】
また、センサ２０４からデータを取得できない場合、動作指標送信プログラム２０６は、センサデータ４０３に「Ｎｕｌｌ」を格納し、アクチュエータＩＤ３０１にデータを取得できなかったセンサ２０４のＩＤを格納するエントリを、アクチュエータ情報に追加してもよい。
【００５９】
センサデータ４０３は、図４に示す例以外に、他の任意のフォーマットにより表現される値を格納してもよい。センサデータ４０３は、例えば、センサ２０４が撮影した画像データであってもよいし、センサ２０４が測定した気温であってもよい。
【００６０】
図３のアクチュエータ情報テーブル２０８及び図４のセンサ情報テーブル２０９は、最新のアクチュエータ情報及びセンサ情報を含む。しかし、本実施例のアクチュエータ情報テーブル２０８及びセンサ情報テーブル２０９は、後述する動作結果情報を算出するため、必要に応じて過去の一定期間に取得されたアクチュエータ情報及びセンサ情報を含んでもよい。
【００６１】
本実施例において、ロボット１０１の動作の種類ごとに、発生するアクチュエータ情報及びセンサ情報の組み合わせ、及び、発生したアクチュエータ情報及びセンサ情報の値は異なる。このため、後述のロボット１０１及び診断装置１０３は、ロボット１０１の動作を特定するための指標データとして、アクチュエータ情報及びセンサ情報を用いる。
【００６２】
図５は、実施例１のロボット１０１が保持する動作テンプレート情報テーブル２１０の例を示す説明図である。
【００６３】
動作テンプレート情報テーブル２１０は、動作テンプレート情報を含む。動作テンプレート情報は、ロボット１０１の動作パターンを推定するために必要な指標データ（アクチュエータ情報及びセンサ情報）の組み合わせを示す。
【００６４】
動作テンプレート情報は、テンプレートＩＤ５０１、テンプレート名５０２、Ｎｕｌｌ項目リスト５０３及び非Ｎｕｌｌ項目リスト５０４を含む。テンプレートＩＤ５０１は、動作テンプレートの識別子を示し、動作パターンを一意に示す。
【００６５】
テンプレート名５０２は、動作テンプレートが対応する動作パターンの意味を示す。テンプレート名５０２は、ロボット１０１の動作パターンの名称を示してもよい。テンプレート名５０２は、説明と管理の簡便化とのための情報であり、動作テンプレート情報テーブル２１０に含まれなくてもよい。
【００６６】
Ｎｕｌｌ項目リスト５０３は、テンプレート照合時に発生すべきでないアクチュエータ情報及びセンサ情報の項目（本実施例において識別子）を示す。非Ｎｕｌｌ項目リスト５０４は、テンプレート照合時に発生すべきアクチュエータ情報及びセンサ情報の項目（本実施例において識別子）を示す。
【００６７】
図５においてテンプレートＩＤ５０１が「Ｔ００１」を示すエントリは、ロボット１０１が動作パターン「歩行（Ｗａｌｋ）」を実行した際、値がＮｕｌｌであるセンサ情報又はアクチュエータ情報は一つも発生せず、かつ、Ｉｍａｇｅ  Ｓｅｎｓｏｒ（センサＩＤが「Ｓ００１」）のセンサ情報と、Ｌｅｆｔ  Ａｎｋｌｅ  Ｐｉｔｃｈ（アクチュエータＩＤが「Ａ０２１」）のアクチュエータ情報となどは、必ず発生することを示す。
【００６８】
ロボット１０１及び診断装置１０３は、動作テンプレート情報と、取得したセンサ情報及びアクチュエータ情報とを照合することにより、発生した指標データ及び発生していない指標データを特定し、特定結果に従ってロボット１０１が実行した動作パターンを推定する。
【００６９】
このように、動作テンプレート情報は、ロボット１０１による動作を、指標データに従って推定できる動作パターンとして定義する。そして、図５に示す動作テンプレート情報は、指標データが発生するか否かによって動作パターンを推定する方法に用いられる。しかし、本実施例の動作テンプレート情報は、これ以外にも、他の任意の条件で動作テンプレートと照合するための情報であってもよい。
【００７０】
例えば、非Ｎｕｌｌ項目リスト５０４が、指標データの値の範囲を示してもよい。そして、ロボット１０１及び診断装置１０３は、取得した指標データの値が特定のエントリの非Ｎｕｌｌ項目リスト５０４の値の範囲に含まれている場合、当該エントリの動作パターンが実行されたと推定してもよい。
【００７１】
図６は、実施例１のロボット１０１が保持する動作指標情報テーブル２１１の例を示す説明図である。
【００７２】
動作指標情報テーブル２１１は、動作指標情報を含む。動作指標情報は、診断装置１０３に送信すべき指標データを、動作パターンごとに示す。
【００７３】
動作指標情報は、テンプレートＩＤ５０１、環境指標リスト６０１、及び、動作効率指標リスト６０２を含む。テンプレートＩＤ５０１は、動作テンプレートの識別子を示し、動作パターンを一意に示す。
【００７４】
環境指標リスト６０１は、テンプレートＩＤ５０１が示す動作パターンに該当する指標データが取得された時に診断装置１０３に送信するセンサ情報（環境指標）を示す。動作効率指標リスト６０２は、テンプレートＩＤ５０１が示す動作パターンに該当する指標データが取得された時に診断装置１０３に送信する動作効率指標を示す。
【００７５】
環境指標とは、ロボット１０１が動作する時の外部環境の状態を示すセンサデータである。また、動作効率指標とは、ロボット１０１の動作に伴って変化する量であり、動作結果を示すデータである。
【００７６】
動作効率指標は、アクチュエータ情報を含み、また、必要に応じて、アクチュエータ情報及びセンサ情報の少なくとも一つに基づいて算出される動作結果情報を含む。動作結果情報は、指標データであり、例えば、ロボット１０１の移動距離、及び、発熱量等である。動作結果情報は、動作効率指標計算プログラム２０７によって算出される。
【００７７】
図６においてテンプレートＩＤ５０１が「Ｔ００１」を示すエントリは、動作パターン「歩行」に対応するテンプレートＴ００１（Ｗａｌｋ）に該当する指標データを取得した場合、ロボット１０１が、Ｉｍａｇｅ  Ｓｅｎｓｏｒ（センサＩＤが「Ｓ００１」）と、Ｓｏｎａｒ（センサＩＤが「Ｓ００３」）と、Ｏｕｔｅｒ  Ｔｅｍｐｅｒａｔｕｒｅ（センサＩＤが「Ｓ００４」）と、のセンサ情報（特にセンサデータ４０３）等を環境指標として診断装置１０３に送信し、さらに、動作効率指標計算プログラム２０７による計算Ｉ（識別子：Ｃ００１）の結果と、Ｌｅｆｔ  Ａｎｋｌｅ  Ｐｉｔｃｈ（アクチュエータＩＤが「Ａ０２１」）と、Ｌｅｆｔ  Ａｎｋｌｅ  Ｒｏｌｌ（アクチュエータＩＤが「Ａ０２２」）とのアクチュエータ情報（特にアクチュエータ状態３０３）等を動作効率指標として診断装置１０３に送信することを示す。
【００７８】
動作結果情報は、動作効率指標計算プログラム２０７によって算出され、例えば、アクチュエータ状態３０３及びセンサデータ４０３の少なくとも一つと、動作効率指標リスト６０２において指定される方法とを用いて算出される。また、動作効率指標計算プログラム２０７は、他のロボット１０１又は他の機器が取得した情報を用いて、動作結果情報を算出してもよい。
【００７９】
例えば、動作効率指標計算プログラム２０７は、ＧＰＳセンサのデータを用いてロボット１０１の移動速度を、動作結果情報として算出してもよい。
【００８０】
動作指標情報テーブル２１１を用いて診断装置１０３に送信する動作指標の内容を定義することにより、ロボット１０１は、診断に不要な指標データを診断装置１０３に送信することがなく、必要なネットワーク帯域を低減できる。
【００８１】
図７は、実施例１のロボット１０１の動作指標送信プログラム２０６による具体的な処理を示すフローチャートである。
【００８２】
ステップ７０１において、ロボット１０１は、一定時間経過をトリガーに、動作指標送信プログラム２０６を起動する。ロボット１０１は、一定時間経過の他、センサ２０４又はアクチュエータ２０３から出力されるアラーム等の他の情報をトリガーとして、動作指標送信プログラム２０６を起動してもよい。
【００８３】
ステップ７０１の後、動作指標送信プログラム２０６は、アクチュエータ２０３及びセンサ２０４から最新の情報（アクチュエータ状態及びセンサデータ）を取得し、アクチュエータ情報テーブル２０８とセンサ情報テーブル２０９とに取得した情報を各々格納する（７０２）。
【００８４】
また、ここで、動作指標送信プログラム２０６は、取得元のアクチュエータ２０３及びセンサ２０４に従って、アクチュエータＩＤ３０１、アクチュエータ名３０２、センサＩＤ４０１、及び、センサ名４０２に値を格納する。
【００８５】
なお、動作指標送信プログラム２０６は、ステップ７０２を実行した後、最新のアクチュエータ情報及びセンサ情報を、動作指標として診断装置１０３に送信してもよい。これにより、ロボット１０１が指標データに基づいて動作テンプレートを特定する必要がなく、ロボット１０１における処理の負荷を低減できる。また、診断装置１０３は、ロボット１０１によって精査された指標データを用いて動作パターンを推定できるため、正確に動作パターンを推定でき、精度の高い診断を行うことができる。
【００８６】
この場合、診断装置１０３に送られる動作指標には、動作パターンに対応しない指標データが含まれる。しかし、診断装置１０３は、診断に必要な指標データを受信した動作指標から抽出するため、不要な指標データを診断に用いない。
【００８７】
ステップ７０２の後、動作指標送信プログラム２０６は、動作テンプレート情報テーブル２１０に含まれるエントリの先頭から順に、Ｎｕｌｌ項目リスト５０３及び非Ｎｕｌｌ項目リスト５０４と、アクチュエータ情報テーブル２０８及びセンサ情報テーブル２０９とを照合し、最新のアクチュエータ情報及びセンサ情報に該当する動作テンプレートを特定する。そして、動作指標送信プログラム２０６は、最新のアクチュエータ情報及びセンサ情報に該当する動作テンプレートを特定できるかを判定する（７０３）。
【００８８】
具体的には、動作指標送信プログラム２０６は、まず、動作テンプレート情報テーブル２１０のエントリの中から、Ｎｕｌｌ項目リスト５０３又は非Ｎｕｌｌ項目リスト５０４が示すアクチュエータＩＤ及びセンサＩＤが、アクチュエータ情報テーブル２０８及びセンサ情報テーブル２０９に含まれるエントリを特定する。
【００８９】
そして、動作指標送信プログラム２０６は、特定したエントリのＮｕｌｌ項目リスト５０３が示す指標データが、アクチュエータ情報テーブル２０８及びセンサ情報テーブル２０９において「Ｎｕｌｌ」を示し、特定したエントリの非Ｎｕｌｌ項目リスト５０４が示す指標データが、アクチュエータ情報テーブル２０８及びセンサ情報テーブル２０９において「Ｎｕｌｌ」以外の値を示す場合、特定したエントリのテンプレートＩＤ５０１を、最新のアクチュエータ情報及びセンサ情報に該当する動作テンプレートとして特定する。
【００９０】
例えば、Ｎｕｌｌ項目リスト５０３が示す指標データが、アクチュエータ情報テーブル２０８及びセンサ情報テーブル２０９においてＮｕｌｌ値以外の値である場合、動作指標送信プログラム２０６は、当該Ｎｕｌｌ項目リスト５０３のエントリの動作テンプレートを該当する動作テンプレートとして特定しない。
【００９１】
動作指標送信プログラム２０６は、該当する動作テンプレートを特定できない場合、図７に示す動作指標送信プログラム２０６の処理を終了する。
【００９２】
動作指標送信プログラム２０６は、該当する動作テンプレートを特定できた場合、動作指標情報テーブル２１１に該当する動作テンプレートのテンプレートＩＤ５０１を取得する。そして、取得したテンプレートＩＤ５０１を含む動作指標情報テーブル２１１のエントリの動作効率指標リスト６０２が、計算が必要な項目（例えば、図６に示す計算Ｉ等）を含むかを判定する（７０４）。
【００９３】
動作効率指標リスト６０２が、計算が必要な項目を含む場合、動作指標送信プログラム２０６は、動作効率指標計算プログラム２０７を呼び出す。そして、動作効率指標計算プログラム２０７は、動作効率指標リスト６０２が示す計算を実行し、動作効率指標を算出する（７０５）。
【００９４】
ステップ７０４において動作効率指標リスト６０２が、計算が必要な項目を含まないと判定された場合、及び、ステップ７０５の後、動作指標送信プログラム２０６は、動作指標を、通信Ｉ／Ｆ２０５及び通信手段１０２を介して診断装置１０３に送信する（７０６）。
【００９５】
ここで、動作指標は、動作指標送信プログラム２０６が属する個体の識別子であるロボットＩＤと、ステップ７０３において特定した該当する動作テンプレートが示すアクチュエータＩＤ３０１及びアクチュエータ状態３０３と、該当する動作テンプレートが示すセンサＩＤ４０１及びセンサデータ４０３とを、少なくとも含む。また、動作指標は、必要に応じて、該当する動作テンプレートが示す動作結果情報の識別子と値とを含む。
【００９６】
なお、動作指標送信プログラム２０６は、ステップ７０６において、動作指標に含めるため、該当する動作テンプレートが示すアクチュエータＩＤ３０１及びアクチュエータ状態３０３を、アクチュエータ情報テーブル２０８から抽出し、さらに、該当する動作テンプレートが示すセンサＩＤ４０１及びセンサデータ４０３を、センサ情報テーブル２０９から抽出する。
【００９７】
ステップ７０６の後、動作指標送信プログラム２０６は、処理を終了する。
【００９８】
図８は、実施例１の診断装置１０３の構成を示すブロック図である。
【００９９】
診断装置１０３は、ＣＰＵ８０２、メモリ８０１、及び外部記憶装置８０５を有するコンピュータを含む。
【０１００】
実施例１の診断装置１０３の機能は、コンピュータの外部記憶装置８０５にプログラムソフトウェアとして格納される。そして、機能開始時、ＣＰＵ８０２が、メモリ８０１上にプログラムソフトウェアを展開することにより実行される。
【０１０１】
また、診断装置１０３は、入出力インターフェース８０３及び通信Ｉ／Ｆ８０４の少なくとも一方を介して通信手段１０２と表示装置１０４とに接続する。
【０１０２】
メモリ８０１は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、補助記憶装置に格納されたプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【０１０３】
メモリ８０１は、動作品質診断プログラム８０６を格納する。さらに、メモリ８０１は、動作パターンのテンプレートを格納する動作テンプレート情報テーブル８０７と、動作パターンに対応する環境指標を格納する環境指標情報テーブル８０８と、動作パターンに対応する動作効率指標を格納する動作効率指標情報テーブル８０９と、過去に受信した動作指標を格納する動作指標履歴テーブル８１０とを格納する。
【０１０４】
なお、本実施例では前述のプログラム及び情報を単一のコンピュータのメモリ８０１上に格納する構成を示した。しかし、前述の情報を外部記憶装置８０５に格納し、上記プログラムの処理のつど前述の情報を外部記憶装置８０５から読み込み、それぞれの処理が完了するごとに外部記憶装置８０５に格納する構成を取ることも可能である。
【０１０５】
また、前述のプログラム及び情報を複数のコンピュータに分散して格納することも可能である。例えば前述の情報をそれぞれリレーショナルデータベースのテーブルとして実装して診断装置１０３とは異なるデータベースサーバに格納し、診断装置１０３上で実行された前述のプログラムがデータベースサーバ上の情報を参照及び更新することも可能である。以上のような情報の格納方法の違いは、本発明の本質には影響を与えない。
【０１０６】
外部記憶装置８０５は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置である。入出力インターフェース８０３は、表示装置１０４と所定のプロトコルに従って通信するインターフェース装置である。通信Ｉ／Ｆ８０４は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【０１０７】
診断装置１０３が保持する動作テンプレート情報テーブル８０７は、ロボット１０１が保持する動作テンプレート情報テーブル２１０のＮｕｌｌ項目リスト５０３及び非Ｎｕｌｌ項目リスト５０４に相当する内容を含めば、動作テンプレート情報テーブル２１０と同じ形式でもよいし、違う形式でもよい。また、同じ形式の場合、格納した内容が同じでもよいし、異なってもよい。
【０１０８】
これは、ロボット１０１が保持する動作テンプレート情報テーブル２１０の内容と、診断装置１０３が保持する動作テンプレート情報テーブル８０７の内容とが、厳密に同期されている必要がないためである。特に、テンプレートＩＤ５０１の文字列自体が同期されている必要はなく、動作テンプレート情報テーブル８０７は、同じテンプレート名５０２を示すテンプレートＩＤを保持できれば、いかなるテンプレートＩＤを有してもよい。
【０１０９】
ＣＰＵ８０２が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して診断装置１０３に提供され、非一時的記憶媒体である外部記憶装置８０５に格納される。このため、診断装置１０３は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【０１１０】
診断装置１０３は、物理的に一つの計算機上で、又は、論理的又は物理的に複数の計算機上で構成される計算機システムであり、前述したプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【０１１１】
また、動作品質診断プログラム８０６の機能は、物理的な集積装置によって診断装置１０３に実装されてもよい。具体的には、診断装置１０３は、動作品質診断プログラム８０６の機能を有する動作品質診断部を有してもよい。
【０１１２】
図９は、実施例１の診断装置１０３が保持する環境指標情報テーブル８０８の例を示す説明図である。
【０１１３】
環境指標情報テーブル８０８は、環境指標情報を含む。環境指標情報は、動作パターンを診断するために必要なセンサ情報の項目を示す。また、環境指標情報は、類似する環境（類似環境）において測定されると予測されるセンサデータの値の範囲を、類似環境において行われた動作パターンごとに示す。
【０１１４】
診断装置１０３は、環境指標情報を参照することによって、基準とはならない環境において行われた動作パターンについて取得された指標データを、診断に用いる指標データから除外できる。そしてこれにより、精度の高い診断を行うことができる。
【０１１５】
環境指標情報は、動作テンプレートの識別子を示すテンプレートＩＤ５０１と、環境指標（センサデータ）の識別子（センサＩＤ）を示す環境指標ＩＤ９０１と、類似環境において測定されたセンサデータを判定する閾値の下限を示す下限レート９０２と、類似環境において測定されたセンサデータを判定する閾値の上限を示す上限レート９０３と、を含む。
【０１１６】
環境指標ＩＤ９０１は、テンプレートＩＤ５０１が示す動作パターンを診断するために必要な環境指標の識別子を示す。言い換えれば、環境指標ＩＤ９０１は、動作パターンを診断するために必要な指標データの項目を示す。なお、環境指標情報は、管理者又は運用者等によりあらかじめ定められる。
【０１１７】
図１０は、実施例１の診断装置１０３が保持する動作効率指標情報テーブル８０９の例を示す説明図である。
【０１１８】
動作効率指標情報テーブル８０９は、動作効率指標情報を含む。動作効率指標情報は、各動作パターンを診断するために必要な動作効率指標を示す。動作効率指標情報は、動作テンプレートの識別子を示すテンプレートＩＤ５０１と、診断に使う指標データを示す動作効率指標リスト１００１と、を含む。
【０１１９】
図１０に示す動作効率指標リスト１００１は、アクチュエータＩＤ、及び、動作結果情報の識別子を示す。言い換えれば、動作効率指標リスト１００１は、動作パターンを診断するために必要な指標データの項目を示す。
【０１２０】
なお、動作効率指標情報は、管理者又は運用者等によりあらかじめ定められる。このため、動作効率指標リスト１００１は、必要に応じてセンサＩＤを示してもよい。また、ロボット１０１が動作結果情報を算出しない場合、動作効率指標リスト１００１は、動作結果情報を示さなくてもよい。
【０１２１】
図１１は、実施例１の診断装置１０３が保持する動作指標履歴テーブル８１０の例を示す説明図である。
【０１２２】
動作指標履歴テーブル８１０は、動作指標履歴を含む。動作指標履歴は、ロボット１０１の動作の品質が所定の状態である場合に取得された指標データの値を、ロボット１０１及び動作パターンごとに示す。実施例１における所定の状態とは、正常状態であり、動作の品質が劣化していない状態である。
【０１２３】
動作指標履歴は、送信元のロボットの識別子を示すロボットＩＤ１１０１と、指標データを受信した時刻を示す受信時刻１１０２と、指標データが該当する動作パターンを示すテンプレートＩＤ５０１と、指標データの内容及び値を示す受信データ１１０３と、を含む。
【０１２４】
図１１に示す動作指標履歴は、後述の図１２を示す処理によって動作の品質が劣化していないと診断された指標データを示し、図１２に示す処理によってエントリが追加更新される。しかし、本実施例の動作指標履歴は、管理者又は運用者等によりあらかじめ定められてもよいし、また、過去に診断された指標データと、管理者又は運用者等により定められた指標データを含んでもよい。
【０１２５】
図１２は、実施例１の診断装置１０３の動作品質診断プログラム８０６による具体的な処理を示すフローチャートである。
【０１２６】
ステップ１２０１において、診断装置１０３のＣＰＵ８０２は、新たな動作指標を受信したことをトリガーとして、動作品質診断プログラム８０６を起動する。なお、診断装置１０３は、記憶媒体によって動作指標を受け付けた場合も、動作指標を受信したと判定し、動作品質診断プログラム８０６を起動してもよい。
【０１２７】
また、ステップ１２０１において、動作品質診断プログラム８０６は、受信した動作指標をメモリ８０１に格納し、必要に応じて外部記憶装置８０５に格納する。
【０１２８】
ステップ１２０１の後、動作品質診断プログラム８０６は、動作テンプレート情報テーブル８０７に含まれるエントリの先頭から順に、Ｎｕｌｌ項目リスト及び非Ｎｕｌｌ項目リストと、受信した動作指標の指標データとを照合し、受信した動作指標の指標データに該当する動作テンプレートを特定する。そして、受信した動作指標に該当する動作テンプレートを特定できるかを判定する（１２０２）。
【０１２９】
ステップ１２０２において特定する方法は、ステップ７０３と同様である。具体的には、動作品質診断プログラム８０６は、Ｎｕｌｌ項目リスト及び非Ｎｕｌｌ項目リストが示す指標データが、受信した動作指標に各々Ｎｕｌｌ値の指標データ及びＮｕｌｌ値ではない指標データとして含まれる動作テンプレートを、該当する動作テンプレートとして特定する。
【０１３０】
しかし、動作テンプレート情報テーブル８０７は、Ｎｕｌｌ項目リスト及び非Ｎｕｌｌ項目リストに、動作結果情報の識別子を含んでもよい。そして動作品質診断プログラム８０６は、受信した動作指標に含まれる動作結果情報の識別子が動作テンプレート情報テーブル８０７に含まれるかに従って、動作テンプレートを特定してもよい。
【０１３１】
ステップ１２０２によって、動作品質診断プログラム８０６は、ロボット１０１から受信した動作指標に、動作テンプレート情報テーブル８０７が示す指標データが含まれるか否かを特定し、その結果、動作テンプレートを特定することによってロボット１０１の動作パターンを推定する。
【０１３２】
そして、ステップ１２０２を実行することによって、動作品質診断プログラム８０６は、ロボット１０１が動作する際に発生したセンサ情報及びアクチュエータ情報（並びに動作結果情報）の項目に従って動作パターンを推定するため、ロボット１０１及び診断装置１０３間でテンプレートＩＤを同期しておく必要がない。このため、ロボット１０１及び診断装置１０３の少なくとも一つが設定を変更した場合も、動作品質診断プログラム８０６は正確に動作を推定できる。
【０１３３】
受信した動作指標に該当する動作テンプレートを特定できない場合、動作品質診断プログラム８０６は、処理を終了する。
【０１３４】
受信した動作指標に該当する動作テンプレートを特定できた場合、動作品質診断プログラム８０６は、環境指標情報テーブル８０８及び動作効率指標情報テーブル８０９を参照し、特定した動作テンプレートの動作パターンを診断するために必要な指標データを、受信した動作指標の中から抽出する（１２０３）。
【０１３５】
具体的には、動作品質診断プログラム８０６は、特定した動作テンプレートのテンプレートＩＤ５０１に対応する環境指標情報テーブル８０８の環境指標ＩＤ９０１から、診断するために必要な環境情報の項目（センサＩＤ）を取得する。また、特定した動作テンプレートのテンプレートＩＤ５０１に対応する動作効率指標情報テーブル８０９の動作効率指標リスト１００１から、診断するために必要な動作効率指標の項目（アクチュエータＩＤ、又は、動作結果情報の識別子）を取得する。
【０１３６】
そして、動作品質診断プログラム８０６は、取得した環境指標ＩＤ９０１の項目及び取得した動作効率指標リスト１００１の項目の少なくとも一方と一致する指標データを、受信した動作指標から抽出する。これによって、動作品質診断プログラム８０６は、推定した動作パターンを診断するために必要な指標データを、受信した動作指標から抽出できる。
【０１３７】
ステップ１２０３の後、動作品質診断プログラム８０６は、ステップ１２０２において推定された動作パターンが類似環境において行われた場合に取得された動作指標履歴であり、推定された動作パターンの品質が所定の状態（実施例１において正常状態）であると診断された動作指標履歴（履歴データＡ）を、動作指標履歴テーブル８１０から選択する（１２０４）。
【０１３８】
具体的には、動作品質診断プログラム８０６は、ステップ１２０２において特定した動作テンプレートのテンプレートＩＤ５１０に対応する環境指標情報テーブル８０８のエントリを取得する。ここで取得した環境指標情報テーブル８０８のエントリは、ステップ１２０２において推定した動作パターンが類似環境において行われた場合に測定されると予測されるセンサデータの値の範囲を示す。
【０１３９】
そして、動作品質診断プログラム８０６は、取得したエントリの環境指標ＩＤ９０１と上限レート９０３と下限レート９０２とをフィルタとし、取得したエントリの上限レート９０３と下限レート９０２とに該当する指標データ（環境指標：センサ情報）を含むエントリを、履歴データＡとして動作指標履歴テーブル８１０から選択する。
【０１４０】
なお、上限レート９０３と下限レート９０２とに該当する指標データとは、上限レート９０３と下限レート９０２とが示す範囲に値が含まれるセンサ情報のことである。
【０１４１】
管理者又は運用者等は、類似環境を示す環境指標の値の範囲を環境指標情報テーブル８０８に任意に指定することが可能である。このため、動作品質診断プログラム８０６は、ステップ１２０４において環境指標情報テーブル８０８に基づいて履歴データＡを選択することによって、管理者等が指定する基準を満たす環境において過去に行われた動作パターンの動作指標履歴を、受信した動作指標との比較に用いることができる。
【０１４２】
そして、動作品質診断プログラム８０６は、比較に適さない環境において取得された動作指標履歴を除外することができ、これにより、より精度の高い診断が可能である。
【０１４３】
ステップ１２０４の後、動作品質診断プログラム８０６は、履歴データＡと、ステップ１２０３において抽出した指標データとの比較に基づいて、推定した動作パターンの品質を診断する。実施例１の動作品質診断プログラム８０６は、ステップ１２０５から１２０７において、履歴データＡと抽出した指標データとの距離を比較に用いることによって、推定した動作パターンの品質を診断する。
【０１４４】
ステップ１２０５において、動作品質診断プログラム８０６は、ステップ１２０２において特定した動作テンプレートのテンプレートＩＤ５１０に対応する動作効率指標リスト１００１を、動作効率指標情報テーブル８０９から取得する。
【０１４５】
そして、動作品質診断プログラム８０６は、取得した動作効率指標リスト１００１が示す各指標データ（すなわち、ステップ１２０３において抽出した指標データ）を軸にした多次元空間を生成し、この多次元空間の中に、選択した履歴データＡのクラスタを生成する（１２０５）。ここで生成する多次元空間の次元数は、取得した動作効率指標リスト１００１が示す各指標データの項目の数と同じである。
【０１４６】
ここで生成されるクラスタは、一つであってもよく、また、複数個に分割されたクラスタであってもよい。また、クラスタを生成する方法は、ｋ−ｍｅａｎｓ法等の公知の方法であってもよい。ステップ１２０５においてクラスタを生成することにより、後述の処理において動作品質診断プログラム８０６は、複数の項目の指標データを含む動作指標と、複数の項目の動作指標履歴とを比較することができ、精度よく診断することができる。
【０１４７】
ステップ１２０５の後、動作品質診断プログラム８０６は、ステップ１２０３において抽出した動作効率指標の各値が、ステップ１２０４において生成された多次元空間における少なくとも一つのクラスタとの距離を算出し、算出した距離が最も小さい最短距離を特定する（１２０６）。
【０１４８】
ステップ１２０６の後、動作品質診断プログラム８０６は、最短距離と予め保持する所定の閾値とを比較し、最短距離が所定の閾値を超えているかを判定する（１２０７）。最短距離が所定の閾値を超えている場合、実施例１の動作品質診断プログラム８０６は、動作効率指標が正常値から外れていると判定する。そして、動作指標の送信元であるロボット１０１の動作品質は劣化しており、動作が異常状態であるという診断結果を、表示装置１０４に向けて出力する（１２０９）。
【０１４９】
ステップ１２０８において、最短距離が所定の閾値を超えていないと判定した場合、実施例１の動作品質診断プログラム８０６は、動作効率指標が正常値内であると判定する。そして、受信した動作指標と該当する動作テンプレートのテンプレートＩＤとを、動作指標履歴テーブル８１０に格納する（１２０８）。
【０１５０】
これによって、動作指標履歴テーブル８１０は、正常状態において取得された最新の動作指標を保持することができる。そして、動作品質診断プログラム８０６は、図１２に示す処理を実行するごとに動作指標履歴テーブル８１０が保持するデータを増やすことによって、処理の精度を上げることができる。
【０１５１】
ステップ１２０８の後、動作品質診断プログラム８０６は、ステップ１２０９において動作指標の送信元であるロボット１０１による動作の動作品質は劣化しておらず、正常状態であるという診断結果を表示装置１０４に向けて出力し、処理を終了する。
【０１５２】
動作品質診断プログラム８０６は、例えば、ロボットＩＤと、診断時刻と、算出した距離と、診断結果とを表示するためのデータを表示装置１０４に出力する。
【０１５３】
このように、実施例１において、複数のロボット１０１と動作品質の診断装置１０３とを含むシステムにおいて、ロボット１０１は環境指標と動作効率指標とを含む動作指標を、診断装置１０３に送信する。そして、診断装置１０３は、ロボット１０１から受信した動作指標における特定の指標データの有無と、あらかじめ保持する動作テンプレートとを照合することによって、ロボット１０１の動作パターンを推定する。
【０１５４】
そして、動作品質診断プログラム８０６は、推定結果に従って、診断に用いる環境指標及び動作効率指標を抽出し、過去の受信履歴から、抽出した環境指標の項目を用いて類似環境の動作指標履歴を選択し、抽出した動作効率指標を軸にする次元空間中に選択された動作指標履歴をクラスタリングし、抽出した動作効率指標（必要に応じて環境指標）とクラスタとの最短距離とに基づいて、ロボット１０１の動作品質に劣化が発生しているかを判定する。
【０１５５】
これにより、ロボット１０１が特定の動作パターンを行う際の動作品質の劣化を診断するために、その動作パターンに関わる指標データだけを用いるため、実施例１の動作品質診断プログラム８０６は、無関係な情報を診断処理のパラメータとすることにより発生するノイズを取り除くことが可能となる。
【０１５６】
例えば、人型のロボット１０１が腕を回転させる動作パターンを診断する場合、診断に必要な指標データは、肩のアクチュエータ２０３が取得した回転率等である。しかし、脚の発熱量等の、腕の回転に影響を受けない指標データは必要ではない。
【０１５７】
このため、実施例１の動作品質診断プログラム８０６は、脚の発熱量を示す指標データをノイズとして取り除くため、精度の高い診断を行うことができる。
【０１５８】
そして、その動作パターンに関する動作指標履歴だけをクラスタ分析することで、より細かいクラスタを生成でき、従来は検出が困難だった動作品質劣化を検出可能となり、ロボット１０１の動作品質の劣化を高精度に検出可能である。
【０１５９】
また、ロボット１０１は、アクチュエータ２０３のアクチュエータ情報とセンサ２０４のセンサ情報とを用いて、特定の指標データの有無と、予め保持しているテンプレートとを照合し、ロボット１０１の動作パターンを推定する。ロボット１０１は、推定結果に基づいて、特定の指標データのみを含む動作指標を診断装置１０３に送信する。
【０１６０】
これにより、ロボット１０１は動作品質診断が必要となる時だけ、診断に必要な指標データのみを収集し、診断装置１０３に送信し、動作品質診断に使われる計算リソースと通信リソースを抑えることが可能となり、常時に動作品質の劣化を診断することが可能となる。
【０１６１】
なお、実施例１の動作品質診断プログラム８０６は、診断する基準として、過去に収集し、かつ、劣化が発生していない動作指標履歴を選択した。しかし、そういった実動作から収集した動作指標履歴以外でも、メーカが指定した劣化判定範囲、又は、シミュレーションにより生成した擬似動作履歴データなどを利用することも可能である。
【０１６２】
指定された劣化判定範囲を用いる場合、動作品質診断プログラム８０６は、ステップ１２０４〜１２０６の処理を実行する必要がなく、ステップ１２０３において抽出した動作指標の指標データと劣化判定範囲（閾値）とを比較し、動作の品質を診断してもよい。
【０１６３】
さらに、前述の動作品質診断プログラム８０６は、動作品質が劣化しているか否かを判定したが、本実施例の診断装置１０３は、動作指標履歴テーブル８１０に含まれる履歴が取得された状態を任意に変更することにより、いかなる動作の状態を判定してよい。
【０１６４】
さらに、前述の動作品質診断プログラム８０６は、ステップ１２０５において履歴データＡをクラスタリングしたうえで、抽出した診断データとの距離を算出した。しかし、履歴データＡに含まれるエントリの数が少ない場合、クラスタリングを行わずに距離を算出してもよい。
【０１６５】
また、前述の動作品質診断プログラム８０６は、受信した動作指標から抽出した動作効率指標のみに基づいて、クラスタの生成及びクラスタとの比較を行った。しかし、必要に応じて、受信した動作指標に含まれる環境情報（センサ情報）を用いてクラスタの生成及びクラスタとの比較を行ってもよい。
【実施例２】
【０１６６】
実施例２の処理は、複数の自動車と自動車の動作品質を診断する診断装置とを含むシステムにおける処理である。実施例２の診断装置は、通信手段を経て複数の自動車それぞれの動作指標を取得する。そして、診断装置は、受信した動作指標の特定の項目の値と、予め保持しているテンプレートとを照合し、自動車の動作パターンを推定する。推定した動作パターンに従って、動作品質診断アルゴリズムを選択し、選択したアルゴリズムを用いて自動車の動作品質を診断する。
【０１６７】
そのため、実施例２によれば、自動車の複数の異なる動作それぞれに、動作に関わるパーツの動作品質劣化診断に適したアルゴリズムを使用することにより、高精度な診断ができる。
【０１６８】
実施例１における動作品質診断プログラム８０６は、推定した動作に従って診断のための指標データを変化させ、これによりパラメータを変更させることで診断方法を変更した。しかし、実施例２の動作品質診断プログラムは、推定した動作に従ってアルゴリズムを変更し、診断方法を変更する点において、実施例１の動作品質診断プログラムと相違する。
【０１６９】
図１３は、実施例２の診断システムの構成を示す説明図である。
【０１７０】
なお、実施例１と重複する内容は説明を省略する。
【０１７１】
実施例２の診断システムは、自動車１３０１と、通信手段１０２と、診断装置１３０２と、表示装置１０４を含む。実施例２の通信手段１０２及び表示装置１０４は、実施例１の通信手段１０２及び表示装置１０４と同じである。
【０１７２】
実施例２の自動車１３０１は、実施例１のロボット１０１に相当し、ロボット１０１と同じく、動作を実行するＩｏＴ装置である。自動車１３０１とロボット１０１とは、同じ構成及び同じ機能を有する。
【０１７３】
具体的には、自動車１３０１は、図２に示すメモリ２０１、ＣＰＵ２０２、アクチュエータ２０３、センサ２０４、及び、通信Ｉ／Ｆ２０５を有する。また、自動車１３０１のメモリ２０１に展開されるプログラム及び情報は、図２に示すメモリ２０１内のプログラム及び情報と同じである。
【０１７４】
なお、自動車１３０１は、アクチュエータとして、一般的な自動車が有する装置を有し、例えば、エンジン、ブレーキ及びタイヤを有する。
【０１７５】
実施例２の診断装置１３０２は、実施例１の診断装置１０３に相当する。診断装置１３０２と診断装置１０３との相違点を、以下に述べる。
【０１７６】
図１４は、実施例２の診断装置１３０２の構成を示すブロック図である。
【０１７７】
なお、実施例１の診断装置１０３と重複する構成については、説明を省略する。診断装置１３０２は、診断装置１０３と同じく、メモリ８０１、ＣＰＵ８０２、入出力インターフェース８０３、通信Ｉ／Ｆ８０４及び外部記憶装置８０５を含む。また、診断装置１３０２のメモリ８０１は、診断装置１０３と同じく、環境指標情報テーブル８０８、動作効率指標情報テーブル８０９、及び、動作指標履歴テーブル８１０を含む。
【０１７８】
診断装置１３０２のメモリ８０１は、実施例１と同様に、動作品質を診断する動作品質診断プログラム１４０１と、動作パターンのテンプレートを格納する動作テンプレート情報テーブル１４０５とを有する。しかし、動作品質診断プログラム１４０１は、実施例１の動作品質診断プログラム８０６と処理の内容が異なる。また、動作テンプレート情報テーブル１４０５は、実施例１の動作テンプレート情報テーブル８０７と保持する内容が異なる。
【０１７９】
さらに、診断装置１３０２のメモリ８０１は、実施例１のメモリ８０１と異なり、複数種類の診断アルゴリズムを有するプログラムを格納する。図１４に示す診断を実行するアルゴリズムは、例であり、エンジン診断プログラム１４０２、ブレーキ診断プログラム１４０３、及び、タイヤ診断プログラム１４０４である。
【０１８０】
エンジン診断プログラム１４０２は、自動車１３０１のエンジンの動作品質を診断する。ブレーキ診断プログラム１４０３は、自動車１３０１のブレーキの動作品質を診断する。タイヤ診断プログラム１４０４は、自動車１３０１のタイヤの動作品質を診断する。
【０１８１】
実施例２のメモリ８０１が格納するプログラムの機能は、実施例１と同じく、物理的な集積装置によって診断装置１３０２に実装されてもよい。具体的には、診断装置１３０２は、動作品質診断プログラム１４０１の機能を有する動作品質診断部を有してもよいし、エンジン診断プログラム１４０２の機能を有するエンジン診断部を有してもよい。
【０１８２】
図１５は、実施例２の診断装置１３０２が保持する動作テンプレート情報テーブル１４０５の例を示す説明図である。
【０１８３】
動作テンプレート情報テーブル１４０５は、実施例２の動作テンプレート情報を含む。実施例２の動作テンプレート情報は、動作テンプレートが示す動作パターンが実行された際に発生する指標データがとりうる値と、動作テンプレートが示す動作パターンを診断するためのアルゴリズムとを示す。
【０１８４】
動作テンプレート情報は、動作テンプレートの識別子を示すテンプレートＩＤ５０１と、動作テンプレートに該当する指標データの値の条件を示す条件１５０１と、動作テンプレートに対応する動作パターンを診断するために用いる診断アルゴリズムを示すアルゴリズム１５０２と、を含む。
【０１８５】
図１５に示す条件１５０１は、指標データの値が整数であるか、若しくは、［−１，１］に含まれる範囲に含まれることを示す。それ以外にも、条件１５０１は他の任意の範囲を示してもよい。また、例えば、条件１５０１は、音声データを示すバイナリデータの一部を示すことにより、動作パターンが実行された際に発生する指標データの値を示してもよい。
【０１８６】
アルゴリズム１５０２は、診断装置１３０２のメモリ８０１に含まれる診断を実行するアルゴリズムのいずれかを示す。
【０１８７】
図１６は、実施例２の診断装置１３０２が実施する動作品質診断プログラム１４０１の具体的な処理を示すフローチャートである。
【０１８８】
ステップ１６０１において、診断装置１３０２は、ステップ１２０１と同じく、新たな動作指標の受信をトリガーに動作品質診断プログラム１４０１を起動する。また、ステップ１６０１において、動作品質診断プログラム８０６は、受信した動作指標をメモリ８０１に格納し、必要に応じて外部記憶装置８０５に格納する。
【０１８９】
ステップ１６０１の後、動作品質診断プログラム１４０１は、動作テンプレート情報テーブル１４０５に含まれるエントリの先頭から順に、条件１５０１が示す範囲と受信した動作指標の値とを照合し、受信した動作指標の値が条件１５０１が示す範囲に該当する動作テンプレートを特定する（１６０２）。
【０１９０】
より具体的には、動作品質診断プログラム１４０１は、受信した動作指標の値が条件１５０１が示す範囲に含まれる場合、受信した動作指標の値が条件１５０１が示す範囲に該当すると判定する。なお、条件１５０１が一つの値を示し、受信した動作指標の値が条件１５０１の値と一致する動作テンプレートを、該当する動作テンプレートとして特定してもよい。
【０１９１】
実施例２の動作品質診断プログラム１４０１は、受信した動作指標の値の条件に従って動作パターンを推定する。これにより、動作パターンに対応する動作指標がより厳密に限定されるため、精度よく動作パターンを推定することができる。
【０１９２】
該当する動作テンプレートを特定できない場合、動作品質診断プログラム１４０１は、図１６に示す処理を終了する。
【０１９３】
該当する動作テンプレートを特定できた場合、動作品質診断プログラム１４０１は、受信した動作指標に該当する動作テンプレートが示す動作パターンを、動作パターンの推定結果として取得する。そして、推定した動作パターンの動作テンプレートに対応する動作指標の項目を、動作効率指標情報テーブル８０９及び環境指標情報テーブル８０８から抽出する。これにより、受信した動作指標が発生した際の動作パターン（推定した動作パターン）を診断するための動作指標の指標データを抽出する（１６０３）。
【０１９４】
具体的には、動作品質診断プログラム１４０１は、受信した動作指標に該当する動作テンプレートのテンプレートＩＤ５０１に対応する環境指標ＩＤ９０１を環境指標情報テーブル８０８から取得し、さらに、該当する動作テンプレートのテンプレートＩＤ５０１に対応する動作効率指標リスト１００１を動作効率指標情報テーブル８０９から取得する。
【０１９５】
そして、動作品質診断プログラム１４０１は、取得した環境指標ＩＤ９０１及び取得した動作効率指標リスト１００１の少なくとも一方と一致する動作指標の指標データ（センサＩＤ、アクチュエータＩＤ、及び動作結果情報の識別子）を、受信した動作指標から抽出する。これによって、動作品質診断プログラム８０６は、推定した動作パターンを診断するための指標データを、受信した動作指標から抽出する。
【０１９６】
ステップ１６０３の後、動作品質診断プログラム１４０１は、実施例１のステップ１２０４と同じく、環境指標が類似する動作指標履歴を、動作指標履歴テーブル８１０から選択する（１６０４）。
【０１９７】
ステップ１６０４の後、動作品質診断プログラム１４０１は、ステップ１６０２において特定した動作テンプレートのアルゴリズムを、動作テンプレート情報テーブル１４０５のアルゴリズム１５０２から選択する。そして、動作品質診断プログラム１４０１は、選択したアルゴリズムに対応するプログラムを実行する（１６０５）。
【０１９８】
ここで、動作品質診断プログラム１４０１は、選択したアルゴリズムを実行するため、ステップ１６０３において抽出した動作指標の指標データを用いる。また、選択したアルゴリズムに従って、必要に応じて、ステップ１６０４において選択した動作指標履歴を用いてもよい。
【０１９９】
動作品質診断プログラム１４０１は、選択したアルゴリズムによって動作品質を診断することによって、推定した動作に従ったアルゴリズムにより精度よく診断することができる。
【０２００】
動作品質診断プログラム１４０１は、診断アルゴリズムの実行結果から、自動車１３０１に動作品質劣化が発生しているかを判定する（１６０６）。
【０２０１】
例えば、自動車１３０１から受信された動作指標に、（ギア＝１，アクセル＝０．６，ブレーキ＝０）が含まれる場合、受信した動作指標は、動作テンプレートＴ１０１に該当する。
【０２０２】
このため、動作品質診断プログラム１４０１は、動作テンプレートＴ１０１が示す動作パターンを推定結果として取得し、さらに、動作テンプレートＴ１０１が対応するエンジン診断プログラム１４０２を実行し、エンジンに動作品質劣化が発生しているかを判定する。エンジン診断プログラム１４０２は、エンジンの診断を実行するアルゴリズムとして、公知の方法を用いてもよい。
【０２０３】
動作品質劣化が発生していない場合、動作品質診断プログラム１４０１は、受信したデータから抽出した動作指標と該当するテンプレートＩＤ５０１とを動作指標履歴テーブル８１０に格納する（１６０７）。ステップ１６０７の後、及び、ステップ１６０６において動作品質が劣化していないと判定された後、診断装置１３０２は、診断結果を表示するためのデータを表示装置１０４に向けて出力し、処理を終了する（１６０８）。
【０２０４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細を説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
【０２０５】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
【０２０６】
また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル又はファイル等の情報は、メモリ、ハードディスク、若しくは、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）等の記録装置、又は、ＩＣカード、ＳＤカード、若しくはＤＶＤ等の記憶媒体に置くことができる。
【符号の説明】
【０２０７】
１０１    ロボット
１０２    通信手段
１０３    診断装置
１０４    表示装置
１３０１  自動車
１３０２  診断装置
【図１】
0006360016.tif 000002
【図２】
0006360016.tif 000003
【図３】
0006360016.tif 000004
【図４】
0006360016.tif 000005
【図５】
0006360016.tif 000006
【図６】
0006360016.tif 000007
【図７】
0006360016.tif 000008
【図８】
0006360016.tif 000009
【図９】
0006360016.tif 000010
【図１０】
0006360016.tif 000011
【図１１】
0006360016.tif 000012
【図１２】
0006360016.tif 000013
【図１３】
0006360016.tif 000014
【図１４】
0006360016.tif 000015
【図１５】
0006360016.tif 000016
【図１６】
0006360016.tif 000017