You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Low level's steering controller uses nested position/velocity PID loops to control the DC motor. The velocity PID loop generates changes in velocity that are applied to the current value (integrated). Calculating from hundredths of deg/s to us of servo pulse makes errors of < 1 when we are close to 0 error or running at a slow speed which causes them to no be added to the desired servo pulse over time.
Suggested resolution: we should accumulate in a higher precision unit like ns of pulse. The actual output is 2*us with our clock settings, so changing to input unit to servo_set_us() will not help us much.
The text was updated successfully, but these errors were encountered:
Low level's steering controller uses nested position/velocity PID loops to control the DC motor. The velocity PID loop generates changes in velocity that are applied to the current value (integrated). Calculating from hundredths of deg/s to us of servo pulse makes errors of < 1 when we are close to 0 error or running at a slow speed which causes them to no be added to the desired servo pulse over time.
From driving the velocity controller directly:
Suggested resolution: we should accumulate in a higher precision unit like ns of pulse. The actual output is 2*us with our clock settings, so changing to input unit to servo_set_us() will not help us much.
The text was updated successfully, but these errors were encountered: