Class AmbiguityResolver


  • public class AmbiguityResolver
    extends InvKinSolver
    Wraps a InvKinSolver and searches for ambiguities due to joint able to rotate
    2 \ pi or more.

    For each solution \mathbf{q} the method tries to see if a j exists s.t.
    \mathbf{q}(i)=\mathbf{q}(i)+j * 2 \ pi is a valid solution.

    The AmbiguityResolver always tests for joint limits.
    • Constructor Detail

      • AmbiguityResolver

        public AmbiguityResolver​(long cPtr,
                                 boolean cMemoryOwn)
      • AmbiguityResolver

        public AmbiguityResolver​(InvKinSolverPtr invkin,
                                 JointDevicePtr device)
        Constructs an AmbiguityResolver
        Parameters:
        invkin - [in] The inverse kinematics solver to obtain solutions from
        device - [in] the device for which to calculate inverse kinematics
    • Method Detail

      • solve

        public VectorQ solve​(Transform3D baseTend,
                             State state)
        Calls the InvKinSolver provided and resolves ambiguities.
        Overrides:
        solve in class InvKinSolver
        Parameters:
        baseTend - [in] Desired base to end transformation \robabx{}{desired}{\mathbf{T}}

        state - [in] State of the device from which to start the
        iterations

        Returns:
        List of solutions. Notice that the list may be empty.

        Note: The targets baseTend must be defined relative to the base of the
        robot/device.
      • setCheckJointLimits

        public void setCheckJointLimits​(boolean check)
        No effect. The AmbiguityResolver always tests for joint limits.
        Overrides:
        setCheckJointLimits in class InvKinSolver
        Parameters:
        check - [in] If true the method should perform a check that joints are within
        bounds.
      • getTCP

        public FrameCPtr getTCP()
        Description copied from class: InvKinSolver
        Returns the Tool Center Point (TCP) used when solving the IK problem.

        Overrides:
        getTCP in class InvKinSolver
        Returns:
        The TCP Frame used when solving the IK.