基于麥克納姆履帶陸空結(jié)合環(huán)境探索系統(tǒng)-學(xué)術(shù)論文_第1頁
基于麥克納姆履帶陸空結(jié)合環(huán)境探索系統(tǒng)-學(xué)術(shù)論文_第2頁
基于麥克納姆履帶陸空結(jié)合環(huán)境探索系統(tǒng)-學(xué)術(shù)論文_第3頁
基于麥克納姆履帶陸空結(jié)合環(huán)境探索系統(tǒng)-學(xué)術(shù)論文_第4頁
基于麥克納姆履帶陸空結(jié)合環(huán)境探索系統(tǒng)-學(xué)術(shù)論文_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

附件2:編號:第十五屆“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競賽作品申報書作品名稱:陸空結(jié)合環(huán)境探索系統(tǒng)學(xué)院名稱:機(jī)電工程學(xué)院申報者姓名(集體名稱):基電工程類別:■自然科學(xué)類學(xué)術(shù)論文□哲學(xué)社會科學(xué)類社會調(diào)查報告和學(xué)術(shù)論文□科技發(fā)明制作A類□科技發(fā)明制作B類基于麥克納姆履帶陸空結(jié)合探測系統(tǒng)摘要本文設(shè)計陸空結(jié)合履帶車,車體基于麥克納姆輪帶,在傳統(tǒng)麥克納姆輪360度運動上履帶可克服復(fù)雜地形,而相較于傳統(tǒng)火星車,陸空結(jié)合設(shè)計將飛機(jī)代替攝像頭,平時收在履帶車內(nèi),攝像頭露出與傳統(tǒng)火星車無區(qū)別,但當(dāng)需要偵查周遭環(huán)境可陸空結(jié)合實時偵測周圍,可應(yīng)用于人類無法進(jìn)入的惡劣環(huán)境工作采樣觀察,而且可在第一時間空投抗災(zāi)地區(qū)為被困災(zāi)民提供支援。經(jīng)多次物理模擬此方案確實可行,目前正在制作樣機(jī),因技術(shù)工藝較為復(fù)雜,履帶仍需要時間加工制作。關(guān)鍵詞:麥克納姆輪飛行器空間探索陸空結(jié)合設(shè)計任務(wù)以傳統(tǒng)火星車探索機(jī)器人“好奇號”為基礎(chǔ),將傳統(tǒng)履帶與麥克納姆輪進(jìn)行結(jié)合,實現(xiàn)在克服復(fù)雜地形的同時達(dá)到增加橫向自由度的目的。使車的靈活性大大增加,減少車的操作難度。并且通過四旋翼進(jìn)行空中監(jiān)測,相較于傳統(tǒng)火星車大大增加了車身的可利用空間,而飛行器也增大觀察的靈活度。1.1應(yīng)用對象星際探索,核泄漏等人類無法適應(yīng)的困難環(huán)境進(jìn)行實驗作業(yè)。在抗震救災(zāi)中能第一時間投放災(zāi)區(qū)并向被困災(zāi)民運送物資或搬運工作。1.2論文靈感當(dāng)看到麥克納姆輪能橫著走的時候非常的好奇,而且本身也對外形探索擁有濃厚的興趣,于是經(jīng)過大量計算設(shè)計了這款麥克納姆履帶。本論文作品以麥克納母履帶為基本思路,在增加橫向移動的基礎(chǔ)上改良的麥克納母輪無法適應(yīng)復(fù)雜地形的缺點,并且通過空中無人機(jī)監(jiān)控周圍環(huán)境。1.3作品的科學(xué)性、先進(jìn)性及獨特之處相較于傳統(tǒng)移動設(shè)備和加工設(shè)備其自由度和活動范圍往往因為結(jié)構(gòu)的缺點而受到限制,因為通過履帶和麥克納母輪的結(jié)合克服了復(fù)雜地形以及無法橫向移動的困難。而通過輪子和機(jī)械手臂的結(jié)合改變了機(jī)械加工范圍受限以及搬運困難的難題。而空中攝像頭則大大改善了傳統(tǒng)將攝像頭安裝在機(jī)構(gòu)上視野受限以及阻礙其他機(jī)構(gòu)運動的問題。本文將通過履帶車,飛行器兩個模塊進(jìn)行說明。履帶車模塊2.1履帶車2.1.1好奇號(謹(jǐn)以此模塊對NASA科學(xué)家表達(dá)敬意)好奇號,這個代表全世界好奇之心的小東西,有著自己的大腦、眼睛、身體、手臂和腿腳。我身長約3.0m,寬約2.7m,高約2.1m,大小和一輛小型SUV汽車相當(dāng)。和他的兄弟勇氣號和機(jī)遇號相比,好奇號重多了,達(dá)到850~900kg。好奇號運行的計算機(jī)系統(tǒng)內(nèi)存為256Mbyte,閃存為2Gbyte。好奇號有10只眼睛。我這些凝聚了智慧的火眼金睛,像孫悟空的眼睛一樣,能洞察瞬息變化的世間萬物。好奇號的的頭上、身上、手臂上都長著眼睛,能讓他從各個方向、各個角度對這片紅色熱土進(jìn)行探索。好奇號雖然只有1只手臂,但是這只手臂非常靈活。它的手臂有3個關(guān)節(jié):肩、肘和手腕。好奇號的手臂能夠像人類的手臂那樣伸展、彎曲和定位,可以拍攝照片、打磨巖石、分析巖石和土壤的組成,能干許許多多的活。好奇號有6條腿。和人類的腿不一樣,它的6條腿是6個車輪。好奇號的2條前腿和2條后腿能夠獨立轉(zhuǎn)向。我還能夠在原地轉(zhuǎn)彎360°,翻越約65~75cm。2.1.2履帶車差速控制(基于模糊運算)履帶車輛具有良好的機(jī)動性和越野性,因此,被廣泛應(yīng)用于民用和軍用等領(lǐng)域。電傳動履帶車一般采用電池和雙交流電機(jī)驅(qū)動,通過分配兩側(cè)電機(jī)轉(zhuǎn)速或轉(zhuǎn)矩實現(xiàn)對車輛兩側(cè)驅(qū)動力的協(xié)調(diào)控制,從而達(dá)到直線行駛或轉(zhuǎn)彎目的。永磁同步電機(jī)相對于傳統(tǒng)交流電機(jī)具有高效、高功率密度以及良好的調(diào)速性能,正逐漸成為新能源車輛領(lǐng)域驅(qū)動電機(jī)的首選之一。其在電傳動履帶驅(qū)動領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。相比普通機(jī)械車輛,由于采用雙電機(jī)分別驅(qū)動兩側(cè)主動輪的電傳動履帶車取消了轉(zhuǎn)向和變速機(jī)構(gòu),可通過實時控制兩側(cè)電機(jī)的轉(zhuǎn)速或轉(zhuǎn)矩輸出實現(xiàn)直線行走或轉(zhuǎn)彎。為此需要設(shè)計差速控制,一般來說可以通過整車控制器實現(xiàn)電子差速控制功能。整車控制器通過總線技術(shù)和電機(jī)控制器進(jìn)行交互通訊,電機(jī)控制器實現(xiàn)差速設(shè)定值的自調(diào)整控制,實現(xiàn)電機(jī)驅(qū)動系統(tǒng)進(jìn)行動力分配。電傳動履帶車輛通過整車控制器協(xié)調(diào)控制兩側(cè)驅(qū)動電機(jī)的轉(zhuǎn)速或轉(zhuǎn)矩,實現(xiàn)任意轉(zhuǎn)向,提高車輛轉(zhuǎn)向穩(wěn)定性[7-10]。電子差速轉(zhuǎn)向控制是電傳動履帶車輛的關(guān)鍵技術(shù)之一,特別是驅(qū)動電機(jī)的控制特性直接影響差速轉(zhuǎn)向性能。電子差速算法是基于采樣標(biāo)定值、智能控制理論等設(shè)計相應(yīng)的控制策略,控制左右2個驅(qū)動電機(jī)轉(zhuǎn)速或轉(zhuǎn)矩,從而實現(xiàn)電動汽車差速轉(zhuǎn)向。本模塊介紹的履帶車模塊運算已經(jīng)在ican創(chuàng)新創(chuàng)業(yè)大賽的作品上進(jìn)行了應(yīng)用,并且已經(jīng)證明切實可行。1,整車控制器設(shè)計此圖為差速控制系統(tǒng)結(jié)構(gòu)圖電傳動履帶車每個電機(jī)有單獨的控制器,整車電子差速控制器通過接收無人駕駛車主控單元給定的車輛速度和轉(zhuǎn)角以及來自傳感器的反饋等信號,根據(jù)內(nèi)部控制單元計算每個電機(jī)需要提供的轉(zhuǎn)速,并向電機(jī)控制器發(fā)出指令,調(diào)節(jié)電機(jī)的轉(zhuǎn)速,從而控制各個驅(qū)動車輪的轉(zhuǎn)速。整車控制器就是汽車上動力總成控制器,它是整個汽車的核心控制部件。整車控制器主要功能是通過采集車速信號v、駕駛轉(zhuǎn)角信號后,計算出輸出信號ω1和ω2,也就是電機(jī)的期望輸入信號。本模塊的控制策略如下:首先整車控制器根據(jù)輸入v和駕駛轉(zhuǎn)角信號。通過下面的模糊建模離線標(biāo)定出輸出模糊模型,然后在線采集在線實時計算出左右電機(jī)的期望輸入,通過CAN總線傳遞給電機(jī)控制器。接下來電機(jī)控制器用矢量控制算法調(diào)整電機(jī)的輸出,從而達(dá)到電機(jī)的期望輸入。3標(biāo)定整車控制器的差速模糊模型本模塊大多數(shù)為手稿計算,且很多符號本人無法輸出,故上傳文稿,給您帶來不便十分抱歉。然后采用加權(quán)平均反模糊化可得到下面的模糊模型。其中,參數(shù)向量的取值為結(jié)論變量模糊集對應(yīng)隸屬函數(shù)值取得最大值時所對應(yīng)的點。同理,也可以得到右電機(jī)的期望轉(zhuǎn)速模糊模型。通過上面的離線標(biāo)定模糊模型后,整車控制器上電后可直接運行該模型。通過實時檢測到的參數(shù)向量和v值在線實時計算電機(jī)的期望轉(zhuǎn)速w1和w2差速系統(tǒng)控制系統(tǒng)結(jié)構(gòu)圖,4交流電機(jī)矢量控制矢量控制是當(dāng)前工業(yè)系統(tǒng)變頻系統(tǒng)應(yīng)用的主流,它是通過分析電機(jī)數(shù)學(xué)模型對電壓、電流等變量進(jìn)行解耦而實現(xiàn)的。轉(zhuǎn)矩方程表明,如果d軸勵磁電流分量恒定,則永磁同步電機(jī)轉(zhuǎn)矩與q軸轉(zhuǎn)矩電流分量成正比,這也是矢量控制的基本控制思路。永磁同步電機(jī)矢量控制可以采用電壓法實現(xiàn)2.2麥克納姆履帶在競賽機(jī)器人和特殊工種機(jī)器人中,全向移動經(jīng)常是一個必需的功能?!溉蛞苿印挂馕吨梢栽谄矫鎯?nèi)做出任意方向平移同時自轉(zhuǎn)的動作。為了實現(xiàn)全向移動,一般機(jī)器人會使用「全向輪」(OmniWheel)或「麥克納姆輪」(MecanumWheel)這兩種特殊輪子。作者在去年的ican創(chuàng)新大賽中第一次看到了麥輪,并產(chǎn)生了濃厚的興趣。2.2.1工作原理其實麥克納姆履帶和麥克納姆輪工作原理相同,只是通過履帶達(dá)到克服復(fù)雜地形的能力。輪轂和輥子(roller)。輪轂是整個輪子的主體支架,輥子則是安裝在輪轂上的鼓狀物。全向輪的輪轂軸與輥子轉(zhuǎn)軸相互垂直,而麥克納姆輪的輪轂軸與輥子轉(zhuǎn)軸呈45°角。理論上,這個夾角可以是任意值,根據(jù)不同的夾角可以制作出不同的輪子,但最常用的還是這兩種。全向輪與麥克納姆輪(以下簡稱「麥輪」)在結(jié)構(gòu)、力學(xué)特性、運動學(xué)特性上都有差異,其本質(zhì)原因是輪轂軸與輥子轉(zhuǎn)軸的角度不同。經(jīng)過分析,二者的運動學(xué)和力學(xué)特性區(qū)別可以通過以下表格來體現(xiàn)。計算過程如下,供參考。近年來,麥輪的應(yīng)用逐漸增多,特別是在Robocon、FRC等機(jī)器人賽事上。這是因為麥克納姆輪可以像傳統(tǒng)輪子一樣,安裝在相互平行的軸上。而若想使用全向輪完成類似的功能,幾個輪轂軸之間的角度就必須是60°,90°或120°等角度,這樣的角度生產(chǎn)和制造起來比較麻煩。所以許多工業(yè)全向移動平臺都是使用麥克納姆輪而不是全向輪。2.2.2安裝麥輪一般是四個一組使用,兩個左旋輪,兩個右旋輪。左旋輪和右旋輪呈手性對稱,安裝方式有多種,主要分為:X-正方形(X-square)、X-長方形(X-rectangle)、O-正方形(O-square)、O-長方形(O-rectangle)。其中X和O表示的是與四個輪子地面接觸的輥子所形成的圖形;正方形與長方形指的是四個輪子與地面接觸點所圍成的形狀。X-正方形:輪子轉(zhuǎn)動產(chǎn)生的力矩會經(jīng)過同一個點,所以yaw軸無法主動旋轉(zhuǎn),也無法主動保持yaw軸的角度。一般幾乎不會使用這種安裝方式。X-長方形:輪子轉(zhuǎn)動可以產(chǎn)生yaw軸轉(zhuǎn)動力矩,但轉(zhuǎn)動力矩的力臂一般會比較短。這種安裝方式也不多見。O-正方形:四個輪子位于正方形的四個頂點,平移和旋轉(zhuǎn)都沒有任何問題。受限于機(jī)器人底盤的形狀、尺寸等因素,這種安裝方式雖然理想,但可遇而不可求。O-長方形:輪子轉(zhuǎn)動可以產(chǎn)生yaw軸轉(zhuǎn)動力矩,而且轉(zhuǎn)動力矩的力臂也比較長。是最常見的安裝方式。2.2.3麥輪底盤的正逆運動學(xué)模型以O(shè)-長方形的安裝方式為例,四個輪子的著地點形成一個矩形。正運動學(xué)模型(forwardkinematicmodel)將得到一系列公式,讓我們可以通過四個輪子的速度,計算出底盤的運動狀態(tài);而逆運動學(xué)模型(inversekinematicmodel)得到的公式則是可以根據(jù)底盤的運動狀態(tài)解算出四個輪子的速度。需要注意的是,底盤的運動可以用三個獨立變量來描述:X軸平動、Y軸平動、yaw軸自轉(zhuǎn);而四個麥輪的速度也是由四個獨立的電機(jī)提供的。所以四個麥輪的合理速度是存在某種約束關(guān)系的,逆運動學(xué)可以得到唯一解,而正運動學(xué)中不符合這個約束關(guān)系的方程將無解。先試圖構(gòu)建逆運動學(xué)模型,由于麥輪底盤的數(shù)學(xué)模型比較復(fù)雜,我們在此分四步進(jìn)行:①將底盤的運動分解為三個獨立變量來描述;②根據(jù)第一步的結(jié)果,計算出每個輪子軸心位置的速度;③根據(jù)第二步的結(jié)果,計算出每個輪子與地面接觸的輥子的速度;④根據(jù)第三部的結(jié)果,計算出輪子的真實轉(zhuǎn)速。一、底盤運動的分解我們知道,剛體在平面內(nèi)的運動可以分解為三個獨立分量:X軸平動、Y軸平動、yaw軸自轉(zhuǎn)。如下圖所示,底盤的運動也可以分解為三個量:

表示X軸運動的速度,即左右方向,定義向右為正;

表示Y軸運動的速度,即前后方向,定義向前為正;

表示yaw軸自轉(zhuǎn)的角速度,定義逆時針為正。以上三個量一般都視為四個輪子的幾何中心(矩形的對角線交點)的速度。二、計算出輪子軸心位置的速度定義:

為從幾何中心指向輪子軸心的矢量;

為輪子軸心的運動速度矢量;

為輪子軸心沿垂直于

的方向(即切線方向)的速度分量;那么可以計算出:

分別計算X、Y軸的分量為:

同理可以算出其他三個輪子軸心的速度。三、計算輥子的速度根據(jù)輪子軸心的速度,可以分解出沿輥子方向的速度

和垂直于輥子方向的速度

。其中

是可以無視的(思考題:為什么垂直方向的速度可以無視?),而

其中

是沿輥子方向的單位矢量。四、計算輪子的速度從輥子速度到輪子轉(zhuǎn)速的計算比較簡單:

根據(jù)上圖所示的

的定義,有結(jié)合以上四個步驟,可以根據(jù)底盤運動狀態(tài)解算出四個輪子的轉(zhuǎn)速:以上方程組就是O-長方形麥輪底盤的逆運動學(xué)模型,而正運動學(xué)模型可以直接根據(jù)逆運動學(xué)模型中的三個方程解出來,此處不再贅述。2.2.3控制程序根據(jù)麥輪的底盤的運動學(xué)模型,要完全控制它的運動,需要有三個控制量:X軸速度、Y軸速度、自轉(zhuǎn)角速度。要產(chǎn)生這三個控制量,有很多種方法,本文將使用一個USB游戲手柄,左邊的搖桿產(chǎn)生平移速度,右邊的搖桿產(chǎn)生角速度。首先將一個

USBHost模塊連接到

Orion主板的3口。然后插上一個無線USB游戲手柄。然后再添加其他細(xì)節(jié),就大功告成啦!其他細(xì)節(jié):#include<Wire.h>#include<SoftwareSerial.h>#include"MeOrion.h"MeUSBHostjoypad(PORT_3);// 手柄代碼(紅燈亮模式)// 默認(rèn):128-127-128-127-15-0-0-128// 左一:128-127-128-127-15-1-0-128// 右一:128-127-128-127-15-2-0-128// 左二:128-127-128-127-15-4-0-128// 右二:128-127-128-127-15-8-0-128// 三角:128-127-128-127-31-0-0-128(00011111)// 方形:128-127-128-127-143-0-0-128(10001111)// 叉號:128-127-128-127-79-0-0-128(01001111)// 圓圈:128-127-128-127-47-0-0-128(00101111)// 向上:128-127-128-127-0-0-0-128(00000000)// 向下:128-127-128-127-4-0-0-128(00000100)// 向左:128-127-128-127-6-0-0-128(00000110)// 向右:128-127-128-127-2-0-0-128(00000010)// 左上:128-127-128-127-7-0-0-128(00000111)// 左下:128-127-128-127-5-0-0-128(00000101)// 右上:128-127-128-127-1-0-0-128(00000001)// 右下:128-127-128-127-3-0-0-128(00000011)// 選擇:128-127-128-127-15-16-0-128// 開始:128-127-128-127-15-32-0-128// 搖桿:右X-右Y-左X-左Y-15-0-0-128MeEncoderMotormotor1(0x02,SLOT2);MeEncoderMotormotor2(0x02,SLOT1);MeEncoderMotormotor3(0x0A,SLOT2);MeEncoderMotormotor4(0x0A,SLOT1);//底盤:a=130mm,b=120mmfloatlinearSpeed=100;floatangularSpeed=100;floatmaxLinearSpeed=200;floatmaxAngularSpeed=200;floatminLinearSpeed=30;floatminAngularSpeed=30;voidsetup(){//要上電才能工作,不能只是插上USB線來調(diào)試。 motor1.begin(); motor2.begin(); motor3.begin(); motor4.begin(); Serial.begin(57600); joypad.init(USB1_0);}voidloop(){Serial.println("loop:"); //setEachMotorSpeed(100,50,50,100); if(!joypad.device_online){//若一直輸出離線狀態(tài),重新拔插USBHost的RJ25線試一下。Serial.println("Deviceoffline.");beDevice();delay(1000);}else{intlen=joypad.host_recv();parseJoystick(joypad.RECV_BUFFER);delay(5);} //delay(500);}voidsetEachMotorSpeed(floatspeed1,floatspeed2,floatspeed3,floatspeed4){ motor1.runSpeed(speed1); motor2.runSpeed(-speed2); motor3.runSpeed(-speed3); motor4.runSpeed(-speed4);}voidparseJoystick(unsignedchar*buf)//Analyticfunction,print8bytesfromUSBHost{//輸出手柄的數(shù)據(jù),調(diào)試用//inti=0;//for(i=0;i<7;i++)//{//Serial.print(buf[i]);//Itwon'tworkifyouconnecttotheMakeblockOrion.//Serial.print('-');//}//Serial.println(buf[7]);//delay(10);//速度增減switch(buf[5]){case1:linearSpeed+=5;if(linearSpeed>maxLinearSpeed){linearSpeed=maxLinearSpeed;}break;case2:angularSpeed+=5;if(angularSpeed>maxAngularSpeed){angularSpeed=maxAngularSpeed;}break;case4:linearSpeed-=5;if(linearSpeed<minLinearSpeed){linearSpeed=minLinearSpeed;}break;case8:angularSpeed-=5;if(angularSpeed<minAngularSpeed){angularSpeed=minAngularSpeed;}break;default:break;}if((128!=buf[0])||(127!=buf[1])||(128!=buf[2])||(127!=buf[3])){//處理搖桿floatx=((float)(buf[2])-127)/128;floaty=(127-(float)(buf[3]))/128;floata=(127-(float)(buf[0]))/128;mecanumRun(x*linearSpeed,y*linearSpeed,a*angularSpeed);}else{switch(buf[4]){case0:mecanumRun(0,linearSpeed,0);break;case4:mecanumRun(0,-linearSpeed,0);break;case6:mecanumRun(-linearSpeed,0,0);break;case2:mecanumRun(linearSpeed,0,0);break;case7:mecanumRun(-linearSpeed/2,linearSpeed/2,0);break;case5:mecanumRun(-linearSpeed/2,-linearSpeed/2,0);break;case1:mecanumRun(linearSpeed/2,linearSpeed/2,0);break;case3:mecanumRun(linearSpeed/2,-linearSpeed/2,0);break;default:mecanumRun(0,0,0);break;}}}voidmecanumRun(floatxSpeed,floatySpeed,floataSpeed){floatspeed1=ySpeed-xSpeed+aSpeed;floatspeed2=ySpeed+xSpeed-aSpeed;floatspeed3=ySpeed-xSpeed-aSpeed;floatspeed4=ySpeed+xSpeed+aSpeed;floatmax=speed1;if(max<speed2)max=speed2;if(max<speed3)max=speed3;if(max<speed4)max=speed4;if(max>maxLinearSpeed){speed1=speed1/max*maxLinearSpeed;speed2=speed2/max*maxLinearSpeed;speed3=speed3/max*maxLinearSpeed;speed4=speed4/max*maxLinearSpeed;}setEachMotorSpeed(speed1,speed2,speed3,speed4);}附上理論成品圖飛行器模塊四旋翼飛行器是無人飛行器中一個熱門的研究分支,隨著慣性導(dǎo)航技術(shù)的發(fā)展與慣導(dǎo)傳感器精度的提高,四旋翼飛行器在近些年得到了快速的發(fā)展。

為了滿足四旋翼飛行的設(shè)計要求,系統(tǒng)以STM32F103VET6作為四旋翼自主飛行器控制的核心,處理器內(nèi)核為ARM32位Cortex-M3

CPU,最高72MHz工作頻率,工作電壓3.3V-5.5V。該四旋翼由電源模塊、電機(jī)電調(diào)調(diào)速控制模塊、傳感器檢測模塊、飛行器控制模塊等構(gòu)成。飛行姿態(tài)檢測模塊是通過采用MPU-6050模塊,整合3軸陀螺儀、3軸加速度計,檢測飛行器實時飛行姿態(tài),實現(xiàn)飛行器運動速度和轉(zhuǎn)向的精準(zhǔn)控制。傳感器檢測模塊包括紅外障礙傳感器、超聲波測距模塊,在動力學(xué)模型的基礎(chǔ)上,將四旋翼飛行器實時控制算法分為兩個PID

控制回路,即位置控制回路和姿態(tài)控制回路。測試結(jié)果表明系統(tǒng)可通過各個模塊的配合實現(xiàn)對電機(jī)的精確控制,具有平均速度快、定位誤差小、運行較為穩(wěn)定等特點。3.1電機(jī)的選擇與論證

四旋翼無人飛行器是通過控制四個不同無刷直流電機(jī)的轉(zhuǎn)速,達(dá)到控制四旋翼無人飛行器的飛行姿態(tài)和位置,與傳統(tǒng)直升機(jī)通過控制舵機(jī)來改變螺旋槳的槳距角,達(dá)到控制直升機(jī)的目的不同。在電機(jī)的選型上,主要有直流有刷電機(jī)和直流無刷電機(jī)兩種。

