<第1実施例>
図1を参照して、実施例の安全管理システム100は、子どもが自由に移動する家や保育園などの空間(環境)で利用される。空間内には、テレビやソファおよびテーブルセットなどの家具が置かれており、壁には窓が設置さている。そして、子どもは空間の中を自由に移動することが出来る。親や保育士などの保育者は空間の中または外に居て、子どもを保育したり、家事などを行ったりしている。この空間には、警報ロボット10が配置されおり、空間内の天井には複数の距離画像センサ12(12a,12b,…)が設けられている。
警報ロボット10は、空間内を自律移動することが可能であり、子どもが危険な状態だと判定されると、音声や画像を利用して危険を警報する。複数の距離画像センサ12は、子どもの位置情報を検出することを目的として、空間の天井に設けられている。
そして、安全管理システム100は、各距離画像センサ12を利用して、子どもの位置を取得し、子どもが危険な状態であるかを判定する。このとき、子どもが危険な状態であると判定されると、警報ロボット10は危険を警報する。
なお、実施例の空間は子どもが居る家であるが、これに限らず幼稚園、学童保育所などでも安全管理システム100は利用可能である。
また、図1では簡単のため、子どもは1人しか示していないがさらに多くの子どもが空間内に居てもよい。また、警報ロボット10も1台しか示していないが、空間内には2台以上の警報ロボット10が配置されてもよい。また、距離画像センサ12a,12b,…を区別する必要がない場合、単に「距離画像センサ12」と言う。
図2を参照して、安全管理システム100の中央制御装置14には、距離画像センサ12が接続される。また、中央制御装置14は、ネットワークを介して警報ロボット10と無線通信を行う。中央制御装置14は、第1時間(たとえば、0.05秒)毎に、距離画像センサ12が出力するセンサ情報を取得する。そして、中央制御装置14は、取得した各センサの情報から、子どもの位置情報などを含む位置データをテーブルに記憶する。
図3(A)は警報ロボット10の正面を示し、図3(B)は警報ロボット10の側面を示し、図3(C)は警報ロボット10の上面を示す。図3(A)−図3(C)を参照して、警報ロボット10は本体40を含み、本体40の下面には警報ロボット10を自律移動させる2つの車輪42および従輪44が設けられる。2つの車輪42は車輪モータ80(図4参照)によってそれぞれ独立に駆動され、本体40すなわち警報ロボット10を前後左右の任意方向に動かすことができる。また、従輪44は車輪42を補助する補助輪である。したがって、警報ロボット10は、配置された空間内を自律制御によって移動可能である。
本体40の正面にはディスプレイ46が設けられる。ディスプレイ46は、上述した危険を警報するための画像などを表示するためのものである。なお、ディスプレイ46は、たとえば液晶や有機ELなどで構成され、表示装置または表示手段とも呼ばれることがある。
本体40の中央上部(人の首に相当する位置)には連結部48が設けられ、さらにその上には頭部50が設けられる。頭部50には、カメラ52およびスピーカ54が設けられる。カメラ52は警報ロボット10に接近した子どもの顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、スピーカ54は危険を警報するための音声を出力するために利用される。なお、上述のカメラ52およびスピーカ54の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。また、この実施例の警報ロボット10は、車輪42の独立2軸駆動の2自由度を有する。
図4は警報ロボット10の電気的な構成を示すブロック図である。図4を参照して、警報ロボット10はプロセッサ70を含む。プロセッサ70は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス72を介して、メモリ74、センサ入力ボード76、モータ制御ボード78、音声出力ボード82、画像出力ボード84および通信LANボード86に接続される。
メモリ74はROMおよびRAMを含む。ROMには、警報ロボット10の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力(センサ情報)を検知するための検知プログラムや、外部コンピュータ(中央制御装置14)との間で必要なデータやコマンドを送受信するための通信プログラムなどが記憶される。また、RAMは、プロセッサ70のワークメモリやバッファメモリとして用いられる。
センサ入力ボード76は、たとえばDSPで構成され、センサからの信号を取り込んでプロセッサ70に与える。すなわち、カメラ52からの映像信号が、必要に応じてセンサ入力ボード76で所定の処理を施してからプロセッサ70に入力される。
モータ制御ボード78もまたDSPで構成され、車輪モータ80の駆動を制御する。すなわち、モータ制御ボード78は、プロセッサ70からの制御データを受け、車輪42を駆動する2つのモータ(図4では、まとめて「車輪モータ80」と示す)の回転角度を制御する。
音声出力ボード82もまたDSPで構成され、プロセッサ70から与えられる音声合成データに従った音声または声がスピーカ54から出力される。
画像出力ボード84は、表示ドライバを含み、図3に示すディスプレイ46が接続される。したがって、ディスプレイ46はプロセッサ70から出力される映像または画像データに従って映像または画像を表示する。表示ドライバは表示する画像データを一時的に記憶するビデオメモリを含んでおり、プロセッサ70から出力されたデータはこのビデオメモリに記憶される。そして、表示ドライバは、ビデオメモリの内容に従って、ディスプレイ46に画像を表示する。つまり、画像出力ボード84の表示ドライバは、プロセッサ70の指示の下、当該画像出力ボード84に接続されたディスプレイ46の表示を制御する。
通信LANボード86もまたDSPで構成され、プロセッサ70から与えられた送信データを無線通信装置88に与え、無線通信装置88は送信データを、ネットワークを介して外部コンピュータ(中央制御装置14)に送信する。また、通信LANボード86は、無線通信装置88を介してデータを受信し、受信したデータをプロセッサ70に与える。たとえば、送信データとしては、カメラ52によって撮影された画像データなどである。
なお、他の実施例では、警報ロボット10の周囲の物体(ユーザや障害物など)との距離を測定するために、赤外線距離センサ、LRFや、超音波距離センサおよびミリ波レーダなどの距離センサが本体40に設けられてもよい。
図5は距離画像センサ12の電気的な構成を示すブロック図である。図5を参照して、距離画像センサ12は制御IC110などを含む。制御IC110には、A/D変換器112、カメラ116、深度センサ118、深度カメラ120およびI/O122などが接続される。
制御IC110は、キャッシュメモリなどを有し、距離画像センサ12の動作を制御する。たとえば、制御IC110は、中央制御装置14からの命令に従って動作し、検出した結果を中央制御装置14に送信する。
A/D変換器112にはマイク114が接続され、マイク114からの音声信号はA/D変換器112でディジタル音声信号に変換され、制御IC110に入力される。また、マイク114によって集音された音は、空間内の雑音などの音量を計測するために利用されることもある。
カメラ116は、距離画像センサ12が設置された空間のRGB情報、つまりカラー画像を撮影するためのカメラである。また、カメラ116は、後述する深度カメラ120が撮影している空間と略同じ空間を撮影することが可能なように、距離画像センサ12に設けられている。
深度センサ118は、たとえば赤外線プロジェクタであり、深度カメラ120は、たとえば赤外線カメラである。深度センサ118は、たとえば赤外線によるレーザ光を距離画像センサ12の正面に照射する。空間には照射されたレーザ光によって特殊なパターンが描画され、深度カメラ120は描画されたパターンを撮影する。そして、撮影された画像は制御IC110に入力され、制御IC110はその画像を解析することで、レーザ光が照射された空間の奥行(depth)情報を計測する。
I/O122は、入力/出力の制御が可能なディジタルポートであり、出力ポートからは音声信号、RGB情報および奥行情報が出力され、中央制御装置14に与えられる。一方、中央制御装置14からは制御信号が出力され、入力ポートに与えられる。
なお、距離画像センサ12は、RGB情報および奥行情報を出力することからRGB−Dセンサと呼ばれることもある。
また、実施例の距離画像センサ12には、Microsoft(登録商標)社製のKinect(登録商標)センサと呼ばれる製品が採用されている。ただし、他の実施例では、ASUS(登録商標)社製のXtion、パナソニック(登録商標)社製のD−IMager(登録商標)などが距離画像センサ12として採用されてもよい。
図6は中央制御装置14の電気的な構成を示すブロック図である。図6を参照して、中央制御装置14は、距離画像センサ12およびプロセッサ140などを含む。プロセッサ140は、マイクロコンピュータ或いはCPUと呼ばれることもある。プロセッサ140には、複数の距離画像センサ12、メモリ142、出力装置144、入力装置146および通信LANボード148などが接続される。
距離画像センサ12は、上述したように奥行情報などを出力する。この奥行情報には、空間に居る子ども(人)の形状および人までの距離が含まれている。たとえば、人が天井に設けられた距離画像センサ12によってセンシングされると、人を上から見た状態の頭部および両肩の形状と、頭部および両肩までの距離が奥行情報として得られる。
また、空間には35個の距離画像センサ12が所定の位置(既知)に設置されており、プロセッサ140は、各々から奥行情報を取得して、空間(ワールド座標系)における人の位置(たとえば、重心など特徴点の位置座標(X,Y,Z))および向き(θ)を計算することが出来る。
また、距離画像センサ12はマイク114を有するため、中央制御装置14では、音情報が入力される距離画像センサ12の位置から、音の発生源を推定することも出来る。
なお、他の実施例では、距離画像センサ12ではなく、2次元または3次元のLRFを利用して、人の位置および姿勢が検出されてもよい。
プロセッサ140は中央制御装置14の動作を制御し、日時情報を出力するRTCを含む。メモリ142は、記憶手段とも呼ばれ、ROM,HDDおよびRAMを含む。ROMおよびHDDには、中央制御装置14の動作を制御するための制御プログラムなどが予め記憶される。また、RAMは、プロセッサ140のワークメモリやバッファメモリとして用いられる。
出力装置144は、たとえばディスプレイなどであり、入力装置146は、たとえばマウスやキーボードである。そして、保育者や、空間の管理人(たとえば、園長)は、中央制御装置14の状態を、出力装置144および入力装置146を利用して確認および利用することが出来る。
通信LANボード148は、たとえばDSPで構成され、プロセッサ140から与えられた送信データを無線通信装置150に与え、無線通信装置150は送信データを、ネットワークを介して警報ロボット10に送信する。また、通信LANボード148は、無線通信装置150を介してデータを受信し、受信したデータをプロセッサ140に与える。
図7は空間の基本地図の一例を示す図解図である。この地図は、図1に示す空間と対応しており、窓、テレビ(テレビ台を含む)、ソファおよびテーブルセットなどの設備が配置されている位置を示している。また、窓の外、つまり空間の外側にはベランダがある。そして、この情報は、基本地図データ336として中央制御装置14のメモリ142に記憶される。
図8は危険度地図の一例を示す図解図である。危険度地図は、空間に設定される危険領域DAを示す地図である。危険領域DAは保育者などによって予め設定される。たとえば、図8に示す危険度地図では、子どもが落下する可能性があるテーブルセットにおける椅子の周辺およびソファの周辺と、子どもが空間の外に出てしまう可能性がある窓の周辺に危険領域DAが設定される。また、危険領域DAには、その領域の危険な度合いを示す危険度が設定され、その危険度は色の濃度によって示される。実施例では、色の濃度が高いほど危険度が高く、色の濃度が薄くなるにつれて危険度が下がる。たとえば、図8に示す危険度地図では、落下する可能性があり、その高さが最も高い椅子の周辺に設定された危険領域DA1に対して最も高い危険度が設定されている。次に、椅子よりも低いソファの周辺に設定された危険領域DA2には、危険領域DA1よりも低い危険度が設定されている。そして、落下の可能性はないが空間の外に出てしまう可能性が高い窓の周辺に設定された危険領域DA3a、危険領域DA3bには、危険領域DA2の危険度よりも低い危険度が設定されている。つまり、椅子の周辺に設定される危険領域DA1の危険度が最も高く、次にソファの周辺に設定されている危険領域DA2の危険度が高い。そして、空間の中では、窓の周辺に設定される危険領域DA3a、危険領域DA3bの危険度が最も低い。
ここで、実施例では、子どもの位置の履歴から、子どもの位置が危険領域DA内であるか、または危険領域DAに向かっているかによって危険な状態かを判定する。そして、子どもが危険領域DA内に居るか、または危険領域DAに向かっている場合は、子どもが危険な状態であると判定され、警報ロボット10によって危険が警報される。
図9を参照して、子どもの位置の履歴から子どもの移動軌跡(実線)が求められ、子どもの速度とその移動方向を示すベクトルとが算出される。そして、算出された速度とベクトルとに基づいて子どもの行動が予測され、予測移動軌跡(点線)が求められる。このような予測移動軌跡、つまり予測結果が得られると、所定時間後の子どもが危険な状態であるかが判定される。
実施例では、子どもが危険な状態であるかを判定するために、子ども危険度を算出する。そして、算出された子ども危険度が閾値よりも大きい場合、子どもが危険な状態であると判定される。子ども危険度とは、子どもがどの程度危険な状態であるかを数値化したものである。ここでは、子どもの位置と対応する危険度および留まった時間を所定の計算式に代入することで、子ども危険度が算出される。ここで、所定の数式とは、たとえば危険度と留まった時間との積を求めるものである。また、留まった時間は子どもの位置の履歴から算出される。なお、留まった時間は、危険領域DAに入っていない状態では最小値(たとえば、「1」)とされる。また、危険領域DAの中に入るとの行動が予測されている場合も、最小値とされる。
たとえば、所定時間後の子どもが危険領域DA内に居る場合、その危険領域DAに設定されている危険度が取得されるとともに、その危険領域DAに子どもが留まっている時間が求められる。そして、取得された危険度と留まっている時間とが所定の数式に代入されると、子ども危険度が算出される。また、子どもが危険領域DAに入っておらず、かつ予測された行動でも危険領域DAに入っていなければ、子ども危険度は「0」と算出される。また、子どもが危険領域DAに入っていないが、予測された行動で危険領域DAに入っている場合は、その危険領域DAに設定されている危険度がそのまま子ども危険度となる。
そして、図9に示す予測結果の場合、所定時間後の子どもの位置が危険領域DA内であり、子ども危険度が閾値よりも大きいため、子どもが危険な状態であると判定される。なお、閾値は、危険度が最も低い危険領域DAにおいて留まった時間が最小値であるときの子ども危険度と同じ値とされる。
このようにして子どもが危険な状態であると判定されると、警報動作の実行命令が警報ロボット10に送信される。警報ロボット10は、この実行命令を受信すると、たとえば子どもの名前を含む警報音声をスピーカ54から出力する。これにより、子どもに対して危険を警報して、子どもを安全な状態に誘導することができる。また、保育者は、警報音声によって子どもが危険な状態であることに気づくことができる。
図10を参照して、警報ロボット10は、このような警報音声を出力するとともに、移動先位置を決める。子どもの行動の予測結果が中央制御装置14から送信される警報動作の実行命令に含まれていれば、予測移動軌跡上で、かつ子どもから一定距離離れている位置が移動先位置とされる。そして移動先位置が決まると、警報ロボット10はその移動先位置に移動する。たとえば、子どもが窓に向かって移動すると予測されている場合、警報ロボット10は予測移動軌跡上に移動する。また、警報ロボット10は、移動先位置に到着すると、ディスプレイ46の表示が子どもの視界に入るように、子どもの方に自身の正面を向ける。
そして、図11を参照して、警報ロボット10は、移動先位置に到着して姿勢を変更した後、子どもに対して社会的参照行動を行わせる警報画像をディスプレイ46に表示する。社会的参照とは、子どもが行動を行う前に重要な他者(たとえば、親)の反応を伺う(参照)ことである。そして、社会的参照行動とは、このような社会的参照を通じて決定される行動のことである。
たとえば、図12(A)を参照して、本実施例で利用される社会的参照行動を行わせる警報画像は、保育者が怒った表情(特定の表情)の写真である。たとえば、子どもが危険な場所に移動しようとしている場合、親は図12(A)に示すような怒った表情をして、子どもの移動する方向を変えて引き返させたり、その場で立ち止まらせたりする。つまり、子どもは親の怒った表情を参照することで、危険な場所への移動をやめることになる。そのため、危険領域DAに移動しようとしている子どもに対して、図12(A)に示す怒った表情の警報画像を見せた場合、子どもは、危険領域DAに移動するという行動をやめる可能性が高い。つまり、社会的参照を通じて、言語コミュニケーションが困難な子ども(特に乳幼児など)の行動を適切に制御することができる。
たとえば実施例では、子どもに対して社会的参照行動を行わせる警報画像を見せることで子どもを安全な状態に誘導することができる。特に、警報ロボット10が自律移動するため、適切な位置で子どもに画像を見せることができる。
また、子どもが危険領域DAへの移動をやめた場合には、図12(B)に示す笑顔を含む安全画像がディスプレイ46に表示される。つまり、子どもが安全な状態になったことを知らせることができる。なお、警報ロボット10は、その他の状況、たとえば子どもが移動せずに遊んでいたりする場合、図12(C)に示す無表情の顔を含む標準画像をディスプレイ46に表示する。
また、第1実施例では、子ども危険度によって、警報画像および警報音声の音量が変化する。たとえば、子ども危険度は3段階(大、中、小)に分類される。また、危険領域DA3aに子どもが向かっている場合は、子ども危険度が「小」に分類され、図12(A)に示すように怒った表情をしている母親の警報画像が表示され、通常の音量で警報音声が出力される。また、危険領域DA3aの危険度よりも高い危険度が設定されている危険領域DA2に向かっている場合は、子ども危険度が「中」に分類され、図12(D)に示すように怒った表情をしている父親の警報画像が表示され、通常の音量よりも大きい音量で警報音声が出力される。そして、最も危険度が高く設定されている危険領域DA1に向かっている場合は、子ども危険度が「大」に分類され、図12(E)に示すように母親と父親との二人が怒った顔をしている警報画像が表示され、最大の音量で警報音声が出力される。このように、危険度に応じて警報内容を変化させることで、子どもに対して危険度を伝えることができる。
上述したように、実施例では、子どもの行動を予測して子どもの危険な状態を警報することができる。これにより、子どもが実際に危険な状態となることを事前に回避することができる。また、危険度地図を利用することで、子どもが危険な状態であるかを判定する処理を単純にすることができる。そのため、子どもが危険な状態であるかの判定が早くなる。
なお、他の実施例では、SVM(Support vector machine)などの機械学習手法によって行動を予測する判別モデルを作成し、この判別モデルを利用して子どもの行動が予測されてもよい。
また、その他の実施例では、子どもがよく居る場所を示す目的地地図を事前に作成し、子どもの位置から最も近い目的地に向かうとして、子どもの行動が予測されてもよい。この場合、子どもが実際に目的地に居た時間などに基づいて、各目的地に尤度が設定されてもよい。
また、社会的参照行動を行わせることが可能であれば、ディスプレイ46に表示される警報画像は写真ではなくCG画像であってもよい。また、警報画像には、人間ではなく動物などのキャラクターが利用されてもよい。表示される画像は、静止画ではなく動画像であってもよい。また、警報ロボット10が表情を再現できる場合は、再現可能な表情によって子どもに社会的参照行動を行わせてもよい。
上述では第1実施例の特徴を概説した。以下では、図13に示す中央制御装置14のメモリ142のメモリマップ、図14に示す警報ロボット10のメモリ74のメモリマップ、図15−図19に示すフロー図を用いて第1実施例について詳細に説明する。
図13は図6に示す中央制御装置14のメモリ142のメモリマップの一例を示す図解図である。図13に示すように、メモリ142はプログラム領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、中央制御装置14を動作させるためのプログラムとして、距離画像センサ12から情報を取得し、子ども位置および向きを位置データとして記憶するための取得プログラム310、警報ロボット10に危険を警報させたりするための安全管理プログラム312、子どもが危険な状態かを判定するための危険判定プログラム314および子どもの行動を予測するための行動予測プログラム316などが記憶される。なお、図示は省略するが、中央制御装置14を動作させるためのプログラムには、危険度地図データを作成したり、編集したりするためのプログラムなども含まれる。
データ記憶領域304には、位置バッファ330および予測バッファ332などが設けられる。また、データ記憶領域304には、位置履歴テーブル334、基本地図データ336および危険度地図データ338などが記憶されるとともに、危険フラグ340などが設けられる。
位置バッファ330には、子どもの位置を示す位置データが一時的に記憶される。予測バッファ332には、子どもの行動の予測結果が一時的に記憶される。
位置履歴テーブル334には、子どもの移動軌跡を示す複数の位置データが時系列順に記憶されるテーブルである。基本地図データ336は、たとえば図7に示すように設備が配置される位置を示す地図のデータである。危険度地図データ338は、たとえば図8に示すように危険領域DAを示す地図のデータである。
危険フラグ340は、子どもが危険な状態と判定されているかを示すフラグである。たとえば、危険フラグ340は、1ビットのレジスタで構成される。危険フラグ340がオン(成立)されると、レジスタにはデータ値「1」が設定される。一方、危険フラグ340がオフ(不成立)されると、レジスタにはデータ値「0」が設定される。
なお、図示は省略するが、データ記憶領域304には、様々な計算の結果を一時的に格納するバッファや、中央制御装置14の動作に必要な他のカウンタやフラグなども設けられる。
図14は図4に示す警報ロボット10のメモリ74のメモリマップの一例を示す図解図である。図14に示すように、メモリ74はプログラム領域402およびデータ記憶領域404を含む。プログラム記憶領域402には、警報ロボット10を動作させるためのプログラムとして、警報音声および警報画像を出力するための警報通知プログラム410などが記憶される。なお、図示は省略するが、警報ロボット10を動作させるためのプログラムには、自律移動するためのプログラムなども含まれる。
データ記憶領域404には、通信バッファ430などが設けられるとともに、基本地図データ432、画像データ434および音声データ436などが記憶される。
通信バッファ430には、中央制御装置14から受信した動作命令が一時的に記憶される。基本地図データ432は、中央制御装置14のメモリ142に記憶される基本地図データ336と同じデータである。画像データ434は、図12(A)−図12(E)に示す警報画像、安全画像および標準画像を含むデータである。音声データ436は、警報音声を出力するためのデータである。
なお、図示は省略するが、データ記憶領域404には、様々な計算の結果を一時的に格納するバッファや、警報ロボット10の動作に必要な他のカウンタやフラグなども設けられる。
中央制御装置14のプロセッサ140は、Linux(登録商標)ベースのOSや、その他のOSの制御下で、図15に示す取得処理、図16に示す安全管理処理、図17に示す危険判定処理および図18に示す行動予測処理などを含む、複数のタスクを処理する。
図15は取得処理のフロー図である。中央制御装置14の電源がオンにされ、取得処理の実行命令が出されると、取得処理が実行される。なお、取得処理の実行命令は、第1時間毎に出される。
取得処理が実行されると、プロセッサ140はステップS1で、現在時刻を取得する。たとえば、プロセッサ140が有するRTCから現在時刻を取得する。続いて、ステップS3でプロセッサ140は、距離画像センサ12の情報を取得する。つまり、プロセッサ140は、距離画像センサ12が出力する奥行情報および音声信号を取得する。なお、ステップS3の処理を実行するプロセッサ140は取得手段として機能する。
続いて、ステップS5でプロセッサ140は、位置データを作成する。つまり、子どもの位置および向きを含む位置データが、距離画像センサ12から取得された奥行情報に基づいて作成される。ここで、空間内では子どもと警報ロボット10との位置が検出されることになるが、警報ロボット10は空間内の自己位置を測定しており、その自己位置を中央制御装置14に送信している。そのため、中央制御装置14は、警報ロボット10とは異なる移動体の位置を、子どもの位置として特定する。
続いて、ステップS7でプロセッサ140は、現在時刻および位置データを記憶する。つまり、ステップS1で取得された現在時刻の情報に位置データが関連付けられ、位置履歴テーブル334に記憶される。そして、ステップS7の処理が終了すると、プロセッサ140は取得処理を終了する。
図16は安全管理処理のフロー図である。中央制御装置14の電源がオンにされ、安全管理処理の実行命令が出されると、安全管理処理が実行される。なお、安全管理処理の実行命令は、第2時間(たとえば、1秒)毎に出される。
安全管理処理が実行されると、ステップS21でプロセッサ140は、空間に子どもが居るか否かを判断する。つまり、距離画像センサ12によって子どもの位置が検出されているかが判断される。ステップS21で“NO”であれば、つまり空間に子どもがいなければ、プロセッサ140は安全管理処理を終了する。
また、ステップS21で“YES”であれば、つまり空間の中で子どもの位置が検出されていれば、ステップS23でプロセッサ140は、位置履歴テーブル334を読み出す。つまり、子どもが危険な状態であるかを判定するために、位置履歴テーブル334が読み出される。続いて、ステップS25でプロセッサ140は、危険判定処理を実行する。つまり、子どもの現在の位置から子どもが危険な状態であるかが判定される。なお、危険判定処理については図17に示すフロー図を用いて説明するため、ここでの詳細な説明は省略する。
続いて、ステップS27でプロセッサ140は、子どもが危険な場所に居るか否かを判断する。つまり、危険フラグ340がオンであるかが判断される。ステップS27で“YES”であれば、たとえば子どもが危険領域DA3a内に居て、危険フラグ340がオンであれば、プロセッサ140はステップS35の処理に進む。
一方、ステップS27で“NO”であれば、つまり子どもが危険な場所に居なくて、危険フラグ340がオフであれば、プロセッサ140は、ステップS29で行動予測処理を実行し、ステップS31で危険判定処理を実行する。つまり、子どもの行動が予測され、予測結果に基づいて子どもが危険な状態であるかが判断される。なお、行動予測処理および危険判定処理については、図17および図18に示すフロー図を用いて説明するため、ここでの詳細な説明は省略する。また、ステップS29の処理を実行するプロセッサ140は予測手段として機能し、ステップS31の処理を実行するプロセッサ140は予測判定手段として機能する。
続いて、ステップS33でプロセッサ140は、子どもが危険な場所に移動しているか否かを判断する。つまり、子どもが危険な場所に移動すると予測されて危険フラグ340がオンにされているかが判断される。ステップS33で“YES”であれば、つまり危険フラグ340がオンであれば、ステップS35でプロセッサ140は、警報動作を指示する。つまり、現在の子どもの位置データ、子ども危険度および子どもの行動の予測結果を含む、警報動作の実行命令が警報ロボット10に対して送信される。そして、ステップS35の処理が終了すると、プロセッサ140は安全管理処理を終了する。なお、子どもの行動が予測されていない場合は、現在の子どもの位置データおよび子ども危険度を含む、警報動作の実行命令が警報ロボット10に対して送信される。
また、ステップS33で“NO”であれば、たとえば子どもが危険領域DAに移動しておらず、危険フラグ340がオフであれば、ステップS37でプロセッサ140は、子どもが安全な場所に移動しているか否かを判断する。なお、ステップS37の処理を実行するプロセッサ37は安全判定手段として機能する。ステップS37で“YES”であれば、たとえば危険領域DA以外への移動が予測されていれば、ステップS39でプロセッサ140は、安全動作を指示する。たとえば、図12(B)に示す安全画像を出力させる安全動作の実行命令が、警報ロボット10に送信される。そして、ステップS39の処理が終了すれば、プロセッサ140は安全管理処理を終了する。なお、ステップS39の処理を実行するプロセッサ140は表示制御手段として機能する。
また、ステップS37で“NO”であれば、たとえば子どもが危険領域DA以外の場所で遊んでおり、子どもの位置が停止していれば、ステップS41でプロセッサ140は、標準動作を指示する。たとえば、図12(B)に示す標準画像を出力させる標準動作の実行命令が、警報ロボット10に送信される。
なお、ステップS25−S33の処理を実行するプロセッサ140は判定手段として機能する。
図17は危険判定処理のフロー図である。安全管理処理でステップS25またはステップS31の処理が実行されると、危険判定処理が実行される。ステップS61でプロセッサ140は、危険が予測されているか否かを判断する。つまり、行動予測処理によって子どもの行動が予測され、予測結果が予測バッファ332に記憶されているかが判断される。ステップS61で“NO”であれば、つまり危険判定処理がステップS25の処理で実行され、この時点で子どもの行動が予測されていなければ、プロセッサ140はステップS65の処理に進む。
また、ステップS61で“YES”であれば、つまり危険判定処理がステップS31の処理で実行され、ステップS29の処理で子どもの行動が予測されていれば、ステップS63でプロセッサ140は、予測された位置を子どもの位置として設定する。つまり、行動が予測されている場合は、予測された行動によって子どもが危険な状態かを判定するために、予測された位置が子どもの位置として設定される。具体的には、行動予測処理によって予測された子どもの行動から、所定時間後の子どもの位置が求められる。そして、所定時間後の子どもの位置が位置バッファ330に記憶される。これにより、所定時間後の子どもの位置に基づいて、ステップS65以降の処理が実行される。
続いて、ステップS65でプロセッサ140は、危険度地図を読み出す。つまり、子どもが危険な状態であるかを判定するために、危険度地図データ338が読み出される。続いて、ステップS67でプロセッサ140は、子ども危険度を算出する。つまり、子どもの位置と対応する危険度および留まった時間を所定の計算式に代入して、子ども危険度が算出される。続いて、ステップS69でプロセッサ140は、子ども危険度が閾値よりも大きいか否かを判断する。つまり、現在の子どもの位置または所定時間後の子どもの位置が危険領域DA内かが判断される。ステップS69で“YES”であれば、たとえば予測された子どもの位置が危険領域DA内であれば、ステップS71でプロセッサ140は、危険フラグ340をオンにする。つまり、子どもが危険な状態であるとの判定結果となる。一方、ステップS69で“NO”であれば、たとえば現在の子どもの位置および所定時間後の子ども位置が危険領域DA内でなければ、ステップS73でプロセッサ140は、危険フラグ340をオフにする。つまり、子どもは危険な状態ではないとの判定結果となる。
そして、ステップS71またはステップS73の処理が終了すれば、プロセッサ140は危険判定処理を終了して、安全管理処理に戻る。
図18は行動予測処理のフロー図である。行動予測処理でステップS29の処理が実行されると、行動予測処理が実行される。ステップS91でプロセッサ140は、子ども移動軌跡を求める。つまり、位置履歴テーブル334から現在時刻から第3時間前までの位置が読み出され、読み出された位置から移動軌跡が求められる。続いて、ステップS93でプロセッサ140は、子どもの行動を予測する。たとえば、子どもの移動軌跡から子どもの速度およびベクトルが算出され、その速度およびベクトルから子どもの行動が予測される。なお、実施例では、このようにして算出された予測結果から、所定時間後の子どもの位置が求められる。
続いて、ステップS95でプロセッサ140は、予測結果を記憶する。たとえば、予測された行動を示す予測移動軌跡が、予測バッファ332に記憶される。そして、ステップS95の処理が終了すると、プロセッサ140は行動予測処理を終了し、安全管理処理に戻る。
警報ロボット10のプロセッサ70は、Linux(登録商標)ベースのOSや、その他のOSの制御下で、図19に示す警報処理などを含む、複数のタスクを処理する。
図19は警報処理のフロー図である。中央制御装置14から警報動作の実行命令を受信すると、警報処理が実行される。警報処理が実行されると、プロセッサ70はステップS111で、子ども危険度に基づいて音量を設定する。つまり、受信した動作命令に含まれる子ども危険度を分類し、分類した結果に応じて音量が設定される。
続いて、ステップS113でプロセッサ70は、警報音声を出力する。つまり、設定された音量で、警報音声が警報ロボット10のスピーカ54から出力される。続いて、ステップS115でプロセッサ70は、移動先位置を決定する。たとえば、予測された行動が実行命令に含まれていなければ、現在の子どもの位置の一定距離範囲内で移動先位置が決められる。また、予測された行動が実行命令に含まれていれば、予測された行動の経路で、かつ子どもから一定距離離れている位置が移動先位置とされる。続いて、ステップS117でプロセッサ70は、移動先位置に移動する。つまり、警報ロボット10は、決定した移動際位置へ移動する。
続いて、ステップS119でプロセッサ70は、移動先位置に到着したか否かを判断する。つまり、警報ロボット10の位置が移動先位置と一致するかが判断される。ステップS119で“NO”であれば、つまり警報ロボット10が移動先位置に到着していなければ、プロセッサ70はステップS119の処理を繰り返す。一方、ステップS119で“YES”であれば、つまり警報ロボット10が移動先位置に到着すると、ステップS121でプロセッサ70は、子どもの位置に基づいて姿勢を制御する。つまり、警報ロボット10の正面、つまりディスプレイ46の表示面が子どもの方を向くように、警報ロボット10の姿勢が変更される。
続いて、ステップS123でプロセッサ70は、子ども危険度に基づいて警報画像を設定する。たとえば、子ども危険度が「小」に分類されていれば、図12(A)に示す警報画像が警報ロボット10のディスプレイ46に表示される。また、ステップS125の処理が終了すると、プロセッサ70は警報処理を終了する。
なお、ステップS35の処理を実行するプロセッサ140およびステップS113の処理を実行するプロセッサ70は警報手段として機能する。
<第2実施例>
図20を参照して、第2実施例の安全管理システム100は、第1実施例と同じ、空間で利用することができる。また、その空間には、第1実施例と同じ警報ロボット10aおよび距離画像センサ12が配置されるとともに、子どもが怪我をしないよう空間内の安全性を向上させるための補助ロボット10bがさらに配置される。
補助ロボット10bは、警報ロボット10aと同様、空間内を自律移動することが可能である。また、子どもが危険な状態であると判定されると、子どもが怪我をしないようにするために子どもの周囲に移動する。
図21を参照して、第2実施例の安全管理システム100には、第1実施例と同様、警報ロボット10aおよび中央制御装置14が含まれるとともに、補助ロボット10bも含まれる。そして、中央制御装置14は、ネットワークを介して警報ロボット10aおよび補助ロボット10bと無線通信を行う。
図22(A)は補助ロボット10bの上面を示し、図22(B)は補助ロボット10bの下面を示し、図22(C)は補助ロボット10bの側面を示す。図22(A)−図22(C)を参照して、補助ロボット10bは全体として円柱形の本体200を含む。また、本体200の外装にはポリウレタン樹脂などの柔らかい素材が利用される。本体200の上には、内部が空気などの気体が充填されたクッション202が設けられる。また、クッション202の硬さ(ニュートン)は、後述するクッションモータ234(図23参照)によって調節される。また、本体200の下面には補助ロボット10bを自律移動させる2つの車輪204および従輪206が設けられる。2つの車輪204は車輪モータ232(図23参照)によってそれぞれ独立に駆動され、本体200すなわち補助ロボット10bを前後左右の任意方向に動かすことができる。また、従輪206は車輪204を補助する補助輪である。したがって、補助ロボット10bは配置された空間内を自律制御によって移動可能である。なお、補助ロボット10bは、車輪204の独立2軸駆動の2自由度を有する。
図23は補助ロボット10bの電気的な示すブロック図である。図23を参照して、補助ロボット10bはプロセッサ220を含む。プロセッサ220は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス222を介して、メモリ224、センサ入力ボード226、モータ制御ボード230および通信LANボード236に接続される。
メモリ224は、警報ロボット10aのメモリ74と同様、自身の動作を制御するための制御プログラムが予め記憶されるROMおよびプロセッサ220のワークメモリやバッファメモリとして用いられるRAMを含む。
センサ入力ボード226は、警報ロボット10aのセンサ入力ボード76と同様に、DSPで構成される。また、補助ロボット10bのセンサ入力ボード226には、クッション202内の気体の圧力を計測するための気圧センサ228が接続されている。
モータ制御ボード230もまたDSPで構成され、車輪モータ232およびクッションモータ234の駆動を制御する。たとえば、モータ制御ボード230は、プロセッサ220から制御データを受け、車輪204を駆動する2つのモータ(図23では、まとめて「車輪モータ232」と示す)の回転角度を制御する。同様に、モータ制御ボード230は、プロセッサ220からの制御データを受け、クッションモータ234の回転角度を制御する。
ここで、プロセッサ220は、クッションモータ234の回転角度を調整することで、クッション202の硬さを調整する。また、クッション202が所定の硬さとなったかは、気圧センサ228から出力されるクッション202内の気圧に基づいて判断される。つまり、プロセッサ220は、気圧センサ228およびクッションモータ234を利用して、クッション202を所定の硬さに調整することができる。
なお、通信LANボード236および無線通信装置238については、警報ロボット10aのものと略同じであるため、簡単のため詳細な説明は省略する。
また、他の実施例では、補助ロボット10bは、周囲の物体との距離を測定するために、距離センサが本体200の側面に設けられてもよい。
図24は高さ地図の一例を示す図解図である。高さ地図は、空間内に配置される設備などの高さ(Z)を示す地図である。設備の位置は基本地図から取得され、設備の高さは距離画像センサ12によって取得された奥行情報に基づいて取得される。たとえば、図24に示す高さ地図では、テーブルセット、ソファ、テレビ(テレビ台を含む)の高さが取得される。たとえば、テレビには床からテレビ台の表面までの距離が高さとして付与され、ソファには床から座面までの距離が高さとして付与され、テーブルセットには床から椅子の座面までの高さと床からテーブル面までの高さとが付与される。
また、高さ地図において色の濃度が高さを示す。ここでは、テレビが最も高いため色の濃度も最も濃い。そして、テーブル、椅子、ソファおよびテレビ台の順番で色の濃度が薄くなるため、テーブル、椅子、ソファおよびテレビ台の順番で高さが低くなる。なお、実施例では床の高さを「0」としており、高さが「0」のものには彩色されない。
ここで、子どもが高さのある場所に居る場合、子どもが落下する可能性がある。第2実施例では、クッション202を有する補助ロボット10bを子どもの近くに配置して、補助ロボット10bが子どもを受け止めることかできる状態にする。つまり、子どもが怪我をしにくい状態にすることで、空間の安全性を向上させる。
図25を参照して、たとえば子どもがソファの上に移動した場合、子どもの位置を中心とする所定距離の範囲を落下する可能性がある範囲とする。また、落下する可能性がある範囲からは、落下する可能性がない部分、たとえば、ソファの座面などは省かれる。また、落下する可能性がある範囲は、所定サイズ(たとえば、5cm四方)のグリッドに分割され、各グリッドに対して数1に示す数式に基づいて衝撃度が計算される。
ここで、体重mは保育者によって予め設定される。また、高さhは子どもの位置に基づいて取得される。そして、衝突時間Δtについては、予め物体を複数の場所で落下せることで計測した衝突時間に基づいて作成されたデータベースを利用して決められる。そして、体重m、落下速度vおよび衝突時間Δtに基づいて、グリッドにおける衝撃度Fが算出される。
全てのグリッドに対して衝撃度Fが算出されると、衝撃度Fが最も高いグリッドに基づいて落下位置が設定される。たとえば、衝撃度Fが最も高いグリッドが1つであれば、そのグリッドに対応する座標が落下位置とされる。また、衝撃度Fが最も高いグリッドが複数の場合は、複数のグリッドの重心が落下位置とされる。
また、落下位置が設定されるとその位置の衝撃度Fに基づいて補助ロボット10bのクッション202の硬さが設定される。そして、補助ロボット10bに対して、落下位置および硬さが送信される。補助ロボット10bは、これらの情報を受信すると落下位置に移動して、クッション202の硬さを変更する。
これにより、危険な状態の子どもが怪我をしないようにすることができる。特に、実施例では、推定された落下位置にクッション202を有する補助ロボット10が配置されるため、子どもが落下してしまったとしても。子どもの落下の衝撃をクッション202によって吸収することができる。
なお、落下位置は、所定の場所から物体を落としたときに落下する位置をデータベース化して、そのデータベースに基づいて設定されてもよい。また、床にはカーペットなどが敷かれている場合もあるので、床の硬度が設定される床硬度地図を作成し、その床行動地図に基づいて衝突時間Δtを設定するようにしてもよい。また、落下する可能性がある範囲は、子どもの位置の高さが高くなるにつれて広くなるように変化してもよい。また、椅子などのように背もたれを有する物の場合、落下方向が限定される。そのため、背もたれの位置に基づいて、落下する可能性がある範囲から落下する可能性がない部分が省かれてもよい。
また、第2実施例の安全管理システム100は、警報ロボット10aを含まなくてもよい。つまり、第2実施例の安全管理システム100では、子どもが危険だと判定されたときには警報ロボット10aによる警報を行わず、補助ロボット10bだけが子どもの周囲に移動するようにしてもよい。
また、補助ロボット10bは、複数のクッション202を備えていてもよい。また、複数のクッション202を備えている場合は、通常時は各クッション202を収納し、子どもが危険な状態であると判定されたときに各クッション202を膨らませるようにしてもよい。この場合、衝撃度に応じて膨らませるクッション202の数を変更するようにしてもよい。
また、他の実施例では、算出された衝撃度Fが所定値よりも大きい場合には、保育者が所持する携帯端末などに通知するようにしてもよい。
上述では第2実施例の特徴を概説した。以下では、図26に示す中央制御装置14の第2実施例のメモリ142のメモリマップ、図27、図28に示すフロー図を用いて第2実施例について詳細に説明する。
図26は中央制御装置14の第2実施例のメモリ142のメモリマップの一例を示す図解図である。メモリ142のプログラム記憶領域302には、落下位置およびクッション202の硬さを設定し、補助ロボット10bに送信するための安全性向上プログラム318がさらに記憶される。
また、メモリ142のデータ記憶領域304には、グリッドバッファ342などがさらに設けられるとともに、高さ地図データ344などがさらに記憶される。グリッドバッファ342は、落下する可能性がある範囲におけるグリッドの情報(衝撃度を含む)が一時的に記憶される。高さ地図データ344は、たとえば図24に示すように、空間に配置された設備に対して高さが設定されている地図のデータである。
図27は第2実施例の安全管理処理のフロー図である。なお、第1実施例の安全管理処理と重複するステップについて詳細な説明を省略する。
第2実施例の安全管理処理が実行され、子どもの位置が危険領域DAに入っておりステップS27で“YES”と判断されるか、予測された子どもの位置が危険領域DAに入っておりステップS33で“YES”と判断されると、ステップS35でプロセッサ140は、警報動作を指示する。つまり、子どもが危険な状態と判定されたため、警報ロボット10aに対して警報動作の実行命令が送信される。続いて、ステップS201でプロセッサ140は、安全性向上処理を実行する。そして、ステップS201の処理が終了すると、プロセッサ140は安全管理処理を終了する。たとえば、安全性向上処理が実行されると、落下位置および補助ロボット10bのクッション202の硬さが設定され、補助ロボット10bに送信される。
図28は安全性向上処理のフロー図である。安全管理処理でステップS201の処理が実行されると、安全性向上処理が実行される。ステップS211でプロセッサ140は、子どもが居る位置に高さが設定されているか否かを判断する。つまり、位置バッファ330に記憶される子どもの位置および高さ地図データ344に基づいて、子どもの位置に高さが設定されているかが判断される。ステップS211で“YES”であれば、たとえば図25に示すように、子どもがソファの上にいれば、プロセッサ140はステップS217の処理に進む。
一方、ステップS211で“NO”であれば、つまり子どもの位置に高さが設定されていなければ、ステップS213でプロセッサ140は、子どもが向かっている位置に高さが設定されているか否かを判断する。つまり、子どもの行動が予測されており、かつ予測された行動において子どもが高さのある場所に移動しているかが判断される。また、具体的には予測バッファ332に記憶される子どもの行動の予測結果と高さ地図データ344とに基づいて、子どもが向かっている位置に高さが設定されているかが判断される。ステップS213で“NO”であれば、たとえば図9に示すように子どもが窓に近づくことが予想されていれば、プロセッサ140は安全性向上処理を終了して、安全管理処理に戻る。
また、ステップS213で“YES”であれば、たとえば子どもがソファの上に移動することが予測されていれば、ステップS215でプロセッサ140は、予測された位置を子どもの位置として設定する。つまり、所定時間後の子どもの位置が位置バッファ330に記憶される。これにより、所定時間後の子どもの位置に基づいて、ステップS217以降の処理が実行される。
続いて、ステップS217でプロセッサ140は、子どもの位置の高さを取得する。つまり、位置バッファ330に記憶されている子どもの位置に基づいて、高さ地図データ344から高さが取得される。続いて、ステップS219でプロセッサ140は、落下する可能性がある範囲をグリッドに分割する。つまり、子どもの位置中心として所定範囲を落下する可能性がある範囲を設定し、その範囲の中を所定サイズのグリッドに分割する。なお、分割されたグリッドの位置などの情報はグリッドバッファ342に記憶される。続いて、ステップS221でプロセッサ140は、グリッド毎に衝撃度Fを算出する。つまり、数1に示す数式に基づいて、各グリッドに対して衝撃度Fが算出される。また、算出された衝撃度Fは対応するグリッドに基づいてグリッドバッファ342に記憶される。続いて、ステップS223でプロセッサ140は、衝撃度が最も大きいグリッドに基づいて落下位置を設定する。たとえば、衝撃度が最も大きいグリッドが1つの場合、そのグリッドの位置が落下位置として設定される。なお、ステップS223の処理を実行するプロセッサ140は設定手段として機能する。
続いて、ステップS225でプロセッサ140は、衝撃度に基づいてクッション202の硬さを設定する。つまり、グリッドバッファ342から最も大きい衝撃度が読み出され、その衝撃度に基づいて補助ロボット10bのクッション202の硬さが設定される。
続いて、ステップS227でプロセッサ140は、落下位置および硬さを送信する。つまり、上述の処理で設定された落下位置およびクッション202の硬さが補助ロボット10bに送信される。補助ロボット10bは、受信した落下位置および硬さを受信すると、その落下位置に移動し、かつクッション202の硬さを変更する。そして、ステップS227の処理が終了すれば、プロセッサ140は安全性向上処理を終了して、安全管理処理に戻る。なお、ステップS227の処理を実行するプロセッサ140は移動制御手段として機能する。
<第3実施例>
第3実施例では、空間に配置された設備が適切かどうかをシミュレーションすることができる。また、シミュレーションを利用して、危険度地図を作成したり、設備の再配置を促したりする。なお、第3実施例の安全管理システム100の構成は、第1実施例または第2実施例と略同じであるため、詳細な説明は簡単のため省略する。
第3実施例について具体的に説明すると、空間内で子どもの行動をシミュレーションする。そして、行動シミュレーションの結果から、子どもが落下する可能性がある位置を特定し、特定された位置および設備の配置に基づいて危険度地図が作成される。また、作成された危険度地図は、中央制御装置14の出力装置144(ディスプレイ)によって出力(表示)される。そして、危険度地図が表示されたときに設備の再配置操作が行われると、保育者は入力装置を利用して、危険度地図上で設備を仮想的に再配置することができる。
図29は興味度合い地図の一例を示す図解図である。興味度合い地図は、子どもの行動シミュレーションを行うときに利用される地図であり、空間に配置される家具や窓のなどの設備などに対して子どもが興味を持つ度合いを示す。たとえば、図29に示す興味度合い地図では、テレビおよび窓に興味度合いが設定されているため、テレビに興味範囲IA1が設定され、窓に対して興味範囲IA2および興味範囲IA3が設定されている。また、興味範囲IAは、対応する興味度合いの数値(たとえば、1−100)に応じた濃度で彩色される。そのため、窓の興味範囲IA2、興味範囲IA3の興味度合いが最も高い。また、テレビの興味範囲IA1の興味度合いが最も低い。なお、興味度合いは親などの保育者によって設定されるが、他の実施例では子どもの行動を分析することで、子どもが興味を持つ設備を特定し、興味範囲IAおよび興味度合いが設定されてもよい。
このような興味度合い地図を利用して行われる子どもの行動シミュレーションについて説明する。まず、現在の子どもの位置が、行動シミュレーションにおける子どものスタート位置とされる。次に、時刻t(現在時刻)に対する時刻t+1(次の時刻)の位置を行動モデルに基づいて計算する。行動モデルは、実施例では空間中を時計回りに周回するという単純なモデルである。なお、他の実施例では、移動速度を一定にした状態で移動方向がランダムに変化するモデルなどが利用されてもよい。
次に、時刻t+1における子どもが興味範囲IA内に居るかが判断され、興味範囲IA内であればその子どもが設備に興味を持つかがさらに判断される。子どもが設備に興味を持つかの判断について具体的に説明すると、1−100の範囲で乱数を1つ生成し、その乱数が興味範囲IAと対応する興味度合いよりも小さければ、子どもが設備に興味を持つと判断される。一方、求められた数値が興味度合いよりも大きければ、子どもが設備に興味を持たないと判断される。子どもが設備に興味を持った場合は、子どもの移動方向を、子どもが興味を持ったと判断された設備の方向に変更する。そして、このような処理を一定時間分繰り返すことで、子どもの行動シミュレーションの結果が得られる。
子どもの行動シミュレーションが行われた結果の一例を図30に示す。このシミュレーション結果では、子どもが空間内を時計回りに移動しているが、窓に興味を持った子どもはソファの上に上がり、落下していることが分かる。そして、このようなシミュレーション結果を利用して危険度地図が作成されると、図31に示すようになる。
図31を参照して、行動シミュレーションの結果から落下する位置を特定できるため、その位置の周辺には危険度が最も高い危険領域DA4が設定される。また、ソファから子どもが落下したため、ソファの周辺にも危険領域DA5が設定される。そして、シミュレーションの結果とは別に、設備の配置に基づいて危険度が設定される。たとえば、図8に示す危険度地図と同様、テーブルセットと窓との周辺にも危険領域DA1と危険領域DA3a,DA3bとが設定される。このようにして作成された危険度地図が、危険度地図データ338としてメモリ142に記憶されるとともに、出力装置144から出力される。
危険度地図が表示されている状態で再配置操作が行われると、設備を仮想的に移動させるGUIさらに表示される。このとき、保育者はGUIを入力装置によって操作することで、危険度地図上で設備を仮想的に再配置することができる。
このように、子どもの行動に適した危険領域DAが設定されるため、警報が適切に行われるようになる。また、保育者は、作成された危険度地図によって、気づいていなかった危険領域DAに気づくことができることもある。つまり、保育者は、作成された危険度地図によって空間内の危険な場所を適切に把握することができる。また、仮想的に空間内の設備を再配置することが可能となるため、保育者は、空間内のレイアウトを効率的かつより安心・安全に設計することができる。
なお、子どもが設備に興味を持つかを判断する際には、子どもが遊んでいない時間によって、興味度合いが大きくなるように処理されてもよいし、新しい設備の興味度合いが高くなるように処理されてもよい。また、実施例の設備には遊具などが含まれてもよい。
また、他の実施例では、閾値上の衝撃度が算出された場合は、保育者に対して通知するとともに、再配置操作の有無に関係なく設備の再配置が可能な状態にされてもよい。
上述では第3実施例の特徴を概説した。以下では、図32に示す中央制御装置14の第3実施例のメモリ142のメモリマップ、図33、図34に示すフロー図を用いて第3実施例について詳細に説明する。
図32は中央制御装置14の第3実施例のメモリ142のメモリマップの一例を示す図解図である。メモリ142のプログラム記憶領域302には、設備の配置を仮想的に変更するための配置シミュレーションプログラム320および子どもの行動をシミュレーションするための行動シミュレーションプログラム322がさらに記憶される。
また、メモリ142のデータ記憶領域304には、行動シミュレーションバッファ346が設けられるとともに、興味度合い地図データ348などが記憶される。行動シミュレーションバッファ346には、行動シミュレーションの結果が一時的に記憶される。興味度合い地図データ348は、たとえば図29に示すように、空間に配置された設備に対して設定される興味範囲IAおよび興味度合いを示す地図のデータである。
図33は配置シミュレーション処理のフロー図である。たとえば、入力装置146によって配置シミュレーション処理を実行する操作がされると、ステップS301でプロセッサ140は、設備の位置を取得する。たとえば、基本地図データ336が読み出され、基本地図に基づいて空間内に配置された設備の位置が取得される。続いて、ステップS303でプロセッサ140は、設備の高さを取得する。たとえば、高さ地図データ344が読み出され、各設備の高さが取得される。
続いて、ステップS305でプロセッサ140は、行動シミュレーション処理を実行する。つまり、子どもの行動がシミュレーションされる。なお、行動シミュレーション処理については、図34に示すフロー図を用いて詳細に説明するため、ここでの詳細な説明は省略する。また、ステップS305の処理を実行するプロセッサ140はシミュレーション手段として機能する。
続いて、ステップS307でプロセッサ140は、シミュレーション結果から落下位置を特定する。たとえば、プロセッサ140は、シミュレーション結果における子どもの移動軌跡が、高い位置から低い位置に移動しているかを調べる。そして、高い位置から低い位置に移動している場合、その位置が落下位置として特定される。ただし、高い位置から低い位置に移動していなければ、落下位置は特定されない。続いて、ステップS309でプロセッサ140は、落下位置が特定されたか否かを判断する。つまり、ステップS307の処理で落下位置が特定されたかが判断される。ステップS309で“NO”であれば、つまり行動シミュレーションにおいて子どもが高い位置から低い位置に移動しておらず、落下位置が特定されていなければ、プロセッサ140はステップS315の処理に進む。
また、ステップS309で“YES”であれば、つまり落下位置が特定されていれば、ステップS311でプロセッサ140は、落下位置の衝撃度Fを算出する。つまり、数1に示す数式に基づいて、落下位置の衝撃度Fが算出される。続いて、ステップS313でプロセッサ140は、落下位置および衝撃度に基づいて危険領域DAを設定する。たとえば、図30に示すように落下位置が特定されている場合、図31に示すようにソファの周辺に危険領域DA4および危険領域DA5が設定される。
続いて、ステップS315でプロセッサ140は、設備の位置に基づいて危険領域DAを設定する。たとえば、図31に示すように、テーブルセットおよび窓の周辺に危険領域DA1および危険領域DA3a,DA3bが設定される。
続いて、ステップS317でプロセッサ140は、危険度地図を作成する。たとえば、図31に示すような危険度地図が作成される。なお、ステップS317の処理を実行するプロセッサ140は作成手段として機能する。続いて、ステップS319でプロセッサ140は、危険度地図を表示する。つまり、作成された危険度地図が中央制御装置14の出力装置144(ディスプレイ)によって出力される。
続いて、ステップS321でプロセッサ140は、再配置か否かを判断する。たとえば、再配置操作がされたかが判断される。ステップS321で“YES”であれば、たとえば再配置操作がされると、ステップS323でプロセッサ140は、再配置処理を実行する。たとえば、仮想的に設備を再配置するためのGUIが出力装置144に表示される。そして、ステップS323の処理が終了すると、プロセッサ140はステップS301の処理に戻る。つまり、再配置された設備に基づいて危険度地図が再び作成される。
一方、ステップS321で“NO”であれば、たとえば再配置操作がされなければ、プロセッサ140は配置シミュレーション処理を終了する。
図34は行動シミュレーション処理のフロー図である。配置シミュレーション処理でステップS305の処理が実行されると、行動シミュレーション処理が実行される。ステップS331でプロセッサ140は、スタート地点を設定する。たとえば、現在の子どもの位置がシミュレーションのスタート位置として設定される。なお、設定されたスタート位置は、現在位置として行動シミュレーションバッファ346に記憶される。
続いて、ステップS333でプロセッサ140は、設備変数xを初期化する。テレビや窓などの設備にはそれぞれを識別するための識別IDが付与されている。設備変数xは、設備の識別IDを指定するための変数であり、ステップS333の処理では設備変数xが初期値(たとえば、1)となるように初期化される。
続いて、ステップS335でプロセッサ140は、時刻tにおける現在位置から時刻t+1における予測位置を行動モデルに基づいて計算する。たとえば、行動モデルは、空間内を時計回りに周回するというものであり、その行動モデルに基づいて次の時刻の予測位置が計算される。
続いて、ステップS337でプロセッサ140は、設備変数xが最大値か否かを判断する。つまり、全ての設備に対して子どもが興味を持つかを判断したかが判断される。ステップS337で“YES”であれば、つまり全ての設備に対して子どもが興味を持つかの判断がされていれば、プロセッサ140はステップS347の処理に進む。
一方、ステップS337で“NO”であれば、つまり全ての設備に対して子どもが興味を持つかの判断がされていなければ、ステップS339でプロセッサ140は、設備xの興味範囲IA内に子どもが居るか否かを判断する。つまり、設備変数xによって指定される設備の興味範囲IA内に子どもが居るかが判断される。ステップS339で“NO”であれば、プロセッサ140はステップS343の処理に進む。
ステップS339で“YES”であれば、たとえば子どもが窓の興味範囲IA内に居れば、ステップS341でプロセッサ140は、子どもが設備xに興味を持つか否かを判断する。たとえば、プロセッサ140は、1−100の範囲で乱数を1つ生成し、その乱数が興味範囲IAと対応する興味度合いよりも小さいかを判断する。ステップS341で“NO”であれば、つまり子どもが設備xに興味を持たないと判断されると、プロセッサ341はステップS343の処理に進む。
ここで、たとえば設備xに興味範囲IAが設定されておらず、子どもが設備xの興味範囲IA内に居ないか、子どもが設備xに興味を持っていないと判断された場合は、ステップS343でプロセッサ140は、設備変数xをインクリメントする。つまり、設備変数xによって次の設備が指定される。そして、ステップS343の処理が終了すれば、プロセッサ140はステップS337の処理に戻る。
続いて、ステップS341で“YES”であれば、つまり子どもが設備xに興味を持つと判断されると、ステップS345でプロセッサ140は、子どもの移動方向を設備xの方に変更する。つまり、次の予測位置で設備xの方に移動するように、移動方向が変更される。
続いて、ステップS347でプロセッサ140は、子どもの位置を更新する。つまり、行動シミュレーションバッファ346に記憶される現在位置が前回位置として記憶され、予測位置が現在意図して記憶される。続いて、ステップS349でプロセッサ140は、時刻tをインクリメントする。つまり、次の時刻における予測位置を計算するために、時刻tがインクリメントされる。続いて、ステップS351でプロセッサ140は、一定時間のシミュレーションが行われたか否かを判断する。ここで、時刻tの変化量がシミュレーションにおける時間を示す。そのため、時刻tの初期値(時刻t0)とこの時点の時刻tとの差が、一定時間となっているかが判断される。なお、時刻tの初期値は、ステップS331でスタート地点が設定されたときに、行動シミュレーションバッファ346に記憶される。ステップS351で“NO”であれば、シミュレーションにおける時間が一定時間に達していなければ、プロセッサ140はステップS333の処理に戻る。また、ステップS351で“YES”であれば、つまりシミュレーションにおける時間が一定時間に達していれば、プロセッサ140は行動シミュレーション処理を終了して、配置シミュレーション処理に戻る。
なお、第1実施例−第3実施例については、任意に組み合わせることが可能であり、その組み合わせについては容易に想像できるため、ここでの詳細な説明は省略する。
また、他の実施例では、警報ロボット10aのプロセッサ70または補助ロボット10bのプロセッサ220によって、安全管理処理、危険判定処理、行動予測処理および安全性向上処理などが実行されてもよい。また、中央制御装置14によって、警報ロボット10aの警報音声の音量、移動先位置および警報画像が設定されてもよい。
また、他の実施例では、警報ロボット10aおよび補助ロボット10bが一体化されてもよい。この場合、一体化したロボットはディスプレイ46に代えて、壁や空間に画像を投影するプロジェクタを備える。
また、上述の実施例では、閾値に対して「より大きい」の言葉を用いたが「閾値より大きい」とは「閾値以上」の意味も含まれる。また、「閾値よりも小さい」とは「閾値以下」および「閾値未満」の意味も含まれる。
また、本実施例で説明した複数のプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して本実施例と同等の構成のシステムに配信されてもよい。また、CD, DVD, BD (Blu-ray(登録商標) Disc)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体にこれらのプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、上記複数のプログラムが、本実施例と同等の構成のシステムに適用された場合、本実施例と同等の効果が得られる。
そして、本明細書中で挙げた、具体的な数値は、いずれも単なる一例であり、製品の仕様変更などに応じて適宜変更可能である。