PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : komplexes Verhalten einfacher mobiler Roboter



stochri
01.10.2006, 15:17
Vor einiger Zeit war in der c't ein Artikel zum c't-bot über einache Algorithmen, die ineinander verschachtelt ein komplex aussehendes Verhalten eines einfachen Roboters erzeugen.

Dieser Artikel zusammen mit der Beschäftigung mit Kollisisonserkennungsroutinen im ASURO hat mich auf verschiedene Ideen gebracht.

Oft wird erwähnt, dass Roboter viele Sensoren brauchen um Ihre Umwelt gut zu erfassen. Ich glaube, dass man diese Aussage etwas genauer untersuchen sollte.
Statted man z.B. einen einfachen zweirädrigen Roboter mit einerm wagrechten Fühlstift mit Druckschalter aus, könnte dieser über das Abtasten der Umgebung mit dem Fühlstift eine sehr komplexe innere Representation seiner Umwelt aufbauen.
Eine Beschränkung dieses Umweltmodells entsteht bei Robotern mit sehr kleinen Controllern nur duch den geringen zur Verfügungs stehenden Speicher. Findet man allerdings eine sehr effiziente Speichermethode, läst sich damit doch wieder eine komplexe Umweltrepresentation erzeugen.

Was meint Ihr zu diesem Thema ?

Manf
01.10.2006, 15:36
Oft wird erwähnt, dass Roboter viele Sensoren brauchen um Ihre Umwelt gut zu erfassen. Ich glaube, dass man diese Aussage etwas genauer untersuchen sollte.
Vielleicht gehört zum guten Erfassen auch, ob die Hindernisse weich oder hart und magnetisch, heiß, klebrig, hell oder grün, radioaktiv und/oder elasitsch sind.

Statted man z.B. einen einfachen zweirädrigen Roboter mit einerm wagrechten Fühlstift mit Druckschalter aus, könnte dieser über das Abtasten der Umgebung mit dem Fühlstift eine sehr komplexe innere Representation seiner Umwelt aufbauen.
Vielleicht sind die Hindernisse sogar intelligent und vielleicht sogar nachtragend.
Manfred

PicNick
01.10.2006, 16:40
..Hindernisse sogar intelligent und vielleicht sogar nachtragend..
Ich hab zu Hause zwei Hindernisse mit diskutierbarer Intelligenz, aber auf jeden Fall nachtragend und ggf. auch "weg"tragend :-)

Spaß beseite: Dis Sensorik muß logo nur das abdecken, was relevant ist.
Und wenn durch Odometrie und Fühlstift eine "Karte" mit ausreichender Genauigkeit erstellt werden kann, würde das natürlich reichen.
Insofern geb' ich Dir völlig recht.
Das mit der Speicherkapazität ist auch klar. Das ist eine Frage der Quantität und nicht der Qualität.
Geht halt um die "ausreichende" Genauigkeit. Ein einzelner einfacher Fühlstift o.A. ist sicher recht minimalistisch, vielleicht meinst Du das aber auch nur als Extrembeispiel.

Ich meine, wenn das Verhältnis "wie schnell ändert sich die Umwelt" zu "wie lang brauch ich, das zu realisieren und ertasten" günstig ist, geht das Ganze sicher auch auf einfache Weise.

Bißchen geschwafelt, fürcht' ich.

stochri
01.10.2006, 17:37
Vielleicht hier noch mal zur Intention dieses Threads:
Mein Ansatz ist, mit den vorhandenen Mitteln das Maximale aus der Technik herauszuholen. Das interessante daran ist, dass man unter Umständen auf Lösungsmöglichkeiten kommt, die andere auf Grund des Suchraumes gar nicht finden würden.
Der ASURO hat eine sehr eingeschränkte Sensorik und Aktuatorik und es hängt sehr stark von den geistigen Vorstellungskraft derjenigen ab, was damit erreicht werden kann.

Mir ist bei der Beschäftigung mit dem Kollisionserkennungsalgorithmus aufgefallen, dass sich der ASURO zwar selten aber doch machmal in einer Ecke verfangen kann.
Normalerweise bemerkt der Algorithmus, wenn die Radgeschwindigkeit langsamer wird. Dann fährt der Roboter in einem ca. 90° Winkel zurück.
Jetzt gibt es Situationen, bei denen der Roboter sozusagen in einene Dead-Lock gerät, bei dem er ständig anstößt, zurückfährt, vorfährt und an der selben Stelle anstößt.
Wenn ein Mensch den ASURO nicht sehen könnte, aber auf einem Computerbildschirm die Radgeschwindigkeit beobachtet, dann könnte er aus der Periodizität der Radgeschwindigkeitsänderung Rückschlüsse auf das Hängenbleiben des Roboters ziehen.

Hier läst sich ein Algorithmus entwickeln, der sozusagen auf einer höheren Abstraktionsebenene den Zustand des Roboters erkennen kann und entsprechend eingreift.

Eine zweite Sache, die ab und zu mal passiert, ist, dass der Roboter nach hinten umfällt und die Räder in der Luft drehen. Hier liese sich ebenfalls ein Algorithmus erstellen, der aus der Kenntnis der Raumgröße weiss, dass wenn die Räder längere Zeit ohne Kollisionserkennung laufen, der Roboter umgefallen sein muss.

Tja, was will ich eigentlich sagen: Wie aus den obigen Beispielen ersichtlich, kann sozusagen die Intelligenz fehlende Sensorik ersetzen bzw. wett machen.

Was bei beiden Verfahren auffält, ist, dass es einen zeitlichen Trade-Off gibt. Schwache Sensorik bedeutet lange Meßzeit. Durch die Beobachtung der zeitlichen Verläufe der Sensordaten wird sozusagen die fehlende "SensorInputBandbreite" ersetzt.

Ein gutes Beispiel für gegebene Umstände, bei denen keine zusätzliche Sensorik oder Mechanik mehr angebracht werden kann um ein Problem zu lösen und bei dem einzig und allein die eingesetzte Intelligenz Hilfe bringt, sind die Marsrover.

Das Team, welches die Rover steuert und programmiert, ist einzig und allein auf Kreativität und intelligente Ausführung angewiesen.

PicNick
02.10.2006, 07:46
Es geht also um die These, dass bessere auswertung letztlich mehr wert ist als bessere Sensoren ?

Manf
02.10.2006, 08:04
Sensoren oder Messungen nicht mit hohem Aufwand extrem genau zu machen sondern so zu gestalten, dass ihr Übertragungsverhalten bei der Auswertung berücksichtigt werden kann. Sonst bliebe diese Fähigkeit des Prozessors ungenutzt.
Das ist ein sehr schönes Thema.
Manfred

PicNick
02.10.2006, 08:16
..Das ist ein sehr schönes Thema.
Da stimm' ich gerne zu.
Es wird nur dazu führen, daß in den nächsten 5 Posts ganze Listen von Links zu irgendwelchen Doktorarbeiten auftauchen werden, und Fertigmahlzeiten find' ich nicht interessant (IMHO, laßt euch nur nicht stören).

Manf
02.10.2006, 08:56
einfache Algorithmen, ineinander verschachtelt

wie schnell ändert sich die Umwelt - zu - wie lang brauch ich, das zu ertasten

Lösungsmöglichkeiten, die andere auf Grund des Suchraumes gar nicht finden würden

die Beobachtung der zeitlichen Verläufe der Sensordaten ersetzt fehlende Sensor Input Bandbreite

Kreativität und intelligente Ausführung

bessere Auswertung ist letztlich mehr wert als bessere Sensoren

Messungen so gestalten, dass ihr Übertragungsverhalten bei der Auswertung berücksichtigt werden kann

Doktorarbeiten und Fertigmahlzeiten auftauen
Ich habe es einmal stark verkürzt, vielleicht ergeben sich ja noch einige Anregungen, vielleicht sind die Akzente auch anders zu setzen.
Vor allem einfache Beispiele wären sicher interessant.
Manfred

PicNick
02.10.2006, 10:05
Für Umwelt-Änderung versus Erfassungszeit könnt' man vielleicht so eine Art "Abtast-Theorem" aufstellen, von wegen "aliasing" etc.

EDIT: Ich wär aber dafür, erstmal eine feste "Umwelt" festzulegen, um nicht sofort im Endlosen zu verschwinden

stochri
02.10.2006, 23:21
Es geht also um die These, dass bessere auswertung letztlich mehr wert ist als bessere Sensoren ?

Vielleicht auch darum, mit Hilfe der Algorithmik Messgrößen zu erfassen, für die eigentlich gar keine Sensoren vorhanden sind.


Sensoren oder Messungen nicht mit hohem Aufwand extrem genau zu machen sondern so zu gestalten, dass ihr Übertragungsverhalten bei der Auswertung berücksichtigt werden kann. Sonst bliebe diese Fähigkeit des Prozessors ungenutzt.

Ja, ein Beispiel dafür wäre ein Federpendel, bei dem man nur den Ort der Masse kennt und aber die einwirkende Beschleunigung messen will.

Mir ist gerade ein gutes Beispiel eingefallen: Wie mache ich aus dem ASURO einen Regensensor ( vielleicht bin ich drauf gekommen, weils grad wieder mal regnet ), obwohl er ja eigentlich gar keinen hat ?
( Mir fallen zwei Lösungsmöglichkeiten ein und es gibt sicher noch mehr )

PicNick
03.10.2006, 18:36
Ich steh' wahrscheinlich auf dem Schlauch, oder es ist, weil ich keine Asuro hab', also sag mir deine zwei Möglichkeiten

Manf
03.10.2006, 18:42
Vielleicht kann er über seine Host-Verbindung Kontakt zu einem Wetterdienst aufnehmen.
Sehr zuverlässig wäre das aber auch nicht.
Manfred

PicNick
03.10.2006, 18:50
*pffff* Bin ich beruhigt, ich dachte schon, ausser mir weiss das jeder


...Sehr zuverlässig ....nicht
Na ja, geht ja grad' drum, das auszugleichen.

stochri
03.10.2006, 19:10
Vielleicht kann er über seine Host-Verbindung Kontakt zu einem Wetterdienst aufnehmen.

Auch eine wiztige Idee. Über die IR-Schnittstelle und einem PC-Programm wäre das ja machbar. Aber so war es nicht gedacht.

1. Möglichkeit

Der ASURO fährt frontal gegen eine Wand ( ausserhalb eines Gebäudes, wo es auch hinregnen kann ). Dann blebit er stehen und stellt seine Motoren ab. Von Zeit zu Zeit fährt er die MotorPWM langsam hoch und misst die Haftreibung. Bei Regen wird diese kleiner.

2. Möglichkeit

Im ASURO wird eine Uhr mit Kalender implementiert. Mit dem Lichtsensor misst er die aktuelle Lichtstärke. Die Lichtstärke hängt von der Tageszeit und der Bewölkung ab ( Der ASURO sollte möglichst nicht unter einer Straßenlampe stehen)
Eventuell kann man aus einem bestimmten Helligkeitsänderungsverlauf das Eintreten von Regen abschätzen.

Ok, zugegebener Maßen sind beide Methoden nicht unbedingt praxistauglich, besonders die zweite hinkt stark. Aber immerhin ...

PicNick
03.10.2006, 19:28
Gut*räusper*, ernsthaft:
Offenbar ist ein Zeitverhalten mit zu berücksichtigen, das heißt, wir nehemen die Chronologie der Sensordaten mit ins Kalkül.
Scheint mir mal unerläßlich, damit wird einiges möglich.

