2. 加载并操作基础场景

任务说明

本案例目标是在 Isaac Sim 中加载一个内置基础场景(如简易房间或工厂环境),并完成视口的基本操控练习:平移(Pan)、旋转(Orbit)、缩放(Zoom)以及帧选(Frame Selection)。你将通过键盘快捷键与鼠标操作完成这些动作,并观察视口导航器的状态变化以确认操作生效。

实现步骤

Isaac Sim 提供两种加载场景的方式:通过 Omniverse 菜单加载内置素材,或通过 Python API 在启动时自动装载。本案例采用后者,以保证可复现性。以下代码将启动 Isaac Sim 并加载一个包含地面、简单几何体和光源的基础 USD 场景。

# 文件: load_basic_scene.py
# 运行方式: ./isaac_sim.sh --python load_basic_scene.py
from isaacsim import SimulationApp

# 初始化仿真应用(必须在导入其他 Isaac Sim 模块之前)
sim_app = SimulationApp({"headless": False})

# 等待场景加载完成
from isaacsim.core.utils.stage import add_reference_to_stage
from isaacsim.core.utils.extensions import enable_extension

# 启用必要的扩展
enable_extension("omni.kit.viewport.menus")

# 加载内置基础场景(简易仓库环境,包含货架、地面和灯光)
ASSET_PATH = "/Isaac/Environments/Simple_Room/Simple_Room.usd"
add_reference_to_stage(ASSET_PATH, "/World")

# 设置默认视角,便于观察
from omni.usd import get_context
stage = get_context().get_stage()
from pxr import UsdGeom
camera_prim = stage.GetPrimAtPath("/World/Camera")
if camera_prim.IsValid():
    UsdGeom.XformCommonAPI(camera_prim).SetTranslate((3.0, 3.0, 2.0))
    UsdGeom.XformCommonAPI(camera_prim).SetRotate((0, 0, 0), UsdGeom.XformCommonAPI.RotationOrderXYZ)

print("场景加载完成。请使用鼠标和键盘进行视口操作练习。")
print("操作提示:")
print("  - 平移: Alt + 鼠标中键拖拽")
print("  - 旋转: Alt + 鼠标左键拖拽")
print("  - 缩放: Alt + 鼠标右键拖拽 或 滚轮")
print("  - 帧选: F 键(选中物体后)")

# 保持仿真运行,直到用户关闭窗口
sim_app.run()
sim_app.shutdown()

操作练习与验证

运行上述脚本后,Isaac Sim 窗口将打开并显示一个带有货架、地面和光源的简易房间场景。请依次执行以下操作并观察视口变化:

  1. 平移视图:按住 Alt 键并拖拽鼠标中键,场景整体应随鼠标移动而平移。
  2. 旋转视图:按住 Alt 键并拖拽鼠标左键,视口将围绕当前观察点旋转,可从不同角度观察货架。
  3. 缩放视图:按住 Alt 键并拖拽鼠标右键,或直接滚动滚轮,场景应放大或缩小。
  4. 帧选物体:在视口中点击选中任意货架或地面物体(物体高亮),然后按 F 键,视口将自动调整使该物体居中并充满画面。

判定标准

  • 场景成功加载:窗口中出现包含货架、地面和光照的 3D 场景,无报错日志。
  • 平移、旋转、缩放操作均能实时响应,视口画面随鼠标输入连续变化。
  • 帧选操作后,选中物体被置于视口中心且缩放比例合适。
  • 若操作过程中视口无响应,请检查是否按住 Alt 键,或确认鼠标焦点在视口区域内。
Isaac Sim 视口操作映射 视口 (Viewport) 货架 地面 光源 相机 操作映射 平移 (Pan) Alt + 鼠标中键拖拽 旋转 (Orbit) Alt + 鼠标左键拖拽 缩放 (Zoom) Alt + 鼠标右键 / 滚轮 帧选 (Frame) 选中物体后按 F 键 操作时需确保鼠标焦点在视口区域内

常见问题排查

  • 场景未加载:确认 USD 路径是否正确,或尝试更换为其他内置场景(如 /Isaac/Environments/Factory/Factory.usd)。
  • 视口无响应:检查是否在窗口模式下运行(非 headless),并确认鼠标焦点位于视口区域。
  • 帧选无效:需先通过鼠标左键单击选中物体(物体出现高亮轮廓),再按 F 键。