• Nie Znaleziono Wyników

Rozpoznawanie obiektów w chmurach punktów

W dokumencie W POLITECHNIKA POZNAŃSKA (Stron 77-89)

5. Sterowanie robotem przemysłowym przy użyciu skanera 3D

5.2. Rozpoznawanie obiektów w chmurach punktów

5.2.1 Wyznaczanie pozycji modelu w scenie podzielonej na grupy

Algorytm rozpoznawania elementów zbioru modeli w chmurze sceny można zarysować przy pomocy opisanych poniżej kroków.

wejście: chmura sceny S, lista modeli M wyjście: zbiór wyników R

grupowanie S→S={Si};

dla każdej grupy sceny Si w S i modelu Mj w M próbkuj w dół

oblicz deskryptory

dla każdej (Si, Mj)

zgrubne dopasowanie dokładne dopasowanie jeżeli walidacja udana

dodaj wynik Rij do R

Algorytm 5.1. Zarys metody lokalizacji obiektów w chmurze punktów

Występowanie niezależnych pętli na zbiorach elementów pozwala na równoległe wykonywanie obliczeń. Opisywana w tym opracowaniu metoda została zaimplementowana tak, że obliczenia dopasowania dla każdej pary model i fragment sceny są wykonywane przez niezależny proces.

Pozwala to w pełni wykorzystać wielordzeniową architekturę nowoczesnych procesorów.

Przy pomocy skanera optycznego można zmierzyć za jednym razem wiele obiektów znajdujących się w przestrzeni roboczej. Stosując opisaną metodę można przeprowadzić dopasowywanie modeli do całej sceny, jednak jest to nieefektywne obliczeniowo. Sugeruje się wcześniejsze przeprowadzenie procesu grupowania, to jest podziału chmury na mniejsze, odrębne części. Najprostszy sposób przypomina popularny w grafice komputerowej algorytm typu flood fill.

Wybrany zostaje punkt, wokół którego, wewnątrz sfery o zadanym promieniu wyszukuje się punktów sąsiednich i dodaje do nowej chmury reprezentującej grupę. Następnie czynność jest powtarzana dla wszystkich nowo dodanych punktów. Pozwala to uzyskać spójne, wyraźnie oddzielone od innych zbiory punktów, co z dużym prawdopodobieństwem oznacza chmurę reprezentującą odrębny obiekt.

Wyszukiwanie modeli w surowych danych z uwzględnieniem wszystkich punktów w chmurze jest możliwe, lecz wymagałoby ogromnej mocy obliczeniowej. Poza tym w większości obiektów wytworzonych przez człowieka znaczna część powierzchni to płaszczyzny i walce. Punkty należące do tych powierzchni będą miały bardzo podobne deskryptory, nie będą one rozróżnialne.

Naturalnym podejściem jest wyszukiwanie punktów, które są unikalne w modelu, takich jak krawędzie i naroża. Wyszukiwanie punktów o unikalnym położeniu, to jest punktów kluczowych jest nieustannie rozwiązywanym problemem badawczym, przeprowadzone testy różnych metod oraz doświadczenia innych naukowców [125] sugerują, że nie opracowano dotychczas metody, która byłaby dostatecznie powtarzalna do chmur punktów pobranych ze skanerów laserowych, obarczonych szumem, punktami odbiegającymi i zasłonięciami. W opisywanej metodzie nie stosuje się wyszukiwania kluczowych punktów, a jedynie próbkowanie w dół, w celu uzyskania luźniejszej i mniej kosztownej obliczeniowo struktury. Posłużono się w tym celu strukturą drzewa ósemkowego. Chmurę punktów o mniejszej rozdzielczości, to jest średniej odległości między

punktami sąsiednimi, niż chmura początkowa uzyskuje się poprzez ustawienie punktów w środkach komórek z wybranego poziomu drzewa.

