999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NAO機(jī)器人的《數(shù)據(jù)結(jié)構(gòu)實驗》教學(xué)輔助系統(tǒng)設(shè)計與實現(xiàn)

2018-04-03 07:11:03華中師范大學(xué)計算機(jī)學(xué)院莊章璐黃世亮許思慧
電子世界 2018年5期
關(guān)鍵詞:界面實驗系統(tǒng)

華中師范大學(xué)計算機(jī)學(xué)院 莊章璐 彭 熙 黃世亮 許思慧 艾 晶

1 引言

NAO機(jī)器人是一款由軟銀(Softbank)公司研發(fā)并生產(chǎn)的雙足類人機(jī)器人。它擁有25個自由度,以及包括超聲波、慣性、壓力等多種傳感器,同時也有著討人喜歡的外觀。該機(jī)器人可在Windows、Mac、Linux操作系統(tǒng)下運行,可用C++、Python、MATLAB等語言進(jìn)行編程與操作[1]。在世界范圍內(nèi),已有50多個國家的550多所高校和實驗室購買此款機(jī)器人作為研究工具[2]。NAO機(jī)器人是在學(xué)術(shù)研究領(lǐng)域運用最廣泛的類人機(jī)器人之一。近年來,很多高校在機(jī)器人教學(xué)改革中取得了一些成果[3],利用NAO機(jī)器人進(jìn)行教學(xué)是一個很好的選擇[8]。使用NAO機(jī)器人教學(xué)可以使教學(xué)過程更加生動有趣,更能激發(fā)學(xué)生的想象力、培養(yǎng)學(xué)生的動手能力[7]。本文以數(shù)據(jù)結(jié)構(gòu)實驗為課堂案例進(jìn)行教學(xué)實踐,將傳統(tǒng)與創(chuàng)新相結(jié)合,實踐教學(xué)設(shè)計貫徹趣味性、實用性、系統(tǒng)性的原則[4]。

2 系統(tǒng)設(shè)計與實現(xiàn)

2.1 編程語言的選擇

本系統(tǒng)綜合利用C++與C#的交互實現(xiàn)軟件的各個功能。本校數(shù)據(jù)結(jié)構(gòu)實驗教學(xué)采用的是C語言,NAO機(jī)器人官方提供的SDK為C++語言,C++語言兼容C語言,故本系統(tǒng)采用C++語言作為主要編程語言。此外,系統(tǒng)使用Microsoft Visual Studio中的C#語言進(jìn)行軟件界面的設(shè)計,C#是由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言[5],在繼承C和C++強(qiáng)大功能的同時去掉了它們的一些復(fù)雜特性[9]。

2.2 系統(tǒng)的功能結(jié)構(gòu)

本系統(tǒng)可供學(xué)生學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)實驗》以及教師了解學(xué)生的學(xué)習(xí)情況,系統(tǒng)的功能結(jié)構(gòu)如圖1所示。系統(tǒng)包括四個模塊:(1)登錄模塊,賬號分為學(xué)生、教師兩個身份;(2)信息查詢模塊,教師登錄后可查詢學(xué)生信息以及學(xué)生的學(xué)習(xí)情況;(3)學(xué)習(xí)功能模塊,包括體驗學(xué)習(xí)、基礎(chǔ)測試和進(jìn)階測試三個功能;(4)機(jī)器人交互模塊,在相應(yīng)界面輸入IP地址可連接機(jī)器人,學(xué)生學(xué)習(xí)時輸入不同的數(shù)據(jù),機(jī)器人做出相應(yīng)的反應(yīng)。該系統(tǒng)可用于課堂上的編程教學(xué),使用機(jī)器人來講解程序;老師可以使用該系統(tǒng)查看學(xué)生的學(xué)習(xí)情況;學(xué)生也可以通過該系統(tǒng)與機(jī)器人進(jìn)行代碼上的交流。

圖1 系統(tǒng)功能結(jié)構(gòu)

2.2.1登錄模塊設(shè)計

在初次進(jìn)入軟件登錄界面時,用戶點擊“注冊”按鈕填寫相關(guān)信息進(jìn)行注冊,用戶身份分為學(xué)生和教師兩種,這兩種身份賬號登錄后進(jìn)入的界面以及實現(xiàn)的功能不同。例如,學(xué)生用戶登錄后可進(jìn)行自主學(xué)習(xí),教師用戶登錄后可查詢學(xué)生信息及學(xué)習(xí)情況。注冊后,每次登錄時通過將相應(yīng)用戶名、密碼與數(shù)據(jù)庫中信息相匹配,匹配成功則進(jìn)入系統(tǒng)。

