Skip to content

Модуль 10 · Конкретні задачі роїв

Прикладні постановки повністю: покриття території й пошук, обхід перешкод, керований поділ рою, планування місії. Для кожної — які дані потрібні, як виглядає винагорода й якими метриками вимірюють результат.

Місія покриття: теплові карти в три моменти й крива покриття

Місія покриття: теплові карти в три моменти й крива покриття

Зміст лекції

ЧастинаПро що
1. Що рій уже вмієісторія задач, проєкти-віхи, сім прикладних доменів
2. Критерії доцільностіколи задача справді вимагає рою
3. Обхід перешкод і поділ роюпотенціальні поля, α–β–γ агенти, split/rejoin і squeezing
4. Вимірювання цілісності роюкомпоненти зв'язності, λ2, час до злиття
5. Пошук об'єкта і розподіл цілейдві прикладні місії з числами
6. Місія покриття, метрики й поломкипостановка, сім метрик, як ловлять збої

Модуль 08 дав апарат навчання. Тут він застосовується до постановок, які замовник місії формулює своїми словами.

Результати навчання

Після лекції ви зможете:

  • назвати чотири критерії, за якими вирішують, чи потрібен рій у конкретній задачі;
  • побудувати керування потенціальними полями й показати на числах, де воно ламається;
  • пояснити схему α–β–γ агентів і чому поділ рою не потребує окремого предиката в коді;
  • обчислити кількість компонент зв'язності та відносну зв'язність рою й відрізнити керований поділ від фрагментації;
  • спроєктувати вектор спостереження й винагороду для задачі покриття;
  • назвати сім метрик місії покриття з числовими порогами;
  • за логами розпізнати шість типових поломок роєвої політики.

Частина 1 · Що рій уже вміє

Поле накопичило впізнаваний набір задач, на яких ставили експерименти від 1993 року.

ПеріодЗадачі
Ранністигмергія, object retrieval і foraging, stick pulling, clustering, сортування об'єктів
Серединаагрегація, самозбирання, колективне транспортування, покриття площі
Пізнішіshape formation, флокінг, розподіл задач, колективне прийняття рішень, колективне сприйняття, розподіл ролей

Проєкти-віхи: Swarm-bots (2001–2005, до 20 роботів, самозбирання), Swarmanoid (2006–2010, три типи роботів), Kilobot (тисяча роботів, shape formation). Поза суходолом — надводні, підводні та літаючі рої; для останніх типова платформа Crazyflie.

Сім прикладних доменів, які найімовірніше вестимуть галузь: точне землеробство, інспекція інфраструктури, оборона, космічні місії, розваги, точна медицина, логістика.

Частина 2 · Коли задача справді вимагає рою

Перш ніж проєктувати рій, задачу проганяють через ті самі чотири критерії, що й у Модулі 01. Якщо хоч один не виконано, роєве рішення дорожче за альтернативу.

#КритерійЩо робити, якщо «ні»
1Задачу не можна ефективно розв'язати одним апаратомбудувати однороботне рішення
2Централізована координація неможлива або недоцільнарозглянути централізацію або розподілене керування з прогнозною моделлю
3Задача не має наперед заданого розбиття на підзадачізастосувати класичний розподіл між спеціалізованими агентами
4Очікується надлінійне зростання продуктивності від кількостівідмовитися від рою: накладні витрати на координацію з'їдять виграш

Micro–macro problem із Модуля 01 нікуди не зникає: бажану поведінку формулюють на рівні групи, а програмувати можна лише окремого апарата. Наявні методи проєктування — аналітичні моделі, шаблони, автоматичний синтез, еволюційна оптимізація — розв'язують лише відносно прості випадки.

Рівні автономії та режими керування

Перш ніж говорити про алгоритми, треба домовитися, скільки саме автономії передано апарату. Проміжні режими на практиці трапляються частіше за повну автономію.

РежимХто задає траєкторіюЩо робить апарат самТипове застосування
Ручнийоператор, безперервностабілізація кутівнавчання, аварійне перехоплення
Напівавтономний за точкамиоператор задає точки маршрутуполіт між точками, утримання висотиаерозйомка, інспекція
Напівавтономний із супервізієюоператор задає ціль місіїпланування маршруту, обхід перешкодпошук, доставка
Автономнийніхто, ціль задана напередусе, включно з розподілом задач у роїроєві місії цього курсу

Сім аспектів автономної навігації, які проєктують окремо: сприйняття, локалізація, побудова карти, планування шляху, обхід перешкод, керування рухом, прийняття рішень на рівні місії. Роєвий рівень додає восьмий — координацію з сусідами.

Сім прикладних доменів

Галузі, у яких застосування роїв виглядає найближчим, і що саме в них потрібно від рою.

ДоменЗадача роюКритична вимога
Точне землеробствообстеження поля, точкове внесенняпокриття площі, повернення на зарядку
Інспекція інфраструктуриобліт ЛЕП, мостів, трубопроводівточність позиціювання, робота біля конструкцій
Оборонарозвідка, прикриття периметрастійкість до втрати апаратів і завад
Космічні місіїрої пікосупутниківмінімалістичні контролери, радіаційна стійкість
Розвагисвітлові шоуточність форми; централізовано, тому не рій за означенням
Точна медицинамікро- й нанороботиінша фізика на малих масштабах
Логістикадоставка, складські операціїрозподіл задач, енергетика

Частина 3 · Ціль тягне, перешкода відштовхує

Найдешевший робочий закон обходу перешкод: ціль створює притягальне поле, кожна перешкода — відштовхувальне, апарат рухається за сумою.

Карта векторів потенціального поля і траєкторія навколо двох перешкод

Карта векторів потенціального поля і траєкторія навколо двох перешкод

Вага відштовхування спадає з відстанню й дорівнює нулю далі за радіус впливу d0. Це робить закон суто локальним: апарату не потрібна карта, лише вимірювання відстані до найближчих перешкод.

Числовий приклад: як складаються вектори

Апарат летить із точки (4;0) до цілі (10;0). На шляху одна перешкода з центром (5;1) і радіусом 0,5 м. Ваги: притягання kg=1, відштовхування k=0,5.

Позиція апаратаВідстань до перешкодиВага відштовхуванняРезультуючий векторКут відхилення
(4,0; 0,00)1,410,60(0,58; 0,42)−36°
(4,8; 0,60)1,610,41(0,94; 0,29)−17°
(6,5; 0,80)2,340,15(1,07; +0,10)+5°

Біля перешкоди відштовхування майже дорівнює притяганню й апарат іде вбік; щойно він розминувся, вага падає вчетверо — з 0,60 до 0,15 — і траєкторія повертається на ціль.

Де метод ламається. Поставте другу перешкоду симетрично, у точці (5;1): бічні складові відштовхування взаємно знищаться — звертати нікуди, а поздовжні додадуться й з наближенням переважать притягання. Апарат зупиниться перед проходом. Це класичний локальний мінімум.

Потенціальні поля: коли метод стає в глухий кут
Ціль тягне, перешкода відштовхує. Перешкоду можна перетягнути мишею. Кнопка «Дві симетричні» ставить другу навпроти першої.
0.00; 0.00положення апарата, м
8.00 мвідстань до цілі
8.00модуль сумарної сили
нізастряг у мінімумі

З однією перешкодою апарат обходить її збоку й доходить до цілі. Поставте дві симетричні — бічні складові взаємно знищаться, звертати нікуди, поздовжні додадуться й переважать притягання: апарат зупиниться перед проходом при ненульовій відстані до цілі. Це класичний локальний мінімум, і саме він мотивує перехід до навчання в наступних модулях.

Керований поділ: α-, β- і γ-агенти

Керування кожного агента складається з трьох доданків, і кожен відповідає за свою «породу» сусідів.

ui=uiα+uiβ+uiγ
АгентХто цеЩо робить
αреальний сусід ближче за радіус взаємодіїтримає ґратку: відштовхує зблизька, притягує здалеку, вирівнює швидкості
βвіртуальна тінь самого агента на поверхні перешкодивідштовхує від перешкоди й зникає, щойно агент відійшов
γспільна для всіх рухома точка зборутягне весь рій в один бік і зводить підрої назад після перешкоди

Перешкода не є агентом, і карта для обльоту не потрібна: кожен агент будує собі β-сусіда локально, з власного вимірювання відстані до поверхні.

Ваги впорядковані так, що уникнення перешкод найсильніше, ведення до цілі слабше, а згуртованість найслабша — інакше рій притискав би себе до стіни, аби не розірвати ґратку.

