PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein erstes Roboterprojekt



AnNaRF
04.08.2012, 00:39
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 smiley


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? smiley

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.

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!

AnNaRF
04.08.2012, 00:43
Unabhängig von den Sensoren macht mir am meisten Sorgen wie ich die zurückgelegte Strecke (Richtung, Distanz etc.) anhand der Zeit und der Geschwindigkeit bestimmen kann?
Wie bekomme ich die Geschwindigkeit raus?

toter_fisch
04.08.2012, 11:59
Um die Geschwindigkeit herauszufinden musst du wissen wie schnell sich deine Räder drehen und welchen Umfang sie haben. Die Umdrehungen kannst du ganz leicht per Lichtschranke messen. Geschwindigkeit ist dann Drehzahl der Räder mal Umfang : V = D*U

Gruß toter_fisch

AnNaRF
04.08.2012, 13:39
Ah... wie beim Fahrradcomputer - darauf bin ich noch garnicht gekommen.
Welche Lichtschranken gibt es denn da so um das realisiert zu bekommen wenn ich zB das oben von mir gewählte Kinderspielzeug (RC Auto) als Basis nehme?

PICture
04.08.2012, 14:00
Hallo!


Wie bekomme ich die Geschwindigkeit raus?

Am eifachsten ist den Roboter über bekannt lange Strecke (L) fahren lassen und dafür nötige Zeit (t) messen. Dann ist die Geschwindigkeit sicher v = L / t .

AnNaRF
04.08.2012, 14:03
Der Roboter kann unterschiedlich schnell fahren und je nach Steigung/Neigung und Untergrund würde auch ein ansonsten nahezu gleichschnell fahrender Roboter unterschiedlich schnell fahren.
Zudem dürfte bei dem o.g. Projekt klar sein dass es schwierig wird bekannte Strecken abzustecken; das funktioniert also mit einfach v = s/t sicher nicht :)

Die Umdrehungen der Räder zu messen klingt sinnvoll; alternative wäre das aus Beschleunigungen herauszurechnen, aber das dürfte sehr fehleranfällig werden.

AnNaRF
04.08.2012, 14:09
Bis auf welche Lichtschranken man hierfür verbauen könnte (insb. in Anbetracht des Chassis).
Und genau diesbezügl. bräuchte ich mal einen Tipp.

oberallgeier
04.08.2012, 14:13
Hallo AnNaRF

willkommen im Forum.


Ah... wie beim Fahrradcomputer ... Welche Lichtschranken ...Ziemlich ähnlich dem Tacho/Kilometerzähler beim Fahrrad"computer". Das Stichwort dazu heißt Odometrie (griechische Wortstämme: métron => messen und hodós => Weg).

