Custom Behaviors Tutorial¶
Create custom behaviors for specialized missions.
Example: Spiral Search¶
from aqua.behaviors import Behavior, Status
class SpiralSearch(Behavior):
def __init__(self, center, max_radius, spacing):
self.center = center
self.max_radius = max_radius
self.spacing = spacing
self.current_radius = 0
self.angle = 0
def update(self):
# Compute next position in spiral
x = self.center[0] + self.current_radius * cos(self.angle)
y = self.center[1] + self.current_radius * sin(self.angle)
# Navigate to position
self.navigate_to([x, y, self.center[2]])
# Update spiral parameters
self.angle += radians(10)
if self.angle > 2 * pi:
self.angle = 0
self.current_radius += self.spacing
# Check completion
if self.current_radius > self.max_radius:
return Status.SUCCESS
return Status.RUNNING
Usage¶
# Create spiral search behavior
spiral = SpiralSearch(
center=[20, 20, -10],
max_radius=15,
spacing=3
)
# Execute
spiral.run()