陳晉音,楊東勇,俞山青,毛國(guó)紅
(浙江工業(yè)大學(xué)a.信息工程學(xué)院;b.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023)
無(wú)人飛行器(unmanned aerial vehicle,UAV)是指不需要人為操縱,通過(guò)機(jī)載芯片的內(nèi)置程序自主行駛的無(wú)人駕駛飛行器[1]。隨著無(wú)人機(jī)的應(yīng)用推廣,其自主導(dǎo)航已經(jīng)成為一個(gè)研究的熱點(diǎn)。無(wú)人機(jī)的控制和航跡規(guī)劃算法作為新興專業(yè)的授課重點(diǎn),課程的配套實(shí)驗(yàn)基礎(chǔ)和資源相對(duì)比較薄弱,教學(xué)過(guò)程中理論教學(xué)與實(shí)際嚴(yán)重脫節(jié),純課堂理論教學(xué)已經(jīng)無(wú)法滿足學(xué)生深入學(xué)習(xí)和理解無(wú)人機(jī)技術(shù)的要求。設(shè)計(jì)與實(shí)現(xiàn)無(wú)人機(jī)技術(shù)的相關(guān)實(shí)驗(yàn)項(xiàng)目,并盡可能發(fā)揮學(xué)生的自主創(chuàng)新能力,實(shí)現(xiàn)有良好基礎(chǔ)平臺(tái)的開放性實(shí)驗(yàn)項(xiàng)目顯得尤為有意義。
此外,無(wú)人機(jī)技術(shù)涉及內(nèi)容廣泛,是一門集運(yùn)動(dòng)控制、數(shù)學(xué)建模、航跡規(guī)劃、優(yōu)化算法和可視化編程技術(shù)等為一體的綜合性課程[2-3],傳統(tǒng)的無(wú)人機(jī)技術(shù)課程實(shí)驗(yàn)以驗(yàn)證性實(shí)驗(yàn)為主,能夠讓學(xué)生對(duì)無(wú)人機(jī)的基本框架和基本技術(shù)[4-6]有初步認(rèn)識(shí)[4-6],但缺乏對(duì)無(wú)人機(jī)的實(shí)戰(zhàn)操作、具體問(wèn)題的分析和求解以及綜合應(yīng)用的教學(xué)資源和平臺(tái);并且學(xué)生受限于平臺(tái)和資源,無(wú)法在應(yīng)用中學(xué)習(xí),在實(shí)踐中學(xué)習(xí),在創(chuàng)新中學(xué)習(xí)[7-8]。此外,大量關(guān)于創(chuàng)客式教學(xué)的研究中也提及設(shè)計(jì)應(yīng)用型實(shí)驗(yàn)對(duì)提高學(xué)生動(dòng)手實(shí)踐能力的重要作用[9-12]。
基于機(jī)器人操作系統(tǒng)(robot operating system,ROS)的無(wú)人機(jī)技術(shù)開放性實(shí)驗(yàn)充分利用ROS仿真平臺(tái)的可視化和接口擴(kuò)充性,利用Kinect獲取外部環(huán)境信息,設(shè)計(jì)無(wú)人機(jī)的建模、運(yùn)動(dòng)控制、航跡規(guī)劃、優(yōu)化算法和可視化編程、動(dòng)態(tài)演示編程等技術(shù),能充分發(fā)揮學(xué)生在應(yīng)用中學(xué)習(xí),體現(xiàn)無(wú)人機(jī)技術(shù)的高度綜合性和應(yīng)用性。
本文設(shè)計(jì)和實(shí)現(xiàn)了一種基于ROS的開放性無(wú)人機(jī)仿真實(shí)驗(yàn),討論了教學(xué)方案和教學(xué)方法,采用課堂教學(xué)與翻轉(zhuǎn)課堂相結(jié)合的教學(xué)模式,采用以學(xué)生為中心展開學(xué)習(xí)、研討和開發(fā),教師啟發(fā)指導(dǎo)為輔的開放式教學(xué),讓學(xué)生能夠自主學(xué)習(xí)、研究和創(chuàng)新,達(dá)到綜合運(yùn)用知識(shí),強(qiáng)化理論學(xué)習(xí),提高實(shí)踐能力和創(chuàng)新能力的目的。
無(wú)人機(jī)航跡規(guī)劃系統(tǒng)是集無(wú)人機(jī)運(yùn)動(dòng)控制、環(huán)境信息采集與規(guī)劃方法等分析于一體的軟硬件集成系統(tǒng),傳統(tǒng)教學(xué)過(guò)程中采用理論教學(xué)的方式讓學(xué)生在學(xué)習(xí)的過(guò)程中產(chǎn)生復(fù)雜抽象、難以理解的感覺(jué)。限于無(wú)人機(jī)設(shè)備的價(jià)格昂貴,對(duì)操控要求高等原因,很多相關(guān)課程的授課均未能實(shí)現(xiàn)真機(jī)的操控和學(xué)習(xí)研究。因此設(shè)計(jì)一套基于全面仿真功能的無(wú)人機(jī)仿真實(shí)現(xiàn)至關(guān)重要。
ROS是面向機(jī)器人和無(wú)人機(jī)的開源的元操作系統(tǒng)(meta-operating system),它提供了一個(gè)標(biāo)準(zhǔn)的操作系統(tǒng)環(huán)境,如進(jìn)程間通信、硬件抽象、內(nèi)存管理、底層設(shè)備控制。ROS將所有程序抽象成節(jié)點(diǎn),利用話題和消息機(jī)制進(jìn)行節(jié)點(diǎn)間的通信,同時(shí)內(nèi)置了節(jié)點(diǎn)管理器可視化地顯示出當(dāng)前節(jié)點(diǎn)以及消息的運(yùn)行情況,便于開發(fā)和后期代碼的維護(hù)并且代碼的重用性高。
本文設(shè)計(jì)的開放性實(shí)驗(yàn)基于ROS平臺(tái),利用Kinect等設(shè)備獲取地圖環(huán)境信息,搭建無(wú)人機(jī)動(dòng)力學(xué)模型,設(shè)計(jì)相應(yīng)的航跡規(guī)劃算法,在環(huán)境模型中實(shí)現(xiàn)二維和三維的航跡規(guī)劃可視化系統(tǒng),從而達(dá)到讓學(xué)生綜合利用控制理論、數(shù)學(xué)建模和優(yōu)化計(jì)算等關(guān)鍵知識(shí)的目標(biāo)。基于ROS的無(wú)人機(jī)運(yùn)動(dòng)控制和航跡規(guī)劃系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 基于ROS的無(wú)人機(jī)仿真系統(tǒng)結(jié)構(gòu)圖
無(wú)人機(jī)的開放性實(shí)驗(yàn)重點(diǎn)突出對(duì)各門課程關(guān)鍵知識(shí)的綜合應(yīng)用和創(chuàng)新能力的培養(yǎng),突出理論知識(shí)轉(zhuǎn)化成實(shí)踐創(chuàng)新,加強(qiáng)電子信息和計(jì)算機(jī)相關(guān)專業(yè)學(xué)生的應(yīng)用需求分析、問(wèn)題分解和設(shè)計(jì)以及研究和創(chuàng)新能力的培養(yǎng)。實(shí)驗(yàn)硬件包含Kinect和CCD攝像頭等環(huán)境信息采集設(shè)備,軟件主要包括ROS仿真環(huán)境,硬件設(shè)備也可以用已有的典型地圖信息代替,重點(diǎn)是完成無(wú)人機(jī)的動(dòng)力學(xué)模型搭建、環(huán)境建模、航跡規(guī)劃方法設(shè)計(jì)與實(shí)現(xiàn)以及可視化的系統(tǒng)展現(xiàn)。
根據(jù)圖1的系統(tǒng)框架,無(wú)人機(jī)仿真系統(tǒng)的硬件設(shè)備和軟件平臺(tái)主要包括以下4個(gè)部分。
1)信息采集設(shè)備。
主要用于無(wú)人機(jī)獲取外部環(huán)境信息,包括Kinect和CCD攝像頭等。如果實(shí)驗(yàn)條件受限,則環(huán)境地圖信息可以用已有的地圖信息取代。
2)ROS仿真環(huán)境。
本實(shí)驗(yàn)使用的是ROS的Indigo版本,支持的編程語(yǔ)言有python以及C++,并且兼容PCL、OpenNI等大型開源庫(kù)。
3)數(shù)學(xué)建模與優(yōu)化算法設(shè)計(jì)。
根據(jù)環(huán)境信息基于柵格法、散點(diǎn)圖等建立地圖,隨后基于RRT、智能計(jì)算等方法實(shí)現(xiàn)航跡規(guī)劃。
4)無(wú)人機(jī)的動(dòng)力學(xué)模型搭建。
飛行器的運(yùn)動(dòng)可以分為質(zhì)心的線運(yùn)動(dòng)和繞質(zhì)心的角運(yùn)動(dòng),根據(jù)牛頓第二定律可知飛行器的線運(yùn)動(dòng)和角運(yùn)動(dòng)方程,從而得到四旋翼飛行器的非線性動(dòng)力學(xué)方程和運(yùn)動(dòng)學(xué)方程。
無(wú)人機(jī)仿真系統(tǒng)開放實(shí)驗(yàn)主要包括無(wú)人機(jī)的動(dòng)力學(xué)模型建模、航跡規(guī)劃算法設(shè)計(jì)和動(dòng)態(tài)可視化演示三部分功能。根據(jù)上述系統(tǒng)框架,將實(shí)驗(yàn)的主要內(nèi)容分成環(huán)境信息采集與建模、無(wú)人機(jī)動(dòng)力學(xué)模型構(gòu)建、航跡規(guī)劃方法設(shè)計(jì)和動(dòng)態(tài)可視化演示平臺(tái)開發(fā)等部分。實(shí)驗(yàn)的具體內(nèi)容如圖2所示。
圖2 無(wú)人機(jī)仿真系統(tǒng)開放性實(shí)驗(yàn)教學(xué)內(nèi)容
2.2.1 環(huán)境信息獲取
由于激光傳感器可以采取深度信息,通過(guò)深度信息轉(zhuǎn)換為三維坐標(biāo)以及點(diǎn)云數(shù)據(jù)(.pcd)格式。點(diǎn)云格式可以通過(guò)PCL點(diǎn)云庫(kù)進(jìn)行處理,且ROS集成PCL點(diǎn)云庫(kù),故采用此方式獲取環(huán)境信息。實(shí)驗(yàn)調(diào)用了PCL庫(kù)對(duì)點(diǎn)云數(shù)據(jù)文件進(jìn)行讀取,并使用函數(shù)將其轉(zhuǎn)換為ROS消息格式sensor_msgs進(jìn)行發(fā)布。
2.2.2 環(huán)境建模
由于環(huán)境數(shù)據(jù)為點(diǎn)云數(shù)據(jù),即以大量坐標(biāo)點(diǎn)表示障礙物以及環(huán)境信息,并且航跡規(guī)劃采用了采樣算法,所以采用柵格法對(duì)環(huán)境建模,在碰撞檢測(cè)過(guò)程中只需遍歷路徑經(jīng)過(guò)的柵格是否包含障礙物節(jié)點(diǎn)即可完成。柵格法不需要對(duì)障礙物進(jìn)行數(shù)學(xué)表示,計(jì)算需求較少。實(shí)驗(yàn)調(diào)用了Eigen(ROS自帶的C++矩陣庫(kù),支持各種矩陣運(yùn)算)完成三維柵格法的開發(fā)。
2.2.3 航跡規(guī)劃
傳統(tǒng)二維路徑規(guī)劃算法較難移植到三維環(huán)境中(由于其計(jì)算復(fù)雜度上升),而采樣算法隨維度變化計(jì)算復(fù)雜度影響不大,因此較適合用于三維環(huán)境下的路徑規(guī)劃。實(shí)驗(yàn)采用了基于B-RRT*算法改良的MB-RRT*算法,該算法是全局算法,根據(jù)全局地圖生成一系列飛行器途徑的航跡點(diǎn)。
2.2.4 優(yōu)化算法
直接連接算法生成的航跡點(diǎn)將會(huì)產(chǎn)生粗糙的路徑,需要對(duì)路徑進(jìn)行平滑處理,這里使用了貝塞爾插值算法,利用了三次貝塞爾函數(shù)對(duì)航跡點(diǎn)進(jìn)行曲線擬合,從而生成平滑的路徑。
2.2.5 可視化動(dòng)態(tài)展示
ROS集成了3D的可視化演示工具RVIZ,可以接受ROS的消息并將其顯示在RVIZ提供的三維空間中。
無(wú)人機(jī)仿真開放性實(shí)驗(yàn)翻轉(zhuǎn)課堂教學(xué)模式與一般翻轉(zhuǎn)課堂教學(xué)模式基本一致,都經(jīng)歷課前學(xué)習(xí)資料準(zhǔn)備、學(xué)生自主學(xué)習(xí)、課堂實(shí)驗(yàn)活動(dòng)、反饋與評(píng)價(jià)四個(gè)階段。由于開放性實(shí)驗(yàn)是一門綜合性創(chuàng)新性實(shí)驗(yàn)課程,因此注重實(shí)踐操作和自主創(chuàng)新能力的培養(yǎng)。教師只提供一些基本的方法和操作手冊(cè),需要學(xué)生根據(jù)積累的知識(shí)、調(diào)研的能力和動(dòng)手開發(fā)的水平來(lái)決定最終提交的作品達(dá)到什么水平?;赗OS的仿真環(huán)境提供了虛擬實(shí)驗(yàn)室,結(jié)合已有的翻轉(zhuǎn)課堂以及ROS的仿真環(huán)境等實(shí)踐操作,本文設(shè)計(jì)了相應(yīng)的翻轉(zhuǎn)課堂教學(xué)模式,具體如圖3所示。
圖3 無(wú)人機(jī)仿真開放性實(shí)驗(yàn)翻轉(zhuǎn)課堂教學(xué)模式設(shè)計(jì)
教師首先根據(jù)教學(xué)需要,制作操作學(xué)習(xí)資源包,在課前發(fā)放給學(xué)生,其中無(wú)人機(jī)系統(tǒng)資源包中有無(wú)人機(jī)的框架、環(huán)境建模方法、航跡規(guī)劃方法和可視化編程設(shè)計(jì)的demo等輔助學(xué)習(xí)資源,學(xué)生在課外時(shí)間自主安排學(xué)習(xí)時(shí)間和流程進(jìn)度,組成團(tuán)隊(duì)協(xié)作分配任務(wù)調(diào)研,完成學(xué)習(xí)任務(wù),并與教師和同學(xué)進(jìn)行必要的交流和問(wèn)題討論。在實(shí)驗(yàn)課堂教學(xué)環(huán)節(jié),教師對(duì)課堂活動(dòng)安排進(jìn)行簡(jiǎn)要說(shuō)明之后,學(xué)生進(jìn)行分組實(shí)驗(yàn);在實(shí)驗(yàn)過(guò)程中,教師觀察學(xué)生們的實(shí)驗(yàn)情況、評(píng)估模型的可行性、優(yōu)化方法的效率和編程設(shè)計(jì)的調(diào)試等工作,并指導(dǎo)學(xué)生完成實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)結(jié)束以后,對(duì)學(xué)生的學(xué)習(xí)情況進(jìn)行調(diào)查,一方面評(píng)估學(xué)生在開放性實(shí)驗(yàn)環(huán)節(jié)完成的效果;另一方面反饋翻轉(zhuǎn)課堂教學(xué)的問(wèn)題以便下次改正,從而不斷調(diào)整翻轉(zhuǎn)課堂教學(xué)的實(shí)施方法。
本文提出了一種基于ROS的無(wú)人機(jī)仿真開放性實(shí)驗(yàn)教學(xué)方案和相應(yīng)的翻轉(zhuǎn)課堂教學(xué)模式,實(shí)驗(yàn)內(nèi)容涵蓋了傳感器、網(wǎng)絡(luò)、數(shù)學(xué)建模、無(wú)人機(jī)運(yùn)動(dòng)控制、航跡規(guī)劃方法、優(yōu)化計(jì)算和可視化編程等關(guān)鍵技術(shù),是對(duì)信息和計(jì)算機(jī)相關(guān)專業(yè)學(xué)生的綜合無(wú)人機(jī)系統(tǒng)實(shí)驗(yàn)教學(xué)的一種嘗試與探索。通過(guò)實(shí)驗(yàn)教學(xué)與翻轉(zhuǎn)課堂教學(xué)模式的結(jié)合,學(xué)生能夠充分發(fā)揮自主創(chuàng)新,利用已學(xué)的專業(yè)知識(shí)應(yīng)用到無(wú)人機(jī)的研究和實(shí)踐中,同時(shí),學(xué)生對(duì)無(wú)人機(jī)應(yīng)用的學(xué)習(xí)興趣和創(chuàng)新能力得到激發(fā)。
在最近三年的教學(xué)實(shí)踐中,學(xué)生基于該實(shí)驗(yàn)教學(xué)方案和教學(xué)模式,展開了課內(nèi)學(xué)習(xí)并積極投身于課外科技競(jìng)賽和實(shí)踐創(chuàng)新應(yīng)用中,組建航模>隊(duì),積極參加無(wú)人機(jī)的各種國(guó)內(nèi)大小賽事,獲得了機(jī)器人競(jìng)賽、無(wú)人機(jī)飛行表演等多個(gè)獎(jiǎng)項(xiàng),除了在課堂教學(xué)取得滿意效果,在課外科技競(jìng)賽和實(shí)踐創(chuàng)新應(yīng)用中也取得喜人成績(jī)。
[1]于進(jìn)勇,寇昆湖,陳勇,等.無(wú)人機(jī)模擬訓(xùn)練教學(xué)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2014,33(7):221-224.
[2]易俐娜.無(wú)人機(jī)數(shù)據(jù)處理技術(shù)教學(xué)方法研究[J].教育教學(xué)論壇,2016(1):182-183.
[3]袁占杰,路平.無(wú)人機(jī)飛行姿態(tài)仿真系統(tǒng)的構(gòu)成與模式分析[J].軍械工程學(xué)院學(xué)報(bào),2003,15(4):35-37.
[4]陳自力,席雷平,田慶民.無(wú)人機(jī)裝備保障專業(yè)任職教育教學(xué)模式改革探索[J].繼續(xù)教育,2015(7):77-79.
[5]賈鵬萬(wàn),馮壽鵬,張愛輝.基于VR-Platform的無(wú)人機(jī)中繼通信虛擬教學(xué)系統(tǒng)[J].兵工自動(dòng)化,2012,31(6):93-96.
[6]孫燁,劉長(zhǎng)亮,鮑傳美,等.基于可拓學(xué)的GBL無(wú)人機(jī)實(shí)踐教學(xué)評(píng)估模型[J].微計(jì)算機(jī)信息,2011(5):202-203.
[7]李偉榮,方舟,李誠(chéng)龍.帶懸掛負(fù)載的八旋翼無(wú)人機(jī)建模與控制[J].計(jì)算機(jī)應(yīng)用,2015,35(S2):138-142.
[8]楊現(xiàn)民,李冀紅.創(chuàng)客教育的價(jià)值潛能及其爭(zhēng)議[J].現(xiàn)代遠(yuǎn)程教育研究,2015(2):94-96.
[9]謝作如.2016,做好迎接創(chuàng)客教育的準(zhǔn)備[J].中國(guó)信息技術(shù)教育,2016(1):12-13.
[10]丁飛.基于創(chuàng)客思維重塑循環(huán)程序的課堂教學(xué)策略研究[J].中小學(xué)信息技術(shù)教育,2015(10):54-56.
[11]熊善軍.基于創(chuàng)客思維的信息技術(shù)課堂教學(xué)模式探索與實(shí)踐[J].教學(xué)與管理,2016(3):106-108.
[12]黃榮懷,劉曉琳.創(chuàng)客教育與學(xué)生創(chuàng)新能力培養(yǎng)[J].現(xiàn)代教育技術(shù),2016,26(4):12-19.