some more details on Manip1 vs Manip2 and Distance solver types

Issue #66 resolved
Le.Zhang created an issue

Hi,

My theoretical understanding is admittedly shallow. I’d appreciate if I could get a more practical explanation for the different solver types here. What are the pros/cons of each and what are the typical use cases for them?

% Distance: runs for the full timeout_in_secs, then returns the solution that minimizes SSE from the seed
% Manip1: runs for full timeout, returns solution that maximizes sqrt(det(J*J^T))
% Manip2: runs for full timeout, returns solution that minimizes cond(J) = |J|*|J^-1|

Thank you!

Comments (3)

  1. Stephen Hart

    Hi Le,

    It appears the README is incorrect with the description of Manip2. looking at the code, Manip2 is defined as the ratio between the largest and smallest singular value of the manipulator Jacobian (which is a known manipulability metric). I will updated that README accordingly.

    If you are interested in a better explanation of manipulability metrics than i could write here, I’d recommend watchig this short five minuted video:
    https://modernrobotics.northwestern.edu/nu-gm-book-resource/5-4-manipulability/

    In this video, Lynch lays out three manipulability metrics. His first would correspond to Manip2, while his third would correspond to Manip1.

    It’s not really clear which is “better” in practice, and that's why we provide both options (maybe we should add Lynch’s second as well!). Manip2 is probably more efficient to compute, though both require computing the singular values (Manip1 is actually just the product of all the singular values of the Jacobian)

    Hope this helps!

  2. Log in to comment