Resources
Here are some learning resources that I created. This includes teaching notes, motion planning lecture slides (created jointly with Wolfgang Hönig), and code libraries which you might find helpful.
Teaching Notes
- Introduction to Configuration Spaces and Homeomorphisms (April 2025) Introduction to robot configuration spaces and homeomorphisms
- Your Thesis Journey: From Vision to Success (February 2025) A guide to writing a bachelor's or master's thesis
- Probabilistic Completeness Proofs for Sampling-Based Motion Planning (August 2024) A guide on constructing probabilistic completeness proofs for sampling-based motion planners
- On the Principle of Maximum Entropy (February 2024) Explanation of the principle of maximum entropy and its definition
- From Homotopy to Local Minima: Efficient Path Space Partitioning (November 2023) Proposes local minima as an efficient alternative to homotopy for path space partitioning
- Curvature-Based Rejection Sampling for Arbitrary Parameterized Surfaces (June 2023) A way to conduct uniform sampling on arbitrary parameterized surfaces
- Asymptotic Optimality of AO-x (June 2022) A proof that the kinodynamic motion planner AO-x is asymptotically optimal
- Monte Carlo Tree Search (March 2021) A very brief introduction to the Monte Carlo tree search algorithm
- Policy Gradients (January 2021) Details policy gradient methods in reinforcement learning
- Markov Decision Processes (February 2020) Brief introduction to Markov decision processes used in reinforcement learning
- Riemannian Center of Mass (April 2018) Describes the Riemannian center of mass, a generalization of the center of mass to manifolds
- Projection of an N Dimensional Polytope Onto an N-1 Dimensional Polytope (April 2015) Ways of how the projection of a polytope onto another polytope changes its topology
- Geometry of Quaders on Top of Surface Elements of Polytopes (November 2014) How to formulate geometric quaders above the surface of a polytope
- Maximum Ball on a Surface Element of a Polytope (September 2014) Shows how to find the maximum ball inside a polytope using convex optimization
- Convexity Constraints in Optimization over Functional Spaces (April 2014) Brief introduction to applying convex constraints on functional spaces
- Geometrical Visualization of the Projection of a Point Onto a Hyperplane (July 2013) Shows how to project a point onto a hyperplane using geometric arguments
Motion Planning Lecture Slides
Please check here for an up-to-date version and videos.
- Lecture 1 Organization, Introduction, Problem Formulation
- Lecture 2 Transformations, Angular Representations, Metrics, Efficient Collision Checking
- Lecture 3 Graph-based Planning: Representations, A*, Admissible Heuristics
- Lecture 4 Advanced Search-Based Motion Planning
- Lecture 5 Sampling-Based Geometric Motion Planning: PRMs
- Lecture 6 Introduction to the Open Motion Planning Library (OMPL)
- Lecture 7 RRT, RRT*, Kinodynamic RRT
- Lecture 8 Kinodynamic Planning: SST*, AO-x, Geometric Planning: Informed RRT*, BIT*
- Lecture 9 Sampling-Based Motion Planning: Theory and Advanced Planners; Intro to Optimization
- Lecture 10 Optimization-Based Motion Planning
- Lecture 11 Optimization-Based Motion Planning: Differential Flatness and SCP
- Lecture 12 Advanced Optimization, Comparison, and Hybrid Approaches
- Lecture 13 Multi-robot Motion Planning
Code
- Motion Explorer A framework to visualize the structure of planning problems using local-minima trees
- OMPL Benchmark Plotter Plot benchmarks from the Open Motion Planning Library (OMPL)
- Configuration Space Visualizer A visualization tool to visualize 2D configuration spaces for point robots.
- CPP Util Several handy C/C++ utility functions
- FFmpeg Video Manipulation Interface to create and edit videos in python using ffmpeg-python.
- Vim Snippets Additional Vim snippets to optimize my workflow
- BPY Scripting Blender python bpy scripts