gym-tl-tools: Temporal Logic Wrappers for Gymnasium Environments
Welcome to gym-tl-tools documentation! This package provides utilities to wrap Gymnasium environments using Temporal Logic (TL) rewards.
Contents:
Installation
You can install gym-tl-tools using pip:
pip install gym-tl-tools
Or, if you are developing locally, clone the repository and install in editable mode:
git clone https://github.com/miki-yuasa/gym-tl-tools.git
cd gym-tl-tools
pip install -e .
Quick Start
Here’s a minimal example of how to use gym-tl-tools:
from gym_tl_tools import Predicate, BaseVarValueInfoGenerator, TLObservationReward
import gymnasium as gym
# Define atomic predicates
atomic_predicates = [
Predicate(name="goal_reached", formula="d_robot_goal < 1.0"),
Predicate(name="obstacle_hit", formula="d_robot_obstacle < 1.0"),
]
# Create variable value generator
class MyVarValueGenerator(BaseVarValueInfoGenerator):
def get_var_values(self, env, obs, info):
return {
"d_robot_goal": info.get("d_robot_goal", float('inf')),
"d_robot_obstacle": info.get("d_robot_obstacle", float('inf')),
}
# Wrap your environment
env = gym.make("YourEnv-v0") # Replace with your actual environment
wrapped_env = TLObservationReward(
env,
tl_spec="F(goal_reached) & G(!obstacle_hit)",
atomic_predicates=atomic_predicates,
var_value_info_generator=MyVarValueGenerator(),
)