项目简介

MyCobot 机械臂 MCP 服务器是 Model Context Protocol (MCP) 的一个具体实现,旨在通过标准化的接口,使大型语言模型 (LLM) 客户端能够控制 MyCobot 机械臂执行抓取和放置等任务。它集成了机械臂控制、摄像头图像捕获和物体检测能力。

主要功能点

  • 机械臂控制: 允许LLM向MyCobot机械臂发送指令,控制其移动到指定位置(如“家”位置、拍摄位置、放置位置)或移动到检测到的物体上方。
  • 图像捕获: 通过连接的摄像头捕获当前工作区域的图像。
  • 物体检测: 集成外部物体检测服务(需要配置API token),分析捕获的图像,识别指定类型的物体并提供其位置信息。
  • 抓取与放置: 提供控制机械臂吸盘执行抓取和释放操作的功能。
  • 位置定义: 支持在配置文件中定义多个预设的机械臂位置。
  • 能力声明: 作为MCP服务器,向连接的LLM客户端声明其提供的工具(如获取设置、捕获图像、检测物体、运行操作码)和Prompt模板。

安装步骤

  1. 克隆仓库: 使用 'git clone' 命令将项目仓库下载到本地。
  2. 安装依赖: 项目依赖于特定的Python库和外部服务(如DDS),请确保安装所有必需的Python包,并按照说明配置DDS API Token(通常通过环境变量 'DDS_API_TOKEN' 设置)。
  3. 硬件连接: 连接 MyCobot 机械臂、吸盘和摄像头。
  4. 修改端口权限: 确保运行服务器的用户对机械臂连接的串口有读写权限(例如,对于 '/dev/ttyACM0' 使用 'sudo chmod 666 /dev/ttyACM0')。
  5. 摄像头标定: 运行 'camera_calibration' 目录下的脚本,进行摄像头标定,生成相机参数文件('mtx_dist.npz')。
  6. 配置 settings.json: 根据项目提供的样本文件 ('data/sample_settings.json') 创建一个 'settings.json' 文件,配置摄像头ID、相机参数文件路径、机械臂串口、URDF文件路径、预设位置等参数。确保 URDF 文件路径正确指向项目中的文件(通常在 'data/mycobot/mycobot.urdf')。

服务器配置 (供MCP客户端使用)

MCP客户端需要配置与该服务器建立连接。典型的配置包含以下信息:

  • Server Name: 客户端用于标识该服务器的名称,例如 'mycobot'。
  • Command: 启动该MCP服务器的命令行指令。根据你的安装方式,可能是 'uvx mycobot-mcp' 或 'uv run --directory /path/to/mycobot-mcp/ mycobot-mcp',其中 '/path/to/mycobot-mcp/' 是你克隆仓库的路径。
  • Args: 传递给启动命令的参数列表。必须包含 '--settings-path' 参数,后跟你的 'settings.json' 文件的完整路径,例如 '["--settings-path", "/path/to/your/settings.json"]'。
  • Env: 需要为服务器进程设置的环境变量。必须包含 'DDS_API_TOKEN' 变量及其对应的值。

基本使用方法

一旦服务器按照上述步骤配置并运行起来,LLM客户端即可通过MCP协议与之交互。典型的工作流程如下:

  1. LLM客户端可以请求服务器获取当前的机器人配置和预设位置信息。
  2. LLM客户端可以调用工具请求服务器捕获一张摄像头图像。
  3. LLM客户端可以调用工具,指定需要检测的物体名称列表,服务器将执行物体检测并返回检测到的物体信息和带有标注的图像。
  4. 基于检测到的物体信息(如物体的编号和位置),LLM客户端可以生成一系列操作指令('OperationCode' 列表),例如先移动到某个物体上方,然后执行抓取,再移动到预设的放置位置,最后执行释放。
  5. LLM客户端将生成的操作指令发送给服务器的 'run' 工具进行执行,服务器将按顺序控制机械臂完成任务。

信息

分类

桌面与硬件