Fragen zur Ardumower-GPS-App und zum Mähverhalten

heute hab ich das erste Mal eine größere Fläche eingelernt. Hat auch ganz gut geklappt.
Dabei ist mir aufgefallen, dass man die Karte, wenn man die etwas größer gezoomt hat um den Rover an den Engstellen besser kontrollieren zu können, immer mitschieben muss. Gibt es bereits eine Einstellung, dass die App den Rover immer in der Mitte der Karte anzeigt und er nicht aus dem Kartenbereich in der App herausfährt?
 
Danke für die Info. Diesmal wollte ich vorher fragen, bevor ich einen Vorschlag mache und dann erklärt bekomme, dass es das schon gibt :)
 
Nein.
Bekommt er kein Korrektursignal von der Base ist das sofort "invalid" und der Mäher bleibt, sofern in der config.h eingestellt, stehen.
Float scheint halt nicht so genau wie ein Fix zu sein aber auch mit Float bekommt er das Korrektursignal von der Base und hat selber auch Sat-Empfang.

Fix bedeutet einfach nur sehr guten Empfang und Genauigkeit

ja, und zwar sofort.

Der GPS Empfang ist von sehr vielen Faktoren abhängig. Atmosphäre, Wetter, Luftfeuchtigkeit, Sonneneinstahlung ... du wirst Tage haben da läuft alles glatt und es wird Tage geben da steht er sich mit Float die Beine in den Bauch.
Weiteres Problem sind momentan noch die GPS Jumps aber da soll es von UBlox ja bald eine Lösung für langsam fahrende Rover geben.
Du musst die für dich optimale Filtereinstellung finden.
In der ublox.ccp kannst du etwas mit den Filtern "spielen":

Code:
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100a4 , 10 ); // CFG-NAVSPG-INFIL_MINELEV (10 Min SV Höhengrad)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100aa , 10 ); // CFG-NAVSPG-INFIL_NCNOTHRS (10 C/N0 Schwellenwert #SVs)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100ab , 30 ); // CFG-NAVSPG-INFIL_CNOTHRS (30 dbHz)
        } sonst {
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100a4 , 10 ); // CFG-NAVSPG-INFIL_MINELEV (10 Min SV Höhengrad)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100aa , 0 );  // CFG-NAVSPG-INFIL_NCNOTHRS (0 C/N0 Schwellenwert #SVs)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100ab , 0 );  // CFG-NAVSPG-INFIL_CNOTHRS (0 dbHz)

Ich fahre z.Z halbwegs gut mit folgenden Einstellungen:
Code:
          setValueSuccess &= configGPS.addCfgValset8(0x201100a4, 15); // CFG-NAVSPG-INFIL_MINELEV  (10 Min SV elevation degree)
          setValueSuccess &= configGPS.addCfgValset8(0x201100aa, 6); // CFG-NAVSPG-INFIL_NCNOTHRS (10 C/N0 Threshold #SVs)
          setValueSuccess &= configGPS.addCfgValset8(0x201100ab, 12); // CFG-NAVSPG-INFIL_CNOTHRS  (30 dbHz)
aber das wird bei jedem anders sein, da musst du halt etwas probieren.
Hi Kemi,
kannst Du mir das bitte etwas genauer erklären?
In ublox habe ich ja nur die Base eingestellt. Der Rover wird von Sunray konfiguriert.
Wo werden die Filter verändert? Die Base hat ja kein Problem Satelliten zu finden. Also nehme ich an, dass ich das GPS im Rover ändern muss.
Wie geht das dann, wenn doch eig. Sunray die Einstellungen macht?
 
Hi Kemi,
kannst Du mir das bitte etwas genauer erklären?
In ublox habe ich ja nur die Base eingestellt. Der Rover wird von Sunray konfiguriert.
Richtig. Allerdings kannst du Sunray ja sagen wie er den Rover konfigurieren soll.
Wo werden die Filter verändert? Die Base hat ja kein Problem Satelliten zu finden. Also nehme ich an, dass ich das GPS im Rover ändern muss.
Wie oben schon geschrieben kannst du in der ublox.ccp die Filtereinstellungen, die Sunray an den Rover übermittelt, ändern.
Es gibt 2 Einträge in der ublox.ccp.
Scharfe Filter:
Code:
setValueSuccess &= configGPS. addCfgValset8 ( 0x201100a4 , 10 ); // CFG-NAVSPG-INFIL_MINELEV (10 Min SV Höhengrad)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100aa , 10 ); // CFG-NAVSPG-INFIL_NCNOTHRS (10 C/N0 Schwellenwert #SVs)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100ab , 30 ); // CFG-NAVSPG-INFIL_CNOTHRS (30 dbHz)
        }
