- Ein selbst entwickeltes FMCW-Synthetic-Aperture-Radar (SAR) wurde auf eine günstige 7-Zoll-FPV-Drohne montiert, um mit einer Flugplattform unter 1 kg aus der Luft HH/HV/VH/VV-Polarisationsbilder aufzunehmen.
- Wegen eines Radarbudgets von unter 500 EUR und des engen Rahmens wurde das Design auf FR4-PCBs, Komponenten im 6-GHz-Band, ein Zynq-7020-FPGA und kompakte dualpolarisierte Antennen verdichtet.
- Bei kurzer Distanz und einer langsamen Plattform ist FMCW gegenüber Pulsradar im Vorteil; mit 300 MHz RF-Bandbreite, 50-MHz-ADC, einer PRF im Bereich von 1 kHz und Zehntausenden Sweeps wurde eine Bildauflösung im Bereich von 0,3 m angestrebt.
- Nur mit nicht-RTK-GPS und IMU wurden die Bilder unscharf, doch mit PyTorch-basierter Minimum-Entropy-Autofokus-Verarbeitung und GPU-Backprojection wurden Feldoberflächen, Stromleitungen, Gebäude und Waldstrukturen deutlich klarer.
- Das finale System konnte in einer 948-g-Konfiguration inklusive Batterie bis mindestens 1,5 km abbilden; die Drohne kostete etwa 200 EUR, zwei Radar-PCBs etwa 600 EUR, hinzu kamen rund 10 Monate Freizeit nach Feierabend.
Ziele und Budgetgrenzen
- Aufbauend auf früheren Experimenten mit selbstgebautem bodengestütztem Radar und Synthetic-Aperture-Imaging war das Ziel, ein Radar auf eine Drohne zu setzen und SAR-Bilder aus der Luft zu erhalten.
- Frühere Arbeiten nutzten mittelgroße Drohnen wie die DJI S900 und RTK-GPS; das im Beispielpaper beschriebene Gesamtsystem kostete 15.000 £ und passte damit nicht zum privaten Budget.
- Da die Preise für kleine chinesische FPV-Drohnen zuletzt gefallen sind, lassen sich 5- bis 7-Zoll-Quadcopter-Kits heute ohne Batterie und Fernsteuerung für rund 100 EUR kaufen.
- Deshalb wurde das günstigste namenlose chinesische 7-Zoll-FPV-Kit zusammen mit einem kleinen GPS-und-Kompass-Modul gekauft, um mit dem Bau eines leichten SAR-Systems zu beginnen, das die Drohne tragen kann.
Grundprinzip von Synthetic-Aperture-Radar
- Ein Einkanalradar kann nur die Entfernung zu einem Ziel messen, dessen Winkel jedoch nicht direkt bestimmen.
- Werden mehrere Empfangskanäle linear angeordnet, unterscheidet sich je nach Zielwinkel die Weglänge zu jedem Empfänger, und aus dieser Phasendifferenz lässt sich der Winkel berechnen.
- Die Winkelauflösung einer Antenne wird grob durch
Δθ ≈ λ / Dbestimmt.- Um bei 6 GHz in 1 km Entfernung eine Auflösung von 1 m zu erreichen, ist eine Winkelauflösung von etwa 0,03° nötig.
- Dafür wäre eine Antenne von rund 100 m Größe erforderlich.
- Bewegt man statt einer großen Antenne ein einzelnes Radar und misst aus vielen Positionen, lässt sich bei statischer Szene derselbe Effekt wie mit einem großen Mehrkanalradar erzielen.
- Wenn ein Einkanalradar an einer Drohne während des Flugs misst, entsteht eine große synthetische Apertur, die eine hohe Winkelauflösung ermöglicht.
Auswahl der Radararchitektur
- Das Entwicklungsziel war, maximale Bildleistung in eine FPV-Drohne zu integrieren und das Radarbudget unter 500 EUR zu halten.
- Wegen des Budgets schieden verlustarme RF-Materialien aus; Elektronik und Antennen mussten vollständig auf verlustbehafteten FR4-PCBs umgesetzt werden.
- Der Drohnenrahmen war etwa 40 mm breit, der Abstand zwischen den Propellerspitzen quer über den Rahmen etwa 50 mm und die Länge etwa 170 mm, daher musste das Radar schmal und lang gebaut werden.
- Ein früheres selbstgebautes Pulsradar maß etwa 64 × 132 mm und war damit etwas zu breit; zudem war die Bandbreite wegen der ADC-Abtastrate auf etwa 100 MHz begrenzt, was nur etwa 1,5 m Distanzauflösung ergab.
- Ein FMCW-Radar kann gleichzeitig senden und empfangen, was Vorteile beim Signal-Rausch-Verhältnis bringt, und die Sweep-Länge kann auf mehrere hundert µs erhöht werden.
- Pulsradar wird vor allem für große Reichweiten von mehreren Kilometern benötigt, während FMCW bei kurzen Distanzen und langsamen Plattformen im Vorteil ist.
RF-Design und Polarisationsmessung
- Die RF-Struktur besteht aus einem FMCW-Radar mit dualpolarisierter Antenne.
- Eine PLL erzeugt den Sweep.
- Über einen variablen Dämpfer und einen Leistungsverstärker wird das Signal an die Sendeantenne weitergegeben.
- Ein Teil des Sendesignals wird in den Empfangsmischer eingekoppelt.
- Das Empfangssignal wird im LNA verstärkt, im Mischer in ein niederfrequentes IF-Signal umgewandelt und anschließend per ADC digitalisiert.
- Eine Sweep-Erzeugung auf Basis von DAC oder DDS könnte besser sein als eine PLL, doch die PLL wurde gewählt, weil sie günstiger ist und weniger Platz benötigt.
- Die RF-Frequenz wurde auf etwa 6 GHz festgelegt.
- Diese Frequenz liegt nahe der Obergrenze dessen, wofür viele günstige RF-Komponenten für den Consumer-Bereich verfügbar sind.
- Günstige Leistungsverstärker können etwa 30 dBm Ausgangsleistung liefern.
- Rauscharme Verstärker für den Empfang mit 1 bis 2 dB Rauschmaß sind preiswert erhältlich.
- Der Empfänger nutzt eine Direktumsetzungsarchitektur ohne Image Rejection.
- Rauschen ober- und unterhalb der Sendefrequenz wird auf dieselbe Ausgangsfrequenz umgesetzt, wodurch der Rauschboden um 3 dB steigt.
- Ein IQ-Sampling-Empfänger würde zwei Mischer und zwei ADCs benötigen; gemessen an Kosten und PCB-Fläche wurde das als wenig lohnend bewertet.
- Polarisationsschalter wählen bei Senden und Empfangen jeweils H oder V, sodass die vier Kombinationen HH, HV, VH, VV gemessen werden können.
- Glatte Ziele reflektieren häufig bei gleicher Polarisation stärker.
- Wälder und Vegetation können wegen interner Mehrfachreflexionen höhere kreuzpolarisierte HV/VH-Anteile aufweisen als Straßen und nackter Boden.
- Mit zwei Empfängern ließen sich H und V gleichzeitig empfangen, doch aus Kosten- und Platzgründen fiel die Wahl auf einen einzelnen Empfänger mit Schaltstruktur.
TX-RX-Leckage und Link-Budget
- Bei FMCW finden Senden und Empfangen gleichzeitig statt, daher kann TX-RX-Leckage den Empfänger in Sättigung treiben.
- Der Empfänger muss empfindlich genug sein, um den thermischen Rauschboden von
-174 dBm/Hzzu erfassen, während die Sättigungsgrenze am LNA-Eingang typischerweise bei etwa-20 dBmliegt. - Bei einer Sendeleistung von
+30 dBmsind zur Vermeidung von Empfängersättigung mehr als 50 dB Isolation zwischen Sender und Empfänger erforderlich. - Wenn die Isolation nicht ausreicht, kann die Sendeleistung über den variablen Dämpfer vor dem Leistungsverstärker reduziert werden.
- Das Link-Budget wurde auf Basis von Empfangsleistung, Bodenreflexion, Entfernung, Antennengewinn, Sendeleistung und Anzahl der Sweeps berechnet.
- Beispielparameter waren:
- Sendeleistung: 30 dBm
- Antennengewinn: 10 dBi
- Wellenlänge: 5,2 cm
- Pixelauflösung im Bild: 0,3 × 0,3 m
- Sweep-Länge: 200 µs
- Anzahl der Pulse pro Bild: 10.000
- Rauschmaß des Empfängers: 6 dB
- Grazing Angle: 30°
- Unter diesen Bedingungen war bis etwa 1 bis 2 km eine brauchbare Bildqualität zu erwarten; bei 2 km und 30° Grazing Angle wäre jedoch eine Flughöhe von 1 km nötig, was für eine Drohne eher optimistisch ist.
Anforderungen an PRF und ADC
- Die SAR-Bildgebung hängt von der Phaseninformation des Empfangssignals ab, daher darf die Phasendifferenz zwischen benachbarten Messungen 180° nicht überschreiten, um Aliasing zu vermeiden.
- Bei 6 GHz beträgt eine Viertelwellenlänge 12,5 mm; fliegt die Drohne mit 10 m/s, ist eine minimale PRF von etwa 800 Hz erforderlich.
- Da die vier Polarisationen zeitlich multiplexed werden, ergibt sich insgesamt eine Anforderung von
4 × 800 Hz = 3,2 kHz. - Damit bleiben pro Sweep maximal 312,5 µs; zieht man 20 bis 30 µs PLL-Lock-Zeit ab, ergibt sich eine maximale Sweep-Länge von rund 280 µs.
- Bei FMCW wird die IF-Frequenz durch Entfernung, RF-Bandbreite und Sweep-Länge bestimmt.
- Eine RF-Bandbreite von 300 MHz liefert eine Distanzauflösung von 0,5 m.
- Bei 2 km Maximalreichweite und 280 µs Sweep ergibt sich eine IF-Frequenz von etwa 14 MHz.
- Unter Berücksichtigung des Nyquist-Kriteriums und der Reserve für Anti-Aliasing-Filter war mindestens ein ADC mit etwa 35 MHz nötig; tatsächlich wurde 50 MHz Abtastrate gewählt.
FPGA und Speicherstruktur
- Aufgrund des strengen Timings bei der Sweeperzeugung und der Datenmenge war dies allein mit einem Mikrocontroller schwierig, daher wurde ein FPGA benötigt
- Das verwendete FPGA ist ein Zynq 7020, das bereits im vorherigen Pulsradar eingesetzt wurde
- FPGA-Fabric und Dual-Core-ARM-Prozessor befinden sich im selben Package
- Der übliche Marktpreis liegt bei etwa 150 EUR, über chinesische Vertriebswege war es jedoch günstiger zu bekommen
- Ein Nachteil ist die fehlende schnelle Anbindung auf der ARM-Seite
- SD-card- und EMMC-Schnittstellen liegen bei 25MB/s und damit unter der ADC-Datenrate
- Es gibt zwar 1Gbps Ethernet, dafür wäre aber ein zusätzlicher Computer wie ein Raspberry Pi nötig gewesen, was aus Platzgründen nicht möglich war
- Externes DDR3 lässt sich nur mit einem Modul bestücken und ist daher auf 1GB begrenzt, während eine komplette Messung mehrere GB umfassen kann
- Die Lösung war, auf der Seite der programmierbaren FPGA-Logik eine schnelle externe Kommunikationsschnittstelle zu implementieren
- Verwendet wurde der GPL3 SD-card/EMMC controller von ZipCPU, der bei den benötigten Geschwindigkeiten vor der Erprobung auf echter Hardware noch nicht validiert war, letztlich aber gut funktionierte
- Zusätzlich wurde ein FT600 USB3 bridge IC eingebaut, um eine Echtzeitverbindung mit dem PC zu ermöglichen; für den Drohnenbetrieb ist das nicht nötig, für Tests und andere Anwendungen aber nützlich
- Der radar timer-Block im FPGA schaltet interne und externe Signale für phasenstabile Messungen mit einer Genauigkeit von einzelnen Taktzyklen um
- Der decimating FIR filter hinter dem ADC kann die Decimation auf 1, 2 oder 4 einstellen
- Für Messungen auf große Distanz wird die Decimation deaktiviert, um die maximale IF-Bandbreite zu nutzen
- Für Messungen auf kurze Distanz kann die Decimation die zu speichernde Datenmenge reduzieren
PCB-Implementierung und Fertigungsprobleme
- Die Radar-PCB ist eine 6-layer PCB, bei der die Bauteile zur Größenreduktion dicht platziert wurden
- Da einseitige Bestückung günstiger ist, blieb die Unterseite bis auf einen SD-card-Steckverbinder zum Handlöten leer
- Die RF-Schaltung nimmt nur einen kleinen Teil der PCB ein, der Großteil des Platzes wird tatsächlich von digitaler Elektronik und Spannungsreglern belegt
- Das Radar akzeptiert einen 12~30V input und kann direkt an die Drohnenbatterie angeschlossen werden, sodass kein externer DC/DC-Regler nötig ist
- Die PCB misst 113×48mm, wobei die Breite so weit reduziert wurde, dass sie in die Drohne passt
- Wegen Platzmangels konnten nicht alle vier SMA-Steckverbinder untergebracht werden; auf der PCB wurden nur zwei TX-H/V-Ausgänge und ein RX-Eingang platziert
- Der RX-Polarisationsschalter wurde auf eine externe PCB ausgelagert
- JST-Steckverbinder werden für den RX-Polarisationsschalter, den seriellen Port des Flight Controllers und Reserveverbindungen verwendet
- Eines der bei Mouser bestellten Bauteile konnte nicht gekauft werden, weil der Lieferant den Verkauf an Privatpersonen untersagte
- Stattdessen wurde der pin-kompatible ältere und abgekündigte IC PE43204 beschafft
- Das ursprüngliche Bauteil war bis 6GHz spezifiziert, doch obwohl der PE43204 nur für 4GHz ausgelegt ist, blieb der Verlust bei 6GHz niedrig genug, um kein großes Problem zu verursachen
- Ein Fehler bestand darin, die SD-card-Pins versehentlich mit 1.8V I/O statt mit 3.3V zu verbinden
- Statt eine neue PCB zu bestellen, wurde eine kleine Interposer-PCB mit level shifter entworfen und auf den vorhandenen Footprint gelötet
- Details dazu sind separat im vorherigen Beitrag beschrieben
- Der Leistungsverstärker kann bei hohem Sendungs-Duty-Cycle heiß werden, daher wurde ein Kühlkörper aus einer Aluminium-PCB bestellt und unter die Radar-PCB geschraubt
- Er kostete $4 für fünf Stück und funktionierte gut
Drohnenelektronik und Positionsschätzung
- Der im Drohnenkit enthaltene Flight Controller ist ein Speedybee F405 V3
- Es handelt sich um einen günstigen Controller mit 1MB Flash
- Da der Preisunterschied nicht groß ist, wird ein Controller mit 2MB Flash als bessere Wahl angesehen
- Die wichtigsten Flugsoftwares für FPV-Drohnen sind Betaflight, Inav und ArduPilot
- Betaflight ist auf schnelles manuelles Fliegen ausgelegt und unterstützt keinen autonomen Flug
- Inav teilt viel Code mit Betaflight und unterstützt teilweise autonomen Flug
- ArduPilot bietet die am weitesten entwickelten Funktionen für autonomen Flug, ist aber schwieriger zu konfigurieren
- Für dieses Projekt wurde ArduPilot gewählt, und die Sensorfusion von IMU und GPS war nützlich, um die Positionsgenauigkeit zu verbessern
- Der Flight Controller kommuniziert über einen seriellen Port mit dem Radar
- Während autonomer Missionen kann das Radar ein- und ausgeschaltet werden
- Positionsinformationen können an das Radar übermittelt werden
- Für SAR-Imaging ist eine Positionsgenauigkeit im Bereich eines Bruchteils der Wellenlänge nötig, bei 6GHz also einige Zentimeter
- Kommerzielle SAR-Drohnen können mit RTK-GPS und einem bodengestützten Referenzempfänger etwa 1cm Positionsgenauigkeit erreichen, doch aus Kosten- und Größengründen wurde dies für diese Drohne als schwierig eingeschätzt
- Gewöhnliches GPS kann nur etwa 1m Genauigkeit bieten und dadurch Bildfehler verursachen, allerdings lässt sich mit Autofokus der Positionsfehler aus den Radardaten korrigieren
- Statt ein separates GPS und eine IMU nur für das Radar hinzuzufügen, werden die Positionsschätzwerte des Flugcomputers über eine serielle Schnittstelle an das Radar übertragen
- Für den Steuerlink wird ExpressLRS verwendet
- Dank der Mavlink-Unterstützung von ELRS können Fernsteuerung und Telemetrie über einen einzigen Funklink laufen
Antennendesign
- Bei SAR kann eine große Antennenstrahlbreite theoretisch zu besserer Auflösung beitragen, praktisch begrenzt der geringe Gewinn jedoch Signal-Rausch-Verhältnis und maximale Reichweite
- Im Link-Budget geht der Antennengewinn quadratisch ein; wird der Gewinn halbiert, vervierfacht sich die Zahl der benötigten Pulse für dasselbe SNR
- Bei Drohnen-SAR ist es wegen Sichtlinienbeschränkungen schwierig, lange Flugbahnen zu erzielen, und oft begrenzt die maximale Baseline-Länge die Auflösung
- Aufgrund der FMCW-Struktur müssen Sende- und Empfangsantenne getrennt werden, und für geringe TX-RX-Leckage ist Abstand zwischen beiden nötig, was das Platzproblem verschärft
- Die vorhandene selbstgebaute horn antenna war 100mm lang, und allein der coaxial-to-waveguide transition war 25mm lang, sodass sie nicht zu einer Drohne mit 50mm Abstand zwischen den Propellerspitzen passte
- Eine einfache patch antenna ist klein und erlaubt Dual-Polarisation, hat auf 1.6mm FR4 aber eine schmale Bandbreite, Frequenzverschiebungen durch Dielektrizitätsfehler und keinen besonders hohen Gewinn
- Die gewählte Struktur basiert auf einer in einer Veröffentlichung gesehenen dual-polarized slot-fed stacked patch antenna
- Der Patch wird über einen H-förmigen Slot und einen microstrip feed gespeist
- Zwei um 90° versetzte feed/slot-Strukturen realisieren die Doppelpolarisation
- Ein zweiter Patch wird über einer Luftschicht schwebend angeordnet, um eine größere Bandbreite als bei einem einzelnen Patch zu erreichen
- Für zusätzlichen Gewinn und geringere sidelobes wurde um den Patch herum eine horn-Struktur aus Blech ergänzt, wodurch eine stacked patch-fed horn antenna entstand
- Diese Antenne erfüllt gleichzeitig die Anforderungen an Doppelpolarisation, große Bandbreite, guten Gewinn, geringe Bauhöhe und niedrige Fertigungskosten
- Mit verlustarmem RF-Material statt FR4 ließe sich der Gewinn um 0.5~1.0dB steigern, bei Prototypstückzahlen wären die Kosten jedoch etwa 100-mal höher
- Zwischen den Antennen wurde eine kleine Wand mit einer Größe von 0.25×0.5 Wellenlängen eingefügt, um das TX-RX coupling zu verringern
- Die Antennenabmessungen und -leistung sind wie folgt
- Höhe ohne SMA: 18mm
- Höhe mit SMA: 28mm
- Patch-Substrat: 45×45mm
- horn aperture: 65×65mm
- Simulierte -3dB beamwidth: 50/60 Grad in 0/90-Grad-Richtung
- Simulierter peak gain: 10.0dB
- Nutzbare Bandbreite: etwa 4.5~6.2GHz
Mechanische Konstruktion und Gewicht
- Da im Rahmen kein Platz für das Radar war, wurde eine 3D-gedruckte Halterung entworfen, um die Radar-PCB unter dem Drohnenrahmen zu befestigen
- Es wurden auch Landebeine entworfen, damit das Radar den Boden nicht berührt
- Das Design wurde in Blender erstellt und funktioniert für einfache Bauteile ausreichend gut
- Ein wasserdichtes Gehäuse wurde noch nicht gebaut; stattdessen wurde zum Schutz Material auf die PCB aufgebracht, falls die Landebeine versagen
- Die Antennenplatine ist mit zwei Bolzen befestigt, sodass sich ihr Winkel einstellen lässt
- Die RX-Polarisationsschalter-PCB wurde nicht an der Halterung fixiert, sondern hängt frei, da das SMA-Kabel ausreichend steif ist
- Die Landebeine bestehen aus einem Carbonrohr mit 10 cm Durchmesser und 3D-gedruckten TPU-Kappen
- Das Radar wird über einen XT60-Splitter direkt aus dem Drohnenakku versorgt
- Das Gewicht ist wie folgt
- Drohne ohne Akku: 752g
- 6S 1300mAh LiPo: 196g
- 6S 2200mAh LiPo: 322g
- Gesamtsystem mit kleinem Akku: 948g
Bildentstehung und GPU-Verarbeitung
- Um die Radarmesswerte in Bilder umzuwandeln, wurde matched filtering verwendet
- Für jedes Bildpixel wird ein Referenzsignal erzeugt, das der Reflexion eines Ziels an dieser Position entspricht; anschließend wird das gemessene Signal mit dem komplex konjugierten Referenzsignal multipliziert und über alle Messungen aufsummiert
- Wenn das Messsignal zum Referenzsignal passt, richten sich die Phasen aus und die Antwort wird groß; passt es nicht, mitteln sich zufällige Phasenanteile heraus und die Antwort bleibt klein
- Der verwendete Algorithmus ist backprojection
- Er ist einfach und macht keine Näherungen oder Annahmen über die Fluggeometrie
- Der Rechenaufwand ist sehr hoch
- Ein 1km×1km-Bild mit 0,3m Auflösung und 10.000 Sweeps erfordert beispielsweise
111×10^9Backprojections - Bei Verwendung polarer Koordinaten bleibt die Winkelauflösung konstant und die Cross-Range-Auflösung wird in Radarnähe besser, sodass sich im Vergleich zu einem kartesischen Gitter die Pixelanzahl verringern lässt
- Auf modernen GPUs lässt sich diese Berechnung in weniger als einer Sekunde ausführen
- Ein einfacher CUDA-Kernel berechnet auf einer RTX 3090 Ti 220 Milliarden Backprojections pro Sekunde
- Da sich jedes Pixel unabhängig parallel berechnen lässt, eignet sich die Implementierung sehr gut für GPUs
Autofokus
- Allein mit der Positionsgenauigkeit von GPS und IMU ließen sich keine hochwertigen Bilder erzeugen, daher war ein Autofokus-Algorithmus nötig
- Der übliche Phase Gradient Autofocus ist einfach und schnell, funktionierte hier aber wegen des breiten Azimut-Beams und der langen Radar-Baseline nicht gut
- Ein früherer Backpropagation-Autofokus wurde mit PyTorch aktualisiert und verbessert
- Der Algorithmus funktioniert wie folgt
- Das Radarbild wird erzeugt
- Der Gradient der Eingangs-Velocity wird berechnet
- Die Learning Rate wird geclippt, damit Positionsänderungen einen vorab festgelegten Maximalwert nicht überschreiten
- Die Velocity wird mit einem Gradient-Descent-Optimizer aktualisiert
- Die direkte Verwendung von 3D-Positionen funktionierte nicht gut, da sich einzelne Positionen dabei tendenziell leicht in zufällige Richtungen verschoben; besser war es, Velocity zu verwenden und diese zu Positionen zu integrieren
- Es ist außerdem ein kleiner Regularisierungsterm enthalten, damit die optimierten Positionen nicht zu weit von den ursprünglichen Positionen abweichen
- Dieser Ansatz macht keine Annahmen über das Radarsystem, die Szene oder die Flugbahn, ist aber ohne GPU-basierte schnelle Bildentstehung zu langsam, weil das Bild mehrfach erzeugt werden muss
- Der Autofokus-Algorithmus ist auf Github veröffentlicht
Erste SAR-Messergebnisse
- Die Mission wurde im ArduPilot Mission Planner vorab konfiguriert
- Die Drohne fliegt die Wegpunkte automatisch ab
- Es wird ein ROI gesetzt, sodass die Antenne stets auf den interessierenden Bereich zeigt
- Über den digicam configure command werden die Radarmessungen gestartet
- Um den ROI relativ zur Antennenrichtung festzulegen, war ein Patch für die ArduPilot-Firmware nötig
- Das Standardverhalten richtet die Vorderseite der Drohne auf den ROI aus
- Der Patch ist als ArduPilot Github pull request verfügbar
- Die erste Szene war ein weites Feld; der Wald in Antennenrichtung war etwa 1,5km entfernt
- Die Drohne flog in 110m Höhe, über eine gerade Strecke von etwa 500m, mit 5m/s
- In der Radar-Konfiguration wurde nur VV-Polarisation verwendet, mit einer Sweep-Länge von 400µs, einer Bandbreite von 500MHz und einer PRF von 1kHz
- Die range-compressed raw data sehen nicht wie ein Bild aus
- Der breite Antennenstrahl erfasst bei jedem Sweep gleichzeitig Ziele aus vielen Winkeln
- Bei 0 Distanz ist starkes TX-RX leakage sichtbar
- In etwa 100m Entfernung erscheint die Bodenreflexion direkt unter der Drohne
- Reflexionen aus größerer Entfernung liegen in einzelnen Sweeps meist unter dem Rauschboden, aber bei der Bildentstehung verbessert die Integration vieler Sweeps das SNR
- Das SAR-Bild vor dem Autofokus ließ bereits Geländemerkmale erkennen, war aber noch unscharf
- Nach Anwendung von 30 Durchläufen minimum entropy gradient optimization autofocus verbesserte sich die Bildqualität deutlich
- Möglicherweise hätten auch 5 Durchläufe gereicht, aber mit mehr Iterationen wurde die Qualität noch leicht verbessert
- Jede Iteration erfordert die Berechnung des Forward-/Backward-Passes der Backprojection und dauert daher einige Minuten
- Bei Vergrößerung eines 300×300m-Ausschnitts wurden nach dem Autofokus Oberflächendetails des Feldes sichtbar, während das Bild davor verschwommen war
- Das Ergebnis von Phase Gradient Autofocus war dem Bild ohne Autofokus sehr ähnlich und funktionierte in diesem Fall daher nicht gut
Vollständige Polarisationsmessung
- An einem anderen Ort wurden auch Messungen mit allen vier Polarisationen HH, HV, VH, VV durchgeführt
- Die Drohne flog wie zuvor autonom auf einer linearen Bahn, während das Radar schnell zwischen den vier Zuständen des Polarisationsschalters umschaltete
- Die Konfiguration war wie folgt
- Sweep-Länge: 200µs
- PRF pro Polarisation: 715Hz
- Anzahl der Sweeps im Bild: 51.200
- Die übrigen Parameter waren identisch mit zuvor
- Die vier Polarisationsbilder waren sich sehr ähnlich, aber die kreuzpolarisierten HV/VH-Bilder waren im Allgemeinen schwächer und hatten geringere Amplitude als Reflexionen gleicher Polarisation
- Wenn unterschiedlichen Polarisationsbildern RGB-Kanäle zugewiesen werden, lassen sich die Polarisationsreflexionseigenschaften einzelner Ziele leichter erkennen
- Der Boden wirkt violett, da er VV und HH stärker reflektiert als Kreuzpolarisation
- Dieselbe Tendenz zeigt sich auch bei Gebäuden und Straßenlaternen am Straßenrand
- Der Wald reflektiert alle Polarisationen nahezu gleich stark und erscheint daher weiß
- Da weder das radiation pattern der Antenne noch die unterschiedlichen Verluste je nach Zustand des Polarisationsschalters kalibriert wurden, könnten einige der beobachteten Unterschiede auf die Hardware zurückgehen
- Für genauere Polarisationsmessungen ist eine calibration erforderlich
- Der Bereich mit den gruppierten Punkten nahe den SAR-Bildkoordinaten
(200, 500)m schien ein Garten mit kleinen Bäumen zu sein, der von einem metallischen Drahtzaun umgeben war - Zum Zeitpunkt der Messung lag etwas Schnee auf dem Boden
VideoSAR-Experimente
- Statt mit einer einzigen langen Baseline ein hochauflösendes Bild zu erzeugen, lässt sich aus einer langen Messung durch Synthese mehrerer Bilder mit kleiner Baseline ein Video erstellen
- Der Backprojection-Algorithmus erfordert keine gerade Flugbahn, daher wurde die Drohne auf einer achteckigen Route geflogen und die Antenne auf das Zentrum des Achtecks ausgerichtet
- Jedes Frame besteht aus 1024 radar sweep, wobei sich 512 Sweeps mit dem vorherigen Frame überlappen
- Da jedes Frame weniger Sweeps als das Gesamtbild enthält, ist das Rauschen höher und die Winkelauflösung geringer
- Das Video läuft mit etwa 10-facher Geschwindigkeit, verwendet alle vier Polarisationen und dieselbe Farbgebung wie die vorherigen polarimetrischen SAR-Bilder
- Auf jedes Frame wurde separat Autofokus angewendet; benachbarte Frames wurden nicht ausgerichtet, sodass das Bild gelegentlich zu wackeln oder zu springen scheint
- An den Ecken des Achtecks ist die Bildentstehung besonders schwierig, weil sowohl Along-Range- als auch Cross-Range-Position präzise aufgelöst werden müssen
- Natürliche Ziele wie Boden und Wald sehen von Frame zu Frame ähnlich aus, aber bei Brücken und Stromleitungen treten starke Reflexionen auf, wenn sie zum Radar in einem 90-Grad-Winkel stehen
- Der helle Punkt, der sich auf der Brücke zu bewegen scheint, ist ein glint des Geländers
- Wegen nicht übereinstimmender Antennenmuster je nach Polarisation kann dasselbe Ziel am Beam-Zentrum und am Rand leicht unterschiedlich gefärbt erscheinen
Flughöhe und Beobachtungsgeometrie
- Ohne Sondergenehmigung dürfen Drohnen bis zu einer Höhe von 120 m fliegen.
- Der typische SAR-Look-Angle liegt bei etwa 10 bis 50 Grad.
- Nähert sich der Look-Angle 90 Grad, also fast senkrecht nach unten, ist die reflektierte Leistung zwar hoch, aber die Radarentfernung zu benachbarten Positionen ist nahezu gleich, wodurch sich die Range Resolution verschlechtert.
- Bei niedrigem Look-Angle ist die Range Resolution gut, aber wegen des kleinen Grazing-Angles nimmt die zum Radar zurückkehrende reflektierte Leistung ab.
- Bei extrem niedrigem Look-Angle kann die reflektierte Leistung 10 bis 20 dB geringer sein als bei einem üblichen Look-Angle von etwa 45 Grad, wodurch sich die maximale Beobachtungsreichweite verringert.
- Bei einer Höhe von 120 m und einer Distanz von 2 km beträgt der Grazing-Angle nur 3,4 Grad.
- Bei diesem Winkel wirft ein 10 m hoher Baum einen Schatten von etwa 170 m, und Bodenreflexionen hinter hohen Objekten sind nicht sichtbar.
- Bei allen Messungen war Shadowing deutlich zu erkennen, und bei vollständigen Polarisationsmessungen waren mitunter nur die Spitzen entfernter Gebäude sichtbar.
Updates und Endergebnis
- Mit dem Update vom Oktober 2025 wurde die Bildverarbeitungssoftware stark verbessert, sodass Bilder in besserer Qualität erzeugt werden können.
- Details sind unter Synthetic aperture radar autofocus and calibration zusammengefasst.
- Die fertige SAR-Drohne kann bis mindestens 1,5 km Bilder erfassen, und bei Flügen in größerer Höhe dürfte auch eine noch größere Reichweite möglich sein.
- Das System wiegt inklusive Radar, Drohne und Batterie unter 1 kg.
- Es können die vier Polarisationen HH, HV, VH und VV aufgenommen werden.
- Gradient-basierter Minimum-Entropy-Autofocus konnte selbst nur mit nicht-RTK-GPS- und IMU-Daten bei breitem Antennenstrahl Bilder guter Qualität erzeugen.
- Kosten und Zeitaufwand waren wie folgt:
- Drohne: etwa 200 EUR
- 2 Radar-PCBs: etwa 600 EUR
- Bauzeit: etwa 10 Monate Freizeit nach Feierabend
- Die differentiable GPU image formation library ist unter Github unter der MIT-Lizenz veröffentlicht.
- Auch die Radarschaltpläne wurden veröffentlicht.
1 Kommentare
Meinungen auf Hacker News
Dass die Preise für FPV-Drohnen gefallen sind, scheint daran zu liegen, dass China enorme Stückzahlen an beide Seiten im Ukrainekrieg verkauft
Russland und die Ukraine verbrauchen jeweils ungefähr 100.000 Stück pro Monat, und da die meisten Komponenten aus China bezogen werden, entstehen Skaleneffekte
Ich habe kürzlich gelesen, dass die Ukraine viele Drohnen produziert und die Produktion weiter hochfährt, und dass sie auch per Glasfaser gesteuerte Drohnen einsetzt, um elektronischer Kriegsführung/Jamming auszuweichen
Aus DIY-Sicht ist die von Henrik umgesetzte Komplexität erstaunlich: Signalverarbeitung, Hardware, GPU-Beschleunigung und Algorithmus-Optimierung sind alle dabei
Ich denke, es wäre schön, wenn es in der HN-Community einen Preis für solche herausragenden Leistungen gäbe
Für einen Hobby-Entwickler ist das eine große Leistung
Das ist das erste Mal, dass ich eine tatsächliche Erklärung eines SAR-Algorithmus gesehen habe
Die SAR-Projekte, die ich bisher gesehen habe, sind über diesen Teil eher hinweggegangen
Ich frage mich, ob jemand weitere Materialien dazu gesehen hat, und will das verlinkte Paper lesen: https://topex.ucsd.edu/rs/sar_summary.pdf
Letztlich scheint man mit Autofokus (autofocusing) einen beträchtlichen Teil der Positionsprobleme umgehen zu können; auch das habe ich hier zum ersten Mal gesehen
Kapitel 3 und 4 des Dissertation-PDF erklären, wie die Mathematik funktioniert: https://github.com/stevesimmons/phd-thesis-radar-imaging
SAR = Synthetic Aperture Radar. Das Radar fliegt auf einer geraden Linie, und die scheinbare Rotation der Erdoberfläche erzeugt eine Dopplerverschiebung, wodurch eine hohe Querauflösung (cross-range resolution) erreicht wird
ISAR = Inverse Synthetic Aperture Radar. Das Radar steht still (z. B. am Boden), das Ziel (z. B. ein Flugzeug) bewegt sich, und die Relativbewegung beider erzeugt eine Zielrotation, wodurch ebenfalls über Dopplerverschiebung eine hohe Querauflösung erreicht wird
Persönlich fand ich es am einfachsten, es im Kontext einer gewöhnlichen Phased-Array-Antenne zu verstehen, aber wenn man das Prinzip noch nicht kennt, hilft das möglicherweise weniger
Ich habe schon oft SAR-Bilder aus deutlich teureren Systemen gesehen, die nicht so gut aussahen wie dieses
Die Ergebnisse hier sind wirklich beeindruckend
Genau deshalb lese ich Hacker News
Jeden Monat kommt ein neuer Beitrag, der mein Raketenabwehrsystem für den Vorort verbessert und dafür sorgt, dass der Hund des Nachbarn nie wieder auf meinen Rasen kackt
Es war immer schwierig, das Gelände der Nachbarschaft zu kartieren, damit die Rakete den richtigen Täter findet; jetzt kann man dafür einfach eine Drohne verwenden
Gemeint ist hier ein Abwehrsystem mit Raketen, nicht ein Abwehrsystem gegen Raketen. Das wäre ja absurd
Tactical and Strategic Missile Guidance, Seventh Edition https://www.amazon.com/Tactical-Strategic-Missile-Guidance-S...
Tactical missile warheads https://www.amazon.com/Tactical-Warheads-Progress-Astronauti...
Fundamentals of Astrodynamics https://www.amazon.com/Fundamentals-Astrodynamics-Second-Dov...
Weil sie weiß, wo sie nicht ist
Wir leben wirklich in einer erstaunlichen Welt
In der Tierkonditionierung ist bekanntlich unmittelbares Feedback wichtig
Wenn man eine 100-m-Antenne braucht: Könnte man nicht mehrere Drohnen koordinieren, um so etwas Ähnliches wie eine 100 m lange Parabelbahn zu erzeugen?
Ohne GPS-Interferenz könnte die Synchronisierung möglich sein, aber man müsste irgendwie die Rohsignalkomponenten zwischen allen Plattformen austauschen
In diesem Fall ist eine parabolische Anordnung überhaupt nicht nötig; man würde einfach die Phase jeder Einheit passend zur tatsächlichen Anordnung anpassen
Solche Ansätze werden untersucht und vor allem bei sehr niedrigen Frequenzen von 1–100 MHz in Betracht gezogen. In diesem Bereich sind die genannten Probleme deutlich einfacher, und um Richtwirkung zu erzielen, können Antennen bis in den Kilometerbereich nötig sein
Die Aussage „Ein Einkanal-Radar kann nur die Entfernung zum Ziel messen und nicht den Winkel des Ziels erkennen“ mag für diesen konkreten Anwendungsfall stimmen
Aber Parabolantennen und Schlitzhohlleiter-Aperturen gibt es schon sehr lange