Modelling and simulation of the drivetrain of an omnidirectional mobile robot

ABSTRACT The main contribution of this paper is to present the state-space model of an omnidirectional drivetrain (Kiwi drive) for mobile robots. Holonomy or omnidirectional movement of mobile robots is important in applications where navigation through tight space is required. Besides the already available literature regarding either dynamic or kinematic models, this paper presents the complex analysis of a mechatronic system and shows a coherent model that takes into account both the kinematics and the dynamics of a coupled electromechanical system. The model was developed based on two holonomic mobile robots: the Festo Robotino® and the MOGI Ethon. A simulation software developed by the authors is also presented for numerical evaluation of the model. The simulation results qualitatively confirm the model by fulfilling the empirical requirements. Both the model and the simulation software are expandable in order to improve the accuracy of the model describing actual mobile robots. Compared to other models which are based only on the kinematics of the Kiwi drivetrain, in accordance to one's technical instinct, the presented model shows that there is a cross effect between the motors of the drivetrain, where the motors affect each other.


Introduction
Omnidirectional movement of mobile robots is widely used in the field of mobile robotics. Different approaches have been made through the last few years. The possible drivetrains were analysed and compared to each other in the literature several times [1,2].
In this paper, a mathematical model is presented for an omnidirectional, holonomic mobile robot equipped with the so-called Kiwi drivetrain based on three omnidirectional wheels. The omnidirectional wheel is similar to the Mecanum wheel [3,4], but the difference between the two wheels is that the omnidirectional wheel has a number of free rollers on the circumference of the wheel and the axes of the rollers are tangentially arranged to the wheel, while the axes of the rollers of a Mecanum wheel have non-zero angle with the tangent of the wheel. (see Figures 1 and 2).
The suggested model takes into account both the kinematics and the dynamics of the drivetrain; furthermore, it contains the dynamics of the DC motors in state-space representation.
The intention of creating this model is to further improve the literature of the omnidirectional mobile robots. Dynamic models from different drivetrains already exist. The most commonly used drivetrain is the differential drive which is a so-called quasi-holonomic drivetrain. This drivetrain was already modelled and analysed in many studies; thus, it has the widest literature ranging from kinematics, through dynamics and even covering the control of vehicles equipped with differential drive [6][7][8][9]. The four Mecanum wheel-based drivetrain is also modelled and explained in several publications. It is also widely used in different applications [10][11][12][13]. Another quasi-holonomic drivetrain is the active-caster drivetrain, in which a number of casters are driven individually by motors and the orientation of the casters can be also adjusted electrically [14,15].
It is quite common to find models of the Kiwi drive where only the kinematics of the drivetrain is considered, while the dynamics is neglected [16][17][18][19]. In Liu et al. [20], a dynamical model was mentioned; however, the focus was kept for path planning and path control. In their publication, the equations of the current rates of the DC motors were neglected. At that state-of-art, neglecting the current rates was appropriate; however, nowadays, hardware capabilities enable us to create robotic applications based on more detailed models and so to consider the equations of the current rates.
The subjects of our investigation are two omnidirectional mobile robots, equipped with Kiwi drivetrain. The Festo Robotino Ò and the Ethon, developed by the Department of Mechatronics, Optics and Mechanical Engineering Informatics (MOGI) of the Budapest University of Technology and Economics (BME) were chosen for this purpose. The next section gives a brief description of these robots.

The Festo Robotino Ò
The Festo Robotino Ò is an omnidirectional mobile robot equipped with three omni-wheels and designed for educational use (see Figure 1).
In this paper, only the drivetrain and the mechanical assembly of the Robotino Ò will be analysed. A complete description of the robot can be found in [21].
In Figure 2, one driving block of the Robotino Ò is shown. This block consists of a 24 V DC motor, an incremental encoder, a toothed belt, a gear unit and finally an all-way-roller also called omnidirectional wheel or omni-wheel. The wheel is a common wheel equipped with a number of free-running rollers, fitted on the circumference of the wheel. Figure 3 shows the arrangement of the above mentioned driving blocks. There are three driving blocks in the Robotino Ò . All of them are equally spaced at 120 around the vertical axle crossing the centre of mass of the robot. In Figure 3, the driving blocks are noted as M1, M2 and M3.