PicNick
03.10.2006, 19:28
Gut*räusper*, ernsthaft:
Offenbar ist ein Zeitverhalten mit zu berücksichtigen, das heißt, wir nehemen die Chronologie der Sensordaten mit ins Kalkül.
Scheint mir mal unerläßlich, damit wird einiges möglich.

EDIT: AUch die Odometrie wird wohl notwendig sein, damit wir vom "Fühlstift" was haben.
IMHO wäre das dann ein "SET" von Senoren, mit dem man weiterkommen kann

stochri
03.10.2006, 20:07
Offenbar ist ein Zeitverhalten mit zu berücksichtigen, das heißt, wir nehemen die Chronologie der Sensordaten mit ins Kalkül.
Scheint mir mal unerläßlich, damit wird einiges möglich.

Die Beobachtung des zeitlichen Verlaufes eines Sensorsignales ist sogar eines der mächtigsten Mittel überhaupt.
Als Beispiel möge ein Mikrofon dienen: Ein Mikrofon ist ein eikanaliger Drucksensor. Durch die Beobachtung des zeitlichen Verlaufes kann man Informationen über alles bekommen. Man stelle sich einfach einen Roboter vor, der sich am Telefon die Welt erklären läst.

Was mir dazu aber auch gleiich einfällt: Ausgestattet mit Aktuatoren kann ein Sensor noch viel mächtiger werden.

marvin42x
04.10.2006, 00:10
Wir Mensche sparen uns die meiste Sensorarbeit indem wir eine a Priori Welt vorhalten im Sinne von davor und im Sinne von bereithalten.
Dadurch können wir schon bei den ersten Anzeichen von erkennen den Rest hinzufügen, auch an Stellen die wir nicht direkt sehen.
Wer sein Haus von vorne sieht, der sieht a priori auch die Rückseite und das Innenleben. Das ganze natürlich mit einem Risiko falls sich inzwischen was geändert hat.
Dafür haben wir eine „Liste“ Mauern gelten da als recht zuverlässig, Katzen teilweise nicht :-)
Dasselbe gilt für zu erwartende Ereignisse und andere Bereiche.

Worauf ich hinaus will: für Sensorleistungen, die über die eigentliche Sensorfähigkeit hinausgeht braucht es eine Datenbank mit Trivial-Wissen.
Wir Menschen machen exzessiv gebrauch von dieser Technik.
Nach meiner Sicht neigt diese Technik zum Ressourcenhunger. Je mehr Ressourcen, je höher die Leistung.

Wenn ich nur ein Mikrofon habe was ich auswerte, werde ich erkennen ob sich jemand auf dem Kiesweg nähert, ich werde wissen ob ein Hund an mir schnüffelt und ich werde wissen das in der Nachbarschaft jemand Geige übt der es lieber nicht tun sollte. Das mit dem Regen wüsste ich auch, sogar ob es windig dabei ist und ob ein Gewitter beteiligt ist. Selbst das Zirpen der Grillen erzählt mir, dass es nicht Winter ist.
Ich hör mal auf, jeder wird die Liste noch meterweit fortsetzen können.

Ein Mikrofon
Ein gigantischer Satz Trivialen Wissens.

Auf einem kleinen System wird es da eng.
Da aber das machbare zu ergründen finde ich sehr spannen.

Netter Gruß,
….und die Welt ist Klang ;-)

gast1234
04.10.2006, 01:07
Hallo,

wenn der Asuro 1 Fotoelement auf jeder Seite hätte, könnte man aus den Lichtstärken über die Zeit zusätzliche Informationen beziehen.
Wenn sich keine Helligkeitsveränderungen bei der Fahrt bemerkbar machen, ist Roboter umgefallen.
Steht er und die Helligkeit variiert, kann das auf bewegende Objekte hindeuten, zwangsweise ;)
Wenn sie nur auf einer Seite messbar sind, fährt er auf der anderen Seite an einer Wand entlang.
Ist die zweite Ableitung der Helligkeit über die Zeit bei Geradeausfahrt gleich, kann man von ähnlicher Umgebung von links und rechts ausgehen. So wie in einem Klassenzimmer, links und rechts Stuhlbeine. Oder ein Rad ist nicht mehr fest mit der Nabe verbunden und man fährt im Kreis, das kann man ja über die Periodizität rausbekommen, wenn man weiss wie lange er braucht um sich theoretisch zu drehen.

Durch Kombination mit anderen Sensoren, kann man Fälle ausschließen, die andere Fälle wahrscheinlicher machen, aber das wisst ihr ja.

Vielleicht fällt euch ja nochwas ein.

PicNick
04.10.2006, 09:26
Auf dieses Wissen ("umgefallen", "Wand entlang" etc) muß aber unser hypothetischer Intelligenz-o-bot erstmal kommen.
Bleib' doch gleich mal bei "umgefallen". Was bedeutet das denn eigentlich für den Robby ? Das allein ist schon recht kompliziert zu beschreiben und erfordert eine Menge Vorraussetzungen und "Wissen".
Woher kommt es, daß "umgefallen" etwas ist, was man vermeiden soll ?
Als Maschine kann ihm das doch egal sein, ob er sich bewegt oder auf dem Rücken liegt wie ein Marienkäfer.

marvin42x
04.10.2006, 10:10
Da so ein Controller sehr klein ist, wird man vermutlich besser fahren, ein kompaktes Abhängigkeits- -System vorzugeben.
Basierend auf Wissen über die reale Umgebungswelt des Roboters.
Selbstlernen würde ich auf den ersten Blick aus Platzgründen klein halten.
Als Programm Struktur würde mir so etwas wie ein Schachspielcomputer einfallen.
Die große Herausforderung an der Sache sehe ich in der Formulierung eines gültigen Mini-Weltmodells. Das ausreichend erfolgreich operiert.
Wie ich schon eingangs als Meinung sagte: je mehr Wissen umso weniger Sensorik -Anforderung.
Es Bleibt also für die Kleinen Controller nur eine extrem eingeschränkte Option nützliche Metadaten aus seinen Sensoren zu saugen.

