Projekt grupowy | Wydział Elektroniki, Telekomunikacji i Informatyki | Politechnika Gdańska
Zlecenie nr269@KSDIR'2024| Opiekun: dr inż. Sebastian Dziedziewicz
SSD (System Sterowania Dronem) to dwusemestralny projekt grupowy realizowany na Politechnice Gdańskiej. Celem było zaprojektowanie i zbudowanie od podstaw autonomicznego drona zdolnego do nawigacji do punktu wskazanego przez operatora, z wykorzystaniem filtru Kalmana do estymacji pozycji oraz technologii radia programowalnego (SDR/LoRa) do komunikacji bezprzewodowej.
W ramach projektu zespół samodzielnie:
- zaprojektował i wydrukował w 3D obudowę drona,
- złożył i skonfigurował hardware (silniki, ESC, kontroler lotu, moduły komunikacyjne),
- zaimplementował algorytmy sterowania i estymacji pozycji,
- opracował realistyczną symulację w środowisku Webots,
- zintegrował precyzyjną geolokalizację RTK GPS (dokładność centymetrowa).
| Rola | Osoba |
|---|---|
| Kierownik projektu | Bartosz Babiński |
| Członek zespołu | Bartłomiej Bąk |
| Członek zespołu | Mateusz Boniecki |
| Członek zespołu | Mikołaj Goździelewski |
| Członek zespołu | Grzegorz Lange |
| Opiekun | dr inż. Sebastian Dziedziewicz |
Poniżej schemat komunikacji między modułami systemu:
- Moduł LC29HDA odbiera sygnały z satelitów GNSS.
- Raspberry Pi Zero W2 pobiera dane GPS po UART, łączy się z serwerem NTRIP przez 4G LTE i stosuje korekcję RTCM3 (RTK).
- Skorygowana pozycja trafia po SPI/UART do ESP32, który uruchamia filtr Kalmana i fuzję sensorów (IMU + GPS).
- ESP32 generuje sygnały sterujące do kontrolera lotu (sterownik PID), który zarządza ESC i silnikami.
- Operator komunikuje się z dronem bezprzewodowo przez LoRa lub SSH.
Obudowa drona została zaprojektowana w CAD i wydrukowana na drukarce 3D przez członka zespołu. W trakcie projektu przeszła dwie generacje — po uszkodzeniu podczas pierwszych prób lotu zmniejszono obudowę i wymieniono śmigła z 9" na 7", co poprawiło stabilizację i zmniejszyło masę.
| Moduł | Opis |
|---|---|
| Silniki | Bezszczotkowe silniki BLDC |
| ESC | Regulatory prędkości obrotowej |
| Kontroler lotu + IMU | Stabilizacja i pomiar orientacji |
| Mikrokontroler | STM32F103C8T6 (BluePill) |
| Moduł obliczeniowy | ESP32 — filtr Kalmana, fuzja sensorów |
| Komputer pokładowy | Raspberry Pi Zero W2 — obsługa RTK i komunikacji |
| Moduł GPS RTK | LC29HDA — precyzyjna geolokalizacja |
| Łączność LoRa | SX1278 — komunikacja bezprzewodowa z operatorem |
| Internet mobilny | Modem 4G LTE — połączenie z serwerem NTRIP |
Do precyzyjnego wyznaczania pozycji drona zastosowano technologię RTK (Real-Time Kinematic), która zapewnia dokładność na poziomie centymetrów (w porównaniu do standardowego GPS z dokładnością kilku metrów).
Przepływ danych RTK:
- Moduł LC29HDA odbiera sygnały z satelitów GNSS.
- Raspberry Pi łączy się z serwerem NTRIP (przez 4G LTE) i pobiera dane korekcyjne RTCM3 ze stacji bazowej.
- LC29HDA oblicza pozycję RTK i przesyła wynik po UART do Raspberry Pi.
- Raspberry Pi przekazuje dane po SPI do ESP32.
- ESP32 wykorzystuje dane w filtrze Kalmana.
Raspberry Pi odpowiada ponadto za: zarządzanie internetem mobilnym, obsługę modułu RTK po RS232 oraz zdalną administrację przez SSH.
Na ESP32 zaimplementowano rozszerzony filtr Kalmana (EKF) łączący dane z:
- modułu IMU (przyspieszeniomierz, żyroskop),
- modułu GPS RTK (pozycja).
Fuzja sensorów pozwala na dokładniejszą i odporną na szumy estymację stanu drona (pozycja, prędkość, orientacja).
Sterowanie silnikami opiera się na klasycznym regulatorze PID, którego nastawy dobrano przy pomocy symulacji.
| Tryb | Opis |
|---|---|
| Ręczny | Operator steruje dronem przez joystick/LoRa |
| Punkt–punkt | Dron autonomicznie nawiguje do wskazanego punktu GPS |
Ze względu na trudności z bezpośrednim testowaniem na fizycznym dronie, zespół opracował realistyczną symulację w środowisku Webots.
Symulacja uwzględnia:
- rzeczywiste parametry fizyczne drona (masa, momenty bezwładności),
- charakterystykę ciągu silników (zmierzoną eksperymentalnie — krzywa prąd–ciąg),
- odpowiednie nastawy regulatorów PID,
- dwa tryby sterowania: ręczny oraz punkt-do-punktu,
- filtr Kalmana estymujący pozycję drona w obecności szumu pomiarowego.
Aby uzyskać realistyczny model silników, zespół przeprowadził pomiary ciągu w zależności od prędkości obrotowej i dopasował krzywą do danych pomiarowych.
Poniżej wyniki testów symulacyjnych porównujące trajektorie drona z filtrem Kalmana i bez, w warunkach bez szumu i z szumem pomiarowym:
Wnioski:
- Filtr Kalmana istotnie poprawia śledzenie trajektorii w warunkach szumu.
- Bez szumu różnica jest minimalna — filtr nie pogarsza jakości sterowania.
- Regulator PID z filtrem Kalmana stabilnie utrzymuje zadaną wysokość i pozycję X/Y.
SSD/
├── simulation/ # Kod symulacji Webots
│ ├── controllers/ # Kontrolery sterowania (C)
│ ├── worlds/ # Pliki świata symulacji
│ └── protos/ # Modele 3D drona
├── esp32/ # Firmware ESP32 (filtr Kalmana, LoRa)
├── rpi/ # Skrypty Raspberry Pi (RTK, GPS, 4G)
├── docs/ # Dokumentacja projektowa
│ ├── DTP.pdf # Dokumentacja techniczna produktu
│ ├── RTK.pdf # Dokumentacja systemu RTK GPS
│ ├── RK.pdf # Dokumentacja regulatora
│ ├── HiSW.pdf # Historia i specyfikacja wymagań
│ ├── Optymalizacja.pdf# Dokumentacja optymalizacji
│ └── images/ # Zdjęcia i diagramy
└── README.md
- Webots R2023 lub nowszy
- Kompilator C (gcc)
- Python 3.8+ (opcjonalnie, do skryptów pomocniczych)
# 1. Sklonuj repozytorium
git clone https://github.com/Bebo457/SSD.git
cd SSD
# 2. Otwórz symulację w Webots
# File → Open World → simulation/worlds/drone_world.wbtTryb sterowania i parametry (nastawy PID, włączenie/wyłączenie filtru Kalmana) można konfigurować w plikach nagłówkowych kontrolerów.
| Element | Status |
|---|---|
| Samodzielna konstrukcja drona (druk 3D) | ✅ Zrealizowane |
| Konfiguracja kontrolera lotu | ✅ Zrealizowane |
| Komunikacja LoRa (ESP32 ↔ Laptop) | ✅ Zrealizowane |
| Integracja RTK GPS (LC29HDA + NTRIP) | ✅ Zrealizowane |
| Filtr Kalmana na ESP32 | ✅ Zrealizowane |
| Symulacja w Webots | ✅ Zrealizowane |
| Loty autonomiczne na fizycznym dronie | 🔄 W trakcie / częściowo |
Pełna dokumentacja projektowa dostępna w katalogu docs/:
- DTP — Dokumentacja techniczna produktu
- RTK — Dokumentacja systemu geolokalizacji RTK GPS
- RK — Dokumentacja regulatora (PID, Kalman)
- HiSW — Historia i specyfikacja wymagań sprzętowych
- Optymalizacja — Dokumentacja procesu optymalizacji parametrów
Projekt grupowy realizowany w ramach przedmiotu Projekt Grupowy, WETI PG, semestr 2024/2025






