In this robotics tutorial, we explain the kinematics, equations, and geometry of motion of a differential wheeled robot. The differential wheeled robot is also known as the differential drive robot. We will derive the equations describing the kinematics of the robot, and in the second part of this tutorial, we will explain how to simulate the motion of the differential wheeled robot in Python. The YouTube tutorial accompanying this post is given below.
Basic Description of the Differential Drive Robot and Motion Modes
The videos given below show a real-life differential wheeled robot and its motion.
The photograph of the differential drive robot is given below.
The robot consists of two wheels that are driven by two DC motors, and the caster wheel. The caster wheel is a passive wheel that provides support and two rotations. These two rotations enable the robot to move in any direction.
The figure given below shows a top view of the differential drive robot after a few geometrical simplifications that do not affect the modeling generality.
The robot consists of the robot base and two wheels. The points
Here, it is very important to emphasize the following:
- We can completely control the robot’s motion by controlling the right and left wheel angular velocities or the right and left wheel rotational angles. The velocities
and are linearly proportional to the angular velocities of the right and left wheels.
Let us illustrate this further with several control scenarios.
The figure below illustrates how we can achieve the straight motion of the robot.
In the scenario shown in the figure above, the robot is moving straight. This is because the intensities of the velocities
The figure below shows another important scenario.
Figure 4: Top view of the differential drive robot. In this scenario, the robot is moving right.
The robot is moving right. This is because the intensity of the velocity
The figure below shows the final scenario.
In the scenario shown in the figure above, the robot is rotating around the point
To conclude:
By changing the velocities of the centers of two wheels, or equivalently, by changing the angular velocities of the two wheels, we can control the robot’s motion.
Detailed Kinematic Analysis of Differential Drive Robot
Here, we provide a detailed kinematic analysis of the differential drive robot. We want to establish the equations that will relate the angular velocities of two wheels with the velocity of the center of the robot, and the angular velocity of robot rotation. In the next tutorial, we will solve the direct and inverse kinematic problem, that will establish a relationship between the position of the robot’s with the angles of rotation of two wheels.
The figure given below shows the kinematic diagram of the robot.
The coordinate system
The point
The angle
Under the assumption that the intensities of the velocities are not changing during a time interval, the points
The graph given below shows all the dimensions of the robot that are necessary for developing the kinematic equations.
Here, for clarity of this lecture, we will summarize once more all the involved quantities
and are the translation coordinates of the body frame attached to the point with respect to the inertial frame . is the angle of rotation of the robot which is at the same time the angle between the body frame and the inertial frame. and are the coordinates in the body frame and at the same time they denote the axes of the body frame. is the instantaneous center of rotation. is the instantaneous angular velocity of the robot body. is the center point of the left wheel. is the center point of the right wheel. is the middle point between the points and . is the velocity of the center of the left wheel. is the velocity of the center of the right wheel. is the velocity of the point . is the angular velocity of the left wheel. is the angular velocity of the right wheel. is the distance between the point and the point . is the radius of the wheels. is the distance between the points and . is the projection of the velocity on the axis. is the projection of the velocity on the axis.
In the sequel, we will derive the equations that will relate
That is, we start from the assumption that the following quantities and parameters are known
From Fig. 8, we have
(1)
The issue with these two equations is that both
(2)
By substituting this equation in the first equation of (1), we obtain
(3)
From the last equation, we obtain
(4)
By substituting the last equation in the first equation of (1), we obtain
(5)
From the last equation, we obtain
(6)
For clarity, we repeat the expressions for
(7)
From Fig. 8, we have
(8)
The last set of equations can be written compactly
(9)
On the other hand, we have that the intensity of the velocity
(10)
By substituting the expressions for
(11)
By combining this equation, with the equation for
(12)
The last two equations can be written compactly
(13)
By substituting the equation (13) into the equation (9), we obtain
(14)
The last system of equations can be expanded as follows
(15)
The system of equations (15) relates the controlled wheel velocities
(16)
The last two equations can be compactly written in the vector-matrix form
(17)
By substituting (17) in (14), we obtain
(18)
The last equation can be written in the expanded form
(19)
The equation (19) is the final equation derived in this tutorial. It relates the angular velocities of the wheels with the velocity projections of the center of the robot and the robot’s angular velocity. This equation enables us to predict the robot motion as we will explain in the next tutorial.