Ardumower Software "Sunray"

Prima, das macht die Versionsverwaltung sicher einfacher. Vielleicht hast Du ja auch eine Solution für VS ;-)
 
https://github.com/Ardumower/Sunray
Wenn Du mir deinen Github-User gibst kann ich Dir Schreibrechte geben...
 
Hi Alexander,

danke für die Github Einladung, aber ich denke das ist viel zu früh. Mir fehlt da noch viel Wissen was den Code anbelangt.

Grüße
Rajiva
 
Hi Alexander,

gibt es schon Fortschritte an der Dokumentationsfront? Wäre wirklich hilfreich wenn der Code ein wenig mehr Dokumentation bekommen würde. ;-)

Grüße
Rajiva
 
Das soll noch kommen, schließlich soll Sunray ja mal der Nachfolger von Azurit werden. Bis dahin werden aber noch viele Umbauarbeiten stattfinden müssen damit dieselbe Funktionalität vorhanden ist...
 
nero76 schrieb:
Das soll noch kommen, schließlich soll Sunray ja mal der Nachfolger von Azurit werden. Bis dahin werden aber noch viele Umbauarbeiten stattfinden müssen damit dieselbe Funktionalität vorhanden ist...
ohne Dokumentation keine Beteiligung Alexander, und ohne Beteiligung muss man alles selber machen, was dauert und jede Menge Support abverlangt. Vielleicht mal drüber nachdenken, auch wenn der kommerzielle Aspekt im Vordergrund steht. ;-)
 
Zuletzt bearbeitet von einem Moderator:
Ja, ist alles nicht so einfach, zumal das Code nicht das macht was er soll. Ich möchte nur anmerken dass z.B. die Lokalisierung überhaupt nicht gut funktioniert (Particle Filter) und dass es dort einen neuen Ansatz braucht, z.B. über Korrelation der Fahr (Kompass)-Daten mit der Karte (http://wiki.ardumower.de/index.php?title=Sensor_fusion). Es werden vermutl. 70% des gesamten Codes wieder verworfen weil es nicht so läuft wie erwartet, neue Ideen her müssen, neue Ansätze müssen gefunden werden.
Am Reißbrett geht sowas ganz schlecht (Grau ist alle Theorie) - das beste ist man probiert es in der Praxis aus, dann bekommt man ein Gefühl dafür. Dokumentation kommt wenn es funktioniert. Einige wenige Teile (Motorsteuerung z.b.) gehen gut, die werde ich noch dokumentieren.
 
Genau das meine ich, wenn Du die Leute nicht mit ins Boot holst wirst Du weiter Dinge vorstellen die zwar toll sind, aber wo keiner was mit anfangen kann. Es ist schön zu sehen was Du alles ausprobierst, aber mehr wie "warten wir mal ab was da kommt wenn es fertig ist" wirst Du dabei nicht ernten.

Just my two Cents ;-)

Grüße
Rajiva
 
Mal was anderes: würdest Du auch einen Particle Filter einsetzen um die Position (auf Schleife und innerhalb) zu schätzen? Als Einführung in das Thema Particle Filter habe ich diesen Kurs durchgearbeitet und den dort schrittweise gebauten Code ziemlich genau nachgebaut: https://www.udacity.com/course/artificial-intelligence-for-robotics--cs373 (man kann sich dort anmelden und dann die ganzen Grundlagen bis zum Particle Filter erlernen). Danach versteht man die ganzen Ideen hinter Sunray besser (diese ganzen Grundlagen kann man im Code schlecht erklären).
 
Hallo Alexander,

nero76 schrieb:
würdest Du auch einen Particle Filter einsetzen um die Position (auf Schleife und innerhalb) zu schätzen?
mein Konzept sieht keine Perimeterschleife vor. ;-)
Ich bin noch fest davon überzeugt dass ich das nur mit Kamera, GNSS und den anderen Sensoren hinkriege. Meine Hardware erlaubt zwar den Anschluss von Perimetersensoren aber solange mein geplantes Konzept nicht scheitert mache ich mir über diese Sensoren keine Gedanken.

Grüße
Rajiva
 
Zuletzt bearbeitet von einem Moderator:
Ist dein Konzept universell oder nur für deine spezielle Umgebung? Angenommen ich habe zwei, drei Blumen auf dem Rasen um die der Roboter immer einen Bogen machen soll. Oder eine zweite Rasenfläche (Nachbar's Garten ohne Zaun etc.) wo er auf keinen Fall drauf fahren soll (erschwerend kommt hinzu dass der Nachbar im Grenzbereich ein paar Rosen stehen hat die auf keinen Fall abgemäht werden dürfen). Würde dein Konzept da wohl funktionieren? ;-) (Ich übertreibe etwas aber ich denke Du verstehst was ich meine). Oder geht Dein Konzept da nur auf 2 Meter Genauigkeit? Dein Konzept hört sich jedenfalls schon mal spannend an :)
 
Hallo Alexander,

nero76 schrieb:
Ist dein Konzept universell oder nur für deine spezielle Umgebung?
erst mal ist es ein Konzept und keine fertige Lösung. Da ich keine kommerziellen Ziele verfolge ist die universelle Einsatzfähigkeit für mich zweitrangig. Die Zukunft wird zeigen was geht und was nicht, zur Not habe ich ja noch mein Kabelgebundenes Schaf. ;-)

