Schlagwort-Archive: Programmierung

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

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