FastSim 的大多数控制源适合异步运行,但小型脚本不一定需要 asyncio。
这个案例使用阻塞式 FastSimRun 门面完成应用生命周期控制。
前置条件
- Python 3.11
- FastSim
0.1.0a6 - UniRoboSim Core
0.10.0 - UniRoboSim Isaac Lab adapter
0.10.1 - 可用的 Isaac Lab 3.0 / Isaac Sim 6.0
在当前目录运行:
bash
python main.py
程序会显示 Isaac Lab 窗口,依次启动、暂停、推进一个物理 tick,并 reset 演示机械臂。
代码流程
python
with fastsim.open(RUN_FILE) as simulation:
这行会编译 Run,独占一个应用事件循环线程,并在退出代码块时可靠清理。
python
simulation.start()
simulation.pause()
simulation.single_step()
simulation.reset()
这些都是阻塞调用,每次都返回不可变的应用快照。single_step() 和
reset() 完成后,runtime 都保持 paused。
仅需要生命周期控制的普通脚本可以使用这层门面。若需要直接关节控制、
场景查询、相机读取或与其他异步系统集成,应使用 fastsim.app(...)。
验证等级
已在真实可见 Isaac Lab 后端验证 start、pause、单步、reset 和上下文退出清理。