Netter Gruß

PicNick
04.10.2006, 10:34
Da es auch eine Schnecke mit einem anspruchslosen Strickleiter-Nervenkostüm tadellos schafft, meinen Salat kurz zu halten und sich meinen Abwehrversuchen entziehen, würde ich die Überlegung, was denn so ein µC schaffen kann oder nicht, erstmal garnicht erst anstellen.
Wir mußten imho erstmal eine Methode finden, und wenn die funzt, schauen wir dann, was wir davon in einen µC packen können.

Natürlich, wenn wir ein Netzwerk hätten, das auch im In- und Ausland (Berlin z.B) gut getestet wurde, könnte man ja auch komplexere Systeme mit verteilten Aufgaben andenken.

marvin42x
04.10.2006, 12:34
Guter Vorschlag.
Wir lassen die Sache die nicht geht erstmal weg und kümmern uns um das was geht.
Schnecke:
Die konstruktive Auslegung einer autarken Einheit ist ja bereits ein Programmteil. Wenn besagtes System schneller als ein Wiener ist hat selbiger natürlich wenige Chancen. Die Natur ist halt nicht immer gerecht.

Sensorik:
Wenn ich mal das menschliche Ohr ansehe mit der Ohrmuschel zur Verfälschung des Signals um eine Richtungsinformation zu bekommen, könnte ich mir solche Strategie auch vorstellen.

Genau so die absichtliche Einbeziehung der Umwelt als Teil der Sensorik.
Wenn der Asuro z.B eine Stelle vor einer Wand kennt die bei Nässe sehr glatt ist kann er da prüfen ob seine Räder durchdrehen um das schon genannte Beispiel aufzugreifen.
Also durch Manipulation der Rahmenbedingungen an Informationen kommen.

@PicNick:
Das mit dem Netz siehst Du meiner Meinung nach sehr richtig. Wenn man sieht was ich zu Wissen und Sensorik meine. Wird man schon erraten das ich in Zukunft einen Roboternetz-TrivialWissen-Server erwarte, der von der Gemeinde wie die Wiki gepflegt und erweitert wird. Nur so kann es zu ungewöhnlichen Leistungen kommen, falls jemand ungewöhnliche Leistungen liebt.
Ach so, das war ja das was hier im konkreten nicht geht :-)

Netter Gruß

PicNick
04.10.2006, 13:11
Da ich mit Zunahme der altersbedingten Demenz (=Matschbirne) Dinge gerne vereinfache, hab ich überlegt, was denn wohl die kleinstmögliche Konfiguration für "Intelligenz" für Eigenschaften haben müßte.
Ein Teil z.B. davon ist ja wohl die Analyse des Inputs auf Kausalitäten.
Mal angenommen, ich hab drei input-Leitungen die jeweils 0/1 sein können. Ohne daß mein Mini-Hirn das weiss, stehen die drei in einer logischen Beziehung (z,.B ganz einfach A and B = C). Wenn also (auch von außen) A und B irgendwelche wechselnden Zustände bekommen, sollte das System mit der Zeit erkennen, daß nicht alle 8 möglichen Zustände A, B, C auftauchen, sondern einige eben nicht.
Entweder ist alles Null,
oder A = 1
oder B = 1
oder alle drei sind 1.
Wie erkennt man, daß C von A und B abhängig ist ?

Würde nun plötzlich ein anderes Gatter verwendet werden ( NOR) , sollte zumindest erkannt werden: das is was anderes

Mit Speicherproblemen sollte man da ja kein Problem haben, Rechenzeit ja wohl auch nicht. Es geht also um die Methode.

Kriegt man das hin, und wenn nicht, woran hapert's ?


EDIT: eventuelle GEdanken, WARUM die ganze Überlegung ein Schmarrn sein muß wären genauso erbeten wie frenetische Begeisterung

marvin42x
04.10.2006, 14:24
Die Überlegung über die Kausalitätserkennung geistert mir auch durch den Kopf.
Eine Sache ist halt das Kausalitäten gerne über den Erfassungsmöglichkeiten de Systems liegen.
Wir Menschen sagen dann Zufall dazu obwohl alles den Naturgesetzen gemäß abläuft.
Bei so einem kleinen Controller-Hirn ist diese Grenze zum Zufall natürlich viel früher erreicht.
Ungeachtet dessen gibt es Regelmäßigkeiten.

Der Ansatz Regeln zu finden durch logische Verknüpfungen scheint mir auf der untersten Ebene sehr Erfolg versprechend. Wenn man so was kaskadiert, so man mehr als drei hat, würde man m.E. das maximal mögliche über die Umwelt heraus bekommen.
Ich glaube man sollte dem Baby aber etwas Elternwissen mit in die Wiege legen.
Das würde die Effizienz deutlich begünstigen.

Generell halte ich das Unterfangen für aussichtslos. Aber gerade deswegen könnte was Bereicherndes rausspringen.

Netter Gruß aus dem Netz

PicNick
04.10.2006, 15:01
..Unterfangen für aussichtslos..
Der beste Grund, gleich mal damit anzufangen :-)

marvin42x
04.10.2006, 15:46
Ein erster Gedanke wäre einem Sensor eine weitere Dimension hinzufügen.
Sprich ein Timer.
Damit würden die drei Zustände eines I/O Ports um einen Analogen Skalenwert erweitert.
Sprich: Die zeitliche Ausdehnung.
Hier würde man dann Zusammenhänge zeitlicher Natur haben.
Das wäre dann schon mal mehr als die zeitgleiche Konstellation.
Dazu gesellen wir dann noch das Wissen über die gegebenen Befehle z.B. Motor vorwärts halbe Kraft und ähnliches.
Hier müssen wir aber vermutlich dem System etwas unter die Arme greifen und ein paar Standard Zusammenhänge definieren.
Mein Gott, das wird ganz schön Abstrakt.

