蔡青松,吳 強,杜康熙,謝自強,王肖鋒
(1.天津市先進機電系統設計與智能控制重點實驗室,天津 300384;2.天津理工大學機電工程國家級實驗教學示范中心,天津 300384)
近年來小型搬運機器人及其相關技術已成為機器人領域的研究熱點。它能夠進入惡劣環境中,廣泛應用于災后救援、航天應用及環境科考等作業中。尤其是在快遞業的分揀及搬運中,小型搬運機器人正受到越來越多的青睞。
搬運機器人要實現在未知環境中作業,需具備自主行駛和自動避障功能,還需可靠的搬運執行機構和環境感知能力。由于超聲波傳感器方向性好、結構簡單、探測距離遠且成本低廉,因此廣泛應用于機器人環境探測中。另外,對于搬運機器人來說,合適的機器人驅動結構也是更好的完成工作任務的重要保證,履帶式良好的行進能力和環境適應能力能讓搬運機器人更好的完成搬運任務。
近些年,許多學者對履帶式機器人進行了避障算法研究。王隨平[1]等人針對深?;顒拥穆膸C器人提出的改進型人工勢場法進行避障控制,對聲吶采集到的環境信息是采用D-S理論推算出障礙物準確位置再根據改進型的人工勢場法進行方向控制從而實現避障;王曉東[2]等人在差動式驅動結構履帶機器人上引入了模糊控制算法,使用定性的規則來進行避障控制;王隨平[3]等人對深海履帶機器人提出了模糊與遺傳算法相結合的方法建立了局部避障規劃;劉同林[4]等人提出了協同轉向方法,用于履帶式機器人避障;楊小菊[5]等人針對移動機器人在未知環境中的不確定性,利用Matlab構建了多傳感器仿真試驗移動平臺,在Simulink中搭建移動機器人運動學模型,利用多傳感器采集環境中的障礙物信息與目標物的方位角,設計了具有避障功能的模糊控制算法。
本文設計了一種能夠自動搬運的小型履帶式機器人,并提出了一種模糊算法來實現機器人自動避障。該算法無需對環境物體建立數學模型,只需對輸入量即機器人與障礙物之間的距離進行模糊化,利用語言變量表達的定性的模糊規則來實現避障控制。針對驅動履帶輪的直流電機建立了數學模型,并利用積分分離PID算法進行仿真,實驗驗證了直流電機的性能可靠。
機器人車體選用的是雙履帶式小車。后方履帶輪為主動輪,由兩個直流電機驅動,前方履帶輪為隨動輪。前端立有支撐架,上下各有兩個舵機與鐵鏈連接,下方舵機用于控制叉車的升降,實現貨物的搬運卸載。前方及左右方各安有一個超聲波傳感器。機器人系統參數如表1所示。

表1 機器人系統參數
系統選用意法半導體公司設計的ARM架構處理器STM32F103芯片,系統功能框圖如圖1,機器人實物如圖2所示。

圖1 系統框圖

圖2 機器人實物圖
系統主要由傳感器模塊、電機驅動模塊、舵機驅動模塊、電源模塊及顯示模塊構成。電源模塊將12 V電源分別轉換成系統所需的3.3 V、5 V和12 V,用于給單片機和系統外設供電。超聲波探測機器人與障礙物之間的距離并返回模擬信號,經AD轉換后送給單片機,經處理后傳給數碼管顯示距離信息,并通過控制器輸出端口驅動舵機和直流電機工作。
機器人選用型號為TQD-08-5013的實驗室機器人小車,機器人采用模塊化拼裝,材料選用輕質鋁合金材質。機器人驅動方式為雙履帶式,其布局結構如圖3所示。
以方形鐵板為主,上下共兩層,通過連接桿件形成上下兩層主體結構,以便安裝履帶式輪組。上層主要放置系統的控制板和電機驅動芯片,下層放置電池盒和驅動叉車的電機模塊。下層板前端安裝突出結構,用于安裝前方超聲波傳感器模塊。

