Skocz do zawartości

Obliczenie przemieszczenia na podstawie przyspieszeń.


KajtomatO

Pomocna odpowiedź

Witam forumowiczów, chciałbym napisać program, który obliczał by przemieszczenie w przestrzeni trójwymiarowej na podstawie danych z akcelerometrów i żyroskopów. Nie wiem jednak gdzie szukać informacji na ten temat, ani jak sprecyzować zapytanie. Więc najpierw chciałbym was poprosić o nakierowanie mnie, tzn czego tak naprawdę mam szukać 😉 (chodzi mi o obliczenia)

Wiem że akcelerometry i żyroskopy są dosyć nieprecyzyjne i obliczone przemieszczenie nie będzie dokładne, ale nie mam najmniejszego pojęcia jakie może być odchylenie. Jeżeli ktoś z was miał doświadczenie z podobnym zagadnieniem, mógł by mi powiedzieć czy po przemieszczeniu 10m, odchylenie będzie 10cm, 1m, 10m? Wiele zależy od samych czujników, dlatego załóżmy że czujniki są dobrej jakości 😉

Pozdrawiam, Student II (mam nadzieję) Roku Automatyki i Robotyki.

KajtomatO

Link do komentarza
Share on other sites

1.Tylko z akcelerometru i żyroskopu wszystkiego nie zrobisz. Powinieneś jeszcze mieć czujnik magnetyczny do określenia kierunku pola magnetycznego.

2.Dokładność generalnie zależy od pięciu czynników:

a) Jakości komponentów

b) ich kalibracji

c) algorytmu

d) typu ruchu (czym ruch bardziej dynamiczny tym trudniej ograniczyć błędy obrotu)

e) czasu (błąd się całkuje)

Zrobienie tego z dużą dokładnością przy dynamicznym ruchu jest bardzo trudne. Dosyć prosto można napisać algorytm obliczający przechył obiektu z dokładnością do 1 stopnia (kilku stopni przy dynamicznym ruchu). Jednak te kilka stopni błędu przy odjęciu siły grawitacji od przyśpieszenia cały czas się sumuje i po chwili wychodzi kaszana.

Przy pojedyńczych ruchach z małą ilością obrotu możesz dosyć łatwo zejść do błędu w granicach kilku %. Przy ciągłym ruchu jest to bardzo trudne, a gotowe systemy kosztują >1000$/szt.

PS. Chętnie bym się przekonał, że jestem w błędzie 🙂

Link do komentarza
Share on other sites

Więc tak, opiszę wszystko bardziej dokładnie.

Zamierzam zbudować autonomiczny sterowiec do pomieszczeń zamkniętych (hale, duże aule). (więc przyspieszenia będą dosyć małe, a prędkości jednostajne)

Przy czym trudno mówić o autonomiczności gdy nie jesteśmy w stanie określić pozycji sterowca. Najprostszym sposobem wydawało mi się wykorzystanie czujników odległości, ale w przypadku czujników nie-laserowych zasięg jest bardzo ograniczony, a czujniki laserowe są bardzo drogie*. Jako że czujniki odległości "nie dosięgną" ścian, nie będę wstanie określić pozycji sterowca.

(Jeszce jedno, na sterowcu najprawdopodobniej znajdzie się AHRS, tak więc twój link mog123 w tym wypadku się nie przyda, ale i tak jestem bardzo wdzięczny że go podałeś, przyda mi się prawdopodobnie w następnym projekcie, a sama strona jest dosyć ciekawa )

Kolejnym pomysłem który wpadł mi do głowy było wykorzystanie akcelerometrów (z AHRSu) + sam AHRS, ale doszedłem do wniosku że obliczanie przemieszczenia w ten sposób będzie bardzo niedokładne, im dłużej będziemy latać tym większe będzie odchylenie. Ale co gdyby skorygować dane w czasie lotu? Przed startem operator wprowadził by przybliżoną mapę obszaru działań, sterowiec wyposażylibyśmy oprócz AHRSu w zestaw dalmierzy. Lecąc na środku hali (auli) sterowiec oszacowywał by swoje położenie na podstawie danych z akcelerometrów. Będą one obarczone błędem, ale jeżeli zbliżymy się do ściany auli to będziemy w stanie do pewnego stopnia ten błąd skorygować. Nie będziemy w stanie błędu uniknąć, ale ponieważ będziemy go korygować nie powinien wyjść poza wartość krytyczną (walnąć w ścianę 😉 ) bo nawet jeżeli się zgubi (Tej ściany nie powinno tu być! ) to dzięki AHRS (który jest dosyć dokładny) oraz dalmierzowi zidentyfikuje ścianę do której się zbliża, a co za tym idzie swoją pozycję.