Ich muss erstmal weiterdenken.

Das hinzufügen von weiteren Sensordimensionen muss ich noch weiter verfolgen.

Netter Gruß

Ps. Ich weis das ich in gewisser Weise nichts Neues sage.
Ich will das nur neu formulieren damit zu sehen ist auf welche Art ich darüber nachdenke.

PicNick
04.10.2006, 16:01
Es hilft schon, wenn man "Zuerst" und "Danach" unterscheiden kann. dadurch ist es einfacher, Ursache und Wirkung auseinanderzuhalten.
Heben wir uns die "Dauer" eines Zustandes noch ein wenig auf.

marvin42x
04.10.2006, 16:40
Das Zuerst und Danach ist ja schon mal was, *verstohlen nach der großen Datenbank schielend* *seuftz*.

Gut.
Zuerst und danach braucht noch keinen Timer.
Das kann ein Ring Buffer oder ein Fi/Fo auch.
Irgendwie wäre eine Tabelle ganz nett.
So ne mini Datenbank sozusagen *verlegen grins*

Kann man einen I/O eigentlich mit hoher Frequenz ins trudeln bringen? Da würde man aus dem Zeitverhalten beim Zusammenbruch noch was ableiten können.
So ein I/O muss doch noch ein paar Sachen drauf haben. Und wenn es der Rückschluss auf die Batteriespannung ist.
Das ist ja hier als wollte man einen Virus für den Pluspol einer Batterie programmieren.

Netter Gruß erstmal :-)

PicNick
04.10.2006, 17:55
.. Zeitverhalten beim Zusammenbruch noch was ableiten können.


Ja, da hat ein gewisser "Dr. Moody" berühmte Studien gemacht. Reanimierte µC haben von einem dunklen Tunnel mit einem Licht am Ende berichtet, wo sie Konrad Zuse mit Flügeln freundlich begrüßt hat.
Alles war warm, trocken und mit genau +5V durchströmt.

PicNick
04.10.2006, 18:44
..nach der großen Datenbank schielend..

Ich würde ja auch für ernsthafte Schritte die Intelligenz und Database auf einem PC abbilden, damit man nicht ununterbrochen Bits quetschen muss

Bei Erfolgen ist dann die Fragen, wie kompakt man das hinkriegt für µC (oder nicht, meinethalben)
Da versprech ich mir von einem Netzwerk von co-operierenden µC schon auch einiges.

Und ausserdem: Der Weg ist das Ziel, Gott bewahr' uns vor menschlich intelligenten ASUROs

Manf
04.10.2006, 19:24
Und ausserdem: Der Weg ist das Ziel, Gott bewahr' uns vor menschlich intelligenten ASUROs
Das erübrigt sich ja system-immanent.

Wenn es etwas zu tun gibt, habe ich gelernt, ist ein wirklich intelligentes System nicht verfügbar, sonst könnte man es wohl kaum als ausreichend intelligent ansehen.

Wo waren wir eigentlich inhaltlich stehengeblieben?
Manfred

stochri
04.10.2006, 20:01
Was in der bisherigen Diskussion der Inttelligenzimplementation fehlt ist WACHSTUM !

Ein Säugetier kommt unerfahren, mit kleinem Kopf auf die Welt. Während dem Aufwachsen sammelt es Erfahrung. Die Anzahl seiner Gehirnneuronen vermehren sich und werden aufgrund der Erfahrungen verschaltet.

