Visual Servoing
Le servocommande visuel est une méthode de contrôle par rétroaction qui utilise les images d’une caméra pour guider le mouvement d’un robot grâce à des corrections visuelles continues vers une cible.
Le asservissement visuel est une technique de commande par rétroaction qui utilise des images de caméra pour ajuster en continu le mouvement d’un robot vers une position ou une vue souhaitée. Le robot observe des caractéristiques visuelles, mesure leur écart par rapport à une configuration cible et corrige son mouvement à mesure que de nouvelles images arrivent. Cette technique relie la vision par ordinateur, qui interprète les images, à la robotique, qui transforme ces mesures en actions physiques. Commande par asservissement visuel est un synonyme. J. Hill et W. T. Park ont introduit ce terme en 1979 avec Commande en temps réel d’un robot équipé d’une caméra mobile.
Fonctionnement de l’asservissement visuel#
Un système d’asservissement visuel compare les observations actuelles à une image souhaitée ou à une pose relative. L’extraction de caractéristiques fournit des mesures telles que les points clés, la position des lignes ou les contours des objets. Un contrôleur convertit l’erreur obtenue en commandes de mouvement. Le déplacement modifie les observations de la caméra, fermant la boucle de rétroaction et permettant des corrections répétées à mesure que le robot approche de son objectif.
Une matrice d’interaction, également appelée jacobienne d’image, décrit comment le mouvement de la caméra modifie les mesures visuelles. Sa pseudo-inverse convertit l’erreur des caractéristiques en vitesse de correction ; le gain du contrôleur détermine l’intensité de cette correction. Le montage de la caméra définit deux configurations courantes : caméra embarquée place la caméra sur l’outil mobile, tandis que caméra externe observe l’espace de travail.
Ultralytics YOLO fournit les mesures de perception nécessaires à cette boucle : YOLO26 produit des boîtes englobantes grâce à la détection d’objets, et son intégration ROS transmet les détections issues de la caméra et les informations de profondeur entre les composants logiciels du robot. Un contrôleur en aval utilise ces mesures pour calculer le mouvement.
Asservissement visuel basé sur l’image et basé sur la position#
Les principales méthodes se distinguent par la représentation de l’erreur de commande :
- Asservissement visuel basé sur l’image (IBVS) : réduit les écarts entre les caractéristiques actuelles et souhaitées de l’image, comme les coordonnées de points. Les contrôleurs fondés sur des caractéristiques ponctuelles utilisent la géométrie de la caméra et des estimations de profondeur pour relier le mouvement dans l’image au déplacement physique.
- Asservissement visuel basé sur la position (PBVS) : utilise l’estimation de pose pour récupérer la position et l’orientation en trois dimensions, puis réduire l’écart par rapport à la pose souhaitée. L’étalonnage de la caméra et la reconstruction géométrique influent sur sa précision.
- Asservissement visuel hybride : combine des mesures dans le plan de l’image et des mesures tridimensionnelles. L’approche établie de l’asservissement visuel 2,5D combine des caractéristiques de l’image avec des informations partielles sur la pose.
Le suivi d’objets maintient la correspondance entre les caractéristiques ou les objets d’une image à l’autre ; l’asservissement visuel utilise ces observations pour commander le mouvement. Le SLAM visuel estime le mouvement de la caméra et construit une carte. Ces capacités de perception contribuent à différentes parties du système de navigation et de commande d’un robot.
Applications et contraintes pratiques#
- Préhension robotique : lors d’une préhension à courte portée, une caméra RGB-D peut dépasser sa distance minimale de détection de profondeur et perdre les mesures de distance valides. La préhension visuelle en boucle fermée utilise IBVS pour continuer à corriger l’approche finale à partir de mesures de caractéristiques RGB, y compris lorsque l’objet bouge.
- Positionnement d’un robot mobile : la démonstration ViSP Pioneer commande un robot Pioneer P3-DX équipé d’une caméra par rapport à une cible visuelle. Les observations de la cible déterminent le mouvement correctif du robot par l’intermédiaire d’un contrôleur basé sur la position.
La synchronisation et la visibilité ont un effet direct sur la commande. Le délai de traitement des images entraîne un retard de suivi et peut déstabiliser la boucle. La latence d’inférence est donc aussi importante que la précision de détection pour l’inférence en temps réel. L’occultation interrompt la correspondance des caractéristiques, tandis qu’une géométrie des caractéristiques mal conditionnée rend les estimations de vitesse sensibles au bruit de l’image. La fusion de capteurs combine les mesures visuelles avec des informations telles que celles des codeurs articulaires afin de maintenir des estimations d’état utiles pendant le mouvement.
Une simulation IBVS minimale#
Cette simulation Python applique la loi de commande standard basée sur la pseudo-inverse à une caméra qui se déplace latéralement tout en observant un point immobile. Installe NumPy avec 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’erreur dans l’image passe d’environ 178,89 pixels à 0,01 pixel tandis que des corrections répétées recentrent le point. Pour les caractéristiques ponctuelles, les termes de translation de la matrice d’interaction varient de façon inversement proportionnelle à la profondeur : doubler la profondeur du point réduit de moitié le déplacement dans l’image produit par la même translation latérale de la caméra.










