- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 86

Thema: RC-Auto ohne RC-Monstertruck autonom

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Klar kann das UBlox auch den aktuellen Kurs errechnen.
    Aber wie du schon sagtest: im Stand _überhaupt nicht_ (da ist nicht mal eine Info zu bekommen, in welche Richtung wir "schauen") und bei langsamer Fahrt klappt es auch erst nach etlichen Metern. Dann aber noch immer recht unbrauchbar: ohne weitere Tricks (ppp kann das Neo-6m ärgerlicherweise nicht) hat man eine maximale Genauigkeit von 2m. Bei einer Fahrstrecke von, sagen wir mal 10m kannst du dir leicht ausrechnen, wie "genau" da ein Kurs überhaupt berechnet werden kann: nahezu unbrauchbar.
    Durch den Kompass hab ich aber bereits vor dem Losfahren eine völlig ausreichende Orientierung- das Auto kann schon bevor es überhaupt fährt, in die richtige Richtung lenken (und das tut es auch, bzw. zeitglich mit dem losfahren)- und das stimmt dann auch.
    Zwar hat auch der HMC5883l ein bisschen Abweichung (er schwankt im Bereich von 3-5 Grad bisschen) aber das macht nix, das genügt völlig um nen Zielpunkt zu finden. Wäre noch besser möglich, wenn man das Ding weiter weg von der restlichen Elektrik montieren würde-aber aus optischen Gründen (da bin ich bissel starrköpfig, es muss gut aussehen) wollt ich auch den Kompass unbedingt unter der Karosserie haben- keine 20 cm weg von einem der Fahrmotoren also. Hab ihn aber ganz ordentlich kalibriert bekommen.

    Der Sollkurs dagegen wird natürlich aus den GPS-Daten (den aktuellen Positionsdaten und dem vorgegebenen Zielpunkt) errechnet, ebenso die Entfernung. Aber gesteuert wird der Kurs halt nach dem Kreisel, da das einfach besser funktioniert.
    Proportionales lenken hab ich weggelassen-dafür gibts keinen richtigen Grund, denn zum einen fährt so ein RC-Monstertruck sowieso nicht soo präzise (im Gelände erst recht nicht) gradeaus, und zum anderen ist es nicht nötig. Immer, wenn Soll-und IstKurs zu stark abweichen, wird mal ein Lenkeinschlag angeordnet, bis es wieder passt. Davon merkt man während der Fahrt kaum was.

    Aktuell versuche ich (da ich mit den US-Sensoren noch nicht weiter komme, muss ich mal Lust zum rumbasteln haben) das Fahrprogramm GPS2Home so zu erweitern, dass ich vordefinierte Routen von der SD-Karte einlesen kann, und die dann Wegpunkt für Wegpunkt abgefahren werden.
    Wenn ich das nämlich ausreichend genau schaffe, komm ich (im Prinzip...) ohne Hinderniserkennung aus: ich muss halt nur die Routen so legen, dass feste Hindernisse kurzerhand gleich umfahren werden. Unter Idealbedingungen (keiner parkt unangemeldet aufm Testgelände) sollte das klappen.
    Allerdings ist das Ganze ziemlich viel Aufwand, da die Routen (in unbekannter Anzahl, ich will später einfach neue mit ablegen können) jeweils in ner eigenen Datei liegen, mir aber die Namen der Dateien (8.3-Format) zu kurz sind, um ausreichende Infos zu haben, welche Route es nun genau ist.
    Von daher muss jede Datei einzeln geöffnet werden, die erste Zeile eingelesen (die enthält den richtigen Routennamen), aufs Display ausgegeben werden (damit ich dann die gewünschte Route wählen kann), und _wenn_ ich dann die richtige gefunden hab, muss die zeilenweise gelesen werden, um so einen Punkt nach dem anderen als "Ziel" zu haben. Ist das "Ziel" erreicht, werden einfach die nächsten Koordinaten geladen.
    Ich will nämlich keineswegs immer die gesamte Route in den Speicher laden-irgendwann würd der Platz nicht mehr reichen, und bei dem beschriebenen System können die Routen theoretisch beliebig viele Punkte enthalten.

    Das tolle ist, dass ich das Fahrprogramm GPS2Home, was ja schon gut funktioniert, für diesen Fahrmodus gleich mit benutzen kann. Es wird einfach nur immer, wenn ein Punkt erreicht ist, mit neuen Zielkoordinaten wieder gestartet.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    So- mit der SD-Karten-Geschichte komme ich recht gut voran (hatte die letzten Tage nicht viel Zeit)- einiges läuft bereits.
    Dabei kam mir eine Idee:

    Beim einschalten des Autos werden ja gewisse Dinge ausgewählt:
    -Fahrmodus (GPS2Home oder RoutenNavigation
    -falls ersteres, dann auch, ob ein neuer Startpunkt gesetzt werden soll,
    -falls RoutenNavi, welche der vorhandenen Routen ausgewählt werden soll.
    Nun kam mir die "bahnbrechende" Idee: was passiert, wenn der Mega mal abstützt oder aber der Akku leer ist, bevor die gestellte Aufgabe erledigt werden konnte?
    Im Prinzip: nix, nur wird sie dann nie erledigt.
    Das geht aber besser, da ich ja sowieso schon dauernd auf der SD-Karte herumspiele, könnte man es so lösen, dass zu Anfang die gewählten Einstellungen in ne Art *.ini-Datei geschrieben werden.
    Die wird gelöscht, wenn die Aufgabe erledigt wurde. Dann brauche ich beim einschalten (halt bei jedem Neustart des Bordrechners) nur nachsehen, ob diese Datei vorhanden ist, und wenn ja kann man ne kleine Entscheidung einbauen, die meinetwegen 5s wartet: soll die Aufgabe fortgesetzt werden oder nicht....
    Wenn die Zeit abgelaufen ist, ohne dass eine Planänderung vorgenommen wurde, wird einfach weiter gemacht.
    Könnte man im Grunde auch in den EEPROM schreiben, aber dafür bräucht ich dann noch ne Bibliothek- die für die SD-Karte ist sowieso da.

    Was meint ihr, macht doch Sinn, oder nicht?
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Inzwischen hab ich am RoutenParser mal fleissig gearbeitet.
    Zwar läuft der momentan (noch) nur als eigenständiges Programm, aber nur, weils übersichtlicher ist.
    Sind immerhin alleine knapp 200 Zeilen (nagut, nen paar leere sind auch drin, ausserdem musste ich den Joystick und das Display einpflegen zud zu debug-Zwecken gibts auch noch etliche serielle Ausgaben).

    Ich habs aber so strukturiert, dass ich gar nicht viel mehr tun muss, als das Programm dann ins eigentliche Roboter-Programm einzukopieren.
    Was macht der Routenparser?
    -zuerst öffnet er das Routen-Unterverzeichnis der SD-Karte.
    -dort zählt er die gefundenen Dateien (1 Datei=1 Route) und wartet nun auf eine Eingabe (per Joystick)
    -bei jeder Stickbewegung wird der Reihe nach eine der Routen-Dateien geöffnet, und der Routenname, der am Anfang in Klartext steht, auf Display ausgegeben, damit man weiss, welche Route man gewählt hat
    -das Ganze in ner Schleife. Ist das Verzeichnis durch, wird von vorn angefangen..
    Wird der Stick eine gewisse Zeit nich mehr bewegt, wird die gerade gewählte Route übernommen, indem ihr Dateiname in ner Variablen gespeichert wird.
    Nun wird ein Wegpunkt nach dem anderen _einzeln_ eingelesen-bevor der nächste gelesen wird, muss ein Trigger kommen (das wird später sein: Wegpunkt erreicht, momentan ist das einfach nur nen Sekundenzähler).

    Damit habe ich nun alles beisammen, was ich für die Routen-Navigation brauche.
    Im Grunde muss das Ganze dann nur noch an die Routine von GPS2Home übergeben werden, mit den aktuellen Wegpunkt-Werten als Sollwerte. Dann wird einfach GPS2Home so oft abgearbeitet, bis kein neuer Wegpunkt mehr kommt und-fertig.
    Entspannende Bastelei also....

    Aber noch gibts kleinere Problemchen: ich kann durch die Routen nur in eine Richtung blättern (weil ich einfach routenDatei = dir.openNextFile(); benutze), da ich keine Idee habe, wie man _einfach_ rückwärts blättern könnte.
    Wenn die Routen alle durch sind, wird einfach mit dir.rewindDirectory(); wieder zum Anfang des Verzeichnisses gesprungen.
    Genau _dort_ gibts ein Problem:
    Dieses rewind.directory() macht etwas Probleme: aus einem unerklärlichen Grund dauert das ne halbe Sekunde, ehe es ausgeführt wird. Wenn man aber während dieser Zeit den Stick bewegt, wird zwar eine Datei eingelesen, aber die dann gelesenen Werte stimmen nicht. Wenn mir dazu ne Idee kommt (oder jemand nen Tipp hat?) würd ichd as gerne noch irgendwie auffangen.
    Ansonsten muss ich die Routen auch noch auf Plausiblität überprüfen.....

    Das zweite Problemchen ist ziemlich trivial (und kann vernachlässigt werden): der letzte Wegpunkt wird zweimal eingelesen, ehe festgestellt wird: da sind wir schon. Ich möchts trotzdem noch fixen- es ist einfach unschön.

    Obendrein überlege ich noch, was sinnvoller ist: momentan wird das Auto _immer_ zuerst zum Anfangspunkt der ausgewählten Route fahren, und sie dann abarbeiten.
    Effektiver wärs eigentlich, zuerst zu schauen, welcher Wegpunkt der nächste (vom Start) ist, und direkt den anzusteuern.
    Ich find, irgendwie haben beide Methoden was. Ob ich da noch nen Fahrmodus mache? Mal schauen...
    Zudem werd ich wohl noch die Plausibilität der ausgewählten Route überprüfen, einfach, indem die Entfernung zwischen aktueller (=Start-)Position und dem Routeneinstieg mal gegengerechnet wird. Ist die gewählte route weitewr weg, als das Auto fahren könnte (soo ewig reicht so ein Akku ja auch nicht), wird die Route gar nicht erst akzeptiert- man kann sich beim auswählen ja mal vertan haben.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Sodele. Das Problem mit den teilweise falsch eingelesenen Dateien ist beseitigt.
    Es war mal wieder meine eigene Blödheit....
    Es wird nämlich lediglich in der jeweiligen Datei einfach nach "Zahlen" gesucht. Die erste gefundene Zahl ist der erste Wegpunkt, die zweite die dazu gehörige Länge, die dritte die Breite...
    Da die Datei aber ganz oben auch nen String enthält (der den Klartext-Name der jeweiligen Route ausgibt), kann nun ein besonderes Schlauköpfchen auf die Idee kommen, mal einen Namen wie "ParkplatzRoute1" zu benutzen.
    Und die darin enthaltene 1 wird somit bereits als erste Zahl gefunden, und alles verschiebt sich um eine Position.
    Clever, oder?
    Klar, man könnte das auffangen, indem man alles auf Plausibilität überprüft (wenn ein GPS-Punkt keine acht Stellen hat, kann er nicht stimmen), aber ich machs mir einfach und werd versuchen, die Textdateien in Zukunft ordentlicher anzulegen.
    Das jetztige, noch standalone laufende Routen-Parserprogramm ist nämlich ohnehin schon 170 Zeilen lang- wobei ein grosser Teil davon allerdings nicht zählt (die Joystick-Routine ist ja im Monstertruckprogramm eh drin, die brauch ich also nicht noch mal, ausserdem werden zu Testzwecken im Moment eine Menge Daten auf die Konsole ausgegeben, das fällt dann auch weg), trotzdem isses gross genug.
    Werd noch bisschen dran herumtesten, und es dann ins Monstertruck-Programm reinkopieren, ich hab es grundsätzlich gleich so ausgelegt, dass das meiste sich einfach rüberkopieren lässt.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Damit keiner einschläft hier: es geht natürlich weiter.
    Hatte zwar die letzten Wochen keine rechte Lust (und andere Sachen zu tun), aber nun juckts wieder in den Fingern.

    Soeben hab ich mir nen 20x4-LCD mit I2C-Rucksack geordert.
    Das derzeitige 16x2 ist einfach immer voll.

    Da auch der Routen-Parser ja nun problemlos läuft (wenn auch _noch_ standalone) werd ich, während ich auf das neue Display warte, den mal in die Software einbauen.
    Als nächstes werden die Display-Routinen aufgeräumt, die hab ich einfach imemr wieder erweitert, wenn was anfiel, und entsprechend sehn die nun auch aus, das blickt keiner mehr. Da ich ja dann bald auch mehr Daten ausgeben kann, wird das gleich entsprechend genutzt bei der Gelegenheit.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Sodele.
    Inzwischen ist das Display nun doch bei mir eingetroffen-und zwar gratis, da der Chinamann mir drei Tage Lieferzeit versprochen hatte, aber vier Wochen gebraucht hat. Einerseits ärgerlich, andererseits hab ich nen reichlichen Zehner gespart- auch gut.

    Und: es lief, nachdem ich es montiert hatte, sofort.
    Also hab ich mich wieder auf die Software gestürzt.

    Inzwischen hab ich wieder so einiges gemacht.

    Es gibt nun ne Art "Splash-Screen" beim einschalten (ich weiss, nutzlos-aber hübsch ), danach läuft ein Selbsttest durch.
    Auch der ist -fast- fertig geschrieben und funktioniert.
    Getestet wird so ziemlich alles, was ich so testen kann:

    -ist die Bordspannung unter 7V wird die Arbeit verweigert
    - ist keine oder die falsche SD-Karte eingelegt, ebenfalls (das mit der falschen Karte ist ne weitere Spielerei: die fungiert sozusagen als Wegfahrsperre. Es muss sich eine bestimmte Datei mit festgelegtem Inhalt drauf befinden, nur dann wird überhaupt gearbeitet)
    - der Kompass wird so lange immer wieder durchgetestet, bis seine Abweichung unter 10% liegt (damit kann ich leben, in Verbindung mit dem GPS reicht das notfalls schon, und die ist in der Regel gleich erreicht, wenn sie nie erreicht wird, stimmt irgendwas nicht-> Auto steht auf nem Drehteller oder ein Magnetsturm ist in der Nähe)
    -das GPS wird ebenfalls überprüft, und, wenn es schon nen Fix hat, wird die aktuelle Anzahl der erreichbaren Satelliten angezeigt (evtl. geb ich da aber mal den HDOP-Wert aus, der ist wohl aussagekräftiger)
    - der Heck-Entfernungsmesser wird auf ähnliche Weise getestet, aber da wird nur ein Schnitt von zehn Messungen hinzugezogen, da er nicht essentiell für die meisten Fahraufgaben ist
    - die Ultraschallsensoren werden genauso getestet.
    -fehlt noch, kommt aber: die MPU 6050 wird noch daraufhin überprüft, ob das Fahrzeug wenigstens so was ähnliches wie auf den Rädern steht- aufm Dach kann das Teil nicht fahren!

    Danach erst kann es losgehen, so ist so halbwegs sichergestellt, dass die wichtigsten Systeme auch funktionieren sollten.

    Anschliessend wird das Menü, mit dem der Fahrmodus aufgewählt wird, komplett neu geschrieben. Das funktioniert zwar, hat aber nen paar Schönheitsfehler.

    Und:es wird wohl mal wieder noch nen kleines Stückchen Hardware geben (die nicht nötig ist, ich aber mal dran haben möchte), aber dazu mehr, wenn es soweit ist.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    So. Wieder was fertig:

    Für den Fall, dass "jemand" mal das Auto einschaltet, und dann doch nix damit anzufangen weiss (auf deutsch: es wird kein Betriebsmodus ausgewählt), wird automatisch ein Demo-Modus gestartet.
    In dem werden abwechseln nen paar Geschichten auf dem Display ausgegeben, jeweils in nem eigenen Screen:

    -Kompassrichtung (die, in die die Nase des Autos zeigt)
    -wenn verfügbar, die GPS-Koordinaten so wie die Anzehl der verfügbaren Satelliten
    - wenn verfügbar (wenn das GPS keinen Empfang hat, gehts nicht, da ich keine Echtzeituhr hab) Uhrzeit und Datum.

    Bei letzterem bin ich auf ne interessante Geschichte gestossen:
    Das GPS geht ja (fast) Atomuhr-Genau.
    Nun hab ich, spasseshalber, mal verschiedene Uhrzeiten aus dem Internet damit verglichen :
    Irgendwie sind die meiner "Atomuhr" 3-4 Sekunden voraus!
    Dass ich hier drin recht miesen GPS-Empfang habe, weiss ich (aktuell nur 5 Satelliten), aber das hat ja nix mit der Zeit zu tun.
    Angeblich aber sind die Protokolle, mit denen man Uhrzeiten präzise per Internet übertragen kann, ja so richtig genau?
    Und nein, es dauert hier nicht vier Sekunden, um alles zu aktualisieren, es geht weit schneller.
    Jemand ne Idee? Nicht, dass es mich nun sehr stört, aber ich wundere mich halt....

    Zu der Ankündigung mit der neuen Hardware:
    Die ist drauf und läuft.
    Es ist nur nen kleines Platinchen mit nem LM 35 und nem Fotowiderstand, aber ich hab da bewusst noch etwas Platz gelassen.
    Wozu?
    Für den Fall, dass mich mal jemand nach dem "Sinn" des Autos fragt (nicht-roboterbauende Leute tun das ja andauernd....), kann ich sagen, er ist ne autonome Wetterstation.
    Das Monster sollte ja eh mehr nen Test werden, um verschiedenes auszuprobieren, genügend freie Pins hab ich auch, also, wieso nicht.
    Man könnte über gewisse Fahrstrecken damit beispielsweise Temperaturprofile aufzeichnen, oder ähnliches.
    Oder abschalten, wenn der Akku eingefroren ist.
    Der Lichtsensor soll später auch ne Aufgabe bekommen, ebenfalls für die "Ungläubigen": ich möchte das Monster später mit ner netten Beleuchtung ausrüsten. Einfach, um Sympathiepunkte bei artfremden Leuten zu sammeln- und wegen meinem Spieltrieb auch, nen ganz kleines bisschen.
    ES SIEHT NUN MAL VIEL COOLER AUS.
    Und: wer hat schon ne autonome Taschenlampe...
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Ähnliche Themen

  1. Plug-Hybrid-Auto zukünftig ohne Stecker?
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 08.01.2014, 19:30
  2. Autonom fahren: Ford entwickelt selbstfahrendes Auto
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 16.12.2013, 11:20
  3. Auto-Lexikon - Elektro-Auto
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 06.03.2012, 13:40
  4. Habe Arduino Uno,GPS Modul,RC Auto.Möchte haben:Auto,dass GPS Waypoints abfährt
    Von de8msharduino im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 07.10.2011, 21:53
  5. Produkteinführung - autonom fahrendes Auto
    Von 0140167 im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 8
    Letzter Beitrag: 04.05.2006, 12:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress