0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

轮式移动机器人里程计分析

3D视觉工坊 来源:混沌无形 2023-04-19 10:17 次阅读

摘要:本文主要分析轮式移动机器人的通用里程计模型,并以两轮差速驱动机器人的里程计计算为案例,给出简化后的两轮差速驱动机器人里程计模型。

01

引言

里程计是机器人导航系统中非常重要的一环,那么何为里程计?

里程计,可简单理解为记录机器人在一段时间内的运动状态,是基于时间戳的数据帧,该数据帧包含机器人位置、姿态及运动速度、角速度,具体结构对应下图 1.1。

961699bc-de57-11ed-bfe3-dac502259ad0.png

图 1.1 ROS里程计数据结构

里程计的英文单词是Odometry,在ROS小车坐标系树里面有一个里程计专用坐标系,叫做Odom。

但凡涉及到可移动的机器人的导航系统,大概率会涉及到里程计的计算,比如轮式移动机器人、无人机、无人艇,以及多足机器人等,而计算里程计的方案也有很多种,比如基于编码器合成里程计的方案、基于视觉的里程计方案(ORB SLAM)、基于激光雷达的里程计方案(Hector SLAM)、基于IMU的里程计方案,以及多传感器融合的方案。

本文主要以轮式移动机器人为载体介绍基于编码器合成里程计的方案,这是非常经典常用的里程计计算方法之一,在轮式移动机器人领域有着广泛的应用。

02

里程计模型分析

从图 1.1可以看出,里程计主要包含的信息有两部分:速度和位姿,因此接下来将从这两个方面展开介绍。

2.1 速度计算

2.1.1 轮速计算

轮式机器人的驱动轮是由伺服电机驱动的,而电机转轴后安装有编码器,通过编码器采集的数据可以计算出电机输出轴转过的角度。

962b52b2-de57-11ed-bfe3-dac502259ad0.jpg

(a)编码器结构

96357396-de57-11ed-bfe3-dac502259ad0.png

(b)编码器输出波形

图 2.1 光电编码器原理

编码器的种类很多,比如增量式光电编码器(图 2.1),红色的光源是固定不动的,当光栅(图中灰色带孔圆盘)转动的同时,其电路结构会输出A、B两相的方波,使用单片机GPIO的中断模式可采集到方波边沿,进而进行计数,当电机轴转动一圈,可获取总计数为N(可能是512、也可能是1024,这与编码器分辨率有关)。

假设编码器在t1时刻的计数是n1,经过△t时间后,在t2时刻的计数是n2,因此可知电机转轴在△t时间内转过的角度△φ,表示为

那么角速度便可表示为

轮直径是可以直接测量出来的,但需要校准(可参考《常见移动机器人轮直径校准》),则可计算出驱动轮转动的线速度v,可表示为

式中,dw为轮直径。

这样就可以将所有驱动轮的线速度计算出来,如果驱动轮与地面之间没有相对滑动(也就是打滑),那么该线速度也就是驱动轮在地面上的运动线速度。

2.1.2 Odom速度计算

Odom坐标系一般与建立机器人运动学模型时的坐标系相同,也就是机器人零半径转弯的旋转中心为坐标系原点,具体可参考《常见移动机器人运动学模型总结》。

需要注意的是,Odom是一个运动的坐标系,会随着机器人的运动而运动,但是Odom记录的是运动过程中的Odom坐标系状态参数(速度、位姿)是在初始位姿的Odom的坐标系中描述的,如下图所示:记录的是Odom(tk)在Odom(t0)坐标系下的位姿和速度。

963b42ee-de57-11ed-bfe3-dac502259ad0.png

图 2.2 差速驱动机器人运动及其轨迹

这里需要正运动学模型来计算Odom坐标系原点的运动速度,以两轮差速驱动机器人为例,可表示为

9646fa62-de57-11ed-bfe3-dac502259ad0.png

