PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Künstliche Intelligenz mit dem Arduino?



LoroLoco
21.01.2018, 07:35
Hallo Leute.
Viele, die sich ernsthaft mit Roboter-Programmierung beschäftigen, nehmen die Funktionsweise des menschlichen Gehirnes als Basis ihrer Projekte.

Nun, so unglaublich das klingt, auch mit zwei oder mehreren Arduinos lässt sich so etwas realisieren.
Ich habe erst vor einigen Monaten angefangen, mich mit dem Arduino auseinander zu setzen, und kann natürlich mit den alten Hasen hier nicht mitreden. Aber ich versuche mich so umfangreich wie es nur geht über die Möglichkeiten dieses Mikrokontrollers schlau zu machen.

Ich arbeite gerade an einem Modell eines Mars Rovers, der umfangreiche Sensoren an Bord hat, die man per Smartphone via Bluetooth jederzeit vom Rover abfragen kann.
Er kann "intelligentes Leben" orten über einen Wärmesensor; wenn er belästigt wird, schießt er Salven aus einer Laser Diode ab; und mit einem 2-Achsen System kann er seine Umgebung per "Fledermaus-Ortung" links/rechts und rauf/runter abtasten.
Mittels seinen sechs unabhängig voneinander drehbaren Rädern (durch Servos) kurvt er (hoffentlich bald) durch die Gegend.

Man sieht schon, ich benötige jede Menge Schnittstellen, um das alles zu steuern. Jetzt aber zurück zu meiner Behauptung, dass man mit Arduinos das menschliche Gehirn nachahmen kann.

Grob gesehen funktionieren unsere grauen Zellen ja aus einer Schicht, die das Unterbewusste (urzeitliche, grundlegende Lebensfunktionen) bilden, und einer durch die Evolution darübergestülpte Schicht, dem Bewusstsein, welches sich dauernd einbildet, alles unter Kontrolle zu haben.

Dass dem nicht so ist, sieht man in Gefährdungssituationen, wo unser Unterbewusstsein schnell die Steuerung an sich reißt, um unser Leben zu retten.

Es geht jetzt (meiner Meinung nach), wenn wir versuchen per Programm so ein Verhalten nach zu ahmen, weniger um trickreiche "künstliche Intelligenz" Software (LISP, Prolog, etc), sondern um die Nachbildung dieser Arbeitsteilung aus "Reptilien-Gehirn" und "Großhirnrinde".

Darauf bin ich gekommen, als ich mir die "I2C" Schnittstelle des Arduino vorgenommen habe. Mit diesem Master-Slave Prinzip kann man ja nicht nur spezielle Treiberkarten und Sensoren bedienen, sondern auch zwei oder mehrere Arduinos miteinander verbinden.

In meinem Fall bildet ein Mega die "bewusste Gehirn-Schicht", und ein Uno das "Reptiliengehirn", welches für die grundlegendsten Funktionen des Rovers, wie herumfahren und nicht mit Hindernissen kollidieren zuständig ist. Der Datenaustausch zwischen den beiden "Gehirnen" läuft jetzt über die "I2C" Schnittstelle.

Das sind also meine Ideen zum Thema "menschenähnliches Verhalten" mittels mehrerer Arduinos nachzubilden.
Jede Schnittstelle für sich ist bereits getestet und funktioniert, jetzt geht es "nur mehr" darum, ein in sich schön verschachteltes Ganzes zu programmieren.

Ich stelle mir ein möglichst autonomes Fahrzeug vor, welches sich von nichts und niemanden stoppen lässt (ok, von mir schon!).

Jetzt noch eine Beschreibung der Hardware, welches Schlussendlich meinen Rover ausmachen werden:

Ein Arduino Uno, und einen damit verbundenen Mega. Der Mega holt sich seinen beachtlichen Strombedarf aus einer Handy-Powerbank, welche sich über Solarzellen von selbst nach-lädt.
Der Uno, der ein Adafruit-Motortreiber Shield bedient, bekommt seinen Strom über den Adafruit Shield, der wiederum über sechs 1,6 V Akkus, sodass die Motoren satte 9 Volt nutzen können.
Für diese Akkus habe ich auf dem Rover eine kleine Ladeelektronik montiert, die mir gleichzeitig den Ladezustand der Akkus anzeigt.

An Sensoren gib es bis jetzt Temp/Luftfeuchte, Helligkeit, Abstandsmessung, IR-Sensor, Kompass, UV-Sensor und Bewegungs-Erkennung.
Der IR-Sensor, eine Laser Diode und die Ultraschallsensoren sitzen auf einem um 180 Grad beweglichen "Hals", welcher sich über zwei Achsen mittels zwei Servos bewegen lässt.

Auf Anzeigen jeglicher Art am Rover selbst habe ich verzichtet (außer der Ladestands-Anzeige für die Akkus), dafür ist das Smartphone bestens geeignet.

Nun meine Frage: Hat sich jemand von euch mit so einem, oder ähnlichen Projekt bereits befasst? An einem umfangreichen Meinungsaustausch wäre ich sehr interessiert. Thx, Geri. :p

i_make_it
21.01.2018, 09:05
Hallo und willkomen.

