Implementierung eines IMU Systems

Board mit eingebauter IMU

Für die Verbesserung unseres Gegnererkennungssystems würden wir gerne IMUs (Inertia Measurement Units), also Beschleunigungssensoren nutzen. Bisher basiert unsere Gegnererkennung ausschließlich auf Triangulation mit Ultraschall. Die zusätzlichen Informationen einer IMU auf den gegnerischen Robotern soll diese noch genauer machen.

Aufgaben

  • Erstes Testen verschiedener IMUs m.H. von Dev – Boards
  • Erstellen einer kompakten Platine zur Ansteuerung des Sensors + Kommunikation mit unserem Roboter
  • Software zur Auswertung der Sensoren
  • Einarbeitung in derzeitiges System
  • Software zur Sensorfusion (Ultraschall+IMU)

Tools

  • C / C++
  • KiCad

Adaptive Pfadplanung

Lokale Pfadplanung

Für unsere nächste Wettbewerbssaison wollen wir gerne unsere Pfadplanung so adaptiv wie möglich gestalten. Dafür ist eine lokale Pfadplanung angedacht, die auf Basis eines vorerst globalen Pfades sich bewegenden Hindernissen ausweicht und auch durch enge Lücken navigieren kann. Als Hindernisse zählen zum Beispiel Roboter der anderen Teams, aber auch unsere eigenen Bots und fest verbaute Spielelemente.

Aufgaben

  • Einarbeitung in die Grundlagen von Pfadplanungsalgorithmik
  • Implementierung eines (lokalen) Pfadplanungsalgorithmus
  • Test und Inbetriebnahme des Systems an den Robotern

Tools

  • C++
  • Robot Operating System (ROS)
  • Vorschlag zur Implementierung (nav2)

Odocal-Automation

Umsetzen eines Tools zur automatischen Odometriekalibrierung.

Zusammenfassung

Unsere Roboter orientieren sich auf dem Spielfeld unter anderem mit Hilfe einer Odometrie. Diese besteht aus zwei mitlaufenden Rädern, die die zurückgelegte Distanz messen und so eine Positionsbestimmung ermöglichen. Damit die Berechnung der Pose möglichst genau ist, müssen die exakten geometrischen Parameter des Messsystems kalibriert werden [1]. Bisher wurde dieser Prozess manuell druchgeführt.
Inzwischen sind wir in bestitz einer Cognex -Kamera [2], die über weitreichende Funktionen zur Objekterkennung und Positionsbestimmung verfügt. Ziel ist es mit dieser Kamera ein automatisches Messsystem aufzubauen und den Kalibrierungsprozess so weit wie möglich zu automatisieren.

Aufgaben

  • Aneignen von Grundwissen zur Funktionsweise der Odometrie
  • Einarbeiten in vorhandenen Code und Systeme zur Odometriekalibrierung
  • Konzipieren und Umsetzen einer automatisierten Lösung
  • Test und Validierung des Systems

Tools

  • C++ (Code verstehen, neu geschriebene Module können auch anders umgesetzt werden)
  • Robot Operating System (ROS)
  • Cognex In-Sight

Links

[1] http://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/kalman/chong_accurate_odometry_error.pdf
[2] https://www.cognex.com/products/machine-vision/2d-machine-vision-systems/in-sight-7000-series/specifications

ArUco Erkennung

Es soll ein System zum Lokalisieren von ArUco Markern aufgebaut werden.

Zusammenfassung

In den neusten Eurobotregeln wurde ein neues System zur Objekterkennung eingeführt: ArUco Marker [1]. Diese können benutzt werden um die Position und Orientierung von Spielelementen herauszufinden oder sogar Gegner zu erkennen. Daher soll ein wiederverwendbares System zum Erkennen und zur Positionserfassung dieser Marker implementiert werden. Im Roboter kann dazu einen Webcam an den Hauptrechner angeschlossen werden, deren Bilder in einem ROS-Node [2] ausgewertet werden sollen.
Es ist nach Regelwerk außerdem zulässig ein zusätzliches Erkennungssystem über dem Spielfeld zu montieren. Dafür müsste ein Haltesystem konstruiert und geeignete Hardware zur Bildverarbeitung und Kommunikation (z.B. RapsberryPi) ausgewählt werden.

Aufgaben

  • Einarbeitung in ArUco und geeignete Bibliotheken
  • Implementierung eines Systems mit Kamera im Roboter
  • zusätzlich: Aufbau eines zentralen Erkkenungssystems

Tools

  • Programmiersprache nach Wahl
  • Robot Operating System (ROS)
  • SolidWorks CAD

Links

