AWS IoT FleetWise による車両データの収集および可視化のデモを試してみた

2023.12.05

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

先週開催された AWS re:Invent 2023 で発表された IoT 関連の数少ないアップデートのうちの一つに、AWS IoT FleetWise の新機能 vision system data のプレビュー提供がありました。

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

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

さて私もこの vision system data を早速試してみたいところですが、そもそも AWS IoT FleetWise 自体を触ったことがありませんでした。そこで何か良い教材が無いか探していたところ、下記の「Edge Agent Developer Guide」というデモが良さそうだったので試してみました。

デモを試してみた

IoT FleetWise が利用可能なリージョンは、バージニア北部(us-east-1)またはフランクフルト(eu-central-1)の 2 つです。今回は us-east-1 で試してみます。

デモ環境の構築

まず、デモ用に公開されている CloudFormation テンプレートでスタックを作成します。このテンプレートで必要なリソースをすべて作成できます。またスタックのパラメーターの指定によりシミュレートする車両数などを変更することもできます。

作成されたスタックです。色々作成されていますが、ポイントとなるリソースは IoT Thing と EC2 インスタンスです。EC2 インスタンス上では、車両によるセンサーデータの生成がシミュレートされ、また FleetWise のソフトウェア(Edge Agent)により IoT Thing を介して AWS クラウドにデータが送信されます。FleetWise のリソースはこの送信されるデータのコントロールプレーンとなりますが、この時点ではまだ作成されず、後述のデモスクリプト実施により作成されます。

デモの実施

マネジメントコンソールで AWS CloudShell を開きます。本章のコマンドは CloudShell で実行します。

まず以下のコマンドを実行して、最新の IoT FleetWise ソフトウェアを GiitHub からクローンし、またその他依存関係をインストールします。

git clone https://github.com/aws/aws-iot-fleetwise-edge.git ~/aws-iot-fleetwise-edge \
&& cd ~/aws-iot-fleetwise-edge/tools/cloud \
&& sudo -H ./install-deps.sh

デモスクリプトを実行します。実行完了に 2,3 分ほど要します。

./demo.sh --vehicle-name fwdemo

スクリプトの実行により作成された IoT FleetWise リソースをコンソールで確認してみます。

Signal catalog(シグナルカタログ)には 278 個の Signals(シグナル)が作成されています。車両モデルを作成すると自動で作成されるシグナルは、車両モデルの再作成に利用できます。

各シグナルにはメタデータが設定されており、選択して表示することができます。

Vehicle models(車両モデル)です。車両モデルは Vehcles(車両)のフォーマットです。

車両モデルはシグナルカタログから構成されます。同じ車両モデルから作成された車両は同じシグナルカタログを継承します。

Vehicles(車両)は車両モデルのインスタンスです。Vehicle.Color: Redのように一部の車両モデルから継承した Attributes(属性)の一部の値を変更することができます。

Campaigns(キャンペーン)は、車両からデータを収集する方法を定義します。

キャンペーンでは収集対象のデータの条件(Expression)やセンサーを表すシグナル(Signals to collect)が定められています。ここではブレーキ圧力(Vehicle.ABS.DemoBrakePedalPressure)が 7000 を超えた時にエンジントルク(Vehicle.ECM.DemoEngineTorque)とがキャプチャされて収集されるようになっています。

また収集したデータの保管先も定義されています。このキャンペーンでは、データは Amazon Timestream に保管されます。

TimeStream のデータベースおよびテーブルは、デモスクリプト実行時に合わせて作成されています。

そしてスクリプト実行により EC2 インスタンス上のシミュレートされた車両からデータが FleetWise 経由で TimeStream に送信されます。そして Timestream 上のデータを元にセンサーデータの時系列グラフが作成され、HTML ファイルとしてローカルに保存されます。

HTML ファイルはこちらです。グラフからは約 30 秒の間に断続的にブレーキ圧が 8000 近くになり、そのタイミングでのみエンジントルクが記録されています。キャンペーンの $variable.Vehicle.ABS.DemoBrakePedalPressure> 7000 の定義通り、ブレーキ圧が 7000 を超えた時のみその他のデータが収集されていることが分かります。

環境構成および処理の流れ

今回のデモの環境構成および処理の流れを表す図は下記が分かりやすいです。 AWS IoT FleetWise Now Generally Available – Easily Collect Vehicle Data and Send to the Cloud | AWS News Blog より引用

  • 車両にデプロイされた Edge Agent はセンサーや ECU(Electronic Control Units)と接続されます。
  • IoT FleetWise から Edge Agent に、キャンペーンで定義したデータ収集スキーマが送信されます。(①)
  • Edge Agent はデータ収集スキーマに従って、車両から IoT Core にデータを送信します。(②)
  • IoT Core と連携している FleetWise は、Amazon TimeStream などの領域にデータを保管します。(③)

IoT FleetWise と IoT Core は連携するための明示的な設定が見当たらなかったのですが、FleetWise が Vehicle 名と名前が一致している IoT Thing に裏側で連携するようになっているようです。

おわりに

AWS IoT FleetWise による車両データ収集および可視化のデモを試してみました。今までの私と同様に IoT FleetWise に敷居を感じてまったく触ったことも無いという人も多いと思うので、そのような人でもリソース作成やデータ収集、可視化まで AWS 上だけで完結して行える良い Getting Started だと思いました。

IoT TwinMaker のような物理システムの可視化を行うサービスがとても好きなので、IoT FleetWise も触っていてとてもワクワクしました。ただこのサービスは 2021 年の re:Invent で発表されてから 2 年経つサービスですが「やってみた」記事や事例はほとんど見かけず、また機能の提供リージョンも 2 つと限られているため、サービスとしてはまだまだ普及はしていなさそうです。しかし CASE(Connected、Autonomous/Automated、Shared、Electric)は今後必ず盛り上がる分野ではあると思うので、その一端を知るために FleetWise も触っていて損は無いと思います。

また vision system data のデモもあるたみたいなので、次回はこちらを試してみたいと思います。

参考

以上