Два маневри проходу

МаневрУмовиЯк поводиться рійЧисла сценарію
Split / rejoinкілька перешкод на прямій до цілірозтікається на потоки, обтікає й знову збирається150 агентів, 6 круглих перешкод
Squeezingдві перешкоди близько, прохід 2r3rстискається в колону й просочується, не розриваючись150 агентів, просвіт ≈ 20 при r=8,4, тобто ≈ 2,4r

Обидва маневри дає та сама сума трьох доданків. Жодного перемикача режимів і жодного предиката «ділимося» в коді немає — маневр обирає геометрія. Широко рознесені перешкоди розводять потоки, вузький просвіт їх стискає.

Єдина кількісна умова: ширина проходу 2r3r. Ширший прохід рій долає без перебудови строю.

Хто вирішує, що рій ділиться

Поділ буває наслідком геометрії, а буває — рішенням. Сім механізмів відрізняються тим, хто і на підставі чого ухвалює це рішення.

МеханізмХто вирішуєНа підставі чого
Геометричний (α–β–γ)ніхто, поділ емерджентнийформа перешкоди
За призначеною роллюпроєктувальник напередстатичний поділ на підрої
За найближчою ціллюкожен агент самвідстань до своєї цілі
Голосуваннярій колективнолокальний консенсус про поділ
За лідеромлідер підроюкоманда згори
За зв'язністюагент на межіпадіння λ2 нижче порога
Наземною станцієюоператорзовнішнє рішення

Перші три не потребують обміну повідомленнями взагалі. Голосування й поділ за зв'язністю вимагають розподіленого консенсусу — того самого протоколу з Модуля 02, але зі станом «ділимося / не ділимося».

Частина 4 · Поділ рою в числах

Граф сусідства — вершини-агенти й ребра між тими, хто ближчий за радіус взаємодії. Кількість компонент зв'язності дорівнює nrank(L) і прямо каже, на скільки частин розпався рій.

C(t)=rank(L(t))n1[0,1]
Поділ і злиття рою з метриками цілісності в часі

Поділ і злиття рою з метриками цілісності в часі

Симуляція: 12 агентів, радіус сусідства r=6 м, стіна з двома проходами, рознесеними на 10 м — тобто далі, ніж радіус взаємодії, отже граф неминуче рветься.

Результат: λ2 падає з 3,06 до нуля, рій розпадається на кроках 46–51 і 54–106 — двома окремими інтервалами, а в найгіршій точці має навіть три компоненти. Після проходу він зливається, і λ2 зростає до 7,12 — вище початкового, бо за стіною рій щільніший.

Зверніть увагу на форму червоної кривої: поділ не є одноразовою подією. Рій рветься, на кілька кроків відновлює зв'язок, рветься знову — саме тому моніторити треба кількість компонент у часі, а не факт «розпався чи ні» в один момент.

Керований поділ проти фрагментації

Поділ сам собою не є дефектом. Дефектом він стає, коли рій розпався непередбачувано і не зібрався назад.

ПоказникКерований поділФрагментація
Кількість компонентзростає й повертається до 1зростає й лишається > 1
Час до злиттяскінченний, передбачуванийне настає
λ2 після маневрувідновлюєтьсялишається нулем
Причинагеометрія перешкодивтрата зв'язку, відмова ретранслятора, надто слабкий γ-член

Три числа, за якими це відрізняють у логах: кількість компонент, відносна зв'язність C і час до злиття. Окремо стежать за λ2: значення, що повзе до нуля, — раннє попередження ще до фактичного розриву.

Частина 5 · Пошук об'єкта

Пошук відрізняється від покриття цільовою функцією: покриття вимагає обстежити все, пошук — знайти якнайшвидше. Якщо є апріорна карта ймовірності, ці дві задачі розходяться сильно.

Порівняння пошуку: випадковий, регулярний обхід і за картою ймовірності, 20 прогонів

Порівняння пошуку: випадковий, регулярний обхід і за картою ймовірності, 20 прогонів

Чотири апарати, сітка 40 × 40 комірок, ціль у слабшому з двох районів підозри — як і буває насправді, бо апріорна карта є здогадом.

СтратегіяЧас до виявленняНе знайшли
Випадкове блукання60 ± 56 с10 із 20 прогонів
Регулярний обхід (lawnmower)14 ± 0 с0
Пошук за картою ймовірності5 ± 8 с0

