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