Wie du deine eigene Drohne mit Raspberry Pi steuerst

Die Steuerung ‍einer selbstgebauten Drohne mit einem Raspberry Pi verbindet Elektronik, Programmierung ​und Luftfahrttechnik. Der Beitrag erläutert ⁢benötigte‍ Komponenten, ‍Aufbau und Verkabelung, Einrichtung von betriebssystem, Libraries und Flugsoftware, Grundlagen der Regelung, ‍Sicherheit und Recht, ‌sowie Tests, Telemetrie​ und erste‍ autonome Manöver.

Inhalte

Navio2 bündelt Flugsteuerung‍ und Companion-Computer auf dem Raspberry ⁣Pi: ArduPilot läuft unter linux (häufig mit PREEMPT_RT), Sensorik sitzt​ direkt auf dem ⁢HAT, Telemetrie und Missionslogik teilen sich eine Plattform. Das reduziert Bauteile,‌ gewicht und Latenzen⁢ zwischen Bildverarbeitung und Regler,‍ verlangt jedoch sauberes Power-Design, gutes SD‑Karten‑Management ⁤und sorgfältige Prozesspriorisierung, damit⁢ Echtzeit-Anteile nicht unter Last schwanken. Stärken liegen bei Integration, einfacher Erweiterbarkeit‌ per​ GPIO/SPI/I2C und schnellen Iterationen ⁤in projekten mit Onboard‑KI oder Computer Vision.

Aspekt Navio2 Pixhawk
Architektur Linux-basierte FC auf Pi Dedizierter MCU-FC‌ + companion
Echtzeit Gut, aber lastabhängig Deterministisch‍ (RTOS)
Redundanz Einzelsensorik oft duale IMUs, ​fail-safes
Verkabelung Minimal (HAT) Mehr kabel,​ saubere Trennung
I/O & Bus GPIO/SPI/I2C auf Pi CAN‍ (UAVCAN), PWM, DShot
Latenz KI→Regler Sehr niedrig Niedrig über‌ MAVLink/CAN
Setup-Komplexität Niedrig-Mittel Mittel-Hoch
Einsatzprofil Prototyp, Leichtbau, CV Langzeit, Industrie, BVLOS

Pixhawk trennt Zuständigkeiten: Ein STM32‑Controller führt ⁢den Flugregelkreis⁣ mit hoher Deterministik, während der Raspberry Pi als Companion über MAVLink Aufgaben wie Mapping, Objektverfolgung oder⁣ Edge‑KI übernimmt. Das erhöht Robustheit‌ durch Redundanz, ⁤klare‍ Strompfade, galvanische Trennung und umfangreiche Peripherie (z. B.⁢ CAN‑Geräte, externe Magnetometer, ​Dual‑GPS). Der Preis sind mehr Komponenten, größeres Volumen ‍und zusätzliche Konfiguration. Geeignet, wenn Verfügbarkeit, skalierbarkeit und⁣ regulatorische⁤ Anforderungen Vorrang ‍vor maximaler Integration ​haben.

  • Priorität Echtzeit/Fail-safes: Vorteil ⁣Pixhawk.
  • Platz- und⁢ Gewichtsbudget: Vorteil Navio2.
  • Onboard-KI/Computer Vision: ⁤Vorteil Navio2 (direkte Pipeline), Pixhawk solide⁣ mit Companion-Link.
  • Erweiterungen per CAN und professionelle Peripherie: Vorteil Pixhawk.
  • Budget und ‍Teileanzahl: Vorteil Navio2.
  • Wartbarkeit/Field-Service: ​ Vorteil⁤ Pixhawk durch modulare Trennung.

Stromversorgung und ESCs

