Visual Servoing
Visual Servoing ist ein Verfahren zur Rückkopplungsregelung, bei dem Kamerabilder die Roboterbewegung durch kontinuierliche visuelle Korrekturen auf ein Ziel hin steuern.
Visuelle Servoregelung ist eine Regelungstechnik mit Rückkopplung, die Kamerabilder nutzt, um die Bewegung eines Roboters fortlaufend an eine gewünschte Position oder Ansicht anzupassen. Der Roboter beobachtet visuelle Merkmale, misst ihre Abweichung von einer Zielkonfiguration und korrigiert seine Bewegung, sobald neue Bilder eintreffen. Dadurch wird die Computer Vision, die Bilder interpretiert, mit der Robotik verbunden, die diese Messwerte in physische Aktionen umsetzt. Visuelle Servosteuerung ist ein Synonym. J. Hill und W. T. Park führten den Begriff 1979 mit Real Time Control of a Robot with a Mobile Camera ein.
So funktioniert die visuelle Servoregelung#
Ein System zur visuellen Servoregelung vergleicht aktuelle Beobachtungen mit einem gewünschten Bild oder einer gewünschten relativen Pose. Die Merkmalsextraktion liefert Messwerte wie Keypoints, Linienpositionen oder Objektkonturen. Ein Regler wandelt den resultierenden Fehler in Bewegungsbefehle um. Die Bewegung verändert die Beobachtungen der Kamera, schließt so den Regelkreis und ermöglicht wiederholte Korrekturen, während sich der Roboter seinem Ziel nähert.
Eine Interaktionsmatrix, auch Bild-Jacobi-Matrix genannt, beschreibt, wie Kamerabewegungen visuelle Messwerte verändern. Ihre Pseudoinverse überführt den Merkmalsfehler in eine korrigierende Geschwindigkeit; die Reglerverstärkung bestimmt die Stärke dieser Korrektur. Je nach Kameramontage gibt es zwei gängige Anordnungen: Bei Eye-in-Hand ist die Kamera am beweglichen Werkzeug angebracht, während bei Eye-to-Hand eine externe Kamera den Arbeitsbereich beobachtet.
Ultralytics YOLO liefert die Wahrnehmungsmesswerte für diesen Regelkreis: YOLO26 erzeugt über die Objekterkennung Bounding Boxes, und die ROS-Integration überträgt kamerabasierte Erkennungen und Tiefeninformationen zwischen Softwarekomponenten des Roboters. Ein nachgelagerter Regler verwendet diese Messwerte, um die Bewegung zu berechnen.
Bildbasierte und positionsbasierte visuelle Servoregelung#
Die wichtigsten Verfahren unterscheiden sich darin, wie der Regelungsfehler dargestellt wird:
- Bildbasierte visuelle Servoregelung (IBVS): Minimiert die Abweichungen zwischen aktuellen und gewünschten Bildmerkmalen, etwa Punktkoordinaten. Regler mit Punktmerkmalen verwenden Kamerageometrie und Tiefenschätzungen, um Bildbewegungen mit physischen Bewegungen in Beziehung zu setzen.
- Positionsbasierte visuelle Servoregelung (PBVS): Verwendet die Posenschätzung, um die dreidimensionale Position und Ausrichtung zu bestimmen, und verringert dann die Abweichung von der gewünschten Pose. Kamerakalibrierung und geometrische Rekonstruktion beeinflussen die Genauigkeit.
- Hybride visuelle Servoregelung: Kombiniert Messwerte aus dem Bildraum mit dreidimensionalen Messwerten. Das etablierte Verfahren der 2,5D-visuellen Servoregelung kombiniert Bildmerkmale mit partiellen Pose-Informationen.
Das Objekt-Tracking ordnet Merkmale oder Objekte über mehrere Frames hinweg zu; die visuelle Servoregelung nutzt diese Beobachtungen, um Bewegungen zu steuern. Visuelles SLAM schätzt Kamerabewegungen und erstellt eine Karte. Diese Wahrnehmungsfunktionen unterstützen verschiedene Teile des Navigations- und Steuerungssystems eines Roboters.
Anwendungen und praktische Einschränkungen#
- Robotisches Greifen: Beim Greifen aus kurzer Entfernung kann eine RGB-D-Kamera ihren Mindestabstand für die Tiefenmessung unterschreiten und gültige Entfernungsmesswerte verlieren. Visuelles Greifen mit geschlossenem Regelkreis verwendet IBVS, um den letzten Annäherungsschritt weiterhin anhand von RGB-Merkmalen zu korrigieren – auch wenn sich das Objekt bewegt.
- Positionierung mobiler Roboter: Die ViSP-Pioneer-Demonstration steuert einen mit einer Kamera ausgestatteten Pioneer P3-DX-Roboter relativ zu einem visuellen Ziel. Die Beobachtungen des Ziels bestimmen über einen positionsbasierten Regler die korrigierende Bewegung des Roboters.
Zeitverhalten und Sichtbarkeit wirken sich unmittelbar auf die Regelung aus. Verzögerungen bei der Bildverarbeitung führen zu einer Verzögerung bei der Verfolgung und können den Regelkreis destabilisieren. Daher ist die Inferenzlatenz neben der Erkennungsgenauigkeit bei der Echtzeit-Inferenz wichtig. Verdeckungen unterbrechen die Zuordnung von Merkmalen, während eine ungünstige Merkmalsgeometrie Geschwindigkeitsschätzungen empfindlich gegenüber Bildrauschen macht. Die Sensorfusion kombiniert visuelle Messwerte mit Informationen wie Gelenkencoderwerten, um während der Bewegung brauchbare Zustandsschätzungen aufrechtzuerhalten.
Eine minimale IBVS-Simulation#
Diese Python-Simulation wendet das standardmäßige Steuerungsgesetz mit Pseudoinverser auf eine Kamera an, die sich seitwärts bewegt und dabei einen einzelnen stationären Punkt beobachtet. Installiere NumPy mit pip install numpy.
import numpy as np
point = np.array([0.0, 0.0, 2.0])
camera = np.array([-0.4, 0.2, 0.0])
desired = np.zeros(2)
gain, dt, focal_pixels = 1.0, 0.05, 800.0
initial_error = np.linalg.norm((point - camera)[:2] / point[2])
for _ in range(200):
relative = point - camera
observed = relative[:2] / relative[2]
error = observed - desired
# Interaction matrix for sideways camera translation.
interaction = -np.eye(2) / relative[2]
velocity = -gain * np.linalg.pinv(interaction) @ error
camera[:2] += velocity * dt
final_error = np.linalg.norm((point - camera)[:2] / point[2])
print(f"Pixel error: {initial_error * focal_pixels:.2f} -> {final_error * focal_pixels:.2f}")Der Bildfehler sinkt von ungefähr 178,89 Pixeln auf 0,01 Pixel, während wiederholte Korrekturen den Punkt zentrieren. Bei Punktmerkmalen sind die translatorischen Interaktionsterme umgekehrt proportional zur Tiefe: Verdoppelt sich die Tiefe des Punkts, halbiert sich die durch dieselbe seitliche Kamerabewegung verursachte Bildverschiebung.










