Mai; WM-Team; Das SPI bringt uns an unsere Grenzen

In diesem Monat ging es drunter und drüber. Wir haben unsere neuen Räder bekommen und konnten diese mit den selbst hergestellten Subwheels bestücken. Das Erfolgserlebnis schlechthin war die Hülle. Wir massen die Hälfte des Gewichts, wie letztes Jahr. Und die Stabilität hat sich fast nicht verändert. Wir liegen nun gut im Gewicht drin. Leider macht uns aber die Elektronik immer wieder eine Strich durch die Rechnung. Das SPI, mit welchem die Boards verbunden sind, bekommt zu viel Strom und bratet regelrecht unser Mainboard. Wir haben leider noch nicht erkannt wieso, dies so entstehen kann, sind aber dran um diese Problem zu beheben. Dennoch bleibt uns im Moment nichts anderes übrig, als neue Mainboard zu bestücken und diese versuchen so lange es geht am Leben zu behalten. Die Programmierung versucht sich ebenfalls am SPI, da aufgrund dieses Problems die Ballsensoren nichts sehen und somit keine Strategie sinnvoll getestet werden kann. Die Strategien können aber schon geschrieben werden und somit können wir danach diese gut testen.

April; WM-Team; Neue Energie

Nach den Austrian Opens haben wir neue Energie getankt. Wir konnten zusammen sitzen und uns überlegen, wie wir nun vorgehen können und Verbesserungen anbringen können. Wir haben einen neuen Zeitplan erstellt, welchen wir nun befolgen können, da wir nun neue beziehungsweise andere Komponente haben um an denen zu arbeiten. Wir konnten verschiedene Elektronische Aspekte fertig stellen, welche essentiell für den Roboter sind und uns nun an den Feinschliff wagen. Programmiertechnisch versuchten wir das die Sensoren bessere Werte herausgeben, damit wir den Ball und die Ausrichtung schneller laufen lassen konnten. Ebenfalls haben wir uns an eine Strategie gewagt, die ist jedoch noch nicht vollkommen gelungen. Die Hülle des Roboters wurde dabei auch besprochen. Wir brauchen eine sehr leichte, dennoch stabile Hülle. Diese vom letzten Jahr, war sehr stabil, dafür auch ziemlich schwer. Und da die Kapazität des möglichen Gewichtes sich langsam ausschöpft, können wir nicht mit einer solch schweren Hülle rechnen. Wir haben uns entschieden, die Hülle mit einem anderen Kleber zu kleben und weniger von diesem zu benutzen. Die ersten Test damit können bald verübt werden.

März 2016, WM-Team: Lowlevel fast fertig, Platinen bestellt, neue Dribblerrollen

Programmierung

Da die neuen Boards nun angekommen sind, konnten wir uns voll der Programmierung des Lowlevel widmen. Das heisst, dass wir die Boards so programmiert haben, dass sie Werte an das Mainboard geben, mit denen das Mainprogramm eine Strategie ausführen kann. Zudem konnten wir auch die Kommunikation zwischen den Boards zum Funktionieren bringen. Auch die Kommunikation zwischen den Bots konnten wir verbessern, sodass diese nun stabiler funktioniert. Auch bei den neuen Boards schalteten wir den WDT ein, da auch diese nicht immer ganz zuverlässig funktionieren. Im Grossen und Ganzen hatten wir grosse Fortschritte diesen Monat gemacht.

Zudem investierten wir relativ viel Zeit den anderen Teams zu helfen, da diese noch Probleme hatten.

Elektronik

Ende Februar bzw. Anfang März waren die Leiterplatten für die überarbeiteten Sensoren zur Erkennung des Balles bzw. der Begrenzungslinien angekommen. Diese hatten grosse Priorität, da noch ein wenig Lowlevel Code sowie Filter geschrieben werden mussten.

Die Lichtsensoren hatten im letzten Jahr grosse Probleme bereitet, da immer wieder manche Exemplare kaputt gegangen sind, jedoch niemand von uns einen Makel am Schaltplan ausfindig machen konnte. Wie sich erfreulicherweise herausgestellt hat, ist dies mit anderen OpAmps nicht mehr aufgetreten. Wir vermuten, die zuerst verwendeten Verstärker waren all zu anfällig auf ESD, oder sogar schlicht fehlerhaft, haben aber keinen Sinn darin gesehen dem noch näher nachzugehen.

