|Table of Contents|
Labs & AssignmentsThis course includes written theory homework assignments and lab assignments. Roughly, the homework assignments and the labs are due in alternating weeks.
In the labs, you will design and program robot controllers for increasingly more difficult challenges. You will start with developing a robot controller for a simple task (moving on a rail without any obstacles). Throughout the course of this semester, you will make your robot controller increasingly more sophisticated until it can master free motion in two dimensions, like, e.g., a corridor of a building. Your controller will need to reach its goal position but without colliding with any obstacles.
You do not need to build the robotic hardware but will build CPS programs and controllers instead.
The most important criterion is always correctness. Buggy code is useless, and is likely to get a low score. A secondary criterion is the performance of your robot controller in terms of reaching its goal and interacting with its environment. Your robot controllers will also be graded based on how they score in interaction with robot controllers by other students.
Grading for written assignments is based on the correctness of the answer and the presentation of your reasoning. Strive for clarity and conciseness, but show how you arrived at the answer. Stating an answer without explanation does not count as an answer. If you cannot solve a problem, explaining your approach and why you failed is encouraged. Such answers will be given partial credit.
The mathematical theory behind core CPS principals will be covered in 5 written homework assignments, as well as a midterm and final exam.
Students will also demonstrate a working knowledge of the theory by designing autonomous robot controllers in a series of 5 lab assignments. Students will prove that their robots always operate within safety specifications, even when malicious robots (called rogue-bots) designed by other students are added to the environment. We will hold occasional simulation contests to test the efficiency of students' controllers as well as their safety. The 6th and final lab will be open-ended, allowing students to creatively demonstrate what they have learned.
Lab ScheduleHere is an outline of the lab schedule:
- Lab 1a: Robot on Rails (Autobots, Roll Out)
- Lab 1b: Robot on Rails (Charging Station)
- Lab 2a: Robot on Highways (with event-driven control)
- Lab 2b: Robot on Highways (with time-triggered control)
- Lab 3a: Robot on Racetracks (stay on the circular racetrack)
- Lab 3b: Robot on Racetracks (slow down to avoid collisions)
- Lab 4a: Robot in a Plane (free motion)
- Lab 4b: Robot in a Plane (with obstacle avoidance)
- Lab 5: Robot vs. Roguebot (avoiding collisions with moving obstacles)
- Lab 6: Robot in Star-lab
The robot controllers that you implement will be autonomous controllers that have to work under all circumstances. Below we just show a few example scenarios with a particular example of an obstacle.
|Lab 1a||Robot on Rails: Autobots, Roll Out|
|Lab 1b||Robot on Rails: Charging Station|
|Lab 4||Robot in Plane: Safe unless obstacles move|
|Lab 5||Robot with Dynamic Obstacles: Safe|
Lab ScheduleThe Lab and Assignment Schedule is tentative!
Collaboration and Academic Integrity
The university policies and procedures on academic integrity will be applied rigorously.
All work, including theory and lab assignments, you submit must be your own. Do not copy any parts of the lab from anyone. Do not look at other students' code or proofs or papers. Do not make parts of your code or proofs available to anyone, and make sure no one else can read your files.
Please read the University Policy on Cheating and Plagiarism carefully to understand the penalties associated with academic dishonesty at CMU. In this class, cheating/copying/plagiarism means copying all or part of a program or homework solution or proof from another student or unauthorized source such as the Internet, knowingly giving such information to another student, or giving or receiving unauthorized information during an examination. In general, each solution you submit (written assignment, programming assignment, proof, midterm or final exam) must be your own work. In the event that you use information written by another person in your solution, you must cite the source of this information (and receive prior permission if unsure whether this is permitted). It is considered cheating to compare complete or partial answers, discuss details of solutions, or try to complete the assignment together.
It is not considered cheating to clarify vague points in the labs, assignments, or lecture material, or to give help or receive help in general use of the computer systems, compilers, debuggers, tools such as KeYmaera, or other facilities.
Labs will be submitted electronically via Autolab and are due by 23:59 on the day the lab is due. You have a total of 8 late days for the semester of which you can use at most 2 per lab assignment. If you submit beyond those late days, 30% will be docked on an assignment for each additional late day. Each phase of the labs (test and lab) has independent late days. You are encouraged not to use late days for tests, because late test submissions receive less feedback.
Written assignments will be collected at the beginning of class on the date they are due. There are no late days for written assignments. If you submit after a written assignment is due, 50% will be docked on a written assignment for each late day. If you have an excused absence on an assignment due date, email Sarah Loos in advance to arrange an alternative drop off.