Follow-up to #685 / #686. Tracker.redundancy and set_redundancy (and the 05 elbow slider) work on arms with a closed-form self-motion chart (seven_r.spherical_shoulder: Panda and FR3; seven_r.srs: iiwa and the exactly concurrent SRS arms). Arms on seven_r.srs_polished (Gen3, j2s7s300, RM75, YuMi) have no closed-form chart: arm.self_motion(T) raises NotImplementedError, so there redundancy is None, set_redundancy raises, and the slider is hidden.
Proposal: a numerical chart for srs_polished, parameterised by the swivel angle. Evaluate it by Newton projection of the approximate-SRS point onto the true FK. Find the in-limits arc by a continuation sweep, with the same Chart interface: q(t), domain, in_limits(), tangent. Tracker then picks it up with no API change.
Acceptance: on Gen3 and j2s7s300, set_redundancy sweeps the in-limits arc with FK at most 1e-9, holds at the arc's ends, and agrees on both backends; the 05 slider appears for these arms.
Follow-up to #685 / #686.
Tracker.redundancyandset_redundancy(and the 05 elbow slider) work on arms with a closed-form self-motion chart (seven_r.spherical_shoulder: Panda and FR3;seven_r.srs: iiwa and the exactly concurrent SRS arms). Arms onseven_r.srs_polished(Gen3, j2s7s300, RM75, YuMi) have no closed-form chart:arm.self_motion(T)raisesNotImplementedError, so thereredundancy is None,set_redundancyraises, and the slider is hidden.Proposal: a numerical chart for
srs_polished, parameterised by the swivel angle. Evaluate it by Newton projection of the approximate-SRS point onto the true FK. Find the in-limits arc by a continuation sweep, with the sameChartinterface:q(t),domain,in_limits(),tangent.Trackerthen picks it up with no API change.Acceptance: on Gen3 and j2s7s300,
set_redundancysweeps the in-limits arc with FK at most 1e-9, holds at the arc's ends, and agrees on both backends; the 05 slider appears for these arms.