AWS IoT Fleetwise で vision system data の収集と変換を行うデモをやってみた #AWSreInvent

2023.12.07

こんにちは、CX 事業本部 Delivery 部の若槻です。

AWS IoT FleetWise で、 vision system data(ビジョンシステムデータ)がプレビュー機能として発表されました。

AWS IoT FleetWise は、車両のセンサーなどから取得した IoT データをネットワーク経由で収集することに特化したマネージドサービスです。そして、今回発表された vision system data により、車両に搭載されたカメラや LiDER により撮影された画像やビデオなどの非構造化データの収集や変換を簡単に行うことが可能となります。ちなみにまだドキュメントは無いようです。

DevelopersIO ブログの速報記事は下記となります。

さて、実際に試してみようにも少し敷居が高そうなこの新機能ですが、それを見越してか vision system data の収集から変換までを行える丁寧なデモが公開されていました。せっかくなので、このデモを試してみたいと思います。

デモを試してみた

このデモでは EC2 インスタンスで立てた Jupyter Notebook サーバーに SSH で接続し、デモページのコマンドをノートブックで実行していきます。

デモの環境構成とプロセスは下記の図が分かりやすいです。車両をデモンストレーションするサーバー上で ROS 2 によるデータ生成を行い、また IoT FleetWise 側で ROS に則った Signal Catalog および Decoder manifest の定義を行います。

ここで ROS 2 とは、Robot Operating System の最新バージョンのことで、ロボットアプリケーションに使用されるフィールドが今回のデモでも使用されます。

以降、デモで試した大まかな実施結果を示していきます。

FWE のプロビジョニングと開始

IoT FleetWise は、車両内の Linux ベースのハードウェア上で実行される「Reference Implementation for AWS IoT FleetWise」(FWE) と呼ばれるオープンソース ソフトウェアと、車両のモデル化や、取得するデータをスキーまで定義するクラウドリソースを管理できる IoT FleetWise クラウドの 2 つのコンポーネントで構成されています。

車両にプロビジョニングされた FWE はセンサー類からのデータを収集し、クラウドに送信します。FWE のプレビルドのバイナリの最新リリースは下記の GitHub リポジトリからダウンロードできます。

そして Jupyter Notebook を実行中の EC2 インスタンス上で、車両のデモンストレーションも行うために FWE をプロビジョニングして開始します。

IoT FleetWise のリソースの作成

Signal Catalog は、車両シグナルを表す階層化されたスキーマ仕様で、Vehicle Signal Specification (VSS) に基づいています。Signal Catalog は、車両のモデル化に使用されます。

Decoder manifest は、車両ネットワーク(CAN: Controller Area Network など)からのバイナリデータを人間が読めるように変換するためのデコード命令です。

今回作成される Signal Catalog には Vehicle.Cameras.Front.Image というフロントカメラを表すシグナルが含まれています。

Vehcle(車両)は、Vehcle model(車両モデル)が適用されて作成されます。同じ Vehcle model からシグナルが標準化された複数の Vehcle を作成することができます。

Campaign(キャンペーン)は、車両データの収集のされ方を定義します。

今回作成された Campaign は、適用開始から 10000 ミリ秒間に以下の 4 つのシグナルのデータを収集します。

  • Vehicle.Cameras.Front.Image
  • Vehicle.Speed
  • Vehicle.Airbag.CollisionIntensity
  • Vehicle.Acceleration

上記は Time-based のコレクションスキーマとなります。一方で、ブレーキ圧が 8000 を超えた時など一定条件時にのみデータを収集するコレクションスキーマは Condition-based となります。今回は時間ベースで連続的に車載映像を収集するようになっています。

またこの Campaign の収集データの送信先は S3 バケットとなっています。FleetWise では送信されたデータの格納先として Amazon Timestream と Amazon S3 をサポートしていますが、今回の ROS 2 のような非構造化データの場合は S3 を選択します。

データの収集

Campaign が Vehcle にプロビジョニングされると、FWE は車両からデータを収集し、クラウドに送信します。

プロビジョニングからしばらく待つと、収集されたデータは S3 バケットの以下の 3 つのフォルダに格納されます。

  • raw-data/:FWE によって直接アップロードされ、Edge から収集後にほぼリアルタイムで利用可能になります。
  • processed-data/:FW パイプラインによってデコードされたデータが格納されます。
  • unstructured-data/:データから抽出されたバイナリフィールドデータがファイルとして格納されます。

processed-data/ フォルダからダウンロードしたデータを、ヘルパースクリプトで次のように視覚化することができます。10000 ミリ秒間のデモ車両からの収集データがプロットされたグラフを生成できています。

また unsctructured-data/ フォルダからダウンロードしたデータは、次のようにフロントカメラで撮影された ROS 2 データが jpg 形式に変換され、利用可能となっていました。

おわりに

AWS IoT Fleetwise で vision system data の収集と変換を行うデモをやってみました。

コネクティッドカーで収集できるデータの活用においては、ブレーキやトルクなどから取得できる数値などの構造化データだけでなく、カメラや LiDAR などから取得できる画像やビデオなどの非構造化データも組み合わせることによってより高度な活用が可能となります。それらの異なるタイプのデータの収集を変換まで含めて一つのマネージドサービスで行えるようになるというのは、かなり嬉しいアップデートだったのではないでしょうか。

参考

以上