Download: KnowHow_robocup

Transkrypt

Download: KnowHow_robocup
KNOW HOW
Robocup
Autonomiczne roboty linuksowe: zespół Ulm Sparrows
Robocup 2004
Okazuje się, że piłka nożna rozgrywana przez roboty zapewnia niemal te same emocje, których oczekujemy od prawdziwych rozgrywek na murawie boiska: wślizgi, faule, żółte kartki – tak naprawdę
wszystko poza zagraniem głową... Zawodnikami są
autonomiczne roboty działające pod kontrolą systemu Linux. W tym artykule pokazujemy przykłady zastosowań Linuksa w robotyce.
GERD MAYER, HANS UTZ,
PHILIPP BAER
R
oadrunner (Struś Pędziwiatr), Coyote
(Kojot), Speedy (Szybki), Gonzales to
nazwy czterech robotów piłkarskich
niemieckiego zespołu Ulm Sparrows, które
brały udział w tegorocznych rozgrywkach Robocup German Open [1] w dniach 1-4 kwietnia 2004 roku. Tegoroczne otwarte mistrzostwa piłki nożnej robotów wciągnęły do rywalizacji 150 zespołów. Robocup [2] to międzynarodowa inicjatywa, której celem jest rozwój
robotów i związanych z nimi dziedzin, takich
jak sztuczna inteligencja (AI) czy przetwarzanie obrazów. Piłka nożna, w której zawodnikami są autonomiczne roboty, to wyzwanie dla
twórców robotów, ale jednocześnie znakomita
platforma badawcza.
Zespół Uniwersytetu z Ulm, Ulm Sparrows
[3], po raz pierwszy wziął udział w tych zawodach w 1998 roku, osiągając całkiem dobry wynik. Mimo że w 2003 roku zespół zajął drugie
miejsce, w 2004 roku nie udało się przeskoczyć
ćwierćfinałów. Mistrzami w Middle Size (średniej wielkości) zostali Brainstormer Tribots,
drugie miejsce zajął zespół Persia z Iranu.
Czterech na czeterech
W meczu biorą udział dwie drużyny po cztery
roboty w każdej. Rozgrywane są dwie, 10-minutowe połowy, a boisko ma wymiary 12 na
58
Sierpień 2004
8 metrów. Każda drużyna ma bramkarza
i trzech zawodników w polu. Wszelkie obiekty
na boisku posiadają odmienne oznaczenia.
Używana jest zwykła piłka zimowa FIFA (w
kolorze pomarańczowym), a bramki pomalowano na żółto i niebiesko. Murawa ma kolor
zielony z naniesionymi białymi liniami. Roboty mogą komunikować się ze sobą, ale nie mogą przekazywać informacji zewnętrznym
układom decyzyjnym, takimi jak dodatkowe
komputery.
Boiska są sztucznie oświetlone przy pomocy
lamp studyjnych, które zapewniają stałe, lecz
nieregularne źródło światła. Jako że roboty potrafią osiągać prędkość do trzech metrów na sekundę i nadawać piłce spore przyspieszenie,
gra może być bardzo dynamiczna.
W tym roku obrońca portugalskiego zespołu
Minho wpadł z dużą prędkością na własną
bramkę, ledwo mijając bramkarza drużyny,
podczas gdy napastnik próbował wepchnąć
piłkę wraz z bramkarzem drużyny Allemaniacs Aachen do bramki. Oczywiście zawodnik
otrzymał żółtą kartkę za ten faul. Na boisku sędzia musi szybko uskakiwać z drogi robotom –
szczególnie wtedy, gdy robot zauważy pomarańczową piłkę w rękach sędziego.
Ciekawie wyglądała także rozgrywka
w czteronożnej lidze Sony zespołu Hamburg
www.linux-magazine.pl
Dog Bots przeciwko Microsoft Hellhounds,
którzy zostali bezapelacyjnie zdeklasowani,
przegrywając w kwalifikacjach i tracąc trzecie miejsce w rozgrywkach playoff stosunkiem bramek 6:0.
W rozgrywkach Robocup roboty muszą
być całkowicie samowystarczalne. Włączane
są one na początku meczu i do ostatniego
gwizdka nie można przeprowadzać żadnej
ingerencji z zewnątrz – wyjątkiem jest przerwa w połowie meczu, kiedy zespoły mogą
dokonywać napraw i modyfikacji swoich zawodników (Rysunek 1).
Problemy badawcze
Oczywiście piłka nożna robotów nie jest celem
badawczym samym w sobie, a jedynie swoistym poligonem doświadczalnym, który
umożliwia badanie praktycznych aspektów robotyki. Roboty skonstruowano tak, aby współpracowały z członkami swojego zespołu i unikały przeciwnika. Problemy pojawiające się
w piłce nożnej robotów są zbliżone do tych
z życia codziennego, np. wysłania robota do
sklepu, aby zrobił zakupy w zatłoczone sobotnie popołudnie.
Przyglądając się rozgrywkom szczegółowo,
możemy odkryć takie zagadnienia jak automatyczne pozycjonowanie czy rozpoznawa-
Robocup
nie przedmiotów. Robot musi znać swoje dokładne położenie na boisku, aby móc podjąć
decyzję o obronie lub ataku. Inne istotne zagadnienia to planowanie aktywności, czyli
podejmowanie decyzji o tym, kiedy i jaką
czynność wykonać i koordynacja z robotami
własnej drużyny.
Zasady Robocup zmieniają się z roku na
rok, zmuszając zawodników do ciągłego rozwoju swoich projektów. Jeszcze kilka lat temu boisko było otoczone bandą, obecnie na
liniach bocznych mogą stać widzowie, co
znacznie utrudnia zagadnienie przetwarzania obrazu.
Budowa robota
Robot Sparrows 03 reprezentuje drugą generację robotów, zaprojektowanych i skonstruowanych w całości przez zespół Ulm Sparrows. Dzięki okrągłemu kształtowi korpusu
roboty nie zakleszczają się między sobą, po-
KNOW HOW
siadają również pneumatyczny
„kopacz” piłki, zawierający odpowiednią ilość sprężonego gazu na
cały mecz. Na Rysunku 2 pokazano schemat obecnie używanej,
drugiej generacji robotów.
Aby uniknąć problemów z wydajnością jednostek centralnych,
wszystkie roboty korzystają z niewielkich komputerów przenośnych.
Głównym czujnikiem obrazu jest
kamera Firewire Sony DFW V-500,
która w przeciwieństwie do kamer
analogowych zapewnia lepszy obraz
Rysunek 1: W przerwie zespoły kalibrują roboty i dokonują
w trakcie ruchu i obrotów. Roboty
napraw. W rozgrywkach Robocup zespoły nie używające
zostały wyposażone dodatkowo
komputerów przenośnych muszą czasami ustawiać na
w czujniki odległości działające na
murawie komputery stacjonarne.
podczerwień oraz liczniki pokonato magistrala szeregowa wykorzystywana
nej odległości.
w przemyśle motoryzacyjnym. Doskonale
Wewnętrzne elementy robotów są podłąradzi sobie ona bez ekranowania i jest wyjątczone do magistrali CAN. Magistrala CAN
KNOPPIX STD 0.1
Zakazana dystrybucja
CD-ROM Nr 7
KNOPPIX STD 0.1
(Syphilis)
Knoppix-STD to specjalna wersja najpopularniejszej dystrybucji Live-CD (uruchamianej bezpośrednio z płyty CD-ROM).
Została ona przygotowana tak, aby zawierała jak najwięcej narzędzi związanych
z bezpieczeństwem.
Archiwum
LINUX MAGAZINE 1/2004
Dodatkowo przygotowaliśmy specjalną
atrakcję – na płycie znajduje się pełne archiwum wszystkich artykułów opublikowanych
w Linux Magazine 1/2004 (luty). Artykuły
publikujemy w łatwym do przeglądania i wydruku formacie PDF.
www.linux-magazine.pl
Sierpień 2004
59
KNOW HOW
Robocup
kowo odporna na błędy. Ponadto umożliwia
komunikację pomiędzy poszczególnymi elementami podłączonymi do niej bez udziału
jednostki centralnej. Magistrala CAN jest
podłączona do komputera przenośnego przy
pomocy portu równoległego, dla którego napisano specjalny sterownik.
Sterowanie
i przetwarzanie obrazu
Złożone projekty z zakresu robotyki wymagają dobrze przemyślanej architektury. Oprogramowanie musi w dużej części działać niezależnie od innych urządzeń robota, aby
umożliwić takim elementom jak autolokacja
prawidłowe działanie w środowiskach innych
niż boisko do gry w piłkę, np. w biurze i w sytuacjach awaryjnych.
Głównym elementem programowym jest
moduł Miro – abstrakcyjna warstwa sterowania urządzeniami. Dostarcza ona też
różnych struktur programowych dla sterowania robotem i przetwarzania obrazu wideo. Miro zbudowano w oparciu o CORBA
[4], a to oznacza, że poszczególne elementy
programu można łatwo przenosić w ramach
grupy komputerów. Cecha ta przydaje się
szczególnie do złożonych zadań obliczeniowych lub przy wykrywaniu i usuwaniu
usterek. Miro staje się ostatnio bardzo popularny – wydano go na licencji GPL
i można go pobrać ze strony znajdującej się
pod adresem [5].
Elastyczne
moduły Miro
Inny projekt wykorzystuje strukturę przetwarzania obrazu wideo Miro i zajmuje się rozpoznawaniem obiektów. Ostatnim modułem jest
samo oprogramowanie do gry w piłkę. Zajmuje się ono takimi aspektami, jak modelowanie
świata, autolokacja, szablony zachowań dla
przyjęcia czy kopnięcia piłki, itd.
Zwykłe problemy
Problemy praktyczne robotyki mają zwykle
niewiele wspólnego z rzeczywistymi celami naukowymi. Przykładowo roboty mogą korzystać
z ograniczonej liczby odpowiednich komputerów przenośnych. To poważny problem, dlatego nasz zespół – Ulm Sparrows, wybrał komputery przenośne IBM serii X31, czyli najmniejsze modele IBM z 12-calową matrycą.
Laptopy mają na pokładzie procesor Pentium
4 taktowany z częstotliwością 1.4GHz i technologią Centrino, która zapewnia kompromis pomiędzy czasem działania na akumulatorach
a wydajnością obliczeniową jednostki.
Użycie architektury Centrino oznaczało konieczność pokonania kilku problemów związanych z modułem Intel WLAN. Z pomocą projektu Ndiswrapper [6] oraz sterownika binarnego dla Windows XP udało nam się zmusić
do prawidłowej pracy interfejs WLAN.
Obecna wersja testowa sterownika WLAN
Open Source firmy Intel [7] nie spełnia naszych oczekiwań. Podczas testów laboratoryjnych największym problemem było obciążenie
procesora. Nadzieja w tym, że każdego tygodnia pojawia się nowa wersja tego sterownika.
Głodna magistrala CAN
Rysunek 2: Jako jednostki centralne roboty
korzystają z komputerów przenośnych IBM
(niebieska pokrywa i szara obudowa). Poniżej
znajduje się zespół napędowy z akumulatorem (szary) i zbiornikiem sprężonego powietrza (fioletowy).
60
Sierpień 2004
Magistrala CAN przysporzyła nam znacznie więcej problemów niż transmisja bezprzewodowa WLAN. Podczas gdy magistrala CAN wymaga cyklów procesora tylko
wtedy, kiedy trzeba coś przesłać, sterownik
CAN [8] korzystał z cyklów procesora przez
cały czas. Zdecydowaliśmy się skontaktować z autorem sterownika, który od razu
udostępnił nam nową wersję testową. Dzięki temu mogliśmy przesiąść się na jądro 2.6
– w meczach kwalifikacyjnych używaliśmy
jądra 2.6.5-pre3-bk. Poprawki, które zawiera jądro 2.6, zwiększyły także znacznie wydajność naszych systemów.
W przeciwieństwie do urządzeń konsumenckich, kamery Firewire nie używają biblioteki libdv1394, lecz libdc1394 albo libraw1394. System z jądrem 2.4 miał nieprzyjemną
tendencję do nagłego przerywania pracy, co
gorsza nie byliśmy w stanie odtworzyć błędu
www.linux-magazine.pl
Rysunek 3: Wnętrze Gonzalesa: Pokrywa (po
prawej stronie) mieści silnik krokowy dla kamery Firewire, która leży po lewej stronie
obudowy robota.
w warunkach testowych. Po pojawieniu się
problemu nie można też było usunąć z pamięci
problematycznych modułów, jedyną metodą
było ponowne uruchomienie komputera. Problemy zniknęły po przesiadce na jądro 2.6 –
a przynajmniej nie są one teraz takie częste.
Przyszłość
Od czasu pierwszych rozgrywek Robocup
w Japonii w 1997 roku nastąpił znaczny postęp. Wtedy roboty ledwo były w stanie się
poruszać, teraz ich prędkość dochodzi do
trzech metrów na sekundę i to z prowadzeniem piłki. Mistrzostwa Świata rozegrane
zostaną w dniach 27 maja – 3 czerwca 2004
roku w Lizbonie (Portugalia). Pamiętajmy,
że ostatecznym celem organizacji Robocup
jest zwycięstwo robotów w meczu z ludzkim zespołem Mistrzów Świata do roku
2050 (http://www.robocup.org).
■
INFO
[1] Robocup Open 2004:
http://ais.gmd.de/GO/2004
[2] Strona domowa międzynarodowego
pucharu Robocup:
http://www.robocup.org
[3] Strona domowa Ulm Sparrows:
http://www.sparrows.uni-ulm.de
[4] The Ace Corb (CORBA):
http://www.theaceorb.com/
[5] Środki programowo-sprzętowe dla
robotów (Miro):
http://smart.informatik.uni-ulm.de/Miro/
[6] Strona domowa projektu Ndiswrapper:
http://ndiswrapper.sourceforge.net
[7] Strownik Centrino WLAN firmy Intel:
http://ipw2100.sourceforge.net
[8] Sterownik magistrali CAN dla Linuksa:
http://www.peak-system.com/linux/