Package org.robwork.sdurw_invkin
Class AmbiguityResolver
- java.lang.Object
-
- org.robwork.sdurw_invkin.InvKinSolver
-
- org.robwork.sdurw_invkin.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 Summary
Constructors Constructor Description AmbiguityResolver(long cPtr, boolean cMemoryOwn)
AmbiguityResolver(InvKinSolverPtr invkin, JointDevicePtr device)
Constructs an AmbiguityResolver
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
delete()
static long
getCPtr(AmbiguityResolver obj)
FrameCPtr
getTCP()
Returns the Tool Center Point (TCP) used when solving the IK problem.
void
setCheckJointLimits(boolean check)
No effect.VectorQ
solve(Transform3D baseTend, State state)
Calls the InvKinSolver provided and resolves ambiguities.-
Methods inherited from class org.robwork.sdurw_invkin.InvKinSolver
getCPtr
-
-
-
-
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 fromdevice
- [in] the device for which to calculate inverse kinematics
-
-
Method Detail
-
getCPtr
public static long getCPtr(AmbiguityResolver obj)
-
delete
public void delete()
- Overrides:
delete
in classInvKinSolver
-
solve
public VectorQ solve(Transform3D baseTend, State state)
Calls the InvKinSolver provided and resolves ambiguities.- Overrides:
solve
in classInvKinSolver
- 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 classInvKinSolver
- 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 classInvKinSolver
- Returns:
- The TCP Frame used when solving the IK.
-
-