Może się udać tylko jeżeli podczas przemieszczania się, błąd z akcelerometrów nie będzie zbyt duży (dlatego pytałem się jakie może być odchylenie)

Sam "algorytm", który chcę zastosować jest dosyć prymitywny (ponieważ na I roku studiów nie nauczyłem się jeszcze niczego przydatnego 😉 ) i oparty o podstawową fizykę.

AHRS Podaje mi kąty eulera, za ich pomocą jestem w stanie wyliczyć rzuty przyśpieszeń każdej z osi z płaszczyzny akcelerometru na płaszczyznę "pomieszczenia".

W małym przedziale czasu dt (od T0 do T1, np 1/100s) obliczam średnie przyspieszenie dla każdej z osi. Ponieważ sterowiec nie obraca się zbyt szybko, więc przyjmuję że kąty eulera w czasie T0 = T1, obliczam rzuty przyśpieszeń na płaszczyznę auli (biorąc kąty z czasu T1). Obliczam aktualną prędkość v=v0+a*dt oraz przemieszczenie s=s0*v+(adt^2)/2 (dla każdej z osi osobno) Algorytm powtarzam biorąc oczywiście pod uwagę, że w czasie obliczeń sterowiec nie stał 😉

Co myślicie o moim pomyśle? Jest w tym jakaś nadzieja?

*Dalmierze laserowe

Znalazłem bardzo duży wybór dalmierzy laserowych, ale wszystkie o kosmicznych parametrach, a co za tym idzie kosmicznych cenach. Czy znajdę dalmierze o zasięgu około 100m, ale o stosunkowo niskiej dokładności (np 0,5m) Aby cena była bardziej przystępna?

Pozdrawiam.

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

To nie będzie działać, chyba, że miałbyś bardzo dokładnie skalibrowane wszystkie czujniki, ale nawet wtedy błąd nie będzie mały.

Co do dalmierzy laserowych to mógłbyś coś dostosować np. z http://allegro.pl/bosch-dalmierz-laserowy-dle-70-miernik-odleglosci-i1809746318.html . Cena dosyć przystępna, a parametry dla Ciebie wystarczające. Znając kąt przechyłu pojazdu i odległość od dwóch ścian (zakładam budynek w przybliżeniu prostokątny i mierniki pod kątem prostym) możesz dosyć dokładnie obliczyć swoją pozycję.

Link do komentarza
Share on other sites

Ten BOSCH jest całkiem ciekawy, ale boje się że nie dam rady go przystosować do moich potrzeb. Naprawdę nie ma samych odległościomierzy laserowych w przystępnych cenach czy tylko ja nie potrafię szukać ? 🙂 Siedzę nad tym już trochę i nic..

btw, ciekawa alternatywa: http://www.robotshop.com/hagisonic-stargazer-localization-system-2.html tylko umieszczenie tych tabliczek na suficie może być bardzo kłopotliwe. Jako że sterowiec ma latać, znacznie lepszym miejscem była by podłoga.

Link do komentarza
Share on other sites

Podłoga to fatalne miejsce, bo jak ludzie chodzą to przejdą się po tym i rozkopią, zasłonią itd.

Przyzwoitym miejscem byłyby ściany boczne, chociaż nie wiem czy urządzenie może z ten sposób działać.

No i cena 1000$ nie jest zbyt fajna...

Link do komentarza
Share on other sites

Na akcelerometrach nie masz szans - błąd się całkuje dwukrotnie, więc w krótkim czasie by się okazało, że sterowiec pędzi z prędkością kilku machów w losowym kierunku i ciągle przyspiesza.

Jeżeli jest to sterowiec to najlepszym rozwiązaniem jest chyba kamera+laptop+znaczniki na ścianach i wyznaczanie własnej pozycji np. na podstawie jakiejś triangulacji.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.