Просьба: если вы здесь увидели какие-то ошибки или неточности то просьба сообщить об этом в комментариях или написать мне. Если вы хорошо разбираетесь в робототехникe или очень хорошо знакомы с RobotStudio свяжитесь со мной :) Все роботы компании ABB это манипуляторы, которые используются в основном на производствах, в лабораториях или на складах. В каталоге компании  можно встретить такие типы роботов как: SCARA роботы, DELTA роботы, коллабративные роботы (коботы), индустриальные манипуляторы (5-6 осевые) Интересный факт: к ABB обращаются множество клиентов чтобы использовать роботов для покраски. ABB пришлось сделать отдельную линейку роботов. Это было небольшое вступление, идем дальше... Для программирования роботов компании ABB используется их фирменное программное обеспечение RobotStudio. Программа платная и стоит целых 1500$/год за стандартный комплект. За каждое дополнение придется доплачивать отдельно, хотя стоит сказать, что ABB иногда проводят акции или предоставляют своим клиентам специальные предложения. Но есть и хорошая новость, - это пробный период. Пробный период доступен всего 30 дней, после чего основной функционал RobotStudio будет заблокирован. Стоить еще сказать, что переустановка RobotStudio или установка на виртуальную машину не поможет, в этом случае "программа" не даст возможности выбрать пробную версию. Любой робот ABB это просто корпус, сервомоторы и датчики (грубо говоря) и нуждается в том, чтобы им кто-то управлял. В этом случае нас спасает контроллер компании ABB - IRC5. В комплекте с контроллером поставляется пульт управления роботом ABB FlexPendant. Он напрямую подключается к контроллерам (например IRC5). Точно такой же пульт в виде симуляции можно использовать в RobotStudio. Программу для роботов можно писать в RobotStudio (через RAPID редактор) или через FlexPendant. В этой статье рассмотрим именно базу для FlexPendant. Итак, про RobotStudio поговорили, про IRC5 поговорили, о FlexPendant узнали. Теперь мы переходим к практике. Запускаем RobotStudio: Выбираем Solution with Station and Robot Controller (создать робота, со станцией управления и контроллером). Заполняем необходимые поля, задаем имя для нашего проекта. Обратите внимание, чтобы в Location не было слишком длинного пути до файлов, иначе RobotStudio не даст создать проект и будет показывать ошибки Далее переходим к первым настройкам самого робота: RobotWare я выберу 6 версию (RobotWare - ОС для контроллера IRC5). В Robot model выбираем необходимого нам робота и оставляем пустым Customize options, так как дополнительные настройки нам пока не нужны. Может случиться, что нужно будет установить RobotWare необходимой версии вручную (хотя как правило в новых версиях RobotStudio он уже предустановлен). Добавить необходимую версию RobotWare можно перейдя во вкладку Add-ins и найти в галерее RobotWare, затем выбираем необходимую версию и нажимаем Add При выборе разных версий (например 7) некоторые роботы пропадут из списка доступных. Это связанно с тем, что не все роботы поддерживают более новый RobotWare. В реальности ABB создает поддержку для новых версий, однако в RobotStudio не успевает быстро появится поддержка После создания проекта программа может попросить нас выбрать более точную модель робота. Чтобы понять какой робот нам необходим нужно залезть в каталог роботов ABB и посмотреть на техническую документацию. Робот создан! В данной статьи я не буду рассказывать подробно как ориентироваться в интерфейсе. Можно посмотреть это видео, где показывается как управлять роботом. Итак. В RobotStudio мы выбираем вкладку Controller и ищем FlexPendant с изображением нашего пульта. После этого выбираем Virtual FlexPendant. После чего перед вами в виде отдельного окна появится симуляция пульта FlexPendant, это окно независимо от RobotStudio и можно например переместить на второй монитор, чтобы на первом видеть RobotStudio. Давайте подвигаем нашего робота. Для этого необходимо в Flexpendant открыть меню (левый верхний угол) и выбрать страницу Jogging. Перед нами откроется страница для управления режимами, выбором степенями свободы робота и другой информации: нагрузка, рабочий объект, инструмент. Окно Position показывает нам каждое звено и под каким углом оно в данный момент находится (0 - null позиция, она необходима для калибровки). Окно Joystick directions показывает нам как нужно сам боковой джойстик повернуть чтобы задействовать необходимое нам звено. Если мы сейчас попробуем подвигать нашего робота, то у нас ничего не получится. А все потому что, так как этот пульт в точности копирует настоящий нам необходимо переключиться на "ручной режим" управления. Для этого необходимо возле самого джойстика найти маленькое изображение контроллера IRC5 и нажать на него. После чего необходимо выбрать среднее положение "ключа". Теперь необходимо включить сами сервомоторы. Для этого нажимаем на Enable и Hold To Run. Теперь попробуйте подвигать джойстиком и посмотрите как начинает себя вести робот. Кликнув на Motion mode: Axis 1 - 3... мы можем выбрать какими степенями свободы мы хотим управлять. Кликнув на ROB_1 (это идентификатор нашего робота в RobotWare) мы можем открыть дополнительное окно настроек нашего робота. Тамже можно настраивать скорость движения, углы, возрастающую скорость и многое другое. Выбрав самое верхнее изображение нашего робота мы увидим тот же самый Motion mode однако в добавок у нас будет возможность выбора системы координат и рабочего инструмента. Давайте в завершении создадим простую программу с 2 точками. Что нам нужно? Запустить RobotStudio ✔ Создать робота ✔ Запустить FlexPendant ✔ Открыть редактор программы Создать программу Обучить робота точкам Точки - это наши пункты в разных системах координат для нашего робота. С помощью указаний этих пунктов и вида движения мы задаем роботу жесткий сценарий по которому он будет следовать. Например следовать дугой от точки А к точки Б, или следовать к точки А остановиться в точки Б и повернуть обратно. Давайте перейдем к практике: Находим в меню Program Editor. Именно там мы будем создавать нашу программу. Если программы до этого не было, то пульт предложит создать новую программу с нуля. Мы соглашаемся с этим и попадаем в редактор. Если вы видите следующий код, то все сделано было правильно. Ниже код представлен на языке программирования RAPID. ВАЖНО: Чтобы начать создавать программу пульт должен быть переведен в "ручной режим" работы и при необходимости должны быть включены моторы для передвижения робота Теперь нам необходимо создать для робота первую точку. Пусть это будет его текущая позиция и назовем её "домашней". Для этого прожимаем на Add Instruction и сбоку появится окно с командами, где мы должны выбрать какую инструкцию добавить. Я добавлю MoveL. MoveL - это прямолинейное движение. Это значит, что робот к ЭТОЙ точке будет двигаться с помощью команды прямолинейного движения MoveL и никак иначе. После того как создана первая точка необходимо создать еще одну. Попробуйте подвигать робота с помощью FlexPendant и задайте с помощью инструкции MoveL вторую точку. Итак. Две точки созданы и при необходимости эти инструкции можно дополнительно настроить. Нужно кликнуть по символу звездочки и мы попадем в настройки нашей инструкции В меню настроек инструкции мы можем добавить "особое имя" для нашей точки, для этого во вкладке Data выбираем функцию new и после чего указываем имя для нашей точки Советую всегда указывать имя для точек, ибо по дефолту пульт задает им значение Target_N или P_N (где N - номер точки) и потом очень трудно определить какая именно это точка и куда она ведет. Обратите внимание, что имя должно быть уникальным и больше нигде не повторяться. Помимо имени точки мы еще можем управлять такими настройками как скорость движения до точки (v1000), разрешение погрешность от точки (z50) и какой рабочий инструмент будет использоваться (tool0). Чтобы изменить эти параметры необходимо на них кликнуть и выбрать новые. Изменение положения точки С помощью функции Modify position мы можем изменить положение уже созданной точки. Например создав точку Target_10 мы поняли, что она должна быть на 1 сантиметр левее, то мы сначала двигаем робота левее куда нам необходимо и после чего используем Modify position Наша простая программа создана и теперь мы хотим проверить как она работает. Для этого мы будем использовать встроенный дебагер. Нажав на кнопку Debug нам открывается меню выбора дебага. Что есть что: PP to Main -робот будет выполнять программу от самого начала до самого конца. Весь MODULE PP to Routine - робот будет выполнять программу только в определенной области PROC #имя PP to Cursor - робот будет выполнять команду, на которую указывает стрелка возле номера строки Остальные функции я не так часто использую, но все же расскажу о них:Curstor to PP - переводим стрелку на нужную нам строкуGo to position - робот будет двигаться на определенную позицию (точку)Check Programm - пульт проверит нашу программуCall Routine - вызвать PROCView Value - посмотреть данные (переменные, сигналы и т.д.) Мы выбираем PP to Routine чтобы проверить как будет работать наша рутина main. После этого на пульте мы можем запустить нашу программу использую следующее управление: Стрелка play - мы запускаем программу и она будет от начала до конца автоматически исполняться Стрелка "перемотки" вперед - мы запускаем программу шаг за шагом (например нажав первый раз робот пойдет к точке А и будет ждать дальше разрешения на движение к точке Б) Стрелка "перемотки" назад обратное стрелки вперед. Мы возвращаемся на шаг назад в программе. Квадратик - кнопка STOP. Программа завершается и робот уходит в режим ожидания (Stand By) Дебагер позволяет отслеживать на какой строчке кода находится робот и каким будет его следующим шагом Всё! Мы научились с помощью FlexPendant и RobotStudio управлять роботами ABB (на самом деле это только базовые навыки правильного "пользования" всем этим. Здесь присутствует очень много функционала, а значит и подводных камней тоже не мало. Здесь я постарался представить представление как работать с этим) Знаю, возможно этого материала полным полно в Интернете и на ютубе, но здесь я не видел чтобы развивали эту тему. В моей стране не сильно развита робототехника и в "нашем" русском сообществе не с кем поговорить на эту тему, поэтому было бы классно найти единомышленников здесь и узнать что-то новое для себя и поделиться чем-нибудь. А так, надеюсь что всем вам понравилось и прошу прощения за свою грамматику! Это была моя первая статья и в будущем я хочу больше развивать тему RobotStudio и как там создавать различные решения и как обучать роботов. Жду вашего мнения и впечатлений в комментариях. Спасибо!  Специалист в области автоматизации и робототехники