Energy estimation for differential drive mobile robots on straight and rotational trajectories

Energy autonomy is an important aspect that needs to be improved in order to increase efficiency in mobile robotic tasks. Having accurate power models allows the estimation of energy consumption along different trajectories. This article proposes a power model for two-wheel differential drive mobile robots. The proposed model takes into account the dynamic parameters of the robot and its motors, and predicts the energy consumption for trajectories with variable accelerations and variable payloads. The experimental validation of the proposed model was performed with a Nomad Super Scout II mobile robot which was driven along straight and curved trajectories, with different payloads and accelerations. The experiments using the proposed model showed accuracies of 96.67% along straight trajectories and 81.25% along curved trajectories in the estimation of energy consumption.


Introduction
Technological advancement has promoted a continuous increase in the use of mobile robots in a wide range of applications. However, energy autonomy is still a major issue that slows down the widespread utilization of mobile robots. Sudden changes of velocity and variations in payloads along trajectories, which are common in solving robotic tasks, lead to power fluctuations and variable energy consumptions. Some examples of such applications are demining robots 1 that may perform stop and go motion; transporting and lifting robots 2,3 that move materials on factory floors; vacuuming robots, 4,5 which accumulate dust in a reservoir; or spraying robots, 6,7 which release a liquid content from a reservoir.
The energy autonomy problem can be mitigated, either by increasing the robot's energy capacity-which implies a heavier and more expensive system-or by optimizing the energy necessary to fulfill the mission. This optimization can be achieved by choosing geometrical and dynamical motion profiles that minimize the energy necessary to carry out their missions. To be able to find the energyminimizing motion profiles, an accurate power model of the platform is required. This leads researchers to propose various power consumption models as well as energyoptimizing motion profiles for mobile robots.
Power modeling has been studied on skid-steered platforms. Chuy et al. 8 used an exponential function to model the power consumption of skid-steered robots, and Morales et al. 9 used relative track speeds to estimate the power consumption. Due to the fact that the energy consumption of skid-steered platforms is more heavily defined by friction between the wheels and the ground or tracks and the ground during rotations, Yu et al. 10 and Dogru and Marques 11 presented a friction-based power consumption model for skid-steered platforms. Kim and Kim 12,13 calculated the velocity profiles that minimize energy consumption for a differential drive mobile robot along both straight and curved paths, using the dynamic model of the motor as the cost function. Xie et al. 14 studied a dynamic window approach for power minimization in Mecanum wheeled robots. Tokekar et al. 15 studied the influence of friction between robot wheels and different kinds of surfaces on the energy consumption in car-like robots, eventually proposing a calibration procedure to estimate the parameters of the dynamic model of the motor, including the internal friction torque. Mei et al. 16 estimate the power consumption of a two-wheel differential drive robot using a sixthdegree polynomial model for its direct current motors and compare the efficiency of different motion profiles for area coverage scenarios. Mei et al. 17 analyze the power consumed by sensing and control subsystems of the robot. Similarly, Parasuraman et al. 18 take into account the power consumed by different subsystems of a mobile robot and use a polynomial model to estimate the power consumed by each. These authors find the coefficients of the polynomial model using a calibration sequence, while additionally taking into account the payload and accelerations of the platform.
This article focuses on the power consumption of the drive system of two-wheel differential drive robots, taking into account both varying payload and accelerations. It extends the state of the art by presenting a Lagrangebased dynamic model, which explicitly includes the dynamic parameters of both the robot and the motor. This approach, in contrast to a polynomial fitting based approach, analyzes the contribution of different robot and motor parameters to the total power consumed by the robot. In the mathematical procedure, this work utilizes a statespace realization 19 to expand the state variables and simplify the Lagrange multipliers. 19 This transformation enables a description of the power consumption model with ordinary differential equations, which in turn allows power consumption calculation. Finally, a calibration procedure is used to account for the internal friction of the motor. The proposed energy consumption model is experimentally validated using a Nomad Super Scout II mobile robot, with different accelerations and payloads. This work extends our previous work, 20 in which the mathematical model was presented and only partially validated with straight paths, with extensive validation along curved paths represented using Bézier curves.
This article is organized as follows: the first section develops a mathematical model for energy consumption estimation. The second section presents the results of experimental validations with the Nomad Super Scout II mobile robot. Finally, the third section draws the final remarks and conclusions of this work.