Die Ballerkennung wurde völlig überarbeitet: Vorher hatten wir (wahrscheinlich für Fernbedienungen u.Ä. konzipierte) integrierte Schaltkreise verwendet, wodurch zwar das Interface zum Prozessor einfach, sowie die Erkennung der Richtung des Balles gut war, die Entfernung jedoch nur höchst ungenau abgeschätzt werden konnte. Weiterhin war die Form der Leitplatten eher mühselig.

Wir verwenden nun unverstärkte Photodioden und verstärken sie „selber“ mittels eines Fet-Operationsverstärkers (pragmatischerweise der selbe wie bei den Liniensensoren). Dieses Signal wird mittels des internen Analog/Digital-Konverters eines AtXmega5e gelesen.

Dies hat sich, bis jetzt, als eine gute Lösung für unsere Ansprüche herausgestellt.

Der Umstieg auf diesen anderen, aber recht ähnlichen Prozessor hatten wir als eher trivial eingeschätzt, wir begegneten aber einem schwierig zu findenden Bug: Wenn man den Timer auf Port C benutz, funktioniert dort fast nichts mehr. Wir sind natürlich erst nach erheblichem Aufwand bez. Fehlersuchen auf die Idee gekommen, einen Fehler im Microcontroller selbst zu vermuten.

Sobald wir uns von der Funktionalität der neuen Designs überzeugt hatten, wurden einige kleine Fehler im Layout der Platinen korrigiert und auch die „Slaves“ bestellt.

Des weiteren haben wir unsere Stromversorgung überarbeitet: Wir verwenden nun andere Gleichstromwandler und haben einige /quality of life improvements/ wie Sicherungen, Verpolungsschutz und dreistufigen LED-Indikator für den Akkuladestand.

Mechanik

Das CAD wurde komplett fertiggestellt. Die verschiedenen Teile wurden ausgesägt. Wir testen noch mit verschiedenen Malerrollen, um unseren neuen Dribbler herzustellen. Die ursprünglichen, welche wir bisher immer genutzt haben sind leider nicht mehr Verfügbar. Dennoch haben wir neue gefunden, welche sich sogar der neuen Grösse super anpassen kann. Nun bleibt noch die Frage, wie wir die Festigkeit dieser unterstützen können, damit der Motor nicht nur die Stange selbst sondern die ganze Rolle drehen kann. Wir haben gemerkt, dass wir durch die zusätzliche Platte sehr viel an Stabilität gewinnen können, dennoch bleibt es offen, wie wir in der Gewichtslimite bleiben können. Da wir eine ganze Platte hinzugefügt haben. Dennoch, wir bleiben optimistisch und versuchen so viel wie möglich aus der neuen Platte auszuschöpfen.

März 2016, Challenge-Team Rescue B: Endspurt

Das Rescue Team B steht in der Endphase. In Kürze kommt das Asutrian Open, bei dem sie ihre harte Arbeit veranschaulichen können.

Programmierung

Dieser Monat hat für uns sehr viel verändert. Durch Schwierigkeiten mit der Elektronik haben wir uns entschieden mit einem XMega-Prozessor eine Alternative zu finden. Dies hat sich als sehr gut erwiesen, welche wir dann auch beibehalten haben. Wir haben nun anstatt eines Boards, mehrere, miteinander vernetzte Boards benutzt. Durch diese Veränderung mussten wir uns mit SPI vertraut machen. Dies gelang uns auf Anhieb und wir konnten gut damit arbeiten. Dadurch haben wir mehrere Erfolgserlebnisse erlebt. Wir konnten plötzlich ohne gröbere Probleme die Sensoren auslesen, zudem konnten wir nun schön gerade fahren und unsere wir konnten an unserer Strategie weiterarbeiten. Im Grossen und Ganzen war dieser Monat für uns sehr fortschrittlich.

Elektronik

