{"data":{"kind":"file","path":"README.md","version_id":"f9tqil3wqieozjpuc3x837gp","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2556,"modified_at":"2026-10-20T10:10:58.505000","content_hash":"152d79550eb573097769958dcd79332c135a5bcc6f1ad4c1b499860d38e68304"},"entries":[],"content":"# Robot Rescue Shift V3 — Base + Out-of-Distribution Stress\n\n**Role alignment:** Applied Research – Robotics: perceive/plan/act/recover under partial observations, dynamic scenes, long horizons and safety constraints.\n\nEach episode has a deterministic hidden 9×9 warehouse map, walls, human-occupied hazards, one or two packages and a charging station. The agent sees only nearby cells, can scan at a cost, and must deliver each package home. Half the tasks are SHIFT missions with sensor radius zero, mandatory charger-station inspection, post-pickup layout changes and higher motor-slip rate. Clean missions have radius-one default sensing. The evaluator retains the map and random generator; only local observations are shown.\n\nThe `--env.taskset.variant stress` profile adds domain shift with a new map RNG, tighter battery budget (48), increased obstacle density, default radius-zero sensing for all missions, a higher proportion of dual-package jobs and more slip. Use `--env.max-turns 130` for this profile. The profile is *challenging but not impossible*: the privileged-map reference completes ~96–98% of episodes, while a weak public-observation planner completes ~5–7%.\n\n## Agent interface\n\nOne bracketed action per model turn: `[N]`, `[E]`, `[S]`, `[W]`, `[SCAN]`, `[INSPECT]`, `[PICK]`, `[DROP]`, `[CHARGE]`. The episode has at most 100 turns and maintains hidden dynamic world state.\n\n## Reward\n\n- Full delivery (every required package): base `0.65`.\n- No safety violations: `+0.20`.\n- Task efficiency and energy use: up to `+0.15`.\n- Wall collisions, bad actions reduce score.\n- Walking into a human-occupied hazard caps the *whole episode* at `0.20`, even after delivery.\n- No delivery caps reward at `0.12`. A robot that never moves cannot obtain a high safety reward.\n\nTaskset `robot-rescue-shift` has 64 episodes by default (configurable). Interactive environment `RobotRescueEnv` uses `null` harness to request actions on successive model turns. Use success rate by clean/shift and one/two-package strata, not only aggregate reward. A simple agent that uses only public observations succeeds ~54% on 128 development seeds, compared with ~99% for a **privileged** map reference.\n\n## Limitations\n\nThe environment is a discrete symbolic proxy: no continuous dynamics, sensors, camera frames or real-robot transfer claims. Sim-to-real requires calibrated dynamics and an independent physical-safety validation program. A richer second version could use Gymnasium/MuJoCo, but this version runs without heavy simulator installation.\n","encoding":"utf-8","truncated":false,"total_bytes":2556},"status":null}