【実施例1】
【0011】
図1は、本実施例の作業履歴詳細化装置の構成例を示すブロック図である。本実施例の作業履歴詳細化装置101は、例えば、プロセッサ(CPU)111、メモリ112、補助記憶装置113及び通信インターフェース114を有する計算機によって構成される。
【0012】
プロセッサ111は、メモリ112に格納されたプログラムを実行する。メモリ112は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ111が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0013】
補助記憶装置113は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、プロセッサ111が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置113から読み出されて、メモリ112にロードされて、プロセッサ111によって実行される。なお、補助記憶装置113に格納されているデータの一部又は全部がメモリ112に格納されていてもよいし、メモリ112に格納されているデータの一部又は全部が補助記憶装置113に格納されていてもよい。
【0014】
なお、本実施形態において、作業履歴詳細化装置101が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。なお、本実施形態では、各データがテーブル構造で表現されている例を示す。
【0015】
作業履歴詳細化装置101は、入力インターフェース115及び出力インターフェース118を有してもよい。入力インターフェース115は、キーボード116やマウス117などが接続され、オペレータからの入力を受けるインターフェースである。出力インターフェース118は、ディスプレイ装置119やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
【0016】
通信インターフェース114は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信インターフェース114は、例えば、USB等のシリアルインターフェースを含む。
【0017】
プロセッサ111が実行するプログラムは、コンピュータ読み取り可能な非一時的記憶媒体であるリムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して作業履歴詳細化装置101に提供され、非一時的記憶媒体である不揮発性の補助記憶装置113に格納される。このため、作業履歴詳細化装置101は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0018】
作業履歴詳細化装置101は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0019】
メモリ112は、例えば、それぞれプログラムである、作業履歴データ取得部104、位置履歴データ取得部105、及び作業履歴詳細化部106を格納する。例えば、プロセッサ111は、メモリ112にロードされたプログラムである作業履歴データ取得部104に従って動作することで、匿名化対象データ取込部(手段)として機能し、メモリ112にロードされたプログラムである位置履歴データ取得部105に従って動作することで、一般化階層作成部(手段)として機能する。メモリ112に格納されている他の部についても同様である。
【0020】
作業履歴データ取得部104は、作業履歴データ102を取得し、作業履歴詳細化部106に出力する。位置履歴データ取得部105は、位置履歴データ103を取得し、作業履歴詳細化部106に出力する。作業履歴詳細化部106は、作業履歴データ取得部104から作業履歴データ102を受け取り、位置履歴データ取得部105から位置履歴データ103を受け取り、受け取ったデータに基づいて詳細作業履歴データ107を生成して出力する。
【0021】
なお、
図1の例では、作業履歴データ102、位置履歴データ103、及び詳細作業履歴データ107が、作業履歴詳細化装置101の外部のデータベース等に格納されている例を示しているが、これらのデータは、補助記憶装置113又はメモリ112に格納されてもよい。
【0022】
図2は、作業履歴データ102の一例である。作業履歴データ102は、例えば、作業履歴詳細化装置101による処理が実行される前に予め用意されている。作業履歴データ102は、例えば、作業を行った作業者を識別する作業者IDを格納する作業者ID欄211と、作業を識別する作業IDを格納する作業ID欄212と、作業者が作業の開始を指示された時刻を示す指示受け時刻を格納する指示受け時刻欄213と、作業者が対応する作業を終了した時刻を示す作業完了時刻を格納する作業完了時刻欄214と、を含む。なお、前の作業が終了した時点で次の作業指示が作業者に提示され、かつ作業履歴データ102が作業者ごと、かつ作業の実行順にソートされている場合、1行前の同一作業者の作業完了時刻を指示受け時刻とみなしてもよい。
【0023】
図3は、位置履歴データ103の一例である。位置履歴データ103は、例えば、作業履歴詳細化装置101による処理が実行される前に予め用意されている。位置履歴データ103は、例えば、作業者IDを格納する作業者ID欄311と、位置が測位された時刻情報を格納する時刻欄312と、時刻312欄が示す時刻における位置情報を格納する位置欄313と、時刻312欄が示す時刻における作業者の移動速度情報を格納する速度欄314と、時刻312欄が示す時刻における作業者の動作状態を示す動作フラグを格納する動作フラグ欄315と、を含む。
【0024】
なお、位置欄313が示す位置情報は、例えば、緯度経度の組み合わせ、又は作業フロア内のある地点を基準とした2次元以上の座標値であらわされる。また、動作フラグ欄315が示す動作フラグは、対応する時刻において対応する作業者が動いていたか停止していたかを示す。本実施形態では、対応する時刻において対応する作業者が動いていた場合、動作フラグ欄315に動作フラグ「move」が格納され、対応する時刻において対応する作業者が停止していた場合、動作フラグ欄315に動作フラグ「stop」が格納される。動作フラグは、例えば、加速度センサ等の情報に基づいて生成されたものである。
【0025】
図4は、詳細作業履歴データ107の一例である。詳細作業履歴データ107は、作業履歴詳細化装置101によって生成されるデータである。詳細作業履歴データ107は、例えば、作業者ID欄411、作業ID欄412、指示受け時刻欄413、及び作業完了時刻欄416を含む。作業者ID欄411、作業ID欄412、指示受け時刻欄413、及び作業完了時刻欄416は、それぞれ作業履歴データ102の作業者ID欄211、作業ID欄212、指示受け時刻欄213、及び作業完了時刻欄214と同様の情報を格納する。
【0026】
また、詳細作業履歴データ107は、例えば、作業者が作業の指示を受けてから実作業を行う場所へ移動を開始した時刻を示す移動開始時刻を格納する移動開始時刻欄414と、作業者が実作業を行う場所に到着し移動を終えた時刻を示す移動終了時刻を格納する移動終了時刻欄415と、をさらに含む。
【0027】
図5は、詳細作業履歴データ生成処理の一例を示すフローチャートである。作業履歴データ取得部104は、作業履歴データ102から詳細作業履歴データ107に含める作業者及び作業の組み合わせを選択し、選択した組み合わせに対応するレコードを抽出し、作業履歴詳細化部106に送信する(ステップ501)。作業履歴データ取得部104は、ステップ501において、所定の作業者の所定の作業を選択してもよいし、所定の作業者の全作業を選択してもよいし、全作業者の所定の作業を選択してもよいし、全作業者の全作業を選択してもよい。また、作業履歴詳細化部106は、例えば、入力装置又は外部の端末を介して、管理者等から、作業者及び作業の組み合わせの指定を受け付けてもよい。
【0028】
作業履歴詳細化部106は、ステップ501で抽出されたレコードから作業履歴詳細化処理が未実行のレコードを1つ選択する(ステップ502)。ステップ502で選択したレコードに対して、ステップ503〜506における作業履歴詳細化処理が実行される。
【0029】
作業履歴詳細化部106は、ステップ502で選択しレコードから、作業者ID、指示受け時刻、及び作業完了時刻を取得し、位置履歴データ取得部105に送信する(ステップ503)。位置履歴データ取得部105は、作業者ID欄311の値がステップ503で取得された作業者IDと同じであり、かつ時刻欄312の値がステップ503で取得された指示受け時刻と作業完了時刻との間であるレコードを、位置履歴データ103から抽出し、作業履歴詳細化部106に送信する(ステップ504)。
【0030】
作業履歴詳細化部106は、ステップ504で取得された位置履歴データ103のレコードから、移動開始時刻と移動終了時刻の算出を行う(ステップ505)。作業履歴詳細化部106は、例えば、動作フラグ、位置情報、及び速度情報の少なくとも1つを用いて、移動開始時刻と移動終了時刻を算出する。移動開始時刻と移動終了時刻の算出処理の詳細については後述する。
【0031】
作業履歴詳細化部106は、ステップ502で選択したレコードにステップ505で算出した移動開始時刻と移動終了時刻を付加したレコード、を詳細作業履歴データ107に追加する(ステップ506)。
【0032】
作業履歴詳細化部106は、ステップ501で抽出した全てのレコードに対して、作業履歴詳細化処理が実行されたか否かを判定する(ステップ507)。作業履歴詳細化部106は、ステップ501で抽出したレコードのうち、作業履歴詳細化処理が実行されていないレコードが存在すると判定した場合(ステップ507:no)、ステップ502に遷移する。作業履歴詳細化部106は、ステップ501で抽出した全てのレコードに対して、作業履歴詳細化処理が実行されたと判定した場合(ステップ507:yes)、詳細作業履歴データ生成処理を終了する。
【0033】
図6は、ステップ505における、移動開始時刻と移動終了時刻の算出処理の一例を示すフローチャートである。
図6の例では、作業履歴詳細化部106は動作フラグを用いて作業者の移動及び停止を判定する。
【0034】
作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も早い時刻を、時刻変数tの値に設定する(ステップ801)。作業履歴詳細化部106は、時刻tに対応する位置履歴データ103のレコードに含まれる動作フラグの値を、動作フラグ変数pの値に設定する(ステップ802)。なお、最も早い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。
【0035】
続いて、作業履歴詳細化部106は、動作フラグ変数pの値が「stop」であるか否かを判定する(ステップ803)。作業履歴詳細化部106は、動作フラグ変数pの値が「stop」であると判定した場合(ステップ803:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に早い時刻に更新し(ステップ804)、ステップ802へ戻る。作業履歴詳細化部106は、動作フラグ変数pの値が「stop」でない、即ち「move」であると判定した場合(ステップ803:no)、時刻変数tの値を移動開始時刻として決定し(ステップ805)、ステップ806へ進む。
【0036】
続いて、作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も遅い時刻を、時刻変数tの値に設定する(ステップ806)。作業履歴詳細化部106は、時刻tに対応する位置履歴データ103のレコードに含まれる動作フラグの値を、動作フラグ変数pの値に設定する(ステップ807)。なお、最も遅い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。
【0037】
続いて、作業履歴詳細化部106は、動作フラグ変数pの値が「stop」であるか否かを判定する(ステップ808)。作業履歴詳細化部106は、動作フラグ変数pの値が「stop」であると判定した場合(ステップ808:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に遅い時刻に更新し(ステップ809)、ステップ807へ戻る。作業履歴詳細化部106は、動作フラグ変数pの値が「stop」でない、即ち「move」であると判定した場合(ステップ808:no)、時刻変数tの値を移動終了時刻として決定し(ステップ810)、移動開始時刻と移動終了時刻の算出処理を終了する。
【0038】
なお、決定した移動開始時刻と、決定した移動終了時刻と、の差が所定の閾値以下である場合、作業履歴詳細化部106は、移動開始時刻及び移動終了時刻をnull値に決定してもよい。このことは後述する他の移動開始時刻算出処理及び移動終了時刻の算出処理についても同様である。
【0039】
また、ステップ504で抽出された位置履歴データの全てのレコードの動作フラグが「stop」である場合、作業履歴詳細化部106は、例えば、移動開始時刻及び移動終了時刻をnull値に決定する。
【0040】
図7は、ステップ505における、移動開始時刻と移動終了時刻の算出処理の一例を示すフローチャートである。
図7の例では、作業履歴詳細化部106は位置情報を用いて作業者の移動及び停止を判定する。
【0041】
作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も早い時刻を、時刻変数tの値に設定し、時刻変数tに対応する位置履歴データ103のレコードに含まれる位置をl0とする(ステップ901)。なお、最も早い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。作業履歴詳細化部106は、時刻変数tに対応する位置履歴データ103のレコードに含まれる位置の値を、位置変数lの値に設定する(ステップ902)。
【0042】
続いて、作業履歴詳細化部106は、lがl0の近傍であるか否かを判定する(ステップ903)。作業履歴詳細化部106は、ステップ903において、例えば、lとl0のユークリッド距離が閾値以下であるか否かを判定してもよいし、lとl0の測地線距離が閾値以下であるか否かを判定してもよい。
【0043】
作業履歴詳細化部106は、lがl0の近傍であると判定した場合(ステップ903:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に早い時刻に更新し(ステップ904)、ステップ902へ戻る。作業履歴詳細化部106は、lがl0の近傍でないと判定した場合(ステップ903:no)、時刻変数tの値を移動開始時刻として決定し(ステップ905)、ステップ906へ進む。
【0044】
作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も遅い時刻を、時刻変数tの値に設定し、時刻変数tに対応する位置履歴データ103のレコードに含まれる位置をl1とする(ステップ906)。なお、最も早い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。作業履歴詳細化部106は、時刻変数tに対応する位置履歴データ103のレコードに含まれる位置の値を、位置変数lの値に設定する(ステップ907)。
【0045】
続いて、作業履歴詳細化部106は、lがl1の近傍であるか否かを判定する(ステップ908)。ステップ908における判定方法は、例えば、ステップ903における判定方法と同様である。
【0046】
作業履歴詳細化部106は、lがl1の近傍であると判定した場合(ステップ908:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に遅い時刻に更新し(ステップ909)、ステップ907へ戻る。作業履歴詳細化部106は、lがl0の近傍でないと判定した場合(ステップ908:no)、時刻変数tの値を移動終了時刻として決定し(ステップ910)、移動開始時刻と移動終了時刻の算出処理を終了する。
【0047】
なお、ステップ504で抽出された位置履歴データの全てのレコードについて、lがl0の近傍である場合、作業履歴詳細化部106は、例えば、移動開始時刻をnull値に決定する。同様に、ステップ504で抽出された位置履歴データの全てのレコードについて、lがl1の近傍である場合、作業履歴詳細化部106は、例えば、移動終了時刻をnull値に決定する。
【0048】
図8は、ステップ505における、移動開始時刻と移動終了時刻の算出処理の一例を示すフローチャートである。
図8の例では、作業履歴詳細化部106は速度を用いて作業者の移動及び停止を判定する。
【0049】
作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も早い時刻を、時刻変数tの値に設定する(ステップ1001)。作業履歴詳細化部106は、時刻tに対応する位置履歴データ103のレコードに含まれる速度の値を、速度変数vの値に設定する(ステップ1002)。なお、最も早い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。
【0050】
続いて、作業履歴詳細化部106は、速度変数vの値が所定の閾値以下であるか否かを判定する(ステップ1003)。作業履歴詳細化部106は、速度変数vの値が所定の閾値以下であると判定した場合(ステップ1003:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に早い時刻に更新し(ステップ1004)、ステップ1002へ戻る。作業履歴詳細化部106は、速度変数vの値が所定の閾値を超えていると判定した場合(ステップ1003:no)、時刻変数tの値を移動開始時刻として決定し(ステップ1005)、ステップ1006へ進む。
【0051】
続いて、作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も遅い時刻を、時刻変数tの値に設定する(ステップ1006)。作業履歴詳細化部106は、時刻tに対応する位置履歴データ103のレコードに含まれる速度の値を、動作フラグ変数pの値に設定する(ステップ1007)。なお、最も遅い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。
【0052】
続いて、作業履歴詳細化部106は、速度変数vの値が所定の閾値以下であるか否かを判定する(ステップ1008)。作業履歴詳細化部106は、速度変数vの値が所定の閾値以下であると判定した場合(ステップ1008:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に遅い時刻に更新し(ステップ1009)、ステップ1007へ戻る。作業履歴詳細化部106は、速度変数vの値が所定の閾値を超えていると判定した場合(ステップ1008:no)、時刻変数tの値を移動終了時刻として決定し(ステップ1010)、移動開始時刻と移動終了時刻の算出処理を終了する。
【0053】
なお、ステップ504で抽出された位置履歴データの全てのレコードの速度が所定の閾値以下である場合、作業履歴詳細化部106は、例えば、移動開始時刻及び移動終了時刻をnull値に決定する。
【0054】
作業履歴詳細化装置101は、上述した処理により、作業における移動開始時刻及び移動終了時刻を含む詳細作業履歴データ107を生成することができる。例えば、作業履歴詳細化装置101の管理者は、詳細作業履歴データ107を参照することで、作業者は作業を行う際に、実作業に時間がかかっているのか、作業場所への移動に時間がかかっているのか等を調べたり比較したりすることができる。
【実施例2】
【0055】
本実施例の作業履歴詳細化装置101は、空間データをさらに用いて、作業履歴詳細化処理を実行する本実施例における作業は、作業者が、直前の作業における実作業を行っていた第1作業エリアから作業が実施されない通路等の非作業エリアに移動すること、当該非作業エリアから当該作業における実作業を行うための第2作業エリアに移動すること、及び第2作業エリアで実作業を実施することを含む。以下、実施例1との相違点について説明する。
【0056】
図9は、本実施例の作業履歴詳細化装置101の構成例を示すブロック図である。本実施例のメモリは、プログラムである空間データ取得部1102をさらに格納する。空間データ取得部1102は、空間データ1101から空間データを取得し、作業履歴詳細化部106に出力する。作業履歴詳細化部106は、空間データ1101をさらに用いて作業履歴の詳細化を行う。なお、
図9の例では、空間データ1101が、作業履歴詳細化装置101の外部のデータベース等に格納されている例を示しているが、空間データ1101は、補助記憶装置113又はメモリ112に格納されてもよい。
【0057】
図10は空間データ1101の一例である。空間データ1101は、たとえば、空間を識別する空間IDを格納する空間ID欄1211、空間種類欄1212、及び境界座標欄1213を含む。空間種類欄1212に格納される空間種類は、例えば、当該空間は実作業が実施される作業エリアであるか、実作業が実施されない空間、具体的には移動のための空間(通路等)であるか、等を示す。本実施例では、空間種類は、「作業エリア」と、作業エリア以外の空間である「Not作業エリア」と、を含む。
【0058】
境界座標欄1213に格納される境界座標は、例えば、緯度及び経度の組や、作業を行う建屋内に定義した座標系の座標値で表される。
図10では、境界が矩形で定義され、矩形の4頂点の座標が境界座標欄1213に格納されている例を示しているが、空間は他の図形で定義されていてもよい。例えば、空間が円で定義されてもよく、この場合、境界座標欄1213には、円の中心座標と半径が格納される。
【0059】
図11は、本実施例の詳細作業履歴データ107の一例。本実施例の詳細作業履歴データ107は、作業者が作業エリアから退出した時刻を格納する作業エリアout時刻欄1311と、作業者が作業エリアに入場した時刻を格納する作業エリアin時刻欄1312と、をさらに含む。なお、作業者が作業を行う際に作業エリアへの入場及び退出を伴わなかった場合、作業エリアout時刻欄1311及び作業エリアin時刻欄1312にはnull値が格納される。
【0060】
図12は、詳細作業履歴データ生成処理の一例を示すフローチャートである。実施例1における詳細作業履歴データ生成処理(
図5)との相違点を説明する。ステップ502で選択されたレコードに対して、ステップ503〜505、及びステップ1401〜1403における作業履歴詳細化処理が実行される。
【0061】
例えばステップ505の後に、空間データ取得部1102は、空間データ1101の全てのレコードを抽出し、作業履歴詳細化部106に送信する(ステップ1401)。続いて、作業履歴詳細化部106は、ステップ504で取得された位置履歴データ103のレコードと、ステップ1401で抽出された空間データ1101のレコードと、から作業エリアout時刻と作業エリアin時刻の算出を行う(ステップ1402)。作業エリアout時刻と作業エリアin時刻の算出処理の詳細については後述する。
【0062】
続いて、作業履歴詳細化部106は、ステップ502で選択したレコードに、ステップ505で算出した移動開始時刻及び移動終了時刻と、ステップ1402で算出した作業エリアout時刻及び作業エリアin時刻と、を付加したレコード、を詳細作業履歴データ107に追加し(ステップ1403)、ステップ507に遷移する。
【0063】
図13は、ステップ1402における作業エリアout時刻と作業エリアin時刻の算出処理の一例を示すフローチャートである。作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も早い時刻を、時刻変数tの値に設定する(ステップ1501)。作業履歴詳細化部106は、時刻tに対応する位置履歴データ103のレコードに含まれる位置の値を、位置変数lの値に設定する(ステップ1502)。なお、最も早い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。
【0064】
続いて、作業履歴詳細化部106は、受信した空間データ1101のレコードを参照して、位置変数の値lを内包する空間が存在し、かつ当該空間の種類が作業エリアであることを示す条件が満たされるか否かを判定する(ステップ1503)。作業履歴詳細化部106は、当該条件が満たされると判定した場合(ステップ1503:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に早い時刻に更新し(ステップ1504)、ステップ1502へ戻る。なお、ステップ1504において、時刻変数tより遅い時刻レコードが存在しない場合、作業履歴詳細化部106は、例えば、作業エリアout時刻及び作業エリアin時刻をnull値に決定し、作業エリアout時刻と作業エリアin時刻の算出処理を終了する。
【0065】
作業履歴詳細化部106は、ステップ1503の条件が満たされないと判定した場合(ステップ1503:no)、時刻変数tの値を作業エリアout時刻として決定し(ステップ1505)、ステップ1506へ進む。
【0066】
続いて、作業履歴詳細化部106は、ステップ504で抽出された位置履歴データ103のレコードから最も遅い時刻を、時刻変数tの値に設定する(ステップ1506)。作業履歴詳細化部106は、時刻tに対応する位置履歴データ103のレコードに含まれる位置の値を、位置変数lの値に設定する(ステップ1507)。なお、最も遅い時刻に対応する位置履歴データの複数のレコードが存在する場合、作業履歴詳細化部106は、例えば、当該複数のレコードから1つのレコードをランダムに選択する。
【0067】
続いて、作業履歴詳細化部106は、受信した空間データ1101のレコードを参照して、位置変数の値lを内包する空間が存在し、かつ当該空間の種類が作業エリアであることを示す条件が満たされるか否かを判定する(ステップ1508)。作業履歴詳細化部106は、当該条件が満たされると判定した場合(ステップ1508:yes)、時刻変数tの値を、ステップ504で抽出された位置履歴データ103のレコードの時刻のうち、当該時刻変数tの次に遅い時刻に更新し(ステップ1509)、ステップ1507へ戻る。作業履歴詳細化部106は、当該条件が満たされないと判定した場合(ステップ1508:no)、時刻変数tの値を作業エリアin時刻として決定し(ステップ1510)、作業エリアout時刻と作業エリアin時刻の算出処理を終了する。
【0068】
なお、決定した作業エリアout時刻と、決定した作業エリアin時刻と、の差が所定の閾値以下である場合、作業履歴詳細化部106は、作業エリアout時刻及び作業エリアin時刻をnull値に決定してもよい。
【0069】
本実施例の作業履歴詳細化装置101は、上述した処理により、作業における作業エリアout時刻及び作業エリアin時刻を含む詳細作業履歴データ107を生成することができる。ひいては、作業履歴詳細化装置101の管理者は、作業エリアin時刻を参照することで、例えば、ある作業者のある作業の作業時間が長い場合に、当該作業者が目的の作業エリア周辺に来た際に作業エリアを見つけられないことが、作業時間が長くなっている要因なのか、当該作業者の移動速度が低いことが、作業時間が長くなっている要因なのかを区別することができる。
【0070】
また、作業履歴詳細化装置101の管理者は、作業エリアout時刻を参照することで、例えば、ある作業者のある作業の作業時間が長い場合に、当該作業者が移動の際に目的の作業エリアの方向をすばやく判断できていないことが、作業時間が長くなっている要因なのか、当該作業者の移動速度が低いことが、作業時間が長くなっている要因なのかを区別することができる。
【0071】
図14は、詳細作業履歴表示画面の一例である。詳細作業履歴表示画面1600は、例えば、作業情報表示領域1601と、移動情報表示領域1602と、を含む。なお、詳細作業履歴表示画面1600は、作業履歴詳細化部106が、例えば、作業履歴詳細化装置101の管理者の指示に従って、又は詳細作業履歴データ107の作成時に生成する。
【0072】
図14の詳細作業履歴表示画面1600は、詳細作業履歴データ107の1つのレコードが示す履歴を可視化した例を示す。当該1つのレコードは、例えば、作業履歴詳細化装置101の管理者が、作業者IDと作業IDとを指定することによって、指定される。なお、詳細作業履歴表示画面1600は、詳細作業履歴データ107の複数のレコードが示す履歴をまとめて表示してもよい。
【0073】
作業情報表示領域1601は、例えば、指定されたレコードの作業者ID、作業ID、指示受け時刻、及び作業完了時刻を表示する。移動情報表示領域1602は、指定されたレコードにおける作業者の移動情報を表示する。
【0074】
具体的には、例えば、移動情報表示領域1602は、空間データ1101が示す作業エリア及びNot作業エリアを表示する。また、移動情報表示領域1602は、例えば、位置履歴データ103が示す当該指示受け時刻と当該作業完了時刻との間における当該作業者の移動経路を表示する。また、移動情報表示領域1602は、例えば、詳細作業履歴データ107が示す、当該レコードの移動開始時刻、作業エリアin時刻、移動終了時刻、及び作業エリアout時刻を、位置履歴と対応付けて表示する。
【0075】
作業履歴詳細化装置101の管理者は、詳細作業履歴表示画面1600を参照することにより、作業者の移動経路と、移動開始時刻、作業エリアin時刻、移動終了時刻、及び作業エリアout時刻と、を関連付けて把握することができる。
【0076】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0077】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0078】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。