Tune turning a bit

This commit is contained in:
Konstantin Lampalzer 2022-05-29 15:20:11 +02:00
parent 9000316350
commit 4ee0b8045f
5 changed files with 42 additions and 18 deletions

View file

@ -23,17 +23,21 @@
#define ROBOT_WHEEL_RADIUS_MM 35.5
#define ROBOT_WHEEL_RADIUS_M (ROBOT_WHEEL_RADIUS_MM / 1000.0)
#define ROBOT_WHEEL_CIRCUMFERENCE_MM (2 * ROBOT_WHEEL_RADIUS_MM * M_PI)
#define ROBOT_WHEEL_CIRCUMFERENCE_MM (2.0 * ROBOT_WHEEL_RADIUS_MM * M_PI)
#define ROBOT_WHEEL_CIRCUMFERENCE_M (2 * ROBOT_WHEEL_RADIUS_M * M_PI)
#define ROBOT_TICKS_PER_TURN (27.7 * 100.0)
#define ROBOT_ARBOR_LENGTH_MM 139.0
#define ROBOT_ARBOR_LENGTH_MM 140.0
#define ROBOT_ARBOR_LENGTH_M (ROBOT_ARBOR_LENGTH_MM / 1000.0)
#define ROBOT_TICKS_PER_METER (1000.0 / ROBOT_WHEEL_CIRCUMFERENCE_MM * ROBOT_TICKS_PER_TURN)
#define ROBOT_GO_TO_GOAL_K 0.99 // Between 0.5 and 1
#define ROBOT_GO_TO_DISTANCE_ALPHA_P 2.0
#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 5.0
#define ROBOT_GO_TO_DISTANCE_END_M 0.01 // stop approx 1 cm before target
#define ROBOT_GO_TO_ANGLE_END_RAD (0.5 * (M_PI / 180.0)) // stop 0.5 deg before target
#define ROBOT_GO_TO_ANGLE_END_RAD (0.1 * (M_PI / 180.0)) // stop 0.1 deg before target
#define ROBOT_GO_TO_ANGLE_ALPHA_P 0.5
#define ROBOT_GO_TO_ANGLE_MIN_VEL (M_PI / 3.0)
#endif //COMPLIB_SERVER_ROBOT_HPP

View file

@ -40,6 +40,23 @@ namespace mathUtils {
inline T wrap_angle_to_pi(T angle) {
return atan2(sin(angle), cos(angle));
}
template<class T>
inline T limit_min(T val, T min) {
if (val < 0.0 && val > -min) {
return -min;
} else if (val > 0.0 && val < min) {
return min;
} else if (val == 0) {
return min;
}
return val;
}
template<class T>
inline T limit_max(T val, T min, T max) {
return fmax(min, fmin(max, val));
}
}
#endif // COMPLIB_SERVER_MATHUTILS_HPP