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

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

1,001 views

Published on

次世代タクシー配車サービス「MOV」は、タクシー事業者様・乗務員様にとっても使いやすいサービスを目指して、車載機器の開発も行っています。
一例として、タクシーメーターとスマートフォンを連携させるオリジナルハードウェアを開発し、運賃・料金の連携や配車可否の自動判別をするなど、「タクシーのIoT化」を実現しています。
本セッションでは、このようなMOVのサービスを支える車載ハードウェア・ソフトウェアについてご紹介します。

Published in: Automotive
  • Be the first to comment

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

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

×