Lab 3 — USV Waypoint Mission Challenge

Week 10 · Spring 2026

Overview

  • Use the tuned stabilization layer, from Lab 2, as the foundation for autonomously following a sequence of waypoints with ArduRover’s guidance and navigation stack.
  • While the details of the navigation and guidance layers are outside the scope of this class, the general concept of feedback provides insight into how the G and N layers work with the control for USV GNC.
  • The motivating objective is a USV race - minimum time to complete a fixed waypoint mission.

ArduRover architecture block diagram, Mission Planner laptop above the USV's autopilot, mission execution / guidance / stabilization layers cascading to actuators.

ArduRover architecture: Mission Planner on the ground laptop issues the mission to the autopilot, which runs the guidance, navigation, and stabilization layers on the boat. The stabilization layer is what you tuned in Lab 2; the layers above are introduced in the companion page.

Waypoint Mission Challenge

  • Minimize course time for a fixed mission
  • Course time is defined as
    • Start: the first time the USV is within the acceptance threshold of waypoint 1.
    • End: the first time the USV enters the threshold of the final waypoint.
  • Two measurements per run:
    • Real-time estimate: recorded by the team in the field using Mission Planner.
    • Post-processed estimate (official score): result of analyzing the log files with the provided script

Mission Planner screenshot showing the uploaded waypoint mission overlaid on a satellite map of the course area.

Overview of the competition waypoint mission, as it appears in Mission Planner before upload to the autopilot.

Prototype course run showing the USV's trajectory, waypoints, and acceptance radii.

Prototype course run from a scored post-processing pass.

Current standings: see the AY26 Q3 Leaderboard for the running scoreboard, per-team successful runs, and a summary of each team’s tuning direction.

Background - ArduRover’s Guidance & Navigation

  • In Lab 2 each stabilization loop had the same internal structure: setpoint → error → PID (with feedforward) → actuator.
  • The guidance layer applies the same pattern:
    • Setpoint = next waypoint.
    • Error = position relative to the waypoint (a vector, but treated similarly to a scalar error in the proportional sense).
    • “Controller output” = a speed and yaw-rate command sent down to the stabilization layer — i.e. the same THR_DesSpeed and STER_DesTurnRate channels you logged in Lab 2.
  • In other words: Lab 3’s guidance layer is a proportional position controller wrapped around your Lab-2 PIDs.
  • See the autopilot reference page Waypoint Navigation in ArduRover (Boats) for the full walk-through.

The internals of guidance and navigation — trajectory generation, position-controller tuning, the EKF — are outside the scope of this introductory class. The references on this page and in the companion give you a mental model that’s sufficient for thinking about Lab 3 performance; a proper treatment is in followon graduate courses on guidance, navigation, and control.

Procedure

Procedure — pre-lab checklist, uploading the mission via Mission Planner, in-water safety, stopwatch protocol, and log capture.

Minimum Viable Deliverable (MVD)

One PowerPoint slide containing:

  • Trajectory plot from the log, waypoints overlaid on the actual path.
  • Course time, stopwatch and log-derived, side by side.
  • Comments/notes on what your team tried to improve on the baseline, and what worked / didn’t work.

Resources

References

For Students

For Instructors