Die Energiearchitektur‌ bestimmt Flugzeit, Stabilität und sicherheit. Ein LiPo-Akku (3S/4S) speist‍ die ESCs ⁢direkt; der⁤ Raspberry⁢ Pi ⁤benötigt ‌dagegen eine saubere 5‑V‑Schiene. ⁢Empfehlenswert ​ist ein ⁤ hocheffizienter⁢ Step‑Down (BEC) mit ausreichender Reserve‍ (≥3 ⁢A) sowie ein LC‑Filter, um ⁤Schalt- und Motorrauschen von der​ Logik‌ zu entkoppeln. ‍Eine Power ​Distribution Board (PDB) ‌verteilt die Spannung, misst Ströme und vereinfacht die Verkabelung. gemeinsame Masse aller Komponenten bleibt Pflicht, galvanische Trennung nur ‌für ⁤Sensorpfade. Kurze, ‍ausreichend dimensionierte Leitungen, robuste Steckverbinder und Überspannungsschutz ​erhöhen die Zuverlässigkeit.

  • Akkuauswahl: 3S/4S je nach‍ Motor-KV; sinnvolles Verhältnis aus Kapazität, C‑Rating ‌und Gewicht.
  • BEC/Step‑Down: 5 V / 3-5 A, geringe Restwelligkeit (<50 mV), thermische ‌Reserve.
  • Filter & Schutz: LC‑Filter, TVS‑Diode, Sicherung ⁣oder ‍polyfuse für die⁣ Logikversorgung.
  • Verteiler &‌ Stecker: PDB oder ⁢AIO; XT60/XT30; passender Leitungsquerschnitt (AWG14-18).
  • Masseführung: ‌sternförmig ​oder niederimpedant; Masseschleifen ‌vermeiden.
  • Messung: Strom- und Spannungssensor für ⁣Telemetrie/Logging zur verbrauchsprognose.
Komponente Empfehlung Hinweis
Akku 4S ⁣1500-2200 mAh 75-100C⁣ für Peaks
BEC 5 V ‌/ 3-5 A <50 mV Ripple
PDB 40-60 A Stromsensor integriert
Filter LC (100 µH/470 µF) gegen Motorrauschen
Stecker XT60 verriegelbar
Leitungen AWG14-18 kurz halten

Bei den elektronischen ⁢Drehzahlreglern entscheidet die kombination⁢ aus Stromrating,‌ Firmware ‌ und Signalprotokoll über die Reaktionsfreudigkeit. Moderne​ Regler mit​ BLHeli_S/32 unterstützen OneShot, Multishot und DShot. Für‍ Linux-basierte‌ Systeme ​bietet sich ein PWM‑Treiber (PCA9685) oder ​ein separater Mikrocontroller als ⁢Signalgenerator‌ an,der vom Raspberry Pi über ⁤ I²C/SPI/UART angesteuert wird;‌ so bleiben Timings deterministisch.‌ Passende Update‑Raten (z.B. 400-600 Hz‍ PWM oder DShot300/600),‍ korrektes Timing und saubere‌ Masseführung‍ verhindern‌ Desyncs. Telemetriefähige​ ESCs liefern ​ Strom‑, Temperatur‑ und Drehzahldaten, die​ für Leistungsregelung und Logging ⁤genutzt werden können.

  • ESC‑Dimensionierung: ⁢ 20-30 % Stromreserve über der Motor‑Maximalaufnahme einplanen.
  • Protokollwahl: DShot ⁤bevorzugt (kein Kalibrierbedarf, CRC); ansonsten⁢ 400-600 ⁤Hz PWM.
  • Signalquelle: ⁣Hardware‑PWM ⁤via PCA9685 oder​ MCU; Software‑PWM unter Linux vermeiden.
  • Kalibrierung & Timing: Endpunkte, ‍Motor‑Timing und Demag‑Einstellungen für sanften Anlauf.
  • Spitzenschutz: Regenerative Bremse kann Spannungsspitzen erzeugen; TVS/Anti‑spark vorsehen.
  • Thermik: Luftstrom über ⁤ESCs sicherstellen; ggf. Wärmeleitpads auf Carbonarme.

ArduPilot⁢ auf⁣ Raspberry Pi