Der Titel ist ja ganz ehrlich, ein bischen reißerich. so in Richtung wie die Schlagzeilen bei "Bild". Wenn er nicht als Frage formuliert wäre.
Was Du beschreibst, ist eher die übliche Arbeitsteilung wie sie z.B. heute in jedem Mittelklasse und Oberklasse Auto vorkommt.
(Steuereinheit für ABS/ASR, Lambdaregelung/Treibstoffgemeisch, Navi/Multimedia, Einparkassistent, Tempomat, etc. Und da drüber die Cockpitintegration).
Oder bei Industriemachinen wo es Schnittkraftüberwachung, Achsregelung, Sensor Vorverabeitung, etc. gibt und die eigentliche Steuerung (CNC/SPS).
Oder auf Ebene einer ganzen Fabrik. Wo es von der Sensor-(ASI)/Feldbusebene bis hoch zu SCARDA Systemen geht.

Hier mal ein Beispiel, was so als Ansatz für künstliche Intelligenz allgemein angesehen wird und was da an Leistung dahinter steht:
Eine IBM Watson Instanz besteht aus 10 IBM Power 7 Schränken, mit 90 x Power 750 Server, 2880 Power 7 CPU Kernen, 500GB/s on Chip Bandbreite, 16 TB RAM, 20 TB HDD, 80 Terraflops.

Du schreibst sehr selbstbewust, das Dein Rover "intelligentes Leben" orten kann und nutzt dazu einen Wärmesensor.
Da würde mich jetzt interssieren, wie Du den auswertest um zum einen generell mal Leben von unbelebten Wärmequellen zu unterscheiden und wie Du den Begriff "intelligent" deffinierst. Von meinem Verständniss der Möglichkeiten eines Wärmesensors, sehe ich nämlich keine Möglichkeit mit diesem Sensortyp auf Sensorebene zwichen inelligent und nicht intelligent zu unterscheiden.

inka
21.01.2018, 10:10
hallo,

