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