CategoryMicromouse

EKF – Rozszerzony filtr Kalmana

Poprzednio wyprowadziłem model stanowy robota i przygotowałem symulację do testowania algorytmów określania pozycji. Przyszła więc kolej na ich implementację. W tym wpisie skupię się na Rozszerzonym Filtrze Kalmana. Znajdzie się miejsce na wstęp teoretyczny oraz analizę implementacji w środowisku symulacyjnym. Starałem się wszystko opisać jak najprościej. Jednak aby wszystko dobrze zrozumieć potrzebna będzie zaawansowana wiedza z matematyki. Dobrze również wiedzieć coś o teorii sterowania. Dla mnie była to okazja do przypomnienia sobie co nieco ze studiów i wyprowadzenia kilku wzorów na kartce.

Continue reading

Początek prac nad estymatorem pozycji robota

Mając gotowe regulatory prędkości silników mogę przystąpić do modułu estymacji pozycji. W tym wpisie umieszczę garść ogólnych informacji dotyczących pracy estymatora, a także wyprowadzenie modelu matematycznego robota, który będzie potrzebny do wewnętrznych obliczeń.

Continue reading

Regulator prędkości obrotowej

W końcu udało mi się zakończyć pracę nad regulatorem prędkości obrotowej robota, z którym walczyłem od dłuższego czasu. W poprzednich wpisach opisywałem problemy z żyroskopem i spalenie płytki, co wiązało się z nowym projektem PCB. Nareszcie udało doprowadzić się temat do końca. We wpisie znajdziecie trochę matmy, dużo wykresów i opis kolejnych przygód z zepsutym hardwarem.

Continue reading

Zabawy z folią aluminiową

Po zlutowaniu nowego PCB, zgodnie z planem opisanym poprzednio, przystąpiłem do strojenia regulatorów silników. O ile z ruchem postępowym poszło szybko – w końcu robiłem to już któryś raz – tak z ruchem obrotowym natrafiłem na kolejne problemy. Jako sprzężenie zwrotne dla regulatora używam żyroskopu i okazało się, że odczyty są mocno zaszumione. Zakłócenia są obecne tylko przy podłączonych silnikach. Głównym podejrzanym jest pole elektromagnetyczne generowane przez silniki. W ruch poszła więc tytułowa folia aluminiowa. Efekty były dosyć komiczne.

Continue reading

Micromouse ma nowe PCB

Pracując nad regulatorami silników zrobiłem zwarcie na płytce czyniąc ją niezdatną do użytku. Pisałem o tym w poprzednim tekście o Micromouse – link. Miałem w zapasie jeszcze części i PCB, więc przystąpiłem do lutowania. Niestety na drugiej płytce również miałem problemy z poprawnym działaniem robota. Przy okazji spaliłem programator ostatecznie tracąc szanse na sprawdzenie czegokolwiek na sprzęcie. Przyszła więc pora na zrobienie nowej wersji płytki. Poza tym miałem problem z jednym mocowaniem kół – w konkretnym ułożeniu zębatek stawiało ono opór i w rezultacie nie kręciło się tak dobrze jak drugie. Na tych dwóch rzeczach skupiałem się w swych ostatnich pracach nad robotem.

Continue reading

Postępy prac nad Micromouse

Dawno nic nie było o postępach w pracach nad Micromousem, więc pora na mały update. Od ostatniego wpisu o regulatorze obrotów z sierpnia udało się zrobić parę rzeczy. Udało się również parę rzeczy zepsuć. Projekt posunął się do przodu na różnych frontach, ale postępy przystopowało trochę spalenie płytki.

Continue reading

Projekt regulatora obrotów silnika

Dzisiaj omówię, w jaki sposób zaprojektować regulator obrotów silnika. Pokażę jak zebrać dane pomiarowe, a następnie dokonać ich analizy i obróbki. W trakcie tego procesu wytłumaczę jakich narzędzi używam i w jaki sposób je wykorzystuję.

Podobny artykuł napisałem kiedyś na Forbocie – link. Jednak jest kilka istotnych różnic. Przede wszystkim tam był brany pod uwagę sam układ enkoder – silnik bez kół i całej konstrukcji mechanicznej robota. Przez to nie musiałem wtedy walczyć z takimi zakłóceniami i nieliniowościami. Poza tym wtedy wyprowadziłem model na podstawie pomiaru dla jednej wartości wypełnienia. Tutaj wykonuję pomiary dla trzech wartości i patrzę jak wyznaczone modele sprawdzają się dla innych danych pomiarowych.

Continue reading

Robot jeździ o własnych siłach

Problemem na którym zatrzymałem się ostatnio podczas próby wprawienia robota w ruch (link) było przeniesienie napędu z silnika na koła. Osią obrotu koła jest jest śruba przechodząca przez mocowanie silnika. Jest ona dokręcana za pomocą nakrętki, co widać na poniższym zdjęciu.Kiedy nakrętka jest wkręcona za mocno, występuje opór przy próbie obrotu koła. Zębatka na wale silnika przestaje się wtedy kręcić. Po poluzowaniu śruby, koło dobrze się kręci, ale nakrętka zaczyna się odkręcać i po jakimś czasie wypada. Rozwiązaniem mojego problemu okazał się klej do śrub. Dzięki sklejeniu nakrętki ze śrubą, nie odpada ona podczas obracania się koła. Nie muszę więc tak mocno skręcać śruby i koło może swobodnie się kręcić.

Po zamontowaniu kół i sklejeniu śrub robot mógł w końcu wyruszyć w swą pierwszą trasę. Została ona uwieczniona na filmiku:

Continue reading

Sprawić, żeby robot zaczął jeździć

Trzy miesiące konkursu „Daj się poznać” już praktycznie minęły i o ile jestem zadowolony z treści, które pojawiły się na blogu, to prace nad rozwojem robota są w szczerym polu. Od początku wiedziałem, że realizacja całego projektu potrwa dłużej niż konkursowe trzy miesiące, ale liczyłem, że będę już trochę dalej. Uświadomiłem to sobie w poniedziałek i wtedy też postanowiłem podjąć się wyzwania – do końca maja (czyli w 3 dni) miałem sprawić, żeby robot zaczął jeździć. Z tego powodu w ostatnich dniach solidnie popracowałem nad projektem. Tym bardziej, że przed trzema dniami wyzwania miałem jeszcze owocny weekend z OctoPrint i drukarką 3D. Na zdjęciu puszczony na telewizorze kolejny odcinek serialu „Bootowanie Raspberry Pi”.

Continue reading

Funkcje debugowe i sterownik silników

Ostatnio udało się trochę pchnąć do przodu prace nad softem. Dorobiłem prototypy funkcji debugowych i interfejsu użytkownika, a także napisałem sterownik silników, który następnie przetestowałem na robocie. Okazało się, że na płytce PCB jednak znajdowały się błędy. Zmiany w kodzie zostały wrzucone na GitHub, pojawiły się tam też pierwsze wpisy do Issue Trackera.

Continue reading

© 2018 ucgosu.pl

Theme by Anders NorénUp ↑