本项目是一个基于 Model Context Protocol (MCP) 的服务器端应用,旨在使大型语言模型 (LLM) 能够通过标准化的接口控制运行 ROS2 系统的机器人。
主要功能点
本项目作为 LLM 与 ROS2 机器人交互的桥梁,通过 MCP 工具形式暴露以下核心功能:
- 移动 (move): 控制机器人进行直线或角速度移动,可指定移动方向、速度和持续时间。
- 定位 (locate_bot): 获取机器人当前在环境中的位置(通常是相对于原点的x, y坐标)和朝向。
- 保存图像 (save_image): 从机器人摄像头获取图像并保存到指定文件路径。
安装步骤
- 安装 ROS2: 确保您的系统已正确安装并配置 ROS2 环境(推荐 Humble 或更新版本)。
- 克隆仓库: 'git clone https://github.com/HirasawaGen/mcp_ros2.git'
- 安装 Python 依赖: 建议使用 'uv' 或 'pip' 安装项目依赖。首先确保您已安装 'uv' ('pip install uv')。然后进入项目目录,运行 'uv pip install mcp-protocol fastmcp rclpy numpy opencv-python'。请注意,'rclpy' 依赖于您的 ROS2 安装,确保在 ROS2 环境中执行安装。
- 设置 ROS2 环境: 确保在运行服务器的环境中正确 sourcing ROS2 安装目录的 setup 文件,以便找到 ROS2 相关的库和命令。
服务器配置 (针对 MCP 客户端)
MCP 服务器是为 MCP 客户端(如 MCP cline)提供服务的。要连接此服务器,您需要在 MCP 客户端的配置文件(通常是 JSON 格式)中添加此服务器的配置信息。核心配置项包括:
- 服务器名称: 用于标识此服务器的名称。
- 启动命令 (command): 在您的系统中用于启动 'mcp_server.py' 脚本的命令,例如 'uv' 或 'python'。
- 命令参数 (args): 传递给启动命令的参数列表,例如指定 'mcp_server.py' 脚本所在的目录 ('--directory') 和运行该脚本的操作 ('run mcp_server.py')。您需要将参数中的路径 '/path/to/mcp_ros2/mcp_ros2/' 替换为您实际的项目路径。
- 环境变量 (env): (可选) 启动服务器进程时需要的环境变量,特别是 ROS2 相关的环境配置(如库路径、Python 路径等),这部分信息需要根据您的系统环境配置。
基本使用方法
启动服务器后(运行 'mcp_server.py' 脚本,通常通过 'uv run mcp_server.py' 或直接 'python mcp_server.py' 命令,具体取决于您的环境和配置),您可以使用任何兼容 MCP 协议的客户端(如 MCP cline)连接到该服务器。
通过客户端,您可以:
- 查询服务器提供的工具列表及其描述和参数信息。
- 调用服务器提供的工具(如 'move', 'locate_bot', 'save_image'),并传递相应的参数。
客户端会将您的请求通过 MCP 协议发送给服务器,服务器执行相应的 ROS2 操作后,将结果(如定位信息、图像保存结果)返回给客户端或 LLM。
信息
分类
桌面与硬件