Abstract

To deal with the task assignment problem of multi--AUV systems under kinematic constraints, which means steering capability constraints for underactuated AUVs or other vehicles likely, an improved task assignment algorithm is proposed combining the Dubins Path algorithm with improved SOM neural network algorithm. At first, the aimed tasks are assigned to the AUVs by the improved SOM neural network method based on workload balance and neighborhood function. When there exists kinematic constraints or obstacles which may cause failure of trajectory planning, task re--assignment will be implemented by changing the weights of SOM neurals, until the AUVs can have paths to reach all the targets. Then, the Dubins paths are generated in several limited cases. The AUV’s yaw angle is limited, which results in new assignments to the targets. Computation flow is designed so that the algorithm in MATLAB and Python can realize the path planning to multiple targets. Finally, simulation results prove that the proposed algorithm can effectively accomplish the task assignment task for a multi--AUV system.

keywords:
multi-AUV; task assigment; kinematic constraints; Dubins Path; SOM neural network
\pubvolume

1 \issuenum1 \articlenumber0 \externaleditorAcademic Editor: \datereceived \daterevised \dateaccepted \datepublished \hreflinkhttps://doi.org/ \TitleMulti-AUV Kinematic Task Assignment Based on Self-Organizing Map Neural Network and Dubins Path Generator \TitleCitationMulti-AUV Kinematic Task Assignment Based on Self-Organizing Map Neural Network and Dubins Path Generator \AuthorXin Li 1,*\orcidA, Wenyang Gan 2\orcidC, Pang Wen 3 and Daqi Zhu 3\orcidB \AuthorNamesXin Li, Wenyang Gan, Wen Pang and Daqi Zhu \AuthorCitationXin, L.; Wenyang, G.; Wen, P.; Daqi, Z. \corresCorrespondence: [email protected]

1 Introduction

At the present time, there have been a lot of theoretical and practical research results on the task assignment algorithms for the multi--AUV system. The task assignment algorithm covers two aspects: 1. task allocation and 2. path planning, which refers to the technology of controlling a group of AUVs according to a certain algorithm and reaching the target along the optimized path under the kinematic constraints. In other words, task allocation ensures optimized task assignment such as the Traveling Salesman Problem (TSP); path planning guarantees the feasibility for the agents moving to the assigned tasks. For underwater vehicles, task assignment refers to the assignment of a number of targets to a multi--AUV system, and the cost of the whole multi--AUV system is the minimum under the premise that all targets are traversed. The path planning technique refers to the achievement method for any single AUV in the group after global task assignment Gao et al. (2024).

The market mechanism algorithm is one the most common methods to solve the multitask assignment operations Oh et al. (2015). Another commonly used task assignment algorithm is the ant colony algorithm which mainly studies the autonomous task assignment of multi--robot systems in dynamic environments Cao et al. (2013). These are also other task assignment methods, such as that with intelligent heuristic algorithm handling water flow influence Zhu and Yang (2024), while kinematic path planning is not considered for most of them. As for neural networks, study Liu et al. (2011) further proposed a task allocation algorithm suitable for large--scale multi--robot clusters. The self--organizing neural network algorithm can also be applied to multi--task assignment. The SOM algorithm was proposed by a Finnish scholar, Teuvo Kohonen, in the 1980s Kohonen (1982); Zhao and Guo (2020). References Zhu and Yang (2006); Zhu et al. (2012) applied the self--organizing neural network to the task assignment and distribution of multi--mobile robot systems. Using the SOM neural network algorithm, dynamic task assignments for multi--AUV systems in two--dimensional ocean environments are implemented. Then, the multi--AUV multi--target allocation strategy of self--organizing map (SOM) neural network is further extended and applied to the three--dimensional marine environment Li and Zhu (2018). Event--triggered adaptive neural network tracking control for uncertain systems was proposed in Liu et al. (2024), where the event--triggering mechanism can reduce the update rate of input signals and avoid the Zeno behavior.

Path planning is one of the intelligent behaviors that AUVs need to possess. The so--called path planning means that in an environment with obstacles, the AUV finds a collision--free path from the initial state to the target state according to certain evaluation criteria Jiang et al. (1999); Leng et al. (2015). Traditional path planning methods mainly include the visual graph method, artificial potential field method, genetic algorithm, fuzzy logic method, etc. Khatib (1986); Sugihara (1998); Li et al. (2000). These path planning methods have their own scope of application. However, underwater movements of the AUVs have limitations. If the steering performance by the rudder is limited, with the maximum angle of steering θ𝜃\thetaitalic_θ, the maximum turning radius should be R𝑅Ritalic_R. For this reason, the minimum turning radius should not be less than R, which put constrains on the movements. Most of the traditional path planning methods did not consider the kinematic constraints. In another situation, a configurable maximum pitch angle γ𝛾\gammaitalic_γ is set to control the behaviour of the climbing of the AUV. In case that the necessary pitch angle between two waypoints exceeds this angle, a helical path is introduced to avoid the generation of pitch set--points that might make the vehicle stall. The Dubins path planning method can handle these two kind of situations caused by the vehicle kinematic constraints Cai et al. (2017); Lin and Saripalli (2014). The Dubins method is mainly based on the following theorem. When the direction of motion is known and the turning radius is the smallest, the shortest path from the initial vector to the ending vector is composed of a straight line and a turning arc with the smallest radius. AUV can effectively save energy by using the shortest path in the task assignment and path planning. Although the problem of multi--task assignment has been extensively studied, none of the literature mentioned above considered AUV’s underwater kinematic constraints. This issue has certainly been studied before by some scholars from different perspectives, but overall, the research is relatively rare. The AUV underwater task assignment and path planning in the actual environment cannot ignore the kinematic constraints and the actual existence of the obstacle environment. This paper mainly conducts in--depth research on this.

As shown in Figure 1, a typical AUV has 1–2 thrusters at the tail, relying on rudder and fins to control the moving direction. This structure determines that most AUVs are underactuated. When an AUV moves, it turns horizontally and tilts vertically, i.e., yaw and pitch. The yaw and pitch angles are limited due to mechanical structure and fluid dynamics. In the 3D workspace, pitch angle γγmax𝛾subscript𝛾𝑚𝑎𝑥\gamma\leqslant\gamma_{max}italic_γ ⩽ italic_γ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT, and yaw angle’s derivative or the angular velocity on the X–Y plane φ˙˙𝜑\dot{\varphi}over˙ start_ARG italic_φ end_ARG is also limited, which results in the turning radius rR𝑟𝑅r\geqslant Ritalic_r ⩾ italic_R, where R𝑅Ritalic_R is the minimum turning radius under the angular velocity max(φ˙)𝑚𝑎𝑥˙𝜑max(\dot{\varphi})italic_m italic_a italic_x ( over˙ start_ARG italic_φ end_ARG ). It should be noted that when the force of the thruster is set very high, the turning radius will also be large at the maximum rudder angle, while we are discussing the case of normal thrust. Considering this, task assignment and path planning of multiple AUV systems under kinematic constraints in a two--dimensional environment are studied in this paper, taking into account static obstacles and other interference factors. The main innovation is to combine the task assignment of SOM neural networks with Dubins path planning under kinematic constraints, making the method more applicable to real--world applications. By combining the Dubins Path algorithm with the improved self--organizing map** (SOM) neural network algorithm, this paper proposes a new task assignment and path planning algorithm, which effectively solves the multi--task assignment problem of the multi--AUV system in the actual environment. The mathematical model and algorithms are established in MATLAB R2016a and then tested in Python 2.7.18 on a Raspberry Pi.

Refer to caption
Figure 1: AUV’s kinematic constraint in 3D workspace.