方案一:直流有刷電機(jī)是當(dāng)前普遍使用的一種直流電機(jī),它的驅(qū)動電路簡單、控制方法成熟,但是直流有刷電機(jī)使用電刷進(jìn)行換向,換向時電刷與線圈觸電存在機(jī)械接觸,電機(jī)長時間高速轉(zhuǎn)動使極易因磨損導(dǎo)致電氣接觸不良等問題,而且有刷電機(jī)效率低、力矩小、重量大,不適合對功率重量比敏感的電動小型飛行器。

方案二:直流無刷電機(jī)能量密度高、力矩大、重量輕,采用非接觸式的電子換向方法,消除了電刷磨損,較好地解決了直流有刷電機(jī)的缺點,適用于對功率重量比敏感的用途,同時增強(qiáng)了電機(jī)的可靠性。所以選擇直流無刷電機(jī)作為動力源。電機(jī)驅(qū)動方案的選擇與論證

方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目的。但是電阻網(wǎng)絡(luò)只能實現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機(jī)的電阻很小,但電流很大;分壓不僅會降低效率,而且實現(xiàn)很困難。

方案二:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。這個方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢、機(jī)械結(jié)

構(gòu)易損壞、壽命較短、可靠性不高。

方案三:采用全橋驅(qū)動PWM

電路。這種驅(qū)動的優(yōu)點是使管子工作在占空比可調(diào)的開關(guān)狀態(tài),提高使用效率實現(xiàn)電機(jī)轉(zhuǎn)速的微調(diào)。并且保證了可以簡單的方式實現(xiàn)方向控制。

基于上述理論分析,選擇方案三。3.2PID控制運算由于四旋翼飛行器由四路電機(jī)帶動兩對反向螺旋槳來產(chǎn)生推力,所以如何保證電機(jī)在平穩(wěn)懸浮或上升狀態(tài)時轉(zhuǎn)速的一致性及不同動作時各個電機(jī)轉(zhuǎn)速的比例關(guān)系是飛行器按照期望姿態(tài)飛行的關(guān)鍵。所以這里我們采用到pid控制理論把飛機(jī)的當(dāng)前姿態(tài)調(diào)整到期望姿態(tài)。Pid控制是通過姿態(tài)采集模塊發(fā)送回來的數(shù)據(jù)與期望姿態(tài)進(jìn)行比對,如果存在誤差,就對誤差進(jìn)行比例、積分、微分的調(diào)整,再將調(diào)整后的值加到當(dāng)前電機(jī)上,從而達(dá)到調(diào)整的目的。比例調(diào)節(jié)的反應(yīng)速度較快,而且調(diào)節(jié)作用明顯,飛機(jī)出現(xiàn)俯仰和翻滾時能快速調(diào)節(jié)回來,但是穩(wěn)定性較差,往往會調(diào)節(jié)過火;積分調(diào)節(jié)可以消除長期誤差,排除外界因素的干擾,但是同樣會降低系統(tǒng)整體的穩(wěn)定性,使飛機(jī)發(fā)生震蕩;微分調(diào)節(jié)可以預(yù)測被控設(shè)備的將來狀態(tài),及時的進(jìn)行調(diào)整,而且對比例調(diào)節(jié)有抑制作用,加強(qiáng)單比例調(diào)節(jié)的穩(wěn)定性,排除調(diào)節(jié)過度的問題。所以通過pid控制可以完全考慮到整個系統(tǒng)的過去、現(xiàn)在、將來,以使系統(tǒng)達(dá)到穩(wěn)定。3.3飛行姿態(tài)控制單元

飛行器模擬圖如下圖,姿態(tài)控制是通過陀螺儀模塊進(jìn)行數(shù)據(jù)的采集,根據(jù)它采集回來的俯仰角(pitch),翻滾角(roll),四旋翼采用十字型連接,這樣的話能明確分離俯仰姿態(tài)和翻滾姿態(tài),進(jìn)行分別控制。這時如果飛機(jī)處于俯仰狀態(tài)就調(diào)機(jī)頭和機(jī)尾的電機(jī),那邊高就減小那邊電機(jī)的轉(zhuǎn)速,相應(yīng)的那邊低則加大那邊電機(jī)的轉(zhuǎn)速。如果飛機(jī)處于翻滾狀態(tài),則調(diào)左右電機(jī)。3.4

測試方案與測試結(jié)果

3.4.1、硬件測試

首先,先把四軸飛行器分塊拆解,用最小的最輕的元件和電路板按照配重的需要安裝在四軸飛行器上。再用物理方法測量重心,使其重心維持在四軸飛行器的中心。

連線接頭要保證其牢固性,電池,主控板,陀螺儀要等機(jī)械硬件要使其牢固安裝在飛機(jī)上。

這個硬件測試最關(guān)鍵的是PID的是三個參數(shù)調(diào)試,先調(diào)p參數(shù),p參數(shù)是調(diào)整反應(yīng)速度和力度的,當(dāng)它反應(yīng)迅速且兩邊等幅振動時即可確定p參數(shù),再調(diào)d參數(shù),d參數(shù)是一個抑制的作用,抑制它調(diào)制過大,使它保持在平衡位置的,當(dāng)從任意角度都可以一次直接返回平衡位置時即可,最后調(diào)i參數(shù),i參數(shù)是積分項,當(dāng)哪一邊反應(yīng)過小時可以加一個i參數(shù)。這樣就測試出一組適合的PID參數(shù)了。