The MOGI Ethon
The latest development from the MOGI of the BME is Ethon, the ethologically inspired service robot (see Figure 4). The Ethon has an omnidirectional drivetrain, with three independent DC servo motors and associated powertrain elements. This drivetrain enables the robot to move freely on a planar surface and also to rotate around its vertical axis. The motors are controlled individually by custom-developed embedded hardware and software. The control algorithms of the robot are implemented on a PC. The personal computer (PC) is located on the robot, thus making the autonomous movement of the robot possible [16].    The MOGI Ethon is used in etho-robotics research where ethologically inspired mobile robots are created and continuously investigated by researchers from robotics, mechatronics, biology and ethology [22].

Development of the state-space model
In this section, the state-space model of the holonomic drive is pursued. Although the kinematic model of the Kiwi drivetrain can be found in the literature, in order to build a coherent model including kinematics, dynamics and the electrical part (DC motors), a new kinematic model was developed based on unified notation.
In the first approximation, some assumptions were made regarding the mechanical construction of the robot. Regarding the driving blocks, only the wheel speeds and inertias are taken into account. All masses and inertias of the elements in the driving blocks are considered as parts of the mass and inertia of the wheel. The gear ratio between the motor and the wheel is also neglected.
The omni-wheel itself is considered as one rigid body with the ability to produce tractive effort without slipping on the ground. This corresponds to the rolling constraint in case of a traditional wheel. On the other hand, the centre point of the wheel could have an axial velocity which is produced by the other two wheels. The axial velocity of the centre of mass of the wheels exists because of the free-running rollers. The rolling direction of the rollers is parallel to the shaft of the wheels (see Figure 2).
It is assumed that the axes of the shafts of each wheel cross each other at one point, and one point only, and this point is the centre of mass of the robot (see Figure 3).

Kinematics of the omnidirectional drivetrain
Former paper of the authors includes the kinematics of the omnidirectional drivetrain and can be found in [21], only the main steps are highlighted in this section. The following assumptions were made in order to derive the relationship between the wheel speeds and the coordinate velocities of the robot body: Each wheel contacts the ground at a single point, at a given time. All wheels roll on the ground without slipping.
First three Cartesian coordinate systems were fixed to the wheels (F i ; where i ¼ 1; 2; 3), one coordinate system to each wheel (see Figure 5). In the coordinate systems (F i ), the normal axis n i is parallel to the shaft of the wheels, the binormal direction b i is parallel to the vertical direction and the tangential direction t i is perpendicular to both the above-mentioned directions.
The lower index i represents the driving blocks. The upper index ½i denotes a coordinate system in which the variable is considered.
Using the notation of Figure 5, the angular velocities of the wheels can be expressed as where _ ' ni .t/ denotes the angular velocity for each wheel in the normal direction in their own coordinate systems, produced by their corresponding motors.
Since there is no sliding in any direction, the following expression can be written for the velocity of the contact point: where _ n i .t/ is a constraint velocity, produced by the other two wheels, looking from the coordinate system of a given wheel.
Using the velocity transformation inside the rigid body, the translational velocity of the centre point of each wheel can be expressed as where ½i r w is the vectorial form of the radius of the wheels and r is the radius of the wheels: Applying (3) to each wheel, the velocity of the centre of mass of each wheel has the following form: Based on the assembly detailed in Figure 3, a functional outline of the idealized omnidirectional drive system can be created as shown in Figure 6. A Cartesian coordinate system, F 4 S; ξ; h; z f gis considered as the robot coordinate system that is attached to the centre of mass of the robot body. Another Cartesian coordinate system, F 5 O ; x; y; z f gis introduced as the global coordinate system that is fixed in space. The goal is to develop the relationship between the wheel speeds and the coordinate velocities of the robot body in F 5 , becauseF 5 is the reference coordinate system.
In Figure 6, the coordinate systems attached to the wheels are also shown. The black rectangles in Figure 6 represent the driving blocks. The robot coordinate system (F 4 ) is fixed in such a way that ξ maintains equal angular spacing between n 1 and n 3 . Let b be the angle between ξ and n 1 and also ξ and n 3 . Since the driving blocks are equally spaced by 120 in both robots, b is constant 60 ; however, b is kept as a constructional parameter in the model that enables the model to handle other symmetrical constructions.
Using the notations of Figure 6, transformation matrices can be considered to transform vectors from one coordinate system to another. Essentially the transformation matrices between (F 1 ; F 2 ; F 3 ) and F 4 are given as The R 1 and R 3 matrices are simple rotation matrices around the b i axis of the coordinate systems of the respective wheels by a constant b angle.
Finally, the transformation between F 4 and F 5 was considered as where ' z .t/ is the angle between ξ andx, hence the angle between F 4 and F 5 . Here, it is noted that zand z are parallel and pointing to the same direction.
In order to get the desired relationship between the coordinate velocities of the robot and the angular velocities of the wheels, the following equations must be solved for i ¼ 1; 2; 3: The vectors ½5 _ S i .t/ are the velocities of the wheels described in F 5 .
½5 _ S.t/ is the velocity of the robot body described inF 5 , in the following form: ½5 _ '.t/ is the angular velocity of the robot body in F 5 : and ½5 r SSi are the vectors pointing from the centre of mass of the robot to the centre of mass of each wheel: where lis the radius of the pitch circle of the wheels. Combining (9) to (14) yields for i ¼ 1; 2; 3: Þ , the three vector equations obtained by rearranging (15) to zero and expounding the coordinate velocities of the centre of mass of the robot can be expressed in the following form: Here, T robot is the pursued relationship between the angular velocities of the wheels and the coordinate velocities of the robot body. T robot is described in Appendix 2.

Dynamics of the omnidirectional drivetrain
Former paper of the authors includes the dynamics of the omnidirectional drivetrain and can be found in [21]. In this paper, a different aim is given compared to [21]. In this section, the relationship between the wheel torques and the angular acceleration of the wheels is pursued. The Lagrangian approach is used to derive the equations of motion of the omnidirectional drivetrain. In order to derive the equations of motion, first the general coordinates and general coordinate velocities are determined: The Lagrangian approach to derive the equations of motion is based on the definition of the Lagrange function: where T q t ð Þ; _ q t ð Þ ð Þ is the total kinetic energy, and U q t ð Þ; _ q t ð Þ ð Þis the potential energy of the dynamic system. The variable q.t/ denotes the configuration of the system, which is the set of variables that can uniquely describe the position of the system at a given time. For an unconstrained system, Lagrange's equations of motion are derived from the Lagrange function as follows: where Q t ð Þ is the vector of the generalized forces acting on the system.
Only the case in which the robot is moving freely on a flat surface is considered in this article. Thus, the potential energy is constant and expounding (19), the Lagrange's equations of motion will not include any portion of the potential energy function. Thus, let the Lagrange function be constructed solely from the kinetic energy terms: Although, formally, both the Robotino Ò and the MOGI Ethon consist of four rigid bodies, i.e. three driving blocks and a main body, only the kinetic energy of the main body is considered in this chapter.
The properties of the driving blocks will be detailed in Subsection 2.4. The kinetic energy of the main body is where ½5 Q body is the inertia of the main body in F 5 : and m r is the mass, h r is the height and R r is the radius of the robot. Substituting (10), (11) and (22) into (21), the following yields for the kinetic energy of the robot: Using (16) where M 2 R 3Â3 is the mass matrix and € q t Þ T is the vector of the angular acceleration of the wheels, i.e. the general coordinate accelerations. M is described in Appendix 2. Furthermore, Q t ð Þis the vector of the generalized forces, which are acting on the system, and can be produced using the principle of the virtual work [23,24]: where P.t/ is the power of the driving blocks in F 5 , i.e. the power of the DC motors, which are attached to the wheels and can be expressed as and t n1 ; t n2 ; t n3 are the torques of the wheels.

