## 3 Approach  
### Path Following Algorithm  
A straight path following algorithm based on the predicted position control was adopted in our USV. The core idea of the algorithm was to calculate the \(d^{\prime}\) (the USV's predicted lateral offset). If \(d^{\prime}\) was larger, the angle which made the USV return to the planned path was also greater.  
The schematic diagram of the algorithm is shown in Figure 5. We defined some variables, where _Yaw_ and _Angel_ represent the course angle and turning angle required for the USV to return to the planned path, and \(d\) and \(d^{\prime}\) represent the actual lateral offset and predicted lateral offset, respectively. The calculation formula of \(d\) is Equation (3). The calculation formula of \(d^{\prime}\) is Equation (2), where the linear speed and angular speed of the USV were set to \(V_{usv}\) and \(\omega_{usv}\). _Yaw_ and _Angel_ are calculated as Equation (1), where _TogestDist_ and _ToDestAng_ are the distance and angle from the USV to the terminating waypoint, and \(\varphi\) is the heading angle of the USV. _PathAng_ is the angle of the path, which is calculated from the start and end waypoint of the path. _ToDestDist_ and _ToDestAng_ are calculated based on the USV's state (position, heading angle, the latitude and longitude information to the terminating waypoint, etc.). Parameters \(T_{1}\) and \(T_{2}\) are called time-lag constant and time-lag slope, respectively. The \(f(x)\) is a saturation function, in order to modify the distance conversion coefficient \(\chi_{d}\) into a variable form. Therefore, both the real time and smoothness of the USV movement are considered.  
\[Yaw=ToDestAng+f(d^{\prime})\times\chi_{d}\ Angel=ToDestAng+f(d^{\prime})\times \chi_{d}-\varphi \tag{1}\]  
\[d^{\prime}=d+V_{usv}\times T_{1}\times sin(PathAng-\omega_{usv}\times T_{2}) \tag{2}\]  
\[d=ToDestDist\times sin\times(PathAng-ToDestAng) \tag{3}\]  
\[f(x)=\frac{60.0x}{|x|\left(1+e^{-0.5(|x|-10)}\right)} \tag{4}\]  
Figure 5: Path-following algorithm based on predicted position control.  
In order to calculate \(Yaw\) and \(Angel\), \(T_{1}\), \(T_{2}\), and \(\chi_{d}\) are the three parameters that must be calculated, so we focused on how to determine these parameters.  
Time-lag constant \(T_{1}\): Parameter \(T_{1}\) acting on \(V_{\text{usv}}\) was mainly used to calculate \(d^{\prime}\). According to the results of the sea trials, when the USV had a set throttle value of 500, \(T_{1}\) = 5 could make the algorithm achieve a higher control accuracy. When the throttle value increased, the \(T_{1}\) decreased accordingly. Table 1 shows the \(T_{1}\) for each throttle setting.  
Time-lag slope \(T_{2}\): Parameter \(T_{2}\) acting on \(\omega_{\text{usv}}\) was related to the sea states during navigation. According to the results of the sea trials, it was appropriate to set the \(T_{2}\) to 5 when the sea states were 1-2. When the sea state was 3, it was appropriate to set the \(T_{2}\) to 5.5 or more. This is because the USV was more difficult to turn in poor sea states, therefore, it was necessary to give a long forecast value when calculating \(d^{\prime}\).  
Distance conversion coefficient \(\chi_{d}\): \(\chi_{d}\) limits the values of \(Yaw\) and \(Angel\). This parameter was generally set to 2-3. According to the results of the sea trials, \(\chi_{d}=3\) was a suitable value. If set to 3, the maximum control amount of the angle was \(60^{\circ}\).