This paper is organized as follows. The task assignment and kinematic motion planning problems are fomulated in Section 2. The proposed improved SOM neural network method with Dubins path planning algorithms are introduced in Section 3, where the AUVs’ kinematics have multi--constraints. In Section 4, simulation results are shown for the task assignment with Dubins path of several AUVs and targets in 2D and 3D workspace even with obstacles. Comparative time comsuptions are recorded to validate the actual availability for applications. In Section 5, some conclusive remarks are given with some future works discussed.

2 Problem Formulation

The task allocation algorithm of a multi AUV system covers two aspects: task allocation and path planning, which refer to the technology of controlling a group of AUVs based on a certain algorithm, and each of them reaches the target along the optimized path under kinematic constraints.

Task allocation refers to assigning any number of targets to a group of underwater robots, ensuring that all targets are traversed while minimizing the cost of the entire multi AUV system, i.e., minimizing the total walking distance. Path planning technology refers to a path planning method for a single AUV after global task allocation. This article mainly focuses on the task allocation and path planning problem of multi AUV systems under kinematic constraints in two--dimensional and three--dimensional environments, and considers interference factors such as obstacles. A 3D visual example is provided in Figure 2.

Relying solely on the principle of proximity between target point coordinates and AUV coordinates to allocate tasks may sometimes result in one AUV being assigned too many tasks, making it unable to fully reach all assigned targets before running out of power, while other AUVs may not be able to achieve the task objectives. The initially assigned tasks cannot be completed in the actual planned path due to obstacles. In order to ensure the maximum utilization of energy carried by each AUV and avoid the AUV stop** due to insufficient energy during its movement towards the target, load balancing of the AUV should be considered.

Refer to caption
Figure 2: The example of multi--AUV task assignment: 3 AUVs and 3 targets.

Assuming that AUVs have the same underwater cruising capability, carrying the same energy, the maximum number of each AUV should be decided firstly. Note that we do not consider the energy consumption difference caused by the turning radius for now, only the distance traveled. Firstly, calculate N=NT/NR𝑁subscript𝑁𝑇subscript𝑁𝑅N=N_{T}/N_{R}italic_N = italic_N start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT / italic_N start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT, where NTsubscript𝑁𝑇N_{T}italic_N start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT is the number of target points and NRsubscript𝑁𝑅N_{R}italic_N start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT is the number of AUVs, then set the upper limit of the task load to

NMAX={N,NN+N+1,NN+subscript𝑁𝑀𝐴𝑋cases𝑁𝑁superscript𝑁𝑁1𝑁superscript𝑁N_{MAX}=\begin{cases}N,&N\in N^{+}\\ \lfloor N\rfloor+1,&N\notin N^{+}\end{cases}italic_N start_POSTSUBSCRIPT italic_M italic_A italic_X end_POSTSUBSCRIPT = { start_ROW start_CELL italic_N , end_CELL start_CELL italic_N ∈ italic_N start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ⌊ italic_N ⌋ + 1 , end_CELL start_CELL italic_N ∉ italic_N start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_CELL end_ROW (1)

When the maximum number of tasks is exceeded the certain number for an AUV, the task will not be assigned to it again, and the suboptimal AUV will be selected to execute the task. Considering the load balancing of AUV systems into the algorithm is an important improvement, making them more suitable for the actual situation of multi AUV and multi task allocation. Meanwhile, we consider this problem in reverse and sequentially select the optimal target point for the AUV until the number of tasks for the AUV approaches NMAXsubscript𝑁𝑀𝐴𝑋N_{MAX}italic_N start_POSTSUBSCRIPT italic_M italic_A italic_X end_POSTSUBSCRIPT. At this point, we then calculate the energy loss of a single AUV to ultimately complete the task allocation.

After the optimal task assignment, path planning must be implemented with consideration of the kinematic constraints. Assuming that the AUV’s initial and final poses are denoted by Pg(xg,yg,zg,φg,γg)subscript𝑃𝑔subscript𝑥𝑔subscript𝑦𝑔subscript𝑧𝑔subscript𝜑𝑔subscript𝛾𝑔P_{g}\left(x_{g},y_{g},z_{g},\varphi_{g},\gamma_{g}\right)italic_P start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_φ start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_γ start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ) and Pg(xg,yg,zg,φg,γg)subscript𝑃𝑔subscript𝑥𝑔subscript𝑦𝑔subscript𝑧𝑔subscript𝜑𝑔subscript𝛾𝑔P_{g}\left(x_{g},y_{g},z_{g},\varphi_{g},\gamma_{g}\right)italic_P start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_φ start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_γ start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ), respectively, where φi,γisubscript𝜑𝑖subscript𝛾𝑖\varphi_{i},\gamma_{i}italic_φ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_γ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT represent the heading and pitch angles, respectively Yu Wang et al. (2015); Vana et al. (2020). In the Cartesian coordinate frame (x,y,z)𝑥𝑦𝑧(x,y,z)( italic_x , italic_y , italic_z ), the path connecting the two poses is provided by trajectory smoothing, which can be written as

