  Station keeping is an essential maneuver for Autonomous Surface Vehicles
(ASVs), mainly when used in confined spaces, to carry out surveys that require
the ASV to keep its position or in collaboration with other vehicles where the
relative position has an impact over the mission. However, this maneuver can
become challenging for classic feedback controllers due to the need for an
accurate model of the ASV dynamics and the environmental disturbances. This
work proposes a Model Predictive Controller using Neural Network Simulation
Error Minimization (NNSEM-MPC) to accurately predict the dynamics of the ASV
under wind disturbances. The performance of the proposed scheme under wind
disturbances is tested and compared against other controllers in simulation,
using the Robotics Operating System (ROS) and the multipurpose simulation
environment Gazebo. A set of six tests were conducted by combining two wind
speeds (3 m/s and 6 m/s) and three wind directions (0$^\circ$, 90$^\circ$, and
180$^\circ$). The simulation results clearly show the advantage of the
NNSEM-MPC over the following methods: backstepping controller, sliding mode
controller, simplified dynamics MPC (SD-MPC), neural ordinary differential
equation MPC (NODE-MPC), and knowledge-based NODE MPC (KNODE-MPC). The proposed
NNSEM-MPC approach performs better than the rest in 4 out of the 6 test
conditions, and it is the second best in the 2 remaining test cases, reducing
the mean position and heading error by at least 31\% and 46\% respectively
across all the test cases. In terms of execution speed, the proposed NNSEM-MPC
is at least 36\% faster than the rest of the MPC controllers. The field
experiments on two different ASV platforms showed that ASVs can effectively
keep the station utilizing the proposed method, with a position error as low as
$1.68$ m and a heading error as low as $6.14^{\circ}$ within time windows of at
least $150$s.
