雙核高速兩輪微微鼠全數(shù)字導(dǎo)航伺服控制器及其控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及微型迷宮探索機(jī)器人領(lǐng)域,尤其涉及一種雙核高速兩輪微微鼠全數(shù)字導(dǎo)航伺服控制器及其控制方法。
【背景技術(shù)】
[0002]微電腦鼠是使用嵌入式微控制器、傳感器和機(jī)電運(yùn)動(dòng)部件構(gòu)成的一種智能行走機(jī)器人,在國外已經(jīng)競(jìng)賽了將近30年,其常采用兩輪結(jié)構(gòu),兩輪微電腦鼠二維結(jié)構(gòu)如圖1所不O
[0003]微電腦鼠可以在不同“迷宮”中自動(dòng)記憶和選擇路徑,采用相應(yīng)的算法,快速地到達(dá)所設(shè)定的目的地。其求解的迷宮之一示意如圖2所示。
[0004]隨著微電子技術(shù)、計(jì)算機(jī)控制技術(shù)的不斷進(jìn)步,國外專家在微電腦鼠求解迷宮的技術(shù)基礎(chǔ)之上提出了一種更具有挑戰(zhàn)性的迷宮機(jī)器人一微微鼠:為了增強(qiáng)迷宮復(fù)雜程度以及老鼠求解迷宮的難度,迷宮擋墻由原有的180mm變成了 90mm,原有的迷宮由16*16格變成了 32*32格,新的迷宮二維結(jié)構(gòu)如圖3所示。電源一旦打開,微微鼠全程完全依靠自身攜帶的傳感器自動(dòng)導(dǎo)航,并求解由1024個(gè)迷宮格組成的各種復(fù)雜迷宮,能夠快速從起點(diǎn)找到一條到達(dá)設(shè)定目標(biāo)點(diǎn)的最佳路徑,然后以最快的速度沖刺到終點(diǎn)。作為一種自助導(dǎo)航智能機(jī)器人,因?yàn)橥ㄟ^無線裝置可以向控制器輸入迷宮信息,微微鼠或者微電腦鼠國際準(zhǔn)則拒絕使用無線裝置,為了能夠得到微微鼠或者是微電腦鼠探索、沖刺后的信息,只能通過算法快速寄存并儲(chǔ)存其行走信息,當(dāng)完成任務(wù)后通過控制器的232串口或者是USB串口讀取存儲(chǔ)信息。
[0005]微微鼠在迷宮中行走過程中要時(shí)刻判斷周圍的環(huán)境,然后傳輸參數(shù)到控制器,由控制器反復(fù)控制其在迷宮方格中精確的加速和減速進(jìn)行運(yùn)動(dòng)。一只優(yōu)秀的微微鼠必須具備良好的感知能力,有良好的行走能力,優(yōu)秀的智能算法,否則將無法完成任務(wù)。微微鼠導(dǎo)航技術(shù)綜合了多學(xué)科知識(shí),對(duì)于提升在校學(xué)生的動(dòng)手能力、團(tuán)隊(duì)協(xié)作能力和創(chuàng)新能力,促進(jìn)學(xué)生課堂知識(shí)的消化和擴(kuò)展學(xué)生的知識(shí)面都非常有幫助,并且微微鼠迷宮導(dǎo)航技術(shù)的開展可以培養(yǎng)大批相關(guān)領(lǐng)域的人才,進(jìn)而促進(jìn)相關(guān)領(lǐng)域的技術(shù)發(fā)展和產(chǎn)業(yè)化進(jìn)程。
[0006]如果認(rèn)為微微鼠只是微電腦鼠的簡(jiǎn)單拷貝,按照微電腦鼠技術(shù)來設(shè)計(jì)微微鼠,在實(shí)踐中則會(huì)發(fā)現(xiàn)如下問題:
(I)基于輪式的微微鼠只能被動(dòng)的適應(yīng)迷宮地面的打滑程度,隨著微微鼠導(dǎo)航速度的提高,其打滑概率也極大增加,導(dǎo)致求解迷宮失敗。
[0007](2)由于求解迷宮數(shù)目的大量增加,原有的微電腦鼠求解迷宮技術(shù)無法求解現(xiàn)有的復(fù)雜迷宮。
[0008](3)由于微微鼠尺寸的大幅減少,如果微微鼠采用圖1中的六組傳感器技術(shù)探測(cè)迷宮進(jìn)行微微鼠的導(dǎo)航,經(jīng)常出現(xiàn)傳感器相互干擾的狀況,導(dǎo)致其讀取迷宮信息失敗。
[0009](4)由于微電腦鼠伺服系統(tǒng)采用的都是比較低級(jí)的算法,使得微微鼠在迷宮當(dāng)中的導(dǎo)航一般都要花費(fèi)較長(zhǎng)的時(shí)間,這使得在真正的大賽中無法取勝。
[0010](5)由于迷宮擋墻尺寸的減少,使得微微鼠單格運(yùn)行的距離減少,微微鼠頻繁的剎車和啟動(dòng)加重了單片機(jī)的工作量,單一的單片機(jī)無法滿足微微鼠快速啟動(dòng)和停車的要求。
[0011](6)對(duì)于兩輪驅(qū)動(dòng)的微微鼠來說一般要求驅(qū)動(dòng)其運(yùn)動(dòng)的兩個(gè)電機(jī)PffM控制信號(hào)要同步,受計(jì)算能力的限制單一單片機(jī)的導(dǎo)航伺服控制器很難滿足這一條件,微微鼠在直道上行駛時(shí)不能準(zhǔn)確的行走在中線上,在高速行走時(shí)很容易撞到迷宮擋墻,導(dǎo)致任務(wù)失敗。
[0012](7)由于受單片機(jī)容量和算法影響,微微鼠導(dǎo)航行走時(shí)無法存儲(chǔ)迷宮信息,當(dāng)遇到掉電情況時(shí)所有的信息將消失,這使得整個(gè)導(dǎo)航過程要重新開始。
[0013](8)微微鼠在迷宮導(dǎo)航行走時(shí),易于受到外界干擾,由于沒有進(jìn)行及時(shí)補(bǔ)償導(dǎo)致微微鼠碰撞迷宮擋墻,最終無法完成任務(wù)。
[0014](9)微微鼠在導(dǎo)航行走過程中,一旦遇到撞墻情況都會(huì)發(fā)生電機(jī)堵轉(zhuǎn)情況,造成電機(jī)瞬間電流過大,嚴(yán)重時(shí)燒壞電機(jī)。
[0015]微微鼠求解迷宮是國際新興的一門技術(shù),由于微微鼠技術(shù)的難度較高以及迷宮設(shè)計(jì)的復(fù)雜性,導(dǎo)致國內(nèi)還沒有研發(fā)此機(jī)器人的單位。因此,需要設(shè)計(jì)一種滿足初級(jí)者學(xué)習(xí)微微鼠求解迷宮的全數(shù)字導(dǎo)航伺服控制器。
【發(fā)明內(nèi)容】
[0016]本發(fā)明的目的是解決現(xiàn)有技術(shù)的不足,提供一種雙核高速兩輪微微鼠全數(shù)字導(dǎo)航伺服控制器,以解決微微鼠在導(dǎo)航行走過程中打滑、傳感器相互干擾、處理時(shí)間慢等問題。
[0017]本發(fā)明采用的技術(shù)方案是:基于STM32F407+FPGA芯片的全新控制模式,其程序框圖如圖4所示。全數(shù)字微微鼠兩軸伺服控制系統(tǒng)以FPGA微處理器為核心,充分發(fā)揮FPGA數(shù)據(jù)處理速度較快的特點(diǎn),使其全權(quán)處理三軸直流伺服系統(tǒng)的各種算法,把STM32F407從復(fù)雜的數(shù)據(jù)處理中解脫出來。其中伺服系統(tǒng)位置、速度、電流的給定值由微處理器STM32F407根據(jù)傳感器S1、S2、S5、S6的導(dǎo)航值來生成,光電編碼器反饋和電機(jī)的檢測(cè)電流經(jīng)FPGA內(nèi)部算法解碼后作為三閉環(huán)伺服控制的反饋值,經(jīng)FPGA內(nèi)部PID調(diào)節(jié)后生成控制三軸電機(jī)的PffM波。同時(shí)STM32F407實(shí)現(xiàn)部分的信號(hào)處理算法(直流電機(jī)轉(zhuǎn)矩補(bǔ)償?shù)?和FPGA的控制邏輯,并響應(yīng)中斷,實(shí)現(xiàn)二者之間的數(shù)據(jù)通信和存儲(chǔ)實(shí)時(shí)信號(hào)。
[0018]雙核高速兩輪微微鼠全數(shù)字導(dǎo)航伺服控制器,包括底盤,所述底盤上設(shè)有電池裝置、傳感器裝置、陀螺儀裝置G、真空抽吸裝置和控制單元模塊,所述底盤兩側(cè)連接運(yùn)動(dòng)輪;所述電池裝置電連接控制單元模塊,所述傳感器裝置和陀螺儀裝置分別信號(hào)連接控制單元模塊,所述控制單元模塊分別信號(hào)連接電機(jī)X、Y和M ;所述電機(jī)X和電機(jī)Y分別傳動(dòng)聯(lián)接運(yùn)動(dòng)輪,所述電機(jī)M傳動(dòng)聯(lián)接真空抽吸裝置,所述抽真空裝置連接真空吸盤,所述真空吸盤位于底盤底部;所述陀螺儀裝置G位于底盤的中心位置;所述傳感器裝置包括位于底盤兩側(cè)的紅外傳感器SI和S6,位于底盤前端的紅外傳感器S2和S5,所述傳感器S1、S6共同作用判斷前方擋墻,傳感器S2判斷其左邊擋墻的存在,傳感器S5判斷其右邊擋墻的存在,同時(shí)S2和S5合作為直線運(yùn)動(dòng)提供導(dǎo)航依據(jù);所述控制單元模塊包括STM32F407處理器、FPGA處理器、兩軸行走伺服控制單元和單軸真空吸附伺服控制單元,所述STM32F407處理器電性連接FPGA處理器,所述兩軸行走伺服控制單元信號(hào)連接單軸真空吸附伺服控制單元。
[0019]雙核高速兩輪微微鼠全數(shù)字導(dǎo)航伺服控制方法,其步驟如下:1)電壓檢測(cè):檢測(cè)電池電壓、傳感器電路和時(shí)鐘電路;2)底盤真空抽吸:STM32F407控制器首先開啟真空抽吸直流電機(jī)M,通過真空抽吸裝置先對(duì)真空吸盤抽吸,使真空吸盤對(duì)地面具有一定的吸附力,STM32F407控制器實(shí)時(shí)檢測(cè);3)迷宮行走:判斷周圍的環(huán)境并送給STM32F407,STM32F407把這些環(huán)境參數(shù)轉(zhuǎn)化為微微鼠左右輪要運(yùn)行的位置、速度和加速度指令值,并把這些值傳輸給FPGA,然后FPGA再結(jié)合光電編碼器的反饋、電流傳感器C1、C2的反饋經(jīng)其內(nèi)部三閉環(huán)伺服系統(tǒng)算法得到驅(qū)動(dòng)兩軸直流電機(jī)運(yùn)行的PWM波,并通過驅(qū)動(dòng)橋驅(qū)動(dòng)兩個(gè)獨(dú)立直流電機(jī)X和電機(jī)Y向前運(yùn)動(dòng);4)調(diào)整糾錯(cuò):光補(bǔ)償傳感器LI會(huì)時(shí)刻對(duì)外界干擾光源進(jìn)行采集,然后傳輸給STM32F407,STM32F407會(huì)根據(jù)LI的數(shù)值自動(dòng)補(bǔ)償外界干擾,減少了外界干擾光源對(duì)微微鼠導(dǎo)航時(shí)的干擾;5)坐標(biāo)檢測(cè):裝在微微鼠上的高速永磁直流電機(jī)X和電機(jī)Y上的光電編碼器的位置信號(hào)A脈沖、B脈沖和Z