圖2 學(xué)生體驗主界面

2.2.2信息查詢模塊設(shè)計

教師登錄系統(tǒng)后,通過輸入學(xué)生的姓名或?qū)I(yè)名稱,進(jìn)而查看學(xué)生們近期的學(xué)習(xí)情況及相應(yīng)學(xué)生的詳細(xì)信息;同樣,教師也可以通過為教師界面預(yù)留的接口進(jìn)入學(xué)生界面進(jìn)一步體驗。學(xué)生體驗主界面如圖2所示。

2.2.3學(xué)習(xí)功能模塊設(shè)計

學(xué)習(xí)模式分為體驗學(xué)習(xí)、基礎(chǔ)測試、進(jìn)階測試三個模塊,在每一個模塊下又有一些相應(yīng)的具體實例。學(xué)習(xí)模式框架如圖3所示。

圖3 學(xué)習(xí)模式框架

體驗學(xué)習(xí)的主要功能是讓學(xué)生體驗相應(yīng)的數(shù)據(jù)結(jié)構(gòu)算法,深入理解數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)內(nèi)容。它以體驗為目的,讓學(xué)生自行輸入數(shù)據(jù),機(jī)器人進(jìn)行播報結(jié)果并進(jìn)行相應(yīng)講解。基礎(chǔ)測試是通過給定的算法代碼描述和輸入的數(shù)據(jù),學(xué)生填寫輸出結(jié)果,機(jī)器人對學(xué)生輸入的答案進(jìn)行判斷,并給出肯定或否定的結(jié)論。進(jìn)階測試是給定輸入、輸出及部分代碼,學(xué)生對空缺的關(guān)鍵代碼進(jìn)行填空,NAO機(jī)器人同樣會對學(xué)生填入的信息進(jìn)行判斷并在肢體上或語言上做出相應(yīng)的反應(yīng)。

2.2.4機(jī)器人交互模塊設(shè)計

學(xué)生登錄后,即可通過局域網(wǎng)連接機(jī)器人并進(jìn)行相應(yīng)的《數(shù)據(jù)結(jié)構(gòu)實驗》學(xué)習(xí)。機(jī)器人連接成功后,用戶可以調(diào)節(jié)機(jī)器人說話的音量大小,實現(xiàn)在學(xué)習(xí)過程中與機(jī)器人進(jìn)行交互。

圖4 機(jī)器人交互過程流程圖

機(jī)器人交互過程流程如圖4所示。機(jī)器人交互控制主要基于NAO機(jī)器人自身的NAOqi操作系統(tǒng)所提供的C++ SDK進(jìn)行二次開發(fā)。因為NAOqi系統(tǒng)涉及多語言開發(fā),所以在二次開發(fā)的過程中需要使用qibuild、cmake等工具進(jìn)行交叉編譯。PC端發(fā)送的代碼在NAOqi系統(tǒng)中交叉編譯成功后,即可調(diào)用C++ SDK API接口中的相應(yīng)方法控制機(jī)器人的對應(yīng)模塊。

在使用系統(tǒng)的主要學(xué)習(xí)功能時,學(xué)生登錄后,輸入實驗數(shù)據(jù),C#調(diào)用C++程序編譯后的動態(tài)鏈接庫中相應(yīng)的dll文件[12],運行代碼得到結(jié)果,再將結(jié)果發(fā)送給機(jī)器人[10]。NAO機(jī)器人經(jīng)過交叉編譯調(diào)用相關(guān)方法后,語音播報結(jié)果,完成實驗。除此之外,系統(tǒng)利用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),C#代碼實現(xiàn)數(shù)據(jù)庫的基本功能,從而實現(xiàn)軟件中登錄、注冊、查詢等操作。系統(tǒng)所涉及的主要數(shù)據(jù)流如圖5所示。

圖5 系統(tǒng)數(shù)據(jù)流動圖

系統(tǒng)利用NAOqi操作系統(tǒng)中的C++ SDK提供的API接口進(jìn)行機(jī)器人控制。以控制機(jī)器人說話為例,采取調(diào)用NAOqi_C++_SDK中ALAnimatedSpeechProxy類中say方法來實現(xiàn)。關(guān)鍵代碼如下:

