Dokumentation eines selbstgebauten autonomen

Transcription

Dokumentation eines selbstgebauten autonomen
Dokumentation eines selbstgebauten
autonomen Fußballroboters für den
Bewerb RoboCup Junior Soccer
Timo Gürtler
Fachbereichsarbeit aus Angewandter Informationstechnologie
Betreuer: Leander Brandl
BRG Kepler 2011/2012
Inhaltsverzeichnis
1 Vorwort ...................................................................................................................... 3 2 Robocup Junior Soccer B ......................................................................................... 4 2.1 Der Bewerb ........................................................................................................... 4 2.2 Der Roboter ........................................................................................................... 5 2.3 Das Feld ................................................................................................................ 6 3 Planung und Konstruktion ......................................................................................... 7 3.1 Einschränkungen und grundlegende Ideen ........................................................... 7 3.2 Planung mit Autodesk Inventor Professinal 2011 und Eagle ............................... 7 3.3 Fertigung ............................................................................................................... 9 4 Der Roboter ............................................................................................................. 10 4.1 Roboter von vorne ............................................................................................... 10 4.2 Roboter von rechts .............................................................................................. 11 4.3 Aufbau ................................................................................................................. 12 4.3.1 Material .......................................................................................................... 12 4.3.2 Räder .............................................................................................................. 12 4.3.3 Schussmechanismus-Kicker ........................................................................... 13 4.3.4 Motoren .......................................................................................................... 14 4.3.5 Motorhalterung ............................................................................................... 15 4.3.6 Dribbler .......................................................................................................... 16 4.3.7 Griff ................................................................................................................ 17 4.3.8 Hülle ............................................................................................................... 18 4.4 Elektronik ............................................................................................................ 19 4.4.1 Motorplatine ................................................................................................... 19 4.4.2 Infrarotsensoren und Ball ............................................................................... 20 4.4.3 IR-Platine ....................................................................................................... 21 4.4.4 Hauptplatine/Mainboard................................................................................. 22 1
4.4.5 Ultraschallsensoren ........................................................................................ 23 4.4.6 Kompass ......................................................................................................... 24 4.4.7 Tasterplatine ................................................................................................... 25 4.4.8 Energiezufuhr ................................................................................................. 26 4.4.9 Display ........................................................................................................... 26 5 Software ................................................................................................................... 27 5.1 Flußdiagramms.................................................................................................... 27 5.2 Beschreibung des Flußdiagramms ...................................................................... 28 5.3 Programm Erklärung ........................................................................................... 29 6 Quellen ..................................................................................................................... 50 6.1 Abbildungen: ....................................................................................................... 50 6.2 Kapitel inhaltlich entnommen ............................................................................. 51 6.3 Zitate ................................................................................................................... 51 6.4 Grundlegende Informationen .............................................................................. 51 6.5 Datenblätter im Anhang: ..................................................................................... 51 7 Anhang ..................................................................................................................... 53 7.1 Atmega 128 ........................................................................................................ 53 7.2 GHM-3 Motor .................................................................................................... 55 7.3 ZMF-2551d.001 ................................................................................................. 56 7.4 Tsop 1138 ........................................................................................................... 57 7.5 SRF 10 ................................................................................................................ 58 7.6 CMPS-03 ............................................................................................................ 59 2
1 Vorwort
Seit der 4. Klasse trete ich schon im Wettbewerb Robocup Junior an. Über die Jahre
haben sich unter den teilnehmenden Schülern des BRG Keplers einige Gruppen
gebildet, die sich immer intensiver mit dem Bau und der Programmierung von Robotern
beschäftigten. Einer solchen Gruppe gehöre auch ich an.
Das Team Android besteht aus 5 Mitgliedern: Alexander Kargl, Hao Wang, Paul Friedl,
Kevin Meighen-Berger und mir. Zuerst traten wir im Wettbewerb Robocup Junior
Rescue an und seit 2010 in Bewerb Soccer B. In diesen 2 Jahren haben wir vieles
ausprobiert und mehr und mehr Wissen gesammelt. Mit dem in dieser
Fachbereichsarbeit beschriebenen Roboter fuhren wir zur Weltmeisterschaft 2011 und
erreichten einen guten Platz im Mittelfeld auf den man zu Recht stolz sein kann.
Am Ende der 7. Klasse wurden wir von unserem Informatiklehrer Leander Brandl
gefragt, ob einer von uns eine Fachbereichsarbeit über unseren Fußballroboter schreiben
möchte, damit das von uns gesammelte Wissen nicht verloren geht und jüngere Schüler
in der Zukunft darauf aufbauen können.
Über die Sommerferien entschloss ich mich eine Fachbereichsarbeit zu schreiben.
Zuerst dachte ich, es würde einfach werden eine Dokumentation über unseren Roboter
zu erstellen, aber schon nach den ersten Seiten wurde mir bewusst auf was ich mich
dabei eingelassen habe.
Ich hoffe, dass diese Fachbereichsarbeit allen Schülern, die im Wettbewerb Soccer
antreten, hilft und wünsche ihnen im Namen des Teams Android viel Erfolg bei den
kommenden Wettbewerben.
3
2 Robocup Junior Soccer B 1
2.1
Der Bewerb
Die Disziplin Soccer B ist in zwei Altersklassen eingeteilt: Soccer B Primary und
Secondary.
In der Primary-Liga spielen Teams, deren Mitglieder unter 15 Jahre alt sind. In der
Secondary-Liga treten Schüler bis zu einem Alter von 19 Jahren gegeneinander an. Ein
Team muss aus mindestens 2 Mitgliedern bestehen. Jedes Team benötigt einen
Teamleader, der sein Team repräsentiert.
Ein Spiel besteht aus zwei Halbzeiten zu je 10 Minuten, die durch eine 5-Minuten Pause
getrennt sind. Nur zum Starten darf der Roboter während des Anstoß von einem
Teammitglied berührt werden. Ein Tor ist erst erzielt, wenn der Ball in seiner ganzen
Größe über der Torlinie ist. Danach findet wieder ein Anstoß statt. Es gewinnt das Team
mit den meisten Toren am Spielende wobei auch ein Unentschieden möglich ist. Auf
dem Spielfeld befinden sich 5 neutrale Punkte. Wenn der Ball in das Out rollt, kann das
Team, das den Ball nicht als letztes berührt hat, entscheiden auf welche der beiden
neutralen Punkte einer Seite der Schiedsrichter den Ball legen soll. Sollte einer der
Punkte von einem Roboter blockiert sein, kann der Ball auch auf den Mittelpunkt gelegt
werden. Wenn ein Roboter „damaged“ ist, muss er das Spielfeld für mindestens eine
Minute verlassen und darf erst wieder ins Spiel, wenn der Schaden behoben ist.
Als „damaged“ zählt ein Roboter wenn:
 er nicht mehr auf den Ball reagiert
 er in einem Eck oder an der Wand hängt
 er sich durchgehend auf der Stelle dreht
