精华内容
下载资源
问答
  • 两轮差速移动机器人运动分析、建模和控制

    万次阅读 多人点赞 2018-11-02 21:24:35
    两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用...


    文中每个模型、算法和仿真的程序都将在仿真结果前给出对应的下载链接。

    1 运动学分析建模

    运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。
    两轮差速驱动示意图
    定义其左右驱动轮的中心分别为WlW_lWrW_r,且车体坐标系中这两点在惯性坐标系下移动的线速度为vlv_lvrv_r,理想情况下即为左右轮转动时做圆周运动的线速度。该值可以通过电机驱动接口输出的角转速ϕl\phi_lϕr\phi_r和驱动轮半径rr求得,即:
    vl=rϕl v_l = r\cdot {\phi_l}
    令两驱动轮中心连线的中点为机器的基点CCCC点在大地坐标系XOYXOY下坐标为(x,y)(x, y),机器的瞬时线速度为vcv_c,瞬时角速度ωc\omega_c,姿态角θθ即为vcv_cXX轴夹角。此时,机器位姿信息可用矢量P=[x,y,θ]TP = [x, y, θ]^T表示。机器人瞬时线速度为vcv_c可以表示为:
    vc=vr+vl2 v_c = \frac{v_r+v_l}{2}
    令左右轮间距为ll,且机器瞬时旋转中心(ICR)为OcO_c,转动半径即为CCOcO_c的距离RR。机器在做同轴(轴为左右轮到ICR连线)圆周(圆心为ICR)运动时,左右轮及基点所处位置在该圆周运动中的角速度相同ωl=ωr=ωc\omega_l=\omega_r=\omega_c,到旋转中心的半径不同,有l=vrωrvlωll=\frac{v_r}{\omega_r}-\frac{v_l}{\omega_l}。则机器的瞬时角速度ωc\omega_c可以表示为:
    ωc=vrvll \omega_c = \frac{v_r-v_l}{l}
    联立两式,利用vrv_rvlv_l求出机器转动半径:
    R=vcωc=l2vr+vlvrvl R = \frac{v_c}{ω_c}=\frac{l}{2}\frac{v_r+v_l}{v_r-v_l}

    1.1 三种运动状态分析

    差速驱动方式,即V1和V2间存在的速度差关系决定了其具备不同的三种运动状态,如图所示:
    三种运动状态

    • vl>vrv_l>v_r时,机器做圆弧运动;
    • vl=vrv_l=v_r时,机器做直线运动;
    • vl=vrv_l=-v_r时,机器以左右轮中心点做原地旋转。

    1.2 函数模型

    通过上述两节的运动分析,在驱动轮与地面接触运动为纯滚动无滑动情况下,机器的运动学模型可以表示为:
    [x˙y˙θ˙]=[cosθ0sinθ001][12121l1l][vrvl] \left[\begin{matrix} \dot x \\ \dot y \\ \dot θ \\ \end{matrix}\right]= \left[\begin{matrix} cosθ & 0 \\ sinθ & 0 \\ 0 & 1 \\ \end{matrix}\right]\left[\begin{matrix} \frac{1}{2} & \frac{1}{2} \\ \frac{1}{l} & -\frac{1}{l} \\ \end{matrix}\right]\left[\begin{matrix} v_r\\ v_l\\ \end{matrix}\right]

    1.3 仿真验证

    MATLAB仿真程序免积分下载链接

    1.3.1 直线验证

    位移变化:
    在这里插入图片描述
    姿态角变化曲线:
    在这里插入图片描述

    1.3.2 曲线验证

    位移变化:
    轨迹坐标姿态角变化曲线:
    (机器人坐标系服从右手定则,其顺时旋转针姿态角减少,逆时针旋转姿态角增加)
    姿态曲线

    1.3.3 旋转验证

    位移变化:
    轨迹坐标姿态角变化曲线:
    (机器人坐标系服从右手定则,其顺时旋转针姿态角减少,逆时针旋转姿态角增加)
    角度变化

    2 运动控制

    运动控制的被控对象是所分析的两轮差速移动机器人;直观的控制量是上述建模中所述的左右轮转速,为了更一般的描述车体的运动,控制量选车体线速度vv与角速度ω\omega,左右轮转速可由模型反求取。

    2.1 点到点

    控制机器人由当前点移动到指定目标点,其核心是令机器人在控制器作用下(以一定合适的方式)持续地朝向目标点运动。其控制系统框图为:
    在这里插入图片描述

    2.1.1 任意姿态到达目标点

    设机器人实时位姿为[xt,yt,θt][x_t, y_t,\theta_t],目标位置为[xG,yG,θG][x_G, y_G,\theta_G],易求出机器与目标点间实时的距离差derr=(xGxt)2+(yGyt)2d_{err}=\sqrt{(x_G-x_t)^2+(y_G-y_t)^2}与角度差θerr=tan(yGytxGxt)θt\theta_{err} = \tan(\frac{y_G-y_t}{x_G-x_t})-\theta_t(即图中δ=φθ\delta = \varphi-\theta),如下图所示。
    在这里插入图片描述一种简单通用的控制器,PID控制器可以构成运动控制器。其设计方法是:简单地,运动控制器由两个并联的PID控制器组成:

    • 一个PID控制器,输入为距离差derrd_{err}输出为线速度vv,即距离决定速度。距离远速度大,距离近速度小。【多说一句,这里要注意的是速度的连续性,(如起步时距离远,线速度由0跳变为较大值,且距离无穷远速度无穷大)所以需要将PID输出先限幅再平滑(即限幅vpidoutvmax\left \| v_{pidout} \right \|\leq v_{max},平滑vt1vpidoutσ\left \| v_{t-1}-v_{pidout} \right \|\leq\sigma),最后输出vt=vpidoutv_t=v_{pidout}
    • 另一个PID控制器,输入为距离差θerr\theta_{err}输出为角速度ω\omega,即偏角误差决定转速。正偏左转,负偏右转;偏多转快,偏少转慢。【多说一句,这里要注意的是角度表示方式带来的过界问题,即当求出的θerr\theta_{err}大于或小于π\pi(如φ=34π\varphi=\frac{3}{4}\piθ=34π\theta=-\frac{3}{4}\pi)时,要将其归一化到(π,π](-\pi,\pi]。即 θerr\theta_{err}大于π\pi2π2\pi;小于等于π-\pi,加2π2\pi

    使用上述公式求出线速度vcv_c、角速度ωc\omega_c后,再解算为左右轮转速交给机器执行。控制器会控制机器人持续朝向目标移动,当其距离目标小于一定值,即移动到以目标为圆心,τ\tau为半径(目标半径)的圆内derrτd_{err}\leq \tau时,判定机器人到达目标位置,完成运动控制过程。
    该控制系统简单易实现,这里是仿真的下载链接,控制效果如图所示。
    trajtheta
    lin_velang_vel

    2.1.1 固定姿态到达目标点

    上述点到点的运动控制只要求到达目标点,并没有其他约束条件,虽然在实际应用中往往会有许多约束,但是其确是一切运动控制的基石。
    在某些具体应用中,如泊车parking,对接docking等往往需要机器人以某个固定的姿态到达某一具体位置。

    2.2 路径跟踪

    路径跟踪(巡迹/沿线)是指机器人在已知地图上跟随已规划好路径进行运动的过程。路径跟踪的算法有很多,较为常用的如Pure pursuit,Stanley(针对Ackerman模型),MPC等等。考虑到通用性,这里主要介绍Pure pursuit控制算法。

    2.2.1 Pure pursuit 纯跟踪

    路径是由什么组成的?很显然,路径是由无数个离散的目标点组成的。通过遍历这些目标点,是不是就可以完成路径的跟随?那么,这些目标点的遍历过程是不是可以通过上面介绍的点到点运动控制来完成?路径上离散的目标点间距那么小,又怎么实现控制?pure pursuit纯跟踪算法应运而生。
    Pure pursuit是最基础的路径跟踪算法了,它的核心思想是:通过航向控制,不断地将机器人从当前位置移动到机器人前面的某个前瞻点。pure pursuit算法将根据机器人的当前位置计算出此时路径上对应的前瞻点,并控制其朝向前瞻点移动,不断循环上述过程(机器动,前瞻动)直到到达路径的最后一个点。通俗一点的说,就是机器人在不断地追逐它前面的一个点。
    对于pure pursuit纯跟踪算法来说,前瞻点的选取至关重要!前瞻点是根据机器人实时位置通过前瞻距离向前搜素而来。机器人实时位置和前瞻点如图所示,注意实际路径与规划路径不匹配。
    在这里插入图片描述
    前瞻距离决定了跟踪路径的方式,前瞻距离较小,机器将更快速的靠向规划路径,从而实际路径将更贴合规划路径,但是也会伴随着实际路径的震荡;反之,较大的前瞻距离,可以减少沿路径的振荡,但也会导致拐角附近的曲率较大。同时,不同的线速度和角速度也会影响机器对规划路径的响应,在控制过程中也应该考虑到这一点。
    在这里插入图片描述纯追踪算法有几个局限性需要注意:

    • 纯追踪算法不能完全遵循规划路径。必须调整参数以优化性能,使得机器随时间收敛到路径上。
    • 纯追踪算法不能使机器在某一点上保持稳定。可以用目标位置的距离阈值来将其停在目标附近。

    算法的整体和细节效果如下,红色虚线为规划轨迹,蓝色实线为实际路径。位置不会一直贴合路径,但是随时间一定会收敛到路径上。
    在这里插入图片描述DETAIL在这里插入图片描述
    将前瞻距离加大,贴合路径的速度降低收敛变慢:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • 两轮差速开环控制仿真程序,matlab_simulink,不同线速度角速度对机器运动的影响。 https://blog.csdn.net/iProphet/article/details/83661753中的开环程序, 试一试v,w>0时的运动状态和v,w>0时的运动状态。 解压...
  • 负载可调两轮差速驱动移动机器人,冉冰心,王牛,建立了移动机器人负载变化和驱动系统等效转动惯量的数学关系,设计并实现了一种负载可调的两轮差速驱动移动机器人作为实验平台,
  • 简要地介绍了基于机器视觉导向的AGV两轮差速转向的原理和组成,并对计算机控制系统设计,图像信息识别等AGV控制问题进行了阐述,提出了一种采用模糊控制方法对 AGV两轮差速转向进行控制。实验结果表明,采用模糊控制方法...
  • 两轮差速机器人运动学模型

    千次阅读 2021-03-29 13:29:04
    两轮差速底盘 1.1、底盘说明 两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。 主要底盘有: 1、Turtlebot; 2、扫地机器人...

    两轮差速底盘

    1.1、底盘说明

    两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。

    主要底盘有:

    1、Turtlebot;
    2、扫地机器人;
    3、无人仓AGV小车;
    4、轮椅;

    底盘主要特点:

    1、控制简单、里程计计算简单。
    2、只能给定X方向速度、Z轴方向角速度。

    1.2 底盘运动学分析

    1.2.1、底盘模型

    在这里插入图片描述

    图1.2.1 常见的两轮差速底盘模型

    1.2.2、机器人本身约束方程(物理特性)

    图1.2.2 a 左侧是车的两个轮子,右侧带箭头的圆圈是运动的方向和运动的圆心
    图1.2.2 a 左侧是车的两个轮子,右侧带箭头的圆圈是运动的方向和运动的圆心
    图1.2.2 b 两轮底盘运动解析图
    图 1.2.2 b 两轮底盘运动解析图

    如图1.2.2所示:车体速度为V, 左轮速度为VL ,右轮速度为VR , 车体自传速度为,转弯半径为R,两轮之间距离为D,两轮到车中心的距离为d,右轮到圆心距离为L。

    约束方程(高中知识):
    ①、角速度、速度和运动半径之间的物理关系。
    ②、左轮速度分解
    ③、右轮速度分解
    ④、和速度V等于左右轮速度之和的一半。
    ⑤、由②、③得 得 整车角速度和两轮速度之间的关系

    1.3、运动控制、控制指令分解

    控制指令分解指如何通过控制左右两个轮的独立速度使整个机器人的整体运动既满足前向速度等于V,转动的角速度等于
    在这里插入图片描述
    图1.2.3 运动控制的输入、输出参数说明

    如图1.2.3所示,运动控制器输入参数为整车速度Vx和角速度(因为轮子不能横着走所以Vy一直为零),输出参数是左右两轮速度VL 、VR。转弯半径R则由左右轮速度决定。
    由约束方程②、③得:

    左轮速度为:
    在这里插入图片描述
    (d为两轮之间距离的一半)

    右轮速度为:
    在这里插入图片描述

    1.4、运动轨迹、里程计计算

    在这里插入图片描述

    图1.2.4 上电时刻机器人坐标系和世界坐标系重合

    里程计(odom)计算是指以机器人上电时刻为世界坐标系的起点O(0,0)(航向为世界坐标系的X轴指向)累积计算任意时刻机器人相对于世界坐标系的位置及航向。
    机器人的位置Pose.Xw、Pose.Yw的值可以看成是车体运动方向极小时间内位置增量分解到X、Y方向的积分量。
    在这里插入图片描述

    图1.2.5 机器人在世界坐标系的位置

    此时分两种方式来推算轨迹:速度推算方式、编码器推算方式

    I、速度推算轨迹:(速度积分累积误差较大,最终精度在10%左右)
    在机器人坐标系下,单位时间∆t(一个控制周期:∆t = ti+1 - ti,通常为10ms、20ms)以速度V移动的距离为∆d = ∆t*V。将此距离分别分解到世界坐标系的X、Y轴:
    ∆xw = ∆d * cos(θ)= ∆t * V * cos(θ)
    ∆yw = ∆d * sin(θ)= ∆t * V * sin(θ)

    同时单位时间角度变化为∆θ = *∆t。
    以此方式不断累积,即可实现任意时间的位置解算。
    *Xw = Xw + ∆xw = Xw + ∆t * V * cos(θ)
    Yw = Yw + ∆yw = Yw + ∆t * V * sin(θ)
    θ = θ + ∆t

    II、编码器推算轨迹:(直接对距离做分解累积误差相对较小,最终精度1%以内,如果做修正,同时航向角较准确的情况下精度可以达到0.1%以内(已经实测))
    编码器每一个脉冲对应实际轮子行走的直线距离系数为:
    rate_encoder = 2𝛑r/sum_encoders
    其中r为车轮半径,sum_encoders为轮子走动一圈的编码器的脉冲总数。
    单位时间∆t内编码的增量为:inc_encoder = encoder_now – encoder_last,(当前编码器值减去上次编码器值)
    则单位时间机器人移动的距离为∆d = inc_encoder * rate_encoder
    世界坐标系下x、y方向累计里程分别为:
    Xw = Xw + ∆xw = Xw + ∆d * cos(θ)
    Yw = Yw + ∆yw = Yw + ∆d * sin(θ)

    其中航向角θ的获取分两种情况:
    A、底盘带具有稳定航向角的IMU,此方式可以使得最终解算的位置十分准确(电子罗盘受电机干扰交大不可用)
    θ直接等于IMU的航向角Yaw。(IMU的Yaw上电为0,刚好和车的航向角一致)
    B、依靠底盘两个轮子上精确的编码器推算航向角。
    两轮编码器单位时间内增量分别为 inc_encoder_r、inc_encoder_l
    单位时间内两轮扭动的距离差为 lenth_error = (inc_encoder_r- inc_encoder_l) * rate_encoder;
    由⑤得:由距离差得单位时间内角度差为 anlge_z_error = lenth_error / 2d;
    根据编码器累计的角度θ为 anlge_z += anlge_z_error。
    此方式非常依赖编码器精度,有累计误差,效果不如直接使用IMU的好。

    展开全文
  • 设计一个两轮差速agv小车的电气控制系统,要有硬件设计和软件设计,只考虑直线前进,不考虑
  • 可变载荷下两轮差速驱动移动机器人的运动模型
  • 两轮差速运动模型推导

    千次阅读 2019-12-02 17:40:58
    由于目前的小车EAI底盘是两轮的(其底部后方两个同构...1.两轮差速运动模型推导过程,https://blog.csdn.net/u010422438/article/details/82256280 2.两轮差速运动分析及建模,https://blog.csdn.net/iProp...

    由于目前的小车EAI底盘是两轮的(其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动),所以记录一下其航迹推算公式

    两篇博客值得参考:

    1.两轮差速运动模型推导过程,https://blog.csdn.net/u010422438/article/details/82256280

    2.两轮差速运动分析及建模,https://blog.csdn.net/iProphet/article/details/83661753#11__23

     

    模型与公式:
    我们可以从点击编码器获取的:角速度w1,w2,以及测量的轮胎半径r。以及轮心之间的距离l。据此求出其轨迹,

     

    展开全文
  • 本文构建两轮差速驱动机器人的数学运动模型,在“混沌无形”免费下载本文PDF
  • 两轮差速_任意姿态到达目标点_运动控制仿真程序,Matlab_Simulink。 请配合博文https://blog.csdn.net/iProphet/article/details/83661753一同使用,含初始位置子模块,误差生成子模块, PID的参数整定完备。 解压...
  • 两轮差速纯跟踪模型

    2021-03-27 16:38:12
    两轮差速纯跟踪模型 在AGV行业,差速轮已经非常普遍。在国内,两轮驱动主要使用Kinco品牌低压伺服驱动,性价比高。通过mcu与驱动器通讯(can、232等),得到两轮的实时编码器的值,通过mcu中断,将上一时刻的编码器...

    两轮差速纯跟踪模型
    在AGV行业,差速轮已经非常普遍。在国内,两轮驱动主要使用Kinco品牌低压伺服驱动,性价比高。通过mcu与驱动器通讯(can、232等),得到两轮的实时编码器的值,通过mcu中断,将上一时刻的编码器值与实时编码器值做差,在较短时间内(20ms),此值约为此时速度值,从而得到两轮速度Vr和Vl。
    则在这个时刻,小车平均速度V=(Vr+Vl)/2。
    小车角速度W=(Vr-Vl)/L。L为两轮距离。W换算成rad/s的话=(Vr-Vl)/L*180/PAI`
    小车当前姿态(即角度)tht+=W;记住:角度就是角速度的累加
    最后,可以推算小车里程计
    里程计在X方向 Xt+=Vcos(tht);
    里程计在Y方向Yt+=Vsin(tht);
    通过以上步骤,可以得出小车的实时位置及姿态;小车当前坐标X,Y,θ为(Xt,Yt,tht)
    不喜勿喷,感谢。

    展开全文
  • 两轮差速运动模型推导过程

    万次阅读 多人点赞 2018-08-31 14:53:01
    下面这张图片是从网络上拷贝过来,以这张图片为模型,我们来一步一步论证推导两轮差速运动模型,以下是原来网络上对这张图片的描述。  下图是移动机器人在两个相邻时刻的位姿,其中 是两相邻时刻移动机器人绕圆弧...
  • 惯性参数对两轮差速驱动移动机器人运动的影响,马勤勇,黄宇,本文分析了两轮差速驱动移动机器人的惯性参数与移动机器人运动轨迹的相互影响,结合直流电机系统非线性模型和移动机器人运动学模
  • 两轮差速控制原理

    千次阅读 2017-02-28 11:35:00
    两轮差速控制原理 杜南山 dunanshan@163.com 2017/2/27 表 1差速控制常用量 左右轮编码器值; 编码器线数; 电动机到车轮的减速比; 车轮半径; 轴长,即两轮中心的距离; 左右轮线速度; ...
  • 1 两轮差速驱动移动机器人运动学建模 1.1 物理量说明 1.2 正运动学模型 1.3 逆运动学模型 1.4 其他运动学特性 1.5 Simulink仿真 1.5.1 仿真程序 1.5.2 仿真结果 2 两轮差速驱动移动机器人运动控制仿真 2.1 基于距离...
  • 因此,car-like robot的速度空间范围是一个沙漏型,可见car-like robot的速度空间范围小于两轮差速驱动机器人的速度空间范围,其灵活性也不如两轮差速驱动机器人。 图 1 速度空间.(a)表示两轮差速驱动机器人的...
  • 详细分析了两轮差速底盘的运动控制原理,通俗易懂。并多角度介绍了里程计解算的方式
  • 两轮差速机器人基于PID控制下轨迹跟踪

    千次阅读 热门讨论 2020-07-09 22:46:03
    机器人轨迹跟踪一般有两种方式,一是...因为是在Matlab做的实验验证,首先你需要一个建立一个两轮差速模型,详情见我上一次的机器人差速模型博客:https://blog.csdn.net/qq_40464599/article/details/107176589; ...
  • 基于视觉的自动导引车两轮差速转向LQR控制器的研究与设计
  • 本文从分析两轮差速驱动机器人运动规律出发,依据刚体运动学等理论基础,逐步从底层逻辑分析、构建两轮差速驱动机器人的运动模型,最后,从实际应用角度对比分析了不同构型差速驱动机器人的优缺点及适用范围。...
  • 两轮差速模型的运动学和航迹推演

    千次阅读 2018-10-24 21:28:08
    学了一段时间,总结一下自己制作小车的两轮差速模型的运动学和航迹推演 推导下图: 参考:https://blog.csdn.net/heyijia0327/article/details/44983551
  • 摘要: 内容摘要:为了让电磁屏蔽效能自动测试装置能够在屏蔽室中按照已给定的路径运动,设计了一种开环控制的两轮差速驱动小车,对其运动学进行了分析,并采用双圆弧拟合曲线方法使小车实现按照给定曲线行走。...
  • 图 1 不同类型的两轮差速平台.圆形表示万向轮,矩形表示驱动轮。 如图 1所示,常见的差速底盘有以下4种类型,其中(a)(b)的底盘轮廓是圆形,而(c)(d)的底盘轮廓是矩形。 不同的构型在机器人运动稳定性、负载能力等...
  • 这段时间在实验室做一个两轮差速驱动的机器人,控制机器人运动的程序框架在此记录一下。 机器人的两个轮子分别由两个直流电机驱动,电机上带有编码器,可以测量轮子的转速和计算机器人的行程。机器人电机的控制由...
  • 两轮差速运动解算

    千次阅读 2020-07-27 10:16:30
    订阅cmd_val下的geometry_msgs::Twist消息 ,并且实际转化为左右的速度,以下是转换的源码。 geometry_msgs::Twist twist = twist_aux; double vel_x = twist_aux.linear.x; double vel_th = twist_aux.angular.z...
  • 关注同名微信公众号“混沌无形”,阅读更多有趣好文! ... 1.运动性能分析 ...SSMR的四个轮子大小相同,...在转弯过程中,SSMR是靠滑动实现的,这会对轮轴产生扭矩,而两轮差速驱动机器人和car-like robot却不会产生这.
  • 图 1 两轮差速模型.机器人的外轮廓可视为圆形,直径为dwb,ICR表示瞬时旋转中心,蓝色圆弧表示机器人运动路径,点L和R分别为左右轮与地面的接触点。 分析可知,机器人左右驱动轮的线速度方向与x轴相同,且线速度...
  • 两轮差速AGV的控制理论

    千次阅读 2020-09-12 09:37:44
    核心理论:角速度与线速度控制。 角速度 W = V/R; 线速度 V= W*R; AGV运行时轮子转速即为线速度,当左右轮子出现速度差值时产生自身旋转角速度。...导航控制方法:当AGV直线运行时由传感器得到偏离中线偏差换算成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 736
精华内容 294
关键字:

两轮差速