Skip to content

Commit 6951dbf

Browse files
rwiltzmichaellin6
authored andcommitted
Adding a lower body standing retargeter. Produces a zero root velocity
and fixed height.
1 parent 8700351 commit 6951dbf

File tree

5 files changed

+34
-5
lines changed

5 files changed

+34
-5
lines changed

source/isaaclab/isaaclab/devices/openxr/retargeters/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from .humanoid.fourier.gr1t2_retargeter import GR1T2Retargeter, GR1T2RetargeterCfg
88
from .humanoid.unitree.g1_lower_body_retargeter import G1LowerBodyRetargeter, G1LowerBodyRetargeterCfg
9+
from .humanoid.unitree.g1_lower_body_standing import G1LowerBodyStandingRetargeter, G1LowerBodyStandingRetargeterCfg
910
from .humanoid.unitree.g1_upper_body_retargeter import G1UpperBodyRetargeter, G1UpperBodyRetargeterCfg
1011
from .manipulator.gripper_retargeter import GripperRetargeter, GripperRetargeterCfg
1112
from .manipulator.se3_abs_retargeter import Se3AbsRetargeter, Se3AbsRetargeterCfg
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
import torch
7+
from dataclasses import dataclass
8+
9+
from isaaclab.devices.retargeter_base import RetargeterBase, RetargeterCfg
10+
11+
12+
@dataclass
13+
class G1LowerBodyStandingRetargeterCfg(RetargeterCfg):
14+
"""Configuration for the G1 lower body standing retargeter."""
15+
16+
hip_height: float = 0.72
17+
18+
19+
class G1LowerBodyStandingRetargeter(RetargeterBase):
20+
"""Provides lower body standing commands for the G1 robot."""
21+
22+
def __init__(self, cfg: G1LowerBodyStandingRetargeterCfg):
23+
"""Initialize the retargeter."""
24+
self.cfg = cfg
25+
26+
def retarget(self, data: dict) -> torch.Tensor:
27+
return torch.tensor([0.0, 0.0, 0.0, self.cfg.hip_height], device=self.cfg.sim_device)

source/isaaclab/isaaclab/devices/teleop_device_factory.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
from isaaclab.devices.openxr.retargeters import (
1818
G1LowerBodyRetargeter,
1919
G1LowerBodyRetargeterCfg,
20+
G1LowerBodyStandingRetargeter,
21+
G1LowerBodyStandingRetargeterCfg,
2022
G1UpperBodyRetargeter,
2123
G1UpperBodyRetargeterCfg,
2224
GR1T2Retargeter,
@@ -55,6 +57,7 @@
5557
GR1T2RetargeterCfg: GR1T2Retargeter,
5658
G1UpperBodyRetargeterCfg: G1UpperBodyRetargeter,
5759
G1LowerBodyRetargeterCfg: G1LowerBodyRetargeter,
60+
G1LowerBodyStandingRetargeterCfg: G1LowerBodyStandingRetargeter,
5861
}
5962

6063

source/isaaclab_tasks/isaaclab_tasks/manager_based/locomanipulation/pick_place/locomanipulation_g1_env_cfg.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from isaaclab.assets import ArticulationCfg, AssetBaseCfg, RigidObjectCfg
1414
from isaaclab.devices.device_base import DevicesCfg
1515
from isaaclab.devices.openxr import OpenXRDeviceCfg, XrCfg
16-
from isaaclab.devices.openxr.retargeters.humanoid.unitree.g1_lower_body_retargeter import G1LowerBodyRetargeterCfg
16+
from isaaclab.devices.openxr.retargeters.humanoid.unitree.g1_lower_body_standing import G1LowerBodyStandingRetargeterCfg
1717
from isaaclab.devices.openxr.retargeters.humanoid.unitree.g1_upper_body_retargeter import G1UpperBodyRetargeterCfg
1818
from isaaclab.envs import ManagerBasedRLEnvCfg
1919
from isaaclab.managers import ObservationGroupCfg as ObsGroup
@@ -225,7 +225,7 @@ def __post_init__(self):
225225
sim_device=self.sim.device,
226226
hand_joint_names=self.actions.upper_body_ik.hand_joint_names,
227227
),
228-
G1LowerBodyRetargeterCfg(
228+
G1LowerBodyStandingRetargeterCfg(
229229
sim_device=self.sim.device,
230230
),
231231
],

source/isaaclab_tasks/isaaclab_tasks/manager_based/locomanipulation/pick_place/mdp/actions.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ def process_actions(self, actions: torch.Tensor):
7474

7575
# Extract base command from the action tensor
7676
# Assuming the base command [vx, vy, wz, hip_height]
77-
# TODO
78-
base_command = torch.zeros_like(actions) # Shape: [num_envs, 4]
79-
base_command[:, 3] = 0.72
77+
base_command = actions
8078

8179
obs_tensor = self._env.obs_buf["lower_body_policy"]
8280

0 commit comments

Comments
 (0)