• 双舵轮AGV里程计、运动控制核心算法


            舵轮AGV可以通过调整两个舵轮的角度及速度,可以使小车在不转动车头的情况下实现变道,转向等动作,甚至可以实现沿任意点为半径的转弯运动,有很强的灵活性。 因此在AGV行业,这种驱动方式应用很广,但是目前能做好控制的厂家并不多。国内比较好的厂家主要有苏州凤凰动力,华晓精密。

            该种AGV,一般包含两个舵轮,通常布置在AGV车体中心前后、或AGV车体对角分布。如图:

    本文将以在车体中心前后分布方式的AGV为例,进行分析。

           大家都知道舵轮的参数有线速度大小、角速度大小、舵向值(v,w,a)三个参数(舵轮线速度方向一定等于舵向值)。同时我们控制双舵轮AGV去跟随路劲的时候,导航算法控制器也会给AGV下发线速度大小、线速度方向、角速度(不同于差速轮AGV,舵轮AGV可以全向行走,因此线速度方向是可以不同于AGV的航向角的,本文假设的线速度方向相对于AGV航向角),然后AGV舵轮驱动算法,将根据导航算法下发的三个参数来解算两个舵轮的三个参数。

           我们可以将该AGV简化成两个舵轮旋转中心支点刚性连接的情况,以两舵轮旋转中心点来计算AGV线速度和角速度。

           已知导航算法下发给AGV中心点的参数为(V,W,A),两舵轮之间的距离D,求舵轮1的参数(V1,W1,A1),舵轮2的参数(V2,W2,A2)。如下图:

    其中W=W1=W2;

    第一步:已知参数(V,W,A),求AGV的旋转半径。

    根据A可知旋转半径与AGV中心点速度的几何关系,如下图所示“:

    第二步:由于两个舵轮旋转中心支点与AGV是刚性连接,所以两舵轮的中心支点必定与AGV旋转中心同心。

    将AGV旋转中心与两舵轮旋转中心点连接,如下图;

    这里问题变成了,已知A、R,求R1,R2,A1,A2;(提示简单的三角几何计算);

     

     

    R1、R2、A1、A2就算到这里。

     第三步:由于r=v/w,W1=W2=W,所以

    V1=V*(R1/R);

    V2=V*(R2/R);

    第四步:将V1、V2、A1、A2分别解算出来,下发给两舵轮控制器,双舵轮AGV就可以按照你的导航算法去运动了。

    就讲到这一步,再有其他问题,工程师要养成独立深度思考的习惯,自己去搜索,自己去分析解决。

    另外,双舵轮的里程计,也可以根据此文章,倒退计算出来。

    本篇文章新鲜出炉,未经审稿,如有表达纰漏之处,可以指出,转载请说明出处。

  • 相关阅读:
    Python Special Syntax 7:继承
    Python Special Syntax 6:模块的__name__
    Python Special Syntax 5:对象相关
    Python Special Syntax 4:序列相关
    Python Special Syntax 3:删除对象和dir函数
    Python import与from import的区别
    Python Special Syntax 2:天才级的文档互动DocString
    Python Special Syntax 1: Python的局部变量和全局变量
    Python抓取页面乱码问题的解决
    win10居然把Linux的引导覆盖了
  • 原文地址:https://www.cnblogs.com/agvcfy/p/9498556.html
Copyright © 2020-2023  润新知