Development of the power model
In the first subsection, the dynamic model of a two-wheel differential drive robot and then the dynamic model of a DC motor are presented. Then, the two models are combined by matching the load torque values. Finally, a state-space realization is used to obtain the power model formulation. 20 All the symbols used in this work are presented in Table 1 for easy reference.

Constraint equations
In this section, the motion and constraint equations for a differential mobile robot whose schematic is shown in Figure 1 are developed. The mobile robot is driven by two independent wheels with the same dimensions.
The mobile robot configuration has two motion constraints: The mobile robot cannot move in the lateral direction, hence The wheels of the mobile robot roll but do not slip, hence The holonomic constraint can be obtained by subtracting equation (2) from equation (3), giving Adding equations (2) and (3) gives The non-holonomic constraint equations formed by equations (1) and (6) can be written in matrix form as Equation (7) can be expressed as where q is the generalized coordinate given by q ¼ Dynamic model of the robot The system of nonlinear differential equations that represent the dynamic model of the mobile robot can be found by using the Lagrange formulation 19,21,22 d dt with i ¼ 1, . . . , 4. The total kinetic energy of the mobile robot is given by where At this point, the derivatives of the Lagrange motion equation (11) are calculated. Finally, the nonlinear differential system of equations representing the dynamic model of the mobile robot is obtained as l 1 sin þ l 2 cos ¼ m€ x À m c dð € sin þ _ 2 cos Þ Àl 1 cos þ l 2 sin ¼ m€ y þ m c dð € cos À _ 2 sin Þ t 1 À cll 2 ¼ m c cdð€ y cos À € x sin Þ þ ðIc 2 þ I w Þ € q 1 À Ic 2€ q 2 t 2 À cll 2 ¼ Àm c cdð€ y cos À € x sin Þ À Ic 2€ q 1 þ ðIc 2 þ I w Þ € q 2 ð13Þ Table 1. Symbols used in this work.
Symbol Description x and y Coordinates of the center of the robot (P o in Figure 1) in a fixed reference coordinated frame X-Y Heading angle of the mobile robot measured from the X-axis w Angular velocity of the robot v Linear velocity of the robot q Angular position vector of the wheels _ q Angular velocity vector of the wheels € q Angular acceleration vector of the wheels K Total kinetic energy of the robot q i generalized coordinate corresponding to robot pose l i Components of the vector of the Lagrange multipliers t i Components of the vector of the load torques applied to the wheels a ij Elements of the constraint matrix l Displacement from each of the driving wheels to the axis of symmetry d Displacement from point P o to the center of mass of the mobile robot, which is assumed to be on the axis of symmetry r Radius of the driving wheels c Constant that is equal to r Currents of the motors of the robot P ¼ ½P 1 P 2 T Power consumed of the motors of the robot P and E Power and energy consumed by the robot R and L Armature resistance and inductance n Viscous friction coefficient t Load torque applied to the motor T m Internal friction torque in the motor Gear ratio of the motor Figure 1. Schematic of the differential drive mobile robot

Dynamic model of the motor
The dynamic model of a DC motor can be expressed by the following system of differential equations 23 The first expression in (14) is the voltage equation for a DC motor, and the second expression reflects the torque of the DC motor. In several studies, such as the one by Kim and Kim, 13 the torque variable is neglected, which is unrealistic for a real robot. In the proposed model, the load torque value of a dynamic DC motor model is calculated using a mobile robot dynamic model. On the other hand, a calibration procedure is used to estimate the internal friction torque value.
A reduced-order model can be achieved for the dynamic behavior of the motor. The electrical response is generally much faster than the mechanical response, therefore the inductance of the armature circuit can be ignored. Hence, the first equation yields Equation (15) can be used in the second part of equation (14) to obtain the torque t The combination of the dynamic models To achieve the energy consumption model, the dynamic models of the robot and the DC motor are combined. The equation for the load torque of the DC motor model, equation (16), may be used in the system of equations for the dynamic robot model, namely equation (13). Also, _ ¼ cð _ q 1 À _ q 2 Þ, which is calculated from the subtraction of equations (2) and (3), may be used for reordering and writing the resulting combination of the dynamic models in the following matrix equation where  AðqÞ ¼ À sin À cos 0 0 cos À sin cl cl ð18Þ

Energy consumption model
In this section, a state-space realization from 19 is used to transform the nonlinear differential equation system representing the combination of the dynamic models into an ordinary differential equation system. In the process, the size of the state space is increased, and the Lagrange multipliers are simplified, using the null space SðqÞ of the constraint matrix AðqÞ. Let h represent the vector of the new variables, then AðqÞSðqÞh ¼ 0, and using equation (9), it can also be said that _ q ¼ SðqÞh. Vector h was chosen as Being SðqÞ Now, multiplying both sides of equation (17) by S T ðqÞ, and using the result S T ðqÞAðqÞ ¼ 0 turns into The term € q is obtained by differentiating _ q ¼ SðqÞh again, leading to Replacing _ q and € q Isolating _ h from equation (22), the following is obtained Then, the dynamic model can be represented with these new state variables.
x ¼ The motion equation (23) and the equation _ q ¼ SðqÞh may be represented in the state space form as The voltage variable can be obtained by isolating V from equation (22).
The V term in equation (15) can be replaced with equation (27) giving an updated current equation, and hence the power estimation model can be calculated with the multiplication of the voltage equation (27) and the updated form of the current equation (15).
Finally, the energy consumption model can be calculated with the integral of the power estimation model (equation (28)).
Experiments and discussions

Experimental setup
The energy consumption model was implemented in MATLAB R2013a/Simulink. The dynamic parameters of the Nomad Super Scout robot given in Table 2, as well as the dynamic parameters of the DC motors of the robot given in Table 3, were used in our model. For the validation of the proposed energy model, a Nomad Super Scout mobile robot was used ( Figure 2). The robot was controlled using the built-in Motorola 68332 embedded robot controller and an Orange Pi PC Plus single-board computer. Robot Operating System was used on the Orange Pi to send the desired velocities to the robot and to receive odometry values from the encoders, as well as the power values of the motors from a custom power measurement circuit. Three batteries with weights of 5.7, 2.55, and 2.25 kg were used as payloads for the robot. The batteries were fixed on top of the robot in various combinations to achieve payload weights of 2.5, 5.7, 8.25, and 10.5 kg (Figure 2).

Calibration procedure
A calibration procedure was used to estimate the internal friction torque of the motors. The internal friction torque is related to opposing forces applied to the robot, such as the friction of the wheels with the floor and the friction in the gears. However, the load torque is related to the acceleration, mass of the robot, and the payload, and it is calculated  using the dynamic robot model. Therefore, the dynamic motor model may be used for the calibration. The friction torque of the motor can be found by assuming no acceleration. In this case, the model can be written as where Then, the average value of the current and voltage was calculated using the power values from the measurement circuit, when the robot reaches and stays in a constant linear velocity. In the experiment, constant velocities between 0.1 m/s and 0.9 m/s were used. In Figure 3, current and voltage for a constant velocity of 0.8 m/s are shown. The shaded section representing the acceleration and deceleration of the robot are thus excluded from the calibration procedure. Finally, the energy consumed by the robot was calculated using equation (29).
The experiment for the calibration procedure was performed without payload, on a marble floor, along a fixed 20 m straight path. The estimate of the friction torque is obtained using least-squares fitting. The friction torque values for the motors were found out to be 0.3728 and 0.346 Nm. In Figure 4, both the energy consumed by the robot and the energy estimated by the model are shown.