Wstępne dopasowanie modelu do pozyskanej chmury punktów wykonywane jest przy użyciu odpornego na zasłonięcia i błędnie zmierzone punkty algorytmu RANSAC. Generowanie hipotez rozmieszczenia modeli w pobranej trójwymiarowej reprezentacji otoczenia robota przebiega następująco. Z deskryptorów modelu losowana jest grupa n punktów. Do określenia sztywnej transformacji wystarczą ns = 3 punkty i takie podejście zastosowano (rys. 5.2).

Dla każdego z tych ns punktów wyszukiwane jest nd najbardziej zbliżonych deskryptorów z pobranej chmury punktów. Wystarczające byłoby nd = 1, jednak w celu zwiększenia pewności wprowadza się element losowości i przyjmuje się nd = 5 i losuje z nich punkt, który będzie odpowiadającym deskryptorem. Znaczna część hipotez będzie nieprawidłowa, co można szybko sprawdzić przez określenie odległości między punktami na modelu i punktami w badanej chmurze.

Szybkie odrzucenie wadliwych dopasowań, w których stosunek długości odcinków łączących punktów przekroczy założony próg ts zostało opisane w [41] i wielokrotnie skraca czas całej procedury. Hipotezy, które przeszły pierwsze sprawdzenie są weryfikowane. Model przemieszczany jest przez transformację zdefiniowaną przez przesunięcie i obrót odpowiadających sobie deskryptorów. Następnie obliczany jest udział punktów modelu, które znalazły się bliżej badanej chmury niż zadana progowa odległość. Dla testowych modeli próg ten określano na to = 10 mm.

Jeżeli udział punktów dobrze dopasowanych jest większy niż parametr fi = 0,5 to nie ma powodów do odrzucenia hipotezy. Jeżeli punktów dopasowanych jest za mało, to hipotezę odrzuca się i losuje kolejny zestaw deskryptorów i powtarza cały proces, do uzyskania prawidłowej hipotezy lub przekroczenia dopuszczalnej liczby iteracji.

Rys. 5.2. Transformacja wynikająca z dopasowania odpowiadających sobie deskryptorów

Metoda wyszukiwania dopasowywania deskryptorów nie jest bardzo dokładna. Zdarza się, że wiele sąsiadujących ze sobą punktów może zostać opisane bardzo zbliżonymi wektorami, dlatego akceptowane hipotezy są jedynie zgrubnym dopasowaniem. Ta wstępna transformacja jest podstawą do dalszego dopasowywania modeli do sceny. W tym celu używa się iteracyjnego algorytmu minimalizującego sumę kwadratów odległości między najbliższymi sobie punktami ICP.

Walidacja rozwiązania polega na porównaniu odchyleń modelu od sceny z progiem odrzucania danego rozwiązania po ostatecznym dopasowaniu. Miarę jakości dopasowania definiuje się jako sumę kwadratów odległości dopasowanego modelu do najbliższego punktu sceny.

SSE=

progowe, przez co część prawidłowych rozwiązań była odrzucana i przekazywana do ponownej analizy wstępnej. Kierowano się obawą o sprzęt, który mógłby zostać uszkodzony, gdyby zaakceptowano nieprawdziwe dopasowanie i skierowano robota do pobrania faktycznie nieistniejącego obiektu.

5.2.2 Trajektoria robota sterowanego skanerem laserowym

Zadanie generowania trajektorii robota realizowane jest przez komputer PC działający w jednej sieci lokalnej z kontrolerem robota i skanerem optycznym. Kontroler robota pobiera jedynie

dla każdego model|IDmodel≠0 w R

J: IDJ = IDmodel //znajdź odpowiadające metadane w D

wyślij P do kontrolera robota;

Algorytm 5.2. Generowanie trajektorii robot dla zadania montażu

