MiniGridEnv / baselines /heuristic_bot.py
yashu2000's picture
Upload folder using huggingface_hub
a03a89b verified
raw
history blame contribute delete
896 Bytes
"""BabyAI built-in bot baseline (near-optimal upper bound)."""
from __future__ import annotations
try:
from ..env.models import MiniGridAction, MiniGridObservation
except ImportError:
from env.models import MiniGridAction, MiniGridObservation
INT_TO_TEXT = {
0: "turn left",
1: "turn right",
2: "go forward",
3: "pickup",
4: "drop",
5: "toggle",
6: "done",
}
class BabyAIBotBaseline:
"""Adapter for BabyAI's symbolic planner bot."""
def __init__(self, gym_env):
from minigrid.envs.babyai import BotAgent # type: ignore
self._bot = BotAgent(gym_env.unwrapped)
def select_action(
self, obs: MiniGridObservation, raw_obs: dict
) -> MiniGridAction:
del obs
action_int = self._bot.act(raw_obs)
command = INT_TO_TEXT.get(int(action_int), "done")
return MiniGridAction(command=command)