Idee / schmale Passagen

ballrock2

New member
Bei mir im Garten wird es evtl. ein paar schmale Passagen geben, die ich gerne mit dem Mower mähen möchte. Die meisten kommerziellen Geräte brauchen über einen Meter Platz um dort zu mähen. Grund ist das ewige Zickzackfahren im festen Winkel.

Evtl. wäre es eine Idee, dass der Mower erkennt, wenn er nur einen sehr kurzen Weg bis zum Zaun zurückgelegt hat und dann seinen Winkel ändert, also deutlich weniger dreht beim Treffen auf den Zaun? Sobald er wieder eine längere Strecke (> 2 Meter?) gefahren ist, stellt er sich wieder auf die "normalen Winkel" zurück). In Sunray wäre es evtl. auch möglich, solche Engen zu erkennen in der Software und das Fahrverhalten direkt darauf anzupassen.

Sonnige Grüße
Andreas
 
Hallo Andreas,

in meiner eigenen Software habe ich dies folgendermaßen umgesetzt.

Wenn er den Mow State innerhalb von 6 Sekunden verlässt und dies 8x, schalte ich den Zufallsdrehwinkel kleiner:

Code:
if(shortWayCounter<SHORTWAYCOUNT) { // wurde SHORTWAYCOUNT mal ein kurzer weg gefahren, dann kleineren winkel wählen
                randNumber = myRandom(30, 150); // Welchen Winkel soll robbi drehen
            } else {
                randNumber = myRandom(30, 85); // Welchen Winkel soll robbi drehen wenn
            }


Erst wenn ich dann mindestens 10 Sekunden im Mow State bin setze ich shortWayCounter = 0;


Code:
void TbMow::EndState(EStateBH t)
{
    switch (t) {
        case STBH_MOW:
            if(GetTimeInCurState()<6000) {
                shortWayCounter++;
                if(shortWayCounter>SHORTWAYCOUNT) {
                    shortWayCounter=SHORTWAYCOUNT;
                }
            }

            if(GetTimeInCurState()>10000) {
                shortWayCounter=0;
            }

            break;


Die Werte muss mann dann je nach Bedarf anpassen.
 
Oben