Mein erster Zusammenbau - kleiner Probleme (PCB1.3 mit Sunray)

Nein, auch die Bumper sind optional. An einem Hindernis bleibt er stehen.
Eine Zeitsteuerung habe ich auch noch nicht entdeckt.
Ich denke, dass er im Stand-By komplett aus ist. Von allein läuft er nicht los.
Wie gesagt, die Sunray Firmware ist bestenfalls BETA.

Ich glaube Du kannst ein WLAN Modul einbauen und den Mower darüber steuern. Habe ich nicht ausprobiert, aber im Code und in der App scheint das drin zu sein. Da müsstest Du Alexander fragen. Es sieht EXPERIMENTELL aus.
 
Hallo Kermi,

momentan bleibt der Mäher bei Hindernis stehen. Hindernisumfahrung ist derzeit in Arbeit. Bumper wird in Sunray (noch) nicht unterstützt. Eine Zeitsteuerung gibt es auch noch nicht.
Aber Sunray ist ja derzeit eine absolute Testversion. Da kann man nicht erwarten, dass da schon alles funktioniert wie bei einem gekauften Mäher. Alexander programmiert die ganze Software im Alleingang, das dauert einfach, bis da alles eingebaut ist, was möglich ist.
 
Tja, eine große Betatester-Gemeinde kann Fluch und Segen gleichzeitig sein - die Erwartungen sind oft astronomisch und die Anzahl der gefundenen "Bugs" ebenso. ;) Je mehr Leute die FW testen, desto eher findet man auch versteckte Schwächen und Randprobleme.
 
ja, das ist mir klar. Da ich leider nicht programmieren kann bleibt mir nur die Unterstützung mit dem testen.
Hut ab vor Alexander, mein voller Respekt.
Und meine Fragen waren nicht als Drängelei gemeint.
Ich denke, es macht definitiv Spass, langsam zu sehen wie das kleine Kerlchen immer mehr kann.
 
Ich hatte es auch so verstanden, kermi. ;) Wir alle wussten, worauf wir uns mit der Sunray einlassen. Mir ging es darum mit einem Kauf die Entwicklung voranzutreiben und ich versuche hier im Forum öfter mitzulesen und den Einsteigern bei Problemen zu helfen. Es ist noch ein sehr langer und steiniger Weg bis zu einem "marktreifen" Produkt welches out-of-the-box funktioniert.
 
Heute erste große Ausfahrt gehabt :D.
Das Kabel der IMU habe ich noch auf 3 cm gekürzt. Mit der Odometrie habe ich so meine Probleme gehabt.
Motortest hast mir folgendes rausgehauen:
t=41 ticks Left=3480 Right=3461 current Left=0.00 Right=0.00
t=42 ticks Left=3480 Right=3470 current Left=0.00 Right=0.00
t=43 ticks Left=3480 Right=3478 current Left=0.00 Right=0.01
motor test done
E,0x45

Was ich wo eintragen soll habe ich nicht gefunden.
Ich habe mir dann einen Zollstock auf den Boden gelegt und bin ihn abgefahren.
Dann habe ich einfach in der config.h unter odometry folgenden Wert geändert: #define TICKS_PER_REVOLUTION 556 / 2 // odometry ticks per wheel revolution
Das habe ich dann so lange gemacht bis es mit der Angabe der App halbwegs gepasst hat.

Ist das soweit richtig?

dann habe ich ihn mal auf die Wiese geschmissen, Karte erstellt und ihn fahren lassen. Obwohl ich noch kein GPS dran habe ich er mehr oder weniger Sauber sein Quadrat abgefahren. War jetzt aber auch nicht sehr groß, 15m² oder so.

Wie kann ich die Odometrie genauer einstellen oder wird das später bei GPS/RTK nicht mehr benötigt?

Gruß
Stephan
 
Die Räder sollen genau 10 Umdrehungen beim Motortest machen. Wenn Du in der config.h z.B. "#define TICKS_PER_REVOLUTION 696 / 2" stehen hast, dann werden die Motoren 10*696\2=3480 Encoderimpulse gedreht. Das scheint ja bei dir so zu sein. Du musst aber selbst gucken, ob es 10 Umdrehungen waren. Der Roboter sieht nur Encoderimpulse. Hast Du das Ardumower Kit aus dem Shop?

Vielleicht kann Alexander das Prinzip auch Umdrehen, indem man das Rad manuell um genau eine Umdrehung dreht und an der Konsole die Encoderimpulse gezählt werden. Man müsste nur aufpassen, dass man nicht rückwärts dreht.

Die Odometrie ist noch immer sehr wichtig und muss genau eingestellt werden.
 
