RaspberryPi(介護ロボットVol.4:睡眠障害実態調査編)
施設ご利用者の睡眠障害の実態を把握するために
RaspberryPi(以下、RasPiと称す)を使って観察・評価することにした
観察・評価の要件は
■夜中に起きている時間と寝ている時間の推移を可視化
介護ロボット(RasPi)に「睡眠状態観察機能」を付けることにする
システムとしては、
(1)RasPiに定点カメラを取り付け
(2)夜間10時間ほどをタイムラプス撮影
(3)撮影動画から睡眠状態を抽出する
となる
まずは、
1.カメラ取り付け具の作成
宙ぶらりんのカメラではまずいので、RasPiにしっかり取り付けることを考える
以前サーボモーターでパン・チルトできる治具を作ったが
今回は10時間ほどジーッと見てるだけなのでパン・チルトまでは不要
なので、取り外しができる簡易な治具をつくる
RaspberryPi筐体構造で常々気になってたのがUSBソケット
4つもあるし・・・・
そこでこのUSBソケットにカメラを取り付けることを考える
更にそのカメラ取り付け治具は、上下に若干の首振りができればよい
また、カメラ(赤外線可視 RasPi用カメラモジュール)の脱着が容易な構造とする
<設計>
取り敢えずの手書きの設計図はこんな感じ
3Dプリンターで印刷した
<実装>
1.2mmのネジを1本を使うが、実装はこんな(↓)感じ なんかかっこ良い
<印刷ノウハウ>
といってもそれほど大それた事はではない
gcode作成ツール・Curaの設定変更
①[インフル密度]:100%にしてスカスカをなくす
②[印刷速度][移動速度]:共に20mm/S程度に落としてフィラメント流れを防止
③[ビルドプレート]:小さいだけになぎ倒し防止のため「プリム」を使用
④併せて「ヘッド冷却ファン」の使用は必須
下記(↓)の様にNo.1~No.5で雲泥の差、No5が最終版
つぎは、
2.タイムラプス機能の利用
10時間の膨大な静止画を1つの動画に変換する
カップラーメンじゃないけど動画は3分で見終えたい
とすると、30フレーム/1秒なので、
全フレーム数=3分×60秒×30フレーム=5,400フレーム
10時間で5,400フレーム撮影するには、撮影間隔=10時間×60分×60秒÷5,400枚=6.7秒
う~ん、6.7秒毎の撮影では動作がすっ飛びそうで観察には不十分
余裕を見て、撮影間隔(インターバル)を2秒とする
再生時間は10分となるがなんとか実用には耐えれそうだ
1枚のjpgが約350Kバイトなので
5,400枚だと1.9Gバイト・・・16G積んでるのでメモリーには充分余裕はある
早速、タイムラプスの設定
使用するのはRPi-Cam-Web-Interface
<設定変更>
カメラ設定で[タイムラプス-インターバル]を2[秒]に変更する
後は「timelapse start」釦を押すだけ
撮影終了[timelapse stop]の後は、大量の静止画を動画に変換する
RPi-Cam-Web-Interfaceに備わっているはずの動画変換機能[convert]は
不具合があり機能しないので、RasPi上で変換などを行う
さて、これら静止画はどこに有るかというと、RasPiの/var/www/html/mediaにある
後は
①ファイル名を連番に変換
②静止画を動画に変換
を行っていく
コマンドは次の通り
①ファイル名を5桁の連番に変換
1 |
pi@kaigo:/var/www/html/media $ sudo find . -name ‘*.jpg’ | sort -n | awk ‘BEGIN{ a=0 }{ printf “sudo mv \”%s\” %05d.jpg\n”, $0,a++}’ | bash |
②動画に変換
1 |
pi@kaigo:/var/www/html/media $ sudo ffmpeg -y -f image2 -r 10 -i %5d.jpg -aspect 16:9 -s '1980x1080' output.mp4 |
なお、①の連番振りは数十秒で終わるが
②の動画への変換には数時間も掛かるので気長に待つしかない
3.観察記録
できあがった動画ファイルをPCに転送し、再生しながら手作業で睡眠状態を記録する
タイムラプス画像の上部に撮影年月日時刻が表示されているので
excel上に地道にプロットしていく
被験者の行動パターンは次の6種類を想定
①トイレ等の行動 ②柵を持って立位 ③柵に屈曲 ④ベットでお辞儀スタイル
⑤ベットで側臥位 ⑥ベットで仰臥位
<作表>
それぞれの睡眠行動パターンの推移は次の様式にプロットし、後にグラフ描画して
実態調査結果は後日投稿しますね