[MOC] Rubik Cube Solver
: 2020-05-12, 22:17
Miesiąc temu zacząłem budować robota, który stosunkowo szybko (do innych tego typu robotów) ułoży Kostkę Rubika. Nie uda mi się zrobić tego tak szybko jak Cubestormer v3, czyli 3-4 sekundy, ale poniżej 30 sekund powinno się udać. Na początku planowałem użyć do sterowania 4 ramionami 2 jednostek EV3 i jednej NXT do obsługi dodatkowych opcji tj. windy, która podniesie kostkę do odpowiedniego poziomu (takiego, na jakim ramiona mogą ładnie zamknąć się na kostce).
Do tej pory natrafiłem od początku na kilka problemów:
1) Przeskakujące zębatki mimo tego, że dałem przełożenie na maksymalną moc, a nie prędkość. Zawiesiłem początkowo ramiona na obrotnicach nowego typu, takie jak w 42082, ale tam strasznie łatwo przeskakiwały zębatki. Mimo tego, że dałem najmniejszą zębatkę na największą, nadal były trzaski. Później zmieniłem obrotnicę na taką starego typu jak np. w 8043 i już było dużo lepiej, ale nadal zdarzały się niepożądane przeskoki. Dodałem jeszcze pod obrotnicą dodatkowe zębatki żeby trzymały poziom i dociskały obrotnicę do zębatki napędowej, ale to też było mało. Rozwiązanie w tym przypadku nie dotyczyło samego Lego. Okazało się, że mimo iż mam licencjonowaną kostkę, to stawia ona tak ogromny opór, że nie jest polecana do tak zwanego speedcubingu. Po zmianie kostki na Moyu Weilong problem odpadł.
2) Jakich klocków użyć do zakończeń ramion, które trzymają kostkę? Według mnie fajnym rozwiązaniem było użycie tych gumek żeby odpowiednio docisnąć ramiona. Szczerze mówiąc działało to dobrze, ale niestety precyzja obrotu była zbyt mała. Rozbieżność +-2-3 stopnie powodowała problemy w kolejnych ruchach. Rozwiązaniem był twardy chwyt. Mimo tego, że nie ma gumek, trzyma się w miarę stabilnie. Czasami zdarzały się przesunięcia względem środka systemu, ale dałem slopy 1x2, które wyrównują pozycję kostki.
3) Jak zrobić precyzyjny obrót ścianki o 90, 180 i -90 stopni? Okazało się, że nie można liczyć na miernik obrotu w stopniach w motorze EV3. Czasami zatrzymywał się w dobrym miejscu, a czasami nie - zależało to od niejednolitego oporu, jaki mogła postawić kostka. Pomyślałem, że umieszczę na wierzchołkach 0, 90, 180 i 270 stopni tile w kolorach białym i czerwonym i zatrzymam motor, gdy sensor koloru znajdzie zadany kolor. Okazało się, że też nie działa to idealnie. Na 10 prób, jedna albo dwie kończyły się niepowodzeniem. W każdym razie nie można było też użyć 100% prędkości obrotu, bo wtedy sensor nie nadążał rozpoznawać koloru, gdy płytka była centralnie pod nim. Ostatecznym prawidłowym rozwiązaniem okazało się użycie tego samego sensora, ale w trybie odczytu odbitego światła. Obrót może być teraz wykonywany z prędkością 100% i we wszystkich próbach obrót kończy się w tym samym miejscu.
4) Mimo tego, że pierwsze 3-4 ruchy były w miarę dobre, okazywało się, że kolejne gubią już kilka milimetrów, bo chwyt nie wypadał w tym samym miejscu, co prowadziło do gubienia synchronizacji. Problemem było skoszenie całości konstrukcji mimo dosyć sztywnego pospinania. Dodanie płytki konstrukcyjnej 48x48 rozwiązało problem.
5) Podczas obrotu wokół własnej osi (dwa ramiona otwarte, dwa obracają się w tym samym kierunku) kostka wypadała z ramion. Nie było tego problemu z gumowymi zakończeniami, ale jak już ustaliłem, przeszkadzało to w precyzyjnym przekręcaniu ścianek. Jako, że chwyt jest dwupunktowy i czasami niezbyt silny, kostka wyślizgiwała się. Pomyślałem, że spróbuję dodać jakieś dodatkowe łapki, które przytrzymają kostkę. Problem w tym, że już nie za bardzo było miejsce na wysuwające się siłowniki śrubowe (te małe), a dodatkowe chwytaki musiały być wysuwane, żeby nie przeszkadzać podczas obrotów prostopadle położonych do nich ramion. Wpadłem na "szalony" pomysł dorzucenia do systemu siłowników pneumatycznych, które nie muszą być podłączone do żadnych przekładni, tylko wężyków pneumatycznych. Dorzuciłem więc dwa air tanki i kompresor z 4 małymi pompkami. Jako, że nie za bardzo podobało mi się rozwiązanie windy na siłownikach śrubowych, zamieniłem je na pneumatyczne. Teraz kostka nie wypada podczas obrotu wokół własnej osi, ale zastanawiam się czy wężyki od pneumatyki nie będą się plątały blokując system.
6) Co z wężykami? Dzielnie muszę teraz rozwiązać problem, który sam sobie stworzyłem. Chciałem pierwotnie puścić je przez środek obrotnicy, ale nie ma tam już tyle miejsca na 4 wężyki 4mm, bo przechodzi przez nią też duży siłownik, który ściska ramiona na kostce. Puściłem je więc po bokach każdego z ramion, ale już widzę, że spaghetti jest imponujące w środku układu. Ten problem aktualnie jest do rozwiązania.
Mimo tego, że na razie mogę pokazać tylko działające fragmenty, chciałem zaprezentować wam mój projekt w fazie WIP.
Do tej pory władowałem tutaj 3 komputery EV3, 1 NXT, 13 motorów, 4 sensory kolorów, masę kabli i wężyków, 12 siłowników pneumatycznych, 4 śrubowe.
Do tej pory natrafiłem od początku na kilka problemów:
1) Przeskakujące zębatki mimo tego, że dałem przełożenie na maksymalną moc, a nie prędkość. Zawiesiłem początkowo ramiona na obrotnicach nowego typu, takie jak w 42082, ale tam strasznie łatwo przeskakiwały zębatki. Mimo tego, że dałem najmniejszą zębatkę na największą, nadal były trzaski. Później zmieniłem obrotnicę na taką starego typu jak np. w 8043 i już było dużo lepiej, ale nadal zdarzały się niepożądane przeskoki. Dodałem jeszcze pod obrotnicą dodatkowe zębatki żeby trzymały poziom i dociskały obrotnicę do zębatki napędowej, ale to też było mało. Rozwiązanie w tym przypadku nie dotyczyło samego Lego. Okazało się, że mimo iż mam licencjonowaną kostkę, to stawia ona tak ogromny opór, że nie jest polecana do tak zwanego speedcubingu. Po zmianie kostki na Moyu Weilong problem odpadł.
2) Jakich klocków użyć do zakończeń ramion, które trzymają kostkę? Według mnie fajnym rozwiązaniem było użycie tych gumek żeby odpowiednio docisnąć ramiona. Szczerze mówiąc działało to dobrze, ale niestety precyzja obrotu była zbyt mała. Rozbieżność +-2-3 stopnie powodowała problemy w kolejnych ruchach. Rozwiązaniem był twardy chwyt. Mimo tego, że nie ma gumek, trzyma się w miarę stabilnie. Czasami zdarzały się przesunięcia względem środka systemu, ale dałem slopy 1x2, które wyrównują pozycję kostki.
3) Jak zrobić precyzyjny obrót ścianki o 90, 180 i -90 stopni? Okazało się, że nie można liczyć na miernik obrotu w stopniach w motorze EV3. Czasami zatrzymywał się w dobrym miejscu, a czasami nie - zależało to od niejednolitego oporu, jaki mogła postawić kostka. Pomyślałem, że umieszczę na wierzchołkach 0, 90, 180 i 270 stopni tile w kolorach białym i czerwonym i zatrzymam motor, gdy sensor koloru znajdzie zadany kolor. Okazało się, że też nie działa to idealnie. Na 10 prób, jedna albo dwie kończyły się niepowodzeniem. W każdym razie nie można było też użyć 100% prędkości obrotu, bo wtedy sensor nie nadążał rozpoznawać koloru, gdy płytka była centralnie pod nim. Ostatecznym prawidłowym rozwiązaniem okazało się użycie tego samego sensora, ale w trybie odczytu odbitego światła. Obrót może być teraz wykonywany z prędkością 100% i we wszystkich próbach obrót kończy się w tym samym miejscu.
4) Mimo tego, że pierwsze 3-4 ruchy były w miarę dobre, okazywało się, że kolejne gubią już kilka milimetrów, bo chwyt nie wypadał w tym samym miejscu, co prowadziło do gubienia synchronizacji. Problemem było skoszenie całości konstrukcji mimo dosyć sztywnego pospinania. Dodanie płytki konstrukcyjnej 48x48 rozwiązało problem.
5) Podczas obrotu wokół własnej osi (dwa ramiona otwarte, dwa obracają się w tym samym kierunku) kostka wypadała z ramion. Nie było tego problemu z gumowymi zakończeniami, ale jak już ustaliłem, przeszkadzało to w precyzyjnym przekręcaniu ścianek. Jako, że chwyt jest dwupunktowy i czasami niezbyt silny, kostka wyślizgiwała się. Pomyślałem, że spróbuję dodać jakieś dodatkowe łapki, które przytrzymają kostkę. Problem w tym, że już nie za bardzo było miejsce na wysuwające się siłowniki śrubowe (te małe), a dodatkowe chwytaki musiały być wysuwane, żeby nie przeszkadzać podczas obrotów prostopadle położonych do nich ramion. Wpadłem na "szalony" pomysł dorzucenia do systemu siłowników pneumatycznych, które nie muszą być podłączone do żadnych przekładni, tylko wężyków pneumatycznych. Dorzuciłem więc dwa air tanki i kompresor z 4 małymi pompkami. Jako, że nie za bardzo podobało mi się rozwiązanie windy na siłownikach śrubowych, zamieniłem je na pneumatyczne. Teraz kostka nie wypada podczas obrotu wokół własnej osi, ale zastanawiam się czy wężyki od pneumatyki nie będą się plątały blokując system.
6) Co z wężykami? Dzielnie muszę teraz rozwiązać problem, który sam sobie stworzyłem. Chciałem pierwotnie puścić je przez środek obrotnicy, ale nie ma tam już tyle miejsca na 4 wężyki 4mm, bo przechodzi przez nią też duży siłownik, który ściska ramiona na kostce. Puściłem je więc po bokach każdego z ramion, ale już widzę, że spaghetti jest imponujące w środku układu. Ten problem aktualnie jest do rozwiązania.
Mimo tego, że na razie mogę pokazać tylko działające fragmenty, chciałem zaprezentować wam mój projekt w fazie WIP.
Do tej pory władowałem tutaj 3 komputery EV3, 1 NXT, 13 motorów, 4 sensory kolorów, masę kabli i wężyków, 12 siłowników pneumatycznych, 4 śrubowe.