{dxds=cosφ(s)cosγ(s)dyds=sinφ(s)cosγ(s)dzds=sinγ(s)dφds=μ1dγds=μ2cases𝑑𝑥𝑑𝑠𝜑𝑠𝛾𝑠𝑑𝑦𝑑𝑠𝜑𝑠𝛾𝑠𝑑𝑧𝑑𝑠𝛾𝑠𝑑𝜑𝑑𝑠subscript𝜇1𝑑𝛾𝑑𝑠subscript𝜇2\left\{\begin{array}[]{l}\frac{dx}{ds}=\cos\varphi(s)\cos\gamma(s)\\ \frac{dy}{ds}=\sin\varphi(s)\cos\gamma(s)\\ \frac{dz}{ds}=\sin\gamma(s)\\ \frac{d\varphi}{ds}=\mu_{1}\\ \frac{d\gamma}{ds}=\mu_{2}\end{array}\right.{ start_ARRAY start_ROW start_CELL divide start_ARG italic_d italic_x end_ARG start_ARG italic_d italic_s end_ARG = roman_cos italic_φ ( italic_s ) roman_cos italic_γ ( italic_s ) end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_d italic_y end_ARG start_ARG italic_d italic_s end_ARG = roman_sin italic_φ ( italic_s ) roman_cos italic_γ ( italic_s ) end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_d italic_z end_ARG start_ARG italic_d italic_s end_ARG = roman_sin italic_γ ( italic_s ) end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_d italic_φ end_ARG start_ARG italic_d italic_s end_ARG = italic_μ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_d italic_γ end_ARG start_ARG italic_d italic_s end_ARG = italic_μ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY (2)

where s𝑠sitalic_s represents the curvilinear abscissa along the path, μ1subscript𝜇1\mu_{1}italic_μ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and μ2subscript𝜇2\mu_{2}italic_μ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT represent the control inputs. The curvature radius R(s)𝑅𝑠R(s)italic_R ( italic_s ) is calculated as follows:

R(s)=1μ12(s)cos2γ(s)+μ22(s)𝑅𝑠1superscriptsubscript𝜇12𝑠superscript2𝛾𝑠superscriptsubscript𝜇22𝑠R(s)=\frac{1}{\sqrt{\mu_{1}^{2}(s)\cos^{2}\gamma(s)+\mu_{2}^{2}(s)}}italic_R ( italic_s ) = divide start_ARG 1 end_ARG start_ARG square-root start_ARG italic_μ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_s ) roman_cos start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_γ ( italic_s ) + italic_μ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_s ) end_ARG end_ARG (3)

As there are certain relationships between geometric constraints and the vehicle actual constraints, control inputs (μ1,μ2)subscript𝜇1subscript𝜇2(\mu_{1},\mu_{2})( italic_μ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) should be determined to satisfy the these geometric constraints: (1) the curvature radius constraint: |R|Rmin𝑅subscript𝑅𝑚𝑖𝑛|R|\geqslant R_{min}| italic_R | ⩾ italic_R start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT; (2) the pitch angle constraint: γminγγmaxsubscript𝛾𝑚𝑖𝑛𝛾subscript𝛾𝑚𝑎𝑥\gamma_{min}\leqslant\gamma\leqslant\gamma_{max}italic_γ start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT ⩽ italic_γ ⩽ italic_γ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT. Essentially, finding the shortest path is an optimal control problem. For a group of AUVs, we are trying to find the optimal total consumption of all AUVs after completing their tasks described as

1Nmin0sgn𝑑ssuperscriptsubscript1𝑁superscriptsubscript0subscript𝑠𝑔𝑛differential-d𝑠\sum_{1}^{N}\min\int_{0}^{s_{gn}}ds∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT roman_min ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT italic_g italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_d italic_s (4)

where sgnsubscript𝑠𝑔𝑛s_{gn}italic_s start_POSTSUBSCRIPT italic_g italic_n end_POSTSUBSCRIPT represents the planned trajectory length of the n𝑛nitalic_nth AUV.

In this paper, dubins path is used to handle this issue. In this way, we can plan executable formation trajectories. It is should be noted that the energy loss and formation task reassignment caused by different servo angles of the AUVs are not currently within the scope of this article.

3 Task Assignment Algorithm under Kinematic Constraints

In this section, self--organizing map (SOM) neural network method with Dubins path generator is used to deal with task allocation and path planning problems for the multi--AUV system. The control stability and accuracy of the system model are compensated by strengthening the optimal global exploration and local exploitation ability. At the same time, an event--triggered neural network evolution strategy is developed to decrease the update frequency of the control signal. The improved optimization method can realize the controller’s online parameter adjustment to meet the AUVs’ control requirements in the experimental simulation environment.

3.1 Application of Event--Triggered SOM in Multi--AUV Task Assignment

Assuming a group of AUVs is distributed within a limited working area, and a random number of targets are distributed within this area. Each target point requires one AUV to complete a specific task at that point. For each AUV, its cost is measured by the distance it moves from the starting position coordinate point to the target position coordinate point. The total cost is defined as the sum of all individual AUV costs. After all target points have been visited once, the task is completed.

For the sake of simplicity, a two--dimensional plane is used as the workspace, in which the red points represent the AUV, and the green circles represent the target point. Furthermore, assuming that all AUVs are the same robots with basic navigation, obstacle avoidance, and position recognition functions. For an input neuron (target point), the output neuron competes to become the winning neuron, as follows:

[𝐍j,𝐍l]=min{Dkjl,k=1,,K;j=1,,J;l=1,,L}subscript𝐍𝑗subscript𝐍𝑙subscript𝐷𝑘𝑗𝑙𝑘1𝐾𝑗1𝐽𝑙1𝐿\left[\mathbf{N}_{j},\mathbf{N}_{l}\right]=\min\left\{D_{kjl},k=1,\ldots,K;j=1% ,\ldots,J;l=1,\ldots,L\right\}[ bold_N start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , bold_N start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ] = roman_min { italic_D start_POSTSUBSCRIPT italic_k italic_j italic_l end_POSTSUBSCRIPT , italic_k = 1 , … , italic_K ; italic_j = 1 , … , italic_J ; italic_l = 1 , … , italic_L } (5)

where [𝐍j,𝐍l]subscript𝐍𝑗subscript𝐍𝑙\left[\mathbf{N}_{j},\mathbf{N}_{l}\right][ bold_N start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , bold_N start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ] represents the 𝐍jsubscript𝐍𝑗\mathbf{N}_{j}bold_N start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPTth output neuron that competes to win against the 𝐍lsubscript𝐍𝑙\mathbf{N}_{l}bold_N start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPTth input neuron in the k𝑘kitalic_kth iteration. Dkjlsubscript𝐷𝑘𝑗𝑙D_{kjl}italic_D start_POSTSUBSCRIPT italic_k italic_j italic_l end_POSTSUBSCRIPT is a weight related variable according to relative distance, defined as:

Dkjl={|𝐓l𝐑jk|(1+V),Pj<Smax,PjSmaxsubscript𝐷𝑘𝑗𝑙casessubscript𝐓𝑙subscript𝐑𝑗𝑘1𝑉subscript𝑃𝑗subscript𝑆subscript𝑃𝑗subscript𝑆\left.D_{kjl}=\begin{cases}\left|\mathbf{T}_{l}-\mathbf{R}_{jk}\right|\left(1+% V\right),&P_{j}<S_{\max}\\ \infty,&P_{j}\geq S_{\max}\end{cases}\right.italic_D start_POSTSUBSCRIPT italic_k italic_j italic_l end_POSTSUBSCRIPT = { start_ROW start_CELL | bold_T start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT - bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT | ( 1 + italic_V ) , end_CELL start_CELL italic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT < italic_S start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ∞ , end_CELL start_CELL italic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ≥ italic_S start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT end_CELL end_ROW (6)

where Smaxsubscript𝑆S_{\max}italic_S start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT is the maximal distance that a single AUV can travel, and

|𝐓l𝐑jk|=(xlwjkx)2+(ylwjky)2.subscript𝐓𝑙subscript𝐑𝑗𝑘superscriptsubscript𝑥𝑙subscript𝑤𝑗𝑘𝑥2superscriptsubscript𝑦𝑙subscript𝑤𝑗𝑘𝑦2\left|\mathbf{T}_{l}-\mathbf{R}_{jk}\right|=\sqrt{\left(x_{l}-w_{jkx}\right)^{% 2}+\left(y_{l}-w_{jky}\right)^{2}}.| bold_T start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT - bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT | = square-root start_ARG ( italic_x start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT - italic_w start_POSTSUBSCRIPT italic_j italic_k italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( italic_y start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT - italic_w start_POSTSUBSCRIPT italic_j italic_k italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG . (7)

Equation (7) provides an expression for finding the Euclidean distance between the target location 𝐓lsubscript𝐓𝑙\mathbf{T}_{l}bold_T start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT and the AUV location 𝐑jksubscript𝐑𝑗𝑘\mathbf{R}_{jk}bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT; specifically, 𝐓l=(Tlx,Tlv))\mathbf{T}_{l}=\left(T_{lx},T_{lv}\right))bold_T start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT = ( italic_T start_POSTSUBSCRIPT italic_l italic_x end_POSTSUBSCRIPT , italic_T start_POSTSUBSCRIPT italic_l italic_v end_POSTSUBSCRIPT ) ) is the coordinate of the input neuron in the Cartesian coordinate system; 𝐑jk=(wjkx,wjky)(k=1,2,,K;j=1,2,,J)subscript𝐑𝑗𝑘subscript𝑤𝑗𝑘𝑥subscript𝑤𝑗𝑘𝑦formulae-sequence𝑘12K𝑗12J\mathbf{R}_{jk}=\left(w_{jkx},w_{jky}\right)(k=1,2,\ldots,\mathrm{K};j=1,2,% \ldots,\mathrm{J})bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT = ( italic_w start_POSTSUBSCRIPT italic_j italic_k italic_x end_POSTSUBSCRIPT , italic_w start_POSTSUBSCRIPT italic_j italic_k italic_y end_POSTSUBSCRIPT ) ( italic_k = 1 , 2 , … , roman_K ; italic_j = 1 , 2 , … , roman_J ) is the coordinate of the k𝑘kitalic_kth neuron in the j𝑗jitalic_jth output neuron group, which is the position of a specific AUV at a certain moment. The parameter V𝑉Vitalic_V is given by (8), which controls the load balancing between various AUVs. The load balance function is the core of the SOM algorithm. The winning neuron in competition is not only the neuron with the smallest Euclidean distance from the input neuron but also the neuron with the smallest load at that moment.

V=Pjv¯1+v¯𝑉subscript𝑃𝑗¯𝑣1¯𝑣V=\frac{P_{j}-\bar{v}}{1+\bar{v}}italic_V = divide start_ARG italic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT - over¯ start_ARG italic_v end_ARG end_ARG start_ARG 1 + over¯ start_ARG italic_v end_ARG end_ARG (8)

where Pjsubscript𝑃𝑗P_{j}italic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT is the path length of the j𝑗jitalic_jth AUV’s movement, and v¯¯𝑣\bar{v}over¯ start_ARG italic_v end_ARG is the average path length of the AUV team.

After a AUV’s representing neuron wins the competition, a neighborhood function is an important step. The neighborhood function determines the influence (attraction strength) of the input neuron on the winning neuron and its adjacent neurons. The impact on the winning neuron should be the greatest. The impact on neighboring neurons gradually decreases, while neurons outside the neighboring area are not affected. The magnitude of the impact determines the size of the weight adjustment of neurons in the neighborhood during a certain iteration process. The process of calculating neighborhood functions and changing weights is shown in Figure 3. The red dots represent the position of the AUV at a certain moment, serving as output layer neurons. The green circle represents the target position as the input neuron. The winning neuron in the figure is R1subscript𝑅1R_{1}italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, which is one closest to the input T1subscript𝑇1T_{1}italic_T start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. The neighborhood function is defined as follows:

f(dj,G)={edj2/G2(t),dj<r0, other 𝑓subscript𝑑𝑗𝐺casessuperscript𝑒superscriptsubscript𝑑𝑗2superscript𝐺2𝑡subscript𝑑𝑗𝑟0 other f\left(d_{j},G\right)=\begin{cases}e^{-d_{j}^{2}/G^{2}(t)},&d_{j}<r\\ 0,&\text{ other }\end{cases}italic_f ( italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_G ) = { start_ROW start_CELL italic_e start_POSTSUPERSCRIPT - italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT / italic_G start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT , end_CELL start_CELL italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT < italic_r end_CELL end_ROW start_ROW start_CELL 0 , end_CELL start_CELL other end_CELL end_ROW (9)

It is easy to see that 0f(dj,G)10𝑓subscript𝑑𝑗𝐺10\leq f\left(d_{j},G\right)\leq 10 ≤ italic_f ( italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_G ) ≤ 1, where dj=𝐣𝐍lsubscript𝑑𝑗norm𝐣subscript𝐍𝑙d_{j}=\left\|\mathbf{j}-\mathbf{N}_{l}\right\|italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = ∥ bold_j - bold_N start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ∥, representing the distance between the j𝑗jitalic_jth neuron in the k𝑘kitalic_kth group and the winning neuron 𝐍lsubscript𝐍𝑙\mathbf{N}_{l}bold_N start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT. r𝑟ritalic_r is the neighborhood radius. G(t)=(1m)tGo𝐺𝑡superscript1𝑚𝑡subscript𝐺𝑜G(t)=(1-m)^{t}G_{o}italic_G ( italic_t ) = ( 1 - italic_m ) start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT italic_G start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT, where t𝑡titalic_t is the number of iterations. When t𝑡titalic_t increases, the value of the neighborhood function decreases, and the moving step of the AUV in the neighborhood decreases. m𝑚mitalic_m and Gosubscript𝐺𝑜G_{o}italic_G start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT are constants, through which the motion step size of AUVs in the neighborhood can be adjusted, thereby controlling calculation accuracy and operation time.

After the winning neuron and its neighborhood are determined, the winning neuron and adjacent neurons move towards the input neuron, while the other neurons remain stationary. The update rule is given by (10), where the addition operator represents vector addition. The termination condition for the operation is provided by Dminsubscript𝐷𝑚𝑖𝑛D_{min}italic_D start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT, which can reduce the calculation time. The modification of weight values depends not only on the initial distance between the winning neuron and its neighboring neurons and the input target point but also on the neighborhood function and the learning rate of the network α𝛼\alphaitalic_α.

𝐑jk(t+1)={𝐓l(t),Dkjl<Dmin𝐑jk(t)+αf(dj,G)(𝐓l(t)𝐑km(t)),othersubscript𝐑𝑗𝑘𝑡1casessubscript𝐓𝑙𝑡subscript𝐷𝑘𝑗𝑙subscript𝐷minsubscript𝐑𝑗𝑘𝑡𝛼𝑓subscript𝑑𝑗𝐺subscript𝐓𝑙𝑡subscript𝐑𝑘𝑚𝑡other\mathbf{R}_{jk}(t+1)=\begin{cases}\mathbf{T}_{l}(t),&D_{kjl}<D_{\mathrm{min}}% \\ \mathbf{R}_{jk}(t)+\alpha\cdot f(d_{j},G)\cdot\left(\mathbf{T}_{l}(t)-\mathbf{% R}_{km}(t)\right),&\text{other}\end{cases}bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT ( italic_t + 1 ) = { start_ROW start_CELL bold_T start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ( italic_t ) , end_CELL start_CELL italic_D start_POSTSUBSCRIPT italic_k italic_j italic_l end_POSTSUBSCRIPT < italic_D start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT ( italic_t ) + italic_α ⋅ italic_f ( italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_G ) ⋅ ( bold_T start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ( italic_t ) - bold_R start_POSTSUBSCRIPT italic_k italic_m end_POSTSUBSCRIPT ( italic_t ) ) , end_CELL start_CELL other end_CELL end_ROW (10)

At the same time, if there exists an obstacle at the position ob=(xo,yo)𝑜𝑏subscript𝑥𝑜subscript𝑦𝑜ob=(x_{o},y_{o})italic_o italic_b = ( italic_x start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ), the obstacle weight is computed based on the Euclidean distance between it and the neural network weights by

obw=min(|𝐨𝐛𝐑jk|)𝑜subscript𝑏𝑤𝑚𝑖𝑛𝐨𝐛subscript𝐑𝑗𝑘ob_{w}=min(\left|\mathbf{ob}-\mathbf{R}_{jk}\right|)italic_o italic_b start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT = italic_m italic_i italic_n ( | bold_ob - bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT | ) (11)

where 𝐨𝐛𝐨𝐛\mathbf{ob}bold_ob is the expansion of ob𝑜𝑏obitalic_o italic_b to a vector of equal length to 𝐑jk(j=1,2,,J;\mathbf{R}_{jk}(\mathrm{j}=1,2,\ldots,\mathrm{J};bold_R start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT ( roman_j = 1 , 2 , … , roman_J ; k=1,2,,K)\mathrm{k}=1,2,\ldots,\mathrm{K})roman_k = 1 , 2 , … , roman_K ). By comparing obw𝑜subscript𝑏𝑤ob_{w}italic_o italic_b start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT with the defined safety distance dsafetysubscript𝑑𝑠𝑎𝑓𝑒𝑡𝑦d_{s}afetyitalic_d start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_a italic_f italic_e italic_t italic_y, the impact of obstacles can be determined.

The flowchart of the algorithm is shown in Figure 4. After initializing the SOM neural network, the positions of the target points are sequentially input into the network. For a given input target point during the iteration process, it can be summarized as a three--step calculation process. The first step is to select the winning neuron; the second step is to determine the neighborhood of the winning neuron; the third step is to correct the weight vectors of the winning neuron and its neighboring neurons. Event triggering occurs in three situations, namely obstacles on the path, load exceeding the upper limit, or inability to plan the Dubins path from the AUV to the pre--allocated target point. The event triggered control functions u𝑢uitalic_u is given by (12), where u1subscript𝑢1u_{1}italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is the workload related function by (13) and u2subscript𝑢2u_{2}italic_u start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is the obstacles related function by (14). The event triggered re--assignment will be implemented in the SOM algorithm flow chart if u=0𝑢0u=0italic_u = 0. After all target points are reached by one specified AUV, task allocation is completed.

u=u1&u2𝑢subscript𝑢1subscript𝑢2u=u_{1}\&u_{2}italic_u = italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT & italic_u start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT (12)
u1={0,Dkjl=1,otherssubscript𝑢1cases0subscript𝐷𝑘𝑗𝑙1𝑜𝑡𝑒𝑟𝑠u_{1}=\begin{cases}0,&D_{kjl}=\infty\\ 1,&others\end{cases}italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = { start_ROW start_CELL 0 , end_CELL start_CELL italic_D start_POSTSUBSCRIPT italic_k italic_j italic_l end_POSTSUBSCRIPT = ∞ end_CELL end_ROW start_ROW start_CELL 1 , end_CELL start_CELL italic_o italic_t italic_h italic_e italic_r italic_s end_CELL end_ROW (13)
u2={0,obw>dsafety1,obwdsafetysubscript𝑢2cases0𝑜subscript𝑏𝑤subscript𝑑𝑠𝑎𝑓𝑒𝑡𝑦1𝑜subscript𝑏𝑤subscript𝑑𝑠𝑎𝑓𝑒𝑡𝑦u_{2}=\begin{cases}0,&ob_{w}>d_{safety}\\ 1,&ob_{w}\leq d_{safety}\end{cases}italic_u start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = { start_ROW start_CELL 0 , end_CELL start_CELL italic_o italic_b start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT > italic_d start_POSTSUBSCRIPT italic_s italic_a italic_f italic_e italic_t italic_y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 1 , end_CELL start_CELL italic_o italic_b start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ≤ italic_d start_POSTSUBSCRIPT italic_s italic_a italic_f italic_e italic_t italic_y end_POSTSUBSCRIPT end_CELL end_ROW (14)
Refer to caption
Figure 3: Schematic diagram of neighborhood weight change and load balance.
Refer to caption
Figure 4: The event--triggered SOM algorithm flow chart.

3.2 Dubins Path Planning Algorithm for AUV Kinematic Constrains

Unlike underwater robots such as ROVs, most torpedo like AUVs and underwater gliders are underactuated with tail thrusters to only moving forward, steering depend on fins and rudders. It is difficult to achieve proper path planning. Fortunately, Dubin’s Car was introduced into the literature by Lester Dubins, a famous mathematician and statistician, in a paper published in 1957. The cars essentially have only 3 controls: “turn left at maximum”, “turn right at maximum”, and “go straight”. All the paths traced out by the Dubin’s car are combinations of these three controls. Dubin’s car is very similar to AUVs’ kinematics. Assuming that the AUV has an initial velocity and dynamic characteristics as mentioned above, the path can be planned based on the Dubins car method from 2D to 3D workspace. Precise motion control to dynamic control problem is also very useful, which is another quite challenging field being studied. For example, command filter with adaptive control was proposed to solve the model uncertainties and input saturation issues Liu et al. (2023). These theories will be involved in our future work. To minimize the traveling time and energy consumption of AUVs, path planning based on kinematic is necessary. Here, we adopt the Dubins method to deal with the three--dimensional motion planning problem.

Literally, the Dubins curve is the shortest path connecting two points with initial directions, while satisfying curvature constraints and specified tangent lines (entry direction) at the beginning and end, and limiting the target to only turn forward. As described in prior works, the Dubins curve can be represented as a combination of three basic movements, as listed in Table 1. The Dubins curve provides a sufficient set of paths, which includes the optimal path. The shortest path is only selected from 6 curves in the set of LRL LSL LSR RLR RSR RSL.

Table 1: Table of concise classification of the Dubins path.
Symbol Meaning Direction
L Turn left Counterclockwise
R Turn right Clockwise
S Go straight Forward
C Circular arc Na
CCC 3 arcs LRL RLR
CSC 2 arcs and 1 line segment LSL RSR LSR RSL

Dubins curves in above table have been discussed in several papers such as Lin and Saripalli (2014); Yu Wang et al. (2015), and related calculation methods are provided in former research, which will not be repeated in this article. Two of the Dubin’s shortest paths do not use the tangent lines. These are the RLR and LRL trajectories, which consist of three tangential, minimum radius turning circles Giese (2012–2023); Shkel and Lumelsky (2001). These trajectories may be used very often in the swarm situation, where a lot of AUVs densely distributed in a certain 3D workspace. If the distance between the agent and the target’s turning circles is less than 4 times the minimum turning radius rminsubscript𝑟𝑚𝑖𝑛r_{min}italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT, then a CCC curve is valid. For CCC trajectories as an example, we must calculate the location of the third circle, as well as its tangent points to the circles. To be more concrete, the RLR case is shown in Figure 5.

Consider the minimum--radius turning circle to the right of start location to be the circle c1, and the minimum--radius turning circle to the right of the goal location to be the circle c3. The task is now to compute c2, a circle tangent to both c1 and c2 plus the points pt1subscript𝑝𝑡1p_{t1}italic_p start_POSTSUBSCRIPT italic_t 1 end_POSTSUBSCRIPT and pt2subscript𝑝𝑡2p_{t2}italic_p start_POSTSUBSCRIPT italic_t 2 end_POSTSUBSCRIPT which are respective points of intersection between the 3 circles. Let p1, p2, p3 be the centers of circle c1, c2, and c3,respectively. The triangle is formed using these points. Because c2 is tangent to both c1 and c2, the lengths of all three sides are known.

Segments p1p2¯¯p1p2\overline{\textbf{p1}\textbf{p2}}over¯ start_ARG bold_p1 bold_p2 end_ARG and p3p2¯¯p3p2\overline{\textbf{p3}\textbf{p2}}over¯ start_ARG bold_p3 bold_p2 end_ARG have length 2rmin2subscript𝑟𝑚𝑖𝑛2r_{min}2 italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT, and segment p1p3¯¯p1p3\overline{\textbf{p1}\textbf{p3}}over¯ start_ARG bold_p1 bold_p3 end_ARG has length d𝑑ditalic_d. We are interested in the angle θ=p3p1p2𝜃p3p1p2\theta=\angle\textbf{p3}\textbf{p1}\textbf{p2}italic_θ = ∠ bold_p3 bold_p1 bold_p2 because that is the angle that the line between c1 and c3 (V1subscript𝑉1\vec{V}_{1}over→ start_ARG italic_V end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT) must rotate to face the center of c2, which will allow us to calculate p2 by θ=cos1(d4rmin)𝜃𝑐𝑜superscript𝑠1𝑑4subscript𝑟𝑚𝑖𝑛\theta=cos^{-1}\left(\frac{d}{4r_{min}}\right)italic_θ = italic_c italic_o italic_s start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( divide start_ARG italic_d end_ARG start_ARG 4 italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT end_ARG ), where θ𝜃\thetaitalic_θ in a RLR trajectory represents the amount of rotation that vector V1=p3p1subscript𝑉1p3p1\vec{V}_{1}=\textbf{p3}-\textbf{p1}over→ start_ARG italic_V end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = p3 - p1 must rotate to point at the center of c2; d=(x3x1)2+(y3y1)2𝑑superscriptsubscript𝑥3subscript𝑥12superscriptsubscript𝑦3subscript𝑦12d=\sqrt{\left(x_{3}-x_{1}\right)^{2}+\left(y_{3}-y_{1}\right)^{2}}italic_d = square-root start_ARG ( italic_x start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( italic_y start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG. However, θ𝜃\thetaitalic_θ’s value is only valid if V1subscript𝑉1\vec{V}_{1}over→ start_ARG italic_V end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is the same direction as the positive x--axis. Otherwise, the atan2 function will be needed to rotate V1subscript𝑉1\vec{V}_{1}over→ start_ARG italic_V end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. For a LRL trajectory, we want to add θ𝜃\thetaitalic_θ to this value, but for an RLR trajectory, we want to subtract θ𝜃\thetaitalic_θ from it to obtain a circle at the right--side of c1. Note that we consider counter--clockwise turns to be positive. Now that theta represents the absolute amount of rotation, we can compute the c2 center point

p2=(x1+2rmincos(θ),y1+2rminsin(θ))p2subscript𝑥12subscript𝑟𝑚𝑖𝑛𝑐𝑜𝑠𝜃subscript𝑦12subscript𝑟𝑚𝑖𝑛𝑠𝑖𝑛𝜃\textbf{p2}=(x_{1}+2r_{min}cos\left(\theta\right),y_{1}+2r_{min}sin\left(% \theta\right))p2 = ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 2 italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT italic_c italic_o italic_s ( italic_θ ) , italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 2 italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT italic_s italic_i italic_n ( italic_θ ) ) (15)

after which the tangent points pt1subscript𝑝𝑡1p_{t1}italic_p start_POSTSUBSCRIPT italic_t 1 end_POSTSUBSCRIPT and pt2subscript𝑝𝑡2p_{t2}italic_p start_POSTSUBSCRIPT italic_t 2 end_POSTSUBSCRIPT becomes easy to be computed. Defining vectors from the p2 to p1 and p3, and walking down them a distance of rminsubscript𝑟𝑚𝑖𝑛r_{min}italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT, we obtain the vector V2subscript𝑉2\vec{V_{2}}over→ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG from p2 to p1. Next, change the vector’s magnitude to rminsubscript𝑟𝑚𝑖𝑛r_{min}italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT by normalizing it and multiplying by rminsubscript𝑟𝑚𝑖𝑛r_{min}italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT

V2=V2V2rminsubscript𝑉2subscript𝑉2normsubscript𝑉2subscript𝑟𝑚𝑖𝑛\vec{V_{2}}=\frac{\vec{V_{2}}}{\|V_{2}\|}*r_{min}over→ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG = divide start_ARG over→ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG end_ARG start_ARG ∥ italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∥ end_ARG ∗ italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT (16)

where V2=p1p2subscript𝑉2p1p2\vec{V_{2}}=\textbf{p1}-\textbf{p2}over→ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG = p1 - p2. Next, compute pt1subscript𝑝𝑡1p_{t1}italic_p start_POSTSUBSCRIPT italic_t 1 end_POSTSUBSCRIPT using the new V2subscript𝑉2\vec{V_{2}}over→ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG by pt1=p2+V2subscript𝑝𝑡1p2subscript𝑉2p_{t1}=\textbf{p2}+\vec{V_{2}}italic_p start_POSTSUBSCRIPT italic_t 1 end_POSTSUBSCRIPT = p2 + over→ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG. Then, pt2subscript𝑝𝑡2p_{t2}italic_p start_POSTSUBSCRIPT italic_t 2 end_POSTSUBSCRIPT will be computed following a similar procedure.

Refer to caption
Figure 5: Computing a RLR Dubins trajectory.

As the tangent points are obtained, arc lengths and duration as before can be computed to finish things off. Then, we obtain a Dubins path composed of 3 curves known as the CCC trajectory. To extend the 2D Dubins curves to 3D space using the linear interpolation method, the 3D tour sequences are first projected on to the 2D [X,Y]𝑋𝑌[X,Y][ italic_X , italic_Y ] plane in a global coordinate system. Taking a starting point P0(X0,Φ0]subscript𝑃0subscript𝑋0subscriptΦ0P_{0}(X_{0},\Phi_{0}]italic_P start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_X start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , roman_Φ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ] and an ending point P1(X1,Φ1)subscript𝑃1subscript𝑋1subscriptΦ1P_{1}(X_{1},\Phi_{1})italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_X start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , roman_Φ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) in the 3D [X,Y,Z]𝑋𝑌𝑍[X,Y,Z][ italic_X , italic_Y , italic_Z ] space and project them on to the 2D plane. Then, the starting and ending points become 2D parameters [(x0,y0),ϕ0]subscript𝑥0subscript𝑦0subscriptitalic-ϕ0[(x_{0},y_{0}),\phi_{0}][ ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ] and [(x1,y1),ϕ1]subscript𝑥1subscript𝑦1subscriptitalic-ϕ1[(x_{1},y_{1}),\phi_{1}][ ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ]. The 2D Dubins curve is designed as described in the above content, and the lengths of the arcs and line segment are calculated. Let 0,xsubscript0𝑥\mathcal{L}_{0,x}caligraphic_L start_POSTSUBSCRIPT 0 , italic_x end_POSTSUBSCRIPT and x,1subscript𝑥1\mathcal{L}_{x,1}caligraphic_L start_POSTSUBSCRIPT italic_x , 1 end_POSTSUBSCRIPT denote the lengths along the 2D Dubins curve from (x0,y0)subscript𝑥0subscript𝑦0(x_{0},y_{0})( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) to (x, y) and from (x,y)𝑥𝑦(x,y)( italic_x , italic_y ) to (x1,y1)subscript𝑥1subscript𝑦1(x_{1},y_{1})( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ), respectively. The linear interpolation adds the z coordinate in the 3D space by

z=z0+0,x0,1(z1z0)𝑧subscript𝑧0subscript0𝑥subscript01subscript𝑧1subscript𝑧0z=z_{0}+\frac{\mathcal{L}_{0,x}}{\mathcal{L}_{0,1}}(z_{1}-z_{0})italic_z = italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + divide start_ARG caligraphic_L start_POSTSUBSCRIPT 0 , italic_x end_POSTSUBSCRIPT end_ARG start_ARG caligraphic_L start_POSTSUBSCRIPT 0 , 1 end_POSTSUBSCRIPT end_ARG ( italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) (17)

where z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and z1subscript𝑧1z_{1}italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT are the Z coordinates of the starting and ending points. A detailed procedure has been introduced in existing papers such as Cai et al. (2017); Vana et al. (2020) and will not be repeated here. If obstacles appear in the path, we must re--assign the tasks.

After obtaining the dubins path, we modified the task allocation algorithm as following Figure 6. With kinematic constraints considered, the computing process increases the base on algorithm 1. Due to the limited energy carried by autonomous underwater robots themselves, the rational and effective utilization of energy has become a key constraint for multi--AUV systems to complete multiple tasks. Therefore, the load balancing of AUVs is considered in the algorithm. The paper assumes that AUVs carry the same energy, that is, within the same working range, the distances traveled by AUVs exhausting their own energy are the same. Load balancing is determined by the traveling distance limit. At the same time, it is determined whether the distance between the winning AUV and the target task point meets the conditions for forming the Dubins Path. If not, it is set to infinity. Then the input neuron data could be modified in Algorithm 1 to reassign tasks to appropriate AUVs.

Refer to caption
Figure 6: Flow chart of task assignment algorithm with Dubins path.

4 Simulation Research

Simulations were set up with multiple underwater targets deployed randomly in a work space of [30×30]delimited-[]3030[30\times 30][ 30 × 30 ] units, where the minimum turning radius rminsubscript𝑟𝑚𝑖𝑛r_{min}italic_r start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT of each AUV are the same and equal to 1 unit. Green dots represent targets, and red diamonds represent AUVs. In the workspace of a multi AUV system, there are four AUVs that need to access 6 randomly distributed targets. After the task is assigned by the SOM neural network, each AUV can reach its nearest target point along the optimal path, as shown in Figure 7. As there is no obstacle or load balance problem in this workspace, AUVs can accurately reach various target positions based on proposed algorithm.

{adjustwidth}

-\extralength0cm Refer to caption

Figure 7: Task assignment in an initial obstacle free and load balance free environment. (a) initial positions; (b) assignment result.

In actual operation, there are often obstacles that affect the results of task allocation. We keep the positions of AUVs and target points unchanged while adding an obstacle area to the workspace, which may also affect the load balancing.

As Figure 8 illustrates, comparing Figure 8b to Figure 7b, it can be found that when the route is blocked by the obstacle or the path cannot be planned, the current winning neuron is not selected, and the suboptimal neuron is used for route planning until the path planning is successful after the task re--assignment. All target points are also accessed by the closest distance. The simulation results prove that the algorithm is effective with obstacles.

{adjustwidth}

-\extralength0cm Refer to caption

Figure 8: Task assignment and path planning in an obstacle environment. (a) initial positions of AUVs, targets and obstacles; (b) simulaiton result.

In more cases, besides obstacles, there is also the issue of load balancing for AUVs. AUVs navigate in water and carry limited energy, which means the total range that a single AUV can navigate is limited. The algorithm proposed in this article can solve these problems within a certain range. The following is a simulation explanation.

As shown in Figure 9, in the workspace of a multi--AUV task assignment scenario, there are 2 AUVs that need to access 6 randomly distributed targets. Figure 9a shows task allocation and path planning without workload balance settings, where one AUV is responsible for four tasks and the other is responsible for two tasks. Figure 9b shows task allocation and path planning with a setting of number of tasks as 3. At this time, both AUVs are responsible for completing 3 tasks, and their energy consumption is relatively balanced. In the algorithm, the upper limit of task responsibility is set by default to the number of tasks divided by the number of robots, rounded up by 1. At the same time, the distance traveled is also recorded, and the maximum walking path upper limit is provided. When the upper limit is exceeded after the execution of this task, the task is not assigned to the winning robot. A series of tests are implemented as illustrated in Table 4. The path length is using “Unit” as a measurement unit as mentioned above.

Table 2: Task assignment and path planning results with and without workload balancing.
{adjustwidth}

-\extralength0cm AUV Number (\mathboldn\mathbold𝑛\mathbold{n}italic_n) Target Number Whether Load Balanced Path Length (Total) Path Length (Max) Tic Toc on PC (ms) Clock on Pi (ms) 2 4 No 8.2 4.6 23 nul 6 No 10.5 6.4 25 3550 4 Yes 8.2 4.6 33 nul 6 Yes 11.1 5.6 52 5012 4 6 No 10.6 3.0 30 nul 8 No 15.2 5.7 32 nul 6 Yes 11.5 2.2 51 nul 8 Yes 16.1 4.1 55 nul 6 8 No 15.9 3.5 46 5276 10 No 20.2 5.6 49 nul 8 Yes 16.7 2.8 60 7189 10 Yes 23.8 4.3 67 nul

{adjustwidth}

-\extralength0cm Refer to caption

Figure 9: Task assignment in an obstacle environment with workload balancing. (a) initial state; (b) assignment result.

As can be seen in the table above, the distance traveled by AUVs varies depending on whether load balancing is enabled or not. The algorithms were firstly implemented with MATLAB R2016a software on the hardware platform of HP Computer with Intel Core i7 9700 CPU and 16G DDR4 2400 memory. Simulation run time consumption was recorded using the Tic and Toc function. When there is no load balancing, the AUV obtains the minimum total distance based on the operation results of the SOM neural network, but the traveling length of a certain AUV may deviate from the average value. In the case of 4 AUVs for 8 targets, we calculate the mean square deviation of the distance based on the recorded running distance of each AUV, and the calculated formula is L~=i=1n(LiL¯)2n1~𝐿superscriptsubscript𝑖1𝑛superscriptsubscript𝐿𝑖¯𝐿2𝑛1\tilde{L}=\sqrt{\frac{\sum_{i=1}^{n}(L_{i}-\overline{L})^{2}}{n-1}}over~ start_ARG italic_L end_ARG = square-root start_ARG divide start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_L start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - over¯ start_ARG italic_L end_ARG ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG italic_n - 1 end_ARG end_ARG. Then, the standard deviation of the sample without load balancing can be obtained as 1.812; the standard deviation of the sample with load balancing can be obtained as 0.133. If there is no load balance, the load of a certain AUV may exceed the mean value significantly, which is not feasible in practical applications. Thus, we obtain the multi--task allocation results based on Dubins path planning under load balancing. Under load balancing, due to the fact that the pairing selection between certain AUVs and the target points may not be optimal in distance, the total path length will increase and the computation time will also increase, which are all within an acceptable range on the level of tens of milliseconds. The simulation results show that the algorithm considering workload balance is effective.

Meanwhile, we implemented the algorithm through Python programs, with package NumNy. On the PC, the simulation time consumption with Python is approximately 5–10 times that of Matlab. In order to get closer to practical applications, we run Python simulations on the embedded device, an official Raspberry Pi 4B with 4G memory. The running times are shown in the table, which basically take a few seconds to complete the core algorithm, without drawing the graphics. Considering the rapid development of ARM computing power, it can be said feasible to run this algorithm on embedded systems. It should be noted that running on the Pi is only an experiment for the core program, not in an actual operation. The field applications may require an omniscient perspective and a known global map (or SLAM), which may involve various additional hardware.

Based on the method discussed in Section 2, we extend the application to three--dimensional workspace. Task assigment and Dubins paths in 3D space also face obstacles and load balancing problems. Due to paper length limitations, we will provide an example of simulation here, without considering dynamic disturbances caused by water flow. Simulations were set up with multiple underwater targets deployed randomly in a 3D workspace, as shown in Figure 10a. Note that in a 3D environment, the pitch angle γ𝛾\gammaitalic_γ is taken into algorithm and restricted to [15PI/180,15PI/180]15𝑃𝐼18015𝑃𝐼180[-15*PI/180,15*PI/180][ - 15 ∗ italic_P italic_I / 180 , 15 ∗ italic_P italic_I / 180 ]. Task allocation results and trajectories are illustrated in Figure 10b for 3 AUVs and 8 targets. We have simulated 30 Monte Carlo scenarios with AUVs and targets, and computed the average length of 3D trajectories. The standard deviation value L~~𝐿\tilde{L}over~ start_ARG italic_L end_ARG is relatively small since the proposed algorithms can achieve progressive optimization using the load balancing scheme. The comparison results related to energy balance are shown in Table 3. We also implemented some simulations on PC (MATLAB) and Pi (Python). The average running time within an acceptable range has been recorded in the table.

{adjustwidth}

-\extralength0cm Refer to caption

Figure 10: Task assignment in 3D environment with workload balancing. (a) targets and AUVs initial positions; (b) simulation result visualization.
Table 3: Task assignment and path planning results in 3D workspace with and without workload balancing.
{adjustwidth}

-\extralength0cm AUV Number (\mathboldn\mathbold𝑛\mathbold{n}italic_n) Target Number Average Path Length Standard Deviation (\mathboldL~\mathbold~𝐿\mathbold{\tilde{L}}over~ start_ARG italic_L end_ARG) Tic Toc on PC (ms) Clock on Pi (ms) 3 8 103.5 1.005 78 8863 10 131.7 0.516 81 nul 15 206.0 0.232 101 nul 5 10 96.1 0.710 82 9012 15 129.6 0.425 89 nul 20 260.5 0.951 103 nul

5 Conclusion and Future Work

This paper has studied the task assignment and path planning problem for multi--AUV systems with kinematic character considered. The improved SOM neural network method based on workload balance and neighborhood function is adopted to slove the strategy--level issues for task allocation. Meanwhile, based on feasible kinematic path planning, combined with the Dubins method for path planning and task reassignment, task allocation and path planning under load balancing are finally achieved. The 2D and 3D Dubins curves are designed with a set of possible headings and with nonholonomic motion constraints. It is demonstrated that the proposed method has been proven to achieve feasible load balancing for task assignment in obstacle environments. In future work, firstly, we will rewrite the algorithm in C++, ho** to achieve faster speed on embedded systems. Secondly, we will study more practical application and controllers related to dynamic control methods Li et al. (2022), such as Dubins trajectory tracking problem in water flow workspace of multi--AUV systems, as well as inter group collision avoidance of AUVs on the Dubins paths, and the moving obstacle avoidance problem.

\authorcontributions
\funding

This research received no external funding.

\institutionalreview

Not applicable.

\informedconsent

Not applicable.

Acknowledgements.
The authors would like to thank all the Editors and Reviewers who have given their valuable advice to this paper. \conflictsofinterestThe authors declare no conflicts of interest. {adjustwidth}-\extralength0cm \reftitleReferences

References

  • Gao et al. (2024) Gao, K.; Gao, M.; Zhou, M.; Ma, Z. Artificial intelligence algorithms in unmanned surface vessel task assignment and path planning: A survey. Swarm Evol. Comput. 2024, 86, 101505. https://doi.org/10.1016/j.swevo.2024.101505.
  • Oh et al. (2015) Oh, G.; Kim, Y.; Ahn, J.; Choi, H.L. Market-Based Task Assignment for Cooperative Timing Missions over Networks with Limited Connectivity. In Proceedings of the Aiaa Guidance, Navigation, & Control Conference, AIAA Scitech, Kissimmee, FL, USA, 5–9 January 2015.
  • Cao et al. (2013) Cao, Z.H.; Bin, W.U.; Huang, Y.Q.; Deng, C.Y. The Multi-Robot Task Allocation Study Based on Improved Ant Colony Algorithm. Modul. Mach. Tool Autom. Manuf. Tech. 2013, 1, 35–37.
  • Zhu and Yang (2024) Zhu, D.; Yang, S.X. Current Effect-Eliminated Optimal Target Assignment and Motion Planning for a Multi-UUV System. IEEE Trans. Intell. Transp. Syst. 2024, 1–10. https://doi.org/10.1109/tits.2024.3351442.
  • Liu et al. (2011) Liu, S.; Sun, T.; Hung, C.C. Multi-Robot Task Allocation Based on Swarm Intelligence; Multi-Robot Systems, Trends and Development; InTech: London, UK, 2011.
  • Kohonen (1982) Kohonen, T.K. Analysis of a simple self-organizing process. Biol. Cybern. 1982, 44, 135–140.
  • Zhao and Guo (2020) Zhao, C.; Guo, D. Particle Swarm Optimization Algorithm with Self-Organizing Map** for Nash Equilibrium Strategy in Application of Multiobjective Optimization. IEEE Trans. Neural Netw. Learn. Syst. 2020, 32, 5179–5193.
  • Zhu and Yang (2006) Zhu, A.; Yang, S. A Neural Network Approach to Dynamic Task Assignment of Multirobots. IEEE Trans. Neural Netw. 2006, 17, 1278–1287. https://doi.org/10.1109/TNN.2006.875994.
  • Zhu et al. (2012) Zhu, D.; Xin, L.; Mingzhong, Y. Task assignment algorithm of multi-AUV based on self-organizing map. Control Decis. 2012, 27, 1201–1204. https://doi.org/10.13195/j.cd.2012.08.84.zhudq.030.
  • Li and Zhu (2018) Li, X.; Zhu, D. An Adaptive SOM Neural Network Method for Distributed Formation Control of a Group of AUVs. IEEE Trans. Ind. Electron. 2018, 65, 8260–8270. https://doi.org/10.1109/TIE.2018.2807368.
  • Liu et al. (2024) Liu, J.; Wang, Q.G.; Yu, J. Event-Triggered Adaptive Neural Network Tracking Control for Uncertain Systems with Unknown Input Saturation Based on Command Filters. IEEE Trans. Neural Netw. Learn. Syst. 2024, 35, 8702–8707. https://doi.org/10.1109/TNNLS.2022.3224065.
  • Jiang et al. (1999) Jiang, K.; Seneviratne, L.D.; Earles, S. A Shortest Path Based Path Planning Algorithm for Nonholonomic Mobile Robots. J. Intell. Robot. Syst. 1999, 24, 347–366.
  • Leng et al. (2015) Leng, J.; Liu, J.; Hongli, X.U. Online path planning of an unmanned surface vehicle for real-time collision avoidance. CAAI Trans. Intell. Syst. 2015, 10, 343–348.
  • Khatib (1986) Khatib, O. Real-Time Obstacle Avoidance System for Manipulators and Mobile Robots. Int. J. Robot. Res. 1986, 5, 90–98.
  • Sugihara (1998) Sugihara, K. GA-based on-line path planning for SAUVIM. In Proceedings of the International Conference on Industrial & Engineering Applications of Artificial in Telligence & Expert Systems: Tasks & Methods in Applied Artificial Intelligence, Castellón, Spain, 1–4 June 1998.
  • Li et al. (2000) Li, T.; Chiang, M.S.; Jian, S.S. Motion planning of an autonomous mobile robot by integrating GAs and fuzzy logic control. In Proceedings of the IEEE International Conference on Fuzzy Systems, San Antonio, TX, USA, 7–10 May 2000.
  • Cai et al. (2017) Cai, W.; Zhang, M.; Zheng, Y. Task Assignment and Path Planning for Multiple Autonomous Underwater Vehicles Using 3D Dubins Curves. Sensors 2017, 17, 1607.
  • Lin and Saripalli (2014) Lin, Y.; Saripalli, S. Path planning using 3D Dubins Curve for Unmanned Aerial Vehicles. In Proceedings of the 2014 International Conference on Unmanned Aircraft Systems (ICUAS), Orlando, FL, USA, 27–30 May 2014.
  • Yu Wang et al. (2015) Wang, Y.; Wang, Y.; Tan, M.; Zhou, C.; Wei, Q. Real-Time Dynamic Dubins-Helix Method for 3-D Trajectory Smoothing. IEEE Trans. Control Syst. Technol. 2015, 23, 730–736. https://doi.org/10.1109/TCST.2014.2325904.
  • Vana et al. (2020) Vana, P.; Alves Neto, A.; Faigl, J.; Macharet, D.G. Minimal 3D Dubins Path with Bounded Curvature and Pitch Angle. In Proceedings of the 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 31 May–1 August 2020; pp. 8497–8503. https://doi.org/10.1109/ICRA40945.2020.9197084.
  • Liu et al. (2023) Liu, Y.; Liu, J.; Wang, Q.G.; Yu, J. Adaptive Command Filtered Backstep** Tracking Control for AUVs Considering Model Uncertainties and Input Saturation. IEEE Trans. Circuits Syst. II Express Briefs 2023, 70, 1475–1479. https://doi.org/10.1109/TCSII.2022.3221082.
  • Giese (2012–2023) Giese, A. A Comprehensive, Step-by-Step Tutorial on Computing Dubin’s Curves. 2012–2023. Available online: https://gieseanw.wordpress.com/2012/10/21/a-comprehensive-step-by-step-tutorial-to-computing-dubins-paths/ (accessed on 6 March 2024 ).
  • Shkel and Lumelsky (2001) Shkel, A.M.; Lumelsky, V. Classification of the Dubins set. Robot. Auton. Syst. 2001, 34, 179–202.
  • Li et al. (2022) Li, Y.; Li, X.; Zhu, D.; Yang, S.X. Self-Competition Leader-Follower Multi-AUV Formation Control Based On Improved Pso Algorithm With Energy Consumption Allocation. Int. J. Robot. Autom. 2022, 37, 288–301. https://doi.org/10.2316/J.2022.206-0563.
\PublishersNote