Привет, Хабр! На этот раз мы пригласили в наш блог Артема Аксенова — учредителя и генерального директора компании VRM Group из Иннополиса. Его компания занимается установкой и настройкой промышленных роботов на литейных производствах, разработкой учебных AR/VR-симуляторов и роботизированных ячеек для обучения робототехнике.
Мы попросили Артема рассказать об образовании: о работе программиста-робототехника в этой сфере, преимуществах и перспективах профессии. Стоит ли осваивать ее в 2022 году?
Я начал заниматься направлением робототехники-мехатроники на производственном объединении «Зарница» в 2014 году. Эта компания разрабатывает учебно-лабораторное оборудование для разных специальностей. Для примера, одной из задач было создание интерпретатора для промышленных языков программирования.
В университетах обычно изучают экосистему ROS — набор универсальных программных сред для управления роботами, но каждый производитель роботов предлагает свой язык. Universal Robots используют графический язык программирования, KUKA Robotics Language напоминает C, у японской FANUC программы похожи G-code ЧПУ-станков. Интерпретатор позволял писать на C и переводить программу в набор команд для конкретного типа роботов. Кроме того, в Зарнице разработали компактный учебный шестиосевой манипулятор.
На тот момент в целом по РФ, оснащение лабораторных комнат в университетах и колледжах и школах все еще было бедным. Зачастую роботов показывали как в музее, — вдруг студенты что-то сломают.
Эта общая проблема обучения сервисному обслуживанию любой мало-мальски сложной техники. Допустим, необходимо научить студентов ремонтировать Камаз. Принесли им двигатель. Они три-четыре раза его собрали-разобрали, но после этого он уже вряд ли заведется. К сожалению, самый дешевый промышленный манипулятор стоит в четыре раза дороже, чем движок грузовика, при том, что понимание внутреннего устройства робота для сервисного специалиста просто необходимо.
Именно поэтому стоит активнее использовать дополненную и виртуальную реальность. С ее помощью можно показать многие детали конструкции в 3D, в масштабе, не разбирая робота до винтика. Да и в сборке она помогает.
В 2017 году я задумался о разработке такого симулятора для роботов KUKA, в 2018 году в поиске льгот для стартапов перебрался в Иннополис и занялся разработкой. Затем наша компания перешла к созданию роботизированных учебных ячеек для WorldSkills.
На этих соревнованиях студенты решают реальные задачи с промышленных предприятий, но в упрощенном виде: программируют загрузку/выгрузку станков, точечную сварку, роботизированную фрезеровку и так далее.
Начиная с конца 2019 года мы плотно занялись интеграцией роботов в промышленные производства и начали внедрять решения для литья металлов под высоким давлением.
Что делает программист роботов
Первое, на что обращаешь внимание, общаясь со студентами, — непонимание того, что роботов в составе комплекса запускают как минимум три специалиста:
программист-робототехник, отвечающий за предварительные симуляции и подбор манипулятора, а также разработку логики и написание программы;
программист ПЛК — он настраивает взаимодействие робота с устройствами, из которых состоит производственная линия;
роботист, который руководит установкой, наладкой и калибровкой манипулятора на объекте.
Если роботист — это уровень среднего профессионального образования, то программист-робототехник и программист ПЛК — уровень университета.
Расскажу о работе программиста-робототехника на примере одного из последних проектов по запуску литейного комплекса. В его составе была пара робоманипуляторов (съемщик и смазчик), пресс, который снимает с детали излишки материала, жидкостная система охлаждения, система сортировки отлитых изделий по качеству, несколько конвейерных систем, система аспирации, система безопасности и поворотные/захватные модули для различных типов отливок.
Первое, что делает программист-робототехник в рамках подобного проекта, — вместе с конструктором и проектировщиком планирует расстановку всего оборудования. В основном для этого используется симулятор Visual Components.
При этом происходит окончательная подборка моделей роботов под конкретные условия: энергоподводы, высоту потолков, размер помещения и так далее. Приходится учитывать и то, что роботы имеют разную досягаемость и грузоподъемность, которая зависит от положения манипулятора в пространстве.
После согласования расстановки и подбора оборудования начинается этап настройки взаимодействия устройств, входящих в состав комплекса. На этом этапе к работе подключается программист ПЛК. Он настраивает обмен сигналами между роботом и периферийным оборудованием: различными датчиками, системой безопасности и другими агрегатами. Чаще всего используются внешние ПЛК, а для удобства управления комплексом подключаются либо сенсорные HMI-панели, либо кнопочные посты.
В итоге составляется блок-схема техпроцесса, а затем пишется алгоритм. Основная задача программиста на этом этапе — оптимизировать перемещения манипулятора так, чтобы общее время цикла работы было минимальным и соответствовало требованиям заказчика. С учетом различных требований и условий эта задача напоминает замысловатую головоломку. Например, нужно уложить в 40 секунд набор взаимосвязанных и отчасти взаимоисключающих действий сразу нескольких агрегатов: захват детали, открытие/закрытие дверей, охлаждение детали, смазка, обломка под прессом, подача новой детали и так далее.
Приходится рисовать сложные схемы, раскладывать циклограммы на этапы, учитывать пересекающиеся процессы и рассчитывать время так, чтобы робот успел выполнить все необходимые манипуляции вовремя.
Хорошая программа пишется так, чтобы «швы» между просчетом логики и движениями были незаметны. Это позволяет сделать цикл быстрым, снижает нагрузку на узлы и продлевает срок службы робота. А еще это просто красиво — робот двигается плавно, без рывков и остановок.
Кроме того, важно написать и задокументировать код так, чтобы наладчик производственного процесса мог в нем разобраться, если понадобится изменить ключевые позиции робота, настроить движения под изменившуюся форму изделий. При этом по части программирования все в основном стандартно: типы данных, операторы, циклы, алгоритмы, объекты, плюс команды для роботов и всякие мелкие особенности оборудования конкретных брендов.
Преимущества профессии
Программисты из нашей команды говорят, что им нравится сразу видеть результат работы — робот движется, техпроцесс идет, но это не единственное ее преимущество.
Если сравнить зарплаты у программистов роботов и, например, «обычных» Java-разработчиков, оказывается, что первым нужно меньше профессионального опыта, чтобы начать получать приличную зарплату. Зачастую, не самый сильный мидл в робототехнике зарабатывает на уровне молодого сеньора из компании, которая занимается разработкой ПО.
Еще одно преимущество работы программиста-робототехника — разнообразие. Каждый новый проект — решение нестандартных задач.
Иногда сложности связаны с тем, что мы ограничены помещением или внутренней логистикой, в других случаях нужно учитывать микроклимат в конкретном цеху.
Например, на сквозняке точность сварки резко падает, и оборудование приходится расставлять с учетом воздушных потоков и ветрозащиты. Такой вот тетрис для взрослых бородатых инженеров.
Бывает, приходится подстраиваться под неотлаженные техпроцессы, а порой и брать в руки инструменты.
Как-то нас попросили установить робота с точностью сварки две сотых микрона. Главный технолог уверял, что заготовки делаются как раз с такой точностью. Приехав на объект, мы увидели, как лаборант проверяет размеры миллиметровой линейкой…=). Чтобы решить эту задачку, потребовалось немало находчивости. В России она вообще часто пригождается.
Как вкатиться в профессию
Необходимые навыки
Помимо умения нестандартно мыслить, чтобы стать программистом роботов вам понадобится:
Развитое пространственное воображение. Без него очень сложно представить желаемую траекторию манипулятора и без ошибок запрограммировать нужное движение.
Представление о различных производственных решениях на базе роботов и техпроцессах, в которых они участвуют. Видеоролики с объяснениями легко найти, например, на канале KUKA на YouTube. Со временем придется научиться работать с CAM-системами, так что имеет смысл поискать информацию и о них.
Умение составлять блок-схемы, писать первичные коды перемещений.
Знание хотя бы нескольких типов контроллеров и сигналов (двоичный, шестнадцатеричный код, биты, двойные слова).
Понимание хотя бы одного специализированного языка программирования. В нашей компании много разработчиков, которые писали на C и C++. Перейти с этих языков на KUKA Robotics Language достаточно просто.
Где учиться
В России с 1987 по 2011 год робототехника практически не преподавалась, разве что кроме МГТУ имени Баумана, Санкт-Петербургского политехнического университета и ряда корпоративных колледжей, но в последние десять лет ситуация меняется.
Для школьников и студентов проходят конкурсы WorldSkills, олимпиады WRO, Робофест, FIRST LEGO League, открылись кванториумы.
Программистов-робототехников стали готовить в МИРЭА, МТУСИ, СколТехе, ИТМО, Университете Иннополис и ряде других вузов. Такие направления обучения появились во многих колледжах, например, МГОК.
Впрочем, чтобы вкатиться в профессию не обязательно получать классическое образование. Так, один из наших программистов до 35 лет работал в Cisco и только потом ушел в робототехнику. Многое он изучил совершенно самостоятельно.
Базовые знания можно почерпнуть из онлайн-курсов на платформах вроде edX и stanford.edu. Чтобы углубиться в промышленную робототехнику, стоит изучить бета-версии KUKA Sim и FANUC ROBOGUIDE с бесплатной месячной лицензией. У того же Visual Components есть бесплатные разделы (правда, узкого профиля). Кроме того, на сайтах производителей опубликованы методички по конкретным моделям роботов. Там же можно познакомиться с KRL-библиотеками, а с конкретными вопросами лучше обращаться в тематические группы на Reddit и профессиональные чаты, например группу ROS в телеграм.
Самый быстрый способ погружения в тему — специализированные профессиональные курсы, но стоят они недешево. Скажем, KUKA просит около 140 тысяч рублей за неделю своей образовательной программы. Однако, если вы серьезно намерены войти в профессию, но по каким-то причинам не хотите идти в вуз, то оно того стоит. Пройдя подобный курс, можно устроиться на стажировку практически к любому интегратору. Им постоянно не хватает программистов.
Карьерный путь и перспективы
По мере работы стоит освоить программирование ПЛК (например, Siemens или Omron), пройти курсы повышения квалификации в KUKA или у другого крупного вендора. Наши сотрудники уделяли много внимания Universal Robots, потому что у них дешевые коботы, но сейчас компания ушла из страны.
Вместе с новыми знаниями проходит и карьерный рост внутри компании. Рядовой программист становится руководителем проектной группы. Другие варианты профессионального развития — пойти работать к вендору (FANUC, ABB или той же KUKA) или открыть собственный стартап-интегратор.
На заводах КАМАЗ больше 500 роботов и, хотя все они давно установлены и работают, нередко нужно подправить точки, переписывать программы. Подобные заказы успешно выполняют команды из нескольких фрилансеров и, похоже, теперь они станут еще востребованнее.
Да, в России в разных отраслях внедряется приблизительно 1 тыс. роботов в год. Это небольшой рынок, и его рост замедлился. Отчасти потому, что не все понимают, как использовать роботов, так, чтобы они работали качественнее и эффективнее людей. Другая проблема — стоимость таких комплексов. Компании боятся вкладывать в производство большие деньги, потому что экономика нестабильна, и заказов завтра может не быть.
Из-за санкций из страны ушло несколько вендоров. Оставшиеся альтернативы хуже, и российские производители роботов вряд ли смогут быстро догнать мировых лидеров. Однако, не все так плохо, как может показаться.
Даже для существующих в России производств программистов-робототехников все равно не хватает, и это не говоря о других странах
Я знаю проекты по литейке в Алжире и Калифорнии, которые не получается запустить из-за нехватки специалистов по роботам. Даже если программист-робототехник не найдет себе применение в России, то за рубежом он точно будет востребован.
Так или иначе, за такими машинами будущее. Мой дедушка 20 лет возил по заводу ванны с расплавленным алюминием, но уже сейчас всю литейку переводят на роботов. Это логичный, даже неизбежный путь развития, который делает промышленные производства чище, безопаснее и эффективнее.
Комментарии (6)
osmanpasha
22.07.2022 07:17Какие перспективы у таких робо-сервисных компаний в России (да и вообще у индустрии в целом) с учетом ухода многих компаний, которые производят этих роботов, и прекращения поставок комплектующих и запчастей?
Sergeant101
22.07.2022 08:57В текущей политико-экономической ситуации перспектив никаких, ибо российский менеджмент вместо одного робота наймет десять таджиков, даже если это будет экономически невыгодно.
Sad but true (etc)
paab
22.07.2022 09:53+2Боюсь промышленная роботизация на нашем рынке не замедлилась, а подходит к концу, так и не успев начаться. Так я могу судить по предприятиям, на которых участвовал в запусках роботизированных линий или занимаюсь их сопровождением. Общение с коллегами в том числе и официальными представителями ABB, так же это подтверждает. Все инженеры в принудительных бессрочных отпусках, поставки остановлены, даже мелких расходников невозможно привезти. Оборудование, требующее обслуживания будет либо остановлено, либо изнасиловано окончательно. Некоторые начали изобретать очень длинные и дорогие схемы поставок. Может у KUKA дела лучше?
Ну и на счет зарплат у программистов роботов, вы немного лукавите. Не могу сказать, как дела у не самого сильного мидла в робототехнике, против молодых сеньоров разработчиков ПО, не отношу себя к какой-либо категории в данной профессии. Запускал и поддерживаю: сварку, линии точного литья под давлением, линии шлифовки и полировки изделий различной сложности, гальваника, конвейерная сборка, производство стекла, оптимизация процессов после других внедренцев. Работаю исключительно с робототехникой ABB. Исходя из вашей статьи, часто выполняю обязанности всех трех персонажей: программист-робототехник, программист ПЛК, смешное слово – роботист.
Вакансий на том же хедхантере невероятно мало. Зарплаты чаще ниже, особенно если это не официальный представитель производителя техники, а интегратор. Нюанс с постоянными и длительными командировками стоит учитывать, это не то же самое, что сидеть в уютном кресле за разработкой ПО.
У вас позитивная статья, но в полях пока все достаточно грустно и работы становится всё меньше. Хотел бы я ошибаться, но пока картина такова, что 50 голодных чернорабочих для нашей промышленности в нынешних условиях, гораздо выгоднее чем линия роботов и ситуация продолжает наращивать негативный фон.
Sergeant101
22.07.2022 11:04В одном не соглашусь, что 50 чернорабочих выгоднее.
Я как то "на пальцах" считал стоимость владения роботом и чернорабочими. По любым раскладам выходит что за пару тройку лет робот при достаточной загрузке окупается, ибо не спит, не ест, не курит, не пьет, не болеет, не ошибается и пашет круглые сутки.
TimID
22.07.2022 16:31Робототехника уже давно поделилась на несколько достаточно непересекающихся отрасли. Я уже не говорю о смежных направлениях вроде мехатроники. В вузах учат робототехнике очень давно.
И появляются новые программы, которые пытаются как раз уйти от "артефактной теоретической" подготовки в пользу современной подготовки. Лучше бы о них написали - содержание посравнивали.
Например, в "Сириусе" есть программа.
А уж "дроны" - так вообще со скоростью пожара захватывают вузы.
Karlson_rwa
Ржу в голос, извините. Тот же МИРЭА много лет выпускал инженеров по специальности «роботы и робототехнические системы» и «мехатроника». Да, куку завезли только году в 14, ЕМНИП, лаборатория ABB там появилась тоже примерно в те годы. Но это лишь манипуляторы. До этого кафедра ПУ всегда занималась подвижными самоходными роботами. Поверьте, я знаю о чем пишу :)
UPD: Мне тут еще коллеги подсказывают, что задолго до этого в СТАНКИНе обучали промышленным роботам.