Files
mindbot/test_sence.py
2026-01-28 19:51:03 +08:00

74 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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. 必须先创建 SimulationContextPhysX 在这里初始化)
# -----------------------------------------------------------------------------
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()