private void generateRandomSlipParamters() { double randomSlipTranslateX = pseudoRandomRealNumberWithinRange( minTranslationToSlipNextStep.getX(), maxTranslationToSlipNextStep.getX()); double randomSlipTranslateY = pseudoRandomRealNumberWithinRange( minTranslationToSlipNextStep.getY(), maxTranslationToSlipNextStep.getY()); double randomSlipTranslateZ = pseudoRandomRealNumberWithinRange( minTranslationToSlipNextStep.getZ(), maxTranslationToSlipNextStep.getZ()); nextTranslationToSlip.set(randomSlipTranslateX, randomSlipTranslateY, randomSlipTranslateZ); nextRotationToSlip.setYawPitchRoll( pseudoRandomRealNumberWithinRange( minRotationToSlipNextStep.getYawPitchRoll(), maxRotationToSlipNextStep.getYawPitchRoll())); double randomSlipAfterTimeDelta = pseudoRandomPositiveNumberWithinRange( minSlipAfterTimeDelta.getDoubleValue(), maxSlipAfterTimeDelta.getDoubleValue()); double randomPercentToSlipPerTick = pseudoRandomPositiveNumberWithinRange( minSlipPercentSlipPerTick.getDoubleValue(), maxSlipPercentSlipPerTick.getDoubleValue()); nextSlipAfterTimeDelta.set(randomSlipAfterTimeDelta); nextSlipPercentSlipPerTick.set(randomPercentToSlipPerTick); }
private void startSlipping(RobotSide robotSide) { GroundContactPointsSlipper groundContactPointsSlipper = groundContactPointsSlippers.get(robotSide); generateRandomSlipParamters(); groundContactPointsSlipper.setGroundContactPoints(groundContactPointsMap.get(robotSide)); groundContactPointsSlipper.setPercentToSlipPerTick(nextSlipPercentSlipPerTick.getDoubleValue()); groundContactPointsSlipper.setDoSlip(true); groundContactPointsSlipper.setSlipTranslation(nextTranslationToSlip.getVector3dCopy()); groundContactPointsSlipper.setSlipRotationYawPitchRoll(nextRotationToSlip.getYawPitchRoll()); // System.out.println("Slip of " + robotSide.getLowerCaseName() + " foot with amount" + // nextTranslationToSlip.getVector3dCopy().toString() // + " with rotation amount " + // nextRotationToSlip.getFrameOrientationCopy().toStringAsYawPitchRoll() // + " with slippercentage per tick " + // nextSlipPercentSlipPerTick.getDoubleValue() + ", " + nextSlipAfterTimeDelta.getDoubleValue() // + " [s] after touchdown."); }