Autopilot może być wyposażony w kilka magnetometrów. Dwa magnetometry są umieszczone na module inercyjnym IMU I2P, jeden może być umieszczony na zewnętrznym module GNSS, oraz potencjalnie jeden w IMU kamery.

Obecnie dostępne są 3 procedury obsługi magnetometrów różniące się sposobem wykonania i rodzajem zasilających je danych.

Procedura kalibracji przesunięcia zera i skalowania długości wektora magnetycznego

Jest to podstawowa procedura kalibracyjna. Jest dostępna w menu kalibracji magnetometrów pod nazwą "Kal Magn x" gdzie x to numer czujnika. Czujniki 1 i 2 to czujniki wbudowane w IMU, czujnik 3 jest na zewnętrznym module GNSS.

Po uruchomieniu pokazuje się ekran z instrukcją przeprowadzenia kalibracji. Należy ustawić się z bezzałogowcem tak, aby kalibrowana oś (pierwsza jest X) była umieszczona wzdłuż linii wschód - zachód, czyli była w zerze pola magnetycznego. Obracając wokół niej uzyskujemy pełną zmianę wskazań na pozostałych 2 osiach. Procedura potrzebuje znaleźć ekstrema, czyli minima i maksima. Znalezienie nowego ekstremum jest potwierdzane komunikatem głosowym złożonym z dwu wyrazów. Pierwszym wyrazem jest rodzaj ekstremum "Min" lub Max", drugim wyrazem jest nazwa osi. W pierwszym etapie kalibracji jest lawina komunikatów, która później się ucisza. Jeżeli znajdziemy nowe ekstremum warto przeszukać jego okolice, czy nie będzie czegoś jeszcze większego. Gdy nie ma już nic nowego, wtedy należy przejść do kalibracji kolejnej osi naciskając przycisk "Nastepna Os".

Obrót czujników dookoła każdej z osi jest wizualizowany na wykresie biegunowym kolorami standardowymi RGB. Kolor czerwony (R) rysuje wykres YZ podczas obrotu wokół X, kolor zielony (G) rysuje wykres XZ, kolor niebieski (B) rysuje wykres XY. Wykresy są automatycznie skalowane, tak aby mieściły się w oknie. Im większe będą różnice między osiami, tym wykresy będą mniejsze.

Po zebraniu kompletu danych dla każdej osi, obliczane są współczynniki przesunięcia zera: fPrzesMagn = (Max + Min) / 2

Liczony jest też współczynnik skalowania, tak aby wektor mierzony przez wszystkie osie magnetometru miał tą samą długość fSkaloMagn = NOMINALNE_MAGN / (Max + Min)

Wartość wyrażona stałą NOMINALNE_MAGN przedstawia nominalne natężenie pola magnetycznego i jest podane w Teslach. Obliczone współczynniki kalibracyjne są zapisywane w pamięci FRAM i pobierane przy każdym starcie.

Procedura sprawdzenia jakości kalibracji

Procedura wykorzystuje ten sam algorytm co kalibracja z tą różnicą, że jest zasilana danymi skalibrowanymi.  Dla dobrze skalibrowanych czujników i braku zakłóceń, wykresy poszczególnych osi powinny pokrywać się w środku obszaru wykresu. O ile na etapie kalibracji wykresy były skalowane dynamicznie i okręgi zmniejszały się w miarę wykrywania kolejnych ekstremów, to na tym etapie współczynnik skalowania jest stały i wykres okręgów w 3 płaszczyznach powinien w pełni zawierać się w kwadratowym obszarze wykresu.

 

Procedura porównywania czujników

Magnetometr służy do pomiaru kursu magnetycznego, który wyznacza się jako arkus tangens składowych X i Y magnetometru, więc ta płaszczyzna jest najważniejsza dla uzyskania finalnego wyniku. O ile okręgi rysowane w poprzedniej procedurze miały promień równy długości wektora, ponieważ oś obrotu zawsze leżała w kierunku wschód - zachód, czyli w zerze i rejestrowana była pełna długość wektora, to w locie pomiar wykonywany jest dla pionowej osi obrotu. Wektor magnetyczny jest wtedy widziany jako nachylony pod katem inklinacji, wynoszącym dla centralnej Polski ok. 68°, więc na wykresie pojawia się jego składowa o wartości wynoszącej kosinus kąta inklinacji.

Ponieważ kąt kursu to atan2(X,Y), więc zależy nam na tym aby dodatnia i ujemna część w osiach X i Y były symetryczne. Na wykresie objawia się tym, że okrąg jest wycentrowany na wykresie. Jeżeli nie będzie wycentrowany to rozkład kątów zwracanych przez atan2 będzie niesymetryczny. Niesymetryczność zależy od dokładności kalibracji, oraz od pochylenia i przechylenia.

Żeby lepiej to zrozumieć wyobraźmy sobie, że obracając nasze urządzenie widzimy wektor magnetyczny we wszystkich możliwych kierunkach. Gdybyśmy zrobili wizualizację 3D to na wyświetlaczu została by narysowana sfera. Jeżeli teraz zamiast dowolnych obrotów w przestrzeni będziemy wykonywali płaski obrót, to wektor umieszczony pod katem inklinacji narysuje nam okrąg o promieniu równym cos(kąt_inklinacji) ≈ 0,37 promienia sfery. Jeżeli sferę wyobrazimy sobie jako piłkę nożną a wykresem jest jedna z czarnych łatek, to przekręcając piłkę do przodu wykres będzie przesuwał do góry, przekręcając w prawo, będzie się przesuwał w prawo itd. Dodatkowo przekręcają naszą "piłkę" wykres z okręgu będzie stawał się coraz bardziej eliptyczny.

Tak więc aby poprawnie wyznaczyć kąt kursu magnetycznego należy korygować pochylenie i przechylenie a jeszcze wcześniej mieć pewność że sama procedura kalibracji daje nam dobry materiał wejściowy. Do oceny tego materiału zostało zbudowane kolejne narzędzie przedstawiające wykres wektora magnetycznego w płaskim obrocie. W odróżnieniu od poprzednich wykresów tutaj mamy zaznaczone kierunki magnetyczne N, E, S i W. Trochę inaczej niż na globusie ale wydaje mi się że logicznie. Jeżeli skierujemy urządzenie osią X na północ, to zarejestruje najsilniejszy sygnał w dodatniej części osi X klasycznego układu współrzędnych. Dlatego N leży na osi X. Obracając na wschód maksimum sygnały magnetycznego będzie na prawym skrzydle, czyli dodatniej części osi Y. Ponieważ na wyświetlaczu punkt (0,0) leży w lewym górnym rogu, więc oś Y jest skierowany w dół, dlatego wschód jest na dole, itd.

Ponieważ w obecnej chwili APL jest wyposażony w 3 magnetometry więc rysuję wykresy dla ich wszystkich. Na powyższym obrazku widać kilka problemów. Jest pewna  eliptyczność magnetometru 3. Najlepiej wycentrowany jest magnetometr 1 ale on ma n nich wszystkich największy szum. Na wykresie jest okrąg wzorcowy o promieniu wyznaczonym ze znormalizowanej długości wektora i bieżącej inklinacji. Wszystkie 3 wykresy są trochę większe. Dla atan2(x, y) rozmiar nie ma znaczenia, ale jest to informacja że coś nie do końca się zgadza.