Skip to content
Closed

new #60

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package org.firstinspires.ftc.teamcode;
import static java.lang.Thread.sleep;

import com.pedropathing.follower.Follower;
import com.pedropathing.geometry.BezierLine;
import com.pedropathing.geometry.Pose;
import com.pedropathing.paths.Path;
import com.pedropathing.paths.PathChain;
import com.pedropathing.util.Timer;
import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
import com.qualcomm.robotcore.eventloop.opmode.OpMode;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.util.ElapsedTime;

@Autonomous(name = "Blue Alliance Big Launch Auto", group = "Autonomous")
public class BlueAllianceBigLaunchAuto extends OpMode {
private Follower follower;
private Timer pathTimer, actionTimer, opmodeTimer;
ElapsedTime shoot, retrieve;
private int pathState;

private final Pose startPose = new Pose(22, 124, Math.toRadians(324));
private final Pose shootPose = new Pose(36, 108, Math.toRadians(135));
private final Pose setupPose1 = new Pose(48, 84, Math.toRadians(180));
private final Pose setupPose2 = new Pose(48, 60, Math.toRadians(180));
private final Pose setupPose3 = new Pose(48, 36, Math.toRadians(180));
private final Pose pickupPose1 = new Pose(23, 84, Math.toRadians(180));
private final Pose pickupPose2 = new Pose(23, 60, Math.toRadians(180));
private final Pose pickupPose3 = new Pose(23, 36, Math.toRadians(180));



DcMotor intakeMotor = hardwareMap.get(DcMotor.class, "intake_motor");
DcMotor outtakeMotor = hardwareMap.get(DcMotor.class, "outtake_motor");


public void Shoot () {
shoot.startTime();
if (shoot.seconds() < 4) {
outtakeMotor.setPower(1);
intakeMotor.setPower(1);
} else if (shoot.seconds() > 4) {
outtakeMotor.setPower(0);
intakeMotor.setPower(0);
shoot.reset();
}

}

public void Retrieve() {
retrieve.startTime();
if (retrieve.seconds() < 4) {
intakeMotor.setPower(1);
} else if (retrieve.seconds() > 4) {
intakeMotor.setPower(0);
retrieve.reset();
}
}

public void ShootingPath (Pose pickupPose) {
PathChain ShootPath;
ShootPath = follower.pathBuilder()
.addPath(new BezierLine(pickupPose, shootPose))
.setLinearHeadingInterpolation(pickupPose.getHeading(), shootPose.getHeading())
.build();
follower.followPath(ShootPath);
Shoot();
}

public void SetupAndRetrieve(Pose setupPose, Pose pickupPose, Pose Shoot_Start) {
PathChain SetupPath;
PathChain RetrievePath;
SetupPath = follower.pathBuilder()
.addPath(new BezierLine(Shoot_Start, setupPose))
.setLinearHeadingInterpolation(startPose.getHeading(), setupPose1.getHeading())
.build();
RetrievePath = follower.pathBuilder()
.addPath(new BezierLine(setupPose,pickupPose))
.setConstantHeadingInterpolation(Math.toRadians(180))
.build();
follower.followPath(SetupPath);
Retrieve();
follower.followPath(RetrievePath);
}

public void shootToStart (Pose startPose, Pose shootPose) {
PathChain go;
go = follower.pathBuilder()
.addPath(new BezierLine(startPose, shootPose))
.setLinearHeadingInterpolation(startPose.getHeading(), shootPose.getHeading())
.build();
follower.followPath(go);
Shoot();
}

@Override
public void loop() {

}
@Override
public void init() {
shootToStart(startPose, shootPose);
SetupAndRetrieve(setupPose1,pickupPose1, shootPose);
ShootingPath(pickupPose1);
SetupAndRetrieve(setupPose2, pickupPose2, shootPose);
ShootingPath(pickupPose2);
SetupAndRetrieve(setupPose3, pickupPose3, shootPose);
ShootingPath(pickupPose3);


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
package org.firstinspires.ftc.teamcode;
import static java.lang.Thread.sleep;

import com.pedropathing.follower.Follower;
import com.pedropathing.geometry.BezierLine;
import com.pedropathing.geometry.Pose;
import com.pedropathing.paths.Path;
import com.pedropathing.paths.PathChain;
import com.pedropathing.util.Timer;
import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
import com.qualcomm.robotcore.eventloop.opmode.OpMode;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.util.ElapsedTime;

@Autonomous(name = "Blue Alliance Small Launch Auto", group = "Autonomous")
public class BlueAllianceSmallLaunchAuto extends OpMode {
private Follower follower;
private Timer pathTimer, actionTimer, opmodeTimer;
ElapsedTime shoot, retrieve;
private int pathState;

private final Pose startPose = new Pose(60, 6, Math.toRadians(324));
private final Pose shootPose = new Pose(36, 108, Math.toRadians(135));
private final Pose setupPose1 = new Pose(48, 84, Math.toRadians(180));
private final Pose setupPose2 = new Pose(48, 60, Math.toRadians(180));
private final Pose setupPose3 = new Pose(48, 36, Math.toRadians(180));
private final Pose pickupPose1 = new Pose(23, 84, Math.toRadians(180));
private final Pose pickupPose2 = new Pose(23, 60, Math.toRadians(180));
private final Pose pickupPose3 = new Pose(23, 36, Math.toRadians(180));



DcMotor intakeMotor = hardwareMap.get(DcMotor.class, "intake_motor");
DcMotor outtakeMotor = hardwareMap.get(DcMotor.class, "outtake_motor");


public void Shoot () {
shoot.startTime();
if (shoot.seconds() < 4) {
outtakeMotor.setPower(1);
intakeMotor.setPower(1);
} else if (shoot.seconds() > 4) {
outtakeMotor.setPower(0);
intakeMotor.setPower(0);
shoot.reset();
}

}

public void Retrieve() {
retrieve.startTime();
if (retrieve.seconds() < 4) {
intakeMotor.setPower(1);
} else if (retrieve.seconds() > 4) {
intakeMotor.setPower(0);
retrieve.reset();
}
}

public void ShootingPath (Pose pickupPose) {
PathChain ShootPath;
ShootPath = follower.pathBuilder()
.addPath(new BezierLine(pickupPose, shootPose))
.setLinearHeadingInterpolation(pickupPose.getHeading(), shootPose.getHeading())
.build();
follower.followPath(ShootPath);
Shoot();
}

public void SetupAndRetrieve(Pose setupPose, Pose pickupPose, Pose Shoot_Start) {
PathChain SetupPath;
PathChain RetrievePath;
SetupPath = follower.pathBuilder()
.addPath(new BezierLine(Shoot_Start, setupPose))
.setLinearHeadingInterpolation(startPose.getHeading(), setupPose1.getHeading())
.build();
RetrievePath = follower.pathBuilder()
.addPath(new BezierLine(setupPose,pickupPose))
.setConstantHeadingInterpolation(Math.toRadians(180))
.build();
follower.followPath(SetupPath);
Retrieve();
follower.followPath(RetrievePath);
}

public void ShootPos(Pose startPose) {
PathChain Shoot;
Shoot = follower.pathBuilder()
.addPath(new BezierLine(startPose, shootPose))
.build();
follower.followPath(Shoot);
}


@Override
public void loop() {

}
@Override
public void init() {
ShootPos(startPose);
Shoot();
SetupAndRetrieve(setupPose1,pickupPose1, startPose);
ShootingPath(pickupPose1);
SetupAndRetrieve(setupPose2, pickupPose2, shootPose);
ShootingPath(pickupPose2);
SetupAndRetrieve(setupPose3, pickupPose3, shootPose);
ShootingPath(pickupPose3);



}
}
88 changes: 88 additions & 0 deletions TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Leave.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
package org.firstinspires.ftc.teamcode;

import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.hardware.DcMotor;

@Autonomous(name = "Time Based Movement Demo")
public class Leave extends LinearOpMode {

DcMotor frontLeft, frontRight, backLeft, backRight;

@Override
public void runOpMode() throws InterruptedException {

frontLeft = hardwareMap.dcMotor.get("front_left_motor");
frontRight = hardwareMap.dcMotor.get("front_right_motor");
backLeft = hardwareMap.dcMotor.get("back_left_motor");
backRight = hardwareMap.dcMotor.get("back_right_motor");

// Reverse these if your robot drives backwards
frontLeft.setDirection(DcMotor.Direction.REVERSE);
backLeft.setDirection(DcMotor.Direction.REVERSE);

waitForStart();

// EXAMPLE MOVES:
driveForward(0.5, 300); // speed, time in ms
}

// ---------------------------
// MOVEMENT FUNCTIONS
// ---------------------------

// Drive Forward
public void driveForward(double power, long timeMs) {
setAllMotors(power, power, power, power);
sleep(timeMs);
stopMotors();
}

// Drive Backward
public void driveBackward(double power, long timeMs) {
setAllMotors(-power, -power, -power, -power);
sleep(timeMs);
stopMotors();
}

// Strafe Right
public void strafeRight(double power, long timeMs) {
setAllMotors(power, -power, -power, power);
sleep(timeMs);
stopMotors();
}

// Strafe Left
public void strafeLeft(double power, long timeMs) {
setAllMotors(-power, power, power, -power);
sleep(timeMs);
stopMotors();
}

// Turn Right (Pivot)
public void turnRight(double power, long timeMs) {
setAllMotors(power, -power, power, -power);
sleep(timeMs);
stopMotors();
}

// Turn Left (Pivot)
public void turnLeft(double power, long timeMs) {
setAllMotors(-power, power, -power, power);
sleep(timeMs);
stopMotors();
}

// Helper: set all motors
private void setAllMotors(double fl, double fr, double bl, double br) {
frontLeft.setPower(fl);
frontRight.setPower(fr);
backLeft.setPower(bl);
backRight.setPower(br);
}

// Helper: stop motors
private void stopMotors() {
setAllMotors(0, 0, 0, 0);
}
}
Loading