ECE 594T: Optimization and Learning for Robotics and Control
Description
This course provides an overview of modern optimization and machine learning methods for control and decision-making, with a focus on robotics applications. Students first study the foundations of continuous and discrete optimization, learning both how real-world robotics problems can be formulated as optimization problems and the algorithms used to solve them. The course also includes a brief treatment of advanced optimization topics such as sums-of-squares optimization and graphs of convex sets. The course then examines decision-making techniques based on machine learning, which leverage data and/or experience. Theoretical material is complemented by robotics examples and hands-on coding exercises in Python. The course culminates in a final project in which students tackle real research problems using the tools developed throughout the quarter.
Prerequisites
This course has no official prerequisites, but it assumes a basic level of mathematical maturity: students should be comfortable reading and writing mathematical arguments, understanding proofs, and working with abstract concepts. Students should also be familiar with linear algebra and basic analysis, including vectors, matrices, norms, functions, differentiation, integration, etc. Basic coding skills are expected, as the course will include examples and homework assignments in Python. Prior exposure to control theory and/or robotics is a plus, but not required, as all relevant background will be introduced in the course.
Instructor
- Tobia Marcucci
- Department of Electrical and Computer Engineering
- Email: marcucci@ucsb.edu
- Office: Harold Frank Hall, room 5155
Lectures
- Monday and Wednesday from 4pm to 5:50pm (starting March 30)
- Classroom PHELP 1448
Office hours
- Friday 11am to 12pm
- Harold Frank Hall, Office 5155
The instructor will also be available for questions after the end of each lecture.
Lecture notes
The lecture notes are available at this link and will be available on Canvas. We will cover roughly one chapter per week. The notes will be continuously improved, updated, and corrected throughout the quarter. Initially, you will find only a draft of the complete lecture notes on Canvas. Each week, I will upload a separate file corresponding to the chapter to be discussed in the upcoming lectures (and update the main lecture note file accordingly).
You should download the weekly chapters for studying, and can refer to the main lecture note file to see what the class will cover in the future.
Additional textbooks and references for students interested in deeper study will be cited within the lecture notes.
Homework
- Homework will be released on Canvas approximately every week, and be due the same day of the following week by midnight.
- If answers are not accompanied by satisfactory explanations (e.g., all intermediate steps or clearly readable handwriting), no credit will be given.
- Late homework will automatically incur a 10% grade deduction per day of delay, and will not be accepted after 3 days of delay (midnight).
- Deadlines are strict: a homework submitted at 11:59 pm on the due date is considered on time, while a submission at 12:00 am is considered late, with no exceptions. Please begin your submission early to allow time to resolve any unexpected issues.
- In the rare case of insurmountable technical problems (e.g., Canvas is unavailable), email your homework solution to me at marcucci@ucsb.edu before the deadline. Any email received after midnight will incur the 10% grade deduction described above.
Final project
The class does not have any exam (no midterm and no final). The final project will be your opportunity to take what you learned in the class and put it towards a project of your choice.
Here are some guidelines:
- Your project should be well aligned with the material covered in the course. It will be evaluated based on how it demonstrates your understanding of the class material.
- You are welcome to work on the project in small teams (at most 3 people). If you plan on doing a team project, please make this clear in your proposal. Our expectations for your project will be proportional to the number of people on the team.
- The quarter is short, so the project scope should be chosen carefully. Come to office hours during the first weeks to brainstorm about potential projects. Developing novel algorithms/methods is fantastic, but implementing or modifying existing techniques is often a safer project.
- Some of you will be able to work on a project that is closely aligned with your current research. This is acceptable. If you are using part or all of your work for research or as a part of another class, you must state this explicitly in your final report.
- Your project must clearly acknowledge any use of others’ work to avoid plagiarism. This includes citing all external sources (e.g., papers, books, websites) and giving appropriate credit for any code, data, figures, or ideas that are not your own.
- The use of AI-enhanced tools (such as ChatGPT) is prohibited.
Evaluation of final project
The final project will be evaluated through:
- A final report of up to 3 pages.
- A final video of at most 3 minutes for a team of one person, 4 minutes for a team of two people, and 5 minutes for a team of four people.
About the final report:
- Please use LaTeX, it is a great tool to know how to use!
- Use the IEEE LaTeX template for conference proceedings. Also available on Overleaf.
- Write a summary of what you accomplished during your project. Write it, as much as possible, like a conference paper. You should include: abstract, introduction, literature review, technical approach, results, discussion about strengths and limitations, and potential next steps.
- For team projects, please add a section that describes the contributions of each team member.
- For projects that overlap with your research or a project in another class, please clearly denote what parts of the project overlap (or not) with the other efforts.
Project proposal
On April 29, you will be asked to submit a project proposal. This assignment is intended to help you begin thinking seriously about your final project and to receive feedback before committing significant effort. The goal is not to lock you into a rigid plan, but rather to ensure that you have identified a reasonable direction early on. A well-thought proposal will make the remainder of the project substantially smoother. You are also encouraged to discuss your ideas during office hours before submitting.
Your proposal should be approximately one page and follow the same template as the final project. The proposal must include the following sections:
- Goals and motivation: Describe the problem you intend to study and explain why it is interesting. The project should be well aligned with the material covered in the course. Possible directions include developing a new method, extending an existing one, or implementing and evaluating known techniques on a specific problem or robotic system. At this stage, clarity and feasibility are more important than ambition.
- Technical approach: Provide a tentative description of the concepts and techniques you plan to use to achieve your goals. When possible, reference specific sections or chapters of the lecture notes. You are also encouraged to look ahead at later chapters to identify techniques that may be relevant, even if they have not yet been covered in class. If so, you may list them as potential components of your project. You may also cite relevant papers, books, or other resources to demonstrate that your project is grounded in existing literature.
- Milestones: Outline the steps you plan to take to achieve your goals, including intermediate milestones. This is important to ensure that you have results to present at the end of the quarter, even if you encounter unexpected issues. For example, if your project involves optimizing the motion of a quadrotor, you might first demonstrate your approach on a 2D model with basic visualizations, and only later move to a more advanced 3D simulation environment.
- Team information (if applicable): If you are working in a team (maximum of three members), list all members and briefly describe how you plan to divide the work. Expectations will scale with the number of team members.
- Overlap with other work (if applicable): If your project overlaps with your current research, or the project of another course, clearly state this and explain what portion of the work is new for this class.
Grading
Your grade will be assigned roughly according to the following percentages:
- Homework 25%
- Project proposal 15%
- Final project 60%
Please note that these weights are approximate, and we reserve the right to change them later.
Python
The homework will require working knowledge of Python. Help will be provided to the students that are not proficient in Python and do not have access to a Python installation, provided that they contact the instructor in a timely manner.
All the coding examples and exercises are available at https://github.com/TobiaMarcucci/olrc-code.
Collaborations and external resources
You are encouraged to work with other students on your assignments, and to help other students complete their assignments. If you do so, please be sure to clearly write the name(s) of your collaborator(s) in the solutions that you submit. Please also specify if you collaborated on the entire assignment or only on specific problems. Remember that the material you turn in for course credit must be a fair representation of your work, and you are responsible for understanding, being able to explain, and duplicate the work you submit. We suggest that the study groups are composed of at most three students.
In the solution of the homework, you are discouraged to use any material that is not the class textbook or the other textbooks mentioned above. If you decide to use additional material (e.g., Wikipedia or stack/math overflow) please clearly specify that in the solutions that you submit. The use of AI-enhanced tools (such as ChatGPT) is prohibited.
Academic integrity
We adhere to the UCSB Academic Integrity Policy.
Lectures
The lectures will follow the lecture notes. After each lecture, I will list below the sections that were covered in the lecture. Please note that we might skip some of the material in the lecture notes.
- Lecture 1: March 30
- Lecture 2: April 1
- Lecture 3: April 6
- Lecture 4: April 8
- Lecture 5: April 13
- Lecture 6: April 15
- Lecture 7: April 20
- Lecture 8: April 22
- Lecture 9: April 27
- Lecture 10: April 29 (project proposal due)
- Lecture 11: May 4
- Lecture 12: May 6
- Lecture 13: May 11
- Lecture 14: May 13
- Lecture 15: May 18
- Lecture 16: May 20
- Lecture 17: May 27
- Lecture 18: June 1
- Lecture 19: June 3 (project report and video due)
Tentative homework schedule
- Homework 1: released on April 1 and due on April 8
- Homework 2: released on April 8 and due on April 15
- Homework 3: released on April 22 and due on April 29
- Homework 4: released on April 29 and due on May 6
- Homework 5: released on May 6 and due on May 13
- Homework 6: released on May 13 and due on May 20
- Homework 7: released on May 20 and due on May 27