| 作者 Hamidreza Nemati
Nemati 博士在日本福岡九州大學(xué)獲得了航空航天博士學(xué)位,目前是布里斯托爾西英格蘭大學(xué)的航電和控制講師。他的研究方向包括自主導(dǎo)航和智能控制,其中涉及用于控制液壓機(jī)械臂以及實(shí)現(xiàn)微型飛行器魯棒穩(wěn)定性的系統(tǒng)。
在學(xué)生時(shí)期,我經(jīng)常覺(jué)得工程理論與其解決實(shí)際問(wèn)題的實(shí)踐應(yīng)用之間相差甚遠(yuǎn)。比如,我發(fā)現(xiàn)航空航天工程專業(yè)的大部分課程都未講解如何應(yīng)對(duì)導(dǎo)航或圖像處理挑戰(zhàn)的主題。我想,之所以對(duì)此避而不談,部分原因是有觀點(diǎn)認(rèn)為,這些主題屬于計(jì)算機(jī)科學(xué)家的專業(yè)領(lǐng)域,而非航空航天工程師的專業(yè)領(lǐng)域。我一直覺(jué)得這種觀點(diǎn)很奇怪,因?yàn)槲覀兩钤谝粋€(gè)復(fù)雜的世界里,需要使用多學(xué)科方法來(lái)教會(huì)工科學(xué)生如何解決實(shí)際難題。
現(xiàn)在,作為一名講師,我可以借此機(jī)會(huì)彌合我在學(xué)生時(shí)期認(rèn)識(shí)到的這種差距。為此,我借鑒了自己作為博士后研究員參加并贏得 MathWorks 迷你無(wú)人機(jī)比賽所取得的經(jīng)驗(yàn)。這項(xiàng)比賽在世界各個(gè)國(guó)家/地區(qū)舉行。在比賽中,學(xué)生們先要使用 Simulink 設(shè)計(jì)、仿真和實(shí)現(xiàn)基于視覺(jué)的循線算法,然后在 Parrot Mambo 迷你無(wú)人機(jī)上進(jìn)行實(shí)際飛行測(cè)試,將自己的解決方案與其他學(xué)生的解決方案一較高下。
作為參賽者,我需要了解如何在運(yùn)用工程理論的同時(shí),考慮現(xiàn)實(shí)環(huán)境對(duì)無(wú)人機(jī)部署的影響,這要比課堂上學(xué)到的知識(shí)多得多。與此同時(shí),我也在基于模型的設(shè)計(jì)以及導(dǎo)航和圖像處理算法的開(kāi)發(fā)、實(shí)現(xiàn)和優(yōu)化方面收獲了寶貴的經(jīng)驗(yàn)。作為一名講師,我希望我的學(xué)生能夠從這種經(jīng)驗(yàn)中受益。因此,我將 MathWorks 迷你無(wú)人機(jī)比賽直接納入到了我面向大三學(xué)生教授的航電和控制課程。在 2021 至 2022 學(xué)年教授這版課程時(shí),我將學(xué)生分成了六個(gè)小組。這些小組先在 Simulink 中開(kāi)發(fā)并調(diào)整他們的算法,最后在決賽中輪流對(duì)這些算法進(jìn)行測(cè)試。盡管發(fā)生了一些重大事故,但與我當(dāng)時(shí)一樣,學(xué)生們也從這次經(jīng)歷中收獲頗豐,這讓他們興致勃勃。
課程結(jié)構(gòu)設(shè)計(jì)
在考慮如何教授該課程時(shí),我決定采用與迷你無(wú)人機(jī)比賽相同的結(jié)構(gòu),讓學(xué)生通過(guò)一系列里程碑來(lái)完成整個(gè)設(shè)計(jì)。該結(jié)構(gòu)主要涵蓋英國(guó)工程專業(yè)能力和個(gè)人承諾標(biāo)準(zhǔn)的知識(shí)與理解這兩個(gè)方面,以及設(shè)計(jì)、開(kāi)發(fā)和工程問(wèn)題解決方面。
不過(guò),在開(kāi)始設(shè)計(jì)工作之前,我留出了一些時(shí)間來(lái)確保學(xué)生們對(duì)他們所需的概念有深入的了解。我從回顧 MATLAB 和 Simulink 基礎(chǔ)知識(shí)入手,讓學(xué)生們學(xué)習(xí)了《MATLAB 入門之旅》和《Simulink 入門之旅》教程。另外,我還向?qū)W完《Stateflow 入門之旅》教程的學(xué)生提供了額外學(xué)分,以鼓勵(lì)他們提前學(xué)習(xí)如何創(chuàng)建、編輯和仿真狀態(tài)機(jī)。我知道,在課程后期,需要規(guī)劃飛行狀態(tài)時(shí),他們將會(huì)慶幸自己已掌握了這些技能。
在接下來(lái)的幾周里,該課程涵蓋飛機(jī)動(dòng)力學(xué)和建模、無(wú)人機(jī)航電設(shè)備,以及迷你飛行器(包括 Parrot 迷你無(wú)人機(jī))的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)等主題。本系列的最后一節(jié)課重點(diǎn)講述計(jì)算機(jī)視覺(jué)基礎(chǔ)知識(shí),這為學(xué)生們完成本課程的第一個(gè)項(xiàng)目奠定了必要的基礎(chǔ)。
開(kāi)發(fā)計(jì)算機(jī)視覺(jué)算法
我把全班學(xué)生分成了由四到六名學(xué)生組成的小組,讓他們完成第一個(gè)重要里程碑,那就是在 MATLAB 中開(kāi)發(fā)直線檢測(cè)算法。為了幫助他們?nèi)腴T,我將一些基本的邊緣、直線和目標(biāo)檢測(cè)方法納入到了講義中。學(xué)生們還在 MATLAB 和 Simulink 中學(xué)完了《圖像處理入門之旅》教程。他們要實(shí)現(xiàn)的直線檢測(cè)算法是迷你無(wú)人機(jī)飛行控制系統(tǒng)中圖像處理組件的一部分。作為比賽(和我的課程)的一部分,學(xué)生們會(huì)獲得該系統(tǒng)的基本 Simulink 模型)。他們先要實(shí)現(xiàn) Image Processing System 模塊,然后再處理 Control System 模塊。
圖 . 飛行控制系統(tǒng)的 Simulink 模型。
除了基本的邊緣和直線檢測(cè)算法,學(xué)生們還需要實(shí)現(xiàn)圓形檢測(cè)算法,用來(lái)識(shí)別無(wú)人機(jī)在飛行路徑末端要降落的小著陸區(qū)。我鼓勵(lì)學(xué)生們探索先進(jìn)的圖像處理技術(shù),并為他們提供額外的學(xué)分,用于實(shí)現(xiàn)陰影去除或光照不變測(cè)度。學(xué)生們?cè)谥本€檢測(cè)和圓形檢測(cè)算法方面提出的創(chuàng)新想法給我留下了深刻的印象。對(duì)于這兩種算法,他們都想出了讓我意想不到的有趣方法。
路徑規(guī)劃
下一個(gè)重要里程碑是在 Simulink 控制系統(tǒng)模型中實(shí)現(xiàn) Path Planning 模塊。在該階段,我將術(shù)語(yǔ)“路徑規(guī)劃”與“軌跡跟蹤”作了區(qū)分,以便學(xué)生們能夠開(kāi)發(fā)獨(dú)立于路徑物理參數(shù)(如長(zhǎng)度和幾何形狀)的算法。于是,他們使用了路徑顏色,并根據(jù)從圖像中獲得的信息計(jì)算所需的所有參數(shù)。該模塊采用學(xué)生圖像處理算法的結(jié)果作為輸入。
圖 . 控制系統(tǒng)的 Simulink 模型,包括路徑規(guī)劃子系統(tǒng)。
如同圖像處理算法那樣,我也向?qū)W生們介紹了一些常用的路徑規(guī)劃算法,包括 RRT、RRT* 和 A*,但不會(huì)讓他們拘泥于這些方法。各小組先讓無(wú)人機(jī)沿直線路徑飛行,直到它到達(dá)一個(gè)路口,然后他們?cè)倩谧约旱乃惴ㄟM(jìn)行構(gòu)建,直到無(wú)人機(jī)能夠沿著完整路徑飛行并降落到著陸區(qū)。為了測(cè)試自己的算法,這些小組使用 MathWorks 提供的無(wú)人機(jī)模型在 Simulink 中運(yùn)行了閉環(huán)仿真。在實(shí)現(xiàn)過(guò)程中,學(xué)生們?cè)俅握宫F(xiàn)了他們的創(chuàng)造性思維;有個(gè)小組實(shí)現(xiàn)的一種算法成功導(dǎo)航了整個(gè)路徑,而根本沒(méi)有改變無(wú)人機(jī)航向!
控制設(shè)計(jì)和調(diào)整
在學(xué)生們實(shí)現(xiàn)了路徑規(guī)劃算法后,我就把教學(xué)重點(diǎn)轉(zhuǎn)向了姿態(tài)和高度控制設(shè)計(jì)。我讓他們通過(guò)以下方法重新調(diào)整了比例-積分-微分控制器的增益:使用優(yōu)化算法,盡可能降低積分絕對(duì)誤差、積分均方誤差、積分時(shí)間加權(quán)絕對(duì)誤差乃至均方根誤差這些標(biāo)準(zhǔn)之一。MathWorks 提供的基礎(chǔ)模型中包含姿態(tài)和高度控制器,但我提醒學(xué)生們不要過(guò)于激進(jìn)。我強(qiáng)烈建議,作為總體實(shí)現(xiàn)策略的一部分,他們應(yīng)讓設(shè)計(jì)簡(jiǎn)潔明了,因?yàn)槲疑钪绻O(shè)計(jì)過(guò)于復(fù)雜或控制器調(diào)整過(guò)度,則可能會(huì)導(dǎo)致在真實(shí)硬件上進(jìn)行測(cè)試時(shí)困難重重。
當(dāng)學(xué)生們處理無(wú)模型線性控制器(如 PID)時(shí),我還向他們介紹了基于模型的線性控制設(shè)計(jì),包括線性二次調(diào)節(jié)器 (LQR)。此外,我還比較了實(shí)施 LQR 與更先進(jìn)的非線性控制策略(稱為滑動(dòng)模式控制 (SMC))時(shí)的性能,以說(shuō)明當(dāng)存在不確定性和外部干擾的情況下應(yīng)用穩(wěn)健控制器的效果。然而,考慮到 SMC 會(huì)受到意外高頻振動(dòng)的影響,我實(shí)現(xiàn)了一個(gè)連續(xù)滑動(dòng)模式控制 (CSMC),以便能夠根據(jù)滑動(dòng)面的分?jǐn)?shù)指數(shù)消除這種振動(dòng),并確保控制系統(tǒng)性能穩(wěn)定。為了比較線性 (PID) 和非線性 (CSMC) 控制設(shè)計(jì)的性能,我們運(yùn)行了仿真,并在 MATLAB 中繪制了生成的路徑。有些同事對(duì)我向本科生教授基于模型的控制技術(shù)(如 LQR)感到很驚訝。我解釋說(shuō),一旦我們有了工作模型,其實(shí)就很容易將 PID 控制器替換為 LQR 控制器,并演示如何應(yīng)用先進(jìn)的控制方法。
圖 . 使用 PID 控制器(上圖)和 CSMC 控制器(下圖)繪制的無(wú)人機(jī)仿真飛行路徑。
部署到 Parrot 迷你無(wú)人機(jī)上
對(duì)于最后一個(gè)里程碑,學(xué)生們需要在真實(shí)硬件上運(yùn)行他們?cè)?Simulink 中建模、仿真和驗(yàn)證的算法。在這一步,他們需要使用 Simulink Support Package for Parrot Minidrones,通過(guò)藍(lán)牙 將算法無(wú)線部署到 Parrot Mambo 迷你無(wú)人機(jī)上。
無(wú)人機(jī)比賽在布里斯托爾機(jī)器人實(shí)驗(yàn)室舉行,有幾名實(shí)驗(yàn)室研究人員觀看了決賽?;顒?dòng)當(dāng)天,MathWorks 的工程師們也到場(chǎng)協(xié)助搭建比賽環(huán)境。
第一次飛行測(cè)試并沒(méi)有達(dá)到各小組的預(yù)期,主要是因?yàn)閷W(xué)生們把增益設(shè)得太高,并且對(duì)控制器調(diào)整過(guò)度。真實(shí)無(wú)人機(jī)并未像他們?cè)诜抡嬷锌吹降哪菢友刂窂椒€(wěn)定飛行,而是表現(xiàn)出飛行姿態(tài)不穩(wěn),并且遭受了多次嚴(yán)重撞擊。雖然學(xué)生們起初很失望,但很快重振旗鼓,調(diào)整了增益并對(duì)設(shè)計(jì)的各個(gè)方面進(jìn)行了簡(jiǎn)化,以將他們當(dāng)前面臨的實(shí)際影響均考慮在內(nèi)。其中一個(gè)小組的無(wú)人機(jī)成功完成了整個(gè)賽程,為他們贏得了比賽。賽后,多個(gè)小組留下來(lái)繼續(xù)改進(jìn)他們的算法,這充分展現(xiàn)了全班同學(xué)對(duì)該項(xiàng)目的興趣有多濃厚。
學(xué)生們不斷高漲的熱情,是我想在明年繼續(xù)教授該課程并將迷你無(wú)人機(jī)比賽作為課程核心的諸多原因之一。我也期待著我的學(xué)生們能有機(jī)會(huì)參加英國(guó)或鄰國(guó)官方的 MathWorks 迷你無(wú)人機(jī)比賽。
審核編輯:湯梓紅
-
matlab
+關(guān)注
關(guān)注
185文章
2980瀏覽量
230726 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7525瀏覽量
88319 -
Simulink
+關(guān)注
關(guān)注
22文章
536瀏覽量
62496 -
飛行器
+關(guān)注
關(guān)注
13文章
726瀏覽量
45575 -
無(wú)人機(jī)
+關(guān)注
關(guān)注
230文章
10488瀏覽量
181372
原文標(biāo)題:教學(xué)前沿 | 迷你無(wú)人機(jī)比賽助力航電和控制教學(xué)
文章出處:【微信號(hào):MATLAB,微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論