Rotate Strict ============= .. admonition:: Language Instruction Rotate the peg by {angle_deg} degrees to match the target angle while keeping the center of the peg in place. .. admonition:: Task Description :class: tip Spatial transformation: rotate a peg while keeping its center close to the original position. .. image:: ../_static/videos/rotate_strict.gif :alt: Render preview for Rotate Strict :width: 720px :align: center Source ------ - Module: ``mikasa_robo_suite.vla.memory_envs.rotate_strict_vla`` - Source file: ``mikasa_robo_suite/vla/memory_envs/rotate_strict_vla.py`` Difficulty and Parameters ------------------------- Strict variants have tighter spatial constraints than lenient variants. Variants -------- .. list-table:: :header-rows: 1 :widths: 38 12 16 * - Env ID - Horizon - Data Source * - ``RotateStrictPos-VLA-v0`` - 90 - PPO * - ``RotateStrictPosNeg-VLA-v0`` - 90 - PPO Run Example ----------- .. code-block:: python import gymnasium as gym import torch import mikasa_robo_suite.vla.memory_envs # registers VLA env IDs from mikasa_robo_suite.vla.utils.apply_wrappers import apply_mikasa_vla_wrappers env = gym.make( "RotateStrictPos-VLA-v0", num_envs=1, obs_mode="rgb", control_mode="pd_ee_delta_pose", render_mode="all", ) env = apply_mikasa_vla_wrappers(env) obs, info = env.reset(seed=42) for _ in range(env.max_episode_steps): action = env.action_space.sample() if not torch.is_tensor(action): action = torch.as_tensor(action, device=env.unwrapped.device) obs, reward, terminated, truncated, info = env.step(action) env.close() Dataset Collection ------------------ PPO-sourced MIKASA-Robo-90 variants use oracle checkpoints: .. code-block:: bash uv run python mikasa_robo_suite/vla/dataset_collectors/get_mikasa_robo_datasets.py \ --env-id RotateStrictPos-VLA-v0 \ --path-to-save-data data_mikasa_robo \ --ckpt-dir . \ --num-train-data 250 Render Videos ------------- Generate a fresh MP4/GIF render with: .. code-block:: bash uv run python utils/prepare_benchmark_demo_videos.py \ --tasks RotateStrictPos-VLA-v0 \ --output-dir videos/benchmark_demos \ --max-attempts-per-task 8 \ --overwrite Generated media stays under ``videos/`` and should be published deliberately rather than committed by default.