自然语言控制模拟扩展

Isaac Sim MCP扩展和服务器通过自然语言控制实现精确的NVIDIA Isaac Sim模拟操作,适用于机器人模拟和场景创建。

  • by omni-mcp
  • Python
  • 本地部署
  • 197 星标
  • 更新于
在 GitHub 查看 omni-mcp/isaac-sim-mcp

使用说明

Isaac Sim MCP扩展和MCP服务器

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

特性

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

需求

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

强制性的 先决条件

安装

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

安装并启用扩展

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

  • 扩展位置: ~/Documents/isaac-sim-mcp
  • 扩展ID: isaac.sim.mcp_extension
# Enable extension in Isaac Simulation
# cd to your Isaac Sim installation directory
# You can change assets root to local with --/persistent/isaac/asset_root/default="<your asset location>"
# By default it is an AWS bucket, e.g. --/persistent/isaac/asset_root/default="/share/Assets/Isaac/4.2"
# Setup API KEY for Beaver3d and NVIDIA
export BEAVER3D_MODEL=<your beaver3d model name>
export export ARK_API_KEY=<Your Bearver3D API Key>
export NVIDIA_API_KEY="<your nvidia api key  and apply it from 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

分机应监听 本地主机:8766 默认情况下。

安装MCP服务器

  1. 转到终端并运行,确保mcp服务器可以在具有基本venv的终端上成功启动。
    uv pip install "mcp[cli]"
    uv run /home/ubuntu/Documents/isaac-sim-mcp/isaac_mcp/server.py
    
  2. 启动Cursor并打开文件夹 ~/Documents/isaac-sim-mcp
  3. 转到光标首选项,选择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以进行更好的编码。

机器人派对

# Create robots and improve lighting
create  3x3 frankas robots in these current stage across location [3, 0, 0] and [6, 3, 0]
always check connection with get_scene_info before execute code.
add more light in the stage


# Add specific robots at positions
create a g1 robot at [3, 9, 0]
add Go1 robot at location [2, 1, 0]
move go1 robot to [1, 1, 0]

工厂设置

# Create multiple robots in a row
acreate  3x3 frankas robots in these current stage across location [3, 0, 0] and [6, 3, 0]
always check connection with get_scene_info before execute code.
add more light in the stage


Vibe从头开始编码

reference to g1.py to create an new g1 robot simulation and allow robot g1 walk straight  from [0, 0, 0] to [3, 0, 0] and [3, 3, 0]
create more obstacles in the stage

Gen3D支持海狸3d模型

Use following images to generate beaver 3d objects and place them into a grid area across [0, 0, 0] to [40, 40, 0] with scale [3, 3, 3]

<your image url here, could be multiple images urls>

美元搜索

search a rusty desk and place it at [0, 5, 0] with scale [3, 3, 3]

MCP工具

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

连接和场景管理

  • get_scene_info -Ping Isaac Sim扩展服务器以验证连接状态并检索基本场景信息。始终先使用此选项以确保连接处于活动状态。

物理与环境创造

  • 创建物理场景 -创建具有可配置参数的物理场景:
    • 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工具包和脚本

  • omni_kit命令 -执行Omni Kit命令:

    • command:要执行的Omni 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许可证获得许可-有关详细信息,请参阅许可证文件。

视频演示

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

机器人派对演示

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

视频格式(MP4)

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

在GitHub上查看时,您可以单击上面的链接查看或下载MP4文件。