機器人資料不再散成一包一包,Mosaico 用一個底座統一存放與查詢
摘要
感測器紀錄不必再一包一包堆在硬碟裡。Mosaico 用一支 Rust 守護程式管存放與檢索,配 Python 開發套件讓團隊上傳與查詢,Apache-2.0 開源,ROS、ROS 2 與 MCAP 都能直接吃。
推薦- 軟體名稱
- Mosaico
- 版本
- 0.6.1
- 開源
- 開源
- 作業系統
- macOSLinux
- 更新時間
- 2026-10-10 15:08
Mosaico 是 Mosaico Labs 為機器人與實體人工智慧設計的開源資料平台,它把散落的感測器紀錄收成一份可查詢、可用於訓練的資料資產。
機器人資料最難纏的地方在採集之後。一台自走設備跑一趟,光達按 10 赫茲掃描,慣性測量單元按 100 赫茲記錄,相機按 30 赫茲拍攝,三路感測器的時鐘還在緩慢漂移。這些資料落到磁碟上,通常是一個幾百 GB 起步的紀錄包,想取其中某一秒的某一路訊號,得先把整包解開。等要拿它訓練模型時,還得再寫一堆一次性腳本,把非同步、稀疏的資料對齊成固定頻率的張量。
Mosaico 把這件事當作基礎設施來做。它由 Mosaico Labs 開發,2025 年 12 月在 GitHub 上開源,採用 Apache-2.0 許可。團隊三位共同創辦人在帕爾馬與矽谷之間做了十多年自動駕駛系統,長期處理 PB 級、高頻的感測器資料;按他們的說法,那些脆弱、難除錯、幾乎無法稽核的手工資料管線,就是重做一遍的起因。

兩個元件:Rust 守護程式與 Python 開發套件
整套平台由兩個元件構成。服務端是一個叫 mosaicod 的守護程式,用 Rust 撰寫,負責儲存、目錄管理、資料寫入與檢索;客戶端是 Python 開發套件,開發者把它匯入自己的腳本,用它上傳與查詢資料。兩者之間是標準的客戶端與服務端模型,資料在兩側流動時不需要額外的序列化開銷,也不做格式轉換。
檢索路徑值得單獨說一句。常規做法是把資料當成位元組陣列,取一路訊號就得從頭解析整個檔案。Mosaico 借用現代資料湖的思路,用零拷貝架構直接隨機存取指定訊號,越過紀錄包格式本身的限制;資料流會自動建立索引,查詢引擎據此裁掉無關部分,只推出需要的那一段。

寫入、查詢、回放:三個原語
開發套件的介面刻意做得很薄,官方把它歸納成三個動作:push、find、stream,分別對應寫入、查詢與回放。寫入時先建一個序列,再在序列裡建主題,逐條推入帶時間戳的訊息;主題在建立時就綁定好本體類型,例如慣性測量單元。會話層與主題層各自可以設定出錯策略,失敗時要嘛乾淨刪除,要嘛保留部分資料供復原。
查詢用的是鏈式建構器,不用寫 SQL,也不必再學另一套查詢子語言。可以按序列名做比對,也可以按業務中介資料篩選,例如把專案名等於某個值、能見度小於 50 這兩個條件組合起來,服務端一次請求就完成多域過濾。每一處比對回傳的是精確的起止時間戳,精度到奈秒。

型別化本體:讓資料按物理量說話
讓查詢能寫得這麼短的原因,是 Mosaico 在資料之上加了一層嚴格型別的資料本體。它不把一則訊息看成一串位元組,而要知道這則訊息在語意上究竟是什麼。官方內建了慣性測量單元、衛星定位、影像、壓力等常見機器人資料模型,開發者也可以在幾行 Python 裡擴充出自己的模型。
本體帶來的直接好處,是查詢可以按物理量來寫。描述一個加速度條件,可以直接寫成對加速度 x 軸取值的判斷,這個條件既用於過濾,也能用於聚合。官方還提供了按時間窗把比對結果聚成叢集、以及跨主題求交集的過濾動作,用來回答「什麼時候發生過這件事」,而不只是「哪條主題符合條件」。
不可變資料層與資料溯源
另一個設計取捨落在版本管理上。常見做法是給資料加版本號,但版本會讓「這條查詢看的是哪一份資料」變得含糊。Mosaico 改用不可變資料層:新資料橫向疊加附加,舊層永不改寫,因此查詢歷史保持確定、可重現,資料從原始感測器到訓練集的每一次轉換都能被追溯。對需要事後回顧故障、或者要給結果做認證的場景,這一條比效能更關鍵。
把感測器流對齊成訓練批次
平台內建的機器學習模組處理從原始紀錄到訓練資料的這段路。它接收不同步的感測資料,把抽取、同步、開窗三個階段拆開:抽取負責輸入輸出與記憶體,同步負責時間對齊,開窗負責批次形狀,三者可以獨立調整或替換。開發者可以指定取樣步長,得到的批次直接用於微調,不必先在本地產生體積龐大的中間檔案,資料集也能從平台串流讀出,而不必整包下載。
接入、部署與執行環境
資料接入側原生支援 ROS、ROS 2 與 MCAP 等常見機器人資料格式,與中介軟體解耦,壓縮率隨格式自動調整。除這些之外,平台還覆蓋資料本體、多模態檢索、資料溯源、編排、可認證性與資料容器六個環節。
部署層面,mosaicod 提供預先編譯的執行檔與容器映像,版本標籤分為穩定版、小版本、精確版本與每日建置四類,生產環境適合固定精確版本。儲存預設支援相容 S3 的物件儲存,也可落到本機檔案系統,中介資料依賴一個 PostgreSQL 實例。守護程式目前只支援 Linux 與 macOS,Windows 使用者要在 WSL2 裡執行。
開源與商業雙軌
Mosaico 以 Apache-2.0 許可開源,核心引擎、與中介軟體無關以及 ROS 相容性都在開源範圍內,官方把「不給這個基礎層設付費牆」寫進了首頁。另一條軌道是商業許可,面向企業場景,提供稽核面板、細緻的存取控制、使用者管理,以及自訂資料庫與資料連接器。不過,專案雖然開源,受法律原因限制,目前不接受來自公眾的合併請求,有意參與的人需要先與團隊聯繫、成為受認可的貢獻者。
從紀錄包到資料資產,Mosaico 處理的其實是一個很具體的問題:讓機器人團隊不必再自己拼湊資料管線,把儲存、檢索與訓練資料的準備交給一套統一的底座。