因為此函數(shù)只是作為外部函數(shù)使用[13],所以以extern進(jìn)行修飾并將其編譯為dll動態(tài)鏈接,然后在主程序中添加生成的dll位置進(jìn)行使用[11]。調(diào)用時的關(guān)鍵代碼如下:

3 實驗教學(xué)實例

系統(tǒng)設(shè)計完成后,在實驗教學(xué)中進(jìn)行了測試。將NAO機(jī)器人應(yīng)用于《數(shù)據(jù)結(jié)構(gòu)實驗》課堂,這是一個全新的嘗試。以“冒泡排序”為例,體驗學(xué)習(xí)為新課學(xué)習(xí)階段,學(xué)生輸入任意常規(guī)數(shù)據(jù),機(jī)器人報出結(jié)果,點擊“講解”,機(jī)器人會講解代碼實現(xiàn)過程。基礎(chǔ)測試為復(fù)習(xí)鞏固階段,對應(yīng)題型“程序分析題”,根據(jù)代碼和輸入填寫結(jié)果,檢測學(xué)生是否讀懂代碼。進(jìn)階測試為提高學(xué)習(xí)階段,對應(yīng)題型“程序填空題”,將已有代碼補(bǔ)寫完整實現(xiàn)其功能,培養(yǎng)學(xué)生編程能力。

以“體驗學(xué)習(xí)”功能為例,實驗過程如圖6所示。學(xué)生輸入用戶名及密碼登錄系統(tǒng)即進(jìn)入主界面,點擊“連接”圖標(biāo),輸入IP地址連接機(jī)器人。連接機(jī)器人成功后,點擊“模式”圖標(biāo),選擇“體驗學(xué)習(xí)”功能,再選中“冒泡排序”實例,進(jìn)入功能子界面。在指定位置輸入數(shù)據(jù),如圖7所示。點擊“確定”后,系統(tǒng)運行代碼,將結(jié)果傳輸給機(jī)器人,機(jī)器人播報結(jié)果。如圖8所示,系統(tǒng)界面上也相應(yīng)地顯示實驗結(jié)果。

圖6 實驗過程流程圖

圖7 學(xué)生輸入數(shù)據(jù)

圖8 代碼運行后結(jié)果

4 結(jié)束語

NAO機(jī)器人是一款人形智能機(jī)器人,有著討人喜歡的外形,具備有一定水平的人工智能,能夠與人親切互動。本文綜合利用C++與C#語言,設(shè)計并實現(xiàn)了《數(shù)據(jù)結(jié)構(gòu)實驗》教學(xué)輔助系統(tǒng)。該系統(tǒng)充分發(fā)揮NAO機(jī)器人的特點,讓學(xué)生利用已學(xué)的數(shù)據(jù)結(jié)構(gòu)知識控制機(jī)器人的模塊,將學(xué)生感到比較枯燥的數(shù)據(jù)結(jié)構(gòu)實驗變得有趣起來,提高了學(xué)生對數(shù)據(jù)結(jié)構(gòu)實驗的感性認(rèn)識,加深其對數(shù)據(jù)結(jié)構(gòu)知識的理解,增強(qiáng)了編程實驗對學(xué)生的吸引力[6]。使用本系統(tǒng),不僅學(xué)生能享受更加豐富有趣的課堂教學(xué),教師也能利用NAO機(jī)器人作為教學(xué)工具。該系統(tǒng)在實際教學(xué)中已投入應(yīng)用,取得了較好的教學(xué)效果。

[1]Robotics Banks[EBOL].https://www.ald.softbankrobotics.com/en/robots/nao.

[2]Nao 機(jī)器人-百度百科[EBOL].https://baike.baidu.com/item/NAO/18025769.

[3]王振,張星.NAO機(jī)器人平臺的創(chuàng)新實驗設(shè)計與實現(xiàn)[J].實驗室研究與探索,2016,35(12):156-159.

[4]王韋偉,鞏雪潔.基于機(jī)器人的實踐教學(xué)改革[J].中國教育技術(shù)裝備,2017,16(92):55-57.

[5]C#-百度百科[EBOL].https://baike.baidu.com/item/c%23/195147?fr=aladdin.