Wie im anderen Thread ( https://www.roboternetz.de/phpBB2/viewtopic.php?p=216627 ) am Beispiel der Affen sehr gut verdeutlicht, lernt ein Säugetier aus der Wiederholung von Umgebungsereignissen.
In der frühen Entwicklungsphase eines Säugetieres wiederholen sich einfache Ereignisse z.B. Wechsel von Hell/Dunkel, Kantenstrukturen wiederholen sich. Diese einfachen Ereignisse bilden bestimmte einfache Neuronenstrukuren aus. In späteren Lernschritten werden die einfachen Strukturen wiederekannt und hierarchisch in Übergeordnete Lernvorgänge mit eingebunden.

Die Diskussion über Roboteralgorithmen nimmt oft den gleichen Verlauf: Es wird eine Problem diskutiert, man denkt über einen Algorithmus nach und setzt diesen dann um. Im etwas erweiterten Fall implementiert man eine adaptive Regelung, sodass sich die Gewichte in einem Lernvorgang an eine vorgebenes Optimierungsziel anhand der vorhandenen Sensor/Aktor Gegebenheiten angepasst werden.

Was dieser Art von Algortihmus aber fehlt, ist die Möglichkeit, über die vorgebenen Ablaufstrukur hinauszuwachsen und eine hierachisch wachende Erkenntnisstruktur aufzubaunen.

stochri
04.10.2006, 20:33
Es gibt noch einen schönen Algorithmus, der seine Wissensbasis langsam und hierachisch aubaut, ja der in gewisserweise sogar auf Wachstum bassiert, aber leider trotzdem einfach nicht intelligent werden will:

Gegeben sei eine Textkomprimierung, die auf folgende Art funktioniert:

Zuerst such sie nach sehr einfachen, häufig vorkommenden Wortbausteinen ( stellt sozusagen die Frühphase einer Säugetiergehirnentwicklung dar ). Die Wortbausteine sind z.B.
ie, ei, ba, ge, ti ....usw

Nach der kindlichen Entwicklungsphase werden die häufig vorkommende Worte mit diesen Wortbausteinen kodiert. Danach Wortfolgen, danach Sätze.

Wir haben also einen Lernfähigen Algorithmus ( lernfähig, weil er bei Anwendungen auf verschieden Texte verschieden Hierachien aufbaut ).

Leider zeigt er aber kein intelligentes Verhalten. Warum eigentlich nicht ?

marvin42x
05.10.2006, 08:48
Biologische Systeme des Kalibers Säugetier sind vermutlich 2 Ligen über unserer.
Dazu kommt noch erschwerend, dass bei meinen Controllern die Sache mit dem Wachstum neuer Neuronen nicht so recht klappt.

µController:
Mit Iterationen könnte man dafür sorgen, dass die Systemhandlungen unvorhersehbar werden aber dennoch innerhalb eines Attraktors bleiben.
Der Speicherbedarf ist gering, der Rechenbedarf erhöht.
http://www.fraktalwelt.de/myhome/simpiter-g.htm
Dadurch würde man dem System ermöglichen aus blockierenden Situationen, die durch feste Algorithmen verursacht werden auszubrechen.

Die Optionen mehrerer eigenständiger Einheiten mit Netzwerk eröffnen natürlich noch ganz andere Möglichkeiten. Ein Fürs erste beschränke ich mich aber mal auf nur ein System.

Letztlich schwebt mir ein Design vor was nicht kompliziert wie eine mechanische Uhr ist sonder einfach, mit der Eigenschaft Komplexität zu ermöglichen, wie das bei. Legosteinen zu sehen ist.

Netter Gruß

PicNick
05.10.2006, 12:05
Ich bin mit meinem 3-Bit Hirn sicher sehr weit unten, aber ihr steigt wiederum ein bißchen zu weit oben ein.
Auf die Idee, daß etwas ein Text und kein Tapetenmuster ist, muß einer erstmal kommen, und von links nach rechts und oben nach unten lesen muß auch woher kommen.

marvin42x
05.10.2006, 13:10
Aus meiner Sicht völlig richtig, um eine Portion Standard-Wissen, in form von einem bisschen if und einem bisschen else, (und ner kleinen Tabelle?) kommen wir nicht rum.
Aber bei der Frage wo er nach einer Hinderniserkennung hinfährt oder was er aus diesem Ereignis macht könnte man einem etwas ungewöhnlichen Entscheidungsprozess überlassen. Da hätte man dann so eine Art evolutionären Spielraum. Wegen meiner kann er sich ja dann im Erfolgsfall die Lösung merken.

Die richtig tolle Idee habe ich aber für die Gesamtproblematik nicht.
Am Ende soll das ja praktikabel funktionieren.

Wenn mich der Blitz der Erkenntnis trifft werde ich ihn selbst redend Open Source stellen.

Netter Gruß

PicNick
05.10.2006, 13:14
..Wenn mich der Blitz der Erkenntnis trifft

Vermeide offenes Gelände, z.B. Brücken (ach nee, du findest ja eh' keine)

marvin42x
05.10.2006, 13:22
*grins* immer auf die Geistig einfachen....

Manf
05.10.2006, 13:43
Um es mit einem Beispiel zu anzugehen:
Ausgedruckte Texte sind dem ASURO ja nicht direkt zugänglich. Ganz blind ist er aber auch nicht. Ab welcher Größe könnte die Linienverfolgung denn einzelne Buchstaben erfassen und mit welchem Verfahren? Dann könnte er vielleicht in der Zeitung lesen, ob es regnet, oder bis er es heraus hat, ob es am Vortag geregnet hat.
Die Lösung habe ich mir nicht überlegt, es wird vielleicht einige Ansätze geben.
Manfred

http://www.nichtlustig.de/comics/thumb/040309.jpg (http://www.nichtlustig.de/suche_erg.php?id=604&input=alphabet)

PicNick
05.10.2006, 14:38
Wenn der Font groß genug ist (muttu gucken) könnt er es wie ein Scanner abtasten. den Text entlang, zentriert auf Schwärzung mittelwert, und pendelnde rechts-links bewegung (eigentlich ja auf-ab).
Wär sicher ganz interessant.
Oder Schreibschrift (Latein) Linienfolgen. uiuiui.
Gewissermaßen "Hütte Weihnachtsmann" revers. (oder jheißt das pervers ?)

PicNick
05.10.2006, 15:58
kein intelligentes Verhalten. Warum eigentlich nicht ?

Ich würde mich dem Statement anschließen, das da in etwa heißt,
Für intelligentes Verhalten braucht es (sehr allgemein)
1 Input (analyse + abstraktion)
2 Differenz (kann eine gesetzte Aktion sein)
3 Result (im nächsten Step ist das der Input)

4 Und, unbedingt, ein eigentliche "Ziel-Result"


Ein Match 1) vs 4) geht in die Richtung "ich muß was tun"
Ein Match 3) vs 4) vergleich geht in die Richtung "besser/schlechter geworden" (und bewertet damit 2, wenn es eine Aktion war)
Ein Match 1) vs 3) ist eher passiv (lernen) oder zur Auswahl von 2)
Ein Match 1) vs 2) ist am ehesten ein ausprobieren (So isses, und wenn ich jetzt das oder das mache, was kommt dieses oder jenes dabei raus)

Ein gewisser Input evoziert eine Auswahl an Aktionen, durch das Prüfen, welche Results dabei entstehen, sollte er eine Auswahl treffen, was ihm seinem Ziel näherbringt und was nicht. (eigentlich wie ein schachkomputer, der einfach bis zu einer gewissen tiefe Züge ausprobiert) Wen man so will, überlegt er da.

*schnauf*

stochri
05.10.2006, 18:53
Ich bin mit meinem 3-Bit Hirn sicher sehr weit unten, aber ihr steigt wiederum ein bißchen zu weit oben ein.

Du hast völlig recht, man muss klein anfangen. Es gibt ja genügende Leute, die von der Existenz des Steins der Weissen der "allem überlegenen künstlichen Intelligenz " überzeugt sind.

Aber selbt die AI-Forschung hat mit großen Versprechungen vor 50 Jahren begonnen. Heutzutage haben sich die Forscher entschieden, selbst kleinsten Insekten Intelligenz zuzuschreiben. Jetzt wird versucht die Intelligenz von Insekten zu versthen und deren Intelligenz nachzuahmen.
Ich habe irgendwann man einen Artikel zur Untersuchung des Lang- und Kurzteiigedächtnisses einer bestimmten Fliegenart gefunden. Und man glaubt es nicht, die haben ein Gedächtnis, das man gentechnisch verändern kann.