Die Boards sind ziemlich spät angekommen. Ich habe versucht einige zusammen zu löten, dabei ist mir aufgefallen, dass diese nicht wirklich funktionieren. Die LEDs flackerten, obwohl sie leuchten sollten. Da wir ziemlich unter Zeitmangel standen, mussten wir eine bessere, effizientere und schnellere Lösung finden. Wir haben uns mit den älteren abgesprochen, was die sinnvollste Lösung zu scheinen mag. Dabei haben wir intensiv uns mit der Situation auseinander gesetzt. Wir haben uns dann entschieden einige Boards des WM-Teams zu benutzen, welche sich auch gut für uns einigten. Durch das konnte die Programmierung an der Software arbeiten und ich konnte mich auf das nicht funktionale Board stürzen und die mich auf die Fehlersuche begehen, damit wir nächstes Jahr eine bessere Grundlage haben.

Mechanik

Ich habe die Drehscheibe nun mit Schrauben versehen. Den Touchsensor habe ich an der Drehscheibe mit einem Zweikomponenten Kleber noch besser befestigt, da dieser einem sehr hohen Druck ausgesetzt ist und somit sehr viel Stabilität benötigt. Ebenfalls konnte ich dadurch alle Boards an dem Roboter anmachen, damit diese nicht mehr herumschwirren. Eine unserer Aufgaben ist gewisse Rescue-Kits an den Stellen mit dem Wärmepolen abzulegen. Und habe ich noch 6 solche Rescue-Kits erstellt, damit wir diese auch auswerfen können. Ich konnte einen spannenden Einblick in die Elektronik dadurch erhalten.

März 2016, Challenge-Team Rescue A: Endspurt

Das Rescue-Team A steht kurz vor ihrem ersten internationalen Wettbewerb.

Programmierung

Durch Verzögerungen in der Elektronik in der letzten Wochen, haben wir uns den Bibliotheken gewidmet. Da die Elektronik wieder aufgeholt hatte, konnten wir uns nun dahinter setzen. Leider konnten wir unsere Idee nicht so gut umsetzten wie wir wollten und haben uns dann auf eine andere Lösung geeignet. Wir haben verschiedene Boards gleichzeitig benutzt, welche zusammen vernetzt waren. Durch diese schnelle Lösung konnten wir uns der High Level Strategie widmen. Wir hatten eine ziemlich genaue Vorstellung wie diese Aussehen sollte, durch das war die Strategie sehr schnell fertig zu stellen. Dennoch treten immer noch kleiner Probleme auf, welche wir versuchen zu lösen.

Mechanik

Diesen Monat haben wir die noch nicht ausgeschnittenen Teile ausgeschnitten und zu einem Roboter zusammengebaut. Erfolg zeigte sich beim Einbau der Sensoren, welcher grössten Teils reibungslos verlief. Dieser Erfolg stellte sich allerdings auch bald wieder ein, als die zuerst verbauten Servos sich als funktionsunfähig erwiesen und ausgetauscht werden mussten. Dabei zeigten sich einige Konstruktionsfehler, welche zur Folge hatten, dass einige Teile verändert werden mussten, um die auszutauschende Teile zu erreichen. Doch es gab auch einige Änderungen in dem Plan: Die Erste betraf die Sensoren, welche sich teils als überflüssig erwiesen; eine weitere Veränderung betraf der Auslademechanismus. Statt wie geplant die Ladefläche zu kippen, bauten wir eine Blockade, die nun ausgeklappt als Verlängerung für die Ladefläche dient. Durch diese Veränderungen konnten wir leichter unsere Ideen verfolgen.

Januar 2016, Challengteam Rescue B Line, Step-by-Step

Programmierung
Da unser tatsächliches Board noch nicht fertiggestellt ist, haben wir mit Hilfe eines Breakoutboards für unseren Prozessor bereits einige Bibliotheken getested und zum Laufen gebracht. Wir können nun den UART-Debugger auslesen und LEDs umschalten. Aufgrund der Bauweise des Breakoutboards stiessen wir dabei auf einige Schwierigkeiten – so leuchtete die LED genau dann, wenn wir es nicht erwarteten, was uns zuerst verwirrt hatte. Weiterhin haben wir versucht, Sensoren über ADC auszulesen und Servos anzusteuern. Momentan arbeiten wir noch daran, dass alle Low-Level Bibliotheken bereit sind, wenn unser Board fertiggestellt ist.

