劉偉男 郭英利 李媛媛


摘要:針對室內飛行器自主飛行無法采用衛星定位的問題,采用慣導測量單元、視覺攝像頭的組合導航方法,實現四旋翼對地面智能小車的檢測跟蹤與避障。本設計選用STM32F103c8t6芯片作為飛控核心,硬件有航態采集模塊、激光測距模塊、攝像頭模塊、超聲波測距模塊和以STM32F407vgt6芯片為核心的攝像頭數據計算模塊等。ICM20602芯片為四旋翼提供航姿數據,實現四旋翼的穩定飛行。攝像頭模塊為四旋翼提供導航數據,使四旋翼檢測到智能小車且定高飛行。系統增設STM32F407vgt6芯片處理攝像頭數據以確保攝像頭數據計算的同步性,通過超聲波測距模塊對障礙物進行檢測并傳輸距離數據給飛控,使四旋翼實現定高跟隨智能小車飛行,任務中對面積型障礙物實現避障。
關鍵詞:四旋翼;攝像頭;避障;自主飛行
1 系統硬件設計
飛控核心采用STM32F103c8t6芯片,由航態采集模塊、激光測距模塊、超聲波測距模塊、攝像頭模塊、攝像頭數據計算模塊組成,如圖1所示。
1.1 飛行控制模塊選擇
針對四旋翼飛行過程中需要極高的數據實時性,因此對芯片的時鐘頻率有較高的要求。本設計采用STM32F103c8t6處理器,最高工作頻率可達72MHz,內置有64KB Flash和20KB RAM。該芯片實時性高、功耗低,擁有豐富的外設,為二次開發用戶提供硬件接口。
1.2航態采集模塊選擇
本設計采用ICM20602模塊,該模塊通過3.3V-5.0V的電源供電,使用標準SPI通信協議實現與單片機的通信。芯片內置有AD轉換器,可輸出16位數據,具有優越的數據實時性和測量范圍可調等優點。
1.3 測距模塊選擇
在本設計中四旋翼實現定高飛行采用VL53L0X激光測距模塊,用US-100超聲波測距模塊實現對障礙物距離的檢測。VL53L0X具有封裝尺寸小、靈敏度高等特點,可測量真實距離范圍為0.02mm-2000mm。US-100可采用串口通信讀取距離數據,可測量真實距離范圍為2cm-200cm。
1.4機器視覺系統選擇
機器視覺系統為四旋翼提供導航參數是系統的重要組成部分,它由視覺攝像頭OV7670和數據計算芯片STM32F407vgt6組成。OV7670模塊具有體積小、工作電壓低、靈敏度高等優點。系統還增設由STM32F407vgt6芯片處理圖像數據,其擁有高達168MHz的工作頻率可以高速處理來自攝像頭的圖像數據,經過測試可以1s處理8幀的圖像。
2 系統軟件設計
2.1 飛控算法分析
分析四旋翼的飛行原理可知,飛控獲取四旋翼的姿態信息,經過控制器輸出不同占空比的PWM信號控制電機的轉速來控制四旋翼的姿態。利用ICM20602芯片讀取飛行姿態的原始數據,并將原始數據經計算轉換為歐拉角,通過采用串級PID控制器算法控制飛行姿態。實測角度與期望角度作差得到角度誤差,角度誤差輸入到角度控制器中控制誤差為0;角度誤差作為角速度控制器的輸入值計算角速度,期望的角速度與當前角速度作差得到角速度誤差,乘以角速度誤差系數k_p得到KP,將角速度誤差限幅后累加到KI中,前后兩次的角速度誤差的差值存儲到KD中,最后將KP、KI、KD三者相加并限幅后得到PID輸出。串級PID相比單級PID具有更優的穩定性,經過測試,證明該飛控算法滿足設計要求。
2.2 機器視覺攝像頭算法分析
本設計采用OV7670攝像頭識別小車位置信息,實現目標是讓四旋翼時刻處于小車的正上方。將攝像頭安裝在四旋翼底部中軸線中心的位置,并且裝有VL53L0X激光測距模塊。飛控通過讀取高度信息,經過油門控制器輸出油門值控制四旋翼的飛行高度,保證圖像數據不會因四旋翼飛行高度變化而受到影響。系統還增設一片STM32F407圖像處理芯片來保證圖像數據計算的實時性,攝像頭采集實時圖像得到小車的位置信息,圖像處理芯片對當前采集到的圖像信息進行判斷,把計算后得到的小車實際位置通過串口發送給飛控控制四旋翼飛行線路實現跟隨小車飛行。
測試場景由黑色小車和白色背景構成,圖像數據簡單且對比度明顯。在圖像數據計算時將一幀圖像轉換成“0”、“1”(0 為背景,1為小車)信息保存,然后提取小車中心以得到小車的位置。
本文設計的圖像識別算法分為3步:
(1)對一幀圖像進行中值濾波。將攝像頭采集的圖像通過中值濾波去除噪聲,防止噪聲干擾。
(2)提取圖像每一行變量為“1”的中心點。依次判斷每一行中每一個像素點是否為黑點(數據信息“1”),當遇到黑點時則統計黑點個數(設計數為Y),白點不予記錄。記錄黑點在該行的位置并與之前黑點的位置相加保存到X,X值是該行所有黑點位置的總和,用X/Y得到該行黑點的中心點,對中心點數據求均值,即將所有點值求和后除以行數。
(3)對比前后兩幀計算后的中心點位置差值,判斷當前四旋翼的位置并根據偏移量調整四旋翼的位置。圖像識別算法的流程圖如圖2所示。
經過測試,由于測試場景對比度高,可以準確的確定小車的位置。因為飛控處理能力有限,若增加圖像處理任務實時性差,容易導致四旋翼飛出攝像頭識別小車的范圍,添加了一片STM32F407圖像處理芯片后實現 1s處理5幀圖像,大大提高了實時性。
3 結論
本文提出一種基于機器視覺和雙控制芯片的自主飛行四旋翼的設計思路,在簡單背景與小車對比度大的情況下,證明圖像處理算法的可靠性。經測試證明四旋翼飛行穩定,跟隨小車飛行效果優秀,由于采用了雙處理器計算數據,極大程度上提高了四旋翼的實時性。
參考文獻:
[1]李文超.X70四旋翼飛行器建模與飛行控制研究:[D].南京:南京理工大學,2014
[2]章志誠.基于STM32嵌入式四旋翼飛行器控制系統設計[D].杭州:浙江工業大學,2014
[3]姜強,曾勇,劉強.四旋翼飛行器姿態航向參考系統設計與實現[J].控制工程,2013,20:167-169
基金項目:沈陽航空航天大學大學生創新創業訓練計劃項目資助