CategoryMicromouse

Orientacja mapy labiryntu

Dzisiaj opiszę problem orientacji mapy labiryntu, czyli odniesienie mapy do kierunków w przestrzeni i do numeracji pól. Co ciekawe, z początku w ogóle nie zdawałem sobie sprawy, że jest to ważna decyzja projektowa, która może ułatwić lub utrudnić dalsze prace. Po prostu myślałem, że numeracja jest prowadzona w jedyny słuszny sposób wykorzystywany we wszystkich innych dziedzinach. Dopiero później zdałem sobie sprawę, że moja mapa nie jest kompatybilna z narzędziami udostępnianymi w internecie. Dalej również okazało się, że nie jest ona optymalna nawet do moich zastosowań.

Continue reading

Wykrywanie ścian i dodawanie ich do mapy

W dzisiejszym wpisie prześledzimy całą drogę od pomiaru odległości przez czujnik ściany do ostatecznego dodania tej ściany do mapy labiryntu w pamięci robota. Na tej drodze znajduje się wiele akcji pośrednich takich, jak określenie współrzędnych wykrytej ściany, czy potwierdzenie wykrycia w kilku pomiarach.

Continue reading

Wykorzystanie SLAM do Micromouse

Ostatnio mocno pogłębiłem wiedzę dotyczącą algorytmów SLAM. Krótkoterminowym celem jest oczywiście inspiracja przy tworzeniu jak najlepszego sposobu lokalizacji i nawigacji w robocie Micromouse. W dzisiejszym wpisie przedstawię różnice między Micromouse, a typowym problemem SLAM oraz pomysły na implementację będące konsekwencją tych różnic.

Continue reading

Tworzenie mapy labiryntu i wyznaczanie trasy

Głównym zadaniem robota Micromouse jest znajdowanie drogi w labiryncie. Może więc wydawać się dziwne, że siadłem do tego tematu dopiero teraz – po roku od rozpoczęcia prac. Jednak do stworzenia mapy potrzebna jest dobrze działająca lokalizacja i czujniki ścian. Te zagadnienia mam już jako tako opanowane, można więc przejść do wyznaczania trasy. Zrobiłem już pierwszą implementację, która okazała się zaskakująco prosta. Kod oczywiście dostępny jest na GitHubie.

Continue reading

Nowy projekt płytki robota

Podczas próby zamontowania wszystkich czujników ścian okazało się, że aktualny projekt płytki nie przewidywał miejsca na uchwyty z drukarki 3D. Potrzebuję więc zmian w projekcie PCB i nowej wersji płytki. Decyzję ułatwił fakt, że wylała mi się woda na biurko i oczywiście zalała robota. Po osuszeniu nie chciał działać, ale poleżał jeszcze przez noc i teraz się uruchamia normalnie. W każdym razie nowa wersja płytki jest potrzebna. Tym bardziej, że mam jeszcze kilka mniejszych zmian do wprowadzenia. Dzisiaj opiszę planowane zmiany.

Continue reading

Kalibracja czujnika ściany

Czujnik ściany, którego zamontowanie i uruchomienie opisywałem poprzednio, daje pomiary w woltach wyrażonych w jednostkach ADC (zakres 0-4095 odpowiada 0 – 3.3 V). Taka wartość nie jest szczególnie przydatna, dopiero po konwersji na odległość w milimetrach może być wykorzystana do nawigacji w labiryncie.

Continue reading

Procedura ochrony baterii LiPol

Do tej pory zepsute lipole zdarzały mi się co kilka miesięcy. Zawsze scenariusz był taki sam. Co jakiś czas sprawdzałem miernikiem napięcie na baterii i wszystko było w porządku. Nagle robot przestaje działać. Nie wiem co jest powodem i próbuję zdebugować, ale nic się nie udaje. Dopiero po jakimś czasie sprawdzam napięcie na baterii i jest już rozładowana grubo poniżej limitu. Próbuję jeszcze ją podładować, ale się nie udaje. Kolejny pakiet do wyrzucenia. Jednak od dziś to się zmieni. Teraz mój soft jest wyposażony w procedurę ochrony baterii i nie dopuści do nadmiernego rozładowania. W tym artykule opiszę dokładnie jak działa ta procedura.

Continue reading

Czujniki ścian – pierwsze starcie

Po dłuższej przerwie wracam do prac nad micromousem. Została mi do zrobienia jeszcze ostatnia część sprzętowa – czujniki ścian. Roboty jest dosyć sporo, więc nie udało mi się wszystkiego machnąć za jednym podejściem. Przy okazji jak zwykle wynikły nieprzewidziane problemy.

Continue reading

Usuwanie dryftu żyroskopu

Dzisiaj zaprezentuję jak wyeliminowałem wpływ dryftu żyroskopu z pomiaru prędkości kątowej wykorzystując Rozszerzony Filtr Kalmana. Będzie miejsce na teoretyczny opis problemu i implementację najpierw w środowisku symulacyjnym, a następnie w robocie Micromouse.

Continue reading

Implementacja EKF na robocie

W dzisiejszym wpisie przedstawię implementację Rozszerzonego Filtru Kalmana dla robota Micromouse. Aby dojść do tego momentu musiałem najpierw wyznaczyć model ruchu robota oraz sprawdzić działanie EKF w środowisku symulacyjnym. Można o tym poczytać we wcześniejszych wpisach.

Continue reading

© 2018 ucgosu.pl

Theme by Anders NorénUp ↑