项目简介

'rde-ros-2' 是一个用于ROS 2机器人操作系统开发的Visual Studio Code扩展。它提供了ROS 2的调试、构建和测试支持。作为一个预览功能,此扩展内置了一个Model Context Protocol (MCP) 服务器,允许大型语言模型(LLM)客户端实时地获取并操作运行中的ROS 2系统信息。

主要功能点

  • ROS 2系统信息访问: 允许LLM客户端查询ROS 2节点、话题、服务、参数等运行状态和配置信息,实现对机器人系统状态的深入了解。
  • 资源管理与数据访问: 提供标准化的方式来托管ROS 2系统中的"资源",并允许LLM客户端通过结构化的请求访问这些数据,例如获取传感器数据或系统日志。
  • 工具调用支持: 注册并执行与ROS 2交互的"工具",使LLM能够调用外部功能来控制或查询机器人系统,例如启动或停止一个ROS节点、发布一个ROS话题消息。
  • 上下文提供: 确保LLM客户端可以获取到其执行任务所需的实时ROS 2环境上下文,从而能够生成更准确、更相关的指令或查询。
  • 环境自动配置: 自动配置ROS环境,简化LLM与ROS 2系统的集成过程,无需复杂的环境手动设置。

安装步骤

  1. 安装扩展:
    • 在Visual Studio Code中,打开扩展视图(快捷键 'Ctrl+Shift+X' 或 'Cmd+Shift+X')。
    • 在搜索框中输入 "Ranch Hand Robotics.rde-ros-2"。
    • 找到该扩展后,点击 "安装" 按钮。
    • 安装完成后,按照提示重新加载VS Code以激活扩展。
  2. Python虚拟环境设置:
    • MCP服务器需要Python环境。扩展会自动尝试设置一个隔离的Python虚拟环境来运行MCP服务器。
    • 如果您的系统Python环境是“外部管理”的(常见于Ubuntu 24.04+),VS Code可能会提示您安装 'python3-venv' 包。请务必批准安装,并根据MCP服务器终端和VS Code输出通道的提示进行操作。

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

当您通过VS Code扩展启动“ROS 2 MCP Server”后,它将作为一个HTTP/SSE服务器运行。MCP客户端(如Cursor)需要知道该服务器的URL才能连接。以下是客户端配置示例,通常会添加到您的 '.cursor/mcp.json' 文件中:

{
  "mcpServers": {
    "ros2_extension": {
      // MCP服务器的显示名称,客户端UI中可见
      "name": "ROS 2 VS Code Extension MCP Server",
      // 服务器的访问URL。此MCP服务器默认运行在本地的3002端口,并使用SSE传输协议。
      // 如果您在VS Code的扩展设置中更改了“ROS2.mcpServerPort”端口(默认3002),请相应调整此URL。
      "url": "http://localhost:3002/sse"
    }
  }
}

说明:

  • 'name': 这是MCP服务器在客户端UI中显示的名称,便于识别。
  • 'url': 这是MCP客户端连接到MCP服务器的统一资源定位符。'http://localhost:3002/sse' 表示服务器通过HTTP协议在本地3002端口提供服务,并使用Server-Sent Events (SSE) 作为数据传输机制。
  • 重要提示: 您必须先在VS Code中通过命令面板运行 'ROS2: Start MCP Server' 命令来启动MCP服务器,然后您的MCP客户端才能通过此URL成功连接。

基本使用方法

  1. 打开ROS 2工作区: 在VS Code中打开一个包含ROS 2项目的文件夹作为工作区。
  2. 启动MCP服务器:
    • 打开VS Code的命令面板('Ctrl+Shift+P' 或 'Cmd+Shift+P')。
    • 搜索并运行 'ROS2: Start MCP Server' 命令。
    • MCP服务器将会在后台启动。您可以在“输出”面板中选择“ROS 2”通道,或者切换到“ROS 2 MCP Server”终端查看其启动日志和运行状态。
  3. 连接MCP客户端:
    • 配置您的MCP客户端(例如Cursor),使用上述“服务器配置”部分提供的URL信息,使其能够连接到 'rde-ros-2' 扩展提供的MCP服务器。
    • 一旦连接成功,您的LLM客户端即可通过MCP协议与运行中的ROS 2系统进行交互,例如查询当前活跃的ROS节点、话题发布者/订阅者信息,或者调用ROS服务来执行特定功能。
  4. 停止MCP服务器:
    • 当您不再需要MCP服务器时,可以通过命令面板运行 'ROS2: Stop MCP Server' 命令来停止它。

信息

分类

开发者工具