Mission Planning
Section titled “Mission Planning”Learn how to create and manage complex USV missions.
Mission Types
Section titled “Mission Types”1. Waypoint Mission
Section titled “1. Waypoint Mission”The most commonly used mission type, where USV visits specified waypoints in sequence.
Use Cases:
- Water quality sampling
- Patrol monitoring
- Data collection
Example:
mission: type: "waypoint" waypoints: - lat: 31.2304 lon: 121.4737 altitude: 0 speed: 52. Area Survey
Section titled “2. Area Survey”Cruise within a specified area in a defined pattern.
Survey Patterns:
- Grid pattern
- Spiral pattern
- Snake pattern
Example:
mission: type: "area_survey" area: type: "polygon" coordinates: - [31.2304, 121.4737] - [31.2354, 121.4787] - [31.2404, 121.4787] - [31.2354, 121.4737]
pattern: "grid" spacing: 50 # meters angle: 0 # degrees3. Path Following
Section titled “3. Path Following”Follow a predefined continuous path.
Use Cases:
- River inspection
- Pipeline detection
- Channel surveying
Example:
mission: type: "path_following" path: type: "line" # line, curve, spline points: - [31.2304, 121.4737] - [31.2324, 121.4757] - [31.2344, 121.4777]
speed: 5 tolerance: 2 # meters4. Target Tracking
Section titled “4. Target Tracking”Automatically track moving targets.
Use Cases:
- Vessel tracking
- Floating object monitoring
Example:
mission: type: "target_tracking" target: id: "target-001" type: "vessel"
tracking: distance: 50 # Maintain distance (meters) update_rate: 1 # Hz max_speed: 10 # knotsMission Planning Tools
Section titled “Mission Planning Tools”Web Planner
Section titled “Web Planner”Use the Web interface for visual planning:
- Open console:
http://localhost:8080/planner - Select mission type
- Mark waypoints or areas on the map
- Set parameters
- Preview path
- Save mission
Command Line Planning
Section titled “Command Line Planning”Use CLI tools to create missions:
# Create waypoint missionjhusv mission create waypoint \ --name "water_survey" \ --waypoint 31.2304,121.4737 \ --waypoint 31.2354,121.4787 \ --speed 5
# Create area surveyjhusv mission create area \ --name "harbor_patrol" \ --area area.geojson \ --pattern grid \ --spacing 50Python API
Section titled “Python API”Use Python programming to create missions:
from jhusv import Mission, Waypoint
# Create missionmission = Mission(name="water_quality_survey")
# Add waypointswp1 = Waypoint(lat=31.2304, lon=121.4737, speed=5)wp1.add_action("sample", duration=60)
wp2 = Waypoint(lat=31.2354, lon=121.4787, speed=5)wp2.add_action("photo")
mission.add_waypoints([wp1, wp2])
# Set mission parametersmission.set_auto_return(True)mission.set_max_time(3600)
# Save missionmission.save("water_survey.yaml")Advanced Features
Section titled “Advanced Features”Conditional Actions
Section titled “Conditional Actions”Execute different actions based on conditions:
waypoints: - lat: 31.2304 lon: 121.4737 actions: - type: "conditional" condition: "water_temp > 25" then: - type: "sample" duration: 120 else: - type: "sample" duration: 60Loop Missions
Section titled “Loop Missions”Repeat mission execution:
mission: type: "waypoint" loop: enabled: true count: 3 # Repeat count (0 = infinite) interval: 600 # Loop interval (seconds)Dynamic Waypoints
Section titled “Dynamic Waypoints”Dynamically add waypoints during mission execution:
from jhusv import MissionController
controller = MissionController()
# Add waypoint during executionnew_waypoint = Waypoint(lat=31.2404, lon=121.4837)controller.insert_waypoint(new_waypoint, index=2)Mission Optimization
Section titled “Mission Optimization”Path Optimization
Section titled “Path Optimization”Optimize waypoint order to reduce distance:
jhusv mission optimize \ --input mission.yaml \ --algorithm tsp \ --output optimized.yamlTime Estimation
Section titled “Time Estimation”Estimate mission completion time:
jhusv mission estimate mission.yamlOutput:
Total Distance: 2.5 kmAverage Speed: 5 knotsEstimated Time: 27 minutesBattery Usage: 35%Safety Planning
Section titled “Safety Planning”Geofence
Section titled “Geofence”Limit USV operating area:
geofence: enabled: true mode: "hard" # hard (strict), soft (warning)
polygon: - [31.2304, 121.4737] - [31.2354, 121.4787] - [31.2404, 121.4837] - [31.2354, 121.4887]
action: "return_home" # Action when outside fenceObstacle Avoidance
Section titled “Obstacle Avoidance”Automatic obstacle avoidance configuration:
obstacle_avoidance: enabled: true detection_range: 30 # meters safety_distance: 15 # meters
sensors: - type: "sonar" enabled: true - type: "camera" enabled: true
strategy: "potential_field" # potential_field, rrt, apfBest Practices
Section titled “Best Practices”Pre-planning Checklist
Section titled “Pre-planning Checklist”✅ Must Do:
- Check weather forecast
- Confirm sufficient battery
- Verify geofence settings
- Test communication connection
- Check sensor status
Mission Design Principles
Section titled “Mission Design Principles”- Waypoint Spacing: Recommended > 50m
- Speed Setting: Adjust according to sea conditions (3-8 knots)
- Mission Time: Reserve 30% margin
- Data Sampling: Avoid excessive frequency (recommended ≤ 10Hz)
Testing Workflow
Section titled “Testing Workflow”# 1. Validate mission filejhusv mission validate mission.yaml
# 2. Preview mission pathjhusv mission preview mission.yaml
# 3. Simulate executionjhusv mission simulate mission.yaml --duration 60
# 4. Executejhusv mission start mission.yamlNext Steps
Section titled “Next Steps”- 📊 Learn about data management
- 🔌 Explore Control API
- 🛠️ Check troubleshooting