Elektronik
Ich habe den Schaltplan fertig gezeichnet.Es gibt 11 Adc Stecker mit einer Spannung von 5V und 3V. Um die Motoren ansteuern zu können brauchen wir eine H-Brücke. Mit einem Pwm-Signal wird über diese H-Brücke der Motor angesteuert. Ich haben einen UART-Stecker darauf gelötet und 2 Stecker die je mit einem Pin welcher für eine zweiten UART wäre. So könnte man wenn man einen zweiten Uart bräuchte diesen aus diesen zwei Steckern zusammenbasteln. Ebenfalls habe ich noch zwei digitale Stecker gemacht.

Mechanik
Wir haben das CAD vollständig fertiggestellt. Es war ab und zu eine Platznot vorhanden, welche aber relativ schnell behoben werden konnte. Wir mussten uns gut überlegen, wie wir das mit den Kits machen, welche wir abwerfen müssen. Dabei haben wir auf den Erfahrungsbericht des letzten Jahr gebaut. Wir haben ebenfalls eine drehende Platte mit Löchern drin erstellt. Wir hoffen auf eine gute Lösung der Reibung zu finden, damit der Motor nicht überlastet.

Januar 2016, WM-Team: Neue Boards

Elektronik
Wir konnten neue Ballsensorenboard designen, welche sich auch gut mit der Mechanik übereinstimmen konnte. Zudem haben wir uns den Lichtsensoren gewidmet, welche ein völlig neues Design dieses Jahr bekommen. Wir konnten in China uns mit anderen Teams austauschen und kamen auf eine gute Idee, indem wir mehrere Lichtsensoren auf einer Platine aneinanderreihen. Dies sollte uns das Erkennen der Linien am Boden erleichtern und eine schneller Reaktion des Roboters auf die Linien ausmachen.

Programmierung
Das Problem mit dem nicht präzise fahrenden Roboter konnte gelöst werden, unsere Befürchtungen, dass es an einem tiefgreifenden Fehler im Code liegt, stellte sich zu Glück als Falsch heraus. Deshalb konnte das Problem gelöst werden nach langem herumspielen mit den Einstellungen. Zudem schalteten wir beim Mainboardprojekt den Watch Dog Timer ein. Dieser kann man mit einer Totmanneinrichtung vergleichen, dass heisst wenn der Prozessor einen von ihm unabhängigen Countdown nicht alle 3 Sekunden zurücksetzt, dann neustartet dieser den Prozessor. Damit hoffen wir uns, dass unser Roboter stabiler funktionieren wird während einem Spiel und wir ihn somit weniger aus dem Feld nehmen müssen. Solche Probleme treten eigentlich nur selten auf aber wir glauben, dass eben auch diese selten Fälle sehr entscheiden für ein Spiel sein können. Diese Änderung hat auch zu einem grossen Umstrukturierung des Codes bevor sich der Roboter bewegt geführt, da man nicht zwischen einem „normalen“ Neustart und einem WDT Neustart unterscheiden kann und das Ziel bei einem „normalen“ Neustart ist, dass er wartet bis man auf einen Knopf drückt und bei einem WDT Neustart soll er sofort los fahren.

Mechanik
Wir haben uns intensiv mit der Zeichnung des CAD’s gewidmet. Während wir ein paar komplett neue Teile erbaut haben, wie die Lichtsensoren, haben wir zudem einen Einblick in die Zeichnung von der Elektronik bekommen. Wir konnten dadurch eine genauer Zeichnung erstellten, der verschiedenen Platinen. Zudem kam die Diskussion auf, wie wir die mittlere Platte mit der Oberen verbinden. Eine Idee war, mit vielen Stäbchen. Die Idee wird jedoch noch Überdenkt.

Dezember 2015, Challengeteam Rescue A Line, Newcomer am Start

Unsere frischgebackenen Challenger haben ihre erste Schritte zum Fertigstellen des Roboter gemacht.

