Skip to content
Open

Dev #155

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ MultiTask Suite
This suite contains a collection of environments centered around dexterous manipulation. Standard [TCDM benchmarks](https://pregrasps.github.io/) are a part of this suite

## - ROBEL Suite (Coming soon)
This suite contains a collection of environments centered around real-world locomotion and manipulation. Standard [ROBEL benchmarks](http://roboticsbenchmarks.org/) are a part of this suite
This suite contains a collection of environments centered around real-world locomotion and manipulation. Standard [ROBEL benchmarks](https://sites.google.com/view/roboticsbenchmarks) are a part of this suite

# Citation
If you find `RoboHive` useful in your research,
Expand Down
4 changes: 2 additions & 2 deletions robohive/envs/env_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -495,8 +495,8 @@ def get_input_seed(self):

def _reset(self, reset_qpos=None, reset_qvel=None, seed=None, **kwargs):
"""
Reset the environment
Default implemention provided. Override if env needs custom reset
Reset the environment (Default implemention provided).
Override if env needs custom reset. Carefully handle return type for gym/gymnasium compatibility
"""
qpos = self.init_qpos.copy() if reset_qpos is None else reset_qpos
qvel = self.init_qvel.copy() if reset_qvel is None else reset_qvel
Expand Down
6 changes: 2 additions & 4 deletions robohive/envs/hands/baoding_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,7 @@ def reset(self, reset_pose=None, reset_vel=None, reset_goal=None, time_period=6,
self.goal = self.create_goal_trajectory(time_period=time_period) if reset_goal is None else reset_goal.copy()

# reset scene
obs = super().reset(reset_qpos=reset_pose, reset_qvel=reset_vel, **kwargs)
return obs
return super().reset(reset_qpos=reset_pose, reset_qvel=reset_vel, **kwargs)

def create_goal_trajectory(self, time_step=.1, time_period=6):
len_of_goals = 1000 # assumes that its greator than env horizon
Expand Down Expand Up @@ -326,5 +325,4 @@ def create_goal_trajectory(self, time_step=.1, time_period=6):
class BaodingRandomEnvV1(BaodingFixedEnvV1):

def reset(self, **kwargs):
obs = super().reset(time_period = self.np_random.uniform(high=5, low=7), **kwargs)
return obs
return super().reset(time_period = self.np_random.uniform(high=5, low=7), **kwargs)
8 changes: 2 additions & 6 deletions robohive/envs/hands/door_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,17 +96,13 @@ def get_reward_dict(self, obs_dict):
return rwd_dict


def reset(self, reset_qpos=None, reset_qvel=None, **kwargs):
def reset(self, **kwargs):
self.sim.reset()
qp = self.init_qpos.copy() if reset_qpos is None else reset_qpos
qv = self.init_qvel.copy() if reset_qvel is None else reset_qvel
self.robot.reset(reset_pos=qp, reset_vel=qv, **kwargs)

self.sim.model.body_pos[self.door_bid,0] = self.np_random.uniform(low=-0.3, high=-0.2)
self.sim.model.body_pos[self.door_bid, 1] = self.np_random.uniform(low=0.25, high=0.35)
self.sim.model.body_pos[self.door_bid,2] = self.np_random.uniform(low=0.252, high=0.35)
self.sim.forward()
return self.get_obs()
return super().reset(**kwargs)


def get_env_state(self):
Expand Down
9 changes: 3 additions & 6 deletions robohive/envs/hands/hammer_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,15 +120,12 @@ def get_obs_dict(self, sim):
return obs_dict


def reset(self, reset_qpos=None, reset_qvel=None, **kwargs):
def reset(self, **kwargs):
self.sim.reset()
qp = self.init_qpos.copy() if reset_qpos is None else reset_qpos
qv = self.init_qvel.copy() if reset_qvel is None else reset_qvel
self.robot.reset(reset_pos=qp, reset_vel=qv, **kwargs)

self.sim.model.body_pos[self.target_bid,2] = self.np_random.uniform(low=0.1, high=0.25)
self.sim.forward()
return self.get_obs()
return super().reset(**kwargs)


def get_env_state(self):
"""
Expand Down
9 changes: 2 additions & 7 deletions robohive/envs/hands/pen_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,19 +108,14 @@ def get_reward_dict(self, obs_dict):
return rwd_dict


def reset(self, reset_qpos=None, reset_qvel=None, **kwargs):
def reset(self, **kwargs):
self.sim.reset()
qp = self.init_qpos.copy() if reset_qpos is None else reset_qpos
qv = self.init_qvel.copy() if reset_qvel is None else reset_qvel
self.robot.reset(reset_pos=qp, reset_vel=qv, **kwargs)

desired_orien = np.zeros(3)
desired_orien[0] = self.np_random.uniform(low=-1, high=1)
desired_orien[1] = self.np_random.uniform(low=-1, high=1)
self.sim.model.body_quat[self.target_obj_bid] = euler2quat(desired_orien)
self.sim.forward()

return self.get_obs()
return super().reset(**kwargs)


def get_env_state(self):
Expand Down
10 changes: 3 additions & 7 deletions robohive/envs/hands/relocate_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,20 +136,16 @@ def get_obs_dict(self, sim):
return obs_dict


def reset(self, reset_qpos=None, reset_qvel=None, **kwargs):
def reset(self, **kwargs):
self.sim.reset()
qp = self.init_qpos.copy() if reset_qpos is None else reset_qpos
qv = self.init_qvel.copy() if reset_qvel is None else reset_qvel
self.robot.reset(reset_pos=qp, reset_vel=qv, **kwargs)


self.sim.model.body_pos[self.obj_bid,0] = self.np_random.uniform(low=-0.15, high=0.15)
self.sim.model.body_pos[self.obj_bid,1] = self.np_random.uniform(low=-0.15, high=0.3)
self.sim.model.site_pos[self.target_obj_sid, 0] = self.np_random.uniform(low=-0.2, high=0.2)
self.sim.model.site_pos[self.target_obj_sid,1] = self.np_random.uniform(low=-0.2, high=0.2)
self.sim.model.site_pos[self.target_obj_sid,2] = self.np_random.uniform(low=0.15, high=0.35)
self.sim.forward()
return self.get_obs()
return super().reset(**kwargs)


def get_env_state(self):
"""
Expand Down
2 changes: 1 addition & 1 deletion robohive/envs/multi_task/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This suite is designed to study generalization in multi-task settings. RoboHive's multi-task suite builds from `FrankaKitchen` environements originally studied in the [Relay Policy Learning](https://relay-policy-learning.github.io/) project.

# Franka Kitchen
`FrankaKitchen` domain offers a challenging set of manipulation problems in an unstructured environment with many possible tasks to perform. The original set consisted of a franka robot in a kitchen domain. Overtime, Franka Kitchen has became a popular choice of environments for studying multi-task generalization. Its widespread use has led to a few different publically available variations. To help navigate these changes, we name these variations and document its evolution of across various versions below -
`FrankaKitchen` domain offers a challenging set of manipulation problems in an unstructured environment with many possible tasks to perform. The original set consisted of a franka robot in a kitchen domain. Overtime, Franka Kitchen has became a popular choice of environments for studying multi-task generalization. Its widespread use has led to a few different publically available variations. To help navigate these changes, we name these variations and document its evolution across various versions below -

## Change log/ History

Expand Down
6 changes: 3 additions & 3 deletions robohive/envs/multi_task/multi_task_base_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,9 @@ def get_reward_dict(self, obs_dict):
# Optional Keys
("obj_goal", -np.sum(goal_dist, axis=-1)),
("bonus",
1.0*np.product(goal_dist < 5 * self.obj["dof_proximity"], axis=-1)
1.0*np.prod(goal_dist < 5 * self.obj["dof_proximity"], axis=-1)
# np.product(goal_dist < 0.75 * self.obj["dof_ranges"], axis=-1)
+ 1.0*np.product(goal_dist < 1.67 * self.obj["dof_proximity"], axis=-1),
+ 1.0*np.prod(goal_dist < 1.67 * self.obj["dof_proximity"], axis=-1),
# + np.product(goal_dist < 0.25 * self.obj["dof_ranges"], axis=-1),
),
("pose", -np.sum(np.abs(obs_dict["pose_err"]), axis=-1)),
Expand Down Expand Up @@ -272,4 +272,4 @@ def set_obj_goal(self, obj_goal=None, interact_site=None):
elif type(interact_site) is str: # overwrite using name
self.interact_sid = self.sim.model.site_name2id(interact_site)
elif type(interact_site) is int: # overwrite using id
self.interact_sid = interact_site
self.interact_sid = interact_site
Loading
Loading