From d63dc115cca1acc12b34caa607c29cda3e69d9a9 Mon Sep 17 00:00:00 2001 From: Suraj Nair Date: Wed, 9 Mar 2022 11:20:04 -0800 Subject: [PATCH 1/4] saving the original env state in env info --- mj_envs/envs/env_base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mj_envs/envs/env_base.py b/mj_envs/envs/env_base.py index d79060f6..5012bd1e 100644 --- a/mj_envs/envs/env_base.py +++ b/mj_envs/envs/env_base.py @@ -110,6 +110,7 @@ def step(self, a): Step the simulation forward (t => t+1) Uses robot interface to safely step the forward respecting pos/ vel limits """ + env_state = self.get_env_state() a = np.clip(a, self.action_space.low, self.action_space.high) self.last_ctrl = self.robot.step(ctrl_desired=a, ctrl_normalized=self.normalize_act, @@ -128,6 +129,7 @@ def step(self, a): # finalize step env_info = self.get_env_infos() + env_info['env_state'] = env_state.copy() # returns obs(t+1), rew(t), done(t), info(t+1) return obs, env_info['rwd_'+self.rwd_mode], bool(env_info['done']), env_info From ff600cd0b5a17571dfc5b462a22be11284b9627b Mon Sep 17 00:00:00 2001 From: Suraj Nair Date: Wed, 9 Mar 2022 11:27:20 -0800 Subject: [PATCH 2/4] Adding desk randomization --- mj_envs/envs/relay_kitchen/__init__.py | 1 + .../envs/relay_kitchen/kitchen_multitask_v2.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/mj_envs/envs/relay_kitchen/__init__.py b/mj_envs/envs/relay_kitchen/__init__.py index 97521941..47384c51 100644 --- a/mj_envs/envs/relay_kitchen/__init__.py +++ b/mj_envs/envs/relay_kitchen/__init__.py @@ -155,6 +155,7 @@ DEMO_ENTRY_POINT = "mj_envs.envs.relay_kitchen:KitchenFrankaDemo" RANDOM_ENTRY_POINT = "mj_envs.envs.relay_kitchen:KitchenFrankaRandom" FIXED_ENTRY_POINT = "mj_envs.envs.relay_kitchen:KitchenFranka" +RANDOM_DESK_ENTRY_POINT = "mj_envs.envs.relay_kitchen:KitchenFrankaRandomDesk" # Kitchen register( diff --git a/mj_envs/envs/relay_kitchen/kitchen_multitask_v2.py b/mj_envs/envs/relay_kitchen/kitchen_multitask_v2.py index 273ffcfe..b1cd061e 100644 --- a/mj_envs/envs/relay_kitchen/kitchen_multitask_v2.py +++ b/mj_envs/envs/relay_kitchen/kitchen_multitask_v2.py @@ -318,3 +318,19 @@ def reset(self, reset_qpos=None, reset_qvel=None): * (self.robot_ranges[:, 1] - self.robot_ranges[:, 0]) ) return super().reset(reset_qpos=reset_qpos, reset_qvel=reset_qvel) + +class KitchenFrankaRandomDesk(KitchenFrankaFixed): + def reset(self, reset_qpos=None, reset_qvel=None): + if reset_qpos is None: + reset_qpos = self.init_qpos.copy() + reset_qpos[self.robot_dofs] += ( + 0.05 + * (self.np_random.uniform(size=len(self.robot_dofs)) - 0.5) + * (self.robot_ranges[:, 1] - self.robot_ranges[:, 0]) + ) + ncon = 10 + while ncon > 4: + self.sim.model.body_pos[14] = np.array([-0.1, 0.75, 0.0]) + np.random.uniform(-0.1, 0.1, (3,)) + self.sim.step() + ncon = self.sim.data.ncon + return super().reset(reset_qpos=reset_qpos, reset_qvel=reset_qvel) From 804de217996e9582dfa4716eb326668d3ffa8c12 Mon Sep 17 00:00:00 2001 From: Suraj Nair Date: Wed, 9 Mar 2022 11:28:47 -0800 Subject: [PATCH 3/4] Adding several new camera views for environments --- mj_envs/envs/hand_manipulation_suite/assets/DAPG_door.xml | 5 +++++ mj_envs/envs/hand_manipulation_suite/assets/DAPG_hammer.xml | 5 +++++ mj_envs/envs/hand_manipulation_suite/assets/DAPG_pen.xml | 1 + .../envs/hand_manipulation_suite/assets/DAPG_relocate.xml | 6 ++++++ mj_envs/envs/relay_kitchen/assets/franka_kitchen.xml | 4 +++- 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_door.xml b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_door.xml index 184dd35b..807986e4 100644 --- a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_door.xml +++ b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_door.xml @@ -25,6 +25,11 @@ + + + + + diff --git a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_hammer.xml b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_hammer.xml index b2260f01..9c495051 100644 --- a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_hammer.xml +++ b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_hammer.xml @@ -42,6 +42,11 @@ + + + + + diff --git a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_pen.xml b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_pen.xml index 2abab7ac..c0bec763 100644 --- a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_pen.xml +++ b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_pen.xml @@ -30,6 +30,7 @@ + diff --git a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_relocate.xml b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_relocate.xml index 8f2e10a9..c5a10c33 100644 --- a/mj_envs/envs/hand_manipulation_suite/assets/DAPG_relocate.xml +++ b/mj_envs/envs/hand_manipulation_suite/assets/DAPG_relocate.xml @@ -25,6 +25,12 @@ + + + + + + diff --git a/mj_envs/envs/relay_kitchen/assets/franka_kitchen.xml b/mj_envs/envs/relay_kitchen/assets/franka_kitchen.xml index 1e8bc6a6..3ef3ee3a 100644 --- a/mj_envs/envs/relay_kitchen/assets/franka_kitchen.xml +++ b/mj_envs/envs/relay_kitchen/assets/franka_kitchen.xml @@ -6,7 +6,7 @@ Details :: https://github.com/vikashplus/furniture_sim License :: Under Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ====================================================== -©vk©--> - + @@ -49,6 +49,8 @@ + + From 4da4ab80c234fef008edbb58476df305d1c69b84 Mon Sep 17 00:00:00 2001 From: Suraj Nair Date: Wed, 9 Mar 2022 20:12:09 -0800 Subject: [PATCH 4/4] removing unnecessary edit --- mj_envs/envs/env_base.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mj_envs/envs/env_base.py b/mj_envs/envs/env_base.py index 5012bd1e..d79060f6 100644 --- a/mj_envs/envs/env_base.py +++ b/mj_envs/envs/env_base.py @@ -110,7 +110,6 @@ def step(self, a): Step the simulation forward (t => t+1) Uses robot interface to safely step the forward respecting pos/ vel limits """ - env_state = self.get_env_state() a = np.clip(a, self.action_space.low, self.action_space.high) self.last_ctrl = self.robot.step(ctrl_desired=a, ctrl_normalized=self.normalize_act, @@ -129,7 +128,6 @@ def step(self, a): # finalize step env_info = self.get_env_infos() - env_info['env_state'] = env_state.copy() # returns obs(t+1), rew(t), done(t), info(t+1) return obs, env_info['rwd_'+self.rwd_mode], bool(env_info['done']), env_info