本文整理汇总了Java中edu.wpi.first.wpilibj.PIDController.setAbsoluteTolerance方法的典型用法代码示例。如果您正苦于以下问题:Java PIDController.setAbsoluteTolerance方法的具体用法?Java PIDController.setAbsoluteTolerance怎么用?Java PIDController.setAbsoluteTolerance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类edu.wpi.first.wpilibj.PIDController
的用法示例。
在下文中一共展示了PIDController.setAbsoluteTolerance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: DriveDistanceDiff
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
* Requires DriveTrain, DriveEncoders, Gyro, Ultrasonic
* @param setpoint distance to move in inches
*/
public DriveDistanceDiff(double setpoint){
requires(Robot.drivetrain);
requires(Robot.driveEncoders);
requires(Robot.ultrasonic);
this.setpoint=setpoint;
pid = new PIDController(0.1, 0, 0, Robot.driveEncoders.getEncoderLeft(), new pidOutput());
pidRight = new PIDController(0.1,0,0,Robot.driveEncoders.getEncoderRight(),new pidOutputRight());
if(setpoint>0){
pid.setInputRange(0,setpoint+10);
pidRight.setInputRange(0,setpoint+10);
}else{
pid.setInputRange(setpoint-10,0);
pidRight.setInputRange(setpoint-10,0);
}
pid.setAbsoluteTolerance(0.5);
pidRight.setAbsoluteTolerance(0.5);
pid.setOutputRange(-0.6,0.6);
pidRight.setOutputRange(-0.6,0.6);
pid.setSetpoint(setpoint);
pidRight.setSetpoint(setpoint);
}
示例2: DriveDistance
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
* Requires DriveTrain, DriveEncoders, Gyro, Ultrasonic
* @param setpoint distance to move in inches
*/
public DriveDistance(double setpoint, boolean stoppable, double turn){
requires(Robot.drivetrain);
requires(Robot.driveEncoders);
requires(Robot.gyro);
requires(Robot.ultrasonic);
this.setpoint=setpoint;
this.stoppable=stoppable;
this.turn=turn;
pid = new PIDController(0.40, 0, 0, Robot.driveEncoders.getEncoderLeft(), new pidOutput());
pidTurn = new PIDController(0.2, 0.02, 0.4, Robot.gyro.getGyro(), new pidOutputTurn());
pidTurn.setOutputRange(-0.50,0.50);
if(setpoint>0){
pid.setInputRange(0,setpoint+10);
}else{
pid.setInputRange(setpoint-10,0);
}
pid.setAbsoluteTolerance(0.5);
pid.setOutputRange(-0.6,0.6);
pid.setSetpoint(setpoint);
System.out.println("Driving Forward for: " + setpoint);
}
示例3: JsonAutonomous
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
* Creates a JsonAutonomous from the specified file
* @param file The location of the file to parse
*/
public JsonAutonomous(String file)
{
ap_ds = DriverStation.getInstance();
turn = new PIDController(0.02, 0, 0, Robot.navx, this);
turn.setInputRange(-180, 180);
turn.setOutputRange(-0.7, 0.7);
turn.setAbsoluteTolerance(0.5);
turn.setContinuous(true);
straighten = new PIDController(0.01, 0, 0, Robot.navx, this);
straighten.setInputRange(-180, 180);
straighten.setOutputRange(-0.7, 0.7);
straighten.setAbsoluteTolerance(0);
straighten.setContinuous(true);
turn.setPID(Config.getSetting("auto_turn_p", 0.02),
Config.getSetting("auto_turn_i", 0.00001),
Config.getSetting("auto_turn_d", 0));
straighten.setPID(Config.getSetting("auto_straight_p", 0.2),
Config.getSetting("auto_straight_i", 0),
Config.getSetting("auto_straight_d", 0));
parseFile(file);
}
示例4: AutoTurnToPeg
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
* Constructor specifying setpoint angle.
* @param setPointAngle
*/
public AutoTurnToPeg(double setPointAngle) {
requires(Robot.driveTrain);
//requires(Robot.ultrasonics);
//requires(Robot.visionTest);
requires(Robot.navx);
this.setPointAngle = setPointAngle;
turnController = new PIDController(kP, kI, kD, Robot.navx.getAHRS(), new MyPidOutput());
turnController.setInputRange(-180, 180);
turnController.setOutputRange(-maxOutputRange, maxOutputRange);
turnController.setAbsoluteTolerance(kToleranceDegrees);
turnController.setContinuous(true);
/* Add the PID Controller to the Test-mode dashboard, allowing manual */
/* tuning of the Turn Controller's P, I and D coefficients. */
/* Typically, only the P value needs to be modified. */
//LiveWindow.addSensor("DriveSystem", "RotateController", turnController);
}
示例5: AutoDriveDistance
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
*
* @param distance target distance in inches
* @param timeOut time out in milliseconds
*/
public AutoDriveDistance(double distance, long timeOut) {
requires(Robot.driveTrain);
//requires(Robot.ultrasonics);
requires(Robot.navx);
targetDistance = distance;
timeMax = timeOut;
turnController = new PIDController(kP, kI, kD, Robot.driveTrain, new MyPidOutput());
//turnController.setInputRange(-180, 180);
turnController.setOutputRange(-maxOutputRange, maxOutputRange);
turnController.setAbsoluteTolerance(kToleranceDistance);
turnController.setContinuous(true);
/* Add the PID Controller to the Test-mode dashboard, allowing manual */
/* tuning of the Turn Controller's P, I and D coefficients. */
/* Typically, only the P value needs to be modified. */
LiveWindow.addSensor("DriveSystem", "RotateController", turnController);
}
示例6: AutoSteerDriveToPeg
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
private AutoSteerDriveToPeg() {
requires(Robot.driveTrain);
//requires(Robot.ultrasonics);
//requires(Robot.visionTest);
requires(Robot.navx);
turnController = new PIDController(kP, kI, kD, Robot.navx.getAHRS(), new MyPidOutput());
turnController.setInputRange(-maxAbsSetpoint, maxAbsSetpoint);
turnController.setOutputRange(-maxOutputRange, maxOutputRange);
turnController.setAbsoluteTolerance(kToleranceDegrees);
turnController.setContinuous(true);
/* Add the PID Controller to the Test-mode dashboard, allowing manual */
/* tuning of the Turn Controller's P, I and D coefficients. */
/* Typically, only the P value needs to be modified. */
LiveWindow.addSensor("DriveSystem", "RotateController", turnController);
}
示例7: AutoTurnByVision
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
*
* @param speed forward speed is positive volts
*/
public AutoTurnByVision(double speed) {
requires(Robot.driveTrain);
//requires(Robot.ultrasonics);
requires(Robot.visionTest);
requires(Robot.navx);
forwardSpeed = -speed;
turnController = new PIDController(kP, kI, kD, Robot.navx.getAHRS()/*Robot.visionTest*/, new MyPidOutput());
turnController.setInputRange(-180, 180);
turnController.setOutputRange(-maxOutputRange, maxOutputRange);
turnController.setAbsoluteTolerance(kToleranceDegrees);
turnController.setContinuous(true); // TODO is this what we want???
/* Add the PID Controller to the Test-mode dashboard, allowing manual */
/* tuning of the Turn Controller's P, I and D coefficients. */
/* Typically, only the P value needs to be modified. */
LiveWindow.addSensor("DriveSystem", "RotateController", turnController);
}
示例8: Drivetrain
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
public Drivetrain()
{
backModule = new SwerveModule(RobotMap.backWheelEncoder, RobotMap.backModulePot, RobotMap.backWheelMotor, RobotMap.backModuleMotor, RobotMap.WHEEL_TOP_ABSOLUTE_SPEED, 0, -32.5, "backModule");
leftModule = new SwerveModule(RobotMap.leftWheelEncoder, RobotMap.leftModulePot, RobotMap.leftWheelMotor, RobotMap.leftModuleMotor, RobotMap.WHEEL_TOP_ABSOLUTE_SPEED, -17.25, 0, "leftModule");
rightModule = new SwerveModule(RobotMap.rightWheelEncoder, RobotMap.rightModulePot, RobotMap.rightWheelMotor, RobotMap.rightModuleMotor, RobotMap.WHEEL_TOP_ABSOLUTE_SPEED, 17.25, 0, "rightModule");
swerves = new SwerveModule[3];
swerves[0] = backModule;
swerves[1] = leftModule;
swerves[2] = rightModule;
odometry = new Odometry();
absoluteTwistPID = new PIDController(RobotMap.ABSOLUTE_TWIST_kP, RobotMap.ABSOLUTE_TWIST_kI, RobotMap.ABSOLUTE_TWIST_kD, RobotMap.navX, absoluteTwistPIDOutput);
absoluteTwistPID.setInputRange(-180, 180);
absoluteTwistPID.setOutputRange(-RobotMap.WHEEL_TOP_ABSOLUTE_SPEED, RobotMap.WHEEL_TOP_ABSOLUTE_SPEED);
absoluteTwistPID.setContinuous();
absoluteTwistPID.setAbsoluteTolerance(1);
absoluteCrabPID = new PIDController(RobotMap.ABSOLUTE_CRAB_kP, RobotMap.ABSOLUTE_CRAB_kI, RobotMap.ABSOLUTE_CRAB_kD, odometry, absoluteCrabPIDOutput);
absoluteCrabPID.setAbsoluteTolerance(.2);
(new Thread(odometry)).start();
}
示例9: Arm
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
public Arm() {
shoulder = new PIDController(RobotMap.ARM_SHOULDER_kP, RobotMap.ARM_SHOULDER_kI, RobotMap.ARM_SHOULDER_kD, RobotMap.armShoulderPot, RobotMap.armShoulderMotor, .02);
shoulder.setInputRange(RobotMap.ARM_SHOULDER_MIN, RobotMap.ARM_SHOULDER_MAX);
shoulder.setOutputRange(-RobotMap.ARM_MAX_SPEED, RobotMap.ARM_MAX_SPEED);
shoulder.setAbsoluteTolerance(5);
elbow = new PIDController(RobotMap.ARM_ELBOW_kP, RobotMap.ARM_ELBOW_kI, RobotMap.ARM_ELBOW_kD, RobotMap.armElbowPot, RobotMap.armElbowMotor, .02);
elbow.setInputRange(-180, 180);
elbow.setOutputRange(-RobotMap.ARM_MAX_SPEED, RobotMap.ARM_MAX_SPEED);
elbow.setAbsoluteTolerance(5);
wrist = new PIDController(RobotMap.ARM_WRIST_kP, RobotMap.ARM_WRIST_kI, RobotMap.ARM_WRIST_kD, RobotMap.armWristPot, RobotMap.armWristMotor, .02);
wrist.setInputRange(-180, 180);
wrist.setOutputRange(-RobotMap.ARM_MAX_SPEED, RobotMap.ARM_MAX_SPEED);
wrist.setAbsoluteTolerance(5);
LiveWindow.addActuator("Arm", "shoulder", shoulder);
LiveWindow.addActuator("Arm", "elbow", elbow);
LiveWindow.addActuator("Arm", "wrist", wrist);
}
示例10: SetDistanceToBox
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
public SetDistanceToBox(double distance) {
requires(Robot.drivetrain);
pid = new PIDController(-2, 0, 0, new PIDSource() {
PIDSourceType m_sourceType = PIDSourceType.kDisplacement;
public double pidGet() {
return Robot.drivetrain.getDistanceToObstacle();
}
@Override
public void setPIDSourceType(PIDSourceType pidSource) {
m_sourceType = pidSource;
}
@Override
public PIDSourceType getPIDSourceType() {
return m_sourceType;
}
}, new PIDOutput() {
public void pidWrite(double d) {
Robot.drivetrain.drive(d, d);
}
});
pid.setAbsoluteTolerance(0.01);
pid.setSetpoint(distance);
}
示例11: DriveStraight
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
public DriveStraight(double distance) {
requires(Robot.drivetrain);
pid = new PIDController(4, 0, 0,
new PIDSource() {
PIDSourceType m_sourceType = PIDSourceType.kDisplacement;
public double pidGet() {
return Robot.drivetrain.getDistance();
}
@Override
public void setPIDSourceType(PIDSourceType pidSource) {
m_sourceType = pidSource;
}
@Override
public PIDSourceType getPIDSourceType() {
return m_sourceType;
}
},
new PIDOutput() { public void pidWrite(double d) {
Robot.drivetrain.drive(d, d);
}});
pid.setAbsoluteTolerance(0.01);
pid.setSetpoint(distance);
}
示例12: initialize
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
protected void initialize() {
pid = new PIDController(0.1, 0.1, 0, RobotMap.imu, new TurnController(), 0.01);
startingAngle = RobotMap.imu.getYaw();
double deltaAngle = angle + startingAngle;
// deltaAngle %= 360;
while (deltaAngle >= 180)
deltaAngle -= 360;
while (deltaAngle < -180)
deltaAngle += 360;
Preferences.getInstance().putDouble("YawSetpoint", deltaAngle);
pid.setAbsoluteTolerance(2);
pid.setInputRange(-180, 180);
pid.setContinuous(true);
pid.setOutputRange(-1 * rotateSpeed, 1 * rotateSpeed);
pid.setSetpoint(deltaAngle);
pid.enable();
//SmartDashboard.putData("PID", pid);
}
示例13: SwervePod
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
public SwervePod(SpeedController turningMotor, SpeedController driveMotor, Encoder encoder, double encoderDistancePerTick, AngularSensor directionSensor) {
// Initialize motors //
_turningMotor = turningMotor;
_driveMotor = driveMotor;
// Initialize sensors //
_encoder = encoder;
_encoder.setPIDSourceParameter(PIDSource.PIDSourceParameter.kRate);
_encoder.setDistancePerPulse(encoderDistancePerTick);
_encoder.start();
_directionSensor = directionSensor;
// Initialize PID loops //
// Turning //
PIDTurning = new PIDController(Kp_turning, Ki_turning, Kd_turning, _directionSensor, _turningMotor);
PIDTurning.setOutputRange(minSpeed, maxSpeed);
PIDTurning.setContinuous(true);
PIDTurning.setAbsoluteTolerance(tolerance_turning);
PIDTurning.enable();
// Linear driving //
PIDDriving = new PIDController(Kp_driving, Ki_driving, Kd_driving, _encoder, _driveMotor);
PIDDriving.setOutputRange(minSpeed, maxSpeed);
PIDDriving.disable(); //TODO: Enable
}
示例14: RotateDriveTrain
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
*
* @param theta degrees to rotate drive train.
*/
public RotateDriveTrain(double theta){
requires(Robot.drivetrain);
requires(Robot.driveEncoders);
requires(Robot.gyro);
this.theta=theta;
pid = new PIDController(0.55, 0.002, 0.4, Robot.gyro.getGyro(), new pidOutput());
pid.setAbsoluteTolerance(0.25);
pid.setInputRange(-360,360);
pid.setOutputRange(-0.65,0.65);
pid.setSetpoint(theta);
}
示例15: DriveUntil
import edu.wpi.first.wpilibj.PIDController; //导入方法依赖的package包/类
/**
* Requires gyro, ultrasonic, drive train
* @param setpoint distance away in inches
*/
public DriveUntil(double setpoint){
requires(Robot.drivetrain);
requires(Robot.gyro);
requires(Robot.ultrasonic);
pid = new PIDController(0.27, 0, 0, Robot.ultrasonic.getUltrasonic(), new pidOutput());
pid.setAbsoluteTolerance(2);
pid.setSetpoint(setpoint);
}