updated firmware
This commit is contained in:
parent
9891b8ed44
commit
f17ca0c820
11 changed files with 273 additions and 56 deletions
|
|
@ -34,9 +34,9 @@ void ServoController::init(float max_motor_amplitude) {
|
|||
sleep_ms(1);
|
||||
}
|
||||
|
||||
velocity_lowpass.set_time_constant(0.0025f);
|
||||
pos_controller.set_parameter(150.0f, 50000.0f, 0.0f, Constants::PI_F*2.0F, Constants::PI_F*0.5F);
|
||||
velocity_controller.set_parameter(0.2f, 100.0f, 0.0f, Constants::PI_F*0.45f, Constants::PI_F*0.45f);
|
||||
velocity_lowpass.set_time_constant(0.004f);
|
||||
pos_controller.set_parameter(75.0f, 50000.0f, 0.0f, Constants::PI_F*2.0F, Constants::PI_F*0.5F);
|
||||
velocity_controller.set_parameter(0.2f, 150.0f, 0.0f, Constants::PI_F*0.45f, Constants::PI_F*0.45f);
|
||||
}
|
||||
|
||||
void ServoController::set_encoder_lut(LookupTable& enc_to_pos_lut) {
|
||||
|
|
|
|||
|
|
@ -50,15 +50,16 @@ class ServoController {
|
|||
float motor_pos_to_field_angle(float motor_pos);
|
||||
float motor_velocity_to_field_velocity(float v);
|
||||
|
||||
public:
|
||||
LowpassFilter velocity_lowpass;
|
||||
PIDController pos_controller;
|
||||
PIDController velocity_controller;
|
||||
|
||||
private:
|
||||
ENCODER_TYPE& encoder;
|
||||
MOTOR_DRIVER_TYPE& motor_driver;
|
||||
LookupTable enc_to_pos_lut;
|
||||
|
||||
LowpassFilter velocity_lowpass;
|
||||
PIDController pos_controller;
|
||||
PIDController velocity_controller;
|
||||
|
||||
float motor_pos = 0; // current motor position
|
||||
float motor_pos_prev = 0; // previous motor position
|
||||
float pos_error = 0; // current position error as computed by upate()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue