差速驱动机器人轮间距校准

混沌无形

混沌系统是世界本质,无形之中存在规律。机器人智能化发展从线性过渡到混沌,本号将分享机器人全栈技术(感知、规划、控制;软件、机械、硬件等)。

43篇原创内容

公众号

[文末提供原文PDF免费下载(期刊论文版式)]

摘要:参数校准是机器人运动控制的基础,本文顺着从校准原理到具体实现方法的思路,详细阐述一般差速驱动机器人轮间距校准步骤。

01

图片

写在前面

图片

在《常见移动机器人轮直径校准》一文中明确回答了“为什么要校准?”这一问题,也详细阐述了校准的基本原理和方法(本文不再赘述,感兴趣读者可回看)。

本文是移动机器人参数校准系列文章的第二篇——差速驱动机器人的轮间距校准。

02

图片

轮间距校准分析

图片

在《常见移动机器人运动学模型》一文中总结了目前常见的移动机器人运动学模型,除了前文《常见移动机器人轮直径校准》提到的轮直径校准之外,差速驱动机器人还需要校准轮间距,这里以图 2.1中的两轮差速驱动机器人的运动学模型为例(完整的运动学模型分析见《两轮差速驱动机器人运动模型及应用分析》):

图片

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

这里需要注意的是,轮间距是指图 2.1中的两轮差速驱动机器人的左右两驱动轮与地面接触点之间的距离,与被动轮无关。

从图 2.1及运动学方程(1)可知,轮间距_dwb_是该模型的关键参数之一,是连接机器人中心速度与左右驱动轮速度转化的桥梁。

如果轮间距参数测量不准确,在使用运动学方程做速度转换计算时,将会引起较大误差,且运动越远,误差会累计放大,所以轮间距这个参数是非常有必要校准的!

03

图片

轮间距校准方法

图片

在进行轮间距校准之前,是需要(估计)测量一个粗糙的初始值的,可以使用游标卡尺/卷尺等工具直接测量两驱动轮中点的距离,以作为校准测量的初值,后续只需要在这个初值上加减就可以了。

图片

图 3.1 三类差速驱动机器人. (a)两轮差速驱动机器人,(b)四轮驱动机器人,(c)履带式机器人

不同构型的移动机器人的具体测量方法是有所区别的,如图 3.1所示,本文主要分析两轮差速驱动机器人、四轮四驱(4WD)机器人及履带式机器人,暂不讨论car-like robot。根据具体的运动模式,本文将分为以下两类进行讨论。

3.1

两轮差速驱动机器人

如图 3.2所示,两轮差速驱动机器人是采用自旋(旋转)的方式来校准轮间距,如:控制机器人自旋一整周(图 3.2(b)),该圆周的直径就是轮间距,则可以通过测量驱动轮运动的距离(周长),计算出轮间距。(这里采用自旋的方式,是为了减少机器人运动路程,降低实验测试占地面积需求。)

因此,要校准轮间距,就需要先校准轮直径,否则上述提到的使用驱动轮运动的距离来作为周长的数据就是不准确的,具体可以通过下面公式来分析。

图片

图 3.2 两轮差速驱动机器人自旋. (a)两轮差速驱动机器人简图,(b)两轮差速驱动机器人自旋.灰色矩形表示左右驱动轮,橘黄色中心点位圆心,也是轴间距中心.

如图 3.2所示,假设机器人以角速度_w_逆时针自旋,左(右)轮运动的路径长度_l_可表示为

式中,_θ_表示轮轴转过的角度,_d_表示驱动轮直径,_n_表示驱动转动的圈数。

结合实际,公式(2)可变化为

式中,dwb’表示轴间距测量值,dwb*表示轴间距真实值。

公式(3)中,轴间距测量值计算对应的弧长不一定等于驱动轮运动的路径长度,因此需要在测量值的基础上进行调节,以缩小与真实值间的偏差。

为实现校准的目的,从实际操作角度来看,这里需要对轮轴转过的角度_θ_做一个特殊处理,一般设定_θ_等于2π的整数倍,即控制两轮差速驱动机器人自旋整圈数,通过接下来的公式分析。

根据公式(3)可知,假设机器人自旋_M_圈,则驱动轮需要转动的圈数可表示为

化简为

实际上,我们是很难控制驱动轮转动_n_圈的,所以需要参考《常见移动机器人轮直径校准》中使用编码器计数的方式来辅助控制,假设驱动轮转动一整圈,编码器tick计数为_g_,则根据公式(4),得到编码器总tick计数G为

所以,仅需要控制机器人自旋运动,同时高频采集编码器计数,如果计算值达到_G_,则立即控制机器人停止。

按照上述步骤执行,肯定会出现一个现象:由于公式(4)中的_dwb_’是测量值(不精确),编码器目标值G是根据测量值_dwb_’计算出来的,而机器人实际上是基于真实值_dwb_*在运动,所以当按照编码器目标值_G_停止时,机器人位姿也肯定不会与初始位姿保持完全一致(如图 3.3所示),所以需要基于轴间距初始测量值进行微调节:

如图 3.3(a),假如机器人实际运动停止位姿超前,说明机器人“走多了”,原因是公式(5)中计算的编码器目标值_G_偏大,所以轴间距初始测量值_dwb_’ 较真实值_dwb_*偏小,应该调大。

反之,如图 3.3(b),假如机器人实际运动停止位姿滞后,说明机器人“走少了”,应该基于轴间距初始测量值_dwb_’调小。

图片

图 3.3 机器人停止位姿.(a)停止位姿超过初始位姿,(b)停止位姿未达到初始位姿.

这里回答之前埋下的伏笔:为什么需要先校准轮直径?

从公式(5)可以看出,我们计算编码器目标值_G_时,默认了驱动轮直径_d_是精准的,所以在没有校准轮直径前去校准轴间距,结果是不准确的。

3.2

滑动转向机器人

履带式机器人和四轮驱动移动机器人(SSMR)也是差速转向的范畴,更准确的说,是通过差速方式实现滑动转向的,这类机器人运动规律及运动模型分析可阅读之前的文章《四轮驱动(SSMR)移动机器人运动模型及应用分析》和《履带式机器人运动模型及应用分析》。

图片

图 3.4 四轮驱动移动机器人(SSMR)简化模型.

本文以四轮驱动移动机器人为例阐述其轮间距测量方法,而履带式机器人的“轮间距”测量思路与之一致,只需要将履带等效为“驱动轮”并进行“轮直径校准”即可。

在文章《四轮驱动(SSMR)移动机器人运动模型及应用分析》的实验章节已经有阐述这类滑动转向机器人的“轮间距”校准方法了,这里再详细介绍校准方法,并与上述两轮差速驱动机器人轮间距校准方法进行比对。

这里先下一个结论:采用滑动转向的机器人进行轮间距校准非常困难,校准精度不高,且意义并不是很大。

在《四轮驱动(SSMR)移动机器人运动模型及应用分析》中有阐述:

滑动转向比差速转向多了横向摩擦力,也就是差速转向是纯滚动摩擦,而滑动转向是滚动摩擦和滑动摩擦的叠加,而滑动摩擦对机器人运动的影响很难量化估计,因此为了简化四轮驱动移动机器人运动学模型的表达,才将其简化为两轮差速模型,见图 3.4。

简化为等效两轮差速模型之后,进行了运动学分析,得到运动学方程如下

其中,

式中,对应图 3.4中:_dLR_表示虚拟轮间距,_dwb_表示实际的左右侧轮间距,_γ_为无量纲参数。可见公式(6)和公式(1)如出一辙,但在校准方面又差别很大。

从公式(6-7)可以看出,最重要的参数,就是虚拟轮间距_dLR_,而_dwb_和_γ_都是次要的。但在《四轮驱动(SSMR)移动机器人运动模型及应用分析》中阐述:虚拟轮间距(或无量纲参数_γ_)是随着机器人的总负载、轮胎与地面的相对摩擦系数、转弯半径及质心位置等参数的变化而发生变化的,并不像两轮差速机器人轮间距是一个定值,所以常用的方法就是做实验来得到不同转向半径下的虚拟轮间距。

这里补充一点:从四轮驱动机器人运动学模型(6)可以看出,需要对应的精准的虚拟轮间距,所以直接使用直尺(或卷尺)测量实际的左右侧轮间距_dwb_即可,不需要太精确。

这里假设机器人的总负载、轮胎与地面的相对摩擦系数及质心位置等参数不发生变化,仅有转弯半径发生变化,由于转弯半径不同,机器人转向运动过程中的滑动摩擦力是不同的。

这里笔者给出一种简单实用的测量参数_γ_的方法(方法来自《四轮驱动(SSMR)移动机器人运动模型及应用分析》):

①在机器人上安装陀螺仪,用于测量机器人转动过程的角速度_wc_。

②精确控制机器人的四个轮子安装设定速度转动,保证两左(右)侧轮的转速相同,并通过编码器反馈数据计算虚拟轮子的线速度,vl_和_vr

③利用公式(8)计算出此时的虚拟轮间距_dLR_,除以_dwb_得到_γ_。

式中,_rc_表示质心转弯半径(公式8的具体推导可参考《四轮驱动(SSMR)移动机器人运动模型及应用分析》)。

④绘制_γ_和[(vl+vr)/( vr- vl)](或_wc_)的数据图,并对数据曲线进行拟合,得到_γ_和[(vl+vr)/( vr- vl)](或_wc_)的关系表达式。

当机器人一旦转弯时,机载陀螺仪便可反馈实时机器人角速度,根据关系式得到对应的γ。当机器人通过陀螺仪采集完数据,且在实际应用时不允许使用陀螺仪,则在数据拟合阶段,对_γ_和[(vl+vr)/( vr- vl)]的进行拟合(也就是需要记录[vl vr]),理论依据可参考公式(8)。

如图 3.5所示,文献[1]中对履带式机器人常规运动时的轴间距进行了测量,其中ICR_l_/ICR_r_ map表示机器人运动过程中等效的左/右虚拟轮的位置,可以看出其两虚拟轮的位置是不固定的,在一个范围内,且左右不对称。若不要求高精度的运动模型,则可使用一个点来估计(代替)ICR_l_(或ICR_r_) map,以简化计算,否则,则需要使用一张表来记录机器人左右虚拟轮位置与转速之间的关系。

图片

图 3.5 履带式机器人ICR位置云图[1]

04

图片

校准实验

图片

这里校准实验以两轮差速驱动机器人为例,按照章节3.1所述,控制机器人自旋整周,并观察停止时位姿与初始状态位姿的重合度,如何评估重合度,可以利用一个小技巧:

利用地砖缝。如图 4.1所示,摆正机器人,让机器人的左右驱动轮均正好压在地砖缝上,接着再控制机器人自旋,当机器人停止后,观察机器人的左右驱动轮是否能够正好压在地砖缝上,若恰好压上,则说明校准成功,此时的轮间距数值非常接近真实值;若没有压上,则根据章节3.1中的阐述,对轮间距数值进行微调,直到能恰好压在地砖缝上。

图片

ROS官方提供的校准demo[2]还和章节3.1介绍的方法有小变化:demo中使用了里程计(原理和《常见移动机器人轮直径校准》提到的轮直径校准相似),机器人根据里程计来判断是否达到目标位置。

可以进一步简化理解为:机器人自己认为达到目标位姿时,就停下,而此时停下的位姿很可能并不是真实的目标位置,这就需要通过调节轮间距的数值,直到机器人能够准确达到目标位姿为止。

图片

图 4.1 轮间距校准实验

在校准实验前,还应调节好驱动轮PID速度控制器的参数,保证能够“瞬间”启动、停止,以确保运动精度。

图片

图 4.2 ROS节点网络

如图 4.2为轮间距校准实验对应的ROS网络节点图,其中calibrate_angular为校准节点,motor表示电机控制节点,odomsubpub为里程计发布节点。

其中,ROS校准demo还支持GUI调参,包括校准测试角度(test_angle)、运动速度(speed)、允许误差(tolerance)及里程计角度缩放校准因子(odom_angular_scale_correction)。

图片

图 4.3 校准参数调节

参数调节及测试结果如表 4 1所示,反复调节,逐步收敛到较为理想的准确值,驱动轮的轮间距最终校准直径为806cm。

表 4-1 轮间距校准参数调节过程

轮间距/m0.800.850.820.810.806
理论角度/360360360360360
实际角度/****350390368364360

与《常见移动机器人轮直径校准》中的校准过程及结果相比,可以看出角度的敏感性大于直线,因此轮间距误差引起的运动控制误差将大于轮直径误差引起的。

05

图片

结论及展望

图片

本文先阐述了轮间距校准的意义,并先后介绍了两轮差速驱动机器人与四轮驱动机器人、履带式机器人的校准原理、方法及其校准方法存在差异的原因,最后结合ROS 校准demo阐述实验实现方法。

若要使用ROS校准demo,则需要根据其要求,自行编写好其配套程序;若不采用ROS demo,则可以直接根据上述方法——驱动机器人自转整周,结合编码器数据,以计算出实际的轮直径,还有其他各种实操方法,读者可自行设计实验。

(文章仅笔者个人分析,有误请指正,谢谢!)

参考资料

[1] Ludwig R , Gerstmayr J . Automatic Parameter Identification for Mechatronic Systems[M]. Springer Vienna, 2013. [2]https://github.com/turtlebot/turtlebot_apps/tree/indigo/turtlebot_calibration

福利放送

笔者为小伙伴们整理了期刊论文版式原文PDF,方便收藏和回味

链接:https://pan.baidu.com/s/1lQqMKNppUKsisuJsdEt6oA

提取码:jmc2

若链接失效,可在后台回复本文标题或发送邮件:Zippen-Huang@outlook.com

延伸阅读

常见移动机器人轮直径校准

常见移动机器人运动学模型总结

麦克纳姆轮全向移动机器人运动模型及应用分析

麦克纳姆轮运动特性分析

全向轮运动特性分析

全向轮机器人运动模型及应用分析

Car-like Robot运动模型及应用分析

履带式机器人运动模型及应用分析

两轮差速驱动机器人运动模型及应用分析

可重构全向移动机器人

-----------------------------------------------------------------------------

相关声明

1.如果转载本文,文末务必注明:“转自微信公众号:混沌无形”

2.若有侵权,请联系作者

图片

全文完,感谢阅读!!如果觉得写的不错,那就点个赞或者“在看”吧。

混沌无形

混沌系统是世界本质,无形之中存在规律。机器人智能化发展从线性过渡到混沌,本号将分享机器人全栈技术(感知、规划、控制;软件、机械、硬件等)。

43篇原创内容

公众号

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

混沌无形

谢谢老板

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

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

打赏作者

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

抵扣说明:

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

余额充值