1
http://rcj.robocup.org/rcj2011/soccer_2011.pdf [Datum:23.11.2011]
4
2.2
Der Roboter
Gespielt wird mit 2 Robotern pro Team. Die Roboter unterliegen bestimmten Auflagen:
 Die Roboter dürfen nicht höher als 22 cm und breiter als 22 cm sein.
 Das Maximalgewicht der Roboter ist auf 2,5 kg beschränkt.
 Der Ball darf nicht weiter als 3 cm in die Roboter eindringen.
 Die Roboter müssen sich in alle Richtungen bewegen können.
 Die Roboter müssen einen Griff besitzen, damit diese von einem Schiedsrichter
aufgehoben werden können.
 Die Roboter dürfen nicht gelb oder blau sein, da die Tore mit diesen Farben
gekennzeichnet sind. Das gleiche gilt für das T-Shirt des Teammitglieds, das die
Roboter bedient.
 Die Roboter dürfen während des gesamten Wettbewerbes nicht ausgetauscht oder
einem anderen Team verliehen werden. Es ist aber erlaubt, einzelne Teile
auszutauschen.
 Die Roboter dürfen über Bluetooth miteinander kommunizieren.
 Die Roboter dürfen während eines Wettbewerbes nicht ferngesteuert werden und
müssen autonom fahren.
5
2.3
Das Feld
Das Soccer B Feld ist einschließlich der Outzone 182 cm breit und 243 cm lang. Das
Spielfeld ist mit weißen Linien markiert. Diese kennzeichnen die Outlinie und den
Strafraum. Die Ouzone hat eine Breite von 30 cm. Die Tore sind 45 cm breit und haben
eine Höhe von 14 cm. Die neutralen Punkte sind schwarz markiert. Als Boden des
Spielfelds dient ein grüner Teppich. Das gesamte Feld ist außerdem noch von einer 14
cm hohen Wand umgeben.
Abbildung 1: Soccer B Feld 2 2
http://robocupjunior.at/10-0-Soccer.html [Datum: 23.12.2011]
6
3 Planung und Konstruktion
3.1
Einschränkungen und grundlegende Ideen
Die Grundvorgaben für den Bau unseres Roboters waren die Richtlinien von Robocup
Junior für die Disziplin Soccer B. Ein Roboter darf nicht höher als 22 cm sein, er muss
in einen Zylinder mit einem Durchmesser von 22 cm passen und darf nicht schwerer als
2,5 kg sein.
Des Weiteren darf der Ball nicht weiter als 3 cm in den Roboter hineinragen.
Bei der Konstruktion wurde versucht, das maximale Gewicht, sowie die maximale
Größe zu erreichen um von einem gegnerischen Roboter nicht leicht verdrängt zu
werden und auch das eigene Tor gut abzudecken.
Um die maximale Größe nicht zu überschreiten und trotzdem genug Platz für alle Teile
eine Roboters zu schaffen, bestehen die Roboter aus 3 übereinander angeordneten
Ebenen. Auf der untersten Ebene befinden sich die Motoren, die Motorplatine, der
Schussmechanismus und die Motoraufhängungen. Auf der mittleren befinden sich die
Infrarotsensoren mit der dazugehörigen Platine, die Hauptplatine und der Dribbler. Auf
der obersten Ebene befinden sich die Tasterplatine, das Display sowie der Kompass.
3.2 Planung mit Autodesk Inventor Professinal 2011 und Eagle
Unsere Roboter, der im Jahr 2010 eingesetzt wurden, sind ohne unterstützendes
Computerprogramm geplant worden. Es wurden Skizzen erstellt und danach ein Model
aus Sperrholz gebaut. Rückblickend war das ein großer Arbeitsaufwand, den uns dieses
Jahr das Planungsprogramm Autodesk Inventor Professinal 2011 vereinfacht hat.
Dieses Programm ist sehr umfangreich, weshalb es am Anfang notwendig war einige
Tutorials durchzuarbeiten. Nach einer kurzen Einführungsphase gab es aber kaum mehr
Probleme. Der Hauptgrund für die Wahl dieses Programms war, dass es in einer
Schülerversion gratis verfügbar ist. Mit diesem Programm wurde unsere Arbeit sehr
erleichtert. Dank der 3D Planungsansicht konnten Mängel noch vor dem Bau des
7
Roboters festgestellt und behoben werden. Auch die Änderung einiger Maße oder die
neue Planung eines Bauelements sind schnell und problemlos durchführbar gewesen.
Abbildung 2: 3D‐Modell eines Motors Die Motor-, Infrarot- und Tasterplatine wurden von uns selbst entworfen. Wir erstellten
diese mit der Software Eagle. Mit dieser kann man Schaltpläne einfach zeichnen und die
einzelnen Komponenten dann anordnen. Da mit dieser Software bisher nicht gearbeitet
wurde, mußten wir uns zunächst erst einmal intensive mit der Software beschäftigen.
Dieser Aufwand war aber die Mühe wert.
Abbildung 3: Tasterplatine in Eagle Abbildung 4: Schaltplan in Eagle 8
3.3
Fertigung
Alle Ebenen, die Motorhalterung, Teile des Dribblers und die zuvor genannten mit
Eagle geplanten Platinen wurden von uns gefertigt. Die Teile wurden danach in das
Programm AutoCAD übertragen. Mit diesem Programm wurde die Kanten der zu
fräsenden Teile in Layergruppen eingeteilt. Im nächsten Schritt wurde den Layern eine
Tiefe zugewiesen bis zu der die Fräse arbeiten sollte. Die CNC-Fräse fuhr danach der
Kanten bzw. den Layern des Objektes und fräste sie aus.
Die Platinen sind nach dem Isolationsverfahren gefertigt. Bei diesem werden nur die
Umrisse der einzelnen Leiterbahnen von der Kupferfläche weggefräst und somit von
einander elektrisch isoliert. Die Software Eagle mit der die Platinen geplant wurden
rundete leider die Koordinatenergebnisse bei Kurven von Leiterbahnen. Aufgrund
dieser ungenauen Fräsdaten wurden nicht alle Leiterbahnen vollständig isoliert, es
blieben Übergänge zum isolierten Teil der Platine vorhanden. Diese mussten händisch
entfernt werden.
Abbildung 5: Zuschneiden der PE Platten mit der CNC Abbildung 6: Fertigung einer Platine Fräse 9
4 Der Roboter
4.1
Roboter von vorne
1
2
8
3
7
4
5
6
Abbildung 7 1. Kompassmodul CMPS-03
2. Dribblermotor
3. Zahnradübersetzung des Dribblers
4. Dribblerrolle
5. Kicker mit Frontplatte
6. Omniwheels
7. Ultraschallsensor SRF-10
8. LCD Display
10
4.2
Roboter von rechts
1
2
5
4
3
Abbildung 8 1. Tasterplatine
2. IR-Platine
3. LiPo Akku
4. GHM-3 (Gear Head Motor)
5. IR-Sensor TSOP1138
11
4.3
Aufbau
4.3.1 Material
Für diesen Roboter entschieden wir uns, eine 8 und eine 5 mm dicke Polyethylen (PE)
Platte als Ebenenmaterial zu verwenden. Das Material eignet sich gut für den Bau eines
Roboters, da es sehr leicht und robust ist, und nicht wie z.B. Plexiglas zerspringen kann
und weil es einfach zu bearbeiten ist.
4.3.2 Räder
Da sich der Roboter in alle Richtungen bewegen können und auch in der Lage sein
muss, sich am Stand zu drehen, kamen von Anfang an nur Omniwheels in Frage.
Omiwheels, auch Allseitenräder genannt, sind Räder an deren Außenseite sich kleinere
Räder befinden deren Laufrichtung zum Mittelpunkt des eigentlichen Rades gerichtet
ist. Die äußeren kleineren Räder werden als Subwheels bezeichnet. „Diese Räder
werden zum einen in der mobilen Robotik für omnidirektionale Antriebe verwendet.
Diese Roboter haben meist drei angetriebene Allseitenräder, deren Achsen sich im
Mittelpunkt des Roboters schneiden. Durch den Antrieb der Räder in verschiedenen
Geschwindigkeiten ist der Roboter in der Lage, in jede Richtung zu fahren und jegliche
Rotation auszuführen.“3 Im letzten Jahr gab es Probleme mit diesen Rädern. Der grüne
Spielfeldteppich, der den Rasen auf dem Spielfeld symbolisiert, hat den Zweck den
Robotern einen guten Grip zu bieten. Die alten Omniwheels rutschten trotz der
Unterlage durch, so dass eine genaue Manövrierung des Roboters nicht möglich war.
Darum entschieden wir uns dieses Jahr andere Omniwheels zu kaufen.
Die neuen Omniwheels sind eine Spezialanfertigung aus dem Iran. Sie bestehen aus 2
kreisrunden Aluminiumhälften, die an den Außenseiten Lücken für die insgesamt 13
Subwheels aufweisen. An der Innenseite der beiden Hälften befindet sich eine Rille in
die ein Draht eingesetzt ist. Auf diesem Draht sind die Subwheels aufgefädelt. Nachdem
der Draht eingesetzt ist und sich alle Subwheels an der richtigen Position befinden,
3
http://de.wikipedia.org/wiki/Allseitenrad [Datum: 26.12.2011]
12
werden beide Hälften miteinander verschraubt und das Rad ist zusammengebaut. Die
Subwheels bestehen aus einem Messingrad, das an der äußeren Kante eine Rille für
einen Gummiring aufweist.
Abbildung 9: Omniwheel Diese neuen Omniwheels haben den Vorteil, dass sie aufgrund des Gummirings auf den
Subwheels dem Roboter einen besseren Halt bieten. Die Schwachstelle der Räder waren
die kleinen Messingräder der Subwheels. Die Kraft, die auf diese bei einem schnellen
Bremsmanöver wirkte, wurde unterschätzt. Es kam sogar soweit, dass auf einem
Omniwheel 11 von 13 Subwheels beschädigt wurden.
4.3.3 Schussmechanismus-Kicker
Beim Kicker des Roboters kommt ein Hubmagnet Typ ZMF-2551d.001 der Firma
Tremba zum Einsatz. Ein Hubmagnet ist die einfachste und am öftesten eingesetzte
Schussmethode bei einem Soccerroboter. Diese Hubmagneten sind in allen Größen und
für unterschiedliche Lasten erhältlich. Ein Hubmagnet besteht aus einem Elektromagnet
und einem Eisenkern mit einer Feder. Wenn Strom am Elektromagnet anliegt, zieht er
den Eisenmagnet an und der Roboter schießt. Wenn kein Strom mehr anliegt, drückt die
Feder den Eisenkern wieder an die Ausgangsposition zurück. Der Hubmagnet benötigt,
wenn auch nur für kurze Zeit, hohe Ströme, weshalb er mit einem Relais geschaltet
13
wird. Die Kickerschaltung wird über den Pin B0 des Mikroprozessors gesteuert. Da der
Eisenkern sich verjüngt und an der Vorderseite eine lange Stange besitzt, war es nötig
eine Frontplatte an dem Eisenkern zu befestigen, damit der Ball kontrolliert nach vorne
geschossen werden kann. Der Kicker ist gleich wie die Motoren befestigt und an der
Vorderseite zwischen dem rechten und linken Motor platziert.
Abbildung 10: Elektromagnet Kicker4 4.3.4 Motoren
Als Motoren werden die schon im letzten Jahr verwendeten GHM-3 (Gear Head Motor)
von Lynxmotion benutzt. Diese weisen ein hohes Drehmoment (3.9 kg-cm) sowie eine
mittlere Geschwindigkeit (max. 291 U/min bei 7,2V) auf. Zusätzlich ist das PreisLeistungs-Verhältnis der Motoren gut. Die 3 Motoren sind in einem Winkel von 120
Grad zueinander angeordnet. Ursprünglich wurde auch überlegt 4 Motoren zu
verwenden. Der Vorteil bei 4 Motoren ist, dass bei einer Bewegung weniger Kraft als
mit 3 Motoren verloren geht. Die Motoren sind so groß, dass man 4 Motoren
nebeneinander platzieren könnte, aber danach keinen Platz mehr für andere Bauteilteile
wäre. Ein weiterer Nachteil ist, dass jeder Motor 121 Gramm wiegt und die Motoren
damit in Summe den größten Teil der Masse des Roboters ausmachen.
4
http://www.tremba.de/zylindermagnete/zylindermagnete.php [Datum 20.12.2011]
14
Abbildung 11: Motor mit Maßen5 4.3.5 Motorhalterung
Da eine Motorhalterung bei der letzten Weltmeisterschaft mitten im Wettbewerb
gebrochen ist, wurde besonderer Wert darauf gelegt, eine stabile und starre
Konstruktion zu bauen. Es wurde entschieden, eine bereits unter den anderen Teams
verbreitete Halterung zu benutzen. Die Halterung besteht aus zwei halbkreisförmigen
Teilen in deren Mitte sich der Rumpf des Motors befindet. Beide Hälften werden so fest
miteinander verschraubt, dass sich der Motor in der Mitte nicht mehr bewegen kann.
Die anfänglichen Bedenken, dass sich der Motor möglicherweise zwischen den zwei
Hälften noch drehen könnte, zerstreuten sich beim Praxistest schnell. Beim Einbau des
Motors muss jedoch darauf geachtet werden, dass sich der Motor in der richtigen
Position befindet, da sich die Drehachse nicht im Zentrum des Motors befindet sondern
um ein paar Millimeter nach unten versetzt ist. Bei einem fehlerhaften Einbau liegt das
Rad nicht mehr auf dem Boden auf.
5
http://www.lynxmotion.com/images/data/ghm03.pdf [Datum: 10.12.2011]
15
4.3.6 Dribbler
Der Dribbler ist eine sich durch einen Motor drehende Rolle, die den Ball in Rotation
zum Roboter halten soll. Laut den Regeln ist es nicht erlaubt den Ball festzuhalten.
Außerdem darf der Ball nicht weiter als drei cm in den Roboter hineinragen. Ein
Dribbler ist nach den Regeln erlaubt, da der Ball vom Roboter zu keinem Zeitpunkt
„festgehalten“ wird, sondern nur ständig in Bewegung zu sich versetzt wird. Der
Dribbler ist ein wichtiges Bauteil ohne den es nicht möglich ist eine Bewegung nach
hinten auszuführen, da man den Ball ohne diesen nur anschieben könnte.
Zusätzlich wurde unser Dribbler so gebaut, dass er vor- und zurückkippbar ist.
Das hat folgende Vorteile:
 bessere “Sogwirkung“
 der Dribbler fährt dem Ball nach wenn er hinausfällt
