Предыдущая часть о проекте доступна по ссылке. А сейчас поговорим про этапы работы над проектом. Работа над роботом-художником продолжалась около 1,5 лет. Время от возникновения идеи создания проекта до его реализации можно условно разделить на несколько этапов.
#0.
Выбор робота можно обозначить нулевым или подготовительным этапомпроекта. Параллельно с процессом покупки манипулятора шел очень важный процесс осознания того, как в принципе робот может рисовать красками, то есть перед тем, как учить его рисовать, необходимо было осознать, чем в данной конкретной ситуации он отличается от человека. Грубо говоря, нужно было представить, что манипулятор - это примерно то же самое, что человек лишенный всех чувств (зрение, осязание, слух, обоняние), кроме движения, и придумать как такое существо обучить. И как раз в этом-то и заключалась одна из самых больших сложностей.
“Когда человек видит кисточку, он понимает, как она искривлена. Манипулятор этого не понимает. Он не может провести кисточкой по бумаге так, чтобы получился определенный мазок. То есть нам необходима отдельная система наблюдения, что является не такой уж простой задачей,” - поделился Алексей Овчаров.
#1.
После вывода о том, что движения и мазки нашего робота-художника принципиально отличаются от человеческих, начался первый этап - подбор инвентаря для рисования, который датируется летом 2017 года.
Подбор происходил по следующим критериям:
- достаточная упругость кисти;
- постоянство тона мазка;
- средняя густота краски для предотвращения растекания по холсту.
Изначально были выбраны 4 типа краски - гуашь, акрил, акварель и масло. И 3 типа кистей - щетина, нейлон и белка. Акварель оказалась слишком жидкой и оставляла неравномерные подтеки, для масла необходим специальный растворитель и некоторое время для смены цвета, гуашь ложится неравномерно, а при использовании жесткой кисти оставляет полосы. Поэтому мы остановились на акриле, который равномерно ложится, сохраняя достаточно насыщенный тон, а более подходящими кисточками для выбранного типа краски являются нейлоновые кисти и кисти из щетины.
#2.
Второй этап работы начался в симуляторе, так как изначально KUKA не работала с той программной частью, с которой хотелось бы нашим инженерам, но было необходимо протестировать высокоуровневые алгоритмы, которые на тот момент уже готовились для будущего Gaka-Chu. Началом данного этапа можно считать июль 2017 года.
Почему Gaka-Chu?
Команде инженеров хотелось получать какое-то красивое изображение на выходе, но не такое масштабное, как например картина в ролике Росбанка, так как наш манипулятор достаточно небольшой и ему не очень удобно расписывать метровые холсты. Так появилась идея рисовать текст, а именно иероглифы. Пробовали рисовать разные: и китайские, и японские. Чуть позже остановились на японских. В связи с этим было решено назвать нашего робота на японский манер “Gaka” в переводе с японского означает “художник”, а приставка “Chu” появилась благодаря известному персонажу традиционных японских мультфильмов анимэ - Пикачу.
#3.
В августе 2017 года после работы в симуляции начался следующий третий этап проекта - работа над ПО для взаимодействия с роботом. Нам нужен был некий “мостик” между ПО самого робота и ROS-ом.
Основной сложностью данного этапа стала необходимость разобраться с ПО самого робота.
“Я убил робота. В прямом смысле. Необходимо было выполнить несколько задач с манипулятором, и пока я их делал, система выдала какую-то ошибку. Моей же ошибкой было решение переустановить систему полностью, в результате чего Gaka-Chu на время вышел из строя. А именно на 3 или 4 месяца”, - признался Алексей.
В то время, пока робот “отдыхал”, снова велась активная работа в симуляции. Первым успехом данного этапа стало изображение Джейка из мультфильма “Время приключений”:
Как видно на видео, картинка исполнена в мазковой технике “чистыми” цветами, то есть без градиента.
После возвращения нашего манипулятора к жизни сотрудником завода, возобновилась работа над ПО, так как готового ПО на тот момент не было. Данный этап разработки и тестирования ПО завершился к маю 2018 года.
#4.
К этому моменту в симуляции все работало, все высокоуровневые алгоритмы работали - нужно было сделать так, чтобы робот начал рисовать. Это стало основной задачей четвертого этапа в развитии проекта. Была готова траектория движения для робота, также было понятно, как он должен двигаться для получения желаемого изображения. Оставалось “дело за малым” - реализовать.
#5.
К июню-июлю 2018 года робот-художник нарисовал свой первый иероглиф в мазковой технике с использованием протокола RSI. При передаче данных по этому протоколу манипулятор выполнял траекторию с постукиванием, а порой и вовсе выключался. Причин для этого было достаточно много. Например, расстояние между точками должно было быть достаточно маленьким, меньше миллиметра, а время между пакетами 4мс.
Примерно в это же время разработчики ROS industrial обнаружили кардинально новый и очень интересный способ посылать траектории из ROS, применение которого в нашем проекте позволило сделать движения манипулятора более плавными. Протокол EKI позволил расширить функционал и упростил процесс передачи траектории манипулятору, поэтому после первых тестов на холсте мы перешли на него.
#6.
В сентябре 2018 года заключительным, шестым, этапом стала так называемая “экономизация” робота, то есть превращение его в автономного экономического агента согласно основной идее проекта AIRA:
Это значило бы, что наш робот-художник может осуществлять экономические взаимодействия (например, заключать сделки купли-продажи) как независимая экономическая единица.
“Это классно, потому что в современном мире для того, чтобы взаимодействовать с роботом и не задумываться об этом, неплохой концепцией будет передача независимых экономических возможностей роботу, представление его как отдельного экономического агента. Это позволит ему самостоятельно выполнять экономику. В теории робот с минимальными базовыми знаниями экономики, заданными алгоритмами, сможет действовать грамотнее, чем необразованный в экономическом плане человек”, - делится размышлениями Алексей.
В рамках этого этапа было разработано несколько dapp-ов (децентрализованных приложений) - приложение для самого робота, приложение для простого экономического взаимодействия (продажа картины) и приложение для аукциона. При этом приложение робота и оба приложения для продажи были связаны друг с другом. В разработке dapp активное участие принял один из сооснователей Airalab Александр Старостин. Таким образом, на декабрь 2018 года статус проекта можно обозначить как завершен.
В следующей заключительной части статьи о роботе-художнике Gaka-Chu мы с Алексеем расскажем о технической внутрянке проекта, об алгоритмах и работе с ROS industrial. Подписывайтесь на блог и следите за обновлениями в наших социальных сетях.