44from __future__ import annotations
55
66from typing import Callable , Union
7- from wpimath .controller import PIDController , RamseteController , SimpleMotorFeedforwardMeters
7+ from wpimath .controller import (
8+ PIDController ,
9+ RamseteController ,
10+ SimpleMotorFeedforwardMeters ,
11+ )
812from wpimath .geometry import Pose2d
9- from wpimath .kinematics import ChassisSpeeds , DifferentialDriveKinematics , DifferentialDriveWheelSpeeds
13+ from wpimath .kinematics import (
14+ ChassisSpeeds ,
15+ DifferentialDriveKinematics ,
16+ DifferentialDriveWheelSpeeds ,
17+ )
1018from wpimath .trajectory import Trajectory
1119from wpiutil import SendableBuilder
1220from wpilib import Timer
1523from .command import Command
1624from .subsystem import Subsystem
1725
26+
1827class RamseteCommand (Command ):
1928 """
2029 A command that uses a RAMSETE controller (RamseteController) to follow a trajectory
@@ -62,7 +71,7 @@ def __init__(
6271
6372 OPTIONAL PARAMETERS
6473 When the following optional parameters are provided, when executed, the RamseteCommand will follow
65- provided trajectory. PID control and feedforward are handled internally, and the outputs are scaled
74+ provided trajectory. PID control and feedforward are handled internally, and the outputs are scaled
6675 from -12 to 12 representing units of volts. If any one of the optional parameters are provided, each
6776 other optional parameter becomes required.
6877 :param feedforward The feedforward to use for the drive
@@ -90,11 +99,11 @@ def __init__(
9099 # requirements become required.
91100 if feedforward or leftController or rightController or wheelSpeeds is not None :
92101 if feedforward or leftController or rightController or wheelSpeeds is None :
93- raise RuntimeError (f'Failed to instantiate RamseteCommand, not all optional arguments were provided.\n \
94- Feedforward - { feedforward } , LeftController - { leftController } , RightController - { rightController } , WheelSpeeds - { wheelSpeeds } '
102+ raise RuntimeError (
103+ f"Failed to instantiate RamseteCommand, not all optional arguments were provided.\n \
104+ Feedforward - { feedforward } , LeftController - { leftController } , RightController - { rightController } , WheelSpeeds - { wheelSpeeds } "
95105 )
96-
97-
106+
98107 self .leftController : PIDController = leftController
99108 self .rightController : PIDController = rightController
100109 self .wheelspeeds : Callable [[], DifferentialDriveWheelSpeeds ] = wheelSpeeds
@@ -109,7 +118,11 @@ def initialize(self):
109118 self .prevTime = - 1
110119 initial_state = self .trajectory .sample (0 )
111120 initial_speeds = self .kinematics .toWheelSpeeds (
112- ChassisSpeeds ( initial_state .velocity , 0 , initial_state .curvature * initial_state .velocity )
121+ ChassisSpeeds (
122+ initial_state .velocity ,
123+ 0 ,
124+ initial_state .curvature * initial_state .velocity ,
125+ )
113126 )
114127 self .prevSpeeds = initial_speeds
115128 self .timer .restart ()
@@ -135,29 +148,20 @@ def execute(self):
135148
136149 if self .usePID :
137150 left_feedforward = self .feedforward .calculate (
138- left_speed_setpoint ,
139- (left_speed_setpoint - self .prevSpeeds .left ) / dt
151+ left_speed_setpoint , (left_speed_setpoint - self .prevSpeeds .left ) / dt
140152 )
141153
142154 right_feedforward = self .feedforward .calculate (
143155 right_speed_setpoint ,
144- (right_speed_setpoint - self .prevSpeeds .right ) / dt
156+ (right_speed_setpoint - self .prevSpeeds .right ) / dt ,
145157 )
146158
147- left_output = (
148- left_feedforward
149- + self .leftController .calculate (
150- self .wheelspeeds ().left ,
151- left_speed_setpoint
152- )
159+ left_output = left_feedforward + self .leftController .calculate (
160+ self .wheelspeeds ().left , left_speed_setpoint
153161 )
154162
155- right_output = (
156- right_feedforward
157- + self .rightController .calculate (
158- self .wheelspeeds ().right ,
159- right_speed_setpoint
160- )
163+ right_output = right_feedforward + self .rightController .calculate (
164+ self .wheelspeeds ().right , right_speed_setpoint
161165 )
162166 else :
163167 left_output = left_speed_setpoint
0 commit comments