當感測器在時間上不一致時,機器人可能會顯得幾何校正錯誤。移動物體、旋轉的底座或擺臂會將時鐘偏移轉化為空間誤差。因此,時間同步需要透過裝置、網路、主機和 ROS 時間戳進行物理取樣的端對端對映。
NTP 和 PTP 透過不同的機制和部署假設同步時鐘。硬體時間戳將資料包事件移近網路介面,但不會自動標記感測器暴露時間。應用程式必須瞭解每個時鐘域和轉換。
請將此指南與機器人感測器融合指南及TF2 座標係指南結合使用。測試失效和恢復,而不僅僅是穩態偏移。
重新校正幾何體前的疑似時間
如果點雲跟蹤運動,攝影機和光達僅在移動時不一致,或估計器創新隨速度增長,在更換外因子前,先比較時間戳和資料年齡。固定時間偏移會產生靜態校正無法消除的運動依賴空間偏置。
在多個速度和方向上重現症狀。估算觀察到的位移是否與速度乘以時間偏移相匹配。保留原始源戳和接收時間,以便後續同步工作能基於同一資料進行評估。

每個時鐘域的清點
列出感測器振盪器、攝影機或光達時鐘、 GNSS 時間、網路介面 PTP 硬體時鐘、主機系統時鐘、加速器時鐘、控制器時鐘和模擬時間。記錄紀元、解析度、計數迴繞和復位行為及執行轉換的元件。
沒有時鐘身份的時間戳值是歧義的。為每個資料產品命名基準時鐘,並說明其與機器人系統時間的關係。避免假設兩個完全相同的裝置型號共用一個時鐘。
| 時鐘域 | 典型事件 | 改裝車主 | 失效模式 |
|---|---|---|---|
| 感測器時鐘 | 曝光或取樣 | 驅動或韌體 | 重置還是漂移 |
| NIC PHC | 資料包入口或出口 | PTP 堆疊 | 非同步介面 |
| 系統時鐘 | 主機應用時間 | PHC2sys 或 NTP | 步進或轉向 |
| ROS 時間 | 資訊與應用時間 | 節點設定 | 模擬時間與實際時間混用 |
| 控制器時鐘 | 致動樣本 | 門戶 | 未知的運輸延誤 |
分別是偏移、漂移和抖動
偏移是時鐘之間的瞬時差值。漂移是這種差值隨時間的變化。抖動是測量或修正的短期變化。一個小的平均偏移可以掩蓋大尾部、週期性漂移或主時鐘切換後的時間跳變。
報告分佈、最大觀測值、取樣間隔和測試時長。溫度和負載上的圖幅偏移。定義應用閾值,基於運動和融合誤差,而非通用同步營銷數值。
從定時路徑中選擇 NTP 或 PTP
NTP 能夠同步網路系統時鐘,並且廣泛可用。 PTP 可以使用硬體時間戳、透明或邊界時鐘以及大主時鐘來減少軟體和網路的不確定性。實際效能取決於拓撲結構、時間戳位置、路徑不對稱性和裝置支援。
RFC 5905 檔案 NTPv4。 PTP 部署應遵循支援的設定檔和裝置。協議名稱不確定應用準確性;測量的是機器人實際消耗的時間戳。