Zuletzt bearbeitet:
Ja, ich habe den Kit aus dem Shop.
Ich denke auch das die Odometrie extrem wichtig ist. Da kommt es wahrscheinlich auf Millimeter an wenn der Robi 200 m über das Grundstück fährt.
Dann werde ich mal mit der Zahl "#define TICKS_PER_REVOLUTION 696 / 2" noch etwas spielen solange bis es halbwegs mit der Angabe in der App übereinstimmt.
Im Wiki wird ja nur von einem Meter geschrieben, ich werde das mal auf 10 m testen und die Zahl dahin gehend ändern bis er punktgenau 10 m fahrt und mir in der App dann auch 10 m angezeigt werden.
 
Ja, ich habe den Kit aus dem Shop.
Ich denke auch das die Odometrie extrem wichtig ist. Da kommt es wahrscheinlich auf Millimeter an wenn der Robi 200 m über das Grundstück fährt.
Dann werde ich mal mit der Zahl "#define TICKS_PER_REVOLUTION 696 / 2" noch etwas spielen solange bis es halbwegs mit der Angabe in der App übereinstimmt.
Im Wiki wird ja nur von einem Meter geschrieben, ich werde das mal auf 10 m testen und die Zahl dahin gehend ändern bis er punktgenau 10 m fahrt und mir in der App dann auch 10 m angezeigt werden.

Hallo, Kermi

mit AT+E startest Du den Odemetrie Test inder seriellen Konsole. Ein Klebchen ans Rad und den Wert solange verändern bis es genau 10 Umdrehungen sind. Mover auf dem Tisch dabei aufbocken. Der aktuelle Wert wird immer angezeigt. Im Shop gibt es verschiedenste Motoren, jeder ist irgenwie anders.
LG Hartmut
 
Hallo Kermi,
m.E. soll der Rover in der Ladestation stehen.Dann hat ier mmer Strom und ist auch jederzeit Startbar. Ich habe alle Esp und Bloot. mit externen Antennen versehen. Mit Wlan kannst du den Mover von jeden Ort aus STARTEN wenn du Zugriff auf dein Heimnetzwerk hast. Auch kannst du auf dem Pc die Url der App eingeben und dich mit deinen Rover verbinden. Die Karten könnren mit Share hochgeladen und mit der Rover ID auf den Pc geladen werden.

Hartmut
 
So, der Arduino Due ist auch bespielt:
Ich bekomme auf der Console folgende Ausgabe:
Ardumower Sunray,1.0.66
enableCharging 0
trying to detect Bluetooth 4.0/BLE module (make sure your phone is NOT connected)9600...
AT
trying to detect Bluetooth 4.0/BLE module (make sure your phone is NOT connected)115200...
AT
AT+S,0x13
SERIAL_BUFFER_SIZE=128 (increase if you experience GPS checksum errors)
-----------------------------------------------------
NOTE: if you experience GPS checksum errors, try to increase UART FIFO size:
1. Arduino IDE->File->Preferences->Click on 'preferences.txt' at the bottom
2. Locate file 'packages/arduino/hardware/sam/xxxxx/cores/arduino/RingBuffer.h
change: #define SERIAL_BUFFER_SIZE 128 into into: #define SERIAL_BUFFER_SIZE 1024
-----------------------------------------------------
WIFI (ESP8266) not found!
MPU ID=0x0
MPU6050/9150/9250/9255 not found - Did you connect AD0 to 3.3v and choose it in config.h?
temp=998.0 humidity=998

Ist das soweit alles korrekt? Die MPU6050 steckt noch nicht, Jumper ebenso nicht.

Irgendwie kann ich keine Befehle über die Console senden. Ich tippe was in die Conosle ein, drücke auf senden und es passiert nichts. Woran kann das liegen?
Baud sind auf 115200 gestellt. Bei anderer Bauszahl bekomme ich nur komische Zeichen in der Consolenausgabe

Hallo Kermi

alle Befehle auf der Konsole gehen AT+.....

AT+V ist die Softwareversion, AT+E der Odemetrieeinstelltest.
Wenn du über die App Befehle eingibst wird der AT+... Code dir angezeigt. Alles GROß. Such mal ESP AT Befehle.
Hartmut
 
Vielen Dank für die Tips. Dann werde ich jetzt gleich mal die Odemetrie einstellen. Die 10 Umdrehungen beim Test ist der Goldtip, dann kann ich mir den Zollstock sparen.
WLan - Modul ist der nächste Schritt. Sobald ich http - Befehle an den Mover senden kann sollte ein zeitgesteuerter Mähplan mit Homematic ja kein Problem mehr sein. Da kann dann sogar das Wetter bzw. mit einfliessen. Ladestation muss ich auch noch bauen ... es gibt viel zu tun.
 
