Mähmotor Spin-up time anpassen

Maigold

Member
Hallo zusammen, ich habe mir den aktuellen Stand aus dem GIT geholt und soweit läuft mein Shaun.
2 Dinge würde ich gern noch verbessern, finde aber keine Hinweise in der robot noch motor Datei dazu.
1. Der Mähmotor dreht seit dem neuen Release sehr langsam hoch und braucht ca. 5 Sek. bis zur Enddrehzahl, was bei jedem Hindernis unnötig Zeit kostet. Wo kann man das anpassen?
2. Ich hatte in der .276 Anpassungen von MrTree gemacht, die den Mower grundsätzlich agiler in den Bewegungen, Drehungen und Anlaufzeiten gemacht hat. Zwingend die Drehgeschwindigkeiten rad/s würde ich gern optimieren - wo kann man das manuell anpassen?
Lieben Dank für jegliche Hinweise!
Happy Mowing!
 
Hallo zusammen, ich habe mir den aktuellen Stand aus dem GIT geholt und soweit läuft mein Shaun.
2 Dinge würde ich gern noch verbessern, finde aber keine Hinweise in der robot noch motor Datei dazu.
1. Der Mähmotor dreht seit dem neuen Release sehr langsam hoch und braucht ca. 5 Sek. bis zur Enddrehzahl, was bei jedem Hindernis unnötig Zeit kostet. Wo kann man das anpassen?
2. Ich hatte in der .276 Anpassungen von MrTree gemacht, die den Mower grundsätzlich agiler in den Bewegungen, Drehungen und Anlaufzeiten gemacht hat. Zwingend die Drehgeschwindigkeiten rad/s würde ich gern optimieren - wo kann man das manuell anpassen?
Lieben Dank für jegliche Hinweise!
Happy Mowing!
1: It's better to deactivate the stop and restart of motor on obstacle detection (see github on pullrequest)
For the mowing start delay
Mow Motor accel :it's a low filter to 1 percent -> Into motor.cpp: / void Motor::control(){
Change line :
Code:
 //########################  Calculate PWM for mowing motor ############################
   //motorMowPWMCurr = 0.99 * motorMowPWMCurr + 0.01 * motorMowPWMSet;
  //motorMowPWMCurr = 0.90 * motorMowPWMCurr + 0.10 * motorMowPWMSet;
  motorMowPWMCurr = 0.70 * motorMowPWMCurr + 0.30 * motorMowPWMSet;

  //########################  set PWM for all motors ############################
The example show a 10 or 30 % , so adjust as you want with always a total =1 .

Now the pause before first movement is into linetracker.cpp :
Code:
if (mow)  {  // wait until mowing motor is running
    if (millis() < motor.motorMowSpinUpTime + 10000){
      if (!buzzer.isPlaying()) buzzer.sound(SND_WARNING, true);
      linear = 0;
      angular = 0;   
    }
  }
Replace the 10000 by the value you want in millis before the mower start again to move.
 
Thanks a lot @Bernhard - currently hammering this into my code.
While I am on the console, any idea on how to increase the angular value for rotation of the mower?
 
While I am on the console, any idea on how to increase the angular value for rotation of the mower?
Assuming you want to increase the angular speed ?
into linetracker.cpp
Search for "angular ="
Add a coeff in front of the one you want to increase (i use 1.5 or 1.2 in my robomow without any issue) but adjust according your platform.
Here :
Code:
if (!angleToTargetFits){
    // angular control (if angle to far away, rotate to next waypoint)
    linear = 0;
    angular = 1.5 * 29.0 / 180.0 * PI; //  29 degree/s (0.5 rad/s);               
    if ((!rotateLeft) && (!rotateRight)){ // decide for one rotation direction (and keep it)
Here:
Code:
if (trackerDiffDelta_positive != (trackerDiffDelta >= 0)) {
      CONSOLE.println("reset left / right rotation - DiffDelta overflow");
      rotateLeft = false;
      rotateRight = false;
      // reverse rotation (*-1) - slowly rotate back
      angular = 1.2 * 10.0 / 180.0 * PI * -1; //  10 degree/s (0.19 rad/s);               
    }
 
Thanks a tonne - will test it out first thing tomorrow. Your response for my first topic already works great!

best,
Maigold
 
Oben