ArduPilot lässt sich entweder nativ auf einem raspberry Pi betreiben oder als Companion-Computer ⁤an ⁣einem ‍separaten Autopiloten einsetzen.Der native Ansatz über Sensor-hats wie Navio2 bringt IMU, Barometer und PWM-Ausgänge direkt auf das​ Board; für deterministisches Timing empfiehlt sich ein PREEMPT_RT-Kernel. Im‍ Companion-Modus wird per ​ MAVLink ⁤mit Pixhawk-Hardware‌ kommuniziert, während Planung ​und Tuning über QGroundControl ⁢ oder Mission Planner erfolgen.

  • Rechner: Raspberry Pi 4/5, 64‑Bit OS (Lite bevorzugt)
  • Sensorik: ⁢IMU/Baro (HAT) oder externer Autopilot
  • Navigation: GPS +‌ Kompass, korrekt entstört
  • Energie: ⁣ Power-Modul ‍mit Spannungs-/Strommessung
  • Antrieb: ESCs/Motoren passend zur ⁤Zelle
  • Verbindung: Telemetrie (Wi‑Fi/UDP, 433/915 MHz) und⁤ RC-Empfänger
Setup Modus Erforderlich Stärken
Navio2 ‍auf Pi Native RT-Kernel, GPS/Baro Kompakt, flexibel
Pixhawk + Pi companion MAVLink (UART/UDP) Robuste Sensorik
SITL auf Pi Simulation Keine Flughardware Schnelle ‌Tests

Die Einrichtung umfasst‍ das⁢ Aktivieren von I2C/SPI/UART, einen systemd-Dienst für ⁣ArduCopter/ArduPlane ​sowie ​die Telemetrie-Anbindung. Typische⁤ Startparameter definieren​ serielle Ports, Baudraten und ‌einen UDP-Endpunkt ⁢für​ Bodenstationen; für ‍zuverlässigen Betrieb ‍bewähren sich⁤ CPU-Governor performance, isolierte Kerne und logfreundliche Schreibparameter. Kalibrierung (ACCEL/COMPASS/RC),Failsafes und akkurate Frame-/ESC-einstellungen sind Pflicht; Logfiles unterstützen ⁢ PID-Feinschliff,Vibrationsanalyse und Energie-Monitoring.

  • Kernel ⁣& Leistung: ⁣PREEMPT_RT, Governor „performance”, moderates Log-Rate-Limit
  • Schnittstellen: ⁣ /dev/serial0 für⁣ Telemetrie;⁢ I2C/SPI in raspi-config aktiv
  • Startdienst: arducopter -A udp:192.168.1.50:14550 -C /dev/serial0:57600
  • Telemetrie: UDP/TCP⁢ zu QGroundControl/Mission Planner; 57600/115200 ⁣Baud gängig
  • Kalibrierung: ​ ACCEL, COMPASS, ⁢RC, Battery Monitor mit korrekten⁢ Werten
  • Sicherheit: ⁢BAT_FS, GCS_FAILSAFE, RTL/LAUNCH-Optionen je⁢ nach Mission

PID-Tuning und Flugstabilität

Stabilität entsteht aus präziser Rückkopplung: Die Fluglage wird über‌ IMU‑Sensordaten (Gyro/Accel) erfasst,‌ per Sensorfusion​ (z. B. Komplementär‑ ⁢oder Kalman‑filter)⁣ geglättet⁣ und ⁤in einem PID‑Regelkreis mit‌ dem Sollwert ‍verglichen. Der Proportionalanteil (P) dämpft Abweichungen ⁤unmittelbar, der ​ Integralanteil (I) ‍kompensiert⁤ dauerhafte Bias (Schwerpunkt‑/Trimmfehler), der Differentialanteil (D) bremst schnelle Änderungen ⁢und ‍unterdrückt Oszillation. Auf einem Raspberry Pi zählt eine konsistente Loop‑Rate (ca.​ 500-1000 Hz) ⁢mit geringer Latenz: IMU über‍ SPI, hohe ‍Prozesspriorität, monotone Zeitbasis, ⁤Motoransteuerung mit 2-4 kHz​ Update. Vibrationen werden durch Notch‑ und Lowpass‑Filter entschärft;‌ der D‑Term erhält die stärkste Filterung. ⁤ Setpoint‑Dämpfung und Anti‑Windup stabilisieren aggressive Manöver und verhindern I‑Sättigung.