圖3 機器人俯視圖
車體左右各有一履帶輪組,套有兩條履帶。每組4個行動輪,分為一個主動輪、一個隨動輪和兩個支撐輪。主動輪在車體后方,由大功率直流電機驅動,其表面有凹凸結構,可以帶動履帶轉動。
叉車機構由若干桿件連接組成立式桅桿結構,用于固定前方兩個光滑滑桿。桅桿結構上下各裝有一個舵機,下方電機為驅動電機,上方為隨動電機。在兩電機輸出軸上套有鏈條,在鏈條上安裝鐵叉,用來搬運貨物。最下端安裝限位開關,用來檢測叉車的位置。
履帶機器人硬件系統主要有單片機最小系統、電源模塊、電機控制模塊、傳感器模塊及叉車搬運模塊。傳感器模塊主要負責環境信息采集;叉車模塊主要負責搬運貨物;履帶模塊主要由兩個直流電機驅動履帶轉動實現機器人移動。
超聲波傳感器具有頻次高、波長短及方向性好等特點,因此本設計選用型號為HC-SR04的超聲波傳感器,其主要由發送部分、接收部分、控制部分和電源構成。HC-SR04型號超聲波傳感器電源為5 V,靜態電流為2 mA,感應角度左右各15°,探測距離為2~450 cm,精度為0.2 cm。
舵機用來帶動車叉上下運動實現搬運貨物,選用TA8428K芯片驅動,采用脈寬調制 (PWM)方法控制,通過改變脈沖的寬度或占空比從而實現調壓。舵機的輸入信號與輸出的角度之間的線性度很好。本叉車采用型號為S135的舵機,其速度為0.15秒/60度,扭力為1.9 kg·cm,驅動電壓12 V,可從電源模塊直接引出12 V獨立給舵機供電。
機器人兩側履帶輪各配有一個直流電機,由雙端輸出的L298N芯片驅動,其采用雙H半橋式電路,輸入為非反相式,每個H橋可以提供2 A的電流輸出,峰值為3 A,電源電壓為2.5~48 V,邏輯部分為5 V供電,工作溫度為-25~130℃,圖4為L298N驅動電機的電路圖。

圖4 電機驅動電路圖
電源模塊采用12 V的電源盒供電。兩個電機和舵機需要12 V電源供電,STM32F103C8T6芯片需3.3 V供電,超聲波傳感器、限位開關均需5 V供電,L298N邏輯電平4.5~46 V。由于系統需多種電壓驅動,為降低成本簡化電路,通過型號為HW-DY02的DC12V轉5 V、3.3 V的轉換模塊引出各電壓。轉換模塊采用兩個AMS1117芯片,一個是AMS1117-5.0,輸出 5 V電壓;另一個是 AMS1117-3.3,輸出3.3 V電壓。圖 5是 AMS1117-3.3芯片外圍電路。AMS1117-5.0芯片電路與AMS1117-3.3的類似,這里不再展示其電路圖。

圖5 AMS1117-3.3芯片外圍電路
履帶機器人系統的開發軟件采用Keil uvision5。首先分別編寫各個模塊的程序,再將各個模塊組合起來。單片機系統上電后對每個模塊初始化,在主函數中執行主程序后等待中斷,響應中斷執行中斷服務程序后退出中斷。程序流程圖如圖6。
主函數主要是機器人行進函數和超聲波掃描函數。當前方超聲波傳感器檢測到有物體時,返回一個高電平給CPU,觸發中斷,此時查詢限位開關信號端button=1是否成立,即叉斗是否在底端。若是,則遇到的是貨物,CPU調用搬運程序進行搬貨;若不是,則遇到的是障礙物,CPU調用避障程序,此時分別給左右超聲波的控制端Trig發送高電平,若有返回信號觸發定時器開始測距。測得的數據經CPU進行處理后,調用電機程序避障。
模糊控制的基本思想是利用計算機來實現人的控制經驗,而這些經驗多是用語言表達的模糊性控制規則[6]。本文設計了一種基于模糊控制的避障算法,將傳感器探測到的障礙物距離遠近通過模糊化處理作為其危險程度指標,設計了一個三輸入單輸出模糊控制器。

