ez-toc
Wheeled robots are widely used both in industrial and domestic applications:
- Manufacturing floors
- Warehouses
- Autonomous hoovers
- Lawn mowers
- And more
Their ability to navigate autonomously in dynamic environments is what makes them so interesting and versatile.
Among the various designs, two-wheeled robots stand out as fundamental due to their simple construction and the interesting control challenges they present. This post explores the kinematics of a two-wheeled robot, showing the fundamental principles of its movement and defining a model that can be used for control.
Two-Wheeled Robot Kinematic Model
Let’s assume that our robot has two wheels of radius
, and the distance between the wheels is
.
We want to express the motion of the robot with respect to a fixed frame of reference where the coordinates are
and
.
We also need a frame of reference attached to the robot, with the origin located in the centre of mass of the robot and where the
axis is always aligned to the longitudinal axis of the robot. This frame has coordinates
and
.
The angle between
and
is called
.

Differential Equations of Motion
Assuming a kinematic model where the two wheels can only move along
when they are spinning (i.e. they don’t slip) and calling
and
the angular speed and
and
the linear speed of respectively wheel 1 and wheel 2, we have:
Let
and
be the linear speed of the centre of mass of the robot along
and
, then:
And finally the differential equation of motion, where the state variables are
:
![]()
![]()
![]()
As this is a kinematic model we can assume that each wheel’s speed controllers are ideal and our system’s input commands are
and
.
Xcos Model
Using Xcos, a graphical editor for dynamic models simulation, I simulated the robot’s movement to validate the kinematic equations and have an idea of the response.
Here’s a snapshot of the Xcos model:

Wheeled Robot Simulation
To test the model I provided
and
in open loop as follows:
- Accelerate both wheels to 3 rad/s in the first 20 seconds
- Accelerate wheel 2 to 3.5 rad/s from second 20 to 30, whilst keeping wheel 1 constant, to start turning left
- From second 60 to 70 accelerate wheel 1 to 3.5 rad/s to go straight
- From second 90 to 120 decelerate wheel 2 to 3 rad/s, to start turning right
Let’s see the result:

You can find the Xcos model and Scilab code used to generate the simulation and the plot on my GitHub here:
Wheeled-robot-model: Kinematic model of a two-wheeled robot
Conclusion
This wheeled robot example is particularly interesting and I plan to use it in the future for various things:
Feel free to engage with any questions or share your insights below.



