Skip to content

Commit da8fbdb

Browse files
committed
Actually use the primitive input speed
Speed is measured in degrees/second instead of 0-10000 as with power.
1 parent 528a077 commit da8fbdb

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

src/Primitives/Mindstorms/Motor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ struct PID {
113113
}
114114
};
115115

116-
void Motor::drive_to_target(int32_t _s) {
116+
void Motor::drive_to_target(int32_t input_speed) {
117117
printf("drift = %d\n", abs(get_drift()));
118118

119119
// ev3 has rpm of 160-170
120120
// so maximum around a 1000 degrees per second
121-
float max_speed = 350.0f; // Degrees per second
121+
float max_speed = (float) input_speed; // Degrees per second
122122
float target_speed = max_speed; // Degrees per second
123123

124124
PID speed_pid(1.0f, 0.05f, 0.2f);
@@ -140,7 +140,7 @@ void Motor::drive_to_target(int32_t _s) {
140140
output = position_pid.update(error);
141141
target_speed = clamp(output, -max_speed, max_speed);
142142

143-
printf("position error = %f\n", error);
143+
printf("position error = %f, speed = %f\n", error, encoder_speed);
144144

145145
//printf("error = %f, speed = %f, integral = %f, derivative = %f, encoder_speed = %f\n", error, speed, integral, derivative, encoder_speed);
146146

0 commit comments

Comments
 (0)