Fixes details in documentation for Pink IK Null-space posture task - #4524
Fixes details in documentation for Pink IK Null-space posture task#4524michaellin6 wants to merge 3 commits into
Conversation
Greptile OverviewGreptile SummaryThis PR addresses issue #4417 by fixing documentation and adding configurability to the Pink IK controller. The changes include:
Critical Issue Found:
This inconsistency needs to be resolved by either reverting the documentation changes or updating the implementation to match. Confidence Score: 2/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant PinkIKController
participant Config as PinkIKControllerCfg
participant Solver as Pink solve_ik
participant Task as NullSpacePostureTask
User->>Config: Set qp_solver (e.g., "daqp", "quadprog")
User->>PinkIKController: Initialize with config
PinkIKController->>Task: Set up NullSpacePostureTask
Task->>Task: Initialize with controlled_frames & controlled_joints
User->>PinkIKController: compute(curr_joint_pos, dt)
PinkIKController->>Task: compute_error(configuration)
Task->>Task: pin.difference(target_q, current_q)
Note over Task: Computes (q* - q) [Implementation]<br/>Docs say (q - q*) [Inconsistency]
Task-->>PinkIKController: Error vector
PinkIKController->>Task: compute_jacobian(configuration)
Task->>Task: Build null space projector N = I - J+ @ J
Task-->>PinkIKController: Null space Jacobian
PinkIKController->>Solver: solve_ik(config, tasks, dt, solver=cfg.qp_solver)
Note over Solver: Uses configurable solver<br/>(previously hardcoded "daqp")
Solver-->>PinkIKController: Joint velocities
PinkIKController-->>User: Target joint positions
|
| @@ -29,7 +29,7 @@ class NullSpacePostureTask(Task): | |||
|
|
|||
| .. math:: | |||
|
|
|||
| \mathbf{e}(\mathbf{q}) = \mathbf{M} \cdot (\mathbf{q}^* - \mathbf{q}) | |||
| \mathbf{e}(\mathbf{q}) = \mathbf{M} \cdot (\mathbf{q} - \mathbf{q}^*) | |||
There was a problem hiding this comment.
The documentation now states the formula is (q - q*) but the actual implementation at line 200 uses pin.difference(configuration.model, self.target_q, configuration.q) which computes (q* - q). Either the documentation fix is incorrect, or the implementation needs to be updated to match.
Same issue at line 75 and in the docstring at line 176.
Additional Comments (1)
|
|
@kellyguo11 Should this target develop instead? It doesn't seem to be fixing a bug, so I don't see the need to target main. |
…a tests for NullSpacePosture Task. Making Pink QP solver a parameter in config.
95c26e0 to
06278e5
Compare
|
@michaellin6 the pink IK test is still failing, is this expected with this PR? It has been spotty for me, sometimes passing, others failing. |
this is likely due to the issue fixed by this PR: #4595 We can rebase once that is merged in and hopefully tests will pass then. |
|
Hi @michaellin6 — thanks for putting this one up! 🙏 We're doing a cleanup pass over the Isaac Lab PR backlog, which had grown past 400 open pull requests, and we're closing out the ones that have gone quiet so the queue is reviewable again. Why this PR is being closed: Here is exactly what we found on this PR when we reviewed the backlog:
It was picked up by the sweep because it has been open for about 7 months. It was then put in the "close" bucket because the author has been silent for about 6 months — which is the signal we used to tell apart pull requests that are still being worked on from ones that have genuinely been set aside. We deliberately did not close pull requests that were approved and ready to land, or that were small and clearly still fixing a live bug — there were 27 of those, and we are merging them rather than closing them. No judgement on the change itself — this is purely backlog hygiene. If this is still wanted, please reopen it or re-submit against 🤖 This comment was drafted with AI assistance as part of a maintainer-led sweep of the Isaac Lab pull request backlog. A maintainer is behind this cleanup — but if this closure looks wrong, it may well be, so please push back and we'll take another look. |
Description
Fixes typo in NullSpacePostureTask documentation. Adds additional tests for NullSpacePostureTask. Makes QP solver for Pink a parameter in config file so users can choose other solver options, but still defaults to 'daqp'.
Fixes # (issue)
Fixes issues raised by community user: #4417
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there