Eine Möglichkeit ist, das Signal direkt an der Motorwelle zu messen, so mache ich es (klick). (https://www.roboternetz.de/community/threads/32293-DC-Kleinstmotor-mit-Getriebe-Drehsensor-5V-510-Upm/page2?p=401963#post401963) Ist relativ genau - aber da steckt dann natürlich das Getriebespiel mit drin. Macht nix, die Odometrie auf diese Weise ist sowieso nicht sehr genau, weil Du den Schlupf der Räder nie genau einplanen kannst (Ausnahme: ein unbelastetes Rad hinterherziehen - machen die Autoentwickler manchmal bei Testfahrten). Meine Lichtschranke ist der Größe meiner Motoren angepasst - es gibt natürlich auch Dinge, die nicht so fisselig klein sind. In meinem WALL R - ein 1:20-RC-Car den ich umgebaut habe auf NUR-Controller-gesteuert - messe ich direkt am Rad. Da kommt es mir auf die Genauigkeit nicht so sehr an. Klick hier für Thread/Video. (https://www.roboternetz.de/community/threads/40453-WALL-R-läuft-(autonomes-Fahrzeug))

So - nun wäre das nur die Hardware zur Geschwindigkeitsmessung. Ich habe die Lichtschranken an einem interruptfähigen Controllereingang und detektiere auf eine Flanke. Die zugehörige ISR liest dann nen Timer aus (bei mir ist das die interne Borduhr) - daraus rechne ich die Geschwindigkeit und regle meinen Motor exakt auf die Vorgabe (nicht beim WALL R - wie geschrieben). Es gibt da unterschiedliche Ansätze.

Hindernissensoren nehme ich relativ einfache, selbst "gezimmert" - auf IR-Basis (klick wieder). (https://www.roboternetz.de/community/threads/33984-Abstandsmessung-ähnlich-wie-IR-Schnittstelle-des-asuro) Vorteil : die sind mit besser als 1 kHz deutlich schneller als das üblicherweise Käufliche. Nachteil: es ist keine Messung sondern nur ne Schätzung, aber mein WALL R fährt damit an die 1,5 m/s - und donnert nur sehr selten wo an.

Viel Erfolg.

PICture
04.08.2012, 14:20
Ich vermute, das du die v ständig messen willst, dann hat es der toter_fisch schon gut erklärt. Anstatt einer Lichtschranke könntest du zum Drehzahlmessung eines Rades auch z.B. ein kleines Magnet am Rad und Reedkontakt bzw. Hallsensor probieren. ;)

AnNaRF
04.08.2012, 14:21
Hallo AnNaRF

willkommen im Forum.

Ziemlich ähnlich dem Tacho/Kilometerzähler beim Fahrrad"computer". Das Stichwort dazu heißt Odometrie (griechische Wortstämme: métron => messen und hodós => Weg).

Eine Möglichkeit ist, das Signal direkt an der Motorwelle zu messen, so mache ich es (klick). (https://www.roboternetz.de/community/threads/32293-DC-Kleinstmotor-mit-Getriebe-Drehsensor-5V-510-Upm/page2?p=401963#post401963) Ist relativ genau - aber da steckt dann natürlich das Getriebespiel mit drin. Macht nix, die Odometrie auf diese Weise ist sowieso nicht sehr genau, weil Du den Schlupf der Räder nie genau einplanen kannst (Ausnahme: ein unbelastetes Rad hinterherziehen - machen die Autoentwickler manchmal bei Testfahrten). Meine Lichtschranke ist der Größe meiner Motoren angepasst - es gibt natürlich auch Dinge, die nicht so fisselig klein sind. In meinem WALL R - ein 1:20-RC-Car den ich umgebaut habe auf NUR-Controller-gesteuert - messe ich direkt am Rad. Da kommt es mir auf die Genauigkeit nicht so sehr an. Klick hier für Thread/Video. (https://www.roboternetz.de/community/threads/40453-WALL-R-läuft-(autonomes-Fahrzeug))

So - nun wäre das nur die Hardware zur Geschwindigkeitsmessung. Ich habe die Lichtschranken an einem interruptfähigen Controllereingang und detektiere auf eine Flanke. Die zugehörige ISR liest dann nen Timer aus (bei mir ist das die interne Borduhr) - daraus rechne ich die Geschwindigkeit und regle meinen Motor exakt auf die Vorgabe (nicht beim WALL R - wie geschrieben). Es gibt da unterschiedliche Ansätze.

Hindernissensoren nehme ich relativ einfache, selbst "gezimmert" - auf IR-Basis (klick wieder). (https://www.roboternetz.de/community/threads/33984-Abstandsmessung-ähnlich-wie-IR-Schnittstelle-des-asuro) Vorteil : die sind mit besser als 1 kHz deutlich schneller als das üblicherweise Käufliche. Nachteil: es ist keine Messung sondern nur ne Schätzung, aber mein WALL R fährt damit an die 1,5 m/s - und donnert nur sehr selten wo an.

Viel Erfolg.

Danke!
Das war hilfreich!

oberallgeier
04.08.2012, 14:23
... je nach Steigung/Neigung und Untergrund ... unterschiedlich schnell fahren ...Genau deswegen kann man die Drehzahl der Motoren regeln. Dann wird - je nach Vorgabe UND je nach Widerstand - so viel oder so wenig "Gas" gegeben, dass die gewünschte Geschwindigkeit rauskommt. WENN man sich nicht etwas wünscht, das der Karren mit der eingebauten Leistung nicht erreichen kann. Dieses System ist so eine Art "Tempomat" - bei dem der Controller laut Software oder sonstigen Vorgaben die Geschwindigkeit vorgeben kann. Der Regler macht den Rest *ggg*.

Für die Regelung messe ich die Sprungantwort (klick) des Gesamtsystems (!) (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=427784&viewfull=1#post427784) und daraus wird die notwendige Einstellung der Regler abgeleitet. Zu "Sprungantwort" sieh mal nach bei Regelu ngstechnik (im RNWissen oder sonstwo).

AnNaRF
04.08.2012, 14:24
Ich vermute, das du die v ständig messen willst, dann hat es der toter_fisch schon gut erklärt. Anstatt einer Lichtschranke könntest du zum Drehzahlmessung eines Rades auch z.B. ein kleines Magnet am Rad und Reedkontakt bzw. Hallsensor probieren. ;)

Yep, das macht Sinn.
Die Idee mit dem Magnet finde ich gut - Kaufempfehlung was da was taugt?

oberallgeier
04.08.2012, 14:31
Yep, das macht Sinn ...Na ja, die Messung am Rad bringt aber nur ne mässige Genauigkeit, weil man da meist nur einmal pro (Rad-) Umdrehung misst. Mein MiniD0 geht auf einen Millimeter Wegstrecke und mein Dottie auf ein Zehntel Millimeter Wegstrecke genau - weil ich dort an der Motorwelle - vor dem Getriebe messe.

Man muss eben in der Entwurfphase sich die Vor- und Nachteile der Systeme überlegen - das tust Du ja gerade.

PICture
04.08.2012, 14:40
@ AnNaRF

Ich habe zuletzt erfolgreich ausprobiert: http://www.pollin.de/shop/dt/MzA0ODU1OTk-/Bauelemente_Bauteile/Mechanische_Bauelemente/Montagematerial/Magnet.html und sowas http://www.pollin.de/shop/dt/OTY0OTU2OTk-/Bauelemente_Bauteile/Mechanische_Bauelemente/Relais_Zugmagnete/Reedrelais_MEDER_DIP12_2A72_21L.html . Die Reedrelais ermöglichen die Empfindlichkeit aufs Magnetfeld des Magnets per Strom durch die Spule ändern (quasi Reedkontakte mit einstellbarer Empfindlichkeit). ;)

AnNaRF
04.08.2012, 14:43
Na ja, die Messung am Rad bringt aber nur ne mässige Genauigkeit, weil man da meist nur einmal pro (Rad-) Umdrehung misst. Mein MiniD0 geht auf einen Millimeter Wegstrecke und mein Dottie auf ein Zehntel Millimeter Wegstrecke genau - weil ich dort an der Motorwelle - vor dem Getriebe messe.

Man muss eben in der Entwurfphase sich die Vor- und Nachteile der Systeme überlegen - das tust Du ja gerade.

Genau.
Das was Du gemacht hast sieht schon deutlich schwieriger aus (für mich Anfänger).
Mein Plan ist ja die ganze Steuerung des günstigen RC Autos zu übernehmen und den Arduino anzuflanschen - ginge Dein Ansatz dann überhaupt?
k/A wie die Motorn in solchen Fahrzeigen aussehen:

http://www.amazon.de/gp/product/B005FQYZP0/ref=s9_simh_gw_p21_d0_i1?pf_rd_m=A3JWKAKR8XB7XF

oberallgeier
04.08.2012, 15:02
... Steuerung des ... RC Autos zu übernehmen und den Arduino anzuflanschen ...Hmmm, da ich das Fahrzeug nicht kenne, kann ich dazu nix sagen. Aber so wie ich die Fernsteuerungen dieser Billigautos kenne (mein WALL R war ja selbst so eins) - gibts für den Motor (vermutlich nur) eine Ein-Aus-Steuerung.


... Während der Roboter gesteuert wird soll er fahrbare Wege "lernen" ... soll nun von einem beliebigen Punkt A nach B geschickt werden können und den Weg ohne aktive Steuerung selbst zurücklegen ...Genau dafür wird die Simpel-Ein-Aus-Steuerung nicht reichen.

AnNaRF
04.08.2012, 15:54
Hm... Alternativvorschlag?

PICture
04.08.2012, 16:29
Die Suche in unserem Forum (ganz oben rechts auf der Startseite des Forums) sollte dir ausreichende Vorschläge liefern, z.B. beim Suchbegriff: "Roboter Anfänger". ;)

AnNaRF
04.08.2012, 16:50
Die Suche in unserem Forum (ganz oben rechts auf der Startseite des Forums) sollte dir ausreichende Vorschläge liefern, z.B. beim Suchbegriff: "Roboter Anfänger". ;)

Mache ich seit ein paar Stunden.
Suchbegriffe waren "Chassis", "Gehäuse", "RC Auto", und nun auch die von Dir genannten - eine Evaluation gut geeigneter RC Autos die sich "gerne" umbauen lassen habe ich nicht entdecken können.

PICture
04.08.2012, 16:56
Dann würde ich vermuten, dass es für Anfänger zu kompliziert seien könnte. ;)

