aptpod Tech Blog

株式会社アプトポッドのテクノロジーブログです

SDK入門⑤〜iPadでData Visualizerを見る会〜

Data VisualizerはPCでしか動かないと思っているみなさん、

その通りです。

こんにちは、ソリューションアーキテクトの伊勢です。

こちらは aptpod Advent Calendar 2024 12月20日の記事です。


intdashのビューアーであるData Visualizerを

スマホやタブレットで利用したいというご要望をいただくことがあります。

今回はintdash SDKを使ってiPadでData Visualizerを"見る"方法をご紹介します。

はじめに

VM2M Data Visualizerとは

時系列データを可視化するダッシュボードアプリケーションです。

www.aptpod.co.jp

エッジからintdashサーバーに送られるデータのリアルタイムに可視化や、サーバーに保存された過去データのプレイバックができます。

ダッシュボードは可視化パーツを使ってユーザー自身でレイアウト可能です。


Data VisualizerはMicrosoft EdgeやGoogle Chromeなどのブラウザで動作します。

PCでの細かな設定操作が必要なため、スマホやタブレットには対応していません。

そこで今回はiOSアプリのVM2M Stream Videoを使います。

VM2M Stream Videoとは

iPhoneやiPadで利用できるintdashのビューアーです。

Data Visualizerほどのカスタマイズ性はありませんが、1つの動画と1つの音声を手軽にLIVE再生/プレイバック再生できます。

VM2M Stream Video V2

VM2M Stream Video V2

  • Aptpod Lab
  • ビジネス
  • 無料
apps.apple.com

やってみた

全体構成

Data Visualizerの画面自体を映像データとしてストリームします。

全体構成図

計測データをData Visualizerで再生し、PC画面をキャプチャしてリアルタイムAPI用intdash SDKでアップストリームします。

キャプチャ映像をStream Videoでダウンストリームします。

これでData Visualizerと同じレイアウトで計測データを見ることができます。1

あわせて、元計測の音声も再生します。

インストール

クライアントライブラリ

SDK入門③のリアルタイムAPI用クライアントライブラリを利用します。

サンプルプログラム用ライブラリ

SDK入門④の映像加工・エンコード用のライブラリを利用します。

  • OpenCV
  • Gstreamer
  • PyGObject

画面キャプチャのため、MSS(multiple screenshots)をインストールします。

pip install mss

実行結果

エッジで計測を開始し、PCのData VisualizerでLIVE再生します。

今回は車載エッジのGPS、カメラ映像、CANデータをレイアウトしてみました。

PCでData VisualizerのLIVE再生

サンプルプログラムを起動します。2

python lesson5/src/caputure_screen.py  --api_url https://example.intdash.jp --api_token <YOUR_API_TOKEN> --project_uuid <YOUR_PROJECT_UUID> --edge_uuid <YOUR_EDGE_UUID>
  • edge_uuid: 画面キャプチャをアップストリームするエッジ

サンプルプログラム起動

Stream Videoで映像と音声を指定して再生を開始します。

  • Video
    • Edge: 画面キャプチャをアップストリームするエッジ
    • Data Type: h264_frame
    • Data Name: 10/h264
  • Audio
    • Edge: 元計測のエッジ
    • Data Type: pcm
    • Data Name: 150/pcm

iPadでVM2M Stream VideoのLIVE再生

VM2M Stream Video画面

Data Visualizer〜Stream Videoの遅延はどのぐらいでしょうか。

Data Visualizerスクリーンと再生映像の表示時刻を比較しました。

表示時刻を比較

遅延時間を確認

179ミリ秒でした。目視での遅延はほぼ感じられません。3

サンプルプログラム

intdash APIアクセス部分は前回と同じため、あまり説明するところはありません。

今回は計測を完了するタイミングをCtrl+Cのプログラム停止時にしています。

        except asyncio.CancelledError:
            self.writer.complete_measurement(measurement.uuid)
            logging.info(f"Completed measurement: {measurement.uuid}")

おわりに

今回はAdvent Calendarということでやや軽めの内容です。

前回のリアルタイム送信を応用して、製品機能の利用範囲を広げてみました。

intdash以外のソフトウェア画面をアップストリームして計測データとあわせて可視化したり、活用の幅が色々と考えられそうです。

リンク

おかげさまでSDK入門シリーズも5つ目の記事となりました。

intdash SDKをもっと知りたい!という方はこちらからご覧ください。


  1. ダウンストリームされるのはキャプチャ映像であり、Stream Videoでは参照のみできます。レイアウトの変更はできません。
  2. サンプルプログラムはGitHubで公開しています。
  3. 自宅のWifi環境で計測しました。キャプチャとエンコードをするPC性能にも依存します。