Identified dynamic parameters of a Pioneer 3-DX with no extra equipment (), a Pioneer 3-DX with a LASER scanner (), a robotic wheelchair while carrying a 55 kg person (), a robotic wheelchair while carrying a 125 kg person (), and a Khepera III ().
The design of motion controllers for wheeled mobile robots is often based only on the robot’s kinematics. However, to reduce tracking error it is important to also consider the robot dynamics, especially when high-speed movements and/or heavy load transportation are required. Commercial mobile robots usually have internal controllers that accept velocity commands, but the control signals generated by most dynamic controllers in the literature are torques or voltages. In this chapter, we present a velocity-based dynamic model for differential-drive mobile robots that also includes the dynamics of the robot actuators. Such model can be used to design controllers that generate velocity commands, while compensating for the robot dynamics. We present an explanation on how to obtain the parameters of the dynamic model and show that motion controllers designed for the robot’s kinematics can be easily integrated with the velocity-based dynamic compensation controller. We conclude the chapter with experimental results of a trajectory tracking controller that show a reduction of up to 50% in tracking error index IAE due to the application of the dynamic compensation controller.
- velocity-based dynamic model
- dynamic modeling
- dynamic compensation
- motion control
- tracking control
A common configuration for mobile robots is the differential drive, which has two independently driven parallel wheels and one (or more) unpowered wheel to balance the structure . For several years differential-drive mobile robots (DDMR) have been widely used in many applications because of their simple configuration and good mobility. Some applications of DDMR are surveillance , floor cleaning , industrial load transportation , autonomous wheelchairs , and others.
In the literature, most of the motion controllers for DDMR are based only on its kinematics. The main reasons for that are: (a) the kinematic model is simpler than the dynamic model, therefore the resulting controllers are less complex and simpler to tune; (b) the accuracy of the dynamic model depends on several parameters that might change or are difficult to measure, like the robot’s mass and moment of inertia; and (c) dynamic controllers usually generate torque or voltage commands, while mobile robots frequently have internal velocity controllers that take velocity as input . However, the robot’s low-level velocity control loops do not guarantee perfect velocity tracking, especially when high-speed movements and/or heavy load transportation are required. In such cases, to reduce tracking error, it becomes essential to consider the robot dynamics as well, as shown in .
A possible solution to overcome the problem described above is to design a controller that compensates for the robot’s dynamics. Commercial mobile robots usually have internal controllers that accept velocity commands, like the Pioneer 3 from Adept Mobile Robots, the Khepera from K-Team Corporation, and the robuLAB-10 from Robosoft Inc. However, the control signals generated by most dynamic controllers in the literature are torques or voltages, as in [8, 9, 10, 11, 12, 13, 14]. Because of that, some researchers have proposed dynamic controllers that generate linear and angular velocities as commands [15, 16]. In some works, the dynamic model is divided in to two parts, allowing the design of independent controllers for the robot kinematics and dynamics [17, 18, 19, 20]. Finally, to reduce performance degradation in applications in which the robot dynamic parameters may vary (such as load transportation) or when the knowledge of the dynamic parameters is imprecise, adaptive controllers can also be considered [7, 21].
The above-mentioned works applied a dynamic model that has linear and angular velocities as inputs, which illustrates the interest on such kind of dynamic model. In such context, this chapter explains the velocity-based dynamic model and its mathematical properties, which are useful for the design of controllers that compensate for the robot dynamics. It also illustrates how to design a trajectory tracking motion controller based on the robot’s kinematics, and how to integrate it with a velocity-based dynamic compensation controller.
2. Dynamic model
The classical equation to represent the dynamics of mobile robots can be obtained via Lagrangian formulation, resulting in .
where is the vector of generalized coordinates of the system with degrees of freedom, is the matrix of inertia, is the matrix of Coriolis and centrifugal forces, is the vector that represents viscous friction, is the vector of gravitational torques, is the disturbance vector, is the vector of input torques, where is the number of inputs, is the input transformation matrix, is the vector that represents restriction forces, and is the matrix associated to such restrictions. Two well known properties of such model are [9, 22]:
is a symmetric and positive definite matrix, that is, ;
The above properties are widely used on the development and stability analysis of controllers for mobile robots, as shown in [8, 9, 22, 23]. But, such controllers generate torque commands, not velocities, as usually accepted by commercial robots. The conversion from torque to velocity commands requires knowledge of the actuation system of the robot (model of its motors and its speed controllers). On the other hand, a controller designed from a velocity-based dynamic model generates linear and angular velocities that can be directly applied as commands for mobile robots.
In such a context, now the dynamic model for the DDMR proposed in  is reviewed. For convenience, we first present its equations again. Then, the dynamic model is written in such a way that it becomes similar to the classical dynamic equation based on torques. Figure 1 depicts a DDMR with the variables of interest. There, and are, respectively, the linear and angular velocities, G is the center of mass, is the point of interest (whose position should be controlled) with coordinates and in the XY plane, is the robot orientation, is the distance from the point of interest to the point in the middle of the virtual axle that links the traction wheels (point B), is the distance between points G and B, and is the distance between the points of contact of the traction wheels to the floor. The complete mathematical model is written as .
where is the vector of identified parameters and is the vector of parametric uncertainties associated to the mobile robot. The equations describing the parameters are presented in Section 3. The model is split into kinematic and dynamic parts. The kinematic model is
which is a modified approach to describe the robot kinematics. The classical unicycle model is obtained when in (3), but here we consider the case in which , which means that the position described by the model is not in the center of the line between the traction wheels, but at a distance from it (see point in Figure 1). We use this model because it is useful on the design of the trajectory tracking controller, as shown in Section 4.
The part of the equation that represents the dynamics is given by
or, in a compact form, as
where is the vector of reference velocities, is the vector containing the actual robot velocities, and the matrices and , and the vector are given by
Let us rewrite by adding and subtracting the term to its fourth element (where ), such that
so that the term can be written as
The role of the term is to make the units consistent to allow us to split into two matrices, while keeping the numerical values unchanged. Now, let us define as the vector of modified velocities, so that
The terms in the vector of modified velocities are numerically equal to the terms in the vector of actual velocities , only its dimensions are different. By rewriting the model equation, the following matrices are defined:
Finally, the dynamic model of a DDMR can be represented by
Notice that and , that is, the dimensions of the resulting vector are kept unchanged.
The model represented by Eq. (13) is mathematically equivalent to the one proposed in  and used in , where it was validated via simulation and experiments. Nevertheless, the model presented here is written in such a way that some mathematical properties arise. Such properties, which are presented and discussed in the next session, can be applied on the design and stability analysis of dynamic controllers.
3. Dynamic parameters and model properties
To calculate the dynamic parameters of the vector , one has to know physical parameters of the robot, like its mass, its moment of inertia, friction coefficient of its motors, etc. The equations describing each one of the parameters are
where is the mass of the robot, is its moment of inertia at G, , and are the electrical resistance, the electromotive constant, and the constant of torque of its motors, respectively, is the coefficient of friction, is the moment of inertia of each group rotor-reduction gear-wheel, is the radius of each wheel, and and are distances defined in Figure 1. It is assumed that the internal motor controllers are of type PD (proportional-derivative) with proportional gains and , and derivative gains and . It is also assumed that the inductances of the motors are negligible, and both driving motors are identical.
Obtaining accurate values of all physical parameters of a robot might be difficult, or even not possible. Therefore, it is useful to discuss an identification procedure to directly obtain the values of the dynamic parameters . Such procedure is explained in Section 3.2.
It is interesting to point out that the dynamic model adopted here considers that the robot’s center of mass G can be located anywhere along the line that crosses the center of the structure, as illustrated in Figure 1. This means that the formulation of the proposed dynamic model is adequate for robots that have a symmetrical weight distribution between their left and right sides. Because most differential drive robots have an approximately symmetrical weight distribution (with each motor and wheel on either left or right sides), such assumption does not introduce significant modeling errors on most cases. It should also be noticed that for . The parameters and can be negative and will be null if, and only if, the center of mass G is exactly in the center of the virtual axle, that is, . Finally, in , it was shown that the model parameters to cannot be written as a linear combination of each other, that is, they are independent.
3.1. Model properties
The mathematical properties of the dynamic model (12) are:
The matrix is symmetric and positive definite, or ;
The inverse of exists and is also positive definite, or ;
The matrix is symmetric and positive definite, or , if ;
The matrix is constant if there is no change on the physical parameters of the robot;
The matrix is skew symmetric;
The matrix can be considered constant if and there is no change on the physical parameters of the robot;
The mapping is strictly output passive if and .
To analyze the above mathematical properties, first recall that for . Properties 1 and 2 can be confirmed by observing that is a diagonal square matrix formed by and . is also a diagonal square matrix formed by and . Property 3 holds if . Property 4 holds if there is no change on the physical parameters of the robot (i.e., if there is no change on the robot’s mass, moment of inertia, etc.). is a square matrix formed by and , whose transpose is also its negative, which proves property 5. Property 6 holds if there is no change on the physical parameters of the robot and . Finally, the proof for property 7 is given in .
3.2. Identified parameters
The values of the dynamic parameters can be estimated via an identification procedure, described as follows. Let a system be represented by the regression model
where is the vector of parameters and is the system output. The least squares estimate of is given by
where is the vector with the estimated values of and is the regression matrix. By rearranging (4) and ignoring uncertainty, the dynamic model can be represented by
In order to obtain an estimate for the values of , each robot needs to be excited with speed reference signals , while the actual values of its velocities and accelerations are measured and stored. In our case, the excitation signals consisted of a sum of six sine waves with different frequencies and amplitudes. All data were stored and the regression model was assembled so that the vector and the matrix had all values obtained in each sampling instant. Subsequently, the value of for each robot was calculated by least squares method.
In order to verify the assumptions that and , we have analyzed the dynamic parameters of five differential drive robots obtained via identification procedure. The analysis was done considering the parameters of the following robots: a Pioneer 3-DX with no extra equipment (), a Pioneer 3-DX with a LASER scanner and omnidirectional camera (), a robotic wheelchair while carrying a 55 kg person (), a robotic wheelchair while carrying a person (), and a Khepera III (). The Khepera III robot weighs 690 g, has a diameter of 13 cm and is 7 cm high. Its dynamic parameters were identified by Laut and were originally presented in . By its turn, the Pioneer robots weigh about 9 kg, are 44 cm long, 38 cm wide, and 22 cm tall (without the LASER scanner). The LASER scanner weighs about 50% of the original robot weight, which produces an important change in the mass and moment of inertia of the structure. Finally, the robotic wheelchair presents an even greater difference in dynamics because of its own weight (about 70 kg) and the weight of the person that it is carrying. The dynamic parameters for the above-mentioned robots are presented in Table 1.
The value of is limited to for the Khepera III robots, to for the Pioneer robots, and to for the robotic wheelchair. Therefore, using the values presented in Table 1 one can verify that the conditions of and are valid for all sets of identified parameters. Therefore, the dynamic model of the above-mentioned robots can be represented as in (12), with properties 1–7 valid under the considered conditions.
4. Controller design
To illustrate the usefulness of the modified model and its properties, in this section we show the design of a trajectory tracking controller and a dynamic compensation controller. The controller design is split in two parts, as in . The first part is based on the inverse kinematics and the second one compensates for the robot dynamics. The use of the dynamic model properties is shown on the second part.
The control structure is shown in Figure 2, where blocks K, D, and R represent the kinematic controller, the dynamic compensation controller, and the robot, respectively. Figure 2 shows that the kinematic controller receives the desired values of position and velocity from the trajectory planner (which is not considered in this work). Then, based on those values and on the actual robot position and orientation , the kinematic controller calculates the desired robot velocities . The desired velocities and the actual robot velocities are fed into the dynamic controller. Such controller uses those values and the estimates of the robot parameters to generate the velocity commands that are sent as references to the robot internal controller.
4.1. Kinematic controller
The same kinematic controller presented in [7, 21] is shown here. It is a trajectory tracking controller based on the inverse kinematics of the robot. If only the position of the point of interest is considered, the robot’s inverse kinematics can be written as
The inverse kinematics described by Eq. (19) is valid only for . This is the reason why we prefer to adopt this model instead of the classical unicycle model, as discussed earlier. Considering (19), the adopted control law is
for which is the vector of desired velocities given by the kinematic controller; and are the vectors of actual and desired coordinates of the point of interest h, respectively; is the vector of position errors given by ; and are the controller gains; , are saturation constants; and . The terms are included to limit the values of the desired velocities to avoid saturation of the robot actuators in case the position errors are too big, considering is appropriately bounded.
It is important to point out that the orientation of a DDMR is always tangent to the path being followed. Moreover, the desired trajectory defines the desired linear speed , which means that the robot will be moving either forward or backwards. Therefore, it is not necessary for the controller to explicitly control the robot’s orientation to make it successfully follow a trajectory with a desired orientation.
For the stability analysis of the kinematic controller, it is supposed a perfect velocity tracking, which allows equating (19) and (20) under the assumption of and , which means that the dynamic effects are, at this moment, ignored. Then, the closed-loop equation is obtained in terms of the velocity errors, which is
Now, the output error vector (21) can be written as
which has an unique equilibrium point at the origin. To conclude the stability analysis of such equilibrium, is considered as the Lyapunov’s candidate function. Its first time derivative is
Regarding these results, one can immediately conclude that the system characterized so far has a globally asymptotically stable equilibrium at the origin, which means that the position errors and as . This result will be revisited latter, after adding a dynamic controller to the system in order to implement the whole control scheme.
Remark. Considering the case in which the reference is a fixed destination point, instead of a trajectory, the robot reaches such a point and stops there. Assuming and , Eq. (20) guarantees that when and , therefore .
4.2. Dynamic compensation controller
Now, the use of the proposed dynamic model and its properties is illustrated via the design of a dynamic compensation controller. It receives the desired velocities from the kinematic controller and generates a pair of linear and angular velocity references for the robot servos, as shown in Figure 2. First, let us define the vector of modified velocities as
and the vector of velocity errors is given by .
Regarding parametric uncertainties, the proposed dynamic compensation control law is
where , , and are estimates of , , and , respectively, and are gain constants, and are saturation constants, and and are the current velocity errors. The term provides a saturation in order to guarantee that the commands to be sent to the robot are always below the corresponding physical limits, considering that and are bounded to appropriate values.
Using the Lyapunov candidate function , and considering that the dynamic parameters are constant, one has
Observing property 5, of antisymmetry of , the derivative of the Lyapunov function can be written as
According to Property 1, is symmetric and positive definite. The terms of have the same sign of the terms of . Property 3 states that is symmetric and positive definite if , condition that was shown to hold for our robot. Therefore, one can conclude that , that is, and with , and and with .
Regarding the kinematic controller, it has been shown  that a sufficient condition for the asymptotic stability is
where Because , the condition (28) is asymptotically verified for any value of . Consequently, the tracking control error , thus accomplishing the control objective.
To sum up, by using a control structure as shown in Figure 2 with a dynamic compensation controller given by Eq. (25), different motion controllers can be applied. In our example, the trajectory tracking controller given by Eq. (20) was used. This is the system that we have implemented and for which we present some experimental results in Section 5.
5. Experimental results
In this section, we present some experimental results using a Pioneer 3-DX, from Adept Mobile Robots. In all experiments, the robot starts at position with orientation 0°, and should follow an 8-shape trajectory also starting at . The trajectory to be followed by the robot is represented by a sequence of desired positions and velocities , both varying in time. The reference path is illustrated in Figure 3.
We have implemented the control structure shown on Figure 2 using the control laws given by Eqs. (20) and (25). In total, we have executed 10 experiments for each controller, from now on referred to as KC (kinematics controller) and DC (dynamic compensation). In the case of KC, the robot receives as commands the values calculated by the kinematics controller and there is no dynamic compensation. On the other hand, in the case of DC, the dynamic compensation controller is active and the robot receives as commands the values of calculated by the dynamic compensation controller. We have repeated the experiments for four cases: KC with load, KC without load, DC with load, and DC without load. The load consists of a weight of placed on top of the robot, while the original weight of the robot is .
The following parameters were used in all experiments: , sample time of 0.1 s (this is the sample time of the Pioneer 3-DX); controller gains , , , , and saturation constants , , , . The robot used in the experiments is a Pioneer 3-DX without LASER scanner, therefore the parameters used in the dynamic compensation controller are the ones in column from Table 1.
Figure 4 illustrates the results of 2 experiments, both without load. Figure 4(a) shows the 8-shape path followed by the robot without load when controlled by KC and DC. Robot path was recovered through its odometry. One can notice that the path followed by the robot is slightly different under KC or DC. The robot’s linear and angular velocities also change along the path, as shown in Figure 4(b).
A better visualization of the tracking error is given by Figure 5, which shows the evolution of the distance error during the experiments without load. The distance error is defined as the instantaneous distance between the desired position and the actual robot position . It can be noticed that the distance error is similar for KC and DC in the first part of the path. At the beginning of the experiment, the tracking error increases quite a lot, reaching almost . This happens because the robot needs to accelerate from zero to catch up with the reference trajectory. After a few seconds, the error starts to decrease and around , the robot follows the trajectory at normal speed. From this point on, it is clear that the average error is smaller when the DC is active.
Figure 6(a) shows the 8-shape path followed by the robot when carrying the load and controlled by KC and DC. One can notice that the path followed by the robot is slightly different under KC or DC, and there is more distortion in the path when compared to the case in which the robot carries no load. The robot’s linear and angular velocities also change along the path, as shown in Figure 6(b), and are very similar to the previous case.
The tracking error is given by Figure 7, which shows the evolution of the distance error during the experiments with load. As before, the robot needs to accelerate from zero to catch up with the reference trajectory, which causes the tracking error to increase in the first part of the experiments. But, in this case, the error in the first part of the experiment is actually higher for DC. This happens because the dynamic parameters used in the dynamic compensation controller remained unchanged during all experiments, with and without load. This means that the case in which the robot is carrying load is unfavorable for the dynamic compensation controller because the dynamics is not properly compensated, causing the error to increase. Even so, after about , the tracking error of DC gets smaller than the error for KC.
To evaluate the performance of the system we have calculated the performance index, where , is the instantaneous distance error and is the period of integration. The average and standard deviation values of for all experiments are reported in Table 2. There, was calculated considering and , that is, for the total period of each experiment. By its turn, the value of was calculated only for the final 30 seconds of each experiment, that is, considering and . Therefore, gives a good indication of the performance of the system after the error due to initial acceleration have faded out. From the results highlighted in bold in Table 2, it is clear that the performance of the system with the dynamic compensation controller is better in the long run because the correspondent values of are about 50% of those for the kinematic controller. This is true even for the case in which the robot is carrying load.
|With load||Without load|
It is important to emphasize that the dynamic parameters used in the dynamic compensation controller remained unchanged during all experiments, which means that the dynamics is not properly compensated when carrying load. This is illustrated by the fact that is bigger when the dynamic compensation is active and the robot is carrying load. Even so, in our experiments the performance was better in the long run when the dynamic compensation controller remained active.
One should notice that an increase in controller gains and could result in better performance (smaller tracking error), especially when the robot is carrying load. Nevertheless, we kept the same values of controller gains during all experiments to be able to compare the results.
In this chapter, we illustrate that the performance (in term of ) of a motion control system for a mobile robot can be up to 50% better under certain conditions when dynamic compensation is included. Such dynamic compensation can be implemented as shown in Figure 2, in which Eq. (25) is used with parameters identified via the procedure described in Section 3.2.
It is worth mentioning that the values of controller gains used in the experiments here reported were not optimum. The values of the gains were chosen empirically so that we could compare different cases. Optimization of controller gains can be executed to reduce tracking error, energy consumption, or a weighted combination of both, as shown in . This means that the performance of the overall system could potentially be better than reported here.
We also presented a formulation of a dynamic model for differential-drive mobile robots, and discussed its mathematical properties. When compared to the classical dynamic model based on torques, the model used in this chapter has the advantages of accepting velocities as inputs, and modeling the dynamics or the robot’s actuators. We have shown that such model and its properties are useful on the design and stability analysis of a dynamic compensation controller for a differential-drive mobile robot. Moreover, because the mathematical structure of (12) is similar to the classical torque-based model, classical strategies for controller design [8, 26] can be adapted for designing controllers for mobile robots using the model presented in this chapter.
The dynamic model presented in this chapter can be used in connection with other kinematic controllers designed for commercial mobile robots, even in the context of coordinated control of multi-robot formations . This integration requires no change on the original controller equations since the dynamic model accepts the same velocity commands as commercial robots. We invite the interested reader to download our toolbox for MATLAB/Simulink®, which include blocks to simulate the differential-drive kinematics and dynamics, a kinematic controller and two dynamic compensation controllers, one of which being the one presented in this chapter .
The authors thank the Institute of Engineering, Hanze University of Applied Sciences, for the partial financial support given for the publication of this chapter.