作為一名有多年經(jīng)驗的青少年機器人競賽教練員,我在此就FLL挑戰(zhàn)任務具體技術思路方面分享一些經(jīng)驗,亦與各位教練員共勉。FLL機器人工程挑戰(zhàn)賽是一項青少年國際機器人比賽項目,整個競賽分為現(xiàn)場競技、技術問辯、課題研究幾個部分,在培養(yǎng)青少年機器人興趣和技能的同時鼓勵他們關注社會,積極運用科學技術解決各種問題。每年競賽組委會都會以一個世界熱點話題為主題,現(xiàn)場競賽部分在一塊場地上圍繞這個主題設計十余項任務,由機器人完成,并且要求參賽團隊結合生活對這個主題開展課題研究,最后還要在技術問辯時進行課題介紹和展示團隊風采,這也是對參加活動青少年的一次綜合、全面的考查。
總體設計
不管是建造高樓大廈還是編寫軟件,都是從總體設計開始的,ELL挑戰(zhàn)任務方案也不例外。學生,尤其是低年級的學生,易傾向于卷起袖子就干,直接搭建機器人主體部分,然后根據(jù)不同任務添加不同策略物,一旦中途發(fā)現(xiàn)方案不可行極可能要放棄此方案重新再設計,造成不必要的時間浪費。一個好的方案第一步應該是先從整體考慮的,結合自身的條件綜合分析各項任務,哪些任務要做,哪些不做,哪些一塊兒做,用什么方法去實現(xiàn),等等,這些都要在腦海中勾畫出輪廓,某些關鍵的細節(jié)方面可能需要先做出雛形試驗,然后估算其可行性。這一步非常重要,也是培養(yǎng)學生創(chuàng)新意識、鍛煉學生綜合思考能力的一環(huán)。直覺思維傾向的學生在這方面有相對優(yōu)勢,在學生組隊的時候應盡量搭配好。
2012年ELL主題是食品安全,挑戰(zhàn)任務難度是歷年最高的,以學生今年參賽方案總體設計舉例:
①自身條件:有足夠的樂高器材;學生也比較有經(jīng)驗,結構較復雜集成度較高的方案應該能設計出來。
②任務選擇分析:理想的分時比452分/150秒≈3分/秒,單個任務來看分時比最高的是細菌任務,遠高于3分/秒,清除污染、收割機、比薩、冰淇淋等任務分時比較低,分時比高的任務應盡量優(yōu)先。當然考慮到一次完成多個任務的情況,各任務的分時比是會變動的,是否需要放棄哪些任務還得看最終的方案。
③任務分析設計:南面靠墻的幾個任務在一條線上,可以一塊兒完成;西面的一些任務亦是距離較近,可一塊兒完成;東面的細菌、比薩、溫度計等任務亦可以一塊兒完成;北面的老鼠任務是競爭性的,要不要做還需根據(jù)最終方案來決定;送細菌到洗手池任務分時比最高,確保穩(wěn)定再謀速度。
④結構分析設計:任務較多,難度較大,主體和策略物需分離才能更好地完成任務,而且更換策略物須方便快捷;可能的話,主體的馬達數(shù)量應盡量少,以騰出第3個馬達來完成更多的任務。
⑤比賽經(jīng)驗分析:比賽時難免有意外因素,需要預留足夠的時間以防意外事情發(fā)生,如預留15秒時間。因此訓練時不能把150秒全部用完,哪怕放棄一些任務。
能量與力
在設計具體結構之前,先分析能量與力,作為結構設計的依據(jù)。因為不管用什么方法去完成任務,總要有能量,總會在力這方面得到體現(xiàn),所以從這個角度去看問題會更加清晰。
例如,學生在設計機器人去完成任務時一般首先想到的是直接使用馬達。問題在于機器人行走就使用了2個馬達,只剩下1個馬達去做任務了,所做有限。其實從能量這個角度去看,行走馬達已經(jīng)提供了能量,主體部分在行走時已經(jīng)帶有動能,可以設計合理的結構,利用這個動能獲得力去完成任務。再如,以今年FLL挑戰(zhàn)任務為例,如果只是希望把東北方向的細菌清空出場地上的話,只要輕輕觸碰開關即可,只需很少的能量即可完成,很容易想到彈射一個球出去碰撞開關的方法,因為這方法所需能量幾乎是最少的。
從力的角度看,除馬達外,有很多其他方法可以獲得力以完成任務,如彈力、重力、摩擦力、壓力等。
彈力:橡皮筋是最可以靈活實用的彈力裝置,因為可以在基地拉緊橡皮筋,如此機器人則攜帶了彈性勢能在里面,出基地后可以用于完成任務。橡皮筋也不一定要在基地拉緊,從能量轉換的角度來看,出基地后馬達的能量也可以用來拉緊橡皮筋,或者其他形式的能量都可以相互轉換。順便一提,并非只有橡皮筋、彈簧等能提供彈力,可根據(jù)需要而定,不必拘泥,如一些軟軸也多少具有一定的彈性。
重力:司空見慣了,大家反倒容易疏忽了重力,盡管下意識地會利用它。從能量角度來看,基地是個立體空間,意味著機器人在那里可以獲得一些重力勢能,出基地后就可以加以利用,一般可以去完成基地附近的任務。以今年FLL挑戰(zhàn)任務為例:如果希望完成北面的黃色小球任務、收割機上的玉米掉場地上或者基地旁邊的粉色細菌掉場地上,那么可以在基地豎起一個策略物,機器人離開基地時,此策略物整個倒下去(同時離開基地)完成以上任務。此方法的好處是利用了“免費的”重力勢能去完成任務,讓機器人騰出更多的時間去做其他任務。
摩擦力:摩擦力是把雙刃劍,有利有弊。很多時候我們都在想辦法避免摩擦,如機器人頂著圍欄走的時候加個輪子以減小摩擦;有的時候摩擦力卻可以加以利用幫助機器人去完成任務。
壓力:氣泵就是典型的利用氣體壓力的裝置,最常見的物體接觸產(chǎn)生的力也屬于壓力范疇。
當然還有其他形式的力,如有需要,都可加以利用,不一而足,在此不再贅言。
具體結構
牢固穩(wěn)定、靈活高效、速度快的結構是我們共同的追求,結構設計得好,事半功倍。除物理知識外,建議大家多了解一些基本的機械方面的知識,做起來才順手,比如杠桿、,齒輪傳動變速、單向裝置、運動轉變、連接方法、觸發(fā)開關等。
機器人結構須牢固,重心位置合理,防止行走打滑,需要的話可以使用加重積木塊去修正重心。如果結構牢固得像坦克一樣,行走很穩(wěn)定,就能省卻一些不必要的麻煩,例如機器人從東走到西誤差不超過1厘米,那有些地方就不用傳感器去糾偏了。使用傳感器去糾正機器人行走偏差來保證其穩(wěn)定性是大家常用的方法,一般來說比較費時,能不用則盡量不用,還可以使用更穩(wěn)定的物理定位來代替。比如機器人頂撞圍欄來確保行走穩(wěn)定;又如今年FLL洗手任務,通過頂扣水池確保精確穩(wěn)定等。
說到靈活高效,最重要的是集成度,換句話說就是機器人一次出基地能把多個任務一起完成,當然越多越好,對任務較多的挑戰(zhàn)來說這點也許就是關鍵了。此前分析能量與力,在這里派上用場了。我們可以利用盡可能多的方法去完成任務,觸發(fā)開關一般是在固定位置借力,應盡量輕巧實用,另外基地是個立體空間,盡量加以利用。例如:今年FLL任務,南面一條線上有不少任務,機器人或策略物只需靠墻直進直退即可,那么行走只需1個馬達即可,可以利用諸如橡皮筋的彈力、重力、頂撞場上固定模型的反作用力等去完成任務。如此,可以設計機器人主體部分去完成西面任務的同時擁有第3個馬達的策略物去完成南面的任務,中間1根電線相連即可。
速度在今年難度很大的挑戰(zhàn)中顯得尤為重要。結構上來說,大小齒輪傳動能提高速度,但考慮到穩(wěn)定性,建議別過多使用。程序上來說,盡量減少停頓也是能提高速度的。還有一點很重要卻容易被忽略,切換任務的時候,選擇程序、更換策略物要盡可能方便快捷。要在程序上省下5秒鐘并不容易,但在任務切換時設計得好的話能輕易辦到,這點可以節(jié)省不少時間,建議大家觀看自己的錄像去分析。速度與穩(wěn)定有時難以兼得,只能具體情況具體分析。
程序
如果方案設計良好,其實程序并不復雜,甚至可以說很簡單。有幾點體會:盡量讓學生先寫流程圖再寫程序,多使用模塊讓程序變得簡單明了;所有任務的程序編寫在同一個程序文件里,通過開關(比如觸感)來選擇,減少按鍵次數(shù)以節(jié)省時間;程序中盡量減少停頓保證速度;程序盡可能高效,例如只驅(qū)動單個馬達使用電機圖標即可,不必使用移動圖標。