Mechanik
Wir Neumechaniker der Rescue A erhielten an einem Samstagnachmittagunsere erste Einführung ins CAD zeichnen. Wr lernten als allererstes 2DSkizzen zu erstellen und diese danach zu den gewünschten dreidimensionalen Objekten weiter zu verarbeiten. Zuallererst standen
wir an jeder möglichen Ecke an, doch was zuerst nur grobe, klobige
Klötze waren, wurde bald etwas exakter und mehr der Vorstellung
entsprechend. Um weitere Übung zu erhalten, begannen wir Objekte wie
Pingpongschläger abzuzeichnen. Gegen Abend lernten wir noch, wie man
verschiedene Bauteile zu einem vollendeten Roboter zusammensetzen kann
und wie man Pläne herstellt aus welchen danach mit Material gebaut
werden kann. Nun heisst es weiterhin fleissig üben und langsam erste
Ideen für unseren Roboter sammeln.
Nicht zu vergessen ist natürlich, dass wir unser Zimmer aufräumten und
die Legos nun für ein Jahr beiseite stellen bis sie von den nächsten
Newcomern wieder genutzt wird.

RescueA_Mechanik

Bescheidener, unvollendeter Versuch meinen Fotokamera-Ladeadapter zu zeichnen.

Programmierung
Unsere Aufgabe wird es sein, ein „zerstörtes Gebäude“ zu durchqueren und im letzte Raum Opfer in Form von reflektierenden Bällen zu retten. Bis jetzt haben wir geschaut, wie in ungefähr unser Roboter funktionieren sollte und welche Sensoren und Motoren wir dazu benötigen. Das Ansteuern der Sensoren und Motoren wird eine grosse Herausforderung für mich sein, da dies nicht mehr so einfach ist wie bei den Lego-Roboter. Deshalb wird meine erste Aufgabe sein, mich in die Thematik reinzulesen, wie man sich das ganze Vorstellen kann. Ausserdem sollte ich mir überlegen, wie ich diverse Sachen handhaben möchte, wie zum Beispiel das Umgehen eines Hindernisses, die Lokalisierung der Evakuierungszone oder den Übergang vom Linenfolger zur Endzone. Im Endeffekt habe ich noch nichts Sichtbares erreicht, aber in dieser ersten Phase wird es wichtiger sein Informationen zu sammeln und sich Gedanken zur Umsetzung machen.

RobOlympics 2015

Am 14.11.2015 fanden die RobOlympics 2015 in Rapperswil statt. Unser Nachwuchsteam nahm in der Disziplin MoveItOver teil.

Nach der einstündigen Zugfahrt kamen wir an der Hochschule Rapperswil an und besetzten unseren Tisch. Nach einer kurzen Rede des Prorektors ging es dann auch schon los. Nach der Homologation, einer kurzen Bestätigung der Schiedsrichter, dass unser Roboter regelkonform gebaut ist, machten wir einen Testlauf. Dieser zeigte, dass unser Roboter bereit für die erste Vorrunde war.

Unser Roboter funktionierte wie eine Art Gabelstapler, wobei wir an der Spitze des Roboters eine Schaufel angebracht hatten. Diese wurde gehoben, wenn der Touchsensor an der Front angab, dass der Roboter sich an der Barriere zum gegnerischen Spielfeld befand. Dieser Touchsensor funktionierte in der ersten Vorrunde nicht, was bedeutete, dass unser Roboter die Schaufel nicht hob. Zu unserem Glück war der gegnerische Roboter ziemlich schlecht gebaut. Dieser blieb an einer Wand hängen und verlor einige Teile, was zu einem 20:0 Sieg für uns führte.

Das Problem mit dem Touchsensor behoben wir danach rasch. Der Verlängerungsstift des Touchsensors war einfach nicht richtig positioniert gewesen, ein dummer Fehler, der eigentlich nicht hätte passieren dürfen. Die zweite Vorrunde gewannen wir souverän, und die dritte, die nach dem Mittag stattfand, auch. Somit waren wir nach den drei Vorrunden auf dem ersten Rang positioniert. Dadurch durften wir im Viertelfinal gegen die Achtplatzierten antreten. Die erste von drei Runden im Viertelfinalspiel haben wir gewonnen, die zweite wurde verschoben, weil das gegnerische Team den Akku aufladen musste.

