Rerun
具時間感知的多模態機器人資料視覺化工具與資料儲存區
授權條款
Apache-2.0
概述
Rerun 是一套開源堆疊,用於記錄、儲存與視覺化機器人與電腦視覺系統所產生的多模態、隨時間變化的資料。你可以從 Python、Rust 或 C++ 記錄影像、點雲、座標轉換、張量、純量與影片,檢視器會把每一條資料流放在一條可拖曳瀏覽的共用時間軸上,讓一個攝影機畫面、拍攝當下的位姿,以及隨後的控制器訊號全都對齊在同一個瞬間。檢視器背後是一個欄式儲存區,可用 dataframe 與 SQL 介面查詢;這表示幫助你除錯某次執行的同一份錄製資料,不需重新匯出就能直接餵給訓練流程。
Rerun 源自一個簡單的觀察:儘管受測系統會產生結構豐富、時間緊密相關的資料,大多數機器人除錯仍然是透過 print 陳述式與彼此不相連的圖表進行。Rerun 把這些資料視為主要產物。SDK 將實體記錄到一個階層中(一台攝影機、它的影像、為它定位的座標轉換),每一筆資料都帶有一條或多條時間軸,因此同一份錄製資料可以依實際時間、依影格索引或依模擬步數重播。
檢視器是以 Rust 撰寫的原生應用程式,也能在瀏覽器中執行,並可嵌入 Jupyter 筆記本。錄製資料可以從執行中的機器人即時串流,也可以從檔案載入;檢視畫面的版面配置本身也是資料,因此除錯設定可以和產生它的程式碼一起提交到儲存庫中。
就機器人領域而言,Rerun 在精神上最接近 RViz,但它是圍繞著已錄製的時間而非即時的當下打造。重播、比較兩次執行,以及從 dataframe 查詢過去的工作階段都是一等功能,這也是它適用於模仿學習與 VLA 研究中如今常見之訓練資料工作流程的原因。
為何重要
機器人除錯是一個與時間有關的問題:要問的幾乎從來不是感測器現在讀到什麼,而是整個系統在出錯前的兩秒內在做什麼。Rerun 是少數以這個前提為核心打造的開放工具之一,而它出現時,正值這個領域的另一款開放視覺化工具 Foxglove Studio 轉為閉源。它採用 Apache-2.0 授權、只要三行 Python 就能使用,並且會儲存它所顯示的內容,因此既能當作除錯器,也能當作學習流程底下的資料層。
解決的問題
多模態的機器人資料(影像、深度、座標轉換、關節狀態、控制訊號)以不同的速率從不同的程序送達,而傳統的記錄方式會把它們壓平成再也對不齊的文字。Rerun 將這些資料流當作結構化、帶時間戳記的實體接收,並同步呈現,讓你能同時看到畫面、位姿與訊號,事後也能查詢。
重點
- 採用 Apache-2.0 與 MIT 雙授權,提供 Python、Rust 與 C++ 的 SDK
- 將影像、點雲、座標轉換、張量、純量與影片記錄到共用的時間軸上
- 檢視器可原生執行、在瀏覽器中執行,也可在 Jupyter 筆記本中執行
- 欄式儲存區提供 dataframe 與 SQL 查詢介面,錄製資料可直接用於訓練
- 在機器人學習與 VLA 研究中被廣泛採用,是圍繞已錄製時間打造的 RViz 替代方案
適用對象
- 跨多次錄製執行對感知與控制進行除錯的機器人工程師
- 檢視示範與推演資料的機器人學習研究人員
- 處理 3D 與時間序列資料的電腦視覺開發者
- 建立資料集、需要錄製資料可查詢而不只是可檢視的團隊
限制
- 專案表示仍在積極開發中,預期會有破壞性變更
- 實體數量非常龐大時,檢視器效能會下降
- 數百萬點的點雲算繪速度緩慢
- 這個開源專案與同一家公司的商業產品一同開發