![](https://habrastorage.org/getpro/habr/upload_files/18a/c75/b9d/18ac75b9d32bcef5ac7bf1b000ede890.png)
Привет, Хабр! На этот раз мы пригласили в наш блог Артема Аксенова — учредителя и генерального директора компании VRM Group из Иннополиса. Его компания занимается установкой и настройкой промышленных роботов на литейных производствах, разработкой учебных AR/VR-симуляторов и роботизированных ячеек для обучения робототехнике.
Мы попросили Артема рассказать об образовании: о работе программиста-робототехника в этой сфере, преимуществах и перспективах профессии. Стоит ли осваивать ее в 2022 году?
Я начал заниматься направлением робототехники-мехатроники на производственном объединении «Зарница» в 2014 году. Эта компания разрабатывает учебно-лабораторное оборудование для разных специальностей. Для примера, одной из задач было создание интерпретатора для промышленных языков программирования.
В университетах обычно изучают экосистему ROS — набор универсальных программных сред для управления роботами, но каждый производитель роботов предлагает свой язык. Universal Robots используют графический язык программирования, KUKA Robotics Language напоминает C, у японской FANUC программы похожи G-code ЧПУ-станков. Интерпретатор позволял писать на C и переводить программу в набор команд для конкретного типа роботов. Кроме того, в Зарнице разработали компактный учебный шестиосевой манипулятор.
![](https://habrastorage.org/getpro/habr/upload_files/cec/b1e/2d3/cecb1e2d366953b6b97d253832ce6444.jpeg)
На тот момент в целом по РФ, оснащение лабораторных комнат в университетах и колледжах и школах все еще было бедным. Зачастую роботов показывали как в музее, — вдруг студенты что-то сломают.
Эта общая проблема обучения сервисному обслуживанию любой мало-мальски сложной техники. Допустим, необходимо научить студентов ремонтировать Камаз. Принесли им двигатель. Они три-четыре раза его собрали-разобрали, но после этого он уже вряд ли заведется. К сожалению, самый дешевый промышленный манипулятор стоит в четыре раза дороже, чем движок грузовика, при том, что понимание внутреннего устройства робота для сервисного специалиста просто необходимо.
![](https://habrastorage.org/getpro/habr/upload_files/a23/0b4/c5f/a230b4c5f3d94c4bfd04fadf3e07fa9b.jpeg)
Именно поэтому стоит активнее использовать дополненную и виртуальную реальность. С ее помощью можно показать многие детали конструкции в 3D, в масштабе, не разбирая робота до винтика. Да и в сборке она помогает.
В 2017 году я задумался о разработке такого симулятора для роботов KUKA, в 2018 году в поиске льгот для стартапов перебрался в Иннополис и занялся разработкой. Затем наша компания перешла к созданию роботизированных учебных ячеек для WorldSkills.
![Кадр с WorldSkills Russia 2021. Всего за нашими плечами 20 региональных чемпионатов и 4 национальных, включая чемпионат мира Кадр с WorldSkills Russia 2021. Всего за нашими плечами 20 региональных чемпионатов и 4 национальных, включая чемпионат мира](https://habrastorage.org/getpro/habr/upload_files/69f/536/9af/69f5369af81a7c4e5b6eaa8393e14469.jpg)
На этих соревнованиях студенты решают реальные задачи с промышленных предприятий, но в упрощенном виде: программируют загрузку/выгрузку станков, точечную сварку, роботизированную фрезеровку и так далее.
Начиная с конца 2019 года мы плотно занялись интеграцией роботов в промышленные производства и начали внедрять решения для литья металлов под высоким давлением.
Что делает программист роботов
Первое, на что обращаешь внимание, общаясь со студентами, — непонимание того, что роботов в составе комплекса запускают как минимум три специалиста:
программист-робототехник, отвечающий за предварительные симуляции и подбор манипулятора, а также разработку логики и написание программы;
программист ПЛК — он настраивает взаимодействие робота с устройствами, из которых состоит производственная линия;
роботист, который руководит установкой, наладкой и калибровкой манипулятора на объекте.
Если роботист — это уровень среднего профессионального образования, то программист-робототехник и программист ПЛК — уровень университета.
![Загрузка изделия в пресс (сверху) и съем детали (снизу). Оранжевый манипулятор-смазчик на втором фото ждет своей очереди Загрузка изделия в пресс (сверху) и съем детали (снизу). Оранжевый манипулятор-смазчик на втором фото ждет своей очереди](https://habrastorage.org/getpro/habr/upload_files/2c7/8af/4d5/2c78af4d5a006a23f48423202d976672.jpeg)
Расскажу о работе программиста-робототехника на примере одного из последних проектов по запуску литейного комплекса. В его составе была пара робоманипуляторов (съемщик и смазчик), пресс, который снимает с детали излишки материала, жидкостная система охлаждения, система сортировки отлитых изделий по качеству, несколько конвейерных систем, система аспирации, система безопасности и поворотные/захватные модули для различных типов отливок.
![Следующий этап производства: погружение детали в ванную охлаждения (сверху) смазка пресс-формы (снизу) Следующий этап производства: погружение детали в ванную охлаждения (сверху) смазка пресс-формы (снизу)](https://habrastorage.org/getpro/habr/upload_files/205/357/ddb/205357ddb124f5b61eed831ae542b369.jpeg)
Первое, что делает программист-робототехник в рамках подобного проекта, — вместе с конструктором и проектировщиком планирует расстановку всего оборудования. В основном для этого используется симулятор Visual Components.
При этом происходит окончательная подборка моделей роботов под конкретные условия: энергоподводы, высоту потолков, размер помещения и так далее. Приходится учитывать и то, что роботы имеют разную досягаемость и грузоподъемность, которая зависит от положения манипулятора в пространстве.
![Большую часть рабочего времени программист наблюдает за действиями робота в Visual Components Большую часть рабочего времени программист наблюдает за действиями робота в Visual Components](https://habrastorage.org/getpro/habr/upload_files/1af/1b4/29f/1af1b429f8053553cb2344580f519965.jpg)
После согласования расстановки и подбора оборудования начинается этап настройки взаимодействия устройств, входящих в состав комплекса. На этом этапе к работе подключается программист ПЛК. Он настраивает обмен сигналами между роботом и периферийным оборудованием: различными датчиками, системой безопасности и другими агрегатами. Чаще всего используются внешние ПЛК, а для удобства управления комплексом подключаются либо сенсорные HMI-панели, либо кнопочные посты.
В итоге составляется блок-схема техпроцесса, а затем пишется алгоритм. Основная задача программиста на этом этапе — оптимизировать перемещения манипулятора так, чтобы общее время цикла работы было минимальным и соответствовало требованиям заказчика. С учетом различных требований и условий эта задача напоминает замысловатую головоломку. Например, нужно уложить в 40 секунд набор взаимосвязанных и отчасти взаимоисключающих действий сразу нескольких агрегатов: захват детали, открытие/закрытие дверей, охлаждение детали, смазка, обломка под прессом, подача новой детали и так далее.
![Типичная блок-схема техпроцесса с участием роботов Типичная блок-схема техпроцесса с участием роботов](https://habrastorage.org/getpro/habr/upload_files/688/818/133/688818133d9eef1b4f534866d7d5d174.png)
Приходится рисовать сложные схемы, раскладывать циклограммы на этапы, учитывать пересекающиеся процессы и рассчитывать время так, чтобы робот успел выполнить все необходимые манипуляции вовремя.
Хорошая программа пишется так, чтобы «швы» между просчетом логики и движениями были незаметны. Это позволяет сделать цикл быстрым, снижает нагрузку на узлы и продлевает срок службы робота. А еще это просто красиво — робот двигается плавно, без рывков и остановок.
Кроме того, важно написать и задокументировать код так, чтобы наладчик производственного процесса мог в нем разобраться, если понадобится изменить ключевые позиции робота, настроить движения под изменившуюся форму изделий. При этом по части программирования все в основном стандартно: типы данных, операторы, циклы, алгоритмы, объекты, плюс команды для роботов и всякие мелкие особенности оборудования конкретных брендов.
Преимущества профессии
Программисты из нашей команды говорят, что им нравится сразу видеть результат работы — робот движется, техпроцесс идет, но это не единственное ее преимущество.
![Кнопочный пост управления роботизированным производственным комплексом Кнопочный пост управления роботизированным производственным комплексом](https://habrastorage.org/getpro/habr/upload_files/a04/247/d20/a04247d2013a0b655314f4c896ff60fe.jpg)
Если сравнить зарплаты у программистов роботов и, например, «обычных» Java-разработчиков, оказывается, что первым нужно меньше профессионального опыта, чтобы начать получать приличную зарплату. Зачастую, не самый сильный мидл в робототехнике зарабатывает на уровне молодого сеньора из компании, которая занимается разработкой ПО.
Еще одно преимущество работы программиста-робототехника — разнообразие. Каждый новый проект — решение нестандартных задач.
Иногда сложности связаны с тем, что мы ограничены помещением или внутренней логистикой, в других случаях нужно учитывать микроклимат в конкретном цеху.
Например, на сквозняке точность сварки резко падает, и оборудование приходится расставлять с учетом воздушных потоков и ветрозащиты. Такой вот тетрис для взрослых бородатых инженеров.
Бывает, приходится подстраиваться под неотлаженные техпроцессы, а порой и брать в руки инструменты.
![Убираем кронштейн, которого не было на 3D-модели на этапе проектировки Убираем кронштейн, которого не было на 3D-модели на этапе проектировки](https://habrastorage.org/getpro/habr/upload_files/040/90f/7c6/04090f7c6a05ebb3e9cdb92c8e10a18d.jpg)
Как-то нас попросили установить робота с точностью сварки две сотых микрона. Главный технолог уверял, что заготовки делаются как раз с такой точностью. Приехав на объект, мы увидели, как лаборант проверяет размеры миллиметровой линейкой…=). Чтобы решить эту задачку, потребовалось немало находчивости. В России она вообще часто пригождается.
Как вкатиться в профессию
Необходимые навыки
Помимо умения нестандартно мыслить, чтобы стать программистом роботов вам понадобится:
Развитое пространственное воображение. Без него очень сложно представить желаемую траекторию манипулятора и без ошибок запрограммировать нужное движение.
Представление о различных производственных решениях на базе роботов и техпроцессах, в которых они участвуют. Видеоролики с объяснениями легко найти, например, на канале KUKA на YouTube. Со временем придется научиться работать с CAM-системами, так что имеет смысл поискать информацию и о них.
Умение составлять блок-схемы, писать первичные коды перемещений.
Знание хотя бы нескольких типов контроллеров и сигналов (двоичный, шестнадцатеричный код, биты, двойные слова).
Понимание хотя бы одного специализированного языка программирования. В нашей компании много разработчиков, которые писали на C и C++. Перейти с этих языков на KUKA Robotics Language достаточно просто.
Где учиться
В России с 1987 по 2011 год робототехника практически не преподавалась, разве что кроме МГТУ имени Баумана, Санкт-Петербургского политехнического университета и ряда корпоративных колледжей, но в последние десять лет ситуация меняется.
Для школьников и студентов проходят конкурсы WorldSkills, олимпиады WRO, Робофест, FIRST LEGO League, открылись кванториумы.
![Лаборатория WorldSkills в Воронежском авиационном техникуме им. В.П. Чкалова, которую мы оснастили в 2019 году Лаборатория WorldSkills в Воронежском авиационном техникуме им. В.П. Чкалова, которую мы оснастили в 2019 году](https://habrastorage.org/getpro/habr/upload_files/fa1/456/d35/fa1456d35a95a652b50db778bcd04241.jpeg)
Программистов-робототехников стали готовить в МИРЭА, МТУСИ, СколТехе, ИТМО, Университете Иннополис и ряде других вузов. Такие направления обучения появились во многих колледжах, например, МГОК.
Впрочем, чтобы вкатиться в профессию не обязательно получать классическое образование. Так, один из наших программистов до 35 лет работал в Cisco и только потом ушел в робототехнику. Многое он изучил совершенно самостоятельно.
Базовые знания можно почерпнуть из онлайн-курсов на платформах вроде edX и stanford.edu. Чтобы углубиться в промышленную робототехнику, стоит изучить бета-версии KUKA Sim и FANUC ROBOGUIDE с бесплатной месячной лицензией. У того же Visual Components есть бесплатные разделы (правда, узкого профиля). Кроме того, на сайтах производителей опубликованы методички по конкретным моделям роботов. Там же можно познакомиться с KRL-библиотеками, а с конкретными вопросами лучше обращаться в тематические группы на Reddit и профессиональные чаты, например группу ROS в телеграм.
![Симулятор SimPRO поддерживает и программирование роботов, и имитацию CAM-систем Симулятор SimPRO поддерживает и программирование роботов, и имитацию CAM-систем](https://habrastorage.org/getpro/habr/upload_files/97c/b6f/aae/97cb6faaee9ceee485f15d4c522fcc06.png)
Самый быстрый способ погружения в тему — специализированные профессиональные курсы, но стоят они недешево. Скажем, KUKA просит около 140 тысяч рублей за неделю своей образовательной программы. Однако, если вы серьезно намерены войти в профессию, но по каким-то причинам не хотите идти в вуз, то оно того стоит. Пройдя подобный курс, можно устроиться на стажировку практически к любому интегратору. Им постоянно не хватает программистов.
Карьерный путь и перспективы
По мере работы стоит освоить программирование ПЛК (например, Siemens или Omron), пройти курсы повышения квалификации в KUKA или у другого крупного вендора. Наши сотрудники уделяли много внимания Universal Robots, потому что у них дешевые коботы, но сейчас компания ушла из страны.
Вместе с новыми знаниями проходит и карьерный рост внутри компании. Рядовой программист становится руководителем проектной группы. Другие варианты профессионального развития — пойти работать к вендору (FANUC, ABB или той же KUKA) или открыть собственный стартап-интегратор.
На заводах КАМАЗ больше 500 роботов и, хотя все они давно установлены и работают, нередко нужно подправить точки, переписывать программы. Подобные заказы успешно выполняют команды из нескольких фрилансеров и, похоже, теперь они станут еще востребованнее.
![За последние три года под брендом ВР-МАСТЕР наша команда реализовала больше 50 проектов с использованием роботов и вошла число крупнейших российских интеграторов по оценкам НАУРР За последние три года под брендом ВР-МАСТЕР наша команда реализовала больше 50 проектов с использованием роботов и вошла число крупнейших российских интеграторов по оценкам НАУРР](https://habrastorage.org/getpro/habr/upload_files/b50/37a/035/b5037a035904959c25dc37af5c1fc478.jpg)
Да, в России в разных отраслях внедряется приблизительно 1 тыс. роботов в год. Это небольшой рынок, и его рост замедлился. Отчасти потому, что не все понимают, как использовать роботов, так, чтобы они работали качественнее и эффективнее людей. Другая проблема — стоимость таких комплексов. Компании боятся вкладывать в производство большие деньги, потому что экономика нестабильна, и заказов завтра может не быть.
Из-за санкций из страны ушло несколько вендоров. Оставшиеся альтернативы хуже, и российские производители роботов вряд ли смогут быстро догнать мировых лидеров. Однако, не все так плохо, как может показаться.
Даже для существующих в России производств программистов-робототехников все равно не хватает, и это не говоря о других странах
Я знаю проекты по литейке в Алжире и Калифорнии, которые не получается запустить из-за нехватки специалистов по роботам. Даже если программист-робототехник не найдет себе применение в России, то за рубежом он точно будет востребован.
Так или иначе, за такими машинами будущее. Мой дедушка 20 лет возил по заводу ванны с расплавленным алюминием, но уже сейчас всю литейку переводят на роботов. Это логичный, даже неизбежный путь развития, который делает промышленные производства чище, безопаснее и эффективнее.