吳 晗, 徐開蕓, 朱 昊, 李家釗
(南京工程學(xué)院自動化學(xué)院, 江蘇 南京 211167)
隨著市場對機器人的自適應(yīng)能力和運動特性提出了更高要求,研究和設(shè)計運動靈活的機器人已迫在眉睫。球型機器人能在惡劣、復(fù)雜的環(huán)境中行走,以其運動靈活、能耗低、外型獨特等特點逐漸被各國研究人員所關(guān)注。球型機器人是非線性、多變量、強耦合的不穩(wěn)定系統(tǒng)的典型[1-2],設(shè)計和研究球型機器人控制系統(tǒng),即對非線性控制系統(tǒng)穩(wěn)定性的研究具有較高的理論研究價值和實用價值。
本文設(shè)計的球型機器人實物如圖1所示,工作原理在文獻[3]中有詳細敘述,其中控制系統(tǒng)主要包括控制模塊、運動模塊、通信模塊以及電源模塊等[3]。
圖1 球型機器人實物圖
球型機器人控制系統(tǒng)的總體結(jié)構(gòu)框圖如圖2所示。系統(tǒng)控制核心為單片機STM32F103C8T6;電源模塊提供12V、5V和3.3V的電壓;電機為12V直流無刷電機,電機驅(qū)動器為TB6612,通過旋轉(zhuǎn)編碼器測量球體的速度;陀螺儀采用MPU-6050六軸傳感器來測量球體的傾角和角速度,舵機型號為RDS3120MG;通信模塊由藍牙HC-05及安卓手機APP組成。硬件電路設(shè)計過程中采用模塊化的設(shè)計方法,大大提高了系統(tǒng)的穩(wěn)定性和可靠性。
圖2 球型機器人控制系統(tǒng)總體結(jié)構(gòu)框圖
控制模塊主要包括電源電路、控制芯片STM32F103C8T6、晶振電路、復(fù)位電路和下載調(diào)試接口等電路。STM32最小系統(tǒng)電路圖如圖3所示。
STM32單片機外部的8MHz晶振,經(jīng)內(nèi)部倍頻產(chǎn)生72MHz工作頻率。STM32單片機采用低電平復(fù)位方式,當(dāng)NRST為低電平時,單片機復(fù)位;當(dāng)NRST為高電平時,單片機正常工作[4]。調(diào)試下載電路采用SWD接口。
圖3 STM32最小系統(tǒng)電路
球型機器人電源模塊電路圖如圖4所示,為減少電源模塊間的相互干擾,各模塊獨立設(shè)計。整個控制系統(tǒng)共有3種電源:1)12V鋰電池,給系統(tǒng)提供12V電源,同時向電機提供12V電源;2)12V電壓經(jīng)過LM2596-5.0轉(zhuǎn)換成5V電壓,如圖4(a)所示,給舵機供電;3)5V電壓經(jīng)AMS1117-3.3轉(zhuǎn)換成3.3V,如圖4(b)所示,給STM32單片機和MPU6050六軸傳感器、藍牙模塊HC-05及相關(guān)外圍設(shè)備供電。
圖4 電源模塊電路圖
本項目中使用TB6612FNG微型雙路直流電機驅(qū)動模塊。電機自帶編碼器,實現(xiàn)力矩、速度以及點位控制,完成球型機器人前進、后退以及速度控制。TB6612FNG內(nèi)部集成了2個H橋電機驅(qū)動電路、6個控制信號輸入端(其中2個為PWM控制信號輸入端、4個為方向信號輸入端),可同時控制球型機器人2個電機的正轉(zhuǎn)、反轉(zhuǎn)和制動。為防止因電機堵轉(zhuǎn)而燒壞驅(qū)動器,在電機驅(qū)動器的接地端串聯(lián)一個0.1Ω封裝2512的貼片電阻。TB6612FNG電機驅(qū)動電路如圖5所示。
圖5 TB6612FNG電機驅(qū)動電路圖
球型機器人轉(zhuǎn)向動作由舵機RDS3120MG完成,此舵機具有位置(角度)伺服驅(qū)動功能,滿足球形機器人的轉(zhuǎn)向要求。通過設(shè)置單片機PB0端口的PWM占空比值來控制舵機偏轉(zhuǎn)角,從而實現(xiàn)球型機器人的轉(zhuǎn)向控制。
姿態(tài)檢測模塊選用MPU-6050六軸傳感器,其電路原理圖如圖6所示,該模塊集成了3軸微機電系統(tǒng)(micro-electro-mechanical system,MEMS)陀螺儀和3軸MEMS加速度計,以及一個可擴展的數(shù)字運動處理器(digital motion processor,DMP)。MPU-6050六軸傳感器與單片機采用I2C通信方式,SDA引腳接單片機PB9口作為I2C數(shù)據(jù)線;SCL引腳接單片機PB8口作為I2C時鐘線。另外,MPU-6050六軸傳感器內(nèi)部有200Hz方波信號發(fā)生器,該方波信號發(fā)生器產(chǎn)生5ms的工作周期,作為單片機外部中斷信號源[5]。當(dāng)產(chǎn)生外部中斷時,單片機進入中斷,并讀取MPU-6050六軸傳感器中的各姿態(tài)參數(shù)值,此參數(shù)值通過卡爾曼濾波、增量式PID控制算法修正后發(fā)送給球體的控制單元,實時調(diào)整球體姿態(tài),控制球體在運動過程中的自身平衡。
圖6 MPU-6050電路原理圖
藍牙HC-05模塊有主、從體2種工作模式,既可發(fā)送數(shù)據(jù)也可接收數(shù)據(jù)。這里選用從體工作模式,僅接收從安卓手機APP發(fā)來的數(shù)據(jù)。藍牙通信電路原理圖如圖7所示。單片機串口與HC-05模塊相連;單片機引腳PIO11接開關(guān)K1和下拉電阻,當(dāng)K1閉合時控制進入AT指令模式;PIO8引腳接LED,當(dāng)LED燈亮?xí)r,表示單片機與藍牙通信正常,可以通過安卓手機APP發(fā)信息至單片機串口,從而實現(xiàn)藍牙通信。
圖7 藍牙通信電路圖
因球型機器人控制系統(tǒng)具有非線性、不穩(wěn)定的特點,相應(yīng)的軟件設(shè)計就成為了關(guān)鍵。根據(jù)系統(tǒng)要求,軟件主要任務(wù)是完成系統(tǒng)的初始化設(shè)置、球體姿態(tài)信息采集、卡爾曼濾波、角速度檢測、電機雙閉環(huán)PID控制以及藍牙通信等。系統(tǒng)軟件流程如圖8所示。由于篇幅限制,在此重點介紹球形機器人的雙閉環(huán)PID控制和藍牙通信。
圖8 系統(tǒng)軟件流程圖
當(dāng)球型機器人運動時,球體姿態(tài)隨之改變,為了保證球體自身平衡,需設(shè)計相應(yīng)的控制方法,這里采用工程實踐中應(yīng)用最為廣泛的增量式PID控制算法,分別設(shè)計球體的姿態(tài)PID控制和球體速度PID控制。
2.1.1 球體姿態(tài)PID控制
球體姿態(tài)檢測采用MPU-6050六軸傳感器裝置,該裝置將陀螺儀傳感器和加速度傳感器集成一體。由于陀螺儀和加速度計在測量時存在噪聲干擾和隨機漂移誤差,故采用卡爾曼濾波算法對測量數(shù)據(jù)進行融合,算出球體傾角的最優(yōu)估計值[6-7]。將最優(yōu)估計值通過I2C通信協(xié)議發(fā)送給單片機;然后經(jīng)姿態(tài)控制算法增量式PID調(diào)節(jié),調(diào)節(jié)后得到的參數(shù)來調(diào)整電機PWM的占空比值。球體姿態(tài)增量式PID控制的設(shè)計子程序流程圖如圖9所示。為了確保球型機器人平穩(wěn)行走,不傾倒,必須實時調(diào)節(jié)球體姿態(tài)偏角,保證球體重心在垂直方向被限制在一定夾角內(nèi)。
圖9 球體姿態(tài)PID控制子程序流程圖
2.1.2 球體速度PID控制
球體速度PID閉環(huán)控制系統(tǒng)框圖如圖10所示,給定轉(zhuǎn)速信號與反饋轉(zhuǎn)速信號比較后的轉(zhuǎn)速變化量送給速度控制器PID,通過PWM1控制電機轉(zhuǎn)速,構(gòu)成速度閉環(huán)控制[8]。
圖10 球型機器人速度閉環(huán)PID系統(tǒng)框圖
速度PID控制子程序流程圖如圖11所示。當(dāng)球體運動時,霍爾元件對電機AB相測速,單片機定時器中斷,每10ms對編碼器進行一次檢測,獲取角速度數(shù)值,經(jīng)增量式PID調(diào)節(jié),最終使角速度達到期望值,實現(xiàn)球體勻速運動,達到穩(wěn)定控制效果。速度增量式PID部分程序如圖12所示。
圖11 速度PID控制子程序流程圖
球型機器人的控制指令僅通過手機APP發(fā)給球型機器人控制單元。當(dāng)藍牙模塊接收到手機APP發(fā)送的控制指令后,將該指令轉(zhuǎn)發(fā)到單片機的串口3,單片機串口3的波特率設(shè)置為9600 bps,1位起始位、8位數(shù)據(jù)位、1位停止位、無校驗[4]。當(dāng)中斷標(biāo)志位為“1”時,單片機進入中斷,等待接收藍牙HC-05模塊發(fā)來的數(shù)據(jù);當(dāng)單片機接收數(shù)據(jù)之后,接收標(biāo)志位為“1”,單片機停止接收新的數(shù)據(jù),并對數(shù)據(jù)算法優(yōu)化,然后將優(yōu)化后的數(shù)據(jù)發(fā)給球型機器人控制單元。部分藍牙數(shù)據(jù)通信接收程序如圖13所示,串口中斷函數(shù)為void USART3_IRQHandler(void)。
圖12 速度增量式PID部分程序
圖13 部分藍牙數(shù)據(jù)接收程序
本文設(shè)計的球型機器人控制系統(tǒng),可自主調(diào)整球型機器人行走過程中的姿態(tài),確保行走平穩(wěn),解決了球型機器人運動過程中自平衡能力差的問題。本文的實現(xiàn)方案對設(shè)計和研究非線性、多變量、強耦合的控制系統(tǒng)具有一定的借鑒作用,為非線性系統(tǒng)的控制提供了一種解決方法。但是,目前的研究工作僅通過較為經(jīng)典的增量式PID控制算法來驗證實現(xiàn)方案的可行性,要真正在非線性系統(tǒng)中體現(xiàn)控制算法的價值,還需要繼續(xù)研究其他控制算法在非線性系統(tǒng)的應(yīng)用,才能更好地利用控制算法優(yōu)化非線性控制系統(tǒng)。