[技能競賽] 機器人自主的兩三事

還有不到一週就要比賽了,原來的機器人裁判長年初宣佈榮退後,官方也在三月底選出了新的裁判長。蘇老師原本就是機器人職種的裁判,資歷跟經驗都非常豐富,這次在競爭中脫穎而出,希望他能為競賽帶來新氣象,讓參與機器人職種的學生更多,也協助國手在世界賽拿回更好的成績。不過在這時間點接棒的確是很辛苦,一方面要顧及以往(畢竟還是多數),另一方面又要接軌國際賽新平台,種種不確定因素幾乎也隨著升到了高點,真是令人期待又怕受傷害啊!

因此蘇老師新官上任才不到兩週的時間,就舉辦了說明會,雖然公開試題的部分沒有什麼修改(應該是時間太趕不宜改變),但說明會中有大致說明了未來的方向,也解答了選手與教練的疑問,最棒的是有會議紀錄來店禮贈送這次比賽會使用的道具方塊跟棧板呢!

其實John去年看世界賽規則時就覺得爭議頗大,內容說明也不是很詳細。像是機器人的尺寸,出發區大小和連線操作方式一概沒提,原本明定機器人都只能使用套件內的零件來組裝,現場要拆裝機器人…等,最後比賽時也沒有全部實行(有好有壞),有點混亂。

按照世界賽規則裡的敘述和指定控制器myRIO的特性,機器人必須是「全自主」完成任務的,John對「全自主」解讀是:除了程式開始後無法人為介入之外,也包括任務中不能使用電腦或筆電來協助運算,否則哪裡還稱得上是「全自主」呢?(這裡筆電不視為機器人的一部份,一來因為電腦未裝在機器人身上,二來世界賽補充說明上寫著「Electronic parts: Of course the Main Robot Program should run on the myRIO.」)其實myRIO原本的設計就是程式只能跑在Real-time的核心上,因此不論是WiFi或USB線傳程式都無所謂,傳完後兩者斷線都不影響程式獨立運行在控制器上,差別只在於連線沒斷的話,可以從電腦上的人機介面(Front Panel)上看到程式執行的情況(若有設計)。

覺得用WiFi或是USB線連著就一定會遙控機器人或有舞弊可能,真的是太外行的說法,機器人移動是搖控或自主規劃路徑,相信有開過搖控車的人都能體會不同,要是有能力把搖控程式優化到走起來跟機器人自主移動一樣,相信他寫純自主程式可以表現的更好,也不會想花時間去寫搖控程式了。myRIO或KNRm使用WiFi完全都只有「方便」這個理由,也能大幅降低太常插拔而耗損的USB typeB接頭。比較起來其它控制器可能線一脫落就停止不動固然方便,但以自主運行的觀點來看,才是大有問題的!

John是屬於支持不能用電腦當作控制器的一方,除了公平之外更能顯出RIO架購的優勢。但是若是開放平台又不限控制器數量,但確限制機器人尺寸的比賽,要開放電腦當作控制器也無不可,請想辦法塞進機器人裡吧。

至於如何在短短的一分鐘準備時間加快連線和準備的速度,其實也不是不行。嚴格來說是分為「提前連線並執行程式」和「提早將執行檔佈署到控制器內,控制器過電後就自動執行」兩種方式,但兩種都會提早開始運行程式,所以必須再放一個「等待」,讓使用者觸發後再往下繼續執行。

testBasic

waitForBotton

這麼一來我們就可以提早做連線把程式先傳上去執行,但是如果遇到裁判要求斷電重開,或是提早放至審查區就不能再用電腦,我們為了節省電池消耗,可能就需要把程式預先「編譯」成執行檔再「佈署」到myRIO/KNRm上,設定為「開機自動執行」再斷電,下次開機後就會自動執行這支程式。(燒錄是大家對這三件事的統稱,但並非正式用法)

NI官方佈署程式的影片:


其實KNRm官方也做了一份文件說明,還附上了範例程式可以手選4支程式(myRIO當然也可以使用,只要把設備從myRIO-1950移除換成myRIO-1900即可)

至於上次在嘉工模擬賽編譯失敗的那些同學,只要在下方留下email、學校和姓名,就可以下載John的[Math] 資料夾有原始碼的SubVI們(當然還是有加密過的囉),換掉原本範例程式的Math資料夾,就能正常「編譯 (build)」你的主程式為執行檔了!希望大家這週比賽順利囉~

-J

[技能競賽] 機器人自主的兩三事 有 “ 8 則留言 ”

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.