文湖南師大附中1610 班 諶霖燁
黑線垂直定位的分析與思考
文湖南師大附中1610 班 諶霖燁
自從加入學校機器人代表隊后,我便愛上了FLL工程挑戰(zhàn)賽。在平常的訓練與集訓中,我發(fā)現(xiàn)FLL工程挑戰(zhàn)賽中的機器人在完成任務時,需在黑線的地方定位,從而盡可能減小誤差,修正機器人的位置,提高機器人的穩(wěn)定性,確保順利完成設定的任務。
黑線定位時由于初始位置的不確定性,很難確保機器人修正參數(shù)達到理想的結(jié)果。所以我決定對機器人黑線垂直定位做進一步的分析,徹底解決這個難題。
機器人利用1號和4號顏色傳感器做出判斷,不管初始位置與黑線相距多遠,機器人運行到黑線時,必須保證與黑線垂直,以減小誤差,修正參數(shù),確保后面的任務順利完成。
機器人運用顏色傳感器的反射光進行自動判斷:當1號顏色傳感器檢測到黑線時,B馬達不動,C馬達轉(zhuǎn)動;當4號顏色傳感器檢測到黑線時,機器人停止運行并保持與黑線垂直。當4號顏色傳感器檢測到黑線時,C馬達不動,B馬達轉(zhuǎn)動;當1號顏色傳感器檢測到黑線時,機器人停止運行并保持與黑線垂直。當1、4號顏色傳感器同時檢測到黑線時,機器人停止運行并保持與黑線垂直。
機器人在實際運行時,如果與黑線的角度不大時,可以被修正;如果與黑線的角度偏大時很難做到垂直。為什么會出現(xiàn)此類情況?
我利用業(yè)余時間查找資料,及時與指導老師進行交流。既然無法解決硬件問題,唯一的方法就是在程序上想辦法。
原有的程序雖然也能讓機器人自動判斷,但過于簡單,很難達到要求。能不能利用變量?
1.首先用程序重置B、C馬達,并設定以下三個變量(panduan、dianji、guanggan)來打開馬達與顏色傳感器的端口和跳出循環(huán)。其中dianji2和dianji3對應B、C馬達。
2.利用兩個循環(huán)、兩個切換實現(xiàn)自動判斷
(1)機器人運行時,首先1號顏色傳感器進行測光,如果光值小于設定的15,同時程序切換到4號顏色傳感器進行測光,如果光值小于15,說明1號和4號顏色傳感器都檢測到黑線,這時判斷成立,跳出循環(huán)并指定顏色傳感器的端口為4,馬達的端口為0(馬達不打開)。然后運行后面的程序,馬達沒有打開所以不運行,4號顏色傳感器光值小于20,跳出循環(huán),關(guān)閉B、C馬達,程序停止運行。
完整的黑線垂直程序
如果光值大于15,這時判斷成立,跳出循環(huán)并指定顏色傳感器的端口為4,馬達的端口為C馬達,運行后面的程序,C馬達以28%的功率工作。4號顏色傳感器光值小于20時,跳出循環(huán),關(guān)閉B、C馬達,保證機器人與黑線垂直。
(2)機器人運行時,首先1號顏色傳感器進行測光,如果光值大于15,同時程序切換到4號顏色傳感器進行測光,如果光值大于15,機器人以15%的功率前進。
如果光值小于15,這時判斷成立,跳出循環(huán)并指定顏色傳感器的端口為1,馬達的端口為B馬達,然后運行后面的程序,B馬達以28%的功率工作。1號顏色傳感器光值小于20,跳出循環(huán),關(guān)閉B、C馬達,程序停止運行,保證機器人與黑線垂直。
3.完整的黑線垂直程序,見下圖
4.測試
用完整的程序測試時,不管機器人與黑線角度的大小如何,都能垂直定位,問題最終得到完美解決。(指導老師:諶躍飛)