Próbuję śledzić części ciała w stosunku do tułowia osoby. Widzę sporo pytań na temat używania przyspieszeniomierzy i żyroskopów MEMS do martwego liczenia i potwierdzają moje podejrzenia, że różne czynniki znacznie ograniczają ich przydatność do tego rodzaju zastosowań, ale szukam wyjaśnienia tych ograniczeń:
Jakie dokładnie są te ograniczenia?
Inne odpowiedzi dotyczyły przyczyn istnienia tych ograniczeń. Oczywiście specyfikacje części w danym systemie i to, co jest uważane za „dopuszczalny błąd” dla systemu, zmienią dokładne granice, ale czy istnieje jeden rząd wielkości w czasie lub odległość, których można się spodziewać po martwym rachunku? Wiem, że na długich dystansach (kilka jardów) błąd staje się zbyt duży dla większości praktycznych celów, ale co w odległości kilku stóp?
Co mogę zrobić, aby poprawić te limity?
Obecnie patrzę na używanie akcelerometru i żyroskopu. Jakie inne czujniki mogę dodać do systemu, aby poprawić wskaźnik błędów? Wiem, że na większych odległościach można korzystać z GPS, ale wątpię, aby jakikolwiek GPS klasy elektroniki użytkowej miał wystarczająco dobrą rozdzielczość, aby pomóc w moim przypadku.
Ponadto ogólny konsensus wydaje się, że jedynym sposobem na poprawę tych limitów powyżej punktu ulepszonych czujników jest zapewnienie odniesienia nie podlegającego błędom. Niektóre systemy rozwiązują to za pomocą kamer i markerów. Jakie punkty odniesienia może zapewnić urządzenie przenośne / do noszenia?
Widziałem wykorzystanie fal radiowych do dokładnego pomiaru dużych odległości, ale nie wiem, czy taki system mógłby być dokładny na tak małej skali (pod względem zmierzonej odległości) przy użyciu „gotowych” komponentów.
Odpowiedzi:
Źródła błędów obejmują zero-offset (błąd systematyczny) i błędy skali (które zwykle zmieniają się powoli) i szumy. Ceny czujników MEMS wahają się od mniej niż 10 USD do ponad 1000 USD, a wielkość składników błędu obejmuje szeroki zakres, w zależności od jakości czujnika.
Dużym problemem jest to, że zwykle wymagana jest integracja, aby uzyskać wartość czujnika (przyspieszenie, szybkość kątowa) do pożądanej wartości (pozycja, kąt). Wszystkie źródła błędów są złożone - z czasem rosną - gdy są zintegrowane. Wartość danych dla martwego liczenia zanika wraz z upływem czasu, a tanie czujniki dają co najwyżej kilka minut przydatnych danych, a czujniki wysokiej klasy mogą działać przez kilka godzin.
Jak już odkryłeś, najlepszym sposobem na pozbycie się rosnących zintegrowanych błędów jest połączenie danych czujnika z innymi niezależnymi źródłami danych, które nie zawierają tego samego rodzaju błędów. Na przykład GPS może dać bezwzględną wartość pozycji, która nie dryfuje w dłuższej perspektywie, ale ma stosunkowo duży składnik „szumu”. Możesz użyć tych danych do oszacowania błędów systematycznych i błędów skali swoich akcelerometrów, co pozwala na ich poprawienie w czasie rzeczywistym. Pozwala także anulować „losowy spacer” wywołany hałasem czujnika. Filtr Kalmana jest jedną z powszechnych metod modelowania systemu (w tym warunków błędu czujnika) i łączenia danych w celu uzyskania optymalnego oszacowania stanu systemu w dowolnym momencie.
Innym przykładem jest użycie „wektora grawitacji”, mierzonego przez akcelerometry, w celu zniesienia dryftu kątowego żyroskopów. Sztuczka polega na tym, aby dokładnie wiedzieć, kiedy masz prawidłowy wektor grawitacji; tzn. system nie przyspiesza w żadnym kierunku. W tym celu stosuje się różne heurystyki (np. „Zerową aktualizację”). Magnetometr może również służyć do pomiaru błędów żyroskopowych, nawet jeśli nie znasz bezwzględnego kierunku pola magnetycznego - o ile możesz założyć, że jest ono stałe.
Wykrywanie optyczne to kolejny sposób na uzyskanie oszacowanej prędkości, kąta lub położenia bez dryfu, ale wymagane przetwarzanie obrazu może wymagać wielu cykli procesora (lub FPGA), a opracowanie takiego systemu jest dość skomplikowane.
źródło
Zapytałeś, co jeszcze można dodać. 3-osiowy magnetometr powinien być pomocny. Pole magnetyczne Ziemi ma tendencję do poruszania się znacznie wolniej niż przeciętny użytkownik (na szczęście).
Spójrz na fantastyczny MPU6000 / 6050
Jedna wersja zapewnia interfejs SPI i IIC, a druga tylko IIC.
Zawiera 3-osiowy żyroskop + 3-osiowy akcelerometr oraz wejścia umożliwiające integrację sygnału z zewnętrznego 3-osiowego magnetometru.
Układ scalony zawiera „cyfrowy procesor ruchu”, który integruje sygnały z matrycy czujników 3 x 3. Jeszcze nie opanowałem dostarczonej dokładnej funkcjonalności, ale zamierzam przetworzyć 3 oddzielne źródła sygnału w przydatny system analizy ruchu
Arkusz danych tutaj
IC kosztuje około 10 USD za Digikey, a tablica ewaluacyjna kosztuje około 50 USD od producenta. Lub możesz kupić kompletną płytkę z Chin - sprzedają się tutaj za około 6 USD w USA za 1 sztukę - zmontowane IC i PCB.
Nadal nie wiem, jak to się dzieje, czy są prawdziwe, czy ... Dostałem jeden wczoraj, ale przez jakiś czas nie będę mógł się nim bawić. („Whiles” różnią się znacznie wielkością, od bardzo małych do czasami przekraczających duże, niestety). W sieci istnieje wiele artykułów na temat korzystania z nich np. W Arduinos.
Jak dokładne ?:
Prawdopodobnie dużo się o tym dyskutuje w sieci.
Jeśli poprawnie odczytałem kartę danych (a nie jestem to zbyt dobrze zaznajomiony z urządzeniem)
Tabela 6.1 na stronie 12 sugeruje, że żyroskop ma dryft +/- 20 stopni / sekundę maksimum w temperaturze 25 ° C i ponownie - Zakres temperatur od 40 do + 85 ° C. Zakładając rzeczywistą szybkość 20 stopni / sekundę, czyli jeden pełny obrót w ciągu 18 sekund. Jednak zarówno magnetometr, jak i akcelerometr zapewniają dostęp do zewnętrznych wektorów odniesienia (grawitacji i ziemskiego pola magnetycznego), a sygnały z nich można wykorzystać do uzyskania krótko- i długoterminowej prędkości dryfu żyroskopu i kompensacji. Może to być częścią tego, co robi ich „procesor ruchu”.
Błąd akcelerometru wydaje się zwykle poniżej +/- 5%.
Spodziewałbym się (i może się bardzo mylić), że użycie akcelerometru i magnetometru do wyrównywania błędów dryfowania żyroskopu w zasadzie zerowo w dłuższej perspektywie pozwoli na użycie sygnałów żyroskopowych do nawigacji w ciągu kilku sekund lub minut. GPS zapewnia również sygnały prędkości, a połączenie pozycji GPs + prędkości z jednostką 9DOF brzmi bardzo użytecznie.
Wooly: Powyżej brzmi bardziej wełnianie niż bym chciał. Spodziewam się, że poznam więcej o tym w ciągu najbliższych tygodni. Chciałbym usłyszeć, co się dowiesz, a jeśli nauczę się użytecznych rzeczy, postaram się zgłosić.
.
W zależności od zastosowania możesz tymczasowo zdeponować referencyjny odbiornik GPS i odbiornik w dogodnej lokalizacji. Może to być wyjątkowo kompaktowy - GPS + bateria + TX. Po zdeponowaniu wie, gdzie to jest i może przesłać poprawki w zależności od tego, gdzie system to mówi. Zastosowanie tej samej konstelacji satelitarnej jest „prawdopodobnie dobrym pomysłem”. Jeśli użytkownik i referencyjny GPS znajdują się w tym samym punkcie, w którym jest on zdeponowany, tym lepiej, ale systemy te mają tendencję do działania, nawet jeśli są zawsze oddzielone przestrzennie.
Trudno powiedzieć, nie wiedząc, co to za sprawa. Jednak względna rozdzielczość GPS między próbkami jest zwykle znacznie lepsza niż w przypadku minut lub godzin. Przeprowadziłem testy, podczas których przejechałem trasę miejską i wyznaczyłem współrzędne GPS, a następnie powtórzyłem ćwiczenie kilka godzin później. Dwie ścieżki były w niektórych przypadkach oddalone od siebie o kilka metrów, ale gdy mówimy, że jadąc prostą linią wzdłuż miejskiej ulicy, działka była linią prostą z „hałasem” po obu stronach linii prostej, być może mniejszej niż metr. (To było kilka lat temu - samemu łatwo to wypróbować. Właśnie zarejestrowałem dane z szeregowego wyjścia GPS RS232 (zwykle 4800 bodów) i w tym przypadku narysowałem je w Excelu jako wykres XY.
Różnicowy GPS może być użyty, w którym lokalny stacjonarny odbiornik o stałej lokalizacji zapewnia korekty błędów w zależności od tego, gdzie wie, gdzie jest i gdzie system mówi, że jest. Istnieje wielu dostawców takich systemów, ale koncepcja jest prosta i wystarczająco łatwa do wdrożenia, jeśli przy napiętym budżecie.
źródło
Coś, co nie zostało jeszcze uwzględnione w tych odpowiedziach, to twoja konkretna aplikacja, która została rozwiązana co najmniej kilkanaście razy wcześniej przez bardzo inteligentnych ludzi. Dwa słowa kluczowe to kinematyka odwrotna i filtry Kalmana.
Do tej pory powinno być jasne, jakie są źródła błędów dla Twojej aplikacji i jak je naprawić. Ale w kontaktach z czujnikami, które są zasadniczo przymocowane do człowieka, można zmniejszyć zakres przestrzennych i kątowych pozycji czujników, stosując odwrotną kinematykę do równania. Zasadniczo oznacza to, że śledzisz względne położenie jak największej liczby stawów na ciele i stosujesz do niego model kinematyczny ludzkiego ciała. Na przykład długość ramion ludzi nie zmienia się w czasie, a ich zakres ruchu nie zmienia się znacząco. Kości nie zginają się (w normalnych okolicznościach). Wszystko to może być wykorzystane do ograniczenia pozycji czujników.
Drugim rozwiązaniem jest użycie jak największej liczby czujników ortogonalnych. Ortogonalny w sensie: stosowania zasadniczo różnych zasad pomiaru. Korzystając z jak największej liczby czujników, możesz użyć tak zwanego filtra Kalmana, aby wypracować jak najdokładniej, biorąc pod uwagę dane, gdzie znajdują się twoje czujniki. Filtry Kalmana nie są jednak jakimś magicznym bytem, który odrzuca najlepszą odpowiedź. Są to modele matematyczne, które należy dostroić i zmodyfikować pod kątem konkretnej aplikacji, a ich prawidłowe działanie może być dość kłopotliwe. Ale pozwala ci, w sposób okrężny, łączyć bardzo trudne do skorelowania dane z czujnika. Dane wejściowe dla tego rodzaju filtrów mogą być dowolne: czujniki położenia, przyspieszenia i prędkości, ale także np. Czujniki światła, które mogą dodawać informacje, reagując na źródła światła widoczne pod określonymi kątami.
Kilka „rękawic mocy” z tą zasadą działania (kinematyka + filtry Kalmana) zostało zademonstrowanych zarówno przez firmy, jak i uniwersytety. Najnowszy, który widziałem w TU Eindhoven, używał MPU6050 na elastycznych podłożach wplecionych w rękawicę, a także niektóre czujniki wspierające (myślę, że w tej chwili są to tylko kamery internetowe) wszystkie zasilane dużym filtrem Kalmana zasilanym Matlabem. Działa z powtarzalnością 1 mm.
źródło
Podstawowy problem
Można temu zaradzić, badając krótkoterminową dynamikę błędów bezwładnościowego systemu nawigacji. Jest szczegółowo opisany w wielu tekstach , ale oto krótka wersja „bez równań”.
Nawigacja bezwładnościowa działa w następujący sposób:
Dokładnie poznaj swoją początkową pozycję, prędkość i nastawienie (tj. Przechylenie i odchylenie).
Skorzystaj z nowego obliczenia, które właśnie obliczyłeś, aby matematycznie obrócić odczyty akcelerometru, aby były na poziomie ziemi.
Odejmij grawitację od odczytów nowego poziomu akcelerometru.
Powtarzaj kroki 2-6 tak długo, jak chcesz.
Co więcej, to odchylenie będzie kumulowało się w położeniu, co spowoduje nieprawidłowe wyrównanie akcelerometrów, co spowoduje wyrównanie przyspieszenia w niewłaściwym kierunku, który następnie zostanie zintegrowany w niewłaściwym kierunku - trzy poziomy błędów.
Oznacza to, że błędy żyroskopowe powodują wzrost błędów pozycji wraz z sześcianem czasu .
Przez ten sam błąd logiczny akcelerometru powoduje, że błędy położenia rosną z kwadratem czasu .
Z tego powodu otrzymasz zaledwie kilka sekund pożytecznej (czystej) bezwładnościowej nawigacji z czujników MEMS klasy telefonu komórkowego.
Nawet jeśli masz wyjątkowo dobre czujniki bezwładnościowe - powiedzmy, klasa samolotu - to nadal jesteś zasadniczo ograniczony do nieco mniej niż dziesięciu minut (czystej) nawigacji bezwładnościowej. Powodem jest Krok 3 - zmiany grawitacji wraz z wysokością. Zła wysokość będzie błędna, a grawitacja będzie zła, co spowoduje, że wzrost będzie nieprawidłowy, co spowoduje, że grawitacja będzie bardziej błędna i tak dalej - wzrost błędu wykładniczego. Zatem nawet „czysty” inercyjny system nawigacyjny, taki jak te znajdujące się w odrzutowcach wojskowych, zwykle ma coś w rodzaju wysokościomierza barometrycznego. Źródło .
Rozwiązania
Istnieją zarówno produkty badawcze, jak i komercyjne , które mogą to zrobić.
Koncepcyjnie działa jak widzenie stereo - masz znaną linię bazową między kamerami i inny kąt do każdego znacznika widzianego z każdej kamery. Na tej podstawie można obliczyć pozycję 3D każdego znaku (względem kamery). Może pracować lepiej z większą liczbą kamer.
Korzystając z taniego sprzętu, może się przydać decawave UWB (około 10 cm). Musisz wymyślić własne algorytmy.
System GPS będzie walczył obok ciała. Uzyskanie GPS-u na poziomie cm polega na ciągłym śledzeniu fazowym (bardzo, bardzo słabych) sygnałów GPS, co jest niezwykle trudne, jeśli antena znajduje się obok ciała, a ciało się porusza! W przypadku systemów tylko L1 - niezależnie od tego, które są tanie lub drogie - śledzenie musi trwać bardzo długo (10 minut +), a zatem jest niepraktyczne w przypadku tego problemu. Odbiornik o podwójnej częstotliwości może czasami działać , ale tak naprawdę nie są tanie (tysiące dolarów).
źródło