Регулярний обхід передбачуваний — розкид рівно нуль. Пошук за картою швидший у середньому, але має більший розкид: якщо ціль опинилася поза районами підозри, він програє. Це типовий компроміс «середнє проти найгіршого випадку», і замовнику треба сказати, який із них важливіший.

Розподіл цілей між апаратами

Найпростіше правило — кожна ціль дістається найближчому апарату. Воно розподілене, не потребує переговорів і працює миттєво. Але рівномірного навантаження воно не гарантує.

Розподіл цілей за найближчим агентом і розкид навантаження

Розподіл цілей за найближчим агентом і розкид навантаження

П'ять апаратів, чотирнадцять цілей: розподіл за найближчою відстанню дає розкид навантаження між найзавантаженішим і найменш завантаженим. Метрика «розкид внеску між дронами» з наступного розділу ловить саме це.

Виправлення — аукціонний протокол або обмеження на кількість цілей на апарат: кожен агент оголошує вартість (час підльоту), цілі призначаються за мінімальною сумарною вартістю з урахуванням завантаження. Ціна — обмін повідомленнями й час на узгодження.

Зони відповідальності: розбиття Вороного

Розбиття Вороного і карта покриття для рою з дев'яти апаратів

Розбиття Вороного і карта покриття для рою з дев'яти апаратів

Розбиття Вороного дає кожному апарату зону, для якої він найближчий, і робить це суто локально: щоб знати межу зі своїм сусідом, апарату досить положення цього сусіда. Карта відстані до найближчого апарата одразу показує, де рій «бачить» гірше за все.

Саме цю конструкцію використовують і як винагороду: у гетерогенному рої з Модуля 08 розвідники мінімізують найбільшу комірку Вороного, що прямо означає «зробити покриття рівномірним».

Зони відповідальності: розбиття Вороного
Кожен апарат відповідає за точки, до яких він найближчий. Перетягніть апарат мишею — межі перерахуються самі, і для цього апарату досить знати положення лише своїх сусідів.
1651 м²найбільша комірка
772 м²найменша комірка
2.1×розкид навантаження
37.8 мнайгірша відстань до апарата

Зсуньте два апарати в один кут: їхні комірки стиснуться, а протилежний бік майданчика дістанеться одному апарату — розкид навантаження підскочить у рази. Це та сама патологія, яку в лабораторній роботі 5 ловлять метрикою «розкид внеску між дронами». Натисніть «Розвести повністю»: кроки Ллойда зсувають кожен апарат у центр мас його зони, і розкид падає до одиниці. Мінімізація найбільшої комірки й означає «зробити покриття рівномірним».

Частина 6 · Місія покриття та метрики

Шість апаратів обстежують кімнату 10 × 10 м, розбиту на 20 × 20 комірок по 0,5 м, за 180 с — та сама сцена, що в лабораторній роботі 5. Дрон не має карти всієї місії — він має короткий вектор.

Що знаєРозмірДжерелоПриклад для дрона №3
Своя позиція та швидкість6UWB + оптичний потік(4,2; 6,8; 1,5), (0,9; 0,3; 0,0)
Орієнтація та кутова швидкість12BMI088горизонтально, ω0
Локальна карта відвіданого, вікно 5 × 525обмін по радіо18 відвіданих, 7 нових
Напрямок на найближчу невідвідану клітинку3локальна карта(+1,5; 0,5; 0,0)
K=4 найближчих сусіди24обмін позиціямиД1 за 0,81 м, Д5 за 1,4 м
Заряд акумулятора1вольтметр на борту0,58
Час до кінця епізоду1таймер0,42
Разом72

Вікно 5 × 5 замість усіх 400 клітинок — той самий принцип, що й K сусідів замість усього рою: локальність замість повноти. Вхід мережі не залежить від розміру майданчика.

Винагорода за покриття: покроково

Покриття — не миттєва величина, її нараховують по подіях.

Крокt, сДії дрона №3Нові клітинки (рій)ОсобистаСпільнаr3
6000120,00входить у нову клітинку30,7×1=0,700,3×3/6=0,15+0,85
6001120,02ще в тій самій клітинці10,000,3×1/6=0,05+0,05
6002120,04летить далі, клітинка стара00,000,000,00

