This paper presents two efficient methods for obstacle avoidance and path planning for Autonomous Underwater Vehicle (AUV). These methods take into account the dynamic constraints of the vehicle using advanced simulator of AUV considering low level control and stability effects. We present modified visibility graph local avoidance method and a spiral algorithm for obstacle avoidance. The algorithms were tested in challenged scenarios demonstrating safe trajectory planning.
Path planning and obstacle avoidance are an important issues for Autonomous Underwater Vehicles (AUVs), and as can be noticed lately, these fields are extensively studied.
Currents disturbances can have a big influence in a different water depth and should be considered in underwater environments [
AUV also suffers from a limited energy source, which can be minimized by planning optimal trajectories, extending the working time of the vehicle. Optimal path planning using A* algorithm search was presented by Carroll et al. [
As the presented methods in this paper, other methods do not use grid-based search. The path is presented with a series of points, which are connected one by one. Path planning problem transformed to a constrained optimization problem in terms of the coordinates of these points, generating optimal paths considering AUV’s dynamic constraints [
One of the most known limitations in motion planning algorithms related to real-time computation ability. Planning methods based on local perceptions are computationally less expensive and thus time efficient. Bui and Kim [
This paper presents several different AUV path planning algorithms avoiding obstacle based on local perception abilities based on forward looking sonar. The introduced algorithms inherently take into account AUVs dynamic and kinematic constraints. AUV trajectory is simulated as described later. Simulations in typical underwater environments are presented, demonstrating algorithm’s capabilities.
AUV platforms are known as underactuated vehicles models; these kinds of models generate dynamic constraints. In such cases, obstacle avoidance algorithms must consider the dynamic envelop of the vehicles not entering unstable states. We developed and implemented AUV simulator. The simulator takes into account the dynamic model of the AUV and the behavior of the sensors. The simulator uses only Forward Looking Sonars (FLS) for obstacle detection. In addition to FLS we have Side Scan Sonars (SSS) for detail scanning of the environment. Block diagram of simulator is presented in Figure
Block diagram of the AUV simulator [Braginsky, BGU].
The main idea behind our algorithm is the well-known visibility graph method. However, visibility graph algorithm is an abstract one that cannot be used on-line in real time applications, so many changes and adjustments are needed.
Basically, visibility graph describes the concept of connecting nodes from start point to the goal; nodes are connected to each other if and only if there are no obstacles between them, and the next node is visible from the current node.
Another major issue of the algorithm logic is concerned with node’s creation. One of the assumptions of the abstract visibility graph algorithm is that the obstacles are polygonal. On the real world we cannot assume that every obstacle is polygonal. Although, we can trap the obstacle in a polygonal shape but performances are likely to be very conservative. We propose a new concept constructing nodes around obstacles, enabling safety motion of the vehicle.
After constructing a full graph of nodes and arcs, search over the graph can be used for optimal trajectory, such as A* algorithm.
Algorithm completeness is based on the fact that the marine environment is quasi dynamic and a free visible node can be found at each time step, taking into account kinematic and dynamic models.
Our algorithm can be divided into three steps:
We divide the nodes into two different cases. Vehicle nodes: we add nodes related to the vehicle. For example, a node straight ahead of the vehicle (that represents straight path without turnings), a node to the right of the vehicle (representing a right turn), and a node to the left. The easiest way is to choose a radius that will allow turning to the node and take nodes on a circle around the start position with this chosen radius. That way we have nodes that represent all turning directions as well as slowing down if needed. We assume that the obstacles are round by spheres generating smooth trajectories due to dynamic profile and AUVs turning radius. In case of an obstacle which is not round, we bound the obstacle with a circle, considering safety. The next step is to choose the location of the nodes. For each obstacle we calculate the tangent line to the line that connects the obstacle with the robot and add two nodes on this line (the tangent line) right outside of the circle of the obstacle, as can be shown in Figure Goal nodes: we add nodes that will help achieve the planned mission. For example, if the vehicle mission is to follow a line, adding nodes on that line will help the vehicle stay close to the original line, defining these nodes’s cost as favor one when there are no obstacles.
Obstacle’s nodes.
Risky nodes being reduced due to maneuver constraints.
We add a simple measure considering the turning radius of the vehicle considering the maneuver constraints based on the turning radius of the vehicle. Otherwise, we do not connect this node.
We define a cost function, taking into account and the shortest distance from the line connecting targets (the line connecting the first node and the last node at each iteration).
For the two nodes
In Figure
OA with spiral algorithm with typical scenarios (a), (b), and (c).
The spiral algorithm presented for the first time in this paper, as its name may suggest, prefers to stay away from the vehicle’s predetermined path and locally avoids an obstacle when there is an imminent danger of a collision. In such a case, circumnavigate of an obstacle is done by adding and placing new waypoints in the vehicle’s path, in a semicircle around the center of the original, and in such a radius the vehicle can pass safely by the obstacle. For simplicity, we assume all obstacles are spheres. In the next section, a detailed algorithm stages are described.
In this section, we introduce a more detailed description of the algorithm. We distinguish between two basic situations and the relevant action in a case of an obstacle that may cause collision.
First, we check if there is a collision between the course of the vehicle and the obstacle. In the next stage, we calculate
Finally, we calculate CheckIntersect (obstacle,vessel_to_target_path) function value, where vessel_to_target_path is the line segment connecting the vehicle to the next waypoint as can be seen in Figure
Vehicle moving to a waypoint changing vehicle course.
First, we determine whether the center of the obstacle is to the left or the right of the vehicle’s heading. We choose to pass the obstacle on the side that minimizes the distance between the updated and the original path. Next, a trigonometric calculation is done, to determine how wide is the “bite” taken out of the vehicle’s path by the obstacle. This is done in terms of the angle alpha as can be seen in Figure
Calculating alpha angle in a collision course.
Alpha is given by
Added waypoints avoiding an obstaces.
If
The algorithm has been tested using a simulation of a real vehicle simulator as described above. The scenarios chosen were
OA with spiral algorithm with typical scenarios (a), (b), and (c).
In this research we presented two different methods for AUV, based on local and global planning methods. One of the major challenges in AUV obstacle avoidance is related to the underactuated model of the vehicle. We challenge these constraints by simulating vehicle trajectory using advanced simulator, modeling the perception abilities of the forward looking sonar, and the obstacles detection in realtime.
We presented a general description for each one of the algorithm and a simulation results with a typical search fields of AUVs.
Further research includes sea test with REMUS 100 AUV, testing the presented algorithms.