mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-27 02:01:42 +00:00
[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:
@@ -32,7 +32,7 @@ class DriveConstants:
|
||||
|
||||
kp = 1.0
|
||||
|
||||
kMaxSpeed = 3.0 # m/s
|
||||
kMaxVelocity = 3.0 # m/s
|
||||
kMaxAcceleration = 3.0 # m/s²
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class ExampleSmartMotorController(wpilib.MotorController):
|
||||
port: The port for the controller.
|
||||
"""
|
||||
super().__init__()
|
||||
self._speed = 0.0
|
||||
self._velocity = 0.0
|
||||
self._inverted = False
|
||||
self._leader = None
|
||||
|
||||
@@ -79,11 +79,11 @@ class ExampleSmartMotorController(wpilib.MotorController):
|
||||
"""Resets the encoder to zero distance."""
|
||||
pass
|
||||
|
||||
def set(self, speed: float) -> None:
|
||||
self._speed = -speed if self._inverted else speed
|
||||
def set(self, velocity: float) -> None:
|
||||
self._velocity = -velocity if self._inverted else velocity
|
||||
|
||||
def get(self) -> float:
|
||||
return self._speed
|
||||
return self._velocity
|
||||
|
||||
def setInverted(self, isInverted: bool) -> None:
|
||||
self._inverted = isInverted
|
||||
@@ -92,7 +92,7 @@ class ExampleSmartMotorController(wpilib.MotorController):
|
||||
return self._inverted
|
||||
|
||||
def disable(self) -> None:
|
||||
self._speed = 0.0
|
||||
self._velocity = 0.0
|
||||
|
||||
def stopMotor(self) -> None:
|
||||
self._speed = 0.0
|
||||
self._velocity = 0.0
|
||||
|
||||
@@ -25,10 +25,10 @@ class RobotContainer:
|
||||
self.robotDrive = subsystems.drivesubsystem.DriveSubsystem()
|
||||
|
||||
# Retained command references
|
||||
self.driveFullSpeed = commands2.cmd.runOnce(
|
||||
self.driveFullVelocity = commands2.cmd.runOnce(
|
||||
lambda: self.robotDrive.setMaxOutput(1), self.robotDrive
|
||||
)
|
||||
self.driveHalfSpeed = commands2.cmd.runOnce(
|
||||
self.driveHalfVelocity = commands2.cmd.runOnce(
|
||||
lambda: self.robotDrive.setMaxOutput(0.5), self.robotDrive
|
||||
)
|
||||
|
||||
@@ -65,9 +65,9 @@ class RobotContainer:
|
||||
|
||||
# We can bind commands while retaining references to them in RobotContainer
|
||||
|
||||
# Drive at half speed when the bumper is held
|
||||
self.driverController.rightBumper().onTrue(self.driveHalfSpeed).onFalse(
|
||||
self.driveFullSpeed
|
||||
# Drive at half velocity when the bumper is held
|
||||
self.driverController.rightBumper().onTrue(self.driveHalfVelocity).onFalse(
|
||||
self.driveFullVelocity
|
||||
)
|
||||
|
||||
# Drive forward by 3 meters when the 'A' button is pressed, with a timeout of 10 seconds
|
||||
|
||||
@@ -63,7 +63,7 @@ class DriveSubsystem(commands2.Subsystem):
|
||||
|
||||
self.profile = wpimath.TrapezoidProfile(
|
||||
wpimath.TrapezoidProfile.Constraints(
|
||||
constants.DriveConstants.kMaxSpeed,
|
||||
constants.DriveConstants.kMaxVelocity,
|
||||
constants.DriveConstants.kMaxAcceleration,
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user