Robot Core Documentation
|
Public Member Functions | |
ChassisSpeeds () | |
ChassisSpeeds (double vxMetersPerSecond, double vyMetersPerSecond, double omegaRadiansPerSecond) | |
ChassisSpeeds (Measure< Velocity< Distance > > vx, Measure< Velocity< Distance > > vy, Measure< Velocity< Angle > > omega) | |
ChassisSpeeds | plus (ChassisSpeeds other) |
ChassisSpeeds | minus (ChassisSpeeds other) |
ChassisSpeeds | unaryMinus () |
ChassisSpeeds | times (double scalar) |
ChassisSpeeds | div (double scalar) |
Static Public Member Functions | |
static ChassisSpeeds | discretize (double vxMetersPerSecond, double vyMetersPerSecond, double omegaRadiansPerSecond, double dtSeconds) |
static ChassisSpeeds | discretize (Measure< Velocity< Distance > > vx, Measure< Velocity< Distance > > vy, Measure< Velocity< Angle > > omega, Measure< Time > dt) |
static ChassisSpeeds | discretize (ChassisSpeeds continuousSpeeds, double dtSeconds) |
static ChassisSpeeds | fromFieldRelativeSpeeds (double vxMetersPerSecond, double vyMetersPerSecond, double omegaRadiansPerSecond, Rotation2d robotAngle) |
static ChassisSpeeds | fromFieldRelativeSpeeds (Measure< Velocity< Distance > > vx, Measure< Velocity< Distance > > vy, Measure< Velocity< Angle > > omega, Rotation2d robotAngle) |
static ChassisSpeeds | fromFieldRelativeSpeeds (ChassisSpeeds fieldRelativeSpeeds, Rotation2d robotAngle) |
static ChassisSpeeds | fromRobotRelativeSpeeds (double vxMetersPerSecond, double vyMetersPerSecond, double omegaRadiansPerSecond, Rotation2d robotAngle) |
static ChassisSpeeds | fromRobotRelativeSpeeds (Measure< Velocity< Distance > > vx, Measure< Velocity< Distance > > vy, Measure< Velocity< Angle > > omega, Rotation2d robotAngle) |
static ChassisSpeeds | fromRobotRelativeSpeeds (ChassisSpeeds robotRelativeSpeeds, Rotation2d robotAngle) |
Public Attributes | |
double | vxMetersPerSecond |
double | vyMetersPerSecond |
double | omegaRadiansPerSecond |
Static Public Attributes | |
static final ChassisSpeedsProto | proto = new ChassisSpeedsProto() |
static final ChassisSpeedsStruct | struct = new ChassisSpeedsStruct() |
Represents the speed of a robot chassis. Although this class contains similar members compared to a Twist2d, they do NOT represent the same thing. Whereas a Twist2d represents a change in pose w.r.t to the robot frame of reference, a ChassisSpeeds object represents a robot's velocity.
A strictly non-holonomic drivetrain, such as a differential drive, should never have a dy component because it can never move sideways. Holonomic drivetrains such as swerve and mecanum will often have all three components.
edu.wpi.first.math.kinematics.ChassisSpeeds.ChassisSpeeds | ( | ) |
Constructs a ChassisSpeeds with zeros for dx, dy, and theta.
edu.wpi.first.math.kinematics.ChassisSpeeds.ChassisSpeeds | ( | double | vxMetersPerSecond, |
double | vyMetersPerSecond, | ||
double | omegaRadiansPerSecond ) |
Constructs a ChassisSpeeds object.
vxMetersPerSecond | Forward velocity. |
vyMetersPerSecond | Sideways velocity. |
omegaRadiansPerSecond | Angular velocity. |
edu.wpi.first.math.kinematics.ChassisSpeeds.ChassisSpeeds | ( | Measure< Velocity< Distance > > | vx, |
Measure< Velocity< Distance > > | vy, | ||
Measure< Velocity< Angle > > | omega ) |
Constructs a ChassisSpeeds object.
vx | Forward velocity. |
vy | Sideways velocity. |
omega | Angular velocity. |
|
static |
Discretizes a continuous-time chassis speed.
This function converts a continous-time chassis speed into a discrete-time one such that when the discrete-time chassis speed is applied for one timestep, the robot moves as if the velocity components are independent (i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the y-axis, and omega * dt around the z-axis).
This is useful for compensating for translational skew when translating and rotating a swerve drivetrain.
continuousSpeeds | The continuous speeds. |
dtSeconds | The duration of the timestep the speeds should be applied for. |
|
static |
Discretizes a continuous-time chassis speed.
This function converts a continuous-time chassis speed into a discrete-time one such that when the discrete-time chassis speed is applied for one timestep, the robot moves as if the velocity components are independent (i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the y-axis, and omega * dt around the z-axis).
This is useful for compensating for translational skew when translating and rotating a swerve drivetrain.
vxMetersPerSecond | Forward velocity. |
vyMetersPerSecond | Sideways velocity. |
omegaRadiansPerSecond | Angular velocity. |
dtSeconds | The duration of the timestep the speeds should be applied for. |
|
static |
Discretizes a continuous-time chassis speed.
This function converts a continuous-time chassis speed into a discrete-time one such that when the discrete-time chassis speed is applied for one timestep, the robot moves as if the velocity components are independent (i.e., the robot moves v_x * dt along the x-axis, v_y * dt along the y-axis, and omega * dt around the z-axis).
This is useful for compensating for translational skew when translating and rotating a swerve drivetrain.
vx | Forward velocity. |
vy | Sideways velocity. |
omega | Angular velocity. |
dt | The duration of the timestep the speeds should be applied for. |
ChassisSpeeds edu.wpi.first.math.kinematics.ChassisSpeeds.div | ( | double | scalar | ) |
Divides the ChassisSpeeds by a scalar and returns the new ChassisSpeeds.
For example, ChassisSpeeds{2.0, 2.5, 1.0} / 2 = ChassisSpeeds{1.0, 1.25, 0.5}
scalar | The scalar to divide by. |
|
static |
Converts a user provided field-relative ChassisSpeeds object into a robot-relative ChassisSpeeds object.
fieldRelativeSpeeds | The ChassisSpeeds object representing the speeds in the field frame of reference. Positive x is away from your alliance wall. Positive y is to your left when standing behind the alliance wall. |
robotAngle | The angle of the robot as measured by a gyroscope. The robot's angle is considered to be zero when it is facing directly away from your alliance station wall. Remember that this should be CCW positive. |
|
static |
Converts a user provided field-relative set of speeds into a robot-relative ChassisSpeeds object.
vxMetersPerSecond | The component of speed in the x direction relative to the field. Positive x is away from your alliance wall. |
vyMetersPerSecond | The component of speed in the y direction relative to the field. Positive y is to your left when standing behind the alliance wall. |
omegaRadiansPerSecond | The angular rate of the robot. |
robotAngle | The angle of the robot as measured by a gyroscope. The robot's angle is considered to be zero when it is facing directly away from your alliance station wall. Remember that this should be CCW positive. |
|
static |
Converts a user provided field-relative set of speeds into a robot-relative ChassisSpeeds object.
vx | The component of speed in the x direction relative to the field. Positive x is away from your alliance wall. |
vy | The component of speed in the y direction relative to the field. Positive y is to your left when standing behind the alliance wall. |
omega | The angular rate of the robot. |
robotAngle | The angle of the robot as measured by a gyroscope. The robot's angle is considered to be zero when it is facing directly away from your alliance station wall. Remember that this should be CCW positive. |
|
static |
Converts a user provided robot-relative ChassisSpeeds object into a field-relative ChassisSpeeds object.
robotRelativeSpeeds | The ChassisSpeeds object representing the speeds in the robot frame of reference. Positive x is towards the robot's front. Positive y is towards the robot's left. |
robotAngle | The angle of the robot as measured by a gyroscope. The robot's angle is considered to be zero when it is facing directly away from your alliance station wall. Remember that this should be CCW positive. |
|
static |
Converts a user provided robot-relative set of speeds into a field-relative ChassisSpeeds object.
vxMetersPerSecond | The component of speed in the x direction relative to the robot. Positive x is towards the robot's front. |
vyMetersPerSecond | The component of speed in the y direction relative to the robot. Positive y is towards the robot's left. |
omegaRadiansPerSecond | The angular rate of the robot. |
robotAngle | The angle of the robot as measured by a gyroscope. The robot's angle is considered to be zero when it is facing directly away from your alliance station wall. Remember that this should be CCW positive. |
|
static |
Converts a user provided robot-relative set of speeds into a field-relative ChassisSpeeds object.
vx | The component of speed in the x direction relative to the robot. Positive x is towards the robot's front. |
vy | The component of speed in the y direction relative to the robot. Positive y is towards the robot's left. |
omega | The angular rate of the robot. |
robotAngle | The angle of the robot as measured by a gyroscope. The robot's angle is considered to be zero when it is facing directly away from your alliance station wall. Remember that this should be CCW positive. |
ChassisSpeeds edu.wpi.first.math.kinematics.ChassisSpeeds.minus | ( | ChassisSpeeds | other | ) |
Subtracts the other ChassisSpeeds from the current ChassisSpeeds and returns the difference.
For example, ChassisSpeeds{5.0, 4.0, 2.0} - ChassisSpeeds{1.0, 2.0, 1.0} = ChassisSpeeds{4.0, 2.0, 1.0}
other | The ChassisSpeeds to subtract. |
ChassisSpeeds edu.wpi.first.math.kinematics.ChassisSpeeds.plus | ( | ChassisSpeeds | other | ) |
Adds two ChassisSpeeds and returns the sum.
For example, ChassisSpeeds{1.0, 0.5, 0.75} + ChassisSpeeds{2.0, 1.5, 0.25} = ChassisSpeeds{3.0, 2.0, 1.0}
other | The ChassisSpeeds to add. |
ChassisSpeeds edu.wpi.first.math.kinematics.ChassisSpeeds.times | ( | double | scalar | ) |
Multiplies the ChassisSpeeds by a scalar and returns the new ChassisSpeeds.
For example, ChassisSpeeds{2.0, 2.5, 1.0} * 2 = ChassisSpeeds{4.0, 5.0, 1.0}
scalar | The scalar to multiply by. |
ChassisSpeeds edu.wpi.first.math.kinematics.ChassisSpeeds.unaryMinus | ( | ) |
Returns the inverse of the current ChassisSpeeds. This is equivalent to negating all components of the ChassisSpeeds.
double edu.wpi.first.math.kinematics.ChassisSpeeds.omegaRadiansPerSecond |
Represents the angular velocity of the robot frame. (CCW is +)
|
static |
ChassisSpeeds protobuf for serialization.
|
static |
ChassisSpeeds struct for serialization.
double edu.wpi.first.math.kinematics.ChassisSpeeds.vxMetersPerSecond |
Velocity along the x-axis. (Fwd is +)
double edu.wpi.first.math.kinematics.ChassisSpeeds.vyMetersPerSecond |
Velocity along the y-axis. (Left is +)