International Journal of Control Science and Engineering
p-ISSN: 2168-4952 e-ISSN: 2168-4960
2013; 3(2): 48-57
doi:10.5923/j.control.20130302.03
Viktor Kálmán
Department of Control Engineering and Information Technology, Budapest University of Technology and Economics, Budapest, 1117, Hungary
Correspondence to: Viktor Kálmán, Department of Control Engineering and Information Technology, Budapest University of Technology and Economics, Budapest, 1117, Hungary.
| Email: | ![]() |
Copyright © 2012 Scientific & Academic Publishing. All Rights Reserved.
Due to their design omnidirectional wheels in general lack the capability to generate substantial side forces - forces perpendicular to the roller axis. This is caused by the free rolling rollers around the circumference, the very same thing that allows holonomic movement. An interesting consequence is that when an omnidirectional platform undergoes heavy braking, due to uneven wheel load or other disturbances, the vehicle has a tendency to swerve. An omnidirectional platform is a complex nonlinear system, where the nonlinearities come from the wheel material and construction, and the unidirectional force generation capability. In this article a corrective controller is described that prevents swerving even in the presence of high uncertainties. The operation and disturbance rejection of the controller is demonstrated by simulation in Modelica-Dymola environment.
Keywords: Omnidirectional Wheel, Brake Assistant, Mobile Robot, Simulation, Modelica
Cite this paper: Viktor Kálmán, Controlled Braking for Omnidirectional Wheels, International Journal of Control Science and Engineering, Vol. 3 No. 2, 2013, pp. 48-57. doi: 10.5923/j.control.20130302.03.
![]() | Figure 1. Examples for the use of omnidirectional wheels1 |
![]() | Figure 2. Cad drawing of a mecanum wheel[6] |
![]() | Figure 3. Brake induced swerving of a Mecanum platform |
![]() | Figure 4. Kinematics of the general omnidirectional vehicle |
of the local coordinate system and
, the unit ground normal pointing the same direction. Let N stand for the number of wheels, then the wheels are indexed by
.
denotes the position vector of the center of the wheel contact on the ground. The rollers touching the ground are illustrated by the shaded ellipses. The unit vector
is parallel with the roller axis, that is the active direction of the roller.
is the tangent velocity direction of the roller – that is the passive direction – associated with the rotation around
. All wheels are assumed to be identical with the same radius R. The unit vector
is the unit vector along the wheels axis of rotation,
is the tangent velocity direction of the wheel, as it is rotating around
. Lets denote the platform center velocity with
and magnitude of angular rotation with
The angular velocity points in the direction of
.After a short derivation2 the kinematic equations turn out to be the following:![]() | (1) |
![]() | (2) |
wheel angular velocities if:→
i.e. roller axes are not parallel to wheel axes, which would render the wheel incapable of generating movement→
, this corresponds to controllability of the system![]() | Figure 5. Forces and velocities during braking – illustration on a Mecanum platform |
![]() | (3) |
is the state vector,
is the input and
is a nonlinear function. In the case of an accelerating mechanical system, the state vector consists of resulting linear and angular velocity of a reference point. However for this particular case – a braking omnidirectional platform – it is more practical to also include
wheel center velocities:
These can be derived in a simple way from platform center linear and angular velocity.![]() | (4) |
is the vector pointing from the platform center to a given wheel center. The input vector consists of
a function of the friction force of the wheels and
driver input. For the time being let’s assume a constant driver input
. System parameters do not change frequently, only when the payload is changed, therefore we can consider the system autonomous, or time invariant. The main dynamical equations can be derived from Newton’s law:![]() | (5) |
![]() | (6) |
mass and
inertia tensor of the vehicle. Both can change with the load. Further uncertainty is added by the unknown magnitude of
friction forces. They are generated to oppose wheel velocity and point in the active direction of the wheel i.e.:![]() | (7) |
is a nonlinear function describing dependence of the friction force on wheel load and ground characteristics, for a given driver input i.e. pressure on the brake pedal.
is a unit vector pointing in the direction of the roller axis,
is a unit vector pointing in the opposing direction of the velocity of the given wheel center. See Figure 4 for notations.Another important property of the system, that it is strongly cross coupled, all inputs have an effect on all state variables. This follows from equation (2).
and
is not a straightforward task for omnidirectional vehicles, because wheel rotation based methods, frequently used for vehicles with differential, or Ackermann drive would introduce large errors. I assume them to be measurable, for example by a method described in[9], which is especially suited for omnidirectional platforms. This method works much like an optical mouse, however with greater speed range and accuracy than similar works from the literature[10],[11].
can be calculated using equation (4).
and
consequently it is generally not possible to change a single degree of freedom of the platform independently.The control loop is shown on Figure 6.![]() | Figure 6. The control loop |
![]() | (8) |
and
. The discontinuous feedback is given by:![]() | (9) |
is the
-th sliding surface, and![]() | (10) |
dimensional sliding manifold. The control problem consist of developing the
functions and the sliding surface
, so that the closed-loop system exhibits sliding mode.A sliding mode exists if, in the vicinity of the sliding surface the velocity vectors of the state trajectory are always directed towards the surface. In consequence if the state trajectory intersects the sliding surface, the value of the state trajectory remains within a neighborhood of the surface.
initial velocities, the platform has to gradually lose its angular velocity and it cannot gain velocity in the direction perpendicular to
i.e. it cannot divert form the trajectory before braking.![]() | Figure 7. Projections of wheel velocities on the initial velocity vector during braking |
![]() | (11) |
and a component due to
. My approach is based on the property that each component signifies whether the given –
-th – wheel is able to decrease that velocity component, therefore the control law can be constructed to apply the
-th brake when its corresponding
function is negative:![]() | (12) |
![]() | (13) |
can be calculated the following way:![]() | (14) |
is the projection of
on
the direction of the roller axis of the wheel. Similarly![]() | (15) |
is the distance from the platform center to the wheel center, and![]() | (16) |
and the direction of
are known from the geometry of the platform and they are generated to oppose the corresponding instantaneous wheel center velocities. is a different matter, the previously discussed two components change from wheel to wheel, the parallel component however can be decreased by any wheel in most cases, so if we calculate it from vector projections as in the case of
we interfere with Goal1. Let us insert a weighing function in the equation as follows:![]() | (17) |
is the projection of
on
the direction perpendicular to the roller axis of the wheel,
is a weighing function. The best way to define it is to make it angle dependent, large when the given roller is parallel with the velocity vector of its center – most efficient braking direction – and small otherwise. A suitable function I used is:![]() | (18) |
is the angle between the roller axis of the
-th wheel and the parallel component of the wheel center velocity,
is an odd integer, that scales the steepness of the function.Note that all coefficients in the control equation are defined by platform geometry, that is considered to be constant and known in advance.
vectors are measured by feedback sensors.
is defined for the platform, with three components corresponding to three degrees of freedom. The individual brakes on the wheels are switched on and off according to the sign of this error function, as described by equations (12) and (13).To find out if the closed loop control system is stable I decided to use the so called passivity approach[16] (p. 436). The passivity approach means that if the components in the feedback connection are passive in the sense that they do not generate energy on their own, then it is intuitively clear that the system will be passive. Generally a system is called passive it there exists a storage function
, such that for all 
![]() | (19) |
is the system output and
is the input respectively. This equation simply states, that the energy
of the system consists of the initial energy plus the supply rate
If the equality holds, the system is lossless, if it is a strict inequality then the system is dissipative. For example energy is lost because of friction in mechanical systems, because of heat exchange in thermodynamical, or because of heat generation in electrical systems.If we set the feedback to
where
is a positive gain then it is guaranteed that the system energy remains bounded, thus the feedback system is stable. Considering an omnidirectional platform in the context of my brake assist system, energy is stored in the form of kinetic energy. This can be written in the following form:![]() | (20) |
time instants. However for a braking maneuver a strict inequality is needed for the vehicle to stop in a reasonable distance, which means that if we neglect small frictional effects such as rolling resistance and bearing friction etc. a strict inequality can only be achieved if it is guaranteed that:→ at least one brake is actuated at any time instant→ with its active direction at an angle other than
to the direction of movementThe second criterion is guaranteed by design, if the vehicle is created so that the rank of
in equation (2) is 3, so that the vehicle is in fact useful. The first criterion means that the error function of at least one wheel has to be negative at all times. This is easily guaranteed if we add a rule for the controller that turns every brake on if 
![]() | Figure 8. A regular tire model with modified slip and force characteristics |
![]() | Figure 9. The most popular omnidirectional platforms in simulation, rendered by Dymola (rollers are not rendered for sake of effectiveness) |
angle (Mecanum wheels). I used lumped dynamic models. The vehicle body is represented by a point mass with inertia, and the load is represented by a simple point mass. Both the position and value of the masses, as well as vehicle dimensions are configurable. I also built a model of a three wheeled robot, with
rollers. Its body is represented by a point mass with inertia.Speed measurement feedback can be realized by any convenient method, however I propose an optical speed sensor mounted on the platform, described in[9]. The sensor measures true ground speed, and angular velocity, and works much like a conventional optical mouse. In the simulation the sensor is included by quantizing the simulated platform linear and angular speed values with a zero order hold, and adding random noise.Braking is realized by simulated hydraulic disc brakes mounted on the driveshaft; a wheel can be either driven by a torque (motor), slowed or stalled by braking or let to roll freely.The control loop works the following way: When the “driver” – or “autopilot” – pushes the brake pedal i.e. commanded brake force surpasses a limit, the brake assist gets activated and the value of
, current linear velocity is stored. While braking, instantaneous wheel center velocities are calculated according to equation (4), based on the instantaneous platform velocity values
and
that are “measured” by an optical feedback unit. During the braking maneuver the controller continuously evaluates the
error functions for each wheel. Based on the sign of the
-th error function the actuator at the
wheel lets the brake activate, – the brake force asserted by the “driver” gets applied – or inhibits braking – lets the wheel roll freely. For practical reasons, to avoid low speed drift, the brake assist is only active above a certain velocity threshold, below that it is switched off, and all the brakes are activated normally.![]() | Figure 10. Braking in a straight line – snapshots, slowing from 10m/s |
function for each wheel vs. time. The brakes were engaged at 4s. A change in the direction of friction forces is well visible at 5s.![]() | Figure 11. Platform velocity components in body reference and function for a straight line braking maneuver. Mecanum platform, unassisted case |
![]() | Figure 12. Disturbance rejection: snapshots of braking on “ice”. Bright platform – assist on, dark platform – assist off |
function did not change, keeping the actuator state constant, limiting feedback speed.To introduce unstructured disturbance I created a patch on the ground with a smaller friction coefficient and made the vehicle brake with some of its wheels on the “icy patch” and the others on regular ground. I also added some noise to the feedback. Noise is simulated by a uniform distribution centered around the real value with an adjustable percentage limit4. It can be set independently for the linear and the angular velocities. Also an offset can be incorporated in the signal.![]() | (21) |
is the noisy linear velocity signal,
is a percentage value, and
is an offset. Similarly![]() | (22) |
is the noisy angular velocity measurement p is a percent value and
is an offset. Figure 12 shows overlaid snapshots of an assisted and non-assisted braking maneuver on an ice patch, with a noisy feedback signal, where
The brighter colored platform had an active brake assist with a noisy feedback, the dark platform had no brake assist.The experiment demonstrates that the controller tolerates the disturbances really well, as opposed to the unassisted case it does not swerve but keeps its orientation. As a disadvantage it can be noted that braking distance is a little longer in the assisted case, due to adaptation of brake forces to the lower friction on all wheels. Error and velocity signals are shown on Figure 14. Actuator signals are shown on Figure 15, for the three wheels in the order marked on Figure 13. The frequency at which the actuators work is well within the capabilities of hydraulic valves used in contemporary ABS systems.![]() | Figure 13. Velocity components and values vs. time while braking from a straight 10m/s run. Mecanum platform, brake assist on |
![]() | Figure 14. Velocity components and error function for the ice patch experiment. Three wheel platform, assist on, leaving ice at 4s |
![]() | Figure 15. Actuator signals at the wheels 1, 2 and 3. Brake is on when signal is 0, off when -1. Vehicle leaves ice at 4s |