Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Similar to 次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019](15)

Advertisement

More from DeNA(20)

Advertisement

次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]

  1. #denatechcon #denatechcon 次世代タクシー配車サービス「MOV」を支える 車載ハードウェアとソフトウェアの話 米山 輝一 三輪 智也 オートモーティブ事業本部 スマートタクシーシステム開発部
  2. #denatechcon 自己紹介:米山 輝一(よねやま てるひと) 2012年10月DeNA中途入社。社歴7年目。 2012年〜 エンタメサービス開発 Androidエンジニア 2013年〜 SHOWROOM スタジオ設計、番組制作、イベント企画、ライ ブ映像制作、配信技術リーダー、プロダクト オーナーなどなど 2017年〜 オートモーティブ ハードウェア開発
  3. #denatechcon
  4. #denatechcon MOVの3つの特徴 1. 一番近くのタクシーがすぐ来る、すぐ乗れる 2. 目安到着時間がわかる 3. ネット決済100%対応で車内での支払いが不要
  5. #denatechcon MOV配車に不可欠な車両データ  鮮度の高い位置情報  タクシーメーターの料金情報  車両のステータス
  6. #denatechcon 車載IoT機器  BLE Logger タクシーメーターの料金情報や車 両のステータスを取得してスマー トフォンに送信  スマートフォン 位置情報などを高頻度に送信
  7. #denatechcon BLE Logger:料金情報やステータスを取得する
  8. #denatechcon BLE Loggerスペック 型式 DTBA-LG-100 外形寸法 W:73mm H:23mm D:50mm 質量 約48g I/O 通信ポート1 (10ピン)メーター用 通信ポート2 (4ピン)拡張用 通信ポート3 (5ピン)拡張用 USB Type-C (給電専用) 電源 5V (USB Type-C) 最大電流 250mA 動作温度範囲 -15℃〜+60℃ 保存温度範囲 -30℃〜+85℃
  9. #denatechcon BLE Loggerの開発:2017年9月〜2017年12月 プロトタイプ 量産試作 量産
  10. #denatechcon 後部座席タブレット:サイネージ端末
  11. #denatechcon 後部座席タブレットの機能
  12. #denatechcon 自己紹介 12
  13. #denatechcon 13
  14. #denatechcon 学生時代はロボット競技に熱中 14
  15. #denatechcon 自己紹介:三輪 智也 2009/4 車載機器メーカー入社 カーナビ、スマホ連携機能開発 2016/4 IoT系ベンチャー入社 スマホアプリ、BLEデバイス開発 2017/11 DeNA入社 MOVアプリ開発 @tomoya0x00
  16. #denatechcon 目次 1. システム構成 2. 乗務員端末とタクシーメーターの連携 3. 乗務員端末でのイベントハンドリング 4. 乗務員端末と後部座席タブレットの連携 5. キオスクモード 6. まとめ 16
  17. #denatechcon システム構成 17
  18. #denatechcon システム構成図 18 タクシー配車アプリ タクシー(乗務員端末搭載) クラウド
  19. #denatechcon システム構成図 19 タクシー(乗務員端末搭載) ・自車位置 ・車両のステータス (空車/実車など) ※AWS IoT クラウド タクシー配車アプリ
  20. #denatechcon システム構成図 20 クラウド ・空車位置 ・到着予想時間 タクシー(乗務員端末搭載) ・自車位置 ・車両のステータス (空車/実車など) ※AWS IoT タクシー配車アプリ
  21. #denatechcon 配車の流れ 21
  22. #denatechcon 22 クラウド 1.配車依頼
  23. #denatechcon 23 クラウド 1.配車依頼2.配車依頼
  24. #denatechcon 24 クラウド 1.配車依頼2.配車依頼
  25. #denatechcon 25 クラウド 1.配車依頼2.配車依頼
  26. #denatechcon 26 クラウド 1.配車依頼2.配車依頼 3.配車承諾
  27. #denatechcon 27 クラウド 1.配車依頼2.配車依頼 3.配車承諾 4.配車完了
  28. #denatechcon 28 クラウド 1.配車依頼2.配車依頼 3.配車承諾 4.配車完了
  29. #denatechcon システム構成図 29 ・空車位置 ・到着予想時間 タクシー(乗務員端末搭載) ・自車位置 ・車両のステータス (空車/実車など) ※AWS IoT クラウド タクシー配車アプリ
  30. #denatechcon
  31. #denatechcon 乗務員端末と タクシーメーターの連携 31
  32. #denatechcon
  33. #denatechcon オリジナルハードウェア 33
  34. #denatechcon 34
  35. #denatechcon BLE Logger 35
  36. #denatechcon 36 メーター情報 (空車/実車、金額など) 情報要求BLE Logger 0円 空車 迎車 実車 支払 タクシーメーター 乗務員端末 メーター情報 情報要求
  37. #denatechcon BLE Logger 37 ● メーターと乗務員端末間通信を仲介 ○ シリアル通信でメーターと通信 ○ BLEで乗務員端末と通信
  38. #denatechcon BLE Logger 38 ● メーターと乗務員端末間通信を仲介 ○ シリアル通信でメーターと通信 ○ BLEで乗務員端末と通信
  39. #denatechcon OSI参照モデルの 物理層レベル 39
  40. #denatechcon メーターは1種類ではない 40
  41. #denatechcon メーター・BLE Logger間通信IF 41
  42. #denatechcon メーター・BLE Logger間通信IF 42 ● メーター会社と共同で策定 ● 各メーター会社に仕様を共有 ○ 各メーター用の専用FW開発
  43. #denatechcon BLE Logger 43 ● メーターと乗務員端末間通信を仲介 ○ シリアル通信でメーターと通信 ○ BLEで乗務員端末と通信
  44. #denatechcon BLE 44
  45. #denatechcon Bluetooth Low Energy 45
  46. #denatechcon Bluetooth Low Energy 46 • デバイス間無線通信の規格 • 低消費電力 • 近年発売のスマホで標準サポート
  47. #denatechcon BLE Loggerの工夫ポイント 47
  48. #denatechcon ファームウェア更新機能 48
  49. #denatechcon ファームウェア更新機能 ● 機能追加や不具合修正 ○ 乗務員端末から新FWデータを転送 ○ 内部フラッシュメモリ書換 ● メーター通信仲介しながら更新可能 49
  50. #denatechcon ファームウェア更新機能 ● 機能追加や不具合修正 ○ 乗務員端末から新FWデータを転送 ○ 内部フラッシュメモリ書換 ● メーター通信仲介しながら更新可能 50
  51. #denatechcon フラッシュメモリ内の データ配置 (メモリマップ) 51
  52. #denatechcon 52 B面 FW Ver.1 A面 FW Ver.1 Bootloader
  53. #denatechcon 53 Bootloader ● ファームウェアを格納 A面 FW Ver.1 B面 FW Ver.1
  54. #denatechcon 54 B面 FW Ver.1 A面 FW Ver.1 ● 電源投入後、最初に動作 ● A/B面どちらが新しいか判断 ● 新しい面を起動 ○ 同じバージョンならA面起動 Bootloader
  55. #denatechcon FW更新の流れ 55
  56. #denatechcon 56 1.電源投入 B面 FW Ver.1 A面 FW Ver.1 Bootloader
  57. #denatechcon 57 1.電源投入 2.A面で起動 B面 FW Ver.1 Bootloader A面 FW Ver.1
  58. #denatechcon 58 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 Bootloader A面 FW Ver.1 B面 FW Ver.1
  59. #denatechcon 59 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込完了(Ver.1 -> Ver.2) Bootloader A面 FW Ver.1 B面 FW Ver.2
  60. #denatechcon 60 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込完了(Ver.1 -> Ver.2) 5.電源再投入 A面 FW Ver.1 B面 FW Ver.2 Bootloader
  61. #denatechcon 61 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込完了(Ver.1 -> Ver.2) 5.電源再投入 6.B面で起動 A面 FW Ver.1 Bootloader B面 FW Ver.2
  62. #denatechcon 62 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込完了(Ver.1 -> Ver.2) 5.電源再投入 6.B面で起動 7.FW更新成功! A面 FW Ver.1 Bootloader B面 FW Ver.2
  63. #denatechcon メーター通信仲介しながら更新可能 ● あらかじめFWを2面(A/B面)保持 ○ フラッシュメモリに書込済み ● A面で動作中にB面に新FWを書込 ● 次回起動時に新しいB面で起動 63
  64. #denatechcon メーター通信仲介しつつ更新可能 ● 次回のFW書込は、古いA面に実施 ● FW書込はメーター通信阻害を考慮 ○ FWデータ転送に適切なインターバル 64
  65. #denatechcon FW更新中の電源断 65
  66. #denatechcon FW書込の再開に対応 66
  67. #denatechcon 67 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 Bootloader A面 FW Ver.1 B面 FW Ver.1
  68. #denatechcon 68 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込途中(50%)に電源断 Bootloader A面 FW Ver.1 B面 FW Ver.1 (50%はVer.2)
  69. #denatechcon 69 A面 FW Ver.1 B面 FW Ver.1 (50%はVer.2) 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込途中(50%)に電源断 5.電源投入 Bootloader
  70. #denatechcon 70 B面 FW Ver.1 (50%はVer.2) 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込途中(50%)に電源断 5.電源投入 6.A面で起動 Bootloader A面 FW Ver.1
  71. #denatechcon 71 Bootloader A面 FW Ver.1 B面 FW Ver.1 (50%はVer.2) 1.電源投入 2.A面で起動 3.B面に新FWを書込開始 4.書込途中(50%)に電源断 5.電源投入 6.A面で起動 7.B面に新FM書込を再開
  72. #denatechcon めでたしめでたし 72
  73. #denatechcon ところで 73
  74. #denatechcon 乗務員端末と 直接通信できるメーター 74
  75. #denatechcon 75 メーター情報 (空車/実車、金額など) 情報要求 0円 空車 迎車 実車 支払 タクシーメーター 乗務員端末
  76. #denatechcon Bluetooth Classic + SPP 76
  77. #denatechcon 乗務員端末と直接通信できるメーター ● Bluetooth Classic ○ 旧来のBluetooth ○ BLEとの対比で BT Classicなどと表記 ○ ほぼ全てのスマホが対応 77
  78. #denatechcon 乗務員端末と直接通信できるメーター ● SPP ○ Serial Port Profile の略 ○ BT Classic 上でシリアル通信をエミュレート 78
  79. #denatechcon 乗務員端末と直接通信できるメーター ● メーター・乗務員端末間通信IF ○ 専用仕様 ○ メーター・BLE Logger間通信IFと互換性無し 79
  80. #denatechcon どちらのメーターも 同様に扱いたい 80
  81. #denatechcon メーターの抽象化 81
  82. #denatechcon 82
  83. #denatechcon 83 インターフェース ● 車両のステータス取得 ○ 空車/迎車/実車/支払など ● 金額情報取得 ○ 迎車料金 ○ 運賃(初乗、距離性、時間制) ○ ETC料金 ○ 割引額
  84. #denatechcon 84 BLE Logger通信クラス ● 接続処理 ● 再接続処理 ● データ送信 ● データ受信
  85. #denatechcon 85 メーター通信クラス (BLE Logger経由) ● メーター情報要求 ● メーター情報解析 ● 車両のステータス取得 ● 金額情報取得
  86. #denatechcon 86 メーター通信クラス (BT Classic SPP経由) ● メーター情報要求 ● メーター情報解析 ● 車両のステータス取得 ● 金額情報取得
  87. #denatechcon 無事、メーター連携可能に! 87
  88. #denatechcon メーター連携で 更に実現できること 88
  89. #denatechcon メーター連携で更に実現できること • いつ、どこで乗車が発生 • どの程度の距離を走ったか • 金額はいくらだったか 89
  90. #denatechcon AI探客ナビ(仮称) 90
  91. #denatechcon ● 需要予測 ○ プローブデータ ○ タクシー需要関連データ ● 経路生成&ナビ 91
  92. #denatechcon 絶賛開発中 92
  93. #denatechcon 乗務員端末での イベントハンドリング 93
  94. #denatechcon いくつかのイベント 94
  95. #denatechcon いくつかのイベント • タクシーメーター • 空車/迎車/実車/支払 • サーバーからのプッシュ通知 • 配車依頼、メッセージ 95
  96. #denatechcon いくつかのイベント • 画面タッチ • 通信成功/通信失敗 96
  97. #denatechcon うまくハンドリングするには? 97
  98. #denatechcon ステートマシン 98
  99. #denatechcon 99 開始状態
  100. #denatechcon 100 自動で 「MOV配車無し」状態へ 遷移
  101. #denatechcon 101 乗務員端末の 配車依頼OKタップで、 「配車承諾」 イベント発行
  102. #denatechcon 102 「MOV配車有り」状態へ 遷移
  103. #denatechcon 103 自動で 「迎車」状態へ遷移
  104. #denatechcon 104 タクシーメーターの 実車ボタン押下で 「実車開始」 イベント発行
  105. #denatechcon 105 「実車」状態へ遷移
  106. #denatechcon 106 タクシーメーターの 支払ボタン押下で 「支払開始」 イベント発行
  107. #denatechcon 107 「支払」状態へ遷移
  108. #denatechcon 108 乗務員端末の 支払確定タップで、 「支払完了」 イベント発行
  109. #denatechcon 109 「MOV配車無し」状態へ 遷移
  110. #denatechcon ステートマシン • イベントをステートマシンのインプットに変換 • ステートマシンの状態に紐付いて画面遷移 • より詳しいお話しはDroidKaigi 2019にて! • DAY.02 (2/8) 10:30〜 Room6 外部デバイスと密に連携するAndroidアプリに最適なアーキテクチャとは? 110
  111. #denatechcon 乗務員端末と 後部座席タブレットの連携 111
  112. #denatechcon
  113. #denatechcon どうやって通信? 113
  114. #denatechcon Wi-Fi/BTテザリング? 3G/4G? BT Classic/BLE? 114
  115. #denatechcon どうやって通信? ● お互いに直接通信したい ● ランニングコストは抑えたい ● インターネットにアクセスしたい 115
  116. #denatechcon お互いに直接通信したい Wi-Fi/BTテザリング 3G/4G BT Classic/BLE 116
  117. #denatechcon ランニングコストは抑えたい Wi-Fi/BTテザリング 3G/4G BT Classic/BLE 117
  118. #denatechcon インターネットにアクセスしたい Wi-Fi/BTテザリング 3G/4G BT Classic/BLE 118
  119. #denatechcon 各通信方法の比較 119 直接通信 ランニングコスト インターネット Wi-Fi/BT テザリング 3G/4G BT Classic/ BLE
  120. #denatechcon 全てを満たす通信方法 120
  121. #denatechcon Wi-Fi Direct + VpnService 121
  122. #denatechcon Wi-Fi Direct + VpnService ● Wi-Fi DirectでP2P通信 ● VpnService ○後部座席タブレットもインターネット接続可能 ○3G/4G通信は乗務員端末のみがおこなう 122
  123. #denatechcon Wi-Fi Direct + VpnService ●詳細は DroidKaigi2019 で! ○DAY.02 (2/8) 15:40〜 Room4 WiFi Direct + VpnServiceでSIM無しAndroidをWeb世界に社会復帰させる話 123
  124. #denatechcon Wi-Fi Direct + VpnService ●詳細は DroidKaigi2019 で! ○DAY.02 (2/8) 15:40〜 Room4 WiFi Direct + VpnServiceでSIM無しAndroidをWeb世界に社会復帰させる話 124
  125. #denatechcon 乗務員端末から 各情報を送信 125
  126. #denatechcon ・車両のステータス (空車/実車など) ・金額情報
  127. #denatechcon 例:実車開始 127
  128. #denatechcon 実車
  129. #denatechcon
  130. #denatechcon
  131. #denatechcon 例:降車地到着 131
  132. #denatechcon 支払 (金額)
  133. #denatechcon
  134. #denatechcon 乗務員端末と 後部座席タブレットの キオスクモード 134
  135. #denatechcon キオスクモード 135
  136. #denatechcon 端末の機能を限定 136
  137. #denatechcon Androidでは Device Ownerで 実現可能 137
  138. #denatechcon Androidの専用端末化 138
  139. #denatechcon Androidの専用端末化 139 ● 専用アプリ以外への遷移を防止 ● 他アプリを起動するトラブル抑制
  140. #denatechcon ほかにも 140
  141. #denatechcon 強制的にホームアプリ化 141
  142. #denatechcon サイレントインストール (自動でアプリをインストール) 142
  143. #denatechcon ワイプ (盗難・紛失時のデータ消去) 143
  144. #denatechcon Androidの専用端末化 ● 実現方法の詳細 ○DroidKaigi 2018 の三輪発表をご参照 ○Kioskアプリと端末の作り方 (DroidKaigi 2018) https://droidkaigi.jp/2018/timetable?session=16381 144
  145. #denatechcon まとめ 145
  146. #denatechcon まとめ  システム構成  AWS IoTで車両のステータスと位置を共有  乗務員端末とタクシーメーターの連携  オリジナルハードウェア、通信IF共通化  メーターの抽象化  BLE LoggerにFW更新の工夫 146
  147. #denatechcon まとめ  乗務員端末でのイベントハンドリング  ステートマシン導入  乗務員端末と後部座席タブレットの連携  WiFi Direct + VpnService  キオスクモード  DeviceOwnerを活用 147
  148. #denatechcon MOVは 様々な車載ハードウェアと ソフトウェアで 成り立っています! 148
  149. #denatechcon #denatechcon
Advertisement