Skip to content

Commit 67965fa

Browse files
authored
Move gr00t to arena_gr00t (#111)
## Summary Refactor gr00t to arena_gr00t ## Detailed description - GR00T policy related -- replay lerobot, closedloop related tools are in `arena_gr00t` - hdf5->lerobot related are under `policy/data_utils` as they are more general to Lerobot than GR00T. GR00T just takes the lerobot format and uses in their infra.
1 parent c3e39fd commit 67965fa

10 files changed

Lines changed: 11 additions & 11 deletions
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"""
1616
External data configuration module for UnitreeG1 WBC simulation.
1717
This module can be loaded as an external config using:
18-
isaac_arena.policy.gr00t.data_config:UnitreeG1SimWBCDataConfig
18+
isaac_arena.arena_gr00t.data_config:UnitreeG1SimWBCDataConfig
1919
"""
2020
from gr00t.data.dataset import ModalityConfig
2121
from gr00t.data.transform.base import ComposedModalityTransform, ModalityTransform
@@ -38,7 +38,7 @@ class UnitreeG1SimWBCDataConfig(BaseDataConfig):
3838
3939
Usage:
4040
Can be loaded as external config with:
41-
isaac_arena.policy.gr00t.data_config:UnitreeG1SimWBCDataConfig
41+
isaac_arena.arena_gr00t.data_config:UnitreeG1SimWBCDataConfig
4242
"""
4343

4444
video_keys = ["video.ego_view"]

isaac_arena/policy/gr00t/g1_locomanip_gr00t_closedloop_config.yaml renamed to isaac_arena/arena_gr00t/g1_locomanip_gr00t_closedloop_config.yaml

File renamed without changes.

isaac_arena/policy/gr00t/g1_locomanip_replay_action_config.yaml renamed to isaac_arena/arena_gr00t/g1_locomanip_replay_action_config.yaml

File renamed without changes.

isaac_arena/policy/gr00t/gr00t_closedloop_policy.py renamed to isaac_arena/arena_gr00t/gr00t_closedloop_policy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
from gr00t.experiment.data_config import DATA_CONFIG_MAP, load_data_config
2222
from gr00t.model.policy import Gr00tPolicy
2323

24+
from isaac_arena.arena_gr00t.policy_config import Gr00tClosedloopPolicyConfig, TaskMode
2425
from isaac_arena.policy.data_utils.image_conversion import resize_frames_with_padding
2526
from isaac_arena.policy.data_utils.io_utils import create_config_from_yaml, load_robot_joints_config_from_yaml
2627
from isaac_arena.policy.data_utils.joints_conversion import (
2728
remap_policy_joints_to_sim_joints,
2829
remap_sim_joints_to_policy_joints,
2930
)
3031
from isaac_arena.policy.data_utils.robot_joints import JointsAbsPosition
31-
from isaac_arena.policy.gr00t.policy_config import Gr00tClosedloopPolicyConfig, TaskMode
3232
from isaac_arena.policy.policy_base import PolicyBase
3333

3434

@@ -76,7 +76,7 @@ def load_policy(self) -> Gr00tPolicy:
7676
if self.policy_config.data_config in DATA_CONFIG_MAP:
7777
self.data_config = DATA_CONFIG_MAP[self.policy_config.data_config]
7878
elif self.policy_config.data_config == "unitree_g1_sim_wbc":
79-
self.data_config = load_data_config("isaac_arena.policy.gr00t.data_config:UnitreeG1SimWBCDataConfig")
79+
self.data_config = load_data_config("isaac_arena.arena_gr00t.data_config:UnitreeG1SimWBCDataConfig")
8080
else:
8181
raise ValueError(f"Invalid data config: {self.policy_config.data_config}")
8282

isaac_arena/policy/gr00t/gr1_manip_gr00t_closedloop_config.yaml renamed to isaac_arena/arena_gr00t/gr1_manip_gr00t_closedloop_config.yaml

File renamed without changes.

isaac_arena/policy/gr00t/gr1_manip_replay_action_config.yaml renamed to isaac_arena/arena_gr00t/gr1_manip_replay_action_config.yaml

File renamed without changes.

isaac_arena/policy/gr00t/replay_lerobot_action_policy.py renamed to isaac_arena/arena_gr00t/replay_lerobot_action_policy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
from gr00t.data.dataset import LeRobotSingleDataset
2323
from gr00t.experiment.data_config import DATA_CONFIG_MAP, load_data_config
2424

25+
from isaac_arena.arena_gr00t.policy_config import LerobotReplayActionPolicyConfig, TaskMode
2526
from isaac_arena.policy.data_utils.io_utils import create_config_from_yaml, load_robot_joints_config_from_yaml
2627
from isaac_arena.policy.data_utils.joints_conversion import remap_policy_joints_to_sim_joints
27-
from isaac_arena.policy.gr00t.policy_config import LerobotReplayActionPolicyConfig, TaskMode
2828
from isaac_arena.policy.policy_base import PolicyBase
2929

3030

@@ -68,7 +68,7 @@ def load_policy(self, policy_config: LerobotReplayActionPolicyConfig) -> LeRobot
6868
if policy_config.data_config in DATA_CONFIG_MAP:
6969
self.data_config = DATA_CONFIG_MAP[policy_config.data_config]
7070
elif policy_config.data_config == "unitree_g1_sim_wbc":
71-
self.data_config = load_data_config("isaac_arena.policy.gr00t.data_config:UnitreeG1SimWBCDataConfig")
71+
self.data_config = load_data_config("isaac_arena.arena_gr00t.data_config:UnitreeG1SimWBCDataConfig")
7272
else:
7373
raise ValueError(f"Invalid data config: {policy_config.data_config}")
7474

isaac_arena/examples/policy_runner_cli.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def create_policy(args: argparse.Namespace) -> tuple[PolicyBase, int]:
127127
# NOTE(xinjie.yao, 2025-09-28): lazy import to prevent app stalling
128128
# due to import GR00T py dependencies that are conflicting with omni.kit
129129
# see functional import sequence here https://github.com/isaac-sim/IsaacLabEvalTasks/blob/main/scripts/evaluate_gn1.py#L38
130-
from isaac_arena.policy.gr00t.replay_lerobot_action_policy import ReplayLerobotActionPolicy
130+
from isaac_arena.arena_gr00t.replay_lerobot_action_policy import ReplayLerobotActionPolicy
131131

132132
policy = ReplayLerobotActionPolicy(
133133
args.config_yaml_path, num_envs=args.num_envs, device=args.device, trajectory_index=args.trajectory_index
@@ -139,7 +139,7 @@ def create_policy(args: argparse.Namespace) -> tuple[PolicyBase, int]:
139139
num_steps = policy.get_trajectory_length(policy.get_trajectory_index())
140140

141141
elif args.policy_type == "gr00t_closedloop":
142-
from isaac_arena.policy.gr00t.gr00t_closedloop_policy import Gr00tClosedloopPolicy
142+
from isaac_arena.arena_gr00t.gr00t_closedloop_policy import Gr00tClosedloopPolicy
143143

144144
policy = Gr00tClosedloopPolicy(args.policy_config_yaml_path, num_envs=args.num_envs, device=args.device)
145145
num_steps = args.num_steps

isaac_arena/policy/data_utils/convert_hdf5_to_lerobot.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ def convert_trajectory_to_df(
331331
return_dict = {}
332332
data = {}
333333

334-
gr00t_modality_config = load_json(config.modality_template_path)
334+
policy_modality_config = load_json(config.modality_template_path)
335335

336336
policy_joints_config = load_robot_joints_config_from_yaml(config.policy_joints_config_path)
337337
action_joints_config = load_robot_joints_config_from_yaml(config.action_joints_config_path)
@@ -373,7 +373,7 @@ def convert_trajectory_to_df(
373373

374374
# 1.2. Fill in the missing joints with zeros
375375
ordered_joints = []
376-
for joint_group in gr00t_modality_config[key].keys():
376+
for joint_group in policy_modality_config[key].keys():
377377
# NOTE(xinjieyao, 2025-09-25): Those are not joint position commands, which do not need remapping orders
378378
if (
379379
joint_group == "left_wrist_pose"
@@ -384,7 +384,7 @@ def convert_trajectory_to_df(
384384
):
385385
continue
386386
num_joints = (
387-
gr00t_modality_config[key][joint_group]["end"] - gr00t_modality_config[key][joint_group]["start"]
387+
policy_modality_config[key][joint_group]["end"] - policy_modality_config[key][joint_group]["start"]
388388
)
389389

390390
if joint_group not in remapped_joints.keys():

0 commit comments

Comments
 (0)