Roboter

ACHTUNG: Wir haben den gesamten Quellcode unseres Roboters auf github veröffentlicht und eine ausführliche Wiki geschrieben:

https://github.com/janblumenkamp/rcj2015

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––Auf dieser Seite werden wir Euch unsere Roboter vorstellen. Eine Erklärung unserer Modelle des LEGO® MINDTORMS® Systems, welches wir für den RoboCup Junior Rescue A in der Saison 2010/2011 verwendet haben, findet ihr hier. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– In der Saison 2014/2015 benutzen wir den selben Roboter wie in der letzten Saison. Es gibt lediglich minimale Optimierungen.

Hardwareseitig sieht der Aufbau wie folgt aus:

  • Grundgerüst (19cm x 19cm) aus Plexiglas mit massiven Getriebemotoren mit einer Untersetzung von 30:1 (103RPM/12V)
  • Vier angetriebene Motoren, wobei jeweils zwei Motoren auf einer Seite parallel geschaltet werden. Ausgelesen werden nur die beiden vorderen Quadraturencoder, wodurch eine präzise Geschwindigkeitsregelung und genaue Geradeausfahrten ermöglicht werden.
  • Selbstentwickeltes Motherboard mit Atmel ATmega2560 (getaktet auf 16MHz) und Pololu TB6612 Motortreiber, beides als Modul ausgeführt, sodass beides einzeln bei Defekt schnell und einfach ausgetauscht werden kann (Weiternutzung aus Saison 2012/13)
  • 8 Sharp Infrarotentfernungssensoren mit einer Reichweite von jeweils 3 – 30cm
  • 2 digitale Sharp Infrarotentfernungssensoren (GP2YE03) mit einer Reichweite von jeweils 3 – 50cm
  • 1 CHRobotics UM6 Orientierungssensor
  • 1 Grafik LCD 128×64 Pixel, Ansteuerung mit 8MHz via SPI (Tipp: Wir verwenden die wirklich geniale Library u8glib) mit User-Interface per Quadraturencoder
  • 1 IR Untergrundsensor
  • 2 Taster vorne am Roboter zum Erkennen von Kollisionen
  • 2 Infrarot Wärmesensoren Melexis MLX90614 mit 35° Öffnungswinkel (FOV)
  • 1 LiPo Akku 11.1V/2,2Ah (reicht normalerweise für einen Wettbewerbstag)
  • Rescuekitdropper zum Abwerfen von Rescuekits (stellen 1. Hilfe Kits dar) bei erkannten Opfern

 

Die Software ist, bis auf grundlegende Librarys wie für I²C, UART oder das Display, komplett selbst geschrieben. Die Veröffentlichung ist nach Ende der Saison 2015 geplant. Mit diesem Roboter haben wir in der Saison 2013/2014 insgesamt folgende Leistungen erzielt:

  • 1. Platz RoboCup German Open Qualifizierungsturnier 2015 in Oldenburg
  • 1. Platz RoboCup German Open 2015 in Magdeburg
  • 1. Platz RoboCup WM 2015 Einzelwertung in Hefei, China
  • 3. Platz RoboCup WM 2015 Superteam in Hefei, China

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– In der Saison 2013/2014 haben wir im Wesentlichen, auch, wenn es nach einen komplett neuen Roboter aussieht, den Roboter des letzten Jahres optimiert. Die Elektronik ist identisch, lediglich bei der Mechanik haben wir auf ein verändertes, aber ähnliches Konzept gesetzt. Besonders die LEGO NXT-Motoren haben uns letztes Jahr große Probleme bereitet, aber auch die LEGO Teile, die die Motoren mit den Rädern und der restliche Mechanik (Alu U-Profile) verbunden haben, sind nicht wirklich für so etwas geeignet. Insgesamt war der Roboter nicht 100%ig symmetrisch, was bei Handfertigung einfach fast unmöglich ist. Deshalb wurde der Roboter komplett am Computer (CAD) geplant und das Chassis dann mit einem Laser aus Plexiglas geschnitten. Außerdem haben die LEGO Motoren Probleme mit der Gewichtsverteilung bereitet: Da sie sehr leicht sind, ist der Schwerpunkt weit oben, weshalb es für den alten Roboter sehr schwierig war, steile Rampen zu bewältigen. Bleigewichte haben nur weitere Probleme mit der Mechanik bereitet, weshalb wir auf ein anderes Antriebssystem mit Motoren mit robusterem Getriebe gesetzt haben. So haben wir ein extrem solides Grundsystem. Weitere Infos in diesem und diesem Blogeintrag.

Roboter 2014

Roboter 2014

