1. Introduction
One of the inherent issues in the control of autonomous vehicles is the navigation control, which includes path planning and tracking control [
1]. The velocity field could be seen as a stream that drags a vehicle in the direction of that stream at each point. The potential functions are used to generate trajectories and avoid obstacles. The velocity potential functions, obtained from hybrid potential field (HPF), have the advantage of completely eliminating local minima [
2]. The velocity field method is attractive because it presents a very low computation cost [
3] and is mathematically elegant [
2].
Several applications have been proposed using this method. In Reference [
4] this technique is used to control multiple three-wheeled robots that cooperate to achieve a task. The use of probabilistic algorithms altogether with the velocity field is developed in Reference [
5] where the fuzzy logic defines the velocity to be used in the tracking control. Another application is to generate a trajectory for an unmanned aerial vehicle (UAV) to collect information from a terrain after a natural disaster [
6]. In Reference [
7] the velocity field is utilized for the movements of an exoskeleton. Recent work in References [
8,
9,
10] uses velocity fields or potential fields, not necessarily to generate strictly a desired path, but for collision avoidance in the path of autonomous vehicles.
The method of velocity field for path planning arose in the early 1990s [
11]. Kim and Khosla [
2] proposed that this control strategy could be used for real-time control of mobile robots and manipulators. However they just presented numerical results without a dynamic model of a robot. For the purpose of a real path following, an alternative was proposed by P. Y. Li and R. Horowitz [
12]; they used a vector field to define a trajectory, thus by tracking the velocity field it is possible to reach the objective. The use of velocity fields for tracking control is considered due to this technique depends on the actual position of the robot, unlike the traditional method which depends on time. The philosophy of this approach is that the robot reaches the velocity defined by the vector field, thus, in that instant the robot will be in the desired trajectory. Some advantages of this method compared to the traditional tracking control, according to [
13], are:
The velocity field error is a more appropriate way to determine whether the contour is being followed or not.
The specification of the task, encoded as vector field, and the speed at which the task is performed can be decoupled.
The coordination aspect of the task is explicit.
Masoud [
1] mentions that the reference velocity generated with HPF is followed correctly with a massless, single integrator, holonomic system, but not with a more complex system like holonomic vehicles. In order to overcome this problem, he proposes the concept of virtual velocity attractor (VVA) to successfully execute any guidance instruction to drive an UAV closer to its goal. In our work, we propose using an asymptotically stable tracking control in order to track the velocity reference generated by the velocity field. This tracking control takes the velocity error and its derivatives to zero.
Autonomous vehicles like wheeled mobile robots or fixed wing UAVs have non-holonomic constraints; then, with this kind of vehicle the velocity reference is reached by controlling the steering angle, like in References [
3,
8]. In this paper we use a quad-rotor that can be controlled with decoupled dynamics for pitch and roll, thus, we decompose the velocity vector in
x and
y components, rather than magnitude of velocity and steering angle.
Recent works [
14,
15,
16] deal with the problem of a UAV tracking a trajectory, like a line or a circular orbit, generated by the vector field method, considering uncertainties associated with modeling errors and compensating for wind uncertainty. Nevertheless, the proposed methods neglect the presence of obstacles. In this work, we propose a trajectory generation using a velocity field similar in the definition of the attractive and evasive field to the one presented in Reference [
17]. One fundamental difference is that in Reference [
17], the evasive field is added or overlapped, to the global velocity field through a weighted sum of the evasive function to any obstacle. Instead, we propose a strategy, in which each evasive field modifies the previous computed field recursively. Thus the successive derivatives of the desired velocity (references for tracking control) are computed over the last resulting field in a computational recursive way.
Once the velocity field is computed, the vehicle has to track the desired velocity. In order to accomplish a perfect tracking of the velocity field, we used a nested saturation controller [
18]. This control law has been proved to be asymptotically stable in regulation and tracking control [
19]. Patrikar et al. [
20] used the nested saturation method for guidance of UAVs tracking in a circular or elliptical trajectory; however, their work does not considered obstacles avoidance. Tran et al. [
21] used nested saturations for quad-rotor trajectory tracking, also neglecting obstacle avoidance. Tran mentions that for the tracking problem it is necessary to track the reference position and its time derivative up to the fourth order. Since the objective of the controller is to track the velocity reference, in our work, we omitted the last saturation term of the nested saturation controller, that corresponds to position, reducing the order of the controller with similar results. Thus demonstrating that, in the case of tracking a velocity reference, our proposed implementation of a nested saturation controller can be simpler than in the complete form, also reducing the computational cost. The tracking form of this controller acts over the velocity error and its successive derivatives; in this case, three successive derivatives of the velocity reference must be computed. We show how to carry out the time derivative of those variables.
This document is organized as follows: in
Section 2 we describe the dynamic model of a quad-rotor aerial vehicle; in
Section 3 the control strategy for tracking a velocity reference is developed; in
Section 4 the velocity field generation is explained; in
Section 5 the hydrodynamic theory is used to develop the velocity components which will help us to achieve the obstacle avoidance. The results are shown in
Section 6, while conclusions are given in
Section 7. Two
Appendix A and
Appendix B—are included to illustrate the steps required to derive the equations for successive derivatives of attractive and evasive fields.
2. Dynamic Model
The dynamic model of the quad-rotor is obtained, representing the vehicle as a rigid body in a three-dimensional space and attached to one force and three torques. The motors dynamics and propellers flexibility are neglected [
22].
Consider a quad-rotor aircraft configuration such as the one shown in
Figure 1. The generalized coordinates are
where
denotes the quad-rotor center of mass position, relative to the inertial frame
, and
represents the orientation vector of the body frame, expressed in Euler’s angles.
The dynamic model of the quad-rotor is given as:
where
m stands for the mass of the vehicle,
g is the gravitational constant,
,
, and
where
is a vector with the quad-rotor torques,
is a vector with the control inputs,
represents the inertial matrix and
denotes the Coriolis matrix.
The inputs of force and torques,
u and
, respectively, are related with the velocity of the four rotors as follows. The thrust input,
u, is the sum of the thrust of each rotor, expressed by
with
where
is a constant coefficient and
denotes the angular velocity of the
i-th rotor.
The torque inputs
, are obtained through
where
ℓ is the distance from the rotors to the center of gravity of the quad-rotor, and
denotes the gyroscopic torque produced by the motor
. The torques
are obtained from
where
is a constant coefficient. In general,
.
4. Velocity Field
The objective of the velocity field method in this particular case is to follow a predefined trajectory. For this method, it is necessary to calculate two vector fields, the
approaching field and the
tangential field. The approaching field is defined by the vectors that aim directly to the trajectory, in which each vector
is obtained as the normalized subtraction of the closest point to the trajectory, as proposed by Reference [
17]. The trajectory to follow is a circle of radius
and the center at the point
, expressed by
In order to calculate the approaching field, it is necessary to find the closest point from any position of the workspace to the trajectory. This closest point is calculated by
where
and
are the points conforming the trajectory, that is, the set of all the points that satisfy Equation (
25). For this specific case, let us define the vectors:
where
are the difference between any point of the workspace and the center of the circular trajectory, and
are the position errors from any point of the workspace and its closest point within the desired trajectory.
The coordinates of the closest point to the trajectory are
where
denotes the angle from the actual position to the closest point of the trajectory. Taking the Equations (
28)–(
29) to calculate
and
, we can define the distance between the actual position and the closest point in the trajectory as
The angle
is obtained from the derivative of the distance
with respect to
, or
, and it is
The approaching field is defined as
Let us denote the partial derivatives of
and
as
and
.
These values are necessary to generate the tangential field as follows
The velocity field is obtained performing the normalized weighted sum
where
and
are functions of the Euclidean distance between a point in space and the desired trajectory, which are given by:
The aim of this function is to increase the effect of the approaching function far from the trajectory and the tangential function close to the trajectory, with
as the parameter that controls the weighting of both vectors. In
Figure 2 is shown a velocity field generated with a value
,
,
and
.
The velocity field vector is expressed by (
35). It represents the desired velocity that the vehicle must achieve at each instant, in order to track the trajectory. With the nested saturation controller, given by Equations (
23) and (
24), it is possible to track the vectors
and
given in (
21).
Since the velocity field vector (
35) is a normalized vector, then the magnitude of the velocity vector is one. In order to impose other magnitude to the velocity reference, this vector could be multiplied by a constant
. The resulting vector could be seen as the desired value of the velocity in
x and
y coordinates, this is:
with these desired values, the velocity error variables
and
can be computed. However, in order to compute the remaining error variables of Equation (
21), are still necessary the desired values:
and
, even more, the tracking controllers (
23) and (
24) need the desired variables
and
. From Equations (
13) and (
14) we have that
and
, so
and
, then
and
Equation (
38) gives us a way to obtain the desired variables to track, and it means that it is necessary to compute three successive derivatives of the potential velocity (
35).
Appendix A illustrates the procedure to obtain the successive derivatives of
.
5. Obstacle Avoidance
Obstacle avoidance is achieved by using hydrodynamic theory, specifically the flux of an ideal fluid around a cylinder as shown in
Figure 3. Let us define a flux of a planar fluid in stationary state, with a vector velocity field
in the point
Here
is the domain occupied by the fluid, then for it to be an ideal fluid it must be incompressible, meaning vanishing divergence, and irrotational, implying a vanishing curl
Theorem 1. The velocity vector field induces a flux of ideal fluid if and only if is a complex analytic function of [23]. Thus, the components
and
are necessarily harmonic conjugates. The corresponding complex function (
40) is known as the complex velocity of the fluid flux.
Let
allow a complex anti-derivative, that is, a complex analytic function
Using the Cauchy-Riemann equations for the complex derivative,
Thus, , and therefore the real part of the complex function defines the velocity potential. Consequently, is known as the complex potential function for the fluid velocity field.
Taking advantage of this property, it is possible to use any harmonic function for the complex velocity potential and the real velocity of the fluid, , is automatically irrotational and incompressible.
Using a circular obstacle that interferes with the approaching vector field flux, where (
) is the center position of the obstacle, with radius
, the position error with respect to the center of the obstacle is defined as
The proposed velocity potential function for an ideal fluid through a circular obstacle is
where
is the angle of the velocity field vector in that point. The flux velocity around a cylinder is defined as the gradient of the
function, namely
.
Then, the
x-component of the velocity vector is
where
and
. The velocity function in the
y-coordinate is
Therefore, the velocity vector for the evasive maneuver is
It could be said that the effect of the equations for evasion is to reorient the direction of the velocity vector, which was computed before considering the obstacle, redirecting the velocity reference to try to surround the obstacle. Then, it makes sense that the modified velocity field,
, takes the place of the previous velocity field, however, it could be also normalized as
Appendix B illustrates the procedure to obtain the successive derivatives of the velocity reference
, obtained from Equation (
45). These derivatives are necessary for tracking control.
Remark 1. The method proposed to avoid obstacles allows to manage the evasive field for multiple obstacles in a recursive way. In the case of multiple obstacles, the algorithm starts from the attractive velocity field of Equation (35). The next step is to create a list of the obstacles located in the workspace, from the furthest to the closest to the vehicle. Then, considering sequentially all the obstacles, at each iteration, the previous velocity vector is transformed, through Equation (45), in the new velocity field (considering evasion of the k-obstacle), and it will become the new reference of velocity, , in the next iteration. After finishing all iterations, the modified velocity field achieved, becomes the actual velocity reference for Equations (38) and (39). Figure 4 shows the modification of the velocity field shown in
Figure 2, resulting from the incorporation of three obstacles.