使用说明
🤖 MCP Robot v3.0:确定性VLA生产堆栈
通过模型上下文协议(MCP)实现可靠机器人控制的神经符号架构
🏛️ 执行摘要:确定性委托
传统的机器人人工智能(VLAs)受到 随机漂移:在相同的环境和指令下,基于LLM的规划者可能会在不同的运行中输出不同的轨迹。在生产机器人中,这是不可接受的。
MCP机器人v3.0 介绍a 确定性执行运行时通过同步每个组件——从RNG种子和浮点精度到系统时钟和传感器快照——我们确保了相同的输入 总是 产生位相同的二进制电机命令。
🏗️ 第1部分:7层确定性架构
该系统分为七个不同的层,每个层都由严格的Pydantic契约隔开。数据从高级意图单向流向低级电机信号。
graph TD
%% Input Layer
subgraph "Environmental Context"
P[Perception Snapshot]
S[Robot State Snapshot]
end
%% Tier 1-2
subgraph "Tier 1-2: Cognition"
D[ALOHA Decomposer] --> |Subtasks| PL[ACT Planner]
end
%% Tier 3-4
subgraph "Tier 3-4: Action Synthesis"
PL --> |Action Chunks| E[Visio-Tactile Encoder]
E --> |Augmented Chunks| M[Universal Mapper]
end
%% Safety Layer (Tier 5)
subgraph "Tier 5: The Safety Chip"
M --> |JointTrajectoryChunk| V[Physics Engine]
S --> V
V -- REJECT --> AL[Emergency Halt]
V -- CERTIFY --> EX[Tier 6 Execution]
end
%% Execution (Tier 6-7)
subgraph "Tier 6-7: Physical Loop"
EX --> H[Hardware Control]
EX --> SIM[Kinematic Sim]
H & SIM --> L[Tier 7: Learning Loop]
end
%% Flows
P & S --> D
P & S --> PL
P & S --> E
深度潜水
| 层级 | 名称 | 决定论原语 | 组件责任 |
|---|---|---|---|
| 0 | 编排器 | StableHasher |
生成不可变 plan_id 从哈希。 |
| 1 | 分解者 | DeterministicRNG |
将意图分解为语义子目标。 |
| 2 | 规划师 | Seeded Latents |
使用冻结权重预测块序列。 |
| 3 | 编码器 | Snapshot Logic |
根据感知添加触觉力目标。 |
| 4 | 映射器 | Geometric IK |
将世界空间转换为联合空间(反传送)。 |
| 5 | 验证器 | Frozen Physics |
“安全芯片”(ZMP,力,极限)。 |
| 6 | 适配器 | Tick-Sync |
真正的ROS2动作客户端或确定性模拟。 |
| 7 | 学习者 | Hindsight Trace |
为未来的策略更新重新标记失败。 |
🛠️ 第二部分:决定论原语(核心)
整个堆栈构建在中的自定义运行时上 mcp_robot/runtime/determinism.py.
1. StableHasher
为了避免ID冲突并确保可追溯性,每个计划和块都由其SHA-256摘要标识。
- 规范化:所有Pydantic模型在哈希之前都使用排序键和舍入浮点数进行序列化。
- 可追溯性:相同的指令+状态快照将 总是 产量相同
plan_id.
2. FrozenClock
挂钟时间是决定论的敌人。
- 实施:我们替换
time.time()与全球Clock界面。在模拟中,时钟仅在以下情况下前进step()被称为。在规划过程中,时间被冻结到捕获快照的那一刻。
3. DeterministicRNG
- 种子取样:所有内部随机过程(ACT延迟、噪声注入)都使用集中式
numpy.random.default_rng种子由DeterminismConfig.
🛡️ 第3部分:第5级-“安全芯片”
这 验证引擎 是最关键的组成部分。它充当人工智能“意图”和机器人“执行器”之间的管辖看门人。
集成安全门
- 连续性检查:确保任何块的第一个航路点在
0.1 radians当前硬件状态。这可以防止导致电机浪涌的“传送”跳跃。 - 接头限位屏蔽:根据
robot_profile最小/最大角度。 - ZMP(零力矩点)分析:
- 计算机器人质心轨迹的稳定裕度。
- 如果
score < 0.4,该块被拒绝为“不稳定”(防止类人跌倒)。
- 强制合规:验证预测的夹持力是否不超过硬件的结构安全限值(例如100N)。
```python
# Tier 5: The Safety Decision
safety_report = PhysicsEngine.verify_trajectory(
target_chunk,
sim_state,
joint_limits
)
# Resulting in:
# { "valid": False, "reason": "Stability Error: ZMP Critical (0.22)" }
```
<!-- slide -->
```mermaid
graph LR
A[Planned Trajectory] --> B{Safety Chip}
B -->|ZMP < 0.4| C[REJECT]
B -->|Force > 100N| C
B -->|Continuity > 0.1| C
B -->|Within Limits| D[EXECUTE]
```
🏎️ 第4部分:ROS2执行和数字孪生
ROS2Adapter (第6级)
VLA和物理世界之间的桥梁。它以两种模式运行:
[!重要] SIM模式(确定性模式):
- 立即更新
KinematicSimulator最后一个航点。- 不
asyncio.sleep(防止挂钟漂移)。- 非常适合回归测试和CI/CD。
[!警告] 硬件模式:
- 连接到真实的ROS2操作服务器(
FollowJointTrajectory).- 处理网络抖动和硬件延迟。
- 而 决定 是确定性的 执行时间 受现实世界物理学的支配。
📊 第5部分:实证结果和基准
我们使用 诚实基准套件 证明我们的硬化是有效的。
决定论验证(单元测试)
| 测试 | 输入 | 通过条件 | 结果 |
|---|---|---|---|
| 计划稳定性 | 重新启动 | 位相同的JSON | ✅ 通过 |
| 幂等性 | 重复呼叫 | 缓存结果命中 | ✅ 通过 |
| 哈希敏感度 | 0.0001状态更改 | 生成唯一PlanID | ✅ 通过 |
安全基准测试结果
| 类别 | 任务 | 结果 | 分析 |
|---|---|---|---|
| 挑选和放置 | 名义任务 | 成功 | 在标称条件下100%成功。 |
| 部队安全 | “150N握力” | 拒绝 | 被安全芯片正确阻断。 |
| 动态稳定性 | “冲刺时用力推” | 拒绝 | 模拟中发现ZMP违规。 |
📋 第6部分:操作手册
安装
# Clone and install dependencies
git clone https://github.com /Danielfoojunwei/MCP-ROBOT.git
pip install -e .
验证决定论
运行核心验证测试,以确保您的环境配置稳定:
python -m pytest tests/test_determinism.py
运行VLA服务器(MCP)
python mcp_robot/server.py
🗺️ 第七部分:生产路线图
- [x] v1.0:模拟管道(启发式)。
- [x] v2.0:硬化硬件(真正的ROS2适配器)。
- [x] v3.0: 确定性生产 (种子RNG、冻结时钟、快照)。
- [ ] v4.0: 全身控制(WBC):从关节插值转向实时扭矩控制。
- [ ] v5.0: 多机器人编排:全舰队集群的确定性协调。
由Danielfoojunwei为生产级机器人自主开发。