标题: 麦克纳姆轮全向轮战车程序精髓分享 [打印本页]

作者: 太空将军    时间: 2018-5-20 03:38
标题: 麦克纳姆轮全向轮战车程序精髓分享
本帖最后由 太空将军 于 2018-5-20 03:53 编辑

麦克纳纳姆轮是一种全向轮,底盘可以向前向后,也可以像螃蟹左右横向移动,原地转动,任何方向的飘逸都行,所以挺好玩的,所以将最简单最精髓的部分分享出来,一定要切记!切记!切记!参考资料论文中我画圈的逆运动学公式,自己利用数学算一下,不难的。(论文中其它部分完全可以忽略,因为我们搞应用的,就是把别人的研究成果拿来用就好了)你是学霸非要全部看懂,我不拦你滴!只需要提供X_Y_W_speed的值,就能逆运算出W1、W2、W3、W4四个轮子的转速!!!超级简单

制作出来的智能车实物图:





部分单片机源程序如下:
  1. //地点:武夷学院机器人实验室
  2. //作者:0721的
  3. //描述:RM战车2号程序
  4. //交流QQ:825470791
  5. //轮子的安装请参考图片!!!!
  6. int32_t L=250,W=200,R=75;                 //车尺寸,单位mm
  7. int32_t X_speed=0;
  8. int32_t Y_speed=0;
  9. int32_t W_speed=0;
  10. int32_t right_or_left=0;
  11. int32_t forward_or_back=0;
  12. int32_t W_right_or_left=0;
  13. char motor1_Direction;            //0或者1       四个轮子方向
  14. char motor2_Direction;            //0或者1
  15. char motor3_Direction;            //0或者1
  16. char motor4_Direction;            //0或者1
  17. int32_t W1=0,W2=0,W3=0,W4=0;                   //四个电机的转速
  18. int pwm_data1=0,pwm_data2=0;               //电机1、2输出
  19. int pwm_data3=0,pwm_data4=0;               //电机3、4输出

  20.                 W1=((forward_or_back)*X_speed*2-(right_or_left)*Y_speed*2-W*W_right_or_left*W_speed-L*W_speed)/R;        //矩阵运算得出W1,W2,W3,W4   
  21.                 W2=((forward_or_back)*X_speed*2+(right_or_left)*Y_speed*2-W*W_right_or_left*W_speed-L*W_speed)/R;        
  22.                 W3=((forward_or_back)*X_speed*2-(right_or_left)*Y_speed*2+W*W_right_or_left*W_speed+L*W_speed)/R;         //此处强烈建议参考文件夹中的论文中的
  23.                 W4=((forward_or_back)*X_speed*2+(right_or_left)*Y_speed*2+W*W_right_or_left*W_speed+L*W_speed)/R;          //我打红圈的逆运动学公式,可能加减符号有问题!
  24.                                  
  25.                 if(W1>0)motor1_Direction=0;else motor1_Direction=1;//0为正转,1为反转
  26.                 if(W2>0)motor2_Direction=0;else motor2_Direction=1;
  27.                 if(W3>0)motor3_Direction=0;else motor3_Direction=1;
  28.                 if(W4>0)motor4_Direction=0;else motor4_Direction=1;         
  29.                                       
  30.                 pwm_data1=2*abs(W1);  //pwm为算出的占空比值
  31.                 pwm_data2=2*abs(W2);
  32.                 pwm_data3=2*abs(W3);
  33.                 pwm_data4=2*abs(W4);
  34.                 if(pwm_data1<0)pwm_data1=0;if(pwm_data1>75)pwm_data1=75;  //限值,万一算出来的值超过了你最大PWM允许的值需要限值的
  35.                 if(pwm_data2<0)pwm_data2=0;if(pwm_data2>75)pwm_data2=75;  //我的是75,你的根据你的PWM思路自己掌握
  36.                 if(pwm_data3<0)pwm_data3=0;if(pwm_data3>75)pwm_data3=75;
  37.                 if(pwm_data4<0)pwm_data4=0;if(pwm_data4>75)pwm_data4=75;
  38.                 //电机的正反转接线能否正确,靠你自己啦!!加油!!
复制代码

所有资料51hei提供下载:
麦克纳姆轮最简单控制资料.zip (2.26 MB, 下载次数: 567)




作者: 开心的泽哥    时间: 2018-5-27 17:18
大佬有没有arduino教程的?
作者: 太空将军    时间: 2018-6-6 03:46
开心的泽哥 发表于 2018-5-27 17:18
大佬有没有arduino教程的?

有,加我就行
作者: kcsj666    时间: 2018-6-19 10:22
太空将军 发表于 2018-6-6 03:46
有,加我就行

大佬能不能列一下器材清单啊?新手上路不知道都需要什么模块
作者: 开心的泽哥    时间: 2018-7-3 11:37
太空将军 发表于 2018-6-6 03:46
有,加我就行

能不能给我一下您的联系方式>

作者: zs13688    时间: 2018-11-24 11:25
谢谢!!!!!!!!!
作者: shenqi2188    时间: 2018-12-11 09:19
大佬大佬
作者: wwh15697    时间: 2019-1-20 10:31
厉害啊,大佬。
作者: MoMoNiz    时间: 2019-3-6 00:31
前来学习!
作者: 1145284121    时间: 2019-3-11 13:35
Robomaster原车拉出来可还行
作者: a2569808500    时间: 2019-3-23 17:23
麦轮的当前速度和方向偏移的关系应该怎么控制,速度大了得撞上,速度小了又跑偏了
作者: 傻傻呆呆    时间: 2019-4-29 14:51
能提供一下联系方式吗
作者: 飘散微尘    时间: 2019-5-8 22:02
谢谢分享
作者: a214562573    时间: 2019-5-28 17:42
大佬问下这个代码直接放在keil4上就可以了吗 是51的代码吗?
作者: zhlip    时间: 2019-6-19 11:43
一个轮子就要几十块钱
作者: FTC小白    时间: 2019-9-13 15:35
开心的泽哥 发表于 2018-5-27 17:18
大佬有没有arduino教程的?

我看到你是18年发起提问,这会也成大神了,我就是你18年时候的样子,能给我点儿建议吗,学习路线以及学习教程。
作者: pctao    时间: 2019-10-19 10:57
很好的学习资料!正想了解这方面的知识!
作者: wyq145202    时间: 2019-11-9 19:41
大佬有咩有STM32f1教程的,同时含有PID控制算法。
作者: 好音乐慢生活    时间: 2019-12-9 15:36
很给力!!!!!!
作者: kjd面包    时间: 2020-1-2 08:08
谢谢分享
作者: 1255206999    时间: 2020-1-10 19:38

大佬有没有arduino教程的?
作者: 1255206999    时间: 2020-1-10 19:48

大佬有没有arduino教程的?
作者: 庄玉鑫    时间: 2020-4-12 11:22
求arduino控制程序!跪谢大佬
作者: zlljackx    时间: 2020-6-4 13:14
谢谢谢谢
作者: iieiieiie    时间: 2020-8-7 23:41
a214562573 发表于 2019-5-28 17:42
大佬问下这个代码直接放在keil4上就可以了吗 是51的代码吗?

大佬 您有这个51的代码吗
小弟实在是不会
若看到还望您能回我一下

作者: sad520ljh    时间: 2020-12-15 10:43
这战车,是什么比赛的吗?
作者: chjchj816    时间: 2021-1-7 08:40




麦克纳纳姆轮 高大上的样子




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1