So , Odometrietest gemacht. Mit meinen Einstellung drehen sich die Räder genau 8 mal.
Merkwürdigerweise fahre ich damit auf dem Boden 1 Meter und in der App zeigt er mir dann unter E 1.00
In der Sunray Wiki steht das so unter Odometrie. Hmm, was ist jetzt richtig?
 
Beim Odometrietest sollen die Räder genau 10 Umdrehungen machen. Da Du in der config.h 556 statt 696 eingestellt hast, drehen sich die Räder bei dir aber nur 556 / 696 * 10 = 8 mal. Die Einstellung 696 müsste also für deine Motoren richtig sein. Das klingt jetzt so, als hätten deine Räder nicht den "Standarddurchmesser" von 250mm?? Aber ich hab bei meinem wirklich noch nicht geschaut, ob er genau einen Meter gefahren ist wenn das in der App angezeigt wird, da hast Du Recht. Vielleicht ist noch irgendwo der Wurm drin und Du hast es als Erster gemerkt. :)
 
So, ich habe jetzt noch einmal alles durchgetestet.
Den Wert habe ich noch auf 558 korrigiert, damit drehen die Räder auf den Punkt genau 8 mal.
Die Räder haben einen Durchmesser von 25cm, der Abstand von Rad zu Rad ist 36cm
Nach dem Motortest habe ich ihn dann mit den Einstellungen genau einen Meter fahren lassen und in der App wird mir auch genau ein Meter, also 1,00E, angezeigt.

Wenn ich in der config.h jetzt den Wert auf 696 ändere und dann auch genau einen Meter fahre wird mir in der App nur 0,70, also 0.70E, angezeigt.

Ich würde jetzt mal davon ausgehen das der Wert in der App entscheidend ist da ja auch in der App die Karte berechnet wird.
Ich werde das noch mal weiter testen und den Robi auch mal auf 10 Meter fahren lassen und schauen was er mir in der App anzeigt.
Dann werde ich mal eine Karte von 10m x 10m erstellen und schauen ob er diese Karte korrekt abfährt. Alles ohne GPS, es ist nur die IMU 6050 verbaut.
 
Tja, das ist schon irgendwie seltsam. Ich kann es gerade nicht erklären. Dein Metermaß ist aber ein solches, oder? :) Vielleicht hat Alexander ja noch eine Idee wie es zu dieser Abweichung kommt.

Die beiden Encoderausgänge an den Motoren hast Du aber nicht zusammengelegt, oder? Nur jeweils einen von beiden ans PCB angeschlossen? Und der in der App angezeigte Drehwinkel ist ziemlich genau 0° während Du die Strecke abfährst? Warum ist der Faktor gerade genau 0,7?..
 
Zuletzt bearbeitet:
:) , ja, ist ein nagelneuer Zollstock, sollte eigentlich passen.
Beide Encoderausgänge sind am PCB angeschlossen
Der Drehwinkel liegt beim Starten des Robis immer irgendwo zwischen -45 Grad und -30 Grad. Warum das so ist, keine Ahnung. IMU ist eigentlich richtig eingebaut und ich bekomme auch keine Fehlermeldung.
Ich drehe den Robi dann manuell bis 0 Grad angezeigt werden.
 
Also nochmal, Du hast von jedem der beiden Motoren nur jeweils _EINEN_ Encoderausgang (A oder B) ans PCB angeschlossen, richtig? Ein Pin bleibt bei jedem Motor frei.

Da diese IMU keinen Kompass hat ist die genaue Orientierung bei der Initialisierung erstmal unbekannt, ich glaube der Drehwinkel ist bei 0° festgelegt. Wenn Du mit geschlossenen Augen auf einem Stuhl sitzt und gedreht wirst ist dir deine absolute Orientierung auch erstmal unbekannt, bis dir jemand sagt, dass deine Nase gerade nach Norden zeigt. ;) Oder Du bist ein Vogel und kannst dich am Erdmagnetfeld orientieren....
 
Ja, habe von jedem Motor nur ein Encoderkabel angeschlossen. Mehr passt auch gar nicht auf das PCB. Ich habe jetzt in der config.h den Wert wieder auf 697 gesetzt. Damit machen die Räder genau 10 Umdrehungen. Merkwürdigerweise zeigt jetzt die App beim abfahren von einem Meter auch wieder 1.00 an.
Ich werde jetzt das ganze ein paar Mal testen, wenn die Anzeige in der App immer bei ca. einem Meter bleibt wäre ja alles schick. Mit der Drehung verstehe ich, ist ja eigentlich auch klar ohne Kompass.
 
Oben