1. Introduction
A device or a system is characterized by its autonomy when it is able to make decisions and take actions independently without any external control. Recent advances in the development of methods and algorithms for the autonomous operation of a ship include a proposal for a visual–acoustic navigation system for Unmanned Surface Vehicles (USVs) maneuvering in port and waterway areas [
1] as well as a solution for creating a map of open water areas using electro-optical sensors and a convolutional neural network [
2]. Other recent approaches include the development of a navigation system within the ANCHOR project. The system proposes routes. It is also equipped with a collision warning system [
3]. In [
4], the authors introduced Denmark’s first autonomous harbor bus, called the Greenhoper, by applying the collision and grounding avoidance scheme, which they named the Short Horizon Planner (SHP). In [
5], a path planning method for a ship called an elastic force contraction algorithm (EFCA) was proposed. The researchers also used the minimum set method (MSM) in order to remove redundant nodes in the initial path planned by the EFCA and further optimize the solution.
Other recent path planning methods for ships include a virtual potential field (VPF)-based method [
6,
7] and a method based on dynamic time–space network trees for solving encounters with multiple ships [
8]. In [
9], the authors introduced a dynamic adaptive decision-making method for application in traffic separation scheme (TSS) waters. The researchers in [
10] present a survey of recent path planning methods for Maritime Autonomous Surface Ships (MASS). The above work presents a number of solutions proposed in the literature related to autonomous ship control. The following papers address the autonomous trajectory planning of maritime objects, including a review of various such methods [
11,
12,
13,
14,
15]. The reviews presented are broadly developed in terms of research areas, such as simulations or experiments. They concern a breakdown of autonomous trajectory methods or calculations related to precision ship control, but also present review research based on swarm behaviour, among other things.
LMI techniques were applied for solving a large number of control problems like estimation or stability analysis, formulated as convex problems [
16]. In [
17] the authors stated that an LMI solution of the gain assignment for feedback linear time-invariant systems is well-suited in the design of PID controllers for autopilot functions. Similarly, the solution was used in the research presented in [
18]. The authors of this paper solved the yaw control problem in a ship’s steering capacity by using a complex fourth-order Nomoto model. Linear matrix inequality-based robust control was also applied in this study. The authors improved the tracking ability and robust stability of
control with the use of an LMI. They proved the robust performance of the control system in the presence of disturbances and measurement noise. This type of control was also justified for use in controlling a multidimensional maritime object in [
19,
20].
In the area of designing controllers for autonomous ships, recent works also include a human-like constraint–adaptive model predictive control (MPC), with risk-tunable control barrier functions (CBF), proposed in [
21], and a sliding mode control, which was applied to control the movement at low speeds of a Very Large Crude Carriage (VLCC) in port maneuvers [
22].
This paper introduces an approach applied in order to achieve the autonomous operation of a ship in a port. A safe trajectory is planned with the use of the Ant Colony Optimization algorithm, considering static navigational obstacles such as the quay, shallows, and buoys. The ship’s movement along the calculated trajectory is carried out with the use of a master overriding trajectory controller (OTC) and a slave low speed controller, designed using the Linear Matrix Inequalities (LMI) method.
The main contributions of this paper include:
The development of a control system for the autonomous operation of a ship in a port, composed of two controllers: the master overriding trajectory controller and the slave low speed controller based on Linear Matrix Inequalities;
The development of a method for safe trajectory planning in a port based on the Ant Colony Optimization;
Simulation tests carried out using a model of a Very Large Crude Carrier Blue Lady, covering maneuvers in the port, located in the Ship Handling, Research and Training Center of the Foundation for Shipping Safety and Environmental Protection on Lake Silm in Kamionka, Poland.
The rest of this paper is organized as follows. In
Section 2, the control object—the model of the
Blue Lady ship—is described in details. In
Section 3, the safe trajectory planning algorithm based on the Ant Colony Optimization is introduced. The pseudocodes of different procedures applied in the algorithm are also presented in this section.
Section 4 describes the developed multi-dimensional ship control system, composed of the master overriding trajectory controller (OTC) and the slave low speed controller, designed using the Linear Matrix Inequalities (LMI). The results of our simulation tests are presented and discussed in detail in
Section 5. The summary of the research and future research directions are given in the Conclusions
Section 6.
2. The Control Object—Ship Blue Lady
This work focuses on trajectories made in a computer simulation. The ship itself is a simulated model of a training ship called the
Blue Lady. Studies of its dynamics and a lot of research was carried out by several researchers from the Maritime University in Gdynia. Most importantly, works concerning parameters of the ship [
23], kinematics of the ship [
24,
25], and the inclusion of the effects of wind on the ship [
26,
27] were carried out.
The ship model is located in Poland, specifically in Iława Kamionka, where the Foundation for Shipping Safety and Environmental Protection is based. The Foundation is recommended by IMO as a center that provides training for navigators to improve the safety of ship navigation in various maneuvering conditions, including in ports. The training center has seven different ship models at its disposal, including the VLCC-type tanker training vessel shown in
Figure 1.
The research presented in this article is based on simulations and focuses on a control object, a model of the ship the
Blue Lady made at a scale of 1:24 against a real VLCC (Very Large Crude Carrier) class tanker. The computer simulations of its kinematics and dynamics were built and presented in [
23,
28,
29,
30]. Parameters of the object, i.e., the training model of the
Blue Lady ship are as follows:
Length—13.75 m;
Width—2.38 m;
Speed—3.1 kn;
The ship’s propulsion system, also called the ship’s control system, is composed of the following elements:
The main drive, marked as ng, operating within the range of (−200; +480) rpm;
The fin rudder, operating in the range of (−35; +35) deg;
Four thrusters to simulate the operation of the tugs; these are written below:
- -
Two tunnel thrusters (bow, stern), designated as sstd, sstr, operating in the range of (−1; +1);
- -
Two rotary thrusters (bow, stern), designated as ssod, ssor, operating in the ranges of (0; +1), where the swing angle is in the range of (−120; +120) deg for the bow and (+60; +300) deg for the stern.
The simulation model of the training vessel the
Blue Lady, presented in the works of [
24,
31], is based on a 3DOF model. This model allows for the presentation of motion in three areas without taking into account lateral heel, longitudinal heel, and nuisance when performing tests on the lake. The dynamic assumptions are of the form
where
m represents ship mass,
represents the longitudinal component of velocity,
r represents the rotational component of velocity,
v represents the lateral component of velocity,
represents the mass moment of inertia, and the forces
,
and moments
represent the hydrodynamics and the main propulsion system, the rudder blade, and the individual propellers of the vessel. With the above assumptions, a block diagram of the mathematical simulation model of the training vessel the
Blue Lady was determined and is shown in
Figure 2.
According to the principle presented in [
23], the set signals on the rudder devices, such as main propulsion or thrusters, are fed into the block modeling the dynamics of the individual devices, i.e., the rudder blade, main propulsion, and thrusters, hereinafter referred to as the allocation system. It should be noted that the reference signals are components of the input signal vectors for the blocks where the forces and moments occurring on the right-hand side of the Equations (
1)–(
3) are calculated. In the presented scheme, the components of the output vectors from the hull dynamic block and the ship kinematics model are the values of the three ship velocities, such as:
- -
Longitudinal velocity: u;
- -
Lateral velocity: v;
- -
Rotational velocity: r.
On the other hand, when modeling the ship dynamics, the object had to be linearized around the operating point for controller synthesis. For the power distribution system, a conversion had to be made for the three components of the vector:
into a vector T of eight propulsion equipment command signals for the main propulsion, thrusters, and rudder blade. With
being the desired force in the longitudinal axis of the vessel,
being the force in the transverse axis of the vessel, and
the desired torque. Once the object identification was performed, the object model was placed in the state space. Therefore, the state equations of the model together with the output equations are presented below:
where
to
is the averaged numerical values of the Blue Lady ship model coefficients obtained during object identification, which are shown below and recorded in matrices A, B, C and D:
These were presented in papers describing the object
Blue Lady [
24,
31]. The non-linear control object finally has a form represented in terms of the state variables proposed in Equations (
5) and (
6), where the simulation model was created in a Matlab and Simulink environment based on, among other things, the s-function. On the other hand, the ship’s hull model was created in the Simulink environment in a library called ‘Simulink 3D Animation/Virtual Reality’, as presented in
Figure 3.
3. Safe Trajectory Planning Based on Ant Colony Optimization Algorithm
A pseudocode of an algorithm used for calculating the ship’s safe trajectory in the port, based on the Ant Colony Optimization (ACO), is shown as Algorithm 1.
ACO is one of the most popular Swarm Intelligence (SI) methods. The term Swarm Intelligence was introduced by Beni and Wang [
32] in relation to cellular robotic systems. Bonabeau, Dorigo, and Theraulaz defined SI as any attempt to build an algorithm inspired by the collective behavior of insect colonies or other animal communities [
33].
The insect colony, e.g., an ant colony, can be regarded as a decentralized problem-solving system, composed of many relatively simple individuals interacting with each other, characterized by self-organization, flexibility, and robustness. The flexibility of a colony allows it to adapt to changing environments. The robustness means that a colony continues to function even if some individuals do not fulfill their tasks. Insect colonies can solve problems such as finding food or building or expanding the nest by effectively dividing the work between individuals. Many of these problems have their equivalents in engineering and computer science.Observations of insect colony behavior and the discovery of factors influencing their functioning have enabled the application of this knowledge in the field of intelligent system design.
Algorithm 1 A pseudocode of the ACO-based algorithm for ship’s safe trajectory planning in the port |
- 1:
DO: - 2:
Receive data concerning static navigational constraints. - 3:
Build a graph of possible ship’s waypoints. - 4:
Receive data concerning current ship’s position and course. - 5:
Initialize ACO parameters. - 6:
for ; ; ++ do - 7:
Build solution by artificial ants. - 8:
Update pheromone trail. - 9:
Trajectory smoothing procedure. - 10:
end for - 11:
Present the shortest safe trajectory in a graphical and numerical form.
|
Observation of ant colonies allowed us to find out that ants communicate with each other and with their surroundings using a chemical substance they secrete. This chemical substance is called a pheromone. Ants transmit information to other ants using the pheromone trail they leave on the ground. Ants leave pheromone trails along the path they travel between the nest and the food source. In this way the ants show others individuals in the colony a way to the food source. This kind of indirect communication, in which an individual’s behavior modifies the environment, which is what influences the behavior of another individual in the colony, is called stigmergy.
ACO uses a positive feedback mechanism based on ant colonies’ behavior of leaving and following pheromone trails.. This mechanism is based on strengthening parts of good solutions or strengthening good solutions as a whole. For this purpose, the so-called virtual pheromone trail is applied. With the use of this mechanism good solutions are stored in the memory, so they can be used to obtain better solutions in the future.
However, reinforcing good but not optimal solutions can lead to premature convergence of the algorithm to a local minimum, resulting in what is known as stagnation. To prevent this, a negative feedback mechanism also needs to be applied, known as pheromone evaporation.
The first proposed ACO algorithm was the Ant System (AS). Initially, three versions of AS were proposed: the ant-density algorithm, the ant-quantity algorithm, and the ant-cycle algorithm. In the first two versions, ants update their pheromone trail directly after movement. In the ant-cycle algorithm the pheromone trail is updated after all ants in a given iteration have finished their movement. This version of AS was the inspiration for the development of the algorithm presented in this work for a ship’s safe trajectory calculation. More information concerning ACO can be found in [
34,
35].
In the process of planning a ship’s safe trajectory, an optimization algorithm calculates the safe trajectory
P from the current position of the ship (
) to the defined final position (
), as defined by Equation (
10). Every waypoint is defined using the coordinates of the ship’s position (
x and
y) and the ship’s course
. Algorithm 2 shows a pseudocode for the procedure applied to the algorithm for building a graph representing possible waypoints of the ship’s path.
In calculating a safe trajectory for a ship in the port, static navigational constraints such as waterfront areas, shallows, and buoys must be considered. These restrictions are modeled in the form of polygons.
Algorithm 2 A pseudocode of an algorithm for building a graph of possible waypoints of the ship’s path |
- 1:
DO: - 2:
Create a graph of possible waypoints of the ship’s path with assumed step size. - 3:
Place static navigational constrains on the graph - 4:
for ; ; j++ do - 5:
for ; ; n++ do - 6:
if Waypoint n exceeds the constraints (is placed inside or on an edge of an obstacle) then - 7:
Save waypoint n on the list of waypoints exceeding the constraints. - 8:
end if - 9:
end for - 10:
end for - 11:
Remove waypoints exceeding the constraints from the graph.
|
3.1. ACO Data Initialization
The following ACO algorithm parameters are defined in the data initialization procedure:
Initial value of the pheromone trail on all possible waypoints (vertices) on the graph;
and , applied in the formula for calculating the probability of the next ant’s move;
The pheromone evaporation rate (0 < <= 1);
Maximum number of ants—;
Maximum number of ant’s steps—;
Number of iterations—.
3.2. ACO Algorithm Procedure
Every ant starts constructing its path from the starting waypoint (vertex) with coordinates (, ), which is the current position of the ship.
Then, every ant constructs its path until it reaches the final waypoint
with coordinates (
,
) or reaches a specified maximum number of steps
. At every step, the ant chooses an action using the action choice rule. It probabilistically selects the next waypoint (vertex of the graph) among neighboring waypoints (vertices). The choice of the next waypoint (vertex) depends on the amount of the pheromone trail
on vertex
j adjacent to the current vertex
i and on some heuristic information
. In the developed algorithm visibility was applied as an inverse of the distance between the current vertex
i and the neighboring vertex
j. The probabilistic selection of the next vertex works analogously to the roulette wheel selection procedure used in evolutionary algorithms [
36].
This process is composed of the following stages:
Summing the probabilities of selecting neighboring waypoints (vertices) ;
Drawing a random number r from the range [0; ];
Traversing subsequent adjacent vertices until the sum of probabilities of selecting the vertices visited so far will be greater than or equal to r; meeting this condition means selecting a given vertex.
In the formula for calculating the next vertex selection probability (Equation (
11)) there are two coefficients. If coefficient
= 0, it is most likely to select the nearest neighboring vertex, if
= 0, only pheromone reinforcement effects are seen, which results in rather unsatisfactory solutions.
Algorithm 3 shows a pseudocode for the solution construction procedure, and Algorithm 4 shows a pseudocode for the action choice rule procedure.
Algorithm 3 A pseudocode of an algorithm implementing the solution construction procedure |
- 1:
for ; ; ++ do - 2:
for ; ; ++ do - 3:
if is not equal to then - 4:
Execute the action choice rule. - 5:
end if - 6:
end for - 7:
if is equal to then - 8:
Save the ant’s path. - 9:
Calculate the ant’s path length. - 10:
if Ant’s path length is shorter than the shortest path then - 11:
Save ant’s path length as the shortest path length. - 12:
end if - 13:
end if - 14:
end for
|
Algorithm 4 A pseudocode of an algorithm implementing the action choice rule procedure |
- 1:
DO: - 2:
Initialize = 0. - 3:
for ; ; j++ do - 4:
Sum the probabilities of selecting neighboring waypoints (vertices). - 5:
end for - 6:
Draw a random number r from the range [0; ]. - 7:
for ; ; j++ do - 8:
Calculate the probability of visiting the next neighboring vertex. - 9:
if The sum the probabilities of selecting the vertices visited so far >= r then - 10:
Choose the currently considered vertex and end the action choice rule. - 11:
end if - 12:
end for
|
3.3. Updating of the Pheromone Trail
When all of the ants in a given iteration of the algorithm have finished constructing theirs paths, the process of updating the pheromone trail is carried out, which is composed of two stages, defined by Equation (
12).
In the first stage, the pheromone evaporation procedure is implemented. It involves reducing the pheromone trail amount on all vertices of the graph by a certain constant value. The pheromone evaporation is a mechanism that allows the ants to “forget” their bad decisions.
In the second stage, the pheromone deposit is carried out, during which a certain value of the pheromone trail is added to all vertices belonging to the paths constructed by ants in a given iteration. Thanks to this mechanism, vertices that constitute parts of the paths chosen by many ants, and which are part of the shortest paths, receive more pheromone trails and thus the probability of their selection by ants in subsequent iterations increases.
Algorithm 5 shows a pseudocode for the pheromone trail update procedure, composed of the pheromone trail evaporation (the first part of Equation (
12)) and the pheromone trail deposit (the second part of Equation (
12)).
Algorithm 5 A pseudocode of an algorithm implementing the pheromone trail update procedure |
- 1:
for ; ; j++ do - 2:
Reduce the pheromone trail amount on all vertices of the graph by a certain constant value. - 3:
end for - 4:
for ; ; ++ do - 5:
for; ; j++ do - 6:
if j is a part of the path of the currently considered ant then - 7:
Add a certain value of the pheromone trail to vertex j. - 8:
end if - 9:
end for - 10:
end for
|
Before starting the next iteration of calculations, the shortest path found so far is saved. Afterwards, the process of smoothing out the best path determined in a given iteration is carried out. The trajectory smoothing procedure removes unnecessary vertices, further optimizing the path found by the ants. The details of this procedure are presented in Algorithm 6. It is based on evaluating the possibility of connecting two waypoints of the path, marked as and , omitting that an intermediate waypoints exists when it does not cause a collision with any of the line segments, marked as (,), constituting edges of obstacles occurring in the navigational environment. When the currently considered line segment (,) of an optimized path does not intersect with any edge of any navigational obstacle, then the possible path is saved. Such a procedure is repeated until no more reductions are possible in the safe path.
Algorithm 6 A pseudocode of an algorithm implementing the trajectory smoothing procedure |
- 1:
for ; ; i++ do - 2:
if The number of waypoints is greater than 3 then - 3:
Assign point as the waypoint i and point as the waypoint i+2. - 4:
for ; ; ++ do - 5:
for ; ; j++ do - 6:
Assign point as the obstacle vertex i and point as the obstacle vertex i+1. - 7:
if The line segment (, ) intersect the line segment (, ) then - 8:
Stop checking the possibility of connecting the points and . - 9:
Do not connect the points and . - 10:
else - 11:
Continue checking the possible intersection between the line segment (, ) and another line segment constituting an edge of the currently considered obstacle. - 12:
end if - 13:
end for - 14:
end for - 15:
Connect the points and , and save new optimized trajectory. - 16:
end if - 17:
end for
|
The termination condition of the algorithm is the maximum number of iterations and the best solution is the shortest trajectory.
5. Results
This work involved the synthesis of an LMI controller for the non-linear ship model
Blue Lady and the verification of the ACO algorithm. In order to verify the results, three different scenarios for the ship’s trajectory were presented and tests were carried out at low speeds in the port. The computer simulations were performed in Matlab and Simulink 2023b environments. The Yalmip [
39] and SeDuMi [
40] libraries were used during the state controller synthesis.
The following values for the ACO algorithm’s parameters were applied in the simulation tests: = 0.5, = 0.5, = 0.001, = 0.5, = 300, = 500 and = 20.
Figure 6,
Figure 7 and
Figure 8 present a comparison of trajectories calculated using the ACO-based algorithm with trajectories executed by the
Blue Lady ship model using the developed controllers. The areas filled with black represent the static navigational obstacles, such as the quay of the port on Lake
Silm and the buoys, which are modeled as rectangles. The area marked using white is the lake area, where the ship model can realize its movement.
The executed trajectory also relates to the verification of the LMI controller’s operation; hence, the graph below presents three values in
Figure 9 of the set and regulated resting velocities for longitudinal
u, lateral
v, and rotational velocity
r.
As can be seen in
Figure 6,
Figure 7 and
Figure 8, the three scenarios differ in the initial waypoint of the path, marked as
. Every scenario also differs in the details concerning the navigational environment. The difference lies in the placement of small rectangular obstacles, which model buoys. For every scenario they are placed differently in order to ensure a proper safe distance of the vessel from the quay during maneuvering. The assumed initial and final waypoints and the placement of the buoys influence the complexity and effectiveness of the algorithm. In all scenarios, the algorithm was able to calculate a safe, optimized path.
The direction along the vertical axis towards the top of the figure is assumed to be 0 degrees. The value of the ship’s course at the consecutive line segments composing the safe path were calculated regarding the above-mentioned assumption and the positions of the consecutive waypoints of the safe path calculated by the ACO algorithm.
The trajectory calculated in the first test case, presented in
Figure 6, is composed of seven waypoints. The solution had to consider a part of the quay area and two buoys. The following course values were determined for the ship in this situation: 127, 135, 180, 256, 297, and 34 degrees.
Figure 9 shows the control signals during the execution of the planned maneuvers for this test case. The blue dashed lines represent the outputs of the Overriding Trajectory Controller and the black lines represent the control signal determined by the LMI controller.
The trajectory calculated in the second test case, presented in
Figure 7, is composed of four waypoints. The solution also had to consider a part of the quay area and two buoys, but in a different location than in the first test case. The following course values were determined for the ship in this situation: 217, 151, and 37 degrees.
Figure 10 shows the control signals achieved during the execution of the planned maneuvers for this test case.
Figure 8 shows the trajectory calculated by the ACO-based algorithm for the third test case. This solution is composed of five waypoints. The safe trajectory also had to consider a part of the quay area and two buoys. The following course values were determined for the ship in this situation: 304, 288, 338, and 45 degrees.
Figure 11 presents the control signals reached during the execution of the planned maneuvers for this test case.
The ship effectively executed the determined trajectories using the designed controllers, what can be observed in
Figure 6,
Figure 7 and
Figure 8. These figures present comparisons between calculated and executed trajectories, which confirm the successful implementation of the developed methods.
Research on the LMI controller, conducted over several years, focuses on the parameter settings of both the pole position on the left half-plane of the s-combined variable and the influence of the parameters calculated for the optimization of the and norms responsible for the energy of the control signal and the deviation of the regulated signal in relation to the set values.
The synthesis of the controller with the support of LMI tools proves that it is possible to operate a multidimensional controller for several reference signals without taking into account cross-coupling, which was proven by presenting the values of the signals of individual ship speeds. As can be seen in
Figure 9,
Figure 10 and
Figure 11 in the simulations, a small deviation from the setpoint has no effect on the maneuver being performed, which is a promising assumption for carrying out the same simulations in real conditions on Lake Silm in Ilawa. In none of these examples is there any cross-coupling, and the controller is able to cope even with changes in trajectory points. For example, in
Figure 9, three velocity values had to be set between 1800 and 2100 s, which did not interfere with the controller and the final maneuver. A similar property can be observed in
Figure 10 in the interval between seconds (1300 to 1600) and in
Figure 11 in the interval between seconds (1000 to 1500).
The results of the simulations tests presented in
Section 5 allow us to state that the developed ACO-based algorithm calculated a safe trajectory between different waypoints considering static navigational obstacles. The successful operation of the ACO-based algorithm does not depend on the placement of the initial (
) and final waypoints (
).
According to the authors, the use of an LMI controller is justified, especially when testing maneuvers when in the port, i.e., when steering the vessel at low speeds. Multidimensional control for this type of task, where three setpoints are set, must be precise and there must be no cross-coupling. Furthermore, the proposed optimization in the LMI concerns both the control to minimize the deviation of the speed setpoint and the energy loss needed to perform the maneuver.
In the present study, it was decided to take the research a step further by taking into account the ant algorithm that predicts the optimal routes for a maneuvering vessel. This interpretation of the research proved that it is possible to steer a ship autonomously with respect to the IMO directive described in relation to the Maritime Autonomous Surface Ship [
41].
6. Conclusions
This paper proposed a system for the autonomous operation of MASS or USVs in a port. It utilized the Ant Colony Optimization algorithm for path planning and Linear Matrix Inequalities for low speed controller design. An Overriding Trajectory Controller was also applied in order to achieve the task. The developed concept was confirmed by simulation tests with the use of a model of a VLCC, the Blue Lady. The results of a few test cases were presented and discussed.
This paper demonstrates that several design steps are necessary for building autonomous models. Experimental trajectories were created based on the real dimensions of the Iława Kamionka harbour at the Foundation for Navigation Safety and Environmental Protection. What is more, the proposed ACO algorithm made it possible to test vessel control in restricted waters where obstacles are static. Optimization of this trajectory affected the ability to further control a multidimensional, non-linear object. The master controller included in the calculation was responsible for converting the trajectory into velocity component values. Then, by means of an LMI controller that did not exhibit cross-coupling, it was possible to control the forces that were applied to the allocation system needed to control the individual propellers of the ship in order to perform the maneuver.
The proposed approach makes it possible to consider autonomous ship control using a multi-stage approach consisting of a controller synthesis and autonomously determined trajectory, which is in line with IMO assumptions, i.e., no human intervention in the realized ship trajectory (including control of the ship). The ACO, OTC, and LMI algorithms proposed by the authors have shown that safe autonomous trajectory and autonomous control of an object in a port is possible.
Future research directions might include real-life experiments on Lake Silm and the application of other optimization methods in the development of a safe trajectory planning algorithm and the design of controllers. This phase could be followed by a comparative analysis of results using different algorithms.