
どうすれば道から外れることを防げるか 〜 GPSの隠れた機能を活用する
【はじめに】
毎日、白杖と音声ナビで歩いていると、いつのまにか車道にはみだしてしまい、怖い思いをすることがあります。
多くの音声歩行ナビは、開発者が自分で歩いて検証していないので、この問題の重要さに気付かないようです。
根本的には、前方の画像をAIで処理をすることですが、とりあえず、GPS受信機の「隠れた機能」を使ってこの問題の改善に挑みます。
【路面に手掛かりのない場所をまっすぐに歩きたい】

広くて交通量の多い県道の左側に歩道が続いていて、車道と歩道は、ガードレールで分離されています。
この写真の場所では、左から斜めに大きな道が合流していて、地形の関係から、この場所はちょっとした広場のような形になっています。歩道はその間、30mほど途切れています。
広場の先で、ガードレールが再開するまでの約30mの区間は白杖の手がかりになるものは全くなく、飛行機に例えれば、計器飛行で歩くことになります。
筆者が毎日使っている音声ナビ「お散歩の友」では、このような場所を、±5度程度の角度精度で誘導することができます。
しかし、この精度では、前方のガードレールがある歩道が再開するポイントにぴたりと誘導することは難しい。
また、GPSの測位誤差は2~3m程度はあるので、ガードレールの車道側にいても判断できず、危険です。
以下、この問題に対する改善のアイデアを提示します。
【ずれた量を検知するためのアルゴリズム】

今、いる地点が、6秒前の予想(あるいは期待)した地点と一致しているのか。もし一致していればセーフ、ということになります。
では,どうすれば一致しているか、ズレているかを識別できるのでしょうか。GPS受信機からは、緯度と経度のほかに移動方向と移動速度の情報も出力されています。
bearing と Speed と呼ばれるものです。
これらの値から、直近過去の移動軌跡(ベクトル)が分かります。
この移動ベクトルを歩行経路地図に重ねてみると、たとえば「道路のセンターライン方向に向かって歩いていて、すでに正しい経路から3mほどズレている」などといったことを判定できます。
危険だと判断されたら、音声で警告して、事故を未然に防ぐ。
ただ、ベクトルの始点は、ガードレールの終端など経路上にある目印を基準にするのが望ましい。これは、原点の校正作業に相当します。
【bearing と Speed について】
GPS 受信機は、NMEA という標準化されたフォーマットでデータを送出します。
ロガーアプリを使うと一部を CSV 型式で得ることができます。

このなかに、Bearing と Speed というフィールドがあります。
移動した方向と速さを示すものです。これなら緯度と経度の差分から算術計算で得られるように思えます。
ですが、実は、多数のGPS衛星から飛来する電波の波長のドップラーシフト(あるいは位相差)を時間の関数として求めています。
天空には多数の衛星があるから、ある衛星には近づき、ある衛星からは遠ざかる。これで移動した方向と速さがわかる、という凝った原理です。
上記には緯度と経度が入ってこないから、共通原因の誤差は入らないハズです。(だが、ビルの反射には弱い)
ここで算出されるのは、移動してきた方向であるから、スマホをどちらに向けたとしても関係しません。
ですが、立ち止まって進行方向を探る目的には使えません。
【まとめ】
GPSでは、現在の位置のほかに、直前に移動してきた方向と移動速度も知ることができる。
これらの情報をうまく活用すれば、視覚障害者が所定の経路から外れてしまうリスクを多少なりとも減らすことができる。
今後、フィールドテストを行って効果を確認します。
なお、ここで使っている誘導の原理は、航海術の基本であり、とくに目新しいものではありません。