Mam 3-osiowy akcelerometr i 3-osiowy żyroskop. Zadanie polegało na opracowaniu martwego systemu rozliczeniowego przy użyciu tego sprzętu.
Zasadniczo potrzebuję, aby opracować kod do śledzenia pozycji w przestrzeni 3D płyty w czasie rzeczywistym. Więc jeśli zacznę od deski na stole i podniosę ją o 1 m w górę, powinienem być w stanie zobaczyć ten ruch na ekranie. Trzeba też wziąć pod uwagę rotacje, więc jeśli obrócę deskę do góry nogami w połowie tego samego ruchu, nadal powinien pokazywać ten sam wynik 1m w górę. To samo powinno dotyczyć każdego złożonego ruchu w ciągu kilku sekund.
Ignorując matematykę potrzebną do obliczania i obracania wektorów itp., Czy jest to w ogóle możliwe przy tak niedrogim urządzeniu? O ile wiem, nie będę w stanie usunąć grawitacji ze 100% precyzją, co oznacza, że mój kąt względem ziemi będzie wyłączony, co oznacza, że moje obroty wektorowe będą wyłączone, co prowadzi do nieprawidłowego pomiaru położenia.
Muszę też wziąć pod uwagę hałas z akcelerometru i odchylenie żyroskopowe.
Czy można to zrobić?
Odpowiedzi:
Odpowiedzi i komentarze, które otrzymujesz, są oczywiście doskonałe, ale mogę dodać trochę koloru.
Jak na swoją wartość, nasz system sensoryczno-nerwowy korzysta z tych samych narzędzi i nie zawsze otrzymuje właściwą odpowiedź! Mamy akcelerometry 3D (narządy otolitowe) i „żyroskopy 3D” (velocitomery kątowe, kanały półkoliste), a jednak cierpimy z powodu różnego rodzaju złudzeń, gdy system nie jest w stanie uzyskać prawidłowej „odpowiedzi”, na przykład iluzji windy i złudzenie okulograwiczne. Często te awarie występują podczas przyspieszeń liniowych niskiej częstotliwości, które są trudne do odróżnienia od grawitacji. Był czas, kiedy piloci nurkowali do oceanu podczas startu katapulty na lotniskowcach z powodu silnej percepcji skoku wynikającej z przyspieszenia niskiej częstotliwości związanego z startem, dopóki protokoły szkoleniowe nie nauczyły ich ignorowania tych spostrzeżeń.
To prawda, że czujniki fizjologiczne mają inne wartości odcięcia częstotliwości i poziomy szumów niż czujniki MEMS, ale mamy też ogromną sieć neuronową rzuconą na problem - choć niewielką przeszkodę ewolucyjną, aby rozwiązać problem poprawnie przy ekstremalnych niskich częstotliwościach, o ile wystrzelenie katapulty jest dość rzadkie ;-).
Wyobraźcie sobie ten zdrowy rozsądek problem „martwego liczenia”, którego wielu doświadczyło, i myślę, że przekonacie się, jak to przenosi się do świata MEMS. Wsiadasz do odrzutowca, startujesz w Ameryce Północnej, przyspieszasz do prędkości przelotowej, przepływasz ocean, zwalniasz i lądujesz w Europie. Nawet usuwając z problemu niejednoznaczności translacji przechyłu i zakładając zerową rotację, bardzo mało byłoby nadziei na rzeczywistą implementację podwójnej integracji profili przyspieszenia, uzyskując profil pozycji w dowolnym miejscu wystarczająco dokładnym, aby powiedzieć, że dotarłeś do Europy . Nawet jeśli miałeś bardzo dokładny 6-osiowy żyroskop / pakiet akcelerometru, który leżał na twoich kolanach podczas podróży, miałoby to również swoje problemy.
To jedna skrajność. Istnieje wiele dowodów sugerujących, że w codziennych zachowaniach zwierzęta przyjmują proste założenie, że wykrywane przyspieszenia niskiej częstotliwości są prawdopodobnie spowodowane reorientacją względem grawitacji. Kombinacja żyroskopów i akcelerometrów, które mają szersze odpowiedzi częstotliwościowe niż nasze ucho wewnętrzne, może oczywiście rozwiązać problem znacznie lepiej, ale nadal będą miały skrajne problemy ze względu na poziom szumu, progi i tym podobne.
Tak więc, w przypadku krótkich epok z nietrywialnymi przyspieszeniami, nieumiejętne liczenie przy pomocy odpowiedniego oprzyrządowania nie jest tak dużym problemem. Na dłuższą metę, przy małych przyspieszeniach i przyspieszeniach o niskiej częstotliwości, liczenie martwe jest dużym problemem. W każdej sytuacji musisz dowiedzieć się, gdzie w tym spektrum leży twój konkretny problem i jak dokładne są twoje potrzeby polegania na rachunkach, aby ustalić, czy najlepsze, co możesz zrobić, jest wystarczająco dobre. Nazywamy to inżynierią procesów.
źródło
Główne problemy z martwym rachunkiem, które znalazłem podczas robienia starszego projektu podobnego do twojego, to to, że akcelerometr mierzy tylko przyspieszenie. Musisz raz zintegrować, aby uzyskać prędkość plus stałą C. Następnie musisz ponownie zintegrować, aby uzyskać pozycję + Cx + D. Oznacza to, że po obliczeniu pozycji z danych akcelerometru kończy się przesunięciem, ale masz również błąd, który rośnie liniowo z czasem. W przypadku czujnika MEM, którego użyłem, w ciągu 1 sekundy wyliczył, że jest co najmniej metr od miejsca, w którym faktycznie był. Aby było to przydatne, zazwyczaj trzeba bardzo często zerować błędy, aby uniknąć gromadzenia się błędów. Niektóre projekty są w stanie to zrobić, ale wiele nie.
Akcelerometry dają ładny wektor grawitacyjny, który z czasem nie rośnie, a kompasy elektroniczne podają orientację bez kumulacji błędu, ale ogólnie problem polegający na liczeniu martwych nie został rozwiązany dzięki tonom pieniędzy wydanym przez marynarkę wojenną na tonę czujników na statkach . Są lepsze niż to, co możesz zrobić, ale ostatnio czytałem, że wciąż podróżują 1000 km. To naprawdę całkiem dobre do liczenia martwych, ale bez ich wyposażenia nie będziesz w stanie osiągnąć niczego bliskiego.
źródło
Będziesz miał również stronniczość w akcelerometrach i hałas w żyroskopach, aby sobie z tym poradzić.
Grawitacja nie powinna wprowadzać błędów w pomiarach kąta; przeciwnie, wektor grawitacji zapewnia „bezwzględne odniesienie”, które pomaga wyzerować skumulowane odchylenie kątów „skoku” i „przechylenia”.
Tak, to, co chcesz zrobić, jest możliwe, ale niska wydajność tanich urządzeń MEMS oznacza, że błędy będą się kumulować szybko - zarówno zmiany nastawienia, jak i „losowy spacer” generowany przez hałas (zarówno w akcelerometrach, jak i żyroskopach prędkości) spowoduje, że wyniki odejdą od rzeczywistości w ciągu kilku sekund lub minut.
Aby to naprawić, musisz zainstalować w systemie dodatkowe czujniki, które nie powodują tego rodzaju błędów. Jak wspomniałem powyżej, użycie kąta wektora grawitacji jest jednym ze sposobów na skorygowanie niektórych błędów żyroskopowych, ale musisz być świadomy, kiedy masz dokładny pomiar grawitacji (systemy nie są w inny sposób przyspieszane) przed użyciem to.
Innym sposobem korekcji dryftu kątowego jest zastosowanie magnetometru do pomiaru pola magnetycznego Ziemi. Magnetometry mają stosunkowo duże błędy, ale nie cierpią z powodu długotrwałego dryfu.
Korekta błędów pozycji utworzonych przez składowe znoszenia odczytów akcelerometru wymaga pewnego rodzaju bezwzględnego odniesienia do pozycji. GPS jest powszechnie używany (jeśli jest dostępny), ale możesz również używać innych czujników, takich jak barometry (wysokości), odometry (jeśli masz koła na ziemi), czujniki zasięgu ultradźwiękowe lub podczerwieni, a nawet czujniki obrazu.
Niezależnie od tego, jakiej kombinacji czujników używasz w końcu, wszystkie te dane muszą zostać „połączone” w spójny model oprogramowania stanu systemu, który obejmuje nie tylko bieżącą pozycję i nastawienie, ale także szacunki bieżącego obciążenia , współczynnik skali i poziomy hałasu samych czujników. Powszechnym podejściem jest stosowanie filtra Kalmana, który można wykazać w celu zapewnienia „optymalnej” oceny (tj. Najlepszej dostępnej oceny) stanu systemu dla danego zestawu odczytów czujnika.
źródło
Krótka odpowiedź brzmi „nie do końca”. Długa odpowiedź jest taka, że można sformułować takie stwierdzenia, jak: „Biorąc pod uwagę moje odczyty żyroskopu, jestem w 95% pewien, że urządzenie zostało obrócone od 28 stopni do 32 stopni od ostatniego odczytu”.
Te „hałaśliwe” równania różniczkowe zwykle noszą nazwę „stochastyczne równania różniczkowe”, w których zakłada się, że hałas jest białym szumem generowanym przez losowy spacer. Matematyka może być uogólniona na inne sytuacje, w których hałas nie pochodzi z przypadkowego spaceru. W każdym konkretnym przypadku hałas będzie miał rozkład, który można ustalić eksperymentalnie, którego parametry będą zależeć od konkretnego urządzenia i zastosowania. Ze względu na akumulację hałasu, bez względu na to, co robisz, aby uzyskać dobre oszacowania w stosunkowo długim okresie czasu, zawsze będziesz musiał okresowo kalibrować do znanej pozycji. Przykładami stałych odniesień są bazy domowe, odczyty kompasu i grawitacja.
Jeśli zdecydujesz się na tę drogę, musisz zdecydować o kilku sprawach:
Jaki jest dopuszczalny poziom błędu? Czy chcesz mieć 95% pewności, że jest w granicach jednego stopnia po 2 sekundach, czy chcesz mieć 80% pewności, że jest w 5 stopniach po 2 sekundach?
Wykonaj kilka odczytów z żyroskopu / akcelerometru. Można to wykorzystać do obliczenia empirycznego rozkładu hałasu, który szacuje rzeczywisty hałas. Użyj tego do rozwiązania hałaśliwego równania różniczkowego i obliczenia przedziałów ufności.
Z powyższego powinno być jasne, w jaki sposób dokładność odczytu (wariancja) z arkusza danych wpływa na rozwiązanie twojego hałaśliwego równania różniczkowego. Będzie również jasne, jak wpływa to na przedziały ufności.
Wybierz urządzenie z akceptowalnymi parametrami, aby uzyskać pożądane przedziały ufności w pierwszym kroku. Może się okazać, że parametry dokładności urządzenia, które chcesz / potrzebujesz, nie pasują do dostępnych i / lub twojego budżetu. Z drugiej strony możesz być zaskoczony wynikami uzyskanymi dla tańszych urządzeń.
źródło