Ich erwähne dies, um nicht den Eindruck eines Phantasten zu erwecken, der sich noch nie mit realen Problemen auseinandergesetzt hat. Das obige Beispiel mit der Säugetierentwicklung habe ich nur als Beispiel angeführt um den Vorgang des geistigen Wachstums zu verdeutlichen. Ich bin mir sicher, dass sich einiger dieser Nervenzellenwachstumszusammenhänge sowohl in den Nervenknoten einer Fliege als auch in Nervenknoten von Schnecken finden läst. Und ich glaube auch, dass man diese Prinzipien auf Algorithmen in 8 Bit Kontrollern anwenden kann.


Dazu kommt noch erschwerend, dass bei meinen Controllern die Sache mit dem Wachstum neuer Neuronen nicht so recht klappt.

Neuronale Netze sind meistens als Programm auf einem Computer mit einer bestimmten Anzahl von Neuronen implemeniert. Meistens lässt sich die Neuronenanzahl erhöhen, was man als virtuellen Wachstumsprozess bezeichnen könnte. Es offensichtlich, das dieser Wachstumsprozess auf einem Mikrokontroller simuliert werden kann.

PicNick
05.10.2006, 19:26
Mach Dir keine Sorgen, wenn wir auf unserem Level (anwesende ausgenommen) mit intelligenten Robotern auseinandersetzen, ist das wahrscheinlich sowieso eine Spinnerei (was mich selbst aber überhaupt nicht stört).

Wieweit Erworbenes auf das Genmaterial rückwirken kann, wird kontroversiell diskutiert. Da aber umgekehrt noch keine griffige Arbeitshypothese aufgetaucht ist, welche Mechanismen die Evolution denn eigentlich in Gang halten (Abgesehen von Selektion, reinem Zufall etc)
Isses irgendwie auch recht.

Sprich: Keine Komplexe, Männer, soviel Nichtwissen wie die großen Geister dieser Welt haben wir allemal auch zu bieten.

marvin42x
05.10.2006, 19:34
@stochri:
Das mit dem Wachstum ist schon OK, war nicht als Widerspruch gemeint und vor allem nicht im ernst.
Deine Ausführungen in der Hinsicht sind im Einklang mit dem was ich darüber weis.

Netter Gruß

stochri
05.10.2006, 20:56
Mach Dir keine Sorgen, wenn wir auf unserem Level (anwesende ausgenommen) mit intelligenten Robotern auseinandersetzen, ist das wahrscheinlich sowieso eine Spinnerei (was mich selbst aber überhaupt nicht stört).

Na, man soll sein Licht nicht unter den Schefel stellen. Und wenn wir schon blinde Hühner sind, sollten wir doch nicht aufhören nach den Körnern zu suchen.
Ausserdem heist es ja: probieren geht über studieren. Und wer weiss vielleicht findern wir auf unserer Suche ja etwas anderes Nützliches


Ich möchte noch mal auf einen Anmerkung von weiter oben zurückkommen

Wie im anderen Thread ( https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=216627 ) am Beispiel der Affen sehr gut verdeutlicht, lernt ein Säugetier aus der Wiederholung von Umgebungsereignissen.

Das entscheidende Wort in diesem Satz ist "Wiederholung". Meiner Meinung nach lernt ein intteligentes System etwas, wenn eine Wiederholung auftritt.

Bauen wir also einen kleinen Roboter der nach sich wiederholenden Signalen seiner Sensoren sucht. Wenn verschiedene, sich wiederholende Sequenzen im Rauschen gefunden sind, können diese vom System sozusagen "wiedererkannt" werden.

Eine mögliche Realisierung könnte folgende sein: Man nehme eine Schaltung die 4 verschiedene Tonfrequenzen erkennen kann. Jetzt programmiere man einen Algorithmus, der Abfolgewiederholungen in den erkannten Tönen sucht. Häufig sich wiederholende Tonfolgen werden zusammengefasst und triggern einen Ausgang. Diese Ausgänge werden weiter beobachtet und wenn eine Rehenfolge der Ausgangsaktivitäten gehäuft auftritt, wird diese wieder zusammengefasst und bekommt einen neuen Ausgang.

Irgenwann kann der Algorithmus eine Melodie erkennen.

Ich glaube, dass dieses auch die Methode ist, mit der kleine Kinder hören lernen ( Die Flimmerhärchen im Ohr sind die Frequenzanalysatoren ).
Am Anfang erhalten sie durch ihre Ohren unverständliche Sensorsignale. Sich wiederholende Lautfolgen werden "geclustert".

Erst in einem späteren Schritt ( und auf diese Feststellung lege ich besonders wert ) werden die "geclusterten" Informationen mit dem Feedback ( wenn ich Mama sage, lacht meine Mutter ) verknüpft.

Überträgt man dies auf eine Struktur eines neuronalen Netzes bedeutet das:

1.Im Frühstadium "unüberwachtes Lernen"
Ich lerne, dass Feuer gelb ist

2.im späteren Stadium "überwachtes Lernen"
Ich lerne, dass ich mir die Hand verbrenne, wenn ich sie ins Feuer halte.

Manf
05.10.2006, 21:36
Das entscheidende Wort in diesem Satz ist "Wiederholung". Meiner Meinung nach lernt ein intelligentes System etwas, wenn eine Wiederholung auftritt.
Das erinnert mich bis dahin an ein Experiment das in
http://www.ciao.de/Wie_wirklich_ist_die_Wirklichkeit_Watzlawick_Paul_ _704280 beschrieben ist.

