机器人控制协议服务器

通过Model Context Protocol (MCP)实现AI与物理世界机器人间的通信与控制,适用于教育场景的机器人编程与自动化任务。

  • by Durel1
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Durel1/ServeurMCP_pour_esieabot

使用说明

TP报告:ESIEABOT的MCP服务器

学生: 杜雷尔 肯法克
学校: 埃塞俄比亚
主题: 通过MCP协议通过人工智能(Claude Desktop)控制物理机器人。


1.导言和目标

本TP的目标是在人工智能(Claude)和物理世界(Esieabot机器人)之间建立一座桥梁。为此,我们实施了 模型上下文协议(MCP),允许人工智能使用工具(引擎、摄像头)和访问资源(机器人状态)的标准。


2.建筑技术

我们选择了建筑B (远程PC上的服务器),因为Claude桌面客户端在Raspberry Pi上本机不可用。

控制链:

  • 接口: 克劳德桌面(Windows)。
  • MCP服务器: 在Windows上运行的Python(FastMCP)。
  • 运输: 通过学校网络的安全SSH隧道(端口转发)。
  • 执行: 恶魔 pigpiod 在驱动GPIO的Raspberry Pi上。

3.逐步实现

A、基础(第1-4部分)

  • 环境: 利用率 Poetry 加强管理(mcp, psutil, pigpio).
  • 系统工具: 实施 ping() 和 get_system_status() 以验证Claude和服务器之间的通信。

B、资源和识别(第5部分)

  • 静态资源: robot://status 通过远程SSH命令直接从PI获取重要信息(温度、RAM)。
  • 动态资源: robot://captures/{filename} 允许AI访问机器人拍摄的照片。

C、物理控制(第6-8部分)

  • 发动机: 具有持续时间管理和紧急停止的车轮控制。
  • 伺服电机: 摄像机角度控制(0-180°),数学转换为PWM脉冲。
  • 摄像机: 通过拍摄 libcamera-still,图像编码 Base64 用于通过SSH隧道的平滑传输。

D、编剧(第9部分)

  • 提示: 创建 patrol_mission 将人工智能转化为能够探索区域并执行照片安全报告的自主代理。

4.面临的挑战和解决方案(“日志”)

问题 原因 解决方案
崩溃STDIO 莱斯 print() 代码破坏了Claude的JSON流。 哈克Magique: 重定向所有 print() 朝向 stderr 为了隔离通道 stdout.
白色屏幕克劳德 Windows上Claude桌面应用程序的缓存错误。 重置文件夹 %APPDATA%/Claude 以及干净的恢复。
连接被拒绝 ESIEA Wi-Fi防火墙阻止设备之间的端口8888。 隧道SSH: 重定向至本地(ssh -L 8888:localhost:8888)以绕过网络阻塞。
编译Linux Raspberry Pi上缺少要安装的C头 mcp. 手动安装 python3-dev 和 libffi-dev 通过 apt.

5.结论

该项目展示了MCP协议在物联网(IoT)中的强大功能。通过将最先进的人工智能与强大的网络架构(SSH隧道)相结合,我们成功地将一个简单的机器人转变为一个能够理解其物理环境并与其交互的自主代理。