蔡瓊 雷道仲 陳鵬慧
摘要:
在《C語言程序設(shè)計(jì)》課程教學(xué)過程中,發(fā)現(xiàn)按照知識(shí)體系來教學(xué)方法學(xué)生興趣度不高,存在許多問題。為了使課程更具有吸引力,探討了各種教育機(jī)器人在課程中的應(yīng)用,并研究水中機(jī)器人2D仿真教育機(jī)器人在課程中的應(yīng)用。通過水中機(jī)器人(多智能體)編隊(duì)中動(dòng)態(tài)圓模型構(gòu)建、領(lǐng)頭羊的動(dòng)態(tài)選取、隊(duì)形穩(wěn)定的保持、復(fù)雜環(huán)境下的動(dòng)態(tài)圓移動(dòng)的實(shí)現(xiàn)方法與《C語言程序設(shè)計(jì)》課程相結(jié)合,大大提高了學(xué)生的學(xué)習(xí)興趣及效率。
關(guān)鍵詞:
教育機(jī)器人;水中機(jī)器人2D仿真;動(dòng)態(tài)圓
中圖分類號(hào):
G4
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):16723198(2015)11013602
如何將《C語言程序設(shè)計(jì)》課程設(shè)計(jì)的生動(dòng)有趣且具有操作性成為提高高職學(xué)生編程能力的關(guān)鍵手段。傳統(tǒng)教學(xué)方法在教學(xué)中《C語言程序設(shè)計(jì)》中編程平臺(tái)采用Python、Visual C++,Keil C相結(jié)合的方法,但是由于這些方法不夠直觀,導(dǎo)致學(xué)生不愿動(dòng)手,從而使學(xué)生的各知識(shí)點(diǎn)脫節(jié)。而近年許多學(xué)校將教育機(jī)器人應(yīng)用到各課程的一線教學(xué)方式似乎解決了上述問題,因此本文開始研究教育機(jī)器人在《C語言程序設(shè)計(jì)》課程匯總的應(yīng)用。
1教育機(jī)器人平臺(tái)介紹
(1)LEGO教育機(jī)器人。Lego秉著“更聰明、更強(qiáng)壯、更人性化”理念,推出了NXT機(jī)器人,它可用C語言、VisualBasic、Java、Visual C++等平臺(tái)進(jìn)行編程及控制,注重人機(jī)交互,并提供RoboLab進(jìn)行圖形化式的編程,簡單容易上手。麻省理工學(xué)院(MIT)和塔輔茨(Tufts)大學(xué)很早就利用LEGO機(jī)器人記性了創(chuàng)意設(shè)計(jì)。LEGO套件豐富,功能強(qiáng)大,利用這些組件,可以方便靈活的搭建各種機(jī)器人。樂高組件大致可分為以下幾大類:可編程磚塊(基礎(chǔ)結(jié)構(gòu)件)、傳動(dòng)結(jié)構(gòu)件(齒輪、凸輪、萬向節(jié)、皮帶傳動(dòng)等)、驅(qū)動(dòng)部件(電動(dòng)馬達(dá))、特殊部件(氣缸、氣泵、分配閥等)、傳感器(光電傳感器、觸覺傳感器、碰撞傳感器、碼盤和溫度傳感器等)、控制器。
(2)“慧魚”機(jī)器人,全稱“慧魚創(chuàng)意組合模型”慧魚機(jī)器人是通過各種各樣的構(gòu)件組合拼裝而成?;埕~在國際創(chuàng)新教育領(lǐng)域,涵蓋面廣,為不同知識(shí)層次人員的提供個(gè)性化的平臺(tái),為創(chuàng)新教育和創(chuàng)新實(shí)驗(yàn)提供了最佳的載體?;埕~機(jī)器人的優(yōu)勢(shì)是靈活且適用范圍廣,主要部件采用優(yōu)質(zhì)尼龍塑膠制造,不易磨損,工業(yè)燕尾槽專利設(shè)計(jì)使六面都可拼接,有利于培養(yǎng)學(xué)生的想象力和創(chuàng)造性。通過搭建fischertechnik構(gòu)件、電機(jī)、顯示設(shè)備、傳動(dòng)機(jī)構(gòu)、傳感器等可以實(shí)現(xiàn)機(jī)械手臂、烘手器、紅綠燈、移動(dòng)門、停車欄桿、焊接機(jī)器人等任務(wù),并提供了ROBOPro進(jìn)行圖形化編程的方式,對(duì)控制板進(jìn)行控制編程。
(3)能力風(fēng)暴機(jī)器人是上海廣茂達(dá)公司開發(fā)的面向初高中生、大學(xué)生、對(duì)機(jī)器人控制感興趣的社會(huì)人士等多層次人員所研發(fā)的教育機(jī)器人。能力風(fēng)暴機(jī)器人提供良好的圖形界面VJC語言和開放式接口開啟機(jī)器人的開發(fā)潛力。VJC語言提供兩種編程方式:流程圖方式和類C語言編程方式。該機(jī)器人外形可愛,易于廣大中高中生、大學(xué)生接受,形狀為圓形狀,并帶有2個(gè)紅外傳感器、四個(gè)碰撞傳感器、兩個(gè)光敏傳感器,運(yùn)動(dòng)結(jié)構(gòu)有兩個(gè)主動(dòng)輪和兩個(gè)從動(dòng)輪,能力風(fēng)暴機(jī)器人的2個(gè)紅外傳感器、4個(gè)光敏傳感器、2個(gè)光電編碼器、4個(gè)碰撞傳感器等,可以用來做多個(gè)創(chuàng)意編程。用能力風(fēng)暴機(jī)器人可以在相關(guān)課程教學(xué)中進(jìn)行走迷宮、滅火、計(jì)價(jià)器等。
2水中機(jī)器人2D仿真教育機(jī)器人在《C語言程序設(shè)計(jì)》課程中的應(yīng)用
2.1水中機(jī)器人2D仿真教育機(jī)器人簡介
水中機(jī)器人2D仿真教育機(jī)器人是一種典型的教育機(jī)器人仿真平臺(tái),它由湖南信息職業(yè)技術(shù)學(xué)院聯(lián)合北京大學(xué)開發(fā),并與2010年開始就作為中國機(jī)器人大賽RoboCup公開賽中國水中機(jī)器人大賽的比賽平臺(tái)。該平臺(tái)提供C語言編程,通過編寫控制程序控制水中機(jī)器人比如機(jī)器魚等的運(yùn)動(dòng)。相對(duì)像LEGO、慧魚等昂貴的實(shí)體平臺(tái),它環(huán)保不會(huì)增加額外的硬件平臺(tái)的購置費(fèi)用且易于管理,也能直觀觀察到水中機(jī)器人的游動(dòng),直觀有趣,非常適用于做《C語言程序設(shè)計(jì)》課程的教學(xué)平臺(tái)。
2.2《C語言程序設(shè)計(jì)》課程案例的選取
水中機(jī)器人的多智能體協(xié)作問題是水中機(jī)器人編隊(duì)控制的關(guān)鍵性問題。編隊(duì)控制是一個(gè)具有典型性和通用性的多智能體協(xié)調(diào)問題,是多智能體協(xié)作的基礎(chǔ)。所謂編隊(duì)控制就是指多個(gè)機(jī)器人在到達(dá)目的地的過程中,保持某種隊(duì)形。通過每個(gè)智能體實(shí)時(shí)的獲取環(huán)境信息,通過機(jī)器人之間的通信來判斷預(yù)定編隊(duì)動(dòng)作是否完成。多智能體保持隊(duì)形有不少的好處比如抵御外界的入侵、提高工作效率、提高系統(tǒng)的魯棒性。但保持隊(duì)形也會(huì)帶來一定的問題,比如如何選隊(duì)形、隊(duì)形控制的優(yōu)劣、隊(duì)形有沒有保持住的實(shí)時(shí)反饋、機(jī)器人達(dá)到目標(biāo)后有沒有保持住隊(duì)形,并且如何評(píng)價(jià)隊(duì)形的優(yōu)劣也是需要考慮。動(dòng)態(tài)圓的設(shè)計(jì)包含動(dòng)態(tài)圓的構(gòu)建和動(dòng)態(tài)圓的移動(dòng),它最關(guān)鍵的問題就是動(dòng)態(tài)圓的隊(duì)形保持。動(dòng)態(tài)圓的隊(duì)形保持方法采用以幾何中心為參考點(diǎn)、以領(lǐng)航機(jī)器人為參考點(diǎn)、以鄰居位置為參考點(diǎn)三種方式相結(jié)合的方式。通過編寫C語言代碼,在該平臺(tái)上實(shí)現(xiàn),水中機(jī)器人的動(dòng)態(tài)圓的構(gòu)建和移動(dòng),能讓學(xué)生掌握C語言的基本語法,并且能看到直觀和生動(dòng)的效果,優(yōu)秀的學(xué)生所編寫的算法還能直接推薦到項(xiàng)目組,代表學(xué)校參加全國的水中機(jī)器人的競(jìng)賽。該平臺(tái)降低機(jī)器人相關(guān)領(lǐng)域研究成本、加快機(jī)器人技術(shù)發(fā)展,在在高仿真的水下機(jī)器人平臺(tái)上研究編隊(duì)控制問題是一個(gè)好的途徑,能極大的激發(fā)學(xué)生對(duì)《C語言程序設(shè)計(jì)》學(xué)習(xí)的興趣,有助于《C語言程序設(shè)計(jì)》課程改革。
2.3水中機(jī)器人動(dòng)態(tài)圓的設(shè)計(jì)與實(shí)現(xiàn)在《C語言程序設(shè)計(jì)》課程教學(xué)中的應(yīng)用
2.3.1動(dòng)態(tài)圓模糊區(qū)域分區(qū)圖
計(jì)算水中機(jī)器人中心與中心點(diǎn)的角度,如果結(jié)果在0-45度之間在Ⅰ區(qū)域,45度到90度在Ⅱ區(qū)域,以此類推。
動(dòng)態(tài)圓模糊區(qū)域分區(qū)圖的實(shí)現(xiàn),可以與《C語言程序設(shè)計(jì)》課程中的三種控制方式選擇,結(jié)合起來。重點(diǎn)介紹if-else switch-case的使用及其注意方法。
2.3.2以鄰居位置為參考點(diǎn)和中心點(diǎn)相結(jié)合的動(dòng)態(tài)圓隊(duì)形保持
通過計(jì)算判定出當(dāng)前智能體在動(dòng)態(tài)圓中所處的區(qū)域,判定出當(dāng)前所處的區(qū)域,找到前后的鄰居位置,計(jì)算出隊(duì)形是否保持完整,這里認(rèn)定每個(gè)智能體處于各自不同特定的區(qū)域并且與中心點(diǎn)的距離保持在某個(gè)閥值內(nèi)為保持好隊(duì)形。在與鄰居距離的判定(保持隊(duì)形)中,通過計(jì)算判定出當(dāng)前智能體在動(dòng)態(tài)圓中所處的區(qū)域與前、后鄰居的“距離”判斷(前鄰居為隊(duì)形中在當(dāng)前隊(duì)員之前的隊(duì)員,后鄰居為隊(duì)形中在當(dāng)前隊(duì)員之后的隊(duì)員)。若當(dāng)前智能體在Ⅶ,前鄰居智能體在Ⅵ,后鄰居智能體在Ⅷ,則當(dāng)前智能體與前鄰居智能體所在區(qū)域相差為1,與后鄰居水中機(jī)器人也相差1,則隊(duì)形保持完好,當(dāng)前水中機(jī)器人游向下一個(gè)目標(biāo)點(diǎn)即可,不許控制其他的水中機(jī)器人。在與中心距離的判定(保持隊(duì)形)中,如果偏出了,每個(gè)智能體的下個(gè)目標(biāo)點(diǎn),就等待。
通過繪制程序流程圖的繪制,將C語言中結(jié)構(gòu)體、循環(huán)結(jié)構(gòu)、函數(shù)應(yīng)用到水中機(jī)器人的控制中,實(shí)現(xiàn)水中機(jī)器人隊(duì)形(圓)保持。
2.3.3動(dòng)態(tài)圓的移動(dòng)
動(dòng)態(tài)圓的移動(dòng)關(guān)鍵在于領(lǐng)頭羊的選取和隊(duì)形調(diào)整。領(lǐng)航人這里選用動(dòng)態(tài)領(lǐng)航人。而由于平臺(tái)的擾動(dòng)相應(yīng)特性,具體時(shí)間智能體的角度和方向特性是不確定的,因此在某個(gè)時(shí)間點(diǎn)對(duì)應(yīng)的哪個(gè)智能體適合做第一條移動(dòng)的智能體(領(lǐng)頭羊)是不確定的。領(lǐng)頭羊的選取,在動(dòng)態(tài)圓分區(qū)圖中,如果某條魚處于Ⅵ區(qū)域,那么他的就是領(lǐng)頭羊,由他帶領(lǐng)移向下個(gè)圓形未知附近。在選定領(lǐng)頭羊后,后續(xù)的水中機(jī)器人跟著領(lǐng)頭羊移動(dòng)。到達(dá)預(yù)設(shè)區(qū)域后再按照?qǐng)A的移動(dòng)而移動(dòng)。在復(fù)雜環(huán)境確定移動(dòng)半徑,由領(lǐng)頭羊進(jìn)行探索。在動(dòng)態(tài)圓的移動(dòng)中,將動(dòng)態(tài)圓移動(dòng)領(lǐng)頭羊的選取封裝成為函數(shù),并帶返回值。在代碼的設(shè)計(jì)與實(shí)現(xiàn)過程中,重點(diǎn)里面參數(shù)是如何傳遞的。理解不同的返回值代表不同的含義。
3總結(jié)
在水中機(jī)器人2D仿真教育機(jī)器人平臺(tái)中,用水中機(jī)器人的編隊(duì)控制作為《C語言程序設(shè)計(jì)》的載體。在動(dòng)態(tài)圓的設(shè)計(jì)和實(shí)現(xiàn)案列中采用知識(shí)夠用的原則,用到什么知識(shí)點(diǎn)就講什么知識(shí)點(diǎn)不灌輸,學(xué)生主動(dòng)的去接受新知識(shí),讓學(xué)生在做中學(xué),學(xué)中做。《C語言程序設(shè)計(jì)》將采用生動(dòng)有趣的案列來開展,采用自主研發(fā)的平臺(tái)和通用平臺(tái)相結(jié)合的方法進(jìn)行實(shí)驗(yàn),推薦優(yōu)秀學(xué)生進(jìn)入項(xiàng)目組,資助學(xué)生自主研發(fā)小的課題?!禖語言程序設(shè)計(jì)》作為一門基礎(chǔ)入門的編程課,旨在激發(fā)學(xué)生的編程興趣和培養(yǎng)學(xué)生良好的分析問題解決問題的能力。在以后的工作中,將繼續(xù)探討好的方法、先進(jìn)的理念應(yīng)用到《C語言程序設(shè)計(jì)》中來。
參考文獻(xiàn)
[1]蔡瓊.基于MSRS的仿生機(jī)器魚水球比賽實(shí)時(shí)仿真系統(tǒng)[J].河南科技,2014,(3):13.
[2]孫小進(jìn).一種仿生機(jī)器魚游動(dòng)控制的研究[J].自動(dòng)化技術(shù)與應(yīng)用,2014,2(33)34.
[3]Batch T R ,Arkin R C. Behaviorbased Formation Control for Multirobot Teams[J].IEEE Transaction on Robotics And Automation,1998,(6):926939.