Lab 1 - Overview and Machine Setup

  • Goal - Make sure everyone has a suitable development machine for the course on Day 1
  • Goal - All students able to build and run the course software on Day 1
  • Overview of the Course Web Pages and Support
  • Overview of Setting up Development Environment for MacBook Users
  • Getting Started with the Command Line
  • Downloading, Building, Running the Course software

C++ Minilab sequence

Lab 2 - Introduction to C++

  • Structure of a Program
  • Command Line Arguments
  • Variables and Data Types
  • Control Structures (if-else, while-loop, for-loop)
  • Simple Classes
  • Derived Classes

Lab 3 - Introduction to MOOS

  • MOOS Preliminaries: MOOS vs. MOOS-IvP, the MOOS Architecture
  • Launching, Scoping, and Poking the MOOSDB
  • Launching a Mission with pAntler
  • Scripted Pokes the to the MOOSDB
  • A Simple Example with pXRelayTest
  • Modify the pXRelayTest Code

Lab 4 - Introduction to MOOS Programming

  • The MOOS Application Structure (Iterate, OnNewMail, OnStartUp Methods)
  • The MOOS Message Structure
  • Getting Started with Software Version Control
  • Downloading and Building the moos-ivp-extend tree
  • Build Your First MOOS App - An Odometry App

Lab 5 - Introduction to Helm Autonomy

  • The Basic Helm Structure
  • The High-Level Helm State - Putting the Helm into Drive
  • Launching the Alpha Autonomy Mission
  • Understanding the Helm During the Alpha Mission Execution
  • Methods in pMarineViewer for Controlling a Mission
  • Assignments: Modify the Alpha Mission to Accept a User Return Point
  • Assignments: Build the Single Double Loiter Bravo Missions
  • Hand-in Assignment: A Double Loiter Bravo Mission with Periodic Surfacing

Lab 6 - (Pre-Lab) Simulation of Multi-Vehicle Deployments

  • The Shoreside and Vehicle(s) Topology
  • Introduction to pShare via the xrelay mission
  • Converting the Alpha Mission to use a Shoreside / Vehicle Topology

Lab 6 - Simulation of Multi-Vehicle Deployments

  • Converting the Alpha Mission to a Two-Vehicle Mission with pShare
  • Using the uField Toolbox to Ease pShare Configuration

Lab 7 - Distributed Traveling Salesman

  • Visit points are generated by a Shoreside script generating random vertices
  • A new Shoreside MOOS app is to be written to partition visit points and assign to vehicles
  • A new vehicle MOOS app is to be written to accept visit points and generate a vehicle path
  • A vehicle mission is designed with behaviors to handle an incoming tour of visit points
  • The vehicle will periodically return home to refuel, and then resume the tour until finish.

Lab 8 - Multi-Machine TSP with Replanning

  • Run a simple baseline double-loiter mission over multiple machines
  • Extend the Lab 09 Distributed TSP mission with re-planning
  • Run the Distributed TSP mission over multiple machines

Lab 9 - Introduction to Constrained Inter-Vehicle Messaging

  • Introduction to the uField Toolbox Inter-Vehicle Messaging Apps
  • Implement basic messaging in a two-vehicle example
  • Range-limited inter-vehicle messaging
  • Recovering from an messaging out-of-range situation

Lab 10 - Introduction to Writing Behaviors for the IvP Helm

  • Adding a New Behavior with the GenBehavior Script
  • Adding a New Behavior to your Third-party Build System
  • Building your First Behavior - The Alpha Range Pulse Mission
  • Building your Second Behavior - The Alpha ZigLeg Mission

Lab 11 - Introduction to the PABLO Payload Autonomy Computer

  • Introduce the Payload Autonomy Paradigm.
  • Introduce the PABLO as a hardware platform for payload autonomy.
  • Access the PABLO from your laptop.
  • Access the PABLO from your laptop using SSH keys.
  • Download your course code (moos-ivp-extend) tree onto your PABLO.
  • Coordinate shared access to you course code on the the PABLO.

Lab 12 - Payload Autonomy on an M300 Unmanned Surface Vehicle

  • Introducing the Marine Autonomy Lab at the MIT Sailing Pavilion
  • Introducing the Clearpath Robotics Heron M300 vehicles
  • Understanding the computer network environment at the Pavilion
  • Editing the alpha_heron mission to run on actual hardware

Lab 13 - Autonomous Rescue Challenge - Part 1

  • overview of the autonomous rescue lab
  • Access and run the lab baseline mission
  • Understand swimmer files and alert messaging structure
  • Implement basic rescue path planning

Lab 14 - Autonomous Rescue Challenge - Part 2

  • Conduct the basline rescue mission on a single Heron
  • Demonstrate adaptive replanning

Lab 15 - Autonomous Rescue Challenge - Part 3

  • Demonstrate handling of added and dropped new swimmers
  • Begin working with the two-vehicle competition in simulation
  • Optimize path planning based on adversarial actions

Lab 16 - Autonomous Rescue Challenge - Part 4

  • Run the adaptive re-planning mission on the water

Lab 17 - Autonomous Rescue Challenge - Part 5

  • Expand to two-vehicles per team, with one rescue and one scout vehicle
  • Create your own Scout behavior
  • In-water competition

Retired Labs


(Retired) - Autonomous Collaborative Search Part I

  • Introduction to the Autonomous Collaborative Search challenge problem
  • Obtain, understand and modify the baseline mission
  • Assignment: Add inter-vehicle messaging to share search reports
  • Assignment (optional): Add adaptive path planning
  • Assignment (optional): Modify search and reporting using Classification results

(Retired) - Autonomous Collaborative Search Part II

  • Continue the Autonomous Collaborative Search Challenge Problem
  • Make use of the classification component of the Hazard Sensor
  • Implement probability/certainty reasoning to your mission structure
  • Implement risk/reward reasoning based on sensor certainty and competition metrics
  • Implement path re-planning to improve your mission effectiveness

(Retired) - Collaborative Autonomous Front Estimation

  • Front estimation first using a static pre-determined mission
  • Behavior-writing for adaptive sampling and front estimation
  • Simulated Annealing for front estimation
  • In-water exercises in autonomous collaborative front estimation

(Retired) - Behavior Construction for Autonomous Front Estimation Part II: In-water Collaborative Deployment

  • Migration of single-vehicle simulation to multi-vehicle field tests
  • Proper operation on the river - OpRegion and CollisionAvoidance behaviors
  • Sharing sensor information between vehicles for front estimation
  • Preparing for the final in-water competition