New inverse kinematics features
Introduces features from !95 (merged) and !76 (closed) -- excluded in this MR to keep the scope of the others MR limited:
- A "joint_mask" parameter for inverse kinematics: This can be used to fix some joints during numeric ik optimization which then tries to find a valid solution using the subset of remaining joints only. (Can be useful for overactuated systems, e.g. with a moving base)
- Includes the "random restart", stolen from !76 (closed) (but required here as well)
- Exposes the scipy method used for scipy ik (so it can be customly selected)
- Fixes a bug in the jacobian ik that resulted in returning not the best q, but the worst q in some cases
Furthermore, introduces a fix that allows setting the base placement even if there are multiple joints with "world" as origin (also useful for moving/floating bases)
Edited by Jonathan Külz