Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions docs/source/api/lab/isaaclab.devices.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,15 @@
HaplyDevice
OpenXRDevice
ManusVive
isaaclab.devices.openxr.retargeters.GripperRetargeter
isaaclab.devices.openxr.retargeters.Se3AbsRetargeter
isaaclab.devices.openxr.retargeters.Se3RelRetargeter
isaaclab.devices.openxr.retargeters.GR1T2Retargeter
isaaclab.devices.retargeters.GripperRetargeter
isaaclab.devices.retargeters.Se3AbsRetargeter
isaaclab.devices.retargeters.Se3RelRetargeter

.. rubric:: Modules

.. autosummary::

isaaclab.devices.openxr.retargeters
isaaclab.devices.retargeters

Device Base
-----------
Expand Down Expand Up @@ -116,25 +115,19 @@ Manus + Vive
Retargeters
-----------

.. autoclass:: isaaclab.devices.openxr.retargeters.GripperRetargeter
.. autoclass:: isaaclab.devices.retargeters.GripperRetargeter
:members:
:inherited-members:
:show-inheritance:
:noindex:

.. autoclass:: isaaclab.devices.openxr.retargeters.Se3AbsRetargeter
.. autoclass:: isaaclab.devices.retargeters.Se3AbsRetargeter
:members:
:inherited-members:
:show-inheritance:
:noindex:

.. autoclass:: isaaclab.devices.openxr.retargeters.Se3RelRetargeter
:members:
:inherited-members:
:show-inheritance:
:noindex:

.. autoclass:: isaaclab.devices.openxr.retargeters.GR1T2Retargeter
.. autoclass:: isaaclab.devices.retargeters.Se3RelRetargeter
:members:
:inherited-members:
:show-inheritance:
Expand Down
22 changes: 5 additions & 17 deletions docs/source/how-to/cloudxr_teleoperation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -680,33 +680,21 @@ the OpenXRDevice during initialization.

Isaac Lab provides three main retargeters for hand tracking:

.. dropdown:: Se3RelRetargeter (:class:`isaaclab.devices.openxr.retargeters.Se3RelRetargeter`)
.. dropdown:: Se3RelRetargeter (:class:`isaaclab.devices.retargeters.Se3RelRetargeter`)

* Generates incremental robot commands from relative hand movements
* Best for precise manipulation tasks

.. dropdown:: Se3AbsRetargeter (:class:`isaaclab.devices.openxr.retargeters.Se3AbsRetargeter`)
.. dropdown:: Se3AbsRetargeter (:class:`isaaclab.devices.retargeters.Se3AbsRetargeter`)

* Maps hand position directly to robot end-effector position
* Enables 1:1 spatial control

.. dropdown:: GripperRetargeter (:class:`isaaclab.devices.openxr.retargeters.GripperRetargeter`)
.. dropdown:: GripperRetargeter (:class:`isaaclab.devices.retargeters.GripperRetargeter`)

* Controls gripper state based on thumb-index finger distance
* Used alongside position retargeters for full robot control

.. dropdown:: GR1T2Retargeter (:class:`isaaclab.devices.openxr.retargeters.GR1T2Retargeter`)

* Retargets OpenXR hand tracking data to GR1T2 hand end-effector commands
* Handles both left and right hands, converting hand poses to joint angles for the GR1T2 robot's hands
* Supports visualization of tracked hand joints

.. dropdown:: UnitreeG1Retargeter (:class:`isaaclab.devices.openxr.retargeters.UnitreeG1Retargeter`)

* Retargets OpenXR hand tracking data to Unitree G1 using Inspire 5-finger hand end-effector commands
* Handles both left and right hands, converting hand poses to joint angles for the G1 robot's hands
* Supports visualization of tracked hand joints

Retargeters can be combined to control different robot functions simultaneously.

Using Retargeters with Hand Tracking
Expand All @@ -717,7 +705,7 @@ Here's an example of setting up hand tracking:
.. code-block:: python

from isaaclab.devices import OpenXRDevice, OpenXRDeviceCfg
from isaaclab.devices.openxr.retargeters import Se3AbsRetargeter, GripperRetargeter
from isaaclab.devices.retargeters import Se3AbsRetargeter, GripperRetargeter

