README
🚀 ROS MCP 服务器
ROS MCP 服务器致力于支持机器人执行复杂任务,能有效适应各种环境。它借助一组函数,将用户通过大语言模型(LLM)输入的自然语言命令转化为 ROS 命令,以此控制机器人。此外,该服务器通过使用 rosbridge,可与 ROS 和 ROS2 系统协同工作,并且利用 WebSocket 通信,能在多个平台广泛应用。
✨ 主要特性
- 支持将自然语言命令转换为 ROS 命令,方便用户控制机器人。
- 可与
ROS和ROS2系统兼容,适用范围广。 - 采用 WebSocket 通信,便于在多个平台使用。
- 支持特定的消息类型,如
geometry_msgs/Twist和sensor_msgs/Image。
支持的消息类型
geometry_msgs/Twistsensor_msgs/Image
📦 安装指南
通过 Smithery 安装
若要通过 Smithery 为 Claude Desktop 自动安装 ros-mcp-server,可使用以下命令:
npx -y @smithery/cli install @lpigeon/ros-mcp-server --client claude
本地安装
uv 安装
- 可使用以下命令安装
uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
或者
pip install uv
- 创建并激活虚拟环境(可选)
uv venv
source .venv/bin/activate
MCP 服务器配置
将 MCP 设置保存到 mcp.json 中。
"ros-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/ros-mcp-server",
"run",
"server.py"
]
}
若您使用 Claude Desktop,可通过以下命令找到 mcp.json:
- MacOS/Linux
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
- Windows
code $env:AppData\Claude\claude_desktop_config.json
💻 使用示例
MCP 函数
get_topics
- 目的:检索机器人 ROS 系统中可用的主题列表。
- 返回:主题列表(
List[Any])
pub_twist
- 目的:通过设置线速度和角速度向机器人发送运动命令。
- 参数:
linear:线速度(List[Any])angular:角速度(List[Any])
pub_twist_seq
- 目的:向机器人发送一系列运动命令,实现多步骤的运动控制。
- 参数:
linear:线速度列表(List[Any])angular:角速度列表(List[Any])duration:每个步骤的持续时间列表(List[Any])
sub_image
- 目的:订阅并接收机器人摄像头的主题图像数据。
- 返回:接收到的图像数据(
Image)
使用指南
- 设置 IP 和端口:根据实际需求,配置 ROS 系统中的 IP 地址和端口号。
- 运行服务器:启动 MCP 服务器,开始处理命令。
- 发送命令:调用 MCP 函数对机器人进行控制。
📚 详细文档
模拟测试
在 NVIDIA Isaac Sim 环境中,该服务器展示了对机器人的有效控制和响应。
Scan to contact