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 Tuesday evening and due on Tuesday of the following week by midnight.
  • Late homework will automatically incur a 10% grade deduction per day of delay, and will not be accepted after Sunday (midnight).
  • If answers are not accompanied by satisfactory explanations (e.g., all intermediate steps or clearly readable handwriting), no credit will be given.

Exams

  • Midterm on Thursday, October 30 from 2:00pm to 3:15pm in ARTS 1349
  • Final day and time to be decided 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 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.

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): Sections 2.2 and 5.2

Homework

  • Homework 1: released on September 30 and due on October 7
  • Homework 2: released on October 7 and due on October 16