oberallgeier
04.08.2012, 17:19
... vermuten, dass es für Anfänger zu kompliziert seien könnte ...
... was Du gemacht hast sieht schon deutlich schwieriger aus (für mich Anfänger ...Da liegt ein Teil des Problems.


... Steuerung des günstigen RC Autos zu übernehmen und den Arduino anzuflanschen - ginge Dein Ansatz dann überhaupt ...Neee - mein Ansatz geht so nicht. Ums mal pampig zu sagen: meine Platine hat keinen Flansch. Und eine Evaluation gut geeigneter RC Autos die sich "gerne" umbauen lassen - Mönsch - erklär mir mal wie Du so etwas evaluieren möchtest. Abgesehen davon, dass ich keine RC-Autos kenne, die sich gerne umbauen lassen.

PICture hat schon angedeutet, dass Du Ziele festgelegt hast, die nicht zu Deiner Interpretation eines "Anfängers" passen. Für mich sind Stichpunkte wie "Webserver (auf Arduino) ..." oder "virtuelle Karten lernen..." schon ein Zeichen, dass dieser Anfänger nicht bei Null beginnt. Vielleicht haben wir uns aber in die Irre leiten lassen von Deinem "habe Zeit und bin experimentierfreudig".

AnNaRF
04.08.2012, 17:20
Vielleicht hätte ich erwähnen sollen dass ich mir als Informatiker son bissl was zutraue; der Webserver usw. macht mir keine Sorgen - aber die richige Hardware zu wählen macht mir zu schaffen :)
Ich will ja auch nicht alles sofort umsetzen, es soll ja, wie geschrieben, Phasen geben und vllt muss ich am Ende erkennen dass ich über Phase 1 nicht hinauskomme :)

