mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpimath] Reorganize LinearSystem factories (#8468)
This commit is contained in:
@@ -8,7 +8,7 @@ import org.wpilib.examples.armsimulation.Constants;
|
||||
import org.wpilib.hardware.motor.PWMSparkMax;
|
||||
import org.wpilib.hardware.rotation.Encoder;
|
||||
import org.wpilib.math.controller.PIDController;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.util.Units;
|
||||
import org.wpilib.simulation.BatterySim;
|
||||
import org.wpilib.simulation.EncoderSim;
|
||||
|
||||
@@ -21,9 +21,9 @@ import org.wpilib.math.kinematics.DifferentialDriveKinematics;
|
||||
import org.wpilib.math.kinematics.DifferentialDriveWheelSpeeds;
|
||||
import org.wpilib.math.linalg.VecBuilder;
|
||||
import org.wpilib.math.numbers.N2;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.math.util.ComputerVisionUtil;
|
||||
import org.wpilib.math.util.Units;
|
||||
import org.wpilib.networktables.DoubleArrayEntry;
|
||||
@@ -93,7 +93,7 @@ public class Drivetrain {
|
||||
private final EncoderSim m_leftEncoderSim = new EncoderSim(m_leftEncoder);
|
||||
private final EncoderSim m_rightEncoderSim = new EncoderSim(m_rightEncoder);
|
||||
private final LinearSystem<N2, N2, N2> m_drivetrainSystem =
|
||||
LinearSystemId.identifyDrivetrainSystem(1.98, 0.2, 1.5, 0.3);
|
||||
Models.differentialDriveFromSysId(1.98, 0.2, 1.5, 0.3);
|
||||
private final DifferentialDrivetrainSim m_drivetrainSimulator =
|
||||
new DifferentialDrivetrainSim(
|
||||
m_drivetrainSystem, DCMotor.getCIM(2), 8, kTrackwidth, kWheelRadius, null);
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.wpilib.hardware.motor.PWMSparkMax;
|
||||
import org.wpilib.hardware.rotation.Encoder;
|
||||
import org.wpilib.math.controller.ElevatorFeedforward;
|
||||
import org.wpilib.math.controller.PIDController;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.trajectory.ExponentialProfile;
|
||||
import org.wpilib.math.util.Units;
|
||||
import org.wpilib.simulation.BatterySim;
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.wpilib.hardware.motor.PWMSparkMax;
|
||||
import org.wpilib.hardware.rotation.Encoder;
|
||||
import org.wpilib.math.controller.ElevatorFeedforward;
|
||||
import org.wpilib.math.controller.ProfiledPIDController;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.trajectory.TrapezoidProfile;
|
||||
import org.wpilib.simulation.BatterySim;
|
||||
import org.wpilib.simulation.ElevatorSim;
|
||||
|
||||
@@ -11,9 +11,9 @@ import org.wpilib.hardware.rotation.Encoder;
|
||||
import org.wpilib.math.controller.BangBangController;
|
||||
import org.wpilib.math.controller.SimpleMotorFeedforward;
|
||||
import org.wpilib.math.numbers.N1;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.math.util.Units;
|
||||
import org.wpilib.simulation.EncoderSim;
|
||||
import org.wpilib.simulation.FlywheelSim;
|
||||
@@ -60,7 +60,7 @@ public class Robot extends TimedRobot {
|
||||
private final DCMotor m_gearbox = DCMotor.getNEO(1);
|
||||
|
||||
private final LinearSystem<N1, N1, N1> m_plant =
|
||||
LinearSystemId.createFlywheelSystem(m_gearbox, kFlywheelGearing, kFlywheelMomentOfInertia);
|
||||
Models.flywheelFromPhysicalConstants(m_gearbox, kFlywheelGearing, kFlywheelMomentOfInertia);
|
||||
|
||||
private final FlywheelSim m_flywheelSim = new FlywheelSim(m_plant, m_gearbox);
|
||||
private final EncoderSim m_encoderSim = new EncoderSim(m_encoder);
|
||||
|
||||
@@ -15,9 +15,9 @@ import org.wpilib.math.kinematics.DifferentialDriveKinematics;
|
||||
import org.wpilib.math.kinematics.DifferentialDriveOdometry;
|
||||
import org.wpilib.math.kinematics.DifferentialDriveWheelSpeeds;
|
||||
import org.wpilib.math.numbers.N2;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.simulation.DifferentialDrivetrainSim;
|
||||
import org.wpilib.simulation.EncoderSim;
|
||||
import org.wpilib.smartdashboard.Field2d;
|
||||
@@ -62,7 +62,7 @@ public class Drivetrain {
|
||||
private final EncoderSim m_rightEncoderSim = new EncoderSim(m_rightEncoder);
|
||||
private final Field2d m_fieldSim = new Field2d();
|
||||
private final LinearSystem<N2, N2, N2> m_drivetrainSystem =
|
||||
LinearSystemId.identifyDrivetrainSystem(1.98, 0.2, 1.5, 0.3);
|
||||
Models.differentialDriveFromSysId(1.98, 0.2, 1.5, 0.3);
|
||||
private final DifferentialDrivetrainSim m_drivetrainSimulator =
|
||||
new DifferentialDrivetrainSim(
|
||||
m_drivetrainSystem, DCMotor.getCIM(2), 8, kTrackwidth, kWheelRadius, null);
|
||||
|
||||
@@ -13,10 +13,10 @@ import org.wpilib.math.estimator.KalmanFilter;
|
||||
import org.wpilib.math.linalg.VecBuilder;
|
||||
import org.wpilib.math.numbers.N1;
|
||||
import org.wpilib.math.numbers.N2;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.LinearSystemLoop;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.math.trajectory.TrapezoidProfile;
|
||||
import org.wpilib.math.util.Nat;
|
||||
import org.wpilib.math.util.Units;
|
||||
@@ -53,7 +53,7 @@ public class Robot extends TimedRobot {
|
||||
// Inputs (what we can "put in"): [voltage], in volts.
|
||||
// Outputs (what we can measure): [position], in radians.
|
||||
private final LinearSystem<N2, N1, N2> m_armPlant =
|
||||
LinearSystemId.createSingleJointedArmSystem(DCMotor.getNEO(2), kArmMOI, kArmGearing);
|
||||
Models.singleJointedArmFromPhysicalConstants(DCMotor.getNEO(2), kArmMOI, kArmGearing);
|
||||
|
||||
// The observer fuses our encoder data and voltage inputs to reject noise.
|
||||
@SuppressWarnings("unchecked")
|
||||
|
||||
@@ -13,10 +13,10 @@ import org.wpilib.math.estimator.KalmanFilter;
|
||||
import org.wpilib.math.linalg.VecBuilder;
|
||||
import org.wpilib.math.numbers.N1;
|
||||
import org.wpilib.math.numbers.N2;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.LinearSystemLoop;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.math.trajectory.TrapezoidProfile;
|
||||
import org.wpilib.math.util.Nat;
|
||||
import org.wpilib.math.util.Units;
|
||||
@@ -58,7 +58,7 @@ public class Robot extends TimedRobot {
|
||||
This elevator is driven by two NEO motors.
|
||||
*/
|
||||
private final LinearSystem<N2, N1, N2> m_elevatorPlant =
|
||||
LinearSystemId.createElevatorSystem(
|
||||
Models.elevatorFromPhysicalConstants(
|
||||
DCMotor.getNEO(2), kCarriageMass, kDrumRadius, kElevatorGearing);
|
||||
|
||||
// The observer fuses our encoder data and voltage inputs to reject noise.
|
||||
|
||||
@@ -12,10 +12,10 @@ import org.wpilib.math.controller.LinearQuadraticRegulator;
|
||||
import org.wpilib.math.estimator.KalmanFilter;
|
||||
import org.wpilib.math.linalg.VecBuilder;
|
||||
import org.wpilib.math.numbers.N1;
|
||||
import org.wpilib.math.system.DCMotor;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.LinearSystemLoop;
|
||||
import org.wpilib.math.system.plant.DCMotor;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.math.util.Nat;
|
||||
import org.wpilib.math.util.Units;
|
||||
|
||||
@@ -42,7 +42,7 @@ public class Robot extends TimedRobot {
|
||||
// Inputs (what we can "put in"): [voltage], in volts.
|
||||
// Outputs (what we can measure): [velocity], in radians per second.
|
||||
private final LinearSystem<N1, N1, N1> m_flywheelPlant =
|
||||
LinearSystemId.createFlywheelSystem(
|
||||
Models.flywheelFromPhysicalConstants(
|
||||
DCMotor.getNEO(2), kFlywheelMomentOfInertia, kFlywheelGearing);
|
||||
|
||||
// The observer fuses our encoder data and voltage inputs to reject noise.
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.wpilib.math.linalg.VecBuilder;
|
||||
import org.wpilib.math.numbers.N1;
|
||||
import org.wpilib.math.system.LinearSystem;
|
||||
import org.wpilib.math.system.LinearSystemLoop;
|
||||
import org.wpilib.math.system.plant.LinearSystemId;
|
||||
import org.wpilib.math.system.Models;
|
||||
import org.wpilib.math.util.Nat;
|
||||
import org.wpilib.math.util.Units;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class Robot extends TimedRobot {
|
||||
//
|
||||
// The Kv and Ka constants are found using the FRC Characterization toolsuite.
|
||||
private final LinearSystem<N1, N1, N1> m_flywheelPlant =
|
||||
LinearSystemId.identifyVelocitySystem(kFlywheelKv, kFlywheelKa);
|
||||
Models.flywheelFromSysId(kFlywheelKv, kFlywheelKa);
|
||||
|
||||
// The observer fuses our encoder data and voltage inputs to reject noise.
|
||||
private final KalmanFilter<N1, N1, N1> m_observer =
|
||||
|
||||
Reference in New Issue
Block a user