mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
[wpiutil] Add serializable marker interfaces (#6060)
This commit is contained in:
@@ -18,6 +18,8 @@ import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.units.Time;
|
||||
import edu.wpi.first.units.Velocity;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
|
||||
/**
|
||||
* Represents the speed of a robot chassis. Although this class contains similar members compared to
|
||||
@@ -28,7 +30,8 @@ import edu.wpi.first.units.Velocity;
|
||||
* component because it can never move sideways. Holonomic drivetrains such as swerve and mecanum
|
||||
* will often have all three components.
|
||||
*/
|
||||
public class ChassisSpeeds {
|
||||
public class ChassisSpeeds
|
||||
implements ProtobufSerializable<ChassisSpeeds>, StructSerializable<ChassisSpeeds> {
|
||||
/** Velocity along the x-axis. (Fwd is +) */
|
||||
public double vxMetersPerSecond;
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ import edu.wpi.first.math.kinematics.proto.DifferentialDriveKinematicsProto;
|
||||
import edu.wpi.first.math.kinematics.struct.DifferentialDriveKinematicsStruct;
|
||||
import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
|
||||
/**
|
||||
* Helper class that converts a chassis velocity (dx and dtheta components) to left and right wheel
|
||||
@@ -23,7 +25,9 @@ import edu.wpi.first.units.Measure;
|
||||
* chassis speed.
|
||||
*/
|
||||
public class DifferentialDriveKinematics
|
||||
implements Kinematics<DifferentialDriveWheelSpeeds, DifferentialDriveWheelPositions> {
|
||||
implements Kinematics<DifferentialDriveWheelSpeeds, DifferentialDriveWheelPositions>,
|
||||
ProtobufSerializable<DifferentialDriveKinematics>,
|
||||
StructSerializable<DifferentialDriveKinematics> {
|
||||
public final double trackWidthMeters;
|
||||
|
||||
public static final DifferentialDriveKinematicsProto proto =
|
||||
|
||||
@@ -11,9 +11,13 @@ import edu.wpi.first.math.kinematics.struct.DifferentialDriveWheelSpeedsStruct;
|
||||
import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.units.Velocity;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
|
||||
/** Represents the wheel speeds for a differential drive drivetrain. */
|
||||
public class DifferentialDriveWheelSpeeds {
|
||||
public class DifferentialDriveWheelSpeeds
|
||||
implements ProtobufSerializable<DifferentialDriveWheelSpeeds>,
|
||||
StructSerializable<DifferentialDriveWheelSpeeds> {
|
||||
/** Speed of the left side of the robot. */
|
||||
public double leftMetersPerSecond;
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ import edu.wpi.first.math.geometry.Translation2d;
|
||||
import edu.wpi.first.math.geometry.Twist2d;
|
||||
import edu.wpi.first.math.kinematics.proto.MecanumDriveKinematicsProto;
|
||||
import edu.wpi.first.math.kinematics.struct.MecanumDriveKinematicsStruct;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
import org.ejml.simple.SimpleMatrix;
|
||||
|
||||
/**
|
||||
@@ -33,7 +35,9 @@ import org.ejml.simple.SimpleMatrix;
|
||||
* field using encoders and a gyro.
|
||||
*/
|
||||
public class MecanumDriveKinematics
|
||||
implements Kinematics<MecanumDriveWheelSpeeds, MecanumDriveWheelPositions> {
|
||||
implements Kinematics<MecanumDriveWheelSpeeds, MecanumDriveWheelPositions>,
|
||||
ProtobufSerializable<MecanumDriveKinematics>,
|
||||
StructSerializable<MecanumDriveKinematics> {
|
||||
private final SimpleMatrix m_inverseKinematics;
|
||||
private final SimpleMatrix m_forwardKinematics;
|
||||
|
||||
|
||||
@@ -11,9 +11,14 @@ import edu.wpi.first.math.kinematics.proto.MecanumDriveWheelPositionsProto;
|
||||
import edu.wpi.first.math.kinematics.struct.MecanumDriveWheelPositionsStruct;
|
||||
import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
import java.util.Objects;
|
||||
|
||||
public class MecanumDriveWheelPositions implements WheelPositions<MecanumDriveWheelPositions> {
|
||||
public class MecanumDriveWheelPositions
|
||||
implements WheelPositions<MecanumDriveWheelPositions>,
|
||||
ProtobufSerializable<MecanumDriveWheelPositions>,
|
||||
StructSerializable<MecanumDriveWheelPositions> {
|
||||
/** Distance measured by the front left wheel. */
|
||||
public double frontLeftMeters;
|
||||
|
||||
|
||||
@@ -11,8 +11,12 @@ import edu.wpi.first.math.kinematics.struct.MecanumDriveWheelSpeedsStruct;
|
||||
import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.units.Velocity;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
|
||||
public class MecanumDriveWheelSpeeds {
|
||||
public class MecanumDriveWheelSpeeds
|
||||
implements ProtobufSerializable<MecanumDriveWheelSpeeds>,
|
||||
StructSerializable<MecanumDriveWheelSpeeds> {
|
||||
/** Speed of the front left wheel. */
|
||||
public double frontLeftMetersPerSecond;
|
||||
|
||||
|
||||
@@ -13,11 +13,16 @@ import edu.wpi.first.math.kinematics.proto.SwerveModulePositionProto;
|
||||
import edu.wpi.first.math.kinematics.struct.SwerveModulePositionStruct;
|
||||
import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/** Represents the state of one swerve module. */
|
||||
public class SwerveModulePosition
|
||||
implements Comparable<SwerveModulePosition>, Interpolatable<SwerveModulePosition> {
|
||||
implements Comparable<SwerveModulePosition>,
|
||||
Interpolatable<SwerveModulePosition>,
|
||||
ProtobufSerializable<SwerveModulePosition>,
|
||||
StructSerializable<SwerveModulePosition> {
|
||||
/** Distance measured by the wheel of the module. */
|
||||
public double distanceMeters;
|
||||
|
||||
|
||||
@@ -12,10 +12,15 @@ import edu.wpi.first.math.kinematics.struct.SwerveModuleStateStruct;
|
||||
import edu.wpi.first.units.Distance;
|
||||
import edu.wpi.first.units.Measure;
|
||||
import edu.wpi.first.units.Velocity;
|
||||
import edu.wpi.first.util.protobuf.ProtobufSerializable;
|
||||
import edu.wpi.first.util.struct.StructSerializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/** Represents the state of one swerve module. */
|
||||
public class SwerveModuleState implements Comparable<SwerveModuleState> {
|
||||
public class SwerveModuleState
|
||||
implements Comparable<SwerveModuleState>,
|
||||
ProtobufSerializable<SwerveModuleState>,
|
||||
StructSerializable<SwerveModuleState> {
|
||||
/** Speed of the wheel of the module. */
|
||||
public double speedMetersPerSecond;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user