Multi-Agent Search and Rescue using Unmanned Surface Vehicles
Motivation
Search and rescue at sea has relied on standardized geometric search patterns like the Victor Sierra search since the Coast Guard’s early days. The pattern works by having a single vessel sweep a clockwise spiral around a datum point. The problem: it’s slow. With the tools of multi-agent systems, the same area can be covered much faster — 9 agents each covering 1/9 of the path at the same speed gives a 9× speedup in search time. This project designs and simulates the full controller stack to make that work.
The Vehicle: USV16
The USV16 is an underactuated surface vehicle with 3 degrees of freedom — surge (forward), sway (lateral), and yaw (rotation) — but actuation in only two: surge via propellers and yaw via rudders. There is no direct sway actuation, which creates a circling tendency that makes trajectory tracking non-trivial. The dynamics are:
\[\dot{\eta} = J(\eta)\nu, \quad M\dot{\nu} + C(\nu)\nu + D(\nu)\nu = \tau + \tau_w\]where η = [x, y, φ], ν = [u, v, ω], M is the inertia+added-mass matrix, C is Coriolis, D is drag, and τ_w is environmental disturbance (waves).
The system is Globally Exponentially Stable for waypoint following and Globally Asymptotically Stable for trajectory tracking in Frenet-Serret coordinates, per the proofs in Do & Pan (2009).
Modified Victor Sierra Search with 9 Agents
The standard Victor Sierra pattern places a single agent at the datum. The modified version places 9 agents at the waypoints of the pattern simultaneously, so each agent covers only 1/9 of the total path. At the same individual speed, the full pattern completes 9× faster.
Controller Architecture
The full stack has three layers:
1. Multi-agent controller (consensus + leader-follower):
For n agents sharing position information over a communication graph, the consensus update drives the formation:
\[\dot{X}_i = \sum_{j=1\ldots N}(X_i - X_j) - \zeta_i - \zeta_j\]where ζᵢ are the desired formation offsets. This is Globally Asymptotically Stable, proved via Lasalle’s invariance principle using the Laplacian of the complete communication graph. The leader-follower extension drives the formation toward the datum — the leader moves along the Victor Sierra waypoints with smooth heading:
\[\phi_{leader} = \tan^{-1}\left(\frac{y_{waypoint} - y}{x_{waypoint} - x}\right)\]2. Trajectory tracking controller (PD + nonlinear yaw mapping):
A nonlinear speed-yaw coupling handles the underactuation — when yaw error is large, surge slows to allow turning; when yaw error is small, surge increases to track the waypoint quickly:
\[u(\phi_e) = 1 - \frac{1}{1 + 3e^{-0.6|\phi_e|}}\]A PD controller on yaw error plus this nonlinear speed map, combined with differential thrust allocation (right thruster + rudder for right turns, left for left, both for straight), gives the full low-level controller.
3. Low-level PID for actuator commands (implemented by the VRX Gazebo platform).
Results
Open-loop characterization: Three open-loop tests (max thrust, left-only, right-only) characterized the vehicle dynamics. Speed under max thrust is slow (~0.5–1 m/s) due to drag, and wave disturbances introduce oscillation in speed — indicating coupling between surge, sway, yaw, pitch and roll. This confirms that 6-DOF control would be needed for perfect tracking; the 3-DOF design is an accepted approximation.
Closed-loop trajectory tracking:
- U-turn test: Small overshoot, total drift < 3 m at the sharpest turn. Some yaw oscillation, tunable with more iterations.
- Circular test: Drift < 2 m, with chattering around ±π due to angle wrapping at the heading discontinuity.
Formation control: Consensus converges to the desired 9-agent formation geometry. Leader-follower tracking drives the formation toward the datum.
Full system integration: When all layers are combined to run the actual Victor Sierra search, the system encounters a fail case due to the absence of dynamic obstacle avoidance — agents collide in the simulation because no inter-agent collision handling is implemented.
What’s Still In Progress
The individual controllers are complete, but full integration to run the Victor Sierra search end-to-end still needs dynamic obstacle avoidance between agents — the current design has no collision handling between vehicles, which causes a fail case when all layers run together.
Repository
github.com/dt1729/MultiAgentSys (surface_veh branch)