Die bessere “Sogwirkung“ entsteht da der Ball nicht nur vom Dribbler gedreht wird
sondern auch gewissermaßen unter den Dribbler hineingezogen wird, da der Dribbler
sich hebt, wenn er den Ball berührt.
Sollte der Ball durch eine Berührung mit einem anderen Roboter oder den
Spielfeldbanden aus dem Dribbler hinausfallen, dann kippt der Dribbler dem Ball nach
und der Roboter kann noch einmal in Ballbesitz kommen.
Das Problem bei der Konstruktion war, dass der Ball nie weiter als drei cm in den
Roboter hineinragen darf und, dass der Durchmesser des Roboters im voll
ausgefahrenen Zustand
nicht größer als 22 cm sein darf. Die Kippkonstrunktion
benötigt jedoch viel Platz.
Schlussendlich entschieden wir uns für eine Konstruktion, bei der sich der Motor und
die drehbare Rolle auf einem kippbaren Arm befinden. Der Motor, der von uns
verwendet wird, ist ein Getriebemotor mit 150 U/min. Das war aber zu langsam
weshalb eine Legozahnradübersetzung eingebaut wurde. Die sich drehend Rolle besteht
aus Legorädern, die eine gute Haftung haben.
16
Der Dribbler wurde durch zwei Gummiringe an der tiefsten Position gehalten und wird
bei Ballberührung angehoben. An der Unterseite der nächst höheren Ebene ist ein Taster
montiert, der immer dann betätigt wird, wenn sich der Dribbler hebt. So kann
festgestellt werden, ob man im Ballbesitz ist oder nicht.
Abbildung 12: Dribbler Kippkonstruktion Abbildung 13: Dribbler mit Ball 4.3.7 Griff
Laut den Regeln der Soccer B League muss jeder Roboter einen Griff besitzen. Der
Griff ist abgesehen vom Kompass das höchst montierte Teil des Roboters. In den Griff
wurden drei Grifflöcher und ein zentrales Loch, durch das der Kompass ragt, gefräst.
An der Vorderseite des Griffs wurde der Teamname eingefräst. Der Griff besteht aus
Plexiglas um das Display darunter zu sehen.
Abbildung 14: Griff 17
4.3.8 Hülle
Die Hülle dient dem Zweck den Roboter zu schützen. Ursprünglich war es geplant, eine
sehr dünne Aluplatte um den Roboter zu biegen und Löcher für die Infrarotempfänger
in die Platte zu schneiden. Es fand sich aber ein besseres Material. Eine Mappe der
Firma Libro besteht aus einem für Infrarotes Licht durchlässigen Plastik. Es ist leichter
als Aluminium, ist leicht biegbar und bietet genügend Schutz. An der Oberseite der
untersten Platte befindet sich eine Rille in die die Hülle geschoben wird. An der
mittleren und an der oberen Ebene wird sie festgeschraubt. Es gab auch eine Variante
mit Klettverschluß an der mittleren und oberen Ebene allerdings bot der Klettverschluß
nicht ausreichend Halt.
18
4.4
Elektronik
4.4.1 Motorplatine
An der Motorplatine sind folgende Komponenten angeschlossen:
 Master Ein/Ausschalter der direkt mit dem Akku und der Motorplatine verbunden ist.
 Stromanschluss des Atmega 128
 Stromanschluss der Schaltung für den Schuss Hubmagneten (Schuss)
 Dribblermotor
 3 Antriebsmotoren
