崔更新



摘要:在中小學的機器人比賽中,大部分編程類的項目都需要光電傳感器巡線來完成任務。要想提高機器人完成任務的成功率,就必須保證機器人完成任務時的角度是相對一致的。作者在實踐中發現,借助比賽場地的黑線或者白線來校正機器人的相對位置,能夠有效保證機器人完成任務所需的精度。
關鍵詞:巡線校正;機器人比賽
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2021)18-0067-03
巡線程序是中小學機器人比賽中一個最基本的程序。機器人要通過巡線程序走角度確定自身所在的位置,再根據場地中比賽任務的位置,有針對性地去完成任務。當巡線距離不夠時,機器人的搖擺幅度會比較大。雖然PID巡線機器人的搖擺幅度會比較小,但在完成精細的任務時還是可能會遭遇失敗。機器人每次完成任務前的相對位置是提高成功率的關鍵因素。本文借助巡線程序來自動校正機器人面向任務時所在的相對位置,切實保證完成任務的成功率。
● 提出問題
筆者探究的巡線校正程序主要是用來解決機器人平行、垂直于黑線或者白線的問題。筆者以黑線為例,具體如圖1所示。機器人在巡線的過程中會產生一定幅度的搖擺,而搖擺會導致機器人的相對位置不精準,從而對完成任務有很大的影響。
實際上,光電傳感器不僅可以巡線,還可以借助光電傳感器反射光的數值,確定機器人的相對位置是偏左還是偏右,最終通過機器人左轉或者右轉來小幅度地調整機器人的位置。
● 分析問題
本文重點分析平行于黑線的情況,這種情況特指在黑線巡線的前方有一條垂直的黑線,通過校正機器人讓機器人水平地停在前方的黑線上。只要平行于黑線的情況解決了,垂直黑線的情況就只要讓機器人順時針或者逆時針轉一個直角就是平行于黑線的情況。
1.光電傳感器的數量及位置
本文探究的巡線校正程序是在機器人能夠巡線的基礎上完成的,要求光電傳感器的數量至少為2個。而光電巡線的機器人要求兩者的間距正好是黑線的寬度,如果要求的精度不高,可以將巡線的光電傳感器當作校正的光電傳感器使用。如果要進一步提高機器人巡線校正的精度,可以再安裝兩個光電傳感器專門用來校正,也可以用來記錄路口(左轉、右轉),兩者之間的間距越大越好,可以正好等于機器人車身的寬度。安裝示意圖如上頁圖2所示。
2.解決問題的思路
(1)機器人遇線停止的位置
筆者以4個光電傳感器為例來說明,并從左到右將其依次命名為1,2,3,4號光電傳感器(如圖3)。機器人在巡線的過程中,如果1,4號光電傳感器同時檢測到黑線,說明機器人已經到達丁字路口,這個時候機器人的相對位置有3種情況,分別為機器人居中、機器人左偏和機器人右偏。具體如圖4所示。
(2)機器人3種停止位置的異同點
不管是以上3種情況的哪一種情況,它們的共同點是1號和4號光電傳感器同時檢測到黑線,不同點是各個光電傳感器的反射光值大小不同。在理想狀態下,當機器人居中的時候,4個光電傳感器的反射光值完全相同;當機器人左偏的時候,1~4號光電傳感器的反射光值依次減少;當機器人右偏的時候,1~4號光電傳感器的反射光值依次增大。但是,實際情況下4個光電傳感器的反射光值性能不可能完全一樣,加之比賽場地光線不可能完全一致,所以無法保證完全在黑線上的反射光值一定小于部分在黑線上的反射光值。
基于以上考慮,筆者采用反射光值跟閾值比較,當反射光值大于等于閾值時,說明該光電傳感器位于白色區域;當反射光值小于閾值時,說明光電傳感器位于黑色區域。
(3)解決思路
因為在上述3種情況下,機器人1號和4號光電傳感器檢測的顏色都是黑色,所以機器人在初始停止的位置無法判別機器人到底屬于哪一種情況。要想識別機器人屬于哪一種情況,必須讓機器人前進或者后退來進行識別。筆者以機器人后退為例來進行說明。
①機器人后退確定位置。
首先讓機器人后退,直到1號和4號光電傳感器至少有一個檢測到白色;再檢測1號和4號光電傳感器目前所在的區域;最后通過判別二者所在的區域來識別機器人屬于哪一種情況。如果1號和4號光電傳感器同時檢測到白線,說明機器人居中;如果1號光電傳感器檢測到白線,同時4號光電傳感器檢測到黑線,說明機器人左偏;如果1號光電傳感器檢測到黑線,同時4號光電傳感器檢測到白線,說明機器人右偏。
②機器人校正
如果機器人處于居中位置,可以讓機器人繼續前進遇線停止;如果機器人偏左,可以讓機器人左輪正轉,直到機器人1號光感檢測到黑線停止;如果機器人偏右,可以讓機器人右輪正轉,直到機器人4號光感檢測到黑線停止。
經歷以上過程,機器人即完成了1次位置調整,調整之后的機器人1號和4號光電傳感器又重新檢測到黑線,調整之后的機器人相比調整前的機器人更加水平平行于黑線。但是一次調整并不能保證機器人能調整到所需的精度,所以可以讓機器人重復剛才的過程3~5次,最后能保證機器人處于一個相對精準的位置。
● 解決問題
1.程序流程圖
根據以上的分析,梳理出巡線校正的程序流程圖,如下頁圖5所示。
2.程序編寫
根據程序流程圖,筆者使用圖像化的編程軟件LEGO MINDSRORMS Education EV3來編寫程序,分段程序如下頁圖6、圖7、圖8所示,其他編程軟件亦可。
● 結語
經過親自試驗,該巡線校正程序能夠很好地解決機器人水平、垂直對準白線或者黑線的問題,從而提高機器人完成任務的成功率。在編寫程序的過程中,可以參考以下事項,盡量讓巡線校正程序適應更復雜的場景。
1.注意事項
巡線校正程序編寫完成之后要不斷進行測試。在測試的過程中,因為要消除機器人慣性對機器人位置的影響,所以機器人在遇線停止以及單輪正轉的過程中功率不能太大,這樣才能保證機器人遇線停止時正好停在黑線上,而不會因為慣性的問題停在白線上,從而導致無法判斷機器人的位置。
該巡線校正程序適用于巡線區域是兩種顏色的情況,不能在巡線的區域出現多顏色交錯的情況,這樣就無法判別機器人所在的位置了。
2.程序升級
為了讓巡線校正程序適用更復雜的情況,在機器人單輪正轉的過程中,如果連續一小段時間都沒有遇到黑線,說明機器人轉反了,可以讓機器人反轉,直到遇到黑線。
參考文獻:
[1]邵宗敏.大道至簡,精于心,簡于行——淺析光感巡線在EV3編程實踐中的設計與優化[J].中國教育信息化,2020(24):37-42.
[2]徐德生.巡線機器人路口教學策略的優化研究[J].理科愛好者,2020(16):97-98.