Visual Servoing
El servo visual es un método de control por realimentación que utiliza imágenes de cámaras para guiar el movimiento de un robot mediante correcciones visuales continuas hacia un objetivo.
El servoing visual es una técnica de control por realimentación que utiliza imágenes de cámara para ajustar continuamente el movimiento de un robot hacia una posición o vista deseada. El robot observa características visuales, mide su diferencia respecto a una configuración objetivo y corrige su movimiento a medida que recibe nuevas imágenes. Esto conecta la visión artificial, que interpreta imágenes, con la robótica, que convierte esas mediciones en acciones físicas. Control visual servo es un sinónimo. J. Hill y W. T. Park introdujeron el término en 1979 con Real Time Control of a Robot with a Mobile Camera.
Cómo funciona el servoing visual#
Un sistema de servoing visual compara las observaciones actuales con una imagen deseada o una pose relativa. La extracción de características proporciona mediciones como puntos clave, posiciones de líneas o contornos de objetos. Un controlador convierte el error resultante en órdenes de movimiento. El movimiento modifica las observaciones de la cámara, cierra el bucle de realimentación y permite realizar correcciones sucesivas a medida que el robot se acerca a su objetivo.
Una matriz de interacción, también llamada jacobiano de imagen, describe cómo modifica el movimiento de la cámara las mediciones visuales. Su pseudoinversa transforma el error de las características en una velocidad correctiva; la ganancia del controlador determina la intensidad de esa corrección. La instalación de la cámara define dos configuraciones habituales: eye-in-hand coloca la cámara en la herramienta móvil, mientras que eye-to-hand utiliza una cámara externa que observa el espacio de trabajo.
Ultralytics YOLO proporciona las mediciones de percepción para este bucle: YOLO26 genera cuadros delimitadores mediante la detección de objetos, y su integración con ROS transmite detecciones derivadas de la cámara e información de profundidad entre los componentes del software del robot. Un controlador posterior utiliza esas mediciones para calcular el movimiento.
Servoing visual basado en imagen y basado en posición#
Los métodos principales se diferencian en cómo representan el error de control:
- Servoing visual basado en imagen (IBVS): minimiza las diferencias entre las características actuales y deseadas de la imagen, como las coordenadas de los puntos. Los controladores basados en puntos utilizan la geometría de la cámara y estimaciones de profundidad para relacionar el movimiento en la imagen con el movimiento físico.
- Servoing visual basado en posición (PBVS): utiliza la estimación de pose para recuperar la posición y la orientación tridimensionales y, a continuación, reducir la diferencia respecto a la pose deseada. La calibración de la cámara y la reconstrucción geométrica afectan a su precisión.
- Servoing visual híbrido: combina mediciones del espacio de la imagen y tridimensionales. El método consolidado de servoing visual 2.5D combina características de la imagen con información parcial de la pose.
El seguimiento de objetos mantiene la correspondencia de características u objetos entre fotogramas; el servoing visual utiliza esas observaciones para controlar el movimiento. La localización y mapeo simultáneos visuales estima el movimiento de la cámara y crea un mapa. Estas capacidades de percepción respaldan diferentes partes del sistema de navegación y control de un robot.
Aplicaciones y limitaciones prácticas#
- Agarre robótico: durante el agarre a corta distancia, una cámara RGB-D puede llegar a su distancia mínima de detección de profundidad y dejar de proporcionar mediciones de distancia válidas. El agarre visual en bucle cerrado utiliza IBVS para seguir corrigiendo la aproximación final a partir de mediciones de características RGB, incluso cuando el objeto se mueve.
- Posicionamiento de robots móviles: la demostración ViSP Pioneer controla un robot Pioneer P3-DX equipado con una cámara respecto a un objetivo visual. Las observaciones del objetivo determinan el movimiento correctivo del robot mediante un controlador basado en posición.
La temporización y la visibilidad afectan directamente al control. El retraso del procesamiento de imágenes introduce latencia en el seguimiento y puede desestabilizar el bucle. Por eso, la latencia de inferencia es importante, junto con la precisión de detección, en la inferencia en tiempo real. La oclusión interrumpe la correspondencia de características, mientras que una geometría de características mal condicionada hace que las estimaciones de velocidad sean sensibles al ruido de imagen. La fusión de sensores combina mediciones visuales con información como la de los encoders de las articulaciones para mantener estimaciones útiles del estado durante el movimiento.
Una simulación IBVS mínima#
Esta simulación en Python aplica la ley de control estándar basada en la pseudoinversa a una cámara que se desplaza lateralmente mientras observa un punto inmóvil. Instala 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}")El error de imagen disminuye de aproximadamente 178,89 píxeles a 0,01 píxeles a medida que las correcciones sucesivas centran el punto. En el caso de las características puntuales, los términos de interacción traslacional son inversamente proporcionales a la profundidad: si se duplica la profundidad del punto, el desplazamiento de la imagen producido por la misma traslación lateral de la cámara se reduce a la mitad.










