Pages: 1 [2] 3 4 ... 6   Go Down
Author Topic: KI für Carrera Bahn  (Read 7646 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Falls die Autos nicht abfliegen können kann man auch einfach mit Vollgas fahren. Falls sie abfliegen können gilt weiterhin was ich gesagt habe. Welche Räder Du dabei bremst ist völlig egal. Die Drehmomentenbilanz ist dabei immer die gleiche --> beim Bremsen wird die Achslast immer in Fahrtrichtung verlagert --> wenn Du in einer Kurve bremst wird (ohne Tricks) immer das Heck zuerst nach außen ausbrechen. Dabei ist es völlig egal ob dabei die Räder blockiert werden oder der Motor kurzgeschlossen wird.

Wie man leicht nachrechnet wird der Abflug immer zum Kurvenanfang auftreten. Das ist einfach die Massenträgheit. Entweder man bringt genügend Zentripetalkraft auf oder das Auto fährt die Kurve nicht. Bremsen wenn es schon zu spät ist macht die Sache nur schlimmer.
Logged

Check out my experiments http://blog.blinkenlight.net

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Was die Lichtschranke angeht: ich würde eine Reflexlichtschranke unter der Bahn montieren. Dann kann man jede Spur getrennt messen. Oder eine Induktionsspule. Das klappt bei großen Autos ja auch, warum sollte das nicht auch bei den kleinen Flitzern gehen?
Logged

Check out my experiments http://blog.blinkenlight.net

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wegen der sache mit dem Abflug. Genau die befürchtung das das auto trotz der Bremsung abfliegt hab ich auch. Deswegen werde ich auch morgen nochmal mit meine Physiklehrer reden was der meint. Bei einem Auto das nicht geführt ist ist es ja auf jeden fall so das es nur schlimmer wird wenn man in der kurve bremst. Durch die Führung des wagens könnte sich das aber auch anderst verhalten.Außerdem sind die Bremskräfte in Relation zu gewicht und Geschwindigkeit ungleich höher. 
Logged

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@uwefed
Ich hab des nochmal überlegt. Hab ich das richtig verstand das du nur die Maximal Geschwindigkeit ohne Abflug herausfinden willst und dann ohne zu regeln die über die Komplette strecke fahren willst? Wenn nein wie soll das Auto wissen wo die kurve ist? Wenn ja ist das suboptimal da sehr weit vom Maximum entfernt.

Edit: UNO und Prototyping Shield ist bestellt. Nächste woche gehts los.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21252
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nein; Ich dachte daß ich einen Streckenplan in Funktion der Zeit erstelle und so weiß daß nach x Sekunden eine Kurve kommt und deshalb langsamer gefahren werden muß. Nach der Kurve nach y Sekunden wieder Vollgas.
Grüße Uwe
Logged

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie soll des zeitbasiert funktionieren. Umso schneller das auto fährt umso kürzer wird doch auch die rundenzeit. Dann stimmen doch die zeitabstände nichtmehr.
Logged

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So Arduino ist heute angekommen. Vorgestern um 22  Uhr bestellt und Geld überwiesen, gestern versendet und heute morgen angekommen. Komputer.de kann ich nur weiterempfehlen. Und ne kleine Tüte Haribo gabs auch noch. Jetzt kanns losgehen. Da ich ja jetzt Bestellt habe änder ich mal noch den Threadtitel.
Logged

Germany
Offline Offline
Edison Member
*
Karma: 46
Posts: 2310
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe fleißig mitgelesen und mir ebenso Gedanken darüber gemacht. Die Aufgabe ist komplexer, als es am Anfang schien.

Ein großes Problem ist, dass der Arduino nicht weiß, wie die Strecke aussieht. Das wurde ja bereits geschrieben, dass das Abbremsen des Fahrzeugs zu spät erfolgt. Das ist natürlich auch den Gegebenheiten der Modellbahn geschuldet: Kurven bestehen aus Steckelementen mit festem Radius, die sich an gerade Strecken unmittelbar anschließen. Demnach schlägt die Fliehkraft das Auto sehr schnell aus der Bahn.
Nur zur Info. bei der Straßenplanung macht man das natürlich nicht, hier wird der Kurvenradius beim Einfahren in die Kurve stetig verkleinert und beim Herausfahren wieder vergrößert: http://de.wikipedia.org/wiki/%C3%9Cbergangsbogen
Okay, ich schweife schon wieder ab. smiley-wink Aber halten wir mal fest, das Fahrzeug muss vor der Kurve wissen, dass es nicht mit Volldampf in reinfahren darf. Dazu muss eine Art Karte vorgegeben sein, dass Fahrzeug muss seine Umgebung (er)kennen.

Im ersten (unspektakulären) Schritt speicherst du die Abfolge der Einzelelemente der Bahn codiert in einem Array zum Beispiel mit dem Werten Gerade=1 und Kurve=2. Dazu legst du die eine maximale Geschwindigkeit für die beiden Elemente fest (Links- und Rechtskurven sollten theoretisch gleich schnell befahren werden können), die du per try&error ermittelst. Um zu wissen, wo sich das Fahrzeug gerade befindet könnte man auf jedes Element eine Markierung für eine Reflexlichtschranke (CNY 70) setzen. Natürlich muss man nicht darum herum, einen Referenzpunkt für die Startlinie zu setzen, der sich in irgendeiner Weise von den genannten Streckenmarkierungen unterscheiden sollte. Ob man hier nun einen "Doppelstrich" auswertet, oder in die Spurrinne eine LED setzt die zusätzlich ausgewertet wird, ist dir überlassen. smiley-wink An dieser Stelle hätte man die Vorbereitung der Bahn auch für meine nächsten Schritten fertig. (An dieser Stelle würde ich ein Schulprojekt auch schon beenden, finde ich für Schüler schon anspruchsvoll genug.)

Das ist natürlich keinesfalls optimiert, aber dieses Prinzip kann noch erweitert werden. Im Array speichern wir nun nicht mehr die Bauteile, sondern direkt die Geschwindigkeiten, die darauf gefahren werden können. Auch hier würde ich vorerst try&error favorisieren, also die Geschwindigkeiten manuell in den Programmcode setzen. Zugegeben, der Schritt war klein, bezeichnet aber den Wechsel vom "Streckenarray"
zum "Geschwindigkeitsarray".

An dieser Stelle rudern wir einen Schritt zurück, wir implementieren den Sensor. Am besten in irgendeiner Form, dass uns ein HIGH zurückgegeben wird, wenn das Auto aus der Bahn fliegt. Klingt wiederum einfach ist es aber vermutlich nicht - so meine Theorie. Damit haben die Möglichkeit, zu hohe Geschwindigkeiten zu detektieren - und zwar abhängig von der Position auf der Strecke. Somit könnten wir also eine Grundgeschwindigkeit festlegen, wenn die Strecke damit absolviert ist, können wir streckenabschnittsweise die Geschwindigkeit bis zum Überschlag anpassen. Wenn uns der Wahrheitswert für den Überschlag mitgeteilt wird, reduzieren wir die Geschwindigkeit wieder ein wenig. Problem dabei: Das Auto hat keinen Strom mehr... Daher sollten wir (wie es ja auch schon genannt wurde) die Versorgungsspannung einen Moment abpuffern können. Also Motor ausschalten und die Restenergie nutzen, um das Ereignis zu speichern, bspw. im Eeprom.
Also wieder das Auto auf die Bahn setzen und an der Stelle des Rauswurfs mit reduzierter Geschwindigkeit fahren und den nächsten Streckenabschnitt austesten.

Das ist bereits ein einigermaßen optimiertes, selbstermitteltes Geschwindigkeitsbild, was sich aber immer noch steigern lässt! So kann man Beschleunigungs- und Abbremsrampen implementieren, um sanfte Geschwindigkeitsanpassungen zwischen den Streckenabschnitten zu haben. Will man diese nicht programmieren, kann man auch die Streckenabschnitte verkleinern: So wird dem Teilstück Gerade1-Gerade2-Kurve1-Kurve2 (z.B.mit den Geschwindigkeiten 255-255-100-100) noch jeweils eine Zwischenmarkierung verpasst: Gerade1a-Gerade1b-Gerade2a-...Kurve2a-Kurve2b. Das Geschwindigkeitsarray wird damit auch doppelt so groß: 255-255-255-200-150-100-100-100. Das bedeutet, dass die Auflösung unserer Karte steigt.

Weitere theoretische Überlegungen wären die Berücksichtigung des Folgeabschnittes bei der Geschwindigkeitsanpassung: Kann ich bspw. ein einzelnes Kurvensegment mit höherer Geschwindigkeit durchfahren als zwei aufeinanderfolgende? Aber ich denke, dass sprengt eindeutig den Rahmen eines Schulprojektes. smiley-grin

Danke fürs Lesen... smiley-wink
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21252
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie soll des zeitbasiert funktionieren. Umso schneller das auto fährt umso kürzer wird doch auch die rundenzeit. Dann stimmen doch die zeitabstände nichtmehr.
Deswegen hast Du ja die Lichtschranke am Start; alles ist von diesem Moment an gerechnet und startet an jedem Durchlauf neu.
Grüße Uwe
Logged

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe fleißig mitgelesen und mir ebenso Gedanken darüber gemacht. Die Aufgabe ist komplexer, als es am Anfang schien.

Ein großes Problem ist, dass der Arduino nicht weiß, wie die Strecke aussieht. Das wurde ja bereits geschrieben, dass das Abbremsen des Fahrzeugs zu spät erfolgt. Das ist natürlich auch den Gegebenheiten der Modellbahn geschuldet: Kurven bestehen aus Steckelementen mit festem Radius, die sich an gerade Strecken unmittelbar anschließen. Demnach schlägt die Fliehkraft das Auto sehr schnell aus der Bahn.
Wie schnell das Auto wirklich aus der Bahn fliegt und an welcher Stelle will ich innerhalb der nächsten Woche mal austesten. Ich will einfach mal eine Kamera über die Bahn hängen und dann einen Abflug bei unterschiedlichen Geschwindigkeiten filmen. Ich denke das wird in dieser Hinsicht einiges an Informationen einbringen.
Quote
Nur zur Info. bei der Straßenplanung macht man das natürlich nicht, hier wird der Kurvenradius beim Einfahren in die Kurve stetig verkleinert und beim Herausfahren wieder vergrößert: http://de.wikipedia.org/wiki/%C3%9Cbergangsbogen
Okay, ich schweife schon wieder ab. smiley-wink Aber halten wir mal fest, das Fahrzeug muss vor der Kurve wissen, dass es nicht mit Volldampf in reinfahren darf. Dazu muss eine Art Karte vorgegeben sein, dass Fahrzeug muss seine Umgebung (er)kennen.
Was da ja auch Abhilfe schaffen würde wäre einfach ein andere Sensor. Beispielsweise ein Line Tracking Sensor der an einem 3-4 cm langen Arm vor dem Auto befestigt ist und die Schiene Erkennt. Oder irgendetwas anderes Optisches. Der G-Kraft Sensor war nur eine Idee von mir. Ich habe den in der CT Hardware-Hacks gesehen und so bin ich überhaupt auf die Idee gekommen.
Quote
Weitere theoretische Überlegungen wären die Berücksichtigung des Folgeabschnittes bei der Geschwindigkeitsanpassung: Kann ich bspw. ein einzelnes Kurvensegment mit höherer Geschwindigkeit durchfahren als zwei aufeinanderfolgende? Aber ich denke, dass sprengt eindeutig den Rahmen eines Schulprojektes. smiley-grin
Ich denke an Arbeitszeit stehen uns so etwa 100-200 Mannstunden zur Verfügung. unser Team besteht aus 2 Leuten und wir haben ab jetzt bis mindestens Ende Juni Zeit. Wie weit wir kommen wird sich zeigen. Meistens kommen dann doch wieder irgentwelche unvorhergesehen Probleme dazwischen. Unser Ziel ist es das wir bis Anfang Februar ein funktionsfähiges Basis Konzept haben und uns ab dann an die Umsetzung zu machen.
Bis dahin stehen noch folgende Sachen auf dem Zettel.
  • Carrera-Bahn organisieren
  • Arduino Programmierung lernen (in progress)
  • Abflugverhalten und Position über Film ermitteln
  • Verhalten des Sensors testen
  • Bremsverhalten und Methoden testen
  • Arduino Programmierung lernen

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21252
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das ist auch richtig so. Das Zauberwort heißt Spannungsteiler. smiley-wink. Dafür brauchst du zwei Widerstände, oder eben ein Poti.
Entschuldige sth77; Für welche Frage war das Die Antwort?
Grüße Uwe
Logged

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Auf die Frage die ich wieder gelöscht hab weil ich selbst draufgekomen bin. Kopf-->Wand
Ich hab dann meinen Post wieder gelöscht weil ich dachte das es noch niemand gelesen hat. Aber da hab ich euch wohl unterschätzt. smiley-wink
Logged

South-Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also Carrera Bahn ist unterwegs hoffe das ich bis Freitag erste ergebnisse vorlegen kann.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit wievielen Umdrehungen dreht den so ein Rad von so nem Auto?

Ich hätte jetzt den Gedanken, das Kurvenprofil nicht nach der Zeit, sondern nach der zurückgelegten Strecke alias Umdrehungen abzuspeichern.

Eine Einführungsrunde mit einer sicheren Geschwindigkeit bei der die Kurven erkannt werden, bei der nächsten Runde Standardwerte für die Kurven. Diese könnte man dann von Runde zu Runde verfeinern.
Wohl viel viel viel Tüftlerei.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21252
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Frage ist ob die KI auf dem Auto oder außerhalb sitzen soll. Je nach dieser Entscheidung sind bestimmte Sachen machbar oder nicht.

Viele grüße Uwe
Logged

Pages: 1 [2] 3 4 ... 6   Go Up
Jump to: