畢亞楠,田江濤,曾家明,郭宵冉,王橋,左欣,游順才,楊世龍,李洋
(貴州師范學(xué)院,貴州貴陽,550000 )
近年來,自平衡機(jī)器人在移動(dòng)路徑和方向上更加的靈活,更加容易被控制,并且簡(jiǎn)化了車體結(jié)構(gòu),為提供新的功能提供了空間。該機(jī)器人驅(qū)動(dòng)功率小,屬于環(huán)保型車的一種新模式。在自平衡機(jī)器人的鉆研上,國內(nèi)以及國外都取得了一定的成就,瑞士聯(lián)邦工業(yè)大學(xué)的Felix Grasser等人成功研制出了利用DSP控制的兩輪自平衡機(jī)器人;從國內(nèi)的研究成果上看,我國的中國科學(xué)技術(shù)大學(xué)自主研制了一款自平衡電動(dòng)代步車,該款自平衡電動(dòng)代步車其實(shí)就是是一種兩輪平衡車。在機(jī)器人的各種門類中,輪式機(jī)器人的制作成本低,并且結(jié)構(gòu)簡(jiǎn)單,容易操作,有極高的研究?jī)r(jià)值。
自平衡機(jī)器人由兩個(gè)車輪和機(jī)器人機(jī)身組成,機(jī)身是連接著兩個(gè)車輪的長(zhǎng)方體結(jié)構(gòu),機(jī)身下方安裝機(jī)器人的控制系統(tǒng)以及電池等電路設(shè)備,機(jī)身上方安裝拓展性的功能模塊。下圖是機(jī)器人的系統(tǒng)總設(shè)計(jì)。
圖1 系統(tǒng)總體設(shè)計(jì)圖
主要是以PID算法為核心,使用陀螺儀模塊獲取當(dāng)前機(jī)器人的姿態(tài),使用霍爾傳感器獲取到機(jī)器人當(dāng)前車輪速度,最后將反饋回來的姿態(tài)以及速度做PID算法,最后得到最佳PWM值的輸出,使機(jī)器人的姿態(tài)更加穩(wěn)定。其次機(jī)身上方安裝了K210開發(fā)板做人臉識(shí)別功能。主要使用K210開發(fā)辦來檢測(cè)人的面部特征,錄入、識(shí)別人臉這兩個(gè)功能來對(duì)我們索要達(dá)到的效果進(jìn)行一個(gè)監(jiān)測(cè),進(jìn)一步對(duì)人臉進(jìn)行精確識(shí)別。
自平衡機(jī)器人的硬件模塊主要有STM32F103C8T6芯片、霍爾傳感器、MPU6050陀螺儀模塊、K210開發(fā)板等。
自平衡機(jī)器人的控制基礎(chǔ)是STM32F103C8T6芯片。該款芯片是一種基于Cortex-M3內(nèi)核的32位微控制器,芯片的硬件通過LQFP48進(jìn)行封裝,該芯片具有封裝體積小、處理速度快、功率損耗低等優(yōu)點(diǎn)[1]。該芯片通過2.0V~3.6V的直流電壓供電,總線寬度為32位,并有DMA、電機(jī)控制PWM等外圍設(shè)備。
直流減速電機(jī)是機(jī)器人的動(dòng)力來源。在普通直流電機(jī)的基礎(chǔ)上,加上齒輪減速箱就構(gòu)成了我們所需的直流減速機(jī)。齒輪減速箱會(huì)為我們提供較低的轉(zhuǎn)速以及比較大的力矩。通過齒輪箱減速比的不同,會(huì)給我們提供相應(yīng)不同的力矩和轉(zhuǎn)速。有了直流減速機(jī)我們就能實(shí)現(xiàn)機(jī)器人的前進(jìn)、后退以及轉(zhuǎn)向等操作。由于我們的直流減速電機(jī)的供電電壓是12V,但STM32單片機(jī)的電壓和電流都達(dá)不到要求,所以我們使用了電機(jī)驅(qū)動(dòng)TB6612。使用這款驅(qū)動(dòng),不僅可以驅(qū)動(dòng)控制我們的直流減速電機(jī),而且單片機(jī)還可以輸出相應(yīng)的pwm(脈沖寬度)給驅(qū)動(dòng),從而對(duì)直流減速電機(jī)的速度進(jìn)行控制。
為使保持機(jī)器人的平衡,我們選擇了集成了三軸陀螺儀和三軸加速度計(jì)的MPU6050模塊。該模塊解決了組合陀螺儀和加速器時(shí)間軸有誤差的問題,減少了很多的封裝空間。MPU6050采用自帶的數(shù)位運(yùn)動(dòng)處理器DMP,通過主I2C接口,以單一數(shù)據(jù)流的形式,直接讀取完整的9融合驗(yàn)算數(shù)據(jù)并向應(yīng)用端輸出。
MPU6050中的陀螺儀能夠直接測(cè)量某一方向軸上的旋轉(zhuǎn)角速度,然后通過積分方式轉(zhuǎn)換成旋轉(zhuǎn)角度,其在短時(shí)間內(nèi)能夠得到很好的測(cè)量結(jié)果,并且受外界的震動(dòng)干擾因素影響較小[1]。對(duì)于MPU6050中的加速度計(jì),其能夠直接測(cè)量某一方向上的加速度,在只受重力影響的環(huán)境下,通過測(cè)量重力加速度在某一方向上的分量,經(jīng)過簡(jiǎn)單的三角函數(shù)運(yùn)算,就可以得到MPU模塊的角度變化[1]。由于陀螺儀受震動(dòng)因素影響小,而加速度計(jì)不存在累計(jì)誤差,所以通過兩者的采樣數(shù)據(jù)進(jìn)行濾波后便能得到準(zhǔn)確的角度采樣值。
我們選取了霍爾傳感器進(jìn)行機(jī)器人的速度檢測(cè)。霍爾傳感器一種磁場(chǎng)傳感器,其基礎(chǔ)是霍爾效應(yīng)[2]?;魻杺鞲衅鹘Y(jié)構(gòu)比較牢固,體積較小,重量較輕,功耗小,并且精度高,適用于工業(yè)和家電應(yīng)用中作為固態(tài)電子開關(guān)。利用測(cè)磁技術(shù)輸出數(shù)字信號(hào)的特點(diǎn)將霍爾傳感器應(yīng)用于測(cè)速,其原理是利用霍爾效應(yīng)將壓力、拉力和位移等變量轉(zhuǎn)換為霍爾元件周圍的磁場(chǎng)變化,是一種磁場(chǎng)傳感器。當(dāng)機(jī)器人往前或是向后走的時(shí)候,我們用霍爾傳感器檢測(cè)機(jī)器人車輪的速度,單片機(jī)得到速度數(shù)據(jù)后,用該數(shù)據(jù)來做PID運(yùn)算,最后也是以pam的方式輸出來對(duì)電機(jī)進(jìn)行控制,使得機(jī)器人更加地穩(wěn)定。
自平衡機(jī)器人采用了0.96寸OLED顯示屏作為機(jī)器人的顯示器,可以顯示陀螺儀檢測(cè)到的數(shù)據(jù)。OLED與LCD技術(shù)相比較來看,屏幕厚度更薄,重量更加輕,具有廣視角。所以我們采用了OLED作為我們機(jī)器人的顯示屏幕。用來顯示MPU6050所檢測(cè)到的各種數(shù)據(jù),讓人們能夠明確地知道機(jī)器人的狀態(tài)。
對(duì)于我們的自平衡機(jī)器人,除了自平衡之外,我們還增加了人臉識(shí)別的功能。自平衡機(jī)器人使用K210芯片作為主控模塊,它內(nèi)部包含了KPU,內(nèi)置卷積、批歸一化、激活以及池化運(yùn)算單元,可對(duì)人臉或物體進(jìn)行實(shí)時(shí)監(jiān)測(cè)。
自平衡機(jī)器人的機(jī)身只有兩個(gè)輪子,車輪共軸著地,獨(dú)立驅(qū)動(dòng)[3]。當(dāng)機(jī)身傾斜時(shí),姿態(tài)傳感器檢測(cè)到機(jī)身傾斜信息,控制器接收信號(hào),輸出控制量控制電機(jī)向傾斜方向的同方向運(yùn)動(dòng),抵消傾斜力矩,從而使機(jī)身保持平衡。
(1)PID算法
PID算法是我們研究所需的核心。PID控制算法主要是對(duì)被控制對(duì)象當(dāng)前的值進(jìn)行數(shù)據(jù)采集,與設(shè)定的目標(biāo)值進(jìn)行偏差計(jì)算,對(duì)這個(gè)偏差進(jìn)行PID計(jì)算,整定好PID參數(shù),最后輸出整定好的量來對(duì)被控制對(duì)象進(jìn)行控制[4]。當(dāng)機(jī)身發(fā)生傾斜時(shí),系統(tǒng)通過PID控制算法,將機(jī)身角度、機(jī)身角速度、機(jī)身位置等數(shù)據(jù)進(jìn)行融合,輸出PWM信號(hào)驅(qū)動(dòng)電機(jī),就會(huì)使機(jī)器人實(shí)現(xiàn)自平衡[5]。
圖3 PID算法功能實(shí)現(xiàn)
(2)PD控制
自平衡機(jī)器人若想在水平線上能夠保持相應(yīng)的平衡,就需要平衡機(jī)器人在兩輪共同著地時(shí),使機(jī)身盡可能地傾斜到滾動(dòng)軸方向;若是想保持機(jī)身的平衡,當(dāng)機(jī)身發(fā)生傾斜時(shí),機(jī)身要向傾斜的方向向前移動(dòng)才能使機(jī)身保持平衡[7]。PD控制算法的主要效果就是讓自平衡機(jī)器人的機(jī)身保持平衡。
P(比例)控制算法是對(duì)當(dāng)前的誤差進(jìn)行一個(gè)比例增益。首先我們給定一個(gè)設(shè)定值(SetAngle),MPU6050測(cè)量反饋出的測(cè)量值(Angle),角度誤差值(ErrorAngle)。
ErrorAngle=Angle-SetAngle;此時(shí)比例向結(jié)果為(RealAngle),RealAngle=Kp*ErrorAngle(Kp 為比例系數(shù))。
D(微分)控制時(shí)K時(shí)刻角度差值與K-1時(shí)刻角度差值的差值進(jìn)行一個(gè)增益,主要的作用是作為一個(gè)超前調(diào)節(jié)。這里K與K-1角度差值的差值是角度微分,為角速度,而MPU6050陀螺儀模塊可以直接測(cè)量到此時(shí)的角速度(gyro_Y)。此時(shí)微分項(xiàng)結(jié)果為out=Kd*gyro_Y(Kd為微分系數(shù))。
(3)PI控制
平衡器人的速遞控制是通過正反饋的方式來實(shí)現(xiàn),使得輸出起到的作用與輸入相同;當(dāng)小車向前傾斜,電機(jī)此時(shí)要獲得更大的速度使得小車向前跑才能讓小車趨于穩(wěn)定,從而達(dá)到平衡的效果。
測(cè)試結(jié)果表明,自平衡機(jī)器人在通電后能夠立刻達(dá)到平衡狀態(tài),輕輕推動(dòng)即可恢復(fù)平衡,具有低功耗,方便,環(huán)保,高效等特點(diǎn)?;赟TM32單片機(jī)的自平衡機(jī)器人由于控制系統(tǒng)復(fù)雜多變,綜合性強(qiáng),具有較高的科技含量。在未來的很長(zhǎng)時(shí)間,自平衡機(jī)器人將會(huì)在移動(dòng)機(jī)器人領(lǐng)域里實(shí)現(xiàn)更好的控制系統(tǒng)的應(yīng)用。