Найти тему

Зимняя школа Робономики. Знакомство с AIRA

Не так давно визионер команды Airalab Сергей Лоншаков в своем блоге анонсировал первую Зимнюю онлайн-школу Робономики. Участникам будет предложено пройти 15-ти дневную обучающую программу, по окончании которой каждый построит свою собственную сенсорную сеть (с подробностями можно ознакомиться тут). В своем блоге я опубликую серию статей-шпаргалок для будущих участников. У вас есть уникальная возможность ознакомиться с программой заранее, а также улучшить ее с помощью своих комментариев и замечаний - писать можно сюда.

Вводная часть

*чтобы перейти к сути - мотайте вниз.

Команда Airalab занимается исследованием и разработкой технологий с целью объединить Умные города и Индустрию 4.0 с технологией блокчейн. Сеть Робономики позволит объединить кибер-физические системы (КФС) с помощью рыночного механизма, что в свою очередь предоставит возможность реализовать планетарную систему массового производства товаров и услуг, напрямую интегрированную в экономику общества. AIRA (Autonomous Intelligent Robot Agent) является клиентом сети Робономики, который помогает инженерам проектировать умные города и автономные фабрики, используя роботов как сервисы в Индустрии 4.0. В данной статье мы познакомимся с AIRA c практической точки зрения, а именно попробуем установить образ и потестить базовые функции.

Суть

Итак, начнём. Образ AIRA разворачивается на виртуальной машине (далее – ВМ), поэтому, если у вас еще не установлена виртуалка, то скачиваем и устанавливаем. Затем скачиваем последнюю версию образа AIRA с GitHub.

Чтобы запустить клиент, нужно импортировать файл формата .ova в VirtualBox:

-2
Как видно на скриншоте, для импорта можно использовать комбинацию 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. Работа сети строится на обмене сообщениями с сетью, поэтому для понимания процесса полезно получить сообщение, увидеть, как передается информация, какие есть поля в сообщении. Подробнее о значении полей в одной из следующих публикаций.
-3

Базовое использование

Когда вы запустите клиента, несколько нод уже будут работать*. Чтобы список нод коммуникационного стека Робономики, используйте команду rosnode list:

-4
*Это значит, что для сети Робономики уже есть необходимые пользователю интерфейсы.
  • /liability/executor – получает файл rosbag из ipfs и воспроизводит его.
  • /liability/infochan/channel – отвечает за спрос, предложение и результат. Подхватывает сообщения из канала и отправляет их обратно в канал подписанными.
  • /liability/infochan/signer – предлагает услуги по подписанию сообщений спроса, предложения и результата.

Чтобы увидеть список топиков стека Робономики, используйте команду rostopic list:

-5

Наиболее важные топики:

  • /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 и нажмите Заказать:

-6

Вернитесь обратно в консоль и увидите результат:

-7

С помощью данного урока мы познакомились с AIRA и ее базовыми функциями, что будет полезно для выполнения следующих заданий Зимней школы и построения сенсорной сети. Подписывайтесь на блог, присоединяйтесь к чату будущих студентов Робономики - давайте учиться вместе :)