麥克納姆安裝及計算_第1頁
麥克納姆安裝及計算_第2頁
麥克納姆安裝及計算_第3頁
麥克納姆安裝及計算_第4頁
麥克納姆安裝及計算_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

麥克納姆輪淺談什么是麥克納姆輪在競賽機(jī)器人和特殊工種機(jī)器人中,全向移動經(jīng)常是一個必需的功能。「全向移動」意味著可以在平面內(nèi)做出任意方向平移同時自轉(zhuǎn)的動作。為了實現(xiàn)全向移動,一般機(jī)器人會使用「全向輪」〔OmniWheel〕或「麥克納姆輪」〔MecanumWheel〕這兩種特殊輪子。全向輪:麥克納姆輪全向輪與麥克納姆輪的共同點在于他們都由兩大局部組成:輪轂和輥子〔roller〕。輪轂是整個輪子的主體支架,輥子那么是安裝在輪轂上的鼓狀物。全向輪的輪轂軸與輥子轉(zhuǎn)軸相互垂直,而麥克納姆輪的輪轂軸與輥子轉(zhuǎn)軸呈45°角。理論上,這個夾角可以是任意值,根據(jù)不同的夾角可以制作出不同的輪子,但最常用的還是這兩種。全向輪與麥克納姆輪〔以下簡稱「麥輪」〕在結(jié)構(gòu)、力學(xué)特性、運動學(xué)特性上都有差異,其本質(zhì)原因是輪轂軸與輥子轉(zhuǎn)軸的角度不同。經(jīng)過分析,二者的運動學(xué)和力學(xué)特性區(qū)別可以通過以下表格來表達(dá)。計算過程如下,供參考,學(xué)霸可點開大圖驗算:近年來,麥輪的應(yīng)用逐漸增多,特別是在Robocon、FRC等機(jī)器人賽事上。這是因為麥克納姆輪可以像傳統(tǒng)輪子一樣,安裝在相互平行的軸上。而假設(shè)想使用全向輪完成類似的功能,幾個輪轂軸之間的角度就必須是60°,90°或120°等角度,這樣的角度生產(chǎn)和制造起來比擬麻煩。所以許多工業(yè)全向移動平臺都是使用麥克納姆輪而不是全向輪,比方這個國產(chǎn)的叉車:全向移動平臺麥克納姆輪叉車美科斯叉車另外一個原因,可能是麥輪的造型比全向輪要酷炫得多,看起來有一種不明覺厲的感覺……確實,第一次看到麥輪運轉(zhuǎn)起來,不少人都會驚嘆。以下視頻直觀地說明了麥輪底盤在平移和旋轉(zhuǎn)時的輪子旋轉(zhuǎn)方向。麥輪的安裝方法麥輪一般是四個一組使用,兩個左旋輪,兩個右旋輪。左旋輪和右旋輪呈手性對稱,區(qū)別如下列圖。安裝方式有多種,主要分為: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)動力矩的力臂也比擬長。是最常見的安裝方式。麥輪底盤的正逆運動學(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)速的計算比擬簡單:以上方程組就是O-長方形麥輪底盤的逆運動學(xué)模型,而正運動學(xué)模型可以直接根據(jù)逆運動學(xué)模型中的三個方程解出來,此處不再贅述。另一種計算方式「傳統(tǒng)」的推導(dǎo)過程雖然嚴(yán)謹(jǐn),但還是比擬繁瑣的。這里介紹一種簡單的逆運動學(xué)計算方式。我們知道,全向移動底盤是一個純線性系統(tǒng),而剛體運動又可以線性分解為三個分量。那么只需要計算出麥輪底盤在「沿X軸平移」、「沿Y軸平移」、「繞幾何中心自轉(zhuǎn)」時,四個輪子的速度,就可以通過簡單的加法,計算出這三種簡單運動所合成的「平動+旋轉(zhuǎn)」運動時所需要的四個輪子的轉(zhuǎn)速。而這三種簡單運動時,四個輪子的速度可以通過簡單的測試,或是推動底盤觀察現(xiàn)象得出。當(dāng)?shù)妆P沿著X軸平移時:當(dāng)?shù)妆P沿著Y軸平移時:當(dāng)?shù)妆P繞幾何中心自轉(zhuǎn)時:將以上三個方程組相加,得到的恰好是根據(jù)「傳統(tǒng)」方法計算出的結(jié)果。這種計算方式不僅適用于O-長方形的麥輪底盤,也適用于任何一種全向移動的機(jī)器人底盤。Makeblock麥輪底盤的組裝理論分析完成,可以開始嘗試將其付諸實踐了。第一步,組裝矩形框架。第二步,組裝電機(jī)模塊。由于麥輪底盤的四個輪子速度有約束關(guān)系,必須精確地控制每個輪子的速度,否那么將會導(dǎo)致輥子與地面發(fā)生滑動摩擦,不僅會讓底盤運動異常,還會讓麥輪的壽命減少。所以必須使用編碼電機(jī)。第三步,將電機(jī)模塊安裝到框架上。第四步,將麥輪安裝到框架上。第五步,安裝電路板并接線。編碼電機(jī)必須配上相應(yīng)的驅(qū)動板才能正常工作。這里使用的Makeblock編碼電機(jī)驅(qū)動板,每一塊板可以驅(qū)動兩個電機(jī)。接線順序在下文中會提及,也可以隨意接上,在代碼中定義好對應(yīng)的順序即可。第六步,裝上電池。至此,一個能獨立運行的麥輪底盤就完成了??刂瞥绦蚋鶕?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){//假設(shè)一直輸出離線狀態(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,-lin

溫馨提示

  • 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

提交評論