圖6 程序流程圖
4.1.1 控制器的輸入與輸出設計
由于傳感器探測距離的限制、并且考慮到實際任務,將系統的閾值設為[5 cm,30 cm],機器人左、前、右3個方向的傳感器探測到的障礙物距離分別用LD、FD、RD來表示,模糊距離變量的語言值為:很近 (C)、近 (N)、中(M)、遠 (F)、很遠 (VF)。由于高斯型函數曲線較為平滑,所以隸屬度函數采用高斯函數,LD隸屬度函數具體設計如圖7,FD和RD與其類似不再展示。

圖7 LD隸屬度函數
機器人本身有兩個電機需要控制,為了簡化系統,由兩個電機的速度差來實現機器人的轉彎角度Angle作為控制器的輸出,范圍為 [-15°,+15°],負數表示向左轉,正數表示向右轉,0代表直線行進,輸出值的絕對值表示轉角大小。模糊轉角控制變量的語言值為:左大 (TTL)、左中(TL)、左小 (TSL)、零 (TC)、右小 (TSR)、右中(TR)、右大 (TTR),隸屬度函數如圖8。

圖8 Angle隸屬度函數
4.1.2 建立模糊控制規則
根據Fuzzy Set理論,建立定性推理原則[7]。模糊推理規則采用Mamdani的max-min合成法,反模糊化采用面積中心法[8]。模糊規則采用 IF-THEN條件語言,針對避障環境設計了23條規則。模糊控制規則是輸入距離信息與輸出轉角信息一種映射關系,本質上是一種反應式控制方法,具有普遍的適用性,不僅能夠用于靜態環境,還可用于實時動態的環境。
4.1.3 軟件模擬仿真
首先在Matlab中設定機器人的起始位置為 (0,0)、目標位置 (10,10),障礙物分布如圖13。機器人與目標物的角度為45°,在設定測距范圍內,計算障礙物與機器人的角度并逐一與目標角度比較。當障礙物角度大于45°時,則認為障礙物在機器人的左方;等于45°則可以確定障礙物在機器人的前方;小于45°則認為障礙物在機器人的右方。將測得的障礙物距離和機器人與目標物體的角度信息送入模糊控制器。經過多次仿真,不斷調整各個模塊的參數,最后將數據整理得到機器人的避障仿真結果如圖9所示。

圖9 機器人仿真結果
由仿真結果可以看出,機器人基本能夠沿著目標方向前進,并且能有效避開障礙物,尤其對矩形障礙物避障效果較好,說明該算法對避障的控制可行有效。但是對多個障礙物時的避障不是很好,如在前3個障礙物時機器人雖然對左方兩個障礙物進行了避障但過于靠近右方的一個障礙物。
履帶輪由兩個直流電機驅動,對電機轉速的控制直接關系到機器人避障的準確性和可靠性。由實際運行情況看,履帶輪往往不能按控制器輸出量運行。分析了系統受到的擾動因素,如搬運過程中機器人移動、貨物重量的變化以及舵機本身啟停狀態的變化導致系統受到的擾動,對直流電機引入了積分分離PID控制算法,修正電機轉速。
4.2.1 建模
普通PID控制,當擾動幅度較大時,或者是給定值大幅度改變時,由于短時間內會產生很大偏差,加上系統有滯后,常會產生較大的偏差或出現飽和現象,往往會造成超調和長時間的振蕩[9]。針對這些問題對電機控制采用了積分分離PID,即偏差較大時,取消積分作用,以免由于積分作用使系統穩定性降低,超調量增大;當被控量接近給定值時,引入積分控制,以便消除凈差,提高控制精度[10]。PID算法可表示為式 (1)。

