Przejdź do głównej zawartości

Moduł 11 — Nawigacja i autonomia

Od „gdzie jestem?" do „leć tam sam". Tu stos FPV spotyka się z robotyką.

🟢 Fundamenty. Odbiorniki GNSS słyszą sygnały satelitów ze znacznikami czasu; każda różnica czasu definiuje sferę, a ~4+ sfery przecinają się w Twojej pozycji (trilateracja). Dokładność ~1–3 m dla modułów hobbystycznych; HDOP w OSD to ocena jakości geometrii (mniej = lepiej). Kompas daje kurs (kurs z GPS jest niewiarygodny przy małej prędkości), barometr — gładką wysokość względną, a EKF z modułu 3 fuzjuje to wszystko. Z takim stanem autopilot oferuje RTL (return-to-launch — skonfiguruj, zanim będzie potrzebny), Loiter/PosHold i misje Auto po punktach trasy.

🟡 Praktyk. Geodezja, której faktycznie używasz: pozycje przychodzą jako szerokość/długość geograficzna (WGS-84); autopiloty przeliczają je na lokalny układ NED (North-East-Down, w metrach) wokół punktu domowego. Odległość między dwiema współrzędnymi (haversine):

a=sin2 ⁣Δφ2+cosφ1cosφ2sin2 ⁣Δλ2,d=2Rarcsina,R6371 kma = \sin^2\!\frac{\Delta\varphi}{2} + \cos\varphi_1\cos\varphi_2\sin^2\!\frac{\Delta\lambda}{2},\qquad d = 2R\,\arcsin\sqrt{a},\quad R \approx 6371\ \text{km}

Sterowanie pozycją to kaskada z modułu 4 w nowym płaszczu: błąd pozycji → zadana prędkość (P), błąd prędkości → przyspieszenie → zadane pochylenie → pętla rate, którą już znasz. Zaplanuj misję w Mission Plannerze / QGroundControl, przetestuj ją w symulacji SITL, potem leć.

🔴 Zaawansowany. Prowadzenie po trasie: kontroler L1 ArduPilota śledzi ścieżkę, celując w punkt położony stałą odległość przed dronem — ta sama sztuczka co prowadzenie samochodu. RTK GNSS używa poprawek fazy nośnej ze stacji bazowej dla dokładności centymetrowej. Poza GNSS: optical flow (prędkość z kamery, zawis w pomieszczeniach), dalmierze i odometria wizyjna / VIO — estymacja ruchu z kamery + IMU, brama do SLAM-u. Dodaj komputer pokładowy (klasy Raspberry Pi) mówiący MAVLink do FC: teraz detekcje z OpenCV mogą stawać się zadanymi prędkościami — np. precyzyjne lądowanie na znaczniku AprilTag albo gimbal śledzący obiekt, który zastępuje Twój head tracker.

⚫ Mistrz. Planowanie ścieżek (A*, RRT*), optymalizacja trajektorii (wielomiany minimum-snap — dlatego autonomiczne ujęcia filmowe wyglądają „maślano"), polityki omijania przeszkód i sterowanie oparte na uczeniu: zespoły badawcze latały wyuczonymi politykami, które pokonały mistrzów wyścigów dronów. Mistrzostwo oznacza tu, że umiesz wziąć artykuł z arXiv, odtworzyć go w symulacji i uczciwie powiedzieć, co przenosi się na Twojego 7-calowca, a co nie.

Lista mistrzowska

  • Skonfiguruj i przetestuj failsafe + RTL tak, by utrata łącza w oddali była nie-wydarzeniem.
  • Przeleć oskryptowaną misję w SITL, potem tę samą misję w polu, i porównaj logi.
  • Strumieniuj MAVLink do własnego programu w Pythonie i rysuj pozycję na żywo.

🖼️ Pomysły na obrazy: własne zrzuty z Mission Plannera; ilustracje konstelacji GNSS z domeny publicznej NASA/ESA; diagramy trilateracji GPS z Wikimedia Commons (wersje PD).

📚 Darmowe źródła: pełna dokumentacja parametrów i misji ArduPilota; podręcznik użytkownika PX4; dokumentacja QGroundControl; „Kalman and Bayesian Filters in Python" (znów — moduły o GNSS).