GPSトラッキング

投稿者: | 2014年2月28日

去年の秋に受けた健康診断の結果で中性脂肪の何とかいう値が正常値に収まっていなかった。これまでコレステロールか何かで「要観察」みたいな結果になった事はあったけど、中性脂肪は初めてだ。40代になるとあちこちガタが出るものである。
定期的に何か運動ができればいいのだろうけど、スポーツジムに通ったりするのは時間的にも料金的にも難しい。ちょっとした筋トレくらいなら家でもできない事はないけど、元来怠け者なのでなかなか続くものではないし、そもそも今の私に必要なのは筋トレではなくカロリーの採りすぎを解消することだ。要するに、摂取カロリーに対して消費カロリーが少ないので余った分が脂肪になって溜まるのだ。
20代の頃はかなりの大食いで、30代になってもよく食べてはいたけど、40前後からは食べる量は随分減っているし、元々お酒も飲まない。今以上に摂取カロリーを抑えるのは辛いというか、悲しいではないか。まあ、職場であまり気にせずポリポリ食べているスナック菓子とかチョコレートとかは控えるようにしよう。
そうすると、カロリーバランスを保つ為には消費カロリーを増やすしかない。時間と根性の負担がなるべく少なくなる方法として、毎日の通勤時に一駅分ほど歩くことにした。実際に地下鉄を一駅手前で降りて歩いてみると、10分程度しか掛からなかった。中性脂肪を消費するには20分程度運動を続けなければならないそうなので、もう一駅手前で降りてみると丁度20分くらいだった。以来、毎朝2駅分、帰りも1駅分歩いている。

さて、ここまでは長大な前フリでここからが本題だったりする。昨今のスマートフォンはもちろん、フィーチャーフォンとかガラケーとか呼ばれる従来型の携帯電話にもGPSチップが載るのが当たり前になっている。チップメーカーから通信チップと一体になったモジュールで提供されるので、GPSを削ってもコスト削減にはならないのだろう。携帯端末でのGPS利用と言えば地図とかナビゲーション、あるいは写真のジオタグなどが一般的だが、スマートフォンではスポーツ用のトラッキングアプリがたくさんある。元々は登山やサイクリングで利用されてきたGPSロガーがスマートフォンに融合した形だ。毎日持ち歩くスマートフォンにアプリとして載ることで、サイクリングやジョギングなどの本格的なスポーツ以外でも気楽に使えるようになった。
そう、駅から会社まで歩く、ただそれだけの事にもGPSトラッキングアプリが使えるのだ。これが、モチベーションの維持に意外なほど役立つことが分かった。掛かった時間やペースが記録されるという意識があるので、自然とペースが上がる。毎回消費カロリーの概算値が表示されるので、お菓子をつまむ時に「これで10分の歩行」とか換算できて抑止が働く。歩いた積算距離が積み上がっていくのも地味に嬉しい。元々歩くのは速い方だと思うが、意識してさっさと歩いていると他の歩行者に抜かされるということはほとんどない。敵わないのはヤマト運輸のドライバーくらいだ。彼らは荷物の載ったカートを時には2つ押ながら、私がかなり頑張って歩いている横を涼しい顔をして抜いていく。
記録を取って歩くようになってから、会社の帰りに少し長めに歩いてみたり、出張でも少しの距離なら歩くようになった。例えば、東京の霞ヶ関界隈くらいだと浜松町から歩く。知らない町を歩くと、電車やタクシーでは見落とす色々な物に気付いてなかなかに楽しい。

ここで話は更に変わって、トラッキングの仕組みというマニアックな領域に入っていく。スマートフォンなんかだと、GPSを使うアプリを立ち上げたらすぐに大まかな位置を取得し、10秒も経たずに高精度で位置を特定する。これは実はかなり凄いことなのだ。GPSの衛星が送出している電波には衛星時計の補正データや軌道上の位置データ、電離層補正パラメータ、さらに全ての衛星の健康情報や軌道情報などのアルマナックデータなどを含む。これらは6秒のサブフレームが5つ集まった30秒のフレームで構成され、航法メッセージデータは全体で25フレーム、つまり12.5分となる。受信機が何の情報も持っておらず、GPS衛星からの情報だけで測位する場合、受信開始から実際に測位できるようになるまで12.5分もかかるということだ。実際には、過去に受信したデータをメモリ上に覚えていたり、スマートフォンなどの通信端末であれば基地局からの通信で情報を取得するなどして素早く測位モードに入るようになっている。
それでも、最低限時刻データだけはGPS衛星から直接取得しなければ衛星と受信機の距離を計算できない。そして時刻データが送られるのは1フレームに1回、つまり30秒に1回しかない。
最近のスマートフォンがどうやっているのか詳しくは知らないが、色々な工夫を組み合わせているのだろう。iPhoneはGPSだけでなく、ロシアが運営しているGLONASSという衛星測位システムも利用できるようになっている。将来的に準天頂衛星が使える様になれば、日本やオセアニアでは衛星測位で誤差10cm程度の高精度な情報が得られるようになるかも知れない。
さて、一度測位モードになった後は連続して位置情報を取得できるようになるが、何せ遠く離れた衛星からはるばる届く電波に依存しているわけで、情報が乱れることもある。地図上に現在位置を表示するだけなら短時間おかしな場所を表示してもそれほど不具合はないかもしれない。ところがトラッキングとなると、全て記録されるので大きな誤差が混じると統計データがおかしくなってしまう。以前造成工事で重機の動きをGPS(高価なRTK-GPS)で管理するという仕事をしていた時、単純に一定時間ごとに測点を記録するプログラムを作ったことがある。ついでに重機の速度を計算してレポートに書き出すコードを加えたら、普通は5km/hくらの重機がある日マッハを越える速度を叩き出した。もちろん実際にカッ飛んだわけではなく、一瞬通信が乱れて数kmの誤差が出た位置を正直に記録し、次の瞬間また戻ってきたのを律儀に計算してしまったのだ。これはレアケースだったけど、数m程度の誤差は割と頻繁に発生した。そこで、前後のデータと見比べて明らかにおかしなデータは無視するような処理を追加し、無茶苦茶な数字が出ることはなくなった。
実際に歩いたデータを見てみると、実際には真っ直ぐに歩いているところで数m程度はふらついた軌跡が残っている。移動距離や平均速度をどうやって計算しているのか知らないが、ある程度中を抜いてやらないとかなり誤差が(大きい方に)出ると思う。そうした計算のノウハウは、エンジニアの知恵の出しどころだろう。もっとも、スピードが上がれば誤差の問題は相対的に小さくなる。普通は歩くのにトラッキングアプリを使う人はあまりいなくて、ジョギングとかサイクリングが多いだろうから歩きには最適化されていないかも知れない。

(まだ書きかけだけど公開してしまおう。まだ追記します。少なくともそのつもりです。)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です