三轮、四轮舵轮Webots仿真开源链接:https://github.com/zxytql/Webots_Steering_Wheel
图1展示了一种简单的三轮舵轮底盘结构图,图2展示了三轮舵轮底盘的全局坐标系、机器人坐标系和轮系坐标系。
图1. 3WIS robot model
图2. Kinematics model of 3WIS robot
为了简化运动学模型,我们假设机器人的三个轮子均与地面有良好接触,且每个轮子上的负载相同。vi 表示第 i 个驱动轮的合速度,vc 表示机器人中心的速度,ω×r 表示机器人自转时对轮系产生的速度,以上均为矢量,满足平行四边形法则,故:
vi=vxi2+vyi2
结合图2,机器人坐标系中,针对轮A进行分析,存在如下速度关系:
v1x=v1cosδ1=vcx
v1y=v1sinδ1=vcy+ω×L
其中,L 指的 是机器人中心到每个轮系的距离,他们是相同的。rx 和 ry 分别指机器人中心 O 与轮系中心在 x 轴和 y 轴上的距离。
同样地,针对轮B、轮C进行分析,可以得到:
v2x=v2cosδ2=vcx−ω×ry
v2y=v2sinδ2=vcy+ω×rx
v3x=v3cosδ3=vcx+ω×ry
v3y=v3sinδ3=vcy−ω×rx
机器人在全局坐标系下的状态可以表示为 [X˙W,Y˙W,θW˙] ,与机器人在机器人坐标系的状态 [vx,vy,ω]T 之间的关系可以表示为:
X˙WY˙Wθ˙=Rvxvyω
式中, R 是将机器人坐标速度映射到全局坐标速度的旋转矩阵:
R=cosθsinθ0−sinθcosθ0001
结合式子(2)~(7),三轮舵轮机器人的运动学方程可以用下式表示:
Avxvyω=Bv1v2v3
因此,机器人坐标系中的速度与轮系坐标系中的速度之间的关系可定义为:
vxvyω=A−1Bv1v2v3
其中,A=1010100101010L−ry−rxryrx,B=cδ1sδ1000000cδ2sδ2000000cδ3sδ3, rx=2L, ry=23L
c(⋅) 和 s(⋅) 分别指三角函数 cos(⋅) 和 sin(⋅)。三轮舵轮机器人的正向运动学方程展开如下:
vxvyω=31cδ1sδ1S1cδ2sδ2S2cδ3sδ3S3v1v2v3
其中,
S1S2S3=Lsinδ1−Lsinδ2+3πLcosδ3+6π
在机器人学中,Jacobian 矩阵通常用于描述机器人末端执行器的位姿与机器人关节变量之间的关系。对于三轮舵轮机器人来说,机器人的姿态可视为末端执行器,轮系的速度可视为关节变量。因此,A−1B 为机器人运动学的 Jacobian 矩阵。
⎩⎨⎧vx=31∑i=13vicosδivy=31∑i=13visinδiω=31∑i=13Sivi
机器人中心与每个轮子之间的距离为 L,机器人中心与瞬时旋转中心(ICR) 之间的距离为 R。公式 (13) 说明了机器人的运动学约束,因此无需根据 ICR 的位置切换算法。机器人可以围绕任意位置移动和旋转。通过在每个控制周期内控制每个轮系的航向角和线速度,可以实现机器人的全向运动。
综上,三轮舵轮机器人在全局坐标系中的正向运动学公式为:
X˙WY˙Wθ˙=31c(δ1+θ)s(δ1+θ)S1c(δ2+θ)s(δ2+θ)S2c(δ3+θ)s(δ3+θ)S3v1v2v3
图3展示了四轮舵轮底盘的全局坐标系、机器人坐标系和轮系坐标系。
图3. Kinematics model of 4WIS robot
与三轮舵轮运动学推导类似地,针对轮A、B、C、D进行分析,可以得到:
v1x=v1cosδ1=vcx−ω×ry
v1y=v1sinδ1=vcy+ω×rx
v2x=v2cosδ2=vcx−ω×ry
v2y=v2sinδ2=vcy−ω×rx
v3x=v3cosδ3=vcx+ω×ry
v3y=v3sinδ3=vcy−ω×rx
v4x=v4cosδ4=vcx+ω×ry
v4y=v4sinδ4=vcy+ω×rx
结合式子(15)~(22),四轮舵轮机器人的运动学方程可以用下式表示:
Avxvyω=Bv1v2v3v4
因此,机器人坐标系中的速度与轮系坐标系中的速度之间的关系可定义为:
vxvyω=A−1Bv1v2v3v4
其中,A=1010101001010101−ryrx−ry−rxry−rxryrx,B=cδ1sδ100000000cδ2sδ200000000cδ3sδ300000000cδ4sδ4
c(⋅) 和 s(⋅) 分别指三角函数 cos(⋅) 和 sin(⋅)。四轮舵轮机器人的正向运动学方程展开如下:
vxvyω=41cδ1sδ1M1cδ2sδ2M2cδ3sδ3M3cδ4sδ4M4v1v2v3v4
其中,