Любая задача промышленного робота — сварка, паллетизация, сборка, шлифовка — в конечном итоге сводится к движению фланца или инструмента в пространстве. Робот не «видит» деталь так, как человек. Он оперирует наборами чисел: углов суставов и декартовых координат в конкретных системах отсчёта. Ошибка в выборе или определении системы координат приводит к браку, столкновениям или невозможности выполнить траекторию. Понимание того, как связаны суставные, декартовые и пользовательские системы, — базовый навык для инженера по робототехнике, технолога и оператора, который настраивает ячейку.
- Зачем роботу несколько систем координат
- Основные системы координат: назначение и отличия
- 1. Система базы робота (Robot Base / World / ROOT)
- 2. Система мира / ячейки (World / Cell / Station)
- 3. Пользовательская система / система детали (User Frame / Work Object / Base Frame / Feature)
- 4. Система инструмента (Tool Frame / Tool Data / TCP)
- 5. Суставные координаты (Joint Coordinates / Axis Values)
- Преобразование координат: как это работает внутри контроллера
- Как правильно задать пользовательскую систему координат (3-точечный метод)
- Калибровка TCP: методы и проверка
- Метод «четырёх точек» (или сферы)
- Метод «двух точек» (для простых случаев)
- Программирование в разных системах: онлайн vs офлайн
- Онлайн-обучение (Teach Pendant)
- Офлайн-программирование (OLP) и CAD/CAM
- Сингулярности и конфигурации: как система координат влияет на достижимость
- Координация с внешними осями (позиционеры, линейные пути)
- Типичные ошибки и как их диагностировать
- Практический чек-лист перед запуском программы
- Сценарии выбора системы координат для типичных задач
- Паллетизация коробок на паллете
- Точечная сварка кузова
- Шлифовка / полировка сложной поверхности
- Сборка с поиском отверстий (vision / force-torque)
- Офлайн-верификация: что проверить перед загрузкой в робот
- Что делать, если точность не устраивает
- Резюме: главные принципы работы с системами координат
- Часто задаваемые вопросы
- Можно ли программировать только в мировой системе и не создавать User Frame?
- В чём разница между Base Frame (Fanuc) и User Frame (Fanuc)?
- Почему робот едет не туда, хотя точки верные?
- Нужно ли калибровать TCP, если длина инструмента известна по чертежу?
- Как перенести программу с робота Fanuc на KUKA?
Зачем роботу несколько систем координат
Промышленный робот — это кинематическая цепь из 4–7 суставов. Контроллер знает текущее положение каждого сустава (суставные координаты). Но задачу технологи обычно описывают в декартовом пространстве: «перемести сварной шток в точку X=500, Y=-200, Z=300 относительно заготовки». Мест преобразования суставных углов в декартовы координаты и обратно называется прямой и обратной кинематикой.
Одна глобальная система координат недостаточна по трём причинам:
- Привязка к оборудованию. Стол, позиционер, конвейер, станок имеют свои нулевые точки. Перепрограммировать робот при перестановке стола нереально — нужно просто сменить систему отсчёта.
- Работа с инструментом. Точка управления (TCP — Tool Center Point) смещена относительно фланца. Длина сварного штока, ориентация захвата, форма шлифовального диска меняют геометрию достижимых точек. Робот должен знать эту геометрию, чтобы двигать именно рабочей точкой, а не фланцем.
- Технологическая привязка. Деталь на столе может быть повернута или смещена. Удобнее задать систему координат, привязанную к детали (User Frame / Work Object), и программировать в ней, не пересчитывая точки вручную.
- переносить программу на другое приспособление сменой одной системы;
- компенсировать погрешности установки детали (через поиск нуля датчиком или visión);
- писать циклы паллетизации простыми вложенными циклами по X/Y/Z пользовательской системы.
- Прямая кинематика: из углов суставов получает позу фланца в базе робота.
- База → Мир: известное преобразование, заданное при установке робота в ячейку.
- Мир → Пользовательская: задаётся оператором/технологом (3 точки метода или CAD-импорт).
- Пользовательская → TCP: целевая поза в программе.
- Обратная кинематика: из позы TCP в базе робота решает углы суставов для сервоприводов.
- Точка 1 — Оригина (Origin). Ноль пользовательской системы. Установите TCP точно в заданную точку детали/приспособления. Фиксируйте.
- Точка 2 — Ось X (X-axis point). Двиньте TCP строго вдоль желаемой оси X пользовательской системы (например, вдоль ребра детали). Расстояние не важно, важна направляющая. Фиксируйте.
- Точка 3 — Плоскость XY (XY-plane point). Двиньте TCP в точку, лежащую в положительной полуплоскости Y (то есть Y > 0). Не обязательно на оси Y, главное — не на линии X. Фиксируйте.
- Точки 1, 2, 3 почти на одной линии — матрица плохо обусловлена, малая погрешность установки даёт большой угол поворота системы.
- TCP не откалиброван — пользовательская система «прилипает» к ошибке инструмента.
- Точка 3 выбрана с Y < 0 — система перевёрнута, знаки координат в программе меняются.
- Установите указатель (шпильку, конус) на столе — фиксированную точку в пространстве.
- Подведите TCP к конусу с 4–6 разных ориентаций инструмента (меняя углы запястья, плеча). Каждый раз фиксируйте точку.
- Контроллер решает систему уравнений: центр сферы, проходящей через все зафиксированные положения фланца со смещением TCP, — это и есть искомая точка в системе фланца.
- Jog в Joint: быстрые большие перемещения, обход препятствий.
- Jog в Tool: точное позиционирование TCP вдоль нормали к поверхности, входа в отверстие.
- Jog в User: движение по ребрам детали, сетке паллеты.
- Кинематической модели робота (DH-параметры, лимиты осей).
- Преобразования База_робота → Мир (Calibration frame).
- Пользовательских систем (Work Objects) — имена и преобразования должны совпадать с реальными.
- TCP — имя, смещение, ориентация, масса/инерция для динамики.
- Запястье (Wrist singularity): оси 4 и 6 коллинеарны (ось 5 ≈ 0° или 180°). Робот не может изменить ориентацию TCP без бесконечной скорости осей 4 и 6.
- Плечо (Shoulder singularity): ось 1 проходит через ось 3 (плечо вытянуто). Потеряется степень свободы по Yaw.
- Локоть (Elbow singularity): ось 3 полностью выпрямлена или согнута до предела.
- Система позиционера (Positioner Frame): привязана к вращающемуся столу. Робот программируется в этой системе как в статичной — контроллер сам преобразует координаты с учётом угла поворота стола (координированное движение).
- Система линейного пути (Track Frame / Rail Frame): задаёт положение седьмой оси в мировой системе.
- Активный TCP соответствует физически установленному инструменту (проверьте имя и номер на панели).
- Активная пользовательская система соответствует установленному приспособлению/детали.
- Калибровка TCP проверена на опорной точке из ориентации, не участвовавшей в калибровке.
- Пользовательская система обучена тремя точками с хорошей геометрией (угол между векторами 1→2 и 1→3 > 30°).
- Конфигурационные биты зафиксированы в ключевых точках (особенно вход/выход из зоны работы, сварные швы).
- Зоны безопасности / Cubic Interference заданы в мировой системе и не конфликтуют с траекторией.
- Масса и инерция инструмента введены в Tool Data — влияет на динамику, точность следования и защиту от перегрузок.
- Внешние оси (позиционер, путь) откалиброваны относительно базы робота; координированный режим включен там, где нужно.
- Достижимость всех точек без сингулярностей и с запасом по ходу осей (не на лимитах).
- Коллизии с приспособлениями, заготовками, периметром ячейки — с учётом реальных габаритов инструмента и кабельной колодки.
- Конфигурационная непрерывность — нет скачков Status битов между соседними точками.
- Скорости и зоны сближения (Zone/APO/CNT) — соответствуют технологическим требованиям (остановка в точке / пролёт).
- Имена систем координат и инструментов в коде программы точно совпадают с именами в контроллере (регистрозависимость!).
- Масса/инерция/центр масс инструмента в Tool Data — для корректной работы серво и коллизионного контроля.
- Проверьте жёсткость крепления инструмента и фланца (люфты, ослабленные болты).
- Проверьте температурный дрифт: робот нагревается за смену — база смещается. Некоторые контроллеры (KUKA, Fanuc) поддерживают температурную компенсацию.
- Проведите абсолютную калибровку робота (Absolute Accuracy / CalibWare / QuickLoad) — измерение реальных DH-параметров лазерным трекером. Даёт улучшение абсолютной точности в 5–10 раз (до 0.1–0.3 мм в рабочей зоне).
- Для критичных задач используйте встроенные датчики силы/момента или vision-коррекцию в реальном времени (Seam Tracking, Touch Sensing, 2D/3D Vision Guidance).
- Всегда программируйте технологические точки в User Frame детали/приспособления.
- TCP калибруйте экспериментально для каждого инструмента; проверяйте на чужой ориентации.
- User Frame учите тремя точками с максимальной геометрической разнесенностью.
- Зафиксируйте конфигурационные биты в критических точках.
- При офлайн-программировании экспортируйте в User Frame, а не в World.
- Перед стартом проверяйте активные TCP и User Frame на панели — это занимает 10 секунд и спасает часы переработки.
Контроллер хранит цепочку преобразований: Суставы → База робота → Мир/Ячейка → Пользовательская система (деталь/стол) → Инструмент (TCP). Любая ошибка в одном звене накапливается и даёт смещение в рабочей точке.
Основные системы координат: назначение и отличия
Названия отличаются у производителей (Fanuc, KUKA, ABB, Yaskawa, Universal Robots), но смысловые роли одни и те же. Ниже — обобщённая классификация.
1. Система базы робота (Robot Base / World / ROOT)
Жёстко зафиксирована в теле робота, обычно в центре основания или на уровне первой оси вращения. Это «родная» система контроллера. Все остальные системы задаются относительно неё. При переустановке робота на новое основание базовая система двигается вместе с ним.
Когда используется: при первичной калибровке, диагностике, задании зон безопасности (cubic interference zones), если ячейка не имеет единой системы «мир».
2. Система мира / ячейки (World / Cell / Station)
Единая система отсчёта для всей робототехнической ячейки. Привязана к полу, столу или опорной раме. Позволяет оперировать координатами, понятными технологу и совместимым с CAD-моделью ячейки. Обычно задаётся один раз при вводе в эксплуатацию.
Когда используется: офлайн-программирование, импорт траекторий из CAD/CAM, координация нескольких роботов, взаимодействие с ПЛК по декартовым координатам.
3. Пользовательская система / система детали (User Frame / Work Object / Base Frame / Feature)
Система, привязанная к конкретному объекту: паллете, приспособлении, заготовке, конвейеру. Ноль может находиться в углу детали, центре отверстия, на линии захвата. Ориентация осей подбирается под технологию (например, Z — нормаль к поверхности сварки).
Когда используется: 90% технологических точек задаются именно здесь. Это позволяет:
4. Система инструмента (Tool Frame / Tool Data / TCP)
Определяет положение и ориентацию рабочей точки (TCP) относительно фланца робота. Состоит из смещения по X, Y, Z и поворота (обычно Эйлеровы углы или кватернион). Для сложных инструментов (двухзахватные головки, мульти-сварка) может быть несколько TCP, переключаемых в программе.
Когда используется: всегда. Даже если «инструмент — это просто фланец», нулевой TCP должен быть задан явно. Ошибка в TCP — самая частая причина систематического смещения траектории.
5. Суставные координаты (Joint Coordinates / Axis Values)
Набор углов (или линейных смещений для линейных осей) каждого сустава. Это единственная система, измеряемая энкодерами напрямую. Движение в суставных координатах (PTP / Joint Move) быстрее и предсказуемее по времени, но траектория фланца в пространстве нелинейна.
Когда используется: перемещения между зонами работы, подход к детали, уход в парковку, любые движения, где точная траектория TCP не критична.
Преобразование координат: как это работает внутри контроллера
Понимание математики не обязательно для ежедневной работы, но необходимо для диагностики. Контроллер выполняет цепочку матричных преобразований (4×4 гомогенные матрицы):
Важный нюанс: обратная кинематика имеет множественные решения (конфигурации: локоть вверх/вниз, запястье перевёрнуто/нет, плечо лево/право). Контроллер выбирает решение по правилам (status/turn bits) или по близости к текущему положению. При офлайн-программировании это частая причина расхождений: симулятор выбрал одну конфигурацию, реальный робот при старте — другую, и движение уходит в сингулярность или столкновение.
Как правильно задать пользовательскую систему координат (3-точечный метод)
На производстве чаще всего используют метод обучения трёх точек. Порядок критичен:
Контроллер вычисляет ортонормированную базис: X — по вектору 1→2, Z — нормаль к плоскости 1-2-3 (векторное произведение), Y — дополняет до правой тройки. Если точка 3 попала «не с той стороны», ось Y инвертируется — программа будет зеркальной.
Типичные ошибки:
Калибровка TCP: методы и проверка
TCP задаётся либо по каталогу инструмента (CAD-данные), либо экспериментально. Экспериментальная калибровка обязательна для сварки, диспенсирования, точной сборки.
Метод «четырёх точек» (или сферы)
Проверка качества калибровки: после калибровки подведите TCP к той же опорной точке (конусу) из новой ориентации, не участвовавшей в калибровке. Отклонение не должно превышать допуск технологии (обычно 0.1–0.5 мм для сварки, 0.05 мм для сборки). Если отклонение больше — перекалибруйте или проверьте жёсткость крепления инструмента.
Метод «двух точек» (для простых случаев)
Если инструмент осесимметричен (сварной шток, насос) и известна длина по каталогу, можно задать Z-смещение вручную, а ориентацию — параллельно осям фланца. Проверка: вращайте ось 6 (запястье) — TCP должен оставаться неподвижным в пространстве. Дрифт — ошибка Z или наклон осей.
Программирование в разных системах: онлайн vs офлайн
Онлайн-обучение (Teach Pendant)
Оператор двигает роботом вручную (jog) в выбранной системе координат: Joint, World, User, Tool. Ключевой момент: режим джога определяет, как интерпретируются нажатия клавиш, но сохраняемая точка всегда записывается в активной пользовательской системе с текущим TCP.
Ошибка: научить точку в режиме Jog Tool, но с активной пользовательской системой «Паллета 1», а потом запустить программу с активной «Паллетой 2». Точка запишется в координатах Паллеты 1, а выполнится относительно Паллеты 2 — смещение равно преобразованию между системами.
Офлайн-программирование (OLP) и CAD/CAM
Траектория создаётся в CAD-среде (PowerMill, RobotMaster, Visual Components, Process Simulate, SprutCAM). Экспорт в код робота (LS, SRC, MOD, JBI, URScript) требует точного совпадения:
Распространённая проблема: в CAD ячейка собрана в одной системе отсчёта, а на производстве робот откалиброван в другой. Решение — экспортировать программу в пользовательской системе детали (Work Object), а не в мировой. Тогда на роботе достаточно точно определить эту одну систему — остальное подтянется автоматически.
Сингулярности и конфигурации: как система координат влияет на достижимость
Сингулярность — положение, где обратная кинематика теряет ранг (бесконечные или несуществующие решения). Основные типы для 6-осевых роботов:
Выбор пользовательской системы координат может спровоцировать или избежать сингулярности. Пример: сварка шва по кругу. Если пользовательская система поставлена в центр круга с Z вдоль нормали, роботу нужно постоянно менять ориентацию TCP — высок риск запястной сингулярности. Если систему поставить так, чтобы ось Z смотрела по касательной к шуву, ориентация TCP меняется минимально — сингулярность уходит.
Практическое правило: при планировании траектории в офлайне или при обучении онлайн всегда проверяйте конфигурационные биты (Status/Config) в ключевых точках. Зафиксируйте их в программе (CONF/J6AXIS/Shoulder/Wrist/Elbow), чтобы робот не «перепрыгивал» конфигурацию при малых изменениях точки.
Координация с внешними осями (позиционеры, линейные пути)
Если в ячейке есть позиционер (1–2 оси) или робот на линейном пути (7-я ось), появляются дополнительные системы координат:
При программировании с координированными осями точки задаются в системе детали, закреплённой на позиционере. Контроллер решает обратную кинематику для расширенной кинематической цепи (робот + внешние оси). Ошибка в калибровке базы позиционера относительно базы робота даёт систематическое смещение, пропорциональное радиусу детали.
Типичные ошибки и как их диагностировать
| Симптом | Вероятная причина | Проверка / Лечение |
|---|---|---|
| Все точки смещены одинаково в одну сторону | Ошибка в TCP (смещение Z, X, Y) | Проверка TCP на конусе из новой ориентации |
| Смещение растёт с удалением от нуля пользовательской системы | Угловая ошибка пользовательской системы (плохо обусловленные 3 точки) | Переучить систему: точки 1-2-3 максимально далеко друг от друга, точка 3 далеко от линии 1-2 |
| Программа работает зеркально | Точка 3 пользовательской системы выбрана с Y < 0 | Переучить систему или инвертировать ось Y в определении фрейма |
| Робот уходит в сингулярность на середине траектории | Неудачная ориентация пользовательской системы или неявная смена конфигурации | Сменить ориентацию User Frame; зафиксировать конфигурационные биты в программе |
| Офлайн-программа не совпадает с реальностью на 2–5 мм | Расхождение калибровки База_робота→Мир или User Frame | Замерить реальные точки лазерным трекером / фотоэлектрическим датчиком; обновить калибровку |
| При смене инструмента программа «едет» не туда | Не переключен активный TCP или не задан новый | Обязательный блок в начале программы: SET TOOL[номер]; проверка имени инструмента на панели |
Практический чек-лист перед запуском программы
Сценарии выбора системы координат для типичных задач
Паллетизация коробок на паллете
Создайте User Frame в углу паллета (нижний левый ближний угол), X — вдоль длинной стороны, Y — вдоль короткой, Z — вверх. Программа: вложенные циклы по X (коробки в ряду), Y (ряды), Z (слои). При смене размера коробки меняете только шаги циклов. При смене паллета — только User Frame.
Точечная сварка кузова
User Frame на каждом приспособлении (или один на весь кузов, если он жестко зафиксирован). TCP — кончик электрода. Ориентация TCP критична: ось Z инструмента должна совпадать с осью сварного штока. Проверка: вращение оси 6 не двигает кончик. Конфигурация: избегайте положений, где ось 5 близка к 0° (запястная сингулярность) — поворачивайте User Frame так, чтобы швы шли «вбок» от робота.
Шлифовка / полировка сложной поверхности
Траектория из CAM-системы. Экспорт в User Frame, привязанном к детали (Work Object). TCP — центр шлифовального диска, ось Z — нормаль к диску. Важно: в CAM задать правильную ориентацию инструмента относительно нормали поверхности (lead/tilt angles). На роботе — включить компиляцию с контролем ориентации (orientation control / wrist optimization), иначе робот может «перевернуть» запястье на 180° между соседними точками.
Сборка с поиском отверстий (vision / force-torque)
Vision-система выдаёт смещение детали в мировой системе или в User Frame камеры. Робот обновляет User Frame детали (Frame Offset / Shift) перед циклом захвата. TCP захвата калибруется на шпильке диаметра отверстия. Force-torque сенсор работает в Tool Frame — компенсация сил по осям инструмента позволяет «вставить» штифт без заклинивания.
Офлайн-верификация: что проверить перед загрузкой в робот
Симуляция в OLP-среде не гарантирует исполнимость на железе. Обязательные проверки:
Что делать, если точность не устраивает
Если после всех проверок повторяемость или абсолютная точность хуже требуемой:
Резюме: главные принципы работы с системами координат
Системы координат — это не абстракция, а практический инструмент разделения ответственности: инженер ячейки калибрует Мир и Базу, технолог задаёт User Frame детали, наладчик калибрует TCP, оператор лишь выбирает активные фреймы. Нарушение этого разделения (например, программирование в мировой системе без User Frame) делает ячейку хрупкой: любая перестановка стола ломает все программы.
Ключевые правила:
Материал носит информационный характер. Настройка промышленных роботов связана с рисками механических повреждений и травм. Все действия по калибровке, обучению и запуску программ должны выполняться квалифицированным персоналом с соблюдением требований безопасности (ISO 10218, ISO 13849, локальные нормативные документы) и инструкций производителя робота и контроллера.
Часто задаваемые вопросы
Можно ли программировать только в мировой системе и не создавать User Frame?
Технически — да. Практически — плохая идея. Любое смещение приспособления (даже на 1 мм) потребует правки всех точек во всех программах. User Frame позволяет скомпенсировать смещение изменением одной матрицы.
В чём разница между Base Frame (Fanuc) и User Frame (Fanuc)?
Base Frame — система, привязанная к базе робота (как World, но может быть несколько для разных установок робота). User Frame — пользовательская система, привязанная к детали/столу. Для программирования деталей используйте User Frame.
Почему робот едет не туда, хотя точки верные?
Чаще всего: активный TCP не соответствует инструменту, или активный User Frame не соответствует приспособлению. Проверьте на панели: ACTIVE TOOL и ACTIVE USER FRAME перед пуском.
Нужно ли калибровать TCP, если длина инструмента известна по чертежу?
Чертеж даёт номинал. Реальность: допуски изготовления, износ наконечника, нагрев, деформация кабеля. Экспериментальная калибровка устраняет систематическую ошибку. Для грубых операций (паллетизация коробок захватом) номинала может хватить. Для сварки, сборки, диспенсирования — обязательна калибровка.
Как перенести программу с робота Fanuc на KUKA?
Прямого конвертера кода нет (разные языки: TP vs KRL). Путь: офлайн-среда (Visual Components, Process Simulate, RoboDK) — импорт траектории/точек из Fanuc (через LS/TP или CAD), привязка к User Frame, экспорт в KRL. Или ручной перенос: выписать точки в User Frame, ввести их в KUKA с тем же User Frame и TCP. Главное — совпадение кинематических моделей и систем координат.
