
Dimensional:智能物理空间的操作系统
⚠️ 预发布Beta版本 ⚠️
简介
Dimensional是为通用机器人设计的现代操作系统。我们设定了下一代SDK标准,与大多数机器人制造商集成。只需简单安装,无需ROS,就可以用Python构建物理应用程序,支持所有类人、四足或无人机。
Dimensional是原生代理系统------以自然语言"对机器人说话",构建在本地和托管环境下的多代理系统,能够与硬件无缝配合。代理作为原生模块运行,能够订阅任何嵌入流,从感知(激光雷达、相机)到空间记忆,再到控制回路和电机驱动器。
| 功能 | 图示 |
|---|---|
| #### 导航与映射 SLAM,动态避障,路径规划与自主探索 | |
| #### 感知 探测器、3D投影、音频处理 | |
| #### 代理控制,MCP "嘿,机器人,去找厨房" | |
| #### 空间记忆 时空RAG,动态记忆,物体定位与持久性 |
硬件
| 硬件类型 | 设备 |
|---|---|
| 四足机器人 | 🟩 Unitree Go2 pro/air,🟥 Unitree B1 |
| 类人机器人 | 🟨 Unitree G1 |
| 机械臂 | 🟨 Xarm,🟨 AgileX Piper |
| 无人机 | 🟧 MAVLink,🟧 DJI Mavic |
| 其他 | 🟥 力矩传感器 |
安装流程
交互式安装
sh
curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash
有关非交互式和高级选项,请参见 scripts/install.sh --help。
手动系统安装
要设置系统依赖,请遵循以下指南:
Python安装
快速开始
bash
uv venv --python "3.12"
source .venv/bin/activate
uv pip install 'dimos[base,unitree]'
用于重放四足机器人的会话(无需硬件):
bash
dimos --replay run unitree-go2
启动仿真
bash
# 支持仿真安装
uv pip install 'dimos[base,unitree,sim]'
运行四足机器人或类人机器人仿真,示例命令:
bash
dimos --simulation run unitree-go2
dimos --simulation run unitree-g1-sim
控制真实机器人
bash
# 控制真实机器人(Unitree四足机器人通过WebRTC)
export ROBOT_IP=<你的机器人IP>
dimos run unitree-go2
常用运行文件
| 运行命令 | 功能 |
|---|---|
dimos --replay run unitree-go2 |
四足机器人导航重放 --- SLAM、代价图、A*规划 |
dimos --replay run drone-basic |
无人机视频 + 传感器重放 |
dimos run demo-camera |
Webcam演示 --- 无需硬件 |
代理CLI和MCP
dimos CLI管理整个生命周期------运行蓝图、检查状态、与代理交互并通过MCP调用技能。
bash
dimos run unitree-go2-agentic-mcp --daemon # 在后台启动
dimos status # 检查正在运行的状态
dimos log -f # 跟随日志
dimos agent-send "探索房间" # 发送命令给代理
dimos mcp list-tools # 列出可用的MCP技能
dimos mcp call relative_move --arg forward=0.5 # 直接调用技能
dimos stop # 关闭
使用DimOS作为库
下面是一个简单的机器人连接模块示例,它持续向机器人发送cmd_vel流,并接收color_image到简单的Listener模块。
python
import threading, time, numpy as np
from dimos.core.blueprints import autoconnect
from dimos.core.core import rpc
from dimos.core.module import Module
from dimos.core.stream import In, Out
from dimos.msgs.geometry_msgs import Twist
from dimos.msgs.sensor_msgs import Image, ImageFormat
class RobotConnection(Module):
cmd_vel: In[Twist]
color_image: Out[Image]
@rpc
def start(self):
threading.Thread(target=self._image_loop, daemon=True).start()
def _image_loop(self):
while True:
img = Image.from_numpy(
np.zeros((120, 160, 3), np.uint8),
format=ImageFormat.RGB,
frame_id="camera_optical",
)
self.color_image.publish(img)
time.sleep(0.2)
class Listener(Module):
color_image: In[Image]
@rpc
def start(self):
self.color_image.subscribe(lambda img: print(f"image {img.width}x{img.height}"))
if __name__ == "__main__":
autoconnect(
RobotConnection.blueprint(),
Listener.blueprint(),
).build().loop()
蓝图
蓝图是描述如何构建和连接模块的指令。我们用autoconnect(...)组合它们,自动连接流。
python
from dimos.core.blueprints import autoconnect
from dimos.core.transport import LCMTransport
from dimos.msgs.sensor_msgs import Image
from dimos.robot.unitree.go2.connection import go2_connection
from dimos.agents.agent import agent
blueprint = autoconnect(
go2_connection(),
agent(),
).transports({("color_image", Image): LCMTransport("/color_image", Image)})
if __name__ == "__main__":
blueprint.build().loop()
开发
多语言支持
Python是我们的粘合剂和原型语言,但我们也通过LCM互操作支持多种语言。可以查看以下语言互操作示例:
相关同类项目介绍
与Dimensional类似的开源项目包括:
- ROS (Robot Operating System): 一个为机器人软件开发提供服务的框架,支持多种编程语言和平台。
- OpenAI Gym: 一个用于开发和比较强化学习算法的工具包,尤其侧重于模拟和控制任务。
- Robotic Operating System: 这是一个基于Linux的操作系统环境,专门为机器人研究和应用开发而设计,提供许多现成的库和工具。
这些项目都专注于不同的机器人操作和控制,但各有其独特的应用场景和使用方法,扩大了开发者在机器人领域的可能性。