项目简介
'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系统的集成过程,无需复杂的环境手动设置。
安装步骤
- 安装扩展:
- 在Visual Studio Code中,打开扩展视图(快捷键 'Ctrl+Shift+X' 或 'Cmd+Shift+X')。
- 在搜索框中输入 "Ranch Hand Robotics.rde-ros-2"。
- 找到该扩展后,点击 "安装" 按钮。
- 安装完成后,按照提示重新加载VS Code以激活扩展。
- 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成功连接。
基本使用方法
- 打开ROS 2工作区: 在VS Code中打开一个包含ROS 2项目的文件夹作为工作区。
- 启动MCP服务器:
- 打开VS Code的命令面板('Ctrl+Shift+P' 或 'Cmd+Shift+P')。
- 搜索并运行 'ROS2: Start MCP Server' 命令。
- MCP服务器将会在后台启动。您可以在“输出”面板中选择“ROS 2”通道,或者切换到“ROS 2 MCP Server”终端查看其启动日志和运行状态。
- 连接MCP客户端:
- 配置您的MCP客户端(例如Cursor),使用上述“服务器配置”部分提供的URL信息,使其能够连接到 'rde-ros-2' 扩展提供的MCP服务器。
- 一旦连接成功,您的LLM客户端即可通过MCP协议与运行中的ROS 2系统进行交互,例如查询当前活跃的ROS节点、话题发布者/订阅者信息,或者调用ROS服务来执行特定功能。
- 停止MCP服务器:
- 当您不再需要MCP服务器时,可以通过命令面板运行 'ROS2: Stop MCP Server' 命令来停止它。
信息
分类
开发者工具