intdashの時刻同期の仕組みについて知りたい

intdashの特徴のひとつに、複数のデータソースからのデータを同一の時系列で同期して収集できることがあります。この時刻同期の仕組みを解説します。

intdashでは、収集するデータに対し、なるべくセンサーから物理的に近いところでタイムスタンプを付与しています。例えばCAN信号であれば、アプトポッド製のCAN-USB Interfaceにて、±10マイクロ秒の精度でタイムスタンプを付与します。動画の場合も同様に、ウェブカメラから上がってきたデータに、Terminal Systemでタイムスタンプを付与します。

また、intdashでは、時系列データの時刻を、「基準時刻」(=計測開始時刻)と、その基準時刻からの「経過時間」に分解して管理しています。

例えば、intdashを使って加速度の計測を始めると、データポイントは以下のように記録されます(数値は説明用の例です)。

計測Aで取得された加速度のデータポイント:

  • 「基準時刻(=計測開始時刻)からの経過時間12.345秒、そのとき加速度は1.23m/s²」

  • 「基準時刻からの経過時間12.456秒、そのとき加速度は2.34m/s²」

  • 「基準時刻からの経過時間12.567秒、そのとき加速度は3.45m/s²」

  • (続く)

上記とは別に、この計測Aの基準時刻が以下のように記録されます。どの時計を使用するかによって時刻の値は異なるため、複数の基準時刻を記録することができます。

計測Aの基準時刻:

  • 「エッジのリアルタイムクロックによれば、計測Aの基準時刻は2020年10月01日 01時23分45.678秒」

  • 「GPS時計によれば、計測Aの基準時刻は2020年10月01日 01時23分45.789秒」

時刻を「基準時刻」と「経過時間」に分解し、複数の基準時刻を管理できるようにすることで、複数の同期手法を併用したり、後から同期手法を切り替えたり、手動で正しい時刻情報を設定し直したりすることができます。

また、後から時刻を合わせる場合でも、基準時刻のみを更新すればよく、各時系列データの時刻をすべて更新する必要はありません。