UG: Trajectory Planning for a Simulated Boat
Implement and visualize a free-time optimal navigation problem for an autonomous surface vehicle avoiding circular obstacles.
Project at a glance
| Level | Undergraduate (AMS 487) |
| Prerequisites | ODEs, basic Python, willingness to learn numerical optimization |
| Effort | One semester |
| Skills gained | Constrained optimization, ODE discretization, scientific visualization |
Goal
Recreate, in simplified form, the marine surface vehicle navigation problem we studied in IEEE Control Systems Letters — a kinematic model where a boat must reach a target while avoiding a set of forbidden zones in minimum time.
Suggested milestones
- Model. Write the boat kinematics ($\dot x, \dot y, \dot \theta$) with bounded steering control.
- Discretization. Use a uniform time grid; encode the obstacle-avoidance constraint as a sweeping-process-style projection.
- Solver. Solve the resulting nonlinear program with
scipy.optimizeorpyomo + ipopt. - Visualization. Animate the optimal trajectory under several obstacle configurations.
- (Bonus) Make the terminal time a decision variable and study how the optimal time changes with obstacle density.
Why it matters
Marine-vehicle path planning is one of the cleanest real-world demonstrations of sweeping-process control theory. The project produces visualizations you can put on your CV and a working solver you understand end-to-end.