BDDF 文件格式(BDDF file format)
動機 存儲在 Spot 機器人上的數據以 BDDF 格式下載。 BDDF 是由波士頓動力公司創建的一種文件格式,用於存儲帶時間戳的數據以及元數據。 它支持二進制 blob 和 POD(“plain old data”),例如整數或浮點數。 創建 BDDF 是為了滿足以下組要求: 寫起來安全又便宜Safe and cheap to write 。 這種格式在機器人內部和外部使用。 因此,它旨在在將數據保存到磁盤的同時,將磁盤和 CPU 使用率降至最低、可預測。 此外,它的設計使得寫入文件的所有數據都是可恢復的(例如,當正在寫入文件時軟件死機或計算機電源被切斷)。 不需要額外的處理No additional processing required 。 BDDF 旨在供用戶工具使用,而無需處理為其他格式。 因此,它包含一個索引,以便可以有效地訪問任意數據。 索引如下: 可用於確定文件中包含的數據的種類和時間跨度。 支持按種類和時間跨度高效提取數據。 安全的Secure 。很少或沒有解析邏輯。讀取 BDDF 只需要處理簡單的成幀,並解析一些 protobuf 消息。 一般的General 。 BDDF 可以存儲任何編碼的數據。 Streamable.可流式傳輸 。數據是基於查詢以這種格式從機器人流式傳輸的,因此它的設計使得可以在不向流中向後查找的情況下寫入格式。這就是索引和校驗和位於文件末尾的原因。 組織 文件的結構是具有簡單框架的“區塊”序列。一些區塊存儲有關文件及其內容的描述性信息,而一些區塊存儲數據。 BDDF 可以存儲二進制“blob”和“普通舊數據plain old data”(POD)值,例如整數或浮點數。 存儲的數據被組織成“數據系列”。數據系列為: 是消息類型或 POD 類型。 由一系列帶時間戳的數據塊組成。 有解釋數據塊內容的系列描述。 有一個系列標識符來“命名name”文件中的數據系列。 具有一組索引名稱,用於附加到系列中每個數據塊的索引值 (int64) 列表。 在數據文件中,數據系列使用系列索引進行尋址。 在一個數據系列中,一個數據塊由一個整數係列索引尋址。 在 BDDF 文件的末尾,一個文件索引列出了文件中所有的數據系列和系列索引的位置。 識別數據系列 根據可能存儲在數據系列中的內容的大類,可能以不同的方式描述該系列。 出於這個原因,我...