Unmanned surface vehicles (USVs) are autonomous marine vessels that
can execute multiple tasks in a variety of cluttered marine environments
without human supervision. The future progress of USVs depends on the
development of full autonomy, which would enable USVs to work in any
unstructured or unpredictable environment without human
One of the main challenges in enhancing USV autonomy is the simultaneous detection and avoidance of obstacles in either open or confined waters. Local obstacle avoidance for USVs is used to avoid static and dynamic obstacles by adopting a timely avoidance manoeuvre. Local obstacle avoidance algorithms are of two types: path searching-based local path planning, which can generate appropriate trajectories or waypoints followed by the vehicle, and the behaviour-based reactive obstacle avoidance method, which can generate the guidance angle and guidance velocity realized by the navigation controller in real time.
A novel path searching-based algorithm called the local normal distribution-based trajectory (LNDT) is proposed in this paper to address the local obstacle avoidance problem of USVs in complicated encounter situations. The design and implementation of LNDT has been published in Ocean Engineering with reference link. Besides, there is a copy only for personal research purpose.
The following sections mainly discuss the implementation principle of the algorithm and provide some critical information to facilitate the following researchers. About the detailed information, you can refer my master thesis - Research on the Technology of Path Planning for Unmanned Surface Vehicle, while it is written in Chinese. The LNDS method is mainly extracted from my master thesis and polished in simulation.
英文在中文之后 / English follows Chinese
This paper reports the preliminary research results of a novel automatic obstacle avoidance approach based on the COLREGs for unmanned surface vehicles (USVs). The approach presented is essentially a path searching-based algorithm called the local normal distribution-based trajectory, which plans viable avoidance trajectories in the presence of both static and dynamic obstacles. The proposed algorithm can generate a COLREGs-compliant suboptimal trajectory based on the bell-shaped curve of normal distribution and extract waypoints for the navigation controller to steer USVs safely. In addition, we discuss three key parameters and present a trajectory replanning strategy to improve the safety and flexibility of our approach. The common overtaking, crossing and head-on collision scenarios are each simulated in experiments. It is shown through simulations that the proposed approach considers multiple factors and can plan paths to avoid obstacles safely and smoothly. A comparison is also made with a reactive path planning algorithm which has been modified to follow the COLREGs.
Design and Implementation
The overall scheme of obstacle avoidance is illustrated in following figure. The decision-making module in the dashed frame includes a two-layered distributed architecture of obstacle avoidance; we primarily study the COLREGs-based obstacle avoidance approach.
The LNDT algorithm includes six processes, as shown below. We first integrates COLREGs rules into the obstacle avoidance approach of USVs. When there is a collision risk, it would determine three key parameters of the trajectory by a fixed procedure, and the primitive trajectory would be rotated and translated to adapt the real collision scenario. The USV then follows the planned trajectories. We would replan the trajectory once USVs can not follow the planned trajectory.
Besides, we propose a scalable and flexible obstacle avoidance architecture. And we proposes six evaluation indicators to establish a scientific and impartial obstacle avoidance behaviour assessment (OABA) method in this paper.
The LNDT algorithm is mainly implemented in 2018, and it has not
been tested in complex sea trial, so there must be some drawbacks to
In order to put it into wide practice, I'm glad to discuss some topics with you via email and polish this method, even share part of the source code with you.