IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2025-11447情報処理システム、情報処理方法およびプログラム
<>
  • 特開-情報処理システム、情報処理方法およびプログラム 図1
  • 特開-情報処理システム、情報処理方法およびプログラム 図2
  • 特開-情報処理システム、情報処理方法およびプログラム 図3
  • 特開-情報処理システム、情報処理方法およびプログラム 図4
  • 特開-情報処理システム、情報処理方法およびプログラム 図5
  • 特開-情報処理システム、情報処理方法およびプログラム 図6
  • 特開-情報処理システム、情報処理方法およびプログラム 図7
  • 特開-情報処理システム、情報処理方法およびプログラム 図8
  • 特開-情報処理システム、情報処理方法およびプログラム 図9
  • 特開-情報処理システム、情報処理方法およびプログラム 図10
  • 特開-情報処理システム、情報処理方法およびプログラム 図11
  • 特開-情報処理システム、情報処理方法およびプログラム 図12
  • 特開-情報処理システム、情報処理方法およびプログラム 図13
  • 特開-情報処理システム、情報処理方法およびプログラム 図14
  • 特開-情報処理システム、情報処理方法およびプログラム 図15
  • 特開-情報処理システム、情報処理方法およびプログラム 図16
  • 特開-情報処理システム、情報処理方法およびプログラム 図17
  • 特開-情報処理システム、情報処理方法およびプログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025011447
(43)【公開日】2025-01-24
(54)【発明の名称】情報処理システム、情報処理方法およびプログラム
(51)【国際特許分類】
   G05B 23/02 20060101AFI20250117BHJP
   H04N 7/18 20060101ALI20250117BHJP
   G06F 11/34 20060101ALI20250117BHJP
   G06T 13/20 20110101ALI20250117BHJP
