内容
# SO-101 ROS, MoveIt, LeLab, 和 MCP 在 Jetson 上
一个自成体系的、具有安全防护的集成方案,适用于一对 SO-101 主从设备在 Jetson Orin Nano 上运行:
官方 LeRobot 和 LeLab,ROS 2 Humble,RViz,MoveIt 2,确定性机器人技能,和语义 MCP。
您的本地 LeRobot 代码库被视为外部源,不会被此项目修改。
> 默认模式为假。实际执行需要显式 `allow_real_execution=true` 和分阶段的硬件检查清单。无自动校准。紧急停止和故障会抢占所有命令源。
## 快速开始
```bash
git clone https://github.com/itsbharatj/so101_ros_mcp.git
cd so101_ros_mcp
cp .env.example .env
# 编辑 .env:设置 LEROBOT_SOURCE_DIR 和可选的校准/端口路径
./scripts/bootstrap.sh
./scripts/doctor.sh
./scripts/build_ros.sh
./scripts/with_ros_env.sh ros2 launch so101_bringup full_stack.launch.py \
mode:=fake rviz:=true mcp:=true \
skill_library_path:="$PWD/robot_skills"
```
在第二个终端中,通过本地 Streamable HTTP 暴露语义 MCP:
```bash
./scripts/run_mcp.sh --transport http --host 127.0.0.1 --port 8765
```
无头 LeLab 独立于 ROS 串行所有权:
```bash
./scripts/run_lelab_local.sh # 仅限 Jetson
./scripts/run_lelab_lan.sh # LAN 绑定;从笔记本电脑打开 http://<jetson-ip>:8000
```
## 每一层的作用
- LeRobot 拥有校准的 SO-101 电机/摄像头支持和 ML 数据集。
- LeLab 是用于配置、远程操作、记录、重放和训练的官方浏览器 UI。
- ROS 2 提供标准状态、动作、服务、TF、启动、诊断和所有权接口。
- MoveIt 计算 FK/IK 和碰撞感知计划;它不会绕过受保护的控制器。
- 机器人的技能是 `robot_skills/` 下的确定性轨迹;`skills/` 下的 Codex 技能是维护指令,永远不会移动机器人。
- MCP 为 LLM 提供语义工具,但所有运动仍通过 ROS 所有权、限制、MoveIt 和 ESTOP。
## 安全防护
请勿直接使用快速启动连接和移动机械臂。完成分阶段的[硬件检查清单](docs/testing/real_hardware_checklist.md),物理支持机械臂,验证校准和方向被动,并仅在主动测试时启用实际执行。系统不会自动校准或在机械臂可能坍塌的地方禁用扭矩。
## 文档
首先查看[入门指南](docs/getting_started.md),[架构](docs/architecture/system_overview.md),[环境设置](docs/environment/setup.md),[硬件安全](docs/hardware/safety.md),[MoveIt 操作](docs/moveit/planning_and_execution.md),[MCP 工具](docs/mcp/tools.md),和[最终工程报告](docs/final_report.md)。保存的证据位于 `artifacts/` 下;假和物理结果永远不会混合。