Working auto with park
This commit is contained in:
parent
1aa49e979d
commit
142256c19c
|
@ -34,11 +34,13 @@ public abstract class AutoBase extends LinearOpMode {
|
||||||
protected final Pose2d initialPosition;
|
protected final Pose2d initialPosition;
|
||||||
protected final CenterStageCommon.Alliance alliance;
|
protected final CenterStageCommon.Alliance alliance;
|
||||||
protected final Pose2d rendezvous;
|
protected final Pose2d rendezvous;
|
||||||
|
protected final Pose2d park;
|
||||||
|
|
||||||
protected AutoBase(CenterStageCommon.Alliance alliance, Pose2d initialPosition, Pose2d rendezvous) {
|
protected AutoBase(CenterStageCommon.Alliance alliance, Pose2d initialPosition, Pose2d rendezvous, Pose2d park) {
|
||||||
this.alliance = alliance;
|
this.alliance = alliance;
|
||||||
this.initialPosition = initialPosition;
|
this.initialPosition = initialPosition;
|
||||||
this.rendezvous = rendezvous;
|
this.rendezvous = rendezvous;
|
||||||
|
this.park = park;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -86,8 +88,7 @@ public abstract class AutoBase extends LinearOpMode {
|
||||||
moveToBackstage();
|
moveToBackstage();
|
||||||
prepareToScore();
|
prepareToScore();
|
||||||
scorePreloadedPixel();
|
scorePreloadedPixel();
|
||||||
|
park();
|
||||||
// TODO Tommy: Park
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dislodgePropAndPlacePixelLeft() {
|
private void dislodgePropAndPlacePixelLeft() {
|
||||||
|
@ -102,8 +103,17 @@ public abstract class AutoBase extends LinearOpMode {
|
||||||
this.sleep(100);
|
this.sleep(100);
|
||||||
this.robot.getClaw().setArmPosition(PICKUP_ARM_MAX);
|
this.robot.getClaw().setArmPosition(PICKUP_ARM_MAX);
|
||||||
}
|
}
|
||||||
|
private void dislodgePropAndPlacePixelCenter() {
|
||||||
|
TrajectorySequenceBuilder builder = this.robot.getTrajectorySequenceBuilder();
|
||||||
|
builder.lineToConstantHeading(rendezvous.vec());
|
||||||
|
builder.addDisplacementMarker(10, () -> {
|
||||||
|
this.robot.getClaw().setArmPosition(PICKUP_ARM_MIN);
|
||||||
|
});
|
||||||
|
this.robot.getDrive().followTrajectorySequence(builder.build());
|
||||||
|
this.robot.getClaw().openSync();
|
||||||
|
this.sleep(100);
|
||||||
|
this.robot.getClaw().setArmPosition(PICKUP_ARM_MAX);
|
||||||
|
}
|
||||||
private void dislodgePropAndPlacePixelRight() {
|
private void dislodgePropAndPlacePixelRight() {
|
||||||
TrajectorySequenceBuilder builder = this.robot.getTrajectorySequenceBuilder();
|
TrajectorySequenceBuilder builder = this.robot.getTrajectorySequenceBuilder();
|
||||||
builder.lineToLinearHeading(new Pose2d(-54, 17, Math.toRadians(-123)));
|
builder.lineToLinearHeading(new Pose2d(-54, 17, Math.toRadians(-123)));
|
||||||
|
@ -166,17 +176,6 @@ public abstract class AutoBase extends LinearOpMode {
|
||||||
this.robot.getDrive().followTrajectorySequence(builder.build());
|
this.robot.getDrive().followTrajectorySequence(builder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dislodgePropAndPlacePixelCenter() {
|
|
||||||
TrajectorySequenceBuilder builder = this.robot.getTrajectorySequenceBuilder();
|
|
||||||
builder.lineToConstantHeading(rendezvous.vec());
|
|
||||||
builder.addDisplacementMarker(10, () -> {
|
|
||||||
this.robot.getClaw().setArmPosition(PICKUP_ARM_MIN);
|
|
||||||
});
|
|
||||||
this.robot.getDrive().followTrajectorySequence(builder.build());
|
|
||||||
this.robot.getClaw().openSync();
|
|
||||||
this.sleep(100);
|
|
||||||
this.robot.getClaw().setArmPosition(PICKUP_ARM_MAX);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void determinePropLocation() {
|
private void determinePropLocation() {
|
||||||
setPropLocationIfVisible(Center, Unknown);
|
setPropLocationIfVisible(Center, Unknown);
|
||||||
|
@ -209,4 +208,12 @@ public abstract class AutoBase extends LinearOpMode {
|
||||||
this.propLocation = ifNotVisible;
|
this.propLocation = ifNotVisible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void park() {
|
||||||
|
double currentX = this.robot.getDrive().getPoseEstimate().getX();
|
||||||
|
TrajectorySequenceBuilder builder = this.robot.getTrajectorySequenceBuilder();
|
||||||
|
builder.strafeTo(new Vector2d(currentX, park.getY()));
|
||||||
|
builder.lineToConstantHeading(park.vec());
|
||||||
|
this.robot.getDrive().followTrajectorySequence(builder.build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
package opmodes;
|
package opmodes;
|
||||||
|
|
||||||
import com.acmerobotics.roadrunner.geometry.Pose2d;
|
import com.acmerobotics.roadrunner.geometry.Pose2d;
|
||||||
import com.acmerobotics.roadrunner.geometry.Vector2d;
|
|
||||||
import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
|
import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
|
||||||
|
|
||||||
import org.firstinspires.ftc.teamcode.util.CenterStageCommon;
|
import org.firstinspires.ftc.teamcode.util.CenterStageCommon;
|
||||||
|
|
||||||
@Autonomous(name = "Left Auto", preselectTeleOp = "MainTeleOp")
|
@Autonomous(name = "Left Auto", preselectTeleOp = "MainTeleOp")
|
||||||
public class LeftAuto extends AutoBase {
|
public class BlueFrontStage extends AutoBase {
|
||||||
public LeftAuto() {
|
public BlueFrontStage() {
|
||||||
super(
|
super(
|
||||||
CenterStageCommon.Alliance.Blue,
|
CenterStageCommon.Alliance.Blue,
|
||||||
new Pose2d(-36, 63, Math.toRadians(-90)),
|
new Pose2d(-36, 63, Math.toRadians(-90)),
|
||||||
new Pose2d(-36, 11));
|
new Pose2d(-36, 11),
|
||||||
|
new Pose2d(62, 12));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
Loading…
Reference in New Issue