# Create retargeters
position_retargeter = Se3AbsRetargeter(
Expand Down Expand Up @@ -796,7 +784,7 @@ XR-based teleoperation can be integrated with Isaac Lab's environment configurat
from isaaclab.envs import ManagerBasedEnvCfg
from isaaclab.devices import DevicesCfg, OpenXRDeviceCfg
from isaaclab.devices.openxr import XrCfg
from isaaclab.devices.openxr.retargeters import Se3AbsRetargeterCfg, GripperRetargeterCfg
from isaaclab.devices.retargeters import Se3AbsRetargeterCfg, GripperRetargeterCfg

@configclass
class MyEnvironmentCfg(ManagerBasedEnvCfg):
Expand Down
33 changes: 15 additions & 18 deletions source/isaaclab/isaaclab/devices/openxr/retargeters/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,20 @@
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Retargeters for mapping input device data to robot commands."""

from .humanoid.fourier.gr1t2_retargeter import GR1T2Retargeter, GR1T2RetargeterCfg
from .humanoid.unitree.g1_lower_body_standing import G1LowerBodyStandingRetargeter, G1LowerBodyStandingRetargeterCfg
from .humanoid.unitree.g1_motion_controller_locomotion import (
G1LowerBodyStandingMotionControllerRetargeter,
G1LowerBodyStandingMotionControllerRetargeterCfg,
)
from .humanoid.unitree.inspire.g1_upper_body_retargeter import UnitreeG1Retargeter, UnitreeG1RetargeterCfg
from .humanoid.unitree.trihand.g1_upper_body_motion_ctrl_retargeter import (
G1TriHandUpperBodyMotionControllerRetargeter,
G1TriHandUpperBodyMotionControllerRetargeterCfg,
)
from .humanoid.unitree.trihand.g1_upper_body_retargeter import (
G1TriHandUpperBodyRetargeter,
G1TriHandUpperBodyRetargeterCfg,
"""
Backward compatibility shim for retargeters.

.. warning::
This module is deprecated. Please use :mod:`isaaclab.devices.retargeters` instead.
"""

import warnings

from isaaclab.devices.retargeters import * # noqa: F401, F403

warnings.warn(
"isaaclab.devices.openxr.retargeters has moved to isaaclab.devices.retargeters. Please update your imports.",
DeprecationWarning,
stacklevel=2,
)
from .manipulator.gripper_retargeter import GripperRetargeter, GripperRetargeterCfg
from .manipulator.se3_abs_retargeter import Se3AbsRetargeter, Se3AbsRetargeterCfg
from .manipulator.se3_rel_retargeter import Se3RelRetargeter, Se3RelRetargeterCfg
21 changes: 21 additions & 0 deletions source/isaaclab/isaaclab/devices/retargeters/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Retargeters for mapping input device data to robot commands."""

from .dex.dex_hand_retargeter import (
DexBiManualRetargeter,
DexBiManualRetargeterCfg,
DexHandRetargeter,
DexHandRetargeterCfg,
)
from .dex.dex_motion_controller import DexMotionController, DexMotionControllerCfg
from .locomotion.locomotion_fixed_root_cmd_retargeter import (
LocomotionFixedRootCmdRetargeter,
LocomotionFixedRootCmdRetargeterCfg,
)
from .locomotion.locomotion_root_cmd_retargeter import LocomotionRootCmdRetargeter, LocomotionRootCmdRetargeterCfg
from .manipulator.gripper_retargeter import GripperRetargeter, GripperRetargeterCfg
from .manipulator.se3_abs_retargeter import Se3AbsRetargeter, Se3AbsRetargeterCfg
from .manipulator.se3_rel_retargeter import Se3RelRetargeter, Se3RelRetargeterCfg
7 changes: 7 additions & 0 deletions source/isaaclab/isaaclab/devices/retargeters/dex/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

from .dex_hand_retargeter import DexHandRetargeter, DexHandRetargeterCfg
from .dex_motion_controller import DexMotionController, DexMotionControllerCfg
Loading
Loading