[6]張仁彥,劉孟茹,孔凡超,等.基于Python的Nao機(jī)器人實驗系統(tǒng)設(shè)計[J].中國現(xiàn)代教育裝備,2017(257):4-6.

[7]王曉軍,王宇嘉,陳劍雪,等.NAO機(jī)器人在《運動控制概論》實驗教學(xué)中的應(yīng)用[J].課程教育研究,2015,10(上旬刊):210.

[8]劉小峰,周旭,汪建明,等.大學(xué)生創(chuàng)新技能培養(yǎng)的NAO機(jī)器人交互平臺[J].實驗室研究與探索,2016,35(3):147-151.

[9]王欣,黎峰.新型的面向?qū)ο蟮木幊陶Z言——C#[J].計算機(jī)工程與技術(shù),2004,25(6):929-931.

[10]趙旸.多媒體教學(xué)平臺與C#程序設(shè)計[J].中國科教創(chuàng)新導(dǎo)刊,2011(4):93-94.

[11]李偉.C#調(diào)用VC++動態(tài)鏈接庫的研究[J].測控技術(shù),2013,3(25):105-108.

[12]彭四偉,蔣尚秀.一種用C++動態(tài)擴(kuò)展C#程序的方法[J].微計算機(jī)信息,2010,26(4-3):15-18.

[13]彭召意,趙菁菁.C++中類的構(gòu)造函數(shù)探究和使用[J].企業(yè)科技與發(fā)展,2016,(420):50-53.

猜你喜歡
界面實驗系統(tǒng)
記一次有趣的實驗
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
國企黨委前置研究的“四個界面”
做個怪怪長實驗
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
人機(jī)交互界面發(fā)展趨勢研究
NO與NO2相互轉(zhuǎn)化實驗的改進(jìn)
主站蜘蛛池模板: 国产手机在线ΑⅤ片无码观看| 久久人搡人人玩人妻精品| 国产精品熟女亚洲AV麻豆| 精品少妇三级亚洲| 久久国产高清视频| 中文国产成人久久精品小说| 波多野结衣久久高清免费| 黄片在线永久| www欧美在线观看| 中文字幕2区| 国产特级毛片aaaaaa| 国产成人精品一区二区三区| 亚洲欧美不卡中文字幕| 91国内在线视频| 久久久久亚洲精品成人网| 91久久青青草原精品国产| 国产高颜值露脸在线观看| 欧美自慰一级看片免费| 国产精品亚洲片在线va| 欧美人与动牲交a欧美精品| 亚洲精品免费网站| 澳门av无码| 狠狠做深爱婷婷综合一区| 亚洲热线99精品视频| 91色国产在线| 99久久成人国产精品免费| 无码中文AⅤ在线观看| 国产精品无码AV中文| 91成人在线观看视频| www精品久久| 成人福利在线视频| 最新无码专区超级碰碰碰| 欧美性久久久久| 日韩无码真实干出血视频| 欧美a√在线| 亚洲AV永久无码精品古装片| 亚洲日韩国产精品无码专区| 国产在线观看一区二区三区| 色妺妺在线视频喷水| 色综合综合网| 久久永久精品免费视频| 久久男人资源站| 国产自产视频一区二区三区| 国产美女无遮挡免费视频| 92午夜福利影院一区二区三区| 亚洲一区二区三区在线视频| 亚洲人成网址| 丁香五月婷婷激情基地| 国产精品女熟高潮视频| 这里只有精品在线播放| 精品综合久久久久久97超人| 久久精品91麻豆| 很黄的网站在线观看| 3p叠罗汉国产精品久久| 日本三级欧美三级| 91精品国产丝袜| 亚洲人成网站在线播放2019| 992tv国产人成在线观看| 亚洲黄色成人| 国产欧美高清| 成年人视频一区二区| 香蕉eeww99国产在线观看| 黄色福利在线| 91国内在线观看| 中文天堂在线视频| 日韩欧美国产中文| 国产香蕉一区二区在线网站| 精品成人一区二区| 97国产在线视频| 国产成人一级| 19国产精品麻豆免费观看| 亚洲资源站av无码网址| 日韩欧美高清视频| 一级爆乳无码av| 久久久久国产一级毛片高清板| 91久久偷偷做嫩草影院| 污污网站在线观看| 麻豆精品国产自产在线| 国产sm重味一区二区三区| 一本大道香蕉高清久久| 欧美日韩国产成人高清视频| 国产成人免费手机在线观看视频 |