Skip to content

isaacsim.kit.xr.teleop.bridge doesn't load OpenXR extensions #160

@jiwenc-nv

Description

@jiwenc-nv

Describe the bug
Additional OpenXR extensions are not advertised from isaacsim.kit.xr.teleop.bridge

To reproduce
Steps to reproduce the behavior:

Run Isaac Lab with the following patch to use Foot Pedal.

commit 3d2fcdcf470243cef246e13741705cab66008bfc
Author: Jiwen Cai <jiwenc@nvidia.com>
Date:   Sat Feb 21 19:31:40 2026 -0800

    HACK: Test out foot pedal retargeter

diff --git a/source/isaaclab_tasks/isaaclab_tasks/manager_based/locomanipulation/pick_place/locomanipulation_g1_env_cfg.py b/source/isaaclab_tasks/isaaclab_tasks/manager_based/locomanipulation/pick_place/locomanipulation_g1_env_cfg.py
index b4f26fd3077..e36199a37b9 100644
--- a/source/isaaclab_tasks/isaaclab_tasks/manager_based/locomanipulation/pick_place/locomanipulation_g1_env_cfg.py
+++ b/source/isaaclab_tasks/isaaclab_tasks/manager_based/locomanipulation/pick_place/locomanipulation_g1_env_cfg.py
@@ -54,11 +54,14 @@ def _build_g1_locomanipulation_pipeline():
         OutputCombiner with a single "action" output containing the flattened
         32D action tensor: [left_wrist(7), right_wrist(7), hand_joints(14), locomotion(4)].
     """
-    from isaacteleop.retargeting_engine.deviceio_source_nodes import ControllersSource
+    from isaacteleop.retargeting_engine.deviceio_source_nodes import (
+        ControllersSource,
+        Generic3AxisPedalSource,
+    )
     from isaacteleop.retargeting_engine.interface import OutputCombiner, ValueInput
     from isaacteleop.retargeting_engine.retargeters import (
-        LocomotionRootCmdRetargeter,
-        LocomotionRootCmdRetargeterConfig,
+        FootPedalRootCmdRetargeter,
+        FootPedalRootCmdRetargeterConfig,
         Se3AbsRetargeter,
         Se3RetargeterConfig,
         TensorReorderer,
@@ -69,6 +72,7 @@ def _build_g1_locomanipulation_pipeline():
 
     # Create input sources (trackers are auto-discovered from pipeline)
     controllers = ControllersSource(name="controllers")
+    pedals = Generic3AxisPedalSource(name="pedals")
 
     # External input: world-to-anchor 4x4 transform matrix provided by IsaacTeleopDevice
     transform_input = ValueInput("world_T_anchor", TransformMatrix())
@@ -155,19 +159,16 @@ def _build_g1_locomanipulation_pipeline():
     )
 
     # -------------------------------------------------------------------------
-    # Locomotion Root Command Retargeter (base velocity from thumbsticks)
+    # Foot Pedal Root Command Retargeter (base velocity from foot pedals)
     # -------------------------------------------------------------------------
-    locomotion_cfg = LocomotionRootCmdRetargeterConfig(
-        initial_hip_height=0.72,
-        movement_scale=0.5,
-        rotation_scale=0.35,
-        dt=1.0 / 100.0,  # Must match rendering dt: sim.dt (1/200) * render_interval (2)
+    locomotion_cfg = FootPedalRootCmdRetargeterConfig(
+        mode="horizontal",
     )
-    locomotion = LocomotionRootCmdRetargeter(locomotion_cfg, name="locomotion")
+
+    locomotion = FootPedalRootCmdRetargeter(locomotion_cfg, name="foot_pedal")
     connected_locomotion = locomotion.connect(
         {
-            "controller_left": controllers.output(ControllersSource.LEFT),
-            "controller_right": controllers.output(ControllersSource.RIGHT),
+            "pedals": pedals.output("pedals"),
         }
     )
 
@@ -278,7 +279,7 @@ class LocomanipulationG1SceneCfg(InteractiveSceneCfg):
     # Table
     packing_table = AssetBaseCfg(
         prim_path="/World/envs/env_.*/PackingTable",
-        init_state=AssetBaseCfg.InitialStateCfg(pos=[0.0, 0.55, -0.3], rot=[0.0, 0.0, 0.0, 1.0]),
+        init_state=AssetBaseCfg.InitialStateCfg(pos=[0.0, 5, -0.3], rot=[0.0, 0.0, 0.0, 1.0]),
         spawn=UsdFileCfg(
             usd_path=f"{ISAAC_NUCLEUS_DIR}/Props/PackingTable/packing_table.usd",
             rigid_props=sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True),
@@ -287,7 +288,7 @@ class LocomanipulationG1SceneCfg(InteractiveSceneCfg):
 
     object = RigidObjectCfg(
         prim_path="{ENV_REGEX_NS}/Object",
-        init_state=RigidObjectCfg.InitialStateCfg(pos=[-0.35, 0.45, 0.6996], rot=[0, 0, 0, 1]),
+        init_state=RigidObjectCfg.InitialStateCfg(pos=[-0.35, 5, 0.6996], rot=[0, 0, 0, 1]),
         spawn=UsdFileCfg(
             usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Mimic/pick_place_task/pick_place_assets/steering_wheel.usd",
             scale=(0.75, 0.75, 0.75),

Expected behavior
Foot Pedal should work

Observed behavior

Got exception that XR_NVX1_tensor_data extension cannot be loaded

Screenshots
If applicable, add screenshots to help explain your problem.

Platforms

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions