
Fall 2025/2026, 0368-4010-01
Instructor: Dan Halperin, [email protected]
Office hours by appointment
Course hours: Monday, 16:00-19:00
Location: TBD
Teaching assistant: Dror Livnat, [email protected]
Office hours by appointment
Recitations: Monday, 19:00-20:00
Location: TBD
Grader and software helpdesk: Michael Bilevich, [email protected]
Software helpdesk: Yuval Rubins [email protected], Mondays by appointment (until 31.12.25)

The recent years have seen an outburst of new robotic applications and robot designs in medicine, entertainment, security and manufacturing to mention just a few areas. Novel applications require ever more sophisticated algorithms. In the course, we shall cover computational and algorithmic aspects of robotics with an emphasis on motion planning.
The motion-planning problem is a key problem in robotics. The goal is to plan a valid motion path for a robot (or any other mobile object for that matter) within a given environment, while avoiding collision with obstacles. The scope of the motion-planning problem is not restricted to robotics, and it arises naturally in different and diverse domains, including molecular biology, computer graphics, computer-aided design and industrial automation. Moreover, techniques that were originally developed to solve motion-planning problems have often found manifold applications.
The topics that will be covered include (as time permits):

- A brief tour of algorithmic problems in robotics
- The configuration space approach and the connection between motion planning and geometric arrangements
- Minkowski sums; exact and efficient solution to translational motion planning in the plane
- Translation and rotation in the plane; translational motion of polyhedra in space
- Sampling-based motion planning
- Collision detection and nearest-neighbor search
- Introduction to robot control
- Robot learning
- Path quality: shortest paths, high clearance paths, other quality measures, multi-objective optimization
- Multi-robot motion planning: Exact motion planning for large fleets of robots—the labeled vs. unlabeled case; sampling based planners for multi-robot motion planning and the tensor product—dRRT, dRRT*
- Assembly planning
Prerequisites
The course is geared towards graduate students in computer science.
Link to bibliography
Assignments
Submission Guidelines
- Each question will have its own Moodle submission page.
- For theoretical questions, please submit a single PDF file, named:
qX_IDNUM.pdforqX_IDNUM1_IDNUM2.pdf(if submission in pairs is allowed). Example:q3_123456789.pdf. - When submission in pairs is allowed, only one of the students should submit the work. The grade will be updated for both students regardless.
- While Python is preferred, code assignments can be written in any (conventional) programming language you’d like. Please contact us if you intend on using any language that is not Python, C, C++, C# or Java.
- Code submissions should be in a single tarball (
*.zipor*.tar.gz) with the same convention like PDFs, i.e.,qX_IDNUM.tar.gz. -
Important: For the code assignments, please submit a single tar/zip file, named q{num}_{id1}_{id2…}.zip. For example, for the second questions: q2_123456789_987654321.zip.
That zip should have only one *.py file, containing the entire code of your solver. Any other files (like README, scenes, etc.) are fine.
Also please make sure that loading that single python file into the solver_viewer tool works correctly. - During the code assignments we will be using Discopygal package.
- Documentation about Discopygal package is found at: https://www.cs.tau.ac.il/~cgl/discopygal/docs/tutorials/getting_started.html
- The whl file of Discopygal-starter package (for step 4 of the installation) is: discopygal_taucgl_starter-1.4.2-py3-none-any.whl
The assignments
Hint: nodes in the connectivity graph may correspond to vertices, halfedges and faces in the arrangement.