From 8915c6cd25443b7504a48fc8c5d408efd53c2a1b Mon Sep 17 00:00:00 2001 From: Jade Choghari Date: Tue, 18 Nov 2025 16:28:18 +0100 Subject: [PATCH] more changes --- src/lerobot/envs/libero.py | 7 +++++++ src/lerobot/processor/observation_processor.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/lerobot/envs/libero.py b/src/lerobot/envs/libero.py index 350e20ac2..4735c65b2 100644 --- a/src/lerobot/envs/libero.py +++ b/src/lerobot/envs/libero.py @@ -276,6 +276,13 @@ class LiberoEnv(gym.Env): return {"pixels": images.copy()} if self.obs_type == "pixels_agent_pos": + # Validate required fields are present + if eef_pos is None or eef_quat is None or gripper_qpos is None: + raise ValueError( + f"Missing required robot state fields in raw observation. " + f"Got eef_pos={eef_pos is not None}, eef_quat={eef_quat is not None}, " + f"gripper_qpos={gripper_qpos is not None}" + ) return obs raise NotImplementedError( diff --git a/src/lerobot/processor/observation_processor.py b/src/lerobot/processor/observation_processor.py index 2613d291b..c1a1a3024 100644 --- a/src/lerobot/processor/observation_processor.py +++ b/src/lerobot/processor/observation_processor.py @@ -223,6 +223,10 @@ class LiberoProcessorStep(ObservationProcessorStep): - End-effector quaternion converted to axis-angle (3D) - Gripper joint positions (2D) - Maps the concatenated state to `"observation.state"`. + + **Image Processing:** + - Rotates images by 180 degrees by flipping both height and width dimensions. + - This accounts for the HuggingFaceVLA/libero camera orientation convention. """ def _process_observation(self, observation):