畢亞楠,田江濤,曾家明,郭宵冉,王橋,左欣,游順才,楊世龍,李洋
(貴州師范學院,貴州貴陽,550000 )
近年來,自平衡機器人在移動路徑和方向上更加的靈活,更加容易被控制,并且簡化了車體結構,為提供新的功能提供了空間。該機器人驅動功率小,屬于環保型車的一種新模式。在自平衡機器人的鉆研上,國內以及國外都取得了一定的成就,瑞士聯邦工業大學的Felix Grasser等人成功研制出了利用DSP控制的兩輪自平衡機器人;從國內的研究成果上看,我國的中國科學技術大學自主研制了一款自平衡電動代步車,該款自平衡電動代步車其實就是是一種兩輪平衡車。在機器人的各種門類中,輪式機器人的制作成本低,并且結構簡單,容易操作,有極高的研究價值。
自平衡機器人由兩個車輪和機器人機身組成,機身是連接著兩個車輪的長方體結構,機身下方安裝機器人的控制系統以及電池等電路設備,機身上方安裝拓展性的功能模塊。下圖是機器人的系統總設計。

圖1 系統總體設計圖
主要是以PID算法為核心,使用陀螺儀模塊獲取當前機器人的姿態,使用霍爾傳感器獲取到機器人當前車輪速度,最后將反饋回來的姿態以及速度做PID算法,最后得到最佳PWM值的輸出,使機器人的姿態更加穩定。其次機身上方安裝了K210開發板做人臉識別功能。主要使用K210開發辦來檢測人的面部特征,錄入、識別人臉這兩個功能來對我們索要達到的效果進行一個監測,進一步對人臉進行精確識別。
自平衡機器人的硬件模塊主要有STM32F103C8T6芯片、霍爾傳感器、MPU6050陀螺儀模塊、K210開發板等。
自平衡機器人的控制基礎是STM32F103C8T6芯片。該款芯片是一種基于Cortex-M3內核的32位微控制器,芯片的硬件通過LQFP48進行封裝,該芯片具有封裝體積小、處理速度快、功率損耗低等優點[1]。該芯片通過2.0V~3.6V的直流電壓供電,總線寬度為32位,并有DMA、電機控制PWM等外圍設備。
直流減速電機是機器人的動力來源。在普通直流電機的基礎上,加上齒輪減速箱就構成了我們所需的直流減速機。齒輪減速箱會為我們提供較低的轉速以及比較大的力矩。通過齒輪箱減速比的不同,會給我們提供相應不同的力矩和轉速。有了直流減速機我們就能實現機器人的前進、后退以及轉向等操作。由于我們的直流減速電機的供電電壓是12V,但STM32單片機的電壓和電流都達不到要求,所以我們使用了電機驅動TB6612。使用這款驅動,不僅可以驅動控制我們的直流減速電機,而且單片機還可以輸出相應的pwm(脈沖寬度)給驅動,從而對直流減速電機的速度進行控制。
為使保持機器人的平衡,我們選擇了集成了三軸陀螺儀和三軸加速度計的MPU6050模塊。該模塊解決了組合陀螺儀和加速器時間軸有誤差的問題,減少了很多的封裝空間。MPU6050采用自帶的數位運動處理器DMP,通過主I2C接口,以單一數據流的形式,直接讀取完整的9融合驗算數據并向應用端輸出。
MPU6050中的陀螺儀能夠直接測量某一方向軸上的旋轉角速度,然后通過積分方式轉換成旋轉角度,其在短時間內能夠得到很好的測量結果,并且受外界的震動干擾因素影響較小[1]。對于MPU6050中的加速度計,其能夠直接測量某一方向上的加速度,在只受重力影響的環境下,通過測量重力加速度在某一方向上的分量,經過簡單的三角函數運算,就可以得到MPU模塊的角度變化[1]。由于陀螺儀受震動因素影響小,而加速度計不存在累計誤差,所以通過兩者的采樣數據進行濾波后便能得到準確的角度采樣值。
我們選取了霍爾傳感器進行機器人的速度檢測?;魻杺鞲衅饕环N磁場傳感器,其基礎是霍爾效應[2]。霍爾傳感器結構比較牢固,體積較小,重量較輕,功耗小,并且精度高,適用于工業和家電應用中作為固態電子開關。利用測磁技術輸出數字信號的特點將霍爾傳感器應用于測速,其原理是利用霍爾效應將壓力、拉力和位移等變量轉換為霍爾元件周圍的磁場變化,是一種磁場傳感器。當機器人往前或是向后走的時候,我們用霍爾傳感器檢測機器人車輪的速度,單片機得到速度數據后,用該數據來做PID運算,最后也是以pam的方式輸出來對電機進行控制,使得機器人更加地穩定。
自平衡機器人采用了0.96寸OLED顯示屏作為機器人的顯示器,可以顯示陀螺儀檢測到的數據。OLED與LCD技術相比較來看,屏幕厚度更薄,重量更加輕,具有廣視角。所以我們采用了OLED作為我們機器人的顯示屏幕。用來顯示MPU6050所檢測到的各種數據,讓人們能夠明確地知道機器人的狀態。
對于我們的自平衡機器人,除了自平衡之外,我們還增加了人臉識別的功能。自平衡機器人使用K210芯片作為主控模塊,它內部包含了KPU,內置卷積、批歸一化、激活以及池化運算單元,可對人臉或物體進行實時監測。
自平衡機器人的機身只有兩個輪子,車輪共軸著地,獨立驅動[3]。當機身傾斜時,姿態傳感器檢測到機身傾斜信息,控制器接收信號,輸出控制量控制電機向傾斜方向的同方向運動,抵消傾斜力矩,從而使機身保持平衡。
(1)PID算法
PID算法是我們研究所需的核心。PID控制算法主要是對被控制對象當前的值進行數據采集,與設定的目標值進行偏差計算,對這個偏差進行PID計算,整定好PID參數,最后輸出整定好的量來對被控制對象進行控制[4]。當機身發生傾斜時,系統通過PID控制算法,將機身角度、機身角速度、機身位置等數據進行融合,輸出PWM信號驅動電機,就會使機器人實現自平衡[5]。

