Einfach so, am Anfang der config.h:
//Speeds/Time for different movement operations
#define MOW_SPINUPTIME 5000 //Adds time to rotate mowingblades before starting moving (ms)
#define OVERLOADSPEED 0.15 //m/s
#define ROTATETOTARGETSPEED 1.0 //0.5=29degree/sec
#define TRACKSLOWSPEED 0.10 //m/s
#define APPROACHWAYPOINTSPEED 0.15 //m/s
#define FLOATSPEED 0.15 //m/s
#define SONARSPEED 0.10 //m/s
#define DOCKANGULARSPEED 0.1 //rad/s
#define OBSTACLEAVOIDANCESPEED 0.15 //m/s
#define GOHOMESPEED 0.59 //m/s
#define MINSPEED 0.07 //m/s
#define MAXSPEED 0.60 //m/s
////////////////////////////////////////////////////////////
// ------- Bluetooth4.0/BLE module -----------------------------------
// see Wiki on how to install the BLE module and configure the jumpers:
//
https://wiki.ardumower.de/index.php?title=Ardumower_Sunray#Bluetooth_BLE_UART_module
//#define ENABLE_PASS 1 // comment out to disable password authentication
#define PASS 123456 // choose password for WiFi/BLE communication (NOTE: has to match the connection password in the App!)
-------------------------------------------------------------------
Damit das greift sind aber noch andere Dinge notwendig:
in
motor.cpp function setLinearAngularSpeed:
void
Motor::setLinearAngularSpeed(float linear, float angular, bool useLinearRamp){
setLinearAngularSpeedTimeout = millis() + 1000;
setLinearAngularSpeedTimeoutActive = true;
if ((activateLinearSpeedRamp) && (useLinearRamp)) {
linearSpeedSet = 0.9 * linearSpeedSet + 0.1 * linear;
} else
{
if (linear >0){
linear = max(linear,MINSPEED); //If positive linear is less than MINSPEED, use MINSPEED as limit
linear = min(linear,MAXSPEED); //If positive linear is more than MAXSPEED, use MAXSPEED as limit
}
if (linear <0){
linear = min(linear,-1*MINSPEED); //If negative linear is more than -MINSPEED, use -MINSPEED as limit
linear = max(linear,-1*MAXSPEED); //If negative linear is less than -MAXSPEED, use -MAXSPEED as limit
}
linearSpeedSet = linear*pwmSpeedOffset;
}
angularSpeedSet = angular;
---------------------------------
Im Prinzip braucht man das aber nicht, wenn durch andere Funktionen nicht seltsame Werte herreinrauschen.
Trotzdem relativ hilfreich. Mit aktivierter Speedramp greift der Code in dieser Ausführung nicht.
Dazu sei aber gesagt, dass man am besten die Reglerparamter vom Stanley in diesen MIN und MAX Geschwindigkeiten
optimieren sollte, damit das gut funktioniert. Also wenn wer Zeit hat seinen Mower einfach mit fixer MIN und/oder MAX Geschwindigkeit durch den Garten jagt um die Parameter für k und p auszuprobieren und die Bahntreue zu dokumentieren....