鄧峰
(1.武漢軟件工程職業(yè)學(xué)院,湖北武漢,430205;2.武漢廣播電視大學(xué),湖北武漢,430205)
在以往的各種競(jìng)賽中,多次出現(xiàn)要求實(shí)現(xiàn)小車進(jìn)行高速循跡,識(shí)別、越過障礙物的命題。通常采用的辦法為,通過運(yùn)算放大器采集光電反射式傳感器信號(hào),以識(shí)別小車相對(duì)于循跡線的位置,并將此信號(hào)進(jìn)行放大,再通過單片機(jī)和驅(qū)動(dòng)電路直接反饋給電機(jī)進(jìn)行速度補(bǔ)償。此辦法雖成熟,但對(duì)于底盤需要轉(zhuǎn)向的任務(wù)而言,無疑耽誤了非常多的時(shí)間,而且該方法無法克服地面反射物不均產(chǎn)生的干擾。因此本文設(shè)計(jì)了一種基于PID算法的高速循跡麥克納姆輪底盤[1],該麥輪底盤可以在底盤朝向不變的情況下輕易完成各種路線的巡線以及避障功能,且采用灰度傳感器差值補(bǔ)償速度的算法,能使巡線過程更加平滑。
光電反射式傳感器主要由光電發(fā)射和光敏接收器件并排組成,在被測(cè)物體反射光線后,接收端的輸出經(jīng)過后級(jí)電路調(diào)理后可以得到放大的電壓。根據(jù)使用目的的不同,調(diào)理過后的電壓可以有數(shù)字電平和模擬電平之分。在本例中,我們使用了輸出量為模擬電平的反射式傳感器,俗稱灰度傳感器[2]。
圖1 灰度傳感器的原理
循跡底盤上灰度傳感器的分布有很多種方式,其中一種如圖2所示。我們以黑色代表軌跡顏色,即其反射率相較非軌跡而言較小。在巡線過程中,當(dāng)灰度傳感器1壓線時(shí),其反射信號(hào)會(huì)立即減小,此處通過主控板輸出信號(hào)讓車向左側(cè)行駛,傳感器由此脫離巡線軌跡。若灰度傳感器2壓線時(shí),主控會(huì)輸出信號(hào)讓車向右行駛,以此確保車體始終處于巡線軌跡上。
圖2 灰度傳感器兩端分布
另外一種傳感器分布如圖3所示,將灰度傳感器分布在巡線軌跡內(nèi),一旦有傳感器移動(dòng)到尋跡軌跡外,其反射會(huì)增強(qiáng)導(dǎo)致其輸出信號(hào)發(fā)生變化,主控會(huì)根據(jù)傳感器狀態(tài)及時(shí)對(duì)運(yùn)動(dòng)軌跡做出調(diào)整。使用該方法時(shí)需要注意對(duì)左右兩個(gè)傳感器進(jìn)行光信號(hào)隔離,否則可能有一側(cè)光線對(duì)另外一側(cè)產(chǎn)生干擾。亦可以通過軟件算法對(duì)兩側(cè)傳感器取差值,根據(jù)其正負(fù)范圍進(jìn)行循跡判斷。
實(shí)際使用中,也可以將這兩種方式結(jié)合起來進(jìn)行循跡傳感器分布設(shè)計(jì)。
圖3 灰度傳感器居中分布
Mecanum輪是瑞典麥克納姆公司的專利,其一般由呈放射狀的金屬外輪轂和與輪軸呈45°夾角安裝的可自由轉(zhuǎn)動(dòng)的輥?zhàn)友b配而成,如圖4所示。
圖4 麥克納姆輪結(jié)構(gòu)
麥輪的驅(qū)動(dòng)方式為全驅(qū),即所有的輪子均為主動(dòng)輪。當(dāng)輪轂向一個(gè)方向轉(zhuǎn)動(dòng)時(shí),與地面接觸的輥?zhàn)优c地面產(chǎn)生摩擦,且摩擦力和輪轂行進(jìn)方向相反,即摩擦力會(huì)阻止麥輪輪轂的轉(zhuǎn)動(dòng)。此摩擦力可以分解成沿輥?zhàn)又芟蛄Γ‵滾)和輥?zhàn)虞S向力(F軸)兩個(gè)分量。其中軸向力作用于輥?zhàn)觽?cè)邊的輪轂,由于輪轂整體和電機(jī)、底盤連接,進(jìn)而轉(zhuǎn)變成整個(gè)總成的沿輪轂軸向的力。而作用在輥?zhàn)由系闹芟蛄χ荒苁馆佔(zhàn)影l(fā)生被動(dòng)自轉(zhuǎn),其受力分析如圖5所示,其中橢圓虛線框即為和地面接觸的輥?zhàn)臃较颉R虼穗姍C(jī)輸出的扭矩,一部分成為輥?zhàn)拥霓D(zhuǎn)矩,這部分對(duì)于運(yùn)動(dòng)沒有貢獻(xiàn)。另一部分則使整個(gè)麥輪總成發(fā)生轉(zhuǎn)動(dòng),讓底盤獲得輪轂徑向以及軸向運(yùn)動(dòng)速度。而此處的軸向力,正是讓麥輪底盤具備多種運(yùn)動(dòng)形式的基礎(chǔ)。
圖5 麥輪運(yùn)動(dòng)時(shí)的受力分析
利用四個(gè)麥輪構(gòu)成如圖6所示底盤,在此種驅(qū)動(dòng)方式下,四個(gè)麥輪總成所受摩擦力的前后分量方向相反進(jìn)而抵消,因此底盤沒有前進(jìn)或者后退的運(yùn)動(dòng)趨勢(shì)。而所有輥?zhàn)铀艿妮S向力合力方向向右,底盤在此力的作用下會(huì)獲得向右運(yùn)動(dòng)的加速度。
圖6 平行右移時(shí)麥輪底盤受力分析
在圖7中,給出了麥輪組在不同速度方向組合下轉(zhuǎn)動(dòng)時(shí)的車體運(yùn)動(dòng)狀態(tài)。其中箭頭方向?yàn)檩嗇炦\(yùn)動(dòng)方向,也即輥?zhàn)铀苣Σ亮Φ姆较?。其他運(yùn)動(dòng)狀態(tài)可由類似受力分析得到,此處不再贅述。
圖7 不同麥輪運(yùn)動(dòng)組合下底盤運(yùn)動(dòng)狀態(tài)
由于場(chǎng)地表面粗糙度和底盤懸掛、麥輪損耗的差別,速度閉環(huán)麥輪底盤未必能完成固定軌跡的巡航任務(wù)。而采取根據(jù)實(shí)時(shí)狀態(tài)調(diào)整麥輪速度補(bǔ)償?shù)姆桨?,反而有利于完成循跡工作。因此設(shè)計(jì)整體思路如下:底盤正常行進(jìn)時(shí),當(dāng)左右灰度傳感器的差值到達(dá)一定閾值后,將其差值送入PID運(yùn)算器,并將PID計(jì)算結(jié)果返回給麥輪驅(qū)動(dòng)器進(jìn)行轉(zhuǎn)速補(bǔ)償,由此可以在不影響整個(gè)底盤朝向的情況下完成尋跡過程[3],車體無需提供轉(zhuǎn)向速度分量而維持高速運(yùn)行。當(dāng)左右傳感器差值到達(dá)閾值,但是經(jīng)過延時(shí)后此差值再次低于閾值,可以認(rèn)為這是由于地面反射程度差別導(dǎo)致的誤差,應(yīng)將其濾除。設(shè)計(jì)該閾值的好處在于,針對(duì)不同反射情況的地形,可以設(shè)定不同閾值以消除反射差別造成的影響,或者可以通過減小該閾值以提高循跡靈敏度。其程序設(shè)計(jì)流程圖如圖8所示。
圖8 基于PID算法的速度補(bǔ)償程序流程
部分源代碼:
本系統(tǒng)采用了基于PID算法的電機(jī)速度補(bǔ)償方法,灰度傳感器差值可以設(shè)定為到達(dá)或者低于某個(gè)閾值后,再將其進(jìn)行PID運(yùn)算得到麥輪速度補(bǔ)償值。由此可以克服地面反射情況不均造成的誤判斷,實(shí)現(xiàn)了高速巡線麥克納姆輪底盤的驅(qū)動(dòng)。今后可以結(jié)合電機(jī)編碼器、陀螺儀或者激光雷達(dá),對(duì)麥輪速度進(jìn)行閉環(huán)控制,以實(shí)現(xiàn)更復(fù)雜的運(yùn)動(dòng)方式。