Visual Servoing
- Aussi appelé: visual servo control, vision-based control
- Catégorie: Control › Feedback control
- Mots-clés: control, computer-vision, feedback-control, manipulation, closed-loop
Commande en boucle fermée du mouvement d'un robot à l'aide d'un retour visuel, dans laquelle une erreur mesurée dans les images de la caméra est ramenée continûment à zéro.
Définition
Asservissement visuel (visual servoing) : commande d'un robot dans laquelle les mesures de la caméra sont injectées directement dans la boucle de commande. Au lieu de regarder une fois, d'estimer où se trouve une cible puis de se déplacer en boucle ouverte, le robot mesure de façon répétée une erreur entre l'image courante et une image désirée, et commande un mouvement qui la réduit. Comme l'erreur est mesurée à nouveau à chaque cycle, le robot corrige au fur et à mesure les erreurs de calibration, les imprécisions du modèle et le mouvement de la cible.
Les formulations classiques sont fondées sur l'image ou sur la position. Dans l'asservissement visuel fondé sur l'image (image-based visual servoing, IBVS), l'erreur est définie sur des primitives visuelles, comme des coordonnées de points ou des paramètres de droites, et la matrice d'interaction, aussi appelée jacobienne de l'image, relie le torseur cinématique (twist) de la caméra à la vitesse de variation de ces primitives. Une loi de commande typique commande une vitesse de caméra proportionnelle à la pseudo-inverse de la matrice d'interaction multipliée par l'erreur sur les primitives. L'IBVS tolère les erreurs de calibration, mais nécessite une estimation de la profondeur des primitives et peut produire des trajectoires 3D maladroites de la caméra. Dans l'asservissement visuel fondé sur la position (position-based visual servoing, PBVS), l'image sert à estimer la pose 3D de la cible, et le contrôleur régule directement l'erreur de pose ; cela donne un mouvement rectiligne dans l'espace cartésien, mais dépend d'une calibration et d'une estimation de pose précises. Des schémas hybrides comme l'asservissement visuel 2,5D combinent les deux. La caméra peut être montée sur le robot (eye-in-hand) ou fixée dans l'espace de travail pour observer à la fois le robot et la cible (eye-to-hand).
L'asservissement visuel appris remplace les primitives ou les lois de commande conçues à la main par des réseaux de neurones. Un réseau peut prédire, à partir de l'image courante et d'un but, la direction ou la vitesse selon laquelle l'effecteur doit se déplacer ; le robot exécute un petit pas et recommence. On conserve ainsi la structure en boucle fermée tout en traitant des objets et des scènes pour lesquels il est difficile de définir des primitives conçues à la main.
Pourquoi c'est important
La calibration du robot et de la caméra n'est jamais parfaite, et les objets se trouvent rarement exactement là où un modèle les situe. Fermer la boucle sur la vision permet à un robot d'atteindre, d'aligner et d'insérer avec une précision qui dépend surtout de ce que voit la caméra plutôt que de la qualité de la calibration préalable de l'ensemble.
Applications principales
- Insertion de cheville dans un trou (peg-in-hole), de connecteurs et autres tâches d'alignement précis
- Saisie d'objets en mouvement ou mal localisés
- Positionnement d'instruments chirurgicaux et médicaux avec des caméras endoscopiques
- Amarrage de robots mobiles et de drones à des stations de recharge ou à des cibles
- Atteinte apprise d'objets cibles à partir d'images
En pratique
Un bras doté d'une caméra au poignet doit aligner sa pince sur un connecteur d'une carte électronique. Les quatre coins d'un marqueur fiduciaire placé à côté du connecteur servent de primitives visuelles, et leurs positions désirées en pixels sont enregistrées une fois en plaçant la pince à la main dans la bonne pose. À l'exécution, un contrôleur tournant à la cadence de la caméra détecte les coins, calcule l'erreur en pixels, la multiplie par la pseudo-inverse de la matrice d'interaction en utilisant une profondeur approchée, et envoie la vitesse de caméra obtenue au bras via la transformation main-œil et la jacobienne du robot. Le gain est réduit près de la convergence pour éviter les oscillations, et la boucle s'arrête quand l'erreur en pixels passe sous un seuil. De petites erreurs dans la calibration main-œil modifient le chemin, mais pas l'alignement final.
Idées reçues
- L'asservissement visuel nécessite une caméra parfaitement calibrée — les schémas fondés sur l'image, en particulier, convergent vers la bonne image même avec des erreurs modérées de calibration et de profondeur
- C'est la même chose que détecter une cible puis s'y rendre — l'asservissement visuel continue de mesurer et de corriger pendant le mouvement au lieu d'exécuter un plan en boucle ouverte
- L'asservissement fondé sur l'image déplace toujours la caméra en ligne droite — des chemins rectilignes dans l'image peuvent donner des chemins courbes ou en recul en 3D, et des primitives peuvent sortir du champ de vision
Qui devrait le savoir
- Ingénieurs en manipulation et en assemblage
- Développeurs en vision et perception robotiques
- Ingénieurs en robotique médicale et chirurgicale
- Développeurs d'amarrage de drones et de robots mobiles
Technologies associées
- ViSP
- Matrice d'interaction (Interaction Matrix)
- Calibration main-œil (Hand-Eye Calibration)
- Marqueurs fiduciaires (Fiducial Markers)
- OpenCV
Termes associés
Projets associés
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- OpenArm: 7DOF humanoid arm for physical AI research in contact-rich environments
Vidéos
- Image-Based Visual Servoing - Robot Control Part 1: Engineering Educator Academy
- Robot Image-based Visual Servoing I | Robotic Systems: Leopoldo Armesto