Modelling the driving blocks
After modelling the mechanical part of the drivetrain with the Lagrange's method, the DC motors and coupled parts must be also modelled, because the DC motors are the power inputs of the system. The drive systems including the DC motors have been modelled together in the interest of unified view, however the motor model is well known in the literature [25,26]. The linear graph modelling method was used to model the dynamics of the driving blocks [25,27,28]. This method is based on the structural analysis of the physical entity, which is modelled. Figure 7 is a socalled functional outline, which is an extension of the assembly of the driving block (Figure 2), that shows all relevant parameters, inputs and outputs of the driving block. Parameters include passive elements and transducers also. Both the models of "MOGI Ethon" and the "Festo Robotino Ò " mobile robots are presented in this section. The two robots share the same omnidirectional drivetrain: one DC motor, one toothed belt drive and the omnidirectional wheel in each driving block.
The Festo Robotino Ò has one more stage attached between the belt drive and the wheel, namely a planetary gear. Based on Figure 7, the linear graph of the two robots can be produced as in Figure 8. Parameters of the graph are summarized and explained in Appendix 1. The flexibility of the toothed belt drive is not modelled here, i.e. the toothed belt is considered as an infinitely stiff, or a rigid body. It is considered that the force necessary for flexible deforming of the belt is significantly larger than the special force responsible for the torque causing slip between the wheels and the ground. In this case, the assumptions of Subsection 2.1 and thus the whole model would become invalid. Therefore, this case will need further investigation, which lies outside the scope of this paper. Further consequence is that the vibration tendency of the toothed belt drive is not relevant here. If the belt still vibrates, then it is considered as a manufacturing defect and the drivetrain should be reassembled with adequate tension applied on the belt.
Hereinafter, only the MOGI Ethon will be kept in focus. In case of MOGI Ethon, the linear graph can be reduced to one electrical part and one mechanical part ( Figure 9).
Based on the reduced graph and with the use of the equations of the DC motor as an electromagnetic transducer described in [25] and in [28], the differential equations, which describe the dynamics of the driving blocks can be formulated.
In Figure 7, the constant k m represents the relationship between the mechanical and electrical sides of the DC motor and symbolizes two different numbers, the relationship can be expanded as where t t ð Þ is the torque, i t ð Þ is the current, u t ð Þ is the voltage, V t ð Þis the angular velocity of the motor, k m;t is the torque constant and k m;e is the speed constant (see Appendix 1).    Table A1.
For every driving block: Since V ni t ð Þ is the angular velocity of each wheel, it can also be expressed as The torque t ni .t/ is the active torque, which is trying to block the movement of each wheel; on the other hand, it is the torque that is required to accelerate the omnidirectional drivetrain in (27). Substituting t ni .t/ for i ¼ 1; 2; 3 from (27) into (29), the angular acceleration of the wheels and the current rates of the motors can be expressed.
The B Si parameters represent the dissipation of the driving blocks. Currently viscous dampers are used for modelling the mechanical friction in the driving blocks. In case of necessity, the parameters of these viscous dampers can be substituted by special friction models and describing functions (e.g. Sz ell et al. [29]).

The state-space model of the omnidirectional drivetrain
In this section, the state-space model is used for describing the complete electromechanical drive system including mechanical and electrical components since the state-space model is the basis of digital simulation. This formalism is widely used in control engineering since it is the basis of advanced control theory (e.g. state feedback, model-based control, predictive control etc.) Considering the general form of the state-space model of a linear, time-invariant dynamic system [25,26,30]: where x.t/is a vector of the time-dependent state variables, _ x.t/is the first derivative of x.t/. u.t/ is a vector of the system inputs. y.t/ is a vector composed from the required output variables of the system, i.e. output vector. A; B; C; D are constant coefficient matrices.
The state variables, the system inputs and outputs were chosen as and where _ ξ.t/ and _ h.t/ are the so-called coordinate velocities and _ ' z .t/ is the angular velocity of the robot body described in F 4 . Thus, the state-space equation of the omnidirectional drivetrain can be written in the form of (30), with the following coefficient matrices.
A is called the system matrix, or the state transition matrix: where A 5 ; A 6 2 R 3Â3 describe the effect of the angular velocities and motor currents on the angular accelerations, respectively. The matrices A 8 ¼ diag a 74 ; a 85 ; a 96 ð Þand A 9 ¼ diag a 77 ; a 88 ; a 99 ð Þdescribe the effect of the angular velocities and motor currents on the derivative of the motor currents. Ais described in Appendix 2.
Bis the input matrix: describes the effect of the input voltages of the motors on the derivative of the motor currents. C is the output matrix: where C 11 2 R 3Â3 describes the effect of the angular velocities on the system outputs. C is described in Appendix 2. D matrix describes the effect of the input voltages of the motors on the system outputs:

