|
本帖最后由 太空將軍 于 2018-5-20 03:53 編輯
麥克納納姆輪是一種全向輪,底盤(pán)可以向前向后,也可以像螃蟹左右橫向移動(dòng),原地轉(zhuǎn)動(dòng),任何方向的飄逸都行,所以挺好玩的,所以將最簡(jiǎn)單最精髓的部分分享出來(lái),一定要切記!切記!切記!參考資料論文中我畫(huà)圈的逆運(yùn)動(dòng)學(xué)公式,自己利用數(shù)學(xué)算一下,不難的。(論文中其它部分完全可以忽略,因?yàn)槲覀兏銘?yīng)用的,就是把別人的研究成果拿來(lái)用就好了)你是學(xué)霸非要全部看懂,我不攔你滴!只需要提供X_Y_W_speed的值,就能逆運(yùn)算出W1、W2、W3、W4四個(gè)輪子的轉(zhuǎn)速。!超級(jí)簡(jiǎn)單
制作出來(lái)的智能車實(shí)物圖:
IMG_20150528_225403_LI.jpg (1.46 MB, 下載次數(shù): 159)
下載附件
輪子的安裝請(qǐng)參考這個(gè)車就行
2018-5-20 03:30 上傳
0.png (46.49 KB, 下載次數(shù): 144)
下載附件
2018-5-20 03:45 上傳
0.png (69.71 KB, 下載次數(shù): 156)
下載附件
2018-5-20 03:46 上傳
0.png (216.51 KB, 下載次數(shù): 153)
下載附件
2018-5-20 03:46 上傳
部分單片機(jī)源程序如下:
- //地點(diǎn):武夷學(xué)院機(jī)器人實(shí)驗(yàn)室
- //作者:0721的
- //描述:RM戰(zhàn)車2號(hào)程序
- //交流QQ:825470791
- //輪子的安裝請(qǐng)參考圖片!。!
- int32_t L=250,W=200,R=75; //車尺寸,單位mm
- int32_t X_speed=0;
- int32_t Y_speed=0;
- int32_t W_speed=0;
- int32_t right_or_left=0;
- int32_t forward_or_back=0;
- int32_t W_right_or_left=0;
- char motor1_Direction; //0或者1 四個(gè)輪子方向
- char motor2_Direction; //0或者1
- char motor3_Direction; //0或者1
- char motor4_Direction; //0或者1
- int32_t W1=0,W2=0,W3=0,W4=0; //四個(gè)電機(jī)的轉(zhuǎn)速
- int pwm_data1=0,pwm_data2=0; //電機(jī)1、2輸出
- int pwm_data3=0,pwm_data4=0; //電機(jī)3、4輸出
- W1=((forward_or_back)*X_speed*2-(right_or_left)*Y_speed*2-W*W_right_or_left*W_speed-L*W_speed)/R; //矩陣運(yùn)算得出W1,W2,W3,W4
- W2=((forward_or_back)*X_speed*2+(right_or_left)*Y_speed*2-W*W_right_or_left*W_speed-L*W_speed)/R;
- W3=((forward_or_back)*X_speed*2-(right_or_left)*Y_speed*2+W*W_right_or_left*W_speed+L*W_speed)/R; //此處強(qiáng)烈建議參考文件夾中的論文中的
- W4=((forward_or_back)*X_speed*2+(right_or_left)*Y_speed*2+W*W_right_or_left*W_speed+L*W_speed)/R; //我打紅圈的逆運(yùn)動(dòng)學(xué)公式,可能加減符號(hào)有問(wèn)題!
-
- if(W1>0)motor1_Direction=0;else motor1_Direction=1;//0為正轉(zhuǎn),1為反轉(zhuǎn)
- if(W2>0)motor2_Direction=0;else motor2_Direction=1;
- if(W3>0)motor3_Direction=0;else motor3_Direction=1;
- if(W4>0)motor4_Direction=0;else motor4_Direction=1;
-
- pwm_data1=2*abs(W1); //pwm為算出的占空比值
- pwm_data2=2*abs(W2);
- pwm_data3=2*abs(W3);
- pwm_data4=2*abs(W4);
- if(pwm_data1<0)pwm_data1=0;if(pwm_data1>75)pwm_data1=75; //限值,萬(wàn)一算出來(lái)的值超過(guò)了你最大PWM允許的值需要限值的
- if(pwm_data2<0)pwm_data2=0;if(pwm_data2>75)pwm_data2=75; //我的是75,你的根據(jù)你的PWM思路自己掌握
- if(pwm_data3<0)pwm_data3=0;if(pwm_data3>75)pwm_data3=75;
- if(pwm_data4<0)pwm_data4=0;if(pwm_data4>75)pwm_data4=75;
- //電機(jī)的正反轉(zhuǎn)接線能否正確,靠你自己啦!加油。
復(fù)制代碼
所有資料51hei提供下載:
麥克納姆輪最簡(jiǎn)單控制資料.zip
(2.26 MB, 下載次數(shù): 567)
2018-5-20 03:29 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|