[wpimath] Replace Speeds with Velocities (#8479)

I left "free speed" alone since that's the technical term for it. In
general, velocity is a vector quantity, and speed is a magnitude (i.e.,
a strictly positive value).

This PR also replaces the speed verbiage in MotorController with duty
cycle.

Fixes #8423.
This commit is contained in:
Tyler Veness
2026-03-06 14:19:15 -08:00
committed by GitHub
parent 1e39f39128
commit 9bd9656871
594 changed files with 8073 additions and 7875 deletions

View File

@@ -63,10 +63,10 @@ class ShooterConstants:
# On a real robot the feedforward constants should be empirically determined; these are
# reasonable guesses.
kS = 0.05 # V
# Should have value 12V at free speed
# Should have value 12V at free velocity
kV = 12.0 / kShooterFreeRPS # V/(rot/s)
kFeederSpeed = 0.5
kFeederVelocity = 0.5
class IntakeConstants:
@@ -82,7 +82,7 @@ class StorageConstants:
class AutoConstants:
kTimeout = 3
kDriveDistance = 2.0 # m
kDriveSpeed = 0.5
kDriveVelocity = 0.5
class OIConstants:

View File

@@ -82,7 +82,7 @@ class RapidReactCommandBot:
Scheduled during :meth:`.Robot.autonomousInit`.
"""
# Drive forward for 2 meters at half speed with a 3 second timeout
# Drive forward for 2 meters at half velocity with a 3 second timeout
return self.drive.driveDistanceCommand(
AutoConstants.kDriveDistance, AutoConstants.kDriveSpeed
AutoConstants.kDriveDistance, AutoConstants.kDriveVelocity
).withTimeout(AutoConstants.kTimeout)

View File

@@ -91,12 +91,12 @@ class Drive(Subsystem):
"arcadeDrive"
)
def driveDistanceCommand(self, distance: float, speed: float) -> Command:
def driveDistanceCommand(self, distance: float, velocity: float) -> Command:
"""Returns a command that drives the robot forward a specified distance at a specified
speed.
velocity.
:param distance: The distance to drive forward in meters
:param speed: The fraction of max speed at which to drive
:param velocity: The fraction of max velocity at which to drive
"""
return (
self.runOnce(
@@ -105,7 +105,7 @@ class Drive(Subsystem):
self.rightEncoder.reset(),
)
)
.andThen(self.run(lambda: self.drive.arcadeDrive(speed, 0)))
.andThen(self.run(lambda: self.drive.arcadeDrive(velocity, 0)))
.until(
lambda: max(
self.leftEncoder.getDistance(), self.rightEncoder.getDistance()