Visual Servoing
Визуальное сервоприведение — это метод управления с обратной связью, который использует изображения с камеры, чтобы направлять движение робота к цели, непрерывно корректируя его по визуальным данным.
Визуальное сервоприведение — это метод управления с обратной связью, который использует изображения с камеры для непрерывной корректировки движения робота к нужному положению или ракурсу. Робот наблюдает визуальные признаки, измеряет их отличие от целевой конфигурации и корректирует движение по мере поступления новых изображений. Этот метод объединяет компьютерное зрение, которое интерпретирует изображения, и робототехнику, которая преобразует результаты измерений в физические действия. Визуальное сервоуправление — синоним этого термина. Дж. Хилл и У. Т. Парк ввели его в 1979 году в работе Управление роботом с мобильной камерой в реальном времени.
Как работает визуальное сервоприведение#
Система визуального сервоприведения сравнивает текущие наблюдения с целевым изображением или относительной позой. Извлечение признаков предоставляет такие измерения, как ключевые точки, положения линий или контуры объектов. Контроллер преобразует полученную ошибку в команды движения. Движение меняет наблюдения камеры, замыкая контур обратной связи и позволяя многократно корректировать траекторию по мере приближения робота к цели.
Матрица взаимодействия, также называемая якобианом изображения, описывает, как движение камеры меняет визуальные измерения. Её псевдообратная матрица преобразует ошибку признаков в корректирующую скорость; коэффициент усиления контроллера задаёт силу этой коррекции. В зависимости от установки камеры выделяют две распространённые конфигурации: eye-in-hand — камера закреплена на движущемся инструменте, а eye-to-hand — внешняя камера наблюдает за рабочей зоной.
Ultralytics YOLO предоставляет данные восприятия для этого контура: YOLO26 формирует ограничивающие рамки с помощью обнаружения объектов, а его интеграция с ROS передаёт обнаруженные камерой объекты и информацию о глубине между компонентами программного обеспечения робота. Контроллер следующего уровня использует эти измерения для расчёта движения.
Визуальное сервоприведение по изображению и по положению#
Основные методы различаются представлением ошибки управления:
- Визуальное сервоприведение по изображению (IBVS): минимизирует различия между текущими и целевыми признаками изображения, например координатами точек. Контроллеры на основе точечных признаков используют геометрию камеры и оценки глубины, чтобы связать движение изображения с физическим движением.
- Визуальное сервоприведение по положению (PBVS): использует оценку позы для определения трёхмерного положения и ориентации, а затем уменьшает их отличие от целевой позы. Точность метода зависит от калибровки камеры и геометрической реконструкции.
- Гибридное визуальное сервоприведение: сочетает измерения в пространстве изображения и трёхмерные измерения. Устоявшийся подход 2.5D-визуального сервоприведения объединяет признаки изображения с частичной информацией о позе.
Отслеживание объектов сохраняет соответствие признаков или объектов между кадрами; визуальное сервоприведение использует эти наблюдения для управления движением. Визуальная SLAM оценивает движение камеры и строит карту. Эти возможности восприятия поддерживают разные части системы навигации и управления роботом.
Применение и практические ограничения#
- Захват объектов роботом: при захвате на близком расстоянии камера RGB-D может оказаться за пределами минимальной дистанции измерения глубины и перестать выдавать корректные данные о расстоянии. Визуальный захват с замкнутым контуром обратной связи использует IBVS, чтобы продолжать корректировать заключительный этап сближения по признакам RGB, в том числе при движении объекта.
- Позиционирование мобильного робота: в демонстрации ViSP Pioneer управляют оснащённым камерой роботом Pioneer P3-DX относительно визуальной цели. Наблюдения цели определяют корректирующее движение робота с помощью контроллера на основе положения.
Задержки и видимость напрямую влияют на управление. Задержка обработки изображений вызывает запаздывание отслеживания и может дестабилизировать контур. Поэтому задержка инференса важна наряду с точностью обнаружения при инференсе в реальном времени. Окклюзия нарушает соответствие признаков, а плохо обусловленная геометрия признаков делает оценки скорости чувствительными к шуму изображения. Слияние данных с датчиков объединяет визуальные измерения с такой информацией, как данные датчиков положения суставов, чтобы поддерживать полезные оценки состояния во время движения.
Минимальная симуляция IBVS#
Эта симуляция на Python применяет стандартный закон управления с псевдообратной матрицей к камере, которая перемещается вбок, наблюдая за одной неподвижной точкой. Установи NumPy с помощью 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}")Ошибка изображения уменьшается примерно с 178,89 пикселя до 0,01 пикселя, пока повторные корректировки перемещают точку к центру. Для точечных признаков составляющие матрицы взаимодействия, связанные с переносом, обратно пропорциональны глубине: если глубина точки увеличивается вдвое, смещение изображения при том же боковом перемещении камеры уменьшается вдвое.