图 2.3 两轮差速模型.机器人的外轮廓可视为圆形,直径为dwb,ICR表示瞬时旋转中心,蓝色圆弧表示机器人运动路径,点L和R分别为左右轮与地面的接触点。

运动学模型写为

其中,vr和vl分别表示两驱动轮的线速度,是可以通过章节2.1.1中的方法计算出来的,因此几何中心的线速度vc和角速度w就可以通过公式(4)计算出来。公式(4)中的vc也就是Odom坐标系x轴的线速度vx,由于两轮差速驱动机器人的非完整性约束(具体分析可参考《两轮差速驱动机器人运动模型及应用分析》),线速度vy和vz均为0,而公式(4)中的角速度w是Odom坐标系z轴的角速度wz,其余角速度wx和wy均为0。

从公式(4)中可以看出,除了前面提到的轮直径需要校准之外,还需对轮间距dwb进行校准,由此实现

由此,图 1.1中的的Odom结构体中的Twist子结构体可写为

表 2‑1 两轮差速驱动机器人Twist信息

linear angular
x vc 0
y 0 0
z 0 w

以上是两轮差速驱动机器人的速度计算思路,而麦轮移动平台与之不同,属于全向移动机器人,是包含3个自由度,对应的运动学模型也是不一样的,写为

9655772c-de57-11ed-bfe3-dac502259ad0.png

图 2.4 麦轮平台运动分解示意图. 图中r表示中心点CENTER到麦轮与地面接触点之间的距离,rx和ry分别表示r在CENTER坐标系x轴和y轴上的投影距离(均为正值).

采用同样的思路,计算出四个驱动轮的线速度,结合公式(5)便可得到麦轮平台中心的速度信息。

由此,图 1.1中的的Odom结构体中的Twist子结构体可写为

表 2‑2 麦轮移动平台Twist信息

linear angular
x vcx 0
y vcy 0
z 0 wc

除了两轮差速驱动机器人和麦轮移动平台,均可以通过上述思路计算得到里程计中的Twist信息。

2.2 位姿计算

计算Odom的位姿是依赖于章节2.1.2中的速度信息的,我们知道速度对时间积分就是位移,角速度对时间积分就是转角。而里程计记录的是机器人在某一时间段内的运动轨迹,也就是位姿变换过程(如图 2.2所示),需要用递推方程表示,如果是两轮差速驱动机器人,写为:

式中,[x y θ]分别表示两轮差速驱动机器人在某时刻的位置和姿态角

965eafe0-de57-11ed-bfe3-dac502259ad0.png

图 2.5 两轮差速驱动机器人运动过程. 蓝色弧线表示运动轨迹

结合图 2.5来解释公式(6),从公式(6)可以看出是做了近似处理,包括:dt时间内假设机器人是以[vc w]的速度进行匀速运动,但实际速度肯定不是匀速运动的,这存在误差;另外,驱动轮可能存在微弱打滑的情况,也会引入误差;最后,两轮差速驱动机器人运动轨迹是圆弧曲线,速度方向是沿着圆弧切线方向的变化而变化的,但这里假设dt时间间隔很短,故“以直代曲”,认为机器人运动轨迹是直线段、速度方向也是不变的,在dt时间内保持着θ的方向,所以也会引入误差。

如果是麦轮移动平台,原理也是和两轮差速驱动机器人一致的,但又有些区别:麦轮平台多了一个自由度,但可以从速度分解(或运动合成)的角度分析

化简为

麦轮移动平台公式也包含了两轮差速驱动机器人的近似处理思想。

综合上述分析,可以计算得到t时刻下机器人的运动速度、位姿信息,合在一起也就是里程计信息了。

03

案例分析

从前面的分析可以看出,在计算速度、位姿时,经过多次运算,位姿计算精度有所降低,此外,计算速度和位姿时,都需要一个时间间隔dt,那么可以从这个dt入手,进一步化简,得到更简洁、优雅的公式。

