Abstract
Omnidirectional mobile robots are widely used in studies and services as they are effective and efficient in moving in any direction regardless of their current orientation. These significant properties are very useful in energy-efficient navigation and obstacle avoidance in dynamic environments. The literature on modeling and control of omni-wheel robots usually relies on the kinematic model or simplified kinematic model. Then developing control laws based on these reduced-effect models. In this article, we developed an efficient full dynamic model of a nonholonomic omni-wheel robot, including roller dynamics. That allows for a proportional–integral–derivative control law to accurately follow arbitrary paths. Kane’s approach was used for the dynamic model derivation. Kinematic modeling is less complex than multibody dynamic modeling. But to have an accurate simulation of the realistic motions of a mechanical system, the multibody dynamic model is required.
1 Introduction
The word omnidirectional means being in or involved in all directions. In robotic motion, it describes the ability of a system to move in any direction from any configuration. Omni-directional robot platforms have several advantages over a conventional design in terms of mobility in congested environments. These robots are capable of easily performing tasks in environments congested with static and dynamic obstacles and narrow aisles. These environments are commonly found in factory workshops, warehouses, hospitals, and elderly care facilities [1].
The word “mobile robot” is broad as it includes air-based, water-based, and land-skid locomotion. Skid locomotion can be done using robotic limbs, wheels, steer, and hybrid methods. Wheeled mobile robots are popular as they are relatively easy to design and implement. Widely used wheels are conventional wheels, steering wheels, caster wheels, Mecanum wheels, and universal omni-wheels (see Fig. 1). By using various wheel configurations, omnidirectional mobility can be attained.
![Wheel types: (a) a conventional/steering wheel, (b1) a caster ball wheel, (b2) a caster wheel, (c) a universal omni-wheel, and (d) a Mecanum wheel [2]](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f001.png?Expires=1681269711&Signature=ilgHst3Cz18-XYZi9hb38NcBiOMsXmmUiYBvHSebZS-hyYwnD6scVwcBtJpJwiLXz-zYKm894Yr~d~kfzMNiedWrDA~zF7L1lfUi9e7hjXGuMrihNlUIbblwNOAeGOEjqDE-dycjcM9QwE1UkH4BIkR67mZEIHBVb5eoWL3dBbakU-nFnF~6vgMSQRaOFUNWgG4JlTkKTOaeVvonKCVFWZbj67HyaqyaiM8ojevI1M2zlsqvZdL3H0lyIFvTWcU~lDGfo8OGQ1E3tIuWj5Et5FHt-FtSxZklzZlTv0LmtgQcoSncwSlvBsX58oBQMX~RqJOcdvB33Vi1wF2UBeTN6g__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Wheel types: (a) a conventional/steering wheel, (b1) a caster ball wheel, (b2) a caster wheel, (c) a universal omni-wheel, and (d) a Mecanum wheel [2]
![Wheel types: (a) a conventional/steering wheel, (b1) a caster ball wheel, (b2) a caster wheel, (c) a universal omni-wheel, and (d) a Mecanum wheel [2]](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f001.png?Expires=1681269711&Signature=ilgHst3Cz18-XYZi9hb38NcBiOMsXmmUiYBvHSebZS-hyYwnD6scVwcBtJpJwiLXz-zYKm894Yr~d~kfzMNiedWrDA~zF7L1lfUi9e7hjXGuMrihNlUIbblwNOAeGOEjqDE-dycjcM9QwE1UkH4BIkR67mZEIHBVb5eoWL3dBbakU-nFnF~6vgMSQRaOFUNWgG4JlTkKTOaeVvonKCVFWZbj67HyaqyaiM8ojevI1M2zlsqvZdL3H0lyIFvTWcU~lDGfo8OGQ1E3tIuWj5Et5FHt-FtSxZklzZlTv0LmtgQcoSncwSlvBsX58oBQMX~RqJOcdvB33Vi1wF2UBeTN6g__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Wheel types: (a) a conventional/steering wheel, (b1) a caster ball wheel, (b2) a caster wheel, (c) a universal omni-wheel, and (d) a Mecanum wheel [2]
Among the mentioned wheel types, Mecanum and universal omni-wheels are most used in designing omnidirectional mobile robots and can be controlled using differential torques. When comparing those wheel types, universal omnidirectional wheels can carry more load and has less complexity in manufacturing [2]. In this study, universal omni-wheels were used with a square-based configuration (Fig. 2(b)) based on the research presented in the work by Shabalina et al. [2] Also, it was noticed that this configuration is the least studied, while the three-wheeled universal omni-wheel robot is the most studied configuration.
![Universal wheel configurations: (a) triangular base, (b) square base and wheels are on the sides, and (c) square base and wheels are at the corners [2]](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f002.png?Expires=1681269711&Signature=s1L-e~pgz3OQsaejdE3U7o-CFrxbrmYZU-AMnCIuzTuOTxJrcaR-j2PcPkiMOvPp8XL9YbDuzjjaxwd8jckVQxBA9o5SNAG1kMS2aaCuQO4y9H795vCraP0l4wAeWdIlVl1AaCMMArHedTC4W4J~c0gaMevpoqmbd3rEC~FUiA6Te~l35Z062qsY7rj6aafHmCY-LTBRYuE9q4M5T0UvtkP4AHdQcbKqY2vcCa~67pw3mIAgjjTSTzNkJ5MyiBMx5V7JgJ32MiqoZk6uXbtBPFCxxvgKR-ex2bDZIBA8Z208fp22UXO6wX~hfuC3QviUHqL1t64rCeJ0O0mcSBJGTQ__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Universal wheel configurations: (a) triangular base, (b) square base and wheels are on the sides, and (c) square base and wheels are at the corners [2]
![Universal wheel configurations: (a) triangular base, (b) square base and wheels are on the sides, and (c) square base and wheels are at the corners [2]](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f002.png?Expires=1681269711&Signature=s1L-e~pgz3OQsaejdE3U7o-CFrxbrmYZU-AMnCIuzTuOTxJrcaR-j2PcPkiMOvPp8XL9YbDuzjjaxwd8jckVQxBA9o5SNAG1kMS2aaCuQO4y9H795vCraP0l4wAeWdIlVl1AaCMMArHedTC4W4J~c0gaMevpoqmbd3rEC~FUiA6Te~l35Z062qsY7rj6aafHmCY-LTBRYuE9q4M5T0UvtkP4AHdQcbKqY2vcCa~67pw3mIAgjjTSTzNkJ5MyiBMx5V7JgJ32MiqoZk6uXbtBPFCxxvgKR-ex2bDZIBA8Z208fp22UXO6wX~hfuC3QviUHqL1t64rCeJ0O0mcSBJGTQ__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Universal wheel configurations: (a) triangular base, (b) square base and wheels are on the sides, and (c) square base and wheels are at the corners [2]
In classical mechanics, dynamic systems fall into two categories, namely, holonomic or nonholonomic. A system is holonomic if the number of controllable degrees-of-freedom is equal to the total degrees-of-freedom. To be a nonholonomic system, controllable degrees-of-freedom must be less than the total degrees-of-freedom [3]. In other words, holonomic systems have only geometric constraints, while nonholonomic systems have velocity constraints. In wheeled mobile robots, the property of holonomicity is directly dependent on the type of wheels.
In mobile robots, key issues that need to be addressed are point stabilization, path planning, trajectory tracking, and obstacle avoidance [4,5]. Wang et al. presented the trajectory tracking of a three Mecanum wheeled mobile robot with symmetric configuration. In this study, a model predictive controller was developed along with a kinematic model. Further, the authors have demonstrated receding horizon controllers, potential field concepts, and backstepping techniques as control strategies that can be used for mobile robot navigation.
A pulse width modulation-based odometry control approach has been used for path planning and motion control of a four-wheeled X configured mobile robot [5]. As future work, the authors suggest implementing a proportional–integral–derivative (PID) or fuzzy controller to address the error resulted in actual heading angle and the reference heading angle difference.
Energy optimization in mobile robots is one of the trending areas of the research. Zhao et al. presented an energy optimization method considering motion-induced forces and internal forces for a three-cluster wheeled robot. The results show that controlling those interactive forces caused the energy utilization to be optimized [6].
Li et al.[7] demonstrated how controlling actuator dynamics and actuator saturation leads to a stable motion controller using a kinematic model and motor dynamics of a three-wheel omnidirectional mobile robot.
Soccer is a sport that needs high mobility like stops, turns, and so on. Omni-wheels can be successfully used in such soccer playing applications in contrast with conventional wheels. Samani et al. [8] presented a three-wheel omnidirectional soccer-playing robot without heading direction. A kinematic model with a linear and angular momentum balance for motor dynamics was considered in the research assuming a no-slip condition. Self-localization of the robot was accomplished using odometry.
Path planning and trajectory tracking are two challenges that a mobile robot should overcome. Most studies either addressed path planning or trajectory tracking [9]. Kim et al. suggested a brain limbic system-based controller for motion control of a four-wheeled omni-directional mobile robot while using an A* and fuzzy analytic hierarchical process. The controllers are based on the kinematics and motor dynamics of the robot.
A simplified Mecanum wheel model has been presented by Dosoftei et al. [10] using a reduced omni-wheel model. Assuming a no-slip condition, a kinematic model and inverse kinematic model are presented in the work. The dynamic model of the four-wheeled mobile robot was developed using Simscape Multibody™, a tool used for 3D virtual prototyping.
In Ref. [11], a generalized n-number of wheels robot model was presented. The final velocities of the robot wheels have been derived by considering traction forces from the motors. The researchers came up with an accurate driving check model by comparing the wheel velocities to identify whether the robot is slipping. A trajectory linearization controller for dynamic control was presented in Ref. [12,13]. The controller has an inner loop for dynamic control and an outer loop for kinematic control based on nonlinear robot motor dynamics. A sensor fusion method has been proposed in combination with onboard sensors and a vision system for the robot to provide accurate reliable position and orientation measurements.
Universal omnidirectional wheels or Mecanum wheeled platform velocities are proportional to the wheel positions/body configurations [14]. Song and Byun presented the work on a steerable universal omni-wheeled platform for squarebase with the wheels located at the corners of the configuration (see Fig. 2(c)). The velocity of the robot is controlled using the steering mechanism by changing the angle of four wheels. Acceleration or deceleration is an important parameter that determines the slipping of wheels and controlability of mobility. Reference [15] shows the use of acceleration and velocity filters to avoid wheel slipping along curved paths. The motor dynamics with kinematics for a four-wheeled mobile robot was discussed. The use of a Kalman filter to overcome slippage in mobile robot navigation is discussed in Ref. [16]. By using the kinematic model, a matlab simulation was performed for four omni-wheels. A dynamic model was derived using Kane’s equations in Ref. [17] considering global linear velocities and angular velocities as independent speeds. The motor dynamics and robot kinematics were used for a four Mecanum wheeled robot. Further, a nonlinear model predictive controller was used to avoid velocity obstacles.
Most researchers have included motor dynamics of the robots and Newton–Euler equations or Lagrangian equations to derive dynamic models or software packages like Simscape Multibody™. But to have an accurate simulation of the mechanical system, a multibody dynamic model is required. The method of Lagrange tends to involve computer algorithms with a large number of unnecessary arithmetic operations due to the differential-algebraic nature of the Lagrangian formulation with nonholonomic constraints. Newton’s method is associated with eliminating reaction forces and torques that arise from the interaction between the mechanical elements of the robot.
Kane’s dynamic equations enable computer algorithms to work fast because the formulation is purely differential in nature [18]. There appears to be no prior work that demonstrated a complete nonholonnomic dynamic model of the system, including barrel dynamics. We address this issue in what follows. We also demonstrate that simpler controllers can be utilized to provide accurate trajectory tracking with a complete dynamic model. A nonholonomic multibody dynamic model is presented using Kane’s equations assuming no-slip omni-wheels. wolfram mathematica [19] was used for the simulation along with symbolic equation processing [20]. In what follows, the model is developed along with a PID controller. Numerical model validation, trajectory tracking, and disturbance rejection are demonstrated.
2 Methodology
2.1 Forward Kinematic Modeling.
The forward kinematic model describes the work-space of a robot, positional capabilities, and constraints. This is the motion of the robot regardless of the forces and torques. The kinematic model can be used to study the behavior of the positions, velocity, and acceleration [21,22]. The role of kinematics is to ensure the functionality of the mechanism. In the first part of this study, forward kinematic equations are developed. Here, the robot was divided into 13 bodies. The wheel was assumed to have two parts, a torus comprised with all the rollers (radius R) and a solid disk of radius (R-r) (Fig. 3). The passive rollers mounted on the periphery of a wheel add an extra degree-of-freedom to each wheel.2
2.2 Inverse Kinematic Modeling.
2.3 Dynamic Modeling.
The dynamics of the robot contain its behavior under the applied forces and torques. The equations that represent the dynamics of the robot play an important role in designing and understanding its operation. The dynamic model can be used to understand the performance of the robot under different forces and torques. Kane’s dynamical equations [23] is the approach utilized in this work. Kane’s equations are formulated for nonholonomic systems and are suitable for this model. This is an approach to derive dynamic models systematically by studying the independent variables. There is no necessity to deal with interaction forces and torques. This approach enables computers to work fast with less effort computing the model algorithms [18].
In this work, the wheels are assumed to be composed of a torus (major radius R, minor radius r), contact roller (radius r), and a disk of radius (R − r) and thickness 2r.4 The torus is assumed to represent the mass and inertia of the rollers in periphery of the wheel. The roller at the contact point with the floor tracks the inertia of the roller perpendicular to the wheel axis. We assume the rollers not in contact with the ground cease spinning.
To apply Kane’s dynamic equation, it was required to calculate the mass moment of inertia (see Table 1), position vectors, angular velocities, and linear velocities relative to the {n} frame for each body. When the dynamic equations are derived, the only unknowns are qn, q′n, ωi, and Tmoti.
2.4 Proportional–Integral–Derivative Controller.
3 Results
3.1 Forward Kinematic Model.
The forward kinematic equations in Sec. 2.1 were solved using mathematica [19].5 For a given set of q′1 [t], q′2 [t], q′3 [t] the model calculates the q′k [t] (k = 4 to 11). Figure 7 shows the graphical response of model for given q′1 [t] = 10 in./s, q′2 [t] = 10 in./s, q′3 [t] = 5 rad/s. The model was expected to spin around the z-axis and move in a diagonal direction. The model successfully responded to any combination of inputs. Shown in Fig. 7 are qi [t] (i = 1, 2,…, 11) and q1 [t] versus q2 [t] from top left to bottom right. As shown in the q1 [t] versus q2 [t] parametric plot, the robot is moving on a diagonal track, which is 45 deg to . The q3 [t] versus t plot shows that the robot is spinning around the z-axis with constant angular velocity.
![Forward kinematics response plots for q′1 [t] = 10 in./s, q′2 [t] = 10 in./s, and q′3 [t] = 5 rad/s. (a) q1 [t], q2 [t] versus t (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t and (d) q1 [t] versus q2 [t].](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f007.png?Expires=1681269711&Signature=P2lqBhvS7cr5bQ0DDvNe-bvEIftkF6irCxWr6IYT9Rud5HzVyc5CswwlJOQIdLCjCL7L5iTZnVx2xvwLgv0xkGn0~xtxuCKnF2nS7d7VVNa4eP4uW0Mla9-CfXBR0S2jcWPZHom~Tfll2AwzQezBq5LLlnhsFu286JGRcruRRVxjHIdvzTQEvwzL9-JoIpSl0HcwKInynvkyMKnCnFBPWgtEFzLhWYGXd5aWFxBGLlER~L0xcoqPTVJagZOnMXB7wmlT0kmta2Q-SRBZy1~COOKHKWqWlOOaFhW72BpIY4e4lrEFLginxtINkNBv8CM1~1s8FUiwmhXaZa0XqR6xCg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Forward kinematics response plots for q′1 [t] = 10 in./s, q′2 [t] = 10 in./s, and q′3 [t] = 5 rad/s. (a) q1 [t], q2 [t] versus t (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t and (d) q1 [t] versus q2 [t].
3.2 Inverse Kinematic Model.
The inverse kinematics equations in Sec. 2.2 (Eqs. (15)–(19)) were solved. The output response of the global positions and roller velocities for given inputs ω1, ω2, ω3, and ω4 were simulated for various combinations. Figure 8 shows the response of the model for ω1 = 10 rad/s, ω2 = −8 rad/s, ω3 = 6 rad/s, and ω4 = −4 rad/s. The robot was expected to move around a circle.
![Inverse kinematic response plots: ω1 = 10 rad/s, ω2 = −8 rad/s, ω3 = 6 rad/s, and ω4 = −4 rad/s. (a) q1 [t], q2 [t] versus t (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t (d) q1 [t] versus q2 [t].](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f008.png?Expires=1681269711&Signature=vTDfeAwr-owvA3ORTI-ggWd1vu-arfAxhaMk84geflu5-i5fabK~8Z59ynKnhOq5~BAFa9bm7O1bq33bBG-iwS3ND~l2qk~q6KnTBBfGpY6MpNDUzoYZTckzA8CQrU6Tg837MpPOJS9NlER1vWGR-rNaUQ4LAbL8VOE0flvWAmqw8SOThdhLRHHKXKJzrr~2Gsw21ak9ZpjouHFo7~0D-RV6SqH621gTBBKi2flwW9P2koPwAzjeqWDHXF2~cSHUEoeWJUk-rwEtHvza60eX~A5epZlIjiXuWXUdlZdSCi0qAiCQNzlQJQQ41fseFTJF8HqBFoXydAhMUHur-5lDeQ__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Inverse kinematic response plots: ω1 = 10 rad/s, ω2 = −8 rad/s, ω3 = 6 rad/s, and ω4 = −4 rad/s. (a) q1 [t], q2 [t] versus t (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t (d) q1 [t] versus q2 [t].
The parametric plot of q1 [t] versus q2 [t] shown in the Fig. 8 shows that the robot inverse kinematic model satisfied the expected outcome. The q1 [t] and q2 [t] plots show that they are in a sinusoidal pattern.
3.3 Dynamic Model.
The dynamic equations of the robot (Sec. 2.3 (Eqs. (20)–(23))) simulates the behavior of the robot for given motor torques Tm i, i = 1, 2, 3, 4. Figure 9 shows the responses of qi [t], i = 1, 2, 3, …, 11 for Tm1 = 10 lb-in., Tm2 = −10 lb-in., Tm3 = 10 lb-in., and Tm4 = −10 lb-in. values. The robot was expected to spin around its own z-axis. The parametric plot q1 [t] versus q2 [t] shows that the dynamic model was able to spin around its z-axis with a slight deviation of 0.01 in. probably due to numerical error buildup. With respect to the dimensions of the robot and 3D animation, the robot is moving as expected. Figure 10 shows the resulting ω1, ω2, ω3, and ω4 for the given torque values. Wheel 1 and wheel 3 angular velocities were expected to increase, while wheel 2 and wheel 4 angular velocities are monotonically decreasing. The dynamic model successfully simulated any given combination of input torques.
![Response of dynamic equations for Tm1 = 10 lb-in., Tm2 = −10 lb-in., Tm3 = 10 lb-in., and Tm4 = −10 lb-in. (a) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t (b) q5 [t], q7 [t], q9 [t], q11 [t] versus t (c) q1 [t] versus q2 [t].](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f009.png?Expires=1681269711&Signature=QlMtyZIkFfRE5J~NFpkBSMkzn5nUmUoiA~JE2pA5qKVmVIqy0r3ODX1Mpf2VS82Lc90XzWE06Zqneo1sf-FszluzUx8nncKMY~wBX2G4nHL4XNcxnuttTEV~LiICl1m36M-QRwZgZW6DdR7R6jF6NCwseHFCx7seb7zji~SK6wDSdA~Qve8asQ52EMGfKAHKX-YsKuBAPKpxibnd8gxI1UKmI6kVFHSjLLiUToibeV74gNpiyAVRvB1Z1MJUKd9sf6gCuguRYaIpG5IkBUraGj1PDwt0CrJzfSIRN2XTnPlbR6pMOG1ev7q6Ozm-FUmW83SxwuZWqZJ2etuVfsL9AA__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Response of dynamic equations for Tm1 = 10 lb-in., Tm2 = −10 lb-in., Tm3 = 10 lb-in., and Tm4 = −10 lb-in. (a) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t (b) q5 [t], q7 [t], q9 [t], q11 [t] versus t (c) q1 [t] versus q2 [t].
![Wheel responses for Tm1 = 10 lb-in., Tm2 = −10 lb-in., Tm3 = 10 lb-in., and Tm4 = −10 lb-in. (a) ω1 [t] versus t (b) ω2 [t] versus t (c) ω3 [t] versus t (d) ω4 [t] versus t.](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f010.png?Expires=1681269711&Signature=Z2lil~exmtF1Vb6cHaUktwnlQXT2VLVa9190NwUUTlpldOd1lnMPD6bHFdszxw-oQLLA1ujiwae3zFPhE9Zm2FzObg06teZ3TiZ-NT4zje4PzxsTK5nQ6GQXg65xtii2LhmfwBEIeaxRi6Yy39LwcvD2BS0-3rs0r966qcC2tQsj31TjktIzu1Wbv1d3jc0eXmaIFF1wFTUf1P8W06wUeO3MQ0LqwE~sWTMBG012plOZIpR7Ypb~TsSfnfiYLWzUpmt5lpfg6ByB45O8b~ei3mu0eO-wt0kiSVxMkKDnV-lrHsWhZMwuZWcYHELfsX1S-BxkoSaK8OoBX8N29qv~kQ__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Wheel responses for Tm1 = 10 lb-in., Tm2 = −10 lb-in., Tm3 = 10 lb-in., and Tm4 = −10 lb-in. (a) ω1 [t] versus t (b) ω2 [t] versus t (c) ω3 [t] versus t (d) ω4 [t] versus t.
3.4 Model Validation via Energy and Momentum Conservation.
Energy conservation of the robot can be used as a test to validate the model. By making all the external forces zero (Tmi = 0), inputs are given in terms of angular velocity initial conditions. Figure 11 shows the q1 [t] versus q2 [t] parametric plot and energy plot for ω1 = 10 rad/s, ω2 = −10 rad/s, ω3 = 10 rad/s, and ω4 = −10 rad/s. It is observed that the total energy is a constant. Also, it was expected the model should spin around the z-axis for the given inputs, indicating angular momentum conservation.
![(a) Energy conservation, (b) rotating speed, and (c) q1 [t] versus q2 [t] parametric response for ω1 = 10 rad/s, ω2 = −10 rad/s, ω3 = 10 rad/s, and ω4 = −10 rad/s](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f011.png?Expires=1681269711&Signature=JYBVo35NJRm0KEppDtTM4D2DpT53WJh18HSFZLc4bBqnjrmLl~eWI6S2RNfDTgzrjjJtqgbT5VPpU2KXroY9Z8gX84QkCEoZ1-SlyUlHuT8nOP0GfoOnmrloRRJzDlD9D8KS2wGD5Mb2Q4LaTdL8EdEC0A4V1TD~9jHgV6abIZiNa2LU93EBGn6rbgWPqT8kLgUHWzGzKrrvwJIVjUkv5xUaARC9zC-KgF7oSvCrZmznn51RiGdWbZyHibgBmmQUWfchQySaOPeY3pea8pY1qXfQ2T4e3c5nTNaGCqz-gcngjbINfEjzLnJVcE-RlQFZA1FgsWCeOVf4ieqtLCnJkg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
(a) Energy conservation, (b) rotating speed, and (c) q1 [t] versus q2 [t] parametric response for ω1 = 10 rad/s, ω2 = −10 rad/s, ω3 = 10 rad/s, and ω4 = −10 rad/s
In Fig. 12, energy conservation of the model was also checked by giving it initial velocity along the direction. It was observed that the model successfully satisfy the energy and linear momentum conservation for any combination of inputs.
![(a) Energy conservation, (b) speed along n^1 direction, and (c) q1 [t] versus q2 [t] parametric response for ω1 = 10 rad/s, ω2 = 10 rad/s, ω3 = 0 rad/s, and ω4 = 0 rad/s](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f012.png?Expires=1681269711&Signature=CVw7AkYp5Vvf0GW7voIVm60vjcm7hWRlTrgiwljBXn2nAsP7WidGkDhJItC4Fdp212oi5Zyu6lcgjLDRv7d3-AsyxI8l3yK7yM2J59u9QlnMGNXBTEQ6airapkaP39Rq5ijG695dlhY8i90AaLvSaM6TpjNOsa9bq5E7Ngp6mYl666IcFwn7OTM1mtLUyeHxb~FiDH53zNzqQXX7rGD7NPUzvNGfyaM~b-UFME~A6IQ3XJuA9q6~AixP47nK27ZGNT9n~4fZw6MopJqmh5W3psJ6GP97A~pL3AOI8LqHYDWOV5WcGjd6qLNL5hC1M1tsamJIT9kZelYPnWi04g~8pg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
(a) Energy conservation, (b) speed along direction, and (c) q1 [t] versus q2 [t] parametric response for ω1 = 10 rad/s, ω2 = 10 rad/s, ω3 = 0 rad/s, and ω4 = 0 rad/s
3.5 Proportional–Integral–Derivative Controller.
The implemented PID controller was used to follow a figure eight path (Eq. (26) and Fig. 13). Figure 14 shows the response plots of ωi and Tmi, i = 1, 2, 3, 4. It was observed that the motor torques are in a reasonable range, which is from –0.6 lb-in. to 0.6 lb-in. (Fig. 15). Also, as shown in Fig. 16, the q3 [t] versus t plot, the model follows the path while spinning around the z-axis. This was a 50 s maneuver covering 40 × 40 in.2 area.
![Response plots of ωi and Tmi, i = 1, 2, 3, 4 for the path Eq. (26): (a) ω1 [t], ω2 [t] versus t, (b) ω3 [t], ω4 [t] versus t, (c) Tm1 [t], Tm3 [t] versus t and (d) Tm2 [t], Tm4 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f014.png?Expires=1681269711&Signature=z9TqvIMriZ6Mr6euUCC9sY3ktTCHnql~l0Jl94QgpdXzktWRSaSTXbj7c01EDUx-GaXniEBCMLgVwl7lJDoz8Su5HWM2cF1879SSI4FluWZdTIIkazapl-kNVUKaquVg7CG6NKlRDYmOR82D8EV0f1M~XVsqJpQD~HsxX6MvG94cQmKxH7Huqq3e8E3A7LHME3-V09cY4f~p~Ke2qIFuWB8vyHGtilLw2mCFR4WlbDJ5HHrSc33ZwVymgoC1XxTYaH~mFP8IlQs1JTVD-Vdazp7YGxEHHFnMvww1DhH6d0ZBPURI480SmqzKNxKSy2sEXZre4CdedjVLpNIV2eJDFw__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Response plots of ωi and Tmi, i = 1, 2, 3, 4 for the path Eq. (26): (a) ω1 [t], ω2 [t] versus t, (b) ω3 [t], ω4 [t] versus t, (c) Tm1 [t], Tm3 [t] versus t and (d) Tm2 [t], Tm4 [t] versus t
![Response plots of ωi and Tmi, i = 1, 2, 3, 4 for the path Eq. (26): (a) ω1 [t], ω2 [t] versus t, (b) ω3 [t], ω4 [t] versus t, (c) Tm1 [t], Tm3 [t] versus t and (d) Tm2 [t], Tm4 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f014.png?Expires=1681269711&Signature=z9TqvIMriZ6Mr6euUCC9sY3ktTCHnql~l0Jl94QgpdXzktWRSaSTXbj7c01EDUx-GaXniEBCMLgVwl7lJDoz8Su5HWM2cF1879SSI4FluWZdTIIkazapl-kNVUKaquVg7CG6NKlRDYmOR82D8EV0f1M~XVsqJpQD~HsxX6MvG94cQmKxH7Huqq3e8E3A7LHME3-V09cY4f~p~Ke2qIFuWB8vyHGtilLw2mCFR4WlbDJ5HHrSc33ZwVymgoC1XxTYaH~mFP8IlQs1JTVD-Vdazp7YGxEHHFnMvww1DhH6d0ZBPURI480SmqzKNxKSy2sEXZre4CdedjVLpNIV2eJDFw__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Response plots of ωi and Tmi, i = 1, 2, 3, 4 for the path Eq. (26): (a) ω1 [t], ω2 [t] versus t, (b) ω3 [t], ω4 [t] versus t, (c) Tm1 [t], Tm3 [t] versus t and (d) Tm2 [t], Tm4 [t] versus t
![Response plots of qi [t], i = 1, 2, …, 11 for the path Eq. (26): (a) q1 [t], q2 [t] versus t, (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t, (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t and (d) q1 [t] versus q2 [t]](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f016.png?Expires=1681269711&Signature=odjnZF2ooqP0Atn1Q~Pz~e~YtUkjO2vsU7~cYGZSji78YyApQPLP1SYuMfxwIIHK1k3teSPUA7JwI4lfs1FEt14ju41tE8S3AQ6xrKlSKLlik2GF4wyM6sLImvUnQatLj23IEUh1nVp2jbfxqzcSdVUkpHlJOc7j9ACkixbQeiqSkJMndu7U7n~DJsEJ~~3oNDI0G01~AhWxxaqmxu8NWZ4za0suQ8Dkc73Iretl4p06tErSMPlvaTbpfM2Cusqat-kw7lARb1JJwAfdrod98yJEJXt3s1Op2hJ8I~6dUMCe-3juoaFWq1NOOlKYxFiPWYvtcCi~U-MY6ySKM7Pa~A__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Response plots of qi [t], i = 1, 2, …, 11 for the path Eq. (26): (a) q1 [t], q2 [t] versus t, (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t, (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t and (d) q1 [t] versus q2 [t]
![Response plots of qi [t], i = 1, 2, …, 11 for the path Eq. (26): (a) q1 [t], q2 [t] versus t, (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t, (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t and (d) q1 [t] versus q2 [t]](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f016.png?Expires=1681269711&Signature=odjnZF2ooqP0Atn1Q~Pz~e~YtUkjO2vsU7~cYGZSji78YyApQPLP1SYuMfxwIIHK1k3teSPUA7JwI4lfs1FEt14ju41tE8S3AQ6xrKlSKLlik2GF4wyM6sLImvUnQatLj23IEUh1nVp2jbfxqzcSdVUkpHlJOc7j9ACkixbQeiqSkJMndu7U7n~DJsEJ~~3oNDI0G01~AhWxxaqmxu8NWZ4za0suQ8Dkc73Iretl4p06tErSMPlvaTbpfM2Cusqat-kw7lARb1JJwAfdrod98yJEJXt3s1Op2hJ8I~6dUMCe-3juoaFWq1NOOlKYxFiPWYvtcCi~U-MY6ySKM7Pa~A__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Response plots of qi [t], i = 1, 2, …, 11 for the path Eq. (26): (a) q1 [t], q2 [t] versus t, (b) q3 [t], q4 [t], q6 [t], q8 [t], q10 [t] versus t, (c) q5 [t], q7 [t], q9 [t], q11 [t] versus t and (d) q1 [t] versus q2 [t]
Figure 13 shows the resulting error of the path for the 50 s simulation. Observe that the error is in the range of to 0.005% as shown in Fig. 17. The error in the direction is in the range of −0.0008 to 0.0002 in., while that in the direction is in the range of −0.001 in. to 0.0004 in. The tracking error of the spin around axis is −6 × 10−6 rad to 6 × 10−6 rad (Fig. 18).
![Tracking error, erri [t] = qdi [t] − qi [t], i = 4, 6, 8, 10 for the path Eq. (26): (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f017.png?Expires=1681269711&Signature=P84wB6HPQC0Zcfykge0bF6vNnDfrs8xDK0CMz-3x4Tnf2SUpNQhIrZMO9reci7RsqNOCO3H~0~7HaGO785LXVuW6U4S1xd2qgfGlRtN5AuYh~arChO36-EmsbHht2Z8tbdt0ivNapg0KxxCa3MpZRlf5f3yCe3o4qOwAGueygt0V3JrTUnbg5lPB0C~k7ujcJ9O8ZUYb6Zgz6TSZG7EHeIl55Cqb9skndVPB7xKd7P9Wl01Bnr70wqoWxa7LRbLmjwcUXOY2yj5NbXegnM2Z80qM7iKrGjxPIr~yQActlVSE0jyJyj~m6WGyIa~wMOAP2~-wGmrYtQHaqxE9G0ylhg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Tracking error, erri [t] = qdi [t] − qi [t], i = 4, 6, 8, 10 for the path Eq. (26): (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t
![Tracking error, erri [t] = qdi [t] − qi [t], i = 4, 6, 8, 10 for the path Eq. (26): (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f017.png?Expires=1681269711&Signature=P84wB6HPQC0Zcfykge0bF6vNnDfrs8xDK0CMz-3x4Tnf2SUpNQhIrZMO9reci7RsqNOCO3H~0~7HaGO785LXVuW6U4S1xd2qgfGlRtN5AuYh~arChO36-EmsbHht2Z8tbdt0ivNapg0KxxCa3MpZRlf5f3yCe3o4qOwAGueygt0V3JrTUnbg5lPB0C~k7ujcJ9O8ZUYb6Zgz6TSZG7EHeIl55Cqb9skndVPB7xKd7P9Wl01Bnr70wqoWxa7LRbLmjwcUXOY2yj5NbXegnM2Z80qM7iKrGjxPIr~yQActlVSE0jyJyj~m6WGyIa~wMOAP2~-wGmrYtQHaqxE9G0ylhg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Tracking error, erri [t] = qdi [t] − qi [t], i = 4, 6, 8, 10 for the path Eq. (26): (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t
![Tracking error in n^1, n^2, and n^3 directions for the path Eq. (26): (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f018.png?Expires=1681269711&Signature=gxVTjClr8zO3qq9vNwAZTDxlY1tqnX123O3fceQAK3RNdf2CNNbD6j8H4DY6h9U3HuBl91LfsMjpvTt~z56DbFTxjHXMnzIdnVPBWs3W2weptVwKrHQ0NQ9nZp6iEHUkAkXFJbpA16yL2o4BVZElLhJ8SEpq1pdcoO9N4cUrAmnvhMR599IgI35lOX77HvPtepA26~g-WCcJOXG56km~Q4A-OSq37zccRirn-xYUpF7qGzinn4asi-v4EDMIK5M9uBT1rPOMad2etl6VyfuTp0qSEttfd35Q4rPjuRxTqeRXRdI4wWb6kF44xr3ygyo3uCqpbZzbYgJSN1yZtaTT1A__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Tracking error in , , and directions for the path Eq. (26): (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t
![Tracking error in n^1, n^2, and n^3 directions for the path Eq. (26): (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f018.png?Expires=1681269711&Signature=gxVTjClr8zO3qq9vNwAZTDxlY1tqnX123O3fceQAK3RNdf2CNNbD6j8H4DY6h9U3HuBl91LfsMjpvTt~z56DbFTxjHXMnzIdnVPBWs3W2weptVwKrHQ0NQ9nZp6iEHUkAkXFJbpA16yL2o4BVZElLhJ8SEpq1pdcoO9N4cUrAmnvhMR599IgI35lOX77HvPtepA26~g-WCcJOXG56km~Q4A-OSq37zccRirn-xYUpF7qGzinn4asi-v4EDMIK5M9uBT1rPOMad2etl6VyfuTp0qSEttfd35Q4rPjuRxTqeRXRdI4wWb6kF44xr3ygyo3uCqpbZzbYgJSN1yZtaTT1A__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Tracking error in , , and directions for the path Eq. (26): (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t
3.6 Sharp Curves.
Figure 19 shows that the required motor torques to track the path with sharp edges varies from 20 lb-in. to 40 lb-in. It was observed that the controller is able to follow the given path with small error (Fig. 20). Also, the tracking error of wheels varies between 5% and 10% at its peak, but on average, it is negligible (Fig. 21). This is due to sudden changes in the motor torques to satisfy the trajectory tracking. Figure 22(a) shows that the given path and followed path with two sharp curves are almost the same. There is a slight difference at the two sharp curves, which are negligible. At 5 s and 12 s, the robot is moving through two sharp curves. In Fig. 22(b), velocity plots, it is shown that the robot does not stop at curves and is continuously moving.
![Resulting motor torques for sharp edge trajectory (a) Tm1 [t], Tm3 [t] versus t (b) Tm2 [t], Tm4 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f019.png?Expires=1681269711&Signature=Rjl0yLEQ0ZhBaT7lZTTs8WSNYMwfMmLA3HQNQIHIv1IuItLP8cSbQfqumkcGVtQ~cjNOxzqnjigmv-yc6z9jJbRtTJEJSOjg8Orp63VbLC3xq6a~H4yqQVdMbJmX4BxzTgJapV4wS6DRL1Bk~mFa9J1qY6UZC7d1vTgjDAYhGjdk4GP2K5MjwTKRKfcPeowgY~6sDxxfk8LKdmKz6IyRnor3Q2yptWGfberArsKepQ1sSSUboBDrd3Anq0t2E1vuYZOtH7AT2WduT6ClkaD7UJdi4n94lELrB4Hhop3noE~3aF8CNsUG~mHoeSIsSReWK-dU70qmq7Vi9dVzFuZHrA__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Resulting motor torques for sharp edge trajectory (a) Tm1 [t], Tm3 [t] versus t (b) Tm2 [t], Tm4 [t] versus t
![Trajectory tracking errors of the robot wheels for sharp curves (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f020.png?Expires=1681269711&Signature=qOiMy2IIzVYtVrC~6YfiUbQBHzy43HbON8BY5vojJDRvi65d0q9SmCukbvzHOCjV3wupNqXyxDqf~rmgySYVWOihHiuJ2IY3yp-LegqW6XIO3xfrkOI~~4moE877nsJ00gCAY1XrM~bPtwVNZHTddC-bivVhhoy8A7gePwpbNKeS~Fkzk6vr6g0wb-dBaNrTb5xZH-ufKr6JElJeBKNn~0t~KHfRqAcaHgxTGyz~QYzcC5NAXWNtgiicKOZFfPQw2iIAXTW2oTvQm-QVhkYNjtRm2KuuISPW47B~fViOY9qmBTanTaEmhpt-8n7eyy2A1m4uvdVN3HD8yNN5pJTf7Q__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Trajectory tracking errors of the robot wheels for sharp curves (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t
![Trajectory tracking errors along n^1, n^2, and n^3 for sharp curves (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f021.png?Expires=1681269712&Signature=4vQZMkbXqyYJUHMpNOyVznVLdq6wmfWx2~gSqnOcw0umx9LUvACpJnnXNvpAGEL6o3OoKmWoDoGV44nsfIuoTgm6hZANrzOtR3OIg6Lqhs0f454klUVFyaiPDf9spUzZMWg8xmB139LkFLQj84vu2dMts97xrJSgnCG7iUaJhP2r3r~tg3d7pP~xFsEdYm-nlxuUxYGDI705l1K8Qs1aifTGv-Q2H7VXwDrElFzAzNAPiUPX5FIpEg2hEfzCvjoDQbRykv8y7BasihllLAOlNTrK3JeWJ6o9VBExM-cByhwZ0O7vbXVOAhcIo73EdbweeDUip4Cfo0Ig0wctFMrJAg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Trajectory tracking errors along , , and for sharp curves (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t

(a) Difference between given path and followed path with sharp curves and (b) velocities in global x, y, and z directions
3.7 Behavior Under Disturbances.

Disturbance force along direction and direction (a) Disturbance force along n1 direction (b) Disturbance force along n2 direction
As illustrated in Fig. 24, the motor torques varies between −20 lb-in. and 20 lb-in. to track the given path. Here, the tracking error of wheels 1–4 lies between −0.008 and 0.006 rad, and the error along direction is between −0.02 and 0.06 in., while in the direction −0.04 to 0.02 inches. The tracking error of q3 [t] lies between −6 × 10−6 rad and 6 × 10−6 rad. For a maneuvering time of 50s for the figure eight path with a disturbance forces along direction and direction, the controller demonstrated that it tracks the path with small error (see Figs. 25–27).
![Motor torques under the disturbance forces to follow figure eight path (a) Tm1 [t], Tm3 [t] versus t (b) Tm2 [t], Tm4 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f024.png?Expires=1681269712&Signature=zDax1T975nS9xFdSX3xfa-UGVowXDl4S5U8aJuPP8rYgmfjaNOw7mYDE~R2~G7MuKhLfnfCYU66L-5-mJ3GCt0K3d5dSDqVeNZaA-rRwaICMg-jRiZTKgHsjEUiigHw9cHHeP1sdKwk8JdRcOBrUCi1vEsgpiLCQ-WYc~evkmletxs80Fnk3yIykTNAtTgCHrSq97nM9kSkltz14QtZhs38NHdNdWxdryyByIdPxIeHflbgpL5loS~2k9JZBsHiox2nSAB338e5PZG12Lckojmiwf6sRs7m6yG0fpgtldLxo6fgCnBIkMgeM~kuK7~EXozaz-bJzCzHPIuV045M3lw__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Motor torques under the disturbance forces to follow figure eight path (a) Tm1 [t], Tm3 [t] versus t (b) Tm2 [t], Tm4 [t] versus t
![Error of wheel displacement under disturbance forces following figure eight path (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f025.png?Expires=1681269712&Signature=PFlGK8uwGf-rp5M1LAPnL~e8C7fpL0Zqw4aoGIQWWdq~lBHq1ZE2lZTpTpMu9XJvgrJiKXcwLD-wZkaDu3VGEJ04NPxJxf2eVlNWIlv-ByasmkR2RD~gchd6cNg65VqUlS3EiRxP2bMGKt4jqhQI1SneSNPSKF~76G1C5~MtYTlLqw9Y1r7xglMP1cVebmxQ2~l1xt5cmSkIRG34~xzS4X~yl2VGHDL3v5fCyEZC3zuSwO4vqVeYV2L58AHOaOmshAI0PhcBQMNZhc5WOYjI~e8jxZHeuvRmh0wwk5eqXF-BFmn1OYNg0v30PEfhkAtrjBI6fZ8AkBZZ3X6hQ526Qg__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Error of wheel displacement under disturbance forces following figure eight path (a) errq4 [t] errq8 [t] versus t (b) errq6 [t] errq10 [t] versus t
![Error along n^1, n^2, and n^3 directions under disturbance forces following a figure eight path (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t](https://asmedc.silverchair-cdn.com/asmedc/content_public/journal/lettersdynsys/2/4/10.1115_1.4055690/2/m_aldsc_2_4_040902_f026.png?Expires=1681269712&Signature=HFwuGqYsLoX6yCjDe7bgXedPC7KQB0XD2FI9A86ChWS7-jaj3NDo~17XD4qnlVAqB29jdyjSh4YJAERpBUOt8Ue8IRtcvo-YV9-krbgLm53rznjZQRFeQa13B3fs7WNVAdeaXDp4tZ3XgV6RwbTCW6xXMrUuUWweNJBHRENBiKPfuBWD9bFB16J0ckMpb4Dxs6YlxiclpORVKIx3LbGOqWxJOTy-evMEVImfpOAltCvefbRulYddXaMr7uavBqLwITP-5viFQthVkpM8erq5lRK-2IqCLF0Naj6oPJ-auipUZAVM4nagSV~ovfuXn0p7FpW7fdeq9QB0Kca5GaZQtw__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA)
Error along , , and directions under disturbance forces following a figure eight path (a) errq1 [t] errq2 [t] versus t (b) errq3 [t] versus t
4 Conclusion
In this study, we have presented a complete nonholonomic multibody dynamic model of a universal omnidirectional mobile robot, including the roller dynamics. We developed the model using Kane’s dynamic equations for a no-slip condition. Also, for the kinematics of the robot, we used vector projection of the heading velocity onto the body frames, which is easy to derive and understand. The kinematic model and the dynamic model of the robot were tested for various combinations of inputs (e.g., driving on a line, driving on a 45 deg line, standing in a place and spinning). The simulation results showed that the model is valid for any combination of inputs. The developed PID controller for trajectory tracking performed quite well with very small error. It was demonstrated that this multibody dynamic model along with the PID controller can track trajectories with either sharp curves or smooth curves. Also, the demonstration showed the controller can reject disturbance forces. The work has demonstrated that by developing a more complete model of the dynamics of the robot, a simpler control law produces very robust tracking.
In the future, it is expected to test the developed PID controller on a physical robot platform and confirm the results. A model with this fidelity can serve to train a reinforcement learning agent to effectively navigate in a dynamic environment.
Footnotes
Note: The second hub (see Fig. 1(c)) of the wheel is not drawn in graphics, but accounted for the model.
Conflict of Interest
There are no conflicts of interest.
Data Availability Statement
The datasets generated and supporting the findings of this article are obtainable from the corresponding author upon reasonable request.
Nomenclature
- r =
radius of roller (0.4 in.)
- R =
radius of wheel (3 in.)
- q1 =
displacement of robot in direction (in.)
- q2 =
displacement of robot in direction (in.)
- q3 =
angular displacement of robot in direction (rad)
- Lm =
length and width of the base (8 in.)
- Tmot =
torque of motors in wheels (lb-in).
- {n} =
global frame
- {a} =
body frame of robot
- {b}, {d}, {f}, {h} =
body frames of wheels
- q4, q6, q8, q10 =
angular displacements of wheel 1, 2, 3, and 4 (rad)
- q5, q7, q9, q11 =
angular displacements of rollers 1, 2, 3, and 4 (rad)
- ω1, ω2, ω3, ω4 =
angular velocities of wheel 1, 2, 3, and 4 (rad/s)
Appendix
Calculated mass moment of inertia of the bodies
Body | Mass moment of inertia (slug in2) |
---|---|
Base | = = 0.710008, = 1.39817 |
Wheel 1, 2 | = = 0.0628245, = 0.121937 |
Torus 1, 2 | = = 0.0781416, = 0.0946465 |
Roller 1, 2 | = = 0.000221784, = 0.000110892 |
Wheel 3, 4 | = = 0.0606622, = 0.117613 |
Torus 3, 4 | = = 0.0781416, = 0.0946465 |
Roller 3, 4 | = = 0.000221784, = 0.000221784 |
Body | Mass moment of inertia (slug in2) |
---|---|
Base | = = 0.710008, = 1.39817 |
Wheel 1, 2 | = = 0.0628245, = 0.121937 |
Torus 1, 2 | = = 0.0781416, = 0.0946465 |
Roller 1, 2 | = = 0.000221784, = 0.000110892 |
Wheel 3, 4 | = = 0.0606622, = 0.117613 |
Torus 3, 4 | = = 0.0781416, = 0.0946465 |
Roller 3, 4 | = = 0.000221784, = 0.000221784 |
Mass of the bodies
Body | Mass (slug) |
---|---|
Base | 0.0951426 |
Wheel 1, 2, 3, 4 | 0.025257 |
Torus 1, 2, 3, 4 | 0.013697 |
Roller 1, 2, 3, 4 | 0.00100613 |
Body | Mass (slug) |
---|---|
Base | 0.0951426 |
Wheel 1, 2, 3, 4 | 0.025257 |
Torus 1, 2, 3, 4 | 0.013697 |
Roller 1, 2, 3, 4 | 0.00100613 |
Dimensions of the bodies
Body | Dimensions (in.) |
---|---|
Base | Width = 8, depth = 8, height = 1 |
Wheel 1, 2, 3, 4 | Radius = 3, thickness = 0.8 |
Roller 1, 2, 3, 4 | Radius = 0.4, thickness = 1.2 |
Torus 1, 2, 3, 4 | Major radius = 2.6, minor radius = 0.4 |
Body | Dimensions (in.) |
---|---|
Base | Width = 8, depth = 8, height = 1 |
Wheel 1, 2, 3, 4 | Radius = 3, thickness = 0.8 |
Roller 1, 2, 3, 4 | Radius = 0.4, thickness = 1.2 |
Torus 1, 2, 3, 4 | Major radius = 2.6, minor radius = 0.4 |