式中,u(k)為控制器輸出的控制量,本文選用電機的驅動電壓作為控制量,u(k)即為電壓值;e(k)為電機的轉速誤差;控制器參數Kp、Kd、Ki分別為比例、積分和微分系數,β為積分項的開關系數。
利用電樞電壓平衡方程和轉矩平衡方程,建立狀態方程及傳遞函數關系。電樞電壓平衡方程為:

式中,ua為直流電機電樞電壓,Ra、La分別為電樞電阻、電樞電感,ia為電樞電流,ε為電樞反電勢,φ為每極磁通,n為轉子轉速,Ce為電勢常數。
轉矩平衡方程:

式中,J為轉速慣量,M、ML為電磁轉矩和負載轉矩,CM為直流電機的轉矩常數。
對式 (2)做拉氏變換可得電樞電流與電壓之間的傳遞函數:

對式 (4)做拉氏變換可得轉子轉速與動態轉矩(MML)之間的傳遞函數:

將式 (3)、(5)代入式 (6)得電磁轉矩與電樞電壓之間的傳遞函數:

由式 (7)、(8)建立精確數學模型,形成一個有反饋的閉環二階控制系統,得轉速與電樞電壓的傳遞函數:

為機電時間常數。

即為S135直流有刷電機以電樞電壓為輸入,以轉速為輸出的傳遞函數。
4.2.2 運動仿真
基于MATLAB/Simulink對建立的直流電機閉環控制系統模型進行了仿真。普通PID控制器4個參數分別為Kp=5,Kd=20,Ki=0.08,積分分離PID控制器4個參數分別為Kp=10,Kd=0.2,Ki=0.01,仿真結果如圖10所示。

圖10 PID仿真結果
仿真結果表明,在n=500 r/min的參考轉速下,普通PID存在較大的超調量,并且會產生一定的振蕩,調整時間延長。在實際控制過程中,對電機的響應速度影響較大,系統趨于穩定的時間增加,響應遲緩。采用積分分離PID控制,響應速度快且平穩,系統整體趨于穩定。在實際控制過程中,電機達到目標速度的時間短且過渡平穩,使得機器人避障的可靠性提高。
實驗使用安裝在前、左、右的3個方向的超聲波傳感器模塊對機器人與障礙物間的距離進行測量,得出的距離信息經AD轉換后送給單片機控制系統,計算處理后將控制信號發送給驅動履帶輪的兩個電機,
從而控制履帶機器人行走及避障。由于條件和設備有限,已通過軟件對模糊避障算法進行了仿真,不再進行實地測試,實驗只針對如前進、轉彎、后退、避障等性能以及積分分離PID對電機的控制進行驗證。實驗過程如圖11中的 (a)、(b)、(c)、(d)、(e)、(f)、(g)、(h)。

圖11 智能機器人運行過程圖
實驗結果表明,履帶機器人能利用多個超聲波傳感器測距,由單片機來控制舵機和電機分別實現叉車搬運及自動避障功能。在實驗過程中,機器人運行平穩,并且搬運、避障時電機能夠快速響應,說明采用積分分離PID控制算法的電機具有良好的可靠性。
本文基于模糊避障算法實現機器人的避障任務,仿真結果表明,模糊控制算法解決非線性系統具有一定優勢;積分分離PID算法提高了對電機的控制效果,從而提高了機器人避障的可靠性。實驗表明,在簡單的環境中,履帶機器人可以靈活、準確避開障礙物,到達目標點,滿足機器人避障要求。但由仿真以及實驗結果可看出,當遇到不規則或障礙物與機器人正前方有一定角度時,探測不是很靈敏,甚至會撞上障礙物,導致機器人避障不理想。因此需進一步修正模糊算法模型,以及改進機器人硬件設計,如增加傳感器數量、采用更大探測角的傳感器,并設計上位機結合計算機進行實驗,測試履帶式搬運機器人整體的可靠性。