馬 艷
(武漢交通職業(yè)學(xué)院,湖北 武漢 430065)
美國(guó)物流學(xué)會(huì)自動(dòng)引導(dǎo)車系統(tǒng)產(chǎn)品部把自動(dòng)引導(dǎo)車(Auto-mated Guided Vehicle, 以下簡(jiǎn)稱AGV)定義為裝有電磁或光學(xué)自動(dòng)引導(dǎo)裝置的運(yùn)輸小車[1]。隨著現(xiàn)代工業(yè)自動(dòng)化的飛速發(fā)展,AGV因其控制靈活、高智能化、集成度高等特點(diǎn),在智能制造、倉儲(chǔ)物流等領(lǐng)域都得到了廣泛應(yīng)用[2]。
ROBOTAC 是共青團(tuán)中央和全國(guó)學(xué)聯(lián)主辦的全國(guó)大學(xué)生機(jī)器人大賽的賽事之一,其目的在于促進(jìn)產(chǎn)學(xué)研合作,推動(dòng)技術(shù)創(chuàng)新和轉(zhuǎn)化,為中國(guó)機(jī)器人產(chǎn)業(yè)培育人才[3]。其中障礙挑戰(zhàn)賽項(xiàng)要求參賽隊(duì)研發(fā)制作自動(dòng)布障AGV,規(guī)定時(shí)間內(nèi)在高地上完成布置障礙橫桿的任務(wù),最終根據(jù)布障得分、比賽計(jì)時(shí)以及車體尺寸及重量等綜合因素得出排名。區(qū)別于現(xiàn)階段批量應(yīng)用的工廠AGV 低速行駛和路口減速的成熟方案,該賽事要求AGV在高速行駛下循跡,并快速準(zhǔn)確地識(shí)別路口特征。我校師生在參與該賽項(xiàng)的過程中,充分激發(fā)了參賽學(xué)生的創(chuàng)新思維和創(chuàng)新能力,研究成果對(duì)機(jī)器人產(chǎn)業(yè)具有一定參考價(jià)值。
ROBOTAC 障礙挑戰(zhàn)賽是自動(dòng)布障AGV 和手動(dòng)清障機(jī)器人的任務(wù)賽,自動(dòng)布障AGV 的任務(wù)賽場(chǎng)地圖如圖1所示,綠色區(qū)域?yàn)楦叩?高地采用EVA 墊鋪設(shè),比賽要求自動(dòng)布障AGV尺寸不超過600 mm*600 mm*500 mm(高),布障路徑是在高地上從藍(lán)色啟動(dòng)區(qū)出發(fā),沿30 mm 的白線按照①②③④順序完成布置障礙橫桿的任務(wù),最后在高地任意位置停止。比賽得分主要是根據(jù)布障任務(wù)完成情況以及完成時(shí)間決定,在兩者都相同的情況下,車體重量輕的取勝。
圖1 任務(wù)賽場(chǎng)地圖(單位:mm)
根據(jù)分析以上規(guī)則,自動(dòng)布障AGV 在設(shè)計(jì)上主要考慮下面幾個(gè)因素:
(1)整車的設(shè)計(jì)速度較快,直線速度超過300 m/min,遠(yuǎn)高于市面AGV 產(chǎn)品,需考慮高速運(yùn)行的穩(wěn)定性;
(2)行駛路線中路口識(shí)別及轉(zhuǎn)向動(dòng)作較多,如何實(shí)現(xiàn)快速可控的轉(zhuǎn)向大幅節(jié)省時(shí)間;
(3)由于車身尺寸限制,需在保證輕量化的同時(shí),降低重心,減小啟動(dòng)、剎車和轉(zhuǎn)向過程中因輪子打滑造成的失控;
(4)由于完成布障動(dòng)作需撞擊約0.8 kg 的障礙物,需在控制重量的同時(shí)保持好重心,保證快速撞擊過程中的穩(wěn)定性。
現(xiàn)階段,針對(duì)該賽事的相關(guān)文獻(xiàn)較少,各院校的設(shè)計(jì)方案也相差較大,由于自動(dòng)布障AGV 無法人工干預(yù)修正,其穩(wěn)定性是完成比賽的關(guān)鍵。湖南鐵道職業(yè)技術(shù)學(xué)院的團(tuán)隊(duì)選用了S7-1200 PLC作為主控單元,通過位置和速度雙閉環(huán)修正偏移,提高穩(wěn)定性[4],但選用PLC 主控板,體積和重量都會(huì)大幅增加。
基于以上分析,本設(shè)計(jì)選用4 個(gè)直流電機(jī)獨(dú)立直驅(qū)4 個(gè)O 型布局的麥克納姆輪(以下簡(jiǎn)稱麥輪),保證整車具有良好的抓地力,并可通過麥輪差速異步動(dòng)作實(shí)現(xiàn)較為穩(wěn)定的快速轉(zhuǎn)向,采用大倍率的聚合物鋰電池作為動(dòng)力來源。
在車體設(shè)計(jì)上選用了多折鈑金制作的一體式車身,車身主體無螺釘及焊接,車身強(qiáng)度較高,結(jié)構(gòu)件數(shù)量少,附加重量輕。將除控制板以外的所有零部件設(shè)計(jì)在一體式車身內(nèi)部,并采用對(duì)稱布局,保證了因麥輪在高速運(yùn)行時(shí)引起的強(qiáng)振動(dòng)環(huán)境下的可靠性。在18 個(gè)隊(duì)的比賽過程中,有4 個(gè)隊(duì)因螺釘松動(dòng)或車體變形未完成比賽。
按上述思路所設(shè)計(jì)的車身結(jié)構(gòu)及零部件結(jié)構(gòu)如圖2所示。
圖2 車體結(jié)構(gòu)布局圖
根據(jù)比賽要求,自動(dòng)布障AGV 需按照規(guī)則中標(biāo)注的①②③④順序完成布障任務(wù),要求AGV 在高速行駛狀態(tài)下具備循跡和路口識(shí)別兩大功能,并具有高可靠性。因此,本設(shè)計(jì)中采用了雙傳感設(shè)計(jì),均選用8 路智能灰度傳感器,其安裝位置如圖3所示,位于車體前端,前輪前后各1 個(gè)。其中,傳感器1 主要用于循跡;傳感器1 和傳感器2配合用于路口識(shí)別。
圖3 傳感器位置圖
本文設(shè)計(jì)的布障AGV 控制系統(tǒng)采用模塊化進(jìn)行設(shè)計(jì),其主要由主控模塊、電源模塊、檢測(cè)模塊等組成。系統(tǒng)硬件框圖如圖4所示。
圖4 系統(tǒng)硬件框圖
以微控制器以及簡(jiǎn)單外圍電路為基礎(chǔ),增添串口、CAN 、I/O 口等接口電路,完成對(duì)AGV 各模塊之間的數(shù)據(jù)處理及功能指令的傳達(dá)[2]。本文所使用的微控制器是STM32F427IIH 芯片,STM32F4XX系列微控制器相比常用的STM32F1XX 系列具有先進(jìn)的Cortex-M4 內(nèi)核、更多的儲(chǔ)存空間以及極致的運(yùn)行速度,在AGV 的應(yīng)用中,能滿足多源導(dǎo)航多通道數(shù)據(jù)采集需求,同時(shí)也能提高系統(tǒng)運(yùn)算的速度與穩(wěn)定性。主控模塊各接口電路原理圖如圖5所示。
圖5 主控模塊各接口電路原理圖
電源模塊主要給其他各個(gè)模塊進(jìn)行供電,由24 V 直流電源輸入,經(jīng)過緩啟動(dòng)保護(hù)電路輸出24 V 直流電給速度控制模塊供電,通過LM25116和MP2233 生成3.3 V 3A 電源對(duì)外設(shè)供電,通過TPS5450 電源管理芯片生成5V2A 電源為CAN 通信接口和串口通信接口供電,再通過MP2456GJ和LP5907 MFX 生成3.3 V250 mA 電源給MCU供電。PowerTree 如圖6所示。
圖6 PowerTree
為滿足循跡及路口識(shí)別功能,車體前端為雙傳感設(shè)計(jì),兩個(gè)傳感器均采用的是8 路數(shù)字量智能灰度傳感器,如圖7所示。
圖7 8 路數(shù)字量智能灰度傳感器實(shí)物圖及尺寸圖
8 路數(shù)字量智能灰度傳感器支持I/O 數(shù)字口與串口兩種通信方式。為了減少兩路傳感器信號(hào)相互干擾,兩路傳感器信息采用不同接口采集,傳感器1 使用I/O 數(shù)字口傳輸高低電平數(shù)據(jù),8 路I/O 數(shù)字口與主控模塊硬件連接對(duì)應(yīng)關(guān)系如表1所示;傳感器2 使用串口通信方式傳遞數(shù)據(jù)。
表1 數(shù)字口與主控模塊硬件連接對(duì)應(yīng)關(guān)系
4.1.1 AGV 運(yùn)動(dòng)模型
麥克納姆輪運(yùn)動(dòng)靈活,但是滾子受力呈周期性變化,在運(yùn)動(dòng)過程中滾子外形發(fā)生形變,輪子運(yùn)動(dòng)輪廓線呈非圓形,導(dǎo)致機(jī)器人易于跑偏。為了保證機(jī)器人的正確尋跡,優(yōu)化運(yùn)動(dòng)控制算法變得尤為重要[5]。
由于整車的水平運(yùn)行,可由以下三種獨(dú)立因素來表述:X軸水平運(yùn)動(dòng)、Y軸水平運(yùn)動(dòng)、yaw 軸自轉(zhuǎn)。而由于4 個(gè)麥輪的速度都是由4 只單獨(dú)的發(fā)電機(jī)所給出,若引入正運(yùn)動(dòng)學(xué)方程,則不滿足這約束關(guān)系的方程都不能解得。所以本方案采取逆運(yùn)動(dòng)學(xué)方法,如圖8所示,對(duì)整車運(yùn)動(dòng)狀態(tài)進(jìn)行了四步分析,可以得到速度與4 個(gè)輪子的輪速之間的對(duì)應(yīng),如此即可獲得唯一解。
圖8 AGV 運(yùn)動(dòng)模型求解分解圖
AGV 運(yùn)動(dòng)模型如圖9所示,其中O點(diǎn)為對(duì)角兩輪軸心連線的交點(diǎn),輪子的軸距為2a,兩輪間距為2b。為yaw 軸自轉(zhuǎn)的角速度,定義方向逆時(shí)針為正;為小車左右的的運(yùn)動(dòng)向量,向右為正;為小車前后的運(yùn)動(dòng)向量,向前為正。
圖9 AGV 運(yùn)動(dòng)模型
(1)整車與輪心的運(yùn)動(dòng)學(xué)方程
對(duì)應(yīng)于X軸和Y軸的方程分別為:
(2)計(jì)算輥?zhàn)拥乃俣?/p>
分析單個(gè)麥輪上輥?zhàn)拥氖芰η闆r,其中為輥?zhàn)虞S向速度分量,為輥?zhàn)忧邢蛩俣确至?對(duì)于小車運(yùn)動(dòng)沒有起作用,因此只關(guān)心[6]。
由圖可知:
(3)計(jì)算輪子的速度
綜上所述,麥輪逆運(yùn)動(dòng)學(xué)公式為:
由于C620 搭配M3508 電機(jī)性能的實(shí)測(cè)曲線已知(見圖10),可以通過AGV 小車的運(yùn)動(dòng)需求計(jì)算出麥輪的轉(zhuǎn)速,從而求得電機(jī)的轉(zhuǎn)速。
圖10 C620 搭配M3508 電機(jī)性能曲線
例如,當(dāng)AGV 小車沿X方向直線行駛時(shí),可得:
其中,M3508 電機(jī)轉(zhuǎn)速為n,減速比為19,將麥輪半徑設(shè)計(jì)為R=40 mm,所以要使AGV 直線速度達(dá)到設(shè)計(jì)的300 m/min,電機(jī)轉(zhuǎn)速至少為:
該轉(zhuǎn)速正好處于效率較高的區(qū)間,發(fā)熱量較少,電機(jī)工作狀態(tài)較穩(wěn)定。
4.1.2 速度PID 閉環(huán)控制
為了使AGV 平穩(wěn)運(yùn)行,這里采用閉環(huán)PID 控制算法。根據(jù)上述AGV 運(yùn)動(dòng)模型的計(jì)算,我們能通過需要的車速計(jì)算麥輪轉(zhuǎn)速,這里我們使用3508 伺服電機(jī)為麥輪提供轉(zhuǎn)速,并配合使用C620電調(diào)控制電機(jī)。C620 電調(diào)可以通過兩種方式控制電機(jī),一種是接收PWM 信號(hào),另一種方式就是CAN 通信。雖然在用PWM 控制時(shí)它是自帶速度PID 的,但經(jīng)實(shí)際測(cè)試,速度穩(wěn)定性不好;而相比起來,CAN 通信方式不僅速度穩(wěn)定性更好,抗干擾能力也更強(qiáng),能有效抑制電磁干擾,時(shí)序定位更加精確,同時(shí)一個(gè)CAN 可以最多控制8 個(gè)電機(jī),滿足本設(shè)計(jì)中AGV 四驅(qū)要求,因此這里使用CAN總線控制,這種方式需要通過控制器進(jìn)行PID 計(jì)算,使AGV 在高速循跡及轉(zhuǎn)向等運(yùn)動(dòng)過程中更加平穩(wěn)。電機(jī)速度PID 原理如圖11 所示。
圖11 電機(jī)速度PID 原理框圖
這種控制方式是C620 定期上傳電機(jī)的電流、速度、位置等信息,控制器讀取CAN 報(bào)文之后通過PID 計(jì)算得到輸出量,再通過CAN 總線下發(fā)報(bào)文,從而實(shí)現(xiàn)速度PID 控制。CAN 上傳報(bào)文和CAN 下發(fā)報(bào)文如表2和表3所示。
表2 CAN 上傳報(bào)文
表3 CAN 下發(fā)報(bào)文
電機(jī)中流過電流大小近似正比于電機(jī)角加速度的大小,是轉(zhuǎn)速的低階物理量,因此,這里用電流大小作為PID 的輸出結(jié)果。
4.1.3 AGV 速度控制程序
PID 控制算法因時(shí)間離散化不同,通常分為位置式 PID 控制算法和增量式 PID 控制算法,本設(shè)計(jì)采用位置式PID 控制算法。
PID 算法公式為:
其中,Kp為比例控制參數(shù),用來消除系統(tǒng)的當(dāng)前誤差;KI為積分控制參數(shù),用來平均過去的誤差;KD為微分控制參數(shù),用來透過誤差的改變來預(yù)測(cè)將來的誤差[4]。
對(duì)應(yīng)位置式PID 控制算法的具體程序如下:
AGV 速度控制程序的核心是電機(jī)控制任務(wù)的實(shí)現(xiàn),電機(jī)任務(wù)首先進(jìn)行PID 的初始化PID_struct_init(&pid_speed[i], POSITION_PID,20000, 20000, 1.5f, 0.1f, 0.0f)將四個(gè)電機(jī)的初始化信息設(shè)置為位置式PID、PID 輸出限幅20000。關(guān)于PID 參數(shù),在試車實(shí)驗(yàn)前,團(tuán)隊(duì)通過MATLAB 進(jìn)行PID 仿真,也根據(jù)試車情況進(jìn)行多次優(yōu)化,從而獲取較優(yōu)參數(shù)為KP=1.5,KI=0.1,KD=0。隨后進(jìn)入for(;;)循環(huán),依次對(duì)四個(gè)電機(jī)進(jìn)行PID 計(jì)算,然后將四個(gè)電機(jī)的PID 計(jì)算結(jié)果輸送到CAN 總線。
根據(jù)對(duì)車體結(jié)構(gòu)、路線分析及實(shí)測(cè)情況進(jìn)行分析,總結(jié)出關(guān)于AGV 運(yùn)動(dòng)路徑設(shè)計(jì)時(shí)需注意以下幾點(diǎn):(1)AGV 在布障過程中,必須以巡線為主要運(yùn)行方式,在車體打滑或障礙桿碰撞導(dǎo)致車身方向偏離路線的情況下,巡線方式可以迅速調(diào)整車身姿態(tài);(2)由于傳感模塊安裝在車頭部分,因此AGV 在巡線及路口判斷時(shí),車頭必須朝前;(3)按順序布障,需有效快速進(jìn)行循跡模式及非循跡運(yùn)動(dòng)模式的切換;(4)滿足以上條件情況下,應(yīng)充分利用麥輪的特點(diǎn),進(jìn)行合理路徑規(guī)劃以縮短任務(wù)完成時(shí)間。本文針對(duì)布障任務(wù),規(guī)劃出多種路徑,通過不斷對(duì)比實(shí)驗(yàn),得到最佳路徑,該路徑的AGV 運(yùn)動(dòng)軟件控制流程圖如圖12 所示。
圖12 AGV 運(yùn)動(dòng)軟件控制流程圖
在上述運(yùn)動(dòng)控制流程中,重點(diǎn)要做好循跡過程控制以及非循跡模式下的路口識(shí)別控制。
4.2.1 循跡過程控制
本設(shè)計(jì)中AGV 循跡過程是通過傳感器1 采集軌跡信息,并將信號(hào)通過數(shù)字I/O 口傳送至主控模塊,由主控模塊判斷車身是否出現(xiàn)偏移,依據(jù)偏移量調(diào)整左右麥輪轉(zhuǎn)速,通過左右麥輪的速度差實(shí)現(xiàn)車身轉(zhuǎn)向,從而糾正偏移。
由于選用的是8 路數(shù)字量智能灰度傳感器,其檢測(cè)點(diǎn)位是離散的,本設(shè)計(jì)依據(jù)這一特點(diǎn),設(shè)置了7 段式差速糾偏方案。
傳感器1 中點(diǎn)位置與軌跡的中軸線距離為X,如圖13 所示,根據(jù)X值的變化(此處以車身在軌跡線右側(cè)為例,左側(cè)與右側(cè)參數(shù)設(shè)置對(duì)稱),通過調(diào)整左右麥輪的差速比值,實(shí)現(xiàn)車身轉(zhuǎn)向糾正偏移。需要注意的是,當(dāng)車身偏移過大,X值達(dá)到了59 mm 以上,則直接將麥輪調(diào)整到原地轉(zhuǎn)向狀態(tài)糾正偏移。在試車時(shí),我們通過實(shí)驗(yàn)法對(duì)參數(shù)進(jìn)行不斷優(yōu)化,得到了最佳參數(shù),如圖14 所示。
圖13 車身偏移示意圖
圖14 7 段式差速糾偏參數(shù)
4.2.2 路口識(shí)別
自動(dòng)布障AGV 需按照比賽規(guī)則中標(biāo)注的①②③④順序完成布障任務(wù),這就需要通過路口識(shí)別完成AGV 循跡模式與非循跡模式的切換,具體來說,需要通過對(duì)左岔路口、十字路口、丁字路口的識(shí)別對(duì)布障位置進(jìn)行判斷。路口對(duì)比圖如圖15 所示。
圖15 路口對(duì)比圖
由圖可知,利用傳感器1 即可完成對(duì)左岔路口的識(shí)別。當(dāng)傳感器1 的 Bit0-Bit4 的5 個(gè)離散點(diǎn)位均檢測(cè)到白線信號(hào),同時(shí)Bit5-Bit7 未檢測(cè)到白線信號(hào),即可確定識(shí)別到左岔路口,進(jìn)入非循跡模式,進(jìn)行1 號(hào)障礙桿的布障工作,考慮到車身在循跡過程中可能存在微偏移,程序中判斷左岔路口的條件將左右邊緣檢測(cè)點(diǎn)位去掉,以防止出現(xiàn)誤判斷導(dǎo)致布障失敗。
同理,Bit1-Bit6 均檢測(cè)到白線,則可判斷檢測(cè)到了十字路口或丁字路口,然而如何區(qū)分這兩種路口,僅用傳感器1 無法區(qū)分。因此,本設(shè)計(jì)在車頭加入了傳感器2,傳感器2 使用串口與主控模塊進(jìn)行通信,當(dāng)傳感器1 的Bit1-Bit6 均檢測(cè)到白線,同時(shí)傳感器2 任意點(diǎn)位也檢測(cè)到白線,則可判斷為十字路口;反之,當(dāng)傳感器1 的Bit1-Bit6均檢測(cè)到白線,同時(shí)傳感器2 沒有點(diǎn)位檢測(cè)到白線則為丁字路口。十字路口與丁字路口判斷示意圖如圖16 所示。
圖16 十字路口與丁字路口判斷示意圖
傳感器2 串口通信部分關(guān)鍵程序如下:
雙傳感器進(jìn)行路口識(shí)別的具體判斷條件如表4所示。
表4 3 路口識(shí)別判斷條件
通過以上設(shè)計(jì)制作的自動(dòng)布障AGV 如圖17所示,試運(yùn)行過程中,反復(fù)針對(duì)出現(xiàn)的問題不斷優(yōu)化:
圖17 自動(dòng)布障AGV 實(shí)物圖
(1)車身在急剎或轉(zhuǎn)向時(shí),容易產(chǎn)生側(cè)滑現(xiàn)象,結(jié)構(gòu)上進(jìn)一步優(yōu)化了重心,加厚底部防護(hù)板,控制上減少了起步,剎車和轉(zhuǎn)向的加速度,提升了AGV 的穩(wěn)定性;
(2)傳感器在外部光源較強(qiáng)時(shí)容易誤報(bào),為此優(yōu)化了傳感器,為其增加了3D 打印的遮光罩,如圖所示18 所示;
圖18 傳感器遮光罩
(3)主控板的通訊部分容易受電磁干擾,特別是麥輪摩擦EVA 地面會(huì)產(chǎn)生大量靜電,測(cè)試中2 塊主控板均因靜電損壞,這也是部分比賽團(tuán)隊(duì)選用PLC 主控板的原因之一,本設(shè)計(jì)通過優(yōu)化結(jié)構(gòu),將主控板移至頂層,設(shè)計(jì)為浮地低通,采用FR4 環(huán)氧板做EMC 隔離,在后期的測(cè)試及比賽中,主控板一直穩(wěn)定運(yùn)行;
(4)對(duì)AGV 速度控制進(jìn)行運(yùn)動(dòng)學(xué)分析,精確計(jì)算電機(jī)速度,并通過MATLAB 仿真及實(shí)車測(cè)試,進(jìn)行PID 參數(shù)調(diào)節(jié),得到較優(yōu)參數(shù),使AGV 高速循跡運(yùn)動(dòng)過程更加平穩(wěn);
(5)規(guī)劃AGV 自動(dòng)布障路徑并不斷優(yōu)化,獲得了最優(yōu)路徑及最短時(shí)間方案;
(6)對(duì)7 段式差速糾偏參數(shù)進(jìn)行不斷測(cè)試及優(yōu)化,獲得最優(yōu)糾偏參數(shù),使糾偏速度更快,過程更穩(wěn)定。
通過比賽的驗(yàn)證,該設(shè)計(jì)的AGV 直線速度可達(dá)300 m/min,按照程序反復(fù)執(zhí)行30 次,路口識(shí)別正確率100%,任務(wù)完成時(shí)間的誤差值在±3%以內(nèi),過程中未出現(xiàn)明顯滑動(dòng)摩擦,車身無松動(dòng),未出現(xiàn)異常狀態(tài),具有較高的可靠性。
由本校設(shè)計(jì)團(tuán)隊(duì)按照本設(shè)計(jì)方案開發(fā)的自動(dòng)布障AGV 在全國(guó)大學(xué)生機(jī)器人大賽ROBOTAC賽事中獲得了全國(guó)二等獎(jiǎng),與獲得三等獎(jiǎng)及以下團(tuán)隊(duì)相比,我們布障任務(wù)完成得更好,同時(shí)速度更快,車體重量更輕、體積更小;而一等獎(jiǎng)作品則勝在時(shí)間更短,其原因是他們?cè)O(shè)計(jì)在直線階段小車不循跡,節(jié)約了一定時(shí)間,在識(shí)別路口時(shí)糾正車身偏移,這種方式下,容易出現(xiàn)車身大幅偏移難以糾正的現(xiàn)象,因此他們犧牲了車體重量與車身寬度以增加抓地能力來減少車身偏移。相比來說,我校團(tuán)隊(duì)設(shè)計(jì)的是在循跡過程中實(shí)時(shí)糾偏方案,所需時(shí)間相對(duì)略長(zhǎng),但可靠性更高,也兼顧了車身體積小及輕量化要求。因此本設(shè)計(jì)能夠在較高速度下準(zhǔn)確地循跡及路口識(shí)別,工作穩(wěn)定可靠,對(duì)于提高高速AGV 性能有一定參考意義。