Описание полного процесса калибровки для конфигурации "eye-to-base" (камера на базе) между RoboPro Cobot и Hikrobot 2D матричной камерой. Калибровка устанавливает преобразование между системой координат камеры и системой координат базы робота.
- Calibration_Base_Classes\CameraHikrobotHandler.py - Обертка над SDK камеры для получения изображения, обработки, сохранения параметров калибровки
- collect_data.py - Движение робота по калибровочным позам и сохранение данных для калибровки
- HandEyeCalibration_class.py - Главный класс калибровки, получает изображения и позы и возвращает матрицу Cam2Base, все матрицы сохраняются в папку transforms
- Pose_to_Base2EE.py - Скрипт для преобразования координат фланца к матрицам трансляции и ротации
- main.py - Демонстрация калибровки, запсук движения робота по выбранным координатам с изображения
- 3d_viz - папка содержащая скрипты для проверки правильности матриц преобразования координатных осей между ключевыми объектами
- Закрепите камеру на стойке вблизи робота, направив ее вертикально вниз на стол
- Убедитесь, что камера максимально перпендикулярна плоскости стола - это критически важно для точности, поскольку каждая точка имеет свое расстояние до камеры
- Меньшее искажение обеспечивает лучшие результаты - рабочая область вокруг центра камеры должна быть квадратом со стороной до 1 метра
- Калибровочная область должна оставаться в центральной части поля зрения камеры для оптимальной точности
- Закрепите калибровочную шахматную доску на фланце робота
- Запрограммируйте 20-30 поз робота, в которых робот демонстрирует шахматную доску камере под разными углами
- Убедитесь, что вся шахматная доска четко видна в каждой позе
- Используйте высококачественную, точно напечатанную калибровочную шахматную доску для точных результатов
- Сохраните как позы робота, так и соответствующие изображения в специальной папке - это становится исходными данными для калибровки робота
Позы робота сохраняются как 6 координат фланца: (X, Y, Z, Rot_X, Rot_Y, Rot_Z)
Эти координаты впоследствии преобразуются в прямые и обратные матрицы ротации и трансляции:
-
R_Gripper2Base, T_Gripper2Base - Отражают положение фланца относительно базы робота и позволяют преобразовывать точки из системы координат фланца в систему координат робота
-
Эти матрицы рассчитываются из положения фланца относительно базы с помощью
get_actual_TCP_position() -
R_Base2Gripper, t_Base2Gripper - Обратные матрицы от предыдущих
- Обнаружение углов шахматной доски на захваченных изображениях
- Вычисление внутренних параметров камеры и коэффициентов дисторсии
- Преобразование поз робота в матрицы ротации и трансляции
- Этот шаг выполняет преобразование, объясненное в Шаге 3, в процессе фактической калибровки
- Используя координаты углов, шаблон паттерна и параметры камеры, вычислите позу камеры относительно калибровочной доски
- Получите как прямые, так и обратные матрицы преобразования: RTarget2Cam, TTarget2Cam, R_Cam2Target, T_Cam2Target
- Выполните финальную калибровку с использованием метода hand-eye калибровки OpenCV
- Входные параметры включают:
- Base2Gripper (обратные матрицы от оригинальных R, t на основе положения фланца)
- Target2Cam (результаты из SolvePnP)
- Финальная матрица Cam2Base формируется в гомогенную матрицу преобразования из матриц R и t
- Это преобразование применяется напрямую через матричное умножение к точкам для преобразования координат
- Полученное преобразование позволяет осуществлять беспрепятственное преобразование между координатами камеры и координатами базы робота
- Перпендикулярность камеры рабочей плоскости критически важна для точности измерений
- Используйте высокоточные калибровочные мишени для минимизации ошибок
- Обеспечьте адекватное освещение и четкую видимость шахматного паттерна во всех позах
- Проверяйте результаты калибровки через несколько валидационных точек перед использованием в производственных приложениях