Würde dein Konzept da wohl funktionieren?
Ich hoffe ja und er soll auch nicht in den Pool fallen. :-D

Ich übertreibe etwas aber ich denke Du verstehst was ich meine
Ja ich denke ich kenne Deine Ziele und auch den Wunsch wie so etwas realisiert sein sollte. Diesen Anspruch habe ich nicht zumal Geld eine Rolle spielt und ich keine Notwendigkeit sehe alle Eventualitäten gleich mit einzuplanen. Ich glaube, oder hoffe, dass die richtige Kombination an Sensoren und die einfache Erweiterbarkeit zum Ziel führt. Es geht sehr langsam vorwärts aber die Elektronik ist quasi fertig gestellt und die I2C Booloader der Minis funktionieren wie gewünscht. Softwareupdate zur Laufzeit per I2C ganz ohne USB Gedöns. B)

Stromversorgung mit Lademimick und Unterspannungsabschaltung:
ArduPI_Power_2017-03-27.jpg


Zentraleinheit inkl. Notstromversorgung für den Raspi und Motoransteuerung.
ArduPI_Main.jpg


Grüße
Rajiva
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/2643/ArduPI_Power_2017-03-27.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Die Hardware sieht gut aus - beim Motortreiber muss man bei 24V aufpassen mit Gegeninduktion (Stichwort: Ardumower Protector PCB), mir sind schon etliche abgeraucht ohne). Vielleicht könnest Du schon mal ein bisschen über dein Konzept mit Kamera und GNSS "brainstormen", wie genau denkst Du beide zu kombinieren - GNSS zur groben Orientierung und Kamera für die letzten cm oder sogar Wiedererkennung von Positionen? oder nur zur Hindernisserkennung...
 
nero76 schrieb:
Vielleicht könnest Du schon mal ein bisschen über dein Konzept mit Kamera und GNSS "brainstormen", wie genau denkst Du beide zu kombinieren
...
Und deine Kamera-Idee bleibt also ein Geheimnis?

eins nach dem anderen Alexander. Erst mal muss der Mäher auf den Rasen und ordentlich Bahnen ziehen, dann kümmere ich mich um die Navigation. Wenn ich 1000 Dinge gleichzeitig mache habe ich zwar viele schöne Baustellen, aber nix wird richtig fertig. Wenn die Grundsätzlichen Dinge laufen wird das sicher nochmal Thema werden. ;-)

Grüße
Rajiva
 
Du könntest Vorschläge machen was wir noch ausprobieren sollen (welche Software z.B.). Thema (robuste) Lokalisierung ist ein wichtiger Punkt wenn der Roboter autonom und ohne Schleife fahren soll. Ich bin mir sicher es gibt bereits geeignete Lösungen für das "Rasenmäher-Problem" - unter den 1000 möglichen die richtige zu finden ist das Problem...
 
nero76 schrieb:
Du könntest Vorschläge machen..
ich fände es Toll wenn die Dokumentation der existierenden Software auf einen Stand gebracht werden würde wo es nicht ganz so mühsam ist einzusteigen.
 
Zuletzt bearbeitet von einem Moderator:
Da mich schon immer interessiert hat wie andere Rasenroboter ganz ohne Drucksensor oder Bumper ein Steckenbleiben, Anheben oder sogar Hindernisse erkennen, hier eine Idee und ein Prototyp wie es funktionieren könnte: mit Odometrie und IMU werden jeweils die Winkeländerung des Roboters gemessen und dann beide Werte verglichen.

Code:
float distLeft = ((float)ticksLeft) / ((float)ticksPerCm) ; // gefahrene cm links
float distRight = ((float)ticksRight) / ((float)ticksPerCm);    // gefahrene cm rechts
angleRadCurrDeltaOdometry = -(distLeft - distRight) / wheelBaseCm;  // Winkeländerung über Odometrie
angleRadCurrDeltaIMU = IMU.getYaw() - angleRadCurr;    // Winkeländerung über IMU
angleRadCurr = IMU.getYaw();


Beide Winkeländerungen sind im Normalbetrieb ungefähr gleich - Sollte der Roboter jedoch stecken bleiben oder wird er angehoben so sind sie unterschiedlich. Hier ein Beispielvideo wie es funktioniert. Differenz Winkeländerung Odometrie (Kurve grün) zu Winkeländerung IMU (Kurve Blau) unten rechts. Test war ohne Motorregelung (manuelle Steuerung) - mit Motorregelung funktioniert es sogar noch besser, da der Motor über den Gyro kompensieren will und dann beide noch stärker auseinanderdriften bei Anheben/Feststecken: https://www.youtube.com/watch?v=gFpFSgtjBzc&feature=youtu.be
Es gibt also 2 Fälle die man berücksichtigen muss um zu erkennen ob der Roboter (z.B. bei einer Geradeausfahrt-Regelung) das macht was er soll:
1. Reibung beider Räder bleibt gleich: Motorstrom geht hoch
2. Reibung eines Rades geht auf Null: Odometrie liefert etwas anderes als Gyro
 
Oben