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