ARGoS
ARGoS — это свободно распространяемая, многоплатформенная среда моделирования (симулятор) для роевой робототехники, разработанная для проведения крупномасштабных экспериментов с группами автономных роботов. В отличие от большинства классических симуляторов, ARGoS специализируется на симуляции больших роёв (до нескольких тысяч агентов) при сохранении высокой точности физического моделирования и возможности работы в реальном времени.
История и происхождение
Разработка ARGoS была начата в 2008 году в рамках исследовательской деятельности Лаборатории интеллектуальных систем (LIS) Федеральной политехнической школы Лозанны (EPFL) под руководством профессора Марко Дориго. Основной мотивацией для создания нового симулятора стала необходимость преодоления ограничений существовавших на тот момент решений (например, Player/Stage или Gazebo), которые либо не обеспечивали достаточной производительности для роёв из сотен роботов, либо требовали чрезмерных вычислительных ресурсов.
Первая стабильная версия (ARGoS 1.x) была выпущена в 2012 году. Ключевой инновацией стала модульная архитектура, позволяющая распараллеливать вычисления. В 2015 году вышла версия 2.0, которая представила значительно улучшенную систему плагинов и поддержку новых физических движков. С 2017 года проект поддерживается и развивается сообществом исследователей, а также используется в образовательных курсах по роевой робототехнике в университетах Европы и США.
Архитектура и принципы работы
ARGoS построен на принципе модульности и разделения ответственности. В отличие от монолитных симуляторов, где все процессы (физика, графика, сенсоры, управление) выполняются в одном потоке, ARGoS использует архитектуру «клиент-сервер» с распределением нагрузки.
Основные компоненты
- Ядро симулятора (Core): Управляет временными шагами, циклом симуляции и взаимодействием между модулями. Ядро не содержит встроенной физики или графики — оно лишь координирует работу плагинов.
- Физические движки: ARGoS поддерживает несколько физических движков, которые подключаются как плагины:
- Dynamics2D — двухмерный движок с упрощённой физикой (трение, столкновения, инерция), оптимизированный для скорости.
- Dynamics3D — трёхмерный движок на основе библиотеки Bullet Physics, обеспечивающий более реалистичное моделирование, но с большими вычислительными затратами.
- Newton Dynamics — альтернативный трёхмерный движок для сложных сценариев.
- Графический движок (QT-OpenGL): Отвечает за визуализацию. Может быть отключён для увеличения производительности (режим «без головы» — headless).
- Система плагинов роботов: Каждый тип робота (например, e-puck, foot-bot, Khepera) реализуется как отдельный плагин, содержащий описание его геометрии, сенсоров (лазер, камера, дальномер) и актуаторов (колёса, манипуляторы).
- Контроллеры роботов: Пользовательские алгоритмы управления пишутся как отдельные модули (на C++, Lua или Python) и загружаются в симуляцию. Контроллеры взаимодействуют с виртуальными сенсорами и актуаторами через интерфейс API.
Процесс симуляции
Стандартный цикл симуляции в ARGoS выглядит следующим образом:
- Ядро синхронизирует время.
- Все физические движки одновременно вычисляют новые состояния объектов на основе законов механики.
- Сенсоры всех роботов обновляют свои показания (с учётом шума, заданного в конфигурации).
- Каждый контроллер получает данные от сенсоров и вычисляет управляющие сигналы для актуаторов.
- Актуаторы применяют эти сигналы, и цикл повторяется.
Благодаря тому, что физика, сенсоры и контроллеры могут выполняться в отдельных потоках (или даже на разных машинах через сеть), ARGoS достигает высокой производительности.
Классификация и виды симуляции
ARGoS поддерживает несколько режимов симуляции, которые выбираются в зависимости от целей эксперимента:
- Реальное время: Симуляция стремится соответствовать физическому времени (1 секунда симуляции ≈ 1 секунда реального времени). Используется для отладки и демонстраций.
- Ускоренное время: Симуляция выполняется максимально быстро, без привязки к реальному времени. Полезно для статистических прогонов (например, 1000 запусков одного сценария).
- Распределённая симуляция: Несколько экземпляров ARGoS могут быть запущены на разных компьютерах, обмениваясь данными через сеть. Это позволяет симулировать рои из десятков тысяч агентов.
Применение
ARGoS используется в трёх основных областях:
Исследования в роевой робототехнике
Большинство публикаций по коллективному поведению роботов (роение, сортировка, поиск цели, транспорт объектов) в период 2012–2023 годов используют ARGoS в качестве базового инструмента. Например, эксперименты по алгоритмам «роевого интеллекта» (Particle Swarm Optimization, Ant Colony Optimization) часто проводятся именно в этой среде.
Образование
ARGoS входит в учебные программы ряда университетов (EPFL, Университет Шеффилда, Токийский университет) как платформа для лабораторных работ по курсам «Мобильная робототехника» и «Искусственный интеллект». Студенты могут быстро прототипировать алгоритмы управления и визуализировать их работу.
Промышленное прототипирование
Некоторые компании (например, Amazon Robotics в контексте сортировочных центров) используют ARGoS для предварительного тестирования алгоритмов координации больших групп транспортных роботов (AGV) перед развёртыванием на реальном оборудовании.
Примеры использования
- Эксперимент с 500 роботами e-puck: В 2016 году группа исследователей из EPFL симулировала коллективное построение карты неизвестной среды с использованием 500 виртуальных роботов e-puck. Симуляция работала в 2,5 раза быстрее реального времени на стандартном настольном компьютере.
- Координация дронов: В 2019 году в Университете Линчёпинга (Швеция) ARGoS был адаптирован для симуляции роя из 50 квадрокоптеров с учётом аэродинамических эффектов (через плагин Dynamics3D).
- Соревнования RoboCup: ARGoS используется как тестовая среда для разработки стратегий в лиге «Роботы-спасатели» (RoboCup Rescue), где требуется координация десятков наземных и воздушных роботов.
Критика и ограничения
Несмотря на широкое распространение, ARGoS имеет ряд недостатков:
- Ограниченная поддержка сложной геометрии: Встроенные инструменты для создания сложных трёхмерных моделей (например, роботов с манипуляторами) менее развиты, чем в Gazebo или Unity.
- Сложность настройки распределённой симуляции: Для запуска на нескольких машинах требуется ручная настройка сетевых параметров, что отпугивает новичков.
- Отсутствие встроенного редактора сцен: Пользователь должен вручную редактировать XML-файлы конфигурации, что увеличивает порог входа.
- Слабая поддержка ROS: Хотя существуют мосты (bridges) для Robot Operating System (ROS), интеграция не является «родной» и требует дополнительных усилий.
- Устаревание документации: Часть документации не обновлялась с 2015 года, что затрудняет освоение новых версий.
Интересные факты
- Название ARGoS происходит от древнегреческого слова «ἀργός» (argós) — «быстрый», что отражает главную цель проекта: скорость симуляции.
- В 2014 году ARGoS был использован для симуляции самого большого на тот момент роя — 10 000 виртуальных роботов — на кластере из 16 компьютеров.
- Исходный код ARGoS написан на C++ и распространяется под лицензией MIT, что позволяет как академическое, так и коммерческое использование без ограничений.
Источники
- Pinciroli, C., Trianni, V., O’Grady, R., et al. «ARGoS: a modular, parallel, multi-engine simulator for multi-robot systems». Swarm Intelligence, 2012.
- Официальная документация проекта ARGoS (argos-sim.info).
- Материалы курса «Swarm Robotics» (EPFL, 2015–2023).
- Публикации по результатам экспериментов с использованием ARGoS в журналах IEEE Transactions on Robotics и Autonomous Robots.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →