Język programowania rojów robotów

Jednym z bardziej fascynujących widoków jesiennego wieczoru jest stadne zachowanie szpaków, które chwieją się i pikują w niezwykłych demonstracjach synchronizacji aerodynamicznej.





Okazuje się, że te złożone pokazy powstają w wyniku prostego zestawu zasad rządzących tym, w jaki sposób ptaki latają względem siebie. Rzeczywiście, to flokowanie było stosunkowo łatwe do symulacji na komputerze przez wiele lat.

Ale nigdy nie powtórzono tego w przypadku robotów latających lub robotów naziemnych z dwóch powodów. Po pierwsze dlatego, że nikt nie zbudował robotów z taką samą zwinnością i szybkością. Ale nawet przy mniej zwinnych robotach zadanie jest trudne z drugiego powodu: nie ma łatwego sposobu na kontrolowanie takiego stada.

Pierwszy czynnik szybko się zmienia. Tanie, zdolne roboty — latające lub w inny sposób — spowodowały eksplozję zainteresowania stadami i rojami. Liczni badacze, hobbyści i artyści eksperymentują z tymi maszynami, mając nadzieję na zbadanie i wykorzystanie oraz generowane przez nie zachowania.



Wszystkie te grupy odkrywają, że kontrolowanie dużej liczby identycznych robotów jest pewnym wyzwaniem. A przy braku ustalonego języka programowania muszą rozwiązywać te same problemy w ten sam sposób. Innymi słowy, odkrywają koło na nowo.

Dzisiaj Carlo Pinciroli z Ecole Polytechnique de Montreal w Kanadzie i kilku kumpli twierdzą, że opracowali język programowania właśnie w tym celu. Mówią, że przedstawiamy Buzz, nowatorski język programowania dla heterogenicznych rojów robotów.

Istnieją dwa przeciwstawne podejścia do kontrolowania roju. Pierwsza to metoda oddolna, w której każdy robot jest sterowany indywidualnie. Jest to przydatne do precyzyjnego dostrajania interakcji między określonymi robotami, ale staje się coraz trudniejsze w zarządzaniu wraz ze wzrostem wielkości roju.



Metoda przeciwna to podejście odgórne, w którym rój jest kontrolowany jako całość. Jest to znacznie bardziej efektywne w przypadku dużych rojów, ale nie pozwala na precyzyjne dostrojenie indywidualnych zachowań robotów.

Pinciroli i spółka twierdzą, że ich nowy język dopuszcza obie metody. Uważamy, że język rojów robotów musi łączyć zarówno prymitywne oddolne, jak i odgórne elementy podstawowe, umożliwiając programiście wybranie najbardziej wygodnego poziomu abstrakcji do wyrażenia algorytmu roju.

Mówią, że Buzz umożliwia również łączenie poleceń w intuicyjny sposób z przewidywalnymi wynikami, które sprawiają, że jest stosunkowo łatwy w użyciu. Jest również skalowalny, dzięki czemu może być skutecznie używany w rojach o różnej wielkości.



Następnie pokazują różne przykłady tego, jak język działa w praktyce i prowadzi do samoorganizacji zachowań przy użyciu stosunkowo prostych zasad, podobnie jak prawdziwe roje i stada.

To ciekawa praca, która ma moc stać się wzmacniaczem technologicznym. Pinciroli i wsp. twierdzą, że brak znormalizowanego języka programowania dla rojów jest istotną przeszkodą dla przyszłego postępu, ponieważ naukowcy nie mają łatwego sposobu dzielenia się swoją pracą i wzajemnego wykorzystywania swoich przełomowych odkryć.

Uważamy, że jednym z najważniejszych aspektów Buzza jest jego potencjał do stania się narzędziem umożliwiającym przyszłe badania nad rzeczywistymi, złożonymi systemami robotyki roju, mówi zespół.



I mają ambitne plany na przyszłość. Na przykład chcą stworzyć bibliotekę dobrze znanych zachowań roju, które staną się cegiełkami do przyszłej pracy innych.

Ciekawostka, która może oznaczać, że niezwykłe stada, które zobaczysz w przyszłe jesienne wieczory, mogą wcale nie być szpakami.

Nr ref.: arxiv.org/abs/1507.05946 : Buzz: rozszerzalny język programowania dla samoorganizujących się heterogenicznych rojów robotów

ukryć