Lista wykrytych modeli w chmurze punktów została oznaczona R. Każdy obiekt opisany jest identyfikatorem modelu ID oraz transformacją Ti, oznaczającą jego położenie w przestrzeni. D to zbiór metadanych dla każdego modelu o identyfikatorze ID. Zawiera on położenie obiektu względem części bazowej T0i w montowanym wyrobie oraz wektor kierunku montażu vi. Zbiór kolejnych położeń robota, zdefiniowanych jako przekształcenie od podstawy robota do punktu roboczego narzędzia oznaczono P . Zakłada się, że układy współrzędnych modeli są umieszczone w miejscu chwytu, a oś Z układu jest normalna do powierzchni chwytanej. Jeżeli modele nie spełniają tych założeń należy zastąpić transformację Ti kombinacją transformacji określających położenie modelu w przestrzeni i położenie punktu chwytu względem początku układu współrzędnych obiektu. Zależności pomiędzy poszczególnymi transformacjami przedstawia rys. 5.3.

Wymiar dbezpieczna oznacza bezpieczną odległość od elementów ograniczającą ryzyko kolizji.

Robot ustawia narzędzie na wysokości ddobieg nad spodziewaną powierzchnią chwytu. Następnie do chwytaka doprowadzane jest podciśnienie i uruchamia się powolny ruch w dół. Uchwycenie przedmiotu jest sygnalizowane przez przełącznik próżni wykrywającym spadek ciśnienia. W tym momencie ruch jest przerywany. Niewielkie przesunięcie narzędzia w czasie opóźnienia między wykryciem uchwycenia przedmiotu, a zatrzymaniem ruchu jest kompensowane przez elastyczność przyssawki próżniowej. Brak sygnału o uchwycie jest interpretowane jako błąd. Jest to uproszczone rozwiązanie. Dla systemu działającego w warunkach przemysłowych, bez nadzoru człowieka, lepiej byłoby wyposażyć robota w czujniki siły i impendacyjny układ sterowania, jak [126]. Takie rozwiązanie pozwala wyeliminować ryzyko zniszczenia obiektu lub manipulatora w przypadku awarii systemu rozpoznawania obiektów. Umożliwiłoby implementacje metod reakcji na interakcje z otoczeniem zarówno przy chwytaniu obiektów, jak i przy ustawianiu w pozycji montażowej.

Rys. 5.3. Generowanie trajektorii robota a) zależności pomiędzy transformacjami b) strategia chwytania obiektu

5.3. Weryfikacja rozwiązania

5.3.1 Badanie powtarzalności rozpoznawania pomiarów skanera laserowego

W celu określenia przydatności rozwiązania zaplanowano sprawdzenie powtarzalności dopasowywania modeli obiektów do chmur punktów pobranych przy pomocy optycznego skanera triangulacyjnego (opracowanie własne, rozdział 3). Uzyskiwane chmury punktów to pomiary częściowe, które powstały przez jedno, liniowe przesunięcie rzutnika linii laserowej. Część obiektu nie jest zeskanowana, ze względu na zasłonięcie wiązki lasera przez inne powierzchnie obiektu.

Mimo widocznych ubytków powierzchni, algorytm jest w stanie dopasować model do chmury punktów w większości przypadków.

Sprawdzeniu powtarzalności podlega jedynie algorytm dopasowujący modele do chmury punktów. Wyniki są niezależne od dokładności urządzenia pomiarowego. W tym celu 100 krotnie wirtualnie przesuwano i obracano każdą uzyskaną chmurę punktów. Transformacja była generowana losowo. Następnie algorytm dopasowywał modele z zapisanej kolekcji i porównywał z prawdziwą transformacją. Tabela 5.1 przedstawia w jakiej części przypadków udało się wykryć prawidłowo element, oraz jakie było odchylenie standardowe pozycji modelu i jego orientacji względem wygenerowanej przez skaner chmury punktów.

Tabela 5.1. Wyniki wykrywania modelu w cząstkowych pomiarach skanerem laserowym

Prawdopodobieństwo

wykrycia 81% 62% 40% 71% 77%

spoz [mm] 0,29 0,43 0,25 0,15 0,39

skąt [rad] 0,0017 0,0032 0,0016 0,0009 0,0019

