Roboterprojekt

Hi Leute,

ich stecke gerade in der Mitte der Planung für mein Roboterprojekt.
Der Roboter soll in 2 Phasen entwickelt werden und über 2 Hauptmodi verfügen.

Phase 1:
Der Roboter soll sich Remote (von einem PC oder Smartphone) steuern lassen, dh auf Kommandos wie VOR, ZURÜCK, RECHTS, LINKS und Geschwindigkeitsanpassungen etc. reagieren.
Die Kommunikation (Empfang der Kommandos) soll dabei über eine WiFi Verbindung (alternativ später vllt irgendwann mal 3G) erfolgen.
Normalerweise würde ich hier auf etwas wie HTTP basierte Kommunikation zurückgreifen, bin mir aber noch unsicher welche Optionen es gibt.
Während der Roboter gesteuert wird soll er fahrbare Wege "lernen" (auf einer virtuellen Karte "speichern") und Hindernisse erkennen (und ebenfalls "abspeichern").
Kernfrage ist ob diese Karte auf dem Roboter hinterlegt wird oder auch auf dem Rechner/Smartphone welches steuert. Tendenz ist dies auch auf dem Roboter zu hinterlegen.
Eine Idee wäre daher auf dem Roboter einen kleinen Webserver, evtl. mit PHP laufen zu lassen so dass die Kommandos zB via REST gesendet werden können und die Karte via REST abgefragt oder HTML visualisiert werden kann; Frage ist nat. ob hierzu die Rechenpower ausreicht.
Während der Fahrt kann eine Kamera und ein Mikrofon zugeschaltet werden um die Fahrt live zu verfolgen.
Dies also erstmal die Grundidee.

Phase 2:
Der Roboter der nun virtuelle Karten gelernt hat soll nun von einem beliebigen Punkt A nach B geschickt werden können und den Weg ohne aktive Steuerung selbst zurücklegen.

So, dies also er Plan.
Vorweg: Informatiker, etwas Elektronik/Digitaltechnikkenntnisse, aber noch nicht viel mit Robotik und/oder Arduino gemacht.
Aber ich habe Zeit und bin experimentierfreudig :slight_smile:

Nun, zum Equipment:

  1. Chassis/Fahrzeug
    Ich benötige ein Chassis und denke dabei an ein geräumiges Fahrzeug in/auf dem ich problemlos mein Equipment unterbekomme; evtl. falls die Rechenleistung nicht reicht auch ein zweites Board etc.
    Das Chassis sollte schon mit ansteuerbaren Antrieb (optimal auch Geschwindigkeitsregelbar) ausgestatt sein.
    Es gibt dafür ja fertige Kits; manche nehmen aber wohl auch Kinderspielzeug und bauen es um.
    Empfehlungen?
    VIelleicht sowas?: http://www.amazon.de/Amewi-22053-Monstertruck-farbich-sortiert/dp/B002AR0LUU

  2. Board
    Für Phase 1 würde ich als Board erstmal das Mega ins Visier nehmen.
    Im Auge habe ich: http://www.watterott.com/de/Arduino-Mega-2560 oder http://www.watterott.com/de/Arduino-Mega-ADK (siehe unten)

  3. Shields
    a) WiFi - doch welches und warum?
    WiFi sollte sich eine IP über DHCP holen können; Verschlüsselung wie WEP und WPA1/2 wäre toll.
    Im Auge habe ich: http://www.watterott.com/de/Arduino-RedFly-Shield oder http://www.watterott.com/de/SparkFun-WiFly-Shield

b) Entfernungs/Hindernisssensor?
IR/Ultrasonic? Was ist besser?
Ich bräuchte ja vermutlich min. 4 (für jede Seite einen)
Empfehlungen?
Im Auge habe ich: http://www.watterott.com/de/Ultraschall-Entfernungsmesser

c) "Webserver"?
Empfehlungen?

d) Speicher für die Karte?
Evtl. für Speicherung auf SD Karte?
Empfehlungen?
Im Auge habe ich: http://www.watterott.com/de/MicroSD-card-breakout-board-v1
Macht das Sinn: http://www.watterott.com/de/Adafruit-Data-Logging-Shield

e) Video/Audio?
Empfehlungen?
Audio: http://www.watterott.com/de/Breakout-Board-mit-ADMP401-MEMS-Mikrofon oder http://www.watterott.com/de/Breakout-Board-mit-Kondensatormikrofon
Was ist ein Breakoutboard? :slight_smile:

Video: http://www.watterott.com/de/LinkSprite-JPEG-Color-Camera-TTL-Interface

Für Phase 2 bräuchte ich dann wohl noch mehr Sensoren, insb. Geschwindigkeitssensoren, Hindernisssensoren, etc.
Was denkt Ihr würde man da normalerweise brauchen?
Sicher mal irgendwas um die Richtung festzustellen: http://www.watterott.com/de/MicroMag-3-Achsen-Magnetometer
Und die Geschwindigkeit: Mit was misst man die?
Oder eben GPS, aber ds geht ja dann in der Wohnung nicht.

