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
- Structure of a Program
- Command Line Arguments
- Variables and Data Types
- Control Structures (if-else, while-loop, for-loop)
- Simple Classes
- Derived Classes
- 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
- 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