Teaching - Cognitive Robotics (16.412 / 6.834J)
During the spring semester of 2016, I was the teaching assistant (TA) for Cognitive Robotics (6.834J / 16.412J), lectured by my research advisor Prof. Brian C. Williams. Cognitive Robotics is a graduate-level course in autonomy, model-based robotics, and a number of other related areas.
I had a substantial hand in redesigning the curriculum for this class, which was in the past very seminar-like. Specifically, my responsibilities for the class included:
- Designing brand new, interactive Python-based problem sets for the students. These problem sets mirrored the types of assignments found in Cognitive Robotics sister class, Principles of Autonomy and Decision Making (16.410 / 16.413). Interactive problems sets were designed for IPython / Jupyter notebook, in which students write Python code in a web-based interface and can very easily see graphs, equations, and other objects appear in-line in the notebook for a very beautiful and visual style.
- Organizing “Advanced Lectures” by the students. Groups of around 7 students delivered a professional quality lecture on an advanced subject from AI (such as Monte Carlo Tree Search, or Convolutional Neural Nets for use in deep learning and image recognition), developing a small IPython Notebook based “mini problem set” for some other students in the class, and integrating their topic into the grand challenge.
- Designing and implementing a new, open-ended “grand challenge” final project for all the students to collaboratively work on. Each of the advanced lecture teams integrated their topic into the grand challenge, to build a single cognitive robot over the course of the semester.
- Helping order lectures to form a coherent story
- Taught several lectures
- Graded assignments
Problem Sets
As noted above, I put substantial effort into re-designing the problem sets for this class. Others in my lab collaborated. Here is the final list of assignments:
- Conflicted Directed A* . Students implemented a variant of A, called conflict-directed A, to search for best-first solutions to a set of propositional constraints. Specifically, the algorithm was applied to diagnosing possible faults in a circuit, and enumerating the most probable causes of failure first.
- Scheduling. Students implemented various algorithms related to scheduling of simple temporal networks (STNs), a graph-based formalism for reasoning about timing deadlines.
- Iterative Risk Allocation. Jointly with Benjamin Ayton (who developed the core of this problem set), we developed a problem set where students would implement a risk-bounded planner for a moving in an uncertain environment.
- PDDL Modeling. Jointly with Tiago Vaquery and Christian Muise, a PDDL modeling problem set was developed for a starship exploration scenario. The second half of the problem set gave students an open-ended modeling exercise.
- Hybrid State Estimation. Jointly with Eric Timmons (who designed the modeling for this problem set), students were tasked with modeling the dynamics of a warp drive on a star ship so that estimation could be performed.
Here is a screenshot of the IPython Notebook for the Conflict Directed A* problem set:
Grand Challenge
The grand challenge involved the integration of the students advanced lecture topic projects:
- Incremental Path Planning (D* Lite integrated into ROS)
- Monte Carlo Tree Search for playing a Snake-inspired game against a human opponent at one of the stations
- Reachability Analysis - checking for reachability at a challenge station
- Convoluational Neural Networks - identifying the contents of images on the walls, using the robot’s onboard cameras
- Temporal Planning - devised a new PDDL problem and domain for adhering to certain temporal invariants
- Semantic Localization - Implemented semantic localization in ROS and run on the robot to localize, based on noted features in the environment
- Probabilistic Planning: modeled robot’s challenge as a Markov Decision Process, solved it, and implemented a policy executive to control the robot
The overall result was a huge success – the students did a fantastic job!
Here are some pictures from the Grand Challenge on the last day of class:
Teaching is fun and hard!
Helping run Cognitive Robotics was a huge amount of work, but I really enjoyed putting a lot of heart and soul into the class and having such a large influence into its direction! I was humbled to receive a 7.0 / 7.0 rating for my TA-ship on MIT’s online subject evaluations by students.