王相超,陳龍,顏斌
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江杭州,310018)
無(wú)人控制的情況下,類(lèi)似自行車(chē)的兩輪非機(jī)動(dòng)車(chē)這一類(lèi)欠驅(qū)動(dòng)模型難以實(shí)現(xiàn)自平衡[1]。傳統(tǒng)的腳踏式兩輪平衡車(chē)采用單級(jí)角度環(huán)PID 實(shí)現(xiàn)平衡控制[2]。而自行車(chē)機(jī)器人則是基于動(dòng)量守恒原理[3],在自行車(chē)上加裝外置動(dòng)量輪,通過(guò)對(duì)電機(jī)控制算法的設(shè)計(jì),使動(dòng)量輪合理轉(zhuǎn)動(dòng)產(chǎn)生回復(fù)力保持小車(chē)平衡[4]。在國(guó)外的相關(guān)研究中,對(duì)于自行車(chē)平衡控制器的設(shè)計(jì)多直接采取高維度的滑??刂破鳎Y(jié)合復(fù)雜的非線性物理建模進(jìn)行控制[5~6],其難點(diǎn)則是設(shè)計(jì)過(guò)程過(guò)于復(fù)雜繁瑣。為了深入研究自行車(chē)機(jī)器人遇到的難題,本文在TC264 單片機(jī)主控下自主設(shè)計(jì)并實(shí)現(xiàn)了基于無(wú)刷電機(jī)控制的動(dòng)量輪自平衡循跡自行車(chē)系統(tǒng),通過(guò)類(lèi)比四軸飛行器,設(shè)計(jì)三環(huán)串級(jí)PID 控制器[7],同時(shí)設(shè)計(jì)了攝像頭圖像處理算法,實(shí)現(xiàn)了高抗擾動(dòng)、高速度的自平衡智能循跡系統(tǒng)。
本系統(tǒng)的總體方案設(shè)計(jì)框圖如圖1所示,通過(guò)使用攝像頭模塊采集道路灰度圖像,并使用圖像處理算法進(jìn)行道路元素識(shí)別,并控制舵機(jī)模塊和后輪電機(jī)實(shí)現(xiàn)小車(chē)在道路上運(yùn)行。使用陀螺儀模塊結(jié)合姿態(tài)解算算法獲取小車(chē)運(yùn)行時(shí)的姿態(tài)角,結(jié)合串級(jí)PID 控制算法來(lái)控制動(dòng)量輪轉(zhuǎn)動(dòng)實(shí)現(xiàn)小車(chē)平衡。此外,為了方便車(chē)模調(diào)試,添加了SD 卡、OLED、按鍵模塊,SD 卡模塊存儲(chǔ)小車(chē)運(yùn)行時(shí)采集的道路圖片,通過(guò)UART 串口傳輸圖像到電腦進(jìn)行調(diào)試。OLED 模塊配合按鍵模塊,可以實(shí)現(xiàn)屏幕圖像顯示和參數(shù)調(diào)整功能。主控TC264 芯片采用TriCore2 雙核架構(gòu),引腳數(shù)量多達(dá)144P,F(xiàn)LASH 空間達(dá)2.5MB,主頻達(dá)200MHz,性能優(yōu)越,足以實(shí)現(xiàn)本次復(fù)雜的系統(tǒng)設(shè)計(jì)。
圖1 系統(tǒng)總體方案框圖
系統(tǒng)實(shí)際圖片如圖2所示。
圖2 車(chē)模圖片
硬件總體設(shè)計(jì)采用TC264 為運(yùn)算核心的設(shè)計(jì)方案,整套硬件系統(tǒng)可共分為3 大模塊,分別為單片機(jī)控制模塊、傳感器模塊、電機(jī)驅(qū)動(dòng)模塊。
模塊間的關(guān)系如圖3所示。
圖3 模塊關(guān)系示意圖
圖4 主控芯片原理圖
主控模塊的設(shè)計(jì)采用TC264 單片機(jī),由于此單片機(jī)功率較大,在電源模式選擇中選用外部3.3V、內(nèi)部LDO1.3V電源模式供電。
外置無(wú)源晶振,通過(guò)負(fù)載電容計(jì)算公式:
再經(jīng)過(guò)實(shí)際的測(cè)試,選用20MHz的無(wú)源晶振與22pF的負(fù)載電容構(gòu)成晶振,如圖5所示。
圖5 晶振原理示意圖
攝像頭模塊選擇逐飛科技的總鉆風(fēng)MT9V032 全局快門(mén)數(shù)字?jǐn)z像頭,幀率可高達(dá)498 幀,具備高動(dòng)態(tài)、全局快門(mén)、自動(dòng)曝光等優(yōu)點(diǎn)。攝像頭接口電路如圖6所示。
圖6 攝像頭接口電路
圖7 后輪電機(jī)驅(qū)動(dòng)模塊電路
圖8 無(wú)刷電機(jī)驅(qū)動(dòng)模塊電路
電機(jī)驅(qū)動(dòng)電路一般采用驅(qū)動(dòng)芯片和MOS 管組合搭建H 橋,對(duì)于后輪有刷直流電機(jī)我們采用兩片全橋驅(qū)動(dòng)芯片BTN7971,該芯片雖然導(dǎo)通內(nèi)阻較大發(fā)熱較嚴(yán)重、死區(qū)時(shí)間較短,但鑒于單車(chē)組速度較慢且不會(huì)出現(xiàn)正 反 轉(zhuǎn) 情 況,BTN7971 可以說(shuō)是非常優(yōu)秀的選擇。
驅(qū)動(dòng)電路采用專(zhuān)用驅(qū)動(dòng)芯片和MOS 搭建。驅(qū)動(dòng)芯片采用國(guó)產(chǎn)EG2181,在價(jià)格便宜的同時(shí)還能提供較大的驅(qū)動(dòng)電流。MOS 管采用英飛凌的BSC014N04LS。為了減少輸出波形的震蕩,適當(dāng)加大了柵極驅(qū)動(dòng)電阻、布局時(shí)減短了走線長(zhǎng)度并且減少過(guò)孔的使用減少寄生電感,為了提高載流能力還采用了并聯(lián)MOS的設(shè)計(jì)。
系統(tǒng)軟件設(shè)計(jì)部分由陀螺儀姿態(tài)解算、串級(jí)PID 平衡控制、圖像采集與處理、舵機(jī)轉(zhuǎn)向控制、后輪電機(jī)速度控制五大模塊組成。系統(tǒng)程序流程圖如圖9所示,系統(tǒng)對(duì)各模塊初始化完成后進(jìn)行陀螺儀姿態(tài)解算與串級(jí)PID 平衡控制,使小車(chē)可以實(shí)現(xiàn)原地直立;原地直立保持一小段時(shí)間,系統(tǒng)進(jìn)入穩(wěn)定狀態(tài)后進(jìn)行攝像頭圖像采集與處理,結(jié)合舵機(jī)控制與速度控制模塊,小車(chē)可以保持在道路正中間行駛;在判斷到車(chē)庫(kù)元素后,小車(chē)駛?cè)胲?chē)庫(kù)中,系統(tǒng)停止運(yùn)行。
圖9 系統(tǒng)程序流程圖
系統(tǒng)使用ICM20602 陀螺儀,通過(guò)設(shè)計(jì)四元數(shù)姿態(tài)解算算法來(lái)獲取小車(chē)運(yùn)行時(shí)的偏航角、俯仰角、橫滾角,實(shí)現(xiàn)了收斂速度快、誤差小、抗擾動(dòng)強(qiáng)的姿態(tài)解算算法[8]。
四元數(shù)姿態(tài)解算的原理是通過(guò)求解可以表示三維空間旋轉(zhuǎn)信息的向量具體表達(dá)式(1),得到四元數(shù)值q0,q1,q2,q3(2),再利用四元數(shù)表示三維空間姿態(tài)變換矩陣(3),將四元數(shù)表示的姿態(tài)角矩陣與姿態(tài)角變換矩陣(4)聯(lián)立,即可用四元數(shù)值表示姿態(tài)角(5,6,7)[9]。
四元數(shù)值具體計(jì)算公式如(2)所示,?t為陀螺儀采樣周期,程序中設(shè)定為5ms,xω,yω,zω為測(cè)得的三軸角速度。
四元數(shù)表示的空間姿態(tài)變換矩陣如(3)所示。
姿態(tài)角解算結(jié)果如(4)(5)(6)所示,數(shù)值迭代即可計(jì)算得到三軸姿態(tài)角。
傳統(tǒng)的PID 算法包括位置式PID 與增量式PID,單級(jí)PID 只有一個(gè)輸入和一個(gè)直接輸出。串級(jí)PID 控制器則是多個(gè)傳統(tǒng)PID 控制器串聯(lián)構(gòu)成的系統(tǒng),將一個(gè)PID的輸出值作為另一個(gè)PID 控制器的輸入,以此嵌套提升控制復(fù)雜度。
3.2.1 位置式PID 與增量式PID
位置式PID的原理公式如(7)所示,ek為當(dāng)前時(shí)刻系統(tǒng)誤差,K p K i Kd分別為比例,積分,微分系數(shù)。uk為輸出值。
增量式PID的原理公式如(8)所示,ke與ek?1分別為當(dāng)前時(shí)刻與上一時(shí)刻系統(tǒng)的偏差。 ?uk為計(jì)算得到的輸出增量。
3.2.2 自行車(chē)機(jī)器人串級(jí)PID 控制
本系統(tǒng)使用到了速度環(huán)、角度環(huán)、角速度環(huán)三環(huán)串聯(lián)組成的串級(jí)PID 控制器,依據(jù)三個(gè)環(huán)控制響應(yīng)速度的排序決定串聯(lián)順序??刂破鹘Y(jié)構(gòu)如圖10所示。其中角速度環(huán)采用式(8)所示的增量式PID,角度環(huán)與速度環(huán)采用式(7)所示的位置式PID。角速度環(huán)作為最內(nèi)環(huán),輸出值直接作用于無(wú)刷電機(jī),速度環(huán)響應(yīng)速度最慢,作為最外環(huán),輸出作為角度環(huán)的輸入。而角度環(huán)的輸出作為角速度環(huán)的輸入依次串聯(lián)。
圖10 串級(jí)PID結(jié)構(gòu)圖
由于攝像頭直接采集的原始圖像為灰度圖,而對(duì)于小車(chē)的循跡要求來(lái)說(shuō),只需一條循跡線即可。為了進(jìn)一步壓縮數(shù)據(jù),系統(tǒng)使用了大津法(Otsu)對(duì)灰度圖像進(jìn)行高效快速的二值化。大津法的原理是利用類(lèi)間方差最大化自適應(yīng)篩選閾值,使得圖像前景與背景得到最大程度的分割。使用大津法得到的道路二值化圖像如圖11所示。
圖11 道路二值化圖像
在邊緣提取算法的設(shè)計(jì)上,為了降低算法對(duì)平衡控制時(shí)序的影響,保證算法運(yùn)行的效率,本文采取了嵌套遍歷的算法?;舅悸肥牵簭膱D像底部開(kāi)始,在行中心位置左右隨機(jī)生成一個(gè)起始點(diǎn),從起始點(diǎn)到圖像頂端開(kāi)始縱向遍歷,每次縱向遍歷中嵌套一次左右橫向遍歷,每次橫向遍歷遇到黑白二色的分界點(diǎn)則停止。最終邊緣提取得到的道路輪廓圖如圖12所示。
圖12 道路輪廓圖像
3.4.1 自行車(chē)轉(zhuǎn)向控制算法設(shè)計(jì)
由于自行車(chē)機(jī)器人轉(zhuǎn)向完全依賴于舵機(jī),因此精準(zhǔn)高效的舵機(jī)控制算法至關(guān)重要。系統(tǒng)采用的舵機(jī)型號(hào)為S3010,驅(qū)動(dòng)所需的PWM 頻率為50Hz,具有扭矩大,響應(yīng)速度快,控制精度高等優(yōu)點(diǎn)。
在舵機(jī)控制算法的選取上,為了使得控制響應(yīng)速度最大,輸出擾動(dòng)最小,采取了PD位置式PID 控制器。PID 控制律結(jié)構(gòu)圖如圖13所示。輸入值為道路中線的第20 行橫坐標(biāo),目標(biāo)值為整幅圖像的中心橫坐標(biāo)93,采用式(7)去除積分項(xiàng)的位置式PID 進(jìn)行轉(zhuǎn)向控制,輸出值為舵機(jī)PWM占空比。
圖13 PID原理框圖
但對(duì)于自行車(chē)機(jī)器人的轉(zhuǎn)向控制來(lái)說(shuō),固定參數(shù)的PID控制器難以匹配各類(lèi)道路元素,不利于應(yīng)用在多復(fù)雜元素的道路上。為了保證自行車(chē)轉(zhuǎn)向的流暢性,當(dāng)小車(chē)行進(jìn)至不同的道路元素時(shí),適當(dāng)?shù)卣{(diào)整參數(shù)以保證過(guò)彎的連續(xù)絲滑。
3.4.2 自行車(chē)后輪速度控制算法設(shè)計(jì)
系統(tǒng)采用了去除式(8)中微分項(xiàng)的增量式PI 控制器對(duì)小車(chē)速度進(jìn)行控制??刂破鞯妮斎胫禐榫幋a器讀取的后輪轉(zhuǎn)速,目標(biāo)值為根據(jù)不同道路設(shè)定的目標(biāo)轉(zhuǎn)速值,輸出為后輪電機(jī)的PWM 占空比。采用增量式PI 控制器進(jìn)行速度控制具有精度高,響應(yīng)速度快的優(yōu)勢(shì)。
從原理的要求上出發(fā),進(jìn)行串級(jí)PID 參數(shù)整定按照角速度環(huán)-角度環(huán)-速度環(huán)的順序進(jìn)行。在調(diào)試角速度環(huán)時(shí),先調(diào)節(jié)參數(shù)I,到一定大小時(shí),從平衡位置啟動(dòng)系統(tǒng),車(chē)模能在原地保持3~5s的直立即可。然后調(diào)試角度環(huán)P,在運(yùn)行兩級(jí)串級(jí)PID的情況下,系統(tǒng)仍不穩(wěn)定,但可以使車(chē)模保持10s 以上的直立即可。最后調(diào)節(jié)速度環(huán)P,參數(shù)合適的情況下,車(chē)模會(huì)在平衡位置附近來(lái)回?cái)[動(dòng),但系統(tǒng)穩(wěn)定,再依次調(diào)節(jié)角速度環(huán)P,角度環(huán)d,速度環(huán)I 消除系統(tǒng)輸出抖動(dòng)。最終確定的參數(shù)如表1所示。
表1
4.2.1 長(zhǎng)直道元素參數(shù)設(shè)置
長(zhǎng)直道是車(chē)模行進(jìn)時(shí)對(duì)平衡性能干擾最小的元素,此時(shí)降低轉(zhuǎn)向環(huán)PD 參數(shù),提高速度環(huán)目標(biāo)值,可以讓車(chē)??焖偻ㄟ^(guò)。記錄的長(zhǎng)直道元素圖片如圖14所示。
圖14 長(zhǎng)直道
4.2.2 彎道參數(shù)設(shè)置
車(chē)模在彎道內(nèi)行駛時(shí)由于受到離心力和自行車(chē)系統(tǒng)慣性的影響,會(huì)不可抗的向轉(zhuǎn)彎方向傾倒一定角度。并且轉(zhuǎn)彎半徑越小,過(guò)彎速度越快,相應(yīng)的傾斜角度越大,越不利于平衡控制。因此,在彎道時(shí)需要降低轉(zhuǎn)向環(huán)P 值,降低速度環(huán)目標(biāo)值,讓小車(chē)慢速、繞外圈通過(guò)彎道。記錄的彎道元素圖片如圖15所示。
圖15 彎道
圖16 十字路口
圖17 三岔路口
圖18 駛?cè)氕h(huán)島
圖19 環(huán)島內(nèi)
圖20 駛出環(huán)島
4.2.3 十字路口參數(shù)設(shè)置
車(chē)模在行進(jìn)至十字路口時(shí),經(jīng)過(guò)圖像處理,可當(dāng)做長(zhǎng)直道處理。
4.2.4 三岔路口參數(shù)設(shè)置
車(chē)模行進(jìn)至三岔路口時(shí),經(jīng)過(guò)圖像處理仍存在轉(zhuǎn)向突變性,而保持一定速度下,車(chē)頭突然擺動(dòng)將打破車(chē)模平衡,經(jīng)過(guò)實(shí)際運(yùn)行時(shí)發(fā)現(xiàn)車(chē)模高速駛?cè)肴砺房跁r(shí)容易摔倒,因此需要降低速度環(huán)目標(biāo)值,減小轉(zhuǎn)向環(huán)PD 以保證順利駛?cè)肴怼?/p>
4.2.5 環(huán)島參數(shù)設(shè)置
車(chē)模駛?cè)氕h(huán)島與駛?cè)肴碛龅降膯?wèn)題一致,同樣由于突然的轉(zhuǎn)向變化引起平衡不穩(wěn)定。降低速度環(huán)目標(biāo)值,減小轉(zhuǎn)向環(huán)PD 減速駛?cè)氕h(huán)島。在環(huán)島中與彎道處理一致,出環(huán)島與入環(huán)島處理一致。
本文設(shè)計(jì)并實(shí)現(xiàn)了基于單片機(jī)的動(dòng)量輪自平衡循跡自行車(chē)系統(tǒng),利用大扭矩,高轉(zhuǎn)速的無(wú)刷電機(jī)驅(qū)動(dòng)動(dòng)量輪,使用了串級(jí)PID 控制器與四元數(shù)姿態(tài)解算共同組成的平衡控制算法,實(shí)現(xiàn)了最大回復(fù)角17°的最終效果,同時(shí)在平衡性能上具備抗高頻擾動(dòng),高響應(yīng)速率,高穩(wěn)定性的優(yōu)勢(shì)。此外,基于大津法研究了攝像頭圖像采集與道路識(shí)別算法,使自行車(chē)能夠識(shí)別出環(huán)島、三叉路口等復(fù)雜路段,結(jié)合了動(dòng)態(tài)調(diào)整參數(shù)的舵機(jī)轉(zhuǎn)向算法和后輪速度控制算法,讓小車(chē)在道路上的運(yùn)行兼具高速、流暢與穩(wěn)定的特點(diǎn)。