スマートフォンには多数のセンサが搭載され,それらのセンサを利用するサービスが注目されている.センサは機種ごとに異なり,しかもセンサ精度が一定でないため,開発者がその特性を理解せずにアプリケーションを開発すると,機種によってはアプリケーションが正常に動作しないことがある.したがって,開発者は,センサの特性であるセンサ値の精度や計測間隔などを把握する必要がある.本研究では,アプリケーション開発者にスマートフォンのセンサに関する有益な情報を提供することを目的として,機種別,利用条件別,アプリケーション別の計測データを用いて特性を明らかにした.4機種を用いて加速度,磁気,ジャイロ,重力とGPSの5種類のセンサのデータを取得する実験を行った結果,機種差分があること,センサ値の計測間隔は歩行時に高い精度で取得されることが分かった.そして,センサ特性がアプリケーションに及ぼす影響を定量的に把握するために,5種類のセンサを用いて,3つのアプリケーションを開発した.そこでは,センサ値の平滑化処理を施してノイズを除去し,各センサの取得結果に合った閾値を設定した結果,機種に依存することなくデータを取得することができた.

1.はじめに

 スマートフォンに搭載されているセンサを利用したサービスには,ライフログサービスやITS(高度道路交通システム)などがある.ライフログサービスは,リアルタイムに取得可能なユーザの位置,行動や健康などの人に関する情報を自動で記録するもので,加速度センサ値を基に歩行時の歩数を算出する研究[1]などがある.ITSとスマートフォンを融合したサービスでは,自動車に固定したスマートフォンから収集した情報を基にヒヤリハットマップを生成し,Webサイトで公開[2]している.

 スマートフォンに搭載されているセンサは機種ごとに異なるため,開発者がその特性を理解せずにアプリケーション(以下,アプリ)を開発すると,機種によってはアプリが正常に動作しないことがある.それは,機種ごとに取得するセンサ値の精度や計測間隔などの仕様が異なるためである.この課題を解決するために,開発者はセンサの特性を把握し,機種ごとのセンサ精度の差を考慮したキャリブレーションや許容誤差を設定する必要がある.本研究では,アプリ開発者にセンサ特性に関する有益な情報を提供することを目的として,機種別,利用条件別とアプリ別の計測データを分析してセンサの特性を定量的に明らかにする.実験の対象OSは,多くのスマートフォンに利用されているAndroid[3],[4],[5]とする.

2.Android SDKで定義されるセンサ

 Android SDKのSensorクラスで定義されるセンサ[6]を表1に示す.本研究では,加速度,磁気,ジャイロ,重力の各センサとLocationManagerクラスで定義されるGPSセンサ[7]を対象とする.

表1●Sensorクラスの定数
表1●Sensorクラスの定数
[画像のクリックで拡大表示]