Fusion of Engineering, Control, Coding, Machine Learning, and Science

Clear and Detailed Explanation of Kinematics, Equations, and Geometry of Motion of Differential Wheeled Robot (Differential Drive Robot)


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.

Detailed and Correct Derivation of Kinematics Equations of Differential Drive Mobile Robot

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.

Figure 1: Real-life differential drive robot.

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.

Figure 2: Top view of the differential drive robot. In this scenario, the robot is turning left.

The robot consists of the robot base and two wheels. The points and are located at the corresponding centers of the two wheels. The point is the point in the middle of the line connecting the points and . The velocity is the velocity of the center point of the left wheel. Similarly, the velocity is the velocity of the center point of the right wheel. These velocities are a direct consequence of the fact that the wheels are spinning due to the torques exerted by the motors. In the figure shown above, the robot is turning left. This is because the intensity of the velocity is larger than the intensity of the velocity . In fact, as we will be shown later, in this configuration, all the 3 points , , and will describe concentric circles centered at the instantaneous center of rotation (this point is also known as the instant center of rotation or instantaneous velocity center).

Here, it is very important to emphasize the following:

Let us illustrate this further with several control scenarios.

The figure below illustrates how we can achieve the straight motion of the robot.

Figure 3: Top view of the differential drive robot. In this scenario, the robot is moving straight.

In the scenario shown in the figure above, the robot is moving straight. This is because the intensities of the velocities and are equal. Consequently, the instantaneous center of rotation is at infinity and all the points describe straight lines.

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 is larger than the intensity of the velocity of .

The figure below shows the final scenario.

Figure 5: Top view of the differential drive robot. In this scenario, the robot is rotating around the point .

In the scenario shown in the figure above, the robot is rotating around the point . This is the point at the middle of the line connecting the centers of left and right wheels. The rotation is due to the fact that the velocities have identical intensities and opposite directions.

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.

Figure 6: Kinetic (velocity) diagram of the differential drive robot.

The coordinate system is a fixed (inertial) coordinate system. The coordinate system with the center at the point is the coordinate system rigidly attached to the robot body. It translates and rotates together with the robot. The coordinate system is called the body coordinate system or the body frame (in robotics, coordinate systems are also called frames).

The point is the instantaneous center of rotation of the robot. From the velocity analysis perspective, during a short time interval, the robot seems to rotate around the instantaneous center of rotation. This point is constructed by finding an intersection of the line connecting the top of the velocity arrows with the line passing through the centers of the wheels. The symbol denotes the instantaneous angular velocity.

The angle is the rotation angle of the robot body. This angle is at the same time the rotation of the body frame with respect to the inertial frame .

Under the assumption that the intensities of the velocities are not changing during a time interval, the points , , and describe concentric circles centered at the point during the considered time interval. This is shown in the figure below.

Figure 7: Trajectories described by the points , , and during a time interval.

The graph given below shows all the dimensions of the robot that are necessary for developing the kinematic equations.

Figure 8: Detailed kinematic diagram with all the parameters.

Here, for clarity of this lecture, we will summarize once more all the involved quantities

In the sequel, we will derive the equations that will relate and with , , and . These equations will enable us to predict the robot center point velocity and angular velocity as the function of control variables and .

That is, we start from the assumption that the following quantities and parameters are known , , , and , and we want to determine , , and .

From Fig. 8, we have

(1)  

The issue with these two equations is that both and are not known. Consequently, we need to solve these two equations for and . From the first equation in (1), we can express the variable as follows

(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 and :

(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 is given by

(10)  

By substituting the expressions for and given in (7) into the last equation, we obtain

(11)  

By combining this equation, with the equation for from (7), we obtain the following equations

(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 and with the velocity projections of the center of the robot and the angular velocity of the robot. However, we know that the wheel velocities are actually functions of the wheel angular velocities and :

(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.

Exit mobile version