czas [s] 2,9 1,9 2,6 3,6 3,6

Średnie odchylenia standardowe spoz i skąt pochodzą z porównywania wyliczonej transformacji z wygenerowaną wcześniej transformacją prawdziwą i dotyczą odpowiednio przesunięcia i obrotu.

Podany czas, to średnia z czasu detekcji modelu w 100 chmurach punktów przy użyciu 8 wątków procesora Intel i7 4702MQ.

Prawdopodobieństwo wykrycia obiektu określone zostało jako procentowy udział prawidłowo dopasowanych punktów do sceny. Zależy ono od wielu parametrów stosowanych algorytmów. Dla

lepszego przedstawienia przydatności metody i jej uniwersalności wszystkie testy przeprowadzane były przy stałych parametrach podanych w tabeli 5.2.

Tabela 5.2. Parametry algorytmów dobrane do walidacji systemu

Parametr Wartość Komentarz

Grupowania tolerancja

grupy 25 mm Promień sfery wokół punktu, w której szuka się kolejnych punktów należących do obiektu

wymiar woksela, którego środek jest punktem nowej bardziej rzadkiej, chmury punktów

Szacowanie normalnych promień

poszukiwania 2r promień sfery, w której szuka się sąsiadów punktu w celu zdefiniowania lokalnej płaszczyzny

Określanie deskryptorów FPFH promień

poszukiwania 3r

promień sfery wokół punktu, w której szuka się sąsiadów w celu

zdefiniowania lokalnych cech powierzchni ( musi być większy o promienia przy generowaniu normalnych)

10 mm graniczna odległość punktu chmury kwalifikująca jako punkt odstający od modelu

liczba iteracji 16 000 liczba cykli generowania hipotezy i jej weryfikacji liczba próbek,

ns 3 liczba punktów, które są podstawą do wygenerowania hipotezy przetwarzane

deskryptory, nd 5 liczba najbardziej podobnych deskryptorów, z których losuje się hipotezę dopasowania

próg

podobieństwa ts

0,8 wskaźnik wczesnego odrzucania hipotez na podstawie odległości między odpowiadającymi sobie punktami w hipotezie

udział punktów przystających, fi

0,5 wymagany do akceptacji hipotezy udział punktów modelu znajdujących się bliżej chmury niż parametr próg odrzucania punktów odstających

Dopasowywanie dokładne - ICP krok

transformacji 0,0001 minimalna zmiana w macierzy transformacji w celu poprawy dopasowania (warunek zatrzymania obliczeń)

liczba iteracji 1000000 maksymalna liczba iteracji (warunek zatrzymania obliczeń)

5.3.2 Badanie odporności na zasłonięcie powierzchni

Pomiary optycznymi skanerami opartymi na generatorze światła strukturalnego i sensorze wizyjnym są pomiarami 2,5D. Wynikiem jest mapa punktów i ich odległości od sensora. Uzyskanie pełnej reprezentacji 3D obiektu wymaga wzajemnego przemieszczania obiektu i sensora.

W warunkach przemysłowych korzystne jest maksymalne skrócenie czasu pomiaru i uniknięcie przemieszczania obiektu lub czujnika pomiarowego. Z tego względu nie rozpatruje się w tym opracowaniu dopasowywania pełnych chmur punktów reprezentujących obiekty, a jedynie pomiary częściowe, które można uzyskać z jednego położenia układu pomiarowego względem obiektu.

Pozyskanie wielu chmur punktów o zadanym współczynniku zasłonięcia jest niemożliwe.

W celu bardziej miarodajnego określenia odporności algorytmu generowano ubytki powierzchni w sposób sztuczny. Opracowano algorytm, który generuje braki w powierzchni obiektu możliwie podobne do widocznych w prawdziwych pomiarach optycznym skanerem. Ewentualne różnice w rozłożeniu ubytków są niwelowane przez liczbę możliwych do wygenerowania syntetycznych chmur punktów. Średni stopień rozpoznawania chmur syntetycznych, dla różnych realizacji losowego algorytmu jest bardzo zbliżony do stopnia prawidłowego dopasowywania modeli do autentycznych chmur punktów.

