Correct velocity in ManualFeedforwardTuner
This commit is contained in:
@ -37,6 +37,8 @@ final class DriveView {
|
|||||||
public final List<RawEncoder> leftEncs, rightEncs, parEncs, perpEncs;
|
public final List<RawEncoder> leftEncs, rightEncs, parEncs, perpEncs;
|
||||||
public final List<RawEncoder> forwardEncs;
|
public final List<RawEncoder> forwardEncs;
|
||||||
|
|
||||||
|
public final List<Encoder> forwardEncsWrapped;
|
||||||
|
|
||||||
public final IMU imu;
|
public final IMU imu;
|
||||||
|
|
||||||
public final VoltageSensor voltageSensor;
|
public final VoltageSensor voltageSensor;
|
||||||
@ -88,24 +90,38 @@ final class DriveView {
|
|||||||
throw new AssertionError();
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
forwardEncsWrapped = new ArrayList<>();
|
||||||
|
|
||||||
if (localizer instanceof TwoDeadWheelLocalizer) {
|
if (localizer instanceof TwoDeadWheelLocalizer) {
|
||||||
TwoDeadWheelLocalizer l2 = (TwoDeadWheelLocalizer) localizer;
|
TwoDeadWheelLocalizer l2 = (TwoDeadWheelLocalizer) localizer;
|
||||||
parEncs = Collections.singletonList(unwrap(l2.par));
|
parEncs = Collections.singletonList(unwrap(l2.par));
|
||||||
perpEncs = Collections.singletonList(unwrap(l2.perp));
|
perpEncs = Collections.singletonList(unwrap(l2.perp));
|
||||||
leftEncs = Collections.emptyList();
|
leftEncs = Collections.emptyList();
|
||||||
rightEncs = Collections.emptyList();
|
rightEncs = Collections.emptyList();
|
||||||
|
|
||||||
|
forwardEncsWrapped.add(l2.par);
|
||||||
|
forwardEncsWrapped.add(l2.perp);
|
||||||
} else if (localizer instanceof ThreeDeadWheelLocalizer) {
|
} else if (localizer instanceof ThreeDeadWheelLocalizer) {
|
||||||
ThreeDeadWheelLocalizer l3 = (ThreeDeadWheelLocalizer) localizer;
|
ThreeDeadWheelLocalizer l3 = (ThreeDeadWheelLocalizer) localizer;
|
||||||
parEncs = Arrays.asList(unwrap(l3.par0), unwrap(l3.par1));
|
parEncs = Arrays.asList(unwrap(l3.par0), unwrap(l3.par1));
|
||||||
perpEncs = Collections.singletonList(unwrap(l3.perp));
|
perpEncs = Collections.singletonList(unwrap(l3.perp));
|
||||||
leftEncs = Collections.emptyList();
|
leftEncs = Collections.emptyList();
|
||||||
rightEncs = Collections.emptyList();
|
rightEncs = Collections.emptyList();
|
||||||
|
|
||||||
|
forwardEncsWrapped.add(l3.par0);
|
||||||
|
forwardEncsWrapped.add(l3.par1);
|
||||||
|
forwardEncsWrapped.add(l3.perp);
|
||||||
} else if (localizer instanceof MecanumDrive.DriveLocalizer) {
|
} else if (localizer instanceof MecanumDrive.DriveLocalizer) {
|
||||||
MecanumDrive.DriveLocalizer dl = (MecanumDrive.DriveLocalizer) localizer;
|
MecanumDrive.DriveLocalizer dl = (MecanumDrive.DriveLocalizer) localizer;
|
||||||
parEncs = Collections.emptyList();
|
parEncs = Collections.emptyList();
|
||||||
perpEncs = Collections.emptyList();
|
perpEncs = Collections.emptyList();
|
||||||
leftEncs = Arrays.asList(unwrap(dl.leftFront), unwrap(dl.leftRear));
|
leftEncs = Arrays.asList(unwrap(dl.leftFront), unwrap(dl.leftRear));
|
||||||
rightEncs = Arrays.asList(unwrap(dl.rightFront), unwrap(dl.rightRear));
|
rightEncs = Arrays.asList(unwrap(dl.rightFront), unwrap(dl.rightRear));
|
||||||
|
|
||||||
|
forwardEncsWrapped.add(dl.leftFront);
|
||||||
|
forwardEncsWrapped.add(dl.leftRear);
|
||||||
|
forwardEncsWrapped.add(dl.rightFront);
|
||||||
|
forwardEncsWrapped.add(dl.rightRear);
|
||||||
} else if (localizer instanceof TankDrive.DriveLocalizer) {
|
} else if (localizer instanceof TankDrive.DriveLocalizer) {
|
||||||
TankDrive.DriveLocalizer dl = (TankDrive.DriveLocalizer) localizer;
|
TankDrive.DriveLocalizer dl = (TankDrive.DriveLocalizer) localizer;
|
||||||
parEncs = Collections.emptyList();
|
parEncs = Collections.emptyList();
|
||||||
@ -113,10 +129,14 @@ final class DriveView {
|
|||||||
leftEncs = new ArrayList<>();
|
leftEncs = new ArrayList<>();
|
||||||
for (Encoder e : dl.leftEncs) {
|
for (Encoder e : dl.leftEncs) {
|
||||||
leftEncs.add(unwrap(e));
|
leftEncs.add(unwrap(e));
|
||||||
|
|
||||||
|
forwardEncsWrapped.add(e);
|
||||||
}
|
}
|
||||||
rightEncs = new ArrayList<>();
|
rightEncs = new ArrayList<>();
|
||||||
for (Encoder e : dl.rightEncs) {
|
for (Encoder e : dl.rightEncs) {
|
||||||
rightEncs.add(unwrap(e));
|
rightEncs.add(unwrap(e));
|
||||||
|
|
||||||
|
forwardEncsWrapped.add(e);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new AssertionError();
|
throw new AssertionError();
|
||||||
|
@ -53,8 +53,8 @@ public class ManualFeedforwardTuner extends LinearOpMode {
|
|||||||
mode = Mode.DRIVER_MODE;
|
mode = Mode.DRIVER_MODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < view.forwardEncs.size(); i++) {
|
for (int i = 0; i < view.forwardEncsWrapped.size(); i++) {
|
||||||
double v = view.forwardEncs.get(i).getPositionAndVelocity().velocity;
|
double v = view.forwardEncsWrapped.get(i).getPositionAndVelocity().velocity;
|
||||||
telemetry.addData("v" + i, view.inPerTick * v);
|
telemetry.addData("v" + i, view.inPerTick * v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user