ECE/ME 179P: Introduction to Robotics: Planning and Kinematics
Description
Motion planning and kinematics topics with an emphasis on algorithmic and geometric reasoning.
- Motion planning: sensor-based planning, configuration spaces, decomposition and sampling methods, and graph-based algorithms.
- Kinematics: reference frames, rotations and displacements, and inematic motion models.
Learning outcomes
Ability to:
- Formulate and solve planning and kinematics problems.
- Apply knowledge of algorithms, geometry, and linear algebra to robotic systems.
- Use the Python programming language to solve engineering problems.
Prerequisites
- Linear algebra: ECE 130C or ME 17 (ECE 130C may be taken concurrently and is offered Spring 2025, course 12402).
- Coding: ECE 3 (Python) or ENGR 3 (MATLAB).
Students that have not taken these specific classes can reach out to the instructor if they are interested in enrolling in the class.
Staff
- Tobia Marcucci (instructor)
- Department of Electrical and Computer Engineering
- Email: marcucci@ucsb.edu
- Office: Harold Frank Hall, room 5155
- Utso Majumder (teaching assistant)
- Department of Electrical and Computer Engineering
- Email: utso@ucsb.edu
Lectures
- Monday and Wednesday from 2:00pm to 3:15pm (starting March 31)
- Room 387-1011
Office hours
Utso will offer one office hour on Tuesday and one office hour on Friday. Tobia will offer one office hour on Thursday, and will be available for questions after the end of each lecture.
- Time: please respond to the “Initial survey” by Wednesday April 2nd, so that we can find times that work for everyone.
- Location: Utso’s office hours will be held in the ECE TA trailer 380-697. Tobia’s office hours will be at Harold Frank Hall, room 5155.
Textbooks
The course will follow the book “Lectures on Robotic Planning and Kinematics” by Francesco Bullo and Stephen L. Smith. The book is freely available in PDF at the link above. Approximately, each week will cover one chapter of the book.
Other relevant textbooks for the interested students are:
- Planning:
- “Planning Algorithms” by Steven M. LaValle. Freely available in PDF.
- “Principles of Robot Motion: Theory, Algorithms, and Implementations” by Howie Choset, Kevin M. Lynch, Seth Hutchinson, George A. Kantor, Wolfram Burgard, Lydia E. Kavraki, and Sebastian Thrun.
- “Robot Motion Planning” by Jean-Claude Latombe. Freely available in PDF for UCSB students.
- “Probabilistic Robotics” by Sebastian Thrun, Wolfram Burgard, and Dieter Fox.
- Kinematics:
- “Robotics; Modelling, Planning and Control” by Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, and Giuseppe Oriolo. Freely available in PDF for UCSB students.
- “A Mathematical Introduction to Robotic Manipulation” by Richard M. Murray, Zexiang Li, and S. Shankar Sastry. Freely available in PDF.
Grading
Your grade will be assigned roughly according to the following percentages:
- Homework 40%
- Midterm 20%
- Final 40%
Please note that these weights are approximate, and we reserve the right to change them later.
Please note also that:
- If answers are not accompanied by satisfactory explanations (e.g., all intermediate steps or clearly readable handwriting), no credit will be given.
- Exams and quizzes will be closed book and closed notes. You may prepare a cheat sheet in your own handwriting, consisting of a two-sided sheet (letter size).
- No calculators, personal computers, tablets, or cellphones are allowed during the exams.
- Homework will typically be due on Wednesday afternoon. No late homework will be accepted without prior approval. Approval is automatic the first two times you ask: to announce late homework you must send me email by midnight of Wednesday. Late homework will automatically incur a 10% grade deduction per day of delay, and will not be accepted after midnight on the following Monday.
Python
Some of the homework will require working knowledge of Python. If required, the office hours during the first week will be devoted to an introduction to Python. Students that are familiar with different programming langauages (e.g., MATLAB) will be encouraged to participate. Help will be provided to the students that do not have access to a Python installation, provided that they contact the instructor in a timely manner.
Why Python? In previous years, students had the option to work with either Python or MATLAB. This year, we decided to use only Python for two main reasons:
- Python is far more common in robotics than MATLAB. The codebases of nearly all major robotics companies are written in Python (along with C++ for production-level code). Also in accademia, most of the robotics research is done in Python. Therefore, proficiency in Python is fundamental for anyone pursuing a career in robotics.
- Unlike MATLAB, Python is an open-source programming language, meaning it is free to use. This eliminates licensing costs and ensures that students can continue using it beyond the course, without financial barriers.
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.
Tentative timeline
Exams:
- Midterm on May 7 during class hours
- Final on June 9 from 4pm to 7pm in room 387-1011
Lectures:
- Chapter 1 “Sensor-based Planning” on March 31 and April 2
- Chapter 2 “Motion Planning via Decomposition and Search” on April 7 and 9
- Chapter 3 “Configuration Spaces” on April 14 and 16
- Chapter 4 “Free Configuration Spaces via Sampling and Collision Detection “ on April 21 and 23
- Chapter 5 “Motion Planning via Sampling” on April 28 and 30
- Chapter 6 “Introduction to Kinematics and Rotation Matrices” on May 5 and 12 (midterm exam on May 7)
- Chapter 7 “Rotation Matrices” on May 14 and 19
- Chapter 8 “Displacement Matrices and Inverse Kinematics” on May 21 and 28 (May 26 is Memorial Day)
- Chapter 9 “Linear and Angular Velocities of a Rigid Body” on June 2 and 4
Problem sets:
- Homework 1 released on April 2 and due on April 9
- Homework 2 released on April 9 and due on April 16
- Homework 3 released on April 16 and due on April 23
- Homework 4 released on April 23 and due on April 30
- Homework 5 released on May 7 and due on May 14 (midterm exam on May 7)
- Homework 6 released on May 14 and due on May 21
- Homework 7 released on May 21 and due on May 28
- Homework 8 released on May 28 and due on June 4