圖3 PID算法功能實現
(2)PD控制
自平衡機器人若想在水平線上能夠保持相應的平衡,就需要平衡機器人在兩輪共同著地時,使機身盡可能地傾斜到滾動軸方向;若是想保持機身的平衡,當機身發生傾斜時,機身要向傾斜的方向向前移動才能使機身保持平衡[7]。PD控制算法的主要效果就是讓自平衡機器人的機身保持平衡。

P(比例)控制算法是對當前的誤差進行一個比例增益。首先我們給定一個設定值(SetAngle),MPU6050測量反饋出的測量值(Angle),角度誤差值(ErrorAngle)。
ErrorAngle=Angle-SetAngle;此時比例向結果為(RealAngle),RealAngle=Kp*ErrorAngle(Kp 為比例系數)。
D(微分)控制時K時刻角度差值與K-1時刻角度差值的差值進行一個增益,主要的作用是作為一個超前調節。這里K與K-1角度差值的差值是角度微分,為角速度,而MPU6050陀螺儀模塊可以直接測量到此時的角速度(gyro_Y)。此時微分項結果為out=Kd*gyro_Y(Kd為微分系數)。
(3)PI控制
平衡器人的速遞控制是通過正反饋的方式來實現,使得輸出起到的作用與輸入相同;當小車向前傾斜,電機此時要獲得更大的速度使得小車向前跑才能讓小車趨于穩定,從而達到平衡的效果。

測試結果表明,自平衡機器人在通電后能夠立刻達到平衡狀態,輕輕推動即可恢復平衡,具有低功耗,方便,環保,高效等特點?;赟TM32單片機的自平衡機器人由于控制系統復雜多變,綜合性強,具有較高的科技含量。在未來的很長時間,自平衡機器人將會在移動機器人領域里實現更好的控制系統的應用。