Auf dem Bild seht ihr den Roboter, mit dem wir am Vorqualifikationsturnier in Hannover im März 2014 und an den deutschen Meisterschaften im April 2014 in Magdeburg teilgenomme haben. Hardwareseitig sieht der Aufbau wie folgt aus:

  • Grundgerüst aus Plexiglas mit massiven Getriebemotoren mit einer Untersetzung von 30:1 (103RPM/12V)
  • Vier angetriebene Motoren, wobei jeweils zwei Motoren auf einer Seite parallel geschaltet werden. Ausgelesen werden nur die beiden vorderen Quadraturencoder, wodurch eine präzise Geschwindigkeitsregelung und genaue Geradeausfahrten ermöglicht werden.
  • Selbstentwickeltes Motherboard mit Atmel ATmega2560 (getaktet auf 16MHz) und Pololu TB6612 Motortreiber, beides als Modul ausgeführt, sodass beides einzeln bei Defekt schnell und einfach ausgetauscht werden kann (Weiternutzung aus Saison 2012/13)
  • 10 Sharp Infrarotentfernungssensoren mit einer Reichweite von jeweils 3 – 30cm
  • 1 CHRobotics UM6 Orientierungssensor
  • 1 Grafik LCD 128×64 Pixel, Ansteuerung mit 8MHz via SPI (Tipp: Wir verwenden die wirklich geniale Library u8glib) mit User-Interface per Quadraturencoder
  • 1 TAOS TSL1401 Zeilenkamera mit High Power LED zur frühzeitigen Erkennung der schwarzen Sackgassen
  • 1 Backup IR Untergrundsensor (Redundanz, falls Kamera ausfällt)
  • 2 Infrarot Wärmesensoren Melexis MLX90614 mit 35° Öffnungswinkel (FOV)
  • 1 LiPo Akku 11.1V/2,2Ah (reicht normalerweise für einen Wettbewerbstag)

Nachdem wir uns für die WM in Brasilien qualifiziert haben, haben wir uns für eine Überarbeitung des Roboters entschieden. Hier wurde der Roboter hauptsächlich etwas kompakter gestaltet (vorher 20cm x 20cm, nachher 19cm x 19cm), was man auch sofort sieht. Außerdem war ein Rescuekitdropper notwendig, da bei erkannten Opfern nun Rescuekits, die erste Hilfe Kits darstellen, abgeworfen werden müssen:

An der Hardware geändert haben wir insgesamt gegenüber dem Vorgänger:

  • Außenmaße um 1cm geschrumpft
  • Einfügen einer weiteren Zwischenetage, auf denen die Entfernungssensoren montiert werden (ganz unten Motor und Stromversorgung auf 12V Ebene, darüber Sensorplatte mit gesamter 5V Elektronik und ganz oben Abdeckung mit User Interface und den Wärmesensoren)
  • Keine Zeilenkamera mehr (nicht notwendig)
  • 8 Sharp IR Entfernungssensoren mit einer Reichweite von 3cm bis 30cm und 2 neue Sharp GP2YE03 Entfernungssensoren mit einer Reichweite von 3 bis 50cm
  • Untergrundsensor auf Basis von Infrarot High Power LED und Infrarot Phototransistor:

Die Software ist, bis auf grundlegende Librarys wie für I²C, UART oder das Display, komplett selbst geschrieben. Mit diesem Roboter haben wir in der Saison 2013/2014 insgesamt folgende Leistungen erzielt:

  • 2. Platz RoboCup German Open Qualifizierungsturnier 2014 in Hannover
  • 2. Platz RoboCup German Open 2014 in Magdeburg
  • 4. Platz Einzelwertung RoboCup WM 2014 in Brasilien
  • 3. Platz Superteam RoboCup WM 2014 in Brasilien

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– In der Saison 2012/2013 haben wir auf einen kompletten Selbstbau gesetzt. In der letzten Saison konnten wir mit dem RP6 System viele Erfahrungen sammeln und fühlten uns nach der Teilnahme an der Weltmeisterschaft sicher und erfahren genug, einen Roboter komplett selbst zu bauen. Um nicht komplett bei 0 Anfangen zu müssen, haben wir auf ein Grundgerüst aus LEGO gesetzt. LEGO ist sehr solide, da es für Kinder entwickelt wurde. Das gilt sowohl für die Kunststoffteile, als auch für die von uns verwendeten LEGO MINDSTORMS Motoren.

Roboter 2013