3.4.2、軟件仿真測試

在調(diào)試程序之前,可用串口顯示每個電機(jī)PWM輸出,觀察各種姿態(tài)下PID控制后電機(jī)油門的大小。

3.4.3、硬件軟件聯(lián)調(diào)

通過stm32編程,模仿出PWM,并測量是否能通過電機(jī)驅(qū)動來使飛行器起飛,通過多次測試,找出飛行器起飛時的PWM值。

mpu6050模塊通過串口向主控板發(fā)送數(shù)據(jù),并在電腦上利用串口接收,檢測數(shù)據(jù)是否正確,通過軟件編程針對顯示的數(shù)據(jù)進(jìn)行修改。

通過mpu6050模塊使四軸飛行器穩(wěn)定的起飛,并懸停在空中;再進(jìn)行測試,使四軸飛行器前進(jìn)和后退;最后進(jìn)行降落的測試。

通過超聲波的測量使其懸停在100cm的空中,在進(jìn)行前進(jìn)后退的校準(zhǔn),使其飛行足夠準(zhǔn)確,之后進(jìn)行對引導(dǎo)線的識別,使飛機(jī)平穩(wěn)前進(jìn)。

最后通過通過對直徑為10cm的黑圓圈進(jìn)行測試,使其測量到,并使四軸飛行器投彈打靶,打靶完畢后降落在黑色圓圈內(nèi)。include"data_transfer.h"#defineBYTE0(dwTemp)(*(char*)(&dwTemp))#defineBYTE1(dwTemp)(*((char*)(&dwTemp)+1))#defineBYTE2(dwTemp)(*((char*)(&dwTemp)+2))#defineBYTE3(dwTemp)(*((char*)(&dwTemp)+3))uint8_tData_Check,Send_Status,Send_Senser,Send_Offset;uint8_tdata_to_send[50];voidData_Receive_Anl(uint8_t*data_buf,uint8_tnum){ intrc_value_temp; uint8_tsum=0,i; for(i=0;i<(num-1);i++) sum+=*(data_buf+i); if(!(sum==*(data_buf+num-1))) return; if(!(*(data_buf)==0xAA&&*(data_buf+1)==0xAF)) return; if(*(data_buf+2)==0X01) { if(*(data_buf+4)==0X01) { Mode.ACC_CALIBRATED=1; } if(*(data_buf+4)==0X02) { Mode.GYRO_CALIBRATED=1; } if(*(data_buf+4)==0X03) { Mode.ACC_CALIBRATED=1; Mode.GYRO_CALIBRATED=1; } if(*(data_buf+4)==0XA0) { Mode.ARMED=0; } if(*(data_buf+4)==0XA1) { Mode.ARMED=1; } } if(*(data_buf+2)==0X02) { if(*(data_buf+4)==0X01) { } if(*(data_buf+4)==0X02) Send_Offset=1; } if(*(data_buf+2)==0X03) { } if(*(data_buf+2)==0X16) //OFFSET { Data_Send_Check(sum); }}voidData_Exchange(void){ staticuint8_tcnt=0; if(cnt==0) { Data_Send_Status(); } elseif(cnt==1) { Data_Send_Senser(); } cnt++; if(cnt==2) { cnt=0; } elseif(Send_Offset) { Send_Offset=0; Data_Send_OFFSET(); }}voidData_Send_Status(void){ long_temp2; int_temp; uint8_t_cnt=0,sum=0,i; data_to_send[_cnt++]=0xAA; data_to_send[_cnt++]=0xAA; data_to_send[_cnt++]=0x01; data_to_send[_cnt++]=0; _temp=(int)(Angle[ROLL]*100); data_to_send[_cnt++]=BYTE1(_temp); data_to_send[_cnt++]=BYTE0(_temp); _temp=(int)(Angle[PITCH]*100); data_to_send[_cnt++]=BYTE1(_temp); data_to_send[_cnt++]=BYTE0(_temp); _temp=(int)(Angle[YAW]*100); data_to_send[_cnt++]=BYTE1(_temp); data_to_send[_cnt++]=BYTE0(_temp); _temp2=baroHigh; data_to_send[_cnt++]=BYTE3(_temp2); data_to_send[_cnt++]=BYTE2(_temp2); data_to_send[_cnt++]=BYTE1(_temp2); data_to_send[_cnt++]=BYTE0(_temp2); if(Mode.ARMED==0) data_to_send[_cnt++]=0xA0; elseif(Mode.ARMED==1) data_to_send[_cnt++]=0xA1; data_to_send[3]=_cnt-4; for(i=0;i<_cnt;i++) sum+=data_to_send[i]; data_to_send[_cnt++]=sum; UART0_Send(data_to_send,_cnt); }voidData_Send_Senser(void){ uint8_t_cnt=0,sum=0,i; data_to_send[_cnt++]=0xAA; data_to_send[_cnt++]=0xAA; data_to_send[_cnt++]=0x02; data_to_send[_cnt++]=0; data_to_send[_cnt++]=BYTE1(Acc.X); data_to_send[_cnt++]=BYTE0(Acc.X); data_to_send[_cnt++]=BYTE1(Acc.Y); data_to_send[_cnt++]=BYTE0(Acc.Y); data_to_send[_cnt++]=BYTE1(Acc.Z); data_to_send[_cnt++]=BYTE0(Acc.Z); data_to_send[_cnt++]=BYTE1(Gyro.X); data_to_send[_cnt++]=BYTE0(Gyro.X); data_to_send[_cnt++]=BYTE1(Gyro.Y); data_to_send[_cnt++]=BYTE0(Gyro.Y); data_to_send[_cnt++]=BYTE1(Gyro.Z); data_to_send[_cnt++]=BYTE0(Gyro.Z); data_to_send[_cnt++]=0; data_to_send[_cnt++]=0; data_to_send[_cnt++]=0; data_to_send[_cnt++]=0; data_to_send[_cnt++]=0; data_to_send[_cnt++]=0; data_to_send[3]=_cnt-4; for(i=0;i<_cnt;i++) sum+=data_to_send[i]; data_to_send[_cnt++]=sum; UART0_Send(data_to_send,_cnt);}voidData_Send_OFFSET(void){ int_temp; uint8_t_cnt=0,sum=0,i; data_to_send[_cnt++]=0xAA; data_to_send[_cnt++]=0xAA; data_to_send[_cnt++]=0x16; data_to_send[_cnt++]=0; _temp=0; data_to_send[_cnt++]=BYTE1(_temp); data_to_send[_cnt++]=BYTE0(_temp); _temp=0; data_to_send[_cnt++]=BYTE1(_temp); data_to_send[_cnt++]=BYTE0(_temp); data_to_send[3]=_cnt-4; for(i=0;i<_cnt;i++) sum+=data_to_send[i]; data_to_send[_cnt++]=sum; UART0_Send(data_to_send,_cnt); }voidData_Send_Check(uint16_tcheck){ uint8_tsum=0,i; data_to_send[0]=0xAA; data_to_send[1]=0xAA; data_to_send[2]=0xF0; data_to_send[3]=3; data_to_send[4]=0xBA; data_to_send[5]=BYTE1(check); data_to_send[6]=BYTE0(check); for(i=0;i<7;i++) sum+=data_to_send[i]; data_to_send[7]=sum; UART0_Send(data_to_send,8);}總結(jié)這個作品是我經(jīng)過很長時間思考并結(jié)合我兩年所學(xué)誕生的。我是一名機(jī)械自動化的學(xué)生,然而大學(xué)的前兩年我一直在學(xué)習(xí)單片機(jī)。而在前一段時間我們學(xué)院的王老師找我進(jìn)行了談話,他問我的發(fā)展方向想怎樣,我說我想研究機(jī)器義肢讓殘疾人可以回歸社會(主要還是因為我一只眼睛看不見,所以對于殘疾人的感受還是比較了解的,雖然我不能給我做一個假眼睛,但我至少能用我的所學(xué)讓那些失去肢體的人重新?lián)碛校@就是我的夢想)。而后老師指出,我既然選擇了機(jī)械,那么這個夢想就要有偏重,不然等我到了大三想學(xué)機(jī)械沒學(xué)精,想走電類又沒有系統(tǒng)的學(xué)過,而且我前兩年一直在忙智能車,四旋翼也只是玩一玩。老師幫我指了出來這個社會需要的是某個領(lǐng)域的精英人才,而我這么發(fā)展只會讓人覺得我學(xué)的很雜不精,我也陷入了深深的沉思。原本我學(xué)習(xí)單片機(jī)也是想為我的專業(yè)發(fā)展起到錦上添花的作用,結(jié)果目前卻本末倒置,反而影響了本科的發(fā)展,雖然成績還算好,但是并不能像單片機(jī)一樣學(xué)以致用。老師的話給我了很深的刺激,也幫助我刺中了要害。然而失去的時間不會回來,我現(xiàn)在能做的就是浪子回頭,而讓電子編程成為我和其他機(jī)械工程師相比獨有的優(yōu)勢,讓我的弊端(優(yōu)勢)成為輔助我的利刃。而這也是我創(chuàng)造出這件作品的精神之源?,F(xiàn)在多虧學(xué)長的幫助,我正在學(xué)習(xí)3D建模,并將我兩年所學(xué)到的慢慢和機(jī)械融合,這件作品目前其實還是一個模型,是我們團(tuán)隊3D建模大賽的作品,雖然通過了物理模擬,但是因為加工精度問題和資金問題目前并不能馬上做出成品,樣機(jī)已經(jīng)初成規(guī)模,預(yù)計今年暑假我們的團(tuán)隊就可以做出成品,敬請期待?;贑8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實現(xiàn)基于單片機(jī)的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運動控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗臺控制器的研制基于單片機(jī)的軟起動器的研究和設(shè)計基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點滴速度自動檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號檢測儀基于單片機(jī)的電機(jī)運動控制系統(tǒng)設(shè)計Pico專用單片機(jī)核的可測性設(shè)計研究基于MCS-51單片機(jī)的熱量計基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測量儀的研制基于單片機(jī)的紅外測油儀的研究96系列單片機(jī)仿真器研究與設(shè)計基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機(jī)的膛壁溫度報警系統(tǒng)設(shè)計基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實驗中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動譯碼系統(tǒng)設(shè)計與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機(jī)的μC/O

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論