两轮差速机器人坐标系及运动轨迹描述

关注同名微信公众号“混沌无形”,阅读更多有趣好文!

原文链接https://mp.weixin.qq.com/s/Mj5iLR_4TKeJiaOVqJf6Vg包含原文PDF百度云下载链接

1 机器人坐标系及运动方向.红色箭头指向机器人正前方,原点为圆心,蓝色带箭头虚线表示运动轨迹及方向

 

在进行运动学建模之前,需要先约定机器人的坐标系以及速度方向等基本信息,默认约定如图 1所示,将机器人视为刚体,在速度空间o-vw中各象限描述了其运动轨迹及方向。

建立机器人中心坐标系:以机器人的中心(几何中心或自旋中心[两驱动轮连线的中点])为原点,机器人前向运动方向为x轴正方向(红色箭头),与之垂直向左为y轴正方向(绿色箭头),z轴垂直于纸面向外,满足右手定则。

差速移动机器人受到非全向约束[1],因此描述几何中心的速度信息为[vc w]T,线速度vc方向与x轴方向同向的时候为正,反之为负;机器人逆时针旋转的时候,角速度w为正,反之为负。从图 1可以看出,机器人按照不同的速度运动,其运动轨迹(蓝色虚线箭头)也是有差异的,且对应的转向半径也是有正负的(详见全文)。

由于网页排版效果一般,所以笔者按照期刊论文版式为小伙伴们整理了原文PDF,方便收藏和回味。

原文链接https://mp.weixin.qq.com/s/Mj5iLR_4TKeJiaOVqJf6Vg包含原文PDF百度云下载链接
CSDN下载链接:https://download.csdn.net/download/qq_19598969/15690269

如果喜欢的话,可以关注同名微信公众号“混沌无形”,阅读更多有趣好文!

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
两轮差速机器⼈运动学模型 两轮差速底盘 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 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的好。
对于两轮差速机器人的PID轨迹追踪,可以分为以下几个步骤: 1. 确定目标轨迹:使用MATLAB画出目标轨迹的图形,并将其转化为机器人可行驶的路径。 2. 建立运动模型:根据机器人运动学和动力学模型,建立机器人运动模型。 3. 设计PID控制器:根据机器人运动模型,设计合适的PID控制器,使机器人能够追踪目标轨迹。 4. 实现控制器:将PID控制器实现在MATLAB中,控制机器人进行轨迹追踪。 下面是一个简单的实现步骤: 1. 建立机器人运动模型 假设机器人运动学模型如下: $$ \left[\begin{array}{c}\dot{x}\\\dot{y}\\\dot{\theta}\end{array}\right]=\left[\begin{array}{ccc}cos\theta & 0 \\sin\theta & 0\\0 & 1\end{array}\right]\left[\begin{array}{c}v\\\omega\end{array}\right] $$ 其中,$v$为机器人线速度,$\omega$为机器人角速度,$x,y,\theta$分别表示机器人的位置和朝向。 2. 设计PID控制器 PID控制器可以分为位置控制器和角度控制器两部分,分别控制机器人的位置和朝向。 位置控制器: $$ v=k_{p1}(x_d-x)+k_{i1}\int{(x_d-x)dt}+k_{d1}\frac{d(x_d-x)}{dt} $$ 其中,$x_d$为目标位置,$x$为当前位置,$k_{p1},k_{i1},k_{d1}$为位置控制器的比例、积分、微分系数。 角度控制器: $$ \omega=k_{p2}(\theta_d-\theta)+k_{i2}\int{(\theta_d-\theta)dt}+k_{d2}\frac{d(\theta_d-\theta)}{dt} $$ 其中,$\theta_d$为目标朝向,$\theta$为当前朝向,$k_{p2},k_{i2},k_{d2}$为角度控制器的比例、积分、微分系数。 3. 实现PID控制器 将位置和角度控制器实现在MATLAB中,对机器人进行控制,运行机器人轨迹追踪程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

混沌无形

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值