项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,专注于与机器人操作系统 (ROS/ROS2) 集成。它充当LLM客户端和ROS系统之间的桥梁,将LLM发出的自然语言指令转化为ROS命令,以便控制机器人。
主要功能点
- ROS 命令转换: 核心功能是将从LLM接收的指令转换为标准的ROS消息(目前支持 'geometry_msgs/Twist'),用于控制机器人的运动。
- 工具暴露: 通过MCP定义了 'pub_twist' 和 'pub_twist_seq' 等工具,允许LLM直接调用这些功能来发送运动指令。
- rosbridge 集成: 利用 'rosbridge' 与ROS/ROS2系统进行通信,通过 WebSocket 协议发送指令。
- 跨平台能力: 基于 WebSocket 的通信方式使得它可以在多种平台和环境中使用。
安装步骤
- 安装 Python 环境: 确保你的系统安装了 Python。
- 安装 uv (推荐) 或 pip: 根据 README 的指引安装 'uv' 或 'pip' 工具。
- 克隆仓库: 将 ros-mcp-server 仓库克隆到你的本地机器。
- 安装依赖: 进入仓库目录,使用 'uv' 或 'pip' 安装项目依赖。例如:
如果使用 'uv',可以考虑创建并激活虚拟环境 ('uv venv' / 'source .venv/bin/activate')。uv sync # 或 # pip install -r requirements.txt
服务器配置 (供MCP客户端使用)
要让支持MCP的LLM客户端(如 Claude Desktop)使用此服务器,需要在客户端的配置中指定如何启动此服务器进程。通常这涉及提供服务器的名称、启动命令及其参数。
对于此项目,配置信息会指示客户端运行一个 Python 脚本。关键信息包括:
- 服务器名称: 'ros-mcp-server'
- 启动命令 (command): 执行 Python 脚本的命令,例如 'uv' 或 'python'。
- 参数 (args): 传递给命令的参数,包括指定项目目录和要执行的脚本文件 ('server.py')。例如,类似 '["--directory", "/你的/项目/路径/ros-mcp-server", "run", "server.py"]' 这样的结构。请根据你实际的安装路径调整 '/你的/项目/路径' 部分。
具体的配置方式和位置取决于你使用的MCP客户端软件。
基本使用方法
- 配置 IP 地址: 在 'server.py' 文件中,修改 'LOCAL_IP' 和 'ROSBRIDGE_IP' 以匹配你的网络环境和 rosbridge 服务器地址。
- 启动 rosbridge 服务器: 在你的 ROS/ROS2 环境中启动 rosbridge_websocket 节点。
- 启动 MCP 客户端: 运行已配置好此 ROS MCP 服务器的 LLM 客户端。
- 发送自然语言指令: 在 LLM 客户端中输入控制机器人的自然语言指令,例如 "让机器人向前移动一点"。LLM 会识别指令,并通过 MCP 调用对应的服务器工具来执行。
- 验证机器人行为: 观察机器人是否按照指令移动,并检查 rosbridge 和 ROS topic 是否收到了相应的命令消息。
信息
分类
桌面与硬件