Home Ā» Wheeled Robot: Exploring the Kinematics

Wheeled Robot: Exploring the Kinematics

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 r, and the distance between the wheels is d.

We want to express the motion of the robot with respect to a fixed frame of reference where the coordinates are x and y.

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 x_r axis is always aligned to the longitudinal axis of the robot. This frame has coordinates x_r and y_r.

The angle between x_r and x is called \psi.

Our robot has two wheels of radius r, and the distance between the wheels is d.

We want to express the motion of the robot with respect to a fixed frame of reference where the coordinates are x and y.

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 x_r axis is always aligned to the longitudinal axis of the robot. This frame has coordinates x_r and y_r.

The angle between x_r and x is called psi.

Differential Equations of Motion

Assuming a kinematic model where the two wheels can only move along x_r when they are spinning (i.e. they don’t slip) and calling \omega_1 and \omega_2 the angular speed and u_1 and u_2 the linear speed of respectively wheel 1 and wheel 2, we have:

  • u_1 = \omega_1 r
  • u_2 = \omega_2 r

Let u and v be the linear speed of the centre of mass of the robot along x_r and y_r, then:

  • u = \omega_1 \frac{r}{2} + \omega_2 \frac{r}{2}
  • v = 0

And finally the differential equation of motion, where the state variables are [x, y, \psi]:

\dot x = u ~ \cos{\psi}
\dot y = u ~ \textrm{sin}(\psi)
\dot{\psi} = \omega_2 \frac{r}{d} - \omega_1 \frac{r}{d}

As this is a kinematic model we can assume that each wheel’s speed controllers are ideal and our system’s input commands are \omega_1 and \omega_2. 

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:

Xcos Model of the two-wheeled robot.


Wheeled Robot Simulation

To test the model I provided \omega_1 and \omega_2 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:

Simulation result for the two-wheeled robot.

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:

  • Controlling speed and yaw using PIDs
  • Trajectory following
  • Advanced control techniques like MPC

Feel free to engage with any questions or share your insights below.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top
Menu