机器人底盘不同计机制的ROS速度解析

总述

本文章主要是记录底盘不同机制下的ROS速度解析,其中不同机制分别包括:差分驱动(differential-drive),阿卡曼轮驱动(arkmann drive),三轮驱动(Tricycle),舵轮驱动(Synchronous drive),奥姆轮驱动(omni drive),麦克纳姆轮(Mecanum wheel)

ROS 速度解析

在ros体系下, 速度一般有geometry_msgs/Twist 来表示,一般对于底盘的移动地盘来说,只会有 x y 以及 垂直于地面Z方向上的旋转w,三个数值来定义

底盘构造分类

移动机器人的底盘结构设计有很多种,其中每一种还有一些细分。这里只介绍比较粗的大类,其中主要有 差分驱动(differential-drive),阿卡曼轮驱动(arkmann drive),三轮驱动(Tricycle),舵轮驱动(Synchronous drive),奥姆轮驱动(omni drive)。
每一个对于给定ros速度信息时的速度解析,会根据其自身的构造与运动特点而发生变化,下面就会针对每一个构造,给出具体的速度解析公式,以方便之后有需要时参考。其中有一些共同的基础理论,及 底盘的旋转中心ICC到每个轮子计算出的方向 应该是垂直的,而对应轮子的速度为 到轮子的距离r 乘以 角速度 w。 v=r *w. 或者说 r = v / w. 通用的步骤为 第一步找到旋转中心ICC, ICC一般在垂直于前进方向和无法摆动的轮子(差分轮,阿卡曼的后轮等). 第二步 连接ICC的各个轮子并使轮子垂直于连线,此时各个轮子的角度就找到了,而速度为 v =
r * w

差分驱动

差分驱动是最常见的一种驱动方式,相对来说也是最简单的一种,其中差速还可以分为两轮差速,多轮两侧差速,多轮履带差速等等,其外形虽有差别,但核心基本类似。主要是通过控制底盘两侧的速度(大小与方向),使得底盘可以达到设定速度与朝向。 差分解析的文章很多,这里就不再赘述,分享一下别人的文章内容即可。例如这里的差分驱动简介简介2 以及ROS速度解析。 其主要需要知道一些必要的物理参数,例如机器人的宽度等。
这里主要想说一下,差速轮的可能出现的问题。 第一个,DC电机控制轮子时,由于电机性能的微小差异,在给定相同速度下,轮子出现快慢不一的情况,可能需要一个比例参数,来调和两边的电机速度。第二,由于差分很大程度上依赖地面摩擦,而在打滑的情况下,很容易出现给定速度与实际速度出现差异,对行走效果产生影响,甚至会出现一定程度上的侧移。

阿卡曼驱动

来自百度百科,阿克曼转向机构(Ackermann steering)是为了解决汽车在转向时,由于左、右转向轮的转向半径不同所造成的左、右转向轮转角不同的问题。根据阿克曼转向几何设计转向机构,在车辆沿着弯道转弯时,利用四连杆的相等曲柄,可以使内侧轮的转向角比外侧轮大大约2~4度,使四个轮子路径的圆心大致上交会于后轴的延长线上瞬时转向中心,从而让车辆可以顺畅的转弯。
Alt
旋转的中心轴一般是垂直于控制后的各个轮子,由于后轮不进行角度控制,所以旋转的中心轴就会落到后轮的延长线上,而前轮的两个轮到旋转轴的角度就有了相应的变化。
ICC 到车体中轴的距离R为: R = v h e a d i n g / w R = v_{heading}/ w R=vheading/w. 就像之前所说, 轮子的角度 应该与ICC到轮子的连线垂直而速度为这条直线的长度 ( ( R − d / 2 ) 2 + l 2 ) \sqrt((R-d/2)^2+l^2) ( (Rd/2)2+l2) 以及 ( ( R + d / 2 ) 2 + l 2 ) \sqrt((R+d/2)^2+l^2) ( (R+d/2)2+l2) 乘以角速度 w。

v 0 = ( ( R + d / 2 ) 2 + l 2 ) ∗ w v_0 =\sqrt((R+d/2)^2+l^2)*w v0=( (R+d/2)2+l2)w
v 1 = ( ( R − d / 2 ) 2 + l 2 ) ∗ w v_1 =\sqrt((R-d/2)^2+l^2)*w v1=( (Rd/2)2+l2)w
t a n ( θ 0 ) = l / ( R + d / 2 ) tan(\theta_0) = l/(R+ d/2) tan(θ0)=l/(R+d/2)
t a n ( θ 1 ) = l / ( R − d / 2 ) tan(\theta_1) = l/(R - d/2) tan(θ1)=l/(Rd/2)

三轮驱动

三轮驱动,主要由一个可以控制方向的前轮,与两个控制速度的后轮组成。如图所示:Alt
在这里插入图片描述
正如图所说,ICC的位置一定在垂直于后轮的水平线上。
三轮的优缺点:
优点:结构简单,成本低,无需考虑电机配合
缺点:灵活性较差,有一定的转弯半径,路径灵活性收到了限制。

舵轮

舵轮也是一种常用的结构,四个轮子中每个轮子都有两个电机驱动,一个负责速度,一个负责方向。与之前不同的是,不但会有heading的速度,还有侧移的速度 vx,vy。而对于舵轮来说,其参数有线速度,角速度,角度值 ( v , ω , α ) (v,\omega,\alpha) (v,ω,α). 所以需要先把两个速度合成一个速度(数值,方向)。 之后同样要先把ICC的位置计算出来,然后连接各个轮子找出垂线,算角度,长度,最后计算每个舵轮的速度。理论大致和之前相同。
其中两轮舵轮,可以参考这个博客在这里插入图片描述
入博客里作者所描述的,先求出旋转半径 R = v / ω R = v/\omega R=v/ω. 这里的v就是由$ v x , v y v_x,v_y vx,vy 两个速度合成出来的,这个ICC的位置就有了。需要求的就是 R 1 , R 2 R_1,R_2 R1,R2和两个轮子的角度。具体的公式博客里有给出,不会的可以去看一下。
这是双轮舵轮的解析,优点是可以实现zero radius turn, 灵活也精度高。缺点在于相比较于四轮舵轮可能会出现一边悬空而影响行走的状况,对地面有一定的要求。
四轮舵轮其实和两轮的计算来说,差别不太大,只不过要从计算两个轮子的参数,变成了四个而已。计算方法也是之前说了无数遍的,计算ICC,然后垂线找角度,算距离,算速度。 四轮舵机的难点在于在找到角度之后,四个轮子的配合上面,如何让四个轮子在运动过程中配合流畅,没有过大、不合理的来回偏转摆动,需要考虑到各个角度的象限以及电机工作方式。这个需要工程师自己去推到一下逻辑以及可能出现的状况。 关于正运动学的推算或里程计的推算,有简单的拟合各个电机速度的。具体的可能需要工程师自己去测试,找到最精准的方法。

奥姆轮 (全向轮)与麦轮(麦克纳姆轮)

奥姆轮与麦克纳姆轮也很中重要的两种轮子,他们也是能完成实时全向移动的一种轮子构型, 网上已经有一些很好的文章来解析这两种轮子,具体的可以看这里. 文章还是讲的比较详细的,其中也包含的动力学的相关速度解析。这里就不赘述了。

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值