Skip to content

Commit 549c35a

Browse files
committed
docs(so101): correct stale roll description in IK-Abs cfg
Roll is an engage-relative swing-twist about the controller's local Z axis (matching the wrist retargeter), not an absolute twist about fixed world Z (a pre-rework description).
1 parent 2b04850 commit 549c35a

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

source/isaaclab_tasks/isaaclab_tasks/contrib/stack/config/so101/stack_ik_abs_env_cfg.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ def _build_so101_stack_pipeline():
6565
the controller orientation and forwarded as a dedicated pitch channel into a 4×4 task-space
6666
IK (3 position + 1 pitch) over 4 joints (shoulder_pan, shoulder_lift, elbow_flex,
6767
wrist_flex). The controller's roll is
68-
recovered separately as an absolute swing-twist about fixed world Z and forwarded as a
69-
dedicated wrist-roll channel. The gripper jaw tracks the trigger proportionally (analog),
68+
recovered separately as an engage-relative swing-twist about the controller's local Z axis
69+
and forwarded as a dedicated wrist-roll channel. The gripper jaw tracks the trigger proportionally (analog),
7070
and the EE position is clutch-rebased around a captured origin so engaging teleop does not
7171
teleport the arm.
7272
@@ -133,9 +133,9 @@ def _build_so101_stack_pipeline():
133133
)
134134

135135
# Wrist Retargeter (right hand). Reads the same transformed controller stream and emits
136-
# both pitch (absolute in-plane gripper tilt [rad]) and roll (absolute swing-twist about
137-
# fixed world Z [rad]). Pitch drives the 4×4 task-space IK (3 pos + 1 pitch); roll drives
138-
# wrist_roll directly.
136+
# both pitch (absolute in-plane gripper tilt [rad]) and roll (engage-relative swing-twist
137+
# about the controller's local Z axis [rad]). Pitch drives the 4×4 task-space IK
138+
# (3 pos + 1 pitch); roll drives wrist_roll directly.
139139
wrist = SO101WristRetargeter(name="wrist", input_device=ControllersSource.RIGHT)
140140
connected_wrist = wrist.connect(
141141
{
@@ -210,7 +210,7 @@ class SO101CubeStackEnvCfg(stack_joint_pos_env_cfg.SO101CubeStackEnvCfg):
210210
absolute end-effector **position + pitch** via a reduced-task IK over 4 joints
211211
(``shoulder_pan``, ``shoulder_lift``, ``elbow_flex``, ``wrist_flex``), where pitch is the
212212
absolute in-plane gripper tilt [rad], and drive ``wrist_roll`` directly from the
213-
controller's roll (absolute swing-twist passthrough). The resulting action is
213+
controller's roll (engage-relative swing-twist about the controller's local Z axis). The resulting action is
214214
``[pos_x, pos_y, pos_z, pitch, roll, gripper]``.
215215
"""
216216

0 commit comments

Comments
 (0)