Experimental validation of the proposed model
In Figure 5(a), the linear velocity profile of the mobile robot is shown. The robot develops several accelerations of 0.2 m=s 2 with a payload of 5.7 kg.
In Figure 5(b), the estimated and measured power of the robot generated by the accelerations are shown. It can be seen that the power estimation model predicts the average power consumed by the motor closely.
Measured and estimated energy consumptions for various accelerations are given in Table 4. The accelerations were applied to the robot, first without payload, and then with a payload of 8.25 kg. The tables show a change in the robot's energy consumption when the accelerations of the robot increase. Comparing the tables demonstrates the energy consumption of the robot increase more when the robot carries considerable weight.
In Figure 6, the experimental results for three different accelerations and the various payloads are summarized. The figure also shows that no matter the acceleration when the  payload increases, the energy consumption of the robot increases as well. The highest energy consumption of the robot happens at maximum acceleration with maximum payload (162.7 J). Figure 6 also shows that maximum acceleration with any payload can result in more energy consumption than lower accelerations with the same payload. Finally, to show the fitness of the power model evaluated along straight paths, the error percentages between the measured and predicted energy values for different payloads and accelerations are given in Table 5. It is important to note that a successful result in the experiment is attained when the error between the estimated and the measured energy values is less than 10% (stateof-the-art good performance 1 ). The experiment with 0.225 m=s 2 of acceleration and without payload was the only one with a percentage higher than 10%. However, in almost all other experiments, the error is below 8%, in most cases, it is below 5%. The table shows that the best performance of the proposed model is in the middle of the set of validation accelerations for medium and high payloads.
In this scenario, 29 out of 30 total experiments were successful. The percentage of fitness of the predictive energy consumption compared with the robot energy consumption can be calculated with the equation (33).

Fitnessð%Þ ¼ Number of successful tests Total number of tests Â 100 ð33Þ
In that case, the percentage of fitness for the experiment along the straight path was equal to 96.67%. Tests accurately validated the model.
Curved path validation. In this experiment, the fitness of the power estimation model along curved paths is evaluated. For this, the mobile robot was moved along third-order Bézier curves on a marble surface. The accelerations, payloads, and directions of the robot were varied. The payloads used were 5.7, 8.25, and 10.5 kg. The equation of the third-order Bézier curve that was used in this experiment is given by where B is the 2D Bézier curve, t is the parametric variable (0 < t < 1), and p 0 ; p 1 ; p 2 ; p 3 are the curvature control points. The control points were chosen taking into account the dimensions of the hall where the experiments were conducted, leading to p 0 ¼ ð0; 0Þ, p 1 ¼ ð2:7; 0Þ, p 2 ¼ ð2:7; 0Þ, and p 3 ¼ ð2:7; 2:7Þ. The robot was commanded to follow the Bézier's curve. The linear and angular velocities of the robot were received from the encoders. In Figure 7, the linear velocity of the robot given by the odometry along a right bending Bézier's curve with no payload can be seen.
In Figure 8, the pose and linear velocities of the robot at different accelerations are shown (second shaded section) when the robot follows the Bézier curve path. The accelerations are equal to 0.15, 0.18, 0.2, and 0.22 m=s 2 . The first acceleration in the figure (first shaded section) corresponds to the acceleration applied by the robot controller to reach a desired maximum velocity before taking the Bézier curve path. This acceleration is equal to 0.5 m=s 2 .   The odometry values given by the encoders are the linear velocity of the robot and the quaternion orientation values. But, the variables needed as the input of the proposed energy estimation model are the angular velocities of the wheels, which can be calculated with equation (35) based on the robot kinematic equations.
The only variable remaining is the angular velocity of the robot, which can be calculated using the quaternion orientation provided for the odometry data.
A unit quaternion can be described as The quaternion can be transformed into a roll, pitch, and yaw representation, but in this case, only the yaw representation is needed (angular position of the robot ). The equation that transforms the quaternion to yaw representation is shown below Finally, the angular velocity of the robot is calculated by applying the derivative of the angular position of the robot (Figure 7). Figure 9 shows the orientation of the robot and the angular velocities of the wheels calculated using the encoder values for the experiment with an acceleration of 0.15 m=s 2 . In this case, the angular velocities of the two wheels are different around t ¼ 4 s, which was necessary to change the direction of the robot.
Finally, the energy consumed by the robot is estimated with the proposed power model, using the angular velocities of the wheels and different payloads as input. These estimated energy values were compared to the energy measured with the power measurement circuit on the robot.
In Figure 10, the measured and estimated power values for a no-payload experiment with 0.18 m=s 2 of acceleration, left direction is shown. The measured energy consumption in the left motor was 24.1 J and in the right motor 22.86 J. The estimated energy consumption in the left motor was 26.56 J and in the right motor 24.42 J, giving an error percentage of 9.26% for the left motor, 6.39% for the right motor, and 8.56% for the total.
As evidenced by the data, the proposed power model overestimated the average power in the initial acceleration of the robot. This behavior emerges due to the load torque being calculated with the dynamic robot model, and this result may be overestimated as well. Nevertheless, this procedure allows the prediction of energy consumption with different accelerations and payloads.
On the other hand, the overestimation behavior of the proposed model starts to decrease as the payload increases. The payload experiment result presents a better estimation in the initial acceleration of the robot, as shown in Figure 11. In the figure, the estimated power also shows an underestimated behavior at the start of the second acceleration phase. In Table 6, the measured and estimated energy consumption values of the robot are presented. The behavior of the robot along a Bézier curve is similar to its behavior along a straight path. A small change in the acceleration changes the energy consumption slightly. For example, the table shows that without payload, the difference in the energy consumed between 0.15 m=s 2 and 0.22 m=s 2 is almost 3 J for the left motor and barely change for the right. As evidenced in Table 6, substantial changes in payload cause significant changes in consumed energy. For example, a 10.5 kg payload causes the robot to consume almost 12 J more in the left motor and almost7 J more in the right.   In Figure 12, the behavior of the energy consumed by the robot for three accelerations and various payloads is shown. The figure also shows that the maximum energy consumption of the experiment was 66.97 J, with a medium acceleration at maximum payload. At medium payloads, the energy consumption of the robot increases as the acceleration increases.
Finally, in Table 7, the fitness of the proposed power and energy estimation model along the Bézier curve is evaluated for different accelerations and payloads. The error percentages between the measured and predicted energy consumptions in both the right and left directions are presented. Without payload and high velocities, the error percentages are significant. The table shows that the best performance of the power model is located throughout the set of validation accelerations for medium payloads. The error percentages between the predictive and measured values are below 5%. The results show that the fitness of the energy estimation model compared with the measured values given by the robot is equal to 81.25% (using equation (33)) for a Bézier curve path in both directions. The results also present that 26 out of 32 experiments accurately estimated the energy consumption of the robot.

