-
michaellin6 authored
# Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html --> Enhance Pink IK Controller with Null Space Posture Control This PR improves the Pink IK controller integration for better humanoid robot control and more natural postures. **Note**: Original this PR was staged in the internal repo (#547). It has been moved here due to new Github workflow. ## Key Changes ### New Null Space Posture Task - Added NullSpacePostureTask to enforce postural constraints on shoulder/waist joints while prioritizing end-effector tasks - Maintains natural robot poses during manipulation ### Controller Improvements - Tuned low level PD controller gains - Support mixed task types (FrameTask + NullSpacePostureTask) ### Testing & Environment Updates - Redesigned pink controller test script to use JSON-based configurations to program test motions. - Updated all environments (PickPlace, NutPour, ExhaustPipe) with null space control, damping tasks, and improved tracking - Added `Isaac-PickPlace-GR1T2-WaistEnabled-Abs-v0` env that is identical to `Isaac-PickPlace-GR1T2-Abs-v0` but enables the Waist DOFs. - Added target_eef_link_names mapping for clearer link specification Fixes # (issue) These changes help fix the following problems from [VDR feedback](https://docs.google.com/document/d/1saB1QA5r_WlD1l17q7C04WWNltnBW-K0ydI2UB8jxAs/edit?tab=t.0) - [Enable Waist DOF](https://nvbugspro.nvidia.com/bug/5235527) - Discourage elbow flare - Make controller low-latency and low-jerk. **We improved the unit test for the pink controller and reduced our position and rotation accuracy tolerance from 30 mm, 10 degrees to 1 mm, 1 degree.** - Develop metric for controller performance - Added a flag to disable failure due to joint limits. Previously, any commanded pose that ended in joint limit violation would result in no solution and the controlled robot freezing in place. This change gets the solver to still provide a solution and instead issue a warning for joint limit violations. ## Screenshots These controller changes have been tested through the Mimic pipeline (teleop_se3_agent.py, record/replay_demos.py). Here are videos showing teleoperation of all three environments working. ### PickPlace-GR1T2-Abs  ### NutPour-GR1T2  ### ExhaustPipe-GR1T2  ### Successfully Trained Robomimic Model Rollout on PickPlace task For the two robomimic tasks: `Isaac-PickPlace-GR1T2-Abs-v0` and `Isaac-NutPour-GR1T2-Pink-IK-Abs-v0`, if we collect a new dataset, we achieve a success rate of 96 and 92% respectively.   ## Checklist - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task --> --------- Co-authored-by:
Kelly Guo <kellyg@nvidia.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| config | ||
| docs | ||
| isaaclab_tasks | ||
| test | ||
| pyproject.toml | ||
| setup.py |