@Override public int getNumberOfIterations() { return inverseKinematicsCalculator.getNumberOfIterations(); }
@Override public double getErrorScalar() { return inverseKinematicsCalculator.getErrorScalar(); }
private RandomRestartInverseKinematicsCalculator createCalculator(GeometricJacobian jacobian, int maxIterations) { double lambdaLeastSquares = 0.0009; double tolerance = 0.001; double maxStepSize = 0.2; double minRandomSearchScalar = 0.02; double maxRandomSearchScalar = 0.8; int maxRestarts = 20; double restartTolerance = 0.001; NumericalInverseKinematicsCalculator numericalInverseKinematicsCalculator = new NumericalInverseKinematicsCalculator(jacobian, lambdaLeastSquares, tolerance, maxIterations, maxStepSize, minRandomSearchScalar, maxRandomSearchScalar); numericalInverseKinematicsCalculator.setLimitJointAngles(false); RandomRestartInverseKinematicsCalculator randomRestartInverseKinematicsCalculator = new RandomRestartInverseKinematicsCalculator(maxRestarts, restartTolerance, jacobian, numericalInverseKinematicsCalculator); return randomRestartInverseKinematicsCalculator; }
public void set(TimeStampedTransform3D other) { setTransform3D(other.getTransform3D()); setTimeStamp(other.getTimeStamp()); }
public HeadToSubFrameTransformBuffer(int size) { this.size = size; transforms = new TimeStampedTransform3D[size]; for (int i = 0; i < size; i++) { transforms[i] = new TimeStampedTransform3D(); transforms[i].setTimeStamp(Long.MIN_VALUE); } }
private void updateBest() { errorScalar = NormOps.normP2(inverseJacobianCalculator.getSubspaceSpatialVelocity()); if (errorScalar < minimumErrorScalar) { getJointAngles(jointAnglesMinimumError); minimumErrorScalar = errorScalar; } }
@Override public void setLimitJointAngles(boolean limitJointAngles) { inverseKinematicsCalculator.setLimitJointAngles(limitJointAngles); }
public Data() { for (int i = 0; i < joints.length; i++) { joints[i] = new JointData(); } } }
@Override public void attachInverseKinematicsStepListener(InverseKinematicsStepListener stepListener) { inverseKinematicsCalculator.attachInverseKinematicsStepListener(stepListener); }
public JointLimitData(OneDoFJointBasics joint) { clear(); setJointLimits(joint); }
public void setFullyConstrained() { inverseJacobianSolver.setSelectionMatrixForFullConstraint(); }
public void set(TimeStampedTransform3D other) { setTransform3D(other.getTransform3D()); setTimeStamp(other.getTimeStamp()); }
public TimeStampedTransformBuffer(int size) { this.size = size; this.buffer = new TimeStampedTransform3D[size]; for(int i = 0; i < buffer.length; i++) { this.buffer[i] = new TimeStampedTransform3D(); this.buffer[i].setTimeStamp(Long.MAX_VALUE); } currentIndex = 0; }
private void updateBest() { errorScalar = NormOps.normP2(inverseJacobianCalculator.getSubspaceSpatialVelocity()); if (errorScalar < minimumErrorScalar) { getJointAngles(jointAnglesMinimumError); minimumErrorScalar = errorScalar; } }
@Override public void setLimitJointAngles(boolean limitJointAngles) { inverseKinematicsCalculator.setLimitJointAngles(limitJointAngles); }
@Override public int getNumberOfIterations() { return inverseKinematicsCalculator.getNumberOfIterations(); }
@Override public double getErrorScalar() { return inverseKinematicsCalculator.getErrorScalar(); }
public Data() { for (int i = 0; i < joints.length; i++) { joints[i] = new JointData(); } } }
@Override public void attachInverseKinematicsStepListener(InverseKinematicsStepListener stepListener) { inverseKinematicsCalculator.attachInverseKinematicsStepListener(stepListener); }
public TimeStampedTransformBuffer(int size) { this.size = size; this.buffer = new TimeStampedTransform3D[size]; for(int i = 0; i < buffer.length; i++) { this.buffer[i] = new TimeStampedTransform3D(); this.buffer[i].setTimeStamp(Long.MAX_VALUE); } currentIndex = 0; }