Simulation
In this section, a simulation software developed by the authors is presented. This software is used to simulate the dynamics of the complete omnidirectional drivetrain. The simulation software of the complete omnidirectional drivetrain serves two purposes. First, it is used to validate and later to experiment with the model. Second, the simulation results and future measurements taken from the compatible on-board control system of the robot will be easily comparable using this software. The software was developed in the National Instruments LabVIEW TM , a graphical programing language with the Control Design and Simulation Toolkit [31]. A complete description of the Control Design and Simulation Toolkit can be found in [32]. The architecture of the simulation software is a simple state machine, with a user interface event-handling structure. The software starts with an initialization phase, where all inputs and outputs are initialized to their default values. Parameters and their values (see Appendix 1) are stored in a coma-separated spreadsheet file, which is read during initialization. The software can handle several different parameter files. Switching between parameter files can be done in runtime via a selector. After initialization, the software switches to a continuously running loop, where the user event-handling structure is operated.
The user interface is ordered by pages, where each page displays different simulation results of the system. The first and starting page is the Model construction, where basic model-related details are presented, i.e. the model parameters and numerical values, the parameter file selector, states, inputs and outputs of the system and the numerical representation of the model. The representation of the model is also adjustable; the user can switch between state-space, transfer function or even zero-pole-gain representation.
The software waits until the Start button is pressed and then creates the numerical state-space model based on Subsection 2.4 (see Figure 10).
The controllability and observability matrices are calculated automatically and boolean displays informing the user whether or not the system is controllable and observable. The zero-pole map of the system is also generated automatically, along with the indication of the number of zeros and poles and stability of the system.
Once the simulation software is running and the model is created, the user can choose what the software should calculate. Actual calculations take place once the user clicks on one of the labels of the page selector. The software is able to calculate the dynamic responses of the system in the time domain on the Dynamic Responses page, both step and impulse responses can be calculated and presented. LabVIEW TM Control Design and Simulation Toolkit calculates the step and impulse responses of a multiple input-multiple output dynamic system (MIMO) in such way that the step or impulse excitation is applied only on one input and the others are kept at zero, for all inputs separately. Therefore, the effect of each input on each state and on each output can be presented on separate graphs.
On the Frequency Domain page, the Bode plot (magnitude and phase diagrams) and the Nyquist plot (root locus) of the system are calculated and presented for all states and outputs.
Up to this point, the state-space model presented and evaluated in the previous sections was a continuous model. On the Sampled Model page, the model can be transformed into a discrete model. The user can choose between different sampling methods, i.e. zeroorder-hold, Tustin approximation or Z-transformation among others, and the sampling time is also adjustable. The coefficients of the discrete model are immediately recalculated if the sampling method or the sampling time is changed by the user. The discrete model will be used to design and study the effect of different discrete controllers.
The last page of the simulation software is labelled Continuous Simulation. On this page, arbitrary excitations can be given onto the inputs of the model and the responses are calculated immediately. This is made by a separate, continuously running task in the background, using the so-called producer-consumer architecture.
This architecture takes advantage of the multi-core processing, where at least two independent tasks are running in parallel and data between the tasks is sent using inter-process communication techniques. Lab-VIEW TM supports the multi-core processing by offering a great variety of libraries and functions. The producer task (the user interface event handler) produces data (i.e. input values) and commands (i.e. start or stop) for the consumer task, where the received commands and data are processed (i.e. the simulation is running with new parameters). The continuous simulation can be stopped and restarted at will. If the continuous simulation is stopped, the task is not terminated; it just becomes idle and waits for further user interaction (i.e. restart or termination).