Der Masterschalter ist ein einfacher Kippschalter, der den Zweck hat, die Stromzufuhr
zu unterbrechen ohne den Akku abstecken zu müssen.
Es sind 4 Motoren an der Platine angeschlossen, die 3 Antriebsmotoren und der Motor
des Dribblers. Die Motoren werden mit einem Motortreiber des Typs IC L6203
angesteuert. Dieser ist quasi der Nachfolger des weit verbreiteten L298 und hat einen
viel geringeren Spannungsabfall. Deshalb benötigt dieser auch keine aufwendige
Kühlung.
Abbildung 15: Motorplatine in Eagle Boardansicht 19
4.4.2 Infrarotsensoren und Ball
Der Ball, der bei dem Soccer Wettbewerb verwendet wird, wird von der Firma
HiTechnic produziert. Dieser hat einen Durchmesser von 75 mm und besitzt 20 Infrarot
Leds, die ein moduliertes Infrarot Signal mit einer Frequenz von 40 kHz aussenden. Das
vom Ball gesendete Signal ist in unterschiedliche Signalstärken eingeteilt. Man kann die
Länge des empfangenen Signales messen und weiß, wie weit der Ball entfernt ist, da die
schwächeren Signale nicht empfangen werden, wenn der Roboter weiter vom Ball
entfernt ist.
Unsere Roboter empfangen dieses Signal mit 8 Infrarotempfängern vom Typ
TSOP1138, die rund um den Roboter auf unsere Infrarotplatine gelötet sind. Dieser
Infrarotempfänger ist zwar für ein 38 kHz Signal gedacht, aber er empfängt das Signal
vom Ball dennoch sehr gut.
Der Ball wurde manchmal an der falschen Stelle geortet.
Die falsche Ortung ergab sich einerseits aus dem großen Öffnungswinkel des TSOPEmpfängers und andererseits aus Reflexionen des Signals von den Spielbanden. Beide
Probleme konnten durch die Einschränkung des Öffnungswinkels und durch Bedecken
der Seiten des Empfängers zum Teil gelöst werden.
Abbildung 16: Soccer Ball6 6
7
Abbildung 17: TSOP11387 http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=IRB1005 [Datum: 27.12.2011]
http://www.dz863.com/datasheet-844179663-TSOP1140_Ir-Receiver-Modules-For-Remote-Control-
Systems/ [Datum: 27.12.2011]
20
4.4.3 IR-Platine
Die Infarotplatine besteht aus drei Teilen: einer Frontplatine mit zwei Empfängern, die
vorne unter dem Kicker liegt und zwei Seitenplatinen mit je 3 Empfängern. Die
Frontplatine ist mit der linken Seite verbunden. Auf der rechten Platine laufen alle
Signale zusammen und werden an den Port F des Atmega 128 übergeben. Der Port F
besitzt einen ADC (Analog-to-Digital-Converter). Dort wird das analoge Signal (0-5
Volt) der TSOP- Empfänger in einen dazu proportionalen Wert umgewandelt. Dieser
Wert gibt wider, wie stark das gemessene Signal war, bzw. wie weit der Ball vom
Roboter entfernt ist. Die Infrarotempfänger sind an der Frontplatine nach rechts gedreht
und die vordere Seite ist abgedeckt. Da die TSOP-Empfänger nicht nach Hinten “sehen“
können, die vordere Seite abgedeckt ist und sich auf der rechten der Sensoren der
Roboter befindet, ist der Winkel aus dem Signale kommen können, sehr eingeschränkt.
Das hat den Vorteil dass eine genauere Ortsbestimmung des Balles möglich ist.
Abbildung 18: vordere IR‐Platine Abbildung 19: IR‐Platine rechte Platine in Eagle
Abbildung 18: IR‐Platine linke Platine in Eagle 21
4.4.4 Hauptplatine/Mainboard
Als Hauptplatine für den Roboter verwenden wir ein Modul mit der Bezeichnung ETBASE Mega 128. Von diesem Modul aus werden alle Komponenten des Roboters
gesteuert.
Abbildung 19: Atmega Modul8 Der Aufbau sieht folgendermaßen aus:
1.
Mikrocontroller Atmega 128 von Atmel
2.
Resetschalter
3.
16 MHz Quarz
4.
Potentiometer zur Bestimmung der Helligkeit eines angeschlossenen LCD Displays
5.
Port C PC0-PC7
8
http://ulita.ms.mff.cuni.cz/pub/predn/nprg037/ET-BASE%20AVR%20%20ATmega64_128_Manual.pdf
[Datum: 5.1.2012]
22
6.
ISP Port zum Übertragen des Programms auf den Mikrocontroller
7.
LCD Port zum Anstecken eines Displays
8.
Port D PD0-PD7
9.
Port B PB0-PB7
10. Port E PE0-PE7
11. Port F PF0-PF7 ausgestattet mit einem Analog-Digitalwandler mit einer Auflösung
von 10 Bit
12. Port A PA0-PA7
13. RS232 Connector
14. RS232 Connector
15. LED zum Anzeigen, ob das Modul eingeschalten ist
16. Stromanschluss
4.4.5 Ultraschallsensoren
Es werden vier Ultraschallsensoren des Typ SRF-10 zur Positionsbestimmung und zur
Gegnererkennung eingesetzt. Im Vergleich zu den im letzten Jahr verwendeten
Infrarotsensoren von Sharp arbeiteten die Ultraschallsensoren relativ genau. Ein
Nachteil dieser Sensoren ist der große Öffnungswinkel und die Beeinflussbarkeit durch
andere Ultraschallsensoren. Die Ultraschallsensoren wurden auf der obersten Ebene
montiert und sind im 90°-Winkel zueinander angeordnet. Die minimale Reichweite der
Sensoren beträgt 4 cm, das Maximum 6 m. Die Messung der SRF-10 erreichte bei
unseren Bedingungen eine Genauigkeit von +/- 5 cm. Die Kommunikation der
Ultraschallsensoren erfolgt über den I2C-Bus des Atmega 128. Ein weiteres Problem
gab es bei der Abstandsmessung zu seitlichen Objekten. Da der SRF-10 einen großen
Öffnungswinkel besitzt und das erste zurückkommende Signal gemessen wird, ist es
nicht möglich zu sagen, auf welcher exakten Position an der Seite sich das gemessene
Objekt befindet.
23
9
Abbildung 20: Ultraschallsenoren mit Kompass Abbildung 21: Ultraschallsensor
4.4.6 Kompass
Um die aktuelle Ausrichtung sowie die Richtung, in der sich das gegnerische Tor
befindet, zu bestimmen, verwenden wir das Kompassmodul CMPS-03. Dieses bestimmt
die Ausrichtung relativ zum Erdmagnetfeld. Der Kompass wird sowohl von äußeren
Einflüssen (wie z.B. ein Spielfeld, das auf einem Metalltisch steht) als auch von selbst
erzeugt Einflüssen (z.B. durch die Elektromotoren) beeinflußt. Diese äußeren Einflüsse
können aber durch das Neukalibrieren des Kompasses vor jedem Wettkampf minimiert
werden. Um innere Einflüsse in Grenzen zu halten ist der Kompass das am höchsten
montierte Bauteil an unserem Roboter. Da der Kompass weit von den Motoren entfernt
ist, ist auch der eigene Einfluss der Magnetfelder der Motoren gering.
9
http://www.acroname.com/robotics/parts/R241-SRF10.html [Datum: 17.12.2011]
24
Abbildung 22: Kompaßsensor10 4.4.7 Tasterplatine
Die Tasterplatine wurde von uns gefertigt und befindet sich gut erreichbar auf der
obersten Ebene. Auf der Tasterplatine befinden sich 4 Taster mit denen man das
Programm des Roboters steuern kann. Weiters ist es auch möglich, zwischen SensorWerten hin- und her zuschalten. Bei der Tasterplatine wurde auch darauf geachtet sie
möglichst klein zu konstruieren. Deshalb kommen Mikrotaster mit einer Größe von 6*6
mm zum Einsatz.
Abbildung 23: Tasterplatine in Eagle 10
http://www.robot-electronics.co.uk/images/cmps3pin.jpg [Datum: 20.12.2011]
25
4.4.8 Energiezufuhr
Als Stromversorgung wurde ein Lithium-Polymer-Akkupack mit 3 Zellen, 11,1V und
einer Kapazität von 2000mAh verwendet. Diese Art von Akkus hat den Vorteil, dass
sie sehr lange eine konstante Spannung abgeben und, dass sie unabhängig vom
aktuellen Ladezustand aufgeladen werden können. Es tritt kein Memory-Effekt wie bei
gewöhnlichen NiCad-Akkus auf. Der einzige Nachteil dieser Akkus ist, dass sie nie
vollständig entladen werden dürfen, da sie sonst unbenutzbar werden.
.
Abbildung 24: Lipo Akku 4.4.9 Display
Als Display entschieden wir uns für ein 2-zeiliges LCD Punkt Matrix-Modul mit je 16
Zeichen pro Zeile. Dieses Display wurde an den LCD Port unseres Atmega 128
geschlossen.
Abbildung 25: LCD Display11 11
http://www.neuhold-elektronik.at/catshop/popup_image.php?pID=160 [Datum: 26.12.2011]
26
5
Software
5.1
Flußdiagramms
Darstellung der Grundlogik des Programms mithilfe eines Flußdiagramms:
Abbildung 26: Flussdiagram des Programmes 27
5.2
Beschreibung des Flußdiagramms
In dem ersten Teil des Programms werden alle Variablen, die im Programm benützt
werden, initialisiert. Direkt danach werden der Kompass, die Infrarot- und
Ultraschallsensoren in das Programm eingebunden. Nach der Initialisierung des
Kompasses wird der Winkel des gegnerischen Tores in einer Variablen gespeichert.
Anschließend wird ermittelt, ob der Roboter den Ball hat oder nicht.
Im nächsten Abschnitt des Programms werden die Ultraschallsensoren zur
Positionierung am Feld benutzt. Falls keiner der Infrarotsensoren ein Signal vom Ball
erhält (z.B. ein anderer Roboter steht vor dem Ball), findet eine Zentrierung im eigenen
Tor statt um ein Gegentor zu vermeiden. Die Motordreh-Variable wird aus den
Ultraschallwerten und den Kompasswerten berechnet. Sie ist eine der wichtigsten
Variablen im Programm, die Einfluss auf die Motorgeschwindigkeiten nimmt, sodass
der Roboter immer zum gegnerischen Tor schaut. Das bringt einen großen Vorteil, denn
so kann man gleich nach der Ballannahme auf das gegnerische Tor schießen ohne sich
zuerst aufs Tor ausrichten zu müssen. Um genau zu wissen, wo sich der Ball befindet,
wird ermittelt, welcher der Sensoren den kleinsten Wert zurückliefert. Danach weiß
man, wo sich der Ball genau befindet. Zusätzlich zur reinen Position des Balls wird aber
auch der Abstand zum Ball gemessen um die Geschwindigkeit mit der der Roboter den
Ball anfahrt zu regulieren. Danach sollte sich der Roboter hinter den Ball befinden und
den Ball annehmen. Da der Roboter die ganze Zeit in Richtung des gegnerischen Tores
ausgerichtet ist, fährt dieser danach nur mehr ein kurzes Stück vor um Geschwindigkeit
für den Schuss zu sammeln. Danach schießt der Roboter.
28
5.3
Programm Erklärung
Das gesamte Programm wurde von uns entwickelt und wird im folgenden Kapitel
beschrieben.
Im ersten Teil des Programms erfolgt die Einbindung der Bibliotheken.
Als nächstes findet die Definition der globalen Variablen statt.
Auf die einzelnen Variablen wird später noch eingegangen.
29
Nun werden alle Variablen initialisiert und ihnen wird einen Wert zugewiesen.
Beginn des Programms und Initialisierung des Kompasses und der IR-Sensoren.
30
Dies sind die Ereignisse im Falle eines Tastendrucks.
Der Taster 1 erhöht die Statusvariable um 1.
Der Taster 2 setzt die Statusvariable auf den Wert 10 (Wettbewerbsprogramm)
Der Taster 3 lässt den Roboter schießen, deaktiviert den Dribbler und setzt die
Statusvariablen auf 0
Der Taster 4 setzt beide Statusvariablen gleich. Dies hatte Vorteile in der Handhabung
der Sensorabfragen.
31
Bestimmung des Winkels Teil 1
In Teil 1 der Winkel-Bestimmung wird die Variable Winkel_Neu aus der Variable
WERT berechnet. Nach diesem Programmabschnitt befindet sich das gegnerische Tor
genau auf 180 Grad, also genau vor dem Roboter. Das Vereinfachte die
Programmierung.
32
Winkel Bestimmung Teil 2
In dem 2. Teil der Winkel Bestimmung werden die Werte des Kompasses in drei
verschiedene Fälle eingeteilt und die Variable WERT berechnet.
genau 180 -> Wert_Winkel ist 2
In diesem Fall wird der Kompass Wert gleich direkt übernommen.
über 180 -> Wert_Winkel ist 1
unter 180 -> Wert_Winkel ist 0
33
Status 0:
Motoren Stop
LCD Startanzeige
Status 1:
Motoren Stop
LCD Kompassanzeige
34
Status 2:
Dieser Status zeigt auf dem Display den Wert der Infrarotsensoren mit dem niedrigsten
Wert an und gibt dessen Wert aus.
Status 3:
Zeigt die Werte aller Infrarotsensoren an.
35
Status 4:
Zeigt die Werte der Ultraschallsensoren an.
Status 5 und 6:
Zum Testen des Fahrverhaltens des Roboters bei zugeteilten Motorwerten.
36
Status 7:
Zum Überprüfen, ob der Ball Taster gedrückt ist oder nicht.
Status 8:
Aktiviert den Dribbler
37
Start des Hauptprogramms Status 10:
Das Hauptprogramm beginnt und der Wert der Variable MOTOR_DREH wird
bestimmt. Der Roboter sollte prinzipiell immer zum gegnerische Tor “schauen“.
Nachdem er sich durch Ungenauigkeiten oder Zusammenstöße immer wieder verdreht,
wurde die Variable MOTOR_DREH eingeführt. Diese verändert die Motorwerte so,
dass der Roboter sich während der Fahrt wieder in Richtung des gegnerischen Tores
ausrichtet.
38
Im nächsten Programmsegment wird bestimmt, welcher Sensor den niedrigsten Wert
hat und dementsprechend werden Motorwerte zugewiesen um sich dem Ball
anzunähern. IR_DIRECTION gibt an, welcher der 8 Sensoren den Ball empfängt. Min
gibt den kleinsten Wert allen Sensoren an. Teilweise werden auch Werte zwischen den
Sensoren noch einmal verglichen. Beispiel: (b[7]+150<=b[0])
39
40
41
42
Jetzt wird die Ausrichtungsvariable festgelegt. Sollte der Roboter trotz der
Motordrehvariable sich zu sehr drehen, gibt es ein Programmsegment in dem sich der
Roboter wieder ausrichtet.
43
Wenn der Roboter den Ball nicht sehen sollte, werden die Ultraschallsensoren abgefragt
und somit die Distanz zu Spielbande ermittelt.
44
Nachdem der Abstand gemessen ist werden neu Motorwerte zugewiesen. Danach sollte
der Roboter sich in der Mitte des eigenen Tores gestellt haben und dieses verteidigen.
45
46
Ausrichtung, wenn Roboter sich gedreht hat.
47
Im nächsten Teil des Programmes schießt der Roboter bei Ballbesitz. Dabei wird die
Distanz zur Spielbande erneut gemessen. Danach sollte der Roboter sich direkt auf das
gegnerische Tor drehen und schießen.
48
Am Ende des Programmes übergibt der Roboter die Motorwerte den Motoren und das
Programm beginnt wieder am Anfang.
49
6
Quellen
6.1
Abbildungen12:
Abbildung 1. Soccer B Feld:
URL: http://robocupjunior.at/10-0-Soccer.html [Datum: 23.12.2011]
Abbildung 10. Elektromagnet Kicker:
URL:
http://www.tremba.de/zylindermagnete/zylindermagnete.php
[Datum:
20.12.2011]
Abbildung 11. Motor mit Maßen
URL: http://www.lynxmotion.com/images/data/ghm03.pdf [Datum: 10.12.2011]
Abbildung 15. Soccer Ball
URL:http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=IRB1005
[Datum: 27.12.2011]
Abbildung 16. TSOP 1138
URL:
http://www.dz863.com/datasheet-844179663-TSOP1140_Ir-Receiver-Modules-
For-Remote-Control-Systems/ [Datum: 27.12.2011]
Abbildung 20. Atmega Modul
URL:http://ulita.ms.mff.cuni.cz/pub/predn/nprg037/ETBASE%20AVR%20%20ATmega64_128_Manual.pdf [Datum: 5.1.2012]
Abbildung 22. Ultraschallsensor SRF 10
URL: http://www.acroname.com/robotics/parts/R241-SRF10.html [Datum: 17.12.2011]
Abbildung 23. Kompaßsensor CMPS-03
URL: http://www.robot-electronics.co.uk/images/cmps3pin.jpg [Datum: 20.12.2011]
Abbildung 26. LCD Display
URL:http://www.neuhold-elektronik.at/catshop/popup_image.php?pID=160
[Datum: 26.1.2012]
12
Alle Abbildungen ohne Quellenangabe sind eigene Abbildungen bzw. Screenshots.
50
6.2
Kapitel inhaltlich entnommen
Kapitel 3 Robocup Junior Soccer B:
URL: http://rcj.robocup.org/rcj2011/soccer_2011.pdf [Datum:21.12.2011]
6.3
Zitate
Im Kapitel 5.3.2 Räder
URL: http://de.wikipedia.org/wiki/Allseitenrad [Datum: 26.12.2011]
6.4
Grundlegende Informationen
Spielfeld:
URL: http://robocupjunior.at/10-0-Soccer.html [Datum: 23.12.2011]
Ball:
URL:http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=IRB1005
[Datum: 27.12.2011]
Spielregeln:
URL: http://rcj.robocup.org/rcj2011/soccer_2011.pdf [Datum: 23.11.2011]
6.5
Datenblätter im Anhang:
Atmega 128:
URL: http://www.lynxmotion.com/images/data/ghm03.pdf [Datum: 20.1.2012]
GHM-3 Motor:
URL: http://www.lynxmotion.com/images/data/ghm03.pdf [Datum: 20.1.2012]
ZMF-2551d.001:
URL: http://www.roboter-teile.de/datasheets/ZMF-2551d.001.pdf [Datum: 20.1.2012]
Tsop 1138:
URL:
http://www.datasheetcatalog.org/datasheets/restul/305097_DS.pdf
[Datum:
20.1.2012]
51
SRF 10:
URL: http://www.robotikhardware.de/download/srf10doku.pdf [Datum: 20.1.2012]
CMPS-03:
URL:
http://www.datasheetcatalog.org/datasheets2/10/108026_1.pdf
[Datum:
20.1.2012]
52
7
Anhang
7.1
Atmega 128 13
13
http://www.lynxmotion.com/images/data/ghm03.pdf [Datum: 20.1.2012]
53
54
7.2
14
GHM-3 Motor 14
http://www.lynxmotion.com/images/data/ghm03.pdf [Datum: 20.1.2012]
55
7.3
15
ZMF-2551d.001 15
http://www.roboter-teile.de/datasheets/ZMF-2551d.001.pdf [Datum: 20.1.2012]
56
7.4
16
Tsop 1138 16
http://www.datasheetcatalog.org/datasheets/restul/305097_DS.pdf [Datum: 20.1.2012]
57
7.5
17
SRF 10 17
http://www.robotikhardware.de/download/srf10doku.pdf [Datum: 20.1.2012]
58
7.6
18
CMPS-03 18
http://www.datasheetcatalog.org/datasheets2/10/108026_1.pdf [Datum: 20.1.2012]
59