ros履带车原地旋转的角速度如何计算?

在做ros navigation的时候,需要将来自/cmd_vel的z轴转速转化为两轮线速度vL和vR。差速履带车,后驱。

void cmdCallback(const geometry_msgs::Twist::ConstPtr &msg) {
    ...
    vL = msg->linear.x - msg->angular.z *(wheel_dist_ / 2);
    vR = msg->linear.x + msg->angular.z *(wheel_dist_ / 2);
    ...
}

void publishOdom() {
  ...
  double dth = (dr - dl) / wheel_dist_;  
  th += dth; // robot' angular displacement
  ...
直线行驶情况下x轴位移符合期望,但在原地旋转时输出th值远大于期望值。
履带车是否存在严重的打滑问题?一般是多大比率?是否原地旋转时的算法错误?
我想要达到的结果