项目简介
MyCobot 机械臂 MCP 服务器是 Model Context Protocol (MCP) 的一个具体实现,旨在通过标准化的接口,使大型语言模型 (LLM) 客户端能够控制 MyCobot 机械臂执行抓取和放置等任务。它集成了机械臂控制、摄像头图像捕获和物体检测能力。
主要功能点
- 机械臂控制: 允许LLM向MyCobot机械臂发送指令,控制其移动到指定位置(如“家”位置、拍摄位置、放置位置)或移动到检测到的物体上方。
- 图像捕获: 通过连接的摄像头捕获当前工作区域的图像。
- 物体检测: 集成外部物体检测服务(需要配置API token),分析捕获的图像,识别指定类型的物体并提供其位置信息。
- 抓取与放置: 提供控制机械臂吸盘执行抓取和释放操作的功能。
- 位置定义: 支持在配置文件中定义多个预设的机械臂位置。
- 能力声明: 作为MCP服务器,向连接的LLM客户端声明其提供的工具(如获取设置、捕获图像、检测物体、运行操作码)和Prompt模板。
安装步骤
- 克隆仓库: 使用 'git clone' 命令将项目仓库下载到本地。
- 安装依赖: 项目依赖于特定的Python库和外部服务(如DDS),请确保安装所有必需的Python包,并按照说明配置DDS API Token(通常通过环境变量 'DDS_API_TOKEN' 设置)。
- 硬件连接: 连接 MyCobot 机械臂、吸盘和摄像头。
- 修改端口权限: 确保运行服务器的用户对机械臂连接的串口有读写权限(例如,对于 '/dev/ttyACM0' 使用 'sudo chmod 666 /dev/ttyACM0')。
- 摄像头标定: 运行 'camera_calibration' 目录下的脚本,进行摄像头标定,生成相机参数文件('mtx_dist.npz')。
- 配置 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协议与之交互。典型的工作流程如下:
- LLM客户端可以请求服务器获取当前的机器人配置和预设位置信息。
- LLM客户端可以调用工具请求服务器捕获一张摄像头图像。
- LLM客户端可以调用工具,指定需要检测的物体名称列表,服务器将执行物体检测并返回检测到的物体信息和带有标注的图像。
- 基于检测到的物体信息(如物体的编号和位置),LLM客户端可以生成一系列操作指令('OperationCode' 列表),例如先移动到某个物体上方,然后执行抓取,再移动到预设的放置位置,最后执行释放。
- LLM客户端将生成的操作指令发送给服务器的 'run' 工具进行执行,服务器将按顺序控制机械臂完成任务。
信息
分类
桌面与硬件