image

Испортим интригу заголовка сразу? Речь пойдёт о промышленной руке робота «за не очень дорого», во много раз дешевле нового аналога. Почему чёрной? Всё просто, наше применение манипулятора одно из моря возможных и довольно редкое: робот таскает камеру и нужно максимально убрать отражения света от самой руки.

Зачем же так усложнять видеосъёмку? Ответ прост: робот даёт скорость, точность и многократную повторяемость траектории движения камеры, не говоря уже о сложных траекториях, для достижения которых живому оператору придётся стать гибридом бабочки и шланга от пылесоса. Чётко заданный цифрами путь камеры хорош ещё тем, что отснятый материал можно без особого труда использовать в 3D-сценах на компьютере. То есть, стирается граница между камерой реальной и виртуальной при создании видео с элементами компьютерной графики.

Готовые съёмочные решения робототехники напугали ценой (примерно $150 000 и дальше в космос без остановок), поэтому был выбран путь голодранцев, когда цена платится в меньшей степени денежными знаками и в большей — временем, пОтом, матом и седыми волосами.

Многомесячные тематические просмотры ютуба и сравнения спецификаций на официальных сайтах, длинные и зачастую пустопорожние переписки с продавцами китайских и не очень рук в итоге всё-таки вылились в покупку робота. Им стал вышедший на преждевременную пенсию ветеран европейского автопрома родом из нулевых годов, бывший сварочный 6-осевой манипулятор KUKA KR125/2 с установленными новыми китайскими моторами и контроллерами с полезной нагрузкой 90 кг.

Что же у нас в коробке? То есть, под стретч-плёнкой? Там у нас сам робот, сделанный из куска бронепоезда шкаф с платами и кабелями, плюс проводной пульт управления с тачскрином (teach pendant). Общая масса всего этого счастья примерно 1,3 тонны, включая дополнительное восьмиугольное стальное основание, разгружающее бетонный пол нашего… 4-го этажа







После шумного и пыльного монтажа к роботу была добавлена коробка для камеры из станочного профиля. Коробка выполняет роль крепления и чтоб проломанные дыры в стене получались квадратными некоторой защиты камеры при столкновениях.



Первые включения и пробные съёмки выявили сильный уровень вибраций. Изучение мануалов и настройка параметров в драйверах двигателей позволили убрать эти вибрации, но одна заметная проблема осталась.

Дело в том, что программа в teach pendant пишется построчно, текстовый файл с G-кодом (есть и свой язык в контроллере, но в нем не нашлось особо ничего, чего бы не было в G-коде). Проблема оказалась в том, что рука выполняет программу построчно. То есть, прочитала строку — сдвинулась — остановилась. Прочитала вторую и сдвинулась дальше. После исполнения каждой строки в программе происходит остановка. Настройками можно лишь указать ускорения и замедления, но нет возможности убрать сам факт этой остановки. Производитель моторов и контроллеров подтвердил, что так оно и есть. В итоге все мечты о плавном сложном многоосевом движении камеры ушли в небытие.



В дальнейшем проявились косяки математики контроллера в виде неверной интерполяции при движении руки. Рука — это 6 осей, 6 двигателей, контроллер производит интерполяцию не финальной траектории движения инструмента (в нашем случае камеры), а сглаживает движение каждого двигателя. На практике прямая линия остается прямой лишь при очень больших ускорениях, без плавных разгонов и плавных остановок.



Попытки связаться с рукой через компьютер особым успехом не увенчались. Для связи используется протокол Modbus RTU, но это не полноценное управление а всего лишь имитация нажатия кнопок на teach pendant. Это позволило подключить через компьютер обычный геймпад вместо тяжелого teach pendant, но тоже с кучей ограничений как например невозможности нажатия 2х клавиш одновременно для движения по диагонали.



Все эти приключения подвели к мысли, что контроллер для робота надо делать свой. И снова изучение мануалов, общение с производителем драйверов для двигателей. Драйверы имеют поддержку протокола Ethernet powerlink, что само по себе неплохо. Попытки собрать из исходников Powerlink пока в процессе, так как документации мало.

Подводя промежуточный итог, можно сказать, что даже текущий вариант руки работа выглядит вполне рабочим для самых разных съёмок.



Но хочется куда большего, просто надо настроить Powerlink и написать свой софт. На практике минимальный контроллер будет лишь программой, умеющей поворачивать оси с нужной скоростью в нужную сторону по заранее готовой таблице. Тут вполне пригодилась бы корыстная помощь светлого ума из зала, после чего рассказ можно будет смело продолжить.