Skocz do zawartości

Robot typu micromouse Aether


Pomocna odpowiedź

Krótki update:

Napisałem filtr cząsteczkowy i w prostych testach wydaje się on działać. Bierze on odczyty z IMU i enkoderów i na ich podstawie liczy o ile się robot przemieścił (+ zakłócenia). Potem dla każdej cząsteczki przewiduje, jakie powinny być odczyty z czujników odległości przy danej pozycji w labiryncie i porównuje je z rzeczywistymi odczytami. Jeśli się zgadzają, to duże prawdopodobieństwo, że cząsteczka dobrze estymuje prawdziwą pozycję robota. Na razie zrobiłem tylko testy jednostkowe dla lokalizacji przy samym IMU+enkoderach i dla jazdy na wprost dodatkowo z czujnikami odległości. Ręczne generowanie bardziej skomplikowanych testów z czujnikami ToF byłoby już dość upierdliwe. W najbliższych dniach zintegruję to z ROSem, żeby móc przetestować lokalizację w symulatorze.

Do tego napisałem jeszcze automatyczne generowanie labiryntu w symulacji na podstawie pliku tekstowego z konfiguracją, korzystając z EmPy. Bardzo się to przyda do szybkiej zmiany ustawień. Na razie labirynty trzeba generować "z ręki", ale może w przyszłości pomyślę nad jakimś losowym generowaniem. Czeka mnie jeszcze sparsowanie tego pliku tekstowego w C++, żeby utworzyć znaną mapę labiryntu. Sam plik tekstowy wydaje się trochę niewygodny do edycji, bo trzeba jednocześnie uwzględniać ściany, słupki i puste miejsca. Zastanawiam się nad bardziej graficznym sposobem edycji, ale nie wiem czy to już nie będzie strzelanie z armaty do muchy.

164670963_Screenshotfrom2024-12-1721-44-22.thumb.png.29846ddc07040cd0bd321d58f8a3a8dd.png

Przy okazji chciałbym bardzo pochwalić ChatGPT i GitHub Copilot. ChatGPT potrafi ładnie wytłumaczyć skomplikowane zagadnienia, jak np filtr cząsteczkowy i pomóc przy implementacji. Copilot szalenie się przydaje przy generowaniu względnie powtarzalnego kodu, np. postawienie jednakowych ścian w kilku miejscach. Oczywiście trzeba krytycznie podchodzić do wygenerowanego outputu, ale łatwiej/szybciej zweryfikować ich prawdziwość niż samemu wymyślać/pisać + wiadomo już co potem dokładniej googlować.

  • Lubię! 2
Link do komentarza
Share on other sites

@Wojcik98 już sama symulacja robi wrażenia. Zapowiada się ciekawy projekt, chyba jeszcze nie było tutaj robota MM, którego autor zaczynał od tej strony. Dzięki, że dzielisz się takimi szczegółami!

Link do komentarza
Share on other sites

@Treker dzięki, zdobyłem trochę wiedzy i doświadczenia na studiach i w pracy, to chciałem to jakoś produktywnie wykorzystać 😛 

Kolejny update:
Zintegrowałem lokalizację z ROSem i po paru poprawkach coś tam działa. Filmik:

Pozycja robota w RViz (po lewej) jest obliczana z filtru cząteczkowego, a ten drugi latający układ współrzędnych jest brany z czystej odometrii z kół. Można zauważyć, że odometria się rozjeżdża po jakimś czasie, a filtr dzięki odczytom z czujników ToF potrafi z powrotem dopasować się do mapy labiryntu.

Nie działa to jeszcze jakoś super i na pewno dużo trzeba będzie zmienić przed zmierzeniem się z szybszą jazdą, ale już fajnie widzieć jakieś postępy. Być może spróbuję to uruchomić teraz na mikrokontrolerze, żeby wiedzieć, jaki rząd czasu zajmują obliczenia. Filtr cząsteczkowy działa lepiej z większą liczbą cząsteczek, więc tutaj głównym ograniczeniem są zasoby obliczeniowe. Zastanowię się też nad UKF, bo on inteligentniej sampluje punkty, przez co potrzebuje ich mniej.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@Wojcik98 Witam

Czy umiesz stworzyć system lokalizacji obiektu w obszarze 3D 200 m x 200 m x 200 m?

Chodzi mi o lokalizację obiektu lub obiektów z nadajnikiem oraz dokonanie pomiarów trajektorii lotu tych obiektów.

start obiektu - start pomiaru

pomiar przemieszczenia się obiektu - odczyt ciągły z zapisem parametrów lotu przy czym punktem odniesienia są nadajniki radiowe

stop pomiaru przez zdalny wyłącznik

Możliwość użycia danych do aplikacji na komórkę

Proszę o kontakt 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.