陳新杰,胡天麒
(武漢理工大學(xué)機電工程學(xué)院,武漢430070)
作為移動類型機器人之一,四足機器人在很多領(lǐng)域(如軍事、家庭、救援等)都有很好的實用性以及廣大的應(yīng)用前景[1]。較之于其他類型的履帶式、輪式移動機器人,四足機器人運動過程落腳點離散,這一運動特點使得它能夠在非結(jié)構(gòu)環(huán)境中適應(yīng)性更強和運動靈活性更高,可以在多數(shù)的地面順利行走。采用剛性脊柱是目前絕大多數(shù)的四足機器人發(fā)展現(xiàn)狀,而使用剛性脊柱限制了四足機器人性能的提升。將柔性脊柱引入四足機器人,脊柱的協(xié)調(diào)配合可對外界沖擊起到柔順作用,在調(diào)整機身姿態(tài)和四條腿的落足點方面優(yōu)勢跟明顯,能夠有效地提高機器人運動的穩(wěn)定性和運動靈活性[2]。
目前,對于大多數(shù)機器人控制系統(tǒng)的通信方式都是采用RS485、RS232端口和一些現(xiàn)場總線,但在機器人結(jié)構(gòu)比較復(fù)雜,控制關(guān)節(jié)較多的情況下,不能保證控制系統(tǒng)實時性和穩(wěn)定性。CAN總線是一種能夠解決繁多數(shù)量控制設(shè)備間數(shù)據(jù)交換的串行數(shù)據(jù)通信協(xié)議,CAN通信具有通信速度快、采用多主方式工作可掛載多個節(jié)點等特點。本文基于CAN總線設(shè)計并開發(fā)了分層式的柔性脊柱四足機器人控制系統(tǒng),并采用一種新型的積分分離PID控制算法來控制電機的運動。
依照機器人結(jié)構(gòu)設(shè)計原則,設(shè)計結(jié)構(gòu)簡圖如圖1所示。柔性脊柱型四足機器人由腿部、腰部、前體和后體機身組成,每條腿3個關(guān)節(jié),髖關(guān)節(jié)、膝關(guān)節(jié)和橫擺關(guān)節(jié)。其中,驅(qū)動髖關(guān)節(jié)和膝關(guān)節(jié)可以使機器人前行,驅(qū)動橫擺關(guān)節(jié)機器人可以實現(xiàn)側(cè)擺。脊柱有前、后兩個關(guān)節(jié),柔性脊柱能夠有效的提高機器人的運動速度和靈活性[3-5]。機器人一共14個關(guān)節(jié),采用直流無刷電機驅(qū)動,實現(xiàn)精確定位和多模式控制。
圖1 四足機器人結(jié)構(gòu)簡圖
帶柔性脊柱的四足機器人比剛性脊柱四足機器人結(jié)構(gòu)更加復(fù)雜,自由度更多,控制起來也更加的復(fù)雜,控制需求更高。首先,需要對每條腿的各個關(guān)節(jié)進行精準控制,與此同時還要保證腿的協(xié)調(diào)性;其次,加入脊柱關(guān)節(jié)控制后,要協(xié)調(diào)腿部和腰部,保證機身的穩(wěn)定性和靈活性。最后,帶柔性脊柱四足機器人系統(tǒng)整體規(guī)模大、驅(qū)動器數(shù)量多、傳感模塊輸入信號量大、各個模塊間的通信復(fù)雜,要求控制系統(tǒng)有較高的控制頻率,有良好的實時性。
對于帶柔性脊柱四足機器人復(fù)雜的控制,以往采用單處理器和主從式架構(gòu)無法滿足對腿部和腰部電機協(xié)調(diào)和控制系統(tǒng)的實時性要求,達不到預(yù)期的控制效果。為了滿足脊柱型四足機器人的控制需求,采用分層式的控制系統(tǒng),對系統(tǒng)進行分層控制,對每一層的任務(wù)明確分工,加快系統(tǒng)的響應(yīng)速度,控制效果更優(yōu)[6]。整個控制系統(tǒng)分為三層:監(jiān)控層、規(guī)劃控制層和執(zhí)行層,系統(tǒng)總體控制方案如圖2所示。
圖2 機器人控制系統(tǒng)方案
(1)監(jiān)控層。監(jiān)控層主要是監(jiān)控計算機,監(jiān)控機通過無線以太網(wǎng)與規(guī)劃層的工控機相連實現(xiàn)兩者間的自由通信。接收傳感器獲得和工控機計算出的運動狀態(tài)信息并進行存儲備份,用以檢測機器人的運行情況,方便操作人員監(jiān)控機器人的實時運動狀態(tài),實現(xiàn)人機交互功能。
(2)規(guī)劃控制層。規(guī)劃控制層主要完成機器人的整機運動狀態(tài)的控制,規(guī)劃運動步態(tài)、路徑和完成上層控制算法,發(fā)送指令到執(zhí)行層。選擇研華工控機PC104作為主控制器,型號為PCM-3362N-S6A1E,英特爾CPU,最大內(nèi)存2 G,功耗低,計算能力強。通過慣性測量單元IMU實時獲取機身的姿態(tài)角,工控機同時采集和處理腿部及機體軀干的傳感器的信息,分析計算機器人的姿態(tài)和評估運動狀態(tài)。依據(jù)采用的控制算法策略對機器人進行協(xié)調(diào)控制,然后通過CAN總線發(fā)送控制指令到執(zhí)行層的各個驅(qū)控模塊完成機器人規(guī)劃的運動狀態(tài)和機體姿態(tài)。
(3)執(zhí)行層。為了提高系統(tǒng)的控制頻率,采用多片DSP芯片,以到達1 kHz的控制頻率。執(zhí)行層由14片 DSP28335、14個maxon公司的 EC45 flat直流無刷電機(BLDC)及驅(qū)動電路組成。執(zhí)行層通過CAN總線與規(guī)劃層實現(xiàn)通信,工控機要通過CAN總線網(wǎng)絡(luò)實現(xiàn)對個直流無刷電機的協(xié)調(diào)控制。實質(zhì)是掛在總線上的工控機與各個節(jié)點(DSP)之間的通信,工控機將指令或數(shù)據(jù)發(fā)送給CAN總線上的各個節(jié)點,再由各個節(jié)點(DSP)通過一定的控制算法和驅(qū)動電路完成對BLDC的控制[7-10]。CAN網(wǎng)絡(luò)上所有的節(jié)點通過報文濾波確定是否接收報文,可以單獨接受也可以同時接受并做出反應(yīng),同時接受時是為多播方式。上位機通過CAN總線接受或發(fā)送指令,以點對點的方式與某節(jié)點通信可以對該節(jié)點施加動作,也可以用多播方式同時對總線上所有節(jié)點施加動作,實現(xiàn)多個關(guān)節(jié)電機的同步運行。通過CAN總線的報文濾波,再依據(jù)DSP采用一定的算法控制電機動作,可以實現(xiàn)機器人的多個關(guān)機電機的同步控制和協(xié)調(diào)控制。驅(qū)動電路如圖4所示。
執(zhí)行層電機的控制采用雙閉環(huán)控制,EC45 flat直流無刷電機內(nèi)置有霍爾傳感器和增量式編碼器,可實時將電機當(dāng)前位置和速度反饋給DSP,伺服精度較高。DSP產(chǎn)生PWM波經(jīng)過光電隔離電路輸出到驅(qū)動芯片IR2136,經(jīng)過三相逆變器驅(qū)動電機本體。同時,通過采樣電路對電機的三相電流采用并送到DSP的A/D轉(zhuǎn)換模塊,實現(xiàn)電機的雙閉環(huán)控制,提高電機的控制精度,控制結(jié)構(gòu)如圖3所示。
圖3 執(zhí)行層控制結(jié)構(gòu)
圖4 直流無刷電機驅(qū)動電路
為了提高控制系統(tǒng)的響應(yīng)速度,將機身姿態(tài)調(diào)整、步態(tài)規(guī)劃等控制策略放在規(guī)劃層,而把電機的驅(qū)動和控制算法放在執(zhí)行層DSP上。在執(zhí)行層采用一種基于積分分離PID的新型控制算法控制電機的狀態(tài),提高電機的控制速度和精度。圖5所示為傳統(tǒng)的PID 控制算法結(jié)構(gòu)原理圖,r(t)是給定值,y(t)為輸出值,兩者差值為e(t),而u(t)為 PID 控制器的輸出值。
圖5 典型PID控制原理框圖
典型的PID算法控制量:
新型的積分分離PID控制算法在傳統(tǒng)PID算法的基礎(chǔ)上,對比例系數(shù)、積分環(huán)節(jié)做出調(diào)整,同時引入死區(qū)控制,使PID算法的更加靈活、控制效果更好[11-12]。
(1)比例控制。比例環(huán)節(jié)能夠迅速反映偏差從而減小偏差,比例系數(shù)越大偏差越小,但是Kp加大會引起系統(tǒng)不穩(wěn)定。因而在實際應(yīng)用中,需要合理的調(diào)整Kp。當(dāng)實際輸出偏離參考指令信號,增大Kp以減小系統(tǒng)的偏差值。當(dāng)實際輸出在跟蹤輸出參考指令信號,偏差與偏差變化率異號,此時應(yīng)該減小Kp,避免比例系數(shù)過大引起超調(diào)而造成系統(tǒng)不穩(wěn)定。比例系數(shù)調(diào)整規(guī)則如下:
1)偏差e減小,保持比例系數(shù)Kp不變。
2)偏差e增大,且時e·(de/dt)>0,增大Kp;偏差e增大,但e·(de/dt)<0 時,減小Kp。
(2)積分控制。引入積分環(huán)節(jié)可以減小穩(wěn)態(tài)誤差,提高空系統(tǒng)的控制精度。但是,積分環(huán)節(jié)會加大系統(tǒng)的超調(diào)量,引起系統(tǒng)振蕩。采用積分分離PID控制能夠有效平衡減小誤差和保持系統(tǒng)穩(wěn)定。具體而言,當(dāng)偏差e(k)較大時取消積分作用,以避免過大的超調(diào)量;當(dāng)被控量接近設(shè)定值,偏差e(k)小于一個閾值β時加入積分作用,減小穩(wěn)態(tài)誤差,提高精度。積分分離PID算法為:
積分分離PID控制量:
(3)引入死區(qū)控制。當(dāng)系統(tǒng)偏差很小時,頻繁調(diào)整輸出會引起振蕩。因此,可以引入死區(qū)參數(shù)ε使控制器在一定的范圍內(nèi)輸出保持恒定。當(dāng)系統(tǒng)的偏差e(k)絕對值不大于ε時,忽略存在的微小偏差,控制器繼續(xù)維持的上周期輸出值不變,即當(dāng)時,保持控制量為:
建立直流無刷電機的MATLAB/simulink仿真模型,對四足機器人執(zhí)行層電機控制算法進行仿真[13-14]。依據(jù)圖6所示的控制原理,建立新型積分分離PID算法的simulink模型,如圖7所示。取控制器的初始整定參數(shù)Kp=10.7,Ki=0.15,對系統(tǒng)進行仿真操作。
圖6 新型積分分離PID控制原理
圖7 新型積分分離PID控制器simulink模型
電機的額定轉(zhuǎn)速為4 860 r/min,以額定轉(zhuǎn)速空載啟動,在0.7 s電機由空載加負載至電機的額定轉(zhuǎn)矩0.128 N·m,傳統(tǒng)PID和新型的帶死區(qū)積分分離PID控制電機的轉(zhuǎn)速波形如圖8所示。從圖8知,相比于傳統(tǒng)的PID算法在0.28 s有超調(diào)量,新型的帶死區(qū)積分分離PID算法可以很好的跟蹤輸入的期望轉(zhuǎn)速;加入負載后,傳統(tǒng)PID控制輸出轉(zhuǎn)速存在超調(diào)量,而新型PID算法能夠保持系統(tǒng)的穩(wěn)定狀態(tài)。
圖8 兩種控制算法電機轉(zhuǎn)速輸出對比波形圖
本文采用模塊化設(shè)計軟件框架,將軟件系統(tǒng)分為四個模塊:監(jiān)控機PC模塊、數(shù)據(jù)采集模塊、規(guī)劃控制層模塊和執(zhí)行層模塊。作為軟件設(shè)計的核心,規(guī)劃控制層擔(dān)負著信息采集,解算關(guān)節(jié)角,根據(jù)控制策略通過CAN總線發(fā)出控制指令到執(zhí)行層。為了提高系統(tǒng)的實時性,采用多線程技術(shù)來進行軟件程序設(shè)計,多個線程并行執(zhí)行提高信息處理能力。
首先數(shù)據(jù)采集線程完成機器人的姿態(tài)、速度和各電機狀態(tài)等信息的采集,依據(jù)采集的信息控制算法解算線程計算關(guān)節(jié)角度,控制指令發(fā)送線程發(fā)出控制指令到CAN總線上,通過CAN通信線程發(fā)送到驅(qū)動器,驅(qū)動器接受信息并及時做出響應(yīng)。規(guī)劃控制層模塊程序設(shè)計如圖9所示,設(shè)置時要保證控制頻率不高于采樣頻率,通過不斷地循環(huán)各個線程,保證四足機器人的正常穩(wěn)定行走。
圖9 執(zhí)行層程序流程
通過對電機進行測試,來驗證機器人控制系統(tǒng)的實時性和可靠性,實驗平臺實物圖如圖10所示。柔性脊柱四足機器人采用位置控制模式,輸入周期T=1 s、幅值A(chǔ)=10 000 qc的正弦位置信號,觀察電機位置信號的輸出情況,實驗結(jié)果如圖11所示,虛線代表輸入信號而實線代表跟蹤信號。從實驗結(jié)果可以看出,輸出的位置軌跡能夠很好的跟蹤規(guī)劃的位置軌跡,幅值和相位的均只有微小的衰減,能夠滿足精度要求。
圖10 實驗平臺實物圖
圖11 電機測試響應(yīng)曲線圖
以工控機和多個DSP28335為控制器,設(shè)計了分層式的帶柔性脊柱四足機器人的控制系統(tǒng)。在以工控機為核心的控制規(guī)劃層運行機器人所用的運動學(xué)和動力學(xué)算法。通過CAN通信實現(xiàn)多個關(guān)節(jié)電機的同步與協(xié)調(diào)動作,DSP完成電機的新型積分分離PID運動控制算法并驅(qū)動電機,采用多個DSP提高控制系統(tǒng)的實時計算能力和響應(yīng)速度。通過電機建模仿真和響應(yīng)測試,驗證了控制系統(tǒng)的可靠性和穩(wěn)定性。