| from typing import List, Dict, Optional, Optional |
| import numpy as np |
| import gym |
| from gym.spaces import Box |
| from diffusion_policy.env.kitchen.base import KitchenBase |
|
|
| class KitchenLowdimWrapper(gym.Env): |
| def __init__(self, |
| env: KitchenBase, |
| init_qpos: Optional[np.ndarray]=None, |
| init_qvel: Optional[np.ndarray]=None, |
| render_hw = (240,360) |
| ): |
| self.env = env |
| self.init_qpos = init_qpos |
| self.init_qvel = init_qvel |
| self.render_hw = render_hw |
|
|
| @property |
| def action_space(self): |
| return self.env.action_space |
| |
| @property |
| def observation_space(self): |
| return self.env.observation_space |
|
|
| def seed(self, seed=None): |
| return self.env.seed(seed) |
|
|
| def reset(self): |
| if self.init_qpos is not None: |
| |
| _ = self.env.reset() |
| |
| self.env.set_state(self.init_qpos, self.init_qvel) |
| obs = self.env._get_obs() |
| return obs |
| |
| |
| |
| else: |
| return self.env.reset() |
|
|
| def render(self, mode='rgb_array'): |
| h, w = self.render_hw |
| return self.env.render(mode=mode, width=w, height=h) |
| |
| def step(self, a): |
| return self.env.step(a) |
|
|