Regleranteil Wirkung Zuviel /‍ Zuwenig
P direkte Korrektur Zittern / schwammig
I Fehleraufsummierung Pumpen‌ / Drift
D Änderungsbremse Rauschen/Hitze / Überschwingen
FF Setpoint‑Durchgriff ruckelig / verzögert
  • Saubere Sensorik: ‍Propeller auswuchten,Flight‑Controller weich lagern,IMU per ‌SPI mit hoher Abtastrate; Gyro‑Noise durch Notch-/Lowpass‑Filter​ und starren Rahmen minimieren.
  • Deterministischer‍ Regelkreis: RT‑Priorität, isolierter CPU‑Kern,‌ monotone taktquelle; ⁣PID‑Loop 500-1000 Hz, Motor‑Update 2-4 kHz.
  • Konservative Startwerte: P moderat, D niedrig,‍ I ausreichend für Schwebeflug; Anpassungen in​ 5-10%‑Schritten mit⁣ Temperatur‑⁢ und‌ Sättigungsprüfung.
  • Validierung: ⁤Loggen von Gyro, Motorsignal,⁣ Setpoint; Bewertung von Überschwingen (<10%),⁤ Einschwingzeit ⁤und Motorsättigung; Anti‑Windup‌ bei anhaltender Sättigung aktiv.
  • Sicherheit: Prop‑Guards, Tether, niedrige ‍Spannung/kleine Props ‍für frühe Tests; Notabschaltung verifizieren.

Ein robuster ‍Workflow beginnt mit Filter‑⁢ und ‌Loop‑Konfiguration, gefolgt von P‑Anhebung bis kurz vor sichtbarem Zittern, anschließender‌ D‑Erhöhung zur Reduktion ⁤von Überschwingen und I‑Feinabstimmung gegen langsame ‌Drift. ​Bei​ Manövern mit⁤ steilen Setpoints sorgt Feedforward für knackige ⁢Reaktion ohne überhöhten P‑bedarf; harte⁢ Rucke werden mit Setpoint‑Dämpfung geglättet.Stabilität zeigt ​sich in ruhigen Motorgeräuschen, moderaten Temperaturen, reproduzierbaren log‑Kurven und ​geringer latenz in der Kommandokette ‌vom Raspberry Pi ​zur Motorregelung.⁣ Treten Oszillationen in bestimmten Drehzahlbändern auf, hilft ein schmaler Notch auf der​ entsprechenden ⁢Frequenz,‌ während die D‑Filterung so leicht wie möglich ⁤gehalten‍ wird, ​um Phasenverzug gering ⁤zu halten.

Telemetrie, Latenz und funk

Telemetrie bildet das Nervensystem ⁢zwischen Flugsteuerung und Bodenstation:⁤ Ein Raspberry Pi⁢ kann als ⁣ MAVLink-Bridge die ‌FCU‍ über UART ⁤anbinden und die Daten via ⁢ UDP ‍über Wi‑Fi ⁤oder LTE weiterreichen, parallel lokal protokollieren und Zustände verdichten. Aussagekräftige Timestamps, konstante Heartbeat-Signale und wohldefinierte Nachrichtenraten senken Jitter und verhindern Pufferüberläufe.⁢ Sicherheitsrelevant sind MAVLink2-Signing, Link-Monitoring sowie ‍eventbasierte Meldungen bei ​Zustandswechseln,‌ während bandintensive Rohdaten (z. B. HIGHRES_IMU) lokal gehalten ‌oder stark komprimiert werden.

  • HEARTBEAT: 1 Hz
  • ATTITUDE: 20-50 Hz
  • GPS_RAW_INT: 5-10 Hz
  • BATTERY_STATUS: 1-2‌ Hz
  • RC_CHANNELS/OVERRIDE: 10-20 ‍Hz
  • HIGHRES_IMU: 50-100 Hz (lokal/Log)
  • STATUSTEXT/EVENT: bei‌ Änderung
Linktyp Band Netto-Rate Einweg-Latenz Reichweite Besonderheit
wi‑Fi 802.11ac 5 GHz 50-200 Mbit/s 5-20 ms 50-300 m LoS hohe ⁤Bandbreite, störanfällig
Wi‑Fi 802.11n 2,4 GHz 10-50 Mbit/s 10-30 ms 100-500 ⁣m los Bessere Durchdringung
SiK-Telemetrie 868/915 MHz 32-250 kbit/s 40-120 ms 1-5 km Robuste FEC, geringe Rate
LoRa 868/915 ‌MHz 0,3-37 kbit/s 150-500 ms 2-15 km Extrem robust, sehr hohe Latenz
LTE/4G Mobilfunk 5-50 mbit/s 30-100‌ ms Weiträumig NAT/VPN‌ erforderlich