【FI】
G05B23/02 302V
H04N7/18 D
H04N7/18 B
G06F11/34 157
G06T13/20
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023113568
(22)【出願日】2023-07-11
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】大貫 はる奈
(72)【発明者】
【氏名】岩村 慎太郎
(72)【発明者】
【氏名】玉嶋 大輔
(72)【発明者】
【氏名】重森 弓束
(72)【発明者】
【氏名】真鍋 美樹子
【テーマコード(参考)】
3C223
5B042
5B050
5C054
【Fターム(参考)】
3C223AA11
3C223BA03
3C223BB08
3C223BB17
3C223CC02
3C223DD03
3C223EB02
3C223FF14
3C223FF16
3C223FF23
3C223GG01
3C223HH07
5B042HH07
5B042KK15
5B042MA08
5B042MA14
5B042MC08
5B050BA08
5B050CA07
5B050DA04
5B050EA07
5B050EA12
5B050EA13
5B050FA05
5C054CA04
5C054CC02
5C054FC12
5C054FC15
5C054HA03
(57)【要約】
【課題】監視対象の異常な動作の原因探索を適切に支援可能な情報処理システムを提供する。
【解決手段】情報処理システムは、監視対象の状態を表す1以上の変数の値の時系列データを用いた情報処理を行なう。情報処理システムは、時系列データによって示される対象期間の1以上の変数の値を用いて、仮想空間において監視対象に対応する仮想モデルの対象期間の挙動をシミュレートし、仮想空間に配置された仮想カメラの撮影によって得られる仮想動画を生成するシミュレータを備える。さらに、情報処理システムは、対象期間に監視対象を撮影することにより得られる実動画における移動物体の第1位置と、仮想動画における移動物体に対応する仮想オブジェクトの第2位置との差が基準を超える異常時刻を特定する特定モジュールを備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
監視対象の状態を表す1以上の変数の値の時系列データを用いた情報処理を行なう情報処理システムであって、
前記時系列データによって示される対象期間の前記1以上の変数の値を用いて、仮想空間において前記監視対象に対応する仮想モデルの前記対象期間の挙動をシミュレートし、前記仮想空間に配置された仮想カメラの撮影によって得られる仮想動画を生成するシミュレータと、
前記対象期間に前記監視対象を撮影することにより得られる実動画における移動物体の第1位置と、前記仮想動画における前記移動物体に対応する仮想オブジェクトの第2位置との差が基準を超える異常時刻を特定する特定モジュールとを備える、情報処理システム。
【請求項2】
前記異常時刻の一覧を示すデータを出力する出力モジュールをさらに備える、請求項1に記載の情報処理システム。
【請求項3】
前記監視対象は、固定位置に配置されたマーカーを含み、
前記シミュレータは、前記実動画における前記マーカーの位置と、前記仮想動画における前記マーカーに対応する仮想マーカーの位置とが一致するように、前記仮想空間における前記仮想カメラの位置姿勢を設定する、請求項1または2に記載の情報処理システム。
【請求項4】
監視対象の状態を表す1以上の変数の値の時系列データを用いた情報処理方法であって、
プロセッサが、前記時系列データによって示される対象期間の前記1以上の変数の値を用いて、仮想空間において前記監視対象に対応する仮想モデルの前記対象期間の挙動をシミュレートし、前記仮想空間に配置された仮想カメラの撮影によって得られる仮想動画を生成することと、
前記プロセッサが、前記対象期間に前記監視対象を撮影することにより得られる実動画における移動物体の第1位置と、前記仮想動画における前記移動物体に対応する仮想オブジェクトの第2位置との差が基準を超える異常時刻を特定することとを備える、情報処理方法。
【請求項5】
監視対象の状態を表す1以上の変数の値の時系列データを用いた情報処理方法をコンピュータに実行させるプログラムであって、
前記情報処理方法は、
前記時系列データによって示される対象期間の前記1以上の変数の値を用いて、仮想空間において前記監視対象に対応する仮想モデルの前記対象期間の挙動をシミュレートし、前記仮想空間に配置された仮想カメラの撮影によって得られる仮想動画を生成することと、
前記対象期間に前記監視対象を撮影することにより得られる実動画における移動物体の第1位置と、前記仮想動画における前記移動物体に対応する仮想オブジェクトの第2位置との差が基準を超える異常時刻を特定することとを備える、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システム、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
生産設備などの監視対象の異常な動作の原因調査を支援する装置が開発されている。特開2022-99341号公報(特許文献1)は、監視対象を撮影することにより得られる動画データと、仮想的な監視対象の動作を再現させた動作再現模擬データとを表示部に表示する技術を開示している。動作再現模擬データは、監視対象の状態と、監視対象と監視対象を制御する制御装置との間の制御信号の入出力データと、を時系列で記録したログデータに基づいて生成される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-99341号公報
【特許文献2】特開2017-97426号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示の技術によれば、ユーザは、動画データによって示される実動画または動作再現模擬データによって示される仮想動画の中から異常が発生している時刻(以下、「異常時刻」と称される)を見つけ、その前後の監視対象の状態を確認する。しかしながら、撮影時間が長い場合またはカメラの台数が多い場合、実動画または仮想動画から異常時刻を目視で見つけるのに時間がかかる。そのため、監視対象の異常な動作の原因探索に時間がかかる。
【0005】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、監視対象の異常な動作の原因探索を適切に支援可能な情報処理システム、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本開示の一例によれば、情報処理システムは、監視対象の状態を表す1以上の変数の値の時系列データを用いた情報処理を行なう。情報処理システムは、シミュレータと、特定モジュールとを備える。シミュレータは、時系列データによって示される対象期間の1以上の変数の値を用いて、仮想空間において監視対象に対応する仮想モデルの対象期間の挙動をシミュレートし、仮想空間に配置された仮想カメラの撮影によって得られる仮想動画を生成する。特定モジュールは、対象期間に監視対象を撮影することにより得られる実動画における移動物体の第1位置と、仮想動画における移動物体に対応する仮想オブジェクトの第2位置との差が基準を超える異常時刻を特定する。
【0007】
この開示によれば、ユーザは、特定モジュールによって特定された異常時刻およびその前後の監視対象の状態を詳細に調査することにより、監視対象の異常な動作の原因を探索しやすくなる。このように、本開示に係る情報処理システムは、監視対象の異常な動作の原因探索を適切に支援できる。
【0008】
上述の開示において、情報処理システムは、異常時刻の一覧を示すデータを出力する出力モジュールをさらに備える。この開示によれば、ユーザは、一覧を用いて、異常時刻を容易に認識できる。
【0009】
上述の開示において、監視対象は、固定位置に配置されたマーカーを含む。シミュレータは、実動画におけるマーカーの位置と、仮想動画におけるマーカーに対応する仮想マーカーの位置とが一致するように、仮想空間における仮想カメラの位置姿勢を設定する。これらの開示によれば、仮想動画と実動画との位置ずれが抑制される。
【0010】
本開示の別の例によれば、情報処理方法は、監視対象の状態を表す1以上の変数の値の時系列データを用いる。情報処理方法は、プロセッサが、時系列データによって示される対象期間の1以上の変数の値を用いて、仮想空間において監視対象に対応する仮想モデルの対象期間の挙動をシミュレートし、仮想空間に配置された仮想カメラの撮影によって得られる仮想動画を生成することを備える。さらに、情報処理方法は、プロセッサが、対象期間に監視対象を撮影することにより得られる実動画における移動物体の第1位置と、仮想動画における移動物体に対応する仮想オブジェクトの第2位置との差が基準を超える異常時刻を特定することを備える。
【0011】
本開示のさらに別の例によれば、プログラムは、上記の情報処理方法をコンピュータに実行させる。
【0012】
これらの開示によっても、情報処理方法およびプログラムは、監視対象の異常な動作の原因探索を適切に支援できる。
【発明の効果】
【0013】
本開示によれば、情報処理システム、情報処理方法およびプログラムは、監視対象の異常な動作の原因探索を適切に支援できる。
【図面の簡単な説明】
【0014】
図1】実施の形態に係る情報処理システムが適用される製造システムの一例を模式的に例示する図である。
図2】実施の形態に係る製造システムの全体構成の一例を示す模式図である。
図3】実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
図4】監視対象の構成の具体例を示す図である。
図5】視覚センサの処理内容を説明する図である。
図6】視覚センサ330の計測結果を示す変数の一例を示す図である。
図7】異常時刻の解析処理に関するPCのソフトウェア構成の一例を示す図である。
図8】対応関係情報の一例を示す図である。
図9】初期情報の一例を示す図である。
図10】仮想カメラの位置の設定方法を説明する図である。
図11】特定モジュールによる異常時刻の特定方法を説明する図である。
図12】PCにおける異常時刻の解析処理の流れの前半を示すフローチャートである。
図13】PCにおける異常時刻の解析処理の流れの後半を示すフローチャートである。
図14】ステップS20においてディスプレイに表示されるウィンドウの一例を示す図である。
図15】仮想ワークの別の生成方法を説明する図である。
図16】対象期間のデータの可視化処理に関するPCのソフトウェア構成の一例を示す図である。
図17】操作ウィンドウの一例を示す図である。
図18】ディスプレイに表示される画面例を示す図である。
【発明を実施するための形態】
【0015】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。本明細書において、特に示さない限り、「または」の用語は、「または」の意味に加えて、「および」の意味を包含する。
【0016】
§1 適用例
図1は、実施の形態に係る情報処理システムが適用される製造システムの一例を模式的に例示する図である。図1に示すように、製造システム1は、情報処理システム100と、制御装置200と、監視対象300と、カメラ400とを備える。
【0017】
制御装置200は、典型的には、プログラマブルロジックコントローラ(PLC)である。制御装置200は、監視対象300と接続され、予め作成された制御プログラムに従って監視対象300を制御する。
【0018】
監視対象300は、生産設備または生産ラインなど(以下、「フィールド」と称される)に対して何らかの物理的な作用を与えるアクチュエータ、フィールドに設置される各種のセンサ、またはフィールドとの間で情報を遣り取りする入出力装置などを含み得る。
【0019】
制御装置200は、監視対象の状態を表す1以上の変数の値を保持し、1以上の変数の値を用いた演算を行なうことにより、監視対象300を制御する。1以上の変数は、監視対象300から取得される各種の変数と、監視対象300へ出力される各種の変数とを含み得る。
【0020】
1以上の変数の値は、制御周期ごとに更新される。制御装置200は、制御周期ごとの1以上の変数の値を記録し、何らかの異常が生じた対象期間における1以上の変数の値の時系列データ11を生成する。時系列データ11は、制御装置200から情報処理システム100に転送される。
【0021】
1以上のカメラ400は、監視対象300の少なくとも一部を撮影するように設置される。1以上のカメラ400の撮影によって得られる実動画データ12は、情報処理システム100に転送される。なお、カメラ400の台数は、特に限定されない。以下、製造システム1が1台のカメラ400を備える実施形態について説明する。
【0022】
情報処理システム100は、時系列データ11および実動画データ12を用いた情報処理を行なう。情報処理システム100は、1以上のコンピュータによって構成される。情報処理システム100は、データベース10と、シミュレータ20と、特定モジュール30とを備える。
【0023】
データベース10は、対象期間における監視対象300の状態を表す1以上の変数の値の時系列データ11を記憶する。さらに、データベース10は、カメラ400の撮影により得られた実動画データ12を記憶する。実動画データ12は、対象期間に監視対象300を撮影することにより得られる実動画12aを示す。
【0024】
シミュレータ20は、時系列データ11によって示される対象期間の1以上の変数の値を用いて、仮想空間において監視対象300に対応する仮想モデルの対象期間の挙動をシミュレートする。さらに、シミュレータ20は、仮想空間に配置された仮想カメラの撮影によって得られる仮想動画28aを生成する。
【0025】
特定モジュール30は、実動画12aにおけるワーク3の第1位置と、仮想動画28aにおけるワーク3に対応する仮想ワーク3Mの第2位置との差が基準を超える異常時刻を特定する。ワーク3は、本開示の「移動物体」の一例である。仮想ワーク3Mは、本開示の「仮想オブジェクト」の一例である。
【0026】
本実施の形態によれば、ユーザは、特定モジュール30によって特定された異常時刻およびその前後の監視対象300の状態を詳細に調査することにより、監視対象300の異常な動作の原因を探索しやすくなる。
【0027】
このように、本実施の形態に係る情報処理システム100は、監視対象300の異常な動作の原因探索を適切に支援できる。
【0028】
§2 具体例
<製造システムの全体構成>
図2は、実施の形態に係る製造システムの全体構成の一例を示す模式図である。図2に示されるように、製造システム1は、情報処理システム100を構成するパーソナルコンピュータ(以下、「PC100A」と称される)と、制御装置200と、監視対象300と、カメラ400と、記憶媒体500とを備える。PC100Aおよび制御装置200およびカメラ400は、例えば汎用的なEthernet(登録商標)を用いて互いに通信可能である。なお、PC100Aと制御装置200とは、別の通信手段(例えば、Universal Serial Bus(USB))を用いて互いに通信してもよい。
【0029】
記憶媒体500は、揮発性記憶媒体、不揮発性記憶媒体、CF(Compact Flash)もしくはSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体を含む。記憶媒体500は、例えばSDメモリカードである。
【0030】
PC100Aは、典型的には、汎用的なアーキテクチャを有しているコンピュータである。図2に示されるように、PC100Aは、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)などのプロセッサ101と、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性の記憶装置で構成されるメモリ102と、ストレージ103と、入力インターフェイス104と、表示コントローラ105と、通信インターフェイス106と、リーダ/ライタ107とを含む。これらの各部は、バスを介して互いにデータ通信が可能なように接続されている。
【0031】
プロセッサ101は、ストレージ103に格納されたプログラムを読み出して、メモリ102に展開する。プロセッサ101は、展開されたプログラムを実行する。
【0032】
ストレージ103は、例えば、HDD(Hard Disc Drive)、SSD(Solid State Drive)、またはフラッシュメモリなどの不揮発性記憶装置で構成される。ストレージ103は、プロセッサ101によって実行されるプログラムと、データベース10とを記憶する。
【0033】
プロセッサ101によって実行されるプログラムは、開発プログラム131と、ビューワープログラム132と、データ再現プログラム133と、シミュレーションプログラム134とを含む。
【0034】
開発プログラム131は、主に、制御装置200が使用する制御プログラムの開発を支援するための命令群を含む。さらに、開発プログラム131は、時系列データ11の生成に関する設定機能と、制御装置200による制御プログラムの実行状況をモニタリングする機能(以下、「プログラムモニタ機能」と称される)とを提供する。
【0035】
開発プログラム131を用いて開発された制御プログラムは、制御装置200にインストールされる。さらに、開発プログラム131の設定機能を用いて生成されたモニタリング設定データは、制御装置200に転送される。
【0036】
ビューワープログラム132は、各種の情報を可視化してユーザに提供するための命令群を含む。ビューワープログラム132は、1以上の変数の値の推移を示すグラフを表示する機能(以下、「変数グラフ表示機能」と称される)と、動画を再生する機能とを提供する。
【0037】
データ再現プログラム133は、過去のデータを再現するための命令群を含む。データ再現プログラム133は、時刻を管理する機能と、再現対象のデータを要求する機能とを含む。
【0038】
シミュレーションプログラム134は、仮想空間における監視対象300の仮想モデルの挙動をシミュレートするための命令群を含む。シミュレーションプログラム134は、監視対象300に対応する仮想モデルの挙動を再現する機能と、制御装置200によって制御されない移動物体に対応する仮想ワークを動かすためのスクリプトと、データ管理機能と、解析機能とを含む。
【0039】
なお、スクリプトは、例えばC#形式で記述され、スタートメソッドとレンダーメソッドとを含む。スタートメソッドは、スクリプトの実行開始時に1回だけ実行される。レンダーメソッドは、周期的に実行される。
【0040】
データベース10は、時系列データ11を記憶する。時系列データ11は、制御装置200から転送され、対象期間における監視対象300の状態を表す1以上の変数の時刻ごとの実績値を示す。さらに、データベース10は、カメラ400から転送された実動画データ12を記憶する。
【0041】
入力インターフェイス104は、プロセッサ101とキーボード、マウス、またはタッチパネルなどの入力装置110との間のデータ伝送を仲介する。表示コントローラ105は、ディスプレイ120と接続され、プロセッサ101によって生成された画面データによって示される画面をディスプレイ120に表示する。通信インターフェイス106は、通信ネットワークを介して制御装置200と通信する。リーダ/ライタ107は、プロセッサ101と外部の記憶媒体(例えば記憶媒体500を含み得る)との間のデータ伝送を仲介する。
【0042】
開発プログラム131、ビューワープログラム132、データ再現プログラム133、およびシミュレーションプログラム134の各々は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。また、開発プログラム131、ビューワープログラム132、データ再現プログラム133、およびシミュレーションプログラム134によって提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)によって実現されてもよい。
【0043】
<制御装置のハードウェア構成>
図3は、実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。図3に示されるように、制御装置200は、主たるコンポーネントとして、制御装置200の各部に電力PWを供給する電源回路201と、CPU202と、チップセット204と、メモリ206と、ストレージ208と、USBコントローラ250と、フィールドネットワークコントローラ252と、ネットワークコントローラ254と、タイマ260と、リーダ/ライタ270とを含む。
【0044】
CPU202は、ストレージ208に格納されたプログラムを読出して、メモリ206に展開する。CPU202は、展開されたプログラムを実行する。
【0045】
メモリ206は、DRAMまたはSRAMなどの揮発性記憶装置で構成される。メモリ206は、1以上の変数の値を保持する。メモリ206に保持される1以上の変数の値は、ストレージ208に格納されるプログラムをCPU202が実行することにより、制御周期に従って更新される。
【0046】
1以上の変数の値は、一定期間だけ、メモリ206のバッファ領域207に蓄積される。
【0047】
ストレージ208は、例えば、HDD、SSDまたはフラッシュメモリなどの不揮発性記憶装置で構成されるが、一部は、揮発性ストレージで構成されてもよい。
【0048】
チップセット204は、CPU202と各コンポーネントとの間のデータの遣り取りを仲介することで、制御装置200全体としての処理を実現する。
【0049】
ストレージ208には、制御装置200の基本的な機能を実現するためのOS(Operating System)212およびスケジューラプログラム213を有するシステムプログラム211が格納される。
【0050】
さらに、ストレージ208は、PC100Aによって作成されたプログラムデータセット214を記憶する。プログラムデータセット214は、制御プログラムと、サンプリング設定データとを含む。
【0051】
制御プログラムは、監視対象300から各種の変数の値を収集する処理と、収集された変数の値に基づいた演算を行ない、監視対象300へ出力すべき各種の変数の値を生成する処理とを定義する。各種の変数の値は、メモリ206に一時的に保持される。CPU202は、制御プログラムを実行することにより、制御周期ごとに、メモリ206が保持する変数の値を更新する。
【0052】
サンプリング設定データは、時系列データ11の生成条件を定義する。時系列データ11の生成条件は、サンプリングのトリガ条件、サンプリング対象となる変数、およびサンプリング時間などを示す。
【0053】
トリガ条件は、例えば、監視対象300の異常に関連する変数の値が特定値に変化したという条件を含む。CPU202は、トリガ条件が満たされたタイミングを含む対象期間における1以上の変数の値を示す時系列データ11をバッファ領域207から読み出し、リーダ/ライタ270を制御して記憶媒体500に時系列データ11を書き込む。対象期間は、例えば、トリガ条件が満たされたタイミングの前の第1所定期間と、トリガ条件が満たされたタイミングの後の第2所定期間とを含む。第1所定期間および第2所定期間の長さは、サンプリング設定データによって定義される。
【0054】
USBコントローラ250は、USB接続を介して外部の装置(PC100Aを含み得る)との間のデータの遣り取りを担当する。
【0055】
フィールドネットワークコントローラ252は、フィールドネットワークに接続するコネクタ252aを有し、監視対象300との間のデータの遣り取りを制御する。フィールドネットワークコントローラ252は、フィールドネットワークから受信する入力データおよび制御装置200からフィールドネットワークに出力される出力データを格納する内部バッファを有する。
【0056】
ネットワークコントローラ254は、上位ネットワークに接続するコネクタ254aを有し、制御装置200と外部の装置(PC100Aを含み得る)との間のデータの遣り取りを制御する。
【0057】
タイマ260は、時間を計測するクロック回路またはカウンタ回路を含んで構成されるが、このような回路に限定されず、CPU202が実行するソフトウェアモジュールにより構成されてもよい。
【0058】
リーダ/ライタ270は、CPU202と記憶媒体500との間のデータ伝送を仲介する。CPU202は、サンプリング設定データによって示される生成条件に従って生成された時系列データ11をバッファ領域207から記憶媒体500にコピーする。記憶媒体500に保存された時系列データ11は、所定のタイミングにおいて、ネットワークコントローラ254を介して、PC100Aに転送される。あるいは、ユーザは、記憶媒体500をPC100Aに接続し、時系列データ11を記憶媒体500からPC100Aにコピーまたは移動させてもよい。
【0059】
<監視対象の具体例>
図4は、監視対象の構成の具体例を示す図である。図4に示されるように、監視対象300Aは、搬送システム310と、ロボット320と、視覚センサ330とを含む。
【0060】
搬送システム310は、本開示の移動物体の一例であるワーク3を搬送する。搬送システム310は、エンコーダ312を含む。エンコーダ312の計測結果を示す変数は、制御装置200によって収集される。エンコーダ312の計測結果を示す変数値は、「エンコーダ値」と称される。
【0061】
ロボット320は、ワーク3に対する加工などを行なう。ロボット320は、制御装置200から受ける各種の変数値(指令値)に応じた動作を行なう。ロボット320の現在の状態を表す変数値(状態値)は、制御装置200によって収集される。
【0062】
視覚センサ330は、搬送システム310の一部の領域313を撮影するように設置されたカメラ332から取得された画像に対してパターンマッチングなどの画像計測処理を行なう。
【0063】
図5は、視覚センサの処理内容を説明する図である。視覚センサ330は、カメラ332が撮影すると、オン状態の撮影フラグを制御装置200に出力する。撮影フラグは、制御装置200によって収集される変数の1つである。視覚センサ330は、カメラ332から画像を取得する。画像は、搬送システム310の一部の領域313を撮像することにより得られる。視覚センサ330は、画像に写るワーク3の個数と、各ワーク3の位置を計測する。さらに、視覚センサ330は、画像に写るワーク3の種別を判定してもよい。視覚センサ330の計測結果を示す変数の値は、制御装置200によって収集される。
【0064】
図6は、視覚センサ330の計測結果を示す変数の一例を示す図である。図6に示されるように、視覚センサ330から、変数「コントローラ名」、変数「ワーク3の検出フラグ」、変数「ワーク3の検出数」、変数「ワーク3のX座標」、変数「ワーク3のY座標」、変数「ワーク3の回転角度」、変数「ワーク3の種別」の値が収集される。なお、変数「ワーク3のX座標」、変数「ワーク3のY座標」、変数「ワーク3の回転角度」、変数「ワーク3の種別」の値は、検出された各ワーク3について計測される。そのため、変数「ワーク3のX座標」、変数「ワーク3のY座標」、変数「ワーク3の回転角度」、変数「ワーク3の種別」は、配列変数を構成する。
【0065】
図4に示されるように、カメラ400は、搬送システム310の領域313よりも下流側の領域410を撮影するように設置される。
【0066】
監視対象300Aは、固定位置に配置された3つ以上のマーカー390を含む。3つ以上のマーカー390は、領域410内に配置される。そのため、カメラ400の撮影により得られる実動画12aの各フレームには、3つ以上のマーカー390が写る。
【0067】
<異常時刻の解析処理に関するPCのソフトウェア構成>
図7は、異常時刻の解析処理に関するPCのソフトウェア構成の一例を示す図である。図7に示されるように、PC100Aは、データ再現モジュール14と、動作設定モジュール21と、初期情報設定モジュール22と、キャリブレーションモジュール23と、動作再現モジュール24と、仮想ワーク生成モジュール25と、スクリプト実行モジュール26と、データ管理モジュール27と、仮想動画生成モジュール28と、特定モジュール30と、出力モジュール32とを備える。
【0068】
データ再現モジュール14は、図2に示すプロセッサ101がデータ再現プログラム133を実行することにより実現される。動作設定モジュール21、初期情報設定モジュール22、キャリブレーションモジュール23、動作再現モジュール24、仮想ワーク生成モジュール25、スクリプト実行モジュール26、データ管理モジュール27、仮想動画生成モジュール28、特定モジュール30、および出力モジュール32は、プロセッサ101がシミュレーションプログラム134を実行することにより実現される。
【0069】
なお、動作設定モジュール21、初期情報設定モジュール22、キャリブレーションモジュール23、動作再現モジュール24、仮想ワーク生成モジュール25、スクリプト実行モジュール26、データ管理モジュール27、および仮想動画生成モジュール28は、シミュレータ20を構成する。
【0070】
データ再現モジュール14は、データベース10を用いて、対象期間に含まれる時刻のデータを再現する。データ再現モジュール14は、時刻制御モジュール15と、データ要求モジュール16とを含む。
【0071】
時刻制御モジュール15は、対象期間内の時刻を表すカウンタ値を管理する。カウンタ値は、制御周期の周期カウンタの値である。このため、カウンタ値は、対象期間の開始時からの経過時間を表すことができる。
【0072】
時刻制御モジュール15は、カウンタ値の更新を行なう。具体的には、時刻制御モジュール15は、初期カウンタ値を「0」に設定し、その後、規定時間が経過するたびにカウンタ値に1を加算する。
【0073】
データ要求モジュール16は、カウンタ値が表す指定時刻に応じたクエリを生成する。指定時刻は、対象期間の開始時刻から、規定時間とカウンタ値との積だけ経過した時刻である。データ要求モジュール16は、生成したクエリを用いて、データベース10に格納された時系列データ11から指定時刻における各変数の値を取得する。データ要求モジュール16は、取得した各変数の値を動作再現モジュール24、仮想ワーク生成モジュール25、およびスクリプト実行モジュール26に出力する。
【0074】
さらに、データ要求モジュール16は、実動画データ12によって示される複数の実画像フレームのうち指定時刻に対応する実画像フレームを要求するクエリを生成する。データ要求モジュール16は、生成したクエリを用いて、データベース10に格納された実動画データ12から指定時刻の実画像フレームを取得する。データ要求モジュール16は、取得した実画像フレームを特定モジュール30に出力する。実画像フレームには撮影時刻が付加される。
【0075】
なお、実動画データ12におけるフレーム間隔は、一般に、制御周期よりも長い。そのため、指定時刻に対応する実画像フレームとは、指定時刻以前で指定時刻に最も近い撮影時刻のフレームである。
【0076】
動作設定モジュール21は、監視対象300Aを構成する各可動部品について、関連する変数と可動部品の動作との対応関係を示す対応関係情報を設定する。動作設定モジュール21は、ユーザ入力に応じて対応関係情報を設定する。
【0077】
図8は、対応関係情報の一例を示す図である。図8に示されるように、対応関係情報21aは、可動部品の名称と、可動部品の動作と関連する変数と、並進動作のベクトル(並進ベクトル)と、回転動作の情報(回転情報)とを示す。並進ベクトルは、変数の値に応じた可動部品の並進動作を定義する。回転情報は、変数の値に応じた可動部品の回転動作を定義する。回転情報は、回転軸を定義する情報または回転量を定義する情報を含む。
【0078】
図7に戻って、初期情報設定モジュール22は、監視対象300Aの各部品および監視対象300Aの周囲の物体(ワーク3を含む)の各々について、対象期間の開始時刻における初期情報を設定する。監視対象300Aの周囲の物体は、ワーク3の他に、例えば、トレーまたは固定台などを含み得る。初期情報設定モジュール22は、ユーザ入力に応じて初期情報を設定する。
【0079】
図9は、初期情報の一例を示す図である。図9に示されるように、初期情報22aは、オブジェクト名と、外表面のメッシュ形状と、位置を定義付ける座標と、従属情報とを含む。従属情報は、従属先(監視対象300Aの部品、監視対象300Aの周囲の物体を含む)と、従属先との相対位置関係とを示す。なお、従属先が存在しない場合、従属情報はNullに設定される。第1物体が第2物体に従属することは、第1物体が第2物体との相対位置関係を維持しながら第2物体に追従することを意味する。
【0080】
なお、外表面のメッシュ形状は、予めインポートされたCAD(Computer-Aided Design)データから設定されてもよい。また、ワーク3は、対象期間の開始時刻において存在しない場合が有り得る。そのため、ワーク3について、位置を定義付ける座標は設定されない。後述するように、ワーク3の初期位置は、スクリプト実行モジュール26によって設定される。
【0081】
図7に戻って、キャリブレーションモジュール23は、仮想空間における仮想カメラの位置を設定する。
【0082】
図10は、仮想カメラの位置の設定方法を説明する図である。図10には、カメラ400の撮影によって得られる実動画12aの実画像フレーム12bが示される。上述したように、実画像フレーム12bには、3つ以上のマーカー390が写る。さらに、図10には、仮想空間5に配置された仮想カメラ400Mの撮影によって得られる仮想動画28aの仮想画像フレーム28bが示される。
【0083】
キャリブレーションモジュール23は、実画像フレーム12bにおけるマーカー390の位置と、仮想画像フレーム28bにおける仮想マーカー390Mの位置とが一致するように、仮想空間5における仮想カメラ400Mの位置姿勢を設定する。
【0084】
図7に戻って、動作再現モジュール24は、1以上の変数の値に基づいて、対象期間における監視対象300Aの仮想モデルの動作をシミュレートする。
【0085】
具体的には、動作再現モジュール24は、データ再現モジュール14から、対象期間における時刻ごとの1以上の変数の値を時系列に沿って順に取得する。動作再現モジュール24は、各時刻の1以上の変数の値に基づいて、仮想モデルの状態を示すデータ(1)を生成する。データ(1)は、仮想モデルの各部分の位置を示す。以下、対象期間の開始時刻t0から制御周期のk倍が経過した時刻tkに対応するデータ(1)は、「第kデータ(1)」と称される。
【0086】
動作再現モジュール24は、時刻tkにおける1以上の変数の値を取得すると、取得した値と対応関係情報21aとに基づいて、時刻tkにおける仮想モデルのうち各可動部品に対応する部分の動作をシミュレートする。動作再現モジュール24は、各部分の動作を統合することにより、時刻tkにおける仮想モデルの状態を示す第kデータ(1)を生成する。動作再現モジュール24は、第kデータ(1)をデータ管理モジュール27に出力する。
【0087】
仮想ワーク生成モジュール25は、1以上の変数の値に基づいてワーク3に対応する仮想ワーク3M(図1参照)を生成する。仮想ワーク生成モジュール25は、データ再現モジュール14から、対象期間における時刻ごとの1以上の変数の値を時系列に沿って順に取得する。仮想ワーク生成モジュール25は、取得した1以上の変数の値の中に視覚センサ330の計測結果を示す変数の値が含まれることに応じて、仮想ワーク3Mを生成する。
【0088】
具体的には、仮想ワーク生成モジュール25は、視覚センサ330によって計測されたワーク3の位置を示す変数の値に基づいて、仮想ワーク3Mの初期位置を設定し、初期位置に仮想ワーク3Mを生成する。
【0089】
仮想ワーク生成モジュール25は、カメラ332が画像を撮影してから、視覚センサ330が当該画像に基づいてワーク3の位置を計測するまでのタイムラグを考慮して、初期位置を補正することが好ましい。例えば、仮想ワーク生成モジュール25は、特開2017-97426号公報(特許文献2)に記載の技術を用いて、エンコーダ312の計測結果を示す変数の値(エンコーダ値)と、視覚センサ330から出力される撮影フラグとを用いて、初期位置を補正する。
【0090】
具体的には、仮想ワーク生成モジュール25は、データ再現モジュール14からオン状態を示す撮影フラグを受けると、当該撮影フラグに対応する時刻tpと、当該時刻tpにおけるエンコーダ値とを記録する。仮想ワーク生成モジュール25は、時刻tqに対応する1以上の変数の値の中に視覚センサ330の計測結果を示す変数の値が含まれる場合、当該1以上の変数の値の中から時刻tqにおけるエンコーダ値を抽出する。時刻tqは、時刻tpより後である。仮想ワーク生成モジュール25は、時刻tpにおけるエンコーダ値と時刻tqにおけるエンコーダ値との差に基づいて、時刻tpから時刻tqまでの間における搬送システム310の移動量を計算する。仮想ワーク生成モジュール25は、当該移動量だけ初期位置を補正する。
【0091】
仮想ワーク生成モジュール25は、新たな仮想ワーク3Mを生成すると、新たな仮想ワーク3Mの位置を示すデータ(2)をデータ管理モジュール27に出力する。
【0092】
スクリプト実行モジュール26は、対象期間における仮想ワーク3Mの運動をシミュレートし、シミュレート結果に応じてデータ(2)を更新する。スクリプト実行モジュール26は、データ再現モジュール14から、対象期間における時刻ごとの1以上の変数の値を時系列に沿って順に取得する。スクリプト実行モジュール26は、時刻tkにおける1以上の変数の値に基づいて、ワーク3の従属先の部品に対応する仮想モデルの部分の動作をシミュレートする。当該シミュレートの方法は、動作再現モジュール24におけるシミュレートの方法と同じである。スクリプト実行モジュール26は、ワーク3の初期情報22aに含まれる従属情報が示す相対位置関係と、従属先の部品に対応する仮想モデルの部品の位置とに基づいて、時刻tkにおける仮想ワーク3Mの運動をシミュレートする。スクリプト実行モジュール26は、シミュレート結果と時刻tk-1に対応するデータ(2)とに基づいて、時刻tkにおける仮想ワーク3Mの位置を示すデータ(2)を生成する。動作再現モジュール24は、時刻tkに対応するデータ(2)をデータ管理モジュール27に出力する。
【0093】
スクリプト実行モジュール26は、仮想空間5に複数の仮想ワーク3Mが存在する場合、複数の仮想ワーク3Mの各々について、データ(2)を更新する。
【0094】
なお、スクリプト実行モジュール26は、動作再現モジュール24によって生成された第kデータ(1)と従属情報が示す相対位置関係とに基づいて、時刻tkにおける仮想ワーク3Mの運動をシミュレートしてもよい。
【0095】
データ管理モジュール27は、仮想モデル300Mの状態を示すデータ(1)および仮想ワーク3Mの状態を示すデータ(2)を管理する。データ管理モジュール27は、第kデータ(1)を取得すると、第k-1データ(1)および第kデータ(1)を保持し、第k-2データ(1)を削除する。データ管理モジュール27は、時刻tkに対応するデータ(2)を取得すると、時刻tk-1に対応するデータ(2)および時刻tkに対応するデータ(2)を保持し、時刻tk-2に対応するデータ(2)を削除する。
【0096】
仮想動画生成モジュール28は、データ(1)およびデータ(2)に基づいて、仮想動画28aを生成する。具体的には、仮想動画生成モジュール28は、仮想空間5において、データ(1)で示される状態となるように仮想モデル300Mを配置し、データ(2)で示される位置に仮想ワーク3Mを配置する。さらに、仮想動画生成モジュール28は、仮想空間5において、キャリブレーションモジュール23によって設定された位置に仮想カメラ400Mを配置する。仮想動画生成モジュール28は、時刻ごとに、仮想カメラ400Mの撮影により得られる仮想画像フレーム28bを生成することにより、仮想動画28aを生成する。
【0097】
特定モジュール30は、データ再現モジュール14から、対象期間における時刻ごとの実画像フレーム12bを取得する。実画像フレーム12bは、実動画データ12によって示される実動画12aのうち指定時刻に対応する。特定モジュール30は、時刻tkに対応する実画像フレーム12bを取得すると、当該時刻tkに対応するデータ(1)およびデータ(2)に基づいて生成された仮想画像フレーム28bを仮想動画生成モジュール28から取得する。
【0098】
図11は、特定モジュールによる異常時刻の特定方法を説明する図である。特定モジュール30は、実画像フレーム12bにおけるワーク3の第1位置を特定する。例えば、特定モジュール30は、公知の物体認識技術を用いて実画像フレーム12bから各ワーク3の写る画素群を認識し、当該画素群の重心を第1位置として特定する。
【0099】
さらに、特定モジュール30は、仮想画像フレーム28bにおける仮想ワーク3Mの第2位置を特定する。特定モジュール30は、公知の物体認識技術を用いて仮想画像フレーム28bから各仮想ワーク3Mの写る画素群を認識し、当該画素群の重心を第2位置として特定する。
【0100】
特定モジュール30は、第1位置と第2位置との差が予め定められた基準を超える時刻を異常時刻として特定する。すなわち、特定モジュール30は、時刻tkに対応する実画像フレーム12bから特定された第1位置と、時刻tkに対応する仮想画像フレーム28bから特定された第2位置との差が基準を超えることに応じて、時刻tkを異常時刻として特定する。
【0101】
図7に戻って、出力モジュール32は、異常時刻の一覧を示すデータを生成し、当該データを表示コントローラ105に出力する。これにより、異常時刻の一覧がディスプレイ120に表示される。
【0102】
<異常時刻の解析処理の流れ>
図12は、PCにおける異常時刻の解析処理の流れの前半を示すフローチャートである。図13は、PCにおける異常時刻の解析処理の流れの後半を示すフローチャートである。
【0103】
まずステップS1において、PC100Aのプロセッサ101は、シミュレーションの初期化処理を行なう。具体的には、プロセッサ101は、シミュレーションプログラム134に含まれるスクリプトの初期化関数を実行する。
【0104】
次にステップS2において、プロセッサ101は、対象期間の開始時刻t0を時刻tとして設定する。具体的には、プロセッサ101は、カウンタ値を0に設定する。さらに、プロセッサ101は、序数iを0に設定する。
【0105】
次のステップS3において、プロセッサ101は、時刻tにおける1以上の変数の値を時系列データ11から取得する。
【0106】
次のステップS4において、プロセッサ101は、1以上の変数の値に基づいて、監視対象300Aに対応する仮想モデルの挙動をシミュレートする。さらに、ステップS5において、プロセッサ101は、仮想空間5上に既に仮想ワーク3Mが配置されている場合、仮想モデルの挙動に応じて、既存の仮想ワーク3Mを移動させる。
【0107】
次のステップS6において、プロセッサ101は、視覚センサ330の計測結果を示す変数の値に基づいて、ワーク3が検出されたか否かを判断する。ワーク3が検出された場合(ステップS6でYES)、ステップS7において、プロセッサ101は、仮想空間5において、視覚センサ330の計測結果に応じた初期位置に仮想ワーク3Mを生成する。
【0108】
ステップS7の後、または、ステップS6でNOの場合、解析処理はステップS8に移る。ステップS8において、プロセッサ101は、時刻tに対応する仮想画像フレーム28bを生成する。仮想画像フレーム28bは、仮想動画28aを構成する。次のステップS9において、プロセッサ101は、仮想画像フレーム28bにおける仮想ワーク3Mの第2位置を特定する。具体的には、プロセッサ101は、第2位置の画素座標を特定する。
【0109】
次のステップS10において、プロセッサ101は、実動画データ12から、時刻tに対応する実画像フレーム12bを取得する。次のステップS11において、プロセッサ101は、実画像フレーム12bにおけるワーク3の第1位置を特定する。具体的には、プロセッサ101は、第1位置の画素座標を特定する。
【0110】
次のステップS12において、プロセッサ101は、第1位置と第2位置との差が基準を超えるか否かを判断する。例えば、プロセッサ101は、第1位置の画素座標と第2位置の画素座標との誤差が閾値を超えるか否かを判断する。
【0111】
第1位置と第2位置との差が基準を超える場合(ステップS12でYES)、ステップS13において、プロセッサ101は、時刻tを異常時刻t_b[i]として設定する。さらに、ステップS14において、プロセッサ101は、序数iに1を加算する。
【0112】
ステップS14の後、または、第1位置と第2位置との差が基準を超えない場合(ステップS12でNO)、解析処理はステップS15に移る。ステップS15において、プロセッサ101は、時刻tが対象期間の終了時刻Tより前か否かを判断する。時刻tが終了時刻Tよりも前である場合(ステップS15でYES)、ステップS16において、プロセッサ101は、時刻tを制御周期分だけ進める。具体的には、プロセッサ101は、カウンタ値を1だけ進める。ステップS16の後、解析処理はステップS3に戻る。時刻tが終了時刻Tよりも前ではない場合(ステップS15でNO)、ステップS17において、プロセッサ101は、異常時刻t_bの一覧を示すデータを生成し、当該データを表示コントローラ105に出力する。これにより、異常時刻t_bの一覧がディスプレイ120に表示される。ステップS17の後、解析処理は終了する。
【0113】
<画面例>
図14は、ステップS20においてディスプレイに表示されるウィンドウの一例を示す図である。図14に示すウィンドウのデータは、プロセッサ101によって生成される。図14に示されるように、ウィンドウ50は、異常時刻t_bの一覧を示す。
【0114】
<解析処理の変形例>
上記の説明では、仮想ワーク生成モジュール25は、視覚センサ330の計測結果を示す変数の値に応じて、仮想ワーク3Mを生成する。しかしながら、仮想ワーク3Mの生成方法はこれに限定されない。
【0115】
例えば、仮想ワーク生成モジュール25は、カメラ332によって撮影された画像に基づいて、仮想ワーク3Mを生成してもよい。例えば、カメラ332によって撮影された画像は、データベース10に蓄積される。データ再現モジュール14は、指定時刻に対応する画像がデータベース10に蓄積されている場合、1以上の変数の値とともに当該画像を仮想ワーク生成モジュール25に出力する。仮想ワーク生成モジュール25は、データ再現モジュール14から画像を受けると、当該画像に対して視覚センサ330と同じ処理を実行することにより、当該画像に写るワーク3の位置を特定する。仮想ワーク生成モジュール25は、特定した位置に基づいて、仮想ワーク3Mの初期位置を設定すればよい。そして、仮想ワーク生成モジュール25は、仮想空間5において、初期位置に仮想ワーク3Mを生成する。
【0116】
図15は、仮想ワークの別の生成方法を説明する図である。図15に示されるように、搬送システム310において、ワーク3は、一列に沿って搬送される。物体検知センサ345は、カメラ400によって撮影される領域410(図4参照)よりも上流側に配置され、場所314にワーク3が存在するか否かを検知する。
【0117】
1以上の変数は、物体検知センサ345の検知結果を示す特定変数を含む。仮想ワーク生成モジュール25は、特定変数の値がワーク3の存在を示すことに基づいて、仮想空間5における場所314に対応する位置に仮想ワーク3Mを生成すればよい。
【0118】
<対象期間のデータの可視化処理>
図16は、対象期間のデータの可視化処理に関するPCのソフトウェア構成の一例を示す図である。図16に示されるように、PC100Aは、時刻指定モジュール13と、データ再現モジュール14と、波形表示モジュール41と、プログラム表示モジュール42と、動画再生モジュール43とを備える。波形表示モジュール41および動画再生モジュール43は、プロセッサ101がビューワープログラム132を実行することにより実現される。プログラム表示モジュール42は、プロセッサ101が開発プログラム131を実行することにより実現される。
【0119】
時刻指定モジュール13は、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値と再生条件とをデータ再現モジュール14に出力する。時刻指定モジュール13は、操作ウィンドウに対するユーザ入力に応じて、再生開始カウンタ値と再生条件とを設定する。
【0120】
図17は、操作ウィンドウの一例を示す図である。図17に示す操作ウィンドウ60は、時刻指定モジュール13によって生成され、図2に示すディスプレイ120に表示される。操作ウィンドウ60は、カーソル61と、入力欄62,66と、再生ボタン63と、コマ戻しボタン64と、コマ送りボタン65とを含む。
【0121】
カーソル61は、対象期間内の時刻を表す。時刻指定モジュール13は、ユーザによるカーソル61の移動操作を受け付け、移動操作に応じてカーソル61の位置を移動させる。さらに、データ再現モジュール14によってカウンタ値が更新されると、時刻指定モジュール13は、カウンタ値に対応する位置にカーソル61を移動させる。
【0122】
入力欄62には、カーソル61の位置に対応するカウンタ値が表示される。カウンタ値は、対象期間における制御周期の序数を表す。ユーザは、入力欄62にカウンタ値を入力してもよい。入力欄62にカウンタ値が入力されると、時刻指定モジュール13は、入力されたカウンタ値に対応する位置にカーソル61を移動させる。さらに、データ再現モジュール14によってカウンタ値が更新されると、時刻指定モジュール13は、入力欄62に表示される数値を更新する。
【0123】
入力欄66は、再生速度の入力のために使用される。時刻指定モジュール13は、入力欄66のプルダウンボタンが操作されたことに応じて、複数の再生速度の一覧を表示する。時刻指定モジュール13は、一覧の中からユーザによって選択された再生速度を入力欄66に表示する。なお、図17に示す例では、再生速度は倍率によって表される。そのため、以下では、「再生速度」を「再生倍率」として表記する。
【0124】
再生ボタン63、コマ戻しボタン64およびコマ送りボタン65は、データ再現モジュール14によるデータ再現に関する操作を入力するために利用される。時刻指定モジュール13は、再生ボタン63、コマ戻しボタン64およびコマ送りボタン65のいずれかがクリックされたことに応じて、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値および再生条件をデータ再現モジュール14に出力する。
【0125】
再生ボタン63は、データ再現モジュール14によるデータ再現の開始を指示するために使用される。時刻指定モジュール13は、再生ボタン63がクリックされると、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値と再生条件とをデータ再現モジュール14に出力する。具体的には、時刻指定モジュール13は、カーソル61の位置に対応するカウンタ値を再生開始カウンタ値として設定する。さらに、時刻指定モジュール13は、入力欄66に入力されている再生倍率に従って、再生条件を設定する。
【0126】
コマ戻しボタン64は、時刻を1制御周期だけ戻すために使用される。時刻指定モジュール13は、コマ戻しボタン64がクリックされると、カーソル61の位置に対応するカウンタ値から1だけ引いたカウンタ値を再生開始カウンタ値として設定する。さらに、時刻指定モジュール13は、再生倍率「0」を示す再生条件を設定する。なお、時刻tが対象期間の開始時刻t0である場合、コマ戻しボタン64の操作が無効にされる。
【0127】
コマ送りボタン65は、時刻を1制御周期だけ進めるために使用される。時刻指定モジュール13は、コマ送りボタン65がクリックされると、カーソル61の位置に対応するカウンタ値に1を加えたカウンタ値を再生開始カウンタ値として設定する。さらに、時刻指定モジュール13は、再生倍率「0」を示す再生条件を設定する。なお、時刻tが対象期間の終了時刻Tである場合、コマ送りボタン65の操作が無効にされる。
【0128】
図16に戻って、データ再現モジュール14は、再生開始カウンタ値と再生条件とに基づいて、データを再現する。データ再現モジュール14の時刻制御モジュール15は、再生開始カウンタ値を初期カウンタ値として設定し、その後、規定時間が経過するたびにカウンタ値に規定値(例えば50または100)に再生倍率を乗じた値を加算する。規定時間は、制御周期に規定値を乗じた時間である。再生条件として再生倍率「×1.0」が設定された場合、時刻制御モジュール15は、規定時間が経過するたびに、カウンタ値に規定値を加算する。再生条件として再生倍率「×2.0」が設定された場合、時刻制御モジュール15は、規定時間が経過するたびに、カウンタ値に規定値の2倍の値を加算する。なお、再生条件として再生倍率「0」が設定された場合、時刻制御モジュール15は、カウント値を更新しない。
【0129】
データ要求モジュール16は、カウンタ値が表す指定時刻に応じたクエリを生成する。データ要求モジュール16は、クエリを用いて、時系列データ11から指定時刻における1以上の変数の値を取得する。さらに、データ要求モジュール16は、クエリを用いて、実動画データ12から指定時刻に対応する実画像フレーム12bを取得する。データ要求モジュール16は、取得した1以上の変数の値を波形表示モジュール41およびプログラム表示モジュール42に出力する。データ要求モジュール16は、取得した実画像フレーム12bを動画再生モジュール43に出力する。
【0130】
波形表示モジュール41は、データ再現モジュール14から受けた1以上の変数の値に基づいて、対象期間における変数の値の推移を示すグラフを含むウィンドウのデータを生成し、当該データを表示コントローラ105に出力する。これにより、対象期間における変数の値の推移を示すグラフを含むウィンドウがディスプレイ120に表示される。
【0131】
プログラム表示モジュール42は、データ再現モジュール14から受けた1以上の変数の値に基づいて、対象期間における制御プログラムの実行状況を示すウィンドウのデータを生成し、当該データを表示コントローラ105に出力する。これにより、対象期間における制御プログラムの実行状況を示すウィンドウがディスプレイ120に表示される。
【0132】
動画再生モジュール43は、データ再現モジュール14から受けた実画像フレーム12bに基づいて、対象期間に撮影された実動画が再生されるウィンドウのデータを生成する。動画再生モジュール43は、当該データを表示コントローラ105に出力する。これにより、対象期間に撮影された実動画が再生されるウィンドウがディスプレイ120に表示される。
【0133】
図18は、ディスプレイに表示される画面例を示す図である。図18に示されるように、ディスプレイ120には、操作ウィンドウ60と、変数の値の推移を示すグラフを含むウィンドウ81と、制御プログラムの実行状況を示すウィンドウ82と、動画が再生されるウィンドウ83とが並べて表示される。
【0134】
ユーザは、操作ウィンドウ60を操作することにより、解析処理によって特定された異常時刻t_bとその前後における、変数の値の推移、制御プログラムの実行状況および動画を確認できる。これにより、ユーザは、監視対象300の異常な動作の原因を探索しやすくなる。
【0135】
<変形例>
上記の説明では、情報処理システム100が1つのPC100Aによって構成されるものとした。しかしながら、情報処理システム100は、複数のコンピュータによって構成されてもよい。すなわち、情報処理システム100は、複数のプロセッサを含んでもよい。あるいは、情報処理システム100は、クラウド上の仮想マシン等、汎用的なPC以外のハードウェア環境を含んでもよい。
【0136】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0137】
(構成1)
監視対象(300)の状態を表す1以上の変数の値の時系列データ(11)を用いた情報処理を行なう情報処理システム(100,100A)であって、
前記時系列データ(11)によって示される対象期間の前記1以上の変数の値を用いて、仮想空間(5)において前記監視対象に対応する仮想モデルの前記対象期間の挙動をシミュレートし、前記仮想空間(5)に配置された仮想カメラ(400M)の撮影によって得られる仮想動画(28a)を生成するシミュレータ(20)と、
前記対象期間に前記監視対象(300)を撮影することにより得られる実動画(12a)における移動物体(3)の第1位置と、前記仮想動画(28a)における前記移動物体(3)に対応する仮想オブジェクト(3M)の第2位置との差が基準を超える異常時刻を特定する特定モジュール(30)とを備える、情報処理システム(100,100A)。
【0138】
(構成2)
前記異常時刻の一覧を示すデータを出力する出力モジュール(32)をさらに備える、構成1に記載の情報処理システム(100,100A)。
【0139】
(構成3)
前記監視対象(300)は、固定位置に配置されたマーカー(390)を含み、
前記シミュレータ(20)は、前記実動画(12a)における前記マーカー(390)の位置と、前記仮想動画(28a)における前記マーカー(390)に対応する仮想マーカー(390M)の位置とが一致するように、前記仮想空間(5)における前記仮想カメラ(400M)の位置姿勢を設定する、構成1または2に記載の情報処理システム(100,100A)。
【0140】
(構成4)
監視対象(300)の状態を表す1以上の変数の値の時系列データ(11)を用いた情報処理方法であって、
プロセッサ(101)が、前記時系列データ(11)によって示される対象期間の前記1以上の変数の値を用いて、仮想空間(5)において前記監視対象(300)に対応する仮想モデルの前記対象期間の挙動をシミュレートし、前記仮想空間(5)に配置された仮想カメラ(400M)の撮影によって得られる仮想動画(28a)を生成すること(S4~S8)と、
前記プロセッサ(101)が、前記対象期間に前記監視対象(300)を撮影することにより得られる実動画(12a)における移動物体(3)の第1位置と、前記仮想動画(28a)における前記移動物体(3)に対応する仮想オブジェクト(3M)の第2位置との差が基準を超える異常時刻を特定すること(S9~S13)とを備える、情報処理方法。
【0141】
(構成5)
監視対象(300)の状態を表す1以上の変数の値の時系列データ(11)を用いた情報処理方法をコンピュータに実行させるプログラムであって、
前記情報処理方法は、
前記時系列データ(11)によって示される対象期間の前記1以上の変数の値を用いて、仮想空間(5)において前記監視対象(300)に対応する仮想モデルの前記対象期間の挙動をシミュレートし、前記仮想空間(5)に配置された仮想カメラ(400M)の撮影によって得られる仮想動画(28a)を生成すること(S4~S8)と、
前記対象期間に前記監視対象(300)を撮影することにより得られる実動画(12a)における移動物体(3)の第1位置と、前記仮想動画(28a)における前記移動物体(3)に対応する仮想オブジェクト(3M)の第2位置との差が基準を超える異常時刻を特定すること(S9~S13)とを備える、プログラム。
【0142】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0143】
1 製造システム、3 ワーク、3M 仮想ワーク、5 仮想空間、10 データベース、11 時系列データ、12 実動画データ、12a 実動画、12b 実画像フレーム、13 時刻指定モジュール、14 データ再現モジュール、15 時刻制御モジュール、16 データ要求モジュール、20 シミュレータ、21 動作設定モジュール、21a 対応関係情報、22 初期情報設定モジュール、22a 初期情報、23 キャリブレーションモジュール、24 動作再現モジュール、25 仮想ワーク生成モジュール、26 スクリプト実行モジュール、27 データ管理モジュール、28 仮想動画生成モジュール、28a 仮想動画、28b 仮想画像フレーム、30 特定モジュール、32 出力モジュール、41 波形表示モジュール、42 プログラム表示モジュール、43 動画再生モジュール、50,81,82,83 ウィンドウ、60 操作ウィンドウ、61 カーソル、62,66 入力欄、63 再生ボタン、64 コマ戻しボタン、65 コマ送りボタン、100 情報処理システム、100A PC、101 プロセッサ、102,206 メモリ、103,208 ストレージ、104 入力インターフェイス、105 表示コントローラ、106 通信インターフェイス、107,270 リーダ/ライタ、110 入力装置、120 ディスプレイ、131 開発プログラム、132 ビューワープログラム、133 データ再現プログラム、134 シミュレーションプログラム、200 制御装置、201 電源回路、202 CPU、204 チップセット、207 バッファ領域、211 システムプログラム、213 スケジューラプログラム、214 プログラムデータセット、250 USBコントローラ、252 フィールドネットワークコントローラ、252a,254a コネクタ、254 ネットワークコントローラ、260 タイマ、300,300A 監視対象、300M 仮想モデル、310 搬送システム、312 エンコーダ、313,410 領域、314 場所、320 ロボット、330 視覚センサ、332,400 カメラ、345 物体検知センサ、390 マーカー、390M 仮想マーカー、400M 仮想カメラ、500 記憶媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18