Специалисты в области информационных технологий из Канады и Австралии создали скриптовый язык 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 найдет применение при создании новых роботизированных роев. Такие системы, копирующие действия насекомых вроде муравьев или термитов, предполагается использовать для задач, требующих большого охвата и точной координации, например, спасательных или поисковых работ.
Как развитие технологий позволило нащупать «топологическое решение» загадки шизофрении
Шизофрения — одна из самых загадочных и сложных болезней человека. Уже более ста лет ученые пытаются понять причины ее возникновения и найти ключ к терапии. Пока эти усилия не слишком успешны: до сих пор нет ни препаратов, которые могли ли бы ее по-настоящему лечить, ни даже твердого понимания того, какие молекулярные и клеточные механизмы ведут к ее развитию. О том, как ученые бьются с «загадкой шизофрении» мы уже неоднократно писали: сначала с точки зрения истории психиатрии, затем с позиции классической генетики (читателю, который действительно хочет вникнуть в суть проблемы, будет очень полезно сначала прочитать хотя бы последний текст). На этот раз наш рассказ будет посвящен новым молекулярно-биологическим методам исследования, которые появились в распоряжении ученых буквально в последние несколько лет. Несмотря на сырость методик и предварительность результатов, уже сейчас с их помощью получены важнейшие данные, впервые раскрывающие механизм шизофрении на молекулярном уровне.