MAE 145. Introduction to Robotic Planning and
Estimation
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 | 11:00am - 11:50am | FAH 1450 |
Discussion Sections, F | 9:00am - 9:50am | FAH 1450 |
Office Hours
| Instructor |
Day |
Time |
Location |
| Sonia Martinez | Wed | 3:00pm -
4:00pm | EBU-I 1603 (conference room) |
| Nirabhra Mandal | TBA | TBA | TBA |
back to top
Course description
This course is an introduction to the
fundamentals and
principles used of motion planning and estimation algorithms in robotics;
i.e. algorithms that allow a robot to move in a cluttered environment
while avoiding collisions with obstacles.
The first part of the
course mostly focuses on
classic planning algorithms,
which are employed when the geometry of the robot's stationary
surroundings is known in advance. This is in opposition to
sensor-based planning algorithms, where the surroundings
of the robot are poorly known. The
second part of the course
introduces to
probabilistic techniques used in robot localization
and map building. The course has a strong focus on algorithms and
fundamentals, going over the modeling, design, algorithm, and
computational issues that arise when devising planning and
estimation algorithms.
Planning and estimation algorithms form the basis of artificial
intelligence and find application in a number of emerging
technologies and disciplines such as manufacturing, autonomous
driving and transportation, computer-aided design, computer graphics
and virtual reality, and general mechanical and aerospace robotic
applications. The course is of interest for engineers of all
backgrounds who have an interest in robotics, control theory, and
artificial intelligence alike.
Prerequisites
This course uses Python and, even though it is not an enforced
pre-requisite for the course, familiarity with it or being
comfortable programming in a high-level programming language (such
as MATLAB) will be assumed. Someone not familiar with Python may be
able to learn it along the course, but be warned that this can be
rather ardous for some students. Recommended preparation is ECE 143.
MAE 108 or equivalent at JSOE (introduction to probability theory) is
necessary for the second part of the course. Familiarity with
probabilities of both discrete and random variables, and its main
concepts (pdfs, conditional pdfs, the Bayes' theorem) is needed for
the second part of the course.
Syllabus
The course syllabus can be found
here
Reference Texts
-
Lecture Notes on Robotic Planning and Kinematics. F. Bullo
and S. Smith. Book information available
at
https://fbullo.github.io/lrpk/
-
Probabilistic Robotics. S. Thrun, W. Burgard, and
D. Fox. The MIT Press, 2005.
Python
There are many options to work with Python. A possibility is to work
with an IDE, see
here
on how to install and work with IDEs, as well as links to some
tutorials.
There are multiple AI assistants today and code completion tools that
can directly solve the very simple programs that are covered in this
course. While this can save frustration, please have in mind that
frustation is necessary to build confidence and gain a deep
understanding of coding (and any subject.)
Ultimately, every student should take responsibility of their own
learning. This means being able to solve problems on their own, and
reduce the over-reliance on AI assistants as much as possible. This
reliance can lead to a false sense of knowledge and overconfidence.
Notes and slides
Partial list of assignments and rubrics
Assignments
The class grade will tentatively be calculated
based on a midterm and a final, and if the combined grades of these
are sufficiently good, homework. To be more precise if your grade G
will be calculated with the following algorithm:
Define X=max(midterm (35%) + final (65%), midterm(0%) + final(100%))
if X >= 60%
      G = max(X, X(85%) + homework (15%))
else
      G = X
Participation in Piazza forums/in class 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
how to do this and how homework will be finally evaluated will be
provided during class.
- Midterm exam: May 2 in class
-
Final exam: June 10, 9am to 9:50am, location FAH 1450
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 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, 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 chatbots or other GenAI tools to
solve analytical homework problems is not allowed and constitutes
cheating. Similarly, it is not allowed to use these tools to directly
solve the homework programming assignments. This is especially
applicable to the self correction of the homework, which has to be
done personally by each student, by contrasting with the rubric and
identifying mistakes. 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