除塵競賽機器人及其控制策略研究
角度控制的流程分為以下4個步驟,控制算法實現(xiàn)的程序框圖如圖9所示。本文引用地址:http://www.biyoush.com/article/160450.htm
1)循環(huán)獲取起始角度信息,當(dāng)前后兩次獲取信息絕相差小于5°時,得到穩(wěn)定的起始角度值start_angle。
2)根據(jù)當(dāng)前的角度值start_angle和需要旋轉(zhuǎn)的角度值,計算得到預(yù)設(shè)的角度值set_value。
為了避免預(yù)設(shè)角度值在獲取時被錯過的情況發(fā)生,可以在預(yù)設(shè)角度值的基礎(chǔ)上進行5°的增幅,獲得預(yù)設(shè)角度范圍angle_little-angle_ big,當(dāng)angle_littleangle_big說明角度范圍沒有經(jīng)過360°-0°度的突變,否則角度范圍存在突變。
3)當(dāng)angle_littleangle_big時,機器人的預(yù)設(shè)角度范圍如圖7中①,因為機器人根據(jù)相應(yīng)的方向設(shè)定進行旋轉(zhuǎn)時,存在越過360°~0°的突變,所以又將除預(yù)設(shè)范圍外的部分分別化為②和③,在程序中將當(dāng)前的角度值保存為result。
當(dāng)機器人順時針旋轉(zhuǎn)時,滿足以下一個條件即可判斷為機器人達到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機器人的起始位置start_angle在圖7中區(qū)域②中,而當(dāng)前位置result在在圖中7區(qū)域③中。
c)當(dāng)機器人的起始位置start_angle在圖7中區(qū)域③中時,而當(dāng)前位置result>angle_little并且resultstart_angle。
當(dāng)機器人逆時針旋轉(zhuǎn)時。滿足以下其中一個條件即可判斷為機器人達到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機器人的起始位置start_angle在圖7區(qū)域②中,而當(dāng)前位置resultangle_little并且result>start_angle。
c)當(dāng)機器人的起始位置start_angle在圖7區(qū)域③中時,而當(dāng)前位置result在圖7區(qū)域②。
4)當(dāng)angle_littleangle_big時,機器人的角度預(yù)設(shè)范圍經(jīng)過360°-0°的突變值,為了區(qū)別變化,如圖8要將預(yù)設(shè)區(qū)間分為①和②兩個區(qū)間進行考慮,將剩余的區(qū)域化為③。然后機器人根據(jù)相應(yīng)的方向設(shè)定進行旋轉(zhuǎn),并將當(dāng)前的角度值保存為result。
當(dāng)機器人順時針旋轉(zhuǎn)時滿足以下其中一個條件即可判斷為機器人達到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在圖8區(qū)域①或區(qū)域②其中一個預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機器人的起始位置start_angle在圖8區(qū)域③中,而result>angle_big并且resultstart_angle。
當(dāng)機器人逆時針旋轉(zhuǎn)時滿足以下其中一個條件即可判斷為機器人達到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在圖8區(qū)域①或區(qū)域②其中一個預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機器人的起始位置start_angle在圖8區(qū)域③中,而resultangle_little并且result>start_angle。
4 結(jié)束語
將該控制策略用于控制機器人轉(zhuǎn)角,可靠性和穩(wěn)定性得到了極大的提高,成功率可達到100%,完全可以滿足競賽的要求。在此基礎(chǔ)上設(shè)計的除塵競賽機器人具有成本低、可靠性高的特點,在第四屆江蘇省機器人大賽除塵比賽中,除塵面積覆蓋率達到80%以上,并取得一等獎。
評論