Update (Danke ans Forum für diese Tipps!):
Encoderset: http://www.watterott.com/de/Pololu-42x19mm-Rad-Encoder-Set
Oder über Lichtschrankenansatz

Reicht die Power eines Mega für das Projekt aus bzw. welche Alternativen (2 Boards etc.) gibt es?
Eine Idee wäre es sonst mein Android Smartphone für den Empfang der Kommandos, Abspeicherung der virtuellen Karte und Anzapfung von Video/Audio irgendwie mit dem Board zu verbinden.

Um am Anfang etwas mit dem Arduino warm zu werden, gibt es da gute "Lernkits" mit dem notwendigen Anfangsequipment wie "Steckplatinen", "Gekabel", paar LEDs und Widerstände etc.?
Und noch eine ganz dumme Frage hinterher? Wie verbinde ich die Shields am besten mit dem Board?

Danke!

...die Karte via REST abgefragt oder HTML visualisiert werden kann; Frage ist nat. ob hierzu die Rechenpower ausreicht.
Während der Fahrt kann eine Kamera und ein Mikrofon zugeschaltet werden um die Fahrt live zu verfolgen.

"HTML visualiseren" braucht keine Rechenpower auf dem Server, solange du an Text denkst. Vergiss Grafik, HTML = ASCII Text.
Wenn wie Verbindung zwischen webcam und Arduino aus einem digital Signal oder meinetwegen einem http GET oder POST für (Kamera an / Kamera aus) besteht, kein Problem. Für alles andere bin ich auf deine Projektvorstellung gespannt.

Phase 2:
Der Roboter der nun virtuelle Karten gelernt hat soll nun von einem beliebigen Punkt A nach B geschickt werden können und den Weg ohne aktive Steuerung selbst zurücklegen.

Was versehst du unter "gelernt" ? In Phase 1 hast du etwas gespeichert, was man "Karte" nennen kann. Unklar ist mir, wie daraus "eigene" Aktionen entstehen können. Aber ich bin kein AI Experte...

Wenn du sagst, das ist alles kein Problem für mein Android, nur die Räder und Motoren fehlen, dann ist ein Arduino auf jeden Fall richtig.

d) Speicher für die Karte?
Evtl. für Speicherung auf SD Karte?
Empfehlungen?
Im Auge habe ich: http://www.watterott.com/de/MicroSD-card-breakout-board-v1
Macht das Sinn: http://www.watterott.com/de/Adafruit-Data-Logging-Shield

Der eine kann microSD, der andere hat eine DS1307 Uhr, was für data logging sehr sinnvoll ist.

Und noch eine ganz dumme Frage hinterher? Wie verbinde ich die Shields am besten mit dem Board?

Du nimmst den Arduino in eine Hand, das Shield in die andere, und steckst beide so zusammen, dass es passt. Wie Lego, nur in einem anderen Rastermaß und elektrisch.
Bei einem Breakout Board (statt Shield) ist es etwas komplizierter. Da ist evtl. nur das Rastermass passend und du brauchst noch ein bisschen Bastel-Draht und ein Steckbrett für den Start. Ein paar LED / Widerstände sollte man auch zur Hand haben. Ob man sich ein Lernkit zulegt, in dem noch ein paar Spielsensoren sind, oder ob man gleich mit den Sensoren, die man kennenlernen will, spielt, ist eher Geschmackssache.

Klingt nach einem spannenden Projekt. Ich hoffe Du hältst durch, denn es wird ein sehr langer Weg.
Als Webserver würde sich vermutlich der Raspberry Pi anbieten der dann via UART (serielle Schnittstelle) die Steuerbefehle an einen Arduino weiterleitet. Ggf. reicht der Raspberry auch allein, allerdings ist da die Zahl der GPIOs recht klein.

Danke.
Ich werde sicher einen Blog einrichten und Euch gerne an dem Verlauf teilhaben lassen.
Die Idee mit dem Rasperry kam mir auch schonml.

Hat jmd noch Antworten/Empfehlungen zu meinen Fragen oben?
Chassis, Sensoren, Berechnung der zurückgelegten Entfernung (Geschwindigkeit) etc?

Während der Fahrt kann eine Kamera und ein Mikrofon zugeschaltet werden um die Fahrt live zu verfolgen. Dies also erstmal die Grundidee.

Bei all den von dir geplanten Features würde ich mich selber wahrscheinlich für einen STM32F4 Discovery und nicht für einen Arduino entscheiden !

STM32F4 Discovery:
http://www.watterott.com/de/STM32F4Discovery

Als Kompass würde ich folgendes empfehlen, da hier auch die Neigung des Fahrzeuges berücksichtigt wird:

Tilt Compensating a Compass with an Accelerometer
https://www.loveelectronics.co.uk/Tutorials/13/tilt-compensated-compass-arduino-tutorial

