Специалисты в области информационных технологий из Канады и Австралии создали скриптовый язык Buzz, предназначенный для программирования «роящихся» роботов. Авторы опубликовали синтаксис нового языка, а также ряд демонстрационных программ для решения наиболее простых задач, которые ставятся перед роботизированными роями. Препринт работы выложен на arXiv.org, а дистрибутив и примеры программ доступны на странице проекта на github.
Buzz представляет собой язык с динамической типизацией, чей синтаксис, по словам авторов, должен напоминать Python или Lua. Помимо стандартных типов данных, таких как nil, integer, floating-point, string и других, новый язык поддерживает типы swarm и virtual-stigmergy. Первый применяется для организации роботов в рой, а второй — для создания централизованной «базы данных», позволяющей роботам глобально обмениваться информацией.
Для запуска скрипта, написанного на Buzz, на каждом роботе запускается виртуальная машина BVM (Buzz virtual machine). Она ведет отсчет и синхронизацию времени и на каждом шаге выполняет алгоритм из пяти этапов: 1) сбор данных с сенсоров, 2) обработка полученных сообщений, 3) выполнение основного скрипта, 4) отправка инструкций, 5) включение актуаторов (движение и взаимодействие с окружающей средой).
Создатели нового языка отталкивались от нескольких ключевых особенностей, которыми должен обладать язык программирования для роящихся роботов. Например, он должен позволять использование нескольких видов абстракции, как «top-down», то есть от роя к индивидуальному роботу, так и «bottom-up» — от индивидуальных задач к поведению роя. Кроме того, язык должен позволять легко масштабировать систему, поддерживать создание «гетерогенных роев», состоящих из разных типов роботов, а также допускать возможности расширения функционала и простого подключения сторонних пакетов.
В качестве примеров авторы решали задачи по выстраиванию роботов в упорядоченную формацию и разделению роя в пространстве на две группы. В обоих случаях решение было представлено в виде компьютерной модели роя из программируемых «виртуальных роботов».
Разработчики надеются, что Buzz найдет применение при создании новых роботизированных роев. Такие системы, копирующие действия насекомых вроде муравьев или термитов, предполагается использовать для задач, требующих большого охвата и точной координации, например, спасательных или поисковых работ.