ich habe mich mit einzelnen aspekten eines autonemen roboters beschäftig. IR-navigation (http://rn-wissen.de/wiki/index.php?title=IR-bake_f%C3%BCr_den_RP6), induktive ladestation (http://rn-wissen.de/wiki/index.php/Induktive_Ladestation_f%C3%BCr_den_RP6), omni move (https://www.roboternetz.de/community/threads/69646-omni-move-roboter) raeder und die kombination nehrerer microcontroler (https://www.roboternetz.de/community/threads/68955-neues-fahrgestell-arduino-mega-RP6-M256-WIFi-und-Ardu_IO/page3?p=624981&viewfull=1#post624981) (noch weniger als ein erster ansatz)... Was mich interessieren würde ist dein plan der integration der einzelnen "funktionen", damit jede für sich immer parat und wenn gebraucht auch sofort genutzt werden kann...

oberallgeier
21.01.2018, 10:20
.. Viele, die sich ernsthaft mit Roboter-Programmierung beschäftigen, nehmen die Funktionsweise des menschlichen Gehirnes als Basis ihrer Projekte ..Nein, das sehe ich wirklich nicht. Programmierung jeder Art hat m.E. was mit Logik zu tun, mit Semantik und Abstrahierbarkeit. Und ich weiß nicht ob sich irgendjemand zutraut die Funktionsweise des menschlichen Gehirns annähernd zu verstehen (siehe z.B. Spektrum der Wissenschaft 1.18 "Triumph der KI" und 10.16 "GPS im Gehirn"). So haben May-Britt Moser und Edvard I. Moser schon für Arbeiten an einem kleinen Teilgebiet der Gehirnfunktion (siehe "GPS im Gehirn") den 2014er Nobelpreis für Physiologie/Medizin bekommen.


.. Der Titel ist ja ganz ehrlich, ein bischen reißerich. so in Richtung wie wie die Schlagzeilen bei "Bild" ..Ja, reißerisch im Sinne von Bild. Wobei die Sprachkünstler von Bild sowas aber mit einem wirklich minimalistischen Wortschatz machen - wirklich mediales Können.


.. Behauptung, dass man mit Arduinos das menschliche Gehirn nachahmen kann ..Also mit einem größeren Cluster von üblichen PCs geht das vielleicht ansatzweise? Mit Arduinos haben einige Forumskollegen schon neuronale Netze programmiert; da vermute ich aber, dass diese Kollegen nicht von gehirnadequater geistiger Potenz sprechen würden. Eher von einer verständnisfördernden überschaubaren Modellbildung. Und KI ist ja nicht gleich Funktion des menschlichen Gehirns.

Einen Rover mit etlichen Sensoren (Zitat : ".. so unglaublich das klingt, auch mit zwei oder mehreren Arduinos .. Modell eines Mars Rovers, der umfangreiche Sensoren (http://www.rn-wissen.de/index.php/Sensorarten) an Bord hat ..") ist für einen Anfänger (".. vor einigen Monaten angefangen, mich mit dem Arduino auseinander zu setzen ..") sicher ein großes Projekt. Alle Achtung vor dem Mut gleich so etwas anzufangen. Aus meinen eigenen Zugang zur Materie weiß ich, dass anfangs die Fähigkeiten dieser Minirechner schon sehr beeindrucken.

Immerhin bin ich gespannt, was aus Deinem Projekt im Laufe der Zeit werden wird. Vielleicht fällt da etwas für mich ab. Bisher hat mein Archie ja erst zwölf Controllerplatinen - eine Zentrale und elf Satelliten (https://dl.dropboxusercontent.com/s/4pzc61yk56ug9ej/Archie-Topo.jpg?dl=0). Aber eben noch keinen arduino . . .

HaWe
21.01.2018, 10:54
Mit Arduinos haben einige Forumskollegen schon neuronale Netze programmiert; da vermute ich aber, dass diese Kollegen nicht von gehirnadequater geistiger Potenz sprechen würden. Eher von einer verständnisfördernden überschaubaren Modellbildung. Und KI ist ja nicht gleich Funktion des menschlichen Gehirns.

Immerhin bin ich gespannt, was aus Deinem Projekt im Laufe der Zeit werden wird.
stimme ich beidem zu.
Das wesentliche Merkmal eines höheren Tier-Gehirns ist ja Lern-Fähigkeit, und zur Modellierung von 100 künstlichen lernfähigen neuronalen Zellen (Perceptrons) in einem 2-schichtigen neuronalen Netz braucht man ca. 100kB. Das geht grade mal mit einem Arduino Due (92kB): das habe ich bereits erfolgreich gemacht, allerdings ist die Performance dann immer noch reichlich anspruchslos.
100 Nervenzellen ist größenordnungsmäßig etwa das, was ein Wurm hat (vgl. C. elegans mit insgesamt sogar ~300, allerdings ist der noch nicht mal lernfähig).
Ein Mensch hat etwa 100 Milliarden (also 109 mal so viele) Nervenzellen im Großhirn, plus etwa genau so viele modulierende Zellen (aktivierende, hemmende, nicht lernfähige, wie z.B. Gliazellen) - und ich bin mir nicht mal sicher, ob die von Kleinhirn, Stammhirn und Medulla nicht sogar noch dazu kommen.
Und was die interne Architektur eines menschlichen Gehirns angeht (Verschaltung in -zig Ebenen) - : ich glaube, davon hast du nicht annähernd auch nur die blasseste Vorstellung (wenn überhaupt jemand).


Daher schließe ich mich an:
Ich lass mich von deinem Ergebnis überraschen.

LoroLoco
21.01.2018, 11:33
Der Titel war ja auch durchaus satirisch gemeint, darum das Fragezeichen hinter dem Titel. Auch das "intelligente Leben" steht in Anführungszeichen und ist damit als nicht ernst zu nehmen gekennzeichnet. Was mich aber wirklich fasziniert, ist, dass man mit so einem einfachen Mikrokontroller wie dem Arduino, durchaus so etwas wie eine "beinahe intelligente Steuerung" realisieren kann (indem man einfach mehrere über die I2C Schnittstelle verbindet. Klar kommt es jetzt auf eine gute Programmierung an, die zwei Kontroller so miteinander kommunizieren lässt, dass das Ergebnis deutlich besser ist, als man es mit nur einem Kontroller machen könnte. Ich bin durchaus nicht so bescheuert, dass ich denke, dass man mit einem Arduino dasselbe machen könnte, wie mit Hochleistungsrechnern. Mir ging es nur darum aufzuzeigen, dass man selbst mit einem Arduino durchaus gute Simulationen und Steuerungen realisieren kann. Ansonsten wünsche ich ein schönes Wochenende ...

- - - Aktualisiert - - -

Zwölf Kontroller-Platinen? Alle Achtung, da hast ja jede Menge Hardware und wahrscheinlich einen ziemlichen Stromverbrauch. Wäre interessant, so etwas mal in Bildern zu sehen. Thx. Geri

HaWe
21.01.2018, 11:54
Der Titel war ja auch durchaus satirisch gemeint, darum das Fragezeichen hinter dem Titel. Auch das "intelligente Leben" steht in Anführungszeichen und ist damit als nicht ernst zu nehmen gekennzeichnet. Was mich aber wirklich fasziniert, ist, dass man mit so einem einfachen Mikrokontroller wie dem Arduino, durchaus so etwas wie eine "beinahe intelligente Steuerung" realisieren kann (indem man einfach mehrere über die I2C Schnittstelle verbindet. Klar kommt es jetzt auf eine gute Programmierung an, die zwei Kontroller so miteinander kommunizieren lässt, dass das Ergebnis deutlich besser ist, als man es mit nur einem Kontroller machen könnte. Ich bin durchaus nicht so bescheuert, dass ich denke, dass man mit einem Arduino dasselbe machen könnte, wie mit Hochleistungsrechnern. Mir ging es nur darum aufzuzeigen, dass man selbst mit einem Arduino durchaus gute Simulationen und Steuerungen realisieren kann. Ansonsten wünsche ich ein schönes Wochenende ...

- - - Aktualisiert - - -

Zwölf Kontroller-Platinen? Alle Achtung, da hast ja jede Menge Hardware und wahrscheinlich einen ziemlichen Stromverbrauch. Wäre interessant, so etwas mal in Bildern zu sehen. Thx. Geri

mit 1 einzigen stärkeren ARM Prozessor samt Multithreading (z.B. Due mit Scheduler und DueTimer oder gar Raspi mit pthread) kann man weit mehr erreichen als mit mehreren kleinen AVRs, sowohl wegen cpu Takt als auch wegen Wegfall der limitierenden Kommunikation über sehr leistungsschwache Bus-Systeme wie i2c und wegen eines Vielfachen des dynamisch verfügbaren RAMs für einzelne Tasks/Threads. Also lieber 1 Due mit 92kB/84MHz als 12 Arduino Uno oder Mega mit je 2,5-8kB/16MHz plus langsame i2c- und UART-Kommunikation untereinander (weitere i2c Portexpander außen vor).

PS,
von Sarkasmus u/o Satire u/o Ironie lese ich hier nichts, das ist aber immer auch schwierig mit Sarkasmus u/o Satire u/o Ironie in Foren: das muss man daher deutlich klarer als solche kenntnlich machen, falls man es wirklich so meint.

damfino
21.01.2018, 12:30
Viele, die sich ernsthaft mit Roboter-Programmierung beschäftigen, nehmen die Funktionsweise des menschlichen Gehirnes als Basis ihrer Projekte.


Das einzige Projekt das sicher so etwas in der Art umsetzt ist NVIDIA mit deren autonomen Fahrzeuge.
Die füttern das neuronale Netz einfach mit allen Sensordaten und das Auto lernt daraus wie es zu fahren hat.

Was GM macht weiß ich nicht, vermute aber ähnliches. GM will ja 2019 die ersten autonomen Fahrzeuge ohne Lenkrad und Pedale auf den Markt bringen und verhandelt deswegen schon mit den Zulassungsbehörden in den USA.


Man sieht in den Videos wie das Auto zuerst mal den Kurs verlässt, der Fahrer eingreifen muss, aber mit der Zeit kann es richtig fahren.

Website (https://www.nvidia.com/en-us/self-driving-cars/drive-px/)

Video 1 (https://www.youtube.com/watch?v=-96BEoXJMs0&t=19s)

Video 2 (https://www.youtube.com/watch?v=-96BEoXJMs0&t=19s)

Aber das am Arduino ist mehr als sportlich, NVIDA hat spezielle Prozessoren mit enormer Rechenleistung dafür entwickelt.

oberallgeier
21.01.2018, 12:42
.. fasziniert .. so etwas wie eine "beinahe intelligente Steuerung" realisieren kann (indem man einfach mehrere über die I2C Schnittstelle verbindet ..Ich will Dir nicht den Wind aus den Segeln nehmen. ABer - oben habe ich einen Link auf die Topologie meines Archie. Knappe 1,5 m I²C-Kabel in meinem archie, es sind etliche Mithörer auf dem Bus, dazu die stets vorhandene Elektronik mit ihren (fast) unvermeidbaren hochfrequenten Störungen - da geht die Übertragungsrate in den Keller - und man feststellt, dass es nicht reicht mit >400 kHz zu senden *gg*. Also bei mir jedenfalls wars kein ".. einfach mehrere über die I2C Schnittstelle verbindet ..". Und dann will das Übertragungsprotokoll schon kritisch überlegt sein um Übertragungsdauer zu sparen. Wahrscheinlich bin ich für ne einfache Lösung noch zu sehr Anfänger.

Wie gesagt - ich bin auf Deine Lösungen gespannt.

LoroLoco
21.01.2018, 13:10
mit 1 einzigen stärkeren ARM Prozessor samt Multithreading (z.B. Due mit Scheduler und DueTimer oder gar Raspi mit pthread) kann man weit mehr erreichen als mit mehreren kleinen AVRs, sowohl wegen cpu Takt als auch wegen Wegfall der limitierenden Kommunikation über sehr leistungsschwache Bus-Systeme wie i2c und wegen eines Vielfachen des dynamisch verfügbaren RAMs für einzelne Tasks/Threads. Also lieber 1 Due mit 92kB/84MHz als 12 Arduino Uno oder Mega mit je 2,5-8kB/16MHz plus langsame i2c- und UART-Kommunikation untereinander (weitere i2c Portexpander außen vor).

PS,
von Sarkasmus u/o Satire u/o Ironie lese ich hier nichts, das ist aber immer auch schwierig mit Sarkasmus u/o Satire u/o Ironie in Foren: das muss man daher deutlich klarer als solche kenntnlich machen, falls man es wirklich so meint.

Ich habe ehrlich gesagt nicht damit gerechnet, dass ich hier auf Sheldon Cooper stoßen werde, aber bitte, hier ist es: Das Satire Schild.33232

HaWe
21.01.2018, 14:35
Ich habe ehrlich gesagt nicht damit gerechnet, dass ich hier auf Sheldon Cooper stoßen werde, aber bitte, hier ist es: Das Satire Schild.33232

ich bin dann mal auf deine nicht-satirischen Lösungen gespannt.
Echte KI auf MCUs oder SOCs, auch auf Arduinos, gibt es ja immerhin schon - sowohl für lernfähige Backpropagation Netze als auch für G- oder Q-Learning, SARSA u.v.m. .
Von daher ist bei deinem Titel "Künstliche Intelligenz mit dem Arduino? " überhaupt nichts satirisches zu verstehen oder zu erwarten, was du nunmehr nachträglich behauptest, ob mit oder ohne Fragezeichen.

KI hat aber andererseits auch absolut nichts zu tun mit einer reinen Arbeitsteilung zwischen verschiedenen Platinen, egal ob 2 oder 12.

i_make_it
21.01.2018, 22:25
Ich stelle mir ein möglichst autonomes Fahrzeug vor, welches sich von nichts und niemanden stoppen lässt (ok, von mir schon!).


Ich hoffe für Dich, daß Du das nicht so meinst wie Du es schreibst.
Und falls Doch, daß Du dich dann damit auf einem Planeten befindest, auf dem nur Du und Dein Roboter sind.
Im Idealfall sollte der Roboter vor jedem Lebewesen stoppen um es nicht zu verletzen.
Und ich denke auch Möbel etc. die im Weg sind, einfach zu schreddern anstatt dadurch gestoppt zu werden, dürfte auf Dauer etwas teuer werden.



wenn er belästigt wird, schießt er Salven aus einer Laser Diode ab

Ich hoffe für Dich daß Du das nicht ehnsthaft vorhast.
Es gibt da so Schutzbestimmungen zu Lasern.
Und mal als Beispiel: eine Katze hat eine deutlich bessere Nachtsicht als ein Mensch.
Dementsprechend auch lichtempfindlichere Augen als ein Mensch. Keine Ahnung ob es in Deiner Umgebung Katzen gibt, aber wenn dein Rover eine Katze blendet und das jemand mitbekommt ist das Sachbeschädigung und vermutlich Tierquälerei. Außerdem wer sollte den Rover "belästigen"? Und warum? Bzw. was für Vorgänge verstehst Du als Belästigung Deines Rovers?

Wenn ich den Eröffnungspost lese (auch grade die beiden Punkte oben) und sehe wo er im Forum steht, sehe ich ehrlich gesagt auch keine Satire sondern eher etwas das ein Bischen nach Naivität aussieht und noch etwas Defizit (oder falsches Verständniss) der aktuellen Situation wie Robotersoftware gestaltet ist, aussieht.

Gut, Du bist neu hier und es ist Dein erster Post. Ich vermute mal, das die Quellen durch die Du zu so Erkenntnissen wie:


Viele, die sich ernsthaft mit Roboter-Programmierung beschäftigen, nehmen die Funktionsweise des menschlichen Gehirnes als Basis ihrer Projekte.

gelangt bist, qualitaitv nicht besonders gut sind.

Mit ein paar Arduinos ist definitv keine KI und erst recht keine Simulation eines menschlichen Gehirns zu realisieren (siehe meine Daten zu einer Watson Installation)
Eine fahrbare Plattform mit Sensoren und Strategien zur kollisionsvermeidung und später ein SLAM System dazu sind aber schon mal eine gute Grundlage um sich mit dem Thema mobile, autonome Roboter auseinanderzusetzen.
Ob man dann eventuell mal darauf eine höhere Schicht aufsetzt um eine komplexere Aufgabenplanung zu realisieren zeigt die Zeit.

Ich hoffe das der "Gegenwind" den Du jetzt bekommen hast, Dich nicht gleich wieder vertreibt sondern Du das als Anfang einer angeregten Diskussion auffasst.

Manf
22.01.2018, 07:38
Das meiste ist ja gesagt, Gegenwind..., einige Beispiele sind eben nicht politisch korrekt gewählt oder die Beschreibung ist etws kurz, um den Punkt genau zu treffen.
Was etwas stört ist die Vermengung der Begriffe Künstliche Intelligenz und menschliches Verhalten.
Am Anfang steht auch das Beispiel Intelligenz über Wäremesensoren zu erkenen, das wohl auch etwas zu kurz beschrieben ist. Hier wäre dann ein Ofen anderen noch höheren Formen von Intelligenz überlegen.

Ein Weg wäre vielleicht, Künstliche Intelligenz an Beispielen zu betrachten und solche Formen herauszusuchen, die sich einfach realisieren lassen.

nicht so sehr an diesem Beispiel,
https://www.youtube.com/watch?v=_EpvEBfiyfQ

eher auf diesem Weg
https://news.microsoft.com/de-de/ki-auf-edge-devices/

oberallgeier
22.01.2018, 09:10
.. Ich stelle mir ein möglichst autonomes Fahrzeug vor, welches sich von nichts und niemanden stoppen lässt .. Um mal von Sarkasmus und neuromedizinischen Rundumschlägen zur Realität zu kommen: Ich hoffe, dass Dein Rover unter 50 Tonnen bleibt. Sonst fürchte ich für Deine Wohngegend, wenn Dein intelligenter Godzilla-Rover autonom, aber ziemlich destruktiv, alles niederbügelt. Wobei dazu weder Intelligenz noch Sensorik vonnöten sind.


.. An Sensoren gib es bis jetzt Temp/Luftfeuchte, Helligkeit, Abstandsmessung, IR-Sensor, Kompass, UV-Sensor und Bewegungs-Erkennung ..Vielleicht hast Du schon gehört, dass Gott die Erde an sechs Arbeitstagen erschaffen hat. Peu à peu - wenn man bei dem gewaltigen Unternehmen von "peu" sprechen kann. Sagen wir also sequentiell in gewissen Fort-Schritten von Grund auf.

Es würde daher meiner Meinung nach Sinn machen eine zweirädrige Plattform mit Gleitschuh aufzubauen. Da kannst Du dann den ersten Aufbau befestigen. Vorschlag: zwei Sensoren die vorwärts rechts und vorwärts links tasten (Ecken, Kanten und Wände gibts immer - jedenfalls so lange bis Godzilla auftaucht). Die Sensordaten sollen erfasst werden, meinetwegen an einen übergeordneten Rechner geleitet (erste Schritte in I²C) und daraus ein Fahrsignal abgeleitet werden. Dieses Signal steuert das einfache Vehikel. Wenn dieses Vehikel dann fahren kann - mit oder ohne Touch an Wänden und Ecken - und >nie< hängen bleibt, dann bist Du erstmal schon einen Riesenschritt vorangekommen.

Weniger wichtig:
.. Zwölf Kontroller-Platinen? .. Wäre interessant, so etwas mal in Bildern zu sehen. ..Da gibts Etliches. Ein Video dürftiger Qualität (https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=616209&viewfull=1#post616209) zur Präsentation von Synchonizität und motorischer Ausrüstung, nochn Video das (https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=638683&viewfull=1#post638683) nur die drei Finger einer Hand vorstellen soll. Und ein Schimmer "adaptiver Intelligenz" von Archie (Sekunde 7 bis 16 (https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=639031&viewfull=1#post639031)). Nicht ernst, aber irgendwie schick, auch wenns nur reininterpretiert ist.

HaWe
22.01.2018, 11:53
Am Anfang steht auch das Beispiel Intelligenz über Wäremesensoren zu erkenen, das wohl auch etwas zu kurz beschrieben ist. Hier wäre dann ein Ofen anderen noch höheren Formen von Intelligenz überlegen.
da käme jetzt wschl die Frage von Sheldon Cooper: " war das jetzt ironisch?" :p

i_make_it
22.01.2018, 12:13
Mittels seinen sechs unabhängig voneinander drehbaren Rädern (durch Servos) kurvt er (hoffentlich bald) durch die Gegend.


Dieser Aufbau erscheint mir für ein erstes (?) Projekt schon ziemlich komplex.
Und auch die Wahl von "Servos" (ich vermute RC-Modellbauservos) als Drehantriebe erscheint mir eher kritisch.
Servos haben feste Stellzeiten (die unter Last auch ganz ordentlich variieren können).
Da bei dieser Konfiguration die Räder alle auf Tangenten von Kreisbahnen mit dem selben Mittelpunkt fahren (Gradeaus = Radius unendlich) müssen und deren Drehzahl Proportional zum Radius ist.
Steckt da in der Regelung schon einiges drin.
Alleine der Übergang von Gradeausfahrt in Kurvenfahrt und Zurück.
Wenn man Autofährt, lenkt man ja nicht ruckartig ein so das Grade, Kreisbogen, Grade aneinandergereit sind, sondern man schlägt das Lenkrad mit bestimmter Drehgeschwindigkeit ein, hällt dann und geht wieder mit bestimmter Drehgeschwindigkeit zurück.
Das ist dann: Grade, Evolute, Kreisbogen, Evolute, Grade.

Soll der Rover nicht bei jedem Lenkmanöver anhalten wäre das für die Lenkung der 6 Räder zu programmieren und dann halt noch die abgestimmten Drehzahlen der Antriebsmotoren.

Tatäschlich ist für den Anfang und als Sensorträger (bis das geplante Fahrgestell funktioniert) das von oerallgeier vorgeschlagene Mikromaus Design ( https://www.google.de/search?q=micromouse+robot+design ) eine sehr gute Empfehlung.

So kannst Du Sensorik, Kollisionsvermeidung, Odometri und selbst Lokalisierung bereits angehen ohne auf das fertigwerden des von Dir favorisierten Fahrwerk Designs zu warten.

Bei den Sensoren währen tatsächlich erst mal ein paar Bumper (Kollisionserkennung) sinnvoll, dann kann man mit US und IR Sensoren eine Nahbereichs- (<60cm) Mittelbereichs (<3-4m) Erfassung dazunehmen.
Umweltsensoren sind für erste indoor Tests erst mal zweitrangig. Ein Lichtsensor für Solarladung macht Sinn wenn der Roboter es schafft mit dessen Wert als Sollvorgabe für die Wegplanung, auch erfolgreich einen Weg zu einem Ziel zu finden und kollisionsfrei abzufahren.
Ein PIR sensor um Wärmequellen zu finden, Temperatur und Luftfeuchte zu messen sind erst mal drittrangig.
Darum kann man sich kümmern wenn man an die Aufgabenplanung geht, vorher muß erst mal die Grundlage geschaffen werden, daß man eine geplante Aufgabe (z.B. in jedem Raum, alle 30 Minuten einmal Temperatur, Luftfeuchte und Helligkeit messen) auch erfüllen kann.

Was neben einem Kompass noch ganz gut ist sind Drehraten und Beschleunigungssensoren. Verlässt man sich auf die Alleine, dann muß man sich zwar mit deren Drift rumschlagen, aber um zu erkennen ob die Odometrie durch Schlupf grade falsche Werte liefert und das zu korrigieren sind die auf jeden Fall gut.

Ein Beispiel für eine sehr simple Plattform findest Du hier:
https://www.roboternetz.de/community/threads/68437-Vorstellung-eines-aktuellen-kleinen-Weihnachtsurlaub-Projekts-(ab-22-12-)/page2?p=622218&viewfull=1#post622218
Hatte das Projekt für meinen damals 7 Jahre alten Großneffen gestartet. Staubt momentan vor sich hin, da er A: danach kein Interesse mehr am selber machen sondern nur noch am teure Sachen kaufen lassen hatte (unterstütze ich nicht) und B: ich selbst durch Arbeitgeberwechsel deutlich weniger Freihzeit hatte und habe.

Der letzte Stand sind 4 Bumper, 4 IR-Reflexlichtschranken mit Schmidttrigger für die Odometrie, der 3 Kanal Linienfolger und zwei HC-SR04 US-Sensoren auf je einem Modelcraft Micro RC-Servo.
Sharp IR Sensoren für Treppenabsatz und Nahrbereichserkennung sind 8 Stück da, aber nicht montiert.
Softwaretechnisch gibt es einmal das reine Fahren mit Ausweichsmimik bei Kollision.
Und einmal den Linienfolger und die US-Sensoren.
Da mein Ziel ist alles auf einem Arduino Nano unterzukriegen, Befasse ich mich etwas (zeitlich zu wenig) mit PinChargeInterrupt und wie ich mit einer einzigen ISR für alle PINs eines Ports unterschieden bekomme welcher nun den IRQ ausgelöst hat.

HaWe
22.01.2018, 13:28
geht es jetzt überhaupt noch um das Thema "Künstliche Intelligenz mit dem Arduino?" ?
wenn ja, dann sollte man eher über KI-Algorithmen reden, nicht über elementaren Bumper-Car-Bau.
Wenn es aber um elementaren Bumper-Car-Bau geht, sollte man vlt eher einen neuen Thread aufmachen.

inka
22.01.2018, 13:57
die überschrift war wirklich ungeschickt gewählt...
in der beschreibung des threadstarters wurden aber auch andere themen erwähnt, die einer antwort wert sind...
abgesehen davon ist ja momentan im arduino forum nicht soooviel los, dass man so wählerisch sein muss...
ein paar infos waren - zumindest für mich - weil auch mit links versehen, durchaus lesenswert...

HaWe
22.01.2018, 14:05
die überschrift war wirklich ungeschickt gewählt...
in der beschreibung des threadstarters wurden aber auch andere themen erwähnt, die einer antwort wert sind...
abgesehen davon ist ja momentan im arduino forum nicht soooviel los, dass man so wählerisch sein muss...
ein paar infos waren - zumindest für mich - weil auch mit links versehen, durchaus lesenswert...

da halte ich aber dieses Topic für derart überladen, missverständlich, verwässert und satirisch, dass ich dir eher empfehlen würde, zu speziellen technischen Fragen eher ein eigenes Topic aufzumachen, ganz ohne Satire.
Da kann dann ja sogar der OP auch weiterhin mitlesen.

inka
22.01.2018, 14:13
mache ich doch schon :-), *ironie on* - muss aber nicht alles selber machen *ironie off*

i_make_it
22.01.2018, 15:11
Nun ein großer Fehler auf den ja auch Medien wie "Bild" bauen ist ja der das nur die Überschrift gelesen wird.

Da die Überschrift nur ein begrenzte Anzahl Zeichen hat, kann man halt nicht den Eröffnungspost komplett als Überschrift schreiben.
Es macht also Sinn den Inhalt des Eröffnungsposts zu nehmen um das oder die Themen zu erfassen um die es dem TO dort geht.
Hier wird halt das Antriebskonzept mit einem (hoffentlich bald) erwähnt was durchaus darauf schließen lässt, das der Verfasser sich nicht sicher ist ob und wie er das hinbekommt.
Dann werden auch die vorhandene Sensoren erwähnt.
Zusammen mit dem was insgesammt vom TO geschrieben wurde macht man sich halt ein Bild.
Ausgehend von dem was ich in dem Bereich schon erlebt habe, vermute ich einen entusiastischen Anfänger, der glaubt, das er alles schaffen kann.
Damit das nicht ganz schnell durch den Boden der Tatsachen und die Realität die einen da ganz schnell wieder hinbringt, zu einem frustrierten Individuum führt das hinschmeist,
dürfte es durchaus auch sinnvoll und zielführend sein hier Tips zu geben, wie man erst mal zu recht schnellen Teilerfolgen kommt und zu einer Plattform die funktioniert während an komplexeren Themen halt entsprechend länger gearbeitet wird.

Wer weis eventuell kommt später ja ein Raspi mit Preempt_RT Linux Kernel und Neuronale Netzwerke mit IDSA's Brainstorm Library drauf und auch auf die Arduinos kommen NN's.

Momentan sollte aber vermutlich erst mal das Krabbeln erlernt werden bevor man sich ans Gehen traut und vom Laufen träumt.
HaWe hat ja bereits selbst was zu den KI Möglichkeiten auf einem Arduino geschrieben.
Und seine Einschätzung zum Fachwissen des TO abgegeben.
Damit dürfte eigentlich klar sein, das erst mal kleinere Brötchen backen, angesagt ist.
Und da fängt es halt bei einfachen Sensoren etc. an.

Manf
22.01.2018, 16:01
Und seine Einschätzung zum Fachwissen des TO abgegeben
Mit Äußerungen zur Person sollte man ganz allgemein etwas zurückhaltend sein. Man kann sonst leicht bei der Diskussion in eine Sackgasse kommen. Mit Äußerungen zur Sache kann man ja schon viel ausdrücken.
Ich gebe zu, dass das Thema etwas komplex angegangen wurde, es läßt sich dann bei Bedarf noch nach einer allgemeinen Diskussion in weiteren Threads in Unterthemen aufspalten.

inka
23.01.2018, 10:51
interessant fand ich z.b. den beitrag von i_make_it (https://www.roboternetz.de/community/members/36239-i_make_it) in dem er von seinem versuch berichtet seinen großneffen an die robotik heranzuführen. Mir ist es mit meinem enkel (inzwischen bald 12) bei diesem projekt (https://www.roboternetz.de/community/threads/69646-omni-move-roboter) ähnlich gegangen, bin grandios gescheitert...
Das interesse am selbstgebauten zu lernen erlahmte leider viel zu schnell, die unterstützung durch die eltern war auch nicht soo doll (er lebt 600km weit weg), jetzt werden halt - auch ohne meine unterstützung - teuere fertige sachen gekauft...

HaWe
23.01.2018, 11:19
interessant fand ich z.b. den beitrag von i_make_it (https://www.roboternetz.de/community/members/36239-i_make_it) in dem er von seinem versuch berichtet seinen großneffen an die robotik heranzuführen. Mir ist es mit meinem enkel (inzwischen bald 12) bei diesem projekt (https://www.roboternetz.de/community/threads/69646-omni-move-roboter) ähnlich gegangen, bin grandios gescheitert...
Das interesse am selbstgebauten zu lernen erlahmte leider viel zu schnell, die unterstützung durch die eltern war auch nicht soo doll (er lebt 600km weit weg), jetzt werden halt - auch ohne meine unterstützung - teuere fertige sachen gekauft...
ja, Didaktik und Pädagogik sind schon eine Wissenschaft - und eine Kunst, vor allem die Kunst der Motivation und auch die Kunst des Weglassens (KISS) 8) ;)

i_make_it
23.01.2018, 15:17
Leider ist es auch eine Frage der Aufmerksamkeitsspanne und ob ein Kind gewohnt ist nur fertige Sachen gekauft zu bekommen oder selbst Leistung für etwas zu erbringen was es will.
Mein Großneffe hat jetzt in drei Jahren Judo, Klavier, Gitarre, Schlagzeug, Bodenturnen und Jugendfeuerwehr durch.
Ich verbuche das unter mangelndem Durchhaltevermögen.

Ich habe in den letzten 20 Jahren schon in eingen Schulen bei Projektwochen was angeboten und auch (nicht Robotik) Veranstaltungen in Kinderkrankenhäusern und Kindergärten angeboten. Es gibt immer welche die vorher ein glaubwürdiges Interesse zeigen und dann kommt nichts, selbst wenn man immer wieder auf sie zu geht.
Damit muß man halt leben.
In der Berufsausbildung hatte ich solche Kanidaten dann irgendwann fallen gelassen, da sie die Firma nur Geld kosteten das nie wieder reingeholt wurde. Lief dann auf Auflösung des Ausbildungvertrages hinaus. Beim eigenen Großneffen lässt man sich halt Zeit bis man ihn fallen lässt. Bei mir war es ein Jahr. Dann habe ich mir gesagt "die Zeit die ich da rein stecke kann ich auch anders nutzen".

Jimmybot
23.01.2018, 22:35
Wir (Ich und meine Frau) haben beobachtet, dass unser Sohn (mittlerweile fast 14 Monate alt) sofort alles liegen läst, wenn ich irgend was im Haushalt schraube. Ob es das Zusammenbauen von Möbeln war, der Tausch von Batterien in irgend welchen Geräten... Zum teil noch banalere Sachen... Er beobachtet und will dabei sein. Das liegt wohl daran, dass er schaut, was macht Papa, dass will ich auch.
Im Moment habe ich mich mit meinen Sohn darauf geeinigt, dass ich mit Duplo was versuche zu bauen, wären er es im gleichen Moment wieder auseinander nimmt.
Ich bin gespannt auf die Zukunft und wie weit er sich für Basteln und Technik interessieren wird.
Aber eines ist mir bewusst: kleine Schritte, kleine Erfolge und Alters gerecht fördern mehr als eine Hammer-selfmade-Spielzeug, wo man Monate ohne Kind baut.
Und das es noch ganz lange Zeit braucht, bis es soweit ist. :cool:

i_make_it
24.01.2018, 06:27
@Jimmybot: in dem Alter ist ein Kleinkind noch in der Prägungsphase. Lernen durch Nachahmen und Versuch und Irrtum kommen erst später.
In dem Alter kannst Du nur versuchen möglichst viel Zeit mit deinem Sohn zu verbringen und alles was Du positiv vermitteln willst möglichst oft zu wiederholen.
Wobei dieses Forum wohl nicht grade die Platform für Ratschläge zur frühkindlichen Erziehung ist. Und die Alterklasse auch eher das Fachgebiet meiner Frau als meine ist.
Eine Erziehung zum handwerklichen oder zur Technikafinität, braucht dann auch den Mut zum Machen lassen.
Ich hatte ein Kind in der Verwandschaft, der durfte von den Eltern her seit er 5 war bei mir alles machen. Umgang mit Feuer, mit scharfen Messern, Sägen und und ab 7 Bohren mit Akkuschrauber. Momentan macht der seinen KFZ Meister.
Ein anderes Kind sah mich beim Schnitzen, Durfte mein Werkzeug nie benutzen (zu gefährlich) und bekam ein stumpfes "Kinderschnitzmesser". Durch ständige "Misserfolgserlebnisse" (negative Prägung) ist das Interasse am Selbermachen komplett ausgetrieben worden. Das Kind ist systematisch zur absoluten Unselbstständigkeit erzogen worden, bis dahin das es ein Fall für wöchentliche Besuche beim Psychotherapeuten wurde. Eltern können da mit den besten Absichten sehr viel kaputt machen.

Moppi
05.09.2018, 08:49
Ich weiß, lange ist's her, dass hier was geschrieben wurde. Aber ich hoffe, LoroLoco wird nicht so schnell aufgeben!

Eigentlich hat er Anfangs sehr gut beschrieben, worauf er hinaus will. Ich sehe dort drei Dinge.

Zum Einem, dass er eine Idee hat, wie er sich an das Thema herantastet. Nämlich vermutlich so, wie es schon hunderte Leute vor ihm getan haben. Was nicht verkehrt ist, das führt über das Lernen zu einem Grundverständnis, um später die nächsten Schritte zu machen. Dieses Lernen erfolgt aus unterschiedlichen Fehlschlägen und Erkenntnissen. Hier ist der Weg das Ziel.

Zum Zweiten hat er eine Vorstellung, was er erreichen will. Nämlich komplexe Problemlösungen in einer Tiefe, die ein Mensch benötigen würde, um die tägliche Verrichtungen (zu denen auch Lernen gehört) zu bewerkstelligen. Das geht auf die Annahme zurück, dass der Mensch vor allem (in seinem Denken) grob nach folgender Funktionskette "arbeitet": Auslöser (Antrieb/Motivation...) -> Aufgabenerkennung -> Aufgabenanalyse -> Analyse der zur Verfügung stehenden Verfahren zur Aufgabenbewältigung/-Lösung -> Ausführung der Aufgaben zur Lösung bis hin zur Vollendung der gestellten Aufgaben (Lösung eines Problems).

Zum Dritten denkt er an eine Rekursion, bei der sich seine Maschine eventuell auch selber neue Aufgaben suchen könnte.

Eine interessante Sache und es lohnt sich für LoroLoco, sich dort einzuarbeiten. Man sollte nur mit wenig komplexen Dingen anfangen und das im späteren Verlauf ausbauen.