Speed up computation of contact jacobians #188
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The computation of the Jacobians corresponding to the implicit frames associated to the collidable points was introduced in #163. At that time, there was a difference in the body frame considered in the Jacobians computed with
jaxsim.api.model.generalized_free_floating_jacobian
, that was fixed in #167.For this reason, originally the code to compute the contact Jacobian was calling
jaxsim.link.jacobian
inside ajax.vmap
transformation. This PR modifies this logic to compute the Jacobians of all links only once, and then withjax.vmap
extract the one corresponding to the link to which the collidable point is attached.On the ErgoCub model, that has 32 collidable points, the speedup is significant:
📚 Documentation preview 📚: https://jaxsim--188.org.readthedocs.build//188/