Replies: 5 comments
-
|
Hi @errrr0501, it sounds like maybe you have not upgraded to the corresponding 2.2 version of the IsaacXRTeleop client app. Are you able to try the latest app from here and report back? |
Beta Was this translation helpful? Give feedback.
-
|
Hi @rwiltz , thanks for the quick response! However, I noticed a separate issue: Could this be caused by the retargeting or by my hand joint mapping settings?(although I follow the GR1-T2 setting) If you have guidance on where to check or adjust this mapping, I can test further. Appreciate the help! |
Beta Was this translation helpful? Give feedback.
-
|
Hi @errrr0501, the order of the joint angles in the tensor that is passed to the env via env.step is determined by the order of the joint list in the device cfg Example: From here |
Beta Was this translation helpful? Give feedback.
-
|
Hi @rwiltz, thanks for clarifying how the joint list determines the order of the tensor. I did double-check and followed the same joint order in my config, but the issue still occurs: Moving my left hand in the real world drives the right hand joints in the simulator (and vice versa). Wrist mappings are correct — the reversal only happens for the fingers. As a temporary workaround, I remapped the captured right-hand joints to the simulated left hand and the captured left-hand joints to the simulated right hand, which resolves the mirroring issue for now. # Compute per-hand joint angles from the tracker
left_hands_pos = self._hands_controller.compute_left(left_hand_poses)
right_hands_pos = self._hands_controller.compute_right(right_hand_poses)
# Build index lists using the configured joint-name order
left_idx = [self._hand_joint_names.index(n) for n in self._hands_controller.get_left_joint_names()]
right_idx = [self._hand_joint_names.index(n) for n in self._hands_controller.get_right_joint_names()]
# Retarget buffers
n = len(self._hands_controller.get_joint_names())
left_retargeted_hand_joints = np.zeros(n)
right_retargeted_hand_joints = np.zeros(n)
# --- Workaround: swap hands ---
left_retargeted_hand_joints[left_idx] = right_hands_pos # right → left
right_retargeted_hand_joints[right_idx] = left_hands_pos # left → right
# Outputs used by the env
left_hand_joints = left_retargeted_hand_joints
right_hand_joints = right_retargeted_hand_jointsDo you have suggestions on where to properly adjust this so I don’t need to flip them manually? |
Beta Was this translation helpful? Give feedback.
-
|
Following up on this, I will move this post to our Discussions section for follow up. If a bug is documented, please open a new bug report with an update. Thank you. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
If you are submitting a bug report, please fill in the following details and use the tag [bug].
Describe the bug
When performing teleoperation in IsaacLab using GR1-T2 manipulation, the robot does not move as expected when running with docker cloudxr-runtime:5.0.0. The same teleoperation setup works correctly with the older version docker cloudxr-runtime:0.1.0-isaac.
This behavior seems to be specific to the new runtime, as no other parts of the teleoperation setup were changed between tests.
Steps to reproduce
Launch IsaacLab with GR1-T2 teleoperation task.
Set up teleoperation (same configuration as with cloudxr-runtime:0.1.0-isaac).
Use cloudxr-runtime:5.0.0 for streaming.
Describe the characteristic of your environment:
Additional context
Add any other context about the problem here.
Checklist
Beta Was this translation helpful? Give feedback.
All reactions