Politechnika Poznańska Wydział Informatyki i Zarządzania Katedra Sterowania i Inżynierii Systemów
Transkrypt
Politechnika Poznańska Wydział Informatyki i Zarządzania Katedra Sterowania i Inżynierii Systemów
Politechnika Poznańska Wydział Informatyki i Zarządzania Katedra Sterowania i Inżynierii Systemów Praca dyplomowa magisterska LOKALIZACJA ROBOTA MOBILNEGO I BUDOWA MAPY OTOCZENIA Z WYKORZYSTANIEM SKANERA LASEROWEGO Mateusz Przybyła Promotor dr inż. Dariusz Pazderski Poznań, 2010 r. Tutaj przychodzi karta pracy dyplomowej; oryginał wstawiamy do wersji dla archiwum PP, w pozostałych kopiach wstawiamy ksero. Pracę dedykuję wszystkim tym, którzy dają mi motywację i wiarę w to, że rozwój technologii może uczynić Świat lepszym, i którzy sami głęboko w to wierzą. Spis treści 1 Wstęp 1 1.1 Przedstawienie problemu, cele i założenia pracy . . . . . . . . . . . . . . . . 1 1.2 Motywacja i uzasadnienie podjęcia tematu . . . . . . . . . . . . . . . . . . . 2 1.3 Problemy związane z realizacją tematu . . . . . . . . . . . . . . . . . . . . . 3 1.4 Opis rozdziałów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Robot Mobilny typu AGV 5 2.1 Kinematyka typu (2,0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Odometria pojazdu o kinematyce (2,0) . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Zasada wykonywania pomiaru . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Błędy systematyczne i losowe odometrii . . . . . . . . . . . . . . . . 8 2.3 Rozmieszczenie dalmierza laserowego na robocie . . . . . . . . . . . . . . . 3 Przegląd sensorów odległości 3.1 3.2 3.3 8 10 Czujniki triangulacyjne, wykorzystujące światło niekoherentne . . . . . . . . 10 3.1.1 Zasada działania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.2 Charakter błędów i problemy związane z pomiarem . . . . . . . . . . 11 Sonary ultradźwiękowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.1 Zasada działania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.2 Charakter błędów i problemy związane z pomiarem . . . . . . . . . . 12 Skanery laserowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3.1 Zasada działania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.2 Źródła błędów systematycznych i losowych . . . . . . . . . . . . . . 15 3.3.3 Skaner LMS200 firmy SICK . . . . . . . . . . . . . . . . . . . . . . . 16 4 Sposoby reprezentacji środowiska 18 4.1 Mapa rastrowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Mapa wektorowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Mapa topologiczna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Środowisko symulacyjne procesu skanowania otoczenia 5.1 22 Model skanera laserowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 I II 5.2 Model wirtualnego otoczenia . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3 Proces pomiarowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6 Ekstrakcja cech geometrycznych z pojedynczego skanu 26 6.1 Grupowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2 Segmentacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.3 Analiza statystyczna odcinków . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.4 Rekonstrukcja prymitywów na poziomie analizy skanu . . . . . . . . . . . . 32 6.4.1 Łatanie dziur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.4.2 Poprawa i rejestracja narożników . . . . . . . . . . . . . . . . . . . . 33 7 Budowa mapy globalnej przy pełnej znajomości konfiguracji robota 36 7.1 Rzutowanie uzyskanych prymitywów . . . . . . . . . . . . . . . . . . . . . . 36 7.2 Analiza podobieństw między prymitywami . . . . . . . . . . . . . . . . . . . 37 7.3 Rekonstrukcja mapy globalnej . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7.4 Wyniki eksperymentalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.4.1 Badania symulacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.4.2 Badania na obiekcie rzeczywistym . . . . . . . . . . . . . . . . . . . 41 8 Lokalizacja globalna przy pełnej znajomości mapy otoczenia 43 8.1 Odcinki w pełni widzialne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 8.2 Relacje geometryczne mapy lokalnej . . . . . . . . . . . . . . . . . . . . . . 45 8.3 Estymacja konfiguracji skanera laserowego . . . . . . . . . . . . . . . . . . . 48 8.4 Zawężenie zakresu pomiaru na podstawie wiedzy a priori . . . . . . . . . . . 49 8.5 Wyniki eksperymentalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.6 8.5.1 Badania symulacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.5.2 Badania na obiekcie rzeczywistym . . . . . . . . . . . . . . . . . . . 51 Problemy związane z lokalizacją globalną . . . . . . . . . . . . . . . . . . . 52 9 Jednoczesna lokalizacja i mapowanie 55 9.1 Robot wyposażony w skaner laserowy i odometrię . . . . . . . . . . . . . . . 55 9.2 Robot wyposażony jedynie w skaner laserowy . . . . . . . . . . . . . . . . . 56 9.3 Optymalizacja procesu SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . 57 10 Podsumowanie 59 10.1 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 10.2 Dalszy rozwój projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 A Problemy związane z okresowością kąta 62 B Obsługa środowiska symulacyjnego 64 C Praca ze skanerem laserowym SICK LMS200 65 III Literatura 68 Rozdział 1 Wstęp 1.1 Przedstawienie problemu, cele i założenia pracy Lokalizacja robota mobilnego w przestrzeni roboczej jest zwykle kluczowym elementem zapewniającym możliwość wykonywania powierzanych mu zadań. Komplementarna w stosunku do powyższego jest znajomość otoczenia, w którym przyjdzie robotowi pracować, gdyż lokalizacja musi być zawsze wykonywana względem odpowiedniego układu odniesienia. Im większą ilość danych o środowisku posiada robot, tym dokładniej potrafi się zlokalizować (tzw. samolokalizacja) i wykonać zadanie, np. transportu, inspekcji, konserwacji, itp. O wymienionych kwestiach przekonywało się na przestrzeli lat coraz większe grono naukowców i inżynierów z całego świata. Współcześnie jednym z kluczowych zagadnień jest „SLAM” (ang. Simultaneous Localisation and Mapping - ustawiczna lokalizacja i mapowanie). Problematyka ta początkowo rozwijana była przez Durrant-Whyte’a i J. Leonarda [BDW94, LDW91b]. Podana metoda polega na zaopatrzeniu robota mobilnego w narzędzie generujące mapę otoczenia i jednocześnie estymujące jego pozycję za pomocą fuzji danych nawigacyjnych z wykorzystaniem EKF (ang. Extended Kalman Filter - rozszerzony filtr Kalmana) [LDW91a]. Zarówno budowa mapy jak i proces lokalizacji wymagają zamontowania na pokładzie robota odpowiednich sensorów. Na podstawie zwracanych przez nie sygnałów kształtowany jest model numeryczny otaczającego świata. Najczęściej wykorzystywane są w tym celu czujniki odległości, przede wszystkim skanery laserowe, do celów uzupełniających stosuje się także dalmierze ultradźwiękowe. Spotyka się również rozwiązania wykorzystujące sensory wizyjne. Niniejsza praca przedstawia szczegółowo proces przetwarzania surowych danych otrzymywanych ze skanera laserowego, ich późniejszą analizę i ekstrakcję cech używanych do bu- 1 1.2. Motywacja i uzasadnienie podjęcia tematu 2 dowy i aktualizacji mapy otoczenia oraz przykładowe rozwiązanie problemu samolokalizacji na podstawie pojedynczego pomiaru (skanu) i znajomości mapy otoczenia. Praca może być postrzegana jako wprowadzenie do zagadnienia jednoczesnej budowy mapy i ustawicznej lokalizacji. Problem w głównej mierze rozpatrywano w oparciu o przygotowane w Matlabie (wersja 7.0.1) środowisko symulacyjne. Dodatkowo przeprowadzono badania algorytmu wykorzystując dane eksperymentalne dostarczone przez skaner laserowy w statycznym środowisku rzeczywistym. Prace wykonywane były na komputerze z systemem Windows XP i procesorem Intel Celeron M420 1,60GHz. 1.2 Motywacja i uzasadnienie podjęcia tematu Praca powstała ze względu na duże znaczenie narzędzi lokalizacyjnych dla robotyki mobilnej. Określanie pozycji na podstawie mapy daje precyzyjne wyniki bez konieczności ingerowania w środowisko. Mapa, powstała jako rezultat działania algorytmu, może być później wykorzystywana przez inne roboty poruszające się na tym samym terenie. Połączenie obu procesów (mapowania i lokalizacji) jest praktycznym narzędziem pozwalającym uzyskać dużą autonomię robota mobilnego (zarówno naziemnego, powietrznego, a potencjalnie także na- i podwodnego). Może ono zostać użyte przy okazji wykonywania elementarnych zadań jak: parkowanie, omijanie przeszkód, odnajdywanie bezkolizyjnych ścieżek, generowanie trajektorii ruchu on-line, inspekcja pomieszczeń, itp. Na zastosowanie skanera laserowego do realizacji projektu zdecydowano się głównie ze względu na fakt, że dostępne dziś urządzenia oferują dużą precyzję i krótki czas wykonywania pomiaru. Ponadto ilość próbek odległości zawartych w jednym skanie znacząco przewyższa możliwości związane z zastosowaniem szeregu pojedynczych dalmierzy. Wykorzystanie wizji (lub stereowizji) wymaga wielokrotnie większych nakładów obliczeniowych oraz generuje wiele problemów z dziedziny widzenia maszynowego. Co więcej, w pracy skupiono się jedynie na przypadku otoczenia dwuwymiarowego, gdzie zastosowanie wizji jest wysoce redundantne. Dobrze zaprojektowany system mapowania i lokalizacji pozwala na implementację w czasie rzeczywistym, co omija wymóg wstrzymania pracy robota na potrzeby percepcyjne (ang. stop-look-update process). Z tego względu system taki nie tylko zapewnia poprawną samolokalizację, ale także zabezpiecza przed niepożądaną kolizją w dynamicznych środowiskach. Właściwa analiza danych otrzymywanych ze skanera może bowiem spełniać jego pierwotne zadanie, czyli funkcję bariery świetlnej. 1.3. Problemy związane z realizacją tematu 1.3 3 Problemy związane z realizacją tematu Głównymi trudnościami, z którymi wiąże się realizacja mapowania i lokalizacji jest problem dopasowania cech uzyskanych ze skanu do tych istniejących już na mapie. Proces ten wymaga określenia warunków, które w możliwie jednoznaczny sposób pozwolą na klasyfikację podobieństwa dwóch prymitywów geometrycznych z uwzględnieniem przyjętego przedziału ufności (dopuszczalnych odchyleń) dla każdej wartości porównawczej. Wiąże się to z projektowaniem złożonych algorytmów oraz ich wielokrotnym, często żmudnym testowaniem i strojeniem. Od poprawnego dopasowania cech map: lokalnej i globalnej zależy skuteczność i jakość algorytmu, dlatego warunki klasyfikacji powinny być bardzo rygorystyczne, a zabezpieczenia kładzione na przypadki błędnej identyfikacji zwielokrotnione. Problemem innej natury jest sposób działania wykorzystanych dalmierzy i wynikające z tego ograniczenia. W przypadku skanerów laserowych, mimo że ich precyzja jest duża, istnieją sytuacje, w których użyteczność jest wątpliwa. Wymienić tutaj można, np. drucianą siatkę, przez którą robot nie przejedzie, a którą z dużym prawdopodobieństwem promienie lasera mogą „przeoczyć”. Innym trudnym elementem środowiska jest powierzchnia lustrzana, która ustawiona pod niezerowym kątem do promienia odbija go, co skutkuje znikomą energią fali odbitej. Także obiekty przeźroczyste stanowią spory kłopot. Środowiska o różnych gęstościach optycznych zgodnie z prawem Snella powodują ugięcie promieni świetlnych w momencie przejścia z jednego do drugiego co może przekłamywać wynik pomiaru. 1.4 Opis rozdziałów W rozdziale drugim znajduje się opis urządzenia jakim jest robot mobilny, przedstawiono podział jednostek naziemnych ze względu na mobilność oraz krótki opis kinematyki robota (2,0). Omówiono w nim także problem odometrii oraz rozmieszczenie skanera laserowego w lokalnym układzie współrzędnych związanym z robotem. Rozdział trzeci zawiera informacje na temat sensorów odległości takich jak czujniki podczerwieni, sonary ultradźwiękowe oraz skanery laserowe. Scharakteryzowano w nim także pokrótce skaner LMS200 firmy SICK wykorzystany w celach badawczych. Rozdział czwarty opisuje przykładowe sposoby reprezentacji środowiska w formie mapy i wskazuje na ich podstawowe właściwości. W rozdziale piątym zawarto opis zbudowanego do badań i celów dydaktycznych środowiska symulacyjnego oraz przedstawiono sposób w jaki realizuje wirtualny pomiar. 1.4. Opis rozdziałów 4 Kolejny, szósty rozdział zawiera informacje dotyczące problemu ekstrakcji cech geometrycznych z analizowanej sekwencji pomiarowej i sposoby ich rekonstrukcji na podstawie statystyki oraz wzajemnych relacji geometrycznych. Opisuje on poszczególne kroki odnajdywania odcinków i narożników, tworzących numeryczny obraz świata. Rozdział siódmy przedstawia proces budowy mapy globalnej przy znanym stanie robota, omawia sposób rekonstrukcji wchodzących w skład mapy prymitywów i prezentuje wyniki eksperymentalne otrzymane w wyniku testowania algorytmu. Ósmy rozdział dotyczy lokalizacji globalnej przy założeniu znajomości mapy otoczenia. Przedstawia sposób klasyfikacji relacji pomiędzy dwoma cechami oraz omawia sposób zawężenia pola przeszukiwania przy zgrubnej wiedzy apriorycznej. Także prezentuje wyniki eksperymentalne w tym zakresie. W rozdziale dziewiątym zawarto informacje będące wstępem do zagadnienia SLAM, czyli ustawicznej lokalizacji i mapowania. Rozdział dziesiąty przedstawia ostateczne wnioski uzyskane w trakcie pracy oraz wskazówki odnośnie dalszego rozwoju projektu. Rozdział 2 Robot Mobilny typu AGV Robot mobilny to urządzenie techniczne, które potrafi zmieniać swoje położenie w przestrzeni zgodnie z określonym programem. Wyróżnia się zarówno jednostki na- i podwodne (USV - ang. Unmanned Surface Vehicles - bezzałogowe pojazdy nadwodne, UUV - ang. Unmanned Underwater Vehicles - bezzałogowe pojazdy podwodne), powietrzne (UAV - ang. Unmanned Aerial Vehicles - bezzałogowe pojazdy powietrzne) jak i lądowe (UGV - ang. Unmanned Ground Vehicles - bezzałogowe pojazdy naziemne). Innymi słowy: jednostki pływające, latające lub jeżdżące, względnie kroczące. Na łamach niniejszej pracy rozpatrywany będzie jedynie typ lądowy. Postęp techniki dąży do tego, aby jednostkę taką można było określić mianem AGV (ang. Autonomous Ground Vehicle - niezależny pojazd lądowy), czyli potrafiącą samodzielnie podejmować decyzje i odpowiednie kroki tak, aby wykonać powierzone zadanie. Pewną ograniczoną implementacją tej idei są pojazdy wykorzystywane w przemyśle do transportu narzędzi, surowców, półproduktów lub wyrobów końcowych. Mówi się wówczas o tzw. „Automated Guided Vehicles” (automatycznie prowadzone pojazdy). Pomimo pewnego stopnia samodzielności, pojazdy te mają ściśle określoną przestrzeń roboczą, oznaczoną za pomocą linii naziemnych lub innego rodzaju landmarków. Przykładem, który wskazuje na postępy w zwiększaniu autonomii są zawody DARPA (ang. Defense Advanced Research Project Agency) Grand oraz Urban Challenge, w których startujące drużyny przygotowują pełnowymiarowy samochód mający za zadanie przejazd odpowiedniej trasy w rzeczywistym świecie [dar09b, dar09a]. Jednostki naziemne podzielić można ze względu na sposób poruszania się na kroczące, ślizgające się (np. czołg) lub toczące się. Z punktu widzenia praktycznego największe znaczenie mają roboty mobilne toczące się, czyli poruszające się na kołach, gdyż są one relatywnie proste w realizacji i zapewniają energetycznie efektywny ruch. W zależności od liczby, rozmieszczenia, oraz funkcjonalności zamontowanych kół wyróżnia się m.in. kinematyki: [GC96] 5 2.1. Kinematyka typu (2,0) 6 • (3,0) - tzw. omnibot, posiada pełną mobilność w ruchu na płaszczyźnie. Konstrukcja opiera się, np. na trzech kołach szwedzkich typu 90o lub czterech typu 45o , tudzież napędach kulowych. • (2,1) - tzw. omni-steer, platforma mogąca dowolnie poruszać się na płaszczyźnie, ale bez zmiany orientacji. Sterowanie orientacją polega na obracaniu wieżyczki zamontowanej na platformie. • (2,0) - tzw. układ różnicowy (ang. differential drive), występuje ograniczenie ruchu w poprzek. Konstrukcja opiera się na dwóch kołach napędowych o wspólnej osi obrotu. • (1,2) - bi-steerable car, pojazd o parze sprzężonych kół skrętnych z przodu i z tyłu, przy czym jedna z nich jest dodatkowo napędzana. • (1,1) - samochód, dwa sprzężone koła ustalone z tyłu i skrętne z przodu. W zależności od konstrukcji jedna z tych par jest napędzana. Koła przednie sprzężone są mechanizmem Ackermana, natomiast na osi kół tylnych zamontowany jest tzw. element różnicowy. Podział ten dotyczy jedynie platform, których kinematyka strukturalnie pozwala na ruch kół bez poślizgu. Jedną z prostszych w realizacji i często stosowanych w robotyce jest robot mobilny o strukturze kinematycznej (2,0). 2.1 Kinematyka typu (2,0) Robot tego typu posiada dwa jednakowe napędzane koła o ustalonej wspólnej osi. Jest to tzw. układ różnicowy. Kinematykę (2,0) charakteryzuje „naturalne” ograniczenie ruchu w poprzek, co pozwala zaklasyfikować pojazdy tego typu do grupy robotów nieholonomicznych. Łatwo wyobrazić sobie, że gdy koła obracać się będą z taką samą prędkością, lecz w przeciwnym kierunku, pojazd będzie obracał się w miejscu. Przy tej samej prędkości obrotowej i tym samym zwrocie, pojazd porusza się po linii prostej. Opis ruchu robota mobilnego o kinematyce (2,0) jest zatem bardzo intuicyjny. Określenie modelu takiego pojazdu (rys. 2.1) wymaga założenia charakterystycznego punktu P , będącego początkiem lokalnego układu odniesienia. Z reguły przyjmuje się, że punkt ten leży na osi kół dokładnie pomiędzy nimi i w idealnym przypadku pokrywa się ze środkiem geometrycznym pojazdu. W praktyce pojazd wyposażony jest w podpory z przodu i z tyłu redukujące odchylenia wokół osi poprzecznej (w aeronautyce nazywane jako kąt pitch). Mogą być to ślizgacze lub koła pasywne (np. koło Kastora lub kula). 7 2.2. Odometria pojazdu o kinematyce (2,0) Rysunek 2.1: Kinematyka robota klasy (2,0). Konfigurację robota można zdefiniować jako ~qr = [θr Xr Yr ]T , gdzie współrzędne Xr i Yr określają współrzędne punktu P , zaś θr oznacza orientację robota względem układu podstawowego. 2.2 Odometria pojazdu o kinematyce (2,0) Odometria polega na estymacji konfiguracji robota na podstawie zmierzonej drogi kątowej kół. Jest jednym z przykładów realizacji tzw. Dead Reckoning’u, czyli całkowania ścieżki. Metoda ta wymaga dyskretnego sumowania przebytych odcinków trasy, dlatego obarczona jest narastającym błędem spowodowanym nawarstwianiem się błędów systematycznych. Efektywne wykorzystanie odometrii wymaga wykonania precyzyjnej kalibracji [JBF96]. 2.2.1 Zasada wykonywania pomiaru Z silnikami napędzającymi koła połączone są czujniki kąta, takie jak czujniki obrotowo impulsowe, zwane także enkoderami, lub resolwery. Załóżmy, że promienie obu kół są jednakowe i równe r, rozstaw między kołami wynosi b, a chwilowe prędkości prawego i lewego koła wynoszą odpowiednio: ωP i ωL . Równania opisujące prędkość obrotową i postępową robota w ujęciu wektorowo macierzowym przedstawia poniższa równość: " ω vx # " = − rb r 2 r b r 2 #" ωL ωP # , (2.1) natomiast pełne równanie stanu w wyrażone w układzie globalnym wygląda następująco: 8 2.3. Rozmieszczenie dalmierza laserowego na robocie θ̇r Ẋr = Ẏr 2.2.2 r b − rb r 2 r 2 cos θr sin θr " r cos θ r 2 r sin θ r 2 ωL # ωP . (2.2) Błędy systematyczne i losowe odometrii Model odometrii wymaga znajomości dokładnych wartości parametrów geometrycznych robota. W rzeczywistości informacje te przyjmowane są z pewnym przybliżeniem i po dłuższym czasie użytkowania urządzenia nawarstwiające się błędy spowodowane tymi rozbieżnościami dają o sobie znać. Ponadto koła mają pewną szerokość i elastyczność, dlatego kontakt z podłożem nie jest punktowy, jak zakłada przyjmowany model matematyczny. Co więcej, przekładnie na silnikach zawsze wprowadzają pewne luzy, które również przyczyniają się do powstawania błędów. Nawet jeżeli przeprowadzona została bardzo precyzyjna kalibracja, po przebyciu odpowiednio długiej trasy rzeczywisty stan robota może znacznie odbiegać od tego, jaki wskazuje odometria. Oprócz niedokładności geometrii napędu, w środowisku zaistnieć mogą sytuacje losowe, które również fałszują odczytywany wynik odometrii. Są to, np. przypadki, w których koło robota zostanie uniesione w powietrze, skutkiem czego może być krótkotrwała zmiana prędkości (jako wynik zmniejszonego obciążenia). Innym przykładem jest zaistnienie poślizgu poprzecznego lub wzdłużnego. Co więcej, jeżeli rozważamy ruch robota na płaszczyźnie, wówczas wszelkie jej zniekształcenia również przekłamują wynik estymacji, ponieważ robot odbywa dodatkową drogę w kierunku pionowym. Mimo tych ograniczeń, dzięki prostocie realizacji, dużej dokładności krótkoterminowej i dobrej dynamice, odometria jest jednym z podstawowych narzędzi lokalizacji względnej wykorzystywanych w robotach kołowych. 2.3 Rozmieszczenie dalmierza laserowego na robocie Ponieważ pozycja skanera na przenoszącym go robocie nie jest zwykle jednakowa z punktem charakterystycznym P , należy wyznaczyć transformację układu związanego z czujnikiem do układu pojazdu. Zakłada się, że parametry usytuowania sensora względem układu lokalnego są znane i można je zapisać w postaci ~qs = [ϕs Xs Ys ]T . Pozycja sensora w globalnym układzie odniesienia jest zależna od stanu robota i określona wzorami: ϕgs θr 1 0 0 ϕs Xgs = Xr + 0 cos θr − sin θr Xs , Ygs Yr 0 sin θr cos θr Ys (2.3) 2.3. Rozmieszczenie dalmierza laserowego na robocie 9 Schematycznie rozmieszczenie skanera przedstawiono na rysunku 2.2. Szczegółowy opis transformacji przedstawiony będzie w rozdziale 3.3. Rysunek 2.2: Model robota z zamontowanym sensorem. Rozdział 3 Przegląd sensorów odległości Sensory odległości to praktyczne narzędzia, w jakie natura wyposażyła kilka gatunków zwierząt. Robotyka mobilna w dużej mierze opiera na nich swoje działanie, gdyż systemy wizyjne są na obecnym stanie technologicznym zbyt mało efektywne. Jak wspomniano we wstępnej części pracy, skanery laserowe w znacznej mierze wyparły inne dalmierze w zastosowaniu do realizacji problemu SLAM. Mimo to, omówione zostaną także pokrótce czujniki światła podczerwonego (IR - ang. Infrared ) oraz sonary ultradźwiękowe (US ang. Ultrasonic). 3.1 Czujniki triangulacyjne, wykorzystujące światło niekoherentne Dalmierze tego typu charakteryzują się stosunkowo niewielkim zasięgiem pomiarowym. Współcześnie największą ofertę ma firma Sharp, która produkuje czujniki o zasięgu nawet do 5,5 metra [sha09]. Zaletą tych czujników jest niewielki rozmiar i pobór prądu (średnio 35 mA przy napięciu 4,5-5,5 V). 3.1.1 Zasada działania Pojedynczy pomiar polega na emisji skupionej modulowanej wąskiej wiązki światła z zakresu podczerwieni w kierunku przeszkody i następnym zarejestrowaniu promienia odbitego przez czujnik PSD (ang. Position Sensitive Detector ) lub matrycę CCD (ang. Charge Coupled Device). W obu przypadkach do przeliczenia sygnału zwrotnego wykorzystuje się zasadę triangulacji [Paz02]. Odbita wiązka rejestrowana jest przez detektor pod pewnym kątem ϕ, który w znacznej mierze zależny jest od odległości do przeszkody. Obrazuje to rys. 3.1. Zakładając, że przeszkoda znajduje się w skończonej odległości d od urządzenia, zapisać możemy zależność: tan ϕ = x L = , d D 10 (3.1) 3.1. Czujniki triangulacyjne, wykorzystujące światło niekoherentne 11 Rysunek 3.1: Zasada pomiaru sensoru optycznego. gdzie L to rozstaw między środkiem emitera i czujnika PSD, D to odległość powierzchni czujnika PSD od soczewki skupiającej wiązkę, natomiast x to odległość obrazu punktu P znajdującego się na przetworniku czujnika od osi optycznej. Stąd mierzoną odległość można obliczyć następująco: d= LD . x (3.2) Wartości L oraz D są znane, gdyż są to parametry konstrukcyjne, natomiast x jest przesunięciem liniowym na powierzchni detektora, które wyznacza się poprzez odpowiednie przeliczenie zwracanej przezeń wartości prądu. 3.1.2 Charakter błędów i problemy związane z pomiarem Zwracana przez sensor wartość analogowa ma w stosunku do mierzonej odległości charakter nieliniowy. W przypadku modelu GP2D12 firmy Sharp niezależne źródła internetowe [Zuf01] opisują znaczne zmiany w precyzji pomiaru w funkcji odległości. Przy 200mm błąd należy do niewielkiego przedziału ±2mm zaś już dla 600mm precyzja ta spada do ±20mm. Ponadto, bez odpowiedniej filtracji cyfrowej, wrażliwy na światło zewnętrzne czujnik PSD oraz prąd pobierany przez emitor LED wprowadzają do pomiaru znaczne szumy na wyjściu (±100 mV). Sam producent nie zawiera informacji o błędach systematycznych czujnika w nocie katalogowej. 12 3.2. Sonary ultradźwiękowe Dopuszczalny kąt padania wiązki podczerwonej ograniczony jest do 40o . Emitowane światło jest wrażliwe na własności optyczne przeszkody takie jak kolor, gęstość optyczna czy reflektancja. Modyfikują one intensywność odbitej fali, co przekłada się na wzrost niepewności pomiarowej. 3.2 Sonary ultradźwiękowe Ultradźwięki to fale akustyczne o częstotliwości wyższej niż górna granica słyszalności człowieka (>20kHz, np. 40kHz). Trafiająca na przeszkodę fala implikuje źródło kolejnej zgodnie z zasadą Huygensa. Wynikiem tego jest, np. odbicie dźwięku czyli tzw. echo. Właściwość tą wykorzystano w urządzeniach jakimi są sonary. Swoje pierwowzory czerpią one z natury, gdyż niektóre zwierzęta potrafią w taki sposób lokalizować przeszkody na swojej drodze. Zastosowanie znalazły one nie tylko w robotyce, lecz również, a nawet przede wszystkim w marynarce i żegludze. Ponieważ woda ma ponad 780 razy większą gęstość niż powietrze, fale akustyczne poruszają się w niej około 4,5 razy szybciej. Z tego względu za pomocą sonarów mierzone mogą być bardzo duże odległości, np. z powierzchni do dna oceanicznego. Bliskim bratem sonarów są radary, które opierają swoje działanie na falach radiowych. Sonary ultradźwiękowe zyskały swoją popularność ze względu na niską cenę, niewielki pobór prądu oraz nieinwazyjność w środowisko (mimo że zaliczamy je do czujników aktywnych). 3.2.1 Zasada działania Podstawową metodą pomiaru odległości jest pomiar czasu, jaki fala potrzebuje na przebycie drogi do przeszkody i z powrotem (TOF - ang. Time Of Flight) [Paz09, Joe09]. W kierunku przeszkody wysyłana jest krótka paczka ultradźwiękowa (ok. 6ms), która po pewnym czasie odbierana jest przez detektor. Znając prędkość c dźwięku w środowisku oraz czas propagacji t, możemy określić drogę r z prostej zależności: r= ct . 2 (3.3) Ponadto wykorzystując znajomość efektu Dopplera, możemy określić zmianę częstotliwości powracającej fali i na jej podstawie estymować prędkość liniową poruszającego się obiektu. 3.2.2 Charakter błędów i problemy związane z pomiarem Niestety sonary ultradźwiękowe wykazują sporo właściwości, które znacznie ograniczają możliwości ich zastosowania. Pierwszą istotną wadą jest szerokość emitowanej fali. W 13 3.2. Sonary ultradźwiękowe Rysunek 3.2: Zasada pomiaru sonaru US. zależności od powierzchni przetwornika ρ i długości emitowanej fali λ (rmin = ρ2 4λ ) wyróż- niamy, tzw. pole Fresnela (przed rmin ), w którym rozchodzi się ona drastycznie wszerz i powstają niepożądane listki boczne, oraz tzw. pole Fraunhofera, w którym fala rozchodzi się w jednym kierunku. Z tego względu pomiar łatwo może być zafałszowany, gdyż odbita fala może pochodzić ze źródła innego niż przeszkoda (np. z podłoża). Rysunek 3.3: Fala generowana przez dalmierz ultradźwiękowy. Ponieważ odbiornik zwykle znajduje się w niewielkiej odległości od emitera, musi być wyłączony w trakcie generowania fali, gdyż ta dotarłaby do niego przed odbiciem. Powoduje to istnienie tzw. martwego pola, czyli minimalnej odległości, od której sensor faktycznie może mierzyć. Prędkość dźwięku w ośrodkach sprężystych zależna jest od kilku czynników, takich jak prądy (wiatry), temperatura czy wilgotność. Powoduje to utrudnienia podczas kalibracji urządzenia. Ponadto jeżeli powierzchnia przeszkody jest gładka i duża w stosunku do długości fali, może zajść zjawisko odbicia zwierciedlanego, gdy kąt padania będzie zbyt duży. Niektóre materiały mają właściwości absorbujące silniejsze niż inne, co również może wpłynąć na precyzję pomiaru. Problem pojawia się także gdy mierzona jest odległość do narożnika lub zwężenia. Powstające między ścianami echa przekłamują odczytywaną 3.3. Skanery laserowe 14 wartość. 3.3 Skanery laserowe Dalmierze laserowe to zwykle precyzyjne urządzenia, które do pomiaru odległości wykorzystują koherentne światło laserowe. Jego zaletami są niewielka długość fali, a zatem niewielkie zniekształcenia przy różnych właściwościach przeszkody oraz mała szerokość emitowanej wiązki, co pozwala uzyskać dużą rozdzielczość kątową. Jeżeli urządzenie samodzielnie obraca źródło światła i wykonuje serię pomiarów z pewnym krokiem, mówimy wówczas o skanerach laserowych (również LIDAR - ang. Light Detection and Ranging). Rysunek 3.4: Graficzna interpretacja wykonywania skanu. Początkowo dalmierze laserowe wykorzystywano głównie w geodezji, budownictwie czy w zastosowaniach militarnych. Skanery laserowe dedykowane były celom przemysłowym, dotyczącym zagadnień bezpieczeństwa (bariery świetlne), czy kontrola jakości [Com02]. Ich główne zalety, do których należy m.in. szybkość działania i duża precyzja, zostały dostrzeżone również w obszarze robotyki mobilnej. W wyniku przeprowadzenia pojedynczego cyklu pomiarowego uzyskuje się N uporządkowanych liczb odpowiadających zmierzonym odległościom. Dla skanerów laserowych najbardziej naturalną reprezentacją wyniku jest reprezentacja polarna (biegunowa). Stąd na podstawie znajomości kąta emisji wiązki i zmierzonej odległości można określić współrzędne w globalnym układzie kartezjańskim według następujących zależności: xi = Xr + Xs cos θr − Ys sin θr + ri cos (θr + ϕs + ϕi ) , yi = Yr + Xs sin θr + Ys cos θr + ri sin (θr + ϕs + ϕi ) (3.4) 15 3.3. Skanery laserowe gdzie Xr , Yr , θr oznaczają konfigurację robota wyrażoną w globalnym układzie współrzędnych, Xs , Ys , ϕs oznaczają współrzędne i orientację skanera laserowego wyrażone w lokalnym układzie współrzędnych związanym z robotem, zaś ri i ϕi oznaczają odpowiednio odległość i kąt emisji wiązki w i-tym pomiarze. 3.3.1 Zasada działania Pomiar odległości skanerem laserowym polega na pomiarze czasu (TOF, podobnie jak w sonarach), przesunięcia fazowego ciągłej fali świetlnej o modulowanej sinusoidalnie amplitudzie (tzw. AMCW - ang. Amplitude Modulated Continous Wave) lub na zasadzie triangulacji, jak w przypadku dalmierzy IR [Skr07]. Metoda TOF została omówiona pokrótce przy opisie sonarów, ale należy nadmienić, że dla laserów prędkość fali równa jest prędkości światła w ośrodku rozchodzenia się (tu: powietrze). Oznacza to, że światło przebywa drogę 1m w czasie tT OF = 3,3ns. Dlatego też stosuje się różne podejścia do problemu zliczania tak niewielkich odcinków czasowych, np. metody podwójnego noniusza lub ładowanie kondensatora. Aby dokładność pomiaru była na poziomie centymetrowym, pomiar czasu musi mieć rozdzielczość pikosekundową [Hol87]. Metoda triangulacji wspomniana była z kolei przy okazji omawiania dalmierzy IR. Niestety ich sporą wadą jest ograniczony zasięg (zwykle mniej niż 5m) z uwagi na ograniczoną bazę oraz wrażliwość detektora na światło ze środowiska. Określanie odległości poprzez pomiar przesunięcia fazowego, a więc metoda AMCW, omija problem techniczny jakim jest pomiar niewielkich odcinków czasu. W przypadku modulacji o jednej składowej częstotliwości, możemy wyznaczyć odległość ze wzoru: r= c φd , 4πfAM (3.5) gdzie φd oznacza przesunięcie fazowe między falą wysłaną i odebraną, fAM to częstotliwość modulacji amplitudy, zaś c to prędkość światła. Taki typ modulacji stosować można w ograniczonym zakresie odległości, dla których przesunięcie nie przekracza wartości 2π. Aby rozszerzyć ten zakres można, np. wprowadzić kolejną składową częstotliwości modulacji i na podstawie dwóch zmierzonych przesunięć fazowych określić faktyczną odległość. 3.3.2 Źródła błędów systematycznych i losowych W zależności od wybranej metody, wynik pomiaru obarczony jest różnymi błędami systematycznymi. Dla metody AMCW istotna jest ograniczona dokładność pomiaru fazy 3.3. Skanery laserowe 16 zaś dla metody TOF niedokładność pomiaru czasu. Dodatkowa niepewność związana jest z określeniem kąta wirującego zwierciadła. Ponieważ skanery są dalmierzami optycznymi, ich praca zakłócana jest przez zmienność parametrów środowiska, do których należy m.in. gęstość optyczna ośrodka propagacji fali, właściwości reflektancyjne powierzchni przeszkody co może powodować odbicie zwierciedlane padającego promienia lub jego silną absorpcję. Przykładem błędu losowego jest tzw. efekt śladu optycznego (ang. mixed pixels) wynikający z niezerowej szerokości emitowanego promienia światła. Jeżeli część wiązki trafi na przeszkodę o znacznie innych własnościach optycznych niż pozostała, informacja niesiona przez powracającą falę jest zafałszowana. Sytuacja taka może wystąpić, np. gdy wiązka pada na krawędź przeszkody. 3.3.3 Skaner LMS200 firmy SICK Do przeprowadzonych badań wykorzystano skaner LMS200 firmy Sick AG. Jest to urządzenie o stosunkowo dużych gabarytach (156 x 155 x 185mm) i wadze (4,5kg), zasilane stałym napięciem 24V i pobierające w trakcie pracy moc bliską 30W. Z noty katalogowej [LMS06] wynika, że zasięg pomiaru wynosi 8m, przy rozdzielczości równej 10mm i odchyleniu standardowym na poziomie σ = 5mm. Skanowanie wykonywane jest w różnych trybach, w zakresie: 0o − 180o lub 0o − 100o z rozdzielczością kątową równą 0,25o , 0,5o lub 1o . Do pomiaru odległości zastosowano metodę TOF. Urządzenie LMS200 wykorzystuje światło o długości fali równej 905nm (czyli bliską podczerwień), emitowane przez diodę laserową o mocy 1mW. Aby pomiar spełniał deklarowaną rozdzielczość 10mm, licznik czasu musi być taktowany z okresem krótszym niż 66ps. Wiązka światła trafia na wirujące lustro ustawione pod kątem 45o do płaszczyzny pomiaru. Rysunek 3.5: Uproszczone przedstawienie skanera SICK LMS 200. Nominalna rozdzielczość skanowania wynosi 1o , co przy prędkości obrotowej lustra ω = 75 obr s daje czas pojedynczego pomiaru równy 370µs. Zwiększenie rozdzielczości dwu- lub czterokrotne 3.3. Skanery laserowe wymaga odpowiednio większej ilości wykonanych obrotów lustra. 17 Producent nie po- daje charakterystyki błędu kątowego wiązki, której orientacja określana jest za pomocą enkodera. Badania z pracy [Skr07] pozwalają jednak uznać, że błąd ten można opisywać rozkładem normalnym z odchyleniem standardowym σϕ = 0,083o . Rozdział 4 Sposoby reprezentacji środowiska Podjęcie decyzji o wykonaniu ruchu przez robota zwykle opiera się na wiedzy o otaczającym środowisku. Informacja ta zawarta jest w postaci tzw. mapy. Ponieważ rzeczywiste otoczenie jest zwykle bardzo złożone i często słabo ustrukturyzowane, mapy uwzględniają kluczowe cechy jak usytuowanie przeszkód w przestrzeni. Dla jednostek latających czy podwodnych opis środowiska przyjmuje formę trójwymiarową. Na potrzeby pracy omówione zostaną wybrane warianty reprezentacji środowiska 2D. Typowo wyróżnia się trzy główne sposoby opisu środowiska, do których należą: • mapa rastrowa, • mapa wektorowa, • mapa topologiczna. Pierwsze dwa wymienione typy należą do kategorii modeli geometrycznych, w których jawnie przedstawiane są cechy środowiska takie, jakie postrzega człowiek (przeszkody i wolne przestrzenie). Mapy topologiczne przypisują konkretnym punktom środowiska odpowiednie identyfikatory i przedstawiają zależności zachodzące między nimi. 4.1 Mapa rastrowa Generowanie mapy rastrowej polega na zaprojektowaniu siatki o pewnej rozdzielczości, której pola w trakcie pracy robota sukcesywnie wypełniane są odpowiednimi wartościami liczbowymi. W najprostszej postaci może być to forma binarna, gdzie 1 oznacza pole zajęte („ jest przeszkoda”) zaś 0 oznacza pole wolne. W bardziej zaawansowanym przypadku pola przyjmują wartości z przedziału h0,1i, które stanowią o prawdopodobieństwie zajętości komórki. Modele takie generowane są m.in. przy użyciu reguły Bayesa, teorii ewidencji Dempstera-Shafera lub w oparciu o zbiory rozmyte [Skr07]. Mapy tego rodzaju są nieefektywne pod względem zajętości pamięci, lecz są proste w budowie i dają duże możliwości w procesie generowania ścieżki robota. Teselacja przestrzeni, czyli jej dyskretyzacja, niesie pewną niedokładność i utratę informacji. Przyjmując jednak rozdzielczość 18 19 4.2. Mapa wektorowa Rysunek 4.1: Przykładowa mapa rastrowa. siatki małą w stosunku do rozmiarów robota oraz dużą w stosunku do precyzji systemu pomiarowego, nie stanowi to istotnego kłopotu. W praktyce środowisko dzieli się na komórki o wielkości z zakresu 1×1cm dla dalmierzy laserowych do 20×20cm dla sonarów ultradźwiękowych. Samolokalizacja robota przy wykorzystaniu mapy rastrowej jest utrudniona ze względu na ogrom zapisanej informacji. Dopasowanie cech można sprowadzić do zadania śledzenia konturu obiektu znanego z przetwarzania obrazu i widzenia maszynowego. 4.2 Mapa wektorowa Mapa wektorowa przedstawia obiekty środowiska zewnętrznego za pomocą prymitywnych figur geometrycznych takich jak punkty, odcinki, łuki czy wieloboki, których usytuowanie przedstawione jest jawnie. Ich selekcja na podstawie wykonanego cyklu pomiarowego wymaga stosunkowo długiego czasu przetwarzania, lecz reprezentacja jest efektywna pod względem wykorzystania zasobów pamięciowych systemu. Odnalezione figury i zależności geometryczne występujące między nimi ułatwiają późniejszy proces dopasowania cech i lokalizacji robota, co doskonale nadaje się do zagadnienia SLAM. Poziom opisu jest więc bardziej abstrakcyjny niż dla mapy rastrowej. Problemem map wektorowych jest trudność rejestrowania elementów dynamicznych środowiska. Zaletą natomiast jest możliwość wykorzystania gotowych map, takich jak plany budynków, jako wiedzy a priori. Co więcej, każda z uzyskanych cech środowiska może być reprezentowana poprzez wektor parametrów, będących zmiennymi losowymi. 20 4.3. Mapa topologiczna Rysunek 4.2: Przykładowa mapa wektorowa. Ma to istotne znaczenie przy wykorzystaniu narzędzi fuzji danych, przy procesie lokalizacji i mapowania. W dalszej części pracy zdecydowano się na wykorzystanie mapy wektorowej. W głównej mierze decyzja ta motywowana jest precyzją z jaką pozwala ona rejestrować środowisko oraz możliwościami dopasowania cech, potrzebnych podczas procesu budowy mapy globalnej i lokalizacji. 4.3 Mapa topologiczna Rysunek 4.3: Przykładowa mapa topologiczna. Mapy topologiczne cechują się nieco większym poziomem abstrakcji niż poprzednio omówione typy. Reprezentują one pewne szczególne usytuowania elementów środowiska, istotne z punktu widzenia wykonywanego zadania. Określone w ten sposób relacje przed- 4.3. Mapa topologiczna 21 stawiają, np. bezkolizyjną ścieżkę. Najczęściej są one przedstawiane za pomocą grafów, w których wierzchołki oznaczają lokacje, a krawędzie reprezentują połączenia. Tego typu mapy zawierają często także cechy geometryczne środowiska tak, aby ich odczyt stawał się bardziej intuicyjny, jednak nie zawierają szczegółowych kształtów obiektów. Są to zwykle mapy większych powierzchni, np. pomieszczeń w budynku, których opis przyjmuje charakter zgrubny. W związku z małą ilością szczegółów, lokalizacja robota jest znacznie utrudniona i ma szczególne znaczenie na poziomie globalnym. Rozdział 5 Środowisko symulacyjne procesu skanowania otoczenia Ponieważ korzystanie ze sprzętu jakim jest skaner laserowy nie zawsze jest wygodne i możliwe, na potrzeby pracy opracowane zostało środowisko symulacyjne modelujące proces pomiaru, umożliwiające wprowadzenie wirtualnego otoczenia jak również dogodne dobranie parametrów skanera. W wyniku symulacji zwracany jest ciąg liczb, odpowiadający kolejnym odległościom zmierzonym przez wirtualne urządzenie, które poddać można dowolnej obróbce. Symulator działa relatywnie szybko i daje praktyczne możliwości wizualizacyjne, które przydatne są szczególnie podczas analizy algorytmów tworzenia mapy i lokalizacji. 5.1 Model skanera laserowego Model sensora opisany jest za pomocą grupy zmiennych i parametrów zawierających takie informacje jak jego pozycja, orientacja, rozdzielczość, ilość pomiarów przypadających na skan oraz zasięg (także dolną granicę). Ponadto zmierzone odległości oraz kierunek wirtualnych promieni lasera obarczone są pseudolosowym błędem o rozkładzie normalnym i zerowej wartości oczekiwanej. Wszystkie te parametry można dowolnie modyfikować. Przyjęte standardowo wartości wynoszą: • rozdzielczość: 0,5o , • ilość pomiarów N: 361, • zasięg: 100-8000mm, • odchylenie standardowe błędu pomiaru odległości: 10mm, • odchylenie standardowe kąta wiązki: 0,083o . Wartości ostatnich dwóch spośród wymienionych wzorowano na wnioskach z pracy [Skr07] dotyczących modelu niepewności skanera LMS200. 22 23 5.2. Model wirtualnego otoczenia Podczas wizualizacji skaner laserowy przedstawiany jest za pomocą kwadratu o boku 156 jednostek, które utożsamiane są z milimetrami. Zachowana została zatem rzeczywista wielkość urządzenia. Pozycja w układzie globalnym określana jest względem środka figury. Wychodzący z niego odcinek obrazuje orientację skanera. 5.2 Model wirtualnego otoczenia Założono, że przeszkody i granice wirtualnego otoczenia budowane są za pomocą odcinków, jako że są to figury geometryczne łatwe w opisie i analizie. Świat rzeczywisty jest skomplikowany geometrycznie, a przedstawianie go za pomocą skończonej ilości odcinków stanowi olbrzymie uproszczenie. Jednak dla wielu rzeczywistych środowisk o dobrze uwarunkowanej strukturze wybrana reprezentacja jest wystarczająca. Zaprojektowanie nowej przeszkody polega na wprowadzeniu współrzędnych kartezjańskich początku i końca odcinka do odpowiedniej tablicy. Przykładowe otoczenie przedstawiono na rysunku 5.1. Rysunek 5.1: Przykładowe zamodelowane otoczenie. Podając współrzędne odcinków, należy mieć na uwadze, że wirtualne jednostki odpowiadają milimetrom. Praktyczną uwagą podczas modelowania otoczenia jest wykorzystanie pojedynczego odcinka o dłuższych wymiarach zamiast dwóch, które leżą na wspólnej prostej. Ogranicza to w dalszej części ilość obliczeń, a nie zmienia w żaden sposób rezultatów pomiaru. 5.3 Proces pomiarowy Wykonanie sekwencji pomiarowej wymaga podania informacji o otoczeniu i konfiguracji lasera. W pierwszej kolejności generowany jest wektor parametrów N prostych, reprezentujących wiązki laserowe wychodzące z urządzenia. Przechodzą one przez środek skanera i kolejne punkty na okręgu jednostkowym wokół niego. Na tym poziomie uwzględniany jest model niepewności odchylenia wiązki. Parametry prostych dla kolejnych wiązek 24 5.3. Proces pomiarowy generowane są w kierunku przeciwnym do wskazówek zegara, czyli, z punktu widzenia skanera, od prawej do lewej. Przyjęto konwencję zapisu wykorzystanych figur w postaci ogólnego równania prostej Ax + By + C = 0. W ten sposób można uniknąć problemu osobliwości (który napotyka równanie kierunkowe dla odcinków pionowych) i otrzymać pewne rozwiązanie punktu przecięcia z inną prostą. Podobne parametry (A, B, C) generowane są dla każdej z przeszkód, tworząc drugi wektor prostych. Rysunek 5.2: Przykładowy skan wykonany w wirtualnym pomieszczeniu. Poniżej przedstawiono uproszczony zapis algorytmu wykonywania pomiaru. Algorytm 1: Pomiar 1 for i =1:1: IloscPomiarow 2 r ( i ) = 10000; 3 [Am Bm Cm] = ParametryWiazki ( Xs , Ys , s i g m a p h i , i ) ; 4 for j =1:1: IloscOdcinkow 5 [ Ao Bo Co ] = ParametryPrzeszkody ( j ) ; 6 [X Y] = WyznaczPunktPrzeciecia (Am,Bm,Cm, Ao , Bo , Co ) ; 7 d = WyznaczOdleglosc (X, Y, Xs , Ys ) ; 8 i f (d < r ( i )) 9 r( i ) = d; end 10 11 end 12 i f ( r ( i ) > 8000 | | r ( i ) < 1 0 0 ) 13 14 r ( i ) = 0; else r ( i ) = r ( i ) + Blad ( s i g m a r ) 15 16 end 17 end 25 5.3. Proces pomiarowy Algorytm wykorzystuje podwójną pętlę for. Pierwsza z nich przeprowadza iterację po wektorze wiązek laserowych, druga po wektorze przeszkód. Dla każdej wiązki, po kolei odnajdywane są punkty przecięcia ze wszystkimi przeszkodami przy jednoczesnym sprawdzaniu czy odnaleziony punkt faktycznie należy do aktualnie analizowanej figury (czy nie znajduje się poza odcinkiem). Punkt przecięcia dwóch prostych A1 x + B1 y + C1 = 0 i A2 x + B2 y + C2 = 0 wyznacza się wykorzystując teorię wyznaczników i wzory Cramera: " A1 B1 A2 B2 #" x y # " = −C1 −C2 # " ⇒ x y # " = A1 B 1 A2 B 2 #−1 " −C1 −C2 # . (5.1) Spośród znalezionych punktów dla danej wiązki wybierany jest ten o najmniejszej odległości do skanera. Na koniec dodawany jest błąd pomiarowy zgodny z modelem niepewności. Algorytm wykonuje zatem O(n·m) obliczeń, gdzie n oznacza ilość pomiarów przypadających na skan, zaś m ilość zaprojektowanych przeszkód. Przykładowy wynik takiej operacji obrazuje rysunek 5.2. Skaner zaznaczony jest za pomocą kwadratu i odcinka wskazującego jego orientację. Czarne punkty przedstawiają pomiary wykonywane z ruchem przeciwnym do wskazówek zegara. Rozdział 6 Ekstrakcja cech geometrycznych z pojedynczego skanu W wyniku przeprowadzenia pojedynczego cyklu pomiarowego otrzymywany jest szereg kolejnych zmierzonych odległości. Bez odpowiedniej analizy są to jedynie mało istotne liczby, które bezpośrednio mogą znaleźć zastosowanie tylko dla niewielkiej klasy algorytmów dotyczących sterowania robotów mobilnych. Proces odzyskiwania informacji o zbadanym otoczeniu, nazywany często ekstrakcją cech geometrycznych, polega na odnajdywaniu grup punktów, które mogą reprezentować pewną przeszkodę (landmark) i zarejestrowaniu ich w prostszej postaci, np. jako odcinek czy łuk. Figury te nazywane będą dalej prymitywami geometrycznymi lub po prostu prymitywami. Zadaniem ekstrakcji jest nie tylko ostateczne wydzielenie potencjalnych przeszkód, lecz również wstępna eliminacja błędnych pomiarów, powstałych, np. wskutek śladu optycznego czy innych niedokładności narzędzia. Występowanie takich błędów nie zostało uwzględnione w środowisku symulacyjnym, jednak należy mieć je na uwadze podczas projektowania algorytmu do użycia w środowisko naturalnym. 6.1 Grupowanie Pierwszym krokiem jest określenie przynależności poszczególnych elementów uzyskanych na podstawie pomiarów do zbiorów, na podstawie których w późniejszej fazie wyłaniane będą prymitywy. Jednym ze sposobów klasyfikowania punktów do grup jest badanie kryterium odległości euklidesowej pomiędzy dwoma kolejnymi zmierzonymi wartościami. Wymaga to wyrażenia współrzędnych tych punktów we współrzędnych kartezjańskich i następnie obliczeniu przesunięcia między nimi, poprzez wykorzystanie nieliniowej operacji pierwiastkowania. Można tutaj zauważyć, że im dalej przeszkoda znajduje się od skanera, tym mniejsze jest zagęszczenie znalezionych na niej punktów (rys. 6.1). Oznacza to, że kryterium klasyfikacji powinno zmieniać się elastycznie w stosunku do mierzonej odległości. 26 27 6.1. Grupowanie Biorąc pod uwagę efektywność obliczeniową oraz fakt, że „naturalnym” zapisem pomiarów dla skanerów laserowych jest postać biegunowa, zdecydowano się na wykorzystanie procedury grupowania zaproponowanej w pracy [Skr07]. W metodzie tej zamiast oblicza- Rysunek 6.1: Ilustracja zmniejszania się zagęszczenia pomiarów wraz z malejącym kątem padania promieni do płaszczyzny przeszkody. nia odległości euklidesowej między dwoma punktami badany jest stosunek wartości dwóch następujących po sobie pomiarów. Punkt następny klasyfikowany jest do tej samej grupy co poprzedni, jeżeli stosunek ten znajduje się w pewnym ustalonym przedziale. W przeciwnym wypadku rozpoczyna on nową grupę. W tym celu definiuje się dwa klasyfikatory kmin i kmax , które określają dolną i górną granicę tego przedziału. Przykładowymi wartościami tych parametrów mogą być kmin = 0,9 i kmax = 1,1, co w praktyce oznacza, że pomiar następny przypisany zostanie do tej samej grupy wtedy i tylko wtedy, gdy jego wartość nie przekracza 90% wartości pomiaru poprzedniego w dół i 110% wartości pomiaru poprzedniego w górę. Jest to metoda wymagająca bardzo niewielkich nakładów obliczeniowych (O(n)). Przykładowy zapis tego algorytmu w pseudokodzie wygląda następująco: Algorytm 2: Grupowanie 1 GroupNumber = 1 ; 2 NumberOfGroup ( 1 ) = GroupNumber ; 3 4 5 6 f o r i = 1 : 1 :N−1 i f ( r ( i +1) >= r ( i ) ∗Kmin && r ( i +1) <= r ( i ) ∗Kmax) NumberOfGroup ( i +1) = GroupNumber ; else 7 GroupNumber = GroupNumber + 1 ; 8 NumberOfGroup ( i +1) = GroupNumber ; 9 end 6.2. Segmentacja 28 10 end gdzie N oznacza ilość pomiarów, a r(i) pomiar obecny. W wyniku tego procesu otrzymuje się wektor liczb całkowitych o rozmiarze 1×N, którego wartości oznaczają numer grupy, do której należy dany pomiar oraz skalar zawierający liczbę uzyskanych grup. Im bardziej zawężony zostanie przedział klasyfikacji, tym więcej z jednego skanu uzyska się grup. Problemem grupowania są przeszkody mało odległe od robota, których wektor normalny zorientowany jest do padających promieni lasera prawie prostopadle. Oznacza to, że mimo bliskiego występowania po ich powierzchni „rozstrzelonych” zostanie jedynie kilka pomiarów, które z dużym prawdopodobieństwem zostaną sklasyfikowane jako osobne grupy, eliminowane w późniejszym etapie. Inną kwestią są pojedyncze pomiary na tle większej przeszkody, które rozbijają ją na dwie niezależne grupy. Oba problemy zobrazowano na rysunku 6.2. Grupy będące wynikiem pojedynczego pomiaru są kłopotliwe w inter- Rysunek 6.2: Problem odszukiwania przeszkody o znacznym kącie nachylenia (po lewej) i problem pojedynczych pomiarów rozbijających większe grupy. pretacji. Niosą one pewną informację, która może okazać się istotna (np. gdyby promień lasera odbiła bardzo wąska, lecz solidna przeszkoda znajdująca się przed robotem), aczkolwiek trudno rozpatrywać pojedynczy punkt jako istotny na tle kompletnej mapy otoczenia. Algorytm eliminuje takie grupy, gdyż na poziomie laboratoryjnym zakłada się ruch jednostki w środowisku silnie ustrukturyzowanym, pozbawionym tego typu niedogodności. 6.2 Segmentacja Ponieważ w każdej z wyróżnionych grup może znajdować się obiekt nie dający się opisać za pomocą jednego prymitywu, każdą z nich można ponownie przeanalizować w poszukiwaniu podgrup, które można przybliżyć, np. odcinkiem. Taki proces nazywany jest w literaturze segmentacją. Istnieją różne podejścia do tego zagadnienia, opierające swoje działanie, np. na badaniu kolejnych odległości, algorytmie RANSAC [RB09] czy transformacie Hougha (znanej m.in. z przetwarzania obrazu). 29 6.2. Segmentacja Wybraną metodą segmentującą pogrupowany wcześniej skan jest algorytm iteracyjnego poszukiwania punktów końcowych (ang. Iterative End Point Fit). Wykorzystuje on reprezentację kartezjańską wyników pomiarów i polega na progresywnym odnajdywaniu tych, które reprezentują wierzchołki figury jak również łączeniu ich za pomocą odcinków. W początkowym kroku na pierwszym i ostatnim punkcie grupy oparta zostaje pomocnicza prosta, dla której wyznaczone zostają parametry A, B oraz C. Następnie pośród całej grupy poszukiwany jest punkt najbardziej od niej odległy. Jeżeli odległość ta jest mniejsza od zadanego minimum dmin , wówczas algorytm kończy działanie, zwracając parametry prostej opartej na krańcowych punktach zbioru jako dostateczny opis grupy. W przeciwnym wypadku odcinek zostaje podzielony w znalezionym punkcie na dwa odcinki, które należy przeanalizować w ten sam sposób. Algorytm działa do chwili, w której odnalezione Rysunek 6.3: Segmentacja przykładowego landmarku. zostaną wszystkie odcinki nie dające się dalej łamać (dla których wszystkie punkty przynależące spełniają wartość d < dmin ). Proces segmentacji przykładowego obiektu zobrazowano na rysunku 6.3. Wartość dmin musi być na tyle wysoka, aby odfiltrować szum pomiarowy i na tyle niska aby rozróżniać faktyczne kształty otoczenia. Zakładając odchylenie standardowe pomiaru równe 10mm, można zgodnie z regułą 3σ przyjąć dolny próg dmin jako 30mm. Ponieważ jednak wymiary skanera SICK, a tym bardziej robota, który go niesie, są znacznie większe od tej wartości, praktyczna wartość dmin w mieści się w zakresie 50-80mm. Im mniejsza wartość dmin , tym większe staje się prawdopodobieństwo wyróżnienia dodatkowych prymitywów, a co się z tym wiąże, wzrost czasu przetwarzania danych. 30 6.3. Analiza statystyczna odcinków Realizacja algorytmu nie jest zadaniem prostym. Poniżej przedstawiono możliwe rozwiązanie problemu. Algorytm 3: Segmentacja 1 IloscPrymitywow = 0 ; 2 KoniecGrupy = 1 ; 3 while ( KoniecGrupy < N) 4 IloscPrymitywow = IloscPrymitywow + 1 ; 5 while ( t r u e ) 6 7 ZliczPunktyWGrupie ; 8 OznaczPoczatekIKoniecGrupy ; 9 i f ( IlePunktowWGrupie > 2 ) 10 11 ZnajdzMaxOdlegloscOdPunktu ; 12 OznaczPunktPrzelamania ; else 13 14 MaxOdleglosc = 0 ; 15 end 16 i f ( IlePunktowWGrupie > 1 && MaxOdleglosc > Dmin) 17 ModyfikujNumeryGrup ; else 18 break ; 19 end 20 end 21 22 end Nadrzędna pętla algorytmu wykonywana jest dopóki analizie nie zostanie poddana ostatnia grupa, co implikuje indeks KoniecGrupy = N, gdzie N jest ilością pomiarów w skanie. Podrzędna pętla dokonuje analizy pojedynczej grupy. Jeżeli największa znaleziona odległość przewyższa wartość dmin , indeksy grup wszystkich następnych punktów zwiększają się o jeden i analizie poddawana jest kolejna grupa. 6.3 Analiza statystyczna odcinków Wyznaczone parametry odcinków oszacowane zostały na podstawie jedynie dwóch punktów krańcowych, które niekoniecznie dobrze odzwierciedlają faktyczne usytuowanie przeszkody w środowisku roboczym. Z tego powodu należy uśrednić otrzymane parametry, uwzględniając wszystkie punkty wchodzące w skład podgrupy. Ponadto, ze względu na późniejsze kroki dotyczące budowy mapy otoczenia, zdecydowano się na zmianę konwencji 31 6.3. Analiza statystyczna odcinków zapisu parametrów i wykorzystania równania prostej postaci normalnej x cos ϕ + y sin ϕ + ρ = 0, (6.1) gdzie ϕ ∈ h0,2π) oraz ρ > 0. Reprezentacja ta została zobrazowana na rysunku 6.4. Forma ta do obliczenia parametru ϕ wymaga silnie nieliniowej funkcji arctan, jednak zapis redukuje się z trzech do dwóch parametrów. Wzory opisujące oba parametry wyrażają się następująco: 1 ϕ = arctan 2 −2 Pnp Pnp − yi )(x̄ − xi ) 2 2 i=1 [(ȳ − yi ) − (x̄ − xi ) ] i=1 (ȳ , ρ = x̄ cos ϕ + ȳ sin ϕ, (6.2) (6.3) gdzie x̄ i ȳ to odpowiednie wartości średnie (wartości oczekiwane) parametru w grupie. Do obliczeń należy wykorzystać dwuargumentową funkcję atan2, której wynik przekształca się następnie do zakresu ϕ ∈ h0,2π). Prosta to figura geometryczna o nieskończonej długości. Aby określić usytuowanie Rysunek 6.4: Reprezentacja linii w postaci normalnej. leżącego na niej odcinka należy podać dodatkowe informacje. Mogą być to, np. współrzędne krańcowych punktów odpowiednio rzutowanych na tę prostą, co razem z ϕ i ρ daje sześć wartości skalarnych potrzebnych do zapisu prymitywu. Innym sposobem jest wyznaczenie środka i długości odcinka. Taki zapis redukuje ilość zmiennych do pięciu, lecz wymaga dodatkowych nakładów obliczeniowych. Niemniej jednak wartym uwagi jest parametr długości, który ma znaczenie podczas procesu dopasowania mapy lokalnej i globalnej. Ostateczny zapis pojedynczego prymitywu wyłuskanego ze skanu zawiera wszystkie wymienione parametry i ma następującą postać: w ~ = [ϕ ρ Pp Pk Pc L] , 6.4. Rekonstrukcja prymitywów na poziomie analizy skanu 32 gdzie Pp Pk Pc L to odpowiednio współrzędne początku, końca, środka odcinka i jego długość. Rzutowanie krańcowych punktów na skorygowaną prostą polega na wyznaczeniu parametrów prostej prostopadłej przechodzącej przez owy punkt i wyznaczeniu miejsca przecięcia obu figur. Ponieważ równanie normalne jest jedynie znormalizowaną postacią równania ogólnego, można posiłkować się w tym przypadku liniowym rozwiązaniem zadania za pomocą wyznaczników. 6.4 Rekonstrukcja prymitywów na poziomie analizy skanu Często otrzymane z procesu segmentacji prymitywy obarczone są niedokładnościami, które niosą redundantną lub niepełną informację. Są to z reguły śladowe odchylenia współrzędnych lub zniekształcenia geometryczne, których eliminacja może jednak znacząco wspomóc i zwiększyć pewność dalszego procesu mapowania. Różne działania dotyczące rekonstrukcji odcinków opartych na serii punktów opisano w pracy [VV04]. Poniżej przedstawiono zastosowanie dwóch operacji. 6.4.1 Łatanie dziur Wspomniany w sekcji 6.1 problem rozbicia większej grupy przez pojedynczy pomiar daje w wyniku dwa zamiast jednego prymitywu. Późniejsze dopasowanie na mapie globalnej wymaga w takim przypadku dodatkowych obliczeń. Warto zatem jeszcze na poziomie przetwarzania pojedynczego skanu dokonać próby eliminacji tej niedogodności. Operatorem jaki tutaj zastosowano jest „łatanie dziur”. Jeżeli dwa prymitywy cechują się zbliżoną wartością parametrów ϕ i ρ (warunki spójności fazy i odległości) oraz punkt początkowy jednego i końcowy drugiego znajdują się w bliskim sąsiedztwie, wówczas uznaje się oba odcinki za część jednego większego obiektu i dokonuje się ich spojenia. Należy zatem wyznaczyć trzy klasyfikatory δmin , ϕmax i ρmax , określające przedziały dozwolonych odchyleń parametrów. Przykładowe wartości to δmin = dmin (patrz: sekcja 6.2), ϕmax = 10o i ρmax = 200mm (w przypadku dużych map niewielka niedokładność parametru ϕ może spowodować znaczącą zmianę parametru ρ). Zostały one dobrane w sposób empiryczny. Podczas implementacji warunku fazy należy mieć na uwadze okresowość miary kątowej lub jej nieciągłość (w zależności od przyjętej konwencji). Rozwiązanie tego problemu zamieszczono w dodatku A. Gdy dwa odcinki spełniają wszystkie wymienione warunki, należy określić prostą wspierającą, na której leżeć będzie wynikowy prymityw. Nowe parametry ϕ i ρ sza- 6.4. Rekonstrukcja prymitywów na poziomie analizy skanu 33 Rysunek 6.5: Poprawa jakości uzyskanych odcinków po zastosowaniu uśredniania statystycznego i łatania dziur. cowane są jako średnia ważona wartości wcześniejszych figur, przy czym za wagę uznajemy parametr długości poszczególnych z nich (przyjmując na wiarę, że dłuższy odcinek jest lepszym reprezentantem). Lepszym wskaźnikiem wagowym byłaby odwrotność wariancji punktów wokół odcinka. Współrzędne punktów krańcowych są wynikiem rzutowania odpowiednich, skrajnych punktów poprzednich odcinków na nową prostą. Środek i długość nowego prymitywu obliczane są na ich podstawie. Test odległości można wykonać także poprzez obliczenie odsunięcia punktów krańcowych jednego prymitywu od prostej wspierającej drugiego (rys. 6.6) i sprawdzenie, czy suma otrzymanych wartości nie przekracza określonego minimum. Jest to bardziej czasochłonne, jednak powinno stosowane być w przypadku analizy krótkich odcinków. Uzasadnione jest to faktem, iż niewielka różnica kąta (nadal spełniająca warunek fazy) może nieść za sobą spore odchylenia wartości ρ. 6.4.2 Poprawa i rejestracja narożników W wyniku segmentacji każda grupa wyłania pewną ilość prymitywów. Jeżeli jest ona większa niż jeden, oznacza to, że nastąpiło przełamanie podstawowej prostej wspierającej, co wiąże się z istnieniem narożnika. Jest on punktem wspólnym obu tworzących go odcinków. Po uśrednieniu prostych na podstawie wszystkich punktów należących do grupy okazuje się, że proste opisujące oba te odcinki uległy odchyleniom, a informacja o narożniku została utracona. 6.4. Rekonstrukcja prymitywów na poziomie analizy skanu 34 Rysunek 6.6: Badanie warunku odległości za pomocą punktów krańcowych. Jeżeli dowolna para punktów krańcowych dwóch odcinków znajduje się w bliskim otoczeniu, a warunek spójności fazy między nimi nie jest spełniony, oznacza to, że pretendują one do rekonstrukcji narożnika. Przypadek taki zobrazowano na rysunku 6.7. Rysunek 6.7: Od lewej: wycinek mapy globalnej, niepoprawny narożnik, narożnik poprawiony. W celu dokonania rekonstrukcji wierzchołka należy odnaleźć punkt przecięcia obu prostych i wstawić otrzymane współrzędne w miejsce odpowiednich punktów krańcowych odcinków. Po dokonaniu tej zmiany wymagane jest wprowadzenie zmian parametrów długości oraz środka odcinka. Jak widać z rysunku 6.7 poprawa jest niewielka, jednak odnalezienie informacji o narożniku może okazać się bardzo praktyczne. Należy mieć na uwadze, aby do poprawy narożników nie uwzględniać stosunkowo krótkich odcinków (< 2dmin ). Taka zmiana może okazać się w ich przypadku diametralna. W celu zwiększenia precyzji procesu dopasowania cech geometrycznych, mapę otoczenia, składającą się dotychczas jedynie z odcinków, warto uzupełnić informacją o narożnikach jako nowego rodzaju prymitywem geometrycznym. Struktura zawierająca narożnik powinna nieść takie informacje jak jego współrzędne, kąt rozwarcia, orientację oraz ewentualnie wskaźniki na tworzące go odcinki. Wartości kąta rozwarcia oraz orientacji nie zawsze są proste w ustaleniu, ponieważ ciężko jest określić warunek wklęsłości lub wypukłości narożnika. Nie jest bowiem jednoznaczne która ze stron dwóch półprostych o wspólnym 6.4. Rekonstrukcja prymitywów na poziomie analizy skanu 35 punkcie początkowym jest „aktywna”, a która „pasywna”, tzn. z której strony znajduje się przestrzeń wolna, a z której przeszkoda. Analiza skanu daje w wyniku mapę lokalną uporządkowaną, tzn. której elementy pon- Rysunek 6.8: narożników. Schematyczne przedstawienie opisu dwóch przykładowych umerowane są w kolejności występowania (od prawej do lewej, czyli tak jak początkowo grupy). Ponadto znane są kąty ϕi prostych wspierających. Możemy kąt rozwarcia określić zatem za pomocą wzoru: 180o − (ϕi+1 − ϕi ), (6.4) gdzie różnica zawarta w nawiasie dopuszcza wyniki o wartościach ujemnych. Wartość 180o zapewnia wówczas sprowadzenie wyniku do przedziału h0,2π), z którego w sposób jasny wynika informacja o wklęsłości lub wypukłości wierzchołka. Orientacja γ narożnika powinna być określona na podstawie dwusiecznej jego kąta. Może być to osiągnięte poprzez dodanie połowy kąta rozwarcia do wartości ϕi . Ponieważ skaner działa w zakresie 0o − 180o , dla mapy lokalnej γ może zawierać się jedynie w przedziale (π,2π), gdyż wskazy znalezionych mogą skierowane być jedynie do środka, a więc w stronę skanera. Jednak po rzutowaniu na mapę globalną przedział ten rozszerza się do pełnego okresu. W procesie lokalizacji globalnej, czyli zgrubnego odnalezienia robota w środowisku na podstawie pojedynczego skanu, największą informację niosą znalezione prymitywy, które są w pełni widzialne. Znamy wówczas dokładnie ich parametr długości, za pomocą którego możemy podjąć pierwszą próbę dopasowania. Niestety nie zawsze łatwo jest ocenić czy odcinek był w pełni widzialny czy też nie. W przypadku narożników problem ten nie istnieje. Rozdział 7 Budowa mapy globalnej przy pełnej znajomości konfiguracji robota Rozważmy idealny przypadek, w którym konfiguracja robota jest znana dla każdej chwili t. Problem lokalizacji jest zatem rozwiązany. Pozostaje do wykonania proces budowy mapy otoczenia. Określenie usytuowania znalezionych prymitywów względem układu podstawowego sprowadza się do prostych przekształceń geometrycznych. Problem stanowi jednak aktualizowanie mapy na zasadzie łączenia tych odcinków, które reprezentują wspólny landmark. Jeżeli przykładowo połowa ściany wykryta zostanie w jednym cyklu pomiarowym, zaś w następnym widoczna będzie już całość, należy te dwa prymitywy scalić, gdyż przedstawiają jedną cechę środowiska. Istotą tego procesu jest zatem m.in. minimalizowanie wielkości pamięci, jaką zabiera mapa, poprzez minimalizowanie liczby prymitywów. Proces budowy mapy otoczenia ma charakter o tyle praktyczny, że jego wynik może być wykorzystany przez inne platformy do późniejszych zadań wykonywanych na tym samym terenie. 7.1 Rzutowanie uzyskanych prymitywów Za początek układu współrzędnych związanego z mapą przyjmuje się w miejsce wykonania pierwszego skanu, a zatem punkt X0 , Y0 . Dodatkowo mapa obrócona jest względem układu podstawowego o kąt θ0 . Każdy kolejny cykl pomiarowy daje w wyniku odcinki, które należy analizować po wcześniejszym rzutowaniu do tego układu współrzędnych. Zapiszmy trzy różnice, istotne podczas późniejszych działań: 36 7.2. Analiza podobieństw między prymitywami 37 ∆θ = θr − θ0 , ∆X = (Xr − X0 ) cos θ0 − (Yr − Y0 ) sin θ0 , (7.1) ∆Y = (Xr − X0 ) sin θ0 + (Yr − Y0 ) cos θ0 . Należy pamiętać, że wzory te słuszne są przy założeniu prawoskrętnego układu współrzęd- Rysunek 7.1: Zobrazowanie procesu rzutowania do układu związanego z mapą przy znanej konfiguracji w układzie podstawowym. nych i robocie zwróconym zgodnie z osią OX układu podstawowego dla θr = 0. Parametry prymitywów wyznaczonych w procesie ekstrakcji przekształca się do układu związanego z mapą korzystając z prostych zależności geometrycznych. Nowe wartości parametrów otrzymujemy na podstawie następujących równań: ϕm = ϕ + ∆θ, ρm = ρ + ∆X cos ϕm + ∆Y sin ϕm , (7.2) Pxm = ∆X + Px cos ∆θ − Py sin ∆θ, Pym = ∆Y + Py cos ∆θ + Px sin ∆θ, gdzie Px , Py są współrzędnymi parametrów typu punkt. Parametr długości jest wobec zastosowanych transformacji geometrycznych niezmienniczy. 7.2 Analiza podobieństw między prymitywami Przekształcone według zależności 7.2 prymitywy należy porównać z tymi już istniejącymi na mapie w celu znalezienia cech wspólnych. W pierwszej kolejności badane są 38 7.2. Analiza podobieństw między prymitywami zachodzące między nimi warunki spójności fazy i odległości, omówione w punkcie 6.4 przy okazji omawiania rekonstrukcji na poziomie analizy skanu. Są to warunki konieczne, lecz nie dostateczne spojenia dwóch prymitywów. Podobne parametry mogą mieć dwa lub więcej odcinków, które reprezentują zupełnie odmienne landmarki. Problem ten zobrazowano na rysunku 7.2. Z tego względu wprowadza się warunek zachodzenia na siebie Rysunek 7.2: Nieprawidłowe scalenie dwóch prymitywów przy spełnionych warunkach fazy i odległości. Od lewej: wykonany skan, zbudowana na jego podstawie mapa oraz mapa zaktualizowana po wykonaniu drugiego skanu. odcinków [Skr07]. Polega on na zbadaniu wszystkich możliwych odległości występujących między punktami krańcowymi odcinków (rys. 7.3) i sprawdzeniu zależności: D1 + D2 + D3 + D4 < 2X + 2Y + 2dmin . Rysunek 7.3: Test zachodzenia na siebie prymitywów. Jeżeli odnalezione zostały dwa prymitywy spełniające te trzy założenia, należy wyznaczyć na ich podstawie parametry nowego odcinka. Przebiega to w sposób następujący: 1. Obliczamy nowy parametr ϕm jako średnią ważoną ϕ1 i ϕ2 , gdzie za wagę przyjmujemy parametry długości L1 i L2 : ϕm = ϕ1 L1 + ϕ2 L2 . L1 + L2 (7.3) 39 7.3. Rekonstrukcja mapy globalnej 2. Obliczamy w podobny sposób parametr ρm : ρm = ρ1 L1 + ρ2 L2 . L1 + L2 (7.4) 3. Szukamy największej odległości spośród D1, D2, D3, D4, X i Y (rys. 7.3). Na nową prostą o parametrach ϕm , ρm rzutujemy punkty Pp i Pk , które tworzą najdłuższy odcinek. 4. Obliczamy współrzędne środka i nową długość Lm . Każdy element mapy zapamiętuje liczbę aktualizacji nu , które odbyły się z jego udziałem. Jest to pewnego rodzaju wyznacznik niepewności prymitywu. Algorytm 4 przedstawia proces dopasowania cech mapy lokalnej do mapy globalnej. Algorytm 4: DopasowanieCech f o r i = 1 : 1 : IloscPrymitywowLokalnych 1 f o r j = 1 : 1 : IloscPrymitywowGlobalnych 2 3 W1 = WarunekFazy ( i , j ) ; 4 W2 = WarunekOdleglosci ( i , j ) ; 5 W3 = WarunekZachodzenia ( i , j ) ; 6 i f (W1 && W2 && W3) 7 8 ZaktualizujOdcinek ( j ) ; else 9 10 DodajNowyOdcinek ; end 11 end 12 13 end Badania symulacyjne pokazały, że czas liczony od uzyskania danych ze skanera do zakończenia aktualizowania mapy, która zawiera już 60 obiektów wynosi średnio 32ms. 7.3 Rekonstrukcja mapy globalnej Aktualizacja mapy wprowadza do niej nowe odcinki lub modyfikuje parametry poprzednich. Wiąże się to z możliwością wystąpienia pewnych niedokładności. Należy wyeliminować je poprzez rekonstrukcję geometryczną. Proces ten nie musi być wykonywany wraz z każdą aktualizacją, lecz przykładowo co dziesiąty krok. Polega na zbadaniu relacji geometrycznych pomiędzy każdą parą różnych odcinków. W ogólności sam proces aktualizacji powinien radzić sobie z odcinkami zachodzącymi na siebie. Ponieważ jednak mogą wystąpić przypadki szczególne, warto sprawdzić, 7.4. Wyniki eksperymentalne 40 Rysunek 7.4: Porównanie wycinka mapy bez (po lewej) i po rekonstrukcji. czy analizowane prymitywy nie pretendują do tego typu korekcji. Pozostałymi operatorami jakie można wykorzystać w celu korekcji mapy są „łatanie dziur” oraz poprawa narożników. Omówiono je w rozdziale 6.4. W przypadku pierwszych dwóch, należy pamiętać, że z pary prymitywów otrzymujemy w wyniku tylko jeden. Dane o drugim należy stosownie zwolnić lub wyzerować. Co więcej, należy zachować przedstawioną powyżej kolejność sprawdzania warunków dla pary odcinków. Najpierw badana jest możliwość zespolenia (operacja najwyższej rangi), następnie załatania dziury, a dopiero na końcu poprawy narożników (operacja najniższej rangi). W pierwszej fazie mapowania warto wykonać kilka cyklów pomiarowych bez zmiany stanu robota. Jeżeli po, przykładowo 10-krotnej iteracji w strukturze mapy znajdują się elementy o wartości nu równej 1, należy usunąć je zakładając, że są to obiekty przypadkowe lub dynamiczne. W trakcie ruchu robota również można regularnie sprawdzać ten warunek. Nawet jeżeli usunięty zostanie odcinek reprezentujący rzeczywisty obiekt, w dalszym procesie zostanie on ponownie odnaleziony i wprowadzony do struktury mapy. Między innymi z tego powodu nie należy dokonywać rekonstrukcji po każdym wykonanym cyklu pomiarowym. 7.4 Wyniki eksperymentalne W celu sprawdzenia poprawności działania algorytmu przeprowadzone zostały odpowiednie badania. Ostateczne rezultaty przedstawiono po wielokrotnym ponawianiu testów i każdorazowym dostrajaniu przedziałów ufności. Nie oznacza to, że dobrane zostały one w sposób optymalny. Dobór tych nastaw jest silnie uzależniony jest od charakteru środowiska. 7.4.1 Badania symulacyjne Wykorzystując prezentowane w rozdziale 5 wirtualne otoczenie (rys. 5.1) wykonano symulację składającą się z 52 pomiarów wykonywanych w różnych jego punktach. Rekon- 7.4. Wyniki eksperymentalne 41 strukcja mapy dokonywana była co ósmy pomiar. Na końcu dokonano dodatkowej rekonstrukcji i usunięto elementy o wartości nu równej 1. Wynik eksperymentu przedstawiono na rysunku 7.5. Rysunek 7.5: Mapa otoczenia powstała w wyniku symulacji. Otrzymana mapa w ogólności poprawnie odzwierciedla środowisko, pomijając drobne szczegóły, które i tak nie wprowadzają znaczących trudności przy dalszych procesach dopasowania. 7.4.2 Badania na obiekcie rzeczywistym W kolejnym kroku wykonano serię skanów laserem SICK LMS200 na korytarzu budynku Wydziału Elektrycznego Politechniki Poznańskiej (rys. 7.6) odnotowując przybliżone przesunięcia i zmiany orientacji na podstawie pomiarów wykonanych taśmą mierniczą. Pomiary wykonywano na wysokości 93cm. Rysunek 7.6: Zdjęcie korytarza budynku Wydziału Elektrycznego Politechniki Poznańskiej. 7.4. Wyniki eksperymentalne 42 Pierwszy pomiar, definiujący punkt początkowy mapy, wykonano w otoczeniu końca korytarza ze skanerem skierowanym w stronę okien. Następnie wykonano w tym samym miejscu trzy kolejne skany przy każdorazowym obrocie urządzenia o 90o . Dalsze pomiary wykonywano w podobny sposób (4 cykle wokół osi skanera) przesuwając urządzenie wzdłuż korytarza o kolejno 4,5m, 1,9m, 4,3m, 1,75m i 3,3m. Co czwarty skan dokonywano także rekonstrukcji mapy. Z 23 cykli pomiarowych uzyskano rezultat zaprezentowany na rysunku 7.7. Rysunek 7.7: Mapa otoczenia powstała ze złożenia skanów korytarza bez (po lewej) i po usunięciu elementów o wartości nu =1. Jak widać, mapie tej towarzyszy wiele „artefaktów”. Są one w głównej mierze rezultatem różnych właściwości optycznych skanowanych obiektów, a także niedokładności pomiarowych związanych z pozycją skanera. Mimo wszystko widać poprawny zarys środowiska. Rozdział 8 Lokalizacja globalna przy pełnej znajomości mapy otoczenia W przypadku jawnej mapy otoczenia (pochodzącej, np. z wcześniejszego eksperymentu lub wiedzy a priori) robot może dokonać lokalizacji poprzez dopasowanie cech otrzymanych z analizy skanu do prymitywów tworzących tę mapę. Wyróżnia się pojęcie lokalizacji globalnej i lokalnej [XZZ03]. Pierwsza z nich polega na dopasowaniu cech ze skanu do konkretnego miejsca na mapie oraz zgrubnej estymacji konfiguracji robota. Drugi typ polega na śledzeniu poruszającego się w czasie robota i ciągłym wyznaczaniu pozycji i orientacji na podstawie przemieszczających się landmarków. W tym rozdziale rozważa się lokalizację globalną przy założeniu kompletnej znajomości mapy z jawnie określonym układem współrzędnych. Zadanie to można określić mianem problemu korespondencji. Ponieważ parametry uzyskanych w wyniku ekstrakcji odcinków (i/lub narożników) odnoszą się do układu współrzędnych związanego z robotem, którego konfiguracji w przestrzeni nie znamy, należy analizować relacje geometryczne pomiędzy nimi. Mapa globalna w przeciwieństwie do lokalnej nie ma zwykle charakteru uporządkowanego, co niekorzystnie wpływa na szybkość wykonywania algorytmu. 8.1 Odcinki w pełni widzialne Z uzyskanego cyklu pomiarowego najpewniejszą informację niosą odcinki, które zostały w pełni zeskanowane (CLS ang. Complete Line Segments), czyli te, które nie były w żaden sposób zasłonięte innym obiektem i mieściły się w zasięgu pomiaru urządzenia. Zmierzony parametr długości takich odcinków jest bliski prawdziwemu, co stanowi pierwszy krok przeszukiwania. Nie zawsze łatwo jest określić czy prymityw jest w pełni widoczny, a może zdarzyć się, że skan nie zawiera ani jednej takiej cechy. Grupa punktów podzielona na trzy lub więcej segmenów zawiera takie odcinki (niepewność dotyczy jedynie dwóch skrajnych). Odcinek na tle dwóch innych o podobnym parametrze ϕ także ku temu pretenduje. 43 44 8.1. Odcinki w pełni widzialne W ogólności każdy prymityw, którego sąsiednie odcinki rozpoczynają się w punkcie o większej lub równej odległości od początku układu współrzędnych (O) niż jego własny punkt krańcowy należy traktować jako w pełni widzialne. Przypadki te zobrazowano na rysunku 8.1. Rysunek 8.1: Przykłady odcinków w pełni widzialnych. Należy jednak uważać na przypadki, w których mierzona odległość wychodziła poza zasięg skanera. Wówczas dwa sąsiadujące odcinki mogą rozdzielone być pustą przestrzenią i, pomimo że nie zostały w całości zeskanowane, jeden z nich zostanie zakwalifikowany do widzialnych. Przypadek ten można wyeliminować sprawdzając, czy punkty O, Pki oraz Ppi+1 leżą w otoczeniu wspólnej prostej zgodnie z algorytmem nr 5. Algorytm 5: TestWidoczności 1 f o r i = 2 : 1 : IloscPrymitywow −1 2 dPp1 = OdlegloscOdZera (Pp( i ) ) ; 3 dPk2 = OdlegloscOdZera ( Pk ( i − 1 ) ) ; 4 dPk1 = OdlegloscOdZera ( Pk ( i ) ) ; 5 dPp2 = OdlegloscOdZera (Pp( i + 1 ) ) ; 6 7 i f ( dPp1 <= dPk2 && dPk1 <= dPp2 ) 8 [ A1 , B1 , C1 ] = P a r a m e t r y P r o s t e j ( Pk ( i − 1 ) ) ; 9 [ A2 , B2 , C2 ] = P a r a m e t r y P r o s t e j (Pp( i + 1 ) ) ; 10 11 d1 = O d l e g l o s c O d P r o s t e j (A1 , B1 , C1 , Pp( i ) ) ; 12 d2 = O d l e g l o s c O d P r o s t e j (A2 , B2 , C2 , Pk ( i ) ) ; 13 14 i f ( d1 < e p s i l o n && d2 < e p s i l o n ) 15 16 17 Widoczny ( i ) = t r u e ; end else 8.2. Relacje geometryczne mapy lokalnej 18 45 Widoczny ( i ) = f a l s e ; end 19 20 end A, B, C to parametry prostej o równaniu postaci ogólnej, zaś epsilon jest pewną małą wartością (w doświadczeniach przyjęto wartość 20mm), która określa przedział dozwolonych odchyleń punktu środkowego od prostej. Zauważyć należy, że pętla for omija pierwszy i ostatni odcinek. Dzieje się tak dlatego, że mają one tylko jednego sąsiada. Pierwszy i ostatni prymityw mapy lokalnej mogą również być uznane za w pełni widzialne tylko w przypadku, gdy pierwszy i ostatni pomiar ze skanu tworzą samodzielne grupy nie dające odcinków. W celu uproszczenia algorytmu krok ten został jednak pominięty. Zatem już na poziomie ekstrakcji należy określić, czy uzyskany odcinek jest lub też nie jest w pełni widzialny. W tym celu strukturę prymitywów należy rozszerzyć o dodatkową tablicę typu bool, w której przechowywana będzie ta informacja. 8.2 Relacje geometryczne mapy lokalnej Informacja o pojedynczych odcinkach jest niedostateczna by jednoznacznie ocenić konfigurację robota na mapie globalnej. Z tego względu należy rozszerzyć strukturę mapy lokalnej o relacje pomiędzy tworzącymi ją figurami. W tym celu wybiera się dowolny z pośród odcinków w pełni widzialnych (np. nadłuższy) i oznacza go jako figurę odniesienia (reprezentanta). Dla każdego kolejnego segmentu typu CLS obliczamy: • ∆Pc - odległość między jego środkiem, a środkiem odcinka odniesienia, • ∆ϕ - różnicę kąta pomiędzy prostymi wspierającymi obu odcinków, • ∆L - różnicę długości odcinków, • α - kierunek wektora Pc0 − Pci . Warunkiem koniecznym jest występowanie więcej niż jednego segmentu w pełni widocznego. W wyniku tej operacji powstaje tablica o wymiarze 4×(n-1), gdzie n oznacza liczbę odcinków CLS. W następnym kroku na mapie globalnej odszukane zostają odcinki korespondujące z obranym przez nas reprezentantem. Operacji tej dokonuje się w oparciu o informację o długości figury. W rezultacie może okazać się, że znalezionych odpowiedników jest więcej niż jeden. Wówczas dla każdego z nich należy z osobna odszukiwać odcinków mapy globalnej, spełniających względem reprezentanta te same relacje porównawcze. 8.2. Relacje geometryczne mapy lokalnej 46 Rysunek 8.2: Schematyczne przedstawienie relacji między odcinkami. Należy zwrócić uwagę na problem obiektów symetrycznych. Może bowiem okazać się, że zarówno różnice długości, odległości między środkami oraz różnice kąta mają niemalże równe wartości dla dwóch różnych odcinków. Przykład taki zobrazowano na rysunku 8.3. Rysunek 8.3: Problem symetrii w procesie dopasowania cech. Przy założeniu, że P0 wybrany został jako reprezentant, P1 i P2 będą miały względem niego takie same wartości ∆Pc , ∆ϕ oraz ∆L. Są to zatem warunki niedostateczne aby w dalszych krokach jednoznacznie sklasyfikować odcinek mapy lokalnej jako adekwatny korespondent mapy lokalnej. Problem ten rozwiązać można w oparciu o wartości α. Oprócz różnicy między orientacją prostych wspierających oba odcinki, również różnica między kątem α dla danego odcinka typu CLS i kątem ϕ prostej wspierającej reprezentanta musi być zachowana. Należy zwrócić uwagę, że wartość bezwzględna tej różnicy musi znajdować się w przedziale h0o ,90o ). Te cztery warunki jednoznacznie opisują relację między dwoma odcinkami i dopuszczają do klasyfikacji jedynie słuszne prymitywy. Algorytm 6 przedstawia sposób odnajdywania korespondujących odcinków CLS wśród obiektów mapy globalnej. Algorytm 6: AnalizaOdcinkówKorespondujących 1 f o r i = 1 : 1 : NumberOfCorrespondingLines 8.2. Relacje geometryczne mapy lokalnej 2 47 f o r j = 1 : 1 : NumberOfRelatedCLS f o r k = 1 : 1 : NumberOfMapPrimitives 3 4 W1 = f a l s e ; %dPc c o n d i t i o n 5 W2 = f a l s e ; %dPhi c o n d i t i o n 6 W3 = f a l s e ; %dL c o n d t i t i o n 7 W4 = f a l s e ; %dPhiAlpha c o n d i t i o n 8 9 MapDPc = DistanceBetween (MapPc( i ) , MapPc( k ) ) ; 10 MapDPhi = MapLinePhi ( i ) − MapLinePhi ( k ) ; 11 MapDL = MapLineL ( i ) − MapLineL ( k ) ; 12 MapDPhiAlpha = MapLinePhi ( i ) − MapLineAlpha ( k ) ; 13 i f ( abs ( LocDPc ( j ) − MapDPc) < DPcmin ) 14 15 W1 = t r u e ; 16 end 17 i f ( abs ( LocDPhi ( j ) − MapDPhi ) < DPhimin ) ) 18 W2 = t r u e ; 19 end 20 i f ( abs ( LocDL ( j ) − MapDL) < DLmin) 21 W3 = t r u e ; 22 end 23 i f ( abs ( LocDPhiAlpha ( j ) − MapDPhiAlpha ) < DLmin) 24 W4 = t r u e ; end 25 26 i f (W1 && W2 && W3 && W4) 27 28 MatchingObject ( j , i ) = k ; 29 MatchingFound ( i ) = MatchingFound ( i ) + 1 ; end 30 end 31 32 end 33 end W powyższym algorytmie NumberOfCorrespondingLines oznacza liczbę odnalezionych odcinków korespondujących do wybranego reprezentanta, NumberOfRelatedCLS to liczba pozostałych odcinków mapy lokalnej w pełni widzianych, wszystkie zmienne o nazwach zaczynających się od Map dotyczą odcinków mapy globalnej, natomiast zaczynające się od Loc, mapy lokalnej. 8.3. Estymacja konfiguracji skanera laserowego 48 W tabeli MatchingObject znajdować się będą numery segmentów, które spełniły warunki dopasowania. Wektor MatchingFound jest w początkowym kroku wyzerowany. Za każdym razem, gdy dla analizowanego odcinka korespondującego z figurą odniesienia znaleziona zostanie relacja pomiędzy innym odcinkiem mapy globalnej, która zbliżona jest do odpowiadającej relacji na mapie lokalnej, wartość w zadanym polu podlega inkrementacji. W ten sposób na końcu przeszukiwania można określić, który z odnalezionych odcinków korespondujących ma najwięcej wspólnych relacji z mapą lokalną. Rysunek 8.4: Mapa globalna i skan z odnalezionym dopasowaniem. Należy mieć także na uwadze, że warunek W2 został tu opisany w sposób uproszczony i nie jest wystarczający ze względu na występowanie okresowości jednostki kątowej. Dla zobrazowania tego problemu rozważyć można następujący przypadek. Niech odcinek odniesienia ma parametr ϕ0 = 0o , natomiast dwa inne segmenty kolejno ϕ1 = 359o i ϕ2 = 1o . Geometrycznie rzecz biorąc, oba są do siebie bardzo zbliżone, lecz z ściśle matematycznego punktu widzenia obliczone różnice będzie dzieliła „przepaść”. Co więcej różnica ta zależna jest od punktu odniesienia (zarówno mapy jak i skanera). Wprowadza to pewnego rodzaju symetrię i przykładowo wynikający kąt między odcinkami według mapy globalnej będzie wynosił 90o natomiast według mapy lokalnej 270o (patrz rys. 8.5). Należy uwzględnić wszystkie te możliwości przy projektowaniu warunku zgodności fazy. 8.3 Estymacja konfiguracji skanera laserowego Po określeniu najbardziej trafnego korespondenta odcinka odniesienia na mapie globalnej należy wyznaczyć orientację robota względem układu z nią związanego. W tym celu wykorzystuje się obliczone parametry α pomiędzy odcinkami CLS mapy globalnej i lokalnej. Różnica tych dwóch kątów daje w wyniku orientację robota. Poniżej przedstaw- 8.4. Zawężenie zakresu pomiaru na podstawie wiedzy a priori Rysunek 8.5: odniesienia. 49 Różnice parametru ϕ w zależności od umiescowienia punktu iono wzór uśredniający wyniki ze wszystkich zebranych relacji. n θr = 1X αgi − αli , n (8.1) i=0 gdzie α h0o ,360o ). Przy implementacji pamiętać należy, że kąt 0o i 360o przedstawiają tę samą orientację, lecz ich średnia to 180o . Rozwiązanie tego problemu opisano w dodatku A. Pozycja robota (Xr ,Yr ) jest wówczas wynikiem prostych przekształceń geometrycznych: Xr = Xcg − (Xcl cos θr + Ycl sin θr ), (8.2) Yr = Ycg − (Ycl cos θr − Xcl sin θr ), gdzie Xcl ,Ycl to współrzędne środka odcinka CLS na mapie lokalnej, zaś Xcg ,Ycg współrzędne środka odpowiadającego odcinka na mapie globalnej. 8.4 Zawężenie zakresu pomiaru na podstawie wiedzy a priori Dla niektórych, szczególnych przypadków mapa globalna może przyjmować charakter powtarzających się struktur. Z punktu widzenia lokalizacji globalnej jest to cecha wyjątkowo niekorzystna. Prowadzona lokalizacja może bowiem dawać w efekcie grupę konfiguracji spełniających warunki poprawnej klasyfikacji. Jedynym rozwiązaniem tego problemu jest informacja o zgrubnej pozycji robota, która pozwala zawężyć pole przeszukiwań (ROI, ang. Region Of Interest). Może być to informacja o pomieszczeniu, w którym robot aktualnie się znajduje. Wówczas podczas dopasowywania cech między mapami: lokalną i globalną należy odrzucić wszelkie odcinki, które wychodzą poza ramy tego pomieszczenia. Wiedzę tę wykorzystać należy już przy odnajdywaniu odcinka korespondującego z reprezentantem mapy lokalnej. Każdy dodatkowy odcinek na tym poziomie przekłada się na znaczącą eskalację ilości obliczeń. Co więcej, warunek zawierania się wewnątrz ROI 8.5. Wyniki eksperymentalne 50 warto sprawdzać przy okazji przeszukiwania mapy globalnej w celu odnalezienia odcinków spełniających relacje porównawcze. W tym celu sprawdzamy czy punkt centralny analizowanego odcinka znajduje się w danym przedziale. Trzecim zastosowaniem jest estymacja pozycji samego robota, która również nie może wybiegać poza wskazane ramy. Gdy mamy do czynienia z konkretną pozycją, znaną, np. z zewnętrznego systemu pomiarowego, która charakteryzuje się dużą niedokładnością i której rozkład statystyczny jest znany, wówczas ROI możemy wyznaczyć jako obszar w promieniu 8000mm (zasięg skanera SICK LMS200) natomiast estymowana pozycja powinna znajdować się w otoczeniu 3σ punktu wskazanego przez zewnętrzny system pomiarowy (rys. 8.6). Sprawdzenie warunku przynależności wykorzystuje w tym celu twierdzenie Pitagorasa, Rysunek 8.6: odniesienia. Różnice parametru ϕ w zależności od umiejscowienia punktu przy czym współrzędne środka odcinka, czy uzyskanej pozycji robota określają długości przyprostokątnych, natomiast promień ROI, czy odpowiednio 3σ określa długość przeciwprostokątnej. 8.5 Wyniki eksperymentalne Poniżej przedstawiono zestawienie części przeprowadzonych eksperymentów zarówno symulacyjnych jak i rzeczywistych. Wyniki przedstawiają uśrednioną wartość estymat konfiguracji robota, na którą składają się pozycje oszacowane względem różnych odcinków w pełni widzialnych. Średni czas przeszukiwania mapy w celu znalezienia dopasowania wahał się między 0,15s a 0,20s. 8.5.1 Badania symulacyjne Do początkowego przetestowania algorytmu lokalizacji wykorzystano uzyskaną wcześniej mapę globalną (7.5) i wykonano serię pomiarów w różnych punktach wirtualnego środowiska. 8.5. Wyniki eksperymentalne 51 Punkty te dobierane były tak, aby w każdym przypadku odnajdywane były co najmniej dwa odcinki w pełni widzialne. Poniższe wyniki przedstawiane są jako wykonany pomiar (po lewej) oraz wynik lokalizacji (po prawej). W opisach rysunków znajdują się informacje o konkretnych wartościach rzeczywistych i oszacowanych wynikach. Rysunek 8.7: Wyniki: X,Y,θ rzeczywiste: 12000mm, -4500mm, 225o X,Y,θ oszacowane: 11998,3mm, -4504,3mm, 225,19o Rysunek 8.8: Wyniki: X,Y,θ rzeczywiste: 4200mm, -5500mm, 180o X,Y,θ oszacowane: 4200,9mm, -5501,4mm, 180,21o 8.5.2 Badania na obiekcie rzeczywistym W następnym kroku wykorzystano mapę zbudowaną z rzeczywistych pomiarów wykorzystanych na korytarzu (rys. 7.7) i podjęto próbę dopasowania cech z pojedynczego skanu uzyskanego w wyniku pomiaru w tym samym otoczeniu. Znacznie częściej niż w przypadku symulacyjnym algorytm nie radził sobie z poprawnym dopasowaniem aczkolwiek również pojawiały się pozytywne wyniki. Na obrazach 8.11, 8.12 przedstawiono mapę lokalną (po lewej) oraz mapę globalną ze wskazaną estymowaną konfiguracją robota (po prawej). 8.6. Problemy związane z lokalizacją globalną 52 Rysunek 8.9: Wyniki: X,Y,θ rzeczywiste: -1000mm, -1650mm, 0o X,Y,θ oszacowane: -1000,2mm, -1641,8mm, 0,46o Rysunek 8.10: Wyniki: X,Y,θ rzeczywiste: 4300mm, -4200mm, 22,5o X,Y,θ oszacowane: 4300,1mm, -4199mm, 22,41o 8.6 Problemy związane z lokalizacją globalną Dużym problemem okazują się środowiska silnie ustrukturyzowane w sposób symetryczny. Wykonanemu pomiarowi może wówczas odpowiadać więcej niż jedna konfiguracja skanera. W takim przypadku jedynym rozwiązaniem jest posiadanie wiedzy a priori o zgrubnej pozycji lub orientacji robota. Sam pomiar może okazać się zbyt ubogi w informacje potrzebne do estymacji pozycji robota. Jeżeli robot ma rozpocząć samodzielną pracę i w początkowej fazie nie może się zlokalizować, należy wykonać pełen obrót wokół własnej osi i w ten sposób próbować wykonać skan dający rzetelne wyniki. Warto rozważyć fakt, że wyjście pomiaru poza zasięg także niesie pewną informację, którą można wykorzystać w celach lokalizacyjnych. Odcinki nie widzialne w pełni nadal niosą informację o różnicy kątów pomiędzy nimi, a parametr długości, mimo iż niepełny, może znacząco zawężyć zakres przeszukiwania odpowiadających prymitywów, poprzez eliminację tych, o mniejszej wartości tego parametru. 8.6. Problemy związane z lokalizacją globalną Rysunek 8.11: Wyniki: X,Y,θ rzeczywiste: -350mm, -7730mm, 320o X,Y,θ oszacowane: -319,36mm, -7776,2mm, 319.6o Rysunek 8.12: Wyniki: X,Y,θ rzeczywiste: -730mm, -4400mm, 15o X,Y,θ oszacowane: -803,17mm, -4307,3mm, 11,8o 53 8.6. Problemy związane z lokalizacją globalną 54 Błędne oszacowanie lokalizacji może doprowadzić do „eksplozji” danych uzyskiwanych w procesie fuzji z różnych systemów pomiarowych. Z tego względu należy szczególny nacisk nałożyć na zabezpieczenie pewności otrzymanego wyniku. W rozważanym przypadku należy kierować się zasadą, że wynikowy brak danych jest bardziej korzystny niż dane niepoprawne. Rozdział 9 Jednoczesna lokalizacja i mapowanie W poprzednich rozdziałach zagadnienia lokalizacji oraz mapowania omówione zostały w sposób niezależny, przy założeniu znajomości odpowiednich informacji, wymaganych do realizacji zadania. Wymogi te istotnie redukują autonomię robota mobilnego gdyż on sam, bez odpowiednich narzędzi zwykle nie jest w stanie ich spełnić. Maszyna znajdująca się w nieznanym środowisku, posiadająca narzędzie mapujące teren oraz co najwyżej zestaw odometryczny, jest w stanie w sposób precyzyjny i nie rozbiegający się w czasie dokonywać również samolokalizacji. Zagadnienie SLAM jest pojęciem ogólnym, które może być realizowane na wieloraki sposób. Projekty różnią się ze względu na wykorzystane systemy sensoryczne, sposób przetwarzania sygnałów pomiarowych, późniejszą fuzję danych oraz metodę reprezentacji mapy otoczenia. Na łamach tej pracy rozważania na temat SLAM dotyczyć będą dwóch przypadków: robota wyposażonego w skaner laserowy i odometrię inkrementalną oraz robota wyposażonego jedynie w skaner laserowy. Niniejszy rozdział nie stanowi ostatecznego rozwiązania problemu jednoczesnego mapowania i lokalizacji, lecz jest jedynie wstępem do tego zagadnienia, który ma wskazać potencjalny kierunek jaki można obrać w celu rozwinięcia projektu. 9.1 Robot wyposażony w skaner laserowy i odometrię Budowanie mapy globalnej opisane w rozdziale 7 zakładało pełną znajomość stanu robota w momencie wykonywania cyklów pomiarowych skanerem. System odometryczny dostarcza tej informacji ale ponieważ błąd jakim jest obarczona narasta w czasie, nie można uwzględniać jej jako pewnej. Należy zatem każdorazowo przeprowadzać korekcję owej estymaty w oparciu o dane pochodzące ze skanera laserowego oraz aktualnego stanu 55 9.2. Robot wyposażony jedynie w skaner laserowy 56 mapy. Z jednej strony błędy mapy wyraźnie skorelowane są z błędem estymowanego stanu robota, a z drugiej strony ten ostatni zależny jest od poprawności stanu mapy (ang. Egg and Chicken Problem). Przy częstości skanowania dużej w stosunku do prędkości ruchu robota przeprowadzenie lokalizacji na podstawie skanu zwykle nie stanowi większego problemu. Uzasadnione jest to tym bardziej, że zakres przeszukiwania ograniczony jest otoczeniem lokacji robota wskazywanej przez odometrię. Dysponując dwoma wektorami konfiguracji robota: oszacowanym na podstawie odometrii i w procesie analizy skanu, należy je odpowiednio uśrednić i oszacować względny błąd, który posłuży następnie do korekcji estymaty odometrycznej. Posiadając w taki sposób uśredniony stan robota dokonuje się procesu aktualizacji mapy, której warunki dopasowania cech powinny odfiltrować pozostający błąd. Możemy proces ten zapisać jako następująca sekwencja: 1. Predykcja stanu robota w chwili (i) na podstawie odometrii. 2. Wykonanie skanu i lokalizacja względem mapy globalnej z chwili (i-1). 3. Oszacowanie wag niepewności dla wyniku odometrii i lokalizacji ze skanu. 4. Uśrednienie obu wyników z uwzględnieniem obliczonych wag. 5. Aktualizacja stanu mapy na podstawie skanu i estymowanego stanu robota. Podczas implementacji należy zapewnić odpowiednią synchronizację wykonywania pomiarów. Waga wyniku odometrii powinna maleć w sposób odwrotnie proporcjonalny do przebytej drogi między kolejnymi iteracjami algorytmu natomiast waga estymaty lokacji uzyskanej ze skanu powinna zależna być od ilości prymitywów wykorzystanych w procesie dopasowania cech map lokalnej i globalnej. Do tego typu fuzji danych wykorzystywane są powszechnie znane i stosowane metody takie jak m.in. rozszerzony filtr Kalmana (EKF, ang. Extended Kalman Filter ), filtracja cząsteczkowa (ang. Particle Filter ) czy filtr Bayesa. Są one skuteczne ze względu na uwzględnianie modeli statystycznych wykorzystanych systemów pomiarowych w procedurach uśredniania. EKF ogranicza możliwość stosowania modelu błędu jedynie o rozkładzie normalnym (co w rozważanym przypadku zwykle wystarcza), filtracja cząsteczkowa omija ten problem choć wymaga większych nakładów obliczeniowych. 9.2 Robot wyposażony jedynie w skaner laserowy W przypadku gdy robot nie jest wyposażony w system odometryczny, a znamy jego przybliżony model dynamiki, wektor stanu estymować możemy poprzez odpowiednie całkowanie sygnałów sterujących i postępować tak, jak w przypadku punktu 9.1. Jeżeli jednak nie 9.3. Optymalizacja procesu SLAM 57 mamy tej informacji, polegać możemy jedynie na sygnale ze skanera laserowego. W momencie rozpoczęcia działania algorytmu wykonywany jest skan, który po analizie jednocześnie przedstawia mapę lokalną i globalną dla pierwszej iteracji oraz qr1 = [0 0 0]. Druga iteracja niesie kolejny cykl pomiarowy, który podlega ekstrakcji cech. Te podlegają procesowi dopasowania ze stanem mapy globalnej z poprzedniego kroku i na podstawie uzyskanych korespondencji określane zostaje qr2 = [θr2 Xr2 Yr2 ]. W oparciu o te dane zaktualizowana zostaje mapa globalna. Należy mieć na uwadze, że zbyt duża prędkość ruchu robota (zwłaszcza obrotowa) może doprowadzić do nierozpoznania cech i braku informacji o jego lokacji. Nie oznacza to konieczności zatrzymania robota, ale nie jest on w stanie dalej aktualizować początkowej mapy globalnej. Wówczas rozwiązaniem jest rozpoczęcie budowy drugiej mapy, przy jednoczesnym szukaniu dopasowania cech ze skanu na obu z nich. Jest to znaczące obciążenie obliczeniowe, lecz może w rezultacie doprowadzić do scalenia obu map i dalszej nieprzerwanej pracy. 9.3 Optymalizacja procesu SLAM Głównym obciążeniem algorytmu SLAM jest dopasowanie cech do mapy globalnej i rośnie ono wraz z jej rozwojem. Procedury tej wymaga zarówno lokalizacja robota jak i aktualizacja mapy. Stan robota estymowany jest na podstawie przyrównania orientacji i środków geometrycznych korespondujących prymitywów i uśrednienia otrzymanych wartości. W poprzednich punktach algorytm zakładał wykonanie kompletnej lokalizacji i ewentualne uśrednienie wyniku z wartością predykowaną, a dopiero następnie zaktualizowanie mapy. Aby nie dokonywać ponownie procesu dopasowania, należy strukturę cech mapy lokalnej rozszerzyć o wskaźnik na obiekt mapy globalnej, z którym dana cecha korespondowała w procesie lokalizacji. Ponieważ ruch robota jest przebiegiem ciągłym i zakłada się nieprzerwaną pracę algorytmu, dopasowanie cech w celu lokalizacji robota można uprościć zawężając przedział przeszukiwanych prymitywów mapy globalnej. Jeżeli do czynienia mamy z mapą uporządkowaną, zakres ograniczamy do odcinków (ewentualnie także wierzchołków), które brały udział w poprzedniej iteracji oraz, np. dwóch kolejnych sąsiadów z obu stron przedziału. Należy jednak uwzględnić możliwość wejścia pomiaru skanera w zasięg innego pomieszczenia, w przypadku którego powyższe ograniczenie nie będzie słuszne. Jeżeli dana jest nam informacja o predykowanym stanie robota na chwilę wykonania pomiaru, przedział poszukiwań ograniczamy w sposób geometryczny jako półkole o promieniu równym zasięgu skanera oraz zwrocie zgodnym z szacowaną orientacją (rys. 9.1). W przypadku braku tej informacji posłużyć się można wiedzą o maksymalnej lub ostatnio zmierzonej prędkości robota i 9.3. Optymalizacja procesu SLAM 58 w ten sposób określić możliwe ograniczenia przeszukiwania. Należy rozważnie podchodzić Rysunek 9.1: Zakres przeszukiwań dla znanej predykcji stanu robota. do tego typu usprawnień i pamiętać, że w początkowych fazach działania algorytmu mapa charakteryzuje się małą złożonością, co nie wymaga podejmowania radykalnych kroków optymalizacyjnych. Rozdział 10 Podsumowanie 10.1 Wnioski W pracy zaprezentowano i rozwiązano problem mapowania terenu oraz lokalizacji robota przy wykorzystaniu skanera laserowego. Skuteczność tych rozwiązań potwierdzono wynikami eksperymentalnymi przeprowadzonymi zarówno w świecie wirtualnym jak i rzeczywistym. Mapa wektorowa, którą zdecydowano się wykorzystać sprawdza się w omawianych celach zarówno pod względem precyzji opisu jak i zapotrzebowania na moc obliczeniową i pamięć. W opisanym rozwiązaniu opiera się ona jedynie na prymitywach o postaci odcinków. Według kryterium dokładności nie jest to postać optymalna, lecz dla sporego podzbioru zadań wystarczająca. Jak wspomniano w początkowych rozważaniach, trudnością map wektorowych jest rejestrowanie obiektów dynamicznych. Proces budowy mapy globalnej przy znanych i pewnych wartościach wektora konfiguracji robota jest zadaniem stosunkowo prostym, a jedyną trudność stanowi dobranie poprawnych przedziałów nieufności parametrów prymitywów tak, aby odfiltrowane zostały wszelkie błędy powstałe wskutek niedokładności pomiarowych skanera. W pracy przedstawiono także różne techniki korekcji niektórych błędów, które ujednolicają i poprawiają stan mapy. Jednoznaczna lokalizacja globalna robota na mapie bez zgrubnej wiedzy o pozycji jest możliwa jedynie dla środowisk niesymetrycznych. W zaproponowanej metodzie zakłada się istnienie odcinków w pełni widzialnych dostępnych w wyniku ekstrakcji cech ze skanu, co stanowi spore ograniczenie jej stosowalności. Istnieją jednak możliwości usprawnienia tego procesu, które rozszerzą zbiór dopuszczalnych konfiguracji robota dających się jednoznacznie zlokalizować. 59 10.2. Dalszy rozwój projektu 60 Temat jednoczesnej lokalizacji i mapowania został podjęty, aby wskazać na możliwe podejście do rozwiązania tego problemu. Splecienie obu zagadnień jest jednym z kluczowych aspektów stojących na drodze do usamodzielnienia pojazdu. W trakcie implementacji pojawiło się wiele problemów natury inżynierskiej, które pokazują stopień złożoności rozważanego tematu. Między innymi wiele trudności sprawiły zadania programowe związane z wartościami kątowymi (patrz Dodatek A). Zarówno budowa mapy jak i proces lokalizacji odnoszą się do wielu składników losowych, gdyż sam pomiar jest procesem stochastycznym. Z tego względu sprawdzane warunki wymagają w większości określenia dopuszczalnych odchyleń, które zostały wyznaczone w sposób empiryczny. Przedziały te wspierają proces budowy mapy w przypadku konfiguracji robota obarczonej niewielkim błędem, gdyż cechy uzyskane w procesie ekstrakcji są w pewnym stopniu „przyciągane” przez prymitywy znajdujące się już na mapie. 10.2 Dalszy rozwój projektu Kontynuacja i rozwój projektu wymaga usprawnienia niektórych z rozważanych na łamach tej pracy zagadnień oraz generuje nowe problemy, które należy rozwiązać. Poprawne działanie algorytmu zależne jest w dużej mierze od zabezpieczeń, nałożonych na estymatory zarówno konfiguracji robota, jak i stanu mapy. Z drugiej strony efektywne wykorzystanie go w czasie rzeczywistym ogranicza liczbę wykonywanych obliczeń. Problemami związanymi z budową mapy, jakimi należy zająć się w następnym kroku jest jednoznaczne określenie przestrzeni roboczej i przestrzeni niejawnej. Pozwoli to robotowi podejmować decyzje o tym, w którym kierunku ma się poruszać tak, aby mapa była kompletna (brak przestrzeni niejawnych nie odgrodzonych przeszkodą). Krok ten miałby także praktyczne zastosowanie wizualizacyjne. Innym ważnym aspektem jest rozszerzenie modelu mapy o informację o narożnikach wspomnianych w sekcji 6.4.2. Mając informację o przestrzeni roboczej pośród mapy łatwo jest zidentyfikować faktyczny kąt rozwarcia narożnika oraz jego zorientowanie. Taka struktura mapy (zarówno globalnej jak i lokalnej) daje większe możliwości dopasowania cech gdyż operujemy wówczas na większej ilości danych. Przykładowo na mapie lokalnej może znajdować się tylko jeden odcinek typu CLS lecz kilka narożników. Estymacja pozycji na podstawie relacji między wszystkimi tymi prymitywami jest znacznie bardziej wiarygodna. W celu przyspieszenia działania algorytmu dopasowania mapy lokalnej do globalnej warto tą ostatnią budować w sposób uporządkowany, tzn. w taki, że sąsiednie odcinki mają przyporządkowane kolejne liczby naturalne. Wówczas dla znalezionych odcinków ko- 10.2. Dalszy rozwój projektu 61 respondujących z wybranym reprezentantem mapy lokalnej nie trzeba przeszukiwać całej mapy globalnej lecz jedynie pewne ich sąsiedztwo. W końcu, należy połączyć zagadnienie mapowania i lokalizacji aby działały w sposób komplementarny, realizując ostatecznie algorytm SLAM. Dodatek A Problemy związane z okresowością kąta W pracy wielokrotnie posługiwano się zmiennymi o wymiarze kątowym, choćby do opisu orientacji robota, prostych wspierających odcinki czy kierunku danego wektora. Założono, że miara kąta mieści się w zakresie α ∈ h0o ,360o ), a wszelkie od tego odstępstwa wynikające z obliczeń, należy natychmiast korygować. Przykładowo, wewnętrzna funkcja Matlaba atan2() daje w wyniku kąty z zakresu h−180o ,180o ) (oznaczenie 180o stosowane będzie w algorytmach jako π). Często obliczane sumy i różnice również kątów mogą sięgać poza ten zakres. Z tego względu należy w odpowiednich miejscach kodu sprawdzać poprawność tych wartości zgodnie z następującym warunkiem: i f ( p h i < 0 ) p h i = p h i + 2∗ pi ; e l s e i f ( p h i >= 2∗ pi ) p h i = p h i − 2∗ pi ; Inny problem stanowi porównywanie dwóch zmiennych o wymiarze kątowym. Warunek różnicy w sensie wartości bezwzględnej jest w tym przypadku niewystarczający. Dwa kąty bliskie granicom przedziału są bowiem sobie bardzo bliskie, lecz w sensie algebry liczb rzeczywistych dzieli je prawie 360o . Zatem oprócz sprawdzenia różnicy obu kątów, należy także sprawdzić tę samą różnicę powiększoną i pomnieszoną o wartość 360o . i f ( abs ( p h i 1 − p h i 2 ) < e p s i l o n ) W1 = t r u e ; end i f ( abs ( p h i 1 − p h i 2 + 2∗ pi ) < e p s i l o n ) W2 = t r u e ; end i f ( abs ( p h i 1 − p h i 2 − 2∗ pi ) < e p s i l o n ) W3 = t r u e ; end i f (W1 | | W2 | | W3) W = t r u e ; end Problem okresowości daje się również we znaki w przypadku uśredniania kilku wartości kątowych. Wartość średnia trzech kierunków: 0o , 0o i 360o daje w wyniku 120o , a zatem 62 Problemy związane z okresowością kąta 63 orientację kompletnie odmienną od poprawnej wartości uśrednionej. Poprawny algorytm uśredniania jest nieco bardziej rozwinięty niż jedynie suma podzielona przez ilość. PHIsr = p h i ( 1 ) ; i f ( I l o s c > 1) f o r ( i = 1 : 1 : I l o s c −1) i f ( abs ( p h i ( 1 ) − p h i ( i +1)) > pi && p h i ( 1 ) > pi ) PHIsr = PHIsr + p h i ( i +1) + 2∗ pi ; e l s e i f ( abs ( p h i ( 1 ) − p h i ( i +1)) > pi && p h i ( 1 ) < pi ) PHIsr = PHIsr + p h i ( i +1) − 2∗ pi ; else PHIsr = PHIsr + p h i ( i +1); end end end PHIsr = PHIsr / I l o s c ; Dodatek B Obsługa środowiska symulacyjnego Zaprojektowane na potrzeby badawcze środowisko symulacyjne składa się z kilku plików, których nazwy jednoznacznie wskazują przydzielone im zadania. W zależności od zadania, które chcemy wykonać, należy wyegzekwować jeden spośród dwóch plików. Dla zadania budowy mapy globalnej jest to plik goMapping.m, natomiast dla zadania lokalizacji globalnej - goLocalisation.m. W obu przypadkach w pierwszej kolejności wykonywana jest inicjalizacja, w której ustawiane są wartości dotyczące parametrów skanera i błędów pomiarowych oraz zakresy dopuszczalnych odchyleń dla warunków porównawczych. W wyniku budowy mapy wyświetlane zostają: mapa rzeczywista oraz ta, otrzymana po złożeniu przeprowadzonych skanów. Proces lokalizacji globalnej wyświetla mapę globalną z zaznaczoną rzeczywistą i oszacowaną pozycją i orientacją skanera w środowisku. Dodawanie nowych przeszkód do sztucznego środowiska zostało omówione w podrozdziale 5.2. 64 Dodatek C Praca ze skanerem laserowym SICK LMS200 Poniżej przedstawiono kluczowe informacje dotyczące pracy ze skanerem SICK LMS200 w sposób niestandardowy (bez firmowego oprogramowania). Komunikacja z urządzeniem odbywa się poprzez łącze szeregowe z dostępnymi prędkościami transmisji danych 9600baud, 19200baud, 38400baud oraz 500kbaud. Po włączeniu, standardowo ustawiona jest prędkość najniższa. Pierwsze trzy prędkości wymagają interfejsu RS232 lub nowszego i są zdefiniowane jako standardowe w systemie Windows. Prędkość 500kbaud wymaga użycia interfejsu RS422 i odpowiedniego skonfigurowania systemowego. W tym celu należy odnaleźć w rejestrze wpis odpowiadający za prędkości przesyłu danych portem szeregowym i zamienić jedną z prędkości standardowych na 500 000. Wykonuje się to poprzez podanie dzielnika częstości wzorcowej (3MHz), czyli w tym przypadku liczby 6. Podczas konfiguracji portu podajemy jednak wartość pierwotnej prędkości, którą zamieniliśmy. Zmianę prędkości pracy urządzenia w sposób programowy dokonujemy poprzez wysłanie odpowiedniego rozkazu. W tabeli C.1 zestawiono ramki odpowiadające danym prędkościom oraz telegramy, które zostają przesłane do komputera po zrealizowaniu zmiany prędkości. W celu uwieńczenia tego procesu wymagane jest odebranie tych telegramów. Tablica C.1: Wybór szybkości transmisji danych. Szybkość transmisji danych 9600 19200 38400 500000 Zawartość ramki (heksadecymalnie) 02 00 02 00 20 42 52 08 02 00 02 00 20 41 51 08 02 00 02 00 20 40 50 08 02 00 02 00 20 48 58 08 65 Telegram zwrotny (heksadecymalnie) 06 02 81 03 00 A0 00 10 36 1A 06 02 81 03 00 A0 00 10 36 1A 06 02 81 03 00 A0 00 10 36 1A 06 02 81 03 00 A0 00 10 36 1A 66 Praca ze skanerem laserowym SICK LMS200 Urządzenie działa w pięciu różnych trybach pomiarowych, przedstawionych w tabeli C.2. Po włączeniu, jako standardowy ustawiony jest tryb T5. Tablica C.2: Wykaz trybów pracy urządzenia. Tryb T1 T2 T3 T4 T5 Zasięg kątowy (o ) 0-100 0-100 0-100 0-180 0-180 Rozdzielczość kątowa (o ) 1 0,5 0,25 1 0,5 Liczba próbek 101 201 401 181 361 Zmianę trybu również dokonuje się poprzez wysłanie odpowiedniego rozkazu do skanera. Ich wykaz przedstawiono w tabeli C.3. Podobnie jak przy zmianie prędkości, również po zmianie trybu należy odebrać telegramy zwrotne. Tablica C.3: Zmiana trybu pracy urządzenia. Tryb T1 T2 T3 T4 T5 Zawartość ramki (heksadecymalnie) 02 00 05 00 3B 64 00 64 00 1D 0F 02 00 05 00 3B 64 00 32 00 B1 59 02 00 05 00 3B 64 00 19 00 E7 72 02 00 05 00 3B B4 00 64 00 97 49 02 00 05 00 3B B4 00 32 00 3B 1F Telegram zwrotny (heksadecymalnie) 06 02 81 07 00 BB 01 64 00 64 00 10 4A 3F 06 02 81 07 00 BB 01 64 00 32 00 10 12 92 06 02 81 07 00 BB 01 64 00 19 00 10 BE C4 06 02 81 07 00 BB 01 B4 00 64 00 10 5E B2 06 02 81 07 00 BB 01 B4 00 32 00 10 06 1F Rozpoczęcie pracy inicjowane jest wysłaniem rozkazu START (02 00 02 00 20 24 34 08). Cykle pomiarowe są wykonywane w pętli do momentu wysłania ramki STOP (02 00 02 00 20 25 35 08) lub odłączenia zasilania. W zależności od trybu, w którym skaner aktualnie pracuje, urządzenie przesyła pomiar nadając mu inny nagłówek. W tabeli C.4 zestawiono nagłówki pomiarów odpowiadające danym trybom pracy. Tablica C.4: Wykaz nagłówków dla poszczególnych trybów pracy. Tryb T1 T2 T3 T4 T5 Zawartość nagłówka (heksadecymalnie) 02 80 CE 00 B0 65 40 02 80 96 01 B0 C9 40 02 80 26 03 B0 91 41 02 80 6E 01 B0 B5 40 02 80 D6 02 B0 69 41 Pojedyncza paczka danych składa się z 7 bajtów nagłówkowych, n bajtów danych pomiarowych oraz 3 bajtów statusu końcowego i sumy kontrolnej. Liczba n zależna jest od wybranego trybu, a dokładniej od ilości zmierzonych odległości przypadających na skan. Każda zmierzona odległość zapisywana jest w formie 2 bajtów. Przykładowo tryb T5 daje w wyniku 361 odległości, a zatem 722 bajty. Po doliczeniu do tego pozostałych skład- 67 Praca ze skanerem laserowym SICK LMS200 ników przesyłanej ramki wychodzi łącznie 732 bajty. Aby mieć stuprocentową pewność odnalezienia pełnej ramki należy odebrać conajmniej dwukrotnie tyle danych. Zamiana uzyskanych odległości na postać dziesiętną polega na wykonaniu formuły: d = bajtstarszy + 256bajtmodszy Po znalezieniu nagłówka należy sprawdzić poprawność przesłanych danych poprzez analizę sumy kontrolnej. Nie jest to postać standardowa zapisu tej sumy, lecz opracowana przez firmę SICK. Poniższy kod może pomóc w implementacji tego zadania: 1 #define Gen Polynomial 0 x8005 2 3 unsigned short u p d a t e c r c s i c k ( unsigned short c r c , char c , 4 char p r e v b y t e ) 5 { 6 unsigned short s h o r t c , s h o r t p ; 7 s h o r t c = 0 x 0 0 f f & ( unsigned short ) c ; 8 s h o r t p = ( 0 x 0 0 f f & ( unsigned short ) p r e v b y t e ) << 8 ; 9 10 11 i f ( c r c & 0 x8000 ) c r c = ( c r c << 1 ) ˆ Gen Polynomial ; 12 e l s e c r c = c r c << 1 ; 13 c r c &= 0 x f f f f ; 14 c r c ˆ= ( s h o r t c | s h o r t p ) ; 15 16 17 } return c r c ; Literatura [BDW94] Stephen Borthwick, Hugh Durrant-Whyte. Simultaneous localisation and map building for autonomous guided vehicles. 1994. [Com02] Quick Manual for LMS communication setup, 2002. [dar09a] Darpa grand challenge. [on-line] http://www.darpa.mil/grandchallenge05, 2009. [dar09b] Darpa urban challenge. [on-line] http://www.darpa.mil/grandchallenge/index.asp, 2009. [GC96] B. Dandrea-Novel G. Campion, G. Bastin. Structural properties and classification of kinematic and dynamic models of wheeled mobile robots. 1996. [Hol87] K. Holejko. Precyzyjne elektroniczne pomiary odległości i kątów. Wydawnictwo Naukowo Techniczne, 1987. [JBF96] H. R. Everett J. Borenstein, L. Feng. Where am I? Sensors and Methods for Mobile Robot Positioning. The University of Michigan, Ann Arbor, MI 48109, 1996. [Joe09] User: Joe. Ulrasound. [on-line] http://www.sensorwiki.org/doku.php/sensors/ultrasound, 2009. [LDW91a] John J. Leonard, Hugh F. Durrant-Whyte. Mobile robot localization by tracking geometric beacons. 1991. [LDW91b] John J. Leonard, Hugh F. Durrant-Whyte. Simultaneous map building and localization for an autonomous mobile robot. 1991. [LMS06] LMS200/211/221/291 Laser Measurement Systems, 2006. [Paz02] Dariusz Pazderski. Laboratorium podstaw robotyki. budowanie lokalnej mapy otoczenia - skaner z czujnikiem podczerwieni. [on-line] http://www.cse.put.poznan.pl, 2002. [Paz09] Dariusz Pazderski. Systemy lokalizacji i nawigacji robotów mobilnych. [on-line] http://etacar.put.poznan.pl/dariusz.pazderski, 2009. [RB09] Søren Riisgaard, Morten Rufus Blas. Slam for dummies - a tutorial approach to simultaneous localization and mapping. [on-line] http://ocw.mit.edu/courses/aeronautics-and-astronautics/ 16-412j-cognitive-robotics-spring-2005/projects/1aslam_blas_repo.pdf, 2009. 68 69 [sha09] Sharp ir rangers information. [on-line] http://www.acroname.com/robotics/info/articles/sharp/sharp.html, 2009. [Skr07] Piotr Skrzypczyński. Metody analizy i redukcji niepewności percepcji w systemie nawigacji robota mobilnego. Poznań University of Technology, pl. M. Skłodowskiej-Curie 2, 60-965 Poznań, 2007. [VV04] M. Veeck, W. Veeck. Learning polyline maps from range scan data acquired with mobile robots. 2004. [XZZ03] [Zuf01] Liu Jilin Xu Zehzong, Xiang Zhiyu. Scan matching based on cls relationships. 2003. Jean-Christophe Zufferey. Application note for an infrared, triangultation-based distance sensor with an analog, non-linear output. [on-line] http://zuff.info/SharpGP2D12_E.html, 2001. c 2010 Mateusz Przybyła Katedra Sterowania i Inżynierii Systemów, Wydział Informatyki i Zarządzania Politechnika Poznańska Skład przy użyciu systemu LATEX. BibTEX: @mastersthesis{ key, author = "Mateusz Przybyła", title = "{Lokalizacja robota mobilnego i budowa mapy otoczenia z wykorzystaniem skanera laserowego}", school = "Poznan University of Technology", address = "Pozna{\’n}, Poland", year = "2010", }