-
        

+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Einem Bot beibringen lernen zu können

  1. #1
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    06.03.2008
    Alter
    29
    Beiträge
    942

    Einem Bot beibringen lernen zu können

    Anzeige

    Hallo Community,

    ich bin im Moment seit längerem an einem kleinen Projekt dran, das eigentlich eine Eintagsfliege werden sollte. Mittlerweile habe ich das Projekt so lange schleifen lassen, dass da immer mehr Fragen auftauchen und mich auf etwas verrückte Ideen bringen.

    Eigentlich wollte ich einen kleinen Roboter bauen, der Hindernissen ausweicht. Alles ganz einfach und ohne großen Aufwand etc.

    Dann kam mir die Idee, dass er noch eine Funktion besitzen sollte, zum hellsten bzw. dunkelsten Punkt im Raum zu fahren. Ist ja auch nix Großartiges. Irgendwann mal wird er gegen eine Wand fahren, was auch irgendwie doof ist. Also kam ich auf die Idee beide Funktionen zu verknüpfen. Also würde er zu der Lichtquelle fahren, was in diesem Fall Fenster sein soll und dort vor sich hin fahren ohne irgendwo gegen zu fahren aber auch auf der hellsten Stelle zu bleiben bis irgendwann mal Akku leer wird.
    Dieses Verhalten erinnert mich an eine Fliege oder Wespe die in die Wohnung reinfliegt und dann gegen die Glasscheibe schlägt, bis irgendwann mal die totale Erschöpfung kommt. Also nicht viel von Intelligenz zu sehen, sonder alles nur auf einigen Instinkten basiert. Die Instinkte sind ja irgendwie fest eingeprägt und da gibt es wohl nichts zu entscheiden bzw. zu verändern.

    Jetzt habe ich irgendwo gelesen, dass Insekten nach mehreren Generationen (z.B. 20 bei Fruchtfliegen) was dazu lernen können, wenn jede Generation dem gleichen ungünstigen (bzw. auch umgekehrt) Effekt ausgesetzt werden.

    Nun, ich will keine 20 Generationen von Bots bauen Einer reicht hier auch und da bin ich mir auch noch nicht so sicher, ob ich so eine "Lernfähigkeit" nachbilden möchte.

    Jetzt stelle ich den kleinen "Insekt" in die Mitte des Raumes und lass ihn losfahren. Ein Instinkt ist fest eingeprägt, nämlich Hindernissen ausweichen. Er soll aber "selbstständig" lernen was für ihn gut ist - hellste oder dunkelste Stelle im Raum. Für den Anfang würde es reichen, dass es nach Anzahl der Hindernisse beurteilt wird, für welche Stelle er sich entscheidet. D.h. wenn der Bot an die dunkelste Stelle im Raum kommt, und dabei weniger Hindernisse im Weg stehen, als in die helle Richtung, würde er sich für die dunkle Stelle entscheiden.

    Jetzt sind die "Algorithmiker und KI'ler" unter Euch gefragt, wie man das realisieren könnte.

    Ich möchte keine langen Zeilen Code sehen sondern einfach nur Ideen, wie ein Ablauf aussehen könnte, wie ein Bot zu einer Entscheidung kommen könnte Je simpler desto besser. Später könnte man noch die Steilheit des Bodens oder Umgebungstemperatur in die Entscheidung miteinbeziehen.


    Bin schon gespannt auf eure Ideen und Feedback.
    Danke im Voraus

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    65
    Beiträge
    10.924
    Hallo!

    Zitat Zitat von 5Volt-Junkie Beitrag anzeigen
    Ich möchte keine langen Zeilen Code sehen sondern einfach nur Ideen, wie ein Ablauf aussehen könnte, wie ein Bot zu einer Entscheidung kommen könnte Je simpler desto besser.
    Mein Spielzeug mit bisher höhster KI bei einfachsten Mitteln: http://www.roboternetz.de/phpBB2/viewtopic.php?t=49233 .
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    RN-Premium User Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.346
    Blog-Einträge
    96
    Er soll aber "selbstständig" lernen was für ihn gut ist - hellste oder dunkelste Stelle im Raum. Für den Anfang würde es reichen, dass es nach Anzahl der Hindernisse beurteilt wird, für welche Stelle er sich entscheidet. D.h. wenn der Bot an die dunkelste Stelle im Raum kommt, und dabei weniger Hindernisse im Weg stehen, als in die helle Richtung, würde er sich für die dunkle Stelle entscheiden.
    Ich denke, daß das intelligente Insekt erstmal Informationen über die Umgebung braucht, um gute Stellen aufzusuchen. Seine "Intelligenz" würde dann darin bestehen, bei wechselnden Umgebungsverhältnissen gute Stellen direkt anzulaufen.

    Folgende Idee für den sich wiederholenden Sonneneinfall über einen Tag in einem Zimmer als sich verändernde Umgebungsverhältnisse:

    Im ersten Anlauf müßte das Insekt mal seinen Lebensraum erkunden und sehen, was es so alles gibt.
    Auf der Erkundungsreise sollte es sich merken können, an welchen Stellen es günstige Lebensbedingungen vorfindet.
    Die Stellen sollte es sich nach Wertigkeit abspeichern. zB viel Licht hohe Wertigkeit.
    Es stellt sich auf die Stelle mit der höchsten Wertigkeit.
    Nach einiger Zeit beginnt es eine neue Erkundung und macht das gleiche nochmal und stellt sich am Ende der zweiten Erkundungsfahrt wieder auf seinen Ausgangspunkt.
    Nun versucht es, falls es eine hellere Stelle bei der zweiten Fahrt gefunden hat, diese direkt anzulaufen.
    Dabei kommen nun die Hindernisse ins Spiel - die Anzahl muß es sich nun auch merken.
    Dann sofort wieder zurück zum Ausgangspunkt und zweithellste Stelle anlaufen, dabei Hindernisse zählen und merken.
    So oft wiederholen, bis es sich nicht lohnt, noch weiter zu suchen. Könnte ja sein, daß es die hellste Stelle ohne Hindernisse erreicht.
    Nun sucht es die lohnenswerteste Stelle direkt auf, wartet wieder und beginnt danach wieder eine neue Erkundungsfahrt und das Spiel beginnt von vorne.

    Irgendwann ist eine Karte mit Punkten entstanden, die er nur noch abfahren muß, wenn es mal wieder auf einem vorher gefunden Punkt gelandet ist. Von da aus sollte es trotzdem nochmal Erkundungsfahrten durchführen, um seine Rückschluß (daß er da schon mal war und der nächste Überlebenspunkt klar ist) zu verifizieren.

    Mehr "Intelligenz" müßte es entwickeln, wenn die Verifizierung nicht mit seiner Karte übereinstimmt.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    29
    Beiträge
    1.928
    Das hört sich irgendwie auch noch ziemlich "vorprogrammiert" an.
    Ich würd mal vorschlagen, sich in genetischen Algorithmen, KI und virtuelle Evoluton einzulesen, schon bei Wikipedia findet man die Grundlagen erklärt. Wenn man die Mechanismen, die dahinter stecken, versteht und sich dann ordentlich Gedanken dazu macht, dann kann man schon ganz tolle Sachen zustandebringen. Ist nur keine leichte Kost, aber andere Wege wird es wohl kaum geben, wenn dein Roboter wirklich lernfähig sein soll.

  5. #5
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    06.03.2008
    Alter
    29
    Beiträge
    942
    Insekten sind ja auch irgendwie "vorprogrammiert"
    Ihre Intelligenz ist ja theoretisch auf eine überschaubare Menge an Transistoren beschränkt. Überschaubar im Vergleich mit der heutigen Technik. D.h. theoretisch ist z.B. schon ein ATmega für diese Anwendung etwas oversized.
    Ich bezweifele auch, dass ich bei einem kleinen Bot, etwas derartiges umsetzen möchte. Es sind erst mal nur Gedanken Der kleine Roboter, an dem ich dran bin, soll auch ohne Mikrocontroller laufen. Allein aus diesem Grund würden da keine großen Algorithmen laufen können.

    Es würde aber immer hin reichen, eine Entscheidungsfunktion zu verleihen. Die Frage ist nur, wie kann man die Hindernisse abzählen und sie vergleichen?

    Meine Idee wäre dass nach dem Einschalten ein Timer losläuft und der Roboter in die hellste Richtung fährt. Nach Ablauf dieses Timers merkt er sich die Anzahl der registrierten Hindernisse und fährt in die dunkle Richtung. Er müsste aber mit menschlicher Hilfe auf die Ausgangsstelle gebracht werden.

    Den Weg merken geht ja nicht wirklich, da eben kein µC eingesetzt werden sollte

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    40
    Beiträge
    392
    "Eigentlich" sind genau dafür neuronale Netze entwickelt worden. Du hast eine Menge an Eingaben. Den Eingabevektor. Licht, Zeit, was weis ich. Und eine Ausgabevektor. Bsp. Fahre zum hellen Punkt, Fahre zum dunkeln Punkt und anschliessend eine "normale" Statemachine die dann diese Entscheidung umsetzt. Neuronale Netze werden trainiert. Du hast einen Eingabevektor und weist was er dann machen soll. Das kann man ihm anlernen. Je größer das Sampleset ist, meist, umso besser. Es gibt dann allerdings den Fall, dass das Netz alles einfach "auswendig" lernt und nur auf die Samples richtig reagiert, dann gibt es den idealen Fall in dem es lernt zu generalisieren. Bsp. 10:30 und 10:35 sind etwa gleiche Zeiten und dann dieselbe, richtige, Entscheidung trifft.

    Zum Traineren unterteilt man deshalb die Samples in bsp. 5 Teilsets. Lernt mit 4en davon und prüft mit dem 5ten die Generalisierung.

    Wichtig ist den passenden Eingabevektor zu finden. Nicht zuviel Info und nicht zuwenig. Es muss möglich sein, ohne Intelligenz, daraus eine Entscheidung abzuleiten.

    Als ich das erstemal damit "gespielt" habe wurde ich fast erschlagen

    Hier hab ich 2 gute Links für dich:
    http://de.wikipedia.org/wiki/K%C3%BC...euronales_Netz
    http://www.dkriesel.com/science/neural_networks

    Gruß
    Georg

  7. #7
    RN-Premium User Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.346
    Blog-Einträge
    96
    Ein paar naive vereinfachte Gedanken:

    Ein Insekt hat nur Sensoren, Aktoren und Instinkte. Die Instinkte sind die Festverdrahtung zwischen den beiden. Falls da Lernfähigkeit zwischen Generationen festgestellt werden kann, ist das auf Auslese zurückzuführen, weil von einer Generation zur anderen mal ein Draht zuviel oder zuwenig vererbt wird. Die einen überleben und pflanzen sich fort, die anderen eben nicht. Vielleicht haben die Fruchtfliegen besonders viele umweltbeeinflußte Vererbungsmutationen.

    Damit im selben Leben gelernt werden kann, braucht es Speicher in denen Erfahrungen abgelegt werden können. Jede neue Erfahrung wird mit schon gelernten verglichen und das Resultat abgespeichert.

    Intelligenz äußert sich darin, daß aufgrund der Resultate gehandelt wird und nicht aufgrund der Festverdrahtung zwischen Sensoren und Aktoren.

    Ich geb es total ungern zu, aber bei einem Kleinen Bot ohne µC muß ich da aufgeben.

    Einfache Speicher könnte ich mir noch vorstellen, wo zB ein 4017er Dekadenzähler bei Hindernisanstoßimpuls eins weiterzählt. Aber dann die Weiterverarbeitung ...

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    65
    Beiträge
    10.924
    Hallo!

    Ich stimme meinem Vorredner völlig zu !

    Als kleine Erklärung zum meinem Artan ohne jeglicher Elektronik möchte ich nur sagen, dass er einen einfachen mechanischen Algorythmus fest "verdratet" hat. Der permanent unidirektional drehender Motor "sucht" sich ständig eine Richtung, in der er bei kleinsten Widerstand noch fahren kann. Eigentlich besitzt er kein Speicher und somit keine KI, deshalb kann er nix erlernen.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Zitat Zitat von Searcher Beitrag anzeigen
    Ich geb es total ungern zu, aber bei einem Kleinen Bot ohne µC muß ich da aufgeben.
    Ein paar Volladdierer, eine ALU und ein kleiner Speicher - alles aus Transistoren oder Relais zusammengebaut. Das wär doch was?
    Siehe: http://www.relaiscomputer.de/

    PS: Nicht ganz ernst gemeint...
    Grüße
    Thomas

  10. #10
    RN-Premium User Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.346
    Blog-Einträge
    96
    Ein paar Volladdierer, eine ALU und ein kleiner Speicher - alles aus Transistoren oder Relais zusammengebaut. Das wär doch was?
    Ja !!!

    Ich habe im letzten Jahrtausend mal in sowas gearbeitet. Die Gestelle waren voll mit sowas. Dazu brauchte man noch ein Billy Regal von IKEA beladen mit DIN A4 Ordnern voller Unterlagen.

    Das könnte man umverdrahten und kräftige Räder finden. Klein ist relativ


    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. MacGyver-Algorithmus: US-Forscher wollen Robotern das Improvisieren beibringen
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 10.10.2012, 12:00
  2. RP6 soll sich selbst beibringen nicht an die Wand zu fahren
    Von -schumi- im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 29.12.2011, 19:38
  3. Suche jemanden, der mir das wichtigste beibringen kann.
    Von Crole im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 12
    Letzter Beitrag: 08.05.2007, 01:37
  4. Asuro beibringen wie man geradeaus fährt!
    Von Beaverhead im Forum Asuro
    Antworten: 6
    Letzter Beitrag: 09.05.2006, 22:34
  5. [ERLEDIGT] Wie können mehrere Autoroboter mit einem PC kommunizieren???
    Von im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 25.10.2004, 12:24

Berechtigungen

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