麦克纳姆轮速度分解计算及里程计计算

本文介绍了麦克纳姆轮在机器人应用中的速度解算和里程计计算过程。采用O-正方形模型,详细阐述了速度解算的计算模型,并提供了STM32中的解算代码。里程计计算通过运动微积分求解,利用固定时间内的路程变化。此外,文章还简单讨论了逆运动学求解速度的方法,并分享了解决里程计计算问题的经验。
摘要由CSDN通过智能技术生成

麦克纳姆轮速度分解计算及里程计计算


前言

麦克纳姆轮在现如今的机器人应用中十分广泛,经我自己的查阅资料和整理,得到下面的解算过程


一、速度解算过程

在该模型中,使用的是O-正方形模型为例,具体计算模型如下图所示(左上为1,右上为2,右下为3,左下为4)
在这里插入图片描述
如有不理解的地方,可参见以下链接:麦轮正运动学解算原理
在计算中,是在stm32中对速度及里程计进行解算,具体代码如下:

void ChassisVelSet(float vx, float vy, float omega){
       
    /* 运动学计算 */
    float v1, v2, v3, v4;
    
    /* 速度限幅 */
    vx = vx < VEL_LIM ? vx : VEL_LIM;
    vy = vy < VEL_LIM ? vy : VEL_LIM;
    omega = omega < OMEGA_LIM ? omega : OMEGA_LIM;
    
//    // 单位m/s,C表示横向与纵向轮子间距离的和,所以除以2
//    v1 = (vy + vx) - omega * C / 2.0f; //左上轮,单位为rad/s
//    v2 = (vy - vx) + omega * C / 2.0f; //右上
//    v3 = (vy + vx) + omega * C / 2.0f; //右下
//    v4 = (vy - vx) - omega * C / 2.0f; //左下
//    
//    // 单位rpm 原始式子
//    v1 = ((vy + vx) / (2.0f * PI * R) - omega * C / (2.0f * 2.0f * PI * R))*60.0f/(2.0f*PI); 
//    v2 = ((vy - vx) / (2.0f * PI * R) + omega * C / (2.0f * 2.0f * PI * R))*60.0f/(2.0f*PI); 
//    v3 = ((vy + vx) / (2.0f * PI * R) + omega * C / (2.0f * 2.0f * PI * R))*60.0f/(2.0f*PI);
//    v4 = ((vy - vx) / (2.0f * PI * R) - omega * C / (2.0f * 2.0f * PI * R))*60.0f/(2.0f*PI);
        
    v1 = 2.0f * ((vy + vx) / R - omega * C / (2.0f * R))*60.0f; 
    v2 = 2.0f * ((vy - vx) / R + omega * C / (2.0f * R))*60.0f; 
    v3 = 2.0f * ((vy + vx) / R + omega * C / (2.0f * R))*60.0f;
    v4 = 2.0f * ((vy - vx) / R - omega * C / (2.0f * R))*60.0f;
       
    /* 运动学计算End */
    WheelsVelSet(v1,v2,v3,v4);  
  • 8
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值