74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
from isaaclab.app import AppLauncher
|
||
import argparse
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 1. 启动 Isaac Sim
|
||
# -----------------------------------------------------------------------------
|
||
parser = argparse.ArgumentParser()
|
||
AppLauncher.add_app_launcher_args(parser)
|
||
args = parser.parse_args()
|
||
|
||
app_launcher = AppLauncher(args)
|
||
simulation_app = app_launcher.app
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 2. 必须先创建 SimulationContext(PhysX 在这里初始化)
|
||
# -----------------------------------------------------------------------------
|
||
import isaaclab.sim as sim_utils
|
||
|
||
sim_cfg = sim_utils.SimulationCfg(
|
||
dt=1 / 120,
|
||
device=args.device,
|
||
)
|
||
sim = sim_utils.SimulationContext(sim_cfg)
|
||
|
||
# (可选)设置相机
|
||
sim.set_camera_view(
|
||
eye=[3.0, 0.0, 2.0],
|
||
target=[0.0, 0.0, 0.5],
|
||
)
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 3. 再 play timeline(这一步非常关键)
|
||
# -----------------------------------------------------------------------------
|
||
import omni.timeline
|
||
|
||
timeline = omni.timeline.get_timeline_interface()
|
||
timeline.play()
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 4. 现在才可以安全创建 Env
|
||
# -----------------------------------------------------------------------------
|
||
import torch
|
||
from isaaclab.envs import ManagerBasedRLEnv
|
||
from mindbot.tasks.manager_based.pull.pull_env_cfg import PullEnvCfg
|
||
|
||
|
||
def main():
|
||
env_cfg = PullEnvCfg()
|
||
env_cfg.scene.num_envs = 1
|
||
|
||
env = ManagerBasedRLEnv(cfg=env_cfg)
|
||
|
||
obs, _ = env.reset()
|
||
print("[OK] Env reset")
|
||
|
||
for step in range(100000):
|
||
actions = torch.zeros(
|
||
env.num_envs,
|
||
env.action_manager.total_action_dim,
|
||
device=env.device,
|
||
)
|
||
obs, rew, done, trunc, info = env.step(actions)
|
||
|
||
if step % 100 == 0:
|
||
root_pos = env.scene["Mindbot"].data.root_pos_w[0]
|
||
print(f"step {step}, root z = {root_pos[2].item():.3f}")
|
||
|
||
print("[DONE]")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|
||
simulation_app.close()
|