Entwicklung einer Software-Komponente zur Bestimmung der Roboterposition mit einem SICK-Laserscanner.


Zusammenfassung

Wir besitzen einen SICK TIM 551 Laserscanner, der mittels eines Infrarotlasers radial Distanzen misst. In der richtigen Höhe in einen unserer Roboter eingebaut, wäre es damit prinzipiell möglich, die Roboterposition anhand der beobachteten Entfernungen zum Spielfeldrand zu berechnen. Probleme machen dabei jedoch die Ausreißer durch im Lichtweg befindliche Spielelemente, das Messrauschen, die zeitliche Latenz der Verarbeitung und die Verzerrung der Messungen bei Bewegung des Roboters.

Ein wichtiger Gesichtspunkt ist hier auch, dass andere Teams bereits erfolgreich Laserscanner einsetzen und diese unter Umständen unser eigenes Ortungssystem stören. Mit eigener Erfahrung unter kontrollierten Bedingungen kann es möglich sein die Harmonisation der beiden Systeme zu verbessern.

Daher soll eine Software-Komponente entwickelt und in die Robotersoftware integriert werden, die die per Ethernet/UDP ausgegebenen Daten des Laserscanners verarbeitet, daraus seine Position und Ausrichtung auf dem Spielfeld schätzt und diese an die Robotersoftware übermittelt. Dort soll eine weitere Komponente die Positionsdaten entgegennehmen und unter bestimmten Voraussetzungen und Ausgleich der Zeitverzögerung die bekannte Roboterposition und -ausrichtung damit korrigieren. Das System wird dann gemeinsam mit den Ultraschallbaken getestet.

Da für den Laserscanner bereits ein Treiber im Software-Framework ROS existiert, bietet es sich an, die Software zur Positionsberechnung ebenfalls in ROS zu entwickeln.

Geplante Features:

  • Filterung der Messwerte (Tiefpass?)
  • Ausreißer-Elimination (z.B. RANSAC-Verfahren)
  • Überwachung der Roboterbewegung; Korrektur nur bei stehendem Roboter oder Entzerrung der Messung
  • Plausibilitätsprüfung der Positionen/Ausrichtungen vor Korrektur
  • Visualisierung der berechneten Daten zur Validierung des Verfahrens
  • Entwicklung als ROS-Node; zusätzliche Nodes zur Kommunikation mit dem Roboter

Tätigkeitsfelder und Technologien

  • Herleitung von Geometrische Berechnungen und Algorithmen
  • Entwicklung von Algorithmen zur Signalverarbeitung (Filterung, Ausreißeranalyse)
  • Software-Entwicklung für ROS in Python und/oder C++

Referenzen und Links