Visual Servoing
Điều khiển thị giác là phương pháp điều khiển phản hồi sử dụng hình ảnh camera để dẫn hướng chuyển động robot thông qua các hiệu chỉnh thị giác liên tục hướng tới mục tiêu.
Điều khiển servo thị giác là kỹ thuật điều khiển phản hồi sử dụng hình ảnh từ camera để liên tục điều chỉnh chuyển động của robot hướng tới vị trí hoặc góc nhìn mong muốn. Robot quan sát các đặc trưng thị giác, đo độ lệch của chúng so với cấu hình mục tiêu và hiệu chỉnh chuyển động khi có hình ảnh mới. Kỹ thuật này kết nối thị giác máy tính, vốn diễn giải hình ảnh, với robotics, vốn chuyển các phép đo đó thành hành động vật lý. Điều khiển servo bằng thị giác là một từ đồng nghĩa. J. Hill và W. T. Park giới thiệu thuật ngữ này vào năm 1979 trong công trình Điều khiển robot thời gian thực bằng camera di động.
Cách thức hoạt động của điều khiển servo thị giác#
Hệ thống điều khiển servo thị giác so sánh các quan sát hiện tại với hình ảnh hoặc pose tương đối mong muốn. Trích xuất đặc trưng cung cấp các phép đo như keypoint, vị trí đường thẳng hoặc đường viền đối tượng. Bộ điều khiển chuyển sai số thu được thành các lệnh chuyển động. Chuyển động làm thay đổi quan sát từ camera, khép kín vòng phản hồi và cho phép hiệu chỉnh liên tục khi robot tiến gần mục tiêu.
Ma trận tương tác, còn gọi là Jacobian ảnh, mô tả cách chuyển động của camera làm thay đổi các phép đo thị giác. Ma trận giả nghịch đảo của nó ánh xạ sai số đặc trưng thành vận tốc hiệu chỉnh; độ lợi của bộ điều khiển xác định cường độ hiệu chỉnh đó. Cách lắp camera tạo nên hai cấu hình phổ biến: eye-in-hand gắn camera lên bộ phận công tác đang chuyển động, trong khi eye-to-hand sử dụng camera bên ngoài quan sát vùng làm việc.
Ultralytics YOLO cung cấp các phép đo nhận thức cho vòng điều khiển này: YOLO26 tạo ra bounding box thông qua phát hiện đối tượng, còn tích hợp ROS truyền các đối tượng được phát hiện từ camera và thông tin độ sâu giữa các thành phần phần mềm của robot. Bộ điều khiển ở bước tiếp theo sử dụng các phép đo đó để tính toán chuyển động.
Điều khiển servo thị giác dựa trên ảnh và dựa trên vị trí#
Các phương pháp chính khác nhau ở cách biểu diễn sai số điều khiển:
- Điều khiển servo thị giác dựa trên ảnh (IBVS): Giảm thiểu độ lệch giữa các đặc trưng ảnh hiện tại và mong muốn, chẳng hạn như tọa độ điểm. Bộ điều khiển đặc trưng điểm sử dụng hình học camera và ước tính độ sâu để liên hệ chuyển động trong ảnh với chuyển động vật lý.
- Điều khiển servo thị giác dựa trên vị trí (PBVS): Sử dụng ước tính pose để khôi phục vị trí và hướng trong không gian ba chiều, sau đó giảm độ lệch so với pose mong muốn. Hiệu chuẩn camera và tái dựng hình học ảnh hưởng đến độ chính xác.
- Điều khiển servo thị giác lai: Kết hợp các phép đo trong không gian ảnh và không gian ba chiều. Phương pháp điều khiển servo thị giác 2.5D đã được ứng dụng rộng rãi kết hợp các đặc trưng ảnh với thông tin pose một phần.
Theo dõi đối tượng duy trì sự tương ứng của đặc trưng hoặc đối tượng qua các frame; điều khiển servo thị giác sử dụng những quan sát đó để điều khiển chuyển động. SLAM thị giác ước tính chuyển động của camera và xây dựng bản đồ. Những năng lực nhận thức này hỗ trợ các phần khác nhau trong hệ thống điều hướng và điều khiển của robot.
Ứng dụng và các ràng buộc thực tế#
- Gắp bằng robot: Khi gắp ở cự ly gần, camera RGB-D có thể vượt qua khoảng cách cảm biến độ sâu tối thiểu và mất các phép đo khoảng cách hợp lệ. Gắp bằng thị giác vòng kín sử dụng IBVS để tiếp tục hiệu chỉnh giai đoạn tiếp cận cuối bằng các phép đo đặc trưng RGB, kể cả khi đối tượng di chuyển.
- Định vị robot di động: Bản trình diễn ViSP Pioneer điều khiển robot Pioneer P3-DX gắn camera theo tương quan với mục tiêu thị giác. Các quan sát mục tiêu xác định chuyển động hiệu chỉnh của robot thông qua bộ điều khiển dựa trên vị trí.
Thời gian và khả năng quan sát ảnh hưởng trực tiếp đến điều khiển. Độ trễ xử lý ảnh gây trễ bám theo và có thể làm mất ổn định vòng điều khiển. Vì vậy, độ trễ suy luận cũng quan trọng như độ chính xác phát hiện trong suy luận thời gian thực. Hiện tượng che khuất làm gián đoạn sự tương ứng của đặc trưng, còn hình học đặc trưng có điều kiện kém khiến ước tính vận tốc nhạy với nhiễu ảnh. Hợp nhất cảm biến kết hợp các phép đo thị giác với thông tin như encoder khớp để duy trì các ước tính trạng thái hữu ích trong khi chuyển động.
Mô phỏng IBVS tối giản#
Mô phỏng Python này áp dụng luật điều khiển giả nghịch đảo tiêu chuẩn cho camera di chuyển ngang khi quan sát một điểm đứng yên. Cài đặt NumPy bằng 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}")Sai số ảnh giảm từ khoảng 178.89 pixel xuống 0.01 pixel khi các lần hiệu chỉnh liên tiếp đưa điểm vào giữa. Với đặc trưng điểm, các thành phần tương tác tịnh tiến tỷ lệ nghịch với độ sâu: khi độ sâu của điểm tăng gấp đôi, độ dịch chuyển ảnh do cùng một chuyển động tịnh tiến ngang của camera tạo ra sẽ giảm một nửa.










