I want to find the instantaneous center of rotation of a differential drive robot.
Assuming I know that the robot will travel with a particular linear and angular velocity $(v,w)$ I can use the equations (given at A Path Following a Circular Arc To a Point at a Specified Range and Bearing) which come out to be:
$$x_c = x_0 - |\frac{v}{w}| \cdot sin(\theta_0)$$ $$y_c = y_0 - |\frac{v}{w}| \cdot cos(\theta_0) $$
I'm using the webots simulator and I dumped gps points for the robot moving in a circle (constant v,w (1,1)) and instead of a single $x_c$ and $y_c$ I get a center point for every point. If I plot it out in matlab it does not look nice:
The red points in the image are the perceived centers, they just seem to trace the curve itself.
Is there some detail I am missing? I'm really really confused as to what's happening.
I'm trying to figure out the center so I can check whether an obstacle is on this circle or not and whether collision will occur.