I'm working on a little project where I have to do some simulations on a small robot.

I my case I'm using a differential-drive robot as one of the wheels of a bigger robot platform (which has two differential-drive casters), and I really do not understand how to find its kinematics in order to describe it in a model for finding the speed V_tot of the platform.

enter image description here

This is my robot and I know the following parameters

  • d is the distance between a joint where my robot is costrained
  • blue point is the joint where the robot is linked to the robot platform
  • L is distance between the wheels
  • r the radius of the wheel
  • the robot can spin around the blue point and with and THETA angle

As I know all this dimensions, I would like to apply two velocities V_left and V_right in order to move the robot.

Let's assume that V_left = - V_right how do I find analitically the ICR (Istantaneous Center of Rotation) in this costrained robot?

I mean that I cannot understand how to introduce d in the formula.


3 Answers 3


Kinematics of mobile robots

enter image description here

For the figure on the left:

  1. I = Inertial frame;
  2. R = Robot frame;
  3. S = Steering frame;
  4. W = Wheel frame;
  5. $\beta$ = Steering angle;

For the figure on the right:

  1. L = Distance between the wheels;
  2. r = radious of the wheel;

Now we can derive some useful equations.

  1. Kinematics:

$\hspace{2.5em}$ $\vec{v}_{IW} = \vec{v}_{IR} + \vec{\omega}_{IR} \times \vec{r}_{RS}$

If we express the equation above in the wheel frame:

$\hspace{2.5em}$ $\begin{bmatrix} 0 \\ r\dot{\varphi} \\ 0 \end{bmatrix} = R(\alpha+\beta)R(\theta)\begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{\theta} \end{bmatrix} + \begin{bmatrix} 0 & -\dot{\theta} & 0 \\ \dot{\theta} & 0 & 0 & \\ 0 & 0 & 0 \end{bmatrix}\begin{bmatrix} lcos(\beta) \\ -lsin(\beta) \\ 0 \end{bmatrix}$

We obtain the rolling-constraint and the no-sliding constraint respectively:

$\hspace{2.5em}$ $[-sin(\alpha+\beta)\hspace{1.0em}cos(\alpha+beta)\hspace{1.0em}lcos(\beta)]\dot{\xi}_{R} = \dot{\varphi}r$

$\hspace{2.5em}$ $[cos(\alpha+\beta)\hspace{1.0em}sin(\alpha+beta)\hspace{1.0em}lsin(\beta)]\dot{\xi}_{R} = 0$

where $\dot{\xi}_{R} = [\dot{x_{R}}\hspace{1.0em}\dot{y_{R}}\hspace{1.0em}\dot{\theta}]^{T}$

Now we need to apply each of this constraints in the differential wheels

  • For the left wheel: $\alpha = -\frac{\pi}{2}$, $\beta = 0$, $l = -\frac{L}{2}$
  • For the right wheel: $\alpha = -\frac{\pi}{2}$, $\beta = 0$, $l = \frac{L}{2}$
  • Stacked equation of motion:

$\hspace{2.5em}$ $\begin{bmatrix} 1 & 0 & \frac{L}{2} \\ 1 & 0 & -\frac{L}{2} & \\ 0 & -1 & 0 \\ 0 & -1 & 0 \end{bmatrix}\dot{\xi}_{R} = \begin{bmatrix} r & 0\\ 0 & r \\ 0 & 0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} \dot{\varphi}_{r} \\ \dot{\varphi}_{l} \end{bmatrix} $

$\hspace{2.5em}$ $A\dot{\xi}_{R} = B\dot{\varphi} $

For the forward kinematic solution, just do:

$\hspace{2.5em}$ $\dot{\xi}_{R} = \big( A^{T}A \big)^{-1}A^{T}B\dot{\varphi} $

which yields:

$\hspace{2.5em}$ $\begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{\theta} \end{bmatrix} = \begin{bmatrix} \frac{r}{2} & -\frac{r}{2} \\ 0 & 0 \\ \frac{r}{L} & -\frac{r}{L} \end{bmatrix} \begin{bmatrix} \dot{\varphi}_{r} \\ \dot{\varphi}_{l} \end{bmatrix}$

An excellent chapter that I suggest here.

  • $\begingroup$ Great answer. Have you reproduced the many other differential drive kinematics questions? I'm not sure if that's a good or bad thing. $\endgroup$ Commented Jan 17, 2016 at 20:37
  • $\begingroup$ No, I didn't. This month I am learning some new stuff for a project. Which differential kinematics would you be interested? $\endgroup$ Commented Jan 17, 2016 at 20:46
  • $\begingroup$ I'm saying that information is already available on the site. $\endgroup$ Commented Jan 18, 2016 at 0:14
  • $\begingroup$ I just made a point with the central parts. That's why the book chapter is referenced, for you to dig a little more. $\endgroup$ Commented Jan 18, 2016 at 12:28

Well, if it is truly a caster wheel with two differential drives, then I'd just assume that the castor is not a constraint at all!

enter image description here

It's a freely rotating wheel that should just follow the direction of motion induced by rotating the differential wheels. In that case, you can use this answer.


If you assume pure kinematics (no slipping) your ICR must be where the two wheel axis cross, or for the degenerate case where they are colinear, then somewhere along the line.

If you use a dynamic approach, you'll need to estimate mass distribution and ground friction but you'll get a model that's easier to work with.

You'll get better answers if you draw the full diagram with both sub-units and the connecting link, if there is one.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.