競賽無人機搭積木式編程——以2022年TI電賽送貨無人機一等獎復(fù)現(xiàn)為例學(xué)習(xí)(7月B題)
????????在學(xué)習(xí)本教程前,請確保已經(jīng)學(xué)習(xí)了前4講中無人機相關(guān)坐標(biāo)系知識、基礎(chǔ)飛行控制函數(shù)、激光雷達(dá)SLAM定位條件下的室內(nèi)定點控制、自動飛行支持函數(shù)、導(dǎo)航控制函數(shù)等入門階段的先導(dǎo)教程。
????????同時用戶在做二次開發(fā)自定義的飛行任務(wù)時,可以參照第5講中2021年國賽植保無人機G題中的編程思路,了解子線程執(zhí)行過程幾組關(guān)鍵變量的用法與實際作用效果。
????????了解了上述自主飛行任務(wù)設(shè)計關(guān)鍵要點后,下面我們以2022年全國大學(xué)生電子設(shè)計競賽中B題送貨無人機中題目要求為例,編寫自動飛行任務(wù)函數(shù)完成比賽中的基礎(chǔ)部分+發(fā)揮部分+創(chuàng)新部分等所有賽題要求。



根據(jù)賽題要求,我們可以將設(shè)計的軟件部分拆解為以下三個部分:
機器視覺部分:需要識別底部目標(biāo)的顏色和形狀并通過SDK串口實現(xiàn)和飛控的數(shù)據(jù)交互;
飛控人機交互界面部分:按鍵、顯示屏配合實現(xiàn)目標(biāo)航點坐標(biāo)的錄入、學(xué)習(xí)到的目標(biāo)特征錄入、圓環(huán)的坐標(biāo)與角度信息錄入,將設(shè)置好的參數(shù)存儲在飛控EEPROM內(nèi);
無人機自動飛行任務(wù)設(shè)計:完成自動起飛、根據(jù)現(xiàn)場錄入或者學(xué)習(xí)到的航點目標(biāo)進(jìn)行作業(yè)(包括作業(yè)高度調(diào)整、自動投放/回收裝置、蜂鳴器報警提示等)、執(zhí)行完畢后自動返航。
2.1 機器視覺部分軟件的設(shè)計
????????底部目標(biāo)特征點的顏色為紅色和藍(lán)色,可以通過OPENMV機器視覺模組的尋找色塊函數(shù)find_blob()對底部目標(biāo)進(jìn)行識別,我們可以判斷識別到的色塊的密度參數(shù)即blob.density(),可以很方便的區(qū)分出矩形、圓形、三角形。


2.2 飛控人機交互界面軟件設(shè)計
????????依靠Tiva LaunchPad核心板上板載的兩個獨立按鍵SW1、SW2,同時配合OLED顯示屏實現(xiàn)對賽題中相關(guān)參數(shù)的進(jìn)行修改、存儲,新加功能需要兼容原來按鍵的翻頁切換的功能,就必須設(shè)置相應(yīng)的菜單界面配合按鍵的長按、短按響應(yīng)來予以實現(xiàn)。






TI電賽B題送貨無人機通過按鍵、菜單對坐標(biāo)、模板進(jìn)行設(shè)置
https://www.bilibili.com/video/BV1PB4y1t7y9/?vd_source=fa3e626a57e95e09ecf1b8f1627e58ac
2.3 無人機自動飛行任務(wù)的軟件設(shè)計
????????第一階段——自動起飛到航巡高度
????????uint8_t Auto_Takeoff(float target)//自動起飛到某一高度



第二階段——航點遍歷作業(yè)任務(wù)
????????void Deliver_UAV_Basic(void)
????????第一步將高度期望設(shè)置成第一作業(yè)高度150cm,水平位置期望為初始起飛時候的水平位置,并設(shè)置激光筆為持續(xù)閃爍,便于裁判判斷飛機機身中心在地面上的投影位置,起飛點上方懸停時間設(shè)置為5S。















?????????這里需要注意的是程序在此處有一段特殊處理部分為SLAM建圖復(fù)位指令,在之所以需要這么操作的原因是減小定位誤差,NC360競賽無人機平臺使用的是2D激光雷達(dá),理論上只適合平面運動機器人平臺的SLAM建圖,無人機在空中的線性運動為3維的,無人機在不同高度上,由于周圍環(huán)境的陳設(shè)布置變化會造成一定的定位誤差,通常在3~5cm以內(nèi),該誤差范圍能滿足無人機在競賽中的控制精度要求。對于不同高度空間環(huán)境變化較大的情況,可以采用本方案中的特殊處理形式,本特殊處理方式非必須,用戶可以自己二次開發(fā)過程中根據(jù)實際情況來決策是否選用,同時對于末端降落過程,依然可以利用底部視覺特征精準(zhǔn)對準(zhǔn)的方法,實現(xiàn)精準(zhǔn)降落。
????????針對創(chuàng)新+發(fā)揮部分的自動學(xué)習(xí)和穿越圓環(huán)部分內(nèi)容,大體過程和本例程類似,差別在于坐標(biāo)是通過現(xiàn)場識別到的模板特征錄入的,這個處理過程主要工作量在于OPENMV部分,整個飛行任務(wù)執(zhí)行過程和基礎(chǔ)部分基本一樣,同時對于穿越圓環(huán)部分,通過手動輸入圓環(huán)的坐標(biāo)和大致角度后,整個飛行過程就是航點遍歷、機頭對準(zhǔn)圓環(huán)、穿越的過程,執(zhí)行完畢后返航降落,整個過程相比前兩項只是多了一個航向控制,相對來講實現(xiàn)難度并沒有拔高,仍然屬于常規(guī)考察項,用戶結(jié)合程序注釋可以比較容易理解,故在這里不做展開。

?2022年7月電賽B題送貨無人機加裝硬件介紹
2022年TI電賽B題—送貨無人機開源方案
任意位置、角度自主飛行穿越圓框——2022年TI電賽飛行器B題送貨無人機

?2021年電賽G題植保無人機國獎標(biāo)準(zhǔn)方案學(xué)習(xí)樣例

?5_競賽無人機搭積木式編程 ——以2021年電賽國獎標(biāo)準(zhǔn)完整復(fù)現(xiàn)為例學(xué)習(xí)

