Visual Servoing
Il visual servoing è un metodo di controllo in retroazione che usa immagini acquisite da una telecamera per guidare il movimento di un robot, apportando correzioni visive continue per raggiungere un obiettivo.
Il servoing visivo è una tecnica di controllo in retroazione che usa le immagini della telecamera per regolare continuamente il movimento di un robot verso una posizione o una visuale desiderata. Il robot osserva le caratteristiche visive, ne misura la differenza rispetto a una configurazione di riferimento e corregge il movimento man mano che arrivano nuove immagini. Questo collega la visione artificiale, che interpreta le immagini, alla robotica, che trasforma queste misurazioni in azioni fisiche. Controllo servo-visivo è un sinonimo. J. Hill e W. T. Park introdussero il termine nel 1979 con Controllo in tempo reale di un robot con una telecamera mobile.
Come funziona il servoing visivo#
Un sistema di servoing visivo confronta le osservazioni correnti con un'immagine desiderata o una posa relativa di riferimento. L'estrazione delle caratteristiche fornisce misurazioni come i punti chiave, la posizione delle linee o i contorni degli oggetti. Un controllore converte l'errore risultante in comandi di movimento. Il movimento modifica ciò che osserva la telecamera, chiudendo il ciclo di retroazione e consentendo correzioni ripetute mentre il robot si avvicina all'obiettivo.
Una matrice d'interazione, detta anche Jacobiano dell'immagine, descrive come il movimento della telecamera modifica le misurazioni visive. La sua pseudoinversa mappa l'errore delle caratteristiche in una velocità correttiva; il guadagno del controllore determina l'intensità della correzione. Il montaggio della telecamera definisce due configurazioni comuni: eye-in-hand posiziona la telecamera sull'utensile mobile, mentre eye-to-hand utilizza una telecamera esterna che osserva l'area di lavoro.
Ultralytics YOLO fornisce le misurazioni percettive necessarie a questo ciclo: YOLO26 genera riquadri di delimitazione tramite il rilevamento degli oggetti e la sua integrazione ROS trasferisce i rilevamenti ottenuti dalla telecamera e le informazioni di profondità tra i componenti software del robot. Un controllore a valle usa queste misurazioni per calcolare il movimento.
Servoing visivo basato sull'immagine e basato sulla posizione#
I principali metodi differiscono per la rappresentazione dell'errore di controllo:
- Servoing visivo basato sull'immagine (IBVS): minimizza le differenze tra le caratteristiche dell'immagine corrente e quelle desiderate, come le coordinate dei punti. I controllori basati su caratteristiche puntuali usano la geometria della telecamera e le stime di profondità per mettere in relazione il movimento nell'immagine con il movimento fisico.
- Servoing visivo basato sulla posizione (PBVS): usa la stima della posa per ricavare posizione e orientamento tridimensionali, quindi riduce la differenza rispetto alla posa desiderata. La calibrazione della telecamera e la ricostruzione geometrica ne influenzano la precisione.
- Servoing visivo ibrido: combina misurazioni nello spazio dell'immagine e misurazioni tridimensionali. Il consolidato approccio servoing visivo 2.5D combina caratteristiche dell'immagine con informazioni parziali sulla posa.
Il tracciamento degli oggetti mantiene la corrispondenza tra caratteristiche o oggetti nei diversi fotogrammi; il servoing visivo usa queste osservazioni per controllare il movimento. La SLAM visiva stima il movimento della telecamera e crea una mappa. Queste capacità percettive supportano diverse componenti del sistema di navigazione e controllo di un robot.
Applicazioni e vincoli pratici#
- Presa robotica: durante la presa a distanza ravvicinata, una telecamera RGB-D può raggiungere il limite minimo di distanza per il rilevamento della profondità e perdere le misurazioni valide. La presa visiva a ciclo chiuso usa IBVS per continuare a correggere la fase finale dell'avvicinamento sulla base delle caratteristiche RGB, anche quando l'oggetto si muove.
- Posizionamento di robot mobili: la dimostrazione ViSP Pioneer controlla un robot Pioneer P3-DX dotato di telecamera rispetto a un bersaglio visivo. Le osservazioni del bersaglio determinano i movimenti correttivi del robot tramite un controllore basato sulla posizione.
La tempistica e la visibilità influiscono direttamente sul controllo. I ritardi nell'elaborazione delle immagini introducono ritardi nel tracciamento e possono destabilizzare il ciclo. La latenza di inferenza è quindi importante quanto la precisione di rilevamento nell'inferenza in tempo reale. L'occlusione interrompe la corrispondenza tra le caratteristiche, mentre una geometria delle caratteristiche mal condizionata rende le stime di velocità sensibili al rumore dell'immagine. La fusione dei sensori combina le misurazioni visive con informazioni come quelle degli encoder dei giunti per mantenere stime dello stato utili durante il movimento.
Una simulazione IBVS essenziale#
Questa simulazione Python applica la legge di controllo standard basata sulla pseudoinversa a una telecamera che si sposta lateralmente mentre osserva un punto immobile. Installa NumPy con 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}")L'errore nell'immagine scende da circa 178,89 pixel a 0,01 pixel mentre correzioni ripetute portano il punto al centro. Per le caratteristiche puntuali, i termini di interazione traslazionale sono inversamente proporzionali alla profondità: raddoppiando la profondità del punto, si dimezza lo spostamento nell'immagine prodotto dalla stessa traslazione laterale della telecamera.










