Ohne Vorkenntnisse Roboter für Wettbewerb konstruieren
Hallo,
Ich will einen Roboter für ein konkretes Projekt entwerfen. Und zwar ein Roboter für den Robocup Junior Rescue. Ich und mein Team haben dort in den vergangenen drei Jahren mit einem Legoroboter teilgenommen. Nun wollen wir uns daran wagen einen selber zu bauen. Leider hat keiner von uns Ahnung wie man sowas anstellt. Ich habe ein bischen nach Boards gegoogelt. Dabei sind mir die Boards von http://www.shop.robotikhardware.de/ aufgefallen. Ich denke auf der Basis so eines Boards kann man so einen Roboter gut Konstruieren. Was muss er können? Er muss einer Schwarzen Linie auf weißem Grund folgen können, Silberne und Grüne Männchen (aus klebeband) finden, Hindernisse umfahren, eine Rampe mit 25° Steigung überwinden und in einer Speziellen Zone (Rote Zone) ohne Linie eine Suchroutiene fahren, wobei er von (Schutt) Zahnstochern gestört wird. Alternativ nochmal die Orginalregeln von 2007 auf Englisch: http://rcj.sci.brooklyn.cuny.edu/rcj...rules-2007.pdf . Im Anhang noch ein Bild von einem Pacour. Dass heist man braucht zum Durchfahren:
1. Lichtsensoren zum Folgen der Linie und finden der
Männchen
2.Taster und Abstandssensoren zum Erkennen von Hindernissen und Wänden
3. Ein Neigungssensor zum Erkennen der Rampe
4. Einen Kompasssensor zum Durchfahren der 'roten Zone'
5. Sensoren zum Messen der Drehzahl der Motoren
Wir brauchen also ein Board an das wir alle diese Sensoren in großer zahl anschließen können. Leider fängt das Problem schon damit an, das ich nicht weiß wo man geeignete Sensoren kostengünstig her bekommt und welche Anschlüsse ein Board haben muss, um diese anzusteuern. Ich habe bei http://www.shop.robotikhardware.de verschiedene Senosoren gesehen, weiß aber nicht ob diese geeignet sind und welche Anschlüsse sie haben.
Schlussendlich lauten die Fragen dann also so: Welches Board ist für so ein Vorhaben passend? Gibt es Sensoren, die vernünftige Werte zurückgeben und sich in größerer Zahl an das Board klemmen lassen? Was für ausgänge brauchen diese Sensoren? Bietet das Board auch andere wichtige Funktionen wie zb. genügend Rechenleistung, Timer, kleine Lautsprecher, genügen Speicher und Unterstützung von Hochsprachen wie c?
Ich währe sehr dankbar wenn ihr mir wenigstens ein Paar Boards nennen köntet die für sowas taugen. Danke im Voraus,
das schon angesprochene RN-Control Board ist sicher ein guter Einstieg in die Welt der Microcontroller. Am Board hat ein ATMega32 seinen Platz, der auf bis zu 16 MHz läuft sowie 32KB-Flash Speicher 2 KB RAM sowie ein EEPROM bietet. Hier könnte man schon einige Sensoren anschließen, genügend Ports sollten schon verfügbar sein.
Als Abstandssensor könnte man einen US oder einen IR-Sensor verwenden, das hängt von der Genauigkeit ab, die erzielt werden muss, und vom maximal zu messenden Abstand. (Die IR-Sensoren von Sharp gibts zum Beispiel sehr günstig bei www.csd.de
Zu den Neigungssensoren: da gabs mal einen Thread (https://www.roboternetz.de/phpBB2/ze...gssensor+asuro), in dem ein Neigungssensor an einen ASURO angeschlossen wurde, vllt. kannst du da was herauslesen, was für dich passend wäre.
Den Kompasssensor könnte man ebenfalls bei robotikhardware.de bestellen, dass wäre dann wohl der CMPS03.
Für die Bestimmung der Motordrehzahl wäre evtl. eine Gabellichtschranke sinnvoll. Da kann man einfach in ein Zahnrad vom Motor/Getriebe in gewissen Abständen Löcher hineinbohren, und so aus der Frequenz der Lichtschranke auf die gefahrene Geschwindigkeit schließen.
Auch die Art der Ansteuerung der Motoren wäre zu überlegen, da brauchst du noch einen Motortreiber, der aber schon am RN-Control integriert ist und bequem angesteuert werden kann.
Dieses Board kann auch in C programmiert werden, damit hab ich aber keine Erfahrung.
Auch ein kleiner Beeper zum Generieren von Signaltönen findet sich auf dem Board.
Was mich noch interessieren würde: mit welchem Lego-Roboter habt ihr da am Bewerb teilgenommen? Der NXT (soviel weiß ich) verfügt ja über einen ARM, ein sehr viel leistungsfähigerer Controller als der ATMega32.
Falls aber tatsächlich so viel Leistung erforderlich ist, kann man auch einfach mehrere Controller über ein Bussystem verbinden und so die Leistung erheblich steigern.
Ja, ob die Rechenleistun reicht, mal sehen, Wichtig ist halt, das man viele Sensoren ansteuern kann und das das Board auch genügend Power hat, diese auszuwerten.
Die Frage ist was für Motoren man nimmt, ich würde ja Servos nehmen, das sie glaube ich am wenigsten Platz verbrauchen, der Roboter muss nämlich in einen Zylinder passen, der 22cm hoch ist und den selben Durchmesser hat. Außerdem darf er nicht so viel wiegen....
Aber ich habe keine Ahnung ob sie genügend Kraft haben. Vieleicht doch Getriebemotoren.....?
Bei den Abstandssensoren ist wichtig das sie einen Bereich von etwa 1-40cm gut auseinanderhalten können...
Über welche Ports laufen denn die Sensoren? Dann weiß ich auf was ich achten muss wenn ich mir das Board anschaue, was ist für mich überhaupt wichtig?/was brauche ich?
Eine weitere Frage ist, wie viele Sensoren ich an das Board anklemmen kann, da ich zum Teil mehrere Reien Lichtsensoren anschließen möchte, dazu kommen dann noch mehrere Taster und Abstandssensoren.
Wenn einem die Rechenleistung nicht ausreichen sollte, kann man einige kompliziertere Sensoren, z.B. Linien oder Abstand auf einen Extra Controller auslagern. Eigentlich sollter das aber mit einem Controller reichen, wenn man es effizient programmiert.
Als Motor gibt es ein relativ kompaktes Modul mit 2 Getreibmotoren, das sollte etwa richtige Größenordnung sein.
Beim Kompass, ist nicht klar, ob man den wirklich braucht um ein Stück geradeaus zu fahren.
Gerade wenn das der erste völlig selbst entworfene Robot ist, sollte man erst man etwas einfacher anfangen und sachen wie den Kompass oder neigungssensor später dazunehmen.
Ich hab mir jetzt aus Zeitgründen nicht alles genau durchgelesen, bitte nicht steinigen
Hier mal mein Senf
- Servos (nicht gehackt) haben nur einen Drehbereich von ca. 180°. Sie können keine vollen Drehungen machen. Wenn du Getriebemotoren verwendest, solltest du Sensoren zur Drehrichtungs- und Streckenbestimmung miteinplanen. Bei solchen Wettbewerben ist wichtiger zu wissen wie weit man genau gefahren ist als wie schnell man fährt...
Ich würde da gleich zu Schrittmotoren greifen.
- Das Kompassmodul würde ich in Turnieren nicht einsetzten! Und wenn dann nur wenn es redundant ist. Ich habe schon von vielen gehört, die auf den Sensor gesetzt haben und der dann im Turnier nicht mehr funktioniert hat weil die ganzen Felder im Saal (WLAN, Handyfunk, RC-Funk, etc...) den Sensor total verwirren.
Wenn ihr vorher noch nie soetwas gemacht habt würde ich erst einmal kleine Brötchen backen und mich ersteinmal in die Materie einarbeiten.
Das allerwichtigste an solchen Geräten ist nicht die Hardware sondern die Software. Die tollsten Sensoren helfen nicht viel wenn man sie nicht gekonnt einsetzt und durch gute Algorithmen ins System miteinbezieht.
Mit HF störungen sollte der Kompass eigentlich noch klar kommen. Die Gefahr von Einstrahlungen trifft aber alle Empfundlichen Sensoren.
Ein echtes problem können aber Magente (z.B. in Motoren) und Eisenteile sein, und sei es auch nur im Stahlbeton. Daher ist ein Kompass in Gebäuden immer mit Vorsicht zu behandeln.
Klein anfangen kann da nichts schaden, und sei es auch nur mit einem Asuro. Von der Mechanik ist das ein verbreitetes und einfaches. Schrittmotoren haben als Nachteil einen relativ hohen Stromverbrauch und relativ hohes Gewicht. Für wirkliche Höchstleistungen sind sie damit kaum geeignet.
der Mega32 hat ja 32 frei verwendbare I/O - Leitungen. Für einen Infrarotsensor (der im Bereich 0 - 80cm ganz gut funktioniert), benötigt man einen analogen Port, davon hat der Mega32 8, d.h. man könnte max. 8 IR-Sensoren verwenden.
Die Auswertung funktioniert bei den IR von Sharp über eine Spannung, die der Sensor ausgibt. Diese Spannung hängt von der Entfernung ab, die der Sensor misst und kann über eben diesen analogen Port ausgewertet werden und über eine Formel (siehe Wiki) in die Entferung umgerechnet werden.
Der Kompasssensor kann über I2C in das System eingebunden werden, und über bequeme Routinen abgefragt werden.
Für die Taster nimmt man ganz normale I/O - Pins, der Taster schließt dann entweder den Kontakt nach VCC bzw. nach GND. Dass kann man dann auch entsprechend im Programm erkennen und darauf reagieren.
Für die Motoren, die sollen wahrscheinlich auch in ihrer Geschwindigkeit regulierbar sein? Da braucht man dann einen PWM - Ausgang. Der Mega32 hat davon 3 solcher Ausgänge, die Hardwaremäßig angesteuert werden können, d.h. man braucht im Programm keine Rechenzeit für die Ausgabe des Signals verwenden. Es können aber auch an allen anderen Ports solche Signale ausgegeben werden können, dass muss man dann aber mit Software machen.
... mich würde trotzdem noch interessieren, mit welchem Roboter ihr da bisher teilgenommen habt, da wir in der Schule auch was mit diesen Lego Robotern machen [-o< ...
Wenn du dieses Getriebemodul meinst: http://www.shop.robotikhardware.de/s...products_id=92
wird wohl das Problem sein, dass wir auf der Rampe aufliegen könnten, dadie Motoren so lang sind. Aber ich muss mir das nochmal anschauen. denn bei der Konstruktion muss man stark darauf achten, das man einen Roboter baut, der gut drehen kann, die rampe hoch kommt und dabei die Sensoren möglichst nah am Boden hällt, das ist schwierig zu realisieren.
Das mit dem Kompass ist doch schon relativ wichtig das es sein kann, das die Räder auf dem Schutt (Zahnstocher oder ähnliches) durchdrehen und man dadurch nicht bestimmen kann, wie weit man gedreht hat/wo man ist.
Bei der WM hatte ein Team aus Deutschland so einen Kompassensor und das hat ihnen in der 'Roten Zone' doch noch einmal einen größeren Vorteil gebracht!
Klein anfangen ist hier leider sehr schwierig, da wir die Teile einfach brauchen um durch den Pacour durch zu kommen....
@Foooob:
Naja, ich hätte jetzt Servos genommen, da sie schön kompackt sind, aber du hast recht, zumindest die Zahl der Umdrehungen zu kennen.
Das Problem bei Schittmotoren ist halt das Gewicht, die größe und der Strombedarf. Schrittmotoren haben halt eigenschaften, die genau entgegengesetzt zu dem stehen, was wir brauchen. Ein Team an unserer Schule hat Servos gehackt und die Drehsperre entfernt. Ich weiß aber nicht wie sie es geschafft haben, das beide Motoren gleich schnell fahren, was einer der Grundforaussetzungen für einen Roboter ist, da er sonst verzieht.
Der Kompass hat bei einem anderen Team ganz gut funktioniert (siehe Antwort zu Besserwessis Beitrag ) Ich glaube auch das Kompasssensoren da relativ unempfindlich sind. Zdem versuchen die Organisatoren die Pacours von Magnetfeldern vern zu halten. Bei der WM zb. ist ja nicht nur der Robocup Junior sondern auch der Große. Vor allem für die Humanoiden etc. ist das ja nicht ganz unerheblich, das kein Magnetfeld da ist.
Ja, die Programierung ist wichtig, aber ich denke nach drei Jahren Wettbewerbserfahrung und eben so langem Informatikuntericht kriegen wir das schon so halbwegs effizient hin. außerdem können wir ja noch ein Board als Slave anschließen
ikarus_177:
Wir haben in den Beiden ersten Jahren mit dem RCX Teilgenommen und dieses Jahr mit dem NXT, was auch halbwegs gut geklappt hat, da wir an die 4 Ports, die das Teil hat, 7 Sensoren dran gekrigt haben (RCX Adapdakabeln sei dank ) Aber jetzt haben wir die Schnauze halt voll von diesem minimalistischen System Wobei der Weltmeister unserer Liga (Robocup Junior Rescue secondary) auch einen NXT fährt und wir mit dem dritten Platz auch nicht so schlecht wahren . Also es ist Machbar mit einem NXT oben mit zu fahren, aber der Wettbewerb wird von Jahr zu Jahr härter da immer mehr Teams ihren Roboter selber bauen und so allein von der Hardware her einen Vorteil haben.
Achso, na dann
Nein, ich dachte ihr wärt völlig neu auf diesem Gebiet. Also keine Kenntnisse in Elektronik und Programmierung. Dann wärs heikel geworden...aber so
Ich habe selbst noch an keinem Wettbewerb teilgenommen, aber das mit dem Kompassmodul habe ich schon von mehreren gehört.
Der Sensor misst Flussdichten im µT-Bereich. Und das ist einfach so wenig, dass es leicht zu stören ist. An die Sache mit den elektrischen Feldern glaube ich selbst nicht richtig, mir haben die das immer gesagt
Von irgendwelchen Metallteilen oder Robotern in der Umgebung rührt dieses Verhalten aber definitiv nicht. Ich habe selbst einen solchen Sensor hier. Metallteile oder gar Motoren in der unmittelbaren Umgebung (<10cm bis 20cm) haben teils massive Auswirkungen auf den Sensor, aber alles was etwas weiter weg ist wirkt sich nicht mehr oder nur gering auf die Messungen aus.
Zu den Servos.
Ja die kann man hacken, desswegen habe ich mich auch extra auf die nicht gehackten bezogen. Es gibt einige Seiten im Netz wo das mit dem Servohacking beschrieben ist.
So, um nochmal alle Informationen Zusammenzutragen, was man wo anschließt:
1. Tastsensoren können an einfache I/O Ports angeschlossen werden. Da von hat das RN-Board 32.
2. IR-Abstandssensoren (und Utraschallsensoren?) brauchen analoge Ports, davon gibts 8.
3. Servos brachen einen pwm Port, davon gibts drei und man kann dieses Signal auch manuell durch andere Ports geben.
Nun fehlen noch Angaben über Gabellichtschranken (danke ikarus_177 für die gute Idee), über Lichtsensoren und Neigungssensoren.
@Foooob:
Naja, ausprobieren kann man das mit dem Kompass ja mal. Die Teile wird uns wohl die Schule finanzieren
Lesezeichen