项目简介

这是一个基于 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 的通信方式使得它可以在多种平台和环境中使用。

安装步骤

  1. 安装 Python 环境: 确保你的系统安装了 Python。
  2. 安装 uv (推荐) 或 pip: 根据 README 的指引安装 'uv' 或 'pip' 工具。
  3. 克隆仓库: 将 ros-mcp-server 仓库克隆到你的本地机器。
  4. 安装依赖: 进入仓库目录,使用 'uv' 或 'pip' 安装项目依赖。例如:
    uv sync
    # 或
    # pip install -r requirements.txt 
    如果使用 'uv',可以考虑创建并激活虚拟环境 ('uv venv' / 'source .venv/bin/activate')。

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

要让支持MCP的LLM客户端(如 Claude Desktop)使用此服务器,需要在客户端的配置中指定如何启动此服务器进程。通常这涉及提供服务器的名称、启动命令及其参数。

对于此项目,配置信息会指示客户端运行一个 Python 脚本。关键信息包括:

  • 服务器名称: 'ros-mcp-server'
  • 启动命令 (command): 执行 Python 脚本的命令,例如 'uv' 或 'python'。
  • 参数 (args): 传递给命令的参数,包括指定项目目录和要执行的脚本文件 ('server.py')。例如,类似 '["--directory", "/你的/项目/路径/ros-mcp-server", "run", "server.py"]' 这样的结构。请根据你实际的安装路径调整 '/你的/项目/路径' 部分。

具体的配置方式和位置取决于你使用的MCP客户端软件。

基本使用方法

  1. 配置 IP 地址: 在 'server.py' 文件中,修改 'LOCAL_IP' 和 'ROSBRIDGE_IP' 以匹配你的网络环境和 rosbridge 服务器地址。
  2. 启动 rosbridge 服务器: 在你的 ROS/ROS2 环境中启动 rosbridge_websocket 节点。
  3. 启动 MCP 客户端: 运行已配置好此 ROS MCP 服务器的 LLM 客户端。
  4. 发送自然语言指令: 在 LLM 客户端中输入控制机器人的自然语言指令,例如 "让机器人向前移动一点"。LLM 会识别指令,并通过 MCP 调用对应的服务器工具来执行。
  5. 验证机器人行为: 观察机器人是否按照指令移动,并检查 rosbridge 和 ROS topic 是否收到了相应的命令消息。

信息

分类

桌面与硬件