返回市场
以撒模拟MCP服务器

以撒模拟MCP服务器

作者:omni-mcp94 星标更新:2025-04-25

项目介绍

Isaac Sim MCP 扩展和 MCP 服务器

MCP 服务器及其扩展利用模型上下文协议(MCP)框架来实现对 NVIDIA Isaac Sim 的自然语言控制,将对话式AI输入转化为精确的模拟操作。这一扩展连接了MCP生态系统与具身智能应用。

特性

  • 对 Isaac Sim 的自然语言控制
  • 动态机器人定位和移动
  • 自定义灯光和场景创建
  • 具有障碍导航的高级机器人模拟
  • 执行前的交互式代码预览

要求

  • NVIDIA Isaac Sim 4.2.0 或更高版本
  • Python 3.9+
  • 用于 MCP 集成的 Cursor AI 编辑器

强制 前置条件

安装

cd ~/Documents
git clone https://github.com/omni-mcp/isaac-sim-mcp

安装并启用扩展

Isaac Sim 扩展文件夹应指向您的项目文件夹:

  • 扩展位置:~/Documents/isaac-sim-mcp
  • 扩展ID:isaac.sim.mcp_extension
# 在 Isaac Simulation 中启用扩展
# 切换到您的 Isaac Sim 安装目录
# 您可以使用 --/persistent/isaac/asset_root/default="<您的资产位置>" 将资产根目录更改为本地
# 默认情况下,它是一个 AWS 存储桶,例如 --/persistent/isaac/asset_root/default="/share/Assets/Isaac/4.2"
# 设置 Beaver3d 和 NVIDIA 的 API 密钥
export BEAVER3D_MODEL=<您的 beaver3d 模型名称>
export ARK_API_KEY=<您的 Bearver3D API 密钥>
export NVIDIA_API_KEY="<您的 nvidia api 密钥 并从 https://ngc.nvidia.com/signout 获取它>"

cd ~/.local/share/ov/pkg/isaac-sim-4.2.0
./isaac-sim.sh --ext-folder /home/ubuntu/Documents/isaac-sim-mcp/ --enable isaac.sim.mcp_extension

验证扩展是否成功启动。输出应如下所示:

[7.160s] [ext: isaac.sim.mcp_extension-0.1.0] startup
trigger  on_startup for:  isaac.sim.mcp_extension-0.1.0
settings:  {'envPath': '/home/ubuntu/.local/share/ov/data/Kit/Isaac-Sim/4.2/pip3-envs/default', 'archiveDirs': {}, 'installCheckIgnoreVersion': False, 'allowOnlineIndex': True, 'tryUpgradePipOnFirstUse': False}
Server thread startedIsaac Sim MCP server started on localhost:8766

默认情况下,扩展应在 localhost:8766 监听。

安装 MCP 服务器

  1. 进入终端并运行,确保 MCP 服务器可以在终端的基础虚拟环境中成功启动。
    uv pip install "mcp[cli]"
    uv run /home/ubuntu/Documents/isaac-sim-mcp/isaac_mcp/server.py
    
  2. 启动 Cursor 并打开文件夹 ~/Documents/isaac-sim-mcp
  3. 进入 Cursor 首选项,选择 MCP 并添加一个全局 MCP 服务器:
{
    "mcpServers": {
        "isaac-sim": {
            "command": "uv run /home/ubuntu/Documents/isaac-sim-mcp/isaac_mcp/server.py"
        }
    }
}

开发模式

要开发 MCP 服务器,请启动 MCP 检查器:

uv run mcp dev ~/Documents/isaac-sim-mcp/isaac_mcp/server.py

您可以通过 http://localhost:5173 访问调试页面

模拟示例提示

注意:在顶部左侧的聊天对话框中切换到代理模式,然后键入提示,并选择 3.7 版本以获得更好的编码体验。

机器人派对

# 创建机器人并改善照明
在当前位置创建 3x3 franka 机器人跨越位置 [3, 0, 0] 和 [6, 3, 0]
执行代码前始终检查连接状态,使用 get_scene_info。
增加舞台上的灯光


# 在特定位置添加机器人
在 [3, 9, 0] 创建一个 g1 机器人
在位置 [2, 1, 0] 添加 Go1 机器人
将 go1 机器人移动到 [1, 1, 0]

工厂设置

# 在一行中创建多个机器人
在当前位置创建 3x3 franka 机器人跨越位置 [3, 0, 0] 和 [6, 3, 0]
执行代码前始终检查连接状态,使用 get_scene_info。
增加舞台上的灯光


从零开始的编码氛围

参考 g1.py 创建一个新的 g1 机器人模拟,并允许机器人 g1 从 [0, 0, 0] 直线走到 [3, 0, 0] 和 [3, 3, 0]
在舞台上创建更多障碍物

使用 beaver3d 模型支持的 Gen3D

使用以下图像生成 beaver 3d 对象,并将它们放置在一个跨越 [0, 0, 0] 到 [40, 40, 0] 的网格区域,比例为 [3, 3, 3]

<在这里插入您的图片 URL,可以是多个图片 URL>

USD 搜索

搜索一个生锈的桌子,并将其放置在 [0, 5, 0],比例为 [3, 3, 3]

MCP 工具

Isaac Sim MCP 扩展提供了一些可以通过 Cursor AI 的自然语言访问的专用工具。这些工具使您能够通过简单的命令控制和操作 NVIDIA Isaac Sim:

连接和场景管理

  • get_scene_info - 向 Isaac Sim 扩展服务器发送请求以验证连接状态并检索基本场景信息。始终首先使用此命令以确保连接处于活动状态。

物理和环境创建

  • create_physics_scene - 创建具有可配置参数的物理场景:
    • objects: 要创建的对象列表(每个对象都有类型和位置)
    • floor: 是否创建地面平面(默认:true)
    • gravity: 定义重力方向和大小的向量(默认:[0, -0.981, 0])
    • scene_name: 场景名称(默认:"physics_scene")

机器人创建和控制

  • create_robot - 在指定位置创建场景中的机器人:
    • robot_type: 要创建的机器人类型(选项:"franka", "jetbot", "carter", "g1", "go1")
    • position: [x, y, z] 位置坐标

Omniverse Kit 和脚本

  • omni_kit_command - 执行 Omniverse Kit 命令:

    • command: 要执行的 Omniverse Kit 命令(例如:"CreatePrim")
    • prim_type: 命令的原始类型(例如:"Sphere")
  • execute_script - 在 Isaac Sim 中执行任意 Python 代码:

    • code: 要执行的 Python 代码

最佳实践

  1. 在执行任何命令之前,始终使用 get_scene_info 检查连接状态
  2. 在添加机器人之前,使用 create_physics_scene 初始化物理场景
  3. 使用 create_robot 进行标准机器人放置,然后再尝试自定义脚本
  4. 对于复杂的模拟,使用 execute_script 并采用适当的异步模式
  5. 在执行前在聊天中预览代码以进行验证

贡献

欢迎贡献!请随时提交拉取请求。

许可证

该项目根据 MIT 许可证发布 - 详情见 LICENSE 文件。

视频演示

以下是 Isaac Sim MCP 扩展的实际演示:

机器人派对演示

机器人派对演示

GIF:使用自然语言命令将更多机器人添加到模拟中

视频格式(MP4)

对于高质量视频,您可以直接访问 MP4 版本:

在 GitHub 上查看时,您可以点击上述链接来查看或下载 MP4 文件。