Conclusion
In this article, a power and energy estimation model that takes into account robot and motor dynamic parameters was proposed. The internal friction torque of the motors was estimated using a calibration procedure. In the dynamic motor model, the load torque is directly proportional to the mass (including the payload), and the acceleration. This allows the proposed power model to predict the power and energy consumption for different payloads and accelerations, along straight and curved paths. Thanks to this model, the amount of energy a mobile robot must carry to complete a predefined task can be estimated before deployment and deviations in the predefined estimate due to unexpected changes in the payload can be estimated in real time. This allows charge optimization and scheduling not only for a single load-carrying robot but also for multiple load-carrying robots operating in warehouses with a limited number of charge stations. Future work will concentrate on the generation of the optimal motion trajectories using the proposed model for a load-carrying warehouse robot in typical operating scenarios.
The proposed model was experimentally validated using a balanced two-wheel differential drive mobile robot, the Nomad Super Scout. The results show that when the accelerations of the robot increase, the consumed energy increases. Similarly, increasing the payload increases the consumed energy as well. The fitness of the predictive power and energy estimation model compared with the energy consumed by the robot was equal to 81.25% for the Bézier curve path experiments and 96.67% for the straight path experiments. The straight path results suggest that the simplification carried out in the model is still valid, and the resulting expressions represent the dynamic behavior of the actual system. For future work, it will be interesting to evaluate the fitness of the proposed model when the center of mass of the robot is displaced considerably.

Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.

Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: This work was financially supported by Colciencias Colombia, National Scholarship-567, and partially supported by ISR-University of Coimbra, project UID/EEA/00048/2013 funded by FCT-Fundação para a Ciência e a tecnologia.