Skocz do zawartości

Tarcza enkodera - naświetlanie


Behlur_Olderys

Rekomendowane odpowiedzi

2 godziny temu, Behlur_Olderys napisał:

Czy problemy o których mówicie nie wynikają po części z faktu, że większość enkoderów jest projektowana raczej dla dużych prędkości kątowych (większych niż spotyka się w astro), przez co najzwyczajniej przyjmuje się, że nie ma czasu na obróbkę cyfrową sygnału? Tutaj mam 60ms na jeden odczyt. Mógłbym nawet robić zdjęcie i wrzucać je do sieci neuronowej, i czasowo by się zmieściło na jakimś RPi. To otwiera zupełnie nowe możliwości.

Kibicuję Ci mocno przy realizacji tego projektu - powodzenia!

Odnośnik do komentarza
Udostępnij na innych stronach

Z ciekawości wydrukowałem u siebie ten obrazek w maksymalnej jakości... widać trochę mory na godzinach 3, 6, 9 i 12, a poza tym jak w załącznikach :D zdjęcia cygnięte w miejscu, gdzie cienki biały pasek oddziela wewnętrzne koło od pasków

s1.jpg

s2.jpg

Edytowane przez lkosz
Odnośnik do komentarza
Udostępnij na innych stronach

2 godziny temu, lkosz napisał:

Z ciekawości wydrukowałem u siebie ten obrazek w maksymalnej jakości... widać trochę mory na godzinach 3, 6, 9 i 12, a poza tym jak w załącznikach :D widoczny cienki biały pasek dookoła po wewnętrznej stronie

 

 

Ta mora to - później zauważyłem - grupowanie w Inkscape. Nie wiem, czemu tak drukuje, ale po konwersji do .ps chyba znika. 

 

A na czym to drukowałeś? Ten biały pasek to nie wiem dokładnie gdzie jest, na pewno jest minimalny odstęp pomiędzy największym kołem, a paskami : to to?

Odnośnik do komentarza
Udostępnij na innych stronach

Tak to ten biały pasek oddzielający wewnętrzne koło od pasków, w tym miejscu przyłożyłem mikroskop. Niezrozumiale to opisałem, poprawiłem w poście :) Drukowałem na Brother DCP-T510W, jakość max, a papier zwykły, co widać :)

Edytowane przez lkosz
Odnośnik do komentarza
Udostępnij na innych stronach

2 godziny temu, lkosz napisał:

Tak to ten biały pasek oddzielający wewnętrzne koło od pasków, w tym miejscu przyłożyłem mikroskop. Niezrozumiale to opisałem, poprawiłem w poście :) Drukowałem na Brother DCP-T510W, jakość max, a papier zwykły, co widać :)

OK, ta linia miała być, żeby łapać dobrze pozycję samego dolnego końca. W sumie cały projekt tego koła dosyć mało przemyślany był, skupiłem się na paskach...

Pewnie z czasem dojdę do wprawy.

 

Tak wygląda zbliżenie na interferencje z dwóch kół, które naświetliłem (identycznych). Całkiem ładny wzór :)

enkoder_zblizenie.png.03f47375c4297f6e205c357f0132a4b6.png

 

Taką interferencję też można jakoś wykorzystać. Ja zamierzam mierzyć naświetlenie na pasku CCD w rodzaju TSL1401 i wykorzystać proste rozpoznawanie obrazu na ESP8266, żeby wyciągnąć informację o przesunięciu pomiędzy odczytami bez błędów wynikających z niedokładności samego naświetlania enkodera. Czy pojawią się inne błędy? Zobaczymy :)

 

Odnośnik do komentarza
Udostępnij na innych stronach

18 minut temu, Behlur_Olderys napisał:

Czy pojawią się inne błędy?

Jak już było wspomniane wcześniej, jest cała masa błędów wynikająca z niedokładności tarczy i jej osadzenia. Zamocujesz niecentrycznie - dostajesz PE, paski nie są idealnie wydrukowane - dostajesz ziarnistość na poziomie każdego paska, czujnik jest krzywo - dostajesz inne cuda. Wszystko musi być ustawione z dokładnością do sekund (lub dziesiętnych sekund), co jest amatorsko niemożliwe.

Co z tego, że nawet wyznaczysz idealnie położenie paska, jeśli nie będzie ono odpowiadać położeniu wału. W takiej sytuacji musiałbyś kupić gotowy enkoder, o prawdziwej dokładności, jaką potrzebujesz i zebrać za jego pomocą charakterystykę własnego i zrobić programową korektę. No ale wtedy już można wsadzić ten enkoder za 5k do montażu :P

