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.

自動運転車を動かすサーバレスシステムの中身 MOBILITY:dev 2019/10/31 SBドライブ 須山・関谷

177 views

Published on

SB Drive
MOBILITY:dev 2019
移動と交通を技術で変えたいEngineerのためのカンファレンス
2019/10/31
SBドライブ株式会社 須山温人・関谷博之
講演タイトル「自動運転車を動かすサーバレスシステムの中身」
https://mobilitydev.jp/
https://mobility-dev.connpass.com/event/143355/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

自動運転車を動かすサーバレスシステムの中身 MOBILITY:dev 2019/10/31 SBドライブ 須山・関谷

  1. 1. 自動運転車を動かすサーバレスシステムの中身 2019/10/31 Mobility:dev SBドライブ株式会社 須山/関谷
  2. 2. 須山 温人 Atsuto Suyama SBドライブ株式会社 CTO twitter : atsutoms ヤフーの広告配信システム エンジニア (ヤフーの全スマホアプリに組み込まれる広告SDKを考案・開発) ↓ ソフトバンクのグループ内で新規事業の立ち上げ ↓ SBドライブ株式会社の立ち上げメンバー “課題解決の最先端で戦い続けたい”
  3. 3. SBドライブとは
  4. 4. イタリア街の集合写真 SBドライブは約30名のチーム(エンジニアは約半分)
  5. 5. SBドライブのメイン事業は 自動運転車につながるシステムを作ること システム自動運転車 この中身 を紹介
  6. 6. 公道走行可 どちらの車両もDispatcherに接続済み
  7. 7. Dispatcherとは
  8. 8. ★Dispatcherキャプチャ動画
  9. 9. バスの配車予約
  10. 10. 自動運転バスを運用する
  11. 11. 自動運転バスを運用するフロー 一連の業務をサポートするシステムが必要 マップ 作成 セッティング インフラ連携 運行設定 点検/点呼 遠隔監視 制御 運行分析 1. 2. エラー発生箇所や 原因の可視化 車両状態チェック 遠隔から車両を 止めることも ダイヤ設定 GTFS対応 軌跡/速度等設定 信号機IDの設定 例: 地図データ計測 3. 4. 5. 6.
  12. 12. マップ作成 1. 車両を走行させてライダーで三 次元マップを作成する。 2. マップ情報を車両とサーバに設 定する。
  13. 13. セッティング インフラ連携 信号機等インフラの状態を監視する必要がある→Dispatcher 1. 作成したマップ上で、どこを走行させるか、時速何キロで走 るか、どこでウィンカーを出すかなどを設定する。 2. 信号機と連携する場合は、該当の信号機のIDと、どの区間 でその信号機をチェックするのかを設定する。 3. Xmlファイルで車両とサーバに設定を登録する。
  14. 14. 何時にどこを発車するのか等のダイヤを設定 GTFS GTFS バス会社等で作成された GTFS形式のダイヤデータ 定められたダイヤ通りに 自動で走行する 自動運転バスの運行情報を GTFSリアルタイムで公開することで 乗換案内等のアプリに反映 ※GTFSとは:公共交通の時刻表や地理情報を格納するデータフォーマット 運行設定 乗換 案内
  15. 15. システムで車両機器等のステータスが正常なことを確認する ※ODDとは:運行設計領域(自動運転車が走行可能な環境) 点検/点呼 ODD確認
  16. 16. ★めでたく発車
  17. 17. WebSocketで毎秒更新される車両情報。RTSPにより遅延のないリアルタイム映像配信。 ※国のガイドラインに準拠し、実証実験の結果をガイドライン策定へフィードバックしている 遠隔監視・制御 車内安全の監視には ディープラーニングも使用
  18. 18. 分析 自動運転車は運行記録を残すことが重要。過去の走行を振り返り改善につなげる。
  19. 19. 目指す姿
  20. 20. 自動運転車とスマートフォンのレイヤー構造は似ている 23 スマートフォン 自動運転車 アプリ キャリア(ソフトバンク等) OS 端末 アプリ キャリア(SBドライブ) 自動運転OS 車両
  21. 21. ニーズごとに最適な車両ラインナップを用意 自動運転車9車種に接続済み ポンチョ、リエッセは「先進モビリティ社が 自動運転機能を架装した改造車両」のことを指します。
  22. 22. Dispatcherと車両の様々な接続スキームを準備 25 1. 車両改造パターン 4. サーバ経由パターン 3. SDKパターン 2. 車載PC搭載パターン Dispatcher (SBD) 車両 (車両メーカー) APIサーバ (車両メーカー) API開放 変換 自動運転制御 (先進モビ) 車載PC (SBD) 自動運転制御 (車両メーカー) 車載PC (車両メーカー) 車載PC(車両メーカー) 車載SDK (SBD) 自動運転制御 (車両メーカー) 自動運転制御 (車両メーカー) 車載PC (SBD) 車両 (車両メーカー) 車両 (車両メーカー) 車両 (車両メーカー) WebSocket
  23. 23. システムのさらに内部を説明します! システム自動運転車
  24. 24. 自己紹介 • 2012年 車載器メーカー入社(カーナビ サーバサイド開発) • 2017年/11 SBドライブ入社 車載・AIチーム配属 車載器AI開発 • 2018年/4~ バックエンド/AI 開発チーム配属 サーバサイド バックエンド開発/運用
  25. 25. API Data WEB Socket 分析 Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon DynamoDB AWS Lambda Amazon Cognito Amazon ElastiCache Amazon Elasticsearch Service Amazon Athena Amazon API Gateway InstancesApplication Load Balancer Crawler
  26. 26. API Data WEB Socket 分析 Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon DynamoDB AWS Lambda Amazon Cognito Amazon ElastiCache Amazon Elasticsearch Service Amazon Athena Amazon API Gateway InstancesApplication Load Balancer Crawler これから各箇所についてお話します。
  27. 27. API Data WEB Socket 分析 Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon DynamoDB AWS Lambda Amazon Cognito Amazon ElastiCache Amazon Elasticsearch Service Amazon Athena Amazon API Gateway Instances Crawler ←クライアント接続部 Application Load Balancer
  28. 28. dispatcherの監視画面 車両一覧画面 車両詳細画面 複数車両を同時に 細かな詳細情報+制御出し
  29. 29. クライアント接続 websocket WEB Socket Server InstancesApplication Load Balancer Amazon ElastiCacheAmazon DynamoDB Amazon Cognito ・車両⇄サーバ間の ファーマットは Protocol Buffersを採用。 ・各種設定データは DynamoDBに保存してある。 ・セキュリティとして 車両側は クライアント証明書 + VPN, ユーザー側は cognitoによる トークン認証を利用。 ・データはElastiCache (redis) のpub/sub機能を利用して Topicにmessageを 送信することで 適切に車両 - ユーザーに 配信できるように構成。 localhost:8080
  30. 30. の設定画面
  31. 31. ダイヤ情報? GTFS-JP
  32. 32. の設定画面 GTFS-JP形式でデータを持っていれば Dispcaherにそのままインポートすることができる。
  33. 33. クライアント接続 API API Amazon CognitoAmazon DynamoDB API Gateway とLambda で構成している。 車両からは DyanamoDBに登録してある 行路情報を取得する。 ユーザーからは 各種(車両や行路/便) 設定情報の設定/取得。 分析用APIの呼び出し。 DyanamoDBは 運行スケジュール を保持。 ダイヤ情報はGTFS-JPで。 AWS LambdaAmazon API Gateway Amazon Elasticsearch Service
  34. 34. 雑談 サーバレスだからって…。 • Lambdaの数が膨れ上がって大変… 。 →LambdaLayerにより独自ライブラリを作って 開発スピードと品質を保っている。 • 仕様書とか大変…。 仕様書は整理は後回しになりがちだが、APIGatewayのモデルを利用し IF をswagger (OpenAPI)でexportできるようにしてる。 • デプロイも大変… 。 Codepipeline codeBuild codeDeploy で自動化も がんばっている。(now) AWS Lambda AWS Lambda AWS Lambda AWS Lambda AWS Lambda AWS Lambda SBDLib Lambda layer
  35. 35. API Data WEB Socket 分析 Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon DynamoDB AWS Lambda Amazon Cognito Amazon ElastiCache Amazon Elasticsearch Service Amazon Athena Amazon API Gateway InstancesApplication Load Balancer Crawler 分析↑
  36. 36. 分析 Amazon Simple Storage Service Amazon Elasticsearch Service Amazon Athena WEB Socket 分析Data AWS Lambda
  37. 37. ユーザーごとにツールを分ける 従来 excel Amazon Athena
  38. 38. API Data WEB Socket 分析 Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon DynamoDB AWS Lambda Amazon Cognito Amazon ElastiCache Amazon Elasticsearch Service Amazon Athena Amazon API Gateway InstancesApplication Load Balancer Crawler Batch処理→
  39. 39. Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon Elasticsearch Service Data Batch処理
  40. 40. Batch処理 ETL PySpark Amazon RDS S3から クローリング 前処理 GIS処理 ESへ格納 *GIS処理? 元データ ・・・
  41. 41. API Data WEB Socket 分析 Batch処理 AWS Glue Amazon RDS Amazon Simple Storage Service Amazon DynamoDB AWS Lambda Amazon Cognito Amazon ElastiCache Amazon Elasticsearch Service Amazon Athena Amazon API Gateway InstancesApplication Load Balancer Crawler
  42. 42. 自動運転ありがとう 各地の交通課題は切実…
  43. 43. 日本は自動運転の実用化に最適 •超高齢化社会 •高い人件費 •強い自動車メーカー •安倍首相の後押し •世界と戦えるIT企業 48
  44. 44. いつものWeb技術でリアル世界の大きな課題を解決する システム自動運転車 • 地域の課題解決 • 新しい移動を作る
  45. 45. 日本の競争力を維持する • 自動車産業は日本経済の大黒柱 • IT業界の広告費等も自動車産業に大きく支えられている 50 写真:アフロ
  46. 46. そのためには みなさんの力が必要です モビリティ領域のシステム/サービス開発に目を向けて欲しい 世界に負けないモビリティサービスを一緒につくっていきましょう!

×