До цієї суми на кожному кроці додаються штрафи за різкість керування 0,10 (сума за кутову швидкість, нахил і ривок дії) і 2,0×(близькість), якщо сусід ближче 1,0 м.

Підсумок за епізод при хорошому польоті: рій відкриває 360 клітинок × 0,7 особистої частини ≈ 252 очка, розподілених між шістьма, плюс спільна частина. Штрафи за близькість забирають 5–8 % — це нормальна ціна безпеки.

Метрики місії: що доповідають замовнику

Одна цифра «винагорода за епізод» замовнику місії нічого не каже.

МетрикаПоганоПрийнятноДобреЦільовий рівень
Покриття за 180 с< 70 %70–90 %> 90 %≥ 90 % (360 із 400)
Час до 90 % покриттяне досягнуто150–180 с< 150 с< 150 с
Зіткнень на дрон за хвилину> 1,00,05–1,0< 0,05< 0,05
Мінімальна дистанція за епізод< 0,15 м0,15–0,30 м> 0,30 м> 0,30 м
Залишок заряду при посадці< 15 %15–30 %> 30 %> 30 %
Частка часу над відвіданим> 40 %20–40 %< 20 %< 20 %
Розкид внеску між дронамиодин робить > 50 %найкращий / найгірший > 5×різниця < 2×< 2×
Мінімальна відстань між вісьмома апаратами в часі

Мінімальна відстань між вісьмома апаратами в часі

Мінімальна дистанція — окрема обов'язкова крива: вона має завжди лежати вище радіуса безпеки. Провал нижче — відмова, навіть якщо покриття виглядає добрим.

Орієнтир зі справжніх польотів: рій із восьми апаратів дає близько 0,02 зіткнення на дрон за хвилину. За 3 хвилини шести дронами це очікувано 0,36 зіткнення на весь епізод — приблизно один дотик на три місії. Це реалістична планка, а не «нуль назавжди».

Код: опорна евристика покриття

Перш ніж порівнювати з навченою політикою, потрібна опорна лінія. Ось вона цілком.

python
import numpy as np

N_UAV, GRID, T, DT = 6, 20, 180.0, 0.1
# Сцена та сама, що в лабораторній роботі 5, інакше не було б із чим
# порівнювати числа: кімната 10x10 м, комірка 0,5 м, шість Crazyflie на 1 м/с.
AREA, SPEED, SAFE = 10.0, 1.0, 1.0       # 10x10 м, 1 м/с, розділення з 1 м
REP = 0.30                               # сила відштовхування на межі SAFE
CELL = AREA / GRID                       # комірка 0,5x0,5 м

for step in range(int(T / DT)):
    free = ~visited.ravel()

    # евристика: кожен летить до найближчої невідвіданої комірки
    for i in range(N_UAV):
        if free.any():
            d = np.linalg.norm(centres[free] - pos[i], axis=1)
            v = centres[free][int(np.argmin(d))] - pos[i]
            vel[i] = v / np.linalg.norm(v)

    # розділення: відштовхування від сусідів ближче за SAFE
    diff = pos[:, None, :] - pos[None, :, :]
    dist = np.linalg.norm(diff, axis=-1); np.fill_diagonal(dist, np.inf)
    for i in np.where((dist < SAFE).any(axis=1))[0]:
        close = dist[i] < SAFE
        # SAFE**2 робить силу безрозмірною: на межі розділення вона дорівнює REP
        vel[i] += REP * SAFE ** 2 * (diff[i][close] / dist[i][close, None] ** 2).sum(axis=0)

    pos = np.clip(pos + vel * SPEED * DT, 0, AREA - 1e-6)
    min_dist = min(min_dist, float(dist.min()))

Результат коду: п'ять метрик із семи

text
метрика                                     значення        ціль   висновок
----------------------------------------------------------------------------------
покриття за 180 с                  100.0 % (400/400)      ≥ 90 %   OK
час до 90 % покриття                            28 с     < 150 с   OK
час до повного покриття                         33 с     < 180 с   OK
зіткнень на дрон за хвилину                    0.000      < 0,05   OK
мінімальна дистанція                          0.41 м    > 0,30 м   OK
частка входів у вже відвідане                 26.5 %      < 20 %   не досягнуто
розкид внеску між дронами                       2.0x        < 2x   не досягнуто

