ROS里程计的学习(odometry) (三)

机器人差分运动模型如上图:

假设我们知道左右轮的速度,则线速度为V=(Vl+Vr)/2 角速度为W=(Vr-Vl)/l 圆弧运动半径为r=V/W

公式①:机器人前进速度等于两轮速度之和的平均值

公式②:因为在采样周期非常短的时间内,两条虚线近似可以看成直线,角速度可以表示为(右轮速度-左轮速度)/轴长

公式③:根据以上2个公式整理得到的。

从公式③可以看出当左轮速度等于右轮时,半径无穷大,即机器人为直线运动。

言归正传,Vr与Vl怎么得到呢?采样时间内测得的编码值除以轮子一圈的总脉冲数就是速度,即将轮子分成无数份。

轴长怎么得到呢?测两电机直接摆放的距离。

就可以进行任意控制两轮机器人行走啦,还能通过计算获得里程计的信息。

里程计的计算:

已知以上的公式可以得到角速度和线速度,那么我们知道 采样时间内转过的角度=角速度*时间

那么对每一次采样得到的角度进行积分,就是转过的角度

得到角度值以后,

position_x= position_x +S*cos(θ)

position_y= position_y +S*sin(θ)

经验分享 程序员 微信小程序 职场和发展