Lockerer Filter:
Code:
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100a4 , 10 ); // CFG-NAVSPG-INFIL_MINELEV (10 Min SV Höhengrad)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100aa , 0 );  // CFG-NAVSPG-INFIL_NCNOTHRS (0 C/N0 Schwellenwert #SVs)
          setValueSuccess &= configGPS. addCfgValset8 ( 0x201100ab , 0 );  // CFG-NAVSPG-INFIL_CNOTHRS (0 dbHz)
Welcher der beiden Filter verwendet wird legst du in der config.h fest:

Code:
#define GPS_CONFIG_FILTER   true     // use signal strength filter? (recommended to get rid of 'FIX jumps')
// #define GPS_CONFIG_FILTER   false     // use this if you have difficulties to get a FIX solution

Du hast also nur die Auswahl zwischen strengem und lockerem Filter.
Falls du mit strengem Filter so gut wie keinen FIX bekommst und mit dem lockeren Filter zwar einen FIX, aber der Mäher etwas zu ungenau fährt musst du die Filterwerte in der ublox.ccp anpassen.
Ich z.B. fahre momentan sehr gut mit folgenden Werten in der ublox.ccp :

Code:
          setValueSuccess &= configGPS.addCfgValset8(0x201100a4, 15); // CFG-NAVSPG-INFIL_MINELEV  (10 Min SV elevation degree)
          setValueSuccess &= configGPS.addCfgValset8(0x201100aa, 6); // CFG-NAVSPG-INFIL_NCNOTHRS (10 C/N0 Threshold #SVs)
          setValueSuccess &= configGPS.addCfgValset8(0x201100ab, 12); // CFG-NAVSPG-INFIL_CNOTHRS  (30 dbHz)
Da muss jeder für sich die optimalen Werte finden.
 
Hi Kermi, danke für die Info.
Noch ne blöde Frage dazu.
In Sunray kann ich nur zwischen locker und streng wählen.
Die ublox.ccp ist nicht in der Sunray-Firmware (da gibts viele Tabs. ublox.ccp ist nicht dabei) integriert, oder?
Also ändere ich die Filtereinstellungen über u-center direkt im GPS des Rovers?
 
OK, gefunden.
Und die öffne ich mit der Arduino Software? Dann ändere ich die damit und dann?
Wie bekommt Sunray dann die geänderten Einstellungen mit?
Steht das irgendwo was man da genau machen muss? ich hab keine Infos gefunden.
Ich hab nur die Infos gefunden, dass man die Einstellungen vom Hartmut oder vom Alex probieren soll. Aber wie steht da nicht.
Ich glaub ich bin echt zu doof dafür . :confused:
 
OK, gefunden.
Und die öffne ich mit der Arduino Software? Dann ändere ich die damit und dann?
Ja. Kannst du auch mit einem einfachen Editor ändern.
Die Einstellungen, die da stehen, werden an den Empfänger übermittelt.
Der obere Eintrage sind die "scharfen" Filter = config.h -> # GPS_CONFIG_FILTER definieren true // Signalstärkefilter verwenden? (empfohlen, um 'FIX-Sprünge' loszuwerden)
Der untere Eintrag sind die "lockeren" Filter = config.h -> #define GPS_CONFIG_FILTER false // Verwenden Sie dies, wenn Sie Schwierigkeiten haben, eine FIX-Lösung zu erhalten

Am einfachsten, ändere einfach den oberen Eintrag und lass in der config.h alles so wie es ist - also # GPS_CONFIG_FILTER definieren true // Signalstärkefilter verwenden? (empfohlen, um 'FIX-Sprünge' loszuwerden)
Wie bekommt Sunray dann die geänderten Einstellungen mit?
config.h
Steht das irgendwo was man da genau machen muss? ich hab keine Infos gefunden.
nein, probieren und mit den Werten spielen.
Die Auswirkungen der einzelnen Werte kannst du googlen.
Ich hab nur die Infos gefunden, dass man die Einstellungen vom Hartmut oder vom Alex probieren soll. Aber wie steht da nicht.
Ich glaub ich bin echt zu doof dafür . :confused:
nicht doch ...