Odnośnik do komentarza
Udostępnij na innych stronach

39 minut temu, MateuszW napisał:

Jak już było wspomniane wcześniej, jest cała masa błędów wynikająca z niedokładności tarczy i jej osadzenia. Zamocujesz niecentrycznie - dostajesz PE, paski nie są idealnie wydrukowane - dostajesz ziarnistość na poziomie każdego paska, czujnik jest krzywo - dostajesz inne cuda. Wszystko musi być ustawione z dokładnością do sekund (lub dziesiętnych sekund), co jest amatorsko niemożliwe.

Co z tego, że nawet wyznaczysz idealnie położenie paska, jeśli nie będzie ono odpowiadać położeniu wału. W takiej sytuacji musiałbyś kupić gotowy enkoder, o prawdziwej dokładności, jaką potrzebujesz i zebrać za jego pomocą charakterystykę własnego i zrobić programową korektę. No ale wtedy już można wsadzić ten enkoder za 5k do montażu :P

 

1. Niecentryczne mocowanie może dać PE co najwyżej o okresie 1 dnia. Dobry enkoder zauważy jednak, że paski nie są cały czas na tej samej wysokości. Po to jest np. biały pasek na mojej tarczy. Da się to uwzględnić.

2. Ziarnistość paska powinna być gaussowska. Więc uśrednianie pomiarów w czasie i przestrzeni polepszy dokładność. Mam nadzieję, że to Gauss... :)

3. Czujnik jest krzywo - bez znaczenia, dopóki nie zmienia pozycji z pomiaru na pomiar. 

Wiem, że to teoria, ale jeśli masz matryce CCD w której masz dziesiątki tysięcy pikseli, o rozmiarach kilku um, to zmierzenie położenia paska szerokiego na 64um i bardzo długiego, nawet naiwnym środkiem ciężkości powinno dać wyniki o dokładności poniżej um. 

Tak, jak guider wyznacza pozycję gwiazd z dokładnością subpikselową...

Odnośnik do komentarza
Udostępnij na innych stronach

A już myślałem że wyszły Ci te paski idealnie :D Jutro wyjmę drukarkę laserową i spróbuję na folii wydrukować. Ciekawe ile z tego wyjdzie.

 

Jak to tak opisujesz, to wygląda jakby się miało udać... ale jak sam myślę jakbym to zrobił, to poddałbym się na etapie myślenia jak to wydrukować :D Jak ostatni lamer dokręciłbym refraktor, zrobił rozpoznawanie punktów i wyliczanie na tej podstawie korekty prędkości silnika. Albo stwierdził, że rozmazane też ładnie wygląda :D

Odnośnik do komentarza
Udostępnij na innych stronach

5 minut temu, Behlur_Olderys napisał:

jeśli masz matryce CCD w której masz dziesiątki tysięcy pikseli

z takim bogactwem pikseli może to być enkoder bezwzględny (dając jakiś ciekawszy wzorek zamiast pasków) a wtedy znając prawdziwe położenie można korygować odczyty w oparciu o indywidualną kalibrację dla każdego kąta

Odnośnik do komentarza
Udostępnij na innych stronach

Mały update:

 

Na szybko sklecony setup testowy i stronka w Pythonie do oglądania wyników. Takie "górki" zamierzam potem potraktować kilkoma algorytmami przetwarzania obrazów i zbadać zachowanie i powtarzalność rezultatów i ich dokładność.

 

Sprzęt to wydrukowana tarcza (ma dosyć biedną jakość, jak porównywałem do fabrycznego enkodera z drukarki, ale w mojej metodzie to nie jest aż tak ważne) oraz TSL1401 - czujnik liniowy 128x1 pikseli 64x63.5um. 

 

(Max value to jednostki umowne. Max adc tutaj to 1024)

 

max_value.png.e151397eb449d155afeae64e1107cdbe.png

setupI.jpg.27b4e634e1231e3ad418d864da30228e.jpg

setupIII.jpg.80167474b575c7337a59ac5e632a2611.jpg

Edytowane przez Behlur_Olderys
  • Lubię 5
Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, trouvere napisał:

@Behlur_Olderys,

dość swobodne podejście do tematu, w kwestii rozdzielczości a następne stwierdzasz, że wydruk "ma dosyć biedną jakość". Plik postscriptowy powinien być w deklarownej rozdzielczości takiej jaką ma maksymalnie osiągalną rozdzielczość fotoploter.

