Elegoo机器人汽车MCP服务器
MCP(模型上下文协议)服务器,用于通过Claude或其他兼容MCP的AI助手控制Elegoo智能机器人汽车V4.0。
建筑
┌─────────────────────────────────────────────────────────────┐
│ Elegoo Robot Car │
│ ┌──────────────┐ Serial ┌──────────────────────┐ │
│ │ Arduino │◄────9600────►│ ESP32-S3 │ │
│ │ (motors, │ │ (WiFi AP + TCP:100 │ │
│ │ sensors) │ │ + Camera HTTP:80) │ │
│ └──────────────┘ └──────────────────────┘ │
│ ▲ │
└─────────────────────────────────────────│──────────────────┘
│ WiFi (192.168.4.1)
▼
┌──────────────────┐
│ MCP Server │
│ (this project) │
└──────────────────┘
▲
│ MCP Protocol
▼
┌──────────────────┐
│ Claude / AI │
└──────────────────┘特性
工作
- 运动:驾驶、转弯、紧急停止
- 相机:通过HTTP端点捕获图像
- 伺服:左右平移相机(0-180度)
- 序列:执行多步骤动作序列
- 模式:预定义的移动模式(环视、方形等)
- 路点:保存并导航到指定位置(航位推算)
- 连接恢复:WiFi掉线时自动重新连接
部分工作
- 超声波传感器:仅返回布尔障碍物检测(true/false),不返回以厘米为单位的距离
- 线路跟踪传感器:异步响应,未完全集成
不工作
- 精确的距离读数:固件返回0或二进制障碍物检测
- 自定义ESP32固件:USB-C端口似乎只有电源,无法闪烁
安装
cd server
npm install
npm run build用法
连接到机器人WiFi
- 打开Elegoo机器人的电源
- 将您的计算机连接到
ELEGOO-XXXXWiFi网络 - 机器人IP是
192.168.4.1
运行MCP服务器
标准模式(适用于克劳德桌面):
npm startHTTP/SSE模式(用于开发):
npm run devClaude桌面配置
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"elegoo-robot": {
"command": "node",
"args": ["/path/to/elegoo-robot-car-mcp/server/dist/index.js"],
"env": {
"ROBOT_HOST": "192.168.4.1",
"ROBOT_PORT": "100"
}
}
}
}可用工具
| 工具 | 说明 |
|---|---|
drive | 在具有可选持续时间的方向上移动机器人 |
safe_drive | 带障碍物检查的驾驶(受传感器限制) |
turn | 逐步转动机器人 |
emergency_stop | 立即停止所有移动 |
look | 全景相机伺服(0=左,90=中,180=右) |
capture_image | 用机器人的相机拍照 |
get_distance | 读取超声波传感器(返回障碍物布尔值) |
get_line_sensors | 读取线路跟踪传感器 |
scan_surroundings | 平移并扫描障碍物 |
get_status | 获取机器人连接状态 |
get_position | 获取估计位置(航位推算) |
reset_position | 将位置重置为原点 |
save_waypoint | 将当前位置保存为指定航路点 |
navigate_to | 导航到已保存的航路点 |
list_waypoints | 列出所有已保存的航路点 |
set_mode | 设置机器人操作模式 |
execute_sequence | 执行一系列操作 |
execute_pattern | 运行预定义模式 |
项目结构
elegoo-robot-car-mcp/
├── server/
│ ├── src/
│ │ ├── index.ts # MCP server entry point
│ │ ├── robot-client-stock.ts # TCP client for Elegoo firmware
│ │ ├── robot-client.ts # Client factory
│ │ ├── map-store.ts # Position tracking & waypoints
│ │ └── tools/
│ │ ├── movement.ts # drive, turn, stop
│ │ ├── vision.ts # camera capture
│ │ ├── sensors.ts # ultrasonic, line tracking
│ │ ├── navigation.ts # waypoints, position
│ │ ├── sequences.ts # multi-step sequences
│ │ └── system.ts # status, mode
│ └── data/
│ └── map.db # SQLite for waypoints
├── firmware/
│ └── arduino/ # Stock Elegoo Arduino firmware
└── docs/
├── KNOWN_ISSUES.md
└── ROADMAP.md协议
机器人通过TCP端口100使用Elegoo的股票固件协议:
{"H":"1","N":1,"D1":0,"D2":125,"D3":1}H:标题(始终为“1”)N:命令编号D1-D4:参数
关键命令:
- N=1:电机控制
- N=3:轿厢方向
- N=5:伺服控制
- N=21:超声波传感器
- N=22:线路跟踪
- N=100:待机模式
摄像头通过HTTP访问 http://192.168.4.1/capture.
已知问题
路线图
许可证
麻省理工学院
