Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スマホの路線バス・トラッキング におけるGPS情報との戦い / iotlt-sapporo-06a
Search
Hiroto YAMAKAWA
September 08, 2019
Technology
0
240
スマホの路線バス・トラッキング におけるGPS情報との戦い / iotlt-sapporo-06a
「スマホの路線バス・トラッキング におけるGPS情報との戦い」
札幌版IoT縛りの勉強会!IoTLT札幌Vol.6
https://iotlt.connpass.com/event/143934/
Hiroto YAMAKAWA
September 08, 2019
Tweet
Share
More Decks by Hiroto YAMAKAWA
See All by Hiroto YAMAKAWA
Javaへの新たなHello, World / yuruchitose-04
gishi_yama
0
31
JSR381、知っていますか?Javaの画像認識APIのはなし / SC4Y23-05
gishi_yama
0
180
jPeekでのクラスの凝集度計測の試行 / mild-web-sapporo#24
gishi_yama
0
310
Github CopilotとChatGPTを使って感じた使い分けの糸口 / JavaDo #22
gishi_yama
1
1.3k
子ども向けプログラミング体験教室でのHololens2利用事例 / IoTLT#97
gishi_yama
0
87
AWS Serverless Java Container, Spring Bootで試してみた / javado22
gishi_yama
0
480
Hololens2と 小中高プログラミング教育の利用にむけた試行 / XRMTG 2023-1-18
gishi_yama
0
280
小学生がmicro:bitを用いて行える課題解決を意識した自由研究事例 /SC4Y '22#4
gishi_yama
0
380
あなたもこだわろう!Web開発環境 (物理編)'22 / mild-web-sapporo#22
gishi_yama
0
300
Other Decks in Technology
See All in Technology
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
TypeScript、上達の瞬間
sadnessojisan
46
13k
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
120
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
130
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
270
Lexical Analysis
shigashiyama
1
150
強いチームと開発生産性
onk
PRO
34
11k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
334
57k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
The Language of Interfaces
destraynor
154
24k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Writing Fast Ruby
sferik
627
61k
Docker and Python
trallard
40
3.1k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Statistics for Hackers
jakevdp
796
220k
Building an army of robots
kneath
302
43k
KATA
mclloyd
29
14k
Transcript
#IoTLT札幌 スマホの路線バス・トラッキング におけるGPS情報との戦い 山川広人 (@gishi_yama) 公立千歳科学技術大学 情報システム工学科 Javaエンジニアグループ北海道 Java Do 1
#IoTLT札幌 公立千歳科学技術大学 情報システム工学科 専任講師 R&D: Experimental Development of ICT (ex:City-Bus Tacking
System) Computer in Education, Programming and Programmer's Learning Community: Hiroto Yamakawa, @gishi_yama 2
#IoTLT札幌 大学の研究チームがコア部分(車両からのGPS取得、発着判定、遅れの計算、データモデル等)を担当 千歳市バスロケーションシステム:ち~なび(開発:2015, 2016) 3 • 市内全路線、3事業者の 路線バス⾞両の位置と 運⾏遅れを取得 •
スマートフォン/PCの地図や デジタルサイネージに反映 画面イメージ内の地図データ © 2017 ZENRIN CO., LTD.
#IoTLT札幌 システム構成 4 Data base Web APP 発着判定 遅れ検知 バス⾞両
GPS情報 スマートフォン・PC サイネージ バス事業者・市役所 運⾏情報 交番情報 路線情報 運転⼠の負担を抑える GPS取得の半⾃動化 複数のバス事業者の 運⾏ダイヤと ⾞両GPS情報による 運⾏遅れの算出 4 いわゆる スマートフォン型 バスロケーションシステム ※最近は シングルボードコンピュータ を使う流れが良い感じ?
#IoTLT札幌 この発表では、このシステムの開発で起こった GPSにまつわる課題とその解決法について 共有したい 5
#IoTLT札幌 〈おことわり〉 2016年頃の技術・機材ベースの苦労話なので、 (準天頂衛星みちびき第1号すら打ち上げ前) 「いまはもっとこうできるよ!」的なのもあるはず なんとかするための情報募集中です 6
#IoTLT札幌 • 開発要員は「GPSや地理情報の素人」のWebシステム開発経験者(1名)と学生 ⇒ 基板とかモジュールをなんとかしてくれる人、トラッキングの経験者・専門家もいない ⇒ スマートフォンとブラウザのGeolocation APIでなんとかする • 「運転士が乗車業務中にスマホを操作をしないこと」
⇒ 「理想は1回も触らないように」といわれる(無理難題) ⇒ ノータッチは不可能なので、なんとか1日1回、乗車時に限って操作することに。 ※運転士が選んだスケジュール(交番表ダイヤ)とGPSデータで同定しつづける • 開発費は、わずか。 ⇒ 技術検証・プロトタイプ開発からはじめ、うまくいったらそのまま使うパターン 開発時の絶対要件(戦いのはじまり) 7
#IoTLT札幌 1. とりあえず、精度を検証する。 価格帯、OS等でいくつかのスマホを用意。 (1万円以下のAndroid、1〜3万円程度のAndroid, それ以上のiPhone) 2. バスの後ろを自家用車でついて行って Geolocation APIで取得したGPSの
緯度軽度をプロット、想定誤差を測定 ⇒だいたい値段に精度が伴う 載ってるGNSSチップの違いと判断し、 当時の機種で複数のGPS(3in1GPS) に対応するチップを乗せたスマホを選択 (Qualcomm IZat Gen8C) 戦い①:スマホ+Geolocation APIで十分なGPS情報をどう取得するか? 8 地図データ © OpenStreetMap contributors under ODbL 1万円以下の Android 1〜3万円程度の Android ※2019年現在では、+みちびき(QZSS)対応のスマホが良いと思う
#IoTLT札幌 GPSをとれるようにして、停留所の座標も登録して、トラッキング開始! ⇒ バスの位置はとれるが、「停留所前をバスが通過した判定」のトラッキングミス頻発...! ⇒ 運行遅れが発生した際の、折り返し路線のガード条件が十分ではなかった 戦い②:その場でGPSを取得することと、トラッキングの違い 9 バス停の重複が ない路線は、 遅れがあっても
だいたい発着の 判定は成功 折り返しが存在する 路線で、遅れが大きく なると、復路の停留所 の発着をとりちがい ? ? プログラム上で対処できる話なので、停留所の通過順を考慮したガード条件を整備 (停留所を即通過してしまった時にすり抜けないように、いくつかあり得る候補だけに絞る) ※始発後すぐに終着と判定され、運転士の運行スケジュールの同定も崩れる ※運転士は運行中触らないルールで、問題発生時の手動リセットも無理 注:GPSとの戦いというより、条件の想定漏れの感も
#IoTLT札幌 ガード条件も直して、トラッキング開始! ⇒たまに、画面上でバスのマークが動いていないといわれる ⇒散発的に、Geolocation APIが、一定時間GPSを更新できていない問題が発生 戦い③:GPS(Geolocation API)の更新異常 10 約20分、GPSが同じ場所の 緯度経度を示す(右表黄色部分)
※実際のバス車両は正しく移動している ここでGPSが正常化するが、 赤線の部分の停留所は発着も 記録できないままになる !
#IoTLT札幌 2017年10月頃、2019年2月頃からそれぞれ急増し高止まり 戦い③:GPS(Geolocation API)の更新異常 11 本格運用開始 2017年10月より増 2019年2月から急増 ! ※2分間以上、更新異常が続いたもの。多いときで、1台あたり1日36回も発生している計算に。
#IoTLT札幌 〈不具合の外観〉 • geolocation.watchPosition()が非同期に緯度経度を更新しない(とても時間がかかる) • 端末ごとの発生数には偏りはありそうだが、どの端末・どの路線地域でも散発的に発生する • 更新異常の事象数は 2017年10月頃、2019年2月頃に急増し高止まり⇒ 〈原因の推測と対応策の考察〉
• 機種は統一しているので、機種依存?経年劣化? • APIコールをTimeoutなどでリトライした方がよい? • システムや手法に大きな更新はしていない... GPSシステムの何らかの変更が影響している? ⇒ DGPSの停波? GPS週数ロールオーバー? 課題③ GPS(Geolocation API)の更新異常 はまだ未解決... 12 2017/11月(9月)の情報。偶然だとは思うが... 注:どちらもスマホへの影響を示す情報はない...
#IoTLT札幌 1. スマホできるだけ正確なGPSトラッキングを行うには、利用するスマホのGPSチップ (受け入れ可能なGNSS信号)を確認した方がよい 2. 路線バスの様な、チェックポイントの通過等をトラッキングの機能に組み込むためには、 通過パターンなどのガード条件を確認する 3. GPSの取得自体にエラーが発生すると苦しい... 特に2019年春から謎の習得エラーが頻発している
(GPSモジュールを搭載した回路を組んだ方が何が起こってるかわかりやすそう) まとめ 13 後日、解決編に続く...?
#IoTLT札幌 • 中村嘉明,溝上章志(2017), όスロケーションシステムの導入・運用の実態と課題, 第 55 回土木計画学研究発表会・講演集, pp.1-7 (2017) •
千歳市バスロケーションシステム「ち〜なび」, https://info.chi-navi.net • ダイヤ編成支援システム「その筋屋」@Sujiya_System 2017年11月8日のツイート, https://twitter.com/Sujiya_System/status/928013851978813441 • 「To Be Continued」素材ジェネレーター, https://comic-mode.com/useful/detail/257#midashi 参考文献 14