Робономика-2018 своими руками
- Что такое Робономика
- Что делали
- Поднимаем Mesh сеть: B.A.T.M.A.N. + CJDNS
- Строим Индустрию 4.0 своими руками
- Результат
Что такое Робономика
Робономика - это ежегодный шабаш слёт блокчейн разработчиков на берегу Волги, проводимый командой AIRA Lab в Тольятти.
В этом году она запомнилась мне не только прекрасными сказками Гайдука и чудесной музыкой Эмпатии в свете полной луны.
Для меня это был недельный хакатон, пожалуй, лучший из всех, где мне доводилось участвовать.
Что делали
В рамках Робономики-2018 ребята из AIRA Lab провели интереснейший интенсив для разработчиков, на котором покрыли такие темы как:
- Разворачивание mesh сетей
- Обмен файлами через IPFS
- Обмен сообщениями через IPFS Pub Sub
- Введение в ROS и фреймворк Робономики от AIRA Lab
- Кейсы: построение реальных робономических систем поверх изученного стека:
-
Мобильная робототехника: Дрон, выполняющий полётное задание по заключенному с заказчиком контракту, с оплатой в XRT токенах.
-
Индустрия 4.0: 3D принтер, выполняющий печать заданной модели по заключенному с заказчиком контракту, с оплатой в XRT токенах.
-
Сенсорная сеть города: Набор датчиков взвешенных частиц, производящих измерения по заключенному с заказчиком контракту, с оплатой в XRT токенах.
-
Все три кейса ужасно интересны. Ваш покорный слуга выбрал кейс Индустрия 4.0 ввиду имеющегося опыта работы с 3D принтерами. Поэтому его я опишу подробнее ниже.
Поднимаем Mesh сеть: B.A.T.M.A.N. + CJDNS
Какая же децентрализованная система без одноранговой p2p сети! Поэтому первым делом поднимаем такую сеть, затем уже разворачиваем IPFS и Ethereum ноду поверх неё.
- B.A.T.M.A.N строит виртуальную Ethernet сеть
- CJDNS строит маршрутизацию в этой сети
- IPFS и Geth работают уже поверх них
Для экспериментов разворачивалась приватная сеть Ethereum. Но всё проделанное с тем же успехом можно повторить и в основной сети Ethereum.
Пошаговые руководства: тут и тут
Строим Индустрию 4.0 своими руками
Задача
Нашей задачей было построить систему, в которой любой желающий может вступить в экономическое взаимодействие с роботом. А именно, выбрать модель и распечатать её на 3D принтере ZENIT, заключив с ним контракт и оплатив его через простой и понятный веб-интерфейс.
Архитектура
Основные компоненты:
- DApp с UI, позволяющий выбрать модель для печати и отправить подписанную транзакцию со спросом на услугу “маяку”
-
Robomomics Communication Stack: набор ROS пакетов, включающий в себя
- Lightghouse - “маяк”, компонента, сводящая предложение услуги и спрос на неё, подобно ордерам Ask и Bid на бирже
- Liability - компонента, формирующая “контракт-обязательство” между роботом и заказчиком услуги
- Сеть Ethereum с развернутыми смарт-контрактами “маяка” и “обязательства”
- IPFS PubSub как распределенный канал коммуникации компонент системы
- 3D принтер с Octoprint интерфейсом, и скрипты pub_bid.py и print.py, служащие адаптером принтера к ROS
Процесс
Диаграмма последовательности показывает основные узлы процесса, без связующих компонент, таких как IPFS PubSub топики и скрипты-адаптеры, выполняющие 2 функции:
- автоматизация размещения принтером бида (будем считать, что бид размещает экономический агент, “робот-принтер”, самостоятельно)
- отправление на принтер задания (опять же, можно считать это частью логики принтера)
Пошаговое руководство
Для желающих повторить наши эксперименты, мы подготовили пошаговые гайды:
- DApp How-To (спасибо Толе Бельчикову!),
- Остальной How-To
Результат
Кто бы мог подумать, но футуристические, будоражущие сознание идеи, описанные в бумаге AIRA, воплощаются в реальность прямо на наших глазах! Честно говоря, слушая ребят из AIRA год назад, я посчитал их немного сумасшедшими ;). И вот сегодня я и другие разработчики уже используем их фреймворк для построения реальных систем экономики роботов! Спасибо ребятам за полученное удовольствие и предоставленную возможность соприкоснуться с технологическим будущим.