这里以两轮差速机器人为例,计算化简里程计公式。

假设差速机器人在极短的dt时间内运动了一小节距离,故可视为在dt时间内机器人做匀速运动,如图 3.1所示,在极短时间内做匀速运动,可写为

9677c444-de57-11ed-bfe3-dac502259ad0.png

图 3.1 差速驱动机器人里程计示意图

如果机器人做匀速运动,且存在角速度,那么机器人中心的运动轨迹一定是一段标准的圆弧,其长度表示为△Sc,对应的圆心角为△θ,因此有下面的这个关系式

则,左轮和右轮的运动轨迹长度可写为

结合公式(8)和(9),有

为后续计算,这里需要对公式(6)做一个修正,细心的读者可能已经发现问题了,在公式(6)中,方向角使用的是θt,也就是速度vct的方向,这个方向和△dc的方向之间存在一个夹角,这个夹角的大小是△θ/2,使用△dc的方向比速度vct的方向更加准确,因此修正后的公式(6)为

可见,这里还存在一个系统误差,也就是圆弧长度△Sc和直线段长度△dc并不相等,要得到直线段长度△dc,还需要再做一个转换(三角变换,也可以使用余弦定理)

需要回顾的是,这里有个假设,dt时间间隔极短,意味着△θ非常小,所以公式(12)可写作

从公式(13)可以看出,兜兜转转,又回到了公式(8),这里就需要做一个权衡,如果dt时间间隔极短,那么可以取近似值,也就是认为△dc≈△Sc,以直代曲,如果dt时间间隔偏长,那么可以采用公式(12)计算,计算中包含正弦函数,但会降低计算效率、损失计算精度。

这里就采用“以直代曲”的方式来做进一步计算:

通过公式(9)计算△θ,得

将公式(10)和公式(15)带入公式(14),可知

因此,可状态转换方程可写作

从公式(17)可知,仅需要计算左右驱动轮在dt时间内运动过路程,便可得到dt时刻的位姿,回顾到本文的章节2.1.1的轮速计算,根据公式(1)可以计算驱动轮转过的角度,因此可以得到运动的路程

式中,nl1、nl2分辨表示左轮在时间dt前后采集的左轮编码器读数,nr1、nr2分辨表示右轮在时间dt前后采集的右轮编码器读数。

所以,将公式(17)和(18)相结合,仅需要定期采集编码器读数,即可更新里程计中的位姿信息,而速度信息也是可以根据公式(2)和(3),结合运动学模型计算出来。而在实际应用中,编码器采集频率和里程计更新频率保持一致(或整数倍),这样更利于计算,减少重复计算带来的精度损失和时间消耗。

从前面的公式可以看出,要得到更准确的里程计参数,需要对差速驱动机器人的轮直径和轮间距进行校准。

其他的机器人里程计模型也可以参考两轮差速驱动机器人案例,做进一步化简,减少重复计算。

04

结论及展望

本文主要从编码器原理介绍、轮速计算及位姿计算等方面分析了轮式移动机器人的通用里程计模型,并以两轮差速驱动机器人的里程计计算为案例,详细分析了两轮差速驱动机器人运动规律及其位姿变换的等效思想,最后给出了简化后的两轮差速驱动机器人里程计模型。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27033

    浏览量

    201399
  • 编码器
    +关注

    关注

    41

    文章

    3360

    浏览量

    131537
  • 导航系统
    +关注

    关注

    2

    文章

    231

    浏览量

    30254
