“詳細(xì)介紹了 SAR 無人機的結(jié)構(gòu)設(shè)計及成像原理。”
結(jié)構(gòu)設(shè)計
Blender中的無人機模型
無人機需要一些機械部件來將雷達(dá)固定在機身上。飛行控制器安裝在機身內(nèi)部,但內(nèi)部沒有足夠空間容納雷達(dá),因此我設(shè)計了一個3D打印支架,將雷達(dá)PCB安裝在無人機機身下方。這種安裝位置還需要配備起落架,以防止無人機降落時直接壓在雷達(dá)上。由于我不熟悉任何機械CAD軟件,我使用Blender完成了這個設(shè)計。對于這些簡單部件而言,Blender完全能夠勝任。
無人機下方搭載雷達(dá)
雷達(dá)支架將雷達(dá)PCB固定在無人機機身上。為它配備某種防水防塵外殼會更好,但目前尚未完成。我在PCB上方覆蓋了一些材料,以防起落架失效時保護(hù)電路板。
雷達(dá)支架通過四顆螺絲與無人機連接。無人機無線電控制器的天線可見于左下方。螺旋槳采用可折疊設(shè)計,這種設(shè)計顯著提升了便攜性,折疊后整機可裝入背包攜帶。
接收器極化開關(guān) PCB
天線板通過兩顆可調(diào)節(jié)角度的螺栓固定。飛行控制器的串口連接至其中一個JST接頭上,另一個未使用的JST接頭目前僅用膠帶臨時固定在原位。
發(fā)射端的極化切換開關(guān)和兩個SMA接口集成在主電路板上,而接收端的極化切換開關(guān)因空間限制被單獨放置于另一塊電路板。雖然雷達(dá)支架上預(yù)留了安裝孔,但由于SMA線材硬度較高,最終選擇直接懸空固定該電路板。極化切換開關(guān)通過另一組JST連接器與雷達(dá)電路板相連。
帶起落架的無人機
起落架采用直徑10厘米的碳纖維管制作,末端配有3D打印的TPU材質(zhì)端蓋。雖然更小直徑的管材可能也適用,但當(dāng)前選用的碳管剛度極佳,在著陸過載時其他結(jié)構(gòu)件會先于它們發(fā)生損壞。
雷達(dá)系統(tǒng)直接由無人機電池供電。通過XT60分線器將飛行控制器和雷達(dá)并聯(lián)接入同一電池組。
無人機在廚房天平上保持平衡 無人機空載(不含電池)重量僅為752克(1.66磅)。配備兩塊六芯鋰聚合物電池,其中容量較小的1300毫安時電池重196克,容量較大的2200毫安時電池重322克。使用小容量電池時,整套系統(tǒng)總重僅948克。
雷達(dá)成像原理
雷達(dá)通過測量目標(biāo)的距離與相位信息進(jìn)行成像。為將這些測量值轉(zhuǎn)換為雷達(dá)圖像,可采用匹配濾波技術(shù):針對圖像中的每個像素點,生成該位置目標(biāo)反射的參考信號;將測量信號與參考信號的復(fù)共軛逐次相乘,并對所有測量結(jié)果進(jìn)行累加。當(dāng)測量信號與參考信號高度匹配時,相位一致性會使乘積顯著增強;若失配,則乘積表現(xiàn)為隨機相位的復(fù)數(shù),累加后相互抵消,最終呈現(xiàn)低響應(yīng)值。
成像過程可表述為:
其中:
P為圖像像素集合
N為雷達(dá)測量次數(shù)
Sn為傅里葉變換后的測量中頻信號sn
d(p,xn)表示第n次測量時雷達(dá)位置xn到像素點p的距離
H?為圖像中目標(biāo)位置參考函數(shù)的復(fù)共軛(即該位置目標(biāo)反射中頻信號的傅里葉變換))
此方法稱為反投影算法,其優(yōu)勢在于原理簡單且無需對飛行幾何路徑進(jìn)行近似假設(shè),但計算量極大。例如,1 千米 x 1 千米的圖像分辨率為 0.3 米,雷達(dá)掃描次數(shù)為 10,000 次,計算圖像需要
次反投影運算。這意味著一幅圖像需要超過 1000 億次的復(fù)指數(shù)和平方根計算,而圖像大小和掃描次數(shù)在實際應(yīng)用中可能更大。有一些巧妙的算法可以用來加快計算速度,但它們通常都是近似值,或者只適用于線性飛行軌跡。使用極坐標(biāo)而非笛卡爾坐標(biāo)是一種簡便易行的改進(jìn)方法,由于角度分辨率不變,圖像中需要的像素較少,而在靠近雷達(dá)的地方,跨距分辨率較高。極坐標(biāo)圖像隨后可插值到笛卡爾網(wǎng)格。
__global__voidbackprojection_polar_2d_kernel( const complex64_t* data, constfloat* pos, complex64_t* img, intsweep_samples,intnsweeps,floatref_phase, floatdelta_r,floatr0,floatdr,floattheta0, floatdtheta,intNr,intNtheta,floatd0) { constintidx=blockIdx.x * blockDim.x + threadIdx.x; constintidtheta=idx % Ntheta; constintidr=idx / Ntheta; if(idr >= Nr || idtheta >= Ntheta) { return; } constfloatr=r0 + idr * dr; constfloattheta=theta0 + idtheta * dtheta; constfloatx=r * sqrtf(1.0f- theta*theta); constfloaty=r * theta; complex64_tpixel={0.0f,0.0f}; for(inti=0; i < nsweeps; i++) {? ? ? ??// Sweep reference position.? ? ? ??float?pos_x?=?pos[idbatch * nsweeps *?3?+ i *?3?+?0];? ? ? ??float?pos_y?=?pos[idbatch * nsweeps *?3?+ i *?3?+?1];? ? ? ??float?pos_z?=?pos[idbatch * nsweeps *?3?+ i *?3?+?2];? ? ? ??float?px?=?(x - pos_x);? ? ? ??float?py?=?(y - pos_y);? ? ? ??float?pz2?=?pos_z * pos_z;? ? ? ??// Calculate distance to the pixel.? ? ? ??float?drx?=?2.0f?* sqrtf(px * px + py * py + pz2) - d0;? ? ? ??float?sx?=?delta_r * d;? ? ? ??// Linear interpolation.? ? ? ??int?id0?=?sx;? ? ? ??int?id1?=?id0 +?1;? ? ? ??if?(id0 0?|| id1 >= sweep_samples) { continue; } complex64_ts0=data[i * sweep_samples + id0]; complex64_ts1=data[i * sweep_samples + id1]; floatinterp_idx=sx - id0; complex64_ts=(1.0f- interp_idx) * s0 + interp_idx * s1; floatref_sin, ref_cos; sincospif(ref_phase * d, &ref_sin, &ref_cos); complex64_tref={ref_cos, ref_sin}; pixel += s * ref; } img[idr * Ntheta + idtheta] = pixel;}若在數(shù)年前,如此龐大的計算量堪稱天方夜譚,但現(xiàn)代GPU技術(shù)已能在1秒內(nèi)完成運算。該問題尤其適合GPU并行計算架構(gòu)——每個像素的反投影運算均可獨立并行執(zhí)行。基于RTX 3090 Ti顯卡的基礎(chǔ)CUDA內(nèi)核即可實現(xiàn)每秒2200億次反投影運算(每次運算需執(zhí)行平方根與復(fù)指數(shù)運算,后者可通過正弦/余弦函數(shù)實現(xiàn))。考慮到當(dāng)前實現(xiàn)僅為未經(jīng)優(yōu)化的直接算法版本,具備CUDA開發(fā)經(jīng)驗的工程師完全能通過優(yōu)化手段進(jìn)一步提升性能,且無需引入任何近似計算或精度損失。
自動對焦
自動對焦框圖
GPS 和 IMU 的定位精度不足以形成高質(zhì)量的圖像。理想情況下,位置誤差應(yīng)精確到波長的幾分之一,但現(xiàn)有 GPS 的精度無法滿足要求。為了獲得高質(zhì)量的圖像,必須使用自動對焦算法,利用雷達(dá)數(shù)據(jù)信息對雷達(dá)圖像進(jìn)行對焦。
最常用的自動對焦算法是相位梯度自動對焦。這是一種簡單、快速的自動對焦算法,其工作原理是將未對焦的雷達(dá)圖像作為輸入,求解出一個相位矢量,與圖像的方位 FFT 相乘后得到一個對焦圖像。但是,由于方位波束較寬,雷達(dá)基線較長,導(dǎo)致聚焦誤差與空間有關(guān),因此在這種情況下效果不佳。
我優(yōu)化了之前的反向傳播自動對焦,使用 PyTorch 并做了一些改進(jìn)。這種自動對焦算法的工作原理是形成雷達(dá)圖像,計算輸入速度的梯度,并裁剪學(xué)習(xí)率,將最大位置變化限制在預(yù)定義值內(nèi)。然后使用梯度下降優(yōu)化器更新輸入速度。我發(fā)現(xiàn)使用三維位置的效果并不好,因為它往往會將每個位置向隨機方向推移。相反,使用速度并將其與位置進(jìn)行整合,似乎會產(chǎn)生更好的效果。我們還加入了一個小的正則化約束,引入正則化項最小化優(yōu)化位置與原始位置偏差,抑制過度修正。
根據(jù)最大位置變化調(diào)整學(xué)習(xí)率可以更容易地設(shè)置優(yōu)化器元參數(shù)。我們不直接設(shè)置學(xué)習(xí)率,而是預(yù)設(shè)最大位置變化動態(tài),并以此來設(shè)置學(xué)習(xí)率。
這是一種非常通用的自動對焦算法,對雷達(dá)系統(tǒng)、場景或飛行軌跡不做任何假設(shè)。其明顯的缺點是,它需要多次形成雷達(dá)圖像,使本已緩慢的圖像形成速度更慢。如果沒有 GPU 的快速圖像形成,這種方法就會因為速度太慢而無法發(fā)揮作用。
自動對焦算法可在 Github 上獲取:
https://github.com/Ttl/torchbp
原文轉(zhuǎn)載自 https://hforsten.com/homemade-polarimetric-synthetic-aperture-radar-drone.html,已進(jìn)行翻譯及校對優(yōu)化
注意:如果想第一時間收到 KiCad 內(nèi)容推送,請點擊下方的名片,按關(guān)注,再設(shè)為星標(biāo)。
常用合集匯總:
和 Dr Peter 一起學(xué) KiCad
KiCad 8 探秘合集
KiCad 使用經(jīng)驗分享
KiCad 設(shè)計項目(Made with KiCad)
常見問題與解決方法
KiCad 開發(fā)筆記
插件應(yīng)用
發(fā)布記錄
審核編輯 黃宇
-
無人機
+關(guān)注
關(guān)注
231文章
10841瀏覽量
186733 -
雷達(dá)系統(tǒng)
+關(guān)注
關(guān)注
6文章
258瀏覽量
29122
發(fā)布評論請先 登錄
科達(dá)嘉電感在無人機系統(tǒng)中的應(yīng)用
處理合成孔徑雷達(dá)圖像的極坐標(biāo)算法基礎(chǔ)
原理圖下載 高性價比無人機載合成孔徑雷達(dá)系統(tǒng)
無人機載合成孔徑雷達(dá)系統(tǒng)研制手記(二):電子設(shè)計及天線

無人機載合成孔徑雷達(dá)系統(tǒng)研制手記(一):設(shè)計原理

納雷科技發(fā)布新一代無人機高度計雷達(dá)UAM231
海外首款由激光雷達(dá)驅(qū)動的無人機發(fā)布

一些著名的微型SAR

DIY了一臺無人機,用全志T113芯片
激光雷達(dá)在無人機中的應(yīng)用實例
智能化升級:機載無人機攝像頭如何自動識別目標(biāo)?

揭秘!機載無人機攝像頭的黑科技:從偵察到打擊的全能之眼

無人機機載高光譜成像系統(tǒng)的應(yīng)用及優(yōu)勢

評論