-
Notifications
You must be signed in to change notification settings - Fork 3k
Fixes details in documentation for Pink IK Null-space posture task #4524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…a tests for NullSpacePosture Task. Making Pink QP solver a parameter in config.
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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4 files reviewed, 2 comments
| .. 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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)
|
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