吳林漢
摘 要:機器人教學(xué)融合了機械原理、電子傳感器、計算機硬件及軟件算法等眾多先進技術(shù),它可以很好地激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)他們的創(chuàng)新思維和創(chuàng)新能力。在開展機器人項目教學(xué)研究時,有一些細節(jié)問題值得我們關(guān)注。本文從機器人的程序教學(xué)和參數(shù)調(diào)整兩個方面對機器人教學(xué)研究做了一定的梳理,期望對有志于研究機器人課堂教學(xué)的老師有一定的幫助。
關(guān)鍵詞:機器人; 程序教學(xué); 參數(shù)調(diào)整
中圖分類號:G633.67? ? ? ? ? ?文獻標(biāo)識碼:A? ? ? 文章編號:1006-3315(2020)12-032-002
最近幾年一個新興的名詞越來越多地出現(xiàn)在人們的視野中——人工智能。什么是人工智能?這是一個很復(fù)雜的概念,簡單地說,它是計算機科學(xué)的一個分支,它嘗試了解智能的本質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的機器,它的研究領(lǐng)域包括機器人、語言識別、圖像識別、自然語言處理和專家系統(tǒng)等??梢哉f人工智能將是未來一段時間甚至是很長時間人類進步的發(fā)展方向。而在人工智能這么多的研究領(lǐng)域中,機器人教育承擔(dān)起了將人工智能項目具體落實到中小學(xué)教育中的重任。
如果說人工智能是人類進步的發(fā)展方向,那么機器人教學(xué)就是中小學(xué)綜合學(xué)科的發(fā)展方向。機器人教學(xué)融合了機械原理、電子傳感器、計算機硬件及軟件算法等眾多先進技術(shù),它可以很好地激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)他們的創(chuàng)新思維和創(chuàng)新能力。不過,在中小學(xué)開展機器人項目教學(xué)研究時,有一些細節(jié)問題值得我們關(guān)注,如果能很好地解決這些問題,那么教師在教授過程中會避免很多不必要的麻煩,學(xué)生在學(xué)習(xí)過程中也會取得更好的效果。
一、結(jié)合學(xué)科知識講解程序命令
主控程序是機器人的靈魂,沒有程序的機器人只是一個徒有其表沒有任何作用的結(jié)構(gòu)。主控程序是由一條條可以執(zhí)行的命令組成,它規(guī)定著機器人的具體行為,它可能是中文也可能是英文,但不論在那種編程語言中,他都是由一個個單詞組成。所以在對學(xué)生講授命令的時候,要充分考慮學(xué)生已有的知識水平,盡量使用他們?nèi)菀桌斫獾姆绞?,不要一味地按照教科書講解。在進行命令編程教學(xué)的過程中,受限于中英文翻譯方式和對詞語理解的不同,我們經(jīng)常會碰到一些不太容易講授的命令,如果找不到好的方法,學(xué)生的理解就會非常困難。不過我們也不用太擔(dān)心,因為命令已經(jīng)被設(shè)計開發(fā)出來,就必然有他存在的作用。程序設(shè)計往往都是通過編寫多條命令相互配合進行工作,很少有獨立工作的命令。所以我們可以認(rèn)真仔細地思考一下,對于一些難以理解的命令語句,我們可以重新考慮它的設(shè)計原理,再將命令使用到的結(jié)構(gòu)部件進行相互聯(lián)系,配合所需要的學(xué)科知識,就一定會找到有效的解決方法。
例如:VEX機器人可以使用Graphical ROBOTC這樣一種圖形化的編程方式進行程序編寫,在進行VEX機器人的教學(xué)時,經(jīng)常會用到“前進”這樣一個非常簡單的動作。但是在這樣一種圖形化的編程語言中,前進有多種方式?!癴orward”是通過主控對機器整體發(fā)出前進命令,“setmotor”則是對具體的某個電機發(fā)出前進命令,還有一些其他的命令,它們都可以達到相同的效果。那么為什么一個簡單的前進命令要分為這么多種操作方式呢?如果不能很好地將這幾種命令進行區(qū)分講解,就會對學(xué)生造成一定的困擾,究竟該用哪一種命令讓機器人做出前進移動?!癴orward”命令簡單易懂,實現(xiàn)的效果就是讓機器人整體向前移動?!皊etmotor”命令的使用方法則有不同。如果想使用“setmotor”命令讓機器人移動,通常要配合使用“wait”時間命令,這是為什么呢?因為“setmotor”命令默認(rèn)規(guī)定的是機器人電機的功率(當(dāng)然也可以使用其他參數(shù)),你可以簡單地理解成電機轉(zhuǎn)動的速度,數(shù)值越大速度越快,數(shù)值越小速度越慢。物理學(xué)公式告訴我們,速度×?xí)r間=距離。所以如果你希望使用“setmotor”命令來將機器人移動到一個你需要的位置,就一定要使用“wait”時間命令。也許有人會發(fā)現(xiàn)不使用“wait”命令機器人也能行走起來,那是因為如果你沒有設(shè)置時間參數(shù),主控程序就會默認(rèn)你的時間參數(shù)是∞無窮大。此時如果不配合使用其他命令,你的機器人將會一直行走直到電池耗盡。
這樣一講解是否就讓學(xué)生易于理解了呢?其實類似這樣的情況還有很多,往往都是因為幾個不同命令去控制同一種動作的情況,所以這時我們不如換個思路,結(jié)合一下學(xué)科知識,說不定就能找出讓學(xué)生易于理解的講授方法。
二、針對實際情況調(diào)整程序參數(shù)
對機器人進行程序設(shè)計,就是希望它能按照設(shè)計者的意圖完成各種任務(wù)。但并不是程序編寫完就算完成任務(wù)了,對已經(jīng)編寫好的程序進行參數(shù)調(diào)整是一個很重要的過程,它決定著機器人能否精準(zhǔn)和有效的運行。調(diào)整參數(shù)并不是靠想象和猜測就可以完成的,它需要有切實的根據(jù),我認(rèn)為可以將參數(shù)調(diào)整大致分為兩個方面:1.根據(jù)機器人的物理結(jié)構(gòu)進行參數(shù)調(diào)整,2.根據(jù)真實環(huán)境的狀況測試進行參數(shù)調(diào)整。
1.根據(jù)機器人的物理結(jié)構(gòu)進行參數(shù)調(diào)整
在學(xué)習(xí)機器人的初期,大家使用的機器人幾乎都是一樣的,它是根據(jù)教學(xué)需要而使用的基礎(chǔ)機型。但是隨著學(xué)習(xí)的深入以及競賽的需要,每一臺機器人的設(shè)計都是不一樣的。它包含著任務(wù)完成的需要以及機器設(shè)計者的思維方法。所以需要根據(jù)機器人設(shè)計的物理結(jié)構(gòu)進行具體的參數(shù)調(diào)整,不能“一概而論”。
例如:通常情況下,為了保證機器人行走的穩(wěn)定,設(shè)計者會設(shè)計3或4個輪子,而根據(jù)機器的結(jié)構(gòu)需要和電機的有效利用,通常會使用不同數(shù)量的電機進行控制。有的設(shè)計者喜歡用電機控制前面兩個輪子,這樣設(shè)計出來的機器人就是前驅(qū)結(jié)構(gòu),前輪主動后輪從動。有一些設(shè)計者則喜歡用電機控制后面兩個輪子,這樣設(shè)計出來的機器人就是后驅(qū)結(jié)構(gòu),后輪主動前輪從動。就是這樣一個小小的區(qū)別,在調(diào)整參數(shù)時就會有很大的不同。在進行轉(zhuǎn)彎參數(shù)調(diào)整的時候,前驅(qū)結(jié)構(gòu)的機器人因為是前輪帶動后輪,這樣的物理特性就導(dǎo)致了它會出現(xiàn)“轉(zhuǎn)向不足”的情況,車頭比車尾先完成轉(zhuǎn)彎,而實際上整個機器人小車并沒有完全完成轉(zhuǎn)彎。所以針對這種類型的機器人,在進行轉(zhuǎn)彎參數(shù)調(diào)整的時候,就要將轉(zhuǎn)角調(diào)整得略大一些。那么后驅(qū)結(jié)構(gòu)的機器人則剛好相反,它的物理特性決定了它會出現(xiàn)“轉(zhuǎn)向過度”的情況。當(dāng)后輪完成轉(zhuǎn)向的時候,前輪已經(jīng)進行了過度的轉(zhuǎn)向,所以則要將轉(zhuǎn)角調(diào)整的小一些。當(dāng)然在條件允許的情況下,我們也可以將機器人小車設(shè)計成四驅(qū)結(jié)構(gòu),這樣我們調(diào)整的轉(zhuǎn)角參數(shù)就介于前驅(qū)和后驅(qū)之間。
2.真實環(huán)境的測試調(diào)參
在對機器人進行設(shè)計程序的時候,我們通常會根據(jù)腦海中對真實任務(wù)環(huán)境記憶的印象進行編程。但這只是一個理想化的設(shè)計,并不能代表機器人最終執(zhí)行的情況,它執(zhí)行的結(jié)果可能和我們設(shè)計的思路很接近,也有可能相差很遠。所以在設(shè)計完程序之后,很重要的一個步驟就是在真實環(huán)境中進行測試調(diào)參。(在機器人競賽的時候,也會有勘察場地這樣一個重要環(huán)節(jié)。)
(1)地面環(huán)境。同樣是機器人的行走設(shè)計,采用不同材質(zhì)的輪子,在不同的表面進行移動,因為他們的摩擦力不同,都會有不同的結(jié)果。一般情況下,設(shè)計者為了追求完成任務(wù)的速度,會將機器人電機的功率調(diào)整的比較大,這樣機器人行走起來會很快,完成任務(wù)的時間也會更短。但如果在表面比較光滑的場地進行移動時,這樣的設(shè)計會讓機器人在該停的地點停不下來,或者移動中有偏差,導(dǎo)致誤差比較大,針對這種情況就可以考慮讓機器人在停止之前做一個減速操作,這樣就可以使任務(wù)完成的更加高效精準(zhǔn)。
(2)燈光環(huán)境?,F(xiàn)在很多機器人套件都加上了一些傳感器,這樣可以幫助機器人完成更多更復(fù)雜的任務(wù),也有越來越多的任務(wù)要求機器人按照場地線路行走完成。這就要求機器人使用色度(灰度)傳感器進行巡線操作。但是在具體調(diào)參的時候,我們會發(fā)現(xiàn)一個很嚴(yán)重的問題,那就是書本上給出的參數(shù)數(shù)值,在實際環(huán)境中屢屢出錯。原因就是現(xiàn)場的燈光環(huán)境。由于場地表面會反射現(xiàn)場的光,而使用傳感器監(jiān)測的數(shù)值也是由光線反射而來,那么同樣的場地,在暖色光源下的反射數(shù)值和在冷色光源下的反射數(shù)值是不一樣的,在其他不同環(huán)境光下測出的數(shù)值也會不一樣。這就需要設(shè)計者在設(shè)計完成之后,根據(jù)現(xiàn)場環(huán)境進行調(diào)參,這樣調(diào)整出來的參數(shù)才是最符合實際需要的,也才能讓機器人更準(zhǔn)確地完成現(xiàn)場任務(wù)。
機器人程序的參數(shù)調(diào)整過程和物理、化學(xué)學(xué)科中的實驗過程很相似,不僅要根據(jù)任務(wù)要求量身設(shè)計程序(實驗),還要考慮現(xiàn)場情況對調(diào)整參數(shù)(實驗數(shù)據(jù))進行調(diào)整,一切都從目標(biāo)任務(wù)中來,又都還原到實際情境中去。也許這也體現(xiàn)了機器人教學(xué)的另一種本質(zhì)。
機器人教學(xué)不僅僅是機械原理、電子傳感器、計算機軟硬件的結(jié)合,更重要的是培養(yǎng)學(xué)生分析問題、解決問題的能力,我們需要關(guān)注的也不能局限于學(xué)生在數(shù)學(xué)、物理、科學(xué)、信息技術(shù)等學(xué)科方面的知識掌握情況,更應(yīng)該關(guān)注他們是如何將這些學(xué)科知識融會貫通,并根據(jù)不同任務(wù)要求,應(yīng)用到實際情境中。可以說機器人教育是一種更能體現(xiàn)學(xué)科融合和能力應(yīng)用的教育。也或許正是因為這樣一種更加高級的教育方式,才讓學(xué)生如此喜愛它吧。