<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>タイムスタンプ on Physical AI Hub</title>
    <link>https://physicalaihub.net/tags/%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97/</link>
    <description>Recent content in タイムスタンプ on Physical AI Hub</description>
    <generator>Hugo</generator>
    <language>ja-jp</language>
    <lastBuildDate>Fri, 06 Mar 2026 00:23:05 +0900</lastBuildDate>
    <atom:link href="https://physicalaihub.net/tags/%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ロボットセンサーの時刻同期設計：カメラ・LiDAR・IMUのデータを正しく重ねる方法</title>
      <link>https://physicalaihub.net/posts/robot-sensor-time-synchronization/</link>
      <pubDate>Fri, 06 Mar 2026 00:23:05 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-sensor-time-synchronization/</guid>
      <description>&lt;p&gt;センサー融合では、値の精度だけでなく「いつ取得した値か」の定義が結果を左右します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;カメラ・LiDAR・IMUの時刻同期では、近いタイムスタンプのメッセージを組み合わせるだけでは不十分です。まず、各センサーがどのクロックを使い、タイムスタンプが取得時刻、露光時刻、スキャン時刻、受信時刻のどれを表すのかを確認します。そのうえで、可能な範囲ではPTP、PPS、外部トリガーなどを使って共通の時間基準を構築し、残った固定オフセットやドリフトをログから推定します。&lt;/p&gt;&#xA;&lt;p&gt;補正では、センサー時刻を基準時刻へ変換し、IMUの状態補間、LiDARのデスキュー、カメラの露光時刻モデルを適用します。最後に、共通イベントの時刻差、運動信号の相関、推定残差、再投影誤差を確認します。ROS 2のApproximateTimeはメッセージの対応付けには使えますが、センサー内部の時計を直す機能ではありません。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ時刻同期が問題になるのか&#34;&gt;なぜ時刻同期が問題になるのか&lt;/h2&gt;&#xA;&lt;p&gt;センサーフュージョンでは、同じ「時刻」のデータを重ねているつもりでも、実際には異なる時間基準、単位、エポックを参照していることがあります。センサーが生成した時刻をドライバがホスト受信時刻に置き換えている場合もあります。&lt;/p&gt;&#xA;&lt;p&gt;ずれは、主に四つに分けて考えます。一定に近い固定オフセット、クロック周波数の差によるドリフト、通信・ドライバの可変遅延、タイムスタンプが示す物理的な時刻の違いです。最後の問題は、数値に固定値を加えるだけでは解消できません。角速度をω、時刻誤差をΔtとすると、短時間近似では角度誤差は概ね|ω|×|Δt|に比例します。高速回転や急加速、動体追跡、点群の画像投影ほど同期ずれの影響が大きくなります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;前提となる時刻の意味&#34;&gt;前提となる時刻の意味&lt;/h2&gt;&#xA;&lt;p&gt;ROS 2ではSystem Time、Steady Time、ROS Timeが区別されます。ROSの時刻とセンサーのハードウェア時刻が自動的に同一になるわけではありません。IMUメッセージのHeader stampは測定時刻として扱われますが、メッセージ定義だけでは、センサーのクロックやドライバが時刻を付与した位置までは保証されません。&lt;/p&gt;&#xA;&lt;p&gt;カメラでは、フレーム時刻が露光開始、露光中心、露光終了、転送完了のどれを示すかを確認します。ローリングシャッターでは行ごとに露光時刻が異なるため、フレーム全体を単一時刻の観測として扱えるとは限りません。&lt;/p&gt;&#xA;&lt;p&gt;LiDARの1スキャンも瞬間的な観測とは限りません。ビーム、列、パケットなどで取得時刻が異なる場合があるため、点ごとの時刻、またはセンサー固有のスキャン時刻モデルを使って運動補正します。時刻の提供粒度は機種、ファームウェア、データ形式、ドライバによって異なります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;同期の仕組みと検出方法&#34;&gt;同期の仕組みと検出方法&lt;/h2&gt;&#xA;&lt;p&gt;PTP（IEEE 1588）は、ネットワーク上のクロック間のオフセットと遅延を測定して同期する標準です。ハードウェアタイムスタンプを使える実装では、ソフトウェアだけで時刻を取得する場合より不確実性を抑えやすくなります。ただし、精度はネットワーク遅延の対称性、タイムスタンプ方式、プロファイル、実装に依存します。ptp4lでネットワーク上のクロックを同期しても、LinuxのPHC、システムクロック、センサーのタイムスタンプ経路まで自動的に同一になるわけではありません。&lt;/p&gt;&#xA;&lt;p&gt;PPSは時刻基準をそろえる手段、外部トリガーは取得イベントをそろえる手段です。ただし、対応機種、ファームウェア、ドライバによって意味が異なります。同期パルスを入力できても、センサー内部の取得からアプリケーション到着までの遅延は別途検証します。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;各センサーの時計とタイムスタンプを共通の基準時刻へ変換し、共通タイムラインでデータを対応付ける概念図。PTPなどを有効にしても、センサーのタイムスタンプ経路や取得時刻の意味は別途確認が必要です。&#34;&gt;flowchart LR&#xA;  subgraph S1[&#34;センサー側の時刻&#34;]&#xA;    C[&#34;Camera Clock\n露光時刻モデル&#34;]&#xA;    L[&#34;LiDAR Clock\n点・パケット・スキャン時刻&#34;]&#xA;    I[&#34;IMU Clock\n測定時刻&#34;]&#xA;  end&#xA;&#xA;  P[&#34;PTP・PPS・外部トリガー\n利用可能な同期手段&#34;]&#xA;  R[&#34;Reference Clock\n共通の基準時刻&#34;]&#xA;  T[&#34;時刻変換\nt_ref = α_i × t_i + β_i&#34;]&#xA;  X[&#34;共通タイムライン\n対応付け・補間・融合&#34;]&#xA;&#xA;  P -. &#34;クロックまたは取得イベントを同期&#34; .-&gt; C&#xA;  P -. &#34;クロックまたは取得イベントを同期&#34; .-&gt; L&#xA;  P -. &#34;クロックまたは取得イベントを同期&#34; .-&gt; I&#xA;  C --&gt; T&#xA;  L --&gt; T&#xA;  I --&gt; T&#xA;  R --&gt; T&#xA;  T --&gt; X&#xA;&#xA;  D[&#34;固定オフセット β_i\nクロックレート差 α_i&#34;]&#xA;  D -. &#34;ログから推定&#34; .-&gt; T&lt;/pre&gt;&lt;figcaption&gt;各センサーの時計とタイムスタンプを共通の基準時刻へ変換し、共通タイムラインでデータを対応付ける概念図。PTPなどを有効にしても、センサーのタイムスタンプ経路や取得時刻の意味は別途確認が必要です。&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;検出の第一歩は、複数センサーで共通イベントを観測することです。同期パルスや外部イベントについて、各センサーが記録した時刻差を複数回測定し、平均値と分散を求めます。平均的な差は固定オフセット、分散はイベント検出や通信のばらつきを考える材料になります。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