收藏 人收藏

    评论

    相关推荐

    移动机器人常用传感器

    移动机器人常用传感器
    发表于 08-20 22:33

    资料:移动机器人能否自动充电?

    、餐饮服务行业已经应用到了机器人。不过目前,移动机器人都是使用高质量的机载可充电蓄电池组来给自身供电,但是一般只能维持几个小时,一旦电能耗尽,必须采用人工干预的方式来给机器人充电。如果采用人工充电,那么
    发表于 01-20 09:39

    Labview My RIO 移动机器人

    初次使用 NI MyRIO控制器开发四轮全向移动机器人,由四个全向轮和直流电机与增量式编码器和NI 9001控制器组成,安装了红外距离和光电传感器。驱动板由官方提供的H桥驱动板。NI 9001由
    发表于 08-21 12:20

    机器人、协作机器人移动机器人,你分的清楚吗

    我觉得现在是时候讨论一些更有趣的话题,今天的话题是介绍工业机器人、协作机器人移动机器人。我想每个人都知道机器人是什么。机器人是可怕的大型
    发表于 10-30 11:33

    基于LPC2119的自主式移动机器人设计方案

    了一种轮式移动机器人的设计方案。该机器人系统应用超声传感器、光敏传感器、碰撞传感器采集外部环境信息,采用PTR2000实现移动机器人与计算机通信,从而实现现场信息的反馈和计算机控制命令
    发表于 05-11 06:39

    有哪些厂家的轮式移动机器人可以实现力矩控制?

    小白,刚入行,想请教一下各位大佬,pioneer 3-AT可以使用力矩进行控制吗?如果不行的话,哪些厂家的轮式移动机器人是开放力矩控制的?
    发表于 09-22 11:00

    如何实现移动机器人的设计?

     移动机器人利用导航技术,获得机器人的目前所处的位置,结合传感器技术对周围外界环境(障碍物等)作实时探测,并根据环境提供的信息规划一条可行路径完成达到目标点的任务。移动机器人技术涉及到传感器技术
    发表于 11-23 15:08

    请问怎么设计一种室外移动机器人组合导航定位系统?

    怎么设计一种室外移动机器人组合导航定位系统?如何实现室外移动机器人组合导航定位系统的硬件设计?如何实现室外移动机器人组合导航定位系统的软件设计?
    发表于 04-19 10:50

    什么是移动机器人软硬件系统问题

    接触了移动机器人这么久,我觉得应该写点什么东西,分享一下最基础的自己关于移动机器人的理解,也作为笔记总结,留到以后查阅。目前我还是觉得自己刚入门,有时候总想的太多,不如实践来的更直接,下面总结之前
    发表于 08-06 06:13

    差速移动机器人轨迹跟踪控制方法

    步骤五、仿真实验比较1、基于PID的差分移动机器人轨迹跟踪仿真(1)不同参数下的仿真对比以确定最优参数(2)仿真分析
    发表于 09-01 08:41

    移动机器人的三种主要运动系统

    构建机器人 | 制作移动机器人 | 构建第一个机器人 | 机器人电子 | 机器人控制器 | 机器人
    发表于 09-01 08:12

    详解移动机器人软硬件系统问题

    什么是移动机器人软硬件系统问题?移动机器人软硬件系统有哪些问题呢?
    发表于 11-11 06:07

    基于模糊PID的轮式移动机器人轨迹控制

    本文针对实际的轮式自主移动机器人轨迹控制和定位问题提出了一种解决方法。利用模糊PID复合控制器实现移动机器人的轨迹控制,利用陀螺、磁罗盘、里程计进行多传感器融合定位
    发表于 07-17 10:14 24次下载

    轮式移动机器人WMR的运动分析

    研究了轮式 移动机器人 (WMR ) 的运动问题, 分析了一种理想滚动情况下航向角控制的差动运动模型. 通过算例证明该方法简单实用, 在轮式移动机器
    发表于 06-28 11:07 33次下载
    <b class='flag-5'>轮式</b><b class='flag-5'>移动机器人</b>WMR的运动<b class='flag-5'>分析</b>

    介绍一种基于编码器合成里程计的方案

    摘要:本文主要分析轮式移动机器人的通用里程计模型,并以两轮差速驱动机器人里程计计算为案例,给出
    的头像 发表于 04-19 10:16 1289次阅读