概述
带有Web门户的ROS MCP服务器旨在通过提供一系列功能来支持机器人执行复杂任务并有效适应各种环境,这些功能能够将用户通过大型语言模型(LLM)输入的自然语言指令转换为用于机器人控制的ROS指令。此外,通过利用(此处原文未完整,假设后续内容为补充说明) rosbridge它被配置为同时支持两种操作方式 ROS 并且 ROS2 系统,其基于WebSocket的通信方式使得该系统能够在多种平台上广泛适用。不仅如此,使用这个MCP服务器,我创建了一个网页门户,使得用户无需输入任何命令即可轻松浏览数百个主题和服务,并且能够直观地可视化这些内容,同时还能实时查看带有大型语言模型(LLM)描述的摄像头画面,并通过网页界面控制机器人。
演示
支持的环境
- 四足动物模拟(在Isaac-sim+IsaacLab上成功测试)
- 真实四足机器人(开发中)
- 人形模拟+真实(未来愿景)
1. MCP服务器安装
uv 安装
- 安装
uv,您可以使用以下命令:
curl -LsSf https://astral.sh/uv/install.sh | sh或者
pip install uv- 创建虚拟环境并激活它(可选)
uv venv
source .venv/bin/activateMCP服务器配置
选项A. 安装Cursor
在光标打开设置中并前往 Tools & Integrations 然后点击 Add Custom MCP然后将代码粘贴到2.1节中
选项B:
安装Claude桌面版(如需Linux安装,请遵循 Claude-Desktop-Debian(可译为“Claude Debian桌面版”))。 运行Claude桌面版并前往 developer 设置并点击 Add MCP Server然后粘贴第2.1节中给出的代码
MCP配置文件
将代码粘贴到mcp.json文件中
{
"mcpServers": {
"ros-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/Go2_Isaac_ros2/ros-mcp-server",,
"run",
"server.py"
]
}
}
}1.1 MCP功能
你可以在(某处)找到函数列表 MCPFUNCTIONS.md 翻译为中文是:“MCP功能说明.md” 或者 “MCP功能列表.md”,具体取决于该文件的实际内容和用途,但通常“md”表示这是一个Markdown格式的文件。
1.2 启动Rosbridge服务器
1. 设置IP和端口以连接rosbridge。
- 开放
server.py并改变你的LOCAL_IP,ROSBRIDGE_IP并且ROSBRIDGE_PORT. (ROSBRIDGE_PORT的默认值是9090)
运行 rosbridge 服务器。
ROS 1(机器人操作系统第一版)
roslaunch rosbridge_server rosbridge_websocket.launch ROS 2(机器人操作系统第二版)
ros2 launch rosbridge_server rosbridge_websocket_launch.xml #if you dont have it install it with sudo apt command in linux跑 main.py 根据 README.MD(文件名,可翻译为“README.md”或保持原样,表示一个Markdown格式的说明文件)
在跑步之前,确保 num_envs 在 sim.yaml(可翻译为“模拟配置文件.yaml”或根据具体上下文简化为“模拟配置.yaml”,但通常直接保留为“sim.yaml”以指代特定的配置文件) 与……具有相同的值 NUM_ENVS 在里面 server.py 翻译为中文是:“服务器.py” 或者 “服务器端脚本文件(名为server.py)”。 在实际语境中,通常简化为“服务器端文件(server.py)”或直接称为“server.py文件”(如果上下文已明确这是服务器端的文件)
在聊天框中输入您的指令
2. 启动网络门户
要运行网络门户,唯一的前提条件是步骤3(启动Robridge服务器)。其他步骤可以忽略
2.1 激活环境
假设你正在使用Isaac-Simulation运行它(对真实机器人的支持将在稍后添加),首先,请激活用于运行的相同环境 main.py 根据(isaaclab_env)程序 README.MD(文件名,可直接译为“README.MD文件”或根据上下文简化为“README文件”)
注: 如果你想为网络门户创建一个新的独立环境,那么你需要安装Torch和NumPy,否则请确保不要在现有环境中更新或更改它们,否则可能会导致问题。
conda activate env_isaaclab #or activate your custom env
cd ~/Go2_Isaac_ros2/ros-mcp-server
pip install -r requirements_web_mcp.txt
python web_portal.py2.2 更改门户设置
- 您可以通过将参数设置为True/False来选择在门户中运行哪些服务 config.py(配置文件.py)
- 按钮位置可能会因屏幕尺寸而异。您可以在(相应设置中)进行调整 web_portal.py 翻译成中文为:“网络门户.py” 或者根据具体语境,也可以翻译为“网页门户脚本.py”等,但通常“web_portal.py”直接理解为是一个用于网络门户或网页门户的Python脚本文件 从第90行开始
- 要添加一项新服务,请创建一个新的代码文件,如lidar.py,并在其中进行初始化 \
data_stream.py\翻译为中文是“数据流.py”或“数据流处理脚本.py”,具体翻译可能根据上下文有所调整,但基本意思是表示这是一个处理数据流的Python脚本文件从这里获取网页门户所需的所有数据。所有数据都被收集到\data_stream\类中,然后网页门户会调用该类的对象。 - 默认情况下,每5秒会向大型语言模型(LLM)发送一次图像以更新描述。您可以在(相关设置中)更改此设置 \
data_stream.py\翻译成中文是:\数据流.py\ - 如果你想为不同的机器人使用摄像头和控制器,请确保更改相关话题(或主题)的名称 config.py(配置文件.py)
- 在网络上与多位用户共享Web门户,请前往结账页面 Gradio-Mcp-Server 可以翻译为“Gradio MCP 服务器”。这里,“Gradio”可能是一个特定框架或平台的名称,“MCP”可能代表某种特定的模式、配置或协议(具体含义需根据上下文确定),“Server”则指的是服务器。因此,整个短语可以理解为使用Gradio框架或平台的某种特定MCP模式或配置的服务器
3. 致谢
MCP控制是基于 ros-mcp-server 翻译为中文是“ROS MCP 服务器” (注:我的实现现在已经偏离了很多)
大语言模型(LLM)描述的灵感来源 vlm描述器
7. 引用
@MISC{Suleman2025,
author = "Muhammad Suleman",
title = "Ros2-MCP-Web-Portal",
year = "2025",
url = "https://github.com/sallu-786/Ros2-MCP-Web-Portal",
note = "Version 1.0.0"
}8. 联系
sulemanmuhammad08@gmail.com(这个邮箱地址本身在中文中没有特定的翻译,直接作为邮件地址使用,即“苏莱曼·穆罕默德08@gmail.com”)