Ah, klasse, das macht Sinn.

Macht der Rest meiner Sensorenwahl halbwegs Sinn?
Hat jmd eine bessere Empfehlung für ein Modellauto dessen Steuerung ich beibehalten will und über den PWM Anschluss des Arduino kontrollieren können will?

Für die Geschwindigkeit herauszubekommen wurde mir empfohlen Lichtschranken zu benutzen und die Umdrehungszahl der Räder pro Zeit bei bekanntem Umfang zu bestimmen.
Welche Lichtschranken eignen sich für sowas?

Vermute mal das etwas in dieser Richtung gemeint ist:

Encoder Set
http://www.watterott.com/de/Pololu-42x19mm-Rad-Encoder-Set

Geht aber auch so:

Homemade wheel encoder
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1257038219

Klasse!
Das letztgenannte ist super - sowas hab ich gesucht, das dürfte auch genauer sein als diese Lichtschrankensache.

Frage ist jetzt nur welches RC Auto (Spielzeugauto) man nehmen kann an dem man die verbauten Räder abbekommt und die hier dargestellten dran bekommt?
Tipp?

Vermute mal das bei den meisten Autos der Durchmesser der Radachse nicht mit angegeben sein wird.

Bei den Rädern sieht es dahingend anders aus.

Könnte etwas Tüftelei bedeuten !

Wieviel Räder soll das Fahrzeug den haben ? 4 .. 6 .. ?

Welche Länge in cm ?

Preislimit für das Modell alleine ?

Dachte an 4.
Länge/Breite: Relativ egal, aber schon etwas größer damit man auch Platz hat :slight_smile:
Preislimit ca. 200 EUR (grob).

Btw. - Danke für Deine Hilfe!

Modell incl. Fernsteuerung oder ohne ?

Eigentlich brauch ich keine Fernbedienung, will ihm ja später die Kommandos über WiFi mitteilen.

Anbei die Bilder eines Tamiya RC Monstertrucks 'Black Foot':

L X H X B: 40cm x 26cm x 28cm

Damit Du abschätzen kannst wie gut sich die von dir geplanten Teile in ein solches Modell einbauen lassen, zumindest wenn es ähnlich aufgebaut ist.

Bei dem Modell war damals keine Fernsteuerung dabei, müsste man separat erwerben und einbauen !

Nice, aber ganzschön eng.
Wobei ich nicht so der Optikfetischist bin; wenn ich was aussendrauf schnallen müsste wäre das auch ok.

Frage ist nun wie ich was finde an das ich dieses (oder ein ähnliches) Encoderset vernünftig dranbekomme...
Oder eben wirklich nur ein leeres Chassis und auch Räder und Servos etc. selbst verbauen, aber das wollte ich eigentlich vermeiden, dann wirds ja noch komplizieter, oder ist das eher "einfach"?

Die Servos deines Modellaustos kannst Du dann übrigens über einen Maestro steuern:
http://www.lipoly.de/index.php?main_page=advanced_search_result&search_in_description=1&keyword=maestro

dann wirds ja noch komplizieter, oder ist das eher "einfach"?

Dann wird es individueller !

Ich würde so eine Scheibe wie man sie für den Decoder benötigt an der Innenseite der Hinterreifen befestigen und den Decoder an den Kunstoffbereich durch den die Hinterachse führt.

Der Einbau eines Servos in ein solches Modell ist eigentlich sehr einfach !
Das heisst wenn es für den Einbau solcher vorgesehen ist !

Ok, nehmen wir mal an ich entscheide mich für den "individuelleren" Weg.
Dh "nacktes" Chassis mit einem 6Kanal Servo (ich nehm an ich pro 1 Kanal pro Rad) und 1x dem Encoderset (Servo vorne reicht ja).
Kannst Du bei dem Setup ein Chassis empfehlen?

Die Minigetriebemotore die zu dem Encoderset verlinkt sind taugen?

Die Minigetriebemotore die zu dem Encoderset verlinkt sind taugen?

Schwer zu sagen, habe mit den Teilen selber keine Erfahrung !

Ich selber würde dies bevorzugen:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1257038219

Megaionstorm:

Die Minigetriebemotore die zu dem Encoderset verlinkt sind taugen?

Schwer zu sagen, habe mit den Teilen selber keine Erfahrung !

Ich selber würde dies bevorzugen:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1257038219

Wobei das auch auf die Räder einer fertigen Lösung anbringbar sein müsste, richtig?

hi,

ich würde einfach die 2 sensoren verwenden, die in einer alten PS2-kugelmaus verbaut sind. wenn Du die original-elektronik verwendest, kannst Du die signale direkt mit 2 pins des arduino eopfangen und hast auch gleich 3 entprellte taster dabei, die vielleicht für andere zwecke hilfreich sind. ich hab' diese schaltung ausprobiert, läuft einwandfrei und kostet nicht mal was.

http://arduino.cc/playground/componentLib/Ps2mouse

gruß stefan