Auf dem Bild seht ihr den aktuellen Roboter, mit dem wir an den Vorqualifikationsturnier in Hannover im Februar und den deutschen Meisterschaften Ende April 2013 in Magdeburg teilgenommen haben. Hardwareseitig sieht der Aufbau wie folgt aus:

  • Grundgerüst aus LEGO TECHNIC Bauteilen, erweitert durch Aluminium U-Profilen
  • selbstentwickeltes Motherboard für ATmega2560 und Motortreiber, beides als Modul ausgeführt, sodass beides einzeln bei Defekt ausgetauscht werden kann
  • 8 Sharp Infrarotentfernungssensoren mit einer Reichweite von jeweils 3 – 30cm
  • 4 Devantech Ultraschallsensoren SRF10
  • 1 UM6 Orientierungssensor
  • 2 Bumper
  • 1 Grafik LCD 128×64 Pixel (Tipp: Wir nutzen die wirklich geniale Library u8glib)
  • 2 Infrarot Wärmesensoren Melexis MLX90614

Die Software ist, bis auf grundlegende Librarys wie für I²C, UART oder das Display [SPI] komplett selbst geschrieben. Mit diesem Roboter haben wir in der Saison 2012/2013 insgesamt folgende Leistungen erzielt:

  • 3. Platz RoboCup German Open Qualifizierungsturnier 2013 in Hannover
  • 5. Platz RoboCup German 2013 in Magdeburg

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– In der Saison 2011/12 haben wir das RP6 Robot System von Arexx benutzt. Wir haben uns dafür entschieden, weil ein Grundgerüst, auf dem man aufbauen kann, vorhanden ist. Der Einstieg in diese, im Gegensatz zum MINDSTORMS, doch gehobenere Klasse fällt so auch einfacher. Softwareseitig ist das Grundgerüst bereits aufgebaut, man kann also sofort loslegen und schon nach kurzer Zeit Erfolgserlebnisse erzielen. Hier seht ihr den Roboter, mit dem wir auch an der RoboCup WM 2012 in Mexiko-City teilgenommen haben. Hardwaremäßig selbstständig und in Eigenregie zum standard-RP6-System erweitert haben wir:

  • Sechs Sharp Infrarot Entfernungssensoren zum Lösen des Labyrinths (zwei zeigen nach vorne/hinten, die restlichen nach links/rechts)
  • Ein Langstreckenlichtsensor, der den Boden vor dem Roboter überwacht, um Sackgassen (schwarze Felder) zu erkennen und zu umfahren
  • Einen 3-Achsen Beschleunigungssensor „ELV 3DBS“, um die Rampenerkennung zu unterstützen
  • Zwei Infrarot Wärmesensoren Melexis MLX90614 mit einem Öffnungswinkel von 35°. Die Temperatur kann mit einer Genauigkeit von 0,5°C und einer Auflösung von 0,02°C digital über I²C ausgelesen werden.
  • Vier Ultrahelle weiße LEDs signalisieren die Opfer
  • Da der Roboter zu steile Rampen (>18°) nicht hochfahren konnte, haben wir die Ketten mit Sprühgummi eingesprüht. Die Ketten haben nun genügend Grip, um die Rampe zu erklimmen. Einfach, aber effektiv.

Softwaremäßig haben wir alles, bis auf die Systemlibrarys, selbst entwickelt und geschrieben. Dazu gehören:

  • Ein Setup-Menü, an dem wir vor einem Wertungslauf die Schwellwerte der Sensoren schnell und individuell an die Arena anpassen können
  • Der Wallfollower Algorithmus mit einem PID-Regler
  • Das Auslesen und linearisieren bzw. umrechnen der Werte der Sharp IR Entfernungssensoren und der IR Wärmesensoren
  • Die Rampenerkennung
  • Die Sackgassenerkennung
  • Die Opfererkennung (siehe Auslesen der IR Sensoren)
  • Die gesamte Software basiert auf Interrupts und einfachen Abfragen, die das Programm nicht aufhalten. Ein Schleifendurchlauf, in dem Sackgassen, die Opfer und natürlich das Labyrinth erkannt und gelöst werden, dauert nur wenige Millisekunden, weshalb unser System multitaskingfähig ist

Mit diesem Roboter haben wir in der Saison 2011/2012 insgesamt folgende Leistungen erzielt:

  • 1. Platz RoboCup German Open Qualifizierungsturnier 2012 in Hannover
  • 3. Platz RoboCup German 2012 in Magdeburg, Qualifikation für die WM in Mexiko-City
  • 12. Platz Einzelwertung RoboCup WM 2012 in Mexiko-City
  • 1. Platz SuperTeam RoboCup WM 2012 in Mexiko-City gemeinsam mit dem Team M&Y aus Japan