Es gibt keine Blaupause dafür, du musst wirklich etwas probieren wobei die Werte, die Alexander da genommen hat schon allgemein recht passend sind.


Hast du denn eigentlich nur mal die beiden Standardvarianten (scharfe Filter & lockere Filter) probiert?
 
Super, danke nochmal. D.h. Wenn ich die Sunray-Firmware mit der Arduino-App öffne und dann auf den Rover hochlade, holt er sich aus dem Verzeichnis alle notwendigen zusätzlichen Daten? Ich hab immer angenommen, dass das alles dann in den Tabs oben (wo auch die Config.h drin steht) zusammengefasst wird.
Dann werd ich das mal probieren.
 
Hallo wieder mal,

was machen die drei einzelnen Filter-Einstellungen eigentlich? Ich hab jetzt mal den "lockeren" Filter probiert und bekomme an meinen kritischen Stellen immer noch keinen Fix. Ich müsste nun wirklich mit dem Ausprobieren anfangen, das macht aber ja rein nach dem Zufallsprinzip keinen Sinn. Ich würde schon gerne gezielt die Einstellungen verändern.

Falls diese Stellen sich nicht mit GPS-Fix anfahren lassen, muss ich da trotzdem immer noch von Hand mähen. Ist kein großer Bereich, is aber halt trotzdem doof.
Kann der Rover GPS und Schleife kombinieren? Der Bereich wäre nämlich mit einer Schleife mähbar. Der Bereich, der mit der Schleife nicht ging (weshalb ich ja den Ardumower gekauft hab) lässt sich problemlos mit GPS mähen.
Perfekt wäre es nun, wenn man dem Rover sagen könnte, in dem Bereich bitte nach GPS mähen und dem bitte einfach nach Schleife.
 
ja, es gibt Stellen da bekommt man einen FIX recht schwierig.
Du kannst den Mover auch ohne FIX fahren lassen, stelle einfach in der App die Timeout-Zeit etwas hoch oder Schieberegler komplett nach links, ist dann gar kein Timeout mehr.
FLOAT muss nicht zwangsweise bedeuten das er extrem ungenau ist.
Wie lange braucht der Mover für dieses Teilstück?
Und bedenke, es gibt Tage, da bekommt man an manchen Stellen sehr schlecht oder gar keinen FIX, an anderen Tagen geht es wunderbar.
 
Aber kann es dann nicht sein das er den Mähbereich verlässt? Mit Float hat er ja nur eigenes GPS Signal.
 
nein, auch mit FLOAT hat er das Korrektursignal. Das Korrektursignal ist bei FLOAT auch nicht das Problem sondern das Signal des Rovers selber.
Und auch mit einem FIX kann es passieren das er mal den Mähbereich verlässt. Da kommt ein GPS Jump und schon ist der Mäher 50cm versetzt. Der Rover selber denkt natürlich noch das er noch in Mähbereich ist.

Wenn das GPS 100% wäre bräuchten wir kein Sonar/Bumper.
 
Und genau aus dem Grund wäre es super, wenn zumindest an kritischen Stellen eine Begrenzungsschleife dem Rover, im wahrsten Sinne des Wortes, Grenzen setzen würde. Bei mir muss er am Haus recht genau an einer Mähkante entlang fahren. Aber genau dort so nah am Haus hat er mit der Genauigkeit eben ein Problem.
Wenn er da den Mähbereich nur ein paar Zentimeter verlässt, versucht er eine kleine Betonbegrenzung hinauf zu fahren. Und das in sehr spitzem Winkel. Da hilft kein Bumper und kein Sonar. Hier besteht einfach die Gefahr, dass er dabei beschädigt wird.
Das Sonar hab ich gerade ausgeschaltet. Er muss an ein paar Stellen einfach recht nah an Büschen und Sträuchern vorbei fahren und da reichen schon ein paar Halme recht dicht vor ihm und er biegt ab.

Mein Bereich, in dem ich fast nie ein Fix bekomme ist etwa 20m² groß. Haus und Garage stehen recht nahe beieinander. Aber auch dort wird eine gute Genauigkeit gebraucht, weil auch hier am Haus entlang eine Betonbegrenzung steht. Leider fährt er dort mit Float echt chaotisch. Er weiß dann gar nicht mehr, wie er zu dem nächsten Wegpunkt fahren muss.
Die App zeigt zwar an, dass er immer noch sehr genau fahren würde, er steht aber einfach mal nen Meter an einer anderen Position als in der App angezeigt, oder anders ausgedrückt, die App zeigt eine ganz andere, definitiv falsche, Position an, die aber angeblich sehr genau.