Ein Tier das in seinen Käfig (Unterkunft) zurückkehrt erhält nicht wie gewohnt gleich etwas zu essen. Es reagiert dann mit Suchen und unterschiedlichem Verhalten, bis es offensichtlich gelernt hat, was die Essensausgabe auslöst und wiederholt dann dieses Verhalten und erhält auch jedes Mal seine Belohnung.

Unter gleichen Umgebungsbedingungen können dabei verschiedene Tiere unterschiedliche Verhaltensmuster lernen und erfolgreich anwenden, wenn es in Wirklichkeit nur um eine Zeitverzögerung handelt.

Die Belohnung ist aber so wichtig, dass das zunächst zufällige und dann durch Wiederholung offensichtlich bestätigte, erfolgreiche Verhaltensmuster erlernt und genau eingehalten wird.

Ein derartiges Verhalten kommt in der einen oder anderen Form auch im Umgang von Menschen untereinander vor. Das verbreitert etwas das etwas pointierte Experiment mit den Affen. Vor allem ist es auch kein Widerspruch zu der Aussaage, dass man durch Wiederholung lernt.
Manfred

PicNick
06.10.2006, 08:50
Nun, da zuerst bei allen Wahrnehmungen die einzige erkennbare Kausalität von Ereignissen einfach die Koinzidenz ist, kann die nur durch Statistik von Zufällen unterschieden werden.
Gerade bei einfachen Individuen reicht das ja auch völlig. Wenn's blitzt, dann donnert's (meist) auch. Man kann uralt mit dieser Festellung werden, ohne weiter hinter die Dinge blicken zu müssen.

PicNick
08.10.2006, 14:46
Ich werd' diesen Thread kurz mal aufwärmen.

Vielleicht kommen ja noch ein paar Ideen dazu.

stochri
08.10.2006, 19:46
Na gut, dann wärmen wir in ein wenig auf. Es ist ja noch lange nicht alles gesagt.

Es reagiert dann mit Suchen und unterschiedlichem Verhalten, bis es offensichtlich gelernt hat, was die Essensausgabe auslöst und wiederholt dann dieses Verhalten und erhält auch jedes Mal seine Belohnung.

Das klingt nach einer typischen Anwendung für einen genetischen Algorithmus. Es werden zufällige Bewegungsmuster entworfen, und diejenigen, welche einen kleinen Teilerfolg bringen, werden weiterverfolgt. Fragmente dieser Bewegungsmuster können dann wieder kombiniert und zufällig verändert werden.

Ich habe mir schon überlegt, so etwas zu realisieren. Bei meinem Kollisionserkennungsalgorithmus für den ASURO kann es ( selten ) passieren, dass sich der Asuro in den Kabeln an meinem Computer verfängt. Hier habe ich das Gefühl, der Algorihtmus müsste sein Bewegungsmuster ändern, damit er sich befreien kann.

Allerdings gestaltet sich die Untersuchung des Verhaltens ziemlich schwierig, da man den ASURO über längere Zeit beobachten müsste, um postive Effekte des Algorithmus zu sehen.

PicNick
09.10.2006, 08:41
..längere Zeit beobachten ..

Was immer man in dieser Richtung versucht, man wird sich einen guten Teil damit beschäftigen müssen, wie und was man protokolliert/loggt/analysiert, um weiterzukommen.

nooob
27.10.2006, 14:53
ich habe mir das für meinen roboter so vorgestellt..

es gibt eine haupt do..loop schleife.. in dieser werden sensorwerte ausgelesen und danach durch if-abfragen benutzt..
dann gibt es noch einige zähl-variablen (siehe weiter unten), die NACH diesen if abfragen auf 0 gesetzt werden...

dann gibt es noch subroutinen in denen die ausweichalgorithmen stehen, zu beginn jeder subroutine wird der zähler um 1 erhöht (k=k+1)
dann kommt das eigentliche ausweichen
und am ende dieser subroutine wird geprüft ob der zählerstand 10 (oder so) erreicht wurde..

eckt der roboter nirgends an und kommt nach dem ausweichen wieder in die hauptschleife mit geradeausfahrt -- > also kein eintreten eines weiteren if-falles, dann wird der zähler ja auf null zurückgesetzt..

bleibt der bot allerdings hängen und der zähler hat keine möglichkeit auf null gesetzt zu werden da immer schon vorher in die subroutine gesprungen wird, wird der zähler also immer größer..
bei zählerstand =10 könnte man aus dieser ausweich-subroutine in eine anti-dead-lock-sub-sub-routine springen...-> der bot fährt rückwärts, dreht sich in die andere richtung , piepst, etc..


meint ihr das ist ein guter ansatz???

stochri
27.10.2006, 17:18
Das Kriterium für die Anti-dead-lock-routine muss ja eigentlich ein Kriterium folgender Art sein: " Wie oft pro Zeit erkennt der Roboter eine Kollision ?".
Das "wie oft pro Zeit" scheint mir in Deinem Algrotihmus zu fehlen.

nooob
27.10.2006, 17:43
hm joa.. stimmt..
das ist aber denk mal ein anderer ansatz, ich bin halt davon ausgegangen, dass er, um ein hindernis zu umfahren oder um aus einer ecke rauszudrehen maximal 6-7 mal den ausweichalgorithmus braucht bevor er wieder mindestens ein kleines stückchen geradeausfahren kann... dieses kleine geradeausstück braucht er um den zähler zu resetten

stochri
28.10.2006, 05:36
Was aber passiert, wenn der Robter in eine Situation wie eine Fliege in ein Fliegenglas gerät und den Ausgang nicht mehr findet ? Also sozusagen in den Dead-lock?
Der Roboter würde immer ein kleines Stück fahren, ansoßen, wieder fahren.
Um diese Situation zu erkennen, hiflt eben das Kriterium Kollisonen pro Zeit.
Man könnte anstatt dem Zeitbezug auch einen Wegbezug verwenden. Also: Kollisonen pro gefahrenem Meter.