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 kinematic 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.
  • 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.

Instructor

  • Tobia Marcucci
  • Department of Electrical and Computer Engineering
  • Email: marcucci@ucsb.edu
  • Office: Harold Frank Hall, room 5155

Lectures

  • Tuesday and Thursday from 2:00pm to 3:15pm (starting September 25)
  • Room ARTS 1349

Office hours

  • Monday and Wednesday, 3pm to 4pm
  • Location: 5155 Harold Frank Hall

The instructor will also be available for questions after the end of each lecture.

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:

Homework

  • Homework will be released on Canvas every week and will 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 5 days of delay (midnight).
  • No exceptions will be made to the midnight submission deadline. Begin your homework submission early to ensure you have enough time to address any unexpected issues. In the rare case of insurmountable technical problems (e.g., Canvas is down), 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.

Exams

  • Midterm on Thursday, October 30 from 2:00pm to 3:15pm in ARTS 1349.
  • Final on Tuesday, December 9 from 4:00pm to 7:00pm in ARTS 1349.
  • 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.

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.

Python

Some 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 languages (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 academia, 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.

Lectures

The lectures will roughly follow the textbook. After each lecture, I will list below the sections of the textbook that were covered in the lecture. Please note that the lectures will not follow the textbook exactly: we may cover additional material or skip some material in each of the sections listed below.

  • Lecture 1 (September 25): High-level introduction to the course, Sections 1.1 and 1.2
  • Lecture 2 (September 30): Sections 1.3 and 1.5
  • Lecture 3 (October 2): Sections 1.4 and 2.1
  • Lecture 4 (October 7): Sections 2.3.1 and 5.5
  • Lecture 5 (October 9): Section 2.2
  • Lecture 6 (October 14): Sections 5.2 and 3.1
  • Lecture 7 (October 16): Sections 3.2 and 3.3
  • Lecture 8 (October 21): Section 3.4
  • Lecture 9 (October 23): Section 4.1
  • Lecture 10 (October 28): Sections 4.2, 4.3 (at a high level), and 4.4
  • Lecture 11 (November 4): Sections 5.3 and 5.4
  • Lecture 12 (November 13): Sections 6.1 and 6.2
  • Lecture 13 (November 18): Sections 6.3, 7.1, and 7.2
  • Lecture 14 (November 20): Sections 7.3.1 and 7.3.2
  • Lecture 15 (November 25): Section 7.3.3 and 7.4
  • Lecture 16 (December 2): Sections 8.1 and 8.2
  • Lecture 17 (December 4): Section 8.3

Homework

  • Homework 1: released on September 30 and due on October 7
  • Homework 2: released on October 7 and due on October 16
  • Homework 3: released on October 16 and due on October 28
  • Homework 4: released on November 4 and due on November 13
  • Homework 5: released on November 18 and due on November 25
  • Homework 6: released on November 25 and due on December 4