Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Skaner przestrzeni 3D

genetix 20 Cze 2004 15:31 45786 127
  • #1 20 Cze 2004 15:31
    genetix
    Poziom 24  

    Kiedyś w którejś z gazet (EP lub EdW) był zamieszczony artykuł na temat "wzroku" robota. Autor przedstawił tam bardzo ciekawą koncepcję skanowania przestrzeni 3D przed robotem.

    W telegraficznym skrócie wyglądało to tak:
    robot wyświetla przed sobą poprzeczną linię (np. laserem lub LED) i obserwuje ją pod innym kątem niż kąt padania (np. z kamery umieszczonej powyżej źródła światła):
    - na idealnie płaskiej powierzchni będzie widział poziomą, poprzeczną linię (nazwijmy ją umownie poziomem "zero").
    - na powierzchni opadającej będzie widział poziomą linię, ale niżej niż na poziomie zero)
    - analogicznie zauważy linię wyżej, gdy podjedzie do pochylni w górę
    - dojazd do przeszkody z lewej strony (np. leżącego pudełka) zaobserwuje jako podniesienie linii po lewej stronie. co ciekawe: im wyżej linia - tym bliżej przeszkoda.

    PROBLEM: trzeba skonstruować układ do analizy położenia linii.

    1. jak wykonać "rzutnik" linii? pomysłem jest puszczenie wiązki laserowej na obracające się lusterko umieszczone lekko pod kątem do osi silnika. a może jakaś optyka a'la skaner kodów kreskowych?
    2. co wykorzystać w charakterze "kamery"? kamere, np USB? detektor z myszki optycznej? matrycę elementów typu fototranzystor?


    uważam, że problem jest arcyciekawy i proszę o propozycje i sugestie.

    PS. jak ktoś nie czai tej koncepcji to zamieszczę rysunek, ale to potrwa!

    0 29
  • #2 20 Cze 2004 19:01
    kaldachar
    Poziom 14  

    Cześć

    Pomysł jest rzeczywiście ciekawy . Ale jak chcesz rozwiązać pomysł z tym lusterkiem ( odręczny szkic pomoże mojej wyobraźni ) . Co do samego czujnika w gre wchodzi raczej układ zbudowany z fofdiod . Koszty i oprogramowanie takiego odbiornika są proste . Jeżeli pojazd ma być autonomiczny to raczej ciężko będzie użyć procesora do obróbki wizji . Wydaje mi się że odpowiednio dobrana optyka i diody powinny załatwić sprawę :-)

    Pozdrawiam

    0
  • #3 20 Cze 2004 19:41
    genetix
    Poziom 24  

    :arrow: kaldachar
    przyjrzyj się skanerom kodów kreskowych w hipermarketach (tylko tym wbudowanym w ladę). Właśnie tam strumień lasera jest "rozrzucany" przez wirujące lusterko (wirujące albo drgające).

    0
  • #4 20 Cze 2004 20:20
    kaldachar
    Poziom 14  

    Rozumiem zasadę działania :-) . Moim zdaniem jest to trochę wrażliwy system jak na zastosowanie w robocie . Nie znam założeń robota i jego środowiska pracy , ale lustro jest mało odporne mechanicznie i łatwo go uszkodzić . Dodatkowo jeżeli robot będzie wystawiony na zmienne warunki środowiskowe to istniej szansa na zaparowanie lustra i wtedy będzie ciekawie :-) . Ale jako zabawka to powinno się sprawdzić .

    Pozdrawiam

    0
  • #5 20 Cze 2004 21:03
    genetix
    Poziom 24  

    kaldachar napisał:
    (...) jeżeli robot będzie wystawiony na zmienne warunki środowiskowe to istniej szansa na zaparowanie lustra (...)


    zgadza się - ale na razie jesteśmy na etapie budowy prototypu. a w końcowym egzemplarzu można całość zamknąć w puszce z szybką :wink:
    Była to tylko jedna z propozycji - najlepiej będzie użyć kilku superjasnych diod LED - mają one dość szeroki kąt świecenia, więc wystarczy tylko zbudować osłonę (maskę) formującą strumień światła w linię. Dodatkową zaletą będzie łatwiejsze sterowanie diodami - powinny migać z określoną częstotliwością aby trudniej było przypadkowo oszukać czujnik innym źródłem światła.

    0
  • #6 20 Cze 2004 21:43
    kaldachar
    Poziom 14  

    Jak sobie teoretyzujemy , to można by zastosować zamiast lustra odpowiedni kolimator . Zadaniem kolimatora było by właśnie uformowanie wiązki prostopadłej do podłoża . Fajny byłby też efekt optyczny :-) . Wchodząc w sfere z pogranicza fantastyki ( jeżeli chodzi o wykonanie amatorskie ) to dobrym rozwiązaniem było by zastosowanie dwóch kamer sprzęgniętych ze sobą ( coś na wzór naszych oczu ) i na podstawie uzyskanego z nich obrazu stworzyć trójwymiarową mapę terenu . Następnie oprogramowanie szukało by drogi ( lub przeszkód ) :-) . Już widzę moc obliczeniową tego robota :-) . Ale pomarzyć zawsze można ...

    Pozdrawiam

    0
  • #7 25 Cze 2004 18:08
    ucy74
    Poziom 20  

    Poszukajcie sobie ogólnie o skanerach 3D. Problem zaczyna się gdy trzeba napisać soft do analizowania danych z kamerki video, tego nikt nie chce zamieścić ;-))

    A co do robienia linijki z kropki lasera to wystarczy przepuścić promień przez pręcik szklany - robi "ładną" kreskę, choć słabnącą im dalej od osi promiena lasera.

    0
  • #8 25 Cze 2004 18:21
    milik
    Poziom 23  

    Oglądałem kiedyś program na ten temat. A wnim konstruktorzy włożyli takie coś do modelu śmigłowca i wypucili go w teren. Mógł on się orjętować w tym terenie i rozpoznawać nowe obiekty i też było to zrobione na laserze

    0
  • #9 28 Cze 2004 18:31
    tszewc
    Poziom 15  

    Skanery tego typu ma w swojej ofercie SICK. Z tego co wiem są to niestety drogie urządzenia :(
    Zasada działania polega na odbiciu promienia lasera od wirującego z dużą prędkością lustra.
    Produkt specjalizowany: http://www.sick.pl/pl/oferta/katalogue/safety/opto/skanery/pl.html
    Tego typu skanery są wykorzystywane do pomiarów 2D i 3D w różnych aplikacjach.

    Chcąc zrobić skaner tego typu potrzeba (moim zdaniem) silnika synchronicznego do obrotu lustra, lasera małej mocy i wykorzystując np. zjawisko Dopplera mamy pomiar odległości. Wiedząc w którym aktualnie jesteśmy położeniu kątowym mamy skaner 2D.
    Skaner 3D będzie chyba ciut bardziej skomplikowany... ;)

    0
  • #10 29 Cze 2004 22:15
    kaldachar
    Poziom 14  

    Być może nie jestem mocny w fizyce :-) , ale nie mam pojęcia jak zrobić pomiar odległości w oparciu o prawo Dopplera . Czy mógłby kolega wyjaśnić tą metodę ??

    Pozdrawiam

    0
  • #11 30 Cze 2004 08:00
    morph13
    Poziom 25  

    genetix napisał:
    Kiedyś w którejś z gazet (EP lub EdW) był zamieszczony artykuł na temat "wzroku" robota. Autor przedstawił tam bardzo ciekawą koncepcję skanowania przestrzeni 3D przed robotem.


    Taka metodę analizay zamierzam zastosować w "oku robota" z zastosowaniem optyki i scalaka z myszy optycznej.

    0
  • #12 30 Cze 2004 13:34
    tszewc
    Poziom 15  

    OK, z Dopplerem to nie tutaj ;)
    Myślałem o prędkości...
    Niemniej jednak wiązka laserowa wykorzystywana jest do pomiaru odległości. Może mierzony jest czas przelotu? Niestety nie wgłębiałem się nigdy w szczegóły budowy takiego urządzenia.

    0
  • #14 30 Cze 2004 18:21
    ucy74
    Poziom 20  

    Skaner 3D jest zbudowany wg. zasady:

    1. Znana odległość i kąt pomiędzy osiami optycznymi lasera i kamery.
    2. Prążek rzucany przez laser zniekształca się na skanowanej powierzchni.
    3. Kamera widzi prążek, a na podstawie jego deformacji, program przelicza płaski obraz z kamery na siatkę punktów w przestrzeni.

    Zamiast pojedyńczego prążka lasera może być światło strukturalne (pionowe lub poziome paski, kolejno w kilku grubościach) z rzutnika LCD. W tym wypadku rzuca się jednorazowo na skanowany obiekt, wiele prążków, więc pomiar jest dokładniejszy.

    Tak jak pisałem, jest problem z free softem analizującym obraz z kamery.

    0
  • #15 05 Lip 2004 21:16
    genetix
    Poziom 24  

    Trzebaby poszukać formatu transmisji danych z kamerki internetowej na porcie USB. Odpadnie cały problem z analizą analogowego sygnału wizji.

    :?: Czy popularne kamerki internetowe można konfigurować software'owo w zakresie zmiany rozdzielczości?

    0
  • #16 06 Lip 2004 09:07
    mag32
    Poziom 19  

    Myślę [ ;) ], że do amatorskiej zabawki wystarczy skaner z myszki, jego rozdzielczość jest w tym przypadku wystarczsająca, a w necie są opisy protokołów transmisji tych modułów. Jeśli chodzi o analize punktów to mamy tam tylko jest albo nie ma czyli true/false a to nie powinno być aż takie skomplikowane dla atmela na przykład.

    0
  • #17 06 Lip 2004 15:07
    genetix
    Poziom 24  

    W notach katalogowych znalazłem przykładowe "screeny" z kamerki i nie są one dwukolorowe. Kamera rozróżnia kilka poziomów szarości - inaczej nie miałoby to zastosowania w detekcji przesunięcia myszy.

    Zastosowanie tej kamerki do skanowania przestrzeni 3D przed robotem wymaga obserwacji obszaru ok. 10-20cm - czyli niezbędna będzie optyka, gdyż normalnie przetwornik z myszy działa może na 2cm2. Dlatego podsunąłem pomysł zastosowania kamery USB i "obcięcia" jej rozdzielczości.

    0
  • #18 06 Lip 2004 19:28
    ucy74
    Poziom 20  

    genetix napisał:
    Dlatego podsunąłem pomysł zastosowania kamery USB i "obcięcia" jej rozdzielczości.


    Niestety - im większa rozdzielczość kamerki (lub aparatu cyfrowego) tym bardziej dokładny model przestrzenny. Tak więc, raczej nie należy nic obcinać.

    Przy okazji: Problem z softem do skanerów 3D nie leży w odbiorze strumienia wideo. Chodzi o soft, który na podstawie rejestrowanych kamerą załamań prążka z lasera, wylicza położenie punktów w przestrzeni. Czyli taki, który interpretuje odebrany obraz.

    0
  • #19 06 Lip 2004 22:05
    genetix
    Poziom 24  

    Zgodzę się, ale prostemu robotowi nie jest do niczego potrzebne rozróżnianie, czy na podłodze leży pantofel czy kalosz - tak czy inaczej jest to dla niego przeszkoda, którą trzena ominąć. A obcięcie rozdzielczości z np 800x600 na 240x320 zredukuje ogromnie ilość obliczeń potrzebnych do stworzenia modelu przestrzeni.

    Myślę, że wystarczyłaby rozdzielczość rzędu 120x120 czyli przy sensownym polu skanowania (np. 12x12cm) daje i tak dużą dokładność 10px2/cm2

    0
  • #20 06 Lip 2004 23:22
    ucy74
    Poziom 20  

    genetix napisał:
    prostemu robotowi nie jest do niczego potrzebne rozróżnianie, czy na podłodze leży pantofel czy kalosz


    Wszystko fajnie - prostemu robotowi do takich rzeczy wystarczy podczerwień. Skaner przyda się wtedy, gdy podłoga jest ogólnie "niepłaska" - usłana pantoflami, kapciami, kaloszami i krzesłami. Tutaj wszystko jest przeszkodą i trzeba wybierać która droga jest mniej kłopotliwa.

    0
  • #22 18 Lip 2004 14:22
    mag32
    Poziom 19  

    W kwestii rozdzielczości kamerki, napisł ktoś wcześniej, ż lepiej większa rozdzielczość bo dokładniejszy odczyt. Zasadniczo tak. Ale weźmy pod uwagę że wtedy potrzebujemy więkrzej mocy obliczeniowej dla procesora a tym samym więcej czasu i energii. Więc trzeba się zastanowić jaka dokładność jest nam niezbędna i zastosować do tego odpowiedni sprzęt. Jeśli chcemy faktyczie wykożystać durzą rozdzielczość to lepiej zbudować osoby moduł który będzie analizował tylko przestrzeń widzianą z kamerki i podawał gotowe wyliczenia do głównego procesora sterującego całym urządzeniem, zaoszczędzimy przynajmniej czas.

    0
  • #23 22 Lip 2004 01:09
    genetix
    Poziom 24  

    :arrow: mag32
    zgadzam się z Tobą, ale chyba lepiej dać tanią kamerę internetową (np. z allegro) np. na USB i softwareowo obcinać rozdzielczość aby dopasować ją do mocy obliczeniowej procka. Czy ktoś już coś takiego robił?

    0
  • #24 28 Lip 2004 21:17
    unitral
    Użytkownik obserwowany

    Witam, a ja mam takie male pytanko, czy skanowanie tereny moglo by odbywac sie poprzez radar dopplera? chodzi mi o ruchoma wiezyczke z umieszczonymi mikrofonami i prockiem ktowy wysyla fale w danym polozeniu wiezyczki, odczytuje odleglosci do najblizszej przeszkody i tak wkolko, tworzac w pamieci mape terenu?
    Czy cos takiego ma wogole sens?
    Pozdrawiam

    0
  • #25 28 Lip 2004 22:14
    rafels
    Poziom 23  

    CzeSC
    Dala robota poruszającego się po płaskiej dwuwymiarowej powierzchni zbędne wydaje się określenie trzeciego wymiaru. Ważne jest za to określenie odległości od przeszkód występujących na jego drodze.
    Najprościej wykonać taki pomiar za pomocą wiązki laserowej skanującej drogę przed robotem. Wiązka powinna poruszać się równolegle do podłoża. Pomiar odległości można wykonać za pomocą fotodetektora skierowanego dzięki optyce(lunetka) w tym samym kierunku co promień. Różnica intensywności odbitego światła można określić odległość od przeszkody. Sprawdzi się to jedynie w przypadku przedmiotów jednakowego koloru.
    Żeby uniknąć tego ograniczenia można skrzyżowąć osie optyczne wiązki lasera i detektora w pewnym punkcie przed robotem. Do odczytu odległości trzeba wykorzystać detektor liniowy w postaci linijki fotodiod(i odpowiedniej optyki). Przedmiot umieszczony bliższej odległości od punktu przecięcia osi da punkt świetlny położony bliżej lasera. Przedmiot umieszczony dalej da punkt bliżej detektora. Zmiany te powinna wykryć linka fotodetektorów dzięki odpowiedniej soczewce. Laser i detektor powinny się zgodnie poruszać badając potrzebny obszar. Odpowiednią selektywność fotodetektorów da użycie filtrów przepuszczających jedynie światło koloru lasera. Zapewni to pewność w różnych warunkach oświetleniowych.
    Oko tego rodzaju sprawdzi się jedynie w przypadku robota niezdolnego do poruszania się w trzecim wymiarze(pokonywanie schodów itp).
    Pozdrawiam.

    0
  • #26 01 Sie 2004 21:58
    muwie
    Poziom 14  

    a po co "obcinac" rozdzielczosc kamerki internetowej. Przeciez niektóży robią roboty współpracujące z kompem. I wtedy można cos takiego zrobic.
    kamera---------------------kompute----------------------robot

    0
  • #27 01 Sie 2004 22:56
    ucy74
    Poziom 20  

    muwie napisał:
    a po co "obcinac" rozdzielczosc kamerki internetowej...

    Chodzi o to, by do analizy obrazu używać mikrokontrolera 10 MIPS, a nie komputera 1000 PLN.

    muwie napisał:
    kamera---------------------kompute----------------------robot

    Mógłbyś podać jakieś konkretne, dostępne dla hobbystów, aplikacje?

    0
  • #28 13 Sie 2004 13:51
    stormblast
    Poziom 14  

    Jest taka dziedzina wiedzy jak fotogrametria. Jej przedmiotem jest zdalne rozpoznawanie terenu. Studiuję geodezję i robiliśmy na ćwiczeniach numeryczny model terenu z dwóch panchromatycznych zdjęć lotniczych, przy zastosowaniu specjalnego oprogramowania.

    Żeby zastosować takie coś w robocie, potrzebne są dwie skalibrowane kamery (wyznaczone ogniskowe, współrzędne środków rzutów) umieszczone w pewnej odległości (baza). Istnieją zakłady które się zajmują kalibracją. Ale do zastosowań amatorskich można byłoby zrobic to samemu.

    Poza tym potrzebny byłby soft do fotogrametrii w czasie rzeczywistym (takie oprogramowanie jest stosowane np. w obrabiarkach i amerykańskich rakietach bojowych). No, ale chyba trzebaby było napisać ten soft własnoręcznie, są książki np: "Fotogrametria Analityczna" w uczelnianych bibliotekach, w których jest dobrze pokazane podejście matematyczne do przetwarzania zdjęć.

    (W tym sofcie jest duzo obliczeń i transformacji pomiędzy układami współrzędnych: kamery, zdjęcia i terenu. Wszystko to liczy się z pomocą rachunku macierzowego i tam jest to wszystko opisane.)

    Do tego dobry jest skrypt "Fotogrametria" Butowtta i Kaczyńskiego (WAT). Jest tam super rozdział: fotogrametria naziemna bliskiego zasięgu, i tam jest wytłumaczone z rysunkami jak obliczać współrzędne przestrzenne ze zdjęć naziemnych. (a propo- dlatego nie wolno fotografować obiektów wojskowych). :P Myślę że dałoby sie to zrobić, ale największym problemem jest wykombinowanie tego softu.

    Pozdrawiam

    aha, i nie wiem czy mikrokontroler 89C1051 temu podoła . :wink:

    0
  • #30 15 Sie 2004 19:40
    stormblast
    Poziom 14  

    Na razie napisałem ze skryptu WAT o fotogrametrii naziemnej jak skalibrować kamerę, oraz w jaki sposób korzystając z 3 prostackich wzorów obliczyć współrzędne przestrzenne. Jak będę miał tylko czas popatrzę po tych linkach co je UCY74 podał.

    Doszedłem do wniosku że to wcale nie jest aż takie skomplikowane jak wcześniej pisałem. To da się zrobić! Więcej napiszę jak tylko będę miał więcej czasu.

    Pozdrawiam

    0