@@ -59,8 +59,8 @@ def __init__(self, motor: Motor, encoder: Encoder):
5959
6060 self .target_speed = None
6161 self .DEFAULT_SPEED_CONTROLLER = PID (
62- kp = 5 ,
63- ki = 0.25 ,
62+ kp = 0.035 ,
63+ ki = 0.03 ,
6464 kd = 0 ,
6565 )
6666 self .speedController = self .DEFAULT_SPEED_CONTROLLER
@@ -110,7 +110,7 @@ def get_speed(self) -> float:
110110 :rtype: float
111111 """
112112 # Convert from ticks per 20ms to rpm (60 sec/min, 50 Hz)
113- return self .speed * (60 * 50 )/ self . _encoder . ticks_per_rev
113+ return self .speed * (60 * 50 )
114114
115115 def set_speed (self , speed_rpm : float | None = None ):
116116 """
@@ -127,7 +127,7 @@ def set_speed(self, speed_rpm: float | None = None):
127127 # If the update timer is not running, start it at 50 Hz (20ms updates)
128128 self .updateTimer .init (period = 20 , callback = lambda t :self ._update ())
129129 # Convert from rev per min to ticks per 20ms (60 sec/min, 50 Hz)
130- self .target_speed = speed_rpm * self . _encoder . ticks_per_rev / (60 * 50 )
130+ self .target_speed = speed_rpm / (60 * 50 )
131131
132132 def set_speed_controller (self , new_controller : Controller ):
133133 """
@@ -142,7 +142,7 @@ def _update(self):
142142 """
143143 Non-api method; used for updating motor efforts for speed control
144144 """
145- current_position = self .get_position_ticks ()
145+ current_position = self .get_position ()
146146 self .speed = current_position - self .prev_position
147147 if self .target_speed is not None :
148148 error = self .target_speed - self .speed
0 commit comments