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