public PIDSE3Configuration(GainCoupling gainCoupling, boolean useIntegrator, PID3DGainsReadOnly positionGains, PID3DGainsReadOnly orientationGains) { this.positionConfiguration = new PID3DConfiguration(gainCoupling, useIntegrator, positionGains); this.orientationConfiguration = new PID3DConfiguration(gainCoupling, useIntegrator, orientationGains); }
private PID3DConfiguration createHandOrientationControlGains() { boolean runningOnRealRobot = target == RobotTarget.REAL_ROBOT; double kp = 100.0; double zeta = runningOnRealRobot ? 0.6 : 1.0; double maxAccel = runningOnRealRobot ? 10.0 : Double.POSITIVE_INFINITY; double maxJerk = runningOnRealRobot ? 100.0 : Double.POSITIVE_INFINITY; DefaultPID3DGains gains = new DefaultPID3DGains(); gains.setProportionalGains(kp); gains.setDampingRatios(zeta); gains.setMaxFeedbackAndFeedbackRate(maxAccel, maxJerk); return new PID3DConfiguration(GainCoupling.XYZ, false, gains); }
private PID3DConfiguration createHeadOrientationControlGains() { boolean runningOnRealRobot = target == RobotTarget.REAL_ROBOT; double kpX = 5.0; double kpYZ = 20.0;//40.0; double zeta = runningOnRealRobot ? 0.4 : 0.8; double maxAccel = 18.0; double maxJerk = 270.0; DefaultPID3DGains gains = new DefaultPID3DGains(); gains.setProportionalGains(kpX, kpYZ, kpYZ); gains.setDampingRatios(zeta, zeta, zeta); gains.setMaxFeedbackAndFeedbackRate(maxAccel, maxJerk); return new PID3DConfiguration(GainCoupling.YZ, false, gains); }
private PID3DConfiguration createHandPositionControlGains() { boolean runningOnRealRobot = target == RobotTarget.REAL_ROBOT; double kp = 100.0; double zeta = runningOnRealRobot ? 0.6 : 1.0; double maxAccel = runningOnRealRobot ? 10.0 : Double.POSITIVE_INFINITY; double maxJerk = runningOnRealRobot ? 100.0 : Double.POSITIVE_INFINITY; DefaultPID3DGains gains = new DefaultPID3DGains(); gains.setProportionalGains(kp); gains.setDampingRatios(zeta); gains.setMaxFeedbackAndFeedbackRate(maxAccel, maxJerk); return new PID3DConfiguration(GainCoupling.XYZ, false, gains); }
private PID3DConfiguration createPelvisOrientationControlGains() { boolean runningOnRealRobot = target == RobotTarget.REAL_ROBOT; double kpXY = runningOnRealRobot ? 100.0 : 100.0; // Was 100.0 before tuneup of sep 2018 double kpZ = runningOnRealRobot ? 90.0 : 100.0; // Was 80.0 before tuneup of sep 2018 double zetaXY = runningOnRealRobot ? 0.8 : 0.8; // Was 0.9 before tuneup of sep 2018 double zetaZ = runningOnRealRobot ? 0.8 : 0.8; double maxAccel = runningOnRealRobot ? 100.0 : 18.0; // Was 18.0 before tuneup of sep 2018 double maxJerk = runningOnRealRobot ? 1500.0 : 270.0; // Was 270.0 before tuneup of sep 2018 DefaultPID3DGains gains = new DefaultPID3DGains(); gains.setProportionalGains(kpXY, kpXY, kpZ); gains.setDampingRatios(zetaXY, zetaXY, zetaZ); gains.setMaxFeedbackAndFeedbackRate(maxAccel, maxJerk); return new PID3DConfiguration(GainCoupling.XY, false, gains); }
private PID3DConfiguration createChestOrientationControlGains() { boolean runningOnRealRobot = target == RobotTarget.REAL_ROBOT; double kpXY = runningOnRealRobot ? 80.0 : 100.0; // Was 80.0 before tuneup of sep 2018 double kpZ = runningOnRealRobot ? 80.0 : 100.0; // Was 60.0 before tuneup of sep 2018 double zetaXY = runningOnRealRobot ? 0.8 : 0.8; // Was 0.8 before tuneup of sep 2018 double zetaZ = runningOnRealRobot ? 0.8 : 0.8; // Was 0.8 before tuneup of sep 2018 double maxAccel = runningOnRealRobot ? 12.0 : 18.0; double maxJerk = runningOnRealRobot ? 360.0 : 270.0; DefaultPID3DGains gains = new DefaultPID3DGains(); gains.setProportionalGains(kpXY, kpXY, kpZ); gains.setDampingRatios(zetaXY, zetaXY, zetaZ); gains.setMaxFeedbackAndFeedbackRate(maxAccel, maxJerk); return new PID3DConfiguration(GainCoupling.XY, false, gains); }