Latenz bestimmt die Steuerpräzision: Entscheidend ist das ‌Ende-zu-Ende-Budget​ vom FCU-Zeitstempel bis zur Bestätigung ​am Boden und zurück.Kommandopfad ⁢ und Telemetrie/Video profitieren von‍ getrennten Queues und priorisierten‍ Klassen, ⁢um jitter zu ⁤minimieren. Eine robuste Funkplanung (Bandwahl, Kanalbreite,⁢ Antennendiversität)⁢ senkt Paketverluste; konsistente Zeitsynchronisation (PTP/NTP)⁢ ermöglicht saubere Log-Korrelation und schnelle ⁢Diagnosen.Fallback-Strategien zwischen Wi‑Fi ⁤und‌ LTE halten die ​Verbindung stabil,‌ während dynamische Ratenbegrenzung Überlast verhindert.

  • Transport: ‍UDP für telemetrie, TCP‌ nur für​ zuverlässige Bulk-Daten
  • QoS:⁤ WMM/EDCA, DSCP-Markierung, Priorisierung⁤ von⁢ RC/MAVLink
  • Funk: 20 MHz Kanalbreite, ‍feste MCS, Power-Save off, getrennte Bänder ‌zu RC
  • fehlertoleranz: Moderate FEC/ARQ, kleine Pakete, kurze Timeouts
  • System: CPU-Affinität, IRQ-Balancing, Ringpuffer-tuning⁣ auf dem​ Raspberry Pi
  • Redundanz: Automatisches​ Handover Wi‑Fi ↔ LTE, Health-Checks, Heartbeat-Watchdog

Welche Komponenten ⁢werden benötigt?

Benötigt‍ werden Raspberry‍ Pi,⁢ Brushless-Motoren mit ESCs, Propeller und⁢ Rahmen, eine ⁢IMU,⁢ optional GPS/Barometer,⁤ ein LiPo mit BEC ​oder PDB, Funkanbindung per WLAN, RC oder Telemetrie sowie Schrauben, Dämpfer, Kabel und ‍bei Bedarf eine Kamera.

Wie übernimmt ‍der Raspberry Pi die Flugsteuerung?

Der Raspberry Pi verarbeitet IMU- und ggf.⁢ GPS-Daten,berechnet Stellgrößen und ‍gibt sie an Antriebe oder Flugcontroller. Über PWM/DSHOT oder MAVLink werden Befehle übertragen. Eingaben kommen via RC, Gamepad‍ oder Netzwerk; telemetrie ​berichtet Zustände.

Welche Software eignet⁢ sich für​ Entwicklung und Kontrolle?

Bewährte Software umfasst Raspberry Pi OS, ArduPilot ⁣oder‍ PX4 (etwa ⁣mit Navio2-HAT), dazu MAVLink, mavproxy oder QGroundControl.⁤ Für eigene Logik ‌eignen​ sich‍ Python, ROS 2 und MAVSDK/DroneKit. logging, Kalibrier-Tools und ⁣OTA-Updates erleichtern den Betrieb.

Wie lässt sich eine sichere Stromversorgung und​ Verkabelung erreichen?

Eine PDB oder ein BEC ⁤versorgt den Pi stabil mit 5 V, während der LiPo ‌Motoren‍ speist. Ausreichende Kabelquerschnitte, Sicherungen, EMV-Filter und feste Steckverbindungen erhöhen⁢ Zuverlässigkeit. Propellerschutz, Kill‑Switch und Tests ohne Props ​minimieren Risiken.

Welche rechtlichen Vorgaben und​ Tests sind ⁢relevant?

Zu beachten sind EU-Drohnenregeln (Offene Kategorie, Gewichtsklassen), registrierung, eID/Kennung, Versicherung und Flugverbotszonen.​ Vor Erstflug: Kalibrierung,‍ Reichweiten- und failsafe-Tests, Logprüfung und mehrere kontrollierte Schwebeflugproben.

Leave a Reply

Your email address will not be published. Required fields are marked *

Post Navigation