ShuaiYang03/GR00T-N1.5-Lerobot-SimplerEnv-BridgeV2
datasets:
- IPEC-COMMUNITY/bridgeoriglerobot base_model:
- nvidia/GR00T-N1.5-3B ---
A fine-tuned GR00T model on the Bridge dataset(30k steps, 8 A100 GPUs) follows the default fine-tuning settings (i.e., freezing the VLM backbone).
The evaluation was conducted using the SimplerEnv-OpenVLA repository (https://github.com/DelinQu/SimplerEnv-OpenVLA), with thanks to their contributions to the community.
This fine-tuned model should not be considered representative of the GR00T's actual performance.
Data configuration:
In addition to adding the following code to data_config.py, I also provide the modality.json, which is required for the GR00T dataloader.
class FractalDataConfig(So100DataConfig):
video_keys = ["video.image", ]
state_keys = ["state.x", "state.y", "state.z", "state.rx", "state.ry", "state.rz", "state.rw", "state.gripper"]
action_keys = ["action.x", "action.y", "action.z", "action.roll", "action.pitch", "action.yaw", "action.gripper"]
language_keys = ["annotation.human.action.task_description"]
def transform(self) -> ModalityTransform:
transforms = [
# video transforms
VideoToTensor(apply_to=self.video_keys),
VideoCrop(apply_to=self.video_keys, scale=0.95),
VideoResize(apply_to=self.video_keys, height=224, width=224, interpolation="linear"),
VideoColorJitter(
apply_to=self.video_keys,
brightness=0.3,
contrast=0.4,
saturation=0.5,
hue=0.08,
),
VideoToNumpy(apply_to=self.video_keys),
# state transforms
StateActionToTensor(apply_to=self.state_keys),
StateActionTransform(
apply_to=self.state_keys,
normalization_modes={key: "min_max" for key in self.state_keys},
),
# action transforms
StateActionToTensor(apply_to=self.action_keys),
StateActionTransform(
apply_to=self.action_keys,
normalization_modes={key: "min_max" for key in self.action_keys},
),
# concat transforms
ConcatTransform(
video_concat_order=self.video_keys,
state_concat_order=self.state_keys,
action_concat_order=self.action_keys,
),
# model-specific transform
GR00TTransform(
state_horizon=len(self.observation_indices),
action_horizon=len(self.action_indices),
max_state_dim=64,
max_action_dim=32,
),
]
return ComposedModalityTransform(transforms=transforms)
class BridgeDataConfig(FractalDataConfig):
video_keys = ["video.image_0", ]
state_keys = ["state.x", "state.y", "state.z", "state.roll", "state.pitch", "state.yaw", "state.pad", "state.gripper"]
action_keys = ["action.x", "action.y", "action.z", "action.roll", "action.pitch", "action.yaw", "action.gripper"]
language_keys = ["annotation.human.action.task_description"]
Extra embodiment tag to reproduce the results.
class EmbodimentTag(Enum):
OXE = 'oxe'
# Embodiment tag string: to projector index in the Action Expert Module
EMBODIMENT_TAG_MAPPING = {
EmbodimentTag.OXE.value: 7,
}
Thanks to @youliangtan, who reevaluated my results.
https://huggingface.co/ShuaiYang03/GR00T-N1.5-Lerobot-SimplerEnv-BridgeV2/discussions/1
https://github.com/NVIDIA/Isaac-GR00T : with the commit hash aa6441feb4f08233d55cbfd2082753cdc01fa676
With the modified SimplerEnv : https://github.com/youliangtan/SimplerEnv
