DimOS
內建代理、SLAM 與遠端操作的 Python 機器人執行環境,無需 ROS
授權條款
Apache-2.0
概述
DimOS 是一個無需 ROS 即可建構機器人應用程式的 Python 執行環境。各子系統都是模組(Module),具有型別化的 In[] 與 Out[] 串流;藍圖(blueprint)以 autoconnect() 將它們串接起來,autoconnect() 會依名稱與訊息型別配對串流,並可加以組合、重新映射或改用不同的傳輸層。在此之上是大多數軟體堆疊需要自行拼裝的功能:具備 A* 規劃與邊界探索的 SLAM 與代價地圖導航、使用偵測器與視覺語言模型(VLM)的感知、能隨時間定位物體的時空記憶,以及以原生模組形式運行、可訂閱任何串流的代理。dimos CLI 可執行藍圖、追蹤日誌、向代理發送指令,並透過 MCP 呼叫技能。重播與 MuJoCo 模擬模式讓快速入門範例在桌上沒有機器人時也能運作。
本目錄中的代理式機器人專案幾乎都建立在 ROS 2 之上——RAI、AgenticROS、ROS-MCP 等專案都以 ROS 作為底層,再加上一層語言層。DimOS 押的是相反的注:它連中介軟體也一併取代。模組、型別化串流、藍圖以及它自己的傳輸層(LCM、WebRTC、託管的中繼伺服器)構成了 ROS 節點、主題與 launch 檔的完整替代方案,以 Python 撰寫,在需要速度之處則使用 Rust 與 C++。這個賭注是否值得,正是讀者應該權衡的問題,而儲存庫提供了足夠的判斷依據:4,500 顆星、每日提交、十來位具名貢獻者,以及一份坦白說明哪些部分穩定的硬體矩陣。
這份矩陣是 README 中最有用的一頁。Unitree 的 Go2 是唯一標示為穩定的平台;G1 人形機器人、xArm 與 AgileX Piper 為 beta;MAVLink 與 DJI 為 alpha;B1 與力/力矩感測則屬實驗性。安裝也同樣分級——Ubuntu 22.04 與 24.04 是受支援的途徑,NixOS 與一般 Linux 未經 CI 測試,macOS 則為 alpha。一個誠實標示自身支援等級的專案,比把每個平台都列為同等的專案更容易評估,而且整個儲存庫都掛著預發布 beta 版的橫幅。
負責遠端操作的 dimTELE 值得另外一提。機器人會主動向外連線到託管的中繼伺服器,因此不需要開放任何入站連接埠,操作者則可透過 WebRTC 從瀏覽器或 Quest 頭戴裝置進行操控。它運作良好,也是整個軟體堆疊最清楚的展示,但需要 Dimensional 自家主控台的帳號與 API 金鑰。用戶端與傳輸層程式碼都在 Apache-2.0 儲存庫中;另一端的中繼伺服器則不在其中。
為何重要
其他值得列出的代理式機器人框架都預設使用 ROS 2,並在其上建立語言層。DimOS 是唯一一個質疑中介軟體本身是否該被取代的專案,而且它的進展已足以讓人實際評斷,而非空談臆測:以型別化 Python 串流取代主題、可運作的導航與記憶堆疊、作為一等模組的代理,以及讓各項主張無需硬體即可驗證的重播資料。無論你是否採用它,它都是現有最有力的論證,說明以 ROS 為形的預設做法是一種選擇,而非定律。
解決的問題
建構機器人應用程式通常意味著在撰寫任何行為之前,就得先採用 ROS 2 及其附帶的一切——建置系統、訊息定義、launch 檔。DimOS 以一般的 Python 提供同一層功能:模組之間的型別化串流、用來執行與檢視模組的 CLI,以及已建立在其上的導航、感知、記憶與代理整合。
重點
- 一個刻意不使用 ROS 的 Python 機器人執行環境——具有型別化 In[]/Out[] 串流的模組,透過 autoconnect() 串接成可組合的藍圖
- 內建導航(SLAM、代價地圖、A* 規劃、邊界探索)、感知,以及能追蹤物體曾在何處、何時出現的時空記憶
- 代理是具備 MCP 工具的原生模組,因此 dimos agent-send "explore the room" 與 dimos mcp call move_to 都是一等的 CLI 指令
- 重播與 MuJoCo 模擬模式可在未連接機器人的情況下執行主要的快速入門範例
- 硬體矩陣誠實標示自身的支援等級:Unitree Go2 為穩定,G1 與 xArm 為 beta,MAVLink 與 DJI 為 alpha,B1 為實驗性
- dimTELE 透過主動向外連線至中繼伺服器,經由 WebRTC 提供瀏覽器與 Quest 遠端操作,因此機器人所在網路無需開放入站連接埠
- 由 Dimensional Inc. 以 Apache-2.0 授權釋出,約有十來位固定貢獻者,且每天都有提交
適用對象
- 想撰寫機器人行為、而不必先學習 ROS 2 的 Python 開發者
- 使用 Unitree 四足機器人或人形機器人、正在尋找原廠 SDK 之上軟體堆疊的團隊
- 建構需要訂閱真實感測器串流、而非呼叫 REST 端點之 LLM 或 MCP 代理的任何人
- 需要穿越 NAT 進行遠端操作、又不想開放入站連接埠的操作者
- 比較中介軟體設計、想要一個值得認真辯論之非 ROS 參考對象的研究人員
限制
- 儲存庫自我標示為預發布 beta 版,PyPI 版本仍為 0.0.x,因此介面預期會有變動
- 目前約有 700 個未解決的 issue——代表專案活躍,但在投入之前需要消化大量待辦事項
- 不使用 ROS 就等於與 ROS 生態系隔絕:沒有現成的驅動程式,沒有 Nav2、MoveIt、rosbag,專案尚未建置的部分都得自己動手
- 硬體支援範圍狹窄且大多不穩定——Unitree 的 Go2 是唯一標示為穩定的平台,其餘皆為 beta、alpha 或實驗性
- dimTELE 的中繼伺服器是 Dimensional 的託管服務,需要帳號與 API 金鑰;Apache-2.0 儲存庫提供的是用戶端,而非另一端
- Ubuntu 22.04/24.04 是經過測試的途徑;macOS 為 alpha,一般 Linux 則明確未經 CI 測試
- 這既是一個社群專案,同樣也是一家公司的產品路線圖,開放的儲存庫與託管主控台是一同開發的