@Override public double getBreakFrequencyForSpineJointVelocityEstimation() { return AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.95, 0.002); }
public static void main(String[] args) { double dt = 1 / 1e3; for (double i = 2; i < 1.0/dt; i = i * 1.2) { double alpha = computeAlphaGivenBreakFrequency(i, dt); double alphaProperly = computeAlphaGivenBreakFrequencyProperly(i, dt); System.out.println("freq=" + i + ", alpha=" + alpha + ", alphaProperly=" + alphaProperly); } System.out.println(computeBreakFrequencyGivenAlpha(0.8, 0.006)); System.out.println(computeAlphaGivenBreakFrequencyProperly(20, 0.006)); System.out.println(computeAlphaGivenBreakFrequencyProperly(20, 0.003)); }
public static void main(String[] args) { double dt = 1 / 1e3; for (double i = 2; i < 1.0 / dt; i = i * 1.2) { double alpha = computeAlphaGivenBreakFrequency(i, dt); double alphaProperly = computeAlphaGivenBreakFrequencyProperly(i, dt); System.out.println("freq=" + i + ", alpha=" + alpha + ", alphaProperly=" + alphaProperly); } System.out.println(computeBreakFrequencyGivenAlpha(0.8, 0.006)); System.out.println(computeAlphaGivenBreakFrequencyProperly(20, 0.006)); System.out.println(computeAlphaGivenBreakFrequencyProperly(20, 0.003)); }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout=300000) public void testAlphaAndBreakFrequencyComputations() { for (int i = 0; i < 1000; i++) { double dt = rng.nextDouble(); double expectedAlpha = rng.nextDouble(); double breakFrequency = AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(expectedAlpha, dt); double actualAlpha = AlphaFilteredYoVariable.computeAlphaGivenBreakFrequencyProperly(breakFrequency, dt); assertEquals(expectedAlpha, actualAlpha, 1e-10); double maxFrequency = 0.5 * 0.5 / dt; double expectedBreakFrequency = maxFrequency * rng.nextDouble(); double alpha = AlphaFilteredYoVariable.computeAlphaGivenBreakFrequencyProperly(expectedBreakFrequency, dt); double actualBreakFrequency = AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(alpha, dt); assertEquals(expectedBreakFrequency, actualBreakFrequency, 1e-7); } } }
parameters.setPositionBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.9992, 0.004)); parameters.setVelocityBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.85, 0.004)); List<String> jointNames = new ArrayList<>(); for (RobotSide robotSide : RobotSide.values) parameters.setPositionBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.9996, 0.004)); parameters.setVelocityBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.85, 0.004)); List<String> jointNames = Collections.singletonList(jointMap.getSpineJointName(spineJointName)); ret.add(new GroupParameter<>(spineJointName.getCamelCaseNameForStartOfExpression(), parameters, jointNames)); parameters.setPositionBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.9998, 0.004)); parameters.setVelocityBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.84, 0.004)); parameters.setMaxPositionError(0.2); parameters.setMaxVelocity(2.0); parameters.setPositionBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.9995, 0.004)); parameters.setVelocityBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.83, 0.004)); parameters.setMaxPositionError(0.2); parameters.setMaxVelocity(2.0); parameters.setPositionBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.9996, 0.004)); parameters.setVelocityBreakFrequency(AlphaFilteredYoVariable.computeBreakFrequencyGivenAlpha(0.95, 0.004)); parameters.setMaxPositionError(0.2); parameters.setMaxVelocity(2.0);