[1] https://docs.opencv.org/trunk/d5/dae/tutorial_aruco_detection.html
[2] http://wiki.ros.org/aruco

Kompakte Kugelrollen

Konstruktion einer möglichst kompakten gefederten Kugelrolle.

Zusammenfassung

Unsere Roboter verfügen über zwei Antriebsräder und stützen sich zusätzlich auf Kugelrollen [1] ab. Für größere Aktoren in der Nähe des Bodens sind diese Rollen oft zu sperrig. Kompakte und in sich gefederte Kugeln sind verfügbar [2] aber bisher noch nicht getestet. Wichtig ist, dass die Kugelrolle trotz kompakter Bauform nicht zu klein wird, um Unebenheiten im Boden ausreichend ausgleichen zu können. Die Steifigkeit der Federung solle möglichst einfach anpassbar sein, damit je nach Fahrverhalten des Roboters nachjustiert werden kann.
Ziel dieses Projekts ist der Aufbau einer kompakten Kugelrollen-Baugruppe mit Federung und einfacher Schnittstelle zur Montage im Roboter.

Aufgaben

  • Recherche zu möglichen Komponeneten oder fertigen Lösungen
  • Aufbau einer wiederverwendbaren Baugruppe im CAD

Tools

  • SolidWorks CAD

Links

[1] https://www.maedler.de/product/1643/1629/468/kugelrollen-310-320-mit-befestigungselement
[2] https://www.halder.com/gb/Products/Standard-Parts/Machine-and-Fixture-Elements/Spring-Plungers/Spring-Plungers-with-moveable-ball-and-internal-hexagon

Spannungsversorgung

Unsere bisherige Spannungsversorgung für 12V, 6V und 5V beruht auf integrierten Schaltreglermodulen, die mit KFZ-Sicherungen abgesichert sind. Dieses System verbraucht relativ viel Platz, ist relativ unflexibel was verschiedene Spannungen angeht und in seiner Leistung durch die verwendeten Schaltreglermodule begrenzt.

Es gilt zu untersuchen, ob eine digitale Spannungs-Regelung und Überwachung auf Basis eines STM32(G4) diese Nachteile beseitigen kann.

Hier ein Video ST, das zu unserem Anwendungsfall passt:
https://www.youtube.com/watch?v=7FfBoeuk_Gc

Portabler 3D-Drucker

Neuaufbau unseres alten 3D-Druckers als „mobiler“ Drucker

Zusammenfassung

Unser alter 3D-Drucker  Flashforge Creator Klon [1] ist seit mehreren Jahren aus dem aktiven Dienst entlassen. Da er sich dank seiner Bauform perfekt zwischen anderen Kisten verstauen lässt, wäre es aber gut ihn als „Reisedrucker“ für Wettbewerbe wieder einsatzbereit zu machen. Dazu müsste die Hardware gewartet und nach Bedarf teilweise erneuert werden. Auch softwareseitig sollte nach neuen Optionen für die stark veraltete Firmware geschaut werden, um den Workflow zu vereinfachen [2].  Zusätzliche hilfreiche Modifikationen sind denkbar und erwünscht. Ein ideales Einsteiger- und Bastelprojekt.

Aufgaben

  • Hardware überprüfen und warten
  • Recherche zu Druckersoftware und Workflows
  • mechanische Modifikationen für einfacheren Transport

Links

[1] https://flashforge-germany.com/de/product_info.php?info=p7_flashforge-creator-pro.html
[2] https://reprap.org/wiki/List_of_Firmware

Remote-UI

Aufbau eines Geräts zur drahtlosen Konfiguration des Roboters.

Zusammenfassung

Vor den Wettbewerbsspielen und beim Testen müssen an den Robotern verschiedenste Einstellungen vorgenommen werden. Dafür verfügen unsere Bots über ein Userinterface (UI) mit Display und Bedienelementen. Um im Roboter Platz zu sparen und die Bedienung zu vereinfachen, soll dieses integrierte Interface auf die nötigsten Grundfunktionen reduziert werden und stattdessen ein externes Gerät zum Bedienen des Roboters zum Einsatz kommen. Die Kommunikation [1] mit den Robotern soll drahtlos erfolgen. Zur Sicherheit wäre die zusätzliche Option eines kabelgebundenen Betriebs wünschenswert. Das externe Gerät kann selbst aufgebaut oder die UI-Funktion als Anwendung auf einem fertigen Gerät (z.B. Tablet) umgesetzt werden..

Aufgaben

  • Entwickeln eines geeigneten Grundkonzepts
  • Beschaffen oder Aufbau des Remote-Gerätes
  • Userinterface inklusive Schnittstellen programmieren

Links

[1] http://wiki.ros.org/ROS/Patterns/Communication