Coordination in Multi-Agent RoboCup Teams Харламов Михаил, 544 гр. RoboCup • Simulation league – игра ведется компьютерными программами. Команда – 11 игроков, каждый игрок – отдельная программа. Игра идет на Soccer Server’е. Такая среда удобна для отработки коллективных стратегий и обучения системы. • В этом случае речь идет о MAS (Multi Agent Systems) • Middle-size league – игра идет на поле 5 на 9 метров, робот должен умещаться в цилиндр 50 см. в диаметре и 80 см. в высоту. В команде 1 голкипер и 3 игрока. В этих условиях возникает множество дополнительных задач связанных с наличием физических сенсоров, шумов и т.д. • В этом случае говорим о MRS (Multi Robot Systems) Рассматриваемые вопросы • Координированное поведение в MAS • Архитектуры MAS • Коммуникации в MRS • Координация в MRS Координированное поведение в MAS • Есть непредсказуемая среда и задачи, которые достаточно сложно достижимы • MAS должна быть скоординирована в терминах разделения задач, разделения ресурсов, формирования команд и т.д. • Действия в MAS иерархичны, т.е. есть lowlevel действия, которые являются производными от cooperative действий Координированное поведение в MAS • Role-based decision mechanism • Cooperative behaviour through implicit communication • A layered approach to learning client behaviours • Environment modelling • Emergent cooperative behaviours • Behaviour-based position selection Position Selection Behaviors for Coordination • Во время игры нужно выбирать позиции, в которые будут двигаться роботы • Position Selection Behavior (PSB) • Среда (RoboCup simulation League): есть сервер и клиентские программы (игроки), сервер симулирует все движения игроков и мяча. • 1 раз в 100мс игрок может передать одну команду серверу (если не передает очередную команду, то стоит на месте, если передает больше одной – выполняется случайная из переданных) • 1 раз в 150мс игрок получает данные с сенсоров Position Selection Behaviors for Coordination • Essex Wizards Team Position Selection Behaviors for Coordination • Low-level Basic Behaviors • Сервер понимает только команды “Kick” “Turn” “Dash” • На самом деле используя память набор действий расширяется • Advanced Kick – двигать мяч в несколько этапов до той позиции из которой собираемся делать удар • Move – комбинация Turns и Dashes • Dribble – ведение мяча • Look – смотреть за мячом/искать мяч, если он вне зоны видимости Position Selection Behaviors for Coordination • High-level Basic Behaviors • Intercept – предсказать положение мяча через определенное время и двигаться в этом направлении • Clear ball – вывести мяч со своей половины поля • Send ball – вывести мяч на позицию для поражения ворот соперника • Pass ball – анализирует положения игроков команды и считает кому из них лучше всего дать пас, а также вероятность успеха паса • Position Selection – определить куда лучше всего двигаться в данный момент Position Selection Behaviors for Coordination • Position Selection Behaviors • Нужно учитывать следующие факторы: позиции игроков, позицию мяча, возможности игроков Position Selection Behaviors for Coordination • Fixed & Fixed Relative PSB – фиксированная точка на поле или точка фиксированная относительно положения мяча • Tracker PSB – защита, выбирается точка между оппонентом и своими воротами • Marker PSB – позиция для перехвата паса оппонента или его удара по воротам • Ball Tracker PSB – позиция на линии между мячом и воротами • Offside Trap PSB • General Purpose PSB – выбираем позицию так чтобы максимизировать расстояние между позицией и другими игроками на поле и минимизировать расстояние между позицией и воротами соперника и позицией и мячом. При этом есть еще 4 ограничения: оставаться рядом с home location, оставаться в границах поля, избегать оффсайд-позиции, находиться в позиции, в которой возможно получение паса Position Selection Behaviors for Coordination • Реализация • Есть библиотека PSB • Игрок активирует конкретную PSB в зависимости от текущей ситуации • Согласованность в действиях нескольких игроков достигается анализом положения игроков на поле и тем, что каждый игрок использует свой identical code, это гарантирует, что все игроки не будут играть одну и ту же роль Position Selection Behaviors for Coordination • External configuration • Вместо того чтобы передавать в PSB множество констант, большая часть конфигурации PSB прописана в конфигурационном файле и подгружается в начале игры • Это позволяет отделить tactical-details от implementation-details Position Selection Behaviors for Coordination • Failsafe operation • Конкретная PSB не всегда может выдать позицию (мешает положение мяча или игроков на поле) • В этом случае она выдает home position • Или же может быть реализован стэк PSB, так что если первая PSB не может выдать ответ, управление переходит к следующей Архитектуры MAS • Простейший вариант: каждый агент действует if stimulus then reaction • Belief-Desire-Intention Architecture (BDI) обычно 2 основных процесса: поставить перед собой задачи, решить, как эти задачи будут выполнены. • Гибридные архитектуры • Кроме того задача может быть разбита на несколько подзадач, что влечет за собой появление иерархических слоев архитектуры Архитектуры MAS • Control flow в слоистых архитектурах • Horizontally layered Каждый слой ведет себя как агент (имеет доступ к входным данным и может совершать действия) • Vertically layered Есть слои занимающиеся обработкой входных данных, промежуточные и совершающие действия Holonic architecture for coordination and control • Holonic Manufacturing System HMS based on the concept of holon defined as autonomous and cooperative building block of a manufacturing system for transforming, transporting, storing and/or validating • information and physical objects In the HMS framework soccer can be viewed as a multilevel real-time system, requiring a multi-agent approach and exhibiting an enterprise-like structure suitable for applying a manufacturing paradigm Holonic architecture for coordination and control • Holarchy – иерархия саморегулирующихся управляющих блоков (holons) которые действуют как 1. Автономные целые, управляющие своими частями 2. Зависимые части, подчиненные блокам высшего уровня 3. Блоки, действующие в координации с их локальной средой • Holarchy позволяет создавать очень сложные системы, которые эффективно используют ресурсы и очень устойчивы к возмущениям среды, а также способны адаптироваться к изменяющейся среде Holonic architecture for coordination and control • Одно из самых важный свойств holarchy – это возможность модифицировать себя, т.е. создавать временные иерархии • Поэтому holarchy позволяет соблюдать баланс между моделями принятия решений hierarchical control (fixed, static, preestablished) и heterarchical control (autonomous, decentralized, flexible) Holonic architecture for coordination and control • PROSA – Product-Resource-Order-Staff-Architecture • The resource holon contains a physical part namely a production resource of the manufacturing system and an information processing part that controls the resource • The product holon holds the process and production knowledge to assure the correct product manufacturing with adequate quality • The order holon represents a task in the manufacturing system It is responsible for performing the assigned work correctly and on time • The staff holon is implemented to assist the other three holons in performing their work Holonic architecture for coordination and control Holonic architecture for coordination and control • Holarchy level – содержит механизмы для разработки общих планов с другими holons/agents • Deliberative layer – нужен для создания локальных планов и постановки локальных целей • Reactive layer – содержит факты отражающие модель мира holon/agent Holonic architecture for coordination and control • Holarchy level состоит из трех подуровней: 1. Integration - вертикальное взаимодействие (игрок-команда, команда-тренер, …) 2. Cooperation – горизонтальное взаимодействие 3. Monitoring – нужен для модифицирования holarchy Коммуникации в MRS • The problem of action recognition Каждый робот в MRS должен хотя бы в общих чертах понимать какие задачи решают другие роботы в системе • 2 типа MRS систем • Implicit communication Нет прямого общения, выводы делаются на основе информации с сенсоров • Explicit communication Есть обмен сообщениями между агентами ETHNOS IV • Expert Tribe in a Hybrid Network Operating System • ETHNOS IV – распределенная операционная система реального времени, поддерживающая различные представления, коммуникации и требования исполнения • Строится на ядре Posix compliant Linux RT kernel • Включает в себя специальный протокол для коммуникаций с учетом шумов • Объектно-ориентированный API • Набор дополнительных средств для разработки (robot simulator, etc) ETHNOS IV • Expert – центральное понятие в ETHNOS IV • Expert - a concurrent agent responsible for a specific deliberative or reactive behaviour • Эксперты могут быть организованы в группы, однако эти группы не иерархичны Inter-Expert and Inter-Robot Communication • EIEP Expert Information Exchange Protocol • The EIEP is essentially an efficient implementation of a network distributed blackboard based on a publish/subscribe protocol • Эксперт может подписаться на получение сообщений определенного типа. Когда некий другой эксперт передает сообщение данного типа, подписавшийся его получает. При этом получивший сообщение не знает о том кто его отправил и кто еще его получил Inter-Expert and Inter-Robot Communication • ETHNOS также поддерживает механизм коммуникаций между роботами • При такой коммуникации все происходит почти также, только полезно знать кто именно передает сообщение, а также различать внутренние (внутри одного робота) и внешние сообщения, чтобы не создавать лишний трафик • Кроме того можно создавать communication clubs к которым могут присоединяться игроки. Например communication club из робота, ведущего мяч и помогающего ему Inter-Expert and Inter-Robot Communication • Использование такого протокола позволяет менять конфигурацию команды, явно не уведомляя всех роботов об изменениях • Так, в командах, состоящих из разных роботов можно выбирать состав команды для каждого матча в зависимости от противника. Поскольку все роботы будут передавать согласованные типы сообщений. Inter-Expert and Inter-Robot Communication • Поскольку обычно коммуникации между роботами происходят посредством беспроводных сетей, то возникают трудности с использованием стандартных протоколов – TCP/IP, UDP • TCP/IP крайне неэффективен в таких условиях • UDP не гарантирует доставки сообщения Inter-Expert and Inter-Robot Communication • Поэтому был разработан специальный протокол EEUDP Ethnos Extended UDP • У каждого сообщения есть приоритет • Сообщения с низшим приоритетом идут как UDP, т.е. без гарантии их доставки • Сообщения с высшим идут как TCP/IP, однако не гарантируется сохранения правильного порядка сообщений • Сообщения со средними приоритетами повторяются каждый n мс. пока не придет подтверждение их получения Координация в MRS • Используем несколько роботов, чтобы быстрее и более эффективно выполнить поставленную задачу. • При этом необходимо координировать действия роботов, разбить задачу на подзадачи и распределить эти подзадачи • Координация сильно зависит от среды (статическая/динамическая, позволяет передавать сообщения/не позволяет и т.д.) Distributed Coordination in Heterogeneous Robotic Teams • Предположения: • Communication-based coordination Т.е. есть возможность коммуникации между роботами • Autonomy in coordination Т.е. роботы способны выполнять свои задачи (возможно менее эффективно) даже в случае отсутствия коммуникаций • Heterogeneity in the multi agent system Т.е. игроки гетерогенны как с точки зрения software, так и с точки зрения hardware Distributed Coordination in Heterogeneous Robotic Teams • Кроме того координация поддерживает роли (атакующий, защитник и т.д.) и стратегии (нападение, защита) • Стратегия выбирается из вне тренером • Роли же могут динамически изменяться во время игры в зависимости от положения игроков на поле Distributed Coordination in Heterogeneous Robotic Teams • Некоторые наблюдения: • Если более чем один робот из одной команды пытается выполнить одно действие (бежать к мячу) они скорее всего помешают друг другу, ухудшая эффективность команды • Для победы необходимо контролировать разные части поля • Например не все роботы должны атаковать, некоторые должны оставаться в защите, иначе будет пропущено множество голов Distributed Coordination in Heterogeneous Robotic Teams • Исходя из этих наблюдений, базовая formation команды требует чтобы один робот бежал к мячу, второй поддерживал его, а третий находился в защите • Однако могут приниматься и другие формации в зависимости от стратегии и необходимости обрабатывать специальные ситуации (например, некорректная работа голкипера) • Каждый робот обрабатывает coordination messages и выбирает формацию и свою роль в ней Distributed Coordination in Heterogeneous Robotic Teams • Шаг 1 Formation selection • Роботы знают некоторый набор предопределенных формаций и используют правила для выбора формации на основе состояния среды • Если возникают разногласия роботов о формации, выбирается формация с максимальным количеством голосов Distributed Coordination in Heterogeneous Robotic Teams • Шаг 2 Role assignment • Пусть есть n {R1,…,Rn} роботов и m {r1,…,rm} ролей (в нашем случае считаем, что m>n) • Роли отсортированы по значимости, т.е. назначить роль r1 в текущей формации важнее чем r2 • Fj (i) – utility function считаемая роботом Ri для роли rj • A(i) = j означает, что i-му роботу назначена j-я роль Distributed Coordination in Heterogeneous Robotic Teams • Каждый робот Rp делает следующее: • Считает и рассылает всем Fj(p) для каждой роли rj • Получает аналогичную информацию от всех остальных роботов • L = empty (Очищаем лист с ролями роботов) • Для каждой rj – h = робот Ri такой, что Ri не в L и Fj(i) максимальна – Если h = p тогда A(p) = j (нашли свою роль) – Добавить h в L Distributed Coordination in Heterogeneous Robotic Teams • Для того чтобы избежать частых переключений ролей у робота, который в данный момент выполняет функцию rj Fj(i) будет больше • Если робот понимает, что не может эффективно выполнять свою роль (его заблокировали, перед ним препятствие), его utility function’s должны сразу резко уменьшиться • Если коммуникации надежные то все роботы гарантированно будут выбирать согласованные роли. Если же коммуникации ненадежны, то возможно присвоение одной роли нескольким игрокам, однако, если считать, что сбои длятся всего доли секунды, то это не является проблемой