1076
crucial for minimizing the risk of collision, optimizing
fuel consumption, and adapting to changing
environmental conditions such as currents, wind, and
depth.
The route planning methods used in autonomous
vessels are developing in parallel with advances in
robotics, artificial intelligence, and satellite navigation.
In practice, both classic graph algorithms, such as
Dijkstra and A*, and more advanced approaches based
on machine learning, evolutionary algorithms, fuzzy
systems, and methods inspired by swarm behavior are
used. It is a demanding field of research and ongoing
experimentation that combines the fields of computer
science, robotics and marine engineering.
This work will examine the following algorithms:
Hybrid A*, Bidirectional RRT, MPNet, Rapidly-
exploring Random Tree (RRT). Using Matlab,
preliminary simulations will be carried out in an
environment that reflects the real object—Lake
Kamionka. The results will be compared, and then the
algorithm that best determines the optimal trajectory
will be used to determine the trajectory on the real
model of the LNG Carrier Dorchester Lady.
2 ALOGRITHMS
The MATLAB environment is a powerful tool offering
a wide range of utilities for determining the optimal
path between a starting point and an endpoint. Among
the available methods, key place are occupied by
approaches based on graphs, probabilistic methods,
optimization techniques, and complex hybrid
methods. This very diversity necessitated a selection:
the article's author initially reviewed several dozen
different trajectory determination techniques, only for
selected four for the final research, which will be
discussed in detail.[8] Three of the selected algorithms
utilize RRT to a greater or lesser extent. This chapter
will describe them to highlight their differences and
similarities. The fourth option, the Hybrid A*
algorithm, is very popular and often chosen for
comparison with RRT[9].
2.1 Rapidly-exploring Random Tree (RRT)
RRT is an algorithm for exploring high-dimensional
spaces by randomly building a tree with branches that
fill the space. The algorithm grows toward large,
unexplored areas of the problem using samples taken
randomly from the search space. One of the
disadvantages of this solution is the lack of guarantee
to find the shortest and optimal path[10]. Despite this
inherent limitation, the method gained significant
popularity after its introduction in the late 1990s,
especially in robotics for quickly planning paths
around complex obstacles. Researchers frequently
address the sub-optimality issue by employing
variants like RRT* (RRT-star), which incorporates a
rewiring step to converge asymptotically to an optimal
solution[11].
To define the algorithm we need:
− Configuration space C, being a set of all possible
states
− Obstacle space Cobs, is a subset of C aimed at
representing collision places
− Free space Cfree, which is a subset of C without
collisions. It can be defined as: Cfree=C\Cobs
− Starting point qinit, the start point of the algorithm,
where qinitCfree
− Goal G, the region which the algorithm tries to reach
− Tree T, being a data structure consisting of a set of
vertices V and a set of collision-free paths between
vertices E
T=(V,E)
− Metric ρ, meaning a function defining the distance
between two points
− Expansion step ϵ, a constant or maximum length of
a new branch in one iteration
− Number of iterations K
− SAMPLE (C), a function returning a random
configuration qrand from the space C
− NEAREST (T, qrand), a function searching through
the set of vertices from tree T to find the one closest
to qrand, returning it as qnear
− STEER (qnear, qrand, ϵ) a function aimed at generating
a new vertex qnew
− COLLISION_FREE (qnear, qnew) a function returning
true if the trajectory connecting qnear and qnew does
not pass through Cobs. Otherwise, it returns false and
the algorithm performs next iteration.
The description of how it works can be explained in
a few steps:
1. V {qinit};
2. E ;
3. For k=1 to K:
− qrand SAMPLE (C);
− qnear NEAREST (T, qrand);
− qnew STEER (qnear, qrand, ϵ);
− COLLISION_FREE (qnear, qnew);
4. V V {qnew};
5. E E {(qnear, qnew)};
6. Return T;
2.2 Bidirectional RRT (BiRRT)
BiRRT is an extension of the classic RRT. It
simultaneously builds two trees—one from the starting
point (Tstart) and the other from the goal point (Tgoal). The
main purpose is to speed up the solution finding,
although it requires additional computations. In this
way, using BiRRT reduces the expected distance each
tree must explore. Leading to faster solution finding in
complex spaces compared to the unidirectional RRT. In
practice, this efficiency stems from a simple principle:
two small search spaces are always preferable to one
large one[10].
Since the building process is similar to that of the
standard RRT, only the attempt to connect the two
trees will be described here, as this is the key operation
in each iteration and drives the algorithm's work. After
expanding tree starting at the start node ,the algorithm
tries to use the newly added vertex qnew, as a target for
the tree starting at the goal node, using the CONNECT
operation. This connection step attempts to iteratively
grow the target tree (Ttarget)towards the qnew. The
operation succeeds if Ttarget manages to reach qnew within
a specified distance, creating the path link. If the
operation fails, Ttarget is expanded as far as possible
towards the new vertex. This loop can either return a
new vertex, or end the algorithm with one of two
outcomes: PathFound or Trapped. The algorithm ends
when the two trees are successfully connected.[12]