CoolFace
Modelpublic

k-valentin/unitree-g1-mujoco

sourceHugging Faceupdated 4d agoView on Hugging Face
0likes21downloads
run_sim.py68 linesDownload Raw Back to root
1#!/usr/bin/env python32import sys3from pathlib import Path4import time5# Add sim module to path6sys.path.insert(0, str(Path(__file__).parent))7 8import yaml9from sim.simulator_factory import SimulatorFactory, init_channel10from sim.model_config import select_end_effector11 12def main(n_envs=1, use_async_envs: bool = False, 13             publish_images=True, camera_port=5555, cameras=None, **kwargs):14    15    # Load config16    config_path = Path(__file__).parent / "config.yaml"17    with open(config_path) as f:18        config = yaml.safe_load(f)19    config = select_end_effector(config, kwargs.get("end_effector"))20    21    # Override config with default values22    enable_offscreen = publish_images or config.get("ENABLE_OFFSCREEN", False)23 24    # Configure cameras if requested25    camera_configs = {}26    if enable_offscreen:27        camera_list = config["CAMERAS"] if cameras is None else cameras28        for cam_name in camera_list:29            camera_configs[cam_name] = {"height": 480, "width": 640}30        print(f"๐Ÿ“ท Cameras: {', '.join(camera_list)} โ†’ ZMQ port {camera_port}")31    32    print("="*60)33    34    # Initialize DDS channel35    init_channel(config=config)36    37    # Create simulator38    sim = SimulatorFactory.create_simulator(39        config=config,40        env_name="default",41        onscreen=kwargs.get("onscreen", config.get("ENABLE_ONSCREEN", True)),42        offscreen=enable_offscreen,43        camera_configs=camera_configs,44    )45    46    # Start simulator47    print("\nSimulator running. Press Ctrl+C to exit.")48    if enable_offscreen and publish_images:49        print(f"Camera images publishing on tcp://localhost:{camera_port}")50    try:51        if publish_images:52            sim.start_image_publish_subprocess(53                start_method="spawn",54                camera_port=camera_port,55            )56            time.sleep(1)57        sim.start()58    except KeyboardInterrupt:59        print("+++++Simulator interrupted by user.")60    except Exception as e:61        print(f"++++error in simulator: {e} ++++")62    finally:63        print("++++closing simulator ++++")64        sim.close()65 66if __name__ == "__main__":67    main()68