obstacle avoidance / Hindernissumfahrung | sunray 1.0.97

@Hartmut Super, hat geklappt - ich bekomme tatsächlich ein "INVALID" angezeigt - werde das weiter untersuchen...
 
Zuletzt bearbeitet:
@Hartmut Das .ubx Log-File kann man auch mit u-center abspielen (ohne GPS-Empfänger) - Dort sieht man schön wie er ständig von Invalid auf Float auf Fix wechselt. Es ist also kein Sunray-Software-Bug sondern ein Problem am GPS-Empfänger. Die Frage ist ob wir so ein Invalid-Springen in der Sunray-Software akzeptieren sollen... (anscheinend müssen wir das - bei mir hat der GPS-Empfänger das noch nie gemacht)

Anhang anzeigen invalid_float_fix.mp4
 
Zuletzt bearbeitet:
Danke greymfm76
Entweder Softwarefehler oder einer der Transitoren.
Mit Duo und FW bis wir gewechselt haben ist das gleiche.
Nun mit FW Ublox 1.11 werden wieder Satelliten in der APP angezeigt. Bei invalid 0/30 float (im Schuppen) 12/18.
Der Invalid Fehler bleibt. Was tun?
 
Ich glaub nicht das das springen von Fix auf invalid und wieder auf Fix normal ist.
Bis gestern Morgen hatte ich bei freier Sicht 100% Fix und unter den Kiefern noch 80% fix und 20% float. Invalid 0%.
Wenn ich keinen Fehler finde oder durch mehrmaliges Löschen usw. den Fehler nicht weg bekomme muss es ein Hardwareproblem sein. Dann bleibt nur der Umtausch bei Markus. Erst versuche ich alle anderen möglichen Fehlerquellen auszuschließen. Ich berichte dann.
 
Hier hat er er heute auch kurz einen Wechsel von "invalid zu fix" gehabt als der Roboter unter der voll behängten Wäschespinne drunter vorbeifuhr. Zwar nur Sekunden aber es passiert. Wenn's bei wenigen Sekunden bleibt (und es auch eine erklärbare "Verschattung" des Himmels gibt wie bei der Wäschespinne) kann man mit Leben. Ich habe die Sunray-Firmware so abgändert dass die Stopps etwas "weicher" werden (config.h: USE_LINEAR_SPEED_RAMP=true)...
 
Zuletzt bearbeitet:
Der Invalid tritt alle 7,3003802281Sekunden unter freien Himmel auf. Teste nochmal ohne dicke Wolken. Denke das Ublox ist defekt. Große Kaka.
 
Habe gestern einen Akku leer gemacht. Die Hindernisumfahrung funktioniert einwandfrei. Bei mir gab es keinen Reset, er ist ganz normal zur Ladestation gefahren.
Muss nur noch die Einstellungen USE_LINEAR_SPEED_RAMP und TARGET_APPROACHING_DETECTION testen.

Invalid bekomme ich auch ab und zu, aber immer an der gleichen Stelle zwischen den Häusern. Das liegt bei mir definitiv an den örtlichen Gegebenheiten.
 
Ich habe ihn heute morgen rausgejagt, alles super. USE_LINEAR_SPEED_RAMP und TARGET_APPROACHING_DETECTION habe ich vorher noch eingeschaltete, sieht auch super aus. Echt elegant wie er jetzt fährt - schön weich und kaum noch so abgehackt.


Ein wenig problematisch war heute morgen der FIX, nach Verlassen der Ladestation war er etwas verwirrt. Da wäre vielleicht noch eine Funktion schön, wo der Rover aus der Ladestation kommt, egal welchen GPS - Empfang er hat und dann vor dem ersten Mähpunkt auf FIX wartet oder noch besser, 10min wartet bis der Empfang gut ist.
Vielleicht wäre auch generell ein Timer gut mit dem er bei FIX - Verlust 5 min wartet und dann wieder weiter fährt, auch wenn er weiterhin Float hat.
Die Einstellung "Fix Timeout" kann ich kaum nutzen da er sich an gewissen Positionen die Beine in den Bauch stehen würde. Also mit eingeschaltetem Fix Timeout würde er bis zum jüngsten Gericht dort stehen.
Vielleicht kann man ja auch auswählen, entweder die "Fix Timeout" Funktion nutzen oder eben die "Timer - Funktion", wo er, egal wie der GPS - Status ist, wieder weiter fährt.

