Calling jaxsim.api.model.generalized_free_floating_jacobian in body-fixed and mixed output represenations always return the stacked ${}^L J{W,L}$ and ${}^{L[W]} J{W,L}$, respectively.
Since now there is some additional logic to compute the pose of the link, the function runs a bit slower than before (and cannot be worked around). This method was originally enhanced in #121.
I could have refactored jaxsim.api.link.jacobian to call jaxsim.api.model.generalized_free_floating_jacobian and extract the i-th Jacobian, but the current implementation is much faster and I believe that having the logic partially duplicated might make sense in this case.
The references helper, by default, converts the forces in the correct frame that matches the output representation of the Jacobian so that $J^\top \mathbf{f}$ is correct. This was correct also before, but it was passing through the $B$ frame instead of the $L$ frame.
This PR superseeds #164, in view of the discussion started in https://github.com/ami-iit/jaxsim/pull/164#issuecomment-2145408126.
After this PR:
jaxsim.api.model.generalized_free_floating_jacobian
in body-fixed and mixed output represenations always return the stacked ${}^L J{W,L}$ and ${}^{L[W]} J{W,L}$, respectively.jaxsim.api.link.jacobian
to calljaxsim.api.model.generalized_free_floating_jacobian
and extract the i-th Jacobian, but the current implementation is much faster and I believe that having the logic partially duplicated might make sense in this case.