四旋翼自主飞行器探测跟踪系统补充
2017年8月12日
摘 要
本設計以16位瑞薩單片機RX23T/R5F523T5ADFM作為控制核心stm32驅動飛行器的四個直流電機,利用角速度傳感器、加速度傳感器等各類傳感器組成飛行器飛行狀態檢測、控制模塊,采用超聲波傳感器檢測飛行高度,以C語言、卡爾曼濾波及PID算法實現控制軟件的編寫并根據題目要求進行了系統方案設計,分別完成了總體結構設計、硬件設計、軟件設計。最后,進行調試、驗證試飛,測試各項功能。
本系統從低成本、低功耗、高性能方面入手,完成了本次題目的硬件設計、制作、電路調試等,基本實現了本次比賽的題目要求。
關鍵詞:四旋翼飛行器;加速度傳感器;陀螺儀傳感器;跟蹤;攝像頭
一、系統方案
本系統主要由單片機控制模塊、飛行控制模塊、高度控制模塊、循跡模塊、圖像處理模塊、電源模塊組成。下面分別論證這幾個模塊的選擇。
1、主控制器件的論證與選擇
1.1控制器選用
控制器采用組委會提供的瑞薩RX23T/R5F523T5ADFM單片機作為控制器,負責控制四旋翼飛行的姿態、高度,循跡。瑞薩單片機性能優良,具有運算高速、穩定性強、自由度大等特點,非常方便快捷。
1.2控制系統方案選擇
方案一:采用在面包板上搭建簡易單片機系統
在面包板上搭建單片機系統可以方便的對硬件做隨時修改,也易于搭建,雖然系統連線較多,但是使得整個系統成為了一個整體。
方案二:自制單片機印刷電路板
自制印刷電路實現較為困難,實現周期長,此外也會花費較多的時間,影響整體設計進程。不宜采用該方案。
綜合以上兩種方案,選擇方案一。
2、飛行控制模塊的論證與選擇
方案一:用瑞薩RX23T/R5F523T5ADFM單片機激活飛控模塊
該芯片性能優良,可以非常方便的與飛控模塊通信,通過發送控制指令實現對飛行器的飛行控制。
方案二:使用控制器直接控制飛行器飛行
在瑞薩植入的程序里同時包含對四旋翼的控制算法、自啟動和自停止、圖像信息的處理、高度控制、懸停算法等程序。
本系統組結合本題相關要求,對模塊之間的協調和信號的傳輸處理情況的綜合考慮,認為方法一結構更加簡潔高效、分工明確,因此選擇方案二。
3 圖像感知模塊的論證與選擇
3.1 感知器件選用
方案一:采用紅外傳感器HC-SR501讀取地面信息
紅外傳感器HC-SR501讀取地表狀態數據后,通過單片機進行分析調整飛機飛行方向。紅外傳感器的優點是探測距離較長(約7米),但是它反應時間較慢(最快約0.3秒)。
方案二:采用攝像頭OV7725讀取地面信息。
OV7725可以獲得飽和度和分辨率都非常高的圖像,雖然需占用較多引腳資源,但是經過比較,實驗效果非常理想。
從對圖像處理的精度與速度考慮,本系統選擇方案二。
3.2 處理算法選用
方案一 :轉換成“0”“1” 鏡像到MCU RL78/G13的RAM中。
通過二值化轉換可以使處理速度大大加快,性能得到提升。
方案二:
直接讀OV7725得到的彩色圖像并對其處理,利用這種方式飛行器對顏色更加敏感準確,但是處理速度降低。
綜合考慮題目要求,我們認為顏色識別對題目要求的實現有一定幫助,因此綜合考慮處理速度和識別效果后,采用方案二。
1.5 高度控制模塊的論證與選擇
方案一:采用BMP180氣壓傳感器
測量當前位置的大氣壓并由單片機轉化為海拔高度,減去出發時的高度數值即可得到真實飛行高度。氣壓傳感器測量范圍廣(海拔9000米~-500米),但是誤差較大(分辨率為0.25米)。
方案二:采用US100超聲波傳感器
US100具有優秀的距離感知性能,同時又自帶溫度補償,識別區間為5cm—4.5m,近距離識別非常穩定。
由于本題要求四旋翼飛機在1m—1.5m的高度飛行,從精度及使用熟練度的方面考慮,本系統最終選擇方案二。
二、系統理論分析與計算
1、飛控算法的分析
由于此次課題中,四旋翼在室內低速飛行,故而可以忽略風力帶來的阻力以及空氣阻力。因而可大致建構四旋翼動力學模型:
X =(cosΨsinθcosΦ + sinΨsinΦ) U1/m Y =(sinΨsinθcosΦ–cosΨsinΦ) U1/m Z
=(cosΦcosθ) U1/m - g Φ =[lU2 +θΨ(Iy -Iz)]/Ix ? ? ?? ? ? ??? ??? ??? ? ? ?? ? ? ? θ =[lU3 +ΦΨ(Iz -Ix)]/Iy Ψ =[U4 +Φθ(Ix -Iy)]/Iz
其中ψ、θ、φ分別為四旋翼的偏航角、俯仰角、翻滾角;U1、U2、U3、U4 為四控制輸入量;l為旋翼中心到四旋翼質心的距離。
四旋翼微型飛行平臺呈十字形交叉,由4個獨立電機驅動螺旋槳組成,如圖所示。當飛行器工作時,平臺中心對角的螺旋槳轉向相同,相鄰的螺旋槳轉向相反。同時增加減小4個螺旋槳的速度,飛行器就垂直上下運動;相反的改變中心對角的螺旋槳的速度,可以產生滾動、俯仰等運動。
2、高度控制模塊的計算
高度開始采用了和角度一樣的雙環PID,但是調參過程中發現參數整定比較艱難,所以更改為參數較少的單環PID,也可以達到較好的效果。控制過程分為以下三個步驟。
(1)高度感知
高度感知采用US100模塊,安裝在飛行器的正下方,實時發送與地面的距離給控制器瑞薩RX23T/R5F523T5ADFM單片機。
(2)數據處理
各個數據均設為有符號數據。期望高度與當前高度的差值作為p控制的入口參數,乘以一定比例后為油門應當增加或減少的數值。油門平衡數值1500加上這個差值后就得到下一時刻為了回歸期望高度油門應當做出的調整。
(3)控制信號輸出
將第二步得到的數值發送給飛控模塊,提供油門值后飛行器即可完成高度控制。核心代碼如附錄所示。
3、圖像處理算法的分析
(1)圖像處理算法的原理主要利用腐蝕算法,在屏幕的中心畫一個十字,對準物體數秒后自動計算十字周圍的平均顏色數據,包括色相,明度,飽和度。然后利用腐蝕算法尋找腐蝕中心,再向四周尋找符合條件的點。
(2)找到符合標準的對象所處范圍后,自動輸出該物體的幾何中心,即x_hight ,,x_low , x_left , x_right,四個最邊界的點并計算出中心點坐標((x_hight + x_low)/2,(x_hight + x_low)/2)
(3)根據中心點坐標,瑞薩芯片發送控制信息給飛控模塊,控制飛行器做出對應反應。
4、PID的計算
角度PID算法很大程度上參考了APM(國外成熟開源飛控項目)的控制算法。它是采用的角度P和角速度PID的雙閉環PID算法。角度的誤差被作為期望輸入到角速度控制器中。
我們的控制算法利用了橫滾角俯仰角角度以及位移雙閉環PID控制。相比傳統的單環PID來說性能有了極大的提升,在程序的編寫中我們也曾經調試過傳統的PID控制算法,即便參數經過了精心調整和雙環控制算法相比在控制效果上的差距依舊很大。無論是懸停的穩定性,收到指令的反應速度上都是后者的效果明顯優于前者。
三、電路與程序設計
1、電路的設計
(1)系統總體框圖
系統總體框圖如圖1所示,四旋翼自主飛行器系統可分為微控制系統模塊、飛行姿態檢測模塊、電機驅動模塊、高度控制模塊、自動循跡模塊、電源模塊。
微控制系統模塊采用16位瑞薩單片機RX23T/R5F523T5ADFM作為控制核心,該控制器是一款功能強大的處理器,運算速度快、擁有豐富的片上資源,非常適用于處理較復雜的任務。
飛行姿態檢測模塊采用MPU6050芯片,此芯片集成了3軸MEMS陀螺儀,3軸MEMS加速度計,并通過三個16位的ADC將其測量到的模擬量轉化為可輸出且能夠被單片機直接處理的數字量,從而減輕了單片機的工作量。
電機驅動模塊利用瑞薩單片機直接調用飛控模塊實現控制。
高度控制模塊利用US100來檢測距離從而控制飛行器的高度。
電源模塊采用11.1伏的3S LIPO鋰電池供電。系統框圖如圖1所示。
圖1 系統總體框圖
(2)四旋翼控制子系統框圖
1、四旋翼控制子系統框圖
圖2 四旋翼控制子系統框圖
(3)電源
電源由變壓部分、濾波部分、穩壓部分組成。為整個系統提供 5V或者 12V電壓,確保電路的正常穩定工作。這部分電路比較簡單,都采用三端穩壓管實現,故不作詳述。
2、程序的設計
(1)程序功能描述與設計思路
1、程序功能描述
根據題目要求軟件部分主要實現四軸飛行器的飛行控制、一鍵起飛、圖像處理。
1)飛行控制:保證飛行器穩定飛行,接收控制器發出的指令。
2)一鍵起飛:控制器通過按鍵檢測觸發不同程序控制飛行控制模塊完成不同功能。
3)圖像處理:獲得黑色圓圈、小車的幾何中心坐標。
2、程序設計思路
飛行控制采用角度P和位移x的雙閉環PID算法。相比傳統的單環PID來說性能有了極大的提升,在程序的編寫中我們也曾經調試過傳統的PID控制算法,即便參數經過了精心調整,但是和雙環控制算法相比無論是懸停的穩定性,收到指令的反應速度上都是后者的效果明顯優于前者。
一鍵起飛的實現思路主要是控制器循環做按鍵檢測,當對應按鍵按下時實現不同的功能。
圖像處理利用了腐蝕算法,在攝像頭讀入一幀數據后,首先尋找一個腐蝕中心,再從腐蝕中心向外尋找符合要求的點,最后記錄下識別到的沿x、y軸四個最邊緣的點,求平均值得到中心點坐標。
(2)程序流程圖
1、主程序流程圖
N
Y圖3主程序流程圖
2、高度控制子程序流程圖
圖4高度控制子程序流程圖
3、XXX子程序流程圖
圖4高度控制子程序流程圖
4、XXX子程序流程圖
四、測試方案與測試結果
1、測試方案
(1)硬件測試
(2)軟件仿真測試
(3)硬件軟件聯調
2、測試條件與儀器
測試條件:檢查多次,仿真電路和硬件電路必須與系統原理圖完全相同,并且檢查無誤,硬件電路保證無虛焊。
測試儀器:高精度的數字毫伏表,模擬示波器,數字示波器,數字萬用表,指針式萬用表。
3、測試結果及分析
(1)測試結果(數據)
2V檔信號測試結果好下表所示: (單位/V)
信號值 0.2050 0.2100 0.2045 0.4026 1.007 1.542 1.669 1.999
顯示 0.2051 0.2100 0.2044 0.4026 1.006 1.542 1.669 1.999
(2)測試分析與結論
根據上述測試數據,XXXXXXXXXXXXXXXXXXXXXXXXXXXXX,由此可以得出以下結論:
1、
2、
3、
綜上所述,本設計達到設計要求。
五、參考文獻
[1] 譚浩強.C語言程序設計[M].北京:清華大學出版社,2012
附錄1:電路原理圖
四軸飛行器電路原理圖
Mpu6050
附錄2:源程序
格式說明:《設計報告》為A4紙張6頁以內,首頁為300字內中文摘要,正文小四號宋體,行距固定為22磅,不得加頁眉頁腳。每頁右下端注明頁碼。單頁打印。
高度控制函數源程序:
uint16_t ALT_ctrl(int16_t ex_height) {static float h_kp = 0.8 ;static int16_t err_height , add_thr ;uint16_t out_thr ;err_height = ex_height - (OF_ALT2 - 12) ;add_thr = (h_kp * err_height) * 5.2 ;out_thr = (uint16_t) (1500 + add_thr) ;return out_thr = limit(out_thr , min_thr , max_thr) ; }總結
以上是生活随笔為你收集整理的四旋翼自主飞行器探测跟踪系统补充的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BUUCTF [GYCTF2020] B
- 下一篇: Mapbox实现自定义经纬网及标注