нових клітинок на апарат: [48, 96, 53, 67, 72, 64]
входів у комірку до повного покриття: 544, з них у вже відвідану: 144
досягнуто цільових рівнів: 5 із 7

Евристика закриває майданчик повністю за 33 с і жодного разу не підходить ближче ніж на 0,41 м при порозі 0,30 м. Але дві метрики вона провалює: чверть входів припадає на вже відвідані комірки, а найактивніший апарат відкриває вдвічі більше за найпасивнішого. Саме ці два числа й має покращити навчена політика — і саме їх студент порівнює в лабораторній роботі 5.

Що ламається на практиці і як це видно в числах

СимптомЯк це видно в логахПричинаЩо робити
Дрони скупчилися в куті4 з 6 у радіусі 1,0 м; темп нових клітинок упав із 3,2/с до 0,4/с; покриття стало на 55 %спільна винагорода без розділення зонпідняти особисту частку, додати штраф за перекриття зон
Один дрон простоюєД6 відкрив 12 клітинок при медіані 78; внесок 3 % замість 17 %розподіл заслуг: він не бачить різниці у власній винагородізмішана винагорода 0,7 / 0,3, штраф за нульовий внесок
Уся команда «зависла»усі шість мають однакову винагороду попри різний внесокчисто спільна винагородадив. рисунок нижче
Заряд закінчився раніше місіїнапруга < 3,0 В на 140-й с замість 180-ї; покриття −12 п.п.агресивний політ, тяга 0,72 замість 0,60додати заряд у спостереження, штраф за середню тягу
Зіткнення при звуженнімінімальна дистанція 0,08 м при порозі 0,30 м; обидва «просіли» на 20 смdownwash: верхній обдуває нижнього, чого не було в симуляторізаборонити різницю висот < 0,4 м при малому рознесенні
Політика крутиться на місцівинагорода росте, покриття стоїть на 30 %; бонус за життя дає основну частинувинагорода допускає збір бонусу без виконання задачіприбрати або знизити бонус, прив'язати його до прогресу
Спільна винагорода приховує внесок, змішана — показує

Спільна винагорода приховує внесок, змішана — показує

Це та сама картина, що в Модулі 08, але вже в термінах місії покриття: дрон, який відкрив п'ять клітинок, і дрон, який висів на місці, при чисто спільній винагороді отримують однаково.

Задача обирає алгоритм

Група задачУмоваПридатні алгоритми
Планування шляхузображення в реальному часіD3QN
Навігація до цілідискретні діїDQN
Навігація до цілінеперервні діїPPO, TRPO, DDPG, SAC
Покриття й зв'язністьбагатоагентна, неперервні діїDRL-EC³ на базі DDPG, MAPPO
Утримання строю з обходом перешкодбагатоагентна, CTDEMAPPO, MADDPG
Розподіл цілейдискретний вибір із наборуQMIX, VDN

Дві типові функції винагороди, які покривають більшість постановок:

  • за відстанню до бажаного стануr=ss плюс штрафи за зусилля й ривок. Годиться для стеження, утримання строю, виходу на точку.
  • за подією — фіксоване значення за нову клітинку, знайдену ціль, доставлений вантаж, плюс щільна підказка напрямку. Годиться для покриття, пошуку, доставки.

Перша дає щільний сигнал і легко навчається; друга ближча до того, що насправді потрібно замовнику, але вимагає щільної підказки, інакше сигнал занадто розріджений.

Рівні прийняття рішень і їхні частоти

Місія розкладається на рівні, і плутати їхні темпи — типова проєктна помилка.

РівеньЩо вирішуєТемпХто виконує
Планування місіїподіл на стадії, точки маршруту, повернення на зарядкухвилини, часто офлайнназемна станція або оператор
Розподіл задачякий апарат відповідає за яку зонусекундирій, розподілено
Локальне рішеннякуди летіти наступні 1–2 с5–20 Гцполітика на борту
Керування рухомтяга й кутові швидкості50–500 Гцбортовий контролер

Класичний приклад планування — агромісія обходу прямокутного поля: S-подібний маршрут; коли заряд падає нижче порога, апарат запам'ятовує поточну позицію, летить на базу, заряджається, повертається в залишену позицію і продовжує обхід.