Simulation results
Simulations were done with nominal parameters (see Appendix 1). Distance and mass properties were adopted from the CAD model of the MOGI Ethon and the parameters of the motors were adopted from the datasheet. Although there could be differences between the CAD model and the actual sizes, furthermore, the The aim of this simulation is to confirm the model. Further refinements will be needed to relate the model to the actual robot. This stands especially for the dissipation. There were no measurements carried out to validate the model quantitatively yet. The model is validated qualitatively based on the following empirical considerations and requirements: In F 4 , the driving block M2 should not produce any effect on _ ξ t ð Þ as _ ξ t ð Þ is produced only by the driving blocks M1 and M3. The rotational coordinate velocity _ ' z t ð Þ ¼ v t ð Þ is produced with equal proportions by all driving blocks.
Basic results indicate that the developed model is controllable and observable.
Simulation results in the time domain, in case of a step response, confirm the two orders of magnitude difference between the time constants of the mechanical and electrical parts (see Figures 11 and 12).
This difference is commonly known and often results in neglecting the electrical part of the DC motor model. In this paper, the electrical parts of the DC motors will be kept for further research.
In case of impulse response simulation, the results show the same difference between the time constants of the mechanical and electrical parts. A so-called cross effect can also be observed (Figure 13), where the angular velocity of one motor changes while the corresponding control voltage is kept at zero level. This effect is caused by the omnidirectional drivetrain itself. The magnitude of this cross effect is about 10% of the main effects (angular velocity change caused by the corresponding control voltage change), that seems negligible, but a precise motion control system needs to be designed to calculate this effect. This effect can also be observed on Figure 12, in case of step response simulation.
Simulating the system with equal corresponding parameters of each driving block (see Appendix 1) leads to a completely symmetric drivetrain. In Figures  12 and 13, the graphs of the main effects run together, and the graphs of the cross effects run together also. Although the drivetrain is symmetric (neglecting the manufacturing inaccuracies), measuring the actual motors may lead to different numeric values of the corresponding parameters; thus, the model would become asymmetric.
Therefore, the use-case where the motors are individually controlled by a position or speed controller with identical control parameters is not the best practice, not even when the controllers are tuned individually.
Finally, the outputs of the system can be seen in Figure 14, where the coordinate velocities are shown in case of step response simulation.
The coordinate velocities are defined in F 4 coordinate system (see Figure 5). Figure 14 demonstrates the following results. In Figure 14, v_xi(u2) curve is at con- Figure 11.
Step response graph of the motor currents.  stant zero level (u2 is the control voltage for M2 driving block and v_xi() denotes _ ξ t ð Þ). Hence, _ ξ t ð Þ is produced by the driving blocks M1 and M3 only. In Figure 14, curves named omega(u1), omega(u2), omega(u3) overlap each other completely; thus, the rotational coordinate velocity is produced in equal proportions by all driving blocks (omega() denotes _ ' z t ð Þ in the simulation). Thus, the simulation confirms the model qualitatively based on the empirical considerations and requirements defined earlier is this subsection.

Conclusions
In this paper, the development of the state-space model of an omnidirectional drivetrain (Kiwi drive) for mobile robots was presented. Two holonomic mobile robots were used as examples, the Festo Robotino Ò and the MOGI Ethon. Detailed mathematical description was given with a coherent system of symbols for both the kinematics and dynamics of the omnidirectional drivetrain. Results from the kinematics and dynamics were then used to formulate the state-space model including the DC motors and associated powertrain elements.
The model is particularly useful when the mobile robot is rolling on a flat surface. The model includes basic dissipative elements, which can be replaced with more accurate dissipation models if needed.
Self-developed simulation software was also presented for numerical evaluation of the developed model. The simulation software was developed in Lab-VIEW TM graphical programing language, and uses built-in functions to simulate the model. The impact of the change of each model parameter can be evaluated with this software. The software gives a good base to evaluate different control algorithms.
Basic simulation results confirm the model, but further evaluation is needed to improve the accuracy of the model describing actual mobile robots. Measurements for quantitative verification of the model are in progress.
The long-term aim is to give new, more precise motion control systems for mobile robots using omnidirectional drivetrains. Future plans are to implement and evaluate different control algorithms based on the model in real-time software environment.
With a real-time control system, the electric torque of the motors could be controlled via current control; thus, current consumption could be optimized resulting in maximization of battery lifetime of the robots.
Final results can also be used in higher education and research in the field of mobile robotics in order to develop professional precision control systems for position control of robots.