Algorytm jest inspirowany błądzeniem losowym. Punkt początkowy jest wybierany losowo.

Następnie wyszukuje się ks najbliższych sąsiadów punktu. Są one usuwane, oprócz punktu znajdującego się najdalej w tym zbiorze. Staje się on nowym punktem początkowym. Algorytm jest powtarzany tak długo, aż uzyska się zakładany stopień zasłonięcia powierzchni.

wejście: model obiektu M; M = {u0, u1,..., uq}

poziom zasłonięcia ro; współczynnik kształtu kS; wyjście: model ze sztucznymi brakami Mo;

liczba punktów do usunięcia nrem = q · ro;

Algorytm 5.3. Usuwanie części obiektów w celu symulowania zasłonięcia

Algorytm przetestowano na chmurach powstałych w wyniku próbkowania modeli CAD blade ze zbioru Georgia Tech i własnym modelu CAD housing oraz zeskanowanych przy pomocy własnego skanera laserowego modelu holder. Tabela 5.3 przedstawia prawdopodobieństwo wykrycia

poszczególnych modeli przy zadanym udziale powierzchni usuniętej przez algorytm symulujący zasłonięcie.

Tabela 5.3. Prawdopodobieństwo rozpoznania obiektu w zależności od udziału powierzchni zasłoniętej

Zasłonięcie obiektu

25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75%

blade

99% 99% 98% 90% 89% 76% 49% 34% 29% 18% 5%

housing

98% 93% 89% 93% 68% 67% 55% 25% 21% 16% 11%

holder

97% 96% 92% 88% 84% 78% 73% 50% 21% 12% 4%

Widoczny jest znaczący spadek możliwości rozpoznania obiektu, przy rosnącym udziale powierzchni zasłoniętej. Niestety nie da się w prosty sposób zwiększyć tego udziału, bez wykonywania dodatkowych skanów przy innym wzajemnym położeniu sensora i badanego obiektu.

5.3.3 Badanie odporności na punkty odstające

Inną przyczyną występowania trudności wykrywania obiektów w szybkich skanach bez wzajemnego przemieszczania sensora i obiektu są punkty odbiegające od pozostałych. Powstają one najczęściej w wyniku błędnej interpretacji refleksów świetlnych na obrazie. Uniknąć wystąpienia takich błędów można przez zastosowanie:

• pokrycia obiektów matową powłoką, np. proszkiem tlenku tytanu,

• układu wykrywającego nadmierne odbicie światła od obiektu i dostosowanie mocy projektora opartego o laser lub LED,

• przetwarzanie chmury punktów po pomiarze, polegające na usuwaniu punktów, których odległość od najbliższych sąsiadów odbiega od średniej.

Wszystkie te podejścia wymagają dodatkowych nakładów pracy, bardziej zaawansowanych urządzeń pomiarowych lub obliczeń. Wskazane sposoby nie dają gwarancji całkowitej skuteczności, dlatego sprawdzono, jak opracowana metoda radzi sobie ze zniekształceniami wynikającymi z dodatkowych punktów pojawiających się w losowych miejscach. W celu określenia wpływu zakłóceń na prawdopodobieństwo prawidłowego rozpoznania modeli w scenie generowano zniekształcenia w sposób sztuczny, przez dodawanie punktów o losowych współrzędnych i wektorach normalnych w ograniczonej prostopadłościanem przestrzeni pracy skanera. Tabela 5.4 prezentuje jak dodatkowe punkty zmniejszają zdolność metody do rozpoznawania obiektów w scenie.

Tabela 5.4. Odporność metody na punkty odstające

k =liczba punktów odstających

liczba punktów modelu 0 1 2 3 4 5 6 7

blade

100% 87% 75% 74% 44% 43% 26% 14%

housing

98% 80% 73% 51% 59% 59% 55% 44%

holder

