DimOS
无需 ROS 的 Python 机器人运行时,内置智能体、SLAM 与遥操作
许可证
Apache-2.0
概述
DimOS 是一个用于构建机器人应用的 Python 运行时,不依赖 ROS。各子系统是带有类型化 In[] 与 Out[] 流的 Module;蓝图通过 autoconnect() 把它们连接起来,按名称和消息类型匹配数据流,并可组合、重映射或替换传输层。在此之上是多数技术栈需要手工拼装的能力:带 A* 规划和前沿探索的 SLAM 与代价地图导航、包含检测器与视觉语言模型的感知、能随时间定位物体的时空记忆,以及作为原生模块运行、可订阅任意数据流的智能体。dimos 命令行工具负责运行蓝图、跟踪日志、向智能体下达指令,并通过 MCP 调用技能。回放与 MuJoCo 仿真模式意味着快速上手示例在没有实体机器人时也能运行。
本目录中的智能体机器人条目几乎都构建在 ROS 2 之上——RAI、AgenticROS、ROS-MCP 等都把 ROS 当作底座,再叠加一层语言能力。DimOS 下的赌注恰恰相反:它连中间件一起替换。模块、类型化数据流、蓝图以及自有传输层(LCM、WebRTC、托管中继)构成了对 ROS 节点、话题和 launch 文件的完整替代方案,主体用 Python 编写,在对速度敏感处使用 Rust 和 C++。这个赌注能否成立,正是读者应当权衡的问题,而仓库提供了足够的判断依据:4500 颗星、每日提交、十余位具名贡献者,以及一份对稳定程度直言不讳的硬件支持矩阵。
那份矩阵是 README 中最有用的一页。宇树 Go2 是唯一标为稳定的平台;G1 人形、xArm 和松灵 Piper 处于 beta;MAVLink 与大疆为 alpha;B1 和力矩传感属于实验性。安装路径同样分级——Ubuntu 22.04 与 24.04 是受支持路径,NixOS 和通用 Linux 未经 CI 测试,macOS 为 alpha。一个如实标注自身支持层级的项目,比把所有平台一律列为同等的项目更容易评估,而整个仓库都挂着预发布 beta 的横幅。
遥操作部分 dimTELE 值得单独说明。机器人主动向托管中继外拨,因此无需开放任何入站端口,操作者可从浏览器或 Quest 头显经 WebRTC 驾驶。它运行良好,也是这套技术栈最清晰的演示,但需要 Dimensional 自家控制台的账号与 API 密钥。客户端与传输代码在 Apache-2.0 仓库中,另一端的中继服务器不在。
为何重要
其他值得收录的智能体机器人框架,无一例外假定 ROS 2 并在其上叠加语言层。DimOS 是唯一追问中间件本身是否应被替换的项目,而且已经成熟到可以被评判而非仅供推测:用类型化 Python 数据流取代话题、一套可用的导航与记忆栈、作为一等公民的智能体模块,以及可在无硬件条件下核验其主张的回放数据。无论你是否采用它,它都是目前最有力的论据,说明「以 ROS 为默认」是一种选择而非定律。
解决的问题
构建机器人应用通常意味着在写下任何行为逻辑之前,先要采用 ROS 2 及其全套配套——构建系统、消息定义、launch 文件。DimOS 以普通 Python 提供同一层能力:模块之间的类型化数据流、运行与检视它们的命令行工具,以及已在其上构建好的导航、感知、记忆与智能体集成。
要点
- 一个刻意不使用 ROS 的 Python 机器人运行时——带类型化 In[]/Out[] 流的 Module,由 autoconnect() 连接成可组合的蓝图
- 内置导航(SLAM、代价地图、A* 规划、前沿探索)、感知,以及记录物体何时出现在何处的时空记忆
- 智能体是原生模块并带 MCP 工具,因此 dimos agent-send "explore the room" 和 dimos mcp call move_to 都是一等命令行动词
- 回放与 MuJoCo 仿真模式可在完全没有机器人的情况下运行官方推荐的快速上手示例
- 硬件矩阵如实标注自身支持等级:宇树 Go2 稳定,G1 与 xArm 为 beta,MAVLink 与大疆为 alpha,B1 为实验性
- dimTELE 通过向中继外拨实现浏览器与 Quest 端的 WebRTC 遥操作,机器人所在网络无需开放入站端口
- Dimensional Inc. 以 Apache-2.0 发布,约十余位固定贡献者,提交每日落地
适用人群
- 希望不必先学 ROS 2 就能编写机器人行为的 Python 开发者
- 使用宇树四足或人形机器人、需要在厂商 SDK 之上再加一层技术栈的团队
- 构建大模型或 MCP 智能体、需要订阅真实传感器数据流而非调用 REST 接口的人
- 需要穿越 NAT 进行远程遥操作又不愿开放入站端口的运营方
- 比较中间件设计、想要一个严肃的非 ROS 参照对象来推敲的研究者
局限
- 仓库自我标注为预发布 beta,PyPI 版本仍停留在 0.0.x,接口应被预期为会变动
- 约有 700 个 issue 处于开启状态——项目活跃,但投入前要读的积压也很大
- 不用 ROS 就等于切断了 ROS 生态:没有现成驱动,没有 Nav2、MoveIt 或 rosbag,项目未实现的部分要自己补
- 硬件支持面窄且大多不稳定——宇树 Go2 是唯一标为稳定的平台,其余均为 beta、alpha 或实验性
- dimTELE 的中继是 Dimensional 托管的服务,需要账号与 API 密钥;Apache-2.0 仓库给你的是客户端,不是另一端
- 受测路径是 Ubuntu 22.04/24.04;macOS 为 alpha,通用 Linux 被明确标注未经 CI 测试
- 这既是社区项目,也是一家公司的产品路线图,开源仓库与托管控制台是同步开发的