KNR Bionik

Projekty

KinectBot

Autonomiczne sterowanie robota mobilnego w nieustrukturyzowanym i dynamicznie zmiennym środowisku


System sensoryczny robota mobilnego

Robot mobilny Elektron (rys. 1) powstał w roku 2006 jako efekt współpracy Instytutu Automatyki i Robotyki oraz Instytutu Automatyki i Informatyki Stosowanej Politechniki Warszawskiej [2]. Został zaprojektowany jako platforma laboratoryjna, przeznaczona do badań nad systemami sterowania i nawigacji robotów mobilnych, czemu sprzyjać miała modułowa konstrukcja zarówno części mechanicznej, jak i systemu sterowania. Od momentu powstania robot poddawany był kolejnym modernizacjom, mającym na celu zarówno dołączenie nowych zestawów czujników, jak i umożliwienie sterowania robota przy wykorzystaniu nowych struktur programowych. Obecnie robot sterowany jest przy użyciu systemu ROS [3].


Rys. 1. Robot mobilny Elektron wraz z oznaczonymi istotnymi elementami konstrukcji

Dwa najistotniejsze czujniki, związane z wykrywaniem przeszkód, zainstalowane na robocie to MS Kinect oraz skaner laserowy SICK LMS100. Kinect zwraca informację trójwymiarową o środowisku przed robotem, ma jednak dość wąskie pole widzenia (57° w poziomie) oraz dokładność ograniczoną do zakresu 0.5-3.5m. Ze względu na zasadę pracy (wykorzystanie światła strukturalnego) nie jest w stanie wykrywać przedmiotów zbyt wąskich bądź nachylonych pod ostrym kątem względem sensora (np. nogi od krzeseł i stołów). Skaner laserowy dostarcza pomiarów uzupełniających – ma bardzo szerokie pole widzenia (270°) i dokładność w zakresie odległości 0.1-10m. Pomiary wykonywane są jedynie w płaszczyźnie poziomej, przez co nie nadaje się do wykrywania przeszkód leżących na ziemi bądź zwisających nad robotem, pozwala natomiast na dość dokładną lokalizację robota na geometrycznej mapie globalnej [4].

System sterowania robota mobilnego

Całe zadanie sterowania robota zostało rozdzielone na moduły odpowiedzialne za poszczególne fragmenty systemu – lokalizację robota (lokalną i globalną), wykrywanie przeszkód (przez oba dostępne sensory – skaner laserowy i Kinect), sterowanie samym robotem (poruszanie bazy jezdnej) oraz diagnostykę (rys. 2). Poniżej opisany zostanie dokładnie jedynie podsystem sensoryczny, odpowiedzialny za akwizycję i agregację danych o przeszkodach. Podczas poruszania się robota w środowisku o nie w pełni znanej strukturze kluczowe jest wykrywanie aktualnej konfiguracji przeszkód. W środowiskach statycznych wystarczy samo ich zaznaczanie na mapie, w przypadku otoczenia dynamicznie się zmieniającego równie ważne jest wykrywanie momentów, w których przeszkody znikają (czyszczenie przeszkód na mapie jest trudniejsze niż ich oznaczanie). Cały proces wykrywania i oznaczania przeszkód można podzielić na cztery etapy: agregacja danych z sensorów, filtrowanie danych, oznaczanie przeszkód w strukturze danych o wybranej implementacji, tworzenie dwuwymiarowej mapy kosztu. Pierwszym etapem jest zebranie danych z sensorów. W przypadku robota Elektron istnieją dwa źródła danych o przeszkodach – skaner laserowy SICK oraz sensor Kinect. Biorąc pod uwagę wielkość otrzymywanych danych (w przypadku lasera kilkaset punktów, w przypadku sensora Kinect kilka tysięcy na każdy pomiar) oraz stosunkowo niewielką prędkość poruszania się robota, do wykrywania przeszkód nie są wykorzystywane wszystkie odczyty, a jedynie pięć na sekundę w przypadku lasera oraz dwa na sekundę w przypadku Kinecta.


Rys. 2. Dekompozycja systemu sterowania robota

