Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ミニチュアカーで始める コネクティッドカープロトタイピング

ミニチュアカーで始める コネクティッドカープロトタイピング

車両データ収集に特化したAWSマネージドサービスIoT FleetWiseにミニチュアカーに搭載したRaspberryPiからデータ収集をやってみたお話をさせていただきました。
実際の車両のプロトタイピングを意識して、CANネットワークを構成してセンサーデータを収集しているのがポイントです。

Avatar for niizawat

niizawat

May 23, 2024
Tweet

More Decks by niizawat

Other Decks in Technology

Transcript

  1. 自己紹介 • 新澤 忠士 • 2022年10月入社 • 前職は自動車部品メーカーでカーナビ・ドラレコなど 車載機器向けシステム開発に従事 •

    製造ビジネステクノロジー部所属 • クルマ好き • 好きなAWSサービス • CDK, IoT FleetWise, StepFunctions
  2. 5 クルマの通信 • 様々なマイコン(ECU)が相互通 信してクルマを制御 • 用途に応じて異なる通信方式 • CAN,CAN-FD, LIN:

    低〜中速/少量 • 車載Ethernet: 高速/大量 • コネクティッドカーとは • 外部システムと通信 • 緊急通報 • 自動車保険ドラレコ特約 • 位置情報検索、地図更新 • データ収集 ブレーキ制御 エアバッグ制御 ライト制御 エンジン制御 ドア制御 バックカメラ トランスミッション制御 コックピット 空気圧センサ 雨滴センサ コックピット トランスミッション制御 バックカメラ “R” シフトレバー を”R”に入れた カメラをON シフト表示を”R”に 変更 “R” “R” シフトレバーをバック(“R”)に入れた時の通信イメージ メッセージはバスに接続さ れたノードにブロードキャ ストされる ※あくまでイメージです
  3. IoT FleetWiseの概要 • re:Invent 2021で発表された車両データ収集に特化 したマネージドサービス • 設定の定義だけのノーコードでデータ収集 • 車両側でFleetWise

    Edge Agentを実行 • CAN等の通信回線からデータを収集・送信 • re:Invent 2023で、カメラ画像やLiDERデータなど 非構造化データ(Vision System Data)を扱うアップ デートを発表(preview) 6
  4. 7 IoT FleetWise Edge Agent(FWE Agent)の概要 • IoT Coreのモノとして動作 •

    実行環境はLinux • リファレンス実装の提供(Github) • aws-iot-fleetwise-edge • デプロイ方法 • Dockerイメージ(Public ECR) • ビルド済みバイナリ ← 今回はコレ • ソースからビルド
  5. 9 ベース車両 • レゴ テクニック ラリーカー 42077 • 全長40cm,幅20cmくらい •

    割と大きい(1/10スケール?) • 生産終了品のためヤフオク で入手
  6. 10 通信するマイコンたち • Raspberry Pi Zero 2W • 小さいRaspberry Pi(65mm

    x 30mm) • Raspberry Pi OS(Debian) • FWE Agentを実行 • M5Stackシリーズ • プロトタイピング向けマイコンモジュール • 各種センサーがケーブル1本で接続可能 • レゴ穴付き(重要!)
  7. 11 クルマ側の構成 RPi Zero 2W FWE M5Stack Core2 Light Sensor

    Ultra Sonic Sensor M5StickC Controller M5Stamp S3 DC Motor Servo Motor CAN Bus In-Car IoT Core IoT FleetWise 駆動系 センサー系 操作系 コントローラ入力値 センサーデータ 収集対象データ Bluetooth 照度を取得 前方の物体と の距離を取得 コントローラ入力値
  8. 12 こうなった Ultra Sonic Sensor CAN Unit * 3 操作系

    (M5StickC) 駆動系 (M5StampS3) FWE Agent (RPi Zero 2W) センサー系 (M5Stack Core2)
  9. クラウド側の構成 15 FWE Agent IoT Core IoT FleetWise データ保存先 S3

    (JSON or parquet) Timestream 車両 車両モデル デコーダー マニフェスト モデル マニフェスト フリート キャンペーン 証明書 モノ ポリシー デコード <protobuf> 認証 キャンペーン <protobuf> 収集データ シグナル カタログ 車両 or フリート
  10. 16 IoT FleetWise の構築 1. IoT モノをプロビジョニング 2. シグナルカタログを定義 3.

    車両モデルを定義 4. 車両を定義 5. フリートを定義(Option) ※今回は無し 6. キャンペーンをデプロイ
  11. 17 IoT FleetWise の構築(1) IoTモノのプロビジョニング • IoT Coreと同じ(登録・証明書発行・権限付与) • FWE

    AgentのGithubリポジトリでプロビジョニング スクリプトが提供されている • 登録,証明書ファイル保存までやってくれる • 各ファイルを/etc/aws-iot-fleetwiseに格納しておく
  12. 18 IoT FleetWise の構築 1. IoTモノをプロビジョニング 2. シグナルカタログを定義 3. 車両モデルを定義

    4. 車両を定義 5. フリートを定義(Option) ※今回は無し 6. キャンペーンをデプロイ
  13. 19 IoT FleetWise の構築(2) シグナルカタログ • Vehicle • Body •

    Lights • Powertrain • ElectricMotor • Chassis • Tire • ADAS • CruiseControl • 車両データを階層構造で表現 • Vehicle Signal Specification(VSS)で 仕様化されている https://github.com/COVESA/vehicle_signal_specification • カスタム定義も可能 • 例:ヘッドライトの点灯状態 • Vehicle.Body.Lights.Beam.IsOn
  14. 20 IoT FleetWise の構築 1. FWE Agentをデプロイ 2. シグナルカタログを定義 3.

    車両モデルを定義 4. 車両を定義 5. フリートを定義(Option) ※今回は無し 6. キャンペーンをデプロイ
  15. 21 IoT FleetWise の構築(3) 車両モデル • 車両モデル • いわゆる「車種」 •

    車両で取得可能なシグナルとそのデコード方法を表現 • 実体はモデルマニフェスト+デコーダーマニフェスト • モデルマニフェスト • 車両が取得可能なシグナルをシグナルカタログから選択 • デコーダーマニフェスト • モデルマニフェストで選択したシグナルのデコードルールを 定義
  16. IoT FleetWise の構築(3) 車両モデル • Powertrain.ElectricMotor.Speed • モーターの回転数 • Chassis.SteeringWheel.Angle

    • ハンドルの角度 • Exterior.LightIntensity • 外部の明るさ • ADAS.ObstacleDetection.IsWarning • 障害物検知 interfaceId: 1 (can0 interface) type: "CAN_SIGNAL" fullyQualifiedName: "Vehicle.Powertrain.ElectricMotor.Speed" canSignal: name: "ElectricMotor_Speed" messageId: "10" isBigEndian: "false" isSigned: "false" startBit: "0" length: "8" factor: "1" offset: "0" 22 モデルマニフェスト デコーダーマニフェスト 車両モデル
  17. 23 IoT FleetWise の構築の流れ 1. FWE Agentをデプロイ 2. シグナルカタログを定義 3.

    車両モデルを定義 4. 車両を定義 5. フリートを定義(Option) ※今回は無し 6. キャンペーンをデプロイ
  18. 25 IoT FleetWise の構築の流れ 1. FWE Agentをデプロイ 2. シグナルカタログを定義 3.

    車両モデルを定義 4. 車両を定義 5. フリートを定義(Option) ※今回は無し 6. キャンペーンをデプロイ
  19. 26 IoT FleetWise の構築の流れ 1. FWE Agentをデプロイ 2. シグナルカタログを定義 3.

    車両モデルを定義 4. 車両を定義 5. フリートを定義(Option) ※今回は無し 6. キャンペーンをデプロイ
  20. IoT FleetWise の構築(6) キャンペーン • いつ、なにを、どこに収集するかを定義 • タイミング • 定期的

    or 条件一致(ex. 速度が50km/h以上, 障害物検知時) • 対象 • 車両モデルのシグナルから選択 • 保存先 • Timestream or S3 27
  21. クラウド側の構成(再掲) 28 FWE Agent IoT Core IoT FleetWise データ保存先 S3

    (JSON or parquet) Timestream 車両 車両モデル デコーダー マニフェスト モデル マニフェスト フリート キャンペーン 証明書 モノ ポリシー デコード <protobuf> 認証 キャンペーン <protobuf> 収集データ シグナル カタログ
  22. IoT TwinMakerで可視化 • デジタルツインのマネー ジドサービス • 3Dモデルに現実の状態を 反映 • 3Dモデルどうやって準備

    する問題… • 3D CADのスキルがあればよ いがITエンジニアにはハー ドル高い 31 引用元: https://aws.amazon.com/jp/blogs/news/introducing-aws-iot-twinmaker/
  23. 32 IoT TwinMakerで可視化 • Brick Link Studio • レゴブロックをバーチャ ルに組立てられるアプリ

    • レゴモデルの試作・設計 にも便利。組立手順書も 作成可能 • このデータをTwinMaker で使えるように変換 • TwinMakerはglTF形式のイ ンポートをサポート
  24. 33 IoT TwinMakerで可視化 • Blender経由で変換 1. StudioからLDraw形式 でエクスポート 2. BlenderにLDrawインポ

    ートアドオンを有効化 してインポート 3. BlenderからglTF形式で エクスポート LDraw形式 glTF形式
  25. 36 まとめ • ノーコードで車両データ収集フローを構築可能な IoT FleetWise • まだpreviewだがイメージデータ収集もインパクト大 • IoTプロトタイピング楽しいよ!

    • レゴだと制作から可視化まで色々ハードル下がる • マイコンのコードを書くとデバイスの理解度がめっちゃ 上がる (気がする) • エッジデバイス開発に馴染みの薄いIoTエンジニアさん に強くオススメ