Symulacja piłki nożnej RoboCup 3D

RoboCup 3D w systemie Windows 7
Boisko piłkarskie RoboCup 3D z agentami Nao

Symulowana Liga Piłkarska RoboCup 3D pozwala agentom oprogramowania kontrolować humanoidalne roboty, aby rywalizować ze sobą w realistycznej symulacji zasad i fizyki gry w piłkę nożną. Platforma stara się odtworzyć wyzwania związane z programowaniem oprogramowania, przed którymi stoi budowanie w tym celu prawdziwych robotów fizycznych. W ten sposób pomaga w badaniach zmierzających do RoboCup , jakim jest opracowanie zespołu w pełni autonomicznych humanoidalnych robotów, które mogą wygrać z drużyną mistrzów świata w piłce nożnej ludzi w 2050 roku.

Pierwsza wersja serwera 3D została wydana 30.12.2003, po wstępnej propozycji przedstawionej na sympozjum RoboCup w 2003 roku.

Architektura

Symulacja jest wykonywana w RoboCup Simulated Soccer Server 3D (rcssserver3d), który działa w systemach Linux , Windows i Mac OS X. Podstawowym silnikiem symulacji jest SimSpark .

Agenci są kontrolowani przez procesy zewnętrzne. Zasady konkursu mówią, że każdy agent musi być oddzielnym procesem, chociaż nie ma na to technicznych ograniczeń. Agenci komunikują się z serwerem piłkarskim przez TCP , domyślnie na porcie 3100. Poza tym komunikacja między procesami jest zabroniona. Agenci mogą ze sobą rozmawiać, ale tylko przez serwer, który nakłada pewne ograniczenia na odległość i ilość przesyłanych informacji.

Serwer wysyła informacje o stanie gry i agenta do każdego agenta. W odpowiedzi agent wysyła do symulacji polecenia sterujące ruchem ciała agenta. Wiadomości są wysyłane przy użyciu podobnych do Lispa wyrażeń S w jednobajtowym ASCII , poprzedzonych 32-bitową liczbą całkowitą bez znaku reprezentującą długość następującego ciągu.

Serwer symulacji nie posiada własnego GUI . Zamiast tego dedykowana aplikacja monitorująca łączy się z serwerem przez port TCP 3200 i otrzymuje informacje o stanie gry. Standardową aplikacją monitorującą jest rcssmonitor3d , która dodatkowo może odtwarzać pliki dziennika z nagranych meczów. RoboViz to nowsza aplikacja monitorująca oparta na języku Java z rozszerzonymi możliwościami grafiki 3D i debugowania.

Modele robotów

SimSpark to ogólny symulator, który może symulować różne modele agentów . W swojej historii liga 3D korzystała z różnych modeli.

Zmiana modeli reprezentuje postęp w symulowaniu ulepszonego przybliżenia prawdziwego robota. Jednak gdy modele się zmieniają, istniejące zespoły muszą przerobić swoich agentów, aby kontrolować nowe ciała.

Piłkarz

Pierwszym modelem agenta używanym w lidze 3D był Soccerbot , który był oparty na modelu HOAP -2 firmy Fujitsu . Jako pierwszy model RoboCup 3D, zespoły skupiały się przede wszystkim na równowadze i podstawowej mobilności. W rezultacie ten model agenta nie jest tak w pełni funkcjonalny, jak dwunożny robot grający w piłkę nożną wielkości człowieka. Na przykład Soccerbot ma wszechkierunkową kamerę zamontowaną w tułowiu, dzięki czemu głowa jest nieruchoma. Podobnie stawy biodrowe są ograniczone do obrotów wokół prostopadłych osi.

Soccerbot został również zaprojektowany z pewnymi ograniczeniami ówczesnego systemu symulacji. Ponieważ symulator stał się bardziej niezawodny, możliwe stały się bardziej wyrafinowane modele robotów.

Nao robota

Obecny model robota wykorzystywanego w zawodach bazuje na robocie Nao firmy Aldebaran Robotics . Ma 22 zawiasy kontrolujące ruch ciała.

Nao ma zamontowaną w głowie kamerę kierunkową. Głowa może obracać się o dwa stopnie swobody, w zakresie od -120 do 120 stopni od lewej do prawej i od -45 do 45 stopni od dołu do góry. Kamera ma pole widzenia o szerokości 120 stopni.

Nao ma również bardziej złożoną strukturę bioder.

Perceptory

Odtwarzacz robotów Nao jest wyposażony w różne perceptory:

  • GyroRatePerceptor dostarcza informacji o orientacji względem osi X,Y,Z. Nao ma jeden zamocowany w tułowiu.
  • HingeJointPerceptor zapewnia bieżący kąt przegubu zawiasowego. Połączenia zawiasowe mogą zginać się tylko wzdłuż jednej osi. Nao ma 22 takie stawy.
  • ForceResistancePerceptor dostarcza informacji o lokalizacji, kierunku i wielkości siły przyłożonej do części ciała. Nao ma jeden z nich na podeszwie każdej stopy.
  • Akcelerometr mierzy przyspieszenie wzdłuż osi X,Y,Z części ciała, do której jest przymocowany. Grawitacja jest zarejestrowana. Nao ma jeden zamocowany w tułowiu.
  • VisionPerceptor to wyspecjalizowana kamera, która informuje o położeniu określonych punktów orientacyjnych na boisku, piłce i innych graczach. Pozycje są podawane we współrzędnych biegunowych względem kierunku patrzenia Nao.
  • GameStatePerceptor wykrywa czas gry i tryb gry (przed rozpoczęciem gry, rzutem wolnym, zakończeniem gry itp.).
  • HearPerceptor wykrywa wiadomości wysyłane przez innych agentów w terenie, zgłaszając ich odległość, kierunek i samą wiadomość.

Platforma symulacyjna SimSpark może być rozszerzana za pomocą niestandardowych perceptorów, ale nie jest to dozwolone podczas zawodów.

Efektory

  • CreateEffector jest wysyłany raz po połączeniu agenta w celu utworzenia robota na serwerze.
  • HingeJointEffector określa, że ​​dana siła powinna być przyłożona do określonego połączenia zawiasowego. Nao ma 22 takie zawiasy.
  • BeamEffector służy do zmiany pozycji gracza-robota w momentach gry, kiedy jest to dozwolone.
  • SayEffector sprawia, że ​​robot wypowiada wiadomość, którą mogą usłyszeć członkowie drużyny i przeciwnicy w określonym zasięgu za pośrednictwem HearPerceptor .


Głoska bezdźwięczna

Zespoły

Zobacz też

Linki zewnętrzne

  • SimSpark Wiki Instrukcje instalacji dla SimSpark i rcssserver3d na wszystkich platformach.
  • RoboCup Wiki Soccer Simulation League na oficjalnej wiki RoboCup.
  • Archiwum zawodów Archiwum logów, plików binarnych drużyn i opisów drużyn z poprzednich zawodów.
  • RoboViz Narzędzie do monitorowania RoboViz na GitHub.
  • AIUT3D Motion Editor AIUT3D Motion Editor do tworzenia ruchów opartych na klatkach kluczowych.