Jednak niezależnie od Twoich oczekiwań i tak tylko cztery (dosłownie cztery) paski będą pozbawione uskoków związanych z rastrową strukturą naświetlania fotoploterem, rozmieszczone co 90 stopni.

 

Swoją drogą mógłbyś wyjaśnić, jaka idea stoi za quasi równoległym w stosunku do pasków umieszczeniem sensora liniowego (swoją drogą wybrałeś najpodlejszy chyba model - rozumiem, że kwestia kosztów ale nie da się osiągnąć jakości stosując marne komponenty a wyrafinowana obróbka "if your software does ignore your hardware, your hardware will ignore your software") ?

Szkoda, że zawsze stosujesz taki trochę przykry ton wypowiedzi. Żeby nie powiedzieć: zniechęcający.

Nieważne.

 

1. Jak już mówiłem, uskoki nie mają znaczenia, dopóki wprowadzony szum ma średnią zero, a tak jest przy tego typu kwantyzacji. Btw drukowałem pdf a nie ps, i nie na fotoploterze tylko naświetlarce CTF.

2. Sensor ma doskonale dobrane do tego zadania parametry: dużo pikseli, żeby uśredniać błędy, szybki odczyt (kilka tysięcy odczytów na sekundę przy dobrym adc) oraz idealny rozmiar pikseli 64um. Tyle, co szerokość 1 ciemnego paska. To nie przypadek. 

3. Rzut oka na wykres sygnału z sensora powinien wyjaśnić  (przy odrobinie wyobraźni) dlaczego sensor jest umiejscowiony niemal równolegle. 

 

To tylko prototyp, PoC. Nie widzę sensu narzekania na jakość. Łatwo jest nakupić drogich elementów i nie potrafić ich złożyć do kupy ani zmusić do działania, albo zastosować błędny algorytm. W drugą stronę, jeśli mój program będzie działał na tym, to zadziała na wszystkim.

  • Lubię 3
Odnośnik do komentarza
Udostępnij na innych stronach

1 godzinę temu, trouvere napisał:

Skoro nieważne to zachodzi pytanie, jaki jest cel wspominania o tym ?

 

 

Najwyraźniej cierpię nie tylko na brak dobrych manier ale także na kiepski wzrok i zupełny brak wyobraźni, bo ten wykresik nie daje mi żadnej odpowiedzi dlaczego sensor jest ustawiony quasi równolegle.

 

Bo tego nie lubię i tyle. Jak mi się coś nie podoba to staram się to komunikować, licząc na sprzężenie zwrotne. Czasami ludzie sami siebie nie słyszą, szczególnie w internecie ;)

 

 

Cóż, skoro wykresik nic Ci nie mówi, to nie wiem, czy moje nieudolne tłumaczenie coś da. Swoją drogą dziwne, że krytykujesz mój wybór  hardware'u skoro nie wiesz, co ja w ogóle robię...

 

Próbowałem to już tłumaczyć kilku osobom ale nie jestem taki mocny w słowie ;) Ogólnie jest to rodzaj interferencji, która zamienia przesunięcie poziome w pionowe, mierzone linijką ccd. W praktyce liczę na zwiększenie rozdzielczości enkodera około 20-30 krotne. Enkoder o rozdzielczości kilkunastu sekund łuku kosztujący poniżej 100zł to fajna sprawa na początek ;)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Pierwsze postępy w algorytmie (pisanym rzecz jasna po nocach...)

 

Dla przykładowego obrazka znajdujemy linie najlepiej dopasowane do "zboczy" trójkątów z linijki CCD:

 

TestowyOutput_NaForum_I.png.e99fa9b935f9f743f46fb096ee3f5300.png

 

Algorytm wybiera środkowe zbocza i fituje do nich linię prostą. Punkty przecięcia tych prostych są bardzo ważne w dalszej analizie. Wyznaczają chwilowy kąt i przemieszczenie sensora względem koła enkodera. Fitowanie zapewnia zmiejszenie wpływu szumu. 

 

Następny krok to obliczenie przesunięcia pomiędzy dwoma kolejnymi odczytami. Można to zrobić na kilka sposobów:

- korelacja krzyżowa

- korzystając z linii fitowanej prostej

- metodą porównania środków ciężkości pików (jak w guidingu).

 

Ale to zadanie na kilka następnych nocy, tygodni.... :)

Pozdrawiam

  • Lubię 4
Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.