Ich hab den ganzen Bereich jetzt erstmal ausgenommen.
Die beiden Filtereinstellungen "streng" und "locker" sind das die beiden Extremwerte? Kermi: Du hast einen Wert davon sogar noch höher gesetzt als in der strengen Einstellung. Kann mir jemand sagen, was ich mit diesen drei Filter-Einstellmöglichkeiten bewirke?
Gibt es überhaupt eine Chance, wenn auch der lockere Filter nicht funktioniert?
 
So ein Problem habe ich auch. In diesen "Häuserschluchten" hast du sehr viele Reflektionen und natürlich auch weniger sichtbare Satelliten, dadurch wird er dann verwirrt und ungenau. Weniger sichtbare Satelliten wäre nicht das Problem, schlimm sind die Reflektionen.
Dafür gibt es momentan keine Lösung. Etwas Abhilfe schafft die Grundplatte unter der GPS Antennen. Das sollte am besten auch eine massiver Platte mit 3mm Stärke sein, zumindest laut UBlox. Ich habe solche Platte drunter und trotzdem in der Hausschlucht so meine Probleme.
Mit meinen Filtereinstellungen habe ich einen halbwegs brauchbaren Kompromiss gefunden. Allerdings kommt es dadurch auch des Öfteren vor das er mit FLOAT teilweise über eine Stunde und länger in der Häuserschlucht steht und auf FIX wartet. Manchmal muss ich ihn dann auch 2 Meter weiter tragen damit es überhaupt weiter geht und manchmal steht er dort nur 15 min und dann geht es weiter. Der Timeout ist bei mir auf 20sek gestellt.

So unschön es auch ist, an manchen sehr schwierigen Stellen muss man das Gelände auch dem Mähroboter anpassen, also z.B. Barrieren anlegen die dann durch Sonar/Bumper registriert werden können.

Das Problem haben momentan noch alle Hersteller, deswegen gibt es ja keine RTK Mäher im Baumarkt. Mit fortschreitender Entwicklung von RTK wird dieses Problem sicher auch eines Tages gelöst werden.
Soweit ich weiß bringt UBlox z.B. dieses Jahr noch etwas raus was die GPS Sprünge filtert - und so wird es irgendwann bestimmt auch für die Signalreflektionen eine Lösung geben.
 
Leider fährt er dort mit Float echt chaotisch. Er weiß dann gar nicht mehr, wie er zu dem nächsten Wegpunkt fahren muss.
Das klingt danach als wenn die Odometrie nicht richtig passt. Hast du eine IMU verbaut?

Bei mri fährt er ziemlich genau mit Float; odometrie ist aber auch exact auf die Räder eingestellt und imu funktioniert (keine erkennbaren Störfelder).

Bei der Odometrieeinstellung kommt es auch ein wenig auf den Boden an. Hast du einen weichen Boden sinken die Räder mehr ein und die Strecke kann sich verändern
 
HI

Just for information I had to record a GPS signal a few weeks ago.
Without the metalic plate under the antenna the spectrum was flat on my spectrum analyser but the receiver was working with a small number of satellites.

With the metalic plate 10cmx10cmx1mm we can see the spikes near the L1 Band (1575.42MHz) and the number of satellite seen was much more with the melatic plate

So yes, using a metalic plate under the antenna helps a lot!

I use the same antenna as the one in the ardumover kit.


im.jpg
 
Das klingt danach als wenn die Odometrie nicht richtig passt. Hast du eine IMU verbaut?

Bei mri fährt er ziemlich genau mit Float; odometrie ist aber auch exact auf die Räder eingestellt und imu funktioniert (keine erkennbaren Störfelder).

Bei der Odometrieeinstellung kommt es auch ein wenig auf den Boden an. Hast du einen weichen Boden sinken die Räder mehr ein und die Strecke kann sich verändern
Ich denke, das Chaos rührt daher, dass er versucht, den Wegpunkt anzufahren, aber die GPS-Position immer etwas hin und her springt. Deswegen kann er den Punkt nicht anfahren und er dreht sich mehr oder weniger auf der Stelle. Wenn du in der App den Wegpunkt einfach skipst, sollte der Mower sich gerade auf den Weg machen und erst beim erreichen des nächsten Punkts wieder "leicht verwirrt" erscheinen.
 
Oben