■山東省臨沂市第十九中學(xué) 徐書晗
我在第18屆山東省青少年機(jī)器人競(jìng)賽中獲得了機(jī)器人綜合技能項(xiàng)目的冠軍,并作為該項(xiàng)目山東省的唯一代表參加了全國大賽,最終獲得二等獎(jiǎng)。
要想在機(jī)器人綜合技能大賽中取得優(yōu)異的成績(jī),出色的編程能力必不可少。以下是我的一些“秘訣”。
很多人認(rèn)為,要讓機(jī)器人靈活地前進(jìn)、后退、左轉(zhuǎn)或右轉(zhuǎn),只要在編程軟件中輸入相應(yīng)的代碼就可以了。事實(shí)上,機(jī)器人編程非常考驗(yàn)編程者對(duì)機(jī)器人以及程序的熟悉度。
比如,綜合技能中有一項(xiàng)放乒乓球的任務(wù),機(jī)器人需脫線后用馬達(dá)控制前進(jìn)的距離。問題來了:機(jī)器人馬達(dá)要用怎樣的速度才能更準(zhǔn)、更快地完成任務(wù)?如果機(jī)器人的兩個(gè)馬達(dá)運(yùn)行速度不一樣,編程時(shí)要如何設(shè)置速度差才能使兩個(gè)馬達(dá)實(shí)際運(yùn)行時(shí)速度一樣?
如果不熟悉機(jī)器人的性能,比賽時(shí)就只能一點(diǎn)一點(diǎn)編程、調(diào)試,而且程序還不一定寫得好。機(jī)器人調(diào)試不好,編程時(shí)間被大量耗費(fèi),最終成績(jī)自然不會(huì)太理想。因此,只有熟悉機(jī)器人的性能才能在賽場(chǎng)上靈活貫通,準(zhǔn)確、迅速地編寫最適合機(jī)器人性能的程序。
再比如,機(jī)器人完成所有任務(wù)所用的程序中,有時(shí)要求機(jī)器人轉(zhuǎn)彎必須轉(zhuǎn)正,以更好地完成后面的任務(wù),所以比賽時(shí)一定要保證馬達(dá)轉(zhuǎn)彎的精確度,當(dāng)發(fā)現(xiàn)機(jī)器人轉(zhuǎn)彎角度偏小或偏大時(shí)要微調(diào)轉(zhuǎn)彎的子程序??扇绻幊陶邔?duì)整套程序不熟悉,只知道這個(gè)模塊可以轉(zhuǎn)彎卻不知道如何修改模塊后面的子程序,機(jī)器人的運(yùn)行就難以精準(zhǔn)。
所以,無論是綜合技能還是其他需要編程的項(xiàng)目,編程者要對(duì)機(jī)器人以及程序非常熟悉,“熟”是編程者取勝的最基本的條件。
對(duì)機(jī)器人及程序十分熟悉后,我們要追求機(jī)器人運(yùn)行時(shí)的“穩(wěn)”。機(jī)器人的獨(dú)特魅力在于它的不穩(wěn)定性,同一個(gè)程序、同一個(gè)機(jī)器人在同一種環(huán)境中運(yùn)行,第一次成功后一定要試第二次、第三次,因?yàn)橛锌赡苊恳淮蔚慕Y(jié)果都不一樣。
如何提高機(jī)器人運(yùn)行的穩(wěn)定性?一是完善硬件,比如經(jīng)常擦輪子或根據(jù)情況改造機(jī)器人。二是從編程角度,多試、多練、多修改,最大可能地排除因程序問題造成的機(jī)器人運(yùn)行不穩(wěn)定。
徐書晗在第18屆山東省青少年機(jī)器人競(jìng)賽中現(xiàn)場(chǎng)編程
參加全國大賽之前的一段時(shí)間,我每天都會(huì)練習(xí)。第一天我只編寫了一個(gè)循跡板循一個(gè)七路口的程序就直接走完了一個(gè)板塊,并且試了幾次都很成功。但是第二天,有一兩次機(jī)器人循線后車頭的方向是歪的,這就導(dǎo)致之后機(jī)器人馬達(dá)走線都會(huì)走歪,所以必須修改程序。我把以前的路口循線改成了慢速時(shí)間模塊循線,使每次循線后機(jī)器人的方向都一樣,最后用馬達(dá)轉(zhuǎn)正,以此保證機(jī)器人運(yùn)行的穩(wěn)定性。
這里的“技”并不是技術(shù),而是技巧。我總結(jié)了兩個(gè)技巧:一是建立子程序。綜合技能是完成幾個(gè)任務(wù),每個(gè)任務(wù)的走線可能不同,但做某個(gè)任務(wù)時(shí)機(jī)器人各個(gè)伺服、馬達(dá)運(yùn)行的角度、速度、先后順序等都一樣。因此,可提前編好每個(gè)任務(wù)的程序,再把這些任務(wù)做成子程序,每次用到時(shí)直接提取并簡(jiǎn)單微調(diào),既節(jié)省時(shí)間又準(zhǔn)確。
二是根據(jù)情況靈活變通。比如我編程時(shí)會(huì)編寫兩個(gè)程序,一個(gè)求穩(wěn)一個(gè)求快,根據(jù)其他選手機(jī)器人的運(yùn)行情況以及自己機(jī)器人的總體發(fā)揮情況靈活選擇。
再比如,我會(huì)利用比賽中重試的規(guī)則編寫兩三個(gè)程序,有的只做第二個(gè)任務(wù),有的只做第三個(gè)任務(wù),機(jī)器人第一個(gè)任務(wù)失敗后,重試時(shí)我就啟動(dòng)機(jī)器人只做第二個(gè)任務(wù)的程序,這樣能節(jié)省時(shí)間,完成更多任務(wù)。
運(yùn)用這些技巧,在棋逢對(duì)手時(shí)就會(huì)比對(duì)方有更大的把握取勝。因此,伯仲之間,“技”字決勝。
徐書晗在第二十屆全國中小學(xué)電腦制作活動(dòng)現(xiàn)場(chǎng)