Jaja, ich weiss, jetzt, wo der Mover schon echt sehr gut fährt kommen die ganzen Wünsche nach Funktionen ... duck und weg ...
 
TARGET_APPROACHING_DETECTION hat bei mir heute nicht funktioniert.
Er bleib im Beet stecken. GPS - Empfang ist heute wieder grauenhaft.
Vielleicht sind 30sek auch etwas viel
 
Fix Invalid Fix Problem gefunden.
Der Fehler wurde von DC Wandler verursacht durch Unterspannung. Nachgemessen 7.2V.
Die Stellschraube war mit Heißkleber gesichert.
Wieder 9V eingestellt und der periodische Invalidfehler war weg. Hatte wohl zu wenig Strom und die Spannung brach dann ein.
Danke Greymfm76 für deine Hilfe.
Lg Hartmut
 
Super! Diese mögliche Fehlerquelle hatte ich nicht im Auge und wir ergänzen sie mal schnell im Wiki (unter Troubelshooting)...
 
Zuletzt bearbeitet:
Was genau bewirken diese 3 Einstellunegn?

#define MOTOR_PID_KP 2.0
#define MOTOR_PID_KI 0.03
#define MOTOR_PID_KD 0.03

oder als DAU lieber so lassen und nicht damit rumspielen?
Wenn ich mir so das WIKI dazu anschauen ... nicht mit rumspielen ...
 
Auf jeden Fall so lassen ;) (schreibe ich noch dabei) - damit wird der Software-Geschwindigkeitsregler (PID) an den Motor angepasst.
 
Heute nach dem Regen den Kleine wieder rausgeschickt, alle neuen Funktionen testen.
Erst einmal muss ich sagen das er das erste Mal fast 3h ohne irgendeinen Eingriff komplett alleine gefahren ist. Super Sache.
Alle möglichen Hindernisse hat er selbst bewältigt wobei ich da bei mir noch einmal schauen muss, er erkennt auch Hindernisse auf freier Wiese, daher auch die hohe Anzahl. Da muss ich mit den Einstellungen noch etwas spielen.

asdf28.jpg

Nach etwas mehr als 3h blieb er mit IMU TimeOut stehen und ließ sich danach auch nicht mehr zur Arbeit überreden.
Die max. Temperatur zeigt auch einen vollkommenen Quatsch an, also irgendwas hängt sich da auf oder irgendwelcher Speicher läuft voll.
Ich musste den Mäher komplett ausschalten damit er es wieder tat,

Ich teste weiter ...
An der Spannung kann es theoretisch nicht liegen. Momentan noch 22,5V und er fährt wieder normal nach dem Reset.
 
Zuletzt bearbeitet:
Was genau bewirken diese 3 Einstellunegn?

#define MOTOR_PID_KP 2.0
#define MOTOR_PID_KI 0.03
#define MOTOR_PID_KD 0.03

oder als DAU lieber so lassen und nicht damit rumspielen?
Wenn ich mir so das WIKI dazu anschauen ... nicht mit rumspielen ...
Hi, Kermi!
This is the setting of the PID coefficients for the chassis motors controller. See https://en.wikipedia.org/wiki/PID_controller. In my case (pneumatic tires) close to optimal coefficients
// my version
motorLeftPID.Kp = 0.89;
motorLeftPID.Ki = 0.28;
motorLeftPID.Kd = 0.00;
IMG_0138.jpeg
 
Oben