public PIDSE3Configuration(GainCoupling gainCoupling, boolean useIntegrator, PID3DGainsReadOnly positionGains, PID3DGainsReadOnly orientationGains) { this.positionConfiguration = new PID3DConfiguration(gainCoupling, useIntegrator, positionGains); this.orientationConfiguration = new PID3DConfiguration(gainCoupling, useIntegrator, orientationGains); }
/** * Will create a new gains according to the provided gain configurations for position and orientation gains. * * @param suffix the name of the gains will be attached to all YoVariables. * @param positionConfiguration configuration and initial values for the position gains. * @param orientationConfiguration configuration and initial values for the orientation gains. * @param registry the registry to which the tuning variables are attached. */ public DefaultYoPIDSE3Gains(String suffix, PID3DConfiguration positionConfiguration, PID3DConfiguration orientationConfiguration, YoVariableRegistry registry) { this(suffix, positionConfiguration.getGainCoupling(), orientationConfiguration.getGainCoupling(), positionConfiguration.isUseIntegrator(), orientationConfiguration.isUseIntegrator(), positionConfiguration.getGains(), orientationConfiguration.getGains(), registry); }
public DefaultYoPID3DGains(String suffix, PID3DConfiguration configuration, YoVariableRegistry registry) { this(suffix, configuration.getGainCoupling(), configuration.isUseIntegrator(), configuration.getGains(), registry); }
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); }
public ParameterizedPID3DGains(String suffix, PID3DConfiguration configuration, YoVariableRegistry registry) { this(suffix, configuration.getGainCoupling(), configuration.isUseIntegrator(), configuration.getGains(), registry); }
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); }
/** * Will create a new set of gain parameters according to the provided configurations for position and orientation * gains. * * @param suffix the name of the gains will be attached to all parameters. * @param positionConfiguration configuration and default values for the position part of these gains. * @param orientationConfiguration configuration and default values for the orientation part of these gains. * @param registry the registry to which the tuning variables are attached. */ public ParameterizedPIDSE3Gains(String suffix, PID3DConfiguration positionConfiguration, PID3DConfiguration orientationConfiguration, YoVariableRegistry registry) { this(suffix, positionConfiguration.getGainCoupling(), orientationConfiguration.getGainCoupling(), positionConfiguration.isUseIntegrator(), orientationConfiguration.isUseIntegrator(), positionConfiguration.getGains(), orientationConfiguration.getGains(), registry); }
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 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 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); }