Ця симуляція піднімає в повітря рій із до 80 квадрокоптерів на 2D-полотні, де кожним керує класична модель Boids Крейга Рейнольдса. Кожен дрон щокадру застосовує три локальних правила: розділення (відштовхування в межах 35 px), вирівнювання (узгодження із середньою швидкістю сусідів у межах 70 px) та згуртованість (дрейф до локального центроїда в межах 110 px). Ці зважені керувальні сили підсумовуються, обмежуються максимальною силою, інтегруються у швидкість і обмежуються максимальною швидкістю.
Повзунок «Дрони» задає розмір рою, а повзунок «Швидкість» масштабує і прикладену силу, і стелю швидкості. Чотири кнопки перемикають активну формацію: «Зграя» дає слабке притягання до центру, а «Коло», «Сітка» та «V-подібна» призначають кожному дрону цільову позицію, до якої він притягується. Клік по полотну переміщує центр формації. Така децентралізована логіка рою лежить в основі реальних дронових світлових шоу, пошуково-рятувальних сіток і військового польоту у строю.
Що таке симуляція рою дронів?
Це інтерактивна модель, у якій багато простих агентів, тут квадрокоптерів, утворюють скоординований груповий рух без жодного центрального контролера. Кожен дрон дотримується лише локальних правил, що ґрунтуються на його сусідах, але рій у цілому збивається у зграю, кружляє або тримає формацію. Це демонструє, як складна колективна поведінка постає з простих індивідуальних взаємодій.
Як дрони вирішують, куди летіти?
Щокадру кожен дрон сканує інших і обчислює три керувальні сили: розділення від дуже близьких сусідів, вирівнювання до їхньої середньої швидкості та згуртованість до їхньої середньої позиції. Згори додається сила формації до призначеної позиції. Усе це зважується, підсумовується, обмежується й використовується для оновлення швидкості та положення.
Які три правила Boids?
Розділення відводить дрон від сусідів у межах 35 px, щоб уникнути зіткнень. Вирівнювання спонукає його узгодити середній напрямок сусідів у межах 70 px. Згуртованість притягує його до центроїда сусідів у межах 110 px. Разом їх запропонував Крейг Рейнольдс у 1986 році для моделювання зграй птахів, або «boids».
Повзунок «Дрони» задає, скільки квадрокоптерів у рою, від 5 до 80 з кроком 5. Повзунок «Швидкість», у діапазоні від 0.5x до 3.0x, множить керувальну силу, що прикладається на кожному кроці, і пропорційно піднімає стелю максимальної швидкості, тож увесь рій рухається швидше й реагує різкіше.
«Зграя» застосовує лише слабке притягання до центру, дозволяючи домінувати поведінці Boids. «Коло» рівномірно розташовує дрони навколо кільця радіусом близько 22% меншого виміру екрана. «Сітка» розкладає їх на квадратній решітці з кроком 48 px. «V-подібна» ставить одного лідера в центрі з двома хвостовими крилами, як перелітні гуси.
Клік, або дотик на сенсорних пристроях, переміщує центр формації в цю точку. Оскільки цілі формації та притягання зграї до центру обчислюються відносно цього центру, увесь рій одразу починає прямувати до нового місця, дозволяючи вам інтерактивно ганяти дрони по екрану.
Сили розділення, вирівнювання, згуртованості та формації множаться на фіксовані ваги (3.0, 0.7, 0.25 та 0.35 відповідно) і додаються разом. Отриманий вектор обмежується максимальною силою 0.45, перш ніж його масштабують на множник швидкості й додають до швидкості. Сама швидкість потім обмежується максимальною швидкістю, тож дрони ніколи не прискорюються безмежно.
Це спрощена 2D-кінематична модель, а не повноцінна симуляція динаміки польоту. Вона нехтує гравітацією, тягою роторів, опором, масою та тривимірним рухом, трактуючи кожен дрон як точку, що рухається за керувальними силами. Однак логіка координації рою віддзеркалює алгоритми локальних правил, які справді застосовуються в реальних дослідженнях керування роями.
Кожен дрон зберігає свої останні 22 позиції й малює між ними згасаючі відрізки ліній, що дає відчуття руху та нещодавнього шляху. Тло також лише частково очищується щокадру, злегка змішуючи старі кадри, тож рух виглядає плавним і стійким, а не миготливим. Це суто візуальні ефекти, які не впливають на фізику.
«Сер. шв.» — це середня швидкість усіх дронів, вимірювана в пікселях за кадр і оновлювана кожні 20 кадрів. «Розкид» — це більший з горизонтального та вертикального розмаху рою в пікселях, що вказує, наскільки щільно зібрана чи розсіяна група. Спостереження за ними показує, як формації стискають або розпускають рій із часом.
Децентралізоване керування роєм рухає синхронізовані дронові світлові шоу, сільськогосподарські й оглядові флоти та скоординовані пошуково-рятувальні прочісування. Ті самі емерджентні принципи постають у згенерованих комп'ютером натовпах і анімованих зграях у фільмах та іграх, а також у дослідженнях робототехніки про стійкі, безлідерні команди багатьох роботів, що продовжують працювати, якщо окремі одиниці відмовляють.