Moja droga do profesjonalizmu

Demo, kolejny etap projektu

Planowane funkcjonalności Wypadałoby w końcu zaprezentować mój system w działaniu. Zaczynam właśnie pisać demo, którego głównym zadaniem będzie odczytanie zarejestrowanych danych z pliku CSV, przeliczenie i narysowanie przemieszczeń na wykresie. Dla porównania chciałbym aby na wykresie zostały zaprezentowane przemieszczenia obliczone na podstawie przefiltrowanych danych za pomocą filtru FIR i filtru Alpha Beta. Pliki CSV CSV (comma separated values) to format … Czytaj dalej


AHRS czyli punkt widzenia zależy od punktu siedzenia

Dziś pomówimy na temat systemu AHRS. Będzie on nam potrzebny w celu obliczenia naszego przemieszczenia względem ziemi. Dlaczego? Jak wspomniałem w poście na temat nawigacji bezwładnościowej do wyznaczenia przemieszczeń są nam potrzebne pomiary przyspieszeń w trzech osiach. W taki właśnie sposób dokonują pomiarów wszelkiego rodzaju czujniki wielkości fizycznych. Jeśli chcemy obliczyć jak bardzo przemieściliśmy się na północ lub południe wykorzystamy … Czytaj dalej


Inżynier w Alpach czyli przyjemne z pożytecznym

Pamiętacie moje pomysły zastosowania  nawigacji bezwładnościowej w sporcie? W tym tygodniu wybrałem się na narty do Francji. To doskonała okazja żeby połączyć przyjemne z pożytecznym i zarejestrować kilka zjazdów przy pomocy telefonu. Po powrocie spróbuję przeliczyć zebrane dane z czujników na pozycję i wrzucę tutaj co mi wyszło. Bardzo jestem ciekaw jak to wszystko będzie wyglądało po filtracji. Tymczasem wracam … Czytaj dalej


Filtracja sygnału cz.2 – filtr Alpha Beta (+ live demo)

Kolejnym filtrem, który chciałbym omówić jest filtr Alpha Beta. Sam algorytm jest nieco bardziej skomplikowany niż filtru FIR ale nadal nie jest to jakieś rocket science. Poniżej zamieszczam jego schemat blokowy: W uproszczeniu jego działanie polega na estymowaniu kolejnych próbek na podstawie obserwacji zmian sygnału z przeszłości. Jeśli sygnał chwilę temu narastał to prawdopodobnie zachowa taką tendencję w następnym kroku … Czytaj dalej


Testy jednostkowe z wykorzystaniem NUnit

W dziedzinie programowania jestem totalnym samoukiem. Ma to dobre strony ale też mnóstwo wad. Przykładowo kiedyś pisząc oprogramowanie nie rozdzielałem warstwy logiki od warstwy prezentacji. Wiem, że to było głupie ale zwyczajnie nie znałem dobrych praktyk bo niby skąd miałem je znać. W sumie o większości z nich prawdopodobnie nadal nie mam pojęcia ale przynajmniej jestem tego świadomy i chcę … Czytaj dalej


Filtracja sygnału cz.1 – filtr FIR (+ live demo)

Filtr FIR jest jednym z prostszych algorytmów do implementacji dlatego wziąłem go na pierwszy ogień. Jego działanie polega na wyliczaniu średniej ważonej z kilku próbek sygnału. Poniżej przedstawiam przykładowy schemat blokowy algorytmu filtru uwzględniającego jedną próbkę wstecz: Blok z-1 opóźnia sygnał o jedną próbkę. W tym przypadku wagami dla poszczególnych próbek jest wartość 0.5. Kod Powyższa implementacja filtru FIR pozwala … Czytaj dalej


Jak nawigacja bezwładnościowa pomogła zabrać ludzi na księżyc

Na dzisiejszy wieczór proponuję film dokumentalny opowiadający o tym jak nawigacja bezwładnościowa pomogła zabrać ludzi na księżyc. To niesamowite z jakimi problemami zmagali się inżynierowie pracujący przy programie Apollo. Z ciekawostek, kod źródłowy komputera pokładowego Modułu Księżycowego i Modułu Dowodzenia misji Apollo znajduje się na GitHubie! Jeden z programistów, zgłosił nawet błąd w oprogramowaniu które liczy sobie ponad 50 lat! … Czytaj dalej


Całkowanie metodą trapezów w C#

O tej metodzie wspominałem w poście „Co to jest nawigacja bezwładnościowa?”. Dla przypomnienia całkowanie metodą trapezów polega na wyliczaniu i sumowaniu pól trapezów powstających przez przybliżenie przebiegu funkcji za pomocą odcinków. Odcinki te łączą ze sobą punkty, którymi w naszym przypadku będą próbki sygnału. Wreszcie jakiś kod Na początek stworzyłem klasę próbki: Nie ma tu wielkiej filozofii. Zawiera ona dwa … Czytaj dalej


Zmiana planów… przynajmniej częściowa

Tuż przed zamknięciem rejestracji na DSP nastąpiła mała zmiana planów. Stwierdziłem, że zamiast aplikacji na urządzenia mobilne zrobię bibliotekę, która będzie dokonywała obliczeń na potrzeby systemów INS. Myślę, że za kilka lat czujniki w telefonach będą lepszej jakości co da realną możliwość wykorzystania tej technologii. Plan działania na najbliższy czas Przede wszystkim muszę ogarnąć porządnie Gita. Zacząłem już coś działać … Czytaj dalej


Kubeł zimnej wody – dokładność czujników

A miało być tak pięknie. Wygląda na to, że muszę zmienić projekt. Okazuje się, że czujniki MEMS montowane w telefonach są bardzo marnej jakości i ich dokładność nie jest wystarczająca do wykorzystania w nawigacji inercyjnej. Nawet wysokiej klasy systemy INS oparte na bardzo dobrych czujnikach są obarczone sporym błędem więc czego innego można było się spodziewać… Dokładność Żyroskopy i akcelerometry … Czytaj dalej