設計主時鐘、時鐘域與故障切換
PTP 參與者在域內選擇或跟隨一個主時鐘(Grandmaster)。確定源是基於 GNSS 的、本地的還是冗餘的,以及多個網路或機器人的分離方式。驗證優先順序設定和最佳主選過程的行為。
測試主時鐘丟失、競爭時鐘、鏈路中斷與返回。記錄時間跳變、守時保持和收斂過程。如果時間戳在同一次任務執行中發生跳變,優雅的監控故障切換仍可能無法接受感測器融合。
| 測試階段 | 度量 | 注射狀態 | 申請反應 |
|---|---|---|---|
| 穩定怠速 | 偏移與抖動 | 沒有負載 | 正常效度 |
| 網路負載 | 尾部偏移 | 競爭性交通 | 維護或退化 |
| 時鐘損耗 | 殘留漂移 | 主時鐘被移除 | 旗幟時間不確定 |
| 恢復 | 階躍與收斂 | 主時鐘恢復 | 隔離期間 |
| 重啟 | 時代與單調性 | 感測器或主機重啟 | 新回合或重新對映 |
硬體時間戳用於定位資料包事件
硬體時間戳記錄資料包的進出資料包在網路介面附近,減少作業系統排程的不確定性。 Linux 透過其 PTP 子系統 PTP 硬體時鐘支援,但驅動程式和網路卡能力各不相同。
Linux PTP 硬體時鐘檔案描述了該介面。確認哪些資料包和方向被硬體印章。 PHC 時間戳仍代表網路事件,不一定是物理感測器樣本。
瞭解 ptp4l 和 phc2sys 的角色
ptp4L 實現了支援的網路介面 PTP,可以將 PHC 與大主同步或執行其他時鐘角色。 PHC2sys 通常同步系統時鐘和 PHC。執行一個時鐘並不證明另一個時鐘已對齊。
請閱讀目前的 ptp4l 和 phc2sys 檔案以獲取選項和設定檔。歸檔設定、介面、傳輸、域、時鐘類和紀錄統計,並附有測試結果。
物理取樣附近的時間戳
最有用的感測器時間戳表示曝光開始、曝光中點、光達點火、 IMU 取樣或其他定義的物理事件。 USB 傳輸或處理後建立的驅動時間戳包含時鐘同步無法消除的可變延遲。
詢問感測器供應商或檢查驅動程式碼以辨識事件和時鐘。單獨測量傳輸延遲。對於滾動快門相機或掃描光達,一個時間戳可能無法描述每個畫素或點;下游演算法可能需要每行或每點的時間。
在 ROS 驅動邊界驗證轉換
驅動程式可利用估計偏移將裝置滴答計數器轉換為系統或 ROS 時間。檢查單元、轉移、啟動收斂、時鐘重置及 use_sim_time 是否更改解釋。在除錯過程中保留原始值和轉換值。
拒絕遠未來、過時或非單調的時間戳。在診斷中標記時間質量。不要在未記錄備用記錄的情況下默默替換無效硬體的到達時間。
測試怠速、負載、損耗和恢復
在網路空閒、真實感測器流量和 CPU 負載下、主訊號或鏈路丟失期間及恢復過程中測量同步情況。包括溫度和長時間,因為振盪器漂移和熱行為可能主導保持。
將時鐘統計資料與應用輸出(如融合殘差、變換後點雲的對齊和指令年齡)相關聯。這證明測量到的時鐘效能是否足以滿足機器人需求,而不僅僅是符合工具閾值。
跨時間不連續點的隔離資料
當時鍾步進、重啟或權限變更時,事件周邊的訊息可能存在模糊的順序。定義隔離區間,重置估計緩衝區,防止舊命令變為目前。重新同步不會修復已被錯誤對映標記的資料。
將不連續點記錄為事件邊界。對於訓練資料,保留故障標記,並透過可追溯規則排除受影響樣本,而非無來源刪除。
接受準確性和恢復並存
驗收要求應說明穩態偏移和抖尾、允許的滯留漂移、檢測時間、不確定性期間的行為以及恢復標準。驗證所需感測器和控制器使用的每一條時鐘路徑。
儲存拓撲和設定。
評估“機器人時間同步:PTP、硬體時鐘與時間戳”時,還應儲存模型版本、機器人設定、校正檔案、測試日期和全部試驗記錄。
只有把這些持續投入與單位成功任務的價值比較,才能判斷方案是否適合擴大。
上線後仍要持續檢查分佈變化、感測器漂移、機械磨損和人工接管原因。
實際專案還應指定資料、模型、控制器和安全流程的負責人,並預先定義回復條件。責任邊界、審批記錄與變更紀錄越清楚,故障發生後越容易停止擴散、定位原因並安全恢復。
- 清點所有裝置、 PHC、系統和 ROS 時鐘。
- 定義每個時間戳背後的物理事件。
- 測量負荷下的偏移、漂移和抖動。
- 注入權限丟失、重啟和恢復。
- 隔離時鐘間隔斷的資料。
常見問題
啟用 PTP 會自動對齊每個感測器的時間戳嗎?
不。感測器可以使用獨立的時鐘或運輸後印章;驅動程式必須將其取樣事件對映到同步域。
機器人應該使用 NTP 還是 PTP?
從所需的精度、硬體支援、拓撲和故障行為中選擇,然後測量完整的時間戳路徑。
一個小的平均偏移夠嗎?
不。尾部抖動、漂移、時鐘步進和恢復間隔仍然可能違反應用要求。
ptp4l 也能同步系統時鐘嗎?
不一定。 PHC2sys 或其他機制常用來關聯 PHC 與系統時間。
丟失期間記錄的資料可以在時鐘恢復後使用嗎?
只有在其時間戳對映有效時才會如此。跨越不確定或階梯區間的資料應被隔離並評估。
時間同步證據邊界
時間同步效能取決於拓撲、硬體、驅動程式和工作負載。驗證物理取樣時序和應用錯誤,而不僅僅是守護程式的偏移顯示。