@@ -249,15 +249,15 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
249249 ctl -> acceleration = DEG_TO_MDEG (8000 );
250250 ctl -> pid_kp = 3000 ;
251251 ctl -> pid_kd = 30 ;
252- obs -> feedback_gain_low = 90 ;
252+ obs -> feedback_gain_low = 45 ;
253253 break ;
254254 case PBIO_IODEV_TYPE_ID_EV3_LARGE_MOTOR :
255255 * model = & model_ev3_l ;
256256 ctl -> speed_max = DEG_TO_MDEG (1600 );
257257 ctl -> acceleration = DEG_TO_MDEG (3200 );
258258 ctl -> pid_kp = 15000 ;
259259 ctl -> pid_kd = 250 ;
260- obs -> feedback_gain_low = 80 ;
260+ obs -> feedback_gain_low = 40 ;
261261 break ;
262262 #endif // PBIO_CONFIG_SERVO_EV3_NXT
263263 #if PBIO_CONFIG_SERVO_PUP
@@ -267,7 +267,7 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
267267 ctl -> acceleration = DEG_TO_MDEG (2000 );
268268 ctl -> pid_kp = 13500 ;
269269 ctl -> pid_kd = 1350 ;
270- obs -> feedback_gain_low = 133 ;
270+ obs -> feedback_gain_low = 66 ;
271271 break ;
272272 #if PBIO_CONFIG_SERVO_PUP_MOVE_HUB
273273 case PBIO_IODEV_TYPE_ID_MOVE_HUB_MOTOR :
@@ -276,7 +276,7 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
276276 ctl -> acceleration = DEG_TO_MDEG (5000 );
277277 ctl -> pid_kp = 15000 ;
278278 ctl -> pid_kd = 500 ;
279- obs -> feedback_gain_low = 94 ;
279+ obs -> feedback_gain_low = 47 ;
280280 break ;
281281 #endif // PBIO_CONFIG_SERVO_PUP_MOVE_HUB
282282 case PBIO_IODEV_TYPE_ID_TECHNIC_L_MOTOR :
@@ -285,23 +285,23 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
285285 ctl -> acceleration = DEG_TO_MDEG (2000 );
286286 ctl -> pid_kp = 17500 ;
287287 ctl -> pid_kd = 2500 ;
288- obs -> feedback_gain_low = 51 ;
288+ obs -> feedback_gain_low = 26 ;
289289 break ;
290290 case PBIO_IODEV_TYPE_ID_TECHNIC_XL_MOTOR :
291291 * model = & model_technic_xl ;
292292 ctl -> speed_max = DEG_TO_MDEG (1525 );
293293 ctl -> acceleration = DEG_TO_MDEG (2500 );
294294 ctl -> pid_kp = 17500 ;
295295 ctl -> pid_kd = 2500 ;
296- obs -> feedback_gain_low = 77 ;
296+ obs -> feedback_gain_low = 38 ;
297297 break ;
298298 case PBIO_IODEV_TYPE_ID_SPIKE_S_MOTOR :
299299 * model = & model_technic_s_angular ;
300300 ctl -> speed_max = DEG_TO_MDEG (620 );
301301 ctl -> acceleration = DEG_TO_MDEG (2000 );
302302 ctl -> pid_kp = 7500 ;
303303 ctl -> pid_kd = 1000 ;
304- obs -> feedback_gain_low = 48 ;
304+ obs -> feedback_gain_low = 24 ;
305305 break ;
306306 case PBIO_IODEV_TYPE_ID_TECHNIC_L_ANGULAR_MOTOR :
307307 case PBIO_IODEV_TYPE_ID_SPIKE_L_MOTOR :
@@ -310,7 +310,7 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
310310 ctl -> acceleration = DEG_TO_MDEG (1500 );
311311 ctl -> pid_kp = 35000 ;
312312 ctl -> pid_kd = 6000 ;
313- obs -> feedback_gain_low = 64 ;
313+ obs -> feedback_gain_low = 32 ;
314314 break ;
315315 case PBIO_IODEV_TYPE_ID_TECHNIC_M_ANGULAR_MOTOR :
316316 case PBIO_IODEV_TYPE_ID_SPIKE_M_MOTOR :
@@ -319,7 +319,7 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
319319 ctl -> acceleration = DEG_TO_MDEG (2000 );
320320 ctl -> pid_kp = 15000 ;
321321 ctl -> pid_kd = 1800 ;
322- obs -> feedback_gain_low = 90 ;
322+ obs -> feedback_gain_low = 45 ;
323323 break ;
324324 #endif // PBIO_CONFIG_SERVO_PUP
325325 default :
@@ -331,8 +331,8 @@ pbio_error_t pbio_servo_load_settings(pbio_control_settings_t *ctl, pbio_observe
331331 obs -> stall_time = ctl -> stall_time ;
332332 obs -> feedback_voltage_stall_ratio = 75 ;
333333 obs -> feedback_voltage_negligible = 5 * pbio_observer_torque_to_voltage (* model , (* model )-> torque_friction / 2 );
334- obs -> feedback_gain_high = obs -> feedback_gain_low * 3 ;
335- obs -> feedback_gain_threshold = DEG_TO_MDEG (10 );
334+ obs -> feedback_gain_high = obs -> feedback_gain_low * 6 ;
335+ obs -> feedback_gain_threshold = DEG_TO_MDEG (8 );
336336 obs -> coulomb_friction_speed_cutoff = 500 ;
337337
338338 // The default speed is not used for servos currently (an explicit speed
0 commit comments