-
michaellin6 authored
# Description This PR optimizes the Pink IK controller solver by changing the qpsolver to use **daqp**, and also optimizing the matrix pseudo inverse in Null Space Posture Task. This achieves a **2x performance improvement** by reducing runtime from 1.23 ms to 0.52 ms. Perf experiments documented in third page here: https://docs.google.com/document/d/1E9UiYUU-oCOIetUkqAIva8oK0NvdNkMeqP2gxmeqxNA/edit?tab=t.0#heading=h.snu74q2v857w ## Key Changes 1. **Optimized Pseudoinverse Computation**: Replaced `np.linalg.pinv()` with a custom implementation using direct LAPACK/BLAS calls in the null space projector calculation. The new approach uses Cholesky factorization (`dpotrf`) and triangular solvers (`dpotrs`) for faster computation. 2. **QP Solver Update**: Changed the Pink IK solver from `osqp` to `daqp` for improved performance. 3. **New Dependency**: Added `daqp==0.7.2` to `setup.py` for Linux platforms. ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - New feature (non-breaking change which adds functionality) ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [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 - [ ] 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 |
|---|---|---|
| .. | ||
| CHANGELOG.rst | ||
| README.md |