MAE 242. Robot Motion Planning and Learning
Announcements
In this website you will find some preliminary information about this
course. All the class material will be shared via canvas.
Contact Information
| Instructor |
Office |
Phone |
Email |
| Prof. Sonia MartÃnez |
FAH 3302 | 858-822-4243 |
soniamd at ucsd dot edu |
|
Nirabhra Mandal | office N/A | phone N/A |
nmandal at ucsd dot edu |
Schedule of Classes
| Lecture |
Time |
Location |
Lectures, MWF | 10:00am - 10:50am | EBU2 105 |
Office Hours
| Instructor |
Day |
Time |
Location |
| Sonia Martinez | Wed | 3:30pm -
4:30pm | EBU-I 1603 (conference room) |
| Nirabhra Mandal | TBA | TBA | TBA |
Course description
This course is an introduction to planning
and decision-making algorithms for robots, where, interchangeably, a
robot is a synonym of "agent" or "decision maker". Algorithms for
planning, decision making and learning find application in a number
of technologies and disciplines such as logistics, power systems,
control systems, computer graphics, artificial intelligence, and, of
course, robotics. In particular, learning algorithms in robotics is
playing an increasingly important role, as all robotic systems are
being augmented with AI. Because of this, the course is of interest
for a broad audience of students who have an interest in all of
these applications alike.
The main focus of the course is on the theory of advanced planning
and learning algorithms and their properties with the end-goal of
providing a good fundamental knowledge in this area. Examples
covered will refer to a variety of contexts (not just robots), and
many, if not most of, the times will be academic and geared toward
understanding the theory. Practical and involved study cases
(including industrial examples) will not be covered in this course.
See the syllabus for the tentative contents of the course.
Prerequisites
This course is
math intensive and formal. Background knowledge
in probability theory, linear algebra, mathematical analysis, and
(convex) optimization are required to understand and make the most
of this course. Background in nonlinear systems and controls is a
plus.
Programming knowledge: basic programming problems
will be assigned in Python, and some programs/tutorials covered will
use this language. Thus, familiarity with the Python language is
required. The nature of the programming assignments will mostly
require functional-oriented programming, and the programs will
mostly be created from scratch (we will not use sophisticated
tools). If you are fluent in other programming languages (such as
matlab), you could pick Python up along the way with the help of
current AI tools. However, be aware that this may still require a
significant effort on your part and is not recommended. Time will
not be spent on covering Python basics or Python programming
tricks/commands.
Syllabus
The course syllabus can be found
here
Notes and slides
List of assignments
Assignments
The class grade will tentatively be based on
regular homework (analytical and programming), a midterm and a final
exam that will be mostly closed notes. To incentivize that students
learn to solve problems on their own, the grade will be calculated as
follows.
If the midterm grade (35%) + final grade (65%) > 65%, then the grade
will be calculated as max(homework (15%) + midterm (30%) + final
(55%), midterm (30%) + final (65%)). Otherwise, the grade will be
calculated as midterm grade (35%) + final grade (65%). Participation
in Piazza forums will be rewarded with an extra credit of 2.5% of the
final grade.
- Homework problems and small projects: will include
theoretical problems and small programming projects. They will be
announced in canvas/Piazza. No late homework will be accepted with the
exception of one. You will have to let me know exactly by midnight the
night before the homework is due that you will be late. The homework
problems will be self-corrected by students; more instructions about
this will be provided during class.
- Midterm exam: May 1, in class
-
Final exam: June 8, in class, 11:30am - 2:29pm
Computer access
University-licensed software
includes Matlab while Python is free. As a
UC San Diego student you have access to computer labs and printers
throughout campus; see a
list
here. For
more information about academic computing and media services
see
here
Collaboration Policy
You are encouraged to work
with other students on your assignments, and to help other students
complete their assignments, provided that you comply with the
following conditions:
- Honest representation: The material you turn in for course
credit must be a fair representation of your own personal work. You
are responsible for understanding and being able to explain and
duplicate the work you submit. Group submissions are not allowed in
this course, and each student should submit their own individual
assignment, written in their own words. The same happens with
programming exercises: please do not submit exact copies of
programming solutions, or submit code writen by an AI tool, the
autocorrection tool in Gradescope checks for plagiarism.
- Active involvement: You must ensure that you are an active
participant in all collaborations, and are not merely dividing up the
work or following along while another student does the work. For
example, copying another student's work without actively being
involved in deriving the solution is strictly prohibited. To avoid
misunderstandings, please turn in solutions written in your own words,
not an exact copy of what someone else submits.
- Work individually or in small groups: Working in groups of
more than *three* people is discouraged because it limits the amount
of participation by each member of the group. In your homework
solutions please indicate the names of the people you collaborated
with.
-
Give help appropriately: When helping someone, it is important
not to simply give them a solution, because then they may not
understand it fully and will not be able to solve a similar problem
next time. It's always important to take the time to help someone
think through the problem and develop the solution. Often, this can be
accomplished by asking them a series of leading questions.
-
If in doubt, ask your instructor: Be sure to ask in advance if
you have any doubts about whether a certain type of collaboration is
acceptable.
Note on Academic Dishonesty
No form of academic dishonesty will be tolerated,
this specially refers to homework and plariagism.
In this course, the use of a chatbot or other GenAI tools to
solve homework (analytical and programming) problems is not allowed
and constitutes cheating. Self correcting your homework with an AI
tool is not allowed either. While it can be helpful to solve
questions, having the AI do the work for you is a crutch which will
not help you during exams. To avoid problems, please make sure you
report who you work with when doing the homework, and do not turn in
exact homework copies.
Copying from previous homework solutions is
also considered cheating. For the definition of academic
dishonesty and its consequences refer to the Student Conduct Code
available at the
website
https://academicintegrity.ucsd.edu