Unitemsoftware » System wizyjny w kosiarce autonomicznej
Intel RealSense D435i
1. UniSheep na lotnisku w Szymanowie.

Skoszenie określonego obszaru na podstawie zadanego konturu jest zadaniem bardzo skomplikowanym i wymaga rozwiązania wielu pomniejszych problemów takich jak lokalizacja, nawigacja, sterowanie czy też percepcja. Ze względu na wspomniany poziom skomplikowania, kosiarka autonomiczna składa się z wielu modułów, dzięki którym jest w stanie zrealizować postawiony cel. Jednym z podstawowych komponentów autonomicznej kosiarki jest system wizyjny. Dzięki niemu kosiarka rozpoznaje oraz rozumie środowisko, w którym się znajduje. Wspomniany moduł realizuje następujące zadania:

  • akwizycja obrazów RGB oraz mapy głębi,
  • wykrywanie na obrazie przeszkód oraz obszaru roboczego tj. trawy,
  • rekonstrukcja świata w 3D,
  • filtracja zrekonstruowanej chmury punktów,
  • aktualizacja mapy kosztów (ang. costmap), na podstawie której przeprowadzana jest nawigacja.

 

Intel RealSense D435i
2. Schemat reprezentujący przetwarzanie obrazu RGB oraz mapy głębi dla pojedynczej kamery.

Sprzęt

Kosiarka została wyposażona w szereg czujników, które służą do poznawania otoczenia. Są to między innymi: LIDAR, zderzak bezpieczeństwa, czujnik zderzeniowy oraz kluczowe dla systemu wizyjnego kamery.

Intel RealSense D435i

Zastosowana kamera rejestruje dwa obrazy, które są wykorzystywane w systemie wizyjnym: obrazy RGB oraz mapa głębi. Pierwszy z nich to standardowy obraz trzykanałowy, gdzie każda wartość składowej czerwonej, zielonej oraz niebieskiej jest reprezentowana przez liczbę jednobajtową. Mapa głębi jest obrazem jednokanałowym, w których przechowywane wartości zapisane są jako liczby dwubajtowe. Wartość piksela mapy głębi to odległość do przeszkody wyrażona w milimetrach. Każdy obraz ma rozdzielczość 640×480.

Warto zwrócić uwagę, że we wstępnej fazie obrazy są przygotowywane w taki sposób, aby piksel na obrazie RGB odpowiadał pikselowi na mapie głębi. Proces ten nazywa się wyrównywaniem mapy głębi (ang. depth map alignment). Dzięki takiej transformacji, każdemu pikselowi z obrazu RGB można przypisać również informację o głębi.

Podczas testów kamer przy domyślnych ustawieniach został zaobserwowany problem związany z pojawiąjącymi się szumami. Efekt był szczególnie widoczny na niebie. Szumy powodowały, że pojawiały się przeszkody, które w rzeczywistości nie istniały. Problem został rozwiązany przez wybór trybu pracy kamery, w której pomiary o niskiej wiarygodnośni są odrzucane.

Intel RealSense D435i
4. Intel RealSense D435i

Rozmieszczenie czujników i mechanizm przełączania kamer

Kosiarka posiada 4 kamery Intel RealSense D435i, po dwie na przód oraz tył. W zależności od zwrotu ruchu komputer odpowiednio włącza lub wyłącza odpowiednią parę kamer. Mechanizm został zaimplementowany, aby ograniczyć koszty związane z czasem obliczeń potrzebnych do przetworzenia wszystkich algorytmów wizyjnych.

Intel RealSense D435i
3. Rozmieszczenie kamer na kosiarce oraz wizualizacja mechanizmu przełączania.

Segmentacja obrazu

Segmentacja obrazu to proces podzielenia obrazu na obszary wykazujące te same właściwości. Kosiarka potrafi wykryć obszary zawierające trawę, ludzi oraz pozostałe obiekty, które nie mogą zostać zaliczone do dwóch pierwszych klas. Za proces segmentacji odpowiedzialna jest głęboka, konwolucyjna sieć neuronowa oparta na architekturach ResNet34 oraz DeepLab. Sieć została wyuczona na zbiorze danych COCO oraz zbiorze obrazów przygotowanych przez zespół, nagranych w parku, lotniska oraz domowego trawnika.

Intel RealSense D435i
5. Obraz RGB z zaznaczonymi obszarami po segmentacji. Kolor czerwony – człowiek, kolor zielony – trawa, kolor niebieski – pozostałe

Rekonstrukcja 3D

Na podstawie mapy głębi można zrekonstruować środowisko, w którym znajduje się kosiarka. Mając do dyspozycji mapę głębi D, każdemu pikselowi o współrzędnych (u,v) można przypisać punkt w przestrzeni 3D o współrzędnych (x,y,z). x=u−xcfxD(u,v)y=v−ycfyD(u,v)z=D(u,v)1000 gdzie, (xc,yc) to współrzędne środka obrazu, a fx,fy to długości ogniskowych odpowiednio w kierunku x oraz y wyrażone w pikselach. Wymienione parametry to elementy macierzy parametrów wewnętrzych kamery (ang. intrinsic matrix), wyrażona jako: K=[fx0cx0fycy001]

W trakcie rekonstrukcji 3D wykorzystywana jest również informacja pochodząca z sieci neuronowej, która segmentuje obraz RGB. Na tej podstawie istnieje możliwość wizualizacji chmury punktów, poprzez nadanie punktom koloru w zależności od klasy, która została mu przyporządkowana. Przykład takiej wizualizacji pokazano poniżej, gdzie osobnymi kolorami zaznaczono punkty należące do trawy oraz przeszkód.

Intel RealSense D435i
6. Wizualizacja chmury punktów, której punkty zostały zaklasyfikowane jako przeszkoda (kolor czerwony) lub trawa (kolor zielony). Środowisko zostało zbudowane w symulatorze Gazebo, a wizualizacja pochodzi z programu RViz.