1Поділ місії на стадії
2Контроль положення й заряду
3Повернення на базу й заряджання
4Продовження зі збереженої точки

Зведена матриця задач роїв

ЗадачаЩо подаємо в спостереженняЯк будуємо винагородуГоловна метрика
Покриття територіїлокальна карта відвіданого, напрямок на найближчу дірку, сусідинові клітинки, змішана 0,7/0,3покриття за час, рівномірність внеску
Пошук об'єктівсенсорні показання, карта ймовірності, сусідивиявлення цілі плюс приріст інформаціїчас до першого виявлення, частка знайдених
Розподіл цілейвласна позиція, позиції цілей, наміри сусідівнаближення до призначеної цілі, штраф за дублюваннячас призначення, частка непокритих цілей
Утримання строюпомилка положення відносно сусідівпохибка строю, штраф близькостіфакторизована похибка строю, мінімальна дистанція
Обхід перешкодлокальна геометрія, K сусідівштраф близькості, штраф зіткненнязіткнень на апарат за хвилину
Супровід ціліоцінка положення цілі, сусідиутримання цілі в полі зору, штраф за втратучастка часу супроводу

Висновки

  • Рій виправданий лише за чотирьох критеріїв одночасно; надлінійність продуктивності — вирішальний.
  • Потенціальні поля дають дешевий локальний обхід перешкод, але застрягають у симетричній конфігурації: дві перешкоди навпроти проходу зупиняють апарат.
  • Схема α–β–γ дає split/rejoin і squeezing без жодного предиката поділу в коді — маневр обирає геометрія, а спільна ціль зводить підрої назад.
  • Цілісність рою вимірюють трьома числами: компоненти зв'язності, відносна зв'язність C, час до злиття. У симуляції λ2 падає з 3,06 до нуля й відновлюється до 7,12.
  • Спостереження будують за принципом локальність замість повноти: вікно 5 × 5 замість 400 клітинок, K сусідів замість усього рою. Вхід мережі не залежить від розміру задачі.
  • Винагороду за покриття нараховують по подіях, а не за миттєвим станом; змішана 0,7 / 0,3 розв'язує розподіл заслуг.
  • Замовнику доповідають сім метрик, а не одну винагороду. Реалістична планка зіткнень — 0,02 на дрон за хвилину, а не нуль.

Перехід до Модуля 11

Модуль 10 припускав, що все працює: зв'язок є, сенсори не брешуть, апарати не відмовляють. Реальні місії цієї розкоші не мають.

Модуль 11 · Безпека та робастність роїв БПЛА розбирає, що відбувається, коли ці припущення порушено: відмова апарата в польоті, втрата зв'язку й затримки, шум і зміщення сенсорів, підміна показань, атака на канал керування. Розглянуто механізми оцінювання справності, безпечні режими відмови та вимоги, які висувають до рою перед реальним застосуванням.

Література та ресурси

  • Dorigo M., Theraulaz G., Trianni V. Swarm Robotics: Past, Present, and Future. Proceedings of the IEEE, 2021, 109(7), 1152–1165. DOI 10.1109/JPROC.2021.3072740
  • Olfati-Saber R. Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory. IEEE TAC, 2006, 51(3), 401–420. DOI 10.1109/TAC.2005.864190 — α-, β- і γ-агенти.
  • Khatib O. Real-Time Obstacle Avoidance for Manipulators and Mobile Robots. IJRR, 1986, 5(1), 90–98 — потенціальні поля.
  • Liu C. H. та ін. Energy-Efficient UAV Control for Effective and Fair Communication Coverage. IEEE JSAC, 2018, 36(9), 2059–2070.
  • Vásárhelyi G. та ін. Optimized Flocking of Autonomous Drones in Confined Environments. Science Robotics, 2018, 3(20). DOI 10.1126/scirobotics.aat3536
  • Brambilla M. та ін. Swarm Robotics: A Review from the Swarm Engineering Perspective. Swarm Intelligence, 2013, 7(1), 1–41.
  • Quan Quan. Introduction to Multicopter Design and Control. Springer, 2017 — розділ 13 (планування шляху, обхід перешкод методом APF).
  • Практика: PettingZoo · gym-pybullet-drones · Crazyswarm2

Матеріали курсу. Схеми із зовнішніх джерел належать їхнім авторам — посилання під кожною ілюстрацією.