Не так давно визионер команды Airalab Сергей Лоншаков в своем блоге анонсировал первую Зимнюю онлайн-школу Робономики. Участникам будет предложено пройти 15-ти дневную обучающую программу, по окончании которой каждый построит свою собственную сенсорную сеть (с подробностями можно ознакомиться тут). В своем блоге я опубликую серию статей-шпаргалок для будущих участников. У вас есть уникальная возможность ознакомиться с программой заранее, а также улучшить ее с помощью своих комментариев и замечаний - писать можно сюда.
Вводная часть
*чтобы перейти к сути - мотайте вниз.
Команда Airalab занимается исследованием и разработкой технологий с целью объединить Умные города и Индустрию 4.0 с технологией блокчейн. Сеть Робономики позволит объединить кибер-физические системы (КФС) с помощью рыночного механизма, что в свою очередь предоставит возможность реализовать планетарную систему массового производства товаров и услуг, напрямую интегрированную в экономику общества. AIRA (Autonomous Intelligent Robot Agent) является клиентом сети Робономики, который помогает инженерам проектировать умные города и автономные фабрики, используя роботов как сервисы в Индустрии 4.0. В данной статье мы познакомимся с AIRA c практической точки зрения, а именно попробуем установить образ и потестить базовые функции.
Суть
Итак, начнём. Образ AIRA разворачивается на виртуальной машине (далее – ВМ), поэтому, если у вас еще не установлена виртуалка, то скачиваем и устанавливаем. Затем скачиваем последнюю версию образа AIRA с GitHub.
Чтобы запустить клиент, нужно импортировать файл формата .ova в VirtualBox:
Как видно на скриншоте, для импорта можно использовать комбинацию Ctrl+I.
После завершения импорта запускаем ВМ. По завершении синхронизации ноды Ethereum клиент AIRA готов к работе. AIRA создает для вас новый адрес, который находится здесь:
/var/lib/parity/foundation-env.sh
.json файл с аккаунтов можно найти тут:
/var/lib/parity/.local/share/io.parity.ethereum/keys/
Зачем нужен адрес? Данный адрес используется для подписи всех сообщений, а также является уникальным идентификатором агента сети.
Для начала давайте попробуем послушать канал:
rostopic echo /liability/infochan/incoming/ask
Мы используем широковещательный канал в ipfs для обмена сообщениями, потому что это быстро, удобно и бесплатно. Что значит послушать канал? Послушать канал, значит увидеть сообщение, отправленное в него, и таким образом понять, что канал «жив». Послушать можно только те сообщения, которые отправлены в канал после запуска команды rostopic echo. Работа сети строится на обмене сообщениями с сетью, поэтому для понимания процесса полезно получить сообщение, увидеть, как передается информация, какие есть поля в сообщении. Подробнее о значении полей в одной из следующих публикаций.
Базовое использование
Когда вы запустите клиента, несколько нод уже будут работать*. Чтобы список нод коммуникационного стека Робономики, используйте команду rosnode list:
*Это значит, что для сети Робономики уже есть необходимые пользователю интерфейсы.
- /liability/executor – получает файл rosbag из ipfs и воспроизводит его.
- /liability/infochan/channel – отвечает за спрос, предложение и результат. Подхватывает сообщения из канала и отправляет их обратно в канал подписанными.
- /liability/infochan/signer – предлагает услуги по подписанию сообщений спроса, предложения и результата.
Чтобы увидеть список топиков стека Робономики, используйте команду rostopic list:
Наиболее важные топики:
- /liability/incoming – данный топик публикует адрес контракта в сети Ethereum, когда создается новое обязательство.
- /liability/result – данный топик используется для публикации результатов. Когда КФС завершает свою работу, она должна опубликовать лог-файл в ipfs. But don’t publish a result directly to this topic! Use a service instead.
- /liability/infochan/incoming/* - КФС получет информациию о спросе, предложении и результате из соответствующего топика.
- /liability/infochan/signing/* - КФС отправляет сообщения, содержащие спрос, предложение и результат в соответствующий топик.
Теперь, когда мы знаем базовые функции AIRA, давайте поздороваемся с клиентом сети.
Нужно запустить уже установленный пакет hello_aira с помощью команды rosrun hello_aira hello_aira:
Мы запустили нашего агента, он ждет сообщений, содержащих спрос. Перейдите в dapp и нажмите Заказать:
Вернитесь обратно в консоль и увидите результат:
С помощью данного урока мы познакомились с AIRA и ее базовыми функциями, что будет полезно для выполнения следующих заданий Зимней школы и построения сенсорной сети. Подписывайтесь на блог, присоединяйтесь к чату будущих студентов Робономики - давайте учиться вместе :)