Przed przekazaniem danych z sensora Kinect do dalszych algorytmów tworzenia map przeszkód są one przetwarzane przez zestaw filtrów. Pierwszy z nich usuwa punkty odstające w pewien sposób od reszty pomiaru, a więc takie, które mogą sugerować szum pomiarowy. Punkty te są wykrywane przez zliczanie sąsiadów w ich otoczeniu o określonej wielkości, a jeśli tych sąsiadów będzie mniej niż dwóch, punkt taki jest odrzucany z dalszych obliczeń. Istotnym etapem filtracji jest tez wykrywanie spadków terenu. Rozwiązanie wykorzystuje metodę śledzenia promieni (rys. 3) do wyznaczenia punktów w przestrzeni, w których następuje nieciągłość płaszczyzny podłogi, a następnie na tej podstawie generuje wirtualne przeszkody uniemożliwiające algorytmom nawigacji wyznaczanie trasy w tym miejscu.


Rys. 3. Wykrywanie spadków terenu

Po procesie filtrowania, na podstawie punktów w przestrzeni wyznaczane są wolne i zajęte komórki w trójwymiarowej mapie zajętości. Na jej podstawie w kolejnym kroku określana jest dwuwymiarowa mapa kosztu [5], stanowiąca bazę dla dalszych algorytmów wyznaczania ścieżki globalnej oraz lokalnej [6]. Na rys. 4 przedstawiony jest wycinek z mapy w czasie pracy systemu – widoczna jest geometryczna mapa globalna, nałożona na nią lokalna mapa kosztu oraz odczyty ze skanera laserowego.


Rys. 4. Mapa globalna oraz lokalna mapa kosztu w czasie pracy systemu

Wnioski

Stworzony system sterowania robota mobilnego spełnia założenia określone na początku pracy. Dzięki modularnej budowie i pełnemu odseparowaniu poszczególnych jego elementów zgodnie z ich logicznymi zależnościami uzyskano wysoką elastyczność i umożliwiono łatwą wymianę pojedynczych jego fragmentów. Wyniki uzyskane w przeprowadzonych testach pokazują, że informacja z czujników otoczenia działających w trzech wymiarach może być z powodzeniem wykorzystana podczas nawigacji robotów mobilnych, zarówno w trybie symulowanego skanera laserowego, jak i wykorzystując w pełni uzyskiwaną chmurę punktów. Dodatkowe obciążenie wprowadzane przez przetwarzanie większej ilości danych jest kompensowane przez dużo szersze spektrum możliwych do wykrycia przeszkód, zarówno tych stosunkowo mniej niebezpiecznych, jak małe przedmioty, jak i mogących spowodować duże uszkodzenia robota, np. schody prowadzące w dół.

Bibliografia

  1. J. Borenstein, H. R. Everett, L. Feng. Where am I? sensors and methods for mobile robot positioning. University of Michigan, 1996.
  2. W. Szynkiewicz, R. Chojecki, A. Rydzewski, M. Majchrowski, P. Trojanek. Modułowy robot mobilny Elektron. Postępy Robotyki: Sterowanie, percepcja i komunikacja, wolumen 1, strony 265–274. Wydawnictwa Komunikacji i Łączności, Warszawa, 2006.
  3. M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, A. Ng. ROS: an open-source robot operating system. ICRA Workshop on Open Source Software, 2009.
  4. D. Fox. Kld-sampling: Adaptive particle filters and mobile robot localization. Advances in Neural Information Processing Systems (NIPS), strony 26–32, 2001.
  5. E. Marder-Eppstein, E. Berger, T. Foote, B. Gerkey, K. Konolige. The Office Marathon: Robust navigation in an indoor office environment. International Conference on Robotics and Automation (ICRA), strony 300–307, 2010.
  6. D. Fox, W. Burgard, S. Thrun. The dynamic window approach to collision avoidance. Robotics & Automation Magazine, IEEE, numer 4(1), strony 23–33, 1997.

Autorzy

Bartosz Markocki
Karol Rejmanowski
Maciej Stefańczyk
Piotr Majcher
Piotr Miedzik