Aber momentan bin ich ja nich in der Planung.
Vllt ist der Outcome der Planung dass es zuviel des Guten ist :)

Datenheld
06.08.2012, 11:24
Vielleicht hätte ich erwähnen sollen dass ich mir als Informatiker son bissl was zutraue; der Webserver usw. macht mir keine Sorgen - aber die richige Hardware zu wählen macht mir zu schaffen :)
Ich will ja auch nicht alles sofort umsetzen, es soll ja, wie geschrieben, Phasen geben und vllt muss ich am Ende erkennen dass ich über Phase 1 nicht hinauskomme :)

Aber momentan bin ich ja nich in der Planung.
Vllt ist der Outcome der Planung dass es zuviel des Guten ist :)

Hi AnNaRF, genau das gleiche will ich auch machen, auf Basis einer NiboBEE. Elektronik und Software ist mein Ding, Mechanik und Modellbau leider nicht. Allerdings möchte ich nicht auf einem Arduino aufsetzen, sondern alles bei der Elektronik selbst machen! Schließlich sind wir mit 8bit zum Mond geflogen. Wollte ein GPS Modul noch hinzufügen, Infrared und UV Vision. Datenübertragung per xBee oder auch Wifi an einen Hub/Hivemind. Später evtl. als Schwarm erweiterbar. Wo kommst du her? Wir könnten uns evtl. zusammentun.