96% 95% 90% 78% 72% 64% 57% 53%

Okazuje się, że zastosowana metoda jest odporna na punkty odstające i nawet przy poziomach znacznie wyższych niż uzyskiwane przy pomiarach rzeczywistymi urządzeniami pomiarowymi z dużym prawdopodobieństwem rozpoznaje obiekty. Poza tym punkty odstające można stosunkowo łatwo usunąć, stosując podejście statystyczne, to znaczy usuwać punkty, których odległość od najbliższych sąsiadów jest wyraźnie większa od średniej.

5.3.4 Eksperymentalne badanie powtarzalności chwytu

Aby przetestować możliwość wykorzystania przedstawionego zestawu metod w zadaniach montażowych, zweryfikowano powtarzalność chwytania obiektów umieszczonych w dowolny sposób na palecie. Dla porównania zastosowano tę samą technikę pomiaru powtarzalności, aby

sprawdzić chwytanie przedmiotów z zacisku montażowego. Ocenę przeprowadzono przez pomiar położenia płaszczyzn części za pomocą czujnika zegarowego z dokładnością 0,01 mm. Zasada pomiarów jest przedstawiona na rys. 5.4.

W celu określenia błędu chwytania elementu, mierzona jest odległość i kąt między spodziewanymi, a rzeczywistymi płaszczyznami obiektu. W tym celu wykonuje się pomiar czujnikiem pomiarowym w dwóch miejscach wskazanych na rys. 5.4 czerwonymi kropkami.

Pomiary są powtarzane dla dwóch prostopadłych osi obiektu. Błędy liniowe występujące w kierunku osi chwytaka i błędy obrotu w osiach prostopadłych do osi chwytaka nie wpływają na dokładność pozycjonowania części. Są one kompensowane przez sprężyste odkształcenie przyssawki chwytaka podciśnieniowego. Wyniki pomiarów, jako odchylenia standardowe od średniej dla przesunięcia i obrotu przedstawiono w tabeli 5.5.

Tabela 5.5. Błędy chwytu w dla stałej pozycji obiektu i zmiennej pozycji, szacowanej przez skaner

Błąd chwytu przy stałej trajektorii robota

Błąd chwytu przy trajektorii na podstawie pozycji modelu w chmurze punktów

sx [mm] 0,08 0,84

sα [°] 0,55 1,42

Znaczące odchylenia, nawet w przypadku chwytania obiektu ze stałego miejsca na stole, mogą być wynikiem małej precyzji chwytaka próżniowego. Prezentowany system (rys. 5.5) nadaje się do montażu różnych wyrobów, takich jak opakowania z tworzyw sztucznych oraz do paletyzacji produktów. Testy wykazały, że uzyskana dokładność pozycjonowania części pobieranych przez sześcioosiowy manipulator robota przemysłowego w oparciu o dane z prostego skanera laserowego jest zbyt mała dla operacji precyzyjnego montażu.

Rys. 5.4. Pomiar powtarzalności chwytu obiektów rozpoznanych przez skaner

Przedstawiona metoda łączy wiele znanych już wcześniej algorytmów. Wkład autora polega na testowaniu i wybraniu odpowiedniej kombinacji metod zdolnej do wspomagania zrobotyzowanego procesu montażu na podstawie danych z optycznych skanerów 3D. Opracowano sekwencję działań od skanowania do umieszczenia obiektów w pozycji montażowej przez robota przemysłowego.

Wybrano metody oraz dobrano zestaw parametrów. Efektem jest uniwersalna procedura, która określa położenie zadanych modeli w cząstkowych pomiarach wykonywanych przy ustalonym względnym położenia sensora obiektu mierzonego.

Rys. 5.5. Fazy działania systemu a) skanowanie, b) dopasowywanie modelu do chmury punktów, c) planowanie ścieżki i chwyt

6. Wyznaczanie pozycji obiektów przy użyciu

W dokumencie W POLITECHNIKA POZNAŃSKA (Stron 77-89)