Auf perimeter schleife einordnen

landrod

New member
Hallo
Ich habe ein Problem. Nach dem die Batterie fast leer ist will der Mower sich ja auf der Schleife einordnen und fährt dann zur Ladestation. Bei mir ist es so Schleife erreicht fängt er sich an im Kreis zu drehen. Wie kann ich das änder ich habe nichts in der App gefunden.
 
Wie ist denn die Position der Spule bei Dir? So wie im Wiki vorgegeben oder anders: http://wiki.ardumower.de/images/9/97/Ardumower_chassis_components.png
Wenn er über die Schleife fährt (Spule liegt dann also "außerhalb" der Schleife) muss er ja durch Drehen wieder mit der Spule nach "innerhalb" der Schleife kommen. Wenn das durch Drehen nicht klappt würde er nicht mehr aufhöhren mit dem Drehen.

Je weiter er drüber gefahren ist umso schlechter kann er die Spule durch Drehen wieder nach "innerhalb" bekommen. Die Fahrgeschwindigkeit zu reduzieren und die Positionierung der Spule nach weiter außen sollte helfen.
 
Die Spule befindet sich Vorne wie im Bild zu sehen.
IMG_4906_2017-05-27.JPG

Attachment: https://forum.ardumower.de/data/media/kunena/attachments/2420/IMG_4906_2017-05-27.JPG/
 
Zuletzt bearbeitet von einem Moderator:
Du könntest folgenden Test machen: In der ArduRemote-App unter "Plot->Perimeter" lässt Du Dir den Schleifen-Plot anzeigen. Hier werden die einzelnen Werte erklärt: http://wiki.ardumower.de/index.php?title=Perimeter_wire#Receiver_diagnostics.2Ftroubleshooting
Dann setzt Du den Roboter mit der Hand manuell an die Position wo Du meinst dass er die Schleife erkannt hat ("mag" sollte dort von negativ zu positiv wechslen bzw. "in" zu "out"). Jetzt drehst Du den Roboter mit der Hand (also ohne Motor) und schaust ob "mag" wieder von positiv zu negativ wechselt (bzw. "out" zu "in"). Wenn das nicht klappt stimmt etwas mit der Position der Spule nicht bzw. der Roboter fährt zu weit über die Schleife (dann die Geschwindigkeit verringern).
 
Was passiert eigentlich wenn Du den Roboter direkt auf die Schleife setzt und dann über die App "Commands->Track Perimeter" wählst?
 
Hi
Maybe In the code you can try this (the 2 last line not exist in 1.06)


Code:
// check perimeter while finding it
void Robot::checkPerimeterFind() {
  if (stateCurr == STATE_PERI_FIND) {
    if (perimeterInside) {
      // we just made an 'outside=>inside' rotation, now  we are very near the track
      if (motorLeftSpeedRpmSet != motorRightSpeedRpmSet) {
        setNextState(STATE_PERI_TRACK, 0);
        //bb      
        // lastTimeForgetWire = millis();
        // perimeterLastTransitionTime = millis();
      }
    } else {
      //bb
      // we are outside, now roll to get inside
      motorRightSpeedRpmSet = -motorSpeedMaxRpm / 3;
      motorLeftSpeedRpmSet  = motorSpeedMaxRpm / 2;
      if (stateCurr != STATE_PERI_TRACK) {
        setMotorPWM( motorSpeedMaxPwm / 2, -motorSpeedMaxPwm / 2, true);
      }

    }
  }
}


By
 
Oben