Nachdem wir die zweite Runde auch gewonnen hatten und somit nach dem Best-of-Three System das Viertelfinal gewonnen hatten, standen wir im Halbfinal. Dieser folgte direkt nach der zweiten Runde und war unser spannendstes Duell. Doch schliesslich gewannen wir auch den Halbfinal mit 13:7 und 14:6.

Das Finale bestritten wir wieder direkt nach dem Halbfinal. Es war spannend, jedoch hatte der Gegner den Roboter so eingestellt, dass er sich nach 50 Sekunden anstatt nach 90 Sekunden abschaltete. So war unsere Programmierung deutlich besser. Wir wurden zum Sieger der Disziplin MoveItOver an den RobOlympics 2015 gekürt.

Mit einem breitem Lächeln im Gesicht und Kinogutscheinen als Preise machten wir uns auf den Heimweg zurück nach Chur. Es war ein langer, aber erfolgreicher Tag. Wir konnten viele neue Erfahrungen machen und spannende Gegnern mit vollkommen anderen Lösungsansätze kennen lernen.

12241192_10156200928575655_4965594743998188938_n

(v.l.n.r.: Gian Flurin Bearth, Andrea Däppen, Romario Jäger)

Oktober 2015, WM-Team: Nicht nur die Roboter kommunizieren

Das WM-Team hat sich Zusammengesetzt und sich so neue Designs und Verbesserungen ausgedacht. Wie bekannt, ist jeder Anfang schwer, doch unser WM-Team meistert dies mit Bravur, in dem sie zusammen an die Probleme rangehen.

Neue Boards

Schon letztes Jahr haben wir ein paar neue Boards designt. Dies kam uns sehr entgegen, da man auch so das Design des Roboters an sich besser anpassen konnte. Dieses Jahr versuchen wir noch mehr zu verändern, während die Mechanik versucht das meist Möglichste aus den Einschränkungen herauszuholen, ohne dabei die Regeln zu verletzen, versuchen wir in der Elektronik uns so gut wie es geht anzupassen. Unser momentaner Schwerpunkt liegt auf den Ballsensoren, welche mit neuen Komponenten bestückt werden und eine neue Form bekommen.

Verbesserung der Kommunikation

In diesem Monat haben wir nach dem vorangegangenen Planen mit dem eigentlichen Programmieren begonnen. Die grundlegenden Funktionen haben wir vom Programm des letzten Jahres übernommen. Zuerst haben wir die Ordnung im Programm verbessert um den Code ein wenig aufgeräumt und ersichtlicher zu gestalten. Dies wird das zukünftige Arbeiten deutlich erleichtern. Auch haben wir die Kommunikation zwischen den Robotern, die mittels Bluetooth funktioniert, überarbeitet, sodass sie nun zuverlässiger funktioniert und bei eventuellen Verbindungsunterbrüchen die Verbindung augenblicklich wieder herstellt. Zudem werden jetzt Warnungen gesendet, falls bei der Initiation der Roboter etwas schiefgehen sollte, sodass wir entsprechende Massnahmen treffen können. Da der Bot letztes Jahr nicht sehr präzise und gleichzeitig auch schnell fuhr, wollten wir dies nun verbessern. Da unsere ersten Versuche damit nicht zum gewünschten Ergebnis geführt hatten, werden wir etwas tiefer in den Code eingreifen müssen, um die Fehler zu beheben.

Eine dritte Ebene

Wir haben uns diesen Monat mit der Elektronik zusammen, vor allem auf das theoretische Designe festgelegt. Mit vielen Diskussionen wurden grundlegende Sachen verändert, welche wir nun versuchen in einem CAD wiederzugeben. Dabei darf nie das Gewicht ausser Acht gelassen werden. Eines der grössten Veränderungen, wird eine zusätzliche Platte dicht über den Rädern darstellen. Durch diese Platte, werden wir versuchen die Sensoren besser zu schützen und unserem Roboter einen besseren